使用的是kernel4.4.12内核,已经不需要arch/arm/boot/dts/boar-XXX板级文件了,直接使用设备树注册板级文件
所以,在这需要修改的文件有
1.arch/arm/boot/dts/am33xx.dtsi
2.arch/arm/boot/dts/am335x-ariio5702.dts
一、配置menuconfgi 使板子支持spi 配置如下
二、修改设备树
在 arch/arm/boot/dts/am33xx.dtsi 中增加索引
修改设备树 arch/arm/boot/dts/am335x-ariio5702.dts
按照自己的使用修改设备树 例如spi1
这里最主要就是pin脚的配置 spi_pins
spi1_pins: pinmux_spi1_pins {
pinctrl-single,pins = <
0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* spi1-sclk gpio3_14*/
0x194 (PIN_INPUT_PULLUP | MUX_MODE3) /* spi1-do gpio3_15*/
0x198 (PIN_INPUT_PULLUP | MUX_MODE3) /* spi1-di gpio3_16*/
0x19c (PIN_INPUT_PULLUP | MUX_MODE3) /* spi1-cs0 gpio3_17*/
>;
};
修改的compitable要和driver/spi/spidev.c 里面的设备树匹配列表一致 才可以保证匹配到
driver/spi/spidev.c
static const struct of_device_id spidev_dt_ids[] = {
{ .compatible = "rohm,dh2228fv" },
{ .compatible = "xxxx" },
{},
};
然后编译内核 烧录镜像
在开发板中就可以查看到设备节点
接着 使用 kernel/Documentation/spi/spidev_test.c 测试spi 这里只需要把这个spidev_test.c 交叉编译即可
测试如下
spi_test -D /dev/spidev1.0 -s 48000000 -p "aaaaaa"
既可以看到测试结果
到这里 spi驱动添加成功