天天看點

[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";
    };
};
           

繼續閱讀