记录一下在kernel中使用设备树使能I2C驱动并在/dev目录下显示i2c-0节点的方法。
第一步:menuconfig
在内核源码目录下,我们先进行图形化界面配置,使用如下命令:
make menuconfig
如图,在路径Device Drivers > I2C support下,进行I2C的选项选择。其中第三项:I2C device interface要记得勾选,否则在/dev目录下不会生成I2C节点!

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

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

将状态status赋值为okay一般就可以结束了。我这里I2C下挂了一个RTC芯片,所以我添加了RTC的节点。
第三步:编译、下载、测试
在kernel启动log中可以看到有I2C驱动控制器打印的信息

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

可以看到,i2c-0节点存在,此时就可以使用open,write,read应用函数去操作节点啦。
关键注意点:menuconfig选择配置项的时候,一定记得要选择I2C device interface,否则/dev下找不到该节点!
附加记录(linux下gpio模拟i2c)menuconfig:

设备树:

注意使用的gpio有没有其他其他功能被占用,另外要添加到alise节点。
gpios两个引脚的顺序:

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
相关推荐
浅析嵌入式总线技术的原理、分类及技术指标
Nexperia推出先进的I2C GPIO扩展器产品组合
DS2465典型应用
高清视频监控中的I2C总线云台电机控制设计
在Linux环境下I2C总线EEPROM驱动程序应该如何设计
STM32视频-Inter Integrated Circuit(I2C)
I2C总线协议V2.1
基于IPMI总线的控制器开发
五个让传感器变得更简单的技巧
LED驱动器中I2C的LED控制方式
MSP430与液晶显示器的串行接口方案
求 :STM32综合例程(i2c+UART+ADC+watchdog)
由STM32 I2C读写FM24CL04想到的
TMP100的典型连接
TMP101的典型连接
Microchip温度传感器系列产品
I2C Manual AN10216-01
I2C通讯不了?是不是硬件有问题?
I2C Logic Selection Guide
集成电路(I2C)总线市场趋势、需求和创新2025-2035
I2C规格
数字温度传感器系统接口:SPI、I2C 、SMBus如何选
学前班第1课第2.2节_怎么看原理图之协议类接口之I2C
看时序图写I2C驱动,教你如何自己手撸非标I2C驱动函数
低速串行总线调试-I2C译码
DIY开发板同时I2C驱动LM75A和PCF8563程序问题
请教!关于I2C总线发收数据的程序的问题
工程师经验分享:采用硬件I2C读取E2PROM
用示波器对单片机I2C时序进行图形波形分析的试验小结