博客專欄

        EEPW首頁 > 博客 > Linux kernel 使能I2C驅動

        Linux kernel 使能I2C驅動

        發布人:電子禪石 時間:2024-02-03 來源:工程師 發布文章

           記錄一下在kernel中使用設備樹使能I2C驅動并在/dev目錄下顯示i2c-0節點的方法。


        第一步:menuconfig

                在內核源碼目錄下,我們先進行圖形化界面配置,使用如下命令:

            make menuconfig

        如圖,在路徑Device Drivers > I2C support下,進行I2C的選項選擇。其中第三項:I2C device interface要記得勾選,否則在/dev目錄下不會生成I2C節點!






        1706952508367143.png

        設備樹:

         一般使用硬件I2C的時候,原廠會在設備樹的dtsi文件中加入該節點的信息,但status狀態是disabled,所以我們需要在所使用的dts文件中使能該節點。

                原廠寫好的節點:

        image.png

        用戶需要自己添加的信息:

        image.png

        將狀態status賦值為okay一般就可以結束了。我這里I2C下掛了一個RTC芯片,所以我添加了RTC的節點。


        第三步:編譯、下載、測試

                在kernel啟動log中可以看到有I2C驅動控制器打印的信息

        在系統中 ls /dev查看是否存在I2C節點:
        1706952864704097.png

        可以看到,i2c-0節點存在,此時就可以使用open,write,read應用函數去操作節點啦。


                關鍵注意點:menuconfig選擇配置項的時候,一定記得要選擇I2C device interface,否則/dev下找不到該節點!

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

        menuconfig:

        1706952942912121.png












         設備樹:

        image.png

        注意使用的gpio有沒有其他其他功能被占用,另外要添加到alise節點。

        gpios兩個引腳的順序:

        1706953117150863.png


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: I2C

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 甘肃省| 钟祥市| 尚义县| 巴青县| 报价| 化州市| 郯城县| 若羌县| 雷州市| 两当县| 南开区| 繁峙县| 华容县| 元朗区| 清原| 延川县| 库尔勒市| 会宁县| 奉新县| 泰安市| 正阳县| 荣成市| 响水县| 乌恰县| 海安县| 都安| 双柏县| 阳山县| 电白县| 芮城县| 邻水| 安义县| 林芝县| 松溪县| 涿州市| 商水县| 剑川县| 沙雅县| 枣庄市| 双峰县| 亚东县|