目前我是用spidev实现一主一从通信方式,后续要接入多个从机进行通信,请问如何实现?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好 我想请教一下你实现一主一从是,设备树是怎么写的?
我按照能查到的资料写成
&spi1@0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&spi0_pins_s0>; spidev@0 { spi-max-frequency = <24000000>; reg = <0>; compatible = "rohm,dh2228fv"; }; };
但是连设备树编译都过不去。我在学校周围也没有用这个芯片的,结构一下子比单片机复杂好多。
能否请您帮助一下,谢谢
您好 显示
DTC arch/arm/boot/dts/am437x-gp-evm.dtb
Error: arch/arm/boot/dts/am437x-gp-evm.dts:1194.6-8 syntax error
FATAL ERROR: Unable to parse input tree
make[1]: *** [arch/arm/boot/dts/am437x-gp-evm.dtb] Error 1
make: *** [am437x-gp-evm.dtb] Error 2
如果节点只写成
&spi1{
status = "okay";
}
编译设备树可以通过,而且会在/sys/class/spi_master里增加新的spi,但是/dev里面一直不会有spi设备。
应该是你的dts文件里面有哪些语法错误,看看拼写有没有错误的,把一个一个语句屏蔽试试看
现在您这段dts编译通过了么?我仔细看了一下,问题应该出在&spi1@0,改成&spi1试试看。其他地方没问题。在内核里面有选中User mode SPI device driver support这一项么?
&spi1@0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&spi0_pins_s0>; spidev@0 { spi-max-frequency = <24000000>; reg = <0>; compatible = "rohm,dh2228fv"; }; };
您的问题就出在&spi1@0这里,语法不对,所以编译不过去。我已经验证了,你把@0去掉,然后在内核里把spidev驱动添加进去。就可以了