资料下载
无法通过浏览器直接访问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
I2C Core即I2C核心层,其作用包括:
提供统一的访问函数,如i2c_transfer、i2c_smbus_xfer等 实现I2C总线-设备-驱动模型,管理:I2C设备(i2c_client)、I2C设备驱动(i2c_driver)、I2C控制器(i2c_adapter)
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中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号