[PATCH v6 1/4] dt-bindings: media: ti,ds90ub953: Add support for remote GPIO data source

Guoniu Zhou
2026-04-24T01:40:01Z

From: Guoniu Zhou <guoniu.zhou@nxp.com>

The DS90UB953 supports four pins, GPIO0 through GPIO3. When enabled as an
output, it can be programed to output local data or remote data coming
from the remote compatible deserializer.

Add GPIO flag in second cell to select remote GPIO data source.

Signed-off-by: Guoniu Zhou <guoniu.zhou@nxp.com>
---
Changes in v6:
- Added GPIO_DATA_SOURCE_REMOTE flag to dt-bindings/gpio/gpio.h
- Updated dt-bindings documentation accordingly
- Dropped Reviewed-by tag from Rob Herring due to significant binding change

Changes in v5:
- Improve the description for "#gpio-cells" as commented by Conor.

Changes in v4:
- Use folder block instead of literal block for #gpio-cell property description.

Changes in v3:
- Make GPIO range from 0-3 to 0-7 to support GPIO data from remote
compatible deserializer suggested by Rob instead of adding third
cell for GPIO controller.

Changes in v2:
- Remove new property ti,gpio-data
- Add third cell for GPIO controller to select GPIO output source.
---
Documentation/devicetree/bindings/media/i2c/ti,ds90ub953.yaml | 6 ++++--
include/dt-bindings/gpio/gpio.h | 8 ++++++++
2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/media/i2c/ti,ds90ub953.yaml b/Documentation/devicetree/bindings/media/i2c/ti,ds90ub953.yaml
index 2e129bf573b7..da63771bc236 100644
--- a/Documentation/devicetree/bindings/media/i2c/ti,ds90ub953.yaml
+++ b/Documentation/devicetree/bindings/media/i2c/ti,ds90ub953.yaml
@@ -21,8 +21,10 @@ properties:
'#gpio-cells':
const: 2
description:
- First cell is the GPIO pin number, second cell is the flags. The GPIO pin
- number must be in range of [0, 3].
+ First cell is the GPIO pin number (0-3) and the second cell is used
+ to specify flags. See <dt-bindings/gpio/gpio.h> for available flags
+ including GPIO_DATA_SOURCE_REMOTE for remote GPIO data source.
+ Flags can be OR'd together.

gpio-controller: true

diff --git a/include/dt-bindings/gpio/gpio.h b/include/dt-bindings/gpio/gpio.h
index b5d531237448..d04a494d96ad 100644
--- a/include/dt-bindings/gpio/gpio.h
+++ b/include/dt-bindings/gpio/gpio.h
@@ -42,4 +42,12 @@
/* Bit 6 express pull disable */
#define GPIO_PULL_DISABLE 64

+/*
+ * Bit 24 indicates the GPIO data source is from a remote device.
+ * This is used in serializer/deserializer setups where the GPIO pin
+ * on the local device (e.g., TI DS90UB953 serializer) reflects the
+ * state of a GPIO on the remote device (e.g., TI DS90UB960 deserializer).
+ */
+#define GPIO_DATA_SOURCE_REMOTE 0x01000000
+
#endif

--
2.34.1