diff options
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 */ |