i2c_peripherals_driver
linux kernel i2c外设驱动的编写,可以分为四步:
通过i2c_transfer()读写i2c外设寄存器
配置设备树dts i2c子节点
注册/注销 struct i2c_driver变量
当设备树与驱动匹配后,调用probe函数
读写i2c外设寄存器
通过regmap API读写i2c外设寄存器
配置设备树dts i2c子节点(同上)
注册/注销 struct i2c_driver变量(同上)
当设备树与驱动匹配后,调用probe函数
读写i2c外设寄存器
通过i2c_transfer()读写i2c外设寄存器
1. 配置设备树dts i2c子节点
2. 注册/注销struct i2c_driver变量
定义struct i2c_driver变量
调用相关API注册/注销
3. 当设备树与驱动匹配后,调用probe函数
设备树与驱动匹配,即设备树dts i2c子节点的compatible属性 与 xxx_of_match_table结构体的.compatible变量相同,调用probe函数
通过client->addr获得i2c外设地址
通过client->adapter获得i2c控制器
通过of_前缀函数获得其它dts资源
4. 读写i2c外设寄存器
读操作
写操作
通过regmap API读写i2c外设寄存器
1. 配置设备树dts i2c子节点(同上)
2. 注册/注销struct i2c_driver变量(同上)
3. 当设备树与驱动匹配后,调用probe函数
设备树与驱动匹配,即设备树dts i2c子节点的compatible属性 与 xxx_of_match_table结构体的.compatible变量相同,调用probe函数
通过client->addr获得i2c外设地址
通过client->adapter获得i2c控制器
通过of_前缀函数获得其它dts资源
4. 读写i2c外设寄存器
读操作
写操作
Last updated
Was this helpful?