一. 简介
打开 AP3216C的硬件原理图,我这里打开 "IMX6ULL_ALPHA_V2.2(底板原理图).pdf",如下:

I2C是有两根线,一个是 SCL为时钟线,一个是SDA为数据线。
上图可以看出,AP3216C使用的 I2C1控制器,除了 I2C的这两条线外,还有一个AP_INT接口,这是个中断接口。本实验不用这个中断功能。
在硬件原理图中搜索 "I2C1_SCL"与 "I2C1_SDA"这两个接口,对应连接芯片的哪个PIN:

可以看出, "I2C1_SCL"使用的 UART4_TXD这个pin, "I2C1_SDA"使用的 UART4_RXD这个pin。
接下来就是找到这两个PIN,向设备树中添加 AP3216C设备的设备节点信息。
具体就是将这两个PIN配置为I2C功能,配置这两个PIN的器属性值,设置一些设备节点信息(例如,最重要的是 compatile属性)。
三. 向设备树添加 I2C设备(AP3216C)的设备节点信息
打开ubuntu系统,通过vscode 打开系统下 之前使用的内核源码(NXP官方提供)工程。
注意:这里开发板使用的Nand_flash版的ALPHA开发板,所以,对应的设备树文件(源文件)为 imx6ull-alientek-nand.dts。
1. 查看 i2c1 控制器节点
设备树文件 imx6ull-alientek-nand.dts有调用到 imx6ull-14x14-evk-gpmi-weim.dts文件,这两个文件中都没有 i2c设备节点,继续追溯到 imx6ull-14x14-evk.dts设备树文件。i2c1 设备节点就在 imx6ull-14x14-evk.dts 设备树文件中。
注意: imx6ull.dtsi设备树文件是 NXP官方编写的,虽然这里也有 i2c设备节点,不能在这个设备树文件中进行更改。
在 imx6ull-14x14-evk.dts设备树文件中查找到 i2c1控制器节点。

最低0.47元/天 解锁文章
2658

被折叠的 条评论
为什么被折叠?



