[PATCH RESEND 3/5] tty/serial: Add GPIOLIB helpers for controlling modem lines
Greg Kroah-Hartman
gregkh at linuxfoundation.org
Wed May 28 12:45:50 PDT 2014
On Tue, May 13, 2014 at 08:20:43PM +0200, Richard Genoud wrote:
> This patch add some helpers to control modem lines (CTS/RTS/DSR...) via
> GPIO.
> This will be useful for many boards which have a serial controller that
> only handle CTS/RTS pins (or even just RX/TX).
>
> Signed-off-by: Richard Genoud <richard.genoud at gmail.com>
> Tested-by: Yegor Yefremov <yegorslists at googlemail.com>
> ---
> Documentation/serial/driver | 25 ++++++
> drivers/tty/serial/Kconfig | 3 +
> drivers/tty/serial/Makefile | 3 +
> drivers/tty/serial/serial_mctrl_gpio.c | 143 ++++++++++++++++++++++++++++++++
> drivers/tty/serial/serial_mctrl_gpio.h | 110 ++++++++++++++++++++++++
> 5 files changed, 284 insertions(+)
> create mode 100644 drivers/tty/serial/serial_mctrl_gpio.c
> create mode 100644 drivers/tty/serial/serial_mctrl_gpio.h
>
> diff --git a/Documentation/serial/driver b/Documentation/serial/driver
> index c3a7689..3bba1ae 100644
> --- a/Documentation/serial/driver
> +++ b/Documentation/serial/driver
> @@ -429,3 +429,28 @@ thus:
> struct uart_port port;
> int my_stuff;
> };
> +
> +Modem control lines via GPIO
> +----------------------------
> +
> +Some helpers are provided in order to set/get modem control lines via GPIO.
> +
> +mctrl_gpio_init(dev, idx):
> + This will get the {cts,rts,...}-gpios from device tree if they are
> + present and request them, set direction etc, and return an
> + allocated structure. devm_* functions are used, so there's no need
> + to call mctrl_gpio_free().
> +
> +mctrl_gpio_free(dev, gpios):
> + This will free the requested gpios in mctrl_gpio_init().
> + As devm_* function are used, there's generally no need to call
> + this function.
> +
> +mctrl_gpio_to_gpiod(gpios, gidx)
> + This returns the gpio structure associated to the modem line index.
> +
> +mctrl_gpio_set(gpios, mctrl):
> + This will sets the gpios according to the mctrl state.
> +
> +mctrl_gpio_get(gpios, mctrl):
> + This will update mctrl with the gpios values.
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index 5d9b01a..95afd31 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -1510,4 +1510,7 @@ config SERIAL_ST_ASC_CONSOLE
>
> endmenu
>
> +config SERIAL_MCTRL_GPIO
> + tristate
Why is this added here? Who is going to use it?
> +
> endif # TTY
> diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile
> index 3680854..bcf31da 100644
> --- a/drivers/tty/serial/Makefile
> +++ b/drivers/tty/serial/Makefile
> @@ -87,3 +87,6 @@ obj-$(CONFIG_SERIAL_EFM32_UART) += efm32-uart.o
> obj-$(CONFIG_SERIAL_ARC) += arc_uart.o
> obj-$(CONFIG_SERIAL_RP2) += rp2.o
> obj-$(CONFIG_SERIAL_FSL_LPUART) += fsl_lpuart.o
> +
> +# GPIOLIB helpers for modem control lines
> +obj-$(CONFIG_SERIAL_MCTRL_GPIO) += serial_mctrl_gpio.o
This chunk doesn't apply anymore :(
More information about the linux-arm-kernel
mailing list