[国嵌攻略][154][Linux-I2C子系统]
IIC子系统架构
device driver层:
1.device driver,由用户开发。
2.i2c-dev由内核实现,但是需要配合应用模式驱动才能使用。
i2c core层:
1.总线驱动,也叫控制器驱动。实现对i2c控制器的操作方法。
2.i2c核心。关联设备驱动和总线驱动,提供设备的注册和注销方法。
I2C控制器驱动
开发I2C设备驱动的方法有两种,一种是自己写驱动,另一种是通过通用驱动来编写用户模式驱动。i2c_adapter用来描述i2c设备。i2c_algorithm用来封装传输方法,提供给i2c设备和i2c_dev来控制i2c总线。i2c控制器驱动在/derivers/i2c/busses/i2c-s3c2410.c文件中。
当有数据要发送到i2c总线上的时候,i2c设备驱动会先找到i2c核心,然后i2c核心找到i2c adapter,通过algorithm来发送数据。