Dear Nordic Support Team,
I am working with the nRF52840 and need to configure the SPI peripheral in Zephyr to operate without DMA.
I’ve encountered a few problems:
- To disable DMA, I tried setting
compatible = "nordic,nrf-spi"
for thespi3
node in my board’s overlay file.
However, I received a linking error, specifically:undefined reference to '__device_dts_ord_139'
.
This seems to suggest a missing reference or configuration issue with the SPI node.
This is the spi3 node from my output file zephyr.dts
spi3: spi@4002f000 { compatible = "nordic,nrf-spi"; #address-cells = < 0x1 >; #size-cells = < 0x0 >; reg = < 0x4002f000 0x1000 >; interrupts = < 0x2f 0x1 >; max-frequency = < 0x1e84800 >; easydma-maxcnt-bits = < 0x10 >; status = "okay"; cs-gpios = < &gpio1 0xc 0x1 >; pinctrl-0 = < &spi3_default >; pinctrl-1 = < &spi3_sleep >; pinctrl-names = "default", "sleep"; zephyr,pm-device-runtime-auto; pressure1: abp2@0 { compatible = "vnd,spi-device"; reg = < 0x0 >; spi-max-frequency = < 0xc3500 >; }; };
- I noticed in .config file that even thought I explicitly set CONFIG_NRFX_SPIM3=n in prj.conf, it is still set to yes... Which might cause the linking issue.
Is there a reason why would this happen considering my device tree is configured correctly?
I also want to mention I use QSPI in my project as well (with DMA).
Could you please advise on the best approach to configure SPI without DMA while avoiding the undefined reference
error and confirm that concurrent operation with QSPI is supported?
Thank you for your assistance.
Best regards,
Noy