Merge git://git.denx.de/u-boot-i2c
[oweals/u-boot.git] / doc / device-tree-bindings / i2c / i2c.txt
1 U-Boot I2C
2 ----------
3
4 U-Boot's I2C model has the concept of an offset within a chip (I2C target
5 device). The offset can be up to 4 bytes long, but is normally 1 byte,
6 meaning that offsets from 0 to 255 are supported by the chip. This often
7 corresponds to register numbers.
8
9 Apart from the controller-specific I2C bindings, U-Boot supports a special
10 property which allows the chip offset length to be selected.
11
12 Optional properties:
13 - u-boot,i2c-offset-len - length of chip offset in bytes. If omitted the
14     default value of 1 is used.
15 - gpios = <sda ...>, <scl ...>;
16   pinctrl-names = "default", "gpio";
17   pinctrl-0 = <&i2c_xfer>;
18   pinctrl-1 = <&i2c_gpio>;
19     Pin description for I2C bus software deblocking.
20
21
22 Example
23 -------
24
25 i2c4: i2c@12ca0000 {
26         cros-ec@1e {
27                 reg = <0x1e>;
28                 compatible = "google,cros-ec";
29                 i2c-max-frequency = <100000>;
30                 u-boot,i2c-offset-len = <0>;
31                 ec-interrupt = <&gpx1 6 GPIO_ACTIVE_LOW>;
32         };
33 };
34
35 &i2c1 {
36         pinctrl-names = "default", "gpio";
37         pinctrl-0 = <&i2c1_xfer>;
38         pinctrl-1 = <&i2c1_gpio>;
39         gpios = <&gpio1 26 GPIO_ACTIVE_LOW>, /* SDA */
40                 <&gpio1 27 GPIO_ACTIVE_LOW>; /* SCL */
41 };