Beagleboneblack
在 beaglebone black 上禁用 spidev
我想使用 PRU 在 beaglebone black 上執行 McSPI throw register 程式。因此,我需要根據技術參考手冊 AM335x 禁用(該 spi 模組的)spidev 來操作 mcspi 的寄存器。換句話說,我想從 spidev 控制 spi 模組並使用寄存器級程式。我如何禁用spidev模組?
同樣在我的 BBB 中的命令下方,顯示兩個 spi 模組的 spidev 都處於活動狀態:
root@beaglebone:~# ls /dev/sp* /dev/spidev1.0 /dev/spidev1.1 /dev/spidev2.0 /dev/spidev2.1
答案會根據您使用的 GNU/Linux 發行版和核心版本而有所不同,但通常您必須使用設備樹或設備樹覆蓋。
在那裡,您需要禁用
spi1
並將spi2
引腳標記為由 PRU 控制。對於 Linux 4.4.xa,設備樹看起來像這樣:
/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 引腳等 - 可在此處獲得。請記住,它針對的是執行 Debian Stretch 核心 4.4.x 的 BeagleBone Green Wireless。
雖然這不是最完整的答案,但我希望它能引導您朝著正確的方向前進。