On Tue, Jan 17, 2023 at 09:36:05PM +0100, Heiner Kallweit wrote: > There are slave devices that understand I2C but have read-only SDA and > SCL. Examples are FD650 7-segment LED controller and its derivatives. > Typical board designs don't even have a pull-up for both pins. > Therefore add properties for not using open-drain. For write-only SCL > we have a property already, add one for write-only SDA. > > Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx> > --- > v4: > - add no-pullup properties > --- > .../devicetree/bindings/i2c/i2c-gpio.yaml | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/Documentation/devicetree/bindings/i2c/i2c-gpio.yaml b/Documentation/devicetree/bindings/i2c/i2c-gpio.yaml > index e0d76d5eb..67898cc52 100644 > --- a/Documentation/devicetree/bindings/i2c/i2c-gpio.yaml > +++ b/Documentation/devicetree/bindings/i2c/i2c-gpio.yaml > @@ -33,6 +33,10 @@ properties: > open drain. > maxItems: 1 > > + i2c-gpio,sda-output-only: > + description: sda as output only > + type: boolean > + > i2c-gpio,scl-output-only: > description: scl as output only > type: boolean > @@ -63,6 +67,18 @@ properties: > GPIO line used for SCL into open drain mode, and that something is not > the GPIO chip. It is essentially an inconsistency flag. > > + i2c-gpio,sda-has-no-pullup: > + type: boolean > + description: sda is used in a non-compliant way and has no pull-up. > + Therefore disable open-drain. This property is mutually-exclusive > + with i2c-gpio,sda-open-drain. > + > + i2c-gpio,scl-has-no-pullup: > + type: boolean > + description: scl is used in a non-compliant way and has no pull-up. > + Therefore disable open-drain. This property is mutually-exclusive > + with i2c-gpio,scl-open-drain. The mutual-exclusion can be expressed as a schema instead: allOf: - not: required: - i2c-gpio,scl-has-no-pullup - i2c-gpio,scl-open-drain - not: required: - i2c-gpio,sda-has-no-pullup - i2c-gpio,sda-open-drain Using 'dependencies' with a schema would also work. Rob