色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專(zhuān)欄

          EEPW首頁(yè) > 博客 > Linux kernel 使能I2C驅(qū)動(dòng)

          Linux kernel 使能I2C驅(qū)動(dòng)

          發(fā)布人:電子禪石 時(shí)間:2024-02-03 來(lái)源:工程師 發(fā)布文章

             記錄一下在kernel中使用設(shè)備樹(shù)使能I2C驅(qū)動(dòng)并在/dev目錄下顯示i2c-0節(jié)點(diǎn)的方法。


          第一步:menuconfig

                  在內(nèi)核源碼目錄下,我們先進(jìn)行圖形化界面配置,使用如下命令:

              make menuconfig

          如圖,在路徑Device Drivers > I2C support下,進(jìn)行I2C的選項(xiàng)選擇。其中第三項(xiàng):I2C device interface要記得勾選,否則在/dev目錄下不會(huì)生成I2C節(jié)點(diǎn)!






          1706952508367143.png

          設(shè)備樹(shù):

           一般使用硬件I2C的時(shí)候,原廠(chǎng)會(huì)在設(shè)備樹(shù)的dtsi文件中加入該節(jié)點(diǎn)的信息,但status狀態(tài)是disabled,所以我們需要在所使用的dts文件中使能該節(jié)點(diǎn)。

                  原廠(chǎng)寫(xiě)好的節(jié)點(diǎn):

          image.png

          用戶(hù)需要自己添加的信息:

          image.png

          將狀態(tài)status賦值為okay一般就可以結(jié)束了。我這里I2C下掛了一個(gè)RTC芯片,所以我添加了RTC的節(jié)點(diǎn)。


          第三步:編譯、下載、測(cè)試

                  在kernel啟動(dòng)log中可以看到有I2C驅(qū)動(dòng)控制器打印的信息

          在系統(tǒng)中 ls /dev查看是否存在I2C節(jié)點(diǎn):
          1706952864704097.png

          可以看到,i2c-0節(jié)點(diǎn)存在,此時(shí)就可以使用open,write,read應(yīng)用函數(shù)去操作節(jié)點(diǎn)啦。


                  關(guān)鍵注意點(diǎn):menuconfig選擇配置項(xiàng)的時(shí)候,一定記得要選擇I2C device interface,否則/dev下找不到該節(jié)點(diǎn)!

          附加記錄(linux下gpio模擬i2c)

          menuconfig:

          1706952942912121.png












           設(shè)備樹(shù):

          image.png

          注意使用的gpio有沒(méi)有其他其他功能被占用,另外要添加到alise節(jié)點(diǎn)。

          gpios兩個(gè)引腳的順序:

          1706953117150863.png


          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



          關(guān)鍵詞: I2C

          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉