当外设挂到I2C总线上的时候,必须先将I2C控制器和驱动挂到paltform总线上
本文是在做I2C驱动的第一步
既然要将控制器和驱动挂到平台总线上面去,必须先设置好I2C控制器的设备树(看在内核设备树节点是不是有,并且需要添加更多属性)和找到内核写的驱动文件,接下来要做的事情是将设备和驱动匹配好就行,我们要做的工作实际上只有写好I2C控制器设备树。但是需要查询资料的东西比较多。本文将寻找的步骤好好走一遍。
1.第一步是确认I2C在mpu6050上面,查找底板文档
确认到用的是I2C5控制器,以及设置模式的管脚为GPB2和GPB3,因为I2C总线是与mpu6050通信的,需要将连接此设备的管脚设置成对应的功能模式,这个管脚正好在GPIO(也可以作为总线扩展)控制器上面,像那些adc控制什么的,都是专用管脚,所以不必设置。
查看芯片手册,找到相应的管脚
接着就是将I2C5的设备树文件找到添加内容
设备树头文件里面有这个节点,无需重新定义了
在自己的设备树文件最后引用i2c_5的节点,引用更加方便
添加的属性会覆盖掉相同的属性
pinctrl-0是内核自动配置i2c的管脚,如果是pinctrl-别的等多个不会帮忙设置
系统自动帮我们设置工作模式,pinctrl-0设置好之后
这样设备树就添加完了。
接下来就该找一下驱动位置(内置驱动需要添加到菜单当中去)
找到控制器的驱动目录
接着就是配置一下菜单,这里已经帮忙配置好了,有时候没有配置需要配置一下
只要busses下有i2c-s3c2410.o文件说明编译好了
到此第一步工作已经完成