[RK3288][Android6.0] 調試筆記 — I2C地址的確定

[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 /i2c@ff660000/lt8631@94

事實上他是用錯瞭,因為0x94包含瞭讀寫bit瞭。
這裡寫圖片描述

0x94是最終寫地址,0x95是讀地址,驅動中會將最後一個bit位添加進去和i2c設備通信。
因此我們隻要寫左邊7位地址就可以瞭,也就是

0x94 /2 = 0x4A


再看一個例子,產品中用瞭一顆rtc芯片RX8010:
這裡寫圖片描述
那麼在dts中隻要設置地址為0x32即可:

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

You May Also Like