diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2017-09-13 10:18:28 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-09-18 18:36:25 +0200 |
commit | 79d9e95a05c13647ccc68c5115b0ff6d21e53ab4 (patch) | |
tree | 48965c53202636d60b4a3f6fd479acb5a23f4b7b /drivers/tty/serial/atmel_serial.c | |
parent | ef838a81dd4de1e08454406812e42d7b9b417c4d (diff) | |
download | op-kernel-dev-79d9e95a05c13647ccc68c5115b0ff6d21e53ab4.zip op-kernel-dev-79d9e95a05c13647ccc68c5115b0ff6d21e53ab4.tar.gz |
serial: atmel: Use common rs485 device tree parsing function
We just got a common helper for parsing the rs485 specific
device tree properties. Use it and drop the open coded parser.
Note that there is a small difference between the removed and the now
used implementation: The former cleared flags to 0 if rs485-rts-delay
was given, the common helper clears SER_RS485_RX_DURING_TX and
SER_RS485_ENABLED only but always which makes more sense.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
[ukleinek: point out semantic change in commit log]
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Acked-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/atmel_serial.c')
-rw-r--r-- | drivers/tty/serial/atmel_serial.c | 25 |
1 files changed, 1 insertions, 24 deletions
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c index 7551cab..04e55f0 100644 --- a/drivers/tty/serial/atmel_serial.c +++ b/drivers/tty/serial/atmel_serial.c @@ -1667,29 +1667,6 @@ static void atmel_init_property(struct atmel_uart_port *atmel_port, } } -static void atmel_init_rs485(struct uart_port *port, - struct platform_device *pdev) -{ - struct device_node *np = pdev->dev.of_node; - - struct serial_rs485 *rs485conf = &port->rs485; - u32 rs485_delay[2]; - - /* rs485 properties */ - if (of_property_read_u32_array(np, "rs485-rts-delay", - rs485_delay, 2) == 0) { - rs485conf->delay_rts_before_send = rs485_delay[0]; - rs485conf->delay_rts_after_send = rs485_delay[1]; - rs485conf->flags = 0; - } - - if (of_get_property(np, "rs485-rx-during-tx", NULL)) - rs485conf->flags |= SER_RS485_RX_DURING_TX; - - if (of_get_property(np, "linux,rs485-enabled-at-boot-time", NULL)) - rs485conf->flags |= SER_RS485_ENABLED; -} - static void atmel_set_ops(struct uart_port *port) { struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); @@ -2373,7 +2350,7 @@ static int atmel_init_port(struct atmel_uart_port *atmel_port, atmel_init_property(atmel_port, pdev); atmel_set_ops(port); - atmel_init_rs485(port, pdev); + of_get_rs485_mode(pdev->dev.of_node, &port->rs485); port->iotype = UPIO_MEM; port->flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP; |