硬件:AM3352自己的板子。外接SPI从站(MCU)
SDK:ti-sdk-am335x-evm-08.00.00.00, kernel3.14.26
kernel配置已使能
McSPI driver for OMAP和user mode spi drvier support
dts配置:
//spi
spi1_pins: pinmux_spi1 {
pinctrl-single,pins = <
0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* spi1_sclk /
0x194 (PIN_INPUT_PULLUP | MUX_MODE3) / spi1_d0 /
0x198 (PIN_INPUT_PULLUP | MUX_MODE3) / spi1_d1 /
0x19c (PIN_INPUT_PULLUP | MUX_MODE3) / spi1_cs0 */
>;
};
//spi
&spi1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spi1_pins>;
// ti,pindir-d0-out-d1-in;
spidev@0 {
spi-max-frequency = <25000000>;
reg = <0>;
compatible = "rohm,dh2228fv";
/* spi-cpha; sets CPHA=1, default is CPHA=0 */
/* spi-cpol; sets CPOL=1, default is CPOL=0 */
/* spi-cs-high; default is spi cs low */
};
};
使用内核自带的spidev_test.c(device改成spidev1.0)测试:
1. CLK信号有输出,但数据信号D1(MOSI)没有输出。
2. dts中增加ti,pindir-d0-out-d1-in,将D0配置成MOSI,也没有数据输出。
3. 将外部SPI从站(MCU)断开,D0和D1短接,也没有数据输出。
请问可能的原因是什么? 谢谢!
Nancy Wang:
pinmux部分是否检查过吗?请用pinmux tool验证看一下。
processors.wiki.ti.com/…/TI_PinMux_Tool_v4
yongqing wang:
参考这个帖子的方法:http://e2e.ti.com/support/processors/f/791/t/671406?Linux-AM3352-SPI-configuration