summaryrefslogtreecommitdiff
path: root/drivers/serial
AgeCommit message (Collapse)Author
3 daysserial: sh: Handle HSCIF on all 64-bit R-Car SoCMarek Vasut
The HSCIF variant present on Renesas R-Car Gen5 SoC is compatible with the HSCIF variant present on Renesas R-Car Gen4 SoC. Enable HSSRR register programming for HSCIF present on all 64-bit R-Car SoCs, which covers R-Car Gen3, Gen4 and newly also Gen5. Signed-off-by: Marek Vasut <[email protected]>
4 daysserial: omap: Fix "unused" warnings with SERIAL_PRESENT=n and OF_REAL=yTom Rini
The definition of our ID table (and of_to_plat function) is guarded with OF_REAL however the U_BOOT_DRIVER that would in turn use the table is guarded with SERIAL_PRESENT. To avoid a potential warning we must also guard both with SERIAL_PRESENT. Signed-off-by: Tom Rini <[email protected]>
4 daysserial: ns16550: Fix an "unused" warning with SERIAL_PRESENT=n and OF_REAL=yTom Rini
The definition of our ID table is guarded with OF_REAL however the U_BOOT_DRIVER that would in turn use the table is guarded with SERIAL_PRESENT. To avoid a potential warning we must also guard the ID table with SERIAL_PRESENT. Signed-off-by: Tom Rini <[email protected]>
5 daysMerge branch 'next'Tom Rini
9 daysserial: pl011: Remove legacy serial driver optionsTom Rini
There are no longer any users of the legacy non-DM pl01x serial driver. This lets us remove both CONFIG_PL011_SERIAL as well as CONFIG_PL011_SERIAL_RLCR references. We still have SPL users of the non-DM portions of the code. Signed-off-by: Tom Rini <[email protected]>
2026-03-24serial: msm-geni: allow invalid clockCasey Connolly
Pre-relocation we may not have a clock but it's usually been enabled for us already, or worst case we will enable it after relocation. Erroring out in this case will almost always cause U-Boot to hang pre-relocation which is undesirable and may be hard to debug. Link: https://patch.msgid.link/20260320-casey-qcom-rpmh-serial-fixes-v1-1-b81d05832eec@linaro.org Signed-off-by: Casey Connolly <[email protected]>
2026-03-13serial: ns16550: Fix return-type warningNikita Shubin
Fix compiler warning: drivers/serial/ns16550.c: In function ‘serial_in_dynamic’: drivers/serial/ns16550.c:153:1: warning: control reaches end of non-void function [-Wreturn-type] 153 | } | ^ Observed with gcc 15.2.1: $ riscv64-unknown-linux-gnu-gcc --version riscv64-unknown-linux-gnu-gcc (Gentoo 15.2.1_p20260214 p5) 15.2.1 Fixes: 62cbde4c4e46 ("serial: ns16550: Support run-time configuration") Signed-off-by: Nikita Shubin <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2026-03-09Merge tag 'v2026.04-rc4' into nextTom Rini
Prepare v2026.04-rc4
2026-03-04treewide: Remove Timesys from ADI ADSP maintenancePhilip Molloy
After years of developing the ADI ADSP platform, Timesys was purchased by another company and is no longer contracted to maintain the platform. Signed-off-by: Philip Molloy <[email protected]> Reviewed-by: Greg Malysa <[email protected]>
2026-02-17Merge patch series "treewide: Clean up usage of DECLARE_GLOBAL_DATA_PTR"Tom Rini
Peng Fan (OSS) <[email protected]> says: This patch set primarily removes unused DECLARE_GLOBAL_DATA_PTR instances. Many files declare DECLARE_GLOBAL_DATA_PTR and include asm/global_data.h even though gd is never used. In these cases, asm/global_data.h is effectively treated as a proxy header, which is not a good practice. Following the Include What You Use principle, files should include only the headers they actually depend on, rather than relying on global_data.h indirectly. This approach is also adopted in Linux kernel [1]. The first few patches are prepartion to avoid building break after remove the including of global_data.h. A script is for filtering the files: list=`find . -name "*.[ch]"` for source in ${list} do result=`sed -n '/DECLARE_GLOBAL_DATA_PTR/p' ${source}` if [ "${result}" == "DECLARE_GLOBAL_DATA_PTR;" ]; then echo "Found in ${source}" result=`sed -n '/\<gd\>/p' ${source}` result2=`sed -n '/\<gd_/p' ${source}` result3=`sed -n '/\<gd->/p' ${source}` if [ "${result}" == "" ] && [ "${result2}" == "" ] && [ "${result3}" == "" ];then echo "Cleanup ${source}" sed -i '/DECLARE_GLOBAL_DATA_PTR/{N;/\n[[:space:]]*$/d;s/.*\n//;}' ${source} sed -i '/DECLARE_GLOBAL_DATA_PTR/d' ${source} sed -i '/global_data.h/d' ${source} git add ${source} fi fi done [1] https://lpc.events/event/17/contributions/1620/attachments/1228/2520/Linux%20Kernel%20Header%20Optimization.pdf CI: https://github.com/u-boot/u-boot/pull/865 Link: https://lore.kernel.org/r/[email protected]
2026-02-17treewide: Clean up DECLARE_GLOBAL_DATA_PTR usagePeng Fan
Remove DECLARE_GLOBAL_DATA_PTR from files where gd is not used, and drop the unnecessary inclusion of asm/global_data.h. Headers should be included directly by the files that need them, rather than indirectly via global_data.h. Reviewed-by: Patrice Chotard <[email protected]> #STMicroelectronics boards and STM32MP1 ram test driver Tested-by: Anshul Dalal <[email protected]> #TI boards Acked-by: Yao Zi <[email protected]> #TH1520 Signed-off-by: Peng Fan <[email protected]>
2026-02-04serial: atmel-usart: add support for skiping debug UART initRobert Marko
Currently, atmel-usart does not respect CONFIG_DEBUG_UART_SKIP_INIT so it will always configure the debug UART. However, this is unwanted on platforms on which TF-A or some other firmware has already configured the debug UART. This will be used for Microchip LAN969x support, so simply return early if CONFIG_DEBUG_UART_SKIP_INIT is set. Signed-off-by: Robert Marko <[email protected]>
2026-02-04serial: atmel-usart: include arch specific headers only for AT91Robert Marko
Microchip LAN969x will not include any arch specific clk.h nor hardware.h, so in order to support it only include <asm/arch/clk.h> and <asm/arch/hardware.h> when AT91 is selected. Signed-off-by: Robert Marko <[email protected]>
2026-02-04arm: at91: move atmel_serial.h to include/dm/platform_dataRobert Marko
Move the arch specific atmel_serial.h header from AT91 to the generic include/dm/platform_data. This will be used for support on Microchip LAN969x. Signed-off-by: Robert Marko <[email protected]>
2026-02-02serial: Add Goldfish TTY driverKuan-Wei Chiu
Add support for the Google Goldfish TTY serial device. This virtual device is commonly used in QEMU virtual machines (such as the m68k virt machine) and Android emulators. The driver implements basic console output and input polling using the Goldfish MMIO interface. Signed-off-by: Kuan-Wei Chiu <[email protected]> Reviewed-by: Yao Zi <[email protected]> Tested-by: Daniel Palmer <[email protected]> Acked-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Angelo Dureghello <[email protected]>
2025-12-11serial: serial_meson: add minimal non-DM driverFerass El Hafidi
It is very limited and minimal, only implements putc/puts. This minimal driver is intended to be used in SPL, and other size-constrained situations. Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Ferass El Hafidi <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
2025-11-12serial: s5p: add compatible for exynos8895Kaustabh Chakraborty
Add the compatible for Exynos8895 UART as described in upstream devicetree bindings. This enables support for Exynos8895 and other similar UART devices, such as Exynos7870. Other than that, the driver works as-is. Signed-off-by: Kaustabh Chakraborty <[email protected]> Reviewed-by: Henrik Grimler <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-11-06serial: make VPL_DM_SERIAL depend on VPL_DMQuentin Schulz
I have a hunch VPL_DM_SERIAL should not be selectable if VPL isn't set as implied by the prefix. Additionally, still based on the prefix, I'm assuming VPL_DM should be a dependency. Since VPL_DM can only be selectable when VPL is enabled, only depend on VPL_DM. This mirrors SPL_DM_SERIAL and TPL_DM_SERIAL so seems right to me. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-10-30serial: msm-geni: implement firmware loadingCasey Connolly
Teach the GENI UART driver to load firmware, similar to i2c. This is primarily intended for non-debug UARTs, but since we don't support using these as the console we abort probe for now. Remove duplicated register macros that are in the common geni-se header. Signed-off-by: Casey Connolly <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-10-30serial: msm-geni: Enable SE clk in probeStephen Boyd
Enable the serial engine clk in probe so that this driver can work on platforms that don't already initialize the clk for this device before this driver runs. This fixes a problem I see on Coreboot platforms like Trogdor where the UART hardware isn't enabled by coreboot unless the serial console build is used. Signed-off-by: Stephen Boyd <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-10-30misc: introduce Qcom GENI wrapperCasey Connolly
Qualcomm peripherals like UART, SPI, I2C, etc are all exposed under a common GENI Serial Engine wrapper device. Replace the stub driver we use for this currently with a full-on misc device and implement support for loading peripheral firmware. Each of the peripherals has it's own protocol-specific firmware, this is stored on the internal storage of the device with a well-known partition type GUID. To support this, GENI will bind peripherals in two stages. First the ones that already have firmware loaded (such as the serial port) are bound in the typical way. But devices that require firmware loading are deferred until EVT_LAST_STAGE_INIT. At this point we can be sure that the storage device is available, so we load the firmware and then bind and probe the remaining children. Child devices are expected to determine if firmware loading is necessary and call qcom_geni_load_firmware(). Since Linux currently doesn't support loading firmware (and firmware may not be available), we probe all GENI peripherals to ensure that they always load firmware if necessary. Signed-off-by: Casey Connolly <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-10-29serial: msm: Use single character modeStephan Gerhold
The UART DM controller supports different channel data packing modes, either the 4-character packing mode (where 32-bit are read/written at once) or the single-character mode (where only a single character is read/written at a time). The 4-character mode can be more efficient, but the single-character mode is much easier to implement. At the moment, serial_msm uses the 4-character mode. Since the dm_serial_ops operate on one character at the time, the code goes through quite some hoops in order to break this down to single characters. This code is prone to race conditions (e.g. priv->chars_cnt is read from the registers, then a command is issued, what if another char came in inbetween?). It also seems to cause another subtle issue with autoboot: Unlike the previous autoboot failures that happened when UART was disconnected, this problem occurs when UART is connected and open in a terminal: For EFI boot, the console size is queried in efi_console.c query_console_serial() by sending an ANSI escape code via UART. For some reason, with the current driver we get yet another 0x00 byte (UART break event?) when reading the reply from serial input. Because of that, reading the console size fails in efi_console.c, the actual reply remains in the UART buffer, and later the boot flow aborts because it detects input after printing a prompt. Rather than trying to fix the issue in the current complicated approach, switch the driver to use the single-character mode. This is simple and straightforward to implement without race conditions: - We write one character at a time to UARTDM_TF, as long as the TX FIFO has space available (TX_READY). To flush the console before starting Linux, we wait for TX_EMPTY. - We read one character at a time from UARTDM_RF and strip off the additional error information (assuming there is something in the RX FIFO, as indicated by RX_READY). In this mode, querying the serial console size works and autoboot is no longer interrupted. The overall code is also much shorter. Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Stephan Gerhold <[email protected]> Tested-by: Alexey Minnekhanov <[email protected]> Acked-by: Sumit Garg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-10-29serial: msm: Re-enable after resettingStephan Gerhold
The documentation for the UART controller in the APQ8016E specifies that both RESET and ENABLE commands must be issued to set up the receiver and transmitter, but at the moment we only issue RESET. This doesn't seem to cause issues in practice (looks like the reset already re-enables the receiver/transmitter), but let's add the two writes to RX_ENABLE/TX_ENABLE to better match the recommendations in the documentation. Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Stephan Gerhold <[email protected]> Tested-by: Alexey Minnekhanov <[email protected]> Acked-by: Sumit Garg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-10-29serial: msm: Reset after writing to DMENStephan Gerhold
According to the documentation of the UART controller in the APQ8016E TRM, clearing bits inside UARTDM_DMEN requires resetting the transmitter and/or receiver. We do reset inside uart_dm_init(), but before writing to UARTDM_DMEN. This doesn't seem to cause problems in practice, but let's move the reset to the end of uart_dm_init() to better match the recommendations in the documentation. Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Stephan Gerhold <[email protected]> Tested-by: Alexey Minnekhanov <[email protected]> Acked-by: Sumit Garg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-10-29serial: msm: Cleanup register namingStephan Gerhold
Some of the register definitions are inconsistently named (likely copied as-is from Qualcomm's Little Kernel/LK bootloader, which uses the MSM_BOOT_UART naming scheme). Rename them to be in line with the other register definitions and move them up to be next to the related register. No functional change. Signed-off-by: Stephan Gerhold <[email protected]> Tested-by: Alexey Minnekhanov <[email protected]> Acked-by: Sumit Garg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-10-29Revert "serial: serial_msm: Delay initialization to let pins stabilize"Stephan Gerhold
There have been issues with autoboot on DB410c for years, where autoboot gets interrupted by spurious input on the UART console. Back in 2021, I've tried to fix this by inserting a delay before UART initialization, but it has turned out this is not working reliably either. It looks like the root cause has always been the lack of bias-pull-up, which was causing the RX line to be floating when UART is disconnected. The delay does not seem to be needed anymore when applying bias-pull-up, so drop it again in favor of the proper fix. This reverts commit ad7e967738a9c639e07cf50b83ffccdf9a8537b0. Signed-off-by: Stephan Gerhold <[email protected]> Tested-by: Alexey Minnekhanov <[email protected]> Acked-by: Sumit Garg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-10-29serial: msm-geni: Update kconfig name for DEBUG_UART_MSM_GENILuca Weiss
The previous description "Qualcomm snapdragon" barely tells the user anything, update the name so that it's clear which configs the user can choose between, namely the older QUP driver, or the newer GENI driver. Signed-off-by: Luca Weiss <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-10-17serial: sh: Handle HSCIF RX FIFO overflowMarek Vasut
The HSCIF RX FIFO may overflow when data are streaming from remote end into the HSCIF while U-Boot is still starting up. In that case, HSFSR bit RDF is set, but HSFDR field R is zero. This confuses .tstc callback into considering RX FIFO to be empty, which leads to .getc to be never invoked, even when user attempts to pass more input onto the command line. Fix this by considering the RDF flag in serial_rx_fifo_level(), which is called from .tstc in case of no errors. If RDF flag is set, trigger the .getc callback and let it clear the RX FIFO. Signed-off-by: Marek Vasut <[email protected]>
2025-09-08Merge tag 'v2025.10-rc4' into nextTom Rini
Prepare v2025.10-rc4
2025-08-30efi: serial: Use correct EFI status typeAndrew Goodbody
int is not sufficient to hold and test the return from an EFI function call. Use efi_status_t instead so that the test can work as expected. This issue was found by Smatch. Fixes: 275854baeeec ("efi: Add a serial driver") Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2025-08-28Merge tag 'xilinx-for-v2026.01-rc1' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze into next AMD/Xilinx/FPGA changes for v2026.01-rc1 mbv: - Add it to CI loop versal2: - Wire UFS driver serial: - Add support for OF_PLATDATA in uartlite misc: - Mark some structures as const
2025-08-27serial: lpuart: Return value from correct variableAndrew Goodbody
In get_lpuart_clk_rate if the call to clk_get_rate returns an error then the call to return should pass the value of the error which is in rate rather than ret which will be 0 as its value is not affected by this error. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-08-26serial: uartlite: Add support for OF_PLATDATAMichal Simek
The first change is to list DM_DRIVER_ALIAS for compatible string to be able to match the driver. Only xps one is listed because opb one is likely unused for quite a long time. The second change is to add dtplat structure to plat data and fill register base in probe. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/b494dbad529e919d33977b8ea6e6dbcd14e78907.1753261604.git.michal.simek@amd.com
2025-08-26serial: uartlite: Use private data instead of platformMichal Simek
plat data should be used only in probe or of_to_plat to fill it information from DT. Then in probe platform data should be stored in private structure which should be used by the other driver functions. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/8d32af596f80a2220d9f5d7fb98476e6d2b5f303.1753261604.git.michal.simek@amd.com
2025-08-25Merge tag 'v2025.10-rc3' into nextTom Rini
Prepare v2025.10-rc3
2025-08-21serial-uclass: set GD_FLG_SERIAL_READY only when cur_serial_dev is assignedMaxim Kochetkov
serial_find_console_or_panic() may left cur_serial_dev unassigned if REQUIRE_SERIAL_CONSOLE is not set. Setting GD_FLG_SERIAL_READY in this situation confuses serial console code. It tries to use unassigned driver instead of debug port and stops printing. So check cur_serial_dev before setting GD_FLG_SERIAL_READY to allow console to keep printing via debug port. Signed-off-by: Maxim Kochetkov <[email protected]>
2025-08-14serial: linflexuart: Remove unused driverTom Rini
This driver is unused. Remove it. Signed-off-by: Tom Rini <[email protected]>
2025-08-14serial: Tighten some serial driver dependenciesTom Rini
A few serial drivers cannot build without access to some platform specific header files. Express those requirements in Kconfig as well. Signed-off-by: Tom Rini <[email protected]>
2025-08-13serial: msm-geni: No need to NULL check privAndrew Goodbody
The NULL check for priv in qcom_geni_serial_poll_bit serves no useful prupose as too much other code surrounding it relies on priv being valid. Remove the NULL check for priv and other related code. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-08-13serial: msm-geni: Detect error from get_clk_div_rateAndrew Goodbody
In msm_serial_setbrg if the call to get_clk_div_rate fails then there will not have been an assignment to clk_div which will lead to the call to geni_serial_baud using an uninitialised value. Check for an error from get_clk_div_rate and return an error code if so. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Casey Connolly <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2025-07-10arm: imx: Remove the rest of i.MX31 supportTom Rini
With the removal of the last i.MX31 platform we can remove the rest of the underlying architecture code as well. Fixes: f247354708ec ("arm: Remove mx31pdk board") Signed-off-by: Tom Rini <[email protected]> Acked-by: Peng Fan <[email protected]>
2025-06-05serial: mediatek: enable baudrate accuracy compensationWeijie Gao
The high-speed UART from MediaTek supports baudrate accuracy compensation when using high-speed mode 3. This is done by calculating the first digit of the fraction part of sample count value. The fraction value will be then used as the reference to insert 0 to 10 sample cycle(s) to one frame (assume that frame format is 8n1, i.e. 10 bits per frame). The fracdiv_[l/m] registers are used to determine whether a bit in one frame should be inserted with one sample cycle. With typical 40MHz source clock, the actual baudrates with/without accuracy compensation are: Ideal w/o compensation w/ compensation ======== ================ =============== 9600 9603 9600 115200 114942 115207 921600 930232 921659 3000000 3076923 3007519 Signed-off-by: Weijie Gao <[email protected]>
2025-06-05serial: mediatek: fix register names and offsetsWeijie Gao
Fix UART register names and offsets according to the programming guide to allow implementing some enhanced features. Signed-off-by: Weijie Gao <[email protected]>
2025-04-16serial: Setup default base and frequency for Versal platformsMichal Simek
Add useful default debug uart values for all Versal platforms to simplify and speed up debug uart enabling. The similar change has been done for Zynq/ZynqMP by commit ad55d99e3cc3 ("serial: Setup serial base and freq for zynq/zynqmp"). Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/86edf3dbb6de16337aac36f5121f306f83149fc0.1741868624.git.michal.simek@amd.com
2025-04-11Merge patch series "Switch to using $(PHASE_) in Makefiles"Tom Rini
Tom Rini <[email protected]> says: This series switches to always using $(PHASE_) in Makefiles when building rather than $(PHASE_) or $(XPL_). It also starts on documenting this part of the build, but as a follow-up we need to rename doc/develop/spl.rst and expand on explaining things a bit. Link: https://lore.kernel.org/r/[email protected]
2025-04-11Kbuild: Always use $(PHASE_)Tom Rini
It is confusing to have both "$(PHASE_)" and "$(XPL_)" be used in our Makefiles as part of the macros to determine when to do something in our Makefiles based on what phase of the build we are in. For consistency, bring this down to a single macro and use "$(PHASE_)" only. Signed-off-by: Tom Rini <[email protected]>
2025-04-03Merge patch series "membuff: Add tests and update to support a flag for ↵Tom Rini
empty/full" Simon Glass <[email protected]> says: The membuff implementation curently has no tests. It also assumes that head and tail can never correspond unless the buffer is empty. This series provides a compile-time flag to support a 'full' flag. It also adds some tests of the main routines. The data structure is also renamed to membuf which fits better with U-Boot. There may be some cases in the code which could be optimised a little, but the implementation is functional. Link: https://lore.kernel.org/r/[email protected]
2025-04-03membuff: Rename functions to have membuf_ prefixSimon Glass
The double 'f' is not necessary and is a bit annoying as elsewhere in U-Boot we use 'buf'. Rename all the functions before it is used more widely. Signed-off-by: Simon Glass <[email protected]>
2025-03-19serial: mxc: Support bulk enabling clocksAdam Ford
Depending on the platform, there may be multiple clock sources required to enable a UART. Use the bulk functions to get and enable the clocks when the UART probes. This can facilitate the removal of functions to manually enable the clock. This is made dependent on CLK_CCF which is used on imx6q, imx8m[mnqp], several imxrt, imx9. If/when the UART clock registration is done for older boards, this limitation could be updated. Signed-off-by: Adam Ford <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2025-03-18serial: Add missing TPL_SYS_NS16550_SERIAL symbolTom Rini
On PowerPC platforms with TPL enabled and SPL_SYS_NS16550_SERIAL enabled, today this builds under TPL as well due to how $(XPL_) is defined. Add the TPL_SYS_NS16550_SERIAL itself for consistency and clarity. Signed-off-by: Tom Rini <[email protected]>