summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2012-07-17 17:08:31 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-17 09:16:39 -0700
commitfde8be29239bf4a4118d918df1b2b8ef7266b1a2 (patch)
treecef130bf413458dd2ffb750d451d701965225543
parent36b3c070d2346c890d690d71f6eab02f8c511137 (diff)
downloadlinux-3.10-fde8be29239bf4a4118d918df1b2b8ef7266b1a2.tar.gz
linux-3.10-fde8be29239bf4a4118d918df1b2b8ef7266b1a2.tar.bz2
linux-3.10-fde8be29239bf4a4118d918df1b2b8ef7266b1a2.zip
tty: of_serial: add no-loopback-test property
The loopback test mode is not implemented in all NS16550 compatible UARTs. The 8250 driver uses the UPF_SKIP_TEST flag to indicate this, however it is not possible to set this flag via device-tree. Add a new 'no-loopback-test' property, and modify the of_serial driver to set the UPF_SKIP_TEST flag if the property is present. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--Documentation/devicetree/bindings/tty/serial/of-serial.txt2
-rw-r--r--drivers/tty/serial/of_serial.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/tty/serial/of-serial.txt b/Documentation/devicetree/bindings/tty/serial/of-serial.txt
index 0847fdeee11..ba385f2e0dd 100644
--- a/Documentation/devicetree/bindings/tty/serial/of-serial.txt
+++ b/Documentation/devicetree/bindings/tty/serial/of-serial.txt
@@ -25,6 +25,8 @@ Optional properties:
accesses to the UART (e.g. TI davinci).
- used-by-rtas : set to indicate that the port is in use by the OpenFirmware
RTAS and should not be registered.
+- no-loopback-test: set to indicate that the port does not implements loopback
+ test mode
Example:
diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c
index ffc7879e85a..df443b908ca 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,
port->uartclk = clk;
port->flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP
| UPF_FIXED_PORT | UPF_FIXED_TYPE;
+
+ if (of_find_property(np, "no-loopback-test", NULL))
+ port->flags |= UPF_SKIP_TEST;
+
port->dev = &ofdev->dev;
if (type == PORT_TEGRA)