天天看点

[RK3288][Android6.0] 调试笔记 --- I2C地址的确定

Platform: Rockchip

OS: Android 6.0

Kernel: 3.10.92

有网友用了一颗名为lt8631的IC,告诉我设置地址为0x94,然后开机出现错误:

<3>[ 0.551181] i2c i2c-2: Invalid 7-bit I2C address 0x94

<3>[ 0.551195] i2c i2c-2: of_i2c: Failure registering /[email protected]/[email protected]

事实上他是用错了,因为0x94包含了读写bit了。

[RK3288][Android6.0] 调试笔记 --- I2C地址的确定

0x94是最终写地址,0x95是读地址,驱动中会将最后一个bit位添加进去和i2c设备通信。

因此我们只要写左边7位地址就可以了,也就是

0x94 /2 = 0x4A

再看一个例子,产品中用了一颗rtc芯片RX8010:

[RK3288][Android6.0] 调试笔记 --- I2C地址的确定

那么在dts中只要设置地址为0x32即可:

&i2c1 {
    status = "okay";
    rx8010: rx801@32 {
        compatible = "epson,rx8010";
        reg = <>;
        status = "okay";
    };
};
           

继续阅读