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