mbox series

[v2,0/4] rs485 bus termination GPIO

Message ID cover.1589285873.git.lukas@wunner.de
Headers show
Series rs485 bus termination GPIO | expand

Message

Lukas Wunner May 12, 2020, 12:40 p.m. UTC
Define a device tree binding for an rs485 bus termination GPIO
(patch [3/4]), amend the serial core to retrieve the GPIO from
the device tree and amend the default ->rs485_config() callback
for 8250 drivers to change the GPIO on request from user space
(patch [4/4]).

Retrieving the GPIO from the device tree may fail, so allow
uart_get_rs485_mode() to return an errno and change all callers
to check for failure (patch [2/4]).

Fix a bug in the 8250 core if retrieval of the GPIO initially
fails with -EPROBE_DEFER and is later retried (patch [1/4]).


Changes v1 -> v2:

Patch [1/4]:
* Drop unnecessary "else" after "if ... goto" statement. (Andy)
* Document applicability to older kernels in commit message. (Andy)
* Add Fixes tag. (Andy)

Patch [4/4]:
* Drop unnecessary devm_gpiod_put(). (Andy)
* Use GPIOD_OUT_LOW macro for brevity. (Andy)
* Document the rationale for disabling termination by default.
* Drop nonsensical read of GPIO after setting its direction to out.


Link to v1:
https://lore.kernel.org/linux-serial/cover.1588505407.git.lukas@wunner.de/


Lukas Wunner (4):
  serial: 8250: Avoid error message on reprobe
  serial: Allow uart_get_rs485_mode() to return errno
  dt-bindings: serial: Add binding for rs485 bus termination GPIO
  serial: 8250: Support rs485 bus termination GPIO

 .../devicetree/bindings/serial/rs485.yaml     |  4 ++++
 drivers/tty/serial/8250/8250_core.c           | 18 ++++++++++-----
 drivers/tty/serial/8250/8250_port.c           |  4 ++++
 drivers/tty/serial/ar933x_uart.c              |  6 +++--
 drivers/tty/serial/atmel_serial.c             |  6 +++--
 drivers/tty/serial/fsl_lpuart.c               |  5 ++++-
 drivers/tty/serial/imx.c                      |  6 ++++-
 drivers/tty/serial/omap-serial.c              |  4 +++-
 drivers/tty/serial/serial_core.c              | 22 ++++++++++++++++++-
 drivers/tty/serial/stm32-usart.c              |  8 +++----
 include/linux/serial_core.h                   |  4 +++-
 11 files changed, 69 insertions(+), 18 deletions(-)