diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2022-06-29 09:01:01 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2022-06-29 09:01:01 +0200 |
commit | 77b80c58a9be72dca9268681b90336bbd433a41a (patch) | |
tree | fab1ce2d83194b6b43f8f8aa814393d7c502fc92 /drivers/serial | |
parent | bd0e1e5dde37cb927ad9e5d225d55d0cb636a53d (diff) | |
parent | 5a4d742347441327951981ca8d803091d2f4643d (diff) | |
download | barebox-77b80c58a9be72dca9268681b90336bbd433a41a.tar.gz barebox-77b80c58a9be72dca9268681b90336bbd433a41a.tar.xz |
Merge branch 'for-next/omap'
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/Kconfig | 7 | ||||
-rw-r--r-- | drivers/serial/serial_ns16550.c | 17 |
2 files changed, 13 insertions, 11 deletions
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index 9d4a534580..6fda32d44c 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -92,13 +92,6 @@ config DRIVER_SERIAL_ATMEL default y bool "Atmel serial driver" -config DRIVER_SERIAL_NS16550_OMAP_EXTENSIONS - bool "OMAP Extensions for NS16550" - depends on DRIVER_SERIAL_NS16550 - depends on ARCH_OMAP - help - Say Y here if you are using OMAP extensions to NS16550 - config DRIVER_SERIAL_NS16550_PCI depends on DRIVER_SERIAL_NS16550 depends on PCI diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c index 8da53ab5aa..f7cab8db4b 100644 --- a/drivers/serial/serial_ns16550.c +++ b/drivers/serial/serial_ns16550.c @@ -46,6 +46,7 @@ struct ns16550_drvdata { void (*init_port)(struct console_device *cdev); const char *linux_console_name; const char *linux_earlycon_name; + unsigned int clk_default; }; static inline struct ns16550_priv *to_ns16550_priv(struct console_device *cdev) @@ -371,6 +372,12 @@ static __maybe_unused struct ns16550_drvdata omap_drvdata = { .linux_earlycon_name = "omap8250", }; +static __maybe_unused struct ns16550_drvdata am43xx_drvdata = { + .init_port = ns16550_omap_init_port, + .linux_console_name = "ttyO", + .clk_default = 48000000, +}; + static __maybe_unused struct ns16550_drvdata jz_drvdata = { .init_port = ns16550_jz_init_port, .linux_earlycon_name = "jz4740_uart", @@ -488,6 +495,9 @@ static int ns16550_probe(struct device_d *dev) else ns16550_probe_dt(dev, priv); + if (devtype->clk_default && !priv->plat.clock) + priv->plat.clock = devtype->clk_default; + if (!priv->plat.clock) { priv->clk = clk_get(dev, NULL); if (IS_ERR(priv->clk)) { @@ -536,16 +546,12 @@ static struct of_device_id ns16550_serial_dt_ids[] = { .data = &ns16450_drvdata, }, { .compatible = "ns16550a", - .data = &ns16550_drvdata, }, { .compatible = "snps,dw-apb-uart", - .data = &ns16550_drvdata, }, { .compatible = "marvell,armada-38x-uart", - .data = &ns16550_drvdata, }, { .compatible = "nvidia,tegra20-uart", - .data = &ns16550_drvdata, }, #if IS_ENABLED(CONFIG_ARCH_OMAP) { @@ -557,6 +563,9 @@ static struct of_device_id ns16550_serial_dt_ids[] = { }, { .compatible = "ti,omap4-uart", .data = &omap_drvdata, + }, { + .compatible = "ti,am4372-uart", + .data = &am43xx_drvdata, }, #endif #if IS_ENABLED(CONFIG_MACH_MIPS_XBURST) |