我想使用PRU运行McSPI抛出注册程序上的beaglebone黑色。因此,我需要禁用spi模块的spidev,以便根据技术参考手册AM335x操作mcspi的注册。换句话说,我想从spidev控制spi模块,并使用寄存器级编程。我怎么能禁用spidev模块?
同样在我的BBB命令中,显示两个spi模块的spidev是活动的:
root@beaglebone:~# ls /dev/sp*
/dev/spidev1.0 /dev/spidev1.1 /dev/spidev2.0 /dev/spidev2.1发布于 2018-10-19 14:30:33
答案将因所使用的GNU/Linux发行版和内核版本而略有不同,但一般来说,您必须使用设备树或设备树覆盖。
在那里,您需要禁用spi1和spi2,并将引脚标记为由PRU控制。
对于Linux4.4.x,设备树看起来有点像这样:
/dts-v1/;
#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"
#include "am33xx-pruss-rproc.dtsi"
&am33xx_pinmux {
pru_cape_bone_pins: pru_cape_bone_pins {
pinctrl-single,pins = <
BONE_P9_22 ( PIN_INPUT_PULLUP | MUX_MODE0 ) // SCLK
BONE_P9_21 ( PIN_INPUT_PULLUP | MUX_MODE0 ) // MISO
BONE_P9_18 ( PIN_OUTPUT_PULLUP | MUX_MODE0 ) // MOSI
BONE_P9_17 ( PIN_OUTPUT_PULLUP | MUX_MODE0 ) // CS0
>;
};
};
&pruss {
pinctrl-names = "default";
pinctrl-0 = <&pru_cape_bone_pins>;
};
&spi0 {
status = "disabled";
};
&spi1 {
status = "disabled";
};但是:不要以-原样使用此代码!
我不确定是否包含了.dtsi文件、确切的引脚或部分/设备名称,对于其他内核版本也可能需要进行一些小的修改。
这只是我基于我更完整的设备树的一个例子,它启用了spidev和I2C总线,设置了一些PRU引脚等可用的这里。请记住,它的目标是使用4.4.x内核运行BeagleBone Green Wireless。
虽然这不是最完整的答案,但我希望它能引导你朝着正确的方向前进。
https://unix.stackexchange.com/questions/476558
复制相似问题