Linux驅動調試i2c設備從地址的確定
有時候我們查看芯片的datasheet可以得到一個i2c的地址,但是我們直接使用它,
配置到dts或者驅動當中使用,發現讀取不到設備id或者i2c通訊異常,
此時排查硬件沒問題之后,就要看看這個i2c地址是否設置對了。
比如我這里,i2c地址在datasheet寫了兩個,此時就不知道使用哪個了。
————————————————
其實,i2c地址主要由7bit的二進制數值組成,最低位是讀寫標志位,0表示寫,1表示讀,具體可看下圖。
所以我們在linux驅動中要取這個ic設備的從設備地址,就是0xA3或者0xA2右移一位得到,那就是0x51,dts配置如下:
所以我們在linux驅動中要取這個ic設備的從設備地址,就是0xA3或者0xA2右移一位得到, 那就是0x51,dts配置如下: rtc@51{ compatible = "nxp,pcf8563"; reg = <0x51>; };
實際使用的是7位地址。
讀寫的話,linux 驅動會自動填充這個地址。
原文鏈接:https://blog.csdn.net/qq_30624591/article/details/112348782
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。