使用的是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驅動添加成功
參考 https://www.veryarm.com/15778.html