The setting of RS485 RTS polarity is inverse in the current driver.
When the property of 'rs485-rts-active-low' is enabled in the dts node,
the RTS signal should be LOW during sending. Otherwise, if there is no
such a property, the RTS should be HIGH during sending.
Signed-off-by: Nicolas Diaz <[email protected]>
Signed-off-by: Shenwei Wang <[email protected]>
---
drivers/tty/serial/fsl_lpuart.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index afa0f941c862f..abc3a3674bc39 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -1394,9 +1394,9 @@ static int lpuart_config_rs485(struct uart_port *port, struct ktermios *termios,
* Note: UART is assumed to be active high.
*/
if (rs485->flags & SER_RS485_RTS_ON_SEND)
- modem &= ~UARTMODEM_TXRTSPOL;
- else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
modem |= UARTMODEM_TXRTSPOL;
+ else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
+ modem &= ~UARTMODEM_TXRTSPOL;
}
writeb(modem, sport->port.membase + UARTMODEM);
--
2.25.1
On 02. 08. 22, 18:38, Shenwei Wang wrote:
> The setting of RS485 RTS polarity is inverse in the current driver.
>
> When the property of 'rs485-rts-active-low' is enabled in the dts node,
> the RTS signal should be LOW during sending. Otherwise, if there is no
> such a property, the RTS should be HIGH during sending.
What commit this fixes? I.e. I am missing a Fixes tag below.
> Signed-off-by: Nicolas Diaz <[email protected]>
> Signed-off-by: Shenwei Wang <[email protected]>
> ---
> drivers/tty/serial/fsl_lpuart.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
> index afa0f941c862f..abc3a3674bc39 100644
> --- a/drivers/tty/serial/fsl_lpuart.c
> +++ b/drivers/tty/serial/fsl_lpuart.c
> @@ -1394,9 +1394,9 @@ static int lpuart_config_rs485(struct uart_port *port, struct ktermios *termios,
> * Note: UART is assumed to be active high.
> */
> if (rs485->flags & SER_RS485_RTS_ON_SEND)
> - modem &= ~UARTMODEM_TXRTSPOL;
> - else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
> modem |= UARTMODEM_TXRTSPOL;
> + else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
> + modem &= ~UARTMODEM_TXRTSPOL;
> }
>
> writeb(modem, sport->port.membase + UARTMODEM);
thanks,
--
js
suse labs
> -----Original Message-----
> From: Jiri Slaby <[email protected]>
> Sent: Thursday, August 4, 2022 1:51 AM
> To: Shenwei Wang <[email protected]>; [email protected]
> Cc: [email protected]; [email protected]; dl-linux-imx
> <[email protected]>; Nicolas Diaz <[email protected]>
> Subject: [EXT] Re: [PATCH 1/1] serial: fsl_lpuart: RS485 RTS polariy is inverse
>
> Caution: EXT Email
>
> On 02. 08. 22, 18:38, Shenwei Wang wrote:
> > The setting of RS485 RTS polarity is inverse in the current driver.
> >
> > When the property of 'rs485-rts-active-low' is enabled in the dts
> > node, the RTS signal should be LOW during sending. Otherwise, if there
> > is no such a property, the RTS should be HIGH during sending.
>
> What commit this fixes? I.e. I am missing a Fixes tag below.
It is a fix for the following commit:
Fixes: 03895cf41d18 ("tty: serial: fsl_lpuart: Add support for RS-485")
Should I send out a new version to update it?
Thanks,
Shenwei
>
> > Signed-off-by: Nicolas Diaz <[email protected]>
> > Signed-off-by: Shenwei Wang <[email protected]>
> > ---
> > drivers/tty/serial/fsl_lpuart.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/tty/serial/fsl_lpuart.c
> > b/drivers/tty/serial/fsl_lpuart.c index afa0f941c862f..abc3a3674bc39
> > 100644
> > --- a/drivers/tty/serial/fsl_lpuart.c
> > +++ b/drivers/tty/serial/fsl_lpuart.c
> > @@ -1394,9 +1394,9 @@ static int lpuart_config_rs485(struct uart_port *port,
> struct ktermios *termios,
> > * Note: UART is assumed to be active high.
> > */
> > if (rs485->flags & SER_RS485_RTS_ON_SEND)
> > - modem &= ~UARTMODEM_TXRTSPOL;
> > - else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
> > modem |= UARTMODEM_TXRTSPOL;
> > + else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
> > + modem &= ~UARTMODEM_TXRTSPOL;
> > }
> >
> > writeb(modem, sport->port.membase + UARTMODEM);
>
> thanks,
> --
> js
> suse labs
On 04. 08. 22, 16:35, Shenwei Wang wrote:
>> On 02. 08. 22, 18:38, Shenwei Wang wrote:
>>> The setting of RS485 RTS polarity is inverse in the current driver.
>>>
>>> When the property of 'rs485-rts-active-low' is enabled in the dts
>>> node, the RTS signal should be LOW during sending. Otherwise, if there
>>> is no such a property, the RTS should be HIGH during sending.
>>
>> What commit this fixes? I.e. I am missing a Fixes tag below.
>
> It is a fix for the following commit:
> Fixes: 03895cf41d18 ("tty: serial: fsl_lpuart: Add support for RS-485")
>
> Should I send out a new version to update it?
It's up to Greg, but I guess so.
--
js
suse labs