On 18.01.2023 17:32, Rob Herring wrote: > 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. > Great, I wasn't aware of options to express mutually-exclusive properties. I'll wait a little for other feedback regarding the series and then submit a new version incl. the extended schema. > Rob Heiner