diff options
Diffstat (limited to 'drivers/tty/serial/of_serial.c')
-rw-r--r-- | drivers/tty/serial/of_serial.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c index 34e71874a892..df443b908ca3 100644 --- a/drivers/tty/serial/of_serial.c +++ b/drivers/tty/serial/of_serial.c | |||
@@ -105,6 +105,10 @@ static int __devinit of_platform_serial_setup(struct platform_device *ofdev, | |||
105 | port->uartclk = clk; | 105 | port->uartclk = clk; |
106 | port->flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP | 106 | port->flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP |
107 | | UPF_FIXED_PORT | UPF_FIXED_TYPE; | 107 | | UPF_FIXED_PORT | UPF_FIXED_TYPE; |
108 | |||
109 | if (of_find_property(np, "no-loopback-test", NULL)) | ||
110 | port->flags |= UPF_SKIP_TEST; | ||
111 | |||
108 | port->dev = &ofdev->dev; | 112 | port->dev = &ofdev->dev; |
109 | 113 | ||
110 | if (type == PORT_TEGRA) | 114 | if (type == PORT_TEGRA) |
@@ -144,8 +148,15 @@ static int __devinit of_platform_serial_probe(struct platform_device *ofdev) | |||
144 | switch (port_type) { | 148 | switch (port_type) { |
145 | #ifdef CONFIG_SERIAL_8250 | 149 | #ifdef CONFIG_SERIAL_8250 |
146 | case PORT_8250 ... PORT_MAX_8250: | 150 | case PORT_8250 ... PORT_MAX_8250: |
147 | ret = serial8250_register_port(&port); | 151 | { |
152 | /* For now the of bindings don't support the extra | ||
153 | 8250 specific bits */ | ||
154 | struct uart_8250_port port8250; | ||
155 | memset(&port8250, 0, sizeof(port8250)); | ||
156 | port8250.port = port; | ||
157 | ret = serial8250_register_8250_port(&port8250); | ||
148 | break; | 158 | break; |
159 | } | ||
149 | #endif | 160 | #endif |
150 | #ifdef CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL | 161 | #ifdef CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL |
151 | case PORT_NWPSERIAL: | 162 | case PORT_NWPSERIAL: |