【发布时间】:2018-01-04 15:30:25
【问题描述】:
我不需要在 BeagleBone Black 中为 SPI 使用“库存”CS 信号。 我可以省略它们在 DTBO 中的配置来保存几个 GPIO 吗? 换句话说,(1) SPI 会正常工作吗? (2) 会不会导致GPIO冲突? 这是 SPI1 的 DTS 片段示例:
....
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
/* default state has all gpios released and mode set to uart1 */
bb_spi1_pins: pinmux_bb_spi1_pins {
pinctrl-single,pins = <
0x190 0x13 /* mcasp0_aclkx.spi1_sclk, OUTPUT_PULLUP | MODE3 */
0x194 0x33 /* mcasp0_fsx.spi1_d0, INPUT_PULLUP | MODE3 */
0x198 0x13 /* mcasp0_axr0.spi1_d1, OUTPUT_PULLUP | MODE3 */
>;
};
};
};
....
我应该查看哪个内核驱动程序来验证?看来spidev.c太高级了。
感谢指点!
【问题讨论】:
-
当您使用设备树时,您是在告诉您的驱动程序 SPI 引脚在哪里。如果您没有定义(默认)CS 引脚,您通常会明确地将其重新定义为 GPIO 引脚(GPIO 驱动程序将控制该引脚)。我不熟悉 Beagle,但我在 RedPitaya 上完成了此操作,其中引脚在 FPGA 和 DeviceTree 级别(两个级别!)定义。
-
恐怕驱动程序可能会为 CS0 和 CS1 使用默认(从它的角度来看)引脚,这可能会导致冲突或干扰其他功能。
-
引脚可以不连接,因此如果将 pinmux 配置为将其用于不同目的,则使用哪个引脚并不重要。因此,我认为这已解决。
标签: driver beagleboneblack gpio spi device-tree