LINUX I2C模塊學習內容總結

經過一週的分析,i2c模塊的學習已告一段落。下面總結下i2c模塊的主要內容。

一、i2c模塊相對於LINUX設備-總線-驅動模型,增加了i2c adapter子類,其是i2c controller的抽象,其對應的設備也註冊到i2c總線上,但其不需要與i2c driver進行綁定,因此針對i2c adapter、i2c client,需要進行區分,以保證僅i2c client與i2c driver才會完成綁定操作;

二、針對一部分類型的i2c設備(spd類型、hwmon類型),無需自行創建i2c client設備,可以通過i2c_driver->detect方法實現自動探測,完成這類i2c設備的探測,併為其創建i2c client並註冊到i2c總線上,針對這一功能,則屬於i2c模塊的clien與driver的自動綁定操作,因此這一個功能對應的driver與client關於由i2c模塊負責維護,針對該功能需要i2c adapter、i2c driver同時支持。這是i2c模塊內部的功能。

三、因cpu需要藉助i2c adapter的方法實現與具體的i2c client的通信,因此針對i2c模塊而言,如果不創建具體i2c設備對應的驅動文件,藉助i2c adapter的通信方法,也可以完成與該adpater下掛載的i2c設備進行通信,因此i2c模塊又基於具體i2c adpater,為其創建了對應的字符設備文件,從而應用層程序可以通過其字符設備文件完成與該i2c adapter下所有i2c設備的通信。這種方式對功能簡單的i2c設備而言非常有用,直接通過寫應用程序即實現了通信功能。

四、針對i2c總線、i2c client/adapter、i2c driver,基本上可以理解為LINUX設備-總線-驅動模型的子類,除了上述的i2c模塊自有功能外,均是使用LINUX設備-總線-驅動模型,即完成了i2c模塊的功能(總線、設備、驅動的註冊、設備與驅動的綁定與解綁、sysfs文件系統下目錄與文件的創建等等功能)。

如下為本專題的分析文檔的鏈接:

《 》

《 》

《 》

《 》

《 》


分享到:


相關文章: