mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: "João Loureiro" <joaofl@gmail.com>
Cc: Jiri Slaby <jirislaby@kernel.org>,
	Sherry Sun <sherry.sun@nxp.com>, Frank Li <frank.li@nxp.com>,
	Alexander Dahl <ada@thorsis.com>,
	linux-serial@vger.kernel.org, imx@lists.linux.dev,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] serial: fsl_lpuart: add support for GPIO-controlled modem lines
Date: Wed, 23 Sep 2026 14:53:46 +0200	[thread overview]
Message-ID: <2026092313-snare-goggles-ed1c@gregkh> (raw)
In-Reply-To: <20260819144458.253967-1-joaofl@gmail.com>

On Wed, Aug 19, 2026 at 04:44:53PM +0200, João Loureiro wrote:
> LPUART has no register bit to drive RTS to a chosen level: UARTMODIR only
> offers receiver-driven auto-RTS (RXRTSE) and RTS-during-transmit (TXRTSE).
> Consequently lpuart_set_mctrl() and lpuart32_set_mctrl() ignore TIOCM_RTS,
> and their get_mctrl() counterparts report a hardcoded
> TIOCM_CAR | TIOCM_DSR | TIOCM_CTS.
> 
> That makes it impossible to talk to a peripheral which is driven by a
> software controlled RTS strobe and answers on CTS.  TIOCMBIS/TIOCMBIC
> silently do nothing, and because CTS always reads back as asserted, a
> userspace handshake that waits for CTS to follow RTS can never complete:
> de-asserting RTS and waiting for CTS to drop times out every time.  Boards
> that route the two pins to plain GPIOs cannot work around it either, since
> the driver never looks at rts-gpios/cts-gpios.
> 
> Wire the driver up to the serial_mctrl_gpio helpers, as imx.c and
> atmel_serial.c already do.  set_mctrl() forwards the state to
> mctrl_gpio_set(), and get_mctrl() runs the flags through mctrl_gpio_get()
> so that a described cts-gpios overrides the assumed-asserted default.
> Boards without such a description keep the previous behaviour.  Modem
> status interrupts are enabled from startup() and disabled from shutdown(),
> with a .enable_ms callback for the serial core.
> 
> The same limitation was reported for an i.MX 8XLite board that needs RS-485
> with a GPIO RTS [1].  This change was developed and tested on an i.MX95
> board whose barcode scanner is driven over LPUART with a manual RTS strobe;
> with it, RTS toggles as requested and CTS is reported from the real pin.
> 
> [1] https://lore.kernel.org/all/20260210-rearview-hungrily-536a95fc3385@thorsis.com/
> 
> Signed-off-by: João Loureiro <joaofl@gmail.com>
> ---
>  drivers/tty/serial/Kconfig      |  1 +
>  drivers/tty/serial/fsl_lpuart.c | 35 +++++++++++++++++++++++++++++++--
>  2 files changed, 34 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index 4f57833e3ec7..a173eaf769ff 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -1301,6 +1301,7 @@ config SERIAL_FSL_LPUART
>  	tristate "Freescale lpuart serial port support"
>  	depends on HAS_DMA
>  	select SERIAL_CORE
> +	select SERIAL_MCTRL_GPIO if GPIOLIB

Why not depends?

thanks,

greg k-h

       reply	other threads:[~2026-09-23 12:53 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260819144458.253967-1-joaofl@gmail.com>
2026-09-23 12:53 ` Greg Kroah-Hartman [this message]
2026-09-23 20:41   ` João Loureiro

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2026092313-snare-goggles-ed1c@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=ada@thorsis.com \
    --cc=frank.li@nxp.com \
    --cc=imx@lists.linux.dev \
    --cc=jirislaby@kernel.org \
    --cc=joaofl@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=sherry.sun@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®