The rs485 flag "SER_RS485_RTS_AFTER_SEND" was wrongly read from the GPIO flags. This caused the RTS to be high during boot. Signed-off-by: Rafael Gago Castano <rgc@xxxxxx> --- Changes from v2: Just forwarded to "jslaby" as Greg pointed out. Changes from v1: Use "of_get_named_gpio" used instead of "of_get_named_gpio_flags". The "flags" variable that caused the bug was unused. drivers/tty/serial/omap-serial.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c index 53d59e9..cc9826e 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; @@ -1617,13 +1616,13 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up, rs485conf->flags |= SER_RS485_RTS_AFTER_SEND; /* 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) { -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html