Commit b0b8c84c authored by Heikki Krogerus's avatar Heikki Krogerus Committed by Greg Kroah-Hartman

serial: of_serial: Handle auto-flow-control property

Automatic Flow Control capability is not tied to this
property. This is only one way of detecting it. The property
is limited to be used only with 8250 driver.
Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 44a459fd
...@@ -34,6 +34,9 @@ Optional properties: ...@@ -34,6 +34,9 @@ Optional properties:
- no-loopback-test: set to indicate that the port does not implements loopback - no-loopback-test: set to indicate that the port does not implements loopback
test mode test mode
- fifo-size: the fifo size of the UART. - fifo-size: the fifo size of the UART.
- auto-flow-control: one way to enable automatic flow control support. The
driver is allowed to detect support for the capability even without this
property.
Example: Example:
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/serial_8250.h>
#include <linux/serial_reg.h> #include <linux/serial_reg.h>
#include <linux/of_address.h> #include <linux/of_address.h>
#include <linux/of_irq.h> #include <linux/of_irq.h>
...@@ -22,6 +21,8 @@ ...@@ -22,6 +21,8 @@
#include <linux/nwpserial.h> #include <linux/nwpserial.h>
#include <linux/clk.h> #include <linux/clk.h>
#include "8250/8250.h"
struct of_serial_info { struct of_serial_info {
struct clk *clk; struct clk *clk;
int type; int type;
...@@ -171,11 +172,17 @@ static int of_platform_serial_probe(struct platform_device *ofdev) ...@@ -171,11 +172,17 @@ static int of_platform_serial_probe(struct platform_device *ofdev)
#ifdef CONFIG_SERIAL_8250 #ifdef CONFIG_SERIAL_8250
case PORT_8250 ... PORT_MAX_8250: case PORT_8250 ... PORT_MAX_8250:
{ {
/* For now the of bindings don't support the extra
8250 specific bits */
struct uart_8250_port port8250; struct uart_8250_port port8250;
memset(&port8250, 0, sizeof(port8250)); memset(&port8250, 0, sizeof(port8250));
port8250.port = port; port8250.port = port;
if (port.fifosize)
port8250.capabilities = UART_CAP_FIFO;
if (of_property_read_bool(ofdev->dev.of_node,
"auto-flow-control"))
port8250.capabilities |= UART_CAP_AFE;
ret = serial8250_register_8250_port(&port8250); ret = serial8250_register_8250_port(&port8250);
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment