APP: open read write
-----------------------------------------------------------
drv_open drv_read drv_write IIC设备驱动,知道数据含义 drivers\i2c\chip
-----------------------------------------------------------
I2C总线驱动程序: 1识别 2提供读写函数,
知道怎么收发数据 drivers\i2c\busses(一般芯片厂家提供)
-----------------------------------------------------------
I2C硬件:AT24C02 AT24C08
参考drivers\i2c\busses\i2c-s3c2410.c
注册i2c driver的时候,
会把drv放入右边链表,
然后在左边链表取出每个adapter,调用drv的.attach_adapter
(里边直接调用i2c_probe),
在i2c_probe(adapter, &addr_data, function)
[适配器 设备地址 函数]中,用adapter的函数.master_xfer
发信号确定是否有该设备,
若有函数该设备则调用function,在function里为所欲为。
注册adapter的时候,
把adapter放入左边链表,
然后从右边链表取出每个drv调用它的.attach_adapter
(里边直接调用i2c_probe),
。。。跟上面一样了。
最终无论先注册adapter还是drv,都会两两调用对应的drv里的.attach_adapter
函数,在.attach_adapter
函数里调用i2c_probe
函数传入adapter然后调用发送函数.master_xfer
确定该设备是否存在,存在则调用function为所欲为。