1*c54473cbSPrzemyslaw MarczakI2C gpio device binding 2*c54473cbSPrzemyslaw Marczak======================= 3*c54473cbSPrzemyslaw Marczak 4*c54473cbSPrzemyslaw MarczakDriver: 5*c54473cbSPrzemyslaw Marczak- drivers/i2c/i2c-gpio.c 6*c54473cbSPrzemyslaw Marczak 7*c54473cbSPrzemyslaw MarczakSoftware i2c device-tree node properties: 8*c54473cbSPrzemyslaw MarczakRequired: 9*c54473cbSPrzemyslaw Marczak* #address-cells = <1>; 10*c54473cbSPrzemyslaw Marczak* #size-cells = <0>; 11*c54473cbSPrzemyslaw Marczak* compatible = "i2c-gpio"; 12*c54473cbSPrzemyslaw Marczak* gpios = <sda ...>, <scl ...>; 13*c54473cbSPrzemyslaw Marczak 14*c54473cbSPrzemyslaw MarczakOptional: 15*c54473cbSPrzemyslaw Marczak* i2c-gpio,delay-us = <5>; 16*c54473cbSPrzemyslaw Marczak The resulting transfer speed can be adjusted by setting the delay[us] 17*c54473cbSPrzemyslaw Marczak between gpio-toggle operations. Speed [Hz] = 1000000 / 4 * udelay[us], 18*c54473cbSPrzemyslaw Marczak It not defined, then default is 5us (~50KHz). 19*c54473cbSPrzemyslaw Marczak 20*c54473cbSPrzemyslaw MarczakExample: 21*c54473cbSPrzemyslaw Marczak 22*c54473cbSPrzemyslaw Marczaki2c-gpio@1 { 23*c54473cbSPrzemyslaw Marczak #address-cells = <1>; 24*c54473cbSPrzemyslaw Marczak #size-cells = <0>; 25*c54473cbSPrzemyslaw Marczak 26*c54473cbSPrzemyslaw Marczak compatible = "i2c-gpio"; 27*c54473cbSPrzemyslaw Marczak gpios = <&gpd1 0 GPIO_ACTIVE_HIGH>, /* SDA */ 28*c54473cbSPrzemyslaw Marczak <&gpd1 1 GPIO_ACTIVE_HIGH>; /* CLK */ 29*c54473cbSPrzemyslaw Marczak 30*c54473cbSPrzemyslaw Marczak i2c-gpio,delay-us = <5>; 31*c54473cbSPrzemyslaw Marczak 32*c54473cbSPrzemyslaw Marczak some_device@5 { 33*c54473cbSPrzemyslaw Marczak compatible = "some_device"; 34*c54473cbSPrzemyslaw Marczak reg = <0x5>; 35*c54473cbSPrzemyslaw Marczak ... 36*c54473cbSPrzemyslaw Marczak }; 37*c54473cbSPrzemyslaw Marczak}; 38