1. Linux值I2C設備驅動
Linux之I2C驅動
一、I2C 驅動框架簡介
Linux內核中I2C的架構涉及三個主要部分:核心、匯流排驅動和設備驅動。
1.I2C 核心:負責I2C匯流排驅動和設備驅動的注冊、注銷。
2.I2C 匯流排驅動:實現I2C硬體適配器端,如CPU控制器或內置控制器。
3.I2C 設備驅動:實現I2C硬體設備端,通常連接適配器與CPU交換數據。
二、I2C 設備驅動流程
1.設備信息描述
對於不使用設備樹的場景,平台文件中添加設備信息,包括類型和地址。
對於使用設備樹的場景,設備樹文件中直接添加設備節點描述。
2. I2C 設備數據收發和處理
在設備驅動中創建、初始化並注冊I2C驅動,當匹配成功後執行探查函數,執行字元設備驅動流程。
初始化I2C設備通常通過I2C匯流排傳輸函數實現,調用I2C適配器中的相應函數完成數據讀寫。
構建i2c_msg結構體描述消息,使用i2c_transfer函數完成數據收發。
讀取或寫入多個寄存器時,需創建多個i2c_msg實例,分別對應發送地址和數據。
提供I2C數據發送和接收API,同樣調用i2c_transfer函數完成操作。