xref: /OK3568_Linux_fs/u-boot/doc/device-tree-bindings/i2c/i2c-gpio.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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