summaryrefslogtreecommitdiffstats
path: root/arm-bcm2835-serial-8250_early-support-aux-uart.patch
diff options
context:
space:
mode:
Diffstat (limited to 'arm-bcm2835-serial-8250_early-support-aux-uart.patch')
-rw-r--r--arm-bcm2835-serial-8250_early-support-aux-uart.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/arm-bcm2835-serial-8250_early-support-aux-uart.patch b/arm-bcm2835-serial-8250_early-support-aux-uart.patch
new file mode 100644
index 000000000..5ab954996
--- /dev/null
+++ b/arm-bcm2835-serial-8250_early-support-aux-uart.patch
@@ -0,0 +1,47 @@
+From 57b76faf1d7860f070a1ee2d0b7eccd9f37ecc55 Mon Sep 17 00:00:00 2001
+From: Matthias Brugger <mbrugger@suse.com>
+Date: Sun, 26 Jan 2020 13:33:14 +0100
+Subject: serial: 8250_early: Add earlycon for BCM2835 aux uart
+
+Define the OF early console for BCM2835 aux UART, which can be enabled
+by passing "earlycon" on the boot command line. This UART is found on
+BCM283x and BCM27xx SoCs, a.k.a. Raspberry Pi in its variants.
+
+Signed-off-by: Matthias Brugger <mbrugger@suse.com>
+Link: https://lore.kernel.org/r/20200126123314.3558-1-matthias.bgg@kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/tty/serial/8250/8250_bcm2835aux.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/drivers/tty/serial/8250/8250_bcm2835aux.c b/drivers/tty/serial/8250/8250_bcm2835aux.c
+index e70e3cc30050..5cc03bf24f85 100644
+--- a/drivers/tty/serial/8250/8250_bcm2835aux.c
++++ b/drivers/tty/serial/8250/8250_bcm2835aux.c
+@@ -137,6 +137,24 @@ static struct platform_driver bcm2835aux_serial_driver = {
+ };
+ module_platform_driver(bcm2835aux_serial_driver);
+
++#ifdef CONFIG_SERIAL_8250_CONSOLE
++
++static int __init early_bcm2835aux_setup(struct earlycon_device *device,
++ const char *options)
++{
++ if (!device->port.membase)
++ return -ENODEV;
++
++ device->port.iotype = UPIO_MEM32;
++ device->port.regshift = 2;
++
++ return early_serial8250_setup(device, NULL);
++}
++
++OF_EARLYCON_DECLARE(bcm2835aux, "brcm,bcm2835-aux-uart",
++ early_bcm2835aux_setup);
++#endif
++
+ MODULE_DESCRIPTION("BCM2835 auxiliar UART driver");
+ MODULE_AUTHOR("Martin Sperl <kernel@martin.sperl.org>");
+ MODULE_LICENSE("GPL v2");
+--
+cgit 1.2-0.3.lf.el7