diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c
index 8749fb849803cc5f3df042edb0aff5258ad333ec..7bc163421be4200ad751829887191c52cf84b7e4 100644
--- a/drivers/tty/serial/of_serial.c
+++ b/drivers/tty/serial/of_serial.c
@@ -102,6 +102,10 @@ static int of_platform_serial_setup(struct platform_device *ofdev,
 	if (of_property_read_u32(np, "fifo-size", &prop) == 0)
 		port->fifosize = prop;
 
+	/* Check for a fixed line number */
+	if ((ret = of_alias_get_id(np, "serial")) >= 0)
+		port->line = ret;
+
 	port->irq = irq_of_parse_and_map(np, 0);
 	port->iotype = UPIO_MEM;
 	if (of_property_read_u32(np, "reg-io-width", &prop) == 0) {