我正在用Yocto编写用于imx8qmlpddr4arm2板的SPI SLAVE驱动程序。我在dts文件上添加从属条目时遇到问题。特别是,当我测试代码时,即使另一块板发送数据,我的从属也会一直等待接收任何东西。
我的代码:
fsl-imx8qm.dtsi:
lpspi0: lpspi@5a000000 {
compatible = "fsl,imx7ulp-spi";
reg = <0x0 0x5a000000 0x0 0x10000>;
interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&gic>;
clocks = <&clk IMX8QM_SPI0_CLK>,
<&clk IMX8QM_SPI0_IPG_CLK>;
clock-names = "per", "ipg";
power-domains = <&pd_dma_lpspi0>;
status = "disabled";
};
fsl-imx8qm-lpddr4arm2.dts
pinctrl_lpspi0: lpspi0grp {
fsl,pins = <
SC_P_SPI0_SCK_DMA_SPI0_SCK 0x0600004c
SC_P_SPI0_SDO_DMA_SPI0_SDO 0x0600004c
SC_P_SPI0_SDI_DMA_SPI0_SDI 0x0600004c
>;
};
pinctrl_lpspi0_cs: lpspi0cs {
fsl,pins = <
SC_P_SPI0_CS1_DMA_SPI0_CS1 0x21
>;
};
&lpspi0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lpspi0 &pinctrl_lpspi0_cs>;
status = "okay";
spi-slave;
slave {
compatible = "linux,spislave";
};
};
将cs引脚设置为DMA是正确的还是将其设置为GPIO更好?有什么区别?
数字0x21,我需要更改吗?我正在阅读手册,但不能低估我必须修改的内容。我可以使用0x0600004c作为其他信号吗?我在网上找不到任何可以帮助我的东西。
非常感谢您!