Linux驅動學習 I2C裝置驅動框架原始碼解析

2021-10-09 20:37:34 字數 641 閱讀 3104

一、引言

二、原始碼分析

------>i2c核心介紹

------>i2c driver的註冊

------>i2c client的註冊

------>probe

------>i2c裝置構造的四種方法

------>i2c與cpu通訊方式之前和大家分析了linux中的i2c框架,本章來結合原始碼分析乙個具體的i2c裝置

i2c核心介紹

i2c 核心提供了 i2c匯流排驅動 和 裝置驅動 的註冊、登出方法,i2c通訊方法上層的、與 具體介面卡無關的** 以及 探測裝置、檢測裝置位址的上層**等。

i2c匯流排驅動

i2c匯流排驅動是對i2c硬體體系結構中介面卡端的實現,介面卡可由cpu控制,甚至直接整合在cpu內部。

i2c匯流排驅動主要包含了i2c介面卡資料結構i2c_adapter、i2c介面卡的algorithm資料結構i2c_algorithm和控制i2c介面卡產生通訊訊號的函式。

經由i2c匯流排驅動的**,我們可以控制i2c介面卡以主控方式產生開始位、停止位、讀寫週期,以及以從裝置方式被讀寫、產生ack等。

i2c裝置驅動

i2c裝置驅動是對i2c硬體體系結構中裝置端的實現ÿ

i2c裝置驅動

1,i2c 裝置註冊 static struct i2c board info i2c2 devices i2c裝置一般在板級 中註冊 static void msm8916 add i2c deivces void 2,i2c驅動註冊 include static const struct i2c...

Linux驅動之I2C裝置驅動

核心 4.20 晶元 hym8563 rtc 下面的 分析主要都在注釋中,會按照驅動中函式的執行順序分析。static const struct i2c device id hym8563 id module device table i2c,hym8563 id static const stru...

linux裝置驅動之I2C

裝置結構體i2c client中addr的低8位表示裝置位址。裝置位址由讀寫位 器件型別和自定義位址組成,第7位是r w位,0表示寫,1表示讀,所以i2c裝置通常有兩個位址,即讀位址和寫位址型別器件由中間4位組成,這是由半導體公司生產的時候就已經固化了。自定義型別由低3位組成。由使用者自己設定,通常...