首页 > 解决方案 > 在 imx8 板的设备树文件中配置 spi slave

问题描述

我正在用 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 作为其他信号吗?我在网上没有找到任何可以帮助我的东西。

非常感谢您!

标签: linux-device-driveryoctospidevice-treeslave

解决方案


推荐阅读