linux AM335x嵌入式平台spi驱动调试

使用的是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

原文地址:https://www.cnblogs.com/ChenChangXiong/p/11157769.html