Я пишу драйвер SPI SLAVE для платы imx8qmlpddr4arm2 с Yocto.У меня проблемы с добавлением ведомой записи в файл 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 в качестве других сигналов?В Интернете я не нашел ничего, что могло бы мне помочь.
Заранее большое спасибо!