Repository navigation
Conversation
…ication support - Guard Zephyr syscall headers and prototypes with CONFIG_USERSPACE checks in SOF headers so non-userspace platforms build without stub generation. - Support CONFIG_SOF_FULL_ZEPHYR_APPLICATION in is_zephyr() macro. - Hoist version and uuid registry target generation before subdirectory processing. - Add UUID entries for usb_audio and bt_audio in uuid-registry.txt. - Define heapmem sizing for CONFIG_PLATFORM_NORDIC. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
lgirdwood
force-pushed
the
feature/nordic-sof-port
branch
2 times, most recently
from
October 15, 2026 15:53
2342825 to
58c5263
Compare
- Add USB Audio Class 2 (UAC2) host endpoint component (usb_audio.c) - Add Bluetooth LE Audio streaming endpoint and service (bt_audio.c, bt_service.c) - Add Zephyr I2S host endpoint supporting full-duplex PCM streaming (i2s_audio.c) - Add static pipeline runner and runtime control dispatcher (sof_static_pipeline.c) Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…l-duplex I2S loopback
Add full platform support and static audio topologies for Nordic nRF54L15
(PCA10156) and nRF54LM20 (PCA10184) running on Zephyr RTOS:
- src/platform/nordic: platform boot, clock tree (128 MHz), mailbox structures,
Zephyr timer-based Low-Latency scheduler domain (zephyr_domain_init).
- static topologies:
* nRF54LM20: Pipeline 1 (USB_PB -> VOL -> EQ -> DRC -> I2S_TX) master playback,
Pipeline 2 (I2S_RX -> LEVEL -> USB_CAP) master loopback capture.
* nRF54L15: Pipeline 1 (I2S_RX -> VOL -> EQ -> DRC -> I2S_TX) slave full-duplex echo.
- app/boards: devicetree overlays and Kconfig configurations for:
* nrf54l15dk_nrf54l15_cpuapp: i2s20 slave interconnect mapped to Port 1
(P1.11 BCLK, P1.12 LRCK, P1.09 SDIN, P1.08 SDOUT).
* nrf54lm20dk_nrf54lm20b_cpuapp: High-speed USB UAC2 device and i2s_nrf_tdm
master (P1.23 BCLK, P1.24 FSYNC, P1.30 SDOUT, P1.31 SDIN).
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
lgirdwood
force-pushed
the
feature/nordic-sof-port
branch
from
October 15, 2026 16:38
58c5263 to
1dd21ce
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This draft PR introduces Sound Open Firmware (SOF) platform support for Nordic Semiconductor nRF54L Series development boards (ARM Cortex-M33 with FPU @ 128 MHz):
PCA10184): High-speed USB UAC2 ingress and hardware I2S/TDM Master Tx/Rx.PCA10156): Hardware I2S20 Slave Full-Duplex Echo with parametric EQ and DRC processing.Companion Zephyr driver changes are in lgirdwood/zephyr#2 on branch
feature/nordic-dai-port.Key Changes
Nordic Platform Support (
src/platform/nordic/):nrf54l15dk_nrf54l15_cpuappandnrf54lm20dk_nrf54lm20b_cpuapp.I2S Hardware Audio Driver Component (
src/audio/i2s_audio.c):i2s_nrfx(nRF54L15) andi2s_nrf_tdm(nRF54LM20).Static Audio Pipeline Topologies:
nrf54lm20_pipeline_def.c):USB_PBVOL_PBEQ_PBDRC_PBI2S_TX(TDM Master Tx)I2S_RX(TDM Master Rx)LEVEL_RXUSB_CAPnrf54l15_pipeline_def.c):I2S_RX(I2S20 Slave Rx)VOL_PBEQ_PBDRC_PBI2S_TX(I2S20 Slave Tx) full-duplex loopback.nRF54L15 Interconnect Pin Multiplexing:
i2s20peripheral to GPIO Port 1 pins (P1.11SCK,P1.12LRCK,P1.09SDIN,P1.08SDOUT) to comply with nRF54L15 peripheral domain interconnect silicon constraints.Static Pipeline Loader (
static_pipeline_loader.c):sof_static_pipeline_trigger()to resolvepipe->sink_compwhen triggering capture pipelines where scheduler component is not at the source.Live Hardware Verification
Verified with physical jumper cables between nRF54LM20-DK Header P3 (Master) and nRF54L15-DK Header P1 (Slave):
P1.23P1.11P1.24P1.12P1.30P1.09P1.31P1.08Both boards continuously stream full-duplex 48 kHz stereo 16-bit PCM at exactly 48,000 frames/second with 0 overruns: