Linux系统驱动之编写设备驱动之i2c_client

发布时间 - 2025-06-25 00:00:00    点击率:

资料下载和参考

要下载相关资料,无法通过浏览器直接访问,必须使用git工具进行下载:

git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git

视频观看可以访问百问网驱动大全。

编写设备驱动之i2c_client的参考资料包括:

  • Linux内核文档:Documentation\i2c\instantiating-devices.rstDocumentation\i2c\writing-clients.rst
  • Linux内核驱动程序示例:drivers/eeprom/at24.c
  • 本节代码可在GIT仓库中找到:
    • IMX6ULL\source\04_I2C\03_ap3216c_ok
    • STM32MP157\source\A7\04_I2C\03_ap3216c_ok

I2C总线-设备-驱动模型

步骤

  1. 编译i2c_driver
  2. 编写测试程序
  3. 多种方法生成i2c_client并测试

4.1 在用户态生成示例:

// 在I2C BUS0下创建i2c_client
# echo ap3216c 0x1e > /sys/bus/i2c/devices/i2c-0/new_device

// 删除i2c_client

echo 0x1e > /sys/bus/i2c/devices/i2c-0/delete_device

4.2 编写代码

使用以下函数:

  • i2c_new_device
  • i2c_new_probed_device
  • i2c_register_board_info

注意:内核没有EXPORT_SYMBOL(i2c_register_board_info),使用这个函数的驱动必须编进内核里去。

4.3 使用设备树生成

在某个I2C控制器的节点下,添加如下代码:

ap3216c@1e {
compatible = "lite-on,ap3216c";
reg = zuojiankuohaophpcn0x1eyoujiankuohaophpcn;

};

平台测试

  1. STM32MP157

  2. IMX6ULL4.4

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


# linux  # git  # 浏览器  # 工具  # 可在  # 相关资料  # 里去  # 参考资料  # 资料下载  # 使用这个  # 进行下载  # 本节  # 文档  # 开发板 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: EditPlus中的正则表达式实战(6)  Bootstrap整体框架之CSS12栅格系统  简单实现jsp分页  使用C语言编写圣诞表白程序  Laravel怎么清理缓存_Laravel optimize clear命令详解  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  如何选择可靠的免备案建站服务器?  常州企业网站制作公司,全国继续教育网怎么登录?  WordPress 子目录安装中正确处理脚本路径的完整指南  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  焦点电影公司作品,电影焦点结局是什么?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  Python文件异常处理策略_健壮性说明【指导】  详解jQuery中基本的动画方法  如何解决hover在ie6中的兼容性问题  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  图册素材网站设计制作软件,图册的导出方式有几种?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  微信小程序 canvas开发实例及注意事项  中国移动官方网站首页入口 中国移动官网网页登录  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  如何快速搭建二级域名独立网站?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  Android自定义listview布局实现上拉加载下拉刷新功能  如何快速搭建虚拟主机网站?新手必看指南  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  微信小程序 HTTPS报错整理常见问题及解决方案  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  如何撰写建站申请书?关键要点有哪些?  Python函数文档自动校验_规范解析【教程】  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  高防服务器租用首荐平台,企业级优惠套餐快速部署  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  简历没回改:利用AI润色让你的文字更专业  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  如何用VPS主机快速搭建个人网站?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?