brcm63xx: register serial through device tree
[openwrt/openwrt.git] / target / linux / brcm63xx / patches-4.4 / 000-4.8-11-serial-bcm63xx_uart-use-correct-alias-naming.patch
diff --git a/target/linux/brcm63xx/patches-4.4/000-4.8-11-serial-bcm63xx_uart-use-correct-alias-naming.patch b/target/linux/brcm63xx/patches-4.4/000-4.8-11-serial-bcm63xx_uart-use-correct-alias-naming.patch
new file mode 100644 (file)
index 0000000..9f4e21a
--- /dev/null
@@ -0,0 +1,37 @@
+From a59388668d0ce19dadea909e09f4eb905a27b1ce Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Wed, 8 Jun 2016 12:08:43 +0200
+Subject: [PATCH] serial/bcm63xx_uart: use correct alias naming
+
+The bcm63xx_uart driver uses the of alias for determing its id. Recent
+changes in dts files changed the expected 'uartX' to the recommended
+'serialX', breaking serial output. Fix this by checking for a 'serialX'
+alias as well.
+
+Fixes: e3b992d028f8 ("MIPS: BMIPS: Improve BCM6328 device tree")
+Fixes: 2d52ee82b475 ("MIPS: BMIPS: Improve BCM6368 device tree")
+Fixes: 7537d273e2f3 ("MIPS: BMIPS: Add device tree example for BCM6358")
+Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+Acked-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/tty/serial/bcm63xx_uart.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/drivers/tty/serial/bcm63xx_uart.c
++++ b/drivers/tty/serial/bcm63xx_uart.c
+@@ -813,8 +813,12 @@ static int bcm_uart_probe(struct platfor
+       struct clk *clk;
+       int ret;
+-      if (pdev->dev.of_node)
+-              pdev->id = of_alias_get_id(pdev->dev.of_node, "uart");
++      if (pdev->dev.of_node) {
++              pdev->id = of_alias_get_id(pdev->dev.of_node, "serial");
++
++              if (pdev->id < 0)
++                      pdev->id = of_alias_get_id(pdev->dev.of_node, "uart");
++      }
+       if (pdev->id < 0 || pdev->id >= BCM63XX_NR_UARTS)
+               return -EINVAL;