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);
                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);