I2C驱动(1)——框架认识


I2C驱动划分为I2C总线驱动(i2c_adapter)和I2C设备驱动(i2c_driver),一种变异的总线驱动设备模型。

1、I2C总线驱动知道I2C协议、知道如何发出I2C信号,但是不知道数据的含义(/drivers/i2c/buses/*)。

2、I2C设备驱动知道数据的含义,但是不知道怎么发出信号(/drivers/i2c/chips/*)。


I2C总线驱动程序

1、分配i2c_adapter

2、设置,algo=xxx(.master_xfer,发出i2c信号的函数)

3、注册,i2c_add_adapter,将i2c_adapter放入bus的adapter链表


I2C设备驱动程序

1、将i2c_diver放入bus的driver链表

2、从bus的adapter链表取出每一个adapter,调用driver->attach_adapter,即i2c_probe(adapter,address,func)

    a、用adapter的master_xfer发地址信号address,看设备是否响应ACK

    b、若响应,调用func

    c、在func函数中构造i2c_client

            .address       //设备地址

            .adapter      //i2c_adapter

            .driver        //i2c_diver

3、使用构造的i2c_client来读写数据

    i2c_transfer(at24cxx_client->adapter, msg, 1);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值