[PATCH v2 0/2] Introduce new optional property to mark port as write only.

From: Niall Leonard via B4 Submission Endpoint
Date: Tue Jan 31 2023 - 08:49:55 EST


Some electronics do not allow the data regsister to be read without
corrupting the existing data on the port. It a quirk of the board
design.
e.g. I have a couple of boards where the electronics engineer decided
to only use the chip select line, so no read/write signal is connected.
This means that reading the address activates the chip select and drives
the contents of the data bus to the port.This makes it impossible to
read the last data written to the port.

This solution is to use the existing shadow data register 'bgpio_data'.
It can be used to return the last value written to the port by the read
operation.

This is enabled for a particular port using a new flag and a new
device tree property "no-input" to allow it to be selected on a board by
board basis. This means it will only effect hardware that requests it.

Signed-off-by: Niall Leonard <nl250060@xxxxxxx>
---
Changes in v2:
- Description of change updated to clarify why it is needed.
- Patches squashed as per request during review.
- wd,mbl-gpio bindings updated to yaml format.
- Link to v1: https://lore.kernel.org/r/20230126-gpio-mmio-fix-v1-0-8a20ce0e8275@xxxxxxx

---
Niall Leonard (2):
dt-bindings: improve wb,mbl-gpio binding documentation.
gpio: mmio: Use new flag BGPIOF_NO_INPUT.

.../devicetree/bindings/gpio/wd,mbl-gpio.txt | 38 -----------
.../devicetree/bindings/gpio/wd,mbl-gpio.yaml | 78 ++++++++++++++++++++++
drivers/gpio/gpio-mmio.c | 24 ++++++-
include/linux/gpio/driver.h | 1 +
4 files changed, 100 insertions(+), 41 deletions(-)
---
base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2
change-id: 20230126-gpio-mmio-fix-1a69d03ec9e7

Best regards,
--
Niall Leonard <nl250060@xxxxxxx>