serial: lantiq: Get serial id from dts
authorSongjun Wu <songjun.wu@linux.intel.com>
Tue, 16 Oct 2018 09:19:04 +0000 (17:19 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Nov 2018 16:43:27 +0000 (08:43 -0800)
Get serial id from dts, also keep backward compatible when dts is not
updated.

Signed-off-by: Songjun Wu <songjun.wu@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/lantiq.c

index 044128277248b0298a67667c872b96dfc11fe472..66c67167776125855f955ebcb9fe04bb175ed842 100644 (file)
@@ -688,7 +688,7 @@ lqasc_probe(struct platform_device *pdev)
        struct ltq_uart_port *ltq_port;
        struct uart_port *port;
        struct resource *mmres, irqres[3];
-       int line = 0;
+       int line;
        int ret;
 
        mmres = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -699,9 +699,20 @@ lqasc_probe(struct platform_device *pdev)
                return -ENODEV;
        }
 
-       /* check if this is the console port */
-       if (mmres->start != CPHYSADDR(LTQ_EARLY_ASC))
-               line = 1;
+       /* get serial id */
+       line = of_alias_get_id(node, "serial");
+       if (line < 0) {
+               if (IS_ENABLED(CONFIG_LANTIQ)) {
+                       if (mmres->start == CPHYSADDR(LTQ_EARLY_ASC))
+                               line = 0;
+                       else
+                               line = 1;
+               } else {
+                       dev_err(&pdev->dev, "failed to get alias id, errno %d\n",
+                               line);
+                       return line;
+               }
+       }
 
        if (lqasc_port[line]) {
                dev_err(&pdev->dev, "port %d already allocated\n", line);