Linux的作業系統I2C驅動架構解說(轉)

ba發表於2007-08-16
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來描述:
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的作業系統I2C驅動架構解說(轉)
請登入後發表評論 登入
全部評論

相關文章