我想使用 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,设备树看起来像这样:
但是:不要按原样使用此代码!
我不确定包含
.dtsi
的文件、确切的引脚或部分/设备名称,对于其他内核版本,可能需要进行一些小的修改。这只是我基于更完整的设备树的一个示例,它启用了 spidev 和两个 I2C 总线,设置了一些 PRU 引脚等 - 可在此处获得。请记住,它针对的是运行 Debian Stretch 内核 4.4.x 的 BeagleBone Green Wireless。
虽然这不是最完整的答案,但我希望它能引导您朝着正确的方向前进。