未配置CS引脚的SPI(BeagleBone Black)

时间:2018-01-04 15:30:26

标签: driver beagleboneblack gpio spi device-tree

我不需要使用" 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太高了。

感谢您的指示!

1 个答案:

答案 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和构建套件中的宏。