Environment:
* Host: nRF54LM20 DK
* Wi-Fi Companion: nRF7002 EB II
* SDK: nRF Connect SDK v3.3.0-rc2
* Wiring: Manual jumper wires
The Issue:
I am facing an SPI communication failure when using a custom pin mapping in my device tree overlay. Interestingly, the sample works
perfectly with manual wiring when I use the default shield configuration (-Dble_SHIELD="nrf7002eb2"). The failure only occurs when I switch
to the specific pins required for my project.
Error Log (Custom Mapping):
1 [00:00:00.021,277] <inf> wifi_nrf_bus: SPIM spi@4d000: latency = 0
2 [00:00:00.032,687] <err> wifi_nrf_bus: RPU wakeup write ACK failed even after 10ms
3 [00:00:00.032,692] <err> wifi_nrf_bus: Error: RDSR2 failed
Custom Wiring (Failing):
* SPI (spi00): SCK (P2.01), MOSI (P2.02), MISO (P2.04), CS (P2.05)
* Control: BUCKEN (P0.09), HOST-IRQ (P1.23)
* Coex: REQ (P1.19), GRNT (P1.18), STAT (P0.08)
Default Shield Wiring (Working):
* Note: When using the manual wiring with the standard shield mapping provided in the SDK, the system initializes and connects to Wi-Fi without issue.
Observations:
1. Voltages: I measured 3V on the BCKEN pin (P0.09) in the failing setup, so the GPIO is active.
2. Conflicts: I have disabled uart20 and redirected the console to uart30. I also modified the uart30 pinctrl to remove RTS/CTS
(P0.08/P0.09) to free them for the Wi-Fi signals.
3. Peripheral Initialization: When I try to lower the SPI frequency to 1MHz in the custom overlay, the nrfx_spim driver fails to initialize
with error -22 (EINVAL). At 8MHz it initializes but fails to receive the ACK from the RPU.
Questions:
1. Are there any restrictions on using P2.x pins (Global Domain) for high-speed SPI on the nRF54LM20?
2. Is there a hidden internal conflict when spi00 is mapped to the P2 port while other Wi-Fi control signals are on P0/P1?
3. Why does the driver return -22 (EINVAL) for a 1MHz frequency setting on this specific board/peripheral combination?
Regards,
Haresh
