Device-Tree bindings for i2c gpio driver Required properties: - compatible = "i2c-gpio"; - sda-gpios: gpio used for the sda signal, this should be flagged as active high using open drain with (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN) from since the signal is by definition open drain. - scl-gpios: gpio used for the scl signal, this should be flagged as active high using open drain with (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN) from since the signal is by definition open drain. Optional properties: - i2c-gpio,scl-output-only: scl as output only - i2c-gpio,delay-us: delay between GPIO operations (may depend on each platform) - i2c-gpio,timeout-ms: timeout to get data Deprecated properties, do not use in new device tree sources: - gpios: sda and scl gpio, alternative for {sda,scl}-gpios - i2c-gpio,sda-open-drain: this means that something outside of our control has put the GPIO line used for SDA into open drain mode, and that something is not the GPIO chip. It is essentially an inconsistency flag. - i2c-gpio,scl-open-drain: this means that something outside of our control has put the GPIO line used for SCL into open drain mode, and that something is not the GPIO chip. It is essentially an inconsistency flag. Example nodes: #include i2c@0 { compatible = "i2c-gpio"; sda-gpios = <&pioA 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; scl-gpios = <&pioA 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ #address-cells = <1>; #size-cells = <0>; rv3029c2@56 { compatible = "rv3029c2"; reg = <0x56>; }; };