mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 22:26:55 +00:00
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>
This commit is contained in:
parent
e50af488dd
commit
6eaf0b9507
1 changed files with 3 additions and 4 deletions
|
@ -1602,7 +1602,6 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up,
|
||||||
struct device_node *np)
|
struct device_node *np)
|
||||||
{
|
{
|
||||||
struct serial_rs485 *rs485conf = &up->port.rs485;
|
struct serial_rs485 *rs485conf = &up->port.rs485;
|
||||||
enum of_gpio_flags flags;
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
rs485conf->flags = 0;
|
rs485conf->flags = 0;
|
||||||
|
@ -1622,13 +1621,13 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check for tx enable gpio */
|
/* 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)) {
|
if (gpio_is_valid(up->rts_gpio)) {
|
||||||
ret = devm_gpio_request(up->dev, up->rts_gpio, "omap-serial");
|
ret = devm_gpio_request(up->dev, up->rts_gpio, "omap-serial");
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
ret = gpio_direction_output(up->rts_gpio,
|
ret = rs485conf->flags & SER_RS485_RTS_AFTER_SEND ? 1 : 0;
|
||||||
flags & SER_RS485_RTS_AFTER_SEND);
|
ret = gpio_direction_output(up->rts_gpio, ret);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
} else if (up->rts_gpio == -EPROBE_DEFER) {
|
} else if (up->rts_gpio == -EPROBE_DEFER) {
|
||||||
|
|
Loading…
Reference in a new issue