ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux的操作系统I2C驱动架构解说(转)

Linux的操作系统I2C驱动架构解说(转)

原创 Linux操作系统 作者:ba 时间:2007-08-16 11:32:06 0 删除 编辑
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博客 ” ,链接:https://blog.itpub.net/10617731/viewspace-961249/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    1621
  • 访问量
    4430079