新闻  |   论坛  |   博客  |   在线研讨会
Linux kernel 使能I2C驱动
电子禅石 | 2024-02-03 17:38:54    阅读:17420   发布文章

   记录一下在kernel中使用设备树使能I2C驱动并在/dev目录下显示i2c-0节点的方法。


第一步:menuconfig

        在内核源码目录下,我们先进行图形化界面配置,使用如下命令:

    make menuconfig

如图,在路径Device Drivers > I2C support下,进行I2C的选项选择。其中第三项:I2C device interface要记得勾选,否则在/dev目录下不会生成I2C节点!






1706952508367143.png

设备树:

 一般使用硬件I2C的时候,原厂会在设备树的dtsi文件中加入该节点的信息,但status状态是disabled,所以我们需要在所使用的dts文件中使能该节点。

        原厂写好的节点:

image.png

用户需要自己添加的信息:

image.png

将状态status赋值为okay一般就可以结束了。我这里I2C下挂了一个RTC芯片,所以我添加了RTC的节点。


第三步:编译、下载、测试

        在kernel启动log中可以看到有I2C驱动控制器打印的信息

在系统中 ls /dev查看是否存在I2C节点:
1706952864704097.png

可以看到,i2c-0节点存在,此时就可以使用open,write,read应用函数去操作节点啦。


        关键注意点:menuconfig选择配置项的时候,一定记得要选择I2C device interface,否则/dev下找不到该节点!

附加记录(linux下gpio模拟i2c)

menuconfig:

1706952942912121.png












 设备树:

image.png

注意使用的gpio有没有其他其他功能被占用,另外要添加到alise节点。

gpios两个引脚的顺序:

1706953117150863.png


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客