On Fri, Apr 24, 2026 at 09:42:24AM +0800, Guoniu Zhou wrote: > From: Guoniu Zhou > > 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 > --- > 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 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. Why 24, not 7? > + * 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 And why the divergent formatting compared to other defines in this file? > + > #endif > > -- > 2.34.1 >