我不需要使用" stock"用于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太高了。
感谢您的指示!
答案 0 :(得分:0)
由于该引脚可以断开连接,因此如果 pinmux 配置为用于其他目的,则使用哪个引脚都没有关系。因此,我认为这已解决-完美在这里工作。
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
. . . .
bb_spi1_pins: pinmux_bb_spi1_pins {
pinctrl-single,pins = <
BONE_P9_31 (PIN_INPUT | MUX_MODE3) // spi1_sclk
BONE_P9_29 (PIN_INPUT | MUX_MODE3) // spi1_d0 (miso)
BONE_P9_30 (PIN_OUTPUT | MUX_MODE3) // spi1_d1 (mosi)
BONE_P9_28 (PIN_OUTPUT | MUX_MODE7) // spi1_cs0
// for spi1_cs0 it has to be MUX_MODE3, but since we want
// to use it as a GPIO we set to MUX_MODE7, which
// corresponds to GPIO3_14
>;
};
. . . .
}
}
上面的代码段包含Robert Nelson的覆盖collection和构建套件中的宏。