diff options
author | Rouven Czerwinski <r.czerwinski@pengutronix.de> | 2019-03-07 14:22:01 +0100 |
---|---|---|
committer | Robert Schwebel <r.schwebel@pengutronix.de> | 2019-03-07 16:36:20 +0100 |
commit | 11c0d12c8a583ff05c00f8eac5a7421ae00dcbab (patch) | |
tree | 069b7479e33a148e0ed52e46af55ee10287ccd1c /configs/platform-v7a/patches/barebox-2019.01.0/0005-serial_ns16550-add-raspberry-pi-compatible-and-init.patch | |
parent | a9b4c4db8f213c9109daa805e208e594024e0597 (diff) | |
download | DistroKit-master.tar.gz DistroKit-master.tar.xz |
Patch free, baby!
Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
Diffstat (limited to 'configs/platform-v7a/patches/barebox-2019.01.0/0005-serial_ns16550-add-raspberry-pi-compatible-and-init.patch')
-rw-r--r-- | configs/platform-v7a/patches/barebox-2019.01.0/0005-serial_ns16550-add-raspberry-pi-compatible-and-init.patch | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0005-serial_ns16550-add-raspberry-pi-compatible-and-init.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0005-serial_ns16550-add-raspberry-pi-compatible-and-init.patch deleted file mode 100644 index 37a4df8..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0005-serial_ns16550-add-raspberry-pi-compatible-and-init.patch +++ /dev/null @@ -1,65 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Tue, 11 Dec 2018 10:50:44 +0100 -Subject: [PATCH] serial_ns16550: add raspberry pi compatible and init - -Add the compatible for the Raspberry Pi AUX UART and an init function which -enables it via the aux register and configures the correct shift value. - -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - drivers/serial/serial_ns16550.c | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - -diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c -index 8ddcfdbefc1d..ccd082e495c3 100644 ---- a/drivers/serial/serial_ns16550.c -+++ b/drivers/serial/serial_ns16550.c -@@ -253,6 +253,23 @@ static void ns16550_jz_init_port(struct console_device *cdev) - ns16550_serial_init_port(cdev); - } - -+#define BCM2836_AUX_CLOCK_ENB 0x3f215004 /* BCM2835 AUX Clock enable register */ -+#define BCM2836_AUX_CLOCK_EN_UART BIT(0) /* Bit 0 enables the Miniuart */ -+ -+static void rpi_init_port(struct console_device *cdev) -+{ -+ struct ns16550_priv *priv = to_ns16550_priv(cdev); -+ -+ writeb(BCM2836_AUX_CLOCK_EN_UART, BCM2836_AUX_CLOCK_ENB); -+ priv->plat.shift = 2; -+ /* -+ * We double the clock rate since the 16550 will divide by 16 -+ * (instead of 8 required by the BCM2835 peripheral manual) -+ */ -+ priv->plat.clock = priv->plat.clock*2; -+ ns16550_serial_init_port(cdev); -+} -+ - /*********** Exposed Functions **********************************/ - - /** -@@ -353,6 +370,11 @@ static __maybe_unused struct ns16550_drvdata tegra_drvdata = { - .linux_console_name = "ttyS", - }; - -+static __maybe_unused struct ns16550_drvdata rpi_drvdata = { -+ .init_port = rpi_init_port, -+ .linux_console_name = "ttyS", -+}; -+ - static int ns16550_init_iomem(struct device_d *dev, struct ns16550_priv *priv) - { - struct resource *iores; -@@ -527,6 +549,12 @@ static struct of_device_id ns16550_serial_dt_ids[] = { - .compatible = "ingenic,jz4740-uart", - .data = &jz_drvdata, - }, -+#endif -+#if IS_ENABLED(CONFIG_MACH_RPI_COMMON) -+ { -+ .compatible = "brcm,bcm2835-aux-uart", -+ .data = &rpi_drvdata, -+ }, - #endif - { - /* sentinel */ |