diff options
author | Rafael Gago <rafael.gago@gmail.com> | 2017-12-21 12:55:30 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-01-09 16:45:17 +0100 |
commit | 6eaf0b9507b8778bf36ba245a95d50aff268502c (patch) | |
tree | b2359806bc0e21ce8b445a9cfeea8ca313968a05 /drivers/tty/serial/omap-serial.c | |
parent | e50af488dddea7754e581d69bf978356e468845c (diff) |
tty: omap-serial: Fix initial on-boot RTS GPIO level
The rs485 flag "SER_RS485_RTS_AFTER_SEND" was wrongly read from the GPIO
flags. This caused the RTS pin to be high during boot.
Signed-off-by: Rafael Gago Castano <rgc@hms.se>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/omap-serial.c')
-rw-r--r-- | drivers/tty/serial/omap-serial.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c index 56e683373d6d..6420ae581a80 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c @@ -1602,7 +1602,6 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up, struct device_node *np) { struct serial_rs485 *rs485conf = &up->port.rs485; - enum of_gpio_flags flags; int ret; rs485conf->flags = 0; @@ -1622,13 +1621,13 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up, } /* check for tx enable gpio */ - up->rts_gpio = of_get_named_gpio_flags(np, "rts-gpio", 0, &flags); + up->rts_gpio = of_get_named_gpio(np, "rts-gpio", 0); if (gpio_is_valid(up->rts_gpio)) { ret = devm_gpio_request(up->dev, up->rts_gpio, "omap-serial"); if (ret < 0) return ret; - ret = gpio_direction_output(up->rts_gpio, - flags & SER_RS485_RTS_AFTER_SEND); + ret = rs485conf->flags & SER_RS485_RTS_AFTER_SEND ? 1 : 0; + ret = gpio_direction_output(up->rts_gpio, ret); if (ret < 0) return ret; } else if (up->rts_gpio == -EPROBE_DEFER) { |