struct uniphier8250_priv *priv;
        struct resource *regs;
        void __iomem *membase;
-       int irq;
        int ret;
 
        regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!membase)
                return -ENOMEM;
 
-       irq = platform_get_irq(pdev, 0);
-       if (irq < 0)
-               return irq;
-
        priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
        if (!priv)
                return -ENOMEM;
 
        memset(&up, 0, sizeof(up));
 
-       ret = of_alias_get_id(dev->of_node, "serial");
-       if (ret < 0) {
-               dev_err(dev, "failed to get alias id\n");
-               return ret;
-       }
-       up.port.line = ret;
-
        priv->clk = devm_clk_get(dev, NULL);
        if (IS_ERR(priv->clk)) {
                dev_err(dev, "failed to get clock\n");
        up.port.mapbase = regs->start;
        up.port.mapsize = resource_size(regs);
        up.port.membase = membase;
-       up.port.irq = irq;
+
+       ret = uart_read_port_properties(&up.port);
+       if (ret)
+               return ret;
 
        up.port.type = PORT_16550A;
        up.port.iotype = UPIO_MEM32;