summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-12-04 17:39:03 +0300
committerTom Rini <trini@konsulko.com>2022-12-06 00:06:07 +0300
commit9591b63531fa5a34698ee7bb3800af6c4ea6ba2f (patch)
tree6f02552f5593d5042ffb0ef28604fad76c1d8149 /drivers
parent57c3afbc27bc48c3029108748fc2101b8d4758d8 (diff)
downloadu-boot-9591b63531fa5a34698ee7bb3800af6c4ea6ba2f.tar.xz
Convert CONFIG_SYS_NS16550_MEM32 et al to Kconfig
This converts the following to Kconfig: CONFIG_SPL_NS16550_MIN_FUNCTIONS CONFIG_SYS_NS16550_MEM32 CONFIG_SYS_NS16550_PORT_MAPPED CONFIG_SYS_NS16550_REG_SIZE CONFIG_SYS_NS16550_SERIAL To do this we also introduce CONFIG_SPL_SYS_NS16550_SERIAL so that platforms can enable the legacy driver here for SPL. Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/serial/Kconfig54
-rw-r--r--drivers/serial/Makefile2
2 files changed, 47 insertions, 9 deletions
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index de02e08a29..4978a65715 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -720,6 +720,17 @@ config PIC32_SERIAL
help
Support for the UART found on Microchip PIC32 SoC's.
+config SYS_NS16550_SERIAL
+ bool "NS16550 UART or compatible legacy driver"
+ depends on !DM_SERIAL
+ select SYS_NS16550
+
+config SPL_SYS_NS16550_SERIAL
+ bool "NS16550 UART or compatible legacy driver in SPL"
+ depends on SPL && !SPL_DM_SERIAL
+ default y if SYS_NS16550_SERIAL || ARCH_SUNXI || ARCH_OMAP2PLUS
+ select SYS_NS16550
+
config SYS_NS16550
bool "NS16550 UART or compatible"
help
@@ -732,25 +743,52 @@ config SYS_NS16550
config NS16550_DYNAMIC
bool "Allow NS16550 to be configured at runtime"
+ depends on SYS_NS16550
default y if SYS_COREBOOT || SYS_SLIMBOOTLOADER
help
Enable this option to allow device-tree control of the driver.
Normally this driver is controlled by the following options:
- CONFIG_SYS_NS16550_PORT_MAPPED - indicates that port I/O is used for
- access. If not enabled, then the UART is memory-mapped.
- CONFIG_SYS_NS16550_MEM32 - if memory-mapped, indicates that 32-bit
- access should be used (instead of 8-bit)
- CONFIG_SYS_NS16550_REG_SIZE - indicates register width and also
- endianness. If positive, big-endian access is used. If negative,
- little-endian is used.
-
It is not a good practice for a driver to be statically configured,
since it prevents the same driver being used for different types of
UARTs in a system. This option avoids this problem at the cost of a
slightly increased code size.
+config SYS_NS16550_MEM32
+ bool "If memory-mapped, 32bit access is needed for ns16550 register access"
+ depends on SYS_NS16550
+ help
+ If enabled, if memory-mapped, indicates that 32-bit access should be
+ used (instead of 8-bit) for register access.
+
+config SYS_NS16550_PORT_MAPPED
+ bool "Port I/O is used for ns16550 register access"
+ depends on SYS_NS16550
+ help
+ If enabled, port I/O is used for ns16550 register access. If not
+ enabled, then the UART is memory-mapped.
+
+config SYS_NS16550_REG_SIZE
+ int "ns16550 register width and endianness"
+ depends on SYS_NS16550_SERIAL || SPL_SYS_NS16550_SERIAL
+ range -4 4
+ default -4 if ARCH_OMAP2PLUS || ARCH_SUNXI
+ default 1
+ help
+ Indicates register width and also endianness. If positive, big-endian
+ access is used. If negative, little-endian is used.
+
+config SPL_NS16550_MIN_FUNCTIONS
+ bool "Only provide NS16550_init and NS16550_putc in SPL"
+ depends on SPL_SYS_NS16550_SERIAL && PPC
+ help
+ Enable this if you desire to only have use of the NS16550_init and
+ NS16550_putc functions for the serial driver located at
+ drivers/serial/ns16550.c. This option is useful for saving space for
+ already greatly restricted images, including but not limited to
+ NAND_SPL configurations.
+
config INTEL_MID_SERIAL
bool "Intel MID platform UART support"
depends on DM_SERIAL && OF_CONTROL
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index eb7b8f23ee..45cf94c74c 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -25,7 +25,7 @@ ifdef CONFIG_DM_SERIAL
obj-$(CONFIG_PL01X_SERIAL) += serial_pl01x.o
else
obj-$(CONFIG_PL011_SERIAL) += serial_pl01x.o
-obj-$(CONFIG_SYS_NS16550_SERIAL) += serial_ns16550.o
+obj-$(CONFIG_$(SPL_)SYS_NS16550_SERIAL) += serial_ns16550.o
endif
obj-$(CONFIG_ALTERA_UART) += altera_uart.o