Linux的作業系統I2C驅動架構解說(轉)
Linux的作業系統I2C驅動架構解說(轉)[@more@] 最近因為工作需要涉及到了I2C匯流排。雖然我過去用過I2c,但看了 Linux kernel 後才發現,一個 layer 能被做到這樣完善。
1.Linux的I2C驅動架
Linux中I2C匯流排的驅動分為兩個部分,匯流排驅動(BUS)和裝置驅動(DEVICE)。其中匯流排驅動的職責,是為系統中每個I2C匯流排增加相應的讀寫方法。但是匯流排驅動本身並不會進行任何的通訊,它只是存在在那裡,等待裝置驅動呼叫其函式。
裝置驅動則是與掛在I2C匯流排上的具體的裝置通訊的驅動。透過I2C匯流排驅動提供的函式,裝置驅動可以忽略不同匯流排控制器的差異,不考慮其實現細節地與硬體裝置通訊。
1.1. 匯流排驅動
在系統開機時,首先裝載的是I2C匯流排驅動。一個匯流排驅動用於支援一條特定的I2C匯流排的讀寫。一個匯流排驅動通常需要兩個模組,一個struct i2c_adapter和一個struct i2c_algorithm來描述:
1.Linux的I2C驅動架
Linux中I2C匯流排的驅動分為兩個部分,匯流排驅動(BUS)和裝置驅動(DEVICE)。其中匯流排驅動的職責,是為系統中每個I2C匯流排增加相應的讀寫方法。但是匯流排驅動本身並不會進行任何的通訊,它只是存在在那裡,等待裝置驅動呼叫其函式。
裝置驅動則是與掛在I2C匯流排上的具體的裝置通訊的驅動。透過I2C匯流排驅動提供的函式,裝置驅動可以忽略不同匯流排控制器的差異,不考慮其實現細節地與硬體裝置通訊。
1.1. 匯流排驅動
在系統開機時,首先裝載的是I2C匯流排驅動。一個匯流排驅動用於支援一條特定的I2C匯流排的讀寫。一個匯流排驅動通常需要兩個模組,一個struct i2c_adapter和一個struct i2c_algorithm來描述:
CODE:
static struct i2c_adapter pb1550_board_adapter =
{ name: "pb1550 adapter", id: I2C_HW_AU1550_PSC, algo: NULL, algo_data: &pb1550_i2c_info, inc_use: pb1550_inc_use, dec_use: pb1550_dec_use, client_register: pb1550_reg, client_unregister: pb1550_unreg, client_count: 0, }; 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961249/,如需轉載,請註明出處,否則將追究法律責任。
請登入後發表評論
登入
全部評論
|
相關文章
- 無作業系統時的裝置驅動和有作業系統時的裝置驅動作業系統
- Linux作業系統的日誌說明Linux作業系統
- 基於Linux的tty架構及UART驅動詳解Linux架構
- 作業系統——裝置驅動和檔案系統作業系統
- 以 RAIDs 分析作為架構驅動力AI架構
- 【linux】Linux作業系統Linux作業系統
- Linux驅動之I2C匯流排裝置以及驅動Linux
- 作業系統說明作業系統
- 解決方案架構、系統架構和企業架構區別架構
- Linux作業系統中的7功能詳解Linux作業系統
- 作業系統(二):作業系統結構作業系統
- Linux 作業系統Linux作業系統
- Linux作業系統Linux作業系統
- 企業事件驅動架構指南 - wiprodigital事件架構Git
- 戲說領域驅動設計(九)——架構模式架構模式
- 戲說領域驅動設計(十三)——核心架構架構
- Linux系統——架構淺析Linux架構
- 作業系統與Linux作業系統Linux
- Linux作業系統概述Linux作業系統
- 作業系統 Linux下的程式作業系統Linux
- 深入理解Linux作業系統下的守護程式(轉)Linux作業系統
- 基於Linux核心的作業系統的常見目錄說明Linux作業系統
- linux是什麼作業系統 linux和windows的區別詳細說明Linux作業系統Windows
- 作業系統結構作業系統
- linux-10-xshell介紹-作業系統的啟動流程-系統命令Linux作業系統
- PetShop的系統架構設計(一)(轉)架構
- 學會這些,教你如何玩轉linux作業系統Linux作業系統
- 作業系統是什麼?Linux是什麼作業系統?作業系統Linux
- linux作業系統介紹Linux作業系統
- 科普帖:Linux作業系統Linux作業系統
- Linux 作業系統!開篇!!!Linux作業系統
- Linux作業系統基礎Linux作業系統
- Linux作業系統 paste命令Linux作業系統AST
- 黑客專用的 Linux 作業系統-黑客Linux作業系統
- 作業系統體系結構作業系統
- 【linux】驅動-11-gpio子系統Linux
- 【linux】驅動-10-pinctrl子系統Linux
- 從原始碼構建一個極簡的Linux作業系統原始碼Linux作業系統
- 【知識分享】伺服器作業系統的架構是什麼伺服器作業系統架構