summaryrefslogtreecommitdiffstats
path: root/drivers/serial
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2022-06-29 09:01:01 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2022-06-29 09:01:01 +0200
commit77b80c58a9be72dca9268681b90336bbd433a41a (patch)
treefab1ce2d83194b6b43f8f8aa814393d7c502fc92 /drivers/serial
parentbd0e1e5dde37cb927ad9e5d225d55d0cb636a53d (diff)
parent5a4d742347441327951981ca8d803091d2f4643d (diff)
downloadbarebox-77b80c58a9be72dca9268681b90336bbd433a41a.tar.gz
barebox-77b80c58a9be72dca9268681b90336bbd433a41a.tar.xz
Merge branch 'for-next/omap'
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/Kconfig7
-rw-r--r--drivers/serial/serial_ns16550.c17
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)