linux IIC设备驱动开发

本文详细介绍了Linux系统下的I2C设备驱动开发,包括I2C控制器驱动的实现,涉及i2c_adapter结构体及其函数接口。此外,文章还讲解了I2C设备驱动的分层结构,如i2c_client和i2c_driver,以及注册和注销过程。重点讨论了I2C设备驱动的实现流程,包括如何通过i2c_transfer函数进行数据收发。最后,文中提供了一个项目实例,从硬件连接到驱动程序开发,再到I2C测试代码的编写,全面展示了Linux环境下I2C设备驱动的开发过程。
摘要由CSDN通过智能技术生成

一,SPI设备驱动框架

在 platform驱动框架和PWM驱动框架中,都提到过驱动的分离,也就是控制器或总线和设备的分离。I2C的驱动结构,分为I2C总线和I2C设备。总线是芯片本身的I2C资源,而设备则是I2C外接的用户设备如RTC、EEPROM等。

1,I2C控制器驱动:内核中使用结构体i2c_adapter来表示I2C控制器,i2c_adapter结构体定义在文件include/linux/i2c.h中。

struct i2c_adapter 
{
     struct module *owner;
     unsigned int class; /* classes to allow probing for */
     const struct i2c_algorithm *algo; /* the algorithm to access the bus */
     void *algo_data;
 
    /* data fields that are valid for all devices */
     const struct i2c_lock_operations *lock_ops;
     struct rt_mutex bus_lock;
     struct rt_mutex mux_lock;
  
     int timeout; /* in jiffies */
     int retries;
     struct device dev; /* the adapter device */
  
     int nr;
     
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒听雪落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值