On a custom nRF54L15 (QFAA) board, SERIAL20 and SERIAL21 initialize successfully (device_is_ready() = true) but drive no pin activity / no bus traffic at all. On the same build/chip, SERIAL00 (SPIM NOR flash) and SERIAL30 (TWIM PMIC + temp sensor) work perfectly, and BLE + the system timer run fine. The failure splits cleanly by peripheral-power domain: the 16 MHz "20/21/22" group is dead; high-speed (00) and low-power (30) are healthy.
Environment. nRF54L15 QFAA app core · Zephyr v4.3.0 (bare Zephyr) · nRF VDD = 1.8 V from external PMIC (BUCK1), vregmain DCDC · HFXO 32 MHz load-capacitance-femtofarad=15000 · LFXO 32.768 kHz =9000, K32SRC_XTAL.
Works vs dead
| Peripheral | Instance | Use | Result |
|---|---|---|---|
| SPIM00 | SERIAL00 (high-speed) | NOR flash (SFDP+JEDEC) | WORKS |
| TWIM30 | SERIAL30 (low-power) | nPM1304 + TMP117 | WORKS |
| UARTE20 | SERIAL20 (16 MHz PERI) | console TX P1.04 / RX P1.05 | DEAD |
| SPIM21 | SERIAL21 (16 MHz PERI) | BMI270 + AS7058 | DEAD |
Radio/BLE works (HFXO oscillates); LED/GRTC run (LFCLK runs).
Cleanest evidence — UARTE20: device_is_ready(uart20)=true; a raw uart_poll_out(0x55) loop in an early SYS_INIT (bypassing the shell) yields nothing; a logic analyzer on the SoC TX pin (P1.04) shows it park idle-high (1.8 V) and never toggle across a full boot. So the pin is claimed/routed but the peripheral never clocks a transfer. poll_out returns (doesn't hang).
Ruled out: pin routing (P1.04/05 valid for UARTE20, no conflicts) · instance collision (spi20/i2c20 disabled) · pinctrl (idle-high seen) · Zephyr init (ready=true) · RAM/EasyDMA (same FLPR-reclaim firmware runs fine on a sibling board that consoles over SERIAL30) · LF clock source (tried XTAL and RC) · board HW (LA on the SoC pin; two boards identical).
Questions: (1) What clocks/powers the SERIAL20/21/22 group, and what makes them pass device_is_ready() yet emit no clock while SERIAL00/30 work? (2) Any power-domain enable or clock request specific to the 20/21/22 group we could be missing at SoC/DT/Kconfig level? (3) Relation to VDD=1.8 V / DCDC vregmain? (4) Known errata matching this? Plus: which CLOCK/POWER registers to read to confirm the 20/21/22 domain is actually clocked.