From: Fabio Estevam <fabio.estevam@xxxxxxx> On a board that needs to drive RTS GPIO high in order to enable the transmissionof a RS485 transceiver the following description is passed in the devide tree: &uart4 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart4>; rts-gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; status = "okay"; }; However the polarity observed on the oscilloscope is inverted. Change the mctrl_gpio_set() logic so that the RTS gpio pin can behave correctly. Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxx> --- Hi, Marking as RFC as I don't know if this is the proper way to fix it. Is my device tree description correct assuming I need RTS pin going to high to enable the TXEN pin of the RS485 transceiver? Thanks drivers/tty/serial/imx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index 33fcc84..451e50f 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c @@ -339,14 +339,14 @@ static void imx_port_rts_active(struct imx_port *sport, unsigned long *ucr2) *ucr2 &= ~UCR2_CTSC; *ucr2 |= UCR2_CTS; - mctrl_gpio_set(sport->gpios, sport->port.mctrl | TIOCM_RTS); + mctrl_gpio_set(sport->gpios, sport->port.mctrl & ~TIOCM_RTS); } static void imx_port_rts_inactive(struct imx_port *sport, unsigned long *ucr2) { *ucr2 &= ~(UCR2_CTSC | UCR2_CTS); - mctrl_gpio_set(sport->gpios, sport->port.mctrl & ~TIOCM_RTS); + mctrl_gpio_set(sport->gpios, sport->port.mctrl | TIOCM_RTS); } static void imx_port_rts_auto(struct imx_port *sport, unsigned long *ucr2) -- 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