type
date
slug
category
icon
password
参考资料
- Linux内核文档:
Documentation\i2c\instantiating-devices.rst
Documentation\i2c\writing-clients.rst
- Linux内核驱动程序示例:
drivers\misc\eeprom\at24.c
驱动编写流程
我来解释一下Linux I2C驱动程序的编写流程,以at24.c为例:
- 定义驱动基本信息
- 定义设备ID匹配表
- 定义私有数据结构
- 实现probe函数
- 实现读写函数
- 注册驱动模块
主要流程说明:
- 驱动框架:
- 定义i2c_driver结构体
- 实现probe/remove等回调函数
- 定义设备ID匹配表
- 设备操作:
- 定义私有数据结构保存设备信息
- 实现读写函数处理具体的I2C通信
- 使用mutex保护并发访问
- 资源管理:
- probe中分配资源
- remove中释放资源
- 使用devm_系列函数自动管理资源
- 特色功能:
- 支持SMBus和I2C两种传输模式
- 支持页写入提高性能
- 支持多地址芯片访问
这个驱动展示了标准Linux I2C驱动的基本框架和最佳实践。编写新的I2C驱动时可以参考这个模式。
- Author:felixfixit
- URL:http://www.felixmicrospace.top/1d74d032dcc1802aaaebd52c1a0082ba
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!