首页 > 运维 > linux运维 > 正文

Linux系统驱动之I2C系统驱动程序模型

雪夜
发布: 2025-06-26 12:44:28
原创
598人浏览过

资料下载

无法通过浏览器直接访问coding,需要使用git工具进行下载:

代码语言:javascript 代码运行次数:0

运行 复制 ```javascript git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git ```

视频观看百问网驱动大全

I2C系统驱动程序模型参考资料:

Linux内核文档: Documentation\i2c\instantiating-devices.rst, Documentation\i2c\writing-clients.rst Linux内核驱动程序示例: drivers/eeprom/at24.c

  1. I2C驱动程序的层次

Linux系统驱动之I2C系统驱动程序模型

I2C Core即I2C核心层,其作用包括:

提供统一的访问函数,如i2c_transfer、i2c_smbus_xfer等 实现I2C总线-设备-驱动模型,管理:I2C设备(i2c_client)、I2C设备驱动(i2c_driver)、I2C控制器(i2c_adapter)

  1. I2C总线-设备-驱动模型

Linux系统驱动之I2C系统驱动程序模型

2.1 i2c_driver

i2c_driver表示支持哪些设备:

通过of_match_table判断设备树中某个I2C控制器节点下的I2C设备节点。如果I2C设备节点的compatible属性与of_match_table中的某项兼容,则匹配成功。 如果i2c_client.name与某个of_match_table[i].compatible值相同,则匹配成功。 通过id_table判断,如果i2c_client.name与某个id_table[i].name值相同,则匹配成功。 i2c_driver与i2c_client匹配成功后,调用i2c_driver.probe函数。

2.2 i2c_client

i2c_client表示一个I2C设备,创建i2c_client的方法有四种:

代码语言:javascript 代码运行次数:0

运行 复制 ```javascript // 创建一个i2c_client, .name = "eeprom", .addr=0x50, .adapter是i2c-3 # echo eeprom 0x50 > /sys/bus/i2c/devices/i2c-3/new_device // 删除一个i2c_client # echo 0x50 > /sys/bus/i2c/devices/i2c-3/delete_device ```

以上就是Linux系统驱动之I2C系统驱动程序模型的详细内容,更多请关注php中文网其它相关文章!

驱动精灵
驱动精灵

驱动精灵基于驱动之家十余年的专业数据积累,驱动支持度高,已经为数亿用户解决了各种电脑驱动问题、系统故障,是目前有效的驱动软件,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号