资料下载和参考
要下载相关资料,无法通过浏览器直接访问,必须使用git工具进行下载:
git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git
视频观看可以访问百问网驱动大全。
编写设备驱动之i2c_client的参考资料包括:
- Linux内核文档:
Documentation\i2c\instantiating-devices.rst和Documentation\i2c\writing-clients.rst - Linux内核驱动程序示例:
drivers/eeprom/at24.c - 本节代码可在GIT仓库中找到:
IMX6ULL\source\04_I2C\03_ap3216c_okSTM32MP157\source\A7\04_I2C\03_ap3216c_ok
I2C总线-设备-驱动模型

步骤
- 编译i2c_driver
- 编写测试程序
- 多种方法生成i2c_client并测试
4.1 在用户态生成示例:
// 在I2C BUS0下创建i2c_client # echo ap3216c 0x1e > /sys/bus/i2c/devices/i2c-0/new_device <p>// 删除i2c_client</p><h1>echo 0x1e > /sys/bus/i2c/devices/i2c-0/delete_device
4.2 编写代码
使用以下函数:
i2c_new_devicei2c_new_probed_devicei2c_register_board_info
注意:内核没有EXPORT_SYMBOL(i2c_register_board_info),使用这个函数的驱动必须编进内核里去。
4.3 使用设备树生成
在某个I2C控制器的节点下,添加如下代码:
ap3216c@1e {</h1><pre class="brush:php;toolbar:false;"><code>compatible = "lite-on,ap3216c";
reg = <0x1e>;};
平台测试
-
STM32MP157

-
IMX6ULL4.4
上机测试以下命令在开发板中执行。











