From be84c53ec68c70b1bfcadb992fe3a8eaf6a8cf1e Mon Sep 17 00:00:00 2001 From: David Jewsbury Date: Fri, 31 Oct 2025 10:13:37 +0000 Subject: [PATCH 1/2] samples: drivers: audio: dmic: Add support for nRF7120 Added supported for nRF7120 dmic sample using the AUXPLL. Signed-off-by: David Jewsbury --- .../boards/nrf7120pdk_nrf7120_cpuapp.overlay | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 samples/zephyr/drivers/audio/dmic/boards/nrf7120pdk_nrf7120_cpuapp.overlay diff --git a/samples/zephyr/drivers/audio/dmic/boards/nrf7120pdk_nrf7120_cpuapp.overlay b/samples/zephyr/drivers/audio/dmic/boards/nrf7120pdk_nrf7120_cpuapp.overlay new file mode 100644 index 000000000000..a619f6950456 --- /dev/null +++ b/samples/zephyr/drivers/audio/dmic/boards/nrf7120pdk_nrf7120_cpuapp.overlay @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/ { + aliases { + dmic-dev = &pdm20; + }; +}; + +&pinctrl { + pdm20_default_alt: pdm20_default_alt { + group1 { + psels = , + ; + }; + }; +}; + +dmic_dev: &pdm20 { + status = "okay"; + pinctrl-0 = <&pdm20_default_alt>; + pinctrl-names = "default"; + clock-source = "ACLK"; +}; + +&audio_auxpll { + nordic,frequency = ; + status = "okay"; +}; From 6a51c09ec0457dae3969dd3fcb4f41ca58b871ae Mon Sep 17 00:00:00 2001 From: David Jewsbury Date: Fri, 31 Oct 2025 10:15:15 +0000 Subject: [PATCH 2/2] tests: drivers: audio: Add support for nRF7120 Added supported for pdm_loopback, pdm_instances and dmic_api tests for nRF7120 which uses both PCLK and AUXPLL as driving clocks for the PDM. Signed-off-by: David Jewsbury --- .../boards/nrf7120pdk_nrf7120_cpuapp.overlay | 41 +++++++++++++++++ .../drivers/audio/pdm_instances/testcase.yaml | 1 + .../boards/nrf7120pdk_nrf7120_cpuapp.overlay | 39 ++++++++++++++++ ...nrf7120_cpuapp_audio_auxpll_44k1hz.overlay | 44 +++++++++++++++++++ ..._nrf7120_cpuapp_audio_auxpll_48khz.overlay | 44 +++++++++++++++++++ .../drivers/audio/pdm_loopback/testcase.yaml | 25 +++++++++++ .../boards/nrf7120pdk_nrf7120_cpuapp.overlay | 32 ++++++++++++++ 7 files changed, 226 insertions(+) create mode 100644 tests/drivers/audio/pdm_instances/boards/nrf7120pdk_nrf7120_cpuapp.overlay create mode 100644 tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp.overlay create mode 100644 tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp_audio_auxpll_44k1hz.overlay create mode 100644 tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp_audio_auxpll_48khz.overlay create mode 100644 tests/zephyr/drivers/audio/dmic_api/boards/nrf7120pdk_nrf7120_cpuapp.overlay diff --git a/tests/drivers/audio/pdm_instances/boards/nrf7120pdk_nrf7120_cpuapp.overlay b/tests/drivers/audio/pdm_instances/boards/nrf7120pdk_nrf7120_cpuapp.overlay new file mode 100644 index 000000000000..51d5339f1f02 --- /dev/null +++ b/tests/drivers/audio/pdm_instances/boards/nrf7120pdk_nrf7120_cpuapp.overlay @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/* Test requires loopbacks: + * - between P1.14 and P1.0, + * - between P1.13 and P1.15. + * For best performance, PDM_CLK shall be on 'Clock pin'. + */ + +&pinctrl { + pdm20_default_test: pdm20_default_test { + group1 { + psels = , + ; + }; + }; + + pdm21_default_test: pdm21_default_test { + group1 { + psels = , + ; + }; + }; +}; + +&pdm20 { + status = "okay"; + pinctrl-0 = <&pdm20_default_test>; + pinctrl-names = "default"; + clock-source = "PCLK32M"; +}; + +&pdm21 { + status = "okay"; + pinctrl-0 = <&pdm21_default_test>; + pinctrl-names = "default"; + clock-source = "PCLK32M"; +}; diff --git a/tests/drivers/audio/pdm_instances/testcase.yaml b/tests/drivers/audio/pdm_instances/testcase.yaml index 77c2b54edddd..c7aaa7f08b69 100644 --- a/tests/drivers/audio/pdm_instances/testcase.yaml +++ b/tests/drivers/audio/pdm_instances/testcase.yaml @@ -12,6 +12,7 @@ tests: - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp + - nrf7120pdk/nrf7120/cpuapp integration_platforms: - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp diff --git a/tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp.overlay b/tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp.overlay new file mode 100644 index 000000000000..61d43a891c7b --- /dev/null +++ b/tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp.overlay @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ +/* Loopback between P0.0 and P1.14 required */ + +/ { + gpio_test { + compatible = "gpio-leds"; + pulse_counter: pulse_counter { + gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&pinctrl { + pdm20_default_alt: pdm20_default_alt { + group1 { + psels = , + ; + }; + }; +}; + +pdm_dev: &pdm20 { + status = "okay"; + pinctrl-0 = <&pdm20_default_alt>; + pinctrl-names = "default"; + clock-source = "PCLK32M"; +}; + +&gpio1 { + status = "okay"; +}; + +&timer00 { + status = "okay"; +}; diff --git a/tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp_audio_auxpll_44k1hz.overlay b/tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp_audio_auxpll_44k1hz.overlay new file mode 100644 index 000000000000..cf839b805b64 --- /dev/null +++ b/tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp_audio_auxpll_44k1hz.overlay @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ +/* Loopback between P0.0 and P1.14 required */ + +/ { + gpio_test { + compatible = "gpio-leds"; + pulse_counter: pulse_counter { + gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&pinctrl { + pdm20_default_alt: pdm20_default_alt { + group1 { + psels = , + ; + }; + }; +}; + +pdm_dev: &pdm20 { + status = "okay"; + pinctrl-0 = <&pdm20_default_alt>; + pinctrl-names = "default"; + clock-source = "ACLK"; +}; + +&audio_auxpll { + nordic,frequency = ; + status = "okay"; +}; + +&gpio1 { + status = "okay"; +}; + +&timer00 { + status = "okay"; +}; diff --git a/tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp_audio_auxpll_48khz.overlay b/tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp_audio_auxpll_48khz.overlay new file mode 100644 index 000000000000..f632fb5a4827 --- /dev/null +++ b/tests/drivers/audio/pdm_loopback/boards/nrf7120pdk_nrf7120_cpuapp_audio_auxpll_48khz.overlay @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ +/* Loopback between P0.0 and P1.14 required */ + +/ { + gpio_test { + compatible = "gpio-leds"; + pulse_counter: pulse_counter { + gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&pinctrl { + pdm20_default_alt: pdm20_default_alt { + group1 { + psels = , + ; + }; + }; +}; + +pdm_dev: &pdm20 { + status = "okay"; + pinctrl-0 = <&pdm20_default_alt>; + pinctrl-names = "default"; + clock-source = "ACLK"; +}; + +&audio_auxpll { + nordic,frequency = ; + status = "okay"; +}; + +&gpio1 { + status = "okay"; +}; + +&timer00 { + status = "okay"; +}; diff --git a/tests/drivers/audio/pdm_loopback/testcase.yaml b/tests/drivers/audio/pdm_loopback/testcase.yaml index 6cf8e63e8d1a..9795fe225396 100644 --- a/tests/drivers/audio/pdm_loopback/testcase.yaml +++ b/tests/drivers/audio/pdm_loopback/testcase.yaml @@ -102,3 +102,28 @@ tests: extra_args: - CONFIG_NRFX_TIMER130=y - CONFIG_TEST_PDM_SAMPLING_TIME=10 + drivers.audio.pdm_loopback.nrf7120.1280khz: + platform_allow: + - nrf7120pdk/nrf7120/cpuapp + extra_args: + - CONFIG_NRFX_TIMER00=y + - CONFIG_TEST_PDM_SAMPLING_RATE=16000 + - CONFIG_TEST_PDM_EXPECTED_FREQUENCY=1280000 + drivers.audio.pdm_loopback.nrf7120.auxpll.44k1hz: + platform_allow: + - nrf7120pdk/nrf7120/cpuapp + extra_args: + - CONFIG_NRFX_TIMER00=y + - CONFIG_TEST_PDM_SAMPLING_RATE=44100 + - CONFIG_TEST_PDM_EXPECTED_FREQUENCY=1411200 + - CONFIG_CLOCK_CONTROL=y + - DTC_OVERLAY_FILE="boards/nrf7120pdk_nrf7120_cpuapp_audio_auxpll_44k1hz.overlay" + drivers.audio.pdm_loopback.nrf7120.auxpll.48khz: + platform_allow: + - nrf7120pdk/nrf7120/cpuapp + extra_args: + - CONFIG_NRFX_TIMER00=y + - CONFIG_TEST_PDM_SAMPLING_RATE=48000 + - CONFIG_TEST_PDM_EXPECTED_FREQUENCY=1536000 + - CONFIG_CLOCK_CONTROL=y + - DTC_OVERLAY_FILE="boards/nrf7120pdk_nrf7120_cpuapp_audio_auxpll_48khz.overlay" diff --git a/tests/zephyr/drivers/audio/dmic_api/boards/nrf7120pdk_nrf7120_cpuapp.overlay b/tests/zephyr/drivers/audio/dmic_api/boards/nrf7120pdk_nrf7120_cpuapp.overlay new file mode 100644 index 000000000000..0c849eb9f49a --- /dev/null +++ b/tests/zephyr/drivers/audio/dmic_api/boards/nrf7120pdk_nrf7120_cpuapp.overlay @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/* Test requires loopbacks: + * - between P1.14 and P1.0, + * For best performance, PDM_CLK shall be on 'Clock pin'. + */ + +/ { + aliases { + dmic-dev = &pdm20; + }; +}; + +&pinctrl { + pdm20_default_test: pdm20_default_test { + group1 { + psels = , + ; + }; + }; +}; + +&pdm20 { + status = "okay"; + pinctrl-0 = <&pdm20_default_test>; + pinctrl-names = "default"; + clock-source = "PCLK32M"; +};