From bb4a6b454447ea8f2dbfaa1d726b3c7700ddd8f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 07:56:02 +0200 Subject: [PATCH 01/59] [nrf fromtree] tests: boards: nrf: comp: Enable test on nrf54lm20dk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add overlay required to run the test on nrf54lm20dk/nrf54lm20a/cpuapp. Signed-off-by: Sebastian Głąb (cherry picked from commit cd26bd78c5ef9305a39f49405ad146b68f848737) --- .../boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf | 4 +++ .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 33 +++++++++++++++++++ tests/boards/nrf/comp/testcase.yaml | 1 + 3 files changed, 38 insertions(+) create mode 100644 tests/boards/nrf/comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf create mode 100644 tests/boards/nrf/comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay diff --git a/tests/boards/nrf/comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf b/tests/boards/nrf/comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf new file mode 100644 index 00000000000..3a7f6a03876 --- /dev/null +++ b/tests/boards/nrf/comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf @@ -0,0 +1,4 @@ +CONFIG_TEST_COMP_SE_PSEL_AIN_INDEX=1 +CONFIG_TEST_COMP_SE_EXTREFSEL_AIN_INDEX=4 +CONFIG_TEST_COMP_DIFF_PSEL_AIN_INDEX=6 +CONFIG_TEST_COMP_DIFF_EXTREFSEL_AIN_INDEX=5 diff --git a/tests/boards/nrf/comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/boards/nrf/comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay new file mode 100644 index 00000000000..55d1937a4fe --- /dev/null +++ b/tests/boards/nrf/comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -0,0 +1,33 @@ +/* Two loopbacks are used + * Each loopback is between analog input and GPIO. + * first-gpios (P1.03) -> AIN6 (P1.04) + * second-gpios (P1.30, AIN2) -> AIN1 (P1.31) + * AIN4 (P1.06) tied to VDD + */ + +/ { + aliases { + test-comp = ∁ + }; + + zephyr,user { + first-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; + second-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; + }; +}; + +&gpio1 { + status = "okay"; +}; + +&comp { + status = "okay"; + psel = "AIN4"; + refsel = "AREF"; + extrefsel= "AIN3"; + sp-mode = "NORMAL"; + th-up = <36>; + th-down = <30>; + isource = "DISABLED"; + enable-hyst; +}; diff --git a/tests/boards/nrf/comp/testcase.yaml b/tests/boards/nrf/comp/testcase.yaml index d5ac3d9c267..6d158d284ee 100644 --- a/tests/boards/nrf/comp/testcase.yaml +++ b/tests/boards/nrf/comp/testcase.yaml @@ -12,3 +12,4 @@ tests: platform_allow: - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp From d582e5765aa400edd7a2b775fad249774d0dae6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 07:57:26 +0200 Subject: [PATCH 02/59] [nrf fromtree] tests: boards: nrf: hwinfo: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 591ff8155c828b3994173f3156d0373f0da38f54) --- .../boards/nrf54l20pdk_nrf54l20_cpuapp.overlay | 9 --------- tests/boards/nrf/hwinfo/reset_cause/testcase.yaml | 1 - 2 files changed, 10 deletions(-) delete mode 100644 tests/boards/nrf/hwinfo/reset_cause/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/boards/nrf/hwinfo/reset_cause/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/boards/nrf/hwinfo/reset_cause/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index dc1ea1a9ddc..00000000000 --- a/tests/boards/nrf/hwinfo/reset_cause/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -&wdt31 { - status = "okay"; -}; diff --git a/tests/boards/nrf/hwinfo/reset_cause/testcase.yaml b/tests/boards/nrf/hwinfo/reset_cause/testcase.yaml index 9fd5911c284..da37f9ef614 100644 --- a/tests/boards/nrf/hwinfo/reset_cause/testcase.yaml +++ b/tests/boards/nrf/hwinfo/reset_cause/testcase.yaml @@ -38,7 +38,6 @@ tests: - nrf54h20dk/nrf54h20/cpuapp - nrf54h20dk/nrf54h20/cpurad - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp integration_platforms: - nrf54h20dk/nrf54h20/cpuapp From 91e8fb2dfc01583e8f2d72320db20f96f6412cef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 07:59:36 +0200 Subject: [PATCH 03/59] [nrf fromtree] tests: boards: nrf: i2c: i2c_slave: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 02722305428d387a4b60c37193f5c82264451aa1) --- .../boards/nrf54l20pdk_nrf54l20_cpuapp.conf | 1 - .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 61 ------------------- .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 7 ++- tests/boards/nrf/i2c/i2c_slave/testcase.yaml | 16 ++--- 4 files changed, 14 insertions(+), 71 deletions(-) delete mode 100644 tests/boards/nrf/i2c/i2c_slave/boards/nrf54l20pdk_nrf54l20_cpuapp.conf delete mode 100644 tests/boards/nrf/i2c/i2c_slave/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/boards/nrf/i2c/i2c_slave/boards/nrf54l20pdk_nrf54l20_cpuapp.conf b/tests/boards/nrf/i2c/i2c_slave/boards/nrf54l20pdk_nrf54l20_cpuapp.conf deleted file mode 100644 index b01af3b36a7..00000000000 --- a/tests/boards/nrf/i2c/i2c_slave/boards/nrf54l20pdk_nrf54l20_cpuapp.conf +++ /dev/null @@ -1 +0,0 @@ -CONFIG_NRFX_TWIS22=y diff --git a/tests/boards/nrf/i2c/i2c_slave/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/boards/nrf/i2c/i2c_slave/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index 0003711755d..00000000000 --- a/tests/boards/nrf/i2c/i2c_slave/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,61 +0,0 @@ -/ { - aliases { - i2c-slave = &i2c22; - }; -}; - -&pinctrl { - i2c21_default_alt: i2c21_default_alt { - group1 { - psels = , - ; - }; - }; - - i2c21_sleep_alt: i2c21_sleep_alt { - group1 { - psels = , - ; - low-power-enable; - }; - }; - - i2c22_default_alt: i2c22_default_alt { - group1 { -/* Temporary workaround as it is currently not possible - * to configure pins for TWIS with pinctrl. - */ - psels = , - ; - bias-pull-up; - }; - }; - - i2c22_sleep_alt: i2c22_sleep_alt { - group1 { - psels = , - ; - low-power-enable; - }; - }; -}; - -dut_twim: &i2c21 { - compatible = "nordic,nrf-twim"; - status = "okay"; - pinctrl-0 = <&i2c21_default_alt>; - pinctrl-1 = <&i2c21_sleep_alt>; - pinctrl-names = "default", "sleep"; - clock-frequency = ; - sensor: sensor@54 { - reg = <0x54>; - }; -}; - -&i2c22 { - compatible = "nordic,nrf-twis"; - status = "okay"; - pinctrl-0 = <&i2c22_default_alt>; - pinctrl-1 = <&i2c22_sleep_alt>; - pinctrl-names = "default", "sleep"; -}; diff --git a/tests/boards/nrf/i2c/i2c_slave/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/boards/nrf/i2c/i2c_slave/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay index 029c9830186..3767afee0e7 100644 --- a/tests/boards/nrf/i2c/i2c_slave/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay +++ b/tests/boards/nrf/i2c/i2c_slave/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -1,10 +1,14 @@ +/* + * Copyright 2025 Nordic Semiconductor ASA + * SPDX-License-Identifier: Apache-2.0 + */ + /* * Two loopbacks are required: * P1.13 - P1.14 * P1.23 - P1.24 */ - / { aliases { i2c-slave = &i2c22; @@ -53,6 +57,7 @@ dut_twim: &i2c21 { pinctrl-0 = <&i2c21_default_alt>; pinctrl-1 = <&i2c21_sleep_alt>; pinctrl-names = "default", "sleep"; + sensor: sensor@54 { reg = <0x54>; }; diff --git a/tests/boards/nrf/i2c/i2c_slave/testcase.yaml b/tests/boards/nrf/i2c/i2c_slave/testcase.yaml index e125548a49a..02a2ee5f751 100644 --- a/tests/boards/nrf/i2c/i2c_slave/testcase.yaml +++ b/tests/boards/nrf/i2c/i2c_slave/testcase.yaml @@ -12,32 +12,32 @@ tests: platform_allow: - nrf52840dk/nrf52840 - nrf5340dk/nrf5340/cpuapp - - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54h20dk/nrf54h20/cpuapp - nrf54h20dk/nrf54h20/cpuppr + - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp integration_platforms: - nrf52840dk/nrf52840 - nrf5340dk/nrf5340/cpuapp - - nrf54l15dk/nrf54l15/cpuapp - nrf54h20dk/nrf54h20/cpuapp - nrf54h20dk/nrf54h20/cpuppr + - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp boards.nrf.i2c.i2c_slave.fast: platform_allow: - nrf52840dk/nrf52840 - nrf5340dk/nrf5340/cpuapp - - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54h20dk/nrf54h20/cpuapp - nrf54h20dk/nrf54h20/cpuppr + - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp integration_platforms: - nrf52840dk/nrf52840 - nrf5340dk/nrf5340/cpuapp - - nrf54l15dk/nrf54l15/cpuapp - nrf54h20dk/nrf54h20/cpuapp - nrf54h20dk/nrf54h20/cpuppr + - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp extra_args: - EXTRA_DTC_OVERLAY_FILE="boards/i2c_speed_fast.overlay" boards.nrf.i2c.i2c_slave.fast_plus: From ade6cc4dd110d641d74459a97fb551c60bc43e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:01:19 +0200 Subject: [PATCH 04/59] [nrf fromtree] tests: boards: nrf: qdec: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit dcd1a144ed62c6cba64c103df6a83c296b6bebd1) --- .../boards/nrf54l20pdk_nrf54l20_common.dtsi | 53 ------------------- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 6 --- .../nrf54l20pdk_nrf54l20_cpuflpr.overlay | 6 --- tests/boards/nrf/qdec/testcase.yaml | 4 +- 4 files changed, 2 insertions(+), 67 deletions(-) delete mode 100644 tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_common.dtsi delete mode 100644 tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay delete mode 100644 tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay diff --git a/tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_common.dtsi b/tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_common.dtsi deleted file mode 100644 index f7810df33c0..00000000000 --- a/tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_common.dtsi +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2025 Nordic Semiconductor ASA - * SPDX-License-Identifier: Apache-2.0 - */ - -/ { - aliases { - qdec0 = &qdec20; - qenca = &phase_a; - qencb = &phase_b; - }; - - encoder-emulate { - compatible = "gpio-leds"; - phase_a: phase_a { - gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; - }; - phase_b: phase_b { - gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; - }; - }; -}; - -&pinctrl { - qdec_pinctrl: qdec_pinctrl { - group1 { - psels = , - ; - }; - }; - - qdec_sleep_pinctrl: qdec_sleep_pinctrl { - group1 { - psels = , - ; - low-power-enable; - }; - }; -}; - -&gpio1 { - status = "okay"; -}; - -&qdec20 { - status = "okay"; - pinctrl-0 = <&qdec_pinctrl>; - pinctrl-1 = <&qdec_sleep_pinctrl>; - pinctrl-names = "default", "sleep"; - steps = <127>; - led-pre = <500>; - zephyr,pm-device-runtime-auto; -}; diff --git a/tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index a16bac11f17..00000000000 --- a/tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Copyright 2024 Nordic Semiconductor ASA - * SPDX-License-Identifier: Apache-2.0 - */ - -#include "nrf54l20pdk_nrf54l20_common.dtsi" diff --git a/tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay b/tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay deleted file mode 100644 index 638d63e5c54..00000000000 --- a/tests/boards/nrf/qdec/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Copyright 2025 Nordic Semiconductor ASA - * SPDX-License-Identifier: Apache-2.0 - */ - -#include "nrf54l20pdk_nrf54l20_common.dtsi" diff --git a/tests/boards/nrf/qdec/testcase.yaml b/tests/boards/nrf/qdec/testcase.yaml index 312761b4459..2908a68a6d1 100644 --- a/tests/boards/nrf/qdec/testcase.yaml +++ b/tests/boards/nrf/qdec/testcase.yaml @@ -5,9 +5,7 @@ common: - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp - nrf54l15dk/nrf54l15/cpuflpr - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - - nrf54l20pdk/nrf54l20/cpuflpr - nrf54lm20dk/nrf54lm20a/cpuflpr integration_platforms: - nrf52840dk/nrf52840 @@ -15,6 +13,8 @@ common: - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp - nrf54l15dk/nrf54l15/cpuflpr + - nrf54lm20dk/nrf54lm20a/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuflpr harness: ztest harness_config: fixture: gpio_loopback From 84a560ea0bdee5eed0f583e6f19f2f7a936048e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:02:51 +0200 Subject: [PATCH 05/59] [nrf fromtree] tests: drivers: adc: adc_accuracy_test: Enable test on nrf54lm20dk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add overlay required to run the test on nrf54lm20dk/nrf54lm20a/cpuapp. Signed-off-by: Sebastian Głąb (cherry picked from commit cc3b92e1b636f91e18cb0491f7a94ff3f426aadc) --- .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 32 +++++++++++++++++++ .../adc/adc_accuracy_test/testcase.yaml | 4 ++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 tests/drivers/adc/adc_accuracy_test/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay diff --git a/tests/drivers/adc/adc_accuracy_test/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/adc/adc_accuracy_test/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay new file mode 100644 index 00000000000..bc68f3c8d34 --- /dev/null +++ b/tests/drivers/adc/adc_accuracy_test/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/* + * Test requires loopback P1.06 to VDDIO + */ + +/ { + zephyr,user { + io-channels = <&adc 0>; + reference-mv = <1800>; + expected-accuracy = <64>; + }; +}; + +&adc { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1_2"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = ; + zephyr,input-positive = ; /* P1.06 */ + zephyr,resolution = <14>; + }; +}; diff --git a/tests/drivers/adc/adc_accuracy_test/testcase.yaml b/tests/drivers/adc/adc_accuracy_test/testcase.yaml index 51a4cd53e2a..b3179bfd5ed 100644 --- a/tests/drivers/adc/adc_accuracy_test/testcase.yaml +++ b/tests/drivers/adc/adc_accuracy_test/testcase.yaml @@ -21,8 +21,9 @@ tests: - frdm_mcxc242 - frdm_mcxc444 - nrf52840dk/nrf52840 - - nrf54l15dk/nrf54l15/cpuapp - nrf54h20dk/nrf54h20/cpuapp + - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp - ek_ra8d1 - mck_ra8t1 @@ -44,3 +45,4 @@ tests: - xg29_rb4412a integration_platforms: - frdm_kl25z + - nrf54l15dk/nrf54l15/cpuapp From 5de8d48653d18c0d13bb51e80a9da7aa9d116731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:04:14 +0200 Subject: [PATCH 06/59] [nrf fromtree] tests: drivers: adc: adc_api: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit d096e83ce12c37c839af816736604d2095b9756c) --- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 44 ------------------- 1 file changed, 44 deletions(-) delete mode 100644 tests/drivers/adc/adc_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/adc/adc_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/adc/adc_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index e1ca1190b33..00000000000 --- a/tests/drivers/adc/adc_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,44 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * Copyright (c) 2025 Nordic Semiconductor ASA - */ - -/ { - zephyr,user { - io-channels = <&adc 0>, <&adc 1> , <&adc 2>; - }; -}; - -&adc { - #address-cells = <1>; - #size-cells = <0>; - status = "okay"; - - channel@0 { - reg = <0>; - zephyr,gain = "ADC_GAIN_1"; - zephyr,reference = "ADC_REF_INTERNAL"; - zephyr,acquisition-time = ; - zephyr,input-positive = ; - zephyr,resolution = <10>; - }; - - channel@1 { - reg = <1>; - zephyr,gain = "ADC_GAIN_1_4"; - zephyr,reference = "ADC_REF_EXTERNAL0"; - zephyr,acquisition-time = ; - zephyr,input-positive = ; - zephyr,resolution = <12>; - }; - - channel@2 { - reg = <2>; - zephyr,gain = "ADC_GAIN_2_3"; - zephyr,reference = "ADC_REF_INTERNAL"; - zephyr,acquisition-time = ; - zephyr,input-positive = ; - zephyr,resolution = <10>; - }; -}; From f9727ec36deca5e4d0e5983e8eff0fb4375153a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:05:37 +0200 Subject: [PATCH 07/59] [nrf fromtree] tests: drivers: adc: adc_error_cases: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 85f4925d2802d4e1175755c739230dde609bf51b) --- .../boards/nrf54l20pdk_nrf54l20_cpuapp.overlay | 15 --------------- tests/drivers/adc/adc_error_cases/testcase.yaml | 1 - 2 files changed, 16 deletions(-) delete mode 100644 tests/drivers/adc/adc_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/adc/adc_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/adc/adc_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index c50279ce8f6..00000000000 --- a/tests/drivers/adc/adc_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,15 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * Copyright (c) 2025 Nordic Semiconductor ASA - */ - -/ { - aliases { - adc = &adc; - }; -}; - -&adc { - status = "okay"; -}; diff --git a/tests/drivers/adc/adc_error_cases/testcase.yaml b/tests/drivers/adc/adc_error_cases/testcase.yaml index f902aa21af0..d9d389ab78a 100644 --- a/tests/drivers/adc/adc_error_cases/testcase.yaml +++ b/tests/drivers/adc/adc_error_cases/testcase.yaml @@ -9,7 +9,6 @@ tests: platform_allow: - nrf52840dk/nrf52840 - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54h20dk/nrf54h20/cpuapp - ophelia4ev/nrf54l15/cpuapp From 9c1f052f0f753ec0b4aa927e9f794e254b71ae54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:07:41 +0200 Subject: [PATCH 08/59] [nrf fromtree] tests: drivers: audio: dmic_api: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 6b70d35dbc9d2644eee77f0e0ca113d48b0fa92f) --- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 tests/drivers/audio/dmic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/audio/dmic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/audio/dmic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index 440ef9828ae..00000000000 --- a/tests/drivers/audio/dmic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/ { - 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 = "PCLK32M"; -}; From a4d596e58f0543644671fa17241e4f66d7ccd9e9 Mon Sep 17 00:00:00 2001 From: Yunshao Chiang Date: Thu, 23 Jan 2025 15:29:53 +0800 Subject: [PATCH 09/59] [nrf fromtree] drivers: comparator: add it51xxx_evb analog comparator driver Add analog comparator driver for ITE it51xxx chip. Signed-off-by: Yunshao Chiang (cherry picked from commit 5a2765da260501371063c6500dcb8d6a1992e53e) --- boards/ite/it515xx_evb/it515xx_evb.dts | 8 + drivers/comparator/CMakeLists.txt | 1 + drivers/comparator/Kconfig | 1 + drivers/comparator/Kconfig.it51xxx_vcmp | 15 + drivers/comparator/comparator_it51xxx_vcmp.c | 408 ++++++++++++++++++ dts/bindings/comparator/ite,it51xxx-vcmp.yaml | 65 +++ dts/riscv/ite/it51xxx.dtsi | 33 +- .../dt-bindings/comparator/it51xxx-vcmp.h | 21 + .../gpio_loopback/boards/it515xx_evb.conf | 4 + .../gpio_loopback/boards/it515xx_evb.overlay | 24 ++ 10 files changed, 579 insertions(+), 1 deletion(-) create mode 100644 drivers/comparator/Kconfig.it51xxx_vcmp create mode 100644 drivers/comparator/comparator_it51xxx_vcmp.c create mode 100644 dts/bindings/comparator/ite,it51xxx-vcmp.yaml create mode 100644 include/zephyr/dt-bindings/comparator/it51xxx-vcmp.h create mode 100644 tests/drivers/comparator/gpio_loopback/boards/it515xx_evb.conf create mode 100644 tests/drivers/comparator/gpio_loopback/boards/it515xx_evb.overlay diff --git a/boards/ite/it515xx_evb/it515xx_evb.dts b/boards/ite/it515xx_evb/it515xx_evb.dts index 926c93bd921..08c99ca1ebc 100644 --- a/boards/ite/it515xx_evb/it515xx_evb.dts +++ b/boards/ite/it515xx_evb/it515xx_evb.dts @@ -153,3 +153,11 @@ &sha256 { status = "okay"; }; + +/* voltage comparator for test */ +&vcmp1 { + status = "okay"; + threshold-mv = <1500>; + scan-period = <0x4>; + io-channels = <&adc0 3>; +}; diff --git a/drivers/comparator/CMakeLists.txt b/drivers/comparator/CMakeLists.txt index 5d8ef055461..bdbc9ce815c 100644 --- a/drivers/comparator/CMakeLists.txt +++ b/drivers/comparator/CMakeLists.txt @@ -8,6 +8,7 @@ zephyr_library() zephyr_library_sources_ifdef(CONFIG_USERSPACE comparator_handlers.c) zephyr_library_sources_ifdef(CONFIG_COMPARATOR_SILABS_ACMP comparator_silabs_acmp.c) zephyr_library_sources_ifdef(CONFIG_COMPARATOR_FAKE_COMP comparator_fake_comp.c) +zephyr_library_sources_ifdef(CONFIG_COMPARATOR_IT51XXX_VCMP comparator_it51xxx_vcmp.c) zephyr_library_sources_ifdef(CONFIG_COMPARATOR_MCUX_ACMP comparator_mcux_acmp.c) zephyr_library_sources_ifdef(CONFIG_COMPARATOR_NRF_COMP comparator_nrf_comp.c) zephyr_library_sources_ifdef(CONFIG_COMPARATOR_NRF_LPCOMP comparator_nrf_lpcomp.c) diff --git a/drivers/comparator/Kconfig b/drivers/comparator/Kconfig index 2cc02c24085..07707385b05 100644 --- a/drivers/comparator/Kconfig +++ b/drivers/comparator/Kconfig @@ -20,6 +20,7 @@ config COMPARATOR_INIT_PRIORITY rsource "Kconfig.fake_comp" rsource "Kconfig.silabs_acmp" +rsource "Kconfig.it51xxx_vcmp" rsource "Kconfig.mcux_acmp" rsource "Kconfig.nrf_comp" rsource "Kconfig.nrf_lpcomp" diff --git a/drivers/comparator/Kconfig.it51xxx_vcmp b/drivers/comparator/Kconfig.it51xxx_vcmp new file mode 100644 index 00000000000..2881beb779a --- /dev/null +++ b/drivers/comparator/Kconfig.it51xxx_vcmp @@ -0,0 +1,15 @@ +# ITE Voltage Comparator driver configuration options + +# Copyright (c) 2025 ITE Technology Corporation. +# SPDX-License-Identifier: Apache-2.0 + +config COMPARATOR_IT51XXX_VCMP + bool "ITE it51xxx Voltage Comparator" + default y + depends on ADC_ITE_IT51XXX + depends on DT_HAS_ITE_IT51XXX_VCMP_ENABLED + depends on DYNAMIC_INTERRUPTS + help + This option enables the ITE it51xxx voltage comparator, + it51xxx supports three 10-bit threshold voltage comparator + channels, and the input of each comparator comes from ADC pin. diff --git a/drivers/comparator/comparator_it51xxx_vcmp.c b/drivers/comparator/comparator_it51xxx_vcmp.c new file mode 100644 index 00000000000..e0a3e11b0c0 --- /dev/null +++ b/drivers/comparator/comparator_it51xxx_vcmp.c @@ -0,0 +1,408 @@ +/* + * Copyright (c) 2025 ITE Technology Corporation. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#define DT_DRV_COMPAT ite_it51xxx_vcmp + +#include +#include +#include +#include +#include +#include + +#include + +#include +LOG_MODULE_REGISTER(comparator_it51xxx_vcmp, CONFIG_COMPARATOR_LOG_LEVEL); + +#define VCMP_CHANNEL_ID_REG_MASK GENMASK(2, 0) +#define VCMP_THRESHOLD BIT(10) +#ifdef CONFIG_ADC_IT51XXX_VOL_FULL_SCALE +#define VCMP_MAX_MVOLT 3300 +#else +#define VCMP_MAX_MVOLT 3000 +#endif + +/* 0x20, 0x28, 0x2c: Voltage Comparator n Control Register (VCMPnCTL) (n=0 to 2) */ +#define REG_VCMP_VCMP0CTL 0x20 +#define REG_VCMP_VCMP1CTL 0x28 +#define REG_VCMP_VCMP2CTL 0x2C +#define VCMP_CMPEN BIT(7) +#define VCMP_CMPINTEN BIT(6) +#define VCMP_GREATER_THRESHOLD BIT(5) +#define VCMP_CMP_EDGE_SENSED_MODE BIT(4) +const uint8_t vcmp_ctrl_reg[VCMP_CHANNEL_CNT] = {REG_VCMP_VCMP0CTL, REG_VCMP_VCMP1CTL, + REG_VCMP_VCMP2CTL}; + +/* 0x21, 0x29, 0x2D: Voltage Comparator n Status and Control Register (VCMPnSCTL) (n=0 to 2) */ +#define REG_VCMP_VCMP0SCTL 0x21 +#define REG_VCMP_VCMP1SCTL 0x29 +#define REG_VCMP_VCMP2SCTL 0x2D +#define VCMP_CMPXRTIS BIT(6) +const uint8_t vcmp_status_ctrl_reg[VCMP_CHANNEL_CNT] = {REG_VCMP_VCMP0SCTL, REG_VCMP_VCMP1SCTL, + REG_VCMP_VCMP2SCTL}; + +/* 0x22, 0x2A, 0x2E: Voltage Comparator 0~2 MSB Threshold Data Buffer (10-bit resolution) */ +#define REG_VCMP_CH_THRDATM 0x02 + +/* 0x23, 0x2B, 0x2F: Voltage Comparator 0~2 LSB Threshold Data Buffer (10-bit resolution) */ +#define REG_VCMP_CH_THRDATL 0x03 + +/* 0x33: Voltage Comparator Scan Period 2 (VCMPSCP2) */ +#define REG_VCMP_VCMPSCP2 0x33 +#define SCAN_PERIOD_MASK GENMASK(7, 4) + +/* Device config */ +struct vcmp_it51xxx_config { + /* Voltage comparator channel base address */ + uintptr_t base_ch; + /* Voltage comparator base address */ + uintptr_t reg_base; + /* Voltage comparator module irq */ + int irq; + /* Voltage comparator channel */ + int vcmp_ch; + /* Comparator 0/1/2 Scan Period */ + uint8_t scan_period; + /* Threshold assert value in mv */ + int32_t threshold_mv; + /* Pointer of ADC device that will be performing measurement */ + const struct device *adc; + /* Channel identifier */ + uint8_t channel_id; +}; + +/* Driver data */ +struct vcmp_it51xxx_data { + /* ADC channel config */ + struct adc_channel_cfg adc_ch_cfg; + comparator_callback_t user_cb; + void *user_cb_data; + uint8_t interrupt_mask; + atomic_t triggered; + /* Pointer of voltage comparator device */ + const struct device *vcmp; +}; +/* + * Because all the three voltage comparators use the same interrupt number, the + * 'irq_connect_dynamic' call in the driver init function sets the passed-in dev pointer in isr + * function to the first instantiated voltage comparator. + * + * For example, when setting vcmp2 and vcmp3 to 'status = "okay";' in dts file, each time an + * interrupt is triggered,the passed-in 'const struct device *dev' argument in isr function always + * points to vcmp2 device. + * + * To access the 'struct vcmp_it51xxx_data' of respective voltage comparator instance, we + * use a array to store their address. + */ +static struct vcmp_it51xxx_data *vcmp_data[VCMP_CHANNEL_CNT]; + +static void vcmp_irq_handler(const struct device *dev) +{ + struct vcmp_it51xxx_data *const data = dev->data; + + if (data->user_cb == NULL) { + atomic_set_bit(&data->triggered, 0); + return; + } + + data->user_cb(dev, data->user_cb_data); + atomic_clear_bit(&data->triggered, 0); +} + +static void clear_vcmp_status(const struct device *dev, int channel) +{ + const struct vcmp_it51xxx_config *const cfg = dev->config; + const uintptr_t reg_base = cfg->reg_base; + + sys_write8(sys_read8(reg_base + vcmp_status_ctrl_reg[channel]), + reg_base + vcmp_status_ctrl_reg[channel]); +} + +static int vcmp_set_threshold(const struct device *dev, int32_t threshold_mv) +{ + const struct vcmp_it51xxx_config *const cfg = dev->config; + const uintptr_t base_ch = cfg->base_ch; + int32_t reg_val; + + /* + * Tranfrom threshold from mv to raw + * NOTE: CMPXTHRDAT[9:0] = threshold(mv) * 1024 / 3000(mv) + */ + reg_val = (threshold_mv * VCMP_THRESHOLD / VCMP_MAX_MVOLT); + + if (reg_val >= VCMP_THRESHOLD) { + LOG_ERR("Vcmp%d threshold only support 10-bits", cfg->vcmp_ch); + return -ENOTSUP; + } + + /* Set threshold raw value */ + sys_write8(reg_val & 0xff, base_ch + REG_VCMP_CH_THRDATL); + sys_write8((reg_val >> 8) & 0xff, base_ch + REG_VCMP_CH_THRDATM); + + return 0; +} + +static void vcmp_set_attr(const struct device *dev, enum comparator_trigger trigger) +{ + const struct vcmp_it51xxx_config *const cfg = dev->config; + const uintptr_t base_ch = cfg->base_ch; + + /* Set lower or higher threshold */ + if (trigger == COMPARATOR_TRIGGER_RISING_EDGE) { + sys_write8(sys_read8(base_ch) | VCMP_GREATER_THRESHOLD, base_ch); + } else { + sys_write8(sys_read8(base_ch) & ~VCMP_GREATER_THRESHOLD, base_ch); + } +} + +static void vcmp_enable(const struct device *dev, bool enable) +{ + const struct vcmp_it51xxx_config *const cfg = dev->config; + const uintptr_t base_ch = cfg->base_ch; + + if (enable) { + /* Enable voltage comparator interrupt */ + sys_write8(sys_read8(base_ch) | VCMP_CMPINTEN, base_ch); + /* Start voltage comparator */ + sys_write8(sys_read8(base_ch) | VCMP_CMPEN, base_ch); + } else { + /* Disable voltage comparator interrupt */ + sys_write8(sys_read8(base_ch) & ~VCMP_CMPINTEN, base_ch); + /* Stop voltage comparator */ + sys_write8(sys_read8(base_ch) & ~VCMP_CMPEN, base_ch); + } +} + +static int it51xxx_vcmp_get_output(const struct device *dev) +{ + ARG_UNUSED(dev); + + LOG_ERR("Unsupported function: %s", __func__); + + return -ENOTSUP; +} + +static int it51xxx_vcmp_set_trigger(const struct device *dev, enum comparator_trigger trigger) +{ + const struct vcmp_it51xxx_config *cfg = dev->config; + struct vcmp_it51xxx_data *data = dev->data; + + /* Disable VCMP interrupt */ + vcmp_enable(dev, false); + + /* W/C voltage comparator specific channel interrupt status */ + clear_vcmp_status(dev, cfg->vcmp_ch); + + switch (trigger) { + case COMPARATOR_TRIGGER_BOTH_EDGES: + LOG_ERR("Unsupported trigger: COMPARATOR_TRIGGER_BOTH_EDGES"); + return -ENOTSUP; + case COMPARATOR_TRIGGER_RISING_EDGE: + data->interrupt_mask = COMPARATOR_TRIGGER_RISING_EDGE; + vcmp_set_attr(dev, COMPARATOR_TRIGGER_RISING_EDGE); + break; + case COMPARATOR_TRIGGER_FALLING_EDGE: + data->interrupt_mask = COMPARATOR_TRIGGER_FALLING_EDGE; + vcmp_set_attr(dev, COMPARATOR_TRIGGER_FALLING_EDGE); + break; + case COMPARATOR_TRIGGER_NONE: + data->interrupt_mask = 0; + break; + default: + return -EINVAL; + } + + if (data->interrupt_mask) { + vcmp_enable(dev, true); + } + + return 0; +} + +static int it51xxx_vcmp_set_trigger_callback(const struct device *dev, + comparator_callback_t callback, void *user_data) +{ + struct vcmp_it51xxx_data *data = dev->data; + + /* Disable voltage comparator and interrupt */ + vcmp_enable(dev, false); + + data->user_cb = callback; + data->user_cb_data = user_data; + + if (callback != NULL && atomic_test_and_clear_bit(&data->triggered, 0)) { + callback(dev, user_data); + } + + /* Re-enable currently set VCMP interrupt */ + if (data->interrupt_mask) { + vcmp_enable(dev, true); + } + + return 0; +} + +static int it51xxx_vcmp_trigger_is_pending(const struct device *dev) +{ + struct vcmp_it51xxx_data *data = dev->data; + + return atomic_test_and_clear_bit(&data->triggered, 0); +} + +/* + * All voltage comparator channels share one irq interrupt, so we + * need to handle all channels, when the interrupt fired. + */ +static void vcmp_it51xxx_isr(const struct device *dev) +{ + const struct vcmp_it51xxx_config *const cfg = dev->config; + const uintptr_t reg_base = cfg->reg_base; + /* + * Comparator n Trigger Mode (CMPnTMOD) + * false (0): Less than or equal to CMPnTHRDAT [9:0] + * true (1): Greater than CMPnTHRDAT [9:0] + */ + bool comparator_mode; + + /* Find out which voltage comparator triggered */ + for (int idx = VCMP_CHANNEL_0; idx < VCMP_CHANNEL_CNT; idx++) { + if (sys_read8(reg_base + vcmp_status_ctrl_reg[idx]) & VCMP_CMPXRTIS) { + struct vcmp_it51xxx_data *data = vcmp_data[idx]; + + comparator_mode = + sys_read8(reg_base + vcmp_ctrl_reg[idx]) & VCMP_GREATER_THRESHOLD; + + if ((comparator_mode && data && + data->interrupt_mask == COMPARATOR_TRIGGER_RISING_EDGE) || + (!comparator_mode && data && + data->interrupt_mask == COMPARATOR_TRIGGER_FALLING_EDGE)) { + + vcmp_irq_handler(data->vcmp); + } + + if (comparator_mode) { + sys_write8(sys_read8(reg_base + vcmp_ctrl_reg[idx]) & + ~VCMP_GREATER_THRESHOLD, + reg_base + vcmp_ctrl_reg[idx]); + } else { + sys_write8(sys_read8(reg_base + vcmp_ctrl_reg[idx]) | + VCMP_GREATER_THRESHOLD, + reg_base + vcmp_ctrl_reg[idx]); + } + + /* W/C voltage comparator specific channel interrupt status */ + clear_vcmp_status(dev, idx); + } + } + + /* W/C voltage comparator irq interrupt status */ + ite_intc_isr_clear(cfg->irq); +} + +static int vcmp_it51xxx_init(const struct device *dev) +{ + const struct vcmp_it51xxx_config *const cfg = dev->config; + struct vcmp_it51xxx_data *const data = dev->data; + uintptr_t base_ch = cfg->base_ch; + uintptr_t reg_vcmpscp2 = cfg->reg_base + REG_VCMP_VCMPSCP2; + uint8_t reg_value; + int err; + + data->adc_ch_cfg.gain = ADC_GAIN_1; + data->adc_ch_cfg.reference = ADC_REF_INTERNAL; + data->adc_ch_cfg.acquisition_time = ADC_ACQ_TIME_DEFAULT; + data->adc_ch_cfg.channel_id = cfg->channel_id; + + /* Disable voltage comparator and interrupt */ + vcmp_enable(dev, false); + + /* + * ADC channel signal output to voltage comparator, + * so we need to set ADC channel to alternate mode first. + */ + if (!device_is_ready(cfg->adc)) { + LOG_ERR("ADC device not ready"); + return -ENODEV; + } + + err = adc_channel_setup(cfg->adc, &data->adc_ch_cfg); + if (err) { + return err; + } + + /* Select which ADC channel output voltage into comparator */ + reg_value = FIELD_PREP(GENMASK(7, 3), sys_read8(base_ch)); + reg_value |= data->adc_ch_cfg.channel_id & VCMP_CHANNEL_ID_REG_MASK; + sys_write8(reg_value, base_ch); + + /* Set VCMP to Edge Sense Mode */ + sys_write8(sys_read8(base_ch) | VCMP_CMP_EDGE_SENSED_MODE, base_ch); + + /* Store the address of driver data for later access in ISR function*/ + if (cfg->vcmp_ch >= VCMP_CHANNEL_CNT) { + LOG_ERR("invalid volt comparator channel setting(%d)", cfg->vcmp_ch); + return -EINVAL; + } + vcmp_data[cfg->vcmp_ch] = dev->data; + + /* + * Set minimum scan period for "all" voltage comparator + * Three voltage comparators share a scan period setting and use the fastest one + */ + if (cfg->scan_period < FIELD_GET(SCAN_PERIOD_MASK, sys_read8(reg_vcmpscp2))) { + sys_write8(FIELD_PREP(SCAN_PERIOD_MASK, cfg->scan_period), reg_vcmpscp2); + } + + /* Data must keep device reference for later access in ISR function */ + data->vcmp = dev; + + err = vcmp_set_threshold(dev, cfg->threshold_mv); + if (err) { + return err; + } + + /* + * All voltage comparator channels share one irq interrupt, + * so if the irq is enabled before, we needn't to enable again. + * And we will figure out the triggered channel in vcmp_it51xxx_isr(). + */ + if (!irq_is_enabled(cfg->irq)) { + ite_intc_isr_clear(cfg->irq); + irq_connect_dynamic(cfg->irq, 0, (void (*)(const void *))vcmp_it51xxx_isr, + (const void *)dev, 0); + irq_enable(cfg->irq); + } + + return 0; +} + +static DEVICE_API(comparator, it51xxx_vcmp_api) = { + .get_output = it51xxx_vcmp_get_output, + .set_trigger = it51xxx_vcmp_set_trigger, + .set_trigger_callback = it51xxx_vcmp_set_trigger_callback, + .trigger_is_pending = it51xxx_vcmp_trigger_is_pending, +}; + +#define VCMP_IT51XXX_INIT(inst) \ + static const struct vcmp_it51xxx_config vcmp_it51xxx_cfg_##inst = { \ + .base_ch = DT_INST_REG_ADDR_BY_IDX(inst, 0), \ + .reg_base = DT_INST_REG_ADDR_BY_IDX(inst, 1), \ + .irq = DT_INST_IRQN(inst), \ + .vcmp_ch = DT_INST_PROP(inst, vcmp_ch), \ + .scan_period = DT_INST_PROP(inst, scan_period), \ + .threshold_mv = DT_INST_PROP(inst, threshold_mv), \ + .adc = DEVICE_DT_GET(DT_INST_IO_CHANNELS_CTLR(inst)), \ + .channel_id = (uint8_t)DT_INST_IO_CHANNELS_INPUT(inst), \ + }; \ + \ + static struct vcmp_it51xxx_data vcmp_it51xxx_data_##inst; \ + \ + DEVICE_DT_INST_DEFINE(inst, vcmp_it51xxx_init, NULL, &vcmp_it51xxx_data_##inst, \ + &vcmp_it51xxx_cfg_##inst, POST_KERNEL, \ + CONFIG_COMPARATOR_INIT_PRIORITY, &it51xxx_vcmp_api); + +DT_INST_FOREACH_STATUS_OKAY(VCMP_IT51XXX_INIT) diff --git a/dts/bindings/comparator/ite,it51xxx-vcmp.yaml b/dts/bindings/comparator/ite,it51xxx-vcmp.yaml new file mode 100644 index 00000000000..08fd821f798 --- /dev/null +++ b/dts/bindings/comparator/ite,it51xxx-vcmp.yaml @@ -0,0 +1,65 @@ +# Copyright (c) 2025 ITE Technology Corporation. +# SPDX-License-Identifier: Apache-2.0 + +description: ITE, it51xxx Voltage Comparator node + +compatible: "ite,it51xxx-vcmp" + +include: base.yaml + +properties: + reg: + required: true + + interrupts: + required: true + + vcmp-ch: + type: int + required: true + description: | + Voltage comparator channel. + Check include/zephyr/dt-bindings/comparator/it51xxx-vcmp.h file for + pre-defined values. + + threshold-mv: + type: int + required: true + description: | + 16-bit value in milli-volts present on ADC data as threshold assert. + + io-channels: + type: phandle-array + required: true + description: | + ADC channel that will perform measurement. + + scan-period: + type: int + description: | + 0x1: Set comparator scan period to 100US + 0x2: Set comparator scan period to 200US + 0x3: Set comparator scan period to 400US + 0x4: Set comparator scan period to 600US + 0x5: Set comparator scan period to 800US + 0x6: Set comparator scan period to 1MS + 0x7: Set comparator scan period to 1.5MS + 0x8: Set comparator scan period to 2MS + 0x9: Set comparator scan period to 2.5MS + 0xA: Set comparator scan period to 3MS + 0xB: Set comparator scan period to 4MS + 0xC: Set comparator scan period to 5MS + default: 0x4 + enum: + - 0x1 + - 0x2 + - 0x3 + - 0x4 + - 0x5 + - 0x6 + - 0x7 + - 0x8 + - 0x9 + - 0xA + - 0xB + - 0xC diff --git a/dts/riscv/ite/it51xxx.dtsi b/dts/riscv/ite/it51xxx.dtsi index 8f3b008276e..16633f3c6b2 100644 --- a/dts/riscv/ite/it51xxx.dtsi +++ b/dts/riscv/ite/it51xxx.dtsi @@ -6,9 +6,10 @@ #include #include +#include #include +#include #include -#include #include #include #include @@ -84,6 +85,36 @@ #io-channel-cells = <1>; }; + vcmp0: vcmp@f04520 { + compatible = "ite,it51xxx-vcmp"; + interrupt-parent = <&intc>; + interrupts = ; + reg = <0xf04520 0x08 + 0xf04500 0xc1>; /* vcmp base address */ + vcmp-ch = ; + status = "disabled"; + }; + + vcmp1: vcmp@f04528 { + compatible = "ite,it51xxx-vcmp"; + interrupt-parent = <&intc>; + interrupts = ; + reg = <0xf04528 0x08 + 0xf04500 0xc1>; /* vcmp base address */ + vcmp-ch = ; + status = "disabled"; + }; + + vcmp2: vcmp@f0452c { + compatible = "ite,it51xxx-vcmp"; + interrupt-parent = <&intc>; + interrupts = ; + reg = <0xf0452c 0x08 + 0xf04500 0xc1>; /* vcmp base address */ + vcmp-ch = ; + status = "disabled"; + }; + gpiogcr: gpio-gcr@f01600 { compatible = "ite,it51xxx-gpiogcr"; reg = <0x00f01600 0x100>; diff --git a/include/zephyr/dt-bindings/comparator/it51xxx-vcmp.h b/include/zephyr/dt-bindings/comparator/it51xxx-vcmp.h new file mode 100644 index 00000000000..1296a8d5b31 --- /dev/null +++ b/include/zephyr/dt-bindings/comparator/it51xxx-vcmp.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 ITE Corporation. + * + * SPDX-License-Identifier: Apache-2.0 + */ +#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_COMPARATOR_IT51XXX_VCMP_H_ +#define ZEPHYR_INCLUDE_DT_BINDINGS_COMPARATOR_IT51XXX_VCMP_H_ + +/** + * @name it51xxx voltage comparator channel references + * @{ + */ + +#define VCMP_CHANNEL_0 0 +#define VCMP_CHANNEL_1 1 +#define VCMP_CHANNEL_2 2 +#define VCMP_CHANNEL_CNT 3 + +/** @} */ + +#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_COMPARATOR_IT51XXX_VCMP_H_ */ diff --git a/tests/drivers/comparator/gpio_loopback/boards/it515xx_evb.conf b/tests/drivers/comparator/gpio_loopback/boards/it515xx_evb.conf new file mode 100644 index 00000000000..a51e33c8c63 --- /dev/null +++ b/tests/drivers/comparator/gpio_loopback/boards/it515xx_evb.conf @@ -0,0 +1,4 @@ +# Copyright (c) 2025 ITE Technology Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_ADC=y diff --git a/tests/drivers/comparator/gpio_loopback/boards/it515xx_evb.overlay b/tests/drivers/comparator/gpio_loopback/boards/it515xx_evb.overlay new file mode 100644 index 00000000000..6c119b30017 --- /dev/null +++ b/tests/drivers/comparator/gpio_loopback/boards/it515xx_evb.overlay @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2025 ITE Technology Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +/ { + aliases { + test-comp = &vcmp1; + }; + + zephyr,user { + test-gpios = <&gpioa 1 GPIO_ACTIVE_HIGH>; + }; +}; + +&vcmp1 { + status = "okay"; + threshold-mv = <1500>; + scan-period = <0x4>; + io-channels = <&adc0 3>; +}; From 7619a11eadfb6faf94b90ebbfa4ff67dc72b55b6 Mon Sep 17 00:00:00 2001 From: Khoa Nguyen Date: Mon, 2 Jun 2025 11:24:59 +0700 Subject: [PATCH 10/59] [nrf fromtree] tests: drivers: comparator: Add support gpio_loopback for ek_ra8p1 Add support test app `gpio_loopback` for Renesas ek_ra8p1 board Signed-off-by: Khoa Nguyen (cherry picked from commit 3367bd46dd2df1819e4b33334cbf989cd69f519b) --- .../ek_ra8p1_r7ka8p1kflcac_cm85.overlay | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tests/drivers/comparator/gpio_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay diff --git a/tests/drivers/comparator/gpio_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay b/tests/drivers/comparator/gpio_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay new file mode 100644 index 00000000000..cccbaf04e93 --- /dev/null +++ b/tests/drivers/comparator/gpio_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +/ { + aliases { + test-comp = &acmphs0; + }; + + zephyr,user { + test-gpios = <&ioport6 0 GPIO_ACTIVE_HIGH>; + }; +}; + +&pinctrl { + acmphs0_ivcmp0: acmphs0_ivcmp0 { + group1 { + /* CH0 IVCMP0 */ + psels = ; + renesas,analog-enable; + }; + }; +}; + +&acmphs_global { + status = "okay"; + + acmphs0 { + pinctrl-0 = <&acmphs0_ivcmp0>; + pinctrl-names = "default"; + interrupts = <90 12>; + interrupt-names = "hs"; + reference-input-source = "ivref2"; + compare-input-source = "ivcmp0"; + noise-filter = <1>; + status = "okay"; + }; +}; From a994555f9208ac9f950dd9db1831b474e2f3b647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:16:42 +0200 Subject: [PATCH 11/59] [nrf fromtree] tests: drivers: comparator: gpio_loopback: Enable test on nrf54lm20dk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add overlay required to run the test on nrf54lm20dk/nrf54lm20a/cpuapp. Signed-off-by: Sebastian Głąb (cherry picked from commit e8a5802c9077d6eb01fabe1c95789b5bbb0c6bde) --- .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 25 +++++++++++++++++++ .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 16 ++++++++++++ .../snippets/nrf_comp/snippet.yml | 9 ++++--- .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 12 +++++++++ .../snippets/nrf_lpcomp/snippet.yml | 9 ++++--- .../comparator/gpio_loopback/testcase.yaml | 6 +++-- 6 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 tests/drivers/comparator/gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay create mode 100644 tests/drivers/comparator/gpio_loopback/snippets/nrf_comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay create mode 100644 tests/drivers/comparator/gpio_loopback/snippets/nrf_lpcomp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay diff --git a/tests/drivers/comparator/gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/comparator/gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay new file mode 100644 index 00000000000..831e235d4c7 --- /dev/null +++ b/tests/drivers/comparator/gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +/* + * P1.30 looped back to P1.31 (AIN1) + */ + +/ { + aliases { + test-comp = ∁ + }; + + zephyr,user { + test-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; + }; +}; + +&gpio1 { + status = "okay"; +}; diff --git a/tests/drivers/comparator/gpio_loopback/snippets/nrf_comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/comparator/gpio_loopback/snippets/nrf_comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay new file mode 100644 index 00000000000..2709df53195 --- /dev/null +++ b/tests/drivers/comparator/gpio_loopback/snippets/nrf_comp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&comp { + main-mode = "SE"; + psel = "AIN1"; /* P1.31 */ + refsel = "INT_1V2"; + sp-mode = "HIGH"; + th-up = <63>; + th-down = <59>; + isource = "DISABLED"; + status = "okay"; +}; diff --git a/tests/drivers/comparator/gpio_loopback/snippets/nrf_comp/snippet.yml b/tests/drivers/comparator/gpio_loopback/snippets/nrf_comp/snippet.yml index 79fffefe7f4..9d876bfded0 100644 --- a/tests/drivers/comparator/gpio_loopback/snippets/nrf_comp/snippet.yml +++ b/tests/drivers/comparator/gpio_loopback/snippets/nrf_comp/snippet.yml @@ -4,15 +4,18 @@ name: gpio_loopback_nrf_comp boards: + nrf5340dk/nrf5340/cpuapp: + append: + EXTRA_DTC_OVERLAY_FILE: boards/nrf5340dk_nrf5340_cpuapp.overlay nrf54h20dk/nrf54h20/cpuapp: append: EXTRA_DTC_OVERLAY_FILE: boards/nrf54h20dk_nrf54h20_cpuapp.overlay nrf54l15dk/nrf54l15/cpuapp: append: EXTRA_DTC_OVERLAY_FILE: boards/nrf54l15dk_nrf54l15_cpuapp.overlay + nrf54lm20dk/nrf54lm20a/cpuapp: + append: + EXTRA_DTC_OVERLAY_FILE: boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay ophelia4ev/nrf54l15/cpuapp: append: EXTRA_DTC_OVERLAY_FILE: boards/nrf54l15dk_nrf54l15_cpuapp.overlay - nrf5340dk/nrf5340/cpuapp: - append: - EXTRA_DTC_OVERLAY_FILE: boards/nrf5340dk_nrf5340_cpuapp.overlay diff --git a/tests/drivers/comparator/gpio_loopback/snippets/nrf_lpcomp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/comparator/gpio_loopback/snippets/nrf_lpcomp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay new file mode 100644 index 00000000000..0f51a9951a1 --- /dev/null +++ b/tests/drivers/comparator/gpio_loopback/snippets/nrf_lpcomp/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&comp { + compatible = "nordic,nrf-lpcomp"; + psel = "AIN1"; /* P1.31 */ + refsel = "VDD_4_8"; + status = "okay"; +}; diff --git a/tests/drivers/comparator/gpio_loopback/snippets/nrf_lpcomp/snippet.yml b/tests/drivers/comparator/gpio_loopback/snippets/nrf_lpcomp/snippet.yml index 82a32cb517e..c2a2005af4d 100644 --- a/tests/drivers/comparator/gpio_loopback/snippets/nrf_lpcomp/snippet.yml +++ b/tests/drivers/comparator/gpio_loopback/snippets/nrf_lpcomp/snippet.yml @@ -4,15 +4,18 @@ name: gpio_loopback_nrf_lpcomp boards: + nrf5340dk/nrf5340/cpuapp: + append: + EXTRA_DTC_OVERLAY_FILE: boards/nrf5340dk_nrf5340_cpuapp.overlay nrf54h20dk/nrf54h20/cpuapp: append: EXTRA_DTC_OVERLAY_FILE: boards/nrf54h20dk_nrf54h20_cpuapp.overlay nrf54l15dk/nrf54l15/cpuapp: append: EXTRA_DTC_OVERLAY_FILE: boards/nrf54l15dk_nrf54l15_cpuapp.overlay + nrf54lm20dk/nrf54lm20a/cpuapp: + append: + EXTRA_DTC_OVERLAY_FILE: boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay ophelia4ev/nrf54l15/cpuapp: append: EXTRA_DTC_OVERLAY_FILE: boards/nrf54l15dk_nrf54l15_cpuapp.overlay - nrf5340dk/nrf5340/cpuapp: - append: - EXTRA_DTC_OVERLAY_FILE: boards/nrf5340dk_nrf5340_cpuapp.overlay diff --git a/tests/drivers/comparator/gpio_loopback/testcase.yaml b/tests/drivers/comparator/gpio_loopback/testcase.yaml index cfeeabe3a69..bf0e7d127a0 100644 --- a/tests/drivers/comparator/gpio_loopback/testcase.yaml +++ b/tests/drivers/comparator/gpio_loopback/testcase.yaml @@ -20,15 +20,17 @@ tests: extra_args: - SNIPPET="gpio_loopback_nrf_comp" platform_allow: + - nrf5340dk/nrf5340/cpuapp - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf5340dk/nrf5340/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp drivers.comparator.gpio_loopback.nrf_lpcomp: extra_args: - SNIPPET="gpio_loopback_nrf_lpcomp" platform_allow: + - nrf5340dk/nrf5340/cpuapp - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf5340dk/nrf5340/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp From 3c5a2eb9956f390655b9637404770d9ec14fd9c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:17:41 +0200 Subject: [PATCH 12/59] [nrf fromtree] tests: drivers: counter: counter_basic_api: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit e275eeaefb51cc3df0c546ce48495916a09b5882) --- .../boards/nrf54l20pdk_nrf54l20_common.dtsi | 36 ------------------- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 3 -- .../nrf54l20pdk_nrf54l20_cpuflpr.overlay | 3 -- 3 files changed, 42 deletions(-) delete mode 100644 tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_common.dtsi delete mode 100644 tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay delete mode 100644 tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay diff --git a/tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_common.dtsi b/tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_common.dtsi deleted file mode 100644 index 72941675287..00000000000 --- a/tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_common.dtsi +++ /dev/null @@ -1,36 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ - -&timer00 { - prescaler = <6>; - status = "okay"; -}; - -&timer10 { - prescaler = <4>; - status = "okay"; -}; - -&timer20 { - prescaler = <4>; - status = "okay"; -}; - -&timer21 { - prescaler = <4>; - status = "okay"; -}; - -&timer22 { - prescaler = <4>; - status = "okay"; -}; - -&timer23 { - prescaler = <4>; - status = "okay"; -}; - -&timer24 { - prescaler = <4>; - status = "okay"; -}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index 42b2852a09f..00000000000 --- a/tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,3 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ - -#include "nrf54l20pdk_nrf54l20_common.dtsi" diff --git a/tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay b/tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay deleted file mode 100644 index 42b2852a09f..00000000000 --- a/tests/drivers/counter/counter_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay +++ /dev/null @@ -1,3 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ - -#include "nrf54l20pdk_nrf54l20_common.dtsi" From b360cb7ce88e344fe5291eff6ae5a6536ed3776d Mon Sep 17 00:00:00 2001 From: Khoa Nguyen Date: Tue, 22 Apr 2025 14:14:43 +0700 Subject: [PATCH 13/59] [nrf fromtree] tests: drivers: flash: Add support "common" for Renesas OSPI_B Add support test app "flash/common" for testing Renesas RA OSPI_B on ek_ra8m1, ek_ra8d1 Signed-off-by: Khoa Nguyen (cherry picked from commit a545e19c5cc42b6d3a09dd53841f97c679cf06a3) --- tests/drivers/flash/common/boards/ek_ra8d1.overlay | 4 ++++ .../flash/common/boards/ek_ra8d1_ospi_b_nor.conf | 4 ++++ .../flash/common/boards/ek_ra8d1_ospi_b_nor.overlay | 10 ++++++++++ tests/drivers/flash/common/boards/ek_ra8m1.overlay | 4 ++++ .../flash/common/boards/ek_ra8m1_ospi_b_nor.conf | 4 ++++ .../flash/common/boards/ek_ra8m1_ospi_b_nor.overlay | 10 ++++++++++ tests/drivers/flash/common/src/main.c | 10 +++++++++- tests/drivers/flash/common/testcase.yaml | 7 +++++++ 8 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 tests/drivers/flash/common/boards/ek_ra8d1_ospi_b_nor.conf create mode 100644 tests/drivers/flash/common/boards/ek_ra8d1_ospi_b_nor.overlay create mode 100644 tests/drivers/flash/common/boards/ek_ra8m1_ospi_b_nor.conf create mode 100644 tests/drivers/flash/common/boards/ek_ra8m1_ospi_b_nor.overlay diff --git a/tests/drivers/flash/common/boards/ek_ra8d1.overlay b/tests/drivers/flash/common/boards/ek_ra8d1.overlay index 8e42c66387c..ee45617b009 100644 --- a/tests/drivers/flash/common/boards/ek_ra8d1.overlay +++ b/tests/drivers/flash/common/boards/ek_ra8d1.overlay @@ -18,3 +18,7 @@ }; }; }; + +&s28hl512t { + status = "disabled"; +}; diff --git a/tests/drivers/flash/common/boards/ek_ra8d1_ospi_b_nor.conf b/tests/drivers/flash/common/boards/ek_ra8d1_ospi_b_nor.conf new file mode 100644 index 00000000000..349d703d783 --- /dev/null +++ b/tests/drivers/flash/common/boards/ek_ra8d1_ospi_b_nor.conf @@ -0,0 +1,4 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_TEST_DRIVER_FLASH_SIZE=67108864 diff --git a/tests/drivers/flash/common/boards/ek_ra8d1_ospi_b_nor.overlay b/tests/drivers/flash/common/boards/ek_ra8d1_ospi_b_nor.overlay new file mode 100644 index 00000000000..cb05c656afa --- /dev/null +++ b/tests/drivers/flash/common/boards/ek_ra8d1_ospi_b_nor.overlay @@ -0,0 +1,10 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +/delete-node/ &storage_partition; + +&s28hl512t { + status = "okay"; +}; diff --git a/tests/drivers/flash/common/boards/ek_ra8m1.overlay b/tests/drivers/flash/common/boards/ek_ra8m1.overlay index 8e42c66387c..ee45617b009 100644 --- a/tests/drivers/flash/common/boards/ek_ra8m1.overlay +++ b/tests/drivers/flash/common/boards/ek_ra8m1.overlay @@ -18,3 +18,7 @@ }; }; }; + +&s28hl512t { + status = "disabled"; +}; diff --git a/tests/drivers/flash/common/boards/ek_ra8m1_ospi_b_nor.conf b/tests/drivers/flash/common/boards/ek_ra8m1_ospi_b_nor.conf new file mode 100644 index 00000000000..349d703d783 --- /dev/null +++ b/tests/drivers/flash/common/boards/ek_ra8m1_ospi_b_nor.conf @@ -0,0 +1,4 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_TEST_DRIVER_FLASH_SIZE=67108864 diff --git a/tests/drivers/flash/common/boards/ek_ra8m1_ospi_b_nor.overlay b/tests/drivers/flash/common/boards/ek_ra8m1_ospi_b_nor.overlay new file mode 100644 index 00000000000..cb05c656afa --- /dev/null +++ b/tests/drivers/flash/common/boards/ek_ra8m1_ospi_b_nor.overlay @@ -0,0 +1,10 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +/delete-node/ &storage_partition; + +&s28hl512t { + status = "okay"; +}; diff --git a/tests/drivers/flash/common/src/main.c b/tests/drivers/flash/common/src/main.c index fa2fd053fd8..03b3c08a6cf 100644 --- a/tests/drivers/flash/common/src/main.c +++ b/tests/drivers/flash/common/src/main.c @@ -12,6 +12,8 @@ #if defined(CONFIG_NORDIC_QSPI_NOR) #define TEST_AREA_DEV_NODE DT_INST(0, nordic_qspi_nor) +#elif defined(CONFIG_FLASH_RENESAS_RA_OSPI_B) +#define TEST_AREA_DEV_NODE DT_INST(0, renesas_ra_ospi_b_nor) #elif defined(CONFIG_SPI_NOR) #define TEST_AREA_DEV_NODE DT_INST(0, jedec_spi_nor) #elif defined(CONFIG_FLASH_MSPI_NOR) @@ -32,12 +34,18 @@ #elif defined(TEST_AREA_DEV_NODE) #define TEST_AREA_DEVICE DEVICE_DT_GET(TEST_AREA_DEV_NODE) +#if defined CONFIG_FLASH_RENESAS_RA_OSPI_B +#define TEST_AREA_OFFSET 0x40000 +#else #define TEST_AREA_OFFSET 0xff000 +#endif #if DT_NODE_HAS_PROP(TEST_AREA_DEV_NODE, size_in_bytes) #define TEST_AREA_MAX DT_PROP(TEST_AREA_DEV_NODE, size_in_bytes) -#else +#elif DT_NODE_HAS_PROP(TEST_AREA_DEV_NODE, size) #define TEST_AREA_MAX (DT_PROP(TEST_AREA_DEV_NODE, size) / 8) +#else +#define TEST_AREA_MAX DT_REG_SIZE(TEST_AREA_DEV_NODE) #endif #else diff --git a/tests/drivers/flash/common/testcase.yaml b/tests/drivers/flash/common/testcase.yaml index a46ecb50e11..cabd1ffa0c6 100644 --- a/tests/drivers/flash/common/testcase.yaml +++ b/tests/drivers/flash/common/testcase.yaml @@ -139,3 +139,10 @@ tests: filter: dt_compat_enabled("soc-nv-flash") and dt_compat_enabled("jedec,spi-nor") extra_args: - CONFIG_SPI_NOR=n + drivers.flash.common.ra_ospi_b_nor: + platform_allow: + - ek_ra8m1 + - ek_ra8d1 + extra_args: + - DTC_OVERLAY_FILE="./boards/${BOARD}_ospi_b_nor.overlay" + - CONF_FILE="./prj.conf ./boards/${BOARD}_ospi_b_nor.conf" From 6959920eaf993642774b578986ee752a94652405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrzej=20G=C5=82=C4=85bek?= Date: Mon, 26 May 2025 10:50:50 +0200 Subject: [PATCH 14/59] [nrf fromtree] tests: drivers: flash: common: Fix page size when no erase is required MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When no flash device requires erase, this test does not retrieve flash page size with flash_get_page_info_by_offs(), but instead it takes an arbitrary page size based on the test area length. Since the test_flash_copy routine needs to use two pages, the test area needs to be split into at least two parts. Correct the related code and add a check if test_flash_copy requirements are met. Signed-off-by: Andrzej Głąbek (cherry picked from commit fb94343ce45d1324189fbf2ff0fffc52e4a9a525) --- tests/drivers/flash/common/src/main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/drivers/flash/common/src/main.c b/tests/drivers/flash/common/src/main.c index 03b3c08a6cf..ab0e63bb609 100644 --- a/tests/drivers/flash/common/src/main.c +++ b/tests/drivers/flash/common/src/main.c @@ -87,7 +87,8 @@ static void flash_driver_before(void *arg) TC_PRINT("No devices with erase requirement present\n"); erase_value = 0x55; page_info.start_offset = TEST_AREA_OFFSET; - page_info.size = TEST_AREA_MAX - TEST_AREA_OFFSET; + /* test_flash_copy uses 2 pages, so split the test area */ + page_info.size = (TEST_AREA_MAX - TEST_AREA_OFFSET) / 2; } @@ -111,6 +112,10 @@ static void flash_driver_before(void *arg) zassert_true((TEST_AREA_OFFSET + EXPECTED_SIZE) <= TEST_AREA_MAX, "Test area exceeds flash size"); + /* Check if test region is suitable for test_flash_copy */ + zassert_true((TEST_AREA_OFFSET + 2 * page_info.size) <= TEST_AREA_MAX, + "test_flash_copy needs 2 flash pages"); + /* Check if flash is cleared */ if (IS_ENABLED(CONFIG_FLASH_HAS_EXPLICIT_ERASE) && ebw_required) { bool is_buf_clear = true; From 54c98c332de47bdff589723cda6bd815d0f02fdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:22:56 +0200 Subject: [PATCH 15/59] [nrf fromtree] tests: drivers: flash: common: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Enable external memory node. Use separate test configuration as external memory works only on nRF54LM20 DKs with `external_flash` fixture. Signed-off-by: Sebastian Głąb (cherry picked from commit 6d03831708244d0f7b855efca9b9d3948465b619) --- .../flash/common/boards/nrf54l20pdk_nrf54l20_cpuapp.conf | 4 ---- .../common/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 9 +++++++++ tests/drivers/flash/common/testcase.yaml | 9 +++++++-- 3 files changed, 16 insertions(+), 6 deletions(-) delete mode 100644 tests/drivers/flash/common/boards/nrf54l20pdk_nrf54l20_cpuapp.conf create mode 100644 tests/drivers/flash/common/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay diff --git a/tests/drivers/flash/common/boards/nrf54l20pdk_nrf54l20_cpuapp.conf b/tests/drivers/flash/common/boards/nrf54l20pdk_nrf54l20_cpuapp.conf deleted file mode 100644 index 821a5e77e5b..00000000000 --- a/tests/drivers/flash/common/boards/nrf54l20pdk_nrf54l20_cpuapp.conf +++ /dev/null @@ -1,4 +0,0 @@ -CONFIG_FCB=y -CONFIG_FLASH_MAP=y -CONFIG_SETTINGS=y -CONFIG_SETTINGS_FCB=y diff --git a/tests/drivers/flash/common/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/flash/common/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay new file mode 100644 index 00000000000..8a5afda2ab0 --- /dev/null +++ b/tests/drivers/flash/common/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -0,0 +1,9 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&mx25r64 { + status = "okay"; +}; diff --git a/tests/drivers/flash/common/testcase.yaml b/tests/drivers/flash/common/testcase.yaml index cabd1ffa0c6..0433d024ff1 100644 --- a/tests/drivers/flash/common/testcase.yaml +++ b/tests/drivers/flash/common/testcase.yaml @@ -37,6 +37,8 @@ tests: filter: ((CONFIG_FLASH_HAS_DRIVER_ENABLED and not CONFIG_TRUSTED_EXECUTION_NONSECURE) and (dt_label_with_parent_compat_enabled("storage_partition", "fixed-partitions") or dt_label_with_parent_compat_enabled("storage_partition", "nordic,owned-partitions"))) + platform_exclude: + - nrf54lm20dk/nrf54lm20a/cpuapp integration_platforms: - qemu_x86 - mimxrt1060_evk/mimxrt1062/qspi @@ -46,10 +48,13 @@ tests: - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l10/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54h20dk/nrf54h20/cpuapp - ophelia4ev/nrf54l15/cpuapp + drivers.flash.common.nrf54lm20a: + platform_allow: + - nrf54lm20dk/nrf54lm20a/cpuapp + harness_config: + fixture: external_flash drivers.flash.common.tfm_ns: build_only: true filter: (CONFIG_FLASH_HAS_DRIVER_ENABLED and CONFIG_TRUSTED_EXECUTION_NONSECURE From 9c465bd72bd053af8e20dca4336b5881203f0498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:24:15 +0200 Subject: [PATCH 16/59] [nrf fromtree] tests: drivers: flash: negative_tests: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit dd932f22567eab7abb1379c32f0fe27313d8e5f6) --- tests/drivers/flash/negative_tests/testcase.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/drivers/flash/negative_tests/testcase.yaml b/tests/drivers/flash/negative_tests/testcase.yaml index 3321a0273ba..7a55212aa3f 100644 --- a/tests/drivers/flash/negative_tests/testcase.yaml +++ b/tests/drivers/flash/negative_tests/testcase.yaml @@ -5,9 +5,8 @@ common: tests: drivers.flash.negative_tests: platform_allow: + - nrf54h20dk/nrf54h20/cpuapp - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - - nrf54h20dk/nrf54h20/cpuapp - ophelia4ev/nrf54l15/cpuapp From 67f43645798096a7e38a5b8ffeaabbdbd372d1cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:28:11 +0200 Subject: [PATCH 17/59] [nrf fromtree] tests: drivers: gpio: gpio_basic_api: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 942e2a81950749526c1220f0d2be313c352e0c88) --- .../nrf54l20pdk_nrf54l20_common.overlay | 21 ------------------- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 7 ------- .../nrf54l20pdk_nrf54l20_cpuflpr.overlay | 7 ------- 3 files changed, 35 deletions(-) delete mode 100644 tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_common.overlay delete mode 100644 tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay delete mode 100644 tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay diff --git a/tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_common.overlay b/tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_common.overlay deleted file mode 100644 index 8eb1b3c9f9f..00000000000 --- a/tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_common.overlay +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2024 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/ { - resources { - compatible = "test-gpio-basic-api"; - out-gpios = <&gpio1 10 0>; - in-gpios = <&gpio1 11 0>; - }; -}; - -&gpiote20 { - status = "okay"; -}; - -&gpio1 { - status = "okay"; -}; diff --git a/tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index 3ed56c4a6c8..00000000000 --- a/tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright (c) 2024 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include "nrf54l20pdk_nrf54l20_common.overlay" diff --git a/tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay b/tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay deleted file mode 100644 index 91c033f0f94..00000000000 --- a/tests/drivers/gpio/gpio_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include "nrf54l20pdk_nrf54l20_common.overlay" From 0e8f020f67fd89cf7de6d79934a22360776299b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:32:23 +0200 Subject: [PATCH 18/59] [nrf fromtree] tests: drivers: i2c: i2c_target_api: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 9a8988d292c439019208ec855b66ae4534697249) --- .../boards/nrf54l20pdk_nrf54l20_cpuapp.conf | 1 - .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 68 ------------------- .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 6 ++ .../drivers/i2c/i2c_target_api/testcase.yaml | 2 +- 4 files changed, 7 insertions(+), 70 deletions(-) delete mode 100644 tests/drivers/i2c/i2c_target_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf delete mode 100644 tests/drivers/i2c/i2c_target_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/i2c/i2c_target_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf b/tests/drivers/i2c/i2c_target_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf deleted file mode 100644 index 2510d6673c1..00000000000 --- a/tests/drivers/i2c/i2c_target_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf +++ /dev/null @@ -1 +0,0 @@ -CONFIG_I2C_NRFX_TWIS_BUF_SIZE=256 diff --git a/tests/drivers/i2c/i2c_target_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/i2c/i2c_target_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index f04022cf8f3..00000000000 --- a/tests/drivers/i2c/i2c_target_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,68 +0,0 @@ -/* - * SDA = P1.8 and P1.9 - * SCL = P1.14 and P1.15 - */ - -&pinctrl { - i2c21_default: i2c21_default { - group1 { - psels = , - ; - bias-pull-up; - }; - }; - - i2c21_sleep: i2c21_sleep { - group1 { - psels = , - ; - low-power-enable; - }; - }; - - i2c22_default: i2c22_default { - group1 { - psels = , - ; - bias-pull-up; - }; - }; - - i2c22_sleep: i2c22_sleep { - group1 { - psels = , - ; - low-power-enable; - }; - }; -}; - -&i2c21 { - pinctrl-0 = <&i2c21_default>; - pinctrl-1 = <&i2c21_sleep>; - pinctrl-names = "default", "sleep"; - zephyr,concat-buf-size = <256>; - status = "okay"; - - eeprom1: eeprom@56 { - compatible = "zephyr,i2c-target-eeprom"; - reg = <0x56>; - address-width = <8>; - size = <256>; - }; -}; - -&i2c22 { - compatible = "nordic,nrf-twis"; - pinctrl-0 = <&i2c22_default>; - pinctrl-1 = <&i2c22_sleep>; - pinctrl-names = "default", "sleep"; - status = "okay"; - - eeprom0: eeprom@54 { - compatible = "zephyr,i2c-target-eeprom"; - reg = <0x54>; - address-width = <8>; - size = <256>; - }; -}; diff --git a/tests/drivers/i2c/i2c_target_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/i2c/i2c_target_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay index 3459599351b..f6d76c7253c 100644 --- a/tests/drivers/i2c/i2c_target_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay +++ b/tests/drivers/i2c/i2c_target_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: Apache-2.0 + */ + /* * SDA = P1.13 and P1.14 * SCL = P1.23 and P1.24 diff --git a/tests/drivers/i2c/i2c_target_api/testcase.yaml b/tests/drivers/i2c/i2c_target_api/testcase.yaml index 7f888f95e12..8c95390a72c 100644 --- a/tests/drivers/i2c/i2c_target_api/testcase.yaml +++ b/tests/drivers/i2c/i2c_target_api/testcase.yaml @@ -64,8 +64,8 @@ tests: - nrf5340dk/nrf5340/cpuapp - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: - max32690evkit/max32690/m4 + - nrf54l15dk/nrf54l15/cpuapp From c95f137fe2e40726c73af4515495e84996835354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:33:41 +0200 Subject: [PATCH 19/59] [nrf fromtree] tests: drivers: i2s: i2s_additional: Enable test on nrf54lm20dk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add overlay required to run the test on nrf54lm20dk/nrf54lm20a/cpuapp. Signed-off-by: Sebastian Głąb (cherry picked from commit a850089d6b3f57c1b3bdbe2919ff118e81f47a42) --- ...20a_cpuapp.overlay => nrf54lm20dk_nrf54lm20a_cpuapp.overlay} | 0 tests/drivers/i2s/i2s_additional/testcase.yaml | 2 ++ 2 files changed, 2 insertions(+) rename tests/drivers/i2s/i2s_additional/boards/{nrf54lm20pdk_nrf54lm20a_cpuapp.overlay => nrf54lm20dk_nrf54lm20a_cpuapp.overlay} (100%) diff --git a/tests/drivers/i2s/i2s_additional/boards/nrf54lm20pdk_nrf54lm20a_cpuapp.overlay b/tests/drivers/i2s/i2s_additional/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay similarity index 100% rename from tests/drivers/i2s/i2s_additional/boards/nrf54lm20pdk_nrf54lm20a_cpuapp.overlay rename to tests/drivers/i2s/i2s_additional/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay diff --git a/tests/drivers/i2s/i2s_additional/testcase.yaml b/tests/drivers/i2s/i2s_additional/testcase.yaml index c45a5482b7f..9dcb82d61f3 100644 --- a/tests/drivers/i2s/i2s_additional/testcase.yaml +++ b/tests/drivers/i2s/i2s_additional/testcase.yaml @@ -16,10 +16,12 @@ tests: - nrf52840dk/nrf52840 - nrf5340dk/nrf5340/cpuapp - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp integration_platforms: - nrf52840dk/nrf52840 - nrf5340dk/nrf5340/cpuapp - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp drivers.i2s.additional.gpio_loopback.54h: harness_config: From 0753a03fdd818eb5ccf0b9b19505523c88191538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:34:44 +0200 Subject: [PATCH 20/59] [nrf fromtree] tests: drivers: i2s: i2s_api: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 98443a87f96f9a4e03bc67614098c312dbca1d5d) --- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 tests/drivers/i2s/i2s_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/i2s/i2s_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/i2s/i2s_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index 09a2cb0459c..00000000000 --- a/tests/drivers/i2s/i2s_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2024 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/* i2s-node0 is the transmitter/receiver */ - -/ { - aliases { - i2s-node0 = &tdm; - }; -}; - -&pinctrl { - tdm_default_alt: tdm_default_alt { - group1 { - psels = , - , - , - ; - }; - }; -}; - -&tdm { - status = "okay"; - pinctrl-0 = <&tdm_default_alt>; - pinctrl-names = "default"; -}; From be759aa49742c320bb253ee88a158897ba5a8bed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:35:48 +0200 Subject: [PATCH 21/59] [nrf fromtree] tests: drivers: i2s: i2s_speed: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 796adb60caddbca0103cfcd5400cea97aa3133b5) --- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 tests/drivers/i2s/i2s_speed/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/i2s/i2s_speed/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/i2s/i2s_speed/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index 09a2cb0459c..00000000000 --- a/tests/drivers/i2s/i2s_speed/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2024 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/* i2s-node0 is the transmitter/receiver */ - -/ { - aliases { - i2s-node0 = &tdm; - }; -}; - -&pinctrl { - tdm_default_alt: tdm_default_alt { - group1 { - psels = , - , - , - ; - }; - }; -}; - -&tdm { - status = "okay"; - pinctrl-0 = <&tdm_default_alt>; - pinctrl-names = "default"; -}; From 94179cbc7c9a0c6793df90708628334f0a42f66e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:40:01 +0200 Subject: [PATCH 22/59] [nrf fromtree] tests: drivers: pwm: pwm_gpio_loopback: Enable test on nrf54lm20dk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add overlay required to run the test on nrf54lm20dk/nrf54lm20a/cpuapp. Signed-off-by: Sebastian Głąb (cherry picked from commit 25b90acc70dca3c5fe65c712ee4d3cf6702d8a42) --- .../boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf | 1 + .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 36 +++++++++++++++++++ .../pwm/pwm_gpio_loopback/testcase.yaml | 1 + 3 files changed, 38 insertions(+) create mode 100644 tests/drivers/pwm/pwm_gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf create mode 100644 tests/drivers/pwm/pwm_gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay diff --git a/tests/drivers/pwm/pwm_gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf b/tests/drivers/pwm/pwm_gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf new file mode 100644 index 00000000000..795414a504a --- /dev/null +++ b/tests/drivers/pwm/pwm_gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf @@ -0,0 +1 @@ +CONFIG_SKIP_EDGE_NUM=4 diff --git a/tests/drivers/pwm/pwm_gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/pwm/pwm_gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay new file mode 100644 index 00000000000..89ff80dcb67 --- /dev/null +++ b/tests/drivers/pwm/pwm_gpio_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * SPDX-License-Identifier: Apache-2.0 + * + * Test requires jumper between: + * - PWM20 OUT[0] at P1.29 <-> GPIO input at P1.00 + */ + +/ { + zephyr,user { + pwms = <&pwm20 0 160000 PWM_POLARITY_NORMAL>; + gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; + }; +}; + +&pinctrl { + pwm20_alt: pwm20_alt { + group1 { + psels = ; + }; + }; + + pwm20_alt_sleep: pwm20_alt_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; +}; + +&pwm20 { + status = "okay"; + pinctrl-0 = <&pwm20_alt>; + pinctrl-1 = <&pwm20_alt_sleep>; + pinctrl-names = "default", "sleep"; +}; diff --git a/tests/drivers/pwm/pwm_gpio_loopback/testcase.yaml b/tests/drivers/pwm/pwm_gpio_loopback/testcase.yaml index 7173c8c2720..99e22b54374 100644 --- a/tests/drivers/pwm/pwm_gpio_loopback/testcase.yaml +++ b/tests/drivers/pwm/pwm_gpio_loopback/testcase.yaml @@ -20,4 +20,5 @@ tests: platform_allow: - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp From 6c14c4a3cd095232209429a225089662c06b16a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:41:15 +0200 Subject: [PATCH 23/59] [nrf fromtree] tests: drivers: retianed_mem: api: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit cb3a94acc13fd62bae6da3b0822989d102134649) --- .../boards/nrf54l20pdk_nrf54l20_cpuapp.conf | 1 - .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 25 ------------------- tests/drivers/retained_mem/api/testcase.yaml | 1 - 3 files changed, 27 deletions(-) delete mode 100644 tests/drivers/retained_mem/api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf delete mode 100644 tests/drivers/retained_mem/api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/retained_mem/api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf b/tests/drivers/retained_mem/api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf deleted file mode 100644 index c15ba3ed96d..00000000000 --- a/tests/drivers/retained_mem/api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf +++ /dev/null @@ -1 +0,0 @@ -CONFIG_POWEROFF=y diff --git a/tests/drivers/retained_mem/api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/retained_mem/api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index dc81069eca5..00000000000 --- a/tests/drivers/retained_mem/api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,25 +0,0 @@ -/ { - cpuapp_sram@2007ec00 { - compatible = "zephyr,memory-region", "mmio-sram"; - reg = <0x2007ec00 DT_SIZE_K(4)>; - zephyr,memory-region = "RetainedMem"; - status = "okay"; - - retainedmem0: retainedmem { - compatible = "zephyr,retained-ram"; - status = "okay"; - }; - }; - - aliases { - retainedmemtestdevice = &retainedmem0; - }; -}; - -&cpuapp_sram { - /* Shrink SRAM size to avoid overlap with retained memory region: - * 511 - 4 = 507KB = 0x7ec00 - */ - reg = <0x20000000 DT_SIZE_K(507)>; - ranges = <0x0 0x20000000 0x7ec00>; -}; diff --git a/tests/drivers/retained_mem/api/testcase.yaml b/tests/drivers/retained_mem/api/testcase.yaml index ddcc005a16a..88bd6ae16ff 100644 --- a/tests/drivers/retained_mem/api/testcase.yaml +++ b/tests/drivers/retained_mem/api/testcase.yaml @@ -14,7 +14,6 @@ tests: - nrf54l15dk/nrf54l05/cpuapp - nrf54l15dk/nrf54l10/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: From 826e93a1bcbc95d88736555f5aebdc99c61c98e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:43:57 +0200 Subject: [PATCH 24/59] [nrf fromtree] tests: drivers: sensor: temp_sensor: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit a32ca2b3604cc08ebca90063043046b9f3b920bd) --- .../boards/nrf54l20pdk_nrf54l20_cpuapp.overlay | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 tests/drivers/sensor/temp_sensor/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/sensor/temp_sensor/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/sensor/temp_sensor/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index b1f2a2b9ec5..00000000000 --- a/tests/drivers/sensor/temp_sensor/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -temp_sensor: &temp { - status = "okay"; -}; From d792f9a9b5b4ddfdd5adebd3508501ba29575e6c Mon Sep 17 00:00:00 2001 From: Khoa Nguyen Date: Tue, 15 Apr 2025 18:05:12 +0700 Subject: [PATCH 25/59] [nrf fromtree] tests: drivers: spi: Add support spi_controller_peripheral for RA Add support test app support spi_controller_peripheral for Renesas RA boards: ek_ra6m5, ek_ra6m4, ek_ra6m3, ek_ra6m2, ek_ra6m1, ek_ra6e2, fpb_ra6e2, ek_ra4m1, ek_ra2a1 Signed-off-by: Khoa Nguyen (cherry picked from commit 291860e193f7e648a73dda2e1199045805918478) --- .../boards/ek_ra2a1.conf | 6 +++ .../boards/ek_ra2a1.overlay | 50 +++++++++++++++++ .../boards/ek_ra4m1.conf | 6 +++ .../boards/ek_ra4m1.overlay | 50 +++++++++++++++++ .../boards/ek_ra6e2.conf | 6 +++ .../boards/ek_ra6e2.overlay | 52 ++++++++++++++++++ .../boards/ek_ra6m1.conf | 6 +++ .../boards/ek_ra6m1.overlay | 54 +++++++++++++++++++ .../boards/ek_ra6m2.conf | 6 +++ .../boards/ek_ra6m2.overlay | 54 +++++++++++++++++++ .../boards/ek_ra6m3.conf | 6 +++ .../boards/ek_ra6m3.overlay | 54 +++++++++++++++++++ .../boards/ek_ra6m4.conf | 6 +++ .../boards/ek_ra6m4.overlay | 52 ++++++++++++++++++ .../boards/ek_ra6m5.conf | 6 +++ .../boards/ek_ra6m5.overlay | 52 ++++++++++++++++++ .../boards/fpb_ra6e2.conf | 6 +++ .../boards/fpb_ra6e2.overlay | 52 ++++++++++++++++++ 18 files changed, 524 insertions(+) create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra2a1.conf create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra2a1.overlay create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra4m1.conf create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra4m1.overlay create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6e2.conf create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6e2.overlay create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m1.conf create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m1.overlay create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m2.conf create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m2.overlay create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m3.conf create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m3.overlay create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m4.conf create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m4.overlay create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m5.conf create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m5.overlay create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/fpb_ra6e2.conf create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/fpb_ra6e2.overlay diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra2a1.conf b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra2a1.conf new file mode 100644 index 00000000000..d241d5b0956 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra2a1.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SPI_INTERRUPT=y +CONFIG_SPI_RA_DTC=y +CONFIG_TESTED_SPI_MODE=1 diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra2a1.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra2a1.overlay new file mode 100644 index 00000000000..d9660d950ac --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra2a1.overlay @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + spi0_default_alt: spi0_default_alt { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; + + spi1_default_alt: spi1_default_alt { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; +}; + +&spi0 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi0_default_alt>; + pinctrl-names = "default"; + cs-gpios = <&ioport1 12 GPIO_ACTIVE_LOW>; + interrupts = <24 1>, <25 1>, <26 1>, <27 1>; + interrupt-names = "rxi", "txi", "tei", "eri"; + + dut_spi_dt: test-spi-dev@0 { + compatible = "vnd,spi-device"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; + +dut_spis: &spi1 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi1_default_alt>; + pinctrl-names = "default"; + cs-gpios = <&ioport2 6 GPIO_ACTIVE_LOW>; +}; diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra4m1.conf b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra4m1.conf new file mode 100644 index 00000000000..d241d5b0956 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra4m1.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SPI_INTERRUPT=y +CONFIG_SPI_RA_DTC=y +CONFIG_TESTED_SPI_MODE=1 diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra4m1.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra4m1.overlay new file mode 100644 index 00000000000..8efced0263c --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra4m1.overlay @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + spi0_default_alt: spi0_default_alt { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; + + spi1_default_alt: spi1_default_alt { + group1 { + /* MISO MOSI RSPCK SSL */ + psels = , + , + , + ; + }; + }; +}; + +&spi0 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi0_default_alt>; + pinctrl-names = "default"; + cs-gpios = <&ioport4 13 GPIO_ACTIVE_LOW>; + interrupts = <23 1>, <24 1>, <25 1>, <26 1>; + interrupt-names = "rxi", "txi", "tei", "eri"; + + dut_spi_dt: test-spi-dev@0 { + compatible = "vnd,spi-device"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; + +dut_spis: &spi1 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi1_default_alt>; + pinctrl-names = "default"; +}; diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6e2.conf b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6e2.conf new file mode 100644 index 00000000000..d241d5b0956 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6e2.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SPI_INTERRUPT=y +CONFIG_SPI_RA_DTC=y +CONFIG_TESTED_SPI_MODE=1 diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6e2.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6e2.overlay new file mode 100644 index 00000000000..e58fa671a9a --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6e2.overlay @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + spi0_default_alt: spi0_default_alt { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; + + spi1_default_alt: spi1_default_alt { + group1 { + /* MISO MOSI RSPCK SSL */ + psels = , + , + , + ; + }; + }; +}; + +&ioport1 { + status = "okay"; +}; + +&spi0 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi0_default_alt>; + pinctrl-names = "default"; + cs-gpios = <&ioport3 1 GPIO_ACTIVE_LOW>; + + dut_spi_dt: test-spi-dev@0 { + compatible = "vnd,spi-device"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; + +dut_spis: &spi1 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi1_default_alt>; + pinctrl-names = "default"; +}; diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m1.conf b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m1.conf new file mode 100644 index 00000000000..d241d5b0956 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m1.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SPI_INTERRUPT=y +CONFIG_SPI_RA_DTC=y +CONFIG_TESTED_SPI_MODE=1 diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m1.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m1.overlay new file mode 100644 index 00000000000..521edfef067 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m1.overlay @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + spi0_default_alt: spi0_default_alt { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; + + spi1_default_alt: spi1_default_alt { + group1 { + /* MISO MOSI RSPCK SSL */ + psels = , + , + , + ; + }; + }; +}; + +&ioport1 { + status = "okay"; +}; + +&spi0 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi0_default_alt>; + pinctrl-names = "default"; + cs-gpios = <&ioport1 3 GPIO_ACTIVE_LOW>; + + dut_spi_dt: test-spi-dev@0 { + compatible = "vnd,spi-device"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; + +dut_spis: &spi1 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi1_default_alt>; + pinctrl-names = "default"; + interrupts = <92 1>, <93 1>, <94 1>, <95 1>; + interrupt-names = "rxi", "txi", "tei", "eri"; +}; diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m2.conf b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m2.conf new file mode 100644 index 00000000000..d241d5b0956 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m2.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SPI_INTERRUPT=y +CONFIG_SPI_RA_DTC=y +CONFIG_TESTED_SPI_MODE=1 diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m2.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m2.overlay new file mode 100644 index 00000000000..521edfef067 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m2.overlay @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + spi0_default_alt: spi0_default_alt { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; + + spi1_default_alt: spi1_default_alt { + group1 { + /* MISO MOSI RSPCK SSL */ + psels = , + , + , + ; + }; + }; +}; + +&ioport1 { + status = "okay"; +}; + +&spi0 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi0_default_alt>; + pinctrl-names = "default"; + cs-gpios = <&ioport1 3 GPIO_ACTIVE_LOW>; + + dut_spi_dt: test-spi-dev@0 { + compatible = "vnd,spi-device"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; + +dut_spis: &spi1 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi1_default_alt>; + pinctrl-names = "default"; + interrupts = <92 1>, <93 1>, <94 1>, <95 1>; + interrupt-names = "rxi", "txi", "tei", "eri"; +}; diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m3.conf b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m3.conf new file mode 100644 index 00000000000..d241d5b0956 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m3.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SPI_INTERRUPT=y +CONFIG_SPI_RA_DTC=y +CONFIG_TESTED_SPI_MODE=1 diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m3.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m3.overlay new file mode 100644 index 00000000000..03de19136a1 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m3.overlay @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + spi0_default_alt: spi0_default_alt { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; + + spi1_default_alt: spi1_default_alt { + group1 { + /* MISO MOSI RSPCK SSL */ + psels = , + , + , + ; + }; + }; +}; + +&ioport1 { + status = "okay"; +}; + +&spi0 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi0_default_alt>; + pinctrl-names = "default"; + cs-gpios = <&ioport1 3 GPIO_ACTIVE_LOW>; + + dut_spi_dt: test-spi-dev@0 { + compatible = "vnd,spi-device"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; + +dut_spis: &spi1 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi1_default_alt>; + pinctrl-names = "default"; + interrupts = <92 1>, <93 1>, <94 1>, <95 1>; + interrupt-names = "rxi", "txi", "tei", "eri"; +}; diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m4.conf b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m4.conf new file mode 100644 index 00000000000..d241d5b0956 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m4.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SPI_INTERRUPT=y +CONFIG_SPI_RA_DTC=y +CONFIG_TESTED_SPI_MODE=1 diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m4.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m4.overlay new file mode 100644 index 00000000000..1cf25c94f2b --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m4.overlay @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + spi0_default_alt: spi0_default_alt { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; + + spi1_default_alt: spi1_default_alt { + group1 { + /* MISO MOSI RSPCK SSL */ + psels = , + , + , + ; + }; + }; +}; + +&ioport1 { + status = "okay"; +}; + +&spi0 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi0_default_alt>; + pinctrl-names = "default"; + cs-gpios = <&ioport1 8 GPIO_ACTIVE_LOW>; + + dut_spi_dt: test-spi-dev@0 { + compatible = "vnd,spi-device"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; + +dut_spis: &spi1 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi1_default_alt>; + pinctrl-names = "default"; +}; diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m5.conf b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m5.conf new file mode 100644 index 00000000000..d241d5b0956 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m5.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SPI_INTERRUPT=y +CONFIG_SPI_RA_DTC=y +CONFIG_TESTED_SPI_MODE=1 diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m5.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m5.overlay new file mode 100644 index 00000000000..1cf25c94f2b --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/ek_ra6m5.overlay @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + spi0_default_alt: spi0_default_alt { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; + + spi1_default_alt: spi1_default_alt { + group1 { + /* MISO MOSI RSPCK SSL */ + psels = , + , + , + ; + }; + }; +}; + +&ioport1 { + status = "okay"; +}; + +&spi0 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi0_default_alt>; + pinctrl-names = "default"; + cs-gpios = <&ioport1 8 GPIO_ACTIVE_LOW>; + + dut_spi_dt: test-spi-dev@0 { + compatible = "vnd,spi-device"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; + +dut_spis: &spi1 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi1_default_alt>; + pinctrl-names = "default"; +}; diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/fpb_ra6e2.conf b/tests/drivers/spi/spi_controller_peripheral/boards/fpb_ra6e2.conf new file mode 100644 index 00000000000..d241d5b0956 --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/fpb_ra6e2.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SPI_INTERRUPT=y +CONFIG_SPI_RA_DTC=y +CONFIG_TESTED_SPI_MODE=1 diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/fpb_ra6e2.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/fpb_ra6e2.overlay new file mode 100644 index 00000000000..e58fa671a9a --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/fpb_ra6e2.overlay @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + spi0_default_alt: spi0_default_alt { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; + + spi1_default_alt: spi1_default_alt { + group1 { + /* MISO MOSI RSPCK SSL */ + psels = , + , + , + ; + }; + }; +}; + +&ioport1 { + status = "okay"; +}; + +&spi0 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi0_default_alt>; + pinctrl-names = "default"; + cs-gpios = <&ioport3 1 GPIO_ACTIVE_LOW>; + + dut_spi_dt: test-spi-dev@0 { + compatible = "vnd,spi-device"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; + +dut_spis: &spi1 { + rx-dtc; + tx-dtc; + status = "okay"; + pinctrl-0 = <&spi1_default_alt>; + pinctrl-names = "default"; +}; From 3d238b9e45ca147c9f3e6671c25d1a1ab36df2a9 Mon Sep 17 00:00:00 2001 From: Declan Snyder Date: Fri, 14 Mar 2025 07:57:11 -0500 Subject: [PATCH 26/59] [nrf fromtree] tests: spi: Add overlay for frdm_mcxa156 dual test Add an overlay to the spi_controller_peripheral test for the frdm_mcxa156. Since this IP has multiple CS, need to introduce a way to configure the correct CS to the test; just going to use zephyr,user for now instead of refactoring to be less nordic-specific, keeping the usage optional. Signed-off-by: Declan Snyder (cherry picked from commit 6aa46f40191f9c0aa6e778bf9de751d41647dffa) --- .../boards/frdm_mcxa156.overlay | 31 +++++++++++++++++++ .../spi/spi_controller_peripheral/src/main.c | 3 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/frdm_mcxa156.overlay diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/frdm_mcxa156.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/frdm_mcxa156.overlay new file mode 100644 index 00000000000..c533c11b4fd --- /dev/null +++ b/tests/drivers/spi/spi_controller_peripheral/boards/frdm_mcxa156.overlay @@ -0,0 +1,31 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +/ { + zephyr,user { + peripheral-cs = <1>; + }; +}; + +&lpspi0 { + dut_spi_dt: test-spi-dev@0 { + compatible = "vnd,spi-device"; + reg = <0>; + spi-max-frequency = <10000000>; + }; + transfer-delay = <100>; + sck-pcs-delay = <10>; + pcs-sck-delay = <10>; + /* lower the master interrupt priority so slave can interrupt */ + interrupts = <28 1>; + label = "spi_master"; +}; + +dut_spis: &lpspi1 { + label = "spi_slave"; +}; diff --git a/tests/drivers/spi/spi_controller_peripheral/src/main.c b/tests/drivers/spi/spi_controller_peripheral/src/main.c index 997e6f5f91f..04c6c27d11a 100644 --- a/tests/drivers/spi/spi_controller_peripheral/src/main.c +++ b/tests/drivers/spi/spi_controller_peripheral/src/main.c @@ -28,7 +28,8 @@ static struct spi_dt_spec spim = SPI_DT_SPEC_GET(DT_NODELABEL(dut_spi_dt), SPIM_OP, 0); static const struct device *spis_dev = DEVICE_DT_GET(DT_NODELABEL(dut_spis)); static const struct spi_config spis_config = { - .operation = SPIS_OP + .operation = SPIS_OP, + .slave = DT_PROP_OR(DT_PATH(zephyr_user), peripheral_cs, 0), }; static struct k_poll_signal async_sig = K_POLL_SIGNAL_INITIALIZER(async_sig); From 48dcb8ff3e87ccaa066bc9eae9c6e03f1960e457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:48:47 +0200 Subject: [PATCH 27/59] [nrf fromtree] tests: drivers: spi: spi_controller_peripheral: Disable on nRF54L20pdk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 49734bfd0310935b427bd8128c1b0e87109a59d7) --- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 79 ------------------- .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 1 + .../spi_controller_peripheral/testcase.yaml | 11 +-- 3 files changed, 5 insertions(+), 86 deletions(-) delete mode 100644 tests/drivers/spi/spi_controller_peripheral/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index fe004aa7695..00000000000 --- a/tests/drivers/spi/spi_controller_peripheral/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor - * - * SPDX-License-Identifier: Apache-2.0 - */ - -&pinctrl { - spi22_default_alt: spi22_default_alt { - group1 { - psels = , - , - ; - }; - }; - - spi22_sleep_alt: spi22_sleep_alt { - group1 { - psels = , - , - ; - low-power-enable; - }; - }; - - spi21_default_alt: spi21_default_alt { - group1 { - psels = , - , - , - ; - }; - }; - - spi21_sleep_alt: spi21_sleep_alt { - group1 { - psels = , - , - , - ; - low-power-enable; - }; - }; - -}; - - -&gpio1 { - status = "okay"; -}; - -&spi22 { - status = "okay"; - pinctrl-0 = <&spi22_default_alt>; - pinctrl-1 = <&spi22_sleep_alt>; - pinctrl-names = "default", "sleep"; - overrun-character = <0x00>; - cs-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; - zephyr,pm-device-runtime-auto; - dut_spi_dt: test-spi-dev@0 { - compatible = "vnd,spi-device"; - reg = <0>; - spi-max-frequency = ; - }; -}; - -dut_spis: &spi21 { - compatible = "nordic,nrf-spis"; - status = "okay"; - def-char = <0x00>; - pinctrl-0 = <&spi21_default_alt>; - pinctrl-1 = <&spi21_sleep_alt>; - pinctrl-names = "default", "sleep"; - /delete-property/rx-delay-supported; - /delete-property/rx-delay; -}; - -&uicr { - nfct-pins-as-gpios; -}; diff --git a/tests/drivers/spi/spi_controller_peripheral/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/spi/spi_controller_peripheral/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay index 541fdbb96de..25d68cd4dfa 100644 --- a/tests/drivers/spi/spi_controller_peripheral/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay +++ b/tests/drivers/spi/spi_controller_peripheral/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -62,6 +62,7 @@ overrun-character = <0x00>; cs-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; zephyr,pm-device-runtime-auto; + dut_spi_dt: test-spi-dev@0 { compatible = "vnd,spi-device"; reg = <0>; diff --git a/tests/drivers/spi/spi_controller_peripheral/testcase.yaml b/tests/drivers/spi/spi_controller_peripheral/testcase.yaml index cfcf7c149f0..10365d8014d 100644 --- a/tests/drivers/spi/spi_controller_peripheral/testcase.yaml +++ b/tests/drivers/spi/spi_controller_peripheral/testcase.yaml @@ -8,12 +8,11 @@ common: fixture: gpio_spi_loopback platform_allow: - nrf52840dk/nrf52840 - - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54h20dk/nrf54h20/cpuapp - nrf54h20dk/nrf54h20/cpurad - nrf54h20dk/nrf54h20/cpuppr + - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp tests: @@ -79,10 +78,9 @@ tests: extra_args: DTC_OVERLAY_FILE="boards/nrf54h20dk_nrf54h20_cpuapp_fast.overlay" platform_exclude: - nrf52840dk/nrf52840 - - nrf54l15dk/nrf54l15/cpuapp - nrf54h20dk/nrf54h20/cpurad - nrf54h20dk/nrf54h20/cpuppr - - nrf54l20pdk/nrf54l20/cpuapp + - nrf54l15dk/nrf54l15/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp @@ -93,10 +91,9 @@ tests: extra_args: DTC_OVERLAY_FILE="boards/nrf54h20dk_nrf54h20_cpuapp_fast_spis.overlay" platform_exclude: - nrf52840dk/nrf52840 - - nrf54l15dk/nrf54l15/cpuapp - nrf54h20dk/nrf54h20/cpurad - nrf54h20dk/nrf54h20/cpuppr - - nrf54l20pdk/nrf54l20/cpuapp + - nrf54l15dk/nrf54l15/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp From 70c1756a5f97bf28fb7c6397ccf907e58b6e3dc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 08:49:55 +0200 Subject: [PATCH 28/59] [nrf fromtree] tests: drivers: spi: spi_error_cases: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 467fac1574f31804e5ef4d8bef0b7c01e557b564) --- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 78 ------------------- .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 1 + .../drivers/spi/spi_error_cases/testcase.yaml | 2 +- 3 files changed, 2 insertions(+), 79 deletions(-) delete mode 100644 tests/drivers/spi/spi_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/spi/spi_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/spi/spi_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index c723ff2cbd2..00000000000 --- a/tests/drivers/spi/spi_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor - * - * SPDX-License-Identifier: Apache-2.0 - */ - -&pinctrl { - spi22_default_alt: spi22_default_alt { - group1 { - psels = , - , - ; - }; - }; - - spi22_sleep_alt: spi22_sleep_alt { - group1 { - psels = , - , - ; - low-power-enable; - }; - }; - - spi21_default_alt: spi21_default_alt { - group1 { - psels = , - , - , - ; - }; - }; - - spi21_sleep_alt: spi21_sleep_alt { - group1 { - psels = , - , - , - ; - low-power-enable; - }; - }; - -}; - - -&gpio1 { - status = "okay"; -}; - -&spi22 { - status = "okay"; - pinctrl-0 = <&spi22_default_alt>; - pinctrl-1 = <&spi22_sleep_alt>; - pinctrl-names = "default", "sleep"; - overrun-character = <0x00>; - cs-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; - dut_spi_dt: test-spi-dev@0 { - compatible = "vnd,spi-device"; - reg = <0>; - spi-max-frequency = <4000000>; - }; -}; - -dut_spis: &spi21 { - compatible = "nordic,nrf-spis"; - status = "okay"; - def-char = <0x00>; - pinctrl-0 = <&spi21_default_alt>; - pinctrl-1 = <&spi21_sleep_alt>; - pinctrl-names = "default", "sleep"; - /delete-property/rx-delay-supported; - /delete-property/rx-delay; -}; - -&uicr { - nfct-pins-as-gpios; -}; diff --git a/tests/drivers/spi/spi_error_cases/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/spi/spi_error_cases/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay index 541fdbb96de..25d68cd4dfa 100644 --- a/tests/drivers/spi/spi_error_cases/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay +++ b/tests/drivers/spi/spi_error_cases/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -62,6 +62,7 @@ overrun-character = <0x00>; cs-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; zephyr,pm-device-runtime-auto; + dut_spi_dt: test-spi-dev@0 { compatible = "vnd,spi-device"; reg = <0>; diff --git a/tests/drivers/spi/spi_error_cases/testcase.yaml b/tests/drivers/spi/spi_error_cases/testcase.yaml index 8e5ae335edd..9ad509baddb 100644 --- a/tests/drivers/spi/spi_error_cases/testcase.yaml +++ b/tests/drivers/spi/spi_error_cases/testcase.yaml @@ -6,13 +6,13 @@ common: harness: ztest harness_config: fixture: gpio_spi_loopback + timeout: 30 tests: drivers.spi.spi_error_cases: platform_allow: - nrf52840dk/nrf52840 - nrf54l15dk/nrf54l15/cpuapp - nrf54h20dk/nrf54h20/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: From 096dda0d8174341ee461e4c834c68e4d0997b0a2 Mon Sep 17 00:00:00 2001 From: Raffael Rostagno Date: Mon, 19 May 2025 16:06:20 -0300 Subject: [PATCH 29/59] [nrf fromtree] tests: drivers: spi_loopback: Fix NULL rx buff testcase Fixes setup of TX buffer, which shouldn't be NULL in the RX NULL tescase. Signed-off-by: Raffael Rostagno (cherry picked from commit d8358b29a0fcb67f296f99d264d4647103b78666) --- tests/drivers/spi/spi_loopback/src/spi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/drivers/spi/spi_loopback/src/spi.c b/tests/drivers/spi/spi_loopback/src/spi.c index fd2302a4ec0..4a744bf3554 100644 --- a/tests/drivers/spi/spi_loopback/src/spi.c +++ b/tests/drivers/spi/spi_loopback/src/spi.c @@ -559,7 +559,7 @@ ZTEST(spi_loopback, test_spi_null_rx_buf_set) { struct spi_dt_spec *spec = loopback_specs[spec_idx]; const struct spi_buf_set tx = spi_loopback_setup_xfer(tx_bufs_pool, 1, - NULL, BUF_SIZE); + buffer_tx, BUF_SIZE); spi_loopback_transceive(spec, &tx, NULL); } From 84b98af71dd7ae42b7ff095af2c03e80bdf25e71 Mon Sep 17 00:00:00 2001 From: Duy Nguyen Date: Wed, 18 Dec 2024 06:38:32 +0700 Subject: [PATCH 30/59] [nrf fromtree] tests: drivers: spi: Add configuration for SPI test on RX130 Add device tree overlay for spi test on RSKRX130 board Signed-off-by: Duy Nguyen (cherry picked from commit 9e5aa827bb58a40132edae32907b96cc2acab30b) --- .../spi_loopback/boards/rsk_rx130_512kb.overlay | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/drivers/spi/spi_loopback/boards/rsk_rx130_512kb.overlay diff --git a/tests/drivers/spi/spi_loopback/boards/rsk_rx130_512kb.overlay b/tests/drivers/spi/spi_loopback/boards/rsk_rx130_512kb.overlay new file mode 100644 index 00000000000..ae5393b8811 --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/rsk_rx130_512kb.overlay @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&rspi0 { + slow@0 { + compatible = "test-spi-loopback-slow"; + reg = <0>; + spi-max-frequency = <1000000>; + }; + fast@0 { + compatible = "test-spi-loopback-fast"; + reg = <0>; + spi-max-frequency = <3000000>; + }; +}; From ce2539ed6267e78544446c3974e12730c166be62 Mon Sep 17 00:00:00 2001 From: Bjarki Arge Andreasen Date: Fri, 6 Jun 2025 15:04:02 +0200 Subject: [PATCH 31/59] [nrf fromtree] tests: spi: loopback: get spi controller before timed transfer The test which measures and validates transfer times is using the helper spi_loopback_transceive() to perform the transfer. This helper internally gets the spi controller, which is useful for most tests, but for this one, it means the time to get and put the spi controller is included in the transfer time measurement. This commit gets the spi controller before calling spi_loopback_transceive() which results in only the actual transfer time being measured. Before this commit, on the nrf54h20: START - test_spi_complete_multiple_timed Transfer took 745 us vs theoretical minimum 108 us Latency measurement: 637 us PASS - test_spi_complete_multiple_timed in 0.008 seconds START - test_spi_complete_multiple_timed Transfer took 700 us vs theoretical minimum 54 us Latency measurement: 646 us Assertion failed at ... Very high latency FAIL - test_spi_complete_multiple_timed in 0.027 seconds After this commit: START - test_spi_complete_multiple_timed Transfer took 250 us vs theoretical minimum 108 us Latency measurement: 142 us PASS - test_spi_complete_multiple_timed in 0.008 seconds START - test_spi_complete_multiple_timed Transfer took 204 us vs theoretical minimum 54 us Latency measurement: 150 us PASS - test_spi_complete_multiple_timed in 0.008 seconds Signed-off-by: Bjarki Arge Andreasen (cherry picked from commit 39233656b2f60ae6e6a70e9d89ebcf4e7c8b8cf5) --- tests/drivers/spi/spi_loopback/src/spi.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/drivers/spi/spi_loopback/src/spi.c b/tests/drivers/spi/spi_loopback/src/spi.c index 4a744bf3554..39a2efb9464 100644 --- a/tests/drivers/spi/spi_loopback/src/spi.c +++ b/tests/drivers/spi/spi_loopback/src/spi.c @@ -293,11 +293,19 @@ ZTEST(spi_loopback, test_spi_complete_multiple_timed) uint32_t start_time, end_time, cycles_spent; uint64_t time_spent_us, expected_transfer_time_us, latency_measurement; + /* + * spi_loopback_transceive() does an inline pm_device_runtime_get(), but since we are + * timing the transfer, we need to get the SPI controller before we start the measurement. + */ + zassert_ok(pm_device_runtime_get(spec->bus)); + /* since this is a test program, there shouldn't be much to interfere with measurement */ start_time = k_cycle_get_32(); spi_loopback_transceive(spec, &tx, &rx); end_time = k_cycle_get_32(); + zassert_ok(pm_device_runtime_put(spec->bus)); + if (end_time >= start_time) { cycles_spent = end_time - start_time; } else { From 85d2cc8081843d881ef908da7dbd2da223af1580 Mon Sep 17 00:00:00 2001 From: Piotr Krzyzanowski Date: Tue, 27 May 2025 22:54:15 +0200 Subject: [PATCH 32/59] [nrf fromtree] tests: drivers: spi: spi_loopback: Add NULL spi_buf_set test Add the test_spi_null_tx_rx_buf_set Signed-off-by: Piotr Krzyzanowski (cherry picked from commit c67db3fd36113da61abb45da0409705163bf5340) --- tests/drivers/spi/spi_loopback/src/spi.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/drivers/spi/spi_loopback/src/spi.c b/tests/drivers/spi/spi_loopback/src/spi.c index 39a2efb9464..1e6b99ae947 100644 --- a/tests/drivers/spi/spi_loopback/src/spi.c +++ b/tests/drivers/spi/spi_loopback/src/spi.c @@ -572,6 +572,13 @@ ZTEST(spi_loopback, test_spi_null_rx_buf_set) spi_loopback_transceive(spec, &tx, NULL); } +ZTEST(spi_loopback, test_spi_null_tx_rx_buf_set) +{ + struct spi_dt_spec *spec = loopback_specs[spec_idx]; + + spi_loopback_transceive(spec, NULL, NULL); +} + ZTEST(spi_loopback, test_nop_nil_bufs) { struct spi_dt_spec *spec = loopback_specs[spec_idx]; From ab693d6188779400efc5c21e08b6674327d7aee9 Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Tue, 3 Jun 2025 09:41:14 +0200 Subject: [PATCH 33/59] [nrf fromtree] tests: drivers: spi: spi_loopback: enable nucleo_c071rb to run test again Due to RAM overflow by 3200 bytes, decrease size of SPI_LARGE_BUFFER. signed-off-by: Fabrice DJIATSA (cherry picked from commit c5f5fc1fa8efd24ad79ba5e474dd885ca1486816) --- tests/drivers/spi/spi_loopback/boards/nucleo_c071rb.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/drivers/spi/spi_loopback/boards/nucleo_c071rb.conf b/tests/drivers/spi/spi_loopback/boards/nucleo_c071rb.conf index 5e05f18f57a..895eddcb0c0 100644 --- a/tests/drivers/spi/spi_loopback/boards/nucleo_c071rb.conf +++ b/tests/drivers/spi/spi_loopback/boards/nucleo_c071rb.conf @@ -1 +1 @@ -CONFIG_SPI_LARGE_BUFFER_SIZE=8000 +CONFIG_SPI_LARGE_BUFFER_SIZE=4500 From 628e7d7e86d72e53c78cd82f2758d2a25531f668 Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Fri, 30 May 2025 16:09:28 +0200 Subject: [PATCH 34/59] [nrf fromtree] tests: drivers: spi_loopback: add latency tolerance for some boards Set a convenient latency for each platform, since each platform reacts differently to the driver. Signed-off-by: Fabrice DJIATSA (cherry picked from commit 5daad8f7c13c3c6996c95e39cf616d836a8c4956) --- tests/drivers/spi/spi_loopback/boards/nucleo_c071rb.conf | 1 + tests/drivers/spi/spi_loopback/boards/nucleo_f746zg.conf | 1 + tests/drivers/spi/spi_loopback/boards/nucleo_wb55rg.conf | 1 + tests/drivers/spi/spi_loopback/boards/nucleo_wba55cg.conf | 1 + tests/drivers/spi/spi_loopback/boards/nucleo_wl55jc.conf | 1 + tests/drivers/spi/spi_loopback/boards/stm32f3_disco.conf | 1 + 6 files changed, 6 insertions(+) create mode 100644 tests/drivers/spi/spi_loopback/boards/nucleo_wb55rg.conf create mode 100644 tests/drivers/spi/spi_loopback/boards/nucleo_wba55cg.conf create mode 100644 tests/drivers/spi/spi_loopback/boards/nucleo_wl55jc.conf diff --git a/tests/drivers/spi/spi_loopback/boards/nucleo_c071rb.conf b/tests/drivers/spi/spi_loopback/boards/nucleo_c071rb.conf index 895eddcb0c0..093e1f09d89 100644 --- a/tests/drivers/spi/spi_loopback/boards/nucleo_c071rb.conf +++ b/tests/drivers/spi/spi_loopback/boards/nucleo_c071rb.conf @@ -1 +1,2 @@ CONFIG_SPI_LARGE_BUFFER_SIZE=4500 +CONFIG_SPI_IDEAL_TRANSFER_DURATION_SCALING=20 diff --git a/tests/drivers/spi/spi_loopback/boards/nucleo_f746zg.conf b/tests/drivers/spi/spi_loopback/boards/nucleo_f746zg.conf index c448e14811f..72f64737820 100644 --- a/tests/drivers/spi/spi_loopback/boards/nucleo_f746zg.conf +++ b/tests/drivers/spi/spi_loopback/boards/nucleo_f746zg.conf @@ -1 +1,2 @@ CONFIG_NOCACHE_MEMORY=y +CONFIG_SPI_IDEAL_TRANSFER_DURATION_SCALING=10 diff --git a/tests/drivers/spi/spi_loopback/boards/nucleo_wb55rg.conf b/tests/drivers/spi/spi_loopback/boards/nucleo_wb55rg.conf new file mode 100644 index 00000000000..a527ab8f28d --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/nucleo_wb55rg.conf @@ -0,0 +1 @@ +CONFIG_SPI_IDEAL_TRANSFER_DURATION_SCALING=22 diff --git a/tests/drivers/spi/spi_loopback/boards/nucleo_wba55cg.conf b/tests/drivers/spi/spi_loopback/boards/nucleo_wba55cg.conf new file mode 100644 index 00000000000..1753e2d75c3 --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/nucleo_wba55cg.conf @@ -0,0 +1 @@ +CONFIG_SPI_IDEAL_TRANSFER_DURATION_SCALING=50 diff --git a/tests/drivers/spi/spi_loopback/boards/nucleo_wl55jc.conf b/tests/drivers/spi/spi_loopback/boards/nucleo_wl55jc.conf new file mode 100644 index 00000000000..725924348b5 --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/nucleo_wl55jc.conf @@ -0,0 +1 @@ +CONFIG_SPI_IDEAL_TRANSFER_DURATION_SCALING=15 diff --git a/tests/drivers/spi/spi_loopback/boards/stm32f3_disco.conf b/tests/drivers/spi/spi_loopback/boards/stm32f3_disco.conf index 469620fed4e..016bb0000d9 100644 --- a/tests/drivers/spi/spi_loopback/boards/stm32f3_disco.conf +++ b/tests/drivers/spi/spi_loopback/boards/stm32f3_disco.conf @@ -1 +1,2 @@ CONFIG_SPI_LOOPBACK_MODE_LOOP=y +CONFIG_SPI_IDEAL_TRANSFER_DURATION_SCALING=15 From 93383bfca4fecba690b94d974186c17bfa4a697e Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Thu, 5 Jun 2025 14:14:45 +0200 Subject: [PATCH 35/59] [nrf fromtree] tests: drivers: spi: spi_loopback: handle rx/tx buffers nocache memory Place transfer buffers in non-cacheable memory when CONFIG_NOCACHE_MEMORY=y. This change ensures that DMA transfer buffers are allocated in non-cacheable memory on platforms where CONFIG_NOCACHE_MEMORY is enabled. This avoids potential cache coherence issues that are not handled by the SPI driver. Signed-off-by: Fabrice DJIATSA (cherry picked from commit cc4e2f526ab73e5e5e4f60e92a0985e0f265dca1) --- tests/drivers/spi/spi_loopback/src/spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/drivers/spi/spi_loopback/src/spi.c b/tests/drivers/spi/spi_loopback/src/spi.c index 1e6b99ae947..d3d44d79f46 100644 --- a/tests/drivers/spi/spi_loopback/src/spi.c +++ b/tests/drivers/spi/spi_loopback/src/spi.c @@ -717,8 +717,8 @@ static struct k_thread thread[3]; static K_SEM_DEFINE(thread_sem, 0, 3); static K_SEM_DEFINE(sync_sem, 0, 1); -static uint8_t __aligned(32) tx_buffer[3][32]; -static uint8_t __aligned(32) rx_buffer[3][32]; +static uint8_t __aligned(32) tx_buffer[3][32] __NOCACHE; +static uint8_t __aligned(32) rx_buffer[3][32] __NOCACHE; atomic_t thread_test_fails; From 1dadc4ae7550ef96c6f491476bcb734b61576151 Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Fri, 13 Jun 2025 11:47:58 +0200 Subject: [PATCH 36/59] [nrf fromtree] tests: drivers: spi: remove useless files and testcases - with the updates made to the spi_ll_stm32 driver, we no longer need to configure the 16-bit frame/word size in the DTS overlay file. The test_spi_word_size_16 testsuite helps us verify the 16-bit frame mode supported on the ST platform. - remove testcases that use thoses files in testcase.yaml Signed-off-by: Fabrice DJIATSA (cherry picked from commit 746d60b0f89eef9c5dbdcd9909757149c0681bf0) --- ...y-stm32-spi-16bits-dma-dt-nocache-mem.conf | 14 ------ .../overlay-stm32-spi-16bits-dma.conf | 11 ----- .../overlay-stm32-spi-16bits.conf | 6 --- .../overlay-stm32-spi-16bits.overlay | 43 ------------------- tests/drivers/spi/spi_loopback/testcase.yaml | 34 --------------- 5 files changed, 108 deletions(-) delete mode 100644 tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits-dma-dt-nocache-mem.conf delete mode 100644 tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits-dma.conf delete mode 100644 tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits.conf delete mode 100644 tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits.overlay diff --git a/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits-dma-dt-nocache-mem.conf b/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits-dma-dt-nocache-mem.conf deleted file mode 100644 index 4bb96e35f58..00000000000 --- a/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits-dma-dt-nocache-mem.conf +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (c) 2023 Graphcore Ltd, All rights reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# - -# enable DMA mode for SPI loopback test -CONFIG_SPI_STM32_DMA=y -CONFIG_SPI_STM32_INTERRUPT=n -CONFIG_SPI_ASYNC=n -CONFIG_NOCACHE_MEMORY=n -CONFIG_DT_DEFINED_NOCACHE=y -CONFIG_DT_DEFINED_NOCACHE_NAME="SRAM2" -CONFIG_SPI_LOOPBACK_16BITS_FRAMES=y diff --git a/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits-dma.conf b/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits-dma.conf deleted file mode 100644 index c49efea868a..00000000000 --- a/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits-dma.conf +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (c) 2023 Graphcore Ltd, All rights reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# - -# enable DMA mode for SPI loopback test -CONFIG_SPI_STM32_DMA=y -CONFIG_SPI_STM32_INTERRUPT=n -CONFIG_SPI_ASYNC=n -CONFIG_SPI_LOOPBACK_16BITS_FRAMES=y diff --git a/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits.conf b/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits.conf deleted file mode 100644 index 00ca04782b4..00000000000 --- a/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits.conf +++ /dev/null @@ -1,6 +0,0 @@ -# -# Copyright (c) 2023 Graphcore Ltd, All rights reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# -CONFIG_SPI_LOOPBACK_16BITS_FRAMES=y diff --git a/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits.overlay b/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits.overlay deleted file mode 100644 index b2df25ac860..00000000000 --- a/tests/drivers/spi/spi_loopback/overlay-stm32-spi-16bits.overlay +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2023 Graphcore Ltd, All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/* Set div-q to get test clk freq into acceptable SPI freq range */ -&pll { - /delete-property/ div-q; - div-q = <8>; -}; - -&sram2 { - zephyr,memory-attr = < DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) >; -}; - -&spi1 { - dmas = <&dmamux1 0 38 (STM32_DMA_PERIPH_TX | STM32_DMA_PRIORITY_HIGH | STM32_DMA_MEM_16BITS | STM32_DMA_PERIPH_16BITS) - &dmamux1 1 37 (STM32_DMA_PERIPH_RX | STM32_DMA_PRIORITY_HIGH | STM32_DMA_MEM_16BITS | STM32_DMA_PERIPH_16BITS)>; - dma-names = "tx", "rx"; - slow@0 { - compatible = "test-spi-loopback-slow"; - reg = <0>; - spi-max-frequency = <500000>; - }; - fast@0 { - compatible = "test-spi-loopback-fast"; - reg = <0>; - spi-max-frequency = <16000000>; - }; -}; - -&dma1 { - status = "okay"; -}; - -&dma2 { - status = "okay"; -}; - -&dmamux1 { - status = "okay"; -}; diff --git a/tests/drivers/spi/spi_loopback/testcase.yaml b/tests/drivers/spi/spi_loopback/testcase.yaml index ab3322a8d1f..c92c763ec57 100644 --- a/tests/drivers/spi/spi_loopback/testcase.yaml +++ b/tests/drivers/spi/spi_loopback/testcase.yaml @@ -51,17 +51,6 @@ tests: - robokit1 integration_platforms: - sam_e70_xplained/same70q21 - drivers.spi.stm32_spi_16bits_frames.loopback: - extra_args: - - EXTRA_CONF_FILE="overlay-stm32-spi-16bits.conf" - - DTC_OVERLAY_FILE="overlay-stm32-spi-16bits.overlay" - platform_allow: - - nucleo_h743zi - - nucleo_h753zi - - nucleo_h745zi_q/stm32h745xx/m4 - - nucleo_h745zi_q/stm32h745xx/m7 - integration_platforms: - - nucleo_h743zi drivers.spi.stm32_spi_dma.loopback: extra_args: EXTRA_CONF_FILE="overlay-stm32-spi-dma.conf" platform_allow: @@ -98,29 +87,6 @@ tests: - nucleo_h745zi_q/stm32h745xx/m7 integration_platforms: - nucleo_h743zi - drivers.spi.stm32_spi_16bits_frames_dma.loopback: - extra_args: - - EXTRA_CONF_FILE="overlay-stm32-spi-16bits-dma.conf" - - DTC_OVERLAY_FILE="overlay-stm32-spi-16bits.overlay" - platform_allow: - - nucleo_h743zi - - nucleo_h753zi - - nucleo_h745zi_q/stm32h745xx/m4 - - nucleo_h745zi_q/stm32h745xx/m7 - integration_platforms: - - nucleo_h743zi - drivers.spi.stm32_spi_16bits_frames_dma_dt_nocache_mem.loopback: - extra_args: - - EXTRA_CONF_FILE="overlay-stm32-spi-16bits-dma-dt-nocache-mem.conf" - - DTC_OVERLAY_FILE="overlay-stm32-spi-16bits.overlay" - filter: CONFIG_CPU_HAS_DCACHE - platform_allow: - - nucleo_h743zi - - nucleo_h753zi - - nucleo_h745zi_q/stm32h745xx/m4 - - nucleo_h745zi_q/stm32h745xx/m7 - integration_platforms: - - nucleo_h743zi drivers.spi.stm32_spi_interrupt.loopback: extra_args: EXTRA_CONF_FILE="overlay-stm32-spi-interrupt.conf" platform_allow: From 467ba507e9bf60c28b02b8d9e44ad3c693db228b Mon Sep 17 00:00:00 2001 From: Sai Santhosh Malae Date: Fri, 13 Jun 2025 18:49:08 +0530 Subject: [PATCH 37/59] [nrf fromtree] tests: spi: siwx91x: board config file update Update CONFIG_SPI_IDEAL_TRANSFER_DURATION_SCALING value for testcase to pass for higher transfer speeds. Signed-off-by: Sai Santhosh Malae (cherry picked from commit d29fd6fcba2a2080fea42005eebc62f8ec5a730f) --- tests/drivers/spi/spi_loopback/boards/siwx917_rb4338a.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/drivers/spi/spi_loopback/boards/siwx917_rb4338a.conf b/tests/drivers/spi/spi_loopback/boards/siwx917_rb4338a.conf index 368ff560c98..940add570e6 100644 --- a/tests/drivers/spi/spi_loopback/boards/siwx917_rb4338a.conf +++ b/tests/drivers/spi/spi_loopback/boards/siwx917_rb4338a.conf @@ -1 +1,2 @@ CONFIG_SPI_SILABS_SIWX91X_GSPI_DMA=y +CONFIG_SPI_IDEAL_TRANSFER_DURATION_SCALING=24 From 7891a161374fb7dd68783542fcb9742857333f9f Mon Sep 17 00:00:00 2001 From: Thao Luong Date: Fri, 23 May 2025 19:25:07 +0700 Subject: [PATCH 38/59] [nrf fromtree] tests: drivers: spi: Add support ek_ra2l1 for spi_loopback test Add support for ek_ra2l1 on spi_loopback. Signed-off-by: Thao Luong (cherry picked from commit e2267bd59e4055ccc7b60021a30e47b3c047e312) --- .../spi/spi_loopback/boards/ek_ra2l1.conf | 3 ++ .../spi/spi_loopback/boards/ek_ra2l1.overlay | 45 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 tests/drivers/spi/spi_loopback/boards/ek_ra2l1.conf create mode 100644 tests/drivers/spi/spi_loopback/boards/ek_ra2l1.overlay diff --git a/tests/drivers/spi/spi_loopback/boards/ek_ra2l1.conf b/tests/drivers/spi/spi_loopback/boards/ek_ra2l1.conf new file mode 100644 index 00000000000..65750ba3131 --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/ek_ra2l1.conf @@ -0,0 +1,3 @@ +CONFIG_SPI_LOOPBACK_MODE_LOOP=y +CONFIG_SPI_INTERRUPT=y +CONFIG_SPI_RA_DTC=y diff --git a/tests/drivers/spi/spi_loopback/boards/ek_ra2l1.overlay b/tests/drivers/spi/spi_loopback/boards/ek_ra2l1.overlay new file mode 100644 index 00000000000..b87c7818209 --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/ek_ra2l1.overlay @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&spi0 { + rx-dtc; + tx-dtc; + + slow@0 { + compatible = "test-spi-loopback-slow"; + reg = <0>; + spi-max-frequency = <2000000>; + }; + + fast@0 { + compatible = "test-spi-loopback-fast"; + reg = <0>; + spi-max-frequency = <3000000>; + }; +}; + +&pinctrl { + spi0_default: spi0_default { + group1 { + /* MISO MOSI RSPCK */ + psels = , + , + ; + }; + }; +}; + +&spi0 { + pinctrl-0 = <&spi0_default>; + pinctrl-names = "default"; + cs-gpios = <&ioport1 3 GPIO_ACTIVE_LOW>; + interrupts = <8 1>, <9 1>, <10 1>, <19 1>; + interrupt-names = "rxi", "txi", "tei", "eri"; + status = "okay"; +}; + +&ioport1 { + status = "okay"; +}; From af8e298257072f30dff7991f51e6cd9ab19bb692 Mon Sep 17 00:00:00 2001 From: Khoa Nguyen Date: Wed, 2 Apr 2025 15:49:20 +0700 Subject: [PATCH 39/59] [nrf fromtree] tests: drivers: spi: Add support spi_loopback for ek_ra8p1 Add support test app spi_loopback for Renesas ek_ra8p1 Signed-off-by: Khoa Nguyen (cherry picked from commit c6f237ed0be16d27659e25ce96ff5bbcb12d5122) --- .../boards/ek_ra8p1_r7ka8p1kflcac_cm85.conf | 6 +++++ .../ek_ra8p1_r7ka8p1kflcac_cm85.overlay | 23 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 tests/drivers/spi/spi_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.conf create mode 100644 tests/drivers/spi/spi_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay diff --git a/tests/drivers/spi/spi_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.conf b/tests/drivers/spi/spi_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.conf new file mode 100644 index 00000000000..9c7b8ccf32d --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SPI_LOOPBACK_MODE_LOOP=y +CONFIG_SPI_B_INTERRUPT=y +CONFIG_SPI_B_RA_DTC=y diff --git a/tests/drivers/spi/spi_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay b/tests/drivers/spi/spi_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay new file mode 100644 index 00000000000..69a4204a1ab --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +&spi1 { + rx-dtc; + tx-dtc; + + slow@0 { + compatible = "test-spi-loopback-slow"; + reg = <0>; + spi-max-frequency = <2000000>; + }; + + fast@0 { + compatible = "test-spi-loopback-fast"; + reg = <0>; + spi-max-frequency = <3000000>; + }; +}; From 61dc30e0875939e41a3159797b76e2786f62509b Mon Sep 17 00:00:00 2001 From: Abderrahmane JARMOUNI Date: Fri, 2 May 2025 16:58:03 +0200 Subject: [PATCH 40/59] [nrf fromtree] tests: drivers: spi_loopback: fix buffers alignment size Size given to __aligned() is in bytes. Align following DCACHE line size, or default to 32-byte alignment Signed-off-by: Abderrahmane JARMOUNI (cherry picked from commit da62b1c19d5ab1f2ac38ef577a1a6d338940b1c1) --- tests/drivers/spi/spi_loopback/src/spi.c | 39 +++++++++++++++--------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/tests/drivers/spi/spi_loopback/src/spi.c b/tests/drivers/spi/spi_loopback/src/spi.c index d3d44d79f46..9d6c8718472 100644 --- a/tests/drivers/spi/spi_loopback/src/spi.c +++ b/tests/drivers/spi/spi_loopback/src/spi.c @@ -66,40 +66,49 @@ const struct gpio_dt_spec mosi_pin = GPIO_DT_SPEC_GET_OR(DT_PATH(zephyr_user), m ******************** */ -#if CONFIG_NOCACHE_MEMORY +#ifdef CONFIG_NOCACHE_MEMORY #define __NOCACHE __attribute__((__section__(".nocache"))) #elif defined(CONFIG_DT_DEFINED_NOCACHE) #define __NOCACHE __attribute__((__section__(CONFIG_DT_DEFINED_NOCACHE_NAME))) #else /* CONFIG_NOCACHE_MEMORY */ #define __NOCACHE +#if CONFIG_DCACHE_LINE_SIZE != 0 +#define __BUF_ALIGN __aligned(CONFIG_DCACHE_LINE_SIZE) +#else +#define __BUF_ALIGN __aligned(DT_PROP_OR(DT_PATH(cpus, cpu_0), d_cache_line_size, 32)) +#endif #endif /* CONFIG_NOCACHE_MEMORY */ +#ifndef __BUF_ALIGN +#define __BUF_ALIGN __aligned(32) +#endif + #define BUF_SIZE 18 static const char tx_data[BUF_SIZE] = "0123456789abcdef-\0"; -static __aligned(32) char buffer_tx[BUF_SIZE] __NOCACHE; -static __aligned(32) char buffer_rx[BUF_SIZE] __NOCACHE; +static __BUF_ALIGN char buffer_tx[BUF_SIZE] __NOCACHE; +static __BUF_ALIGN char buffer_rx[BUF_SIZE] __NOCACHE; #define BUF2_SIZE 36 static const char tx2_data[BUF2_SIZE] = "Thequickbrownfoxjumpsoverthelazydog\0"; -static __aligned(32) char buffer2_tx[BUF2_SIZE] __NOCACHE; -static __aligned(32) char buffer2_rx[BUF2_SIZE] __NOCACHE; +static __BUF_ALIGN char buffer2_tx[BUF2_SIZE] __NOCACHE; +static __BUF_ALIGN char buffer2_rx[BUF2_SIZE] __NOCACHE; #define BUF3_SIZE CONFIG_SPI_LARGE_BUFFER_SIZE static const char large_tx_data[BUF3_SIZE] = "Thequickbrownfoxjumpsoverthelazydog\0"; -static __aligned(32) char large_buffer_tx[BUF3_SIZE] __NOCACHE; -static __aligned(32) char large_buffer_rx[BUF3_SIZE] __NOCACHE; +static __BUF_ALIGN char large_buffer_tx[BUF3_SIZE] __NOCACHE; +static __BUF_ALIGN char large_buffer_rx[BUF3_SIZE] __NOCACHE; #define BUFWIDE_SIZE 12 static const uint16_t tx_data_16[] = {0x1234, 0x5678, 0x9ABC, 0xDEF0, 0xFF00, 0x00FF, 0xAAAA, 0x5555, 0xF0F0, 0x0F0F, 0xA5A5, 0x5A5A}; -static __aligned(32) uint16_t buffer_tx_16[BUFWIDE_SIZE] __NOCACHE; -static __aligned(32) uint16_t buffer_rx_16[BUFWIDE_SIZE] __NOCACHE; +static __BUF_ALIGN uint16_t buffer_tx_16[BUFWIDE_SIZE] __NOCACHE; +static __BUF_ALIGN uint16_t buffer_rx_16[BUFWIDE_SIZE] __NOCACHE; static const uint32_t tx_data_32[] = {0x12345678, 0x56781234, 0x9ABCDEF0, 0xDEF09ABC, 0xFFFF0000, 0x0000FFFF, 0x00FF00FF, 0xFF00FF00, 0xAAAA5555, 0x5555AAAA, 0xAA55AA55, 0x55AA55AA}; -static __aligned(32) uint32_t buffer_tx_32[BUFWIDE_SIZE] __NOCACHE; -static __aligned(32) uint32_t buffer_rx_32[BUFWIDE_SIZE] __NOCACHE; +static __BUF_ALIGN uint32_t buffer_tx_32[BUFWIDE_SIZE] __NOCACHE; +static __BUF_ALIGN uint32_t buffer_rx_32[BUFWIDE_SIZE] __NOCACHE; /* ******************** @@ -667,7 +676,7 @@ ZTEST(spi_loopback, test_spi_word_size_9) { struct spi_dt_spec *spec = loopback_specs[spec_idx]; - static __aligned(32) uint16_t tx_data_9[BUFWIDE_SIZE]; + static __BUF_ALIGN uint16_t tx_data_9[BUFWIDE_SIZE]; for (int i = 0; i < BUFWIDE_SIZE; i++) { tx_data_9[i] = tx_data_16[i] & 0x1FF; @@ -691,7 +700,7 @@ ZTEST(spi_loopback, test_spi_word_size_24) { struct spi_dt_spec *spec = loopback_specs[spec_idx]; - static __aligned(32) uint32_t tx_data_24[BUFWIDE_SIZE]; + static __BUF_ALIGN uint32_t tx_data_24[BUFWIDE_SIZE]; for (int i = 0; i < BUFWIDE_SIZE; i++) { tx_data_24[i] = tx_data_32[i] & 0xFFFFFF; @@ -717,8 +726,8 @@ static struct k_thread thread[3]; static K_SEM_DEFINE(thread_sem, 0, 3); static K_SEM_DEFINE(sync_sem, 0, 1); -static uint8_t __aligned(32) tx_buffer[3][32] __NOCACHE; -static uint8_t __aligned(32) rx_buffer[3][32] __NOCACHE; +static uint8_t __BUF_ALIGN tx_buffer[3][32] __NOCACHE; +static uint8_t __BUF_ALIGN rx_buffer[3][32] __NOCACHE; atomic_t thread_test_fails; From d24fed1762a6941a9548e79349b5eae7189870fd Mon Sep 17 00:00:00 2001 From: Raymond Lei Date: Fri, 7 Mar 2025 14:26:40 -0600 Subject: [PATCH 41/59] [nrf fromtree] drivers: spi: nxp: fix PCS broken issue and PCS_HOLD_ON support Different LPSPI IPs are used for RT11xx and MCXN. On a older version of LPSPI, a transmit command or a TX data need to be issued to end a frame. On a new version, no such requirement. Based on above information, we have to make DMA transfers "cascade" in the DMA ISR to keep CS asserted during the whole SPI transfer. PCS_HOLD_ON is a feature to keep CS asserted during multi SPI transfers. It is implemented and supported on new LPSPI IP but it is impossible to be supported on an older version like RT11xx. Signed-off-by: Raymond Lei (cherry picked from commit 0d2935218c5ee623f2fd0ea4fc1f5a3b9c14d72c) --- drivers/spi/spi_nxp_lpspi/spi_nxp_lpspi_dma.c | 264 ++++++++++++------ .../mimxrt1060_evk_mimxrt1062_qspi_C.overlay | 1 + .../mimxrt1170_evk_mimxrt1176_cm7_A.overlay | 3 +- 3 files changed, 185 insertions(+), 83 deletions(-) diff --git a/drivers/spi/spi_nxp_lpspi/spi_nxp_lpspi_dma.c b/drivers/spi/spi_nxp_lpspi/spi_nxp_lpspi_dma.c index 5b14a66fc19..0213a808afa 100644 --- a/drivers/spi/spi_nxp_lpspi/spi_nxp_lpspi_dma.c +++ b/drivers/spi/spi_nxp_lpspi/spi_nxp_lpspi_dma.c @@ -1,5 +1,5 @@ /* - * Copyright 2018, 2024 NXP + * Copyright 2018, 2024-2025 NXP * * SPDX-License-Identifier: Apache-2.0 */ @@ -12,6 +12,19 @@ LOG_MODULE_DECLARE(spi_lpspi, CONFIG_SPI_LOG_LEVEL); #include #include "spi_nxp_lpspi_priv.h" +/* These states indicate what's the status of RX and TX, also synchronization + * status of DMA size of the next DMA transfer. + */ +typedef enum { + LPSPI_TRANSFER_STATE_NULL, + LPSPI_TRANSFER_STATE_ONGOING, + LPSPI_TRANSFER_STATE_NEXT_DMA_SIZE_UPDATED, + LPSPI_TRANSFER_STATE_TX_DONE, + LPSPI_TRANSFER_STATE_RX_DONE, + LPSPI_TRANSFER_STATE_RX_TX_DONE, + LPSPI_TRANSFER_STATE_INVALID = 0xFFFFFFFFUL, +} lpspi_transfer_state_t; + /* dummy memory used for transferring NOP when tx buf is null */ static uint32_t tx_nop_val; /* check compliance says no init to 0, but should be 0 in bss */ /* dummy memory for transferring to when RX buf is null */ @@ -22,17 +35,58 @@ struct spi_dma_stream { uint32_t channel; struct dma_config dma_cfg; struct dma_block_config dma_blk_cfg; - bool chunk_done; }; struct spi_nxp_dma_data { struct spi_dma_stream dma_rx; struct spi_dma_stream dma_tx; + + lpspi_transfer_state_t state; + /* This DMA size is used in callback function for RX and TX context update. + * because of old LPSPI IP limitation, RX complete depend on next TX DMA transfer start, + * so TX and RX not always start at the same time while we can only calculate DMA transfer + * size once and update the buffer pointers at the same time. + */ + size_t synchronize_dma_size; }; +/* + * Issue a TCR (Transmit Command Register) command to properly end RX DMA transfers + * on certain LPSPI versions. The behavior depends on: + * + * 1. LPSPI Hardware Version: + * - Version 1 (RT1170, RT10xx, Kinetis K series): TCR issue always required + * - Version 2 (RT1180, MCXN, RT700, K32W, S32K3xx, MCXL10): TCR issue not needed + * + * 2. SPI_HOLD_ON_CS Configuration: + * - If enabled: Keeps chip select (PCS) asserted between transfers + * - If disabled: Deasserts PCS after each transfer + * + * This function checks the LPSPI version and SPI_HOLD_ON_CS setting to determine + * if a TCR command is needed. For version 1, TCR is always issued. For version 2, + * TCR is only issued if SPI_HOLD_ON_CS is not set. Therefore, SPI_HOLD_ON_CS is not + * supported for version 1. + * + * The LPSPI version can be read from the VERID register, which is typically the + * first register in the memory map. + */ +static void spi_mcux_issue_TCR(const struct device *dev) +{ + LPSPI_Type *base = (LPSPI_Type *)DEVICE_MMIO_NAMED_GET(dev, reg_base); + const struct spi_config *spi_cfg = DEV_DATA(dev)->ctx.config; + uint8_t major_ver = (base->VERID & LPSPI_VERID_MAJOR_MASK) >> LPSPI_VERID_MAJOR_SHIFT; + + /* On old LPSPI versions, we always have to issue TCR, or transaction will never end. + * On a newer LPSPI version, only issue TCR when hold on CS feature is disabled. + */ + if (major_ver < 2 || !(spi_cfg->operation & SPI_HOLD_ON_CS)) { + base->TCR &= ~LPSPI_TCR_CONTC_MASK; + } +} + static struct dma_block_config *lpspi_dma_common_load(struct spi_dma_stream *stream, - const struct device *dev, - const uint8_t *buf, size_t len) + const struct device *dev, const uint8_t *buf, + size_t len) { struct dma_block_config *blk_cfg = &stream->dma_blk_cfg; @@ -91,30 +145,35 @@ static int lpspi_dma_rx_load(const struct device *dev, uint8_t *buf, size_t len) return dma_config(stream->dma_dev, stream->channel, &stream->dma_cfg); } -static inline int lpspi_dma_rxtx_load(const struct device *dev) +/* Return values: + * positive value if a data chunk is loaded successfully and return the data chunk size loaded; + * negative value if error happens and return the error code; + * 0 if no data is loaded; + */ +static int lpspi_dma_rxtx_load(const struct device *dev) { struct lpspi_data *data = dev->data; struct spi_nxp_dma_data *dma_data = (struct spi_nxp_dma_data *)data->driver_data; struct spi_dma_stream *rx = &dma_data->dma_rx; struct spi_dma_stream *tx = &dma_data->dma_tx; struct spi_context *ctx = &data->ctx; - size_t next_chunk_size = spi_context_max_continuous_chunk(ctx); + size_t dma_size = spi_context_max_continuous_chunk(ctx); int ret = 0; - if (next_chunk_size == 0) { + if (dma_size == 0) { /* In case both buffers are 0 length, we should not even be here * and attempting to set up a DMA transfer like this will cause * errors that lock up the system in some cases with eDMA. */ - return -ENODATA; + return 0; } - ret = lpspi_dma_tx_load(dev, ctx->tx_buf, next_chunk_size); + ret = lpspi_dma_tx_load(dev, ctx->tx_buf, dma_size); if (ret != 0) { return ret; } - ret = lpspi_dma_rx_load(dev, ctx->rx_buf, next_chunk_size); + ret = lpspi_dma_rx_load(dev, ctx->rx_buf, dma_size); if (ret != 0) { return ret; } @@ -124,24 +183,17 @@ static inline int lpspi_dma_rxtx_load(const struct device *dev) return ret; } - return dma_start(tx->dma_dev, tx->channel); -} - -static int lpspi_dma_next_fill(const struct device *dev) -{ - struct lpspi_data *data = (struct lpspi_data *)dev->data; - struct spi_nxp_dma_data *dma_data = (struct spi_nxp_dma_data *)data->driver_data; - struct spi_dma_stream *rx = &dma_data->dma_rx; - struct spi_dma_stream *tx = &dma_data->dma_tx; - - rx->chunk_done = false; - tx->chunk_done = false; + ret = dma_start(tx->dma_dev, tx->channel); + if (ret != 0) { + return ret; + } - return lpspi_dma_rxtx_load(dev); + return dma_size; } static void spi_mcux_dma_callback(const struct device *dev, void *arg, uint32_t channel, int status) { + /* arg directly holds the spi device */ const struct device *spi_dev = arg; LPSPI_Type *base = (LPSPI_Type *)DEVICE_MMIO_NAMED_GET(spi_dev, reg_base); struct lpspi_data *data = (struct lpspi_data *)spi_dev->data; @@ -149,63 +201,98 @@ static void spi_mcux_dma_callback(const struct device *dev, void *arg, uint32_t struct spi_dma_stream *rx = &dma_data->dma_rx; struct spi_dma_stream *tx = &dma_data->dma_tx; struct spi_context *ctx = &data->ctx; - char debug_char; + char debug_char = (channel == dma_data->dma_tx.channel) ? 'T' : 'R'; + int ret = 0; if (status < 0) { + ret = status; goto error; - } else { - /* don't care about positive values, normalize to "okay" = 0 */ - status = 0; } - if (channel == rx->channel) { - spi_context_update_rx(ctx, 1, rx->dma_blk_cfg.block_size); - debug_char = 'R'; - rx->chunk_done = true; - } else if (channel == tx->channel) { - spi_context_update_tx(ctx, 1, tx->dma_blk_cfg.block_size); - debug_char = 'T'; - tx->chunk_done = true; - } else { - /* invalid channel */ - status = -EIO; + if (channel != dma_data->dma_tx.channel && channel != dma_data->dma_rx.channel) { + ret = -EIO; goto error; } - LOG_DBG("DMA %cX Block Complete", debug_char); - - /* wait for the other channel to finish if needed */ - if (!rx->chunk_done || !tx->chunk_done) { - return; - } - - - while ((IS_ENABLED(CONFIG_SOC_FAMILY_NXP_IMXRT) || - IS_ENABLED(CONFIG_SOC_FAMILY_KINETIS)) && - (base->SR & LPSPI_SR_MBF_MASK)) { - /* wait until module is idle */ - } - - if (spi_context_max_continuous_chunk(ctx) == 0) { - goto done; - } - - status = lpspi_dma_next_fill(spi_dev); - if (status) { + switch (dma_data->state) { + case LPSPI_TRANSFER_STATE_ONGOING: + spi_context_update_tx(ctx, 1, tx->dma_blk_cfg.block_size); + spi_context_update_rx(ctx, 1, rx->dma_blk_cfg.block_size); + /* Calculate next DMA transfer size */ + dma_data->synchronize_dma_size = spi_context_max_continuous_chunk(ctx); + LOG_DBG("tx len:%d rx len:%d next dma size:%d", ctx->tx_len, ctx->rx_len, + dma_data->synchronize_dma_size); + if (dma_data->synchronize_dma_size > 0) { + ret = (channel == dma_data->dma_tx.channel) + ? lpspi_dma_tx_load(spi_dev, ctx->tx_buf, + dma_data->synchronize_dma_size) + : lpspi_dma_rx_load(spi_dev, ctx->rx_buf, + dma_data->synchronize_dma_size); + + if (ret != 0) { + goto error; + } + + ret = dma_start(dev, channel); + if (ret != 0) { + goto error; + } + dma_data->state = LPSPI_TRANSFER_STATE_NEXT_DMA_SIZE_UPDATED; + } else { + ret = dma_stop(dev, channel); + if (ret != 0) { + goto error; + } + /* This is the end of the transfer. */ + if (channel == dma_data->dma_tx.channel) { + spi_mcux_issue_TCR(spi_dev); + dma_data->state = LPSPI_TRANSFER_STATE_TX_DONE; + base->DER &= ~LPSPI_DER_TDDE_MASK; + } else { + dma_data->state = LPSPI_TRANSFER_STATE_RX_DONE; + base->DER &= ~LPSPI_DER_RDDE_MASK; + } + } + break; + case LPSPI_TRANSFER_STATE_NEXT_DMA_SIZE_UPDATED: + ret = (channel == dma_data->dma_tx.channel) + ? lpspi_dma_tx_load(spi_dev, ctx->tx_buf, + dma_data->synchronize_dma_size) + : lpspi_dma_rx_load(spi_dev, ctx->rx_buf, + dma_data->synchronize_dma_size); + dma_data->synchronize_dma_size = 0; + + if (ret != 0) { + goto error; + } + + ret = dma_start(dev, channel); + if (ret != 0) { + goto error; + } + dma_data->state = LPSPI_TRANSFER_STATE_ONGOING; + break; + + case LPSPI_TRANSFER_STATE_TX_DONE: + case LPSPI_TRANSFER_STATE_RX_DONE: + dma_data->state = LPSPI_TRANSFER_STATE_RX_TX_DONE; + /* TX and RX both done here. */ + spi_context_complete(ctx, spi_dev, 0); + spi_context_cs_control(ctx, false); + break; + + default: + LOG_ERR("unknown spi stransfer state:%d", dma_data->state); + ret = -EIO; goto error; } + LOG_DBG("DMA %cX Block Complete", debug_char); return; error: - LOG_ERR("DMA callback error with channel %d err %d.", channel, status); -done: - base->DER &= ~(LPSPI_DER_TDDE_MASK | LPSPI_DER_RDDE_MASK); - base->TCR &= ~LPSPI_TCR_CONT_MASK; - lpspi_wait_tx_fifo_empty(spi_dev); + LOG_ERR("DMA callback error with channel %d.", channel); + spi_context_complete(ctx, spi_dev, ret); spi_context_cs_control(ctx, false); - base->CR |= LPSPI_CR_RTF_MASK | LPSPI_CR_RRF_MASK; - spi_context_complete(ctx, spi_dev, status); - spi_context_release(ctx, status); } static int transceive_dma(const struct device *dev, const struct spi_config *spi_cfg, @@ -214,7 +301,9 @@ static int transceive_dma(const struct device *dev, const struct spi_config *spi { LPSPI_Type *base = (LPSPI_Type *)DEVICE_MMIO_NAMED_GET(dev, reg_base); struct lpspi_data *data = dev->data; + struct spi_nxp_dma_data *dma_data = (struct spi_nxp_dma_data *)data->driver_data; struct spi_context *ctx = &data->ctx; + uint8_t major_ver = (base->VERID & LPSPI_VERID_MAJOR_MASK) >> LPSPI_VERID_MAJOR_SHIFT; int ret; spi_context_lock(ctx, asynchronous, cb, userdata, spi_cfg); @@ -224,30 +313,41 @@ static int transceive_dma(const struct device *dev, const struct spi_config *spi goto out; } - spi_context_buffers_setup(ctx, tx_bufs, rx_bufs, 1); - - ret = lpspi_dma_next_fill(dev); - if (ret == -ENODATA) { - /* No transfer to do? So just exit */ - ret = 0; - goto out; - } else if (ret) { - goto out; + /* Check CS hold on feature for DMA mode, it is not supported on some platform. */ + if ((spi_cfg->operation & SPI_HOLD_ON_CS) && major_ver < 2) { + LOG_ERR("SPI CS hold on feature is not supported on this platform."); + return -ENOTSUP; } - if (!(IS_ENABLED(CONFIG_SOC_FAMILY_NXP_IMXRT) || IS_ENABLED(CONFIG_SOC_FAMILY_KINETIS))) { - base->TCR |= LPSPI_TCR_CONT_MASK; - } + /* Always use continuous mode to satisfy SPI API requirements. */ + base->TCR |= LPSPI_TCR_CONT_MASK | LPSPI_TCR_CONTC_MASK; - spi_context_cs_control(ctx, true); + /* Please set both watermarks as 0 because there are some synchronize requirements + * between RX and TX on RT platform. TX and RX DMA callback must be called in interleaved + * mode, a none-zero TX watermark may break this. + */ + base->FCR = LPSPI_FCR_TXWATER(0) | LPSPI_FCR_RXWATER(0); + spi_context_buffers_setup(&data->ctx, tx_bufs, rx_bufs, 1); - base->CR |= LPSPI_CR_RTF_MASK | LPSPI_CR_RRF_MASK; + /* Set next dma size is invalid. */ + dma_data->synchronize_dma_size = 0; + dma_data->state = LPSPI_TRANSFER_STATE_NULL; + /* Load dma block */ + ret = lpspi_dma_rxtx_load(dev); + if (ret <= 0) { + goto out; + } + + dma_data->state = LPSPI_TRANSFER_STATE_ONGOING; + /* Set CS line just before DMA transfer. */ + spi_context_cs_control(ctx, true); + /* Enable DMA Requests */ base->DER |= LPSPI_DER_TDDE_MASK | LPSPI_DER_RDDE_MASK; ret = spi_context_wait_for_completion(ctx); - if (ret >= 0) { - return ret; + if (ret) { + spi_context_cs_control(ctx, false); } out: spi_context_release(ctx, ret); diff --git a/tests/drivers/spi/spi_loopback/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay b/tests/drivers/spi/spi_loopback/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay index 979062e18d9..328dd4198e0 100644 --- a/tests/drivers/spi/spi_loopback/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay +++ b/tests/drivers/spi/spi_loopback/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay @@ -4,6 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ +/* Short J17-pin4 and J17-pin5, populate R356, R350,R346, R362 to enable Pins for SPI1. */ &lpspi1 { slow@0 { compatible = "test-spi-loopback-slow"; diff --git a/tests/drivers/spi/spi_loopback/boards/mimxrt1170_evk_mimxrt1176_cm7_A.overlay b/tests/drivers/spi/spi_loopback/boards/mimxrt1170_evk_mimxrt1176_cm7_A.overlay index bbddef98ad6..57f6c86b644 100644 --- a/tests/drivers/spi/spi_loopback/boards/mimxrt1170_evk_mimxrt1176_cm7_A.overlay +++ b/tests/drivers/spi/spi_loopback/boards/mimxrt1170_evk_mimxrt1176_cm7_A.overlay @@ -1,9 +1,10 @@ /* - * Copyright 2023 NXP + * Copyright 2023, 2025 NXP * * SPDX-License-Identifier: Apache-2.0 */ +/* Short J10-pin8 and J10-pin10. */ &lpspi1 { dmas = <&edma0 0 36>, <&edma0 1 37>; dma-names = "rx", "tx"; From 45add140419f71fc98e204a7093964f26883074b Mon Sep 17 00:00:00 2001 From: Julien Panis Date: Tue, 17 Jun 2025 09:43:27 +0200 Subject: [PATCH 42/59] [nrf fromtree] tests: drivers: spi: spi_loopback: Add testcase for cc23x0 Enable DMA for the test. Signed-off-by: Julien Panis (cherry picked from commit a631df5cd8c85af29537966c556f3e8f04de4516) --- .../spi_loopback/boards/lp_em_cc2340r5.conf | 1 + .../spi_loopback/boards/lp_em_cc2340r5.overlay | 18 ++++++++++++++++++ tests/drivers/spi/spi_loopback/testcase.yaml | 7 +++++++ 3 files changed, 26 insertions(+) create mode 100644 tests/drivers/spi/spi_loopback/boards/lp_em_cc2340r5.conf create mode 100644 tests/drivers/spi/spi_loopback/boards/lp_em_cc2340r5.overlay diff --git a/tests/drivers/spi/spi_loopback/boards/lp_em_cc2340r5.conf b/tests/drivers/spi/spi_loopback/boards/lp_em_cc2340r5.conf new file mode 100644 index 00000000000..469620fed4e --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/lp_em_cc2340r5.conf @@ -0,0 +1 @@ +CONFIG_SPI_LOOPBACK_MODE_LOOP=y diff --git a/tests/drivers/spi/spi_loopback/boards/lp_em_cc2340r5.overlay b/tests/drivers/spi/spi_loopback/boards/lp_em_cc2340r5.overlay new file mode 100644 index 00000000000..98594dcc472 --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/lp_em_cc2340r5.overlay @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2024 BayLibre, SAS + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&spi0 { + slow@0 { + compatible = "test-spi-loopback-slow"; + reg = <0>; + spi-max-frequency = <2000000>; + }; + fast@0 { + compatible = "test-spi-loopback-fast"; + reg = <0>; + spi-max-frequency = <3000000>; + }; +}; diff --git a/tests/drivers/spi/spi_loopback/testcase.yaml b/tests/drivers/spi/spi_loopback/testcase.yaml index c92c763ec57..e64aa8cdbf3 100644 --- a/tests/drivers/spi/spi_loopback/testcase.yaml +++ b/tests/drivers/spi/spi_loopback/testcase.yaml @@ -314,3 +314,10 @@ tests: filter: CONFIG_SOC_FAMILY_SILABS_SIWX91X platform_allow: - siwx917_rb4338a + drivers.spi.cc23x0.loopback.dma.no_async: + filter: CONFIG_SOC_FAMILY_TI_SIMPLELINK + platform_allow: + - lp_em_cc2340r5 + extra_configs: + - CONFIG_SPI_CC23X0_DMA_DRIVEN=y + - CONFIG_SPI_ASYNC=n From 3b692d52bf829ed8930c6fda625c3d69694f6ce4 Mon Sep 17 00:00:00 2001 From: Mert Ekren Date: Tue, 4 Jun 2024 13:31:32 +0300 Subject: [PATCH 43/59] [nrf fromtree] tests: drivers: spi: Add MAX32657 overlay files Enable 'spi_loopback' test for MAX32657 boards. Signed-off-by: Mert Ekren (cherry picked from commit e7dd1e507a25c80fe905d5563c0cbf09bf59532e) --- .../boards/max32657evkit_max32657.conf | 6 +++++ .../boards/max32657evkit_max32657.overlay | 25 +++++++++++++++++++ .../boards/max32657evkit_max32657_ns.conf | 6 +++++ .../boards/max32657evkit_max32657_ns.overlay | 18 +++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657.conf create mode 100644 tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657.overlay create mode 100644 tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657_ns.conf create mode 100644 tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657_ns.overlay diff --git a/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657.conf b/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657.conf new file mode 100644 index 00000000000..87c673fcdaf --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657.conf @@ -0,0 +1,6 @@ +# +# Copyright (c) 2024 Analog Devices, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# +CONFIG_SPI_MAX32_INTERRUPT=y diff --git a/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657.overlay b/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657.overlay new file mode 100644 index 00000000000..83a4a0b60da --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657.overlay @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024 Analog Devices, Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&dma1 { + status = "okay"; +}; + +&spi0 { + dmas = <&dma1 1 MAX32_DMA_SLOT_SPI_TX>, <&dma1 2 MAX32_DMA_SLOT_SPI_RX>; + dma-names = "tx", "rx"; + + slow@1 { + compatible = "test-spi-loopback-slow"; + reg = <1>; + spi-max-frequency = <128000>; + }; + fast@1 { + compatible = "test-spi-loopback-fast"; + reg = <1>; + spi-max-frequency = <500000>; + }; +}; diff --git a/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657_ns.conf b/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657_ns.conf new file mode 100644 index 00000000000..87c673fcdaf --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657_ns.conf @@ -0,0 +1,6 @@ +# +# Copyright (c) 2024 Analog Devices, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# +CONFIG_SPI_MAX32_INTERRUPT=y diff --git a/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657_ns.overlay b/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657_ns.overlay new file mode 100644 index 00000000000..ee529c8bf48 --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/max32657evkit_max32657_ns.overlay @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2024 Analog Devices, Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&spi0 { + slow@1 { + compatible = "test-spi-loopback-slow"; + reg = <1>; + spi-max-frequency = <128000>; + }; + fast@1 { + compatible = "test-spi-loopback-fast"; + reg = <1>; + spi-max-frequency = <500000>; + }; +}; From aeb7b7db95d77fb1e2ee557bbc1f345a974a9f32 Mon Sep 17 00:00:00 2001 From: Declan Snyder Date: Tue, 1 Jul 2025 10:41:31 -0500 Subject: [PATCH 44/59] [nrf fromtree] tests: spi_loopback: skip hold_on_cs test if not supported This early exit section is only reached if there is an error. In the case of not supported, the ret variable will be 0 and zassert won't happen. This is because the test was meant to be skipped, not passed or failed, in this case. So add the skip call. Signed-off-by: Declan Snyder (cherry picked from commit 0574ac7e845876c8e9fee0c8f3974d519a7ce086) --- tests/drivers/spi/spi_loopback/src/spi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/drivers/spi/spi_loopback/src/spi.c b/tests/drivers/spi/spi_loopback/src/spi.c index 9d6c8718472..e3ad4043c16 100644 --- a/tests/drivers/spi/spi_loopback/src/spi.c +++ b/tests/drivers/spi/spi_loopback/src/spi.c @@ -1017,6 +1017,8 @@ ZTEST(spi_extra_api_features, test_spi_hold_on_cs) early_exit: hold_spec->config.operation &= ~SPI_HOLD_ON_CS; zassert_false(ret, "SPI transceive failed, code %d", ret); + /* if there was no error then it was meant to be a skip at this point */ + ztest_test_skip(); } /* From 0eb85b1de23f512bef971507f17d18769197a7a9 Mon Sep 17 00:00:00 2001 From: Declan Snyder Date: Tue, 1 Jul 2025 11:24:12 -0500 Subject: [PATCH 45/59] [nrf fromtree] tests: spi_loopback: Fix same_buf_cmd test The tests was written wrong. It was meant to test using same spi bufs for both rx and tx, as in tree many sensor and other spi device drivers use this paradigm. But the 2nd buf setup call was overwriting the first. Fix by not using the helper function for this case. And for the write back test, test using same spi_buf_set. Signed-off-by: Declan Snyder (cherry picked from commit f7853dfb161a849f466026c35f02f0a025413719) --- tests/drivers/spi/spi_loopback/src/spi.c | 33 ++++++++++++++---------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/tests/drivers/spi/spi_loopback/src/spi.c b/tests/drivers/spi/spi_loopback/src/spi.c index e3ad4043c16..bb8b9d283b2 100644 --- a/tests/drivers/spi/spi_loopback/src/spi.c +++ b/tests/drivers/spi/spi_loopback/src/spi.c @@ -599,18 +599,17 @@ ZTEST(spi_loopback, test_nop_nil_bufs) /* nothing really to check here, check is done in spi_loopback_transceive */ } -/* test using the same buffer for RX and TX will write same data back */ +/* test using the same buffer set for RX and TX will write same data back */ ZTEST(spi_loopback, test_spi_write_back) { struct spi_dt_spec *spec = loopback_specs[spec_idx]; - const struct spi_buf_set tx = spi_loopback_setup_xfer(rx_bufs_pool, 1, - buffer_rx, BUF_SIZE); - const struct spi_buf_set rx = spi_loopback_setup_xfer(rx_bufs_pool, 1, - buffer_rx, BUF_SIZE); + + struct spi_buf buf = {.buf = buffer_rx, .len = BUF_SIZE}; + struct spi_buf_set set = {.buffers = &buf, .count = 1}; memcpy(buffer_rx, tx_data, sizeof(tx_data)); - spi_loopback_transceive(spec, &tx, &rx); + spi_loopback_transceive(spec, &set, &set); spi_loopback_compare_bufs(tx_data, buffer_rx, BUF_SIZE, buffer_print_tx, buffer_print_rx); @@ -620,19 +619,25 @@ ZTEST(spi_loopback, test_spi_write_back) ZTEST(spi_loopback, test_spi_same_buf_cmd) { struct spi_dt_spec *spec = loopback_specs[spec_idx]; - const struct spi_buf_set tx = spi_loopback_setup_xfer(rx_bufs_pool, 2, - buffer_rx, 1, - NULL, BUF_SIZE - 1); - const struct spi_buf_set rx = spi_loopback_setup_xfer(rx_bufs_pool, 1, - NULL, BUF_SIZE - 1, - buffer_rx+(BUF_SIZE - 1), 1); - memcpy(buffer_rx, tx_data, sizeof(tx_data)); + struct spi_buf buf[2] = { + {.buf = buffer_rx, .len = 1}, + {.buf = buffer_rx+1, .len = BUF_SIZE - 1} + }; + + const struct spi_buf_set tx = {.buffers = buf, .count = 1}; + const struct spi_buf_set rx = {.buffers = buf, .count = 2}; + + memcpy(buffer_rx, tx_data, BUF_SIZE); spi_loopback_transceive(spec, &tx, &rx); - spi_loopback_compare_bufs(tx_data, buffer_rx, BUF_SIZE, + spi_loopback_compare_bufs(tx_data, buffer_rx, 1, buffer_print_tx, buffer_print_rx); + + char zeros[BUF_SIZE - 1] = {0}; + + zassert_ok(memcmp(buffer_rx+1, zeros, BUF_SIZE - 1)); } From 37f4a1feffce8b0bf7f52e6a85e1f51acfe2c555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 09:26:25 +0200 Subject: [PATCH 46/59] [nrf fromtree] tests: drivers: spi: spi_loopback: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Run test with 16MHz/32MHz bitrate using spi00 instance (spi2x instances support up to 16MHz/2). Signed-off-by: Sebastian Głąb (cherry picked from commit 31e8326e611aca31a9b8bb7a468f1361c9a106bb) --- .../boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf | 1 + .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 2 ++ ...f54lm20dk_nrf54lm20a_cpuapp_spi00.overlay} | 26 +++++++++++++------ tests/drivers/spi/spi_loopback/testcase.yaml | 15 ++++++----- 4 files changed, 29 insertions(+), 15 deletions(-) create mode 100644 tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf rename tests/drivers/spi/spi_loopback/boards/{nrf54l20pdk_nrf54l20_cpuapp.overlay => nrf54lm20dk_nrf54lm20a_cpuapp_spi00.overlay} (59%) diff --git a/tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf b/tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf new file mode 100644 index 00000000000..ad922ab8d26 --- /dev/null +++ b/tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf @@ -0,0 +1 @@ +CONFIG_SPI_IDEAL_TRANSFER_DURATION_SCALING=12 diff --git a/tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay index d6e037cdbdf..1dcb91c0f5b 100644 --- a/tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay +++ b/tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -34,11 +34,13 @@ pinctrl-names = "default", "sleep"; overrun-character = <0x00>; zephyr,pm-device-runtime-auto; + slow@0 { compatible = "test-spi-loopback-slow"; reg = <0>; spi-max-frequency = ; }; + dut_fast: fast@0 { compatible = "test-spi-loopback-fast"; reg = <0>; diff --git a/tests/drivers/spi/spi_loopback/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp_spi00.overlay similarity index 59% rename from tests/drivers/spi/spi_loopback/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay rename to tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp_spi00.overlay index 48840969d8e..2d1015eaf24 100644 --- a/tests/drivers/spi/spi_loopback/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ b/tests/drivers/spi/spi_loopback/boards/nrf54lm20dk_nrf54lm20a_cpuapp_spi00.overlay @@ -4,20 +4,28 @@ * SPDX-License-Identifier: Apache-2.0 */ +/* Test requires following loopback: + * P2.02 - P2.04 + */ + &pinctrl { spi00_default: spi00_default { group1 { - psels = , - , - ; + psels = ; + }; + + group2 { + psels = , + ; + nordic,drive-mode = ; }; }; spi00_sleep: spi00_sleep { group1 { - psels = , - , - ; + psels = , + , + ; low-power-enable; }; }; @@ -30,15 +38,17 @@ pinctrl-names = "default", "sleep"; overrun-character = <0x00>; zephyr,pm-device-runtime-auto; + slow@0 { compatible = "test-spi-loopback-slow"; reg = <0>; - spi-max-frequency = ; + spi-max-frequency = ; }; + dut_fast: fast@0 { compatible = "test-spi-loopback-fast"; reg = <0>; - spi-max-frequency = ; + spi-max-frequency = ; }; }; diff --git a/tests/drivers/spi/spi_loopback/testcase.yaml b/tests/drivers/spi/spi_loopback/testcase.yaml index e64aa8cdbf3..746cc03c81a 100644 --- a/tests/drivers/spi/spi_loopback/testcase.yaml +++ b/tests/drivers/spi/spi_loopback/testcase.yaml @@ -238,8 +238,6 @@ tests: extra_args: EXTRA_DTC_OVERLAY_FILE="boards/nrf_at_1mhz.overlay" platform_allow: - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp harness: console harness_config: fixture: spi_loopback @@ -250,23 +248,26 @@ tests: extra_args: EXTRA_DTC_OVERLAY_FILE="boards/nrf_at_8mhz.overlay" platform_allow: - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp drivers.spi.nrf54l_16mhz: extra_args: EXTRA_DTC_OVERLAY_FILE="boards/nrf_at_16mhz.overlay" platform_allow: - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp drivers.spi.nrf54l_32mhz: extra_args: EXTRA_DTC_OVERLAY_FILE="boards/nrf_at_32mhz.overlay" platform_allow: - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp + drivers.spi.nrf54lm20_16mhz_32mhz: + harness: ztest + harness_config: + fixture: spi_fast_loopback + extra_args: + - DTC_OVERLAY_FILE="boards/nrf54lm20dk_nrf54lm20a_cpuapp_spi00.overlay" + platform_allow: + - nrf54lm20dk/nrf54lm20a/cpuapp drivers.spi.ke1xz_flexio_spi.loopback: extra_args: DTC_OVERLAY_FILE="boards/frdm_ke1xz_flexio_spi.overlay" filter: CONFIG_DT_HAS_NXP_FLEXIO_ENABLED and From 3616701744fdf316fecfcaa2156eef43835ba1ae Mon Sep 17 00:00:00 2001 From: Jerzy Kasenberg Date: Mon, 10 Feb 2025 13:11:01 +0100 Subject: [PATCH 47/59] [nrf fromtree] tests: drivers: uart: async_api: Fix chain write This fixes the case where uart_tx() called from tx callback fill UART output fifo and immediately execute callback again. This can happen when hardware does not have interrupt for output FIFO empty and there is no non-blocking way to tell that transfer finished. For such case as soon as output FIFO is filled there is interrupt that informs that more data can be transmitted. For hardware with 32 byte fifo callback was seen to be executed recursively 3 times. That would not be a problem if chained_write_next_buf was set BEFORE next call uart_tx(). Additionally semaphore max value is increased to 2 to accommodate such case. Signed-off-by: Jerzy Kasenberg (cherry picked from commit fea8ee47dab30559eb486ae0d23dc711639ef786) --- tests/drivers/uart/uart_async_api/src/test_uart_async.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/drivers/uart/uart_async_api/src/test_uart_async.c b/tests/drivers/uart/uart_async_api/src/test_uart_async.c index e0861656643..4feec039001 100644 --- a/tests/drivers/uart/uart_async_api/src/test_uart_async.c +++ b/tests/drivers/uart/uart_async_api/src/test_uart_async.c @@ -17,7 +17,7 @@ #define NOCACHE_MEM 0 #endif /* CONFIG_NOCACHE_MEMORY */ -K_SEM_DEFINE(tx_done, 0, 1); +K_SEM_DEFINE(tx_done, 0, 2); K_SEM_DEFINE(tx_aborted, 0, 1); K_SEM_DEFINE(rx_rdy, 0, 1); K_SEM_DEFINE(rx_buf_coherency, 0, 255); @@ -833,8 +833,8 @@ static void test_chained_write_callback(const struct device *dev, switch (evt->type) { case UART_TX_DONE: if (chained_write_next_buf) { - uart_tx(dev, chained_write_tx_bufs[1], 10, 100 * USEC_PER_MSEC); chained_write_next_buf = false; + uart_tx(dev, chained_write_tx_bufs[1], 10, 100 * USEC_PER_MSEC); } tx_sent = 1; k_sem_give(&tx_done); From a9b912323a12d3b306b1d166e29265881b310f17 Mon Sep 17 00:00:00 2001 From: Khaoula Bidani Date: Mon, 16 Jun 2025 09:50:44 +0200 Subject: [PATCH 48/59] [nrf fromtree] tests: drivers: uart: async_api: add stm32u3 boards overlays Add UART test overlays for Nucleo U385RG-Q board. Remove non serial boot conf file since they are now unnecessary. Signed-off-by: Khaoula Bidani (cherry picked from commit 065900b11f55bceedf159dee3524a6a92f4d391a) --- .../uart_async_api/boards/nucleo_u385rg_q.overlay | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 tests/drivers/uart/uart_async_api/boards/nucleo_u385rg_q.overlay diff --git a/tests/drivers/uart/uart_async_api/boards/nucleo_u385rg_q.overlay b/tests/drivers/uart/uart_async_api/boards/nucleo_u385rg_q.overlay new file mode 100644 index 00000000000..87bd131e1ca --- /dev/null +++ b/tests/drivers/uart/uart_async_api/boards/nucleo_u385rg_q.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 STMicroelectronics + * + * SPDX-License-Identifier: Apache-2.0 + */ + +dut: &lpuart1 { + dmas = <&gpdma1 0 35 STM32_DMA_PERIPH_TX + &gpdma1 1 34 STM32_DMA_PERIPH_RX>; + dma-names = "tx", "rx"; +}; + +&gpdma1 { + status = "okay"; +}; From 6208673a99474bfc86c56ed9aa0e5f169e3f7bbd Mon Sep 17 00:00:00 2001 From: Khoa Nguyen Date: Wed, 2 Apr 2025 13:12:02 +0700 Subject: [PATCH 49/59] [nrf fromtree] tests: drivers: uart: Add support test uart_async for ek_ra8p1 Add support test uart_async_api for Renesas ek_ra8p1 Signed-off-by: Khoa Nguyen (cherry picked from commit e6f9cd35bffdc9ea9992e78e9bb96671837b9b6b) --- .../ek_ra8p1_r7ka8p1kflcac_cm85.overlay | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/drivers/uart/uart_async_api/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay diff --git a/tests/drivers/uart/uart_async_api/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay b/tests/drivers/uart/uart_async_api/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay new file mode 100644 index 00000000000..ac9bd7768dd --- /dev/null +++ b/tests/drivers/uart/uart_async_api/boards/ek_ra8p1_r7ka8p1kflcac_cm85.overlay @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + sci2_default: sci2_default { + group1 { + /* tx */ + psels = ; + drive-strength = "medium"; + }; + + group2 { + /* rx */ + psels = ; + }; + }; +}; + +&sci2 { + interrupts = <30 1>, <31 1>, <32 1>, <33 1>; + interrupt-names = "rxi", "txi", "tei", "eri"; + pinctrl-0 = <&sci2_default>; + pinctrl-names = "default"; + status = "okay"; + + dut: uart { + current-speed = <115200>; + status = "okay"; + }; +}; From 79406d89a2ff99877dbdccd0c7b11fa49e9afab7 Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Fri, 6 Jun 2025 11:44:20 +0200 Subject: [PATCH 50/59] [nrf fromtree] tests: drivers: uart_async_api: add tx buffer in nocache memory Since nucleo_f746zg has NOCACHE_MEM defined (related to test cases drivers.uart.async_api.nocache_mem and drivers.uart.async_api.nocache_mem_dt.nucleo_f746zg), the TX buffer should be placed in a non-cacheable memory region for the uart_async_var_buf_length testsuite to pass. Signed-off-by: Fabrice DJIATSA (cherry picked from commit 28c766b95705452b2f94e45e4ad87df03109b123) --- tests/drivers/uart/uart_async_api/src/test_uart_async.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/drivers/uart/uart_async_api/src/test_uart_async.c b/tests/drivers/uart/uart_async_api/src/test_uart_async.c index 4feec039001..936600c96fc 100644 --- a/tests/drivers/uart/uart_async_api/src/test_uart_async.c +++ b/tests/drivers/uart/uart_async_api/src/test_uart_async.c @@ -1068,7 +1068,12 @@ static void *var_buf_length_setup(void) static void test_uart_async_var_buf(size_t buf_len, size_t tx_len) { int ret; - uint8_t tx_buffer[VAR_LENGTH_TX_BUF_SIZE]; + +#if NOCACHE_MEM +static __aligned(sizeof(void *)) uint8_t tx_buffer[VAR_LENGTH_TX_BUF_SIZE] __used __NOCACHE; +#else +static ZTEST_BMEM uint8_t tx_buffer[VAR_LENGTH_TX_BUF_SIZE]; +#endif /* NOCACHE_MEM */ for (size_t i = 0; i < VAR_LENGTH_TX_BUF_SIZE; ++i) { tx_buffer[i] = tx_len; From 5c5026a9b76254ed518c9af831b52db1649abfcd Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Fri, 20 Jun 2025 09:36:35 +0200 Subject: [PATCH 51/59] [nrf fromtree] tests: drivers: uart: async_api: update wba55cg clock frequency With the current configuration, we encounter a user setting error during the test with the log: "Wrong number of bytes received, got: 2, expected: 3." Workaround: Increase the clock frequency to enable faster data transmission and avoid user setting errors. Signed-off-by: Fabrice DJIATSA (cherry picked from commit 7900f8d4ee7b318c0813c9a5629d000cdae7b06c) --- .../uart/uart_async_api/boards/nucleo_wba55cg.overlay | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/drivers/uart/uart_async_api/boards/nucleo_wba55cg.overlay b/tests/drivers/uart/uart_async_api/boards/nucleo_wba55cg.overlay index 9fc34bb26a2..df1b3856c1a 100644 --- a/tests/drivers/uart/uart_async_api/boards/nucleo_wba55cg.overlay +++ b/tests/drivers/uart/uart_async_api/boards/nucleo_wba55cg.overlay @@ -4,6 +4,11 @@ * SPDX-License-Identifier: Apache-2.0 */ +&rcc { + clocks = <&clk_hsi>; + clock-frequency = ; +}; + dut: &lpuart1 { dmas = <&gpdma1 0 16 STM32_DMA_PERIPH_TX &gpdma1 1 15 STM32_DMA_PERIPH_RX>; From 2203b9631c43b0f5c2f2b8ec1b9bf17a31faf988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 09:34:41 +0200 Subject: [PATCH 52/59] [nrf fromtree] tests: drivers: uart: uart_async_api: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Add test on fast instance uart00 on nrf54lm20dk. Signed-off-by: Sebastian Głąb (cherry picked from commit e5a9c35a994449cd01438ac0754073d395440f3c) --- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 26 ------------ .../boards/nrf54lm20dk_nrf54lm20_common.dtsi | 6 +++ .../boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf | 1 + ...f54lm20dk_nrf54lm20a_cpuapp_uart00.overlay | 42 +++++++++++++++++++ .../drivers/uart/uart_async_api/testcase.yaml | 8 ++++ 5 files changed, 57 insertions(+), 26 deletions(-) delete mode 100644 tests/drivers/uart/uart_async_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay create mode 100644 tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf create mode 100644 tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp_uart00.overlay diff --git a/tests/drivers/uart/uart_async_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/uart/uart_async_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index ed4a2de1891..00000000000 --- a/tests/drivers/uart/uart_async_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,26 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ - -&pinctrl { - uart21_default_alt: uart21_default_alt { - group1 { - psels = , - ; - }; - }; - - uart21_sleep_alt: uart21_sleep_alt { - group1 { - psels = , - ; - low-power-enable; - }; - }; -}; - -dut: &uart21 { - status = "okay"; - pinctrl-0 = <&uart21_default_alt>; - pinctrl-1 = <&uart21_sleep_alt>; - pinctrl-names = "default", "sleep"; - current-speed = <115200>; -}; diff --git a/tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20_common.dtsi b/tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20_common.dtsi index ec39ed93ecf..8a8a0363b65 100644 --- a/tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20_common.dtsi +++ b/tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20_common.dtsi @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: Apache-2.0 + */ + /* Test requires following loopback: * P1.13 - P1.14 */ diff --git a/tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf b/tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf new file mode 100644 index 00000000000..d70069646c9 --- /dev/null +++ b/tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf @@ -0,0 +1 @@ +CONFIG_VAR_LENGTH_BUFFER_TEST_BUADRATE_LIMIT=57600 diff --git a/tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp_uart00.overlay b/tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp_uart00.overlay new file mode 100644 index 00000000000..5f129663e55 --- /dev/null +++ b/tests/drivers/uart/uart_async_api/boards/nrf54lm20dk_nrf54lm20a_cpuapp_uart00.overlay @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/* Test requires following loopback: + * P2.02 - P2.00 + */ + +&pinctrl { + uart00_default_alt: uart00_default_alt { + group1 { + psels = ; + }; + + group2 { + psels = ; + bias-pull-up; + }; + }; + + uart00_sleep_alt: uart00_sleep_alt { + group1 { + psels = , + ; + low-power-enable; + }; + }; +}; + +dut: &uart00 { + status = "okay"; + pinctrl-0 = <&uart00_default_alt>; + pinctrl-1 = <&uart00_sleep_alt>; + pinctrl-names = "default", "sleep"; + current-speed = <4000000>; +}; + +&gpio2 { + status = "okay"; +}; diff --git a/tests/drivers/uart/uart_async_api/testcase.yaml b/tests/drivers/uart/uart_async_api/testcase.yaml index efcf3af9453..3e6c28ddd39 100644 --- a/tests/drivers/uart/uart_async_api/testcase.yaml +++ b/tests/drivers/uart/uart_async_api/testcase.yaml @@ -18,6 +18,14 @@ tests: - platform:mimxrt685_evk/mimxrt685s/cm33:"DTC_OVERLAY_FILE=nxp/dut_flexcomm4.overlay" - platform:mimxrt595_evk/mimxrt595s/cm33:"DTC_OVERLAY_FILE=nxp/dut_flexcomm12.overlay" - platform:frdm_rw612/rw612:"DTC_OVERLAY_FILE=nxp/dut_lpc_flexcomm0.overlay" + drivers.uart.async_api.fast: + harness: ztest + harness_config: + fixture: uart_fast_loopback + platform_allow: + - nrf54lm20dk/nrf54lm20a/cpuapp + extra_args: + - DTC_OVERLAY_FILE="boards/nrf54lm20dk_nrf54lm20a_cpuapp_uart00.overlay" drivers.uart.wide: filter: CONFIG_SERIAL_SUPPORT_ASYNC and not CONFIG_UART_MCUX_LPUART harness: ztest From e6a60c83f9449677d7ef2fb458c199145f833262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 09:36:53 +0200 Subject: [PATCH 53/59] [nrf fromtree] tests: drivers: uart: uart_elementary: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Reorganize testcase.yaml to make it easier to maintain. Signed-off-by: Sebastian Głąb (cherry picked from commit 207c662e11784671143d62818565170a3e950405) --- ...54l15dk_nrf54l15_cpuflpr_dual_uart.overlay | 51 -------------- ... => nrf54l15dk_nrf54l15_dual_uart.overlay} | 0 .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 31 -------- .../nrf54l20pdk_nrf54l20_cpuflpr.overlay | 31 -------- .../boards/nrf54lm20dk_nrf54lm20_common.dtsi | 7 ++ .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 2 + .../nrf54lm20dk_nrf54lm20a_cpuflpr.overlay | 2 + .../nrf54lm20dk_nrf54lm20a_dual_uart.overlay | 7 ++ .../uart/uart_elementary/testcase.yaml | 70 +++++++------------ 9 files changed, 45 insertions(+), 156 deletions(-) delete mode 100644 tests/drivers/uart/uart_elementary/boards/nrf54l15dk_nrf54l15_cpuflpr_dual_uart.overlay rename tests/drivers/uart/uart_elementary/boards/{nrf54l15dk_nrf54l15_cpuapp_dual_uart.overlay => nrf54l15dk_nrf54l15_dual_uart.overlay} (100%) delete mode 100644 tests/drivers/uart/uart_elementary/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay delete mode 100644 tests/drivers/uart/uart_elementary/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay diff --git a/tests/drivers/uart/uart_elementary/boards/nrf54l15dk_nrf54l15_cpuflpr_dual_uart.overlay b/tests/drivers/uart/uart_elementary/boards/nrf54l15dk_nrf54l15_cpuflpr_dual_uart.overlay deleted file mode 100644 index 2031f7a2444..00000000000 --- a/tests/drivers/uart/uart_elementary/boards/nrf54l15dk_nrf54l15_cpuflpr_dual_uart.overlay +++ /dev/null @@ -1,51 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ - -&pinctrl { - uart21_default: uart21_default { - group1 { - psels = , - ; - bias-pull-up; - }; - }; - - uart21_sleep: uart21_sleep { - group1 { - psels = , - ; - low-power-enable; - }; - }; - - uart22_default: uart22_default { - group1 { - psels = , - ; - bias-pull-up; - }; - }; - - uart22_sleep: uart22_sleep { - group1 { - psels = , - ; - low-power-enable; - }; - }; -}; - -dut: &uart21 { - status = "okay"; - current-speed = <115200>; - pinctrl-0 = <&uart21_default>; - pinctrl-1 = <&uart21_sleep>; - pinctrl-names = "default", "sleep"; -}; - -dut_aux: &uart22 { - status = "okay"; - current-speed = <115200>; - pinctrl-0 = <&uart22_default>; - pinctrl-1 = <&uart22_sleep>; - pinctrl-names = "default", "sleep"; -}; diff --git a/tests/drivers/uart/uart_elementary/boards/nrf54l15dk_nrf54l15_cpuapp_dual_uart.overlay b/tests/drivers/uart/uart_elementary/boards/nrf54l15dk_nrf54l15_dual_uart.overlay similarity index 100% rename from tests/drivers/uart/uart_elementary/boards/nrf54l15dk_nrf54l15_cpuapp_dual_uart.overlay rename to tests/drivers/uart/uart_elementary/boards/nrf54l15dk_nrf54l15_dual_uart.overlay diff --git a/tests/drivers/uart/uart_elementary/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/uart/uart_elementary/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index cf481b7a161..00000000000 --- a/tests/drivers/uart/uart_elementary/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,31 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ - -&pinctrl { - uart21_default: uart21_default { - group1 { - psels = , - , - , - ; - }; - }; - - uart21_sleep: uart21_sleep { - group1 { - psels = , - , - , - ; - low-power-enable; - }; - }; -}; - -dut: &uart21 { - status = "okay"; - current-speed = <115200>; - pinctrl-0 = <&uart21_default>; - pinctrl-1 = <&uart21_sleep>; - pinctrl-names = "default", "sleep"; - hw-flow-control; -}; diff --git a/tests/drivers/uart/uart_elementary/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay b/tests/drivers/uart/uart_elementary/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay deleted file mode 100644 index cf481b7a161..00000000000 --- a/tests/drivers/uart/uart_elementary/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay +++ /dev/null @@ -1,31 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ - -&pinctrl { - uart21_default: uart21_default { - group1 { - psels = , - , - , - ; - }; - }; - - uart21_sleep: uart21_sleep { - group1 { - psels = , - , - , - ; - low-power-enable; - }; - }; -}; - -dut: &uart21 { - status = "okay"; - current-speed = <115200>; - pinctrl-0 = <&uart21_default>; - pinctrl-1 = <&uart21_sleep>; - pinctrl-names = "default", "sleep"; - hw-flow-control; -}; diff --git a/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20_common.dtsi b/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20_common.dtsi index dd9f0b93be0..33d060d30ce 100644 --- a/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20_common.dtsi +++ b/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20_common.dtsi @@ -1,3 +1,10 @@ +/* SPDX-License-Identifier: Apache-2.0 */ + +/* Test requires loopbacks: + * P1.13 - P1.14 + * P1.23 - P1.24 + */ + &pinctrl { uart21_default: uart21_default { group1 { diff --git a/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay index 5210e41ef55..03676317e38 100644 --- a/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay +++ b/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -1 +1,3 @@ +/* SPDX-License-Identifier: Apache-2.0 */ + #include "nrf54lm20dk_nrf54lm20_common.dtsi" diff --git a/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_cpuflpr.overlay b/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_cpuflpr.overlay index 5210e41ef55..03676317e38 100644 --- a/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_cpuflpr.overlay +++ b/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_cpuflpr.overlay @@ -1 +1,3 @@ +/* SPDX-License-Identifier: Apache-2.0 */ + #include "nrf54lm20dk_nrf54lm20_common.dtsi" diff --git a/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_dual_uart.overlay b/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_dual_uart.overlay index 0dcede29d92..72e7e968d0b 100644 --- a/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_dual_uart.overlay +++ b/tests/drivers/uart/uart_elementary/boards/nrf54lm20dk_nrf54lm20a_dual_uart.overlay @@ -1,3 +1,10 @@ +/* SPDX-License-Identifier: Apache-2.0 */ + +/* Test requires loopbacks: + * P1.13 - P1.14 + * P1.23 - P1.24 + */ + &pinctrl { uart21_default: uart21_default { group1 { diff --git a/tests/drivers/uart/uart_elementary/testcase.yaml b/tests/drivers/uart/uart_elementary/testcase.yaml index 83aba78e828..de3d18a50ee 100644 --- a/tests/drivers/uart/uart_elementary/testcase.yaml +++ b/tests/drivers/uart/uart_elementary/testcase.yaml @@ -15,9 +15,7 @@ tests: - nrf54l09pdk/nrf54l09/cpuflpr - nrf54l15dk/nrf54l15/cpuapp - nrf54l15dk/nrf54l15/cpuflpr - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - - nrf54l20pdk/nrf54l20/cpuflpr - nrf54lm20dk/nrf54lm20a/cpuflpr - nrf5340dk/nrf5340/cpuapp - ophelia4ev/nrf54l15/cpuapp @@ -57,59 +55,45 @@ tests: drivers.uart.uart_elementary_dual_nrf54l: filter: CONFIG_SERIAL_SUPPORT_INTERRUPT platform_allow: + - nrf54l09pdk/nrf54l09/cpuapp + - nrf54l09pdk/nrf54l09/cpuflpr - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp + - nrf54l15dk/nrf54l15/cpuflpr - nrf54lm20dk/nrf54lm20a/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuflpr - ophelia4ev/nrf54l15/cpuapp - extra_args: DTC_OVERLAY_FILE="boards/nrf54l15dk_nrf54l15_cpuapp_dual_uart.overlay" + - ophelia4ev/nrf54l15/cpuflpr + extra_args: + - platform:nrf54l09pdk/nrf54l09/cpuapp:"DTC_OVERLAY_FILE=boards/nrf54l09pdk_nrf54l09_dual_uart.overlay" + - platform:nrf54l09pdk/nrf54l09/cpuflpr:"DTC_OVERLAY_FILE=boards/nrf54l09pdk_nrf54l09_dual_uart.overlay" + - platform:nrf54l15dk/nrf54l15/cpuapp:"DTC_OVERLAY_FILE=boards/nrf54l15dk_nrf54l15_dual_uart.overlay" + - platform:nrf54l15dk/nrf54l15/cpuflpr:"DTC_OVERLAY_FILE=boards/nrf54l15dk_nrf54l15_dual_uart.overlay" + - platform:nrf54lm20dk/nrf54lm20a/cpuapp:"DTC_OVERLAY_FILE=boards/nrf54lm20dk_nrf54lm20a_dual_uart.overlay" + - platform:nrf54lm20dk/nrf54lm20a/cpuflpr:"DTC_OVERLAY_FILE=boards/nrf54lm20dk_nrf54lm20a_dual_uart.overlay" + - platform:ophelia4ev/nrf54l15/cpuapp:"DTC_OVERLAY_FILE=boards/nrf54l15dk_nrf54l15_dual_uart.overlay" + - platform:ophelia4ev/nrf54l15/cpuflpr:"DTC_OVERLAY_FILE=boards/nrf54l15dk_nrf54l15_dual_uart.overlay" extra_configs: - CONFIG_DUAL_UART_TEST=y drivers.uart.uart_elementary_dual_setup_mismatch_nrf54l: filter: CONFIG_SERIAL_SUPPORT_INTERRUPT platform_allow: + - nrf54l09pdk/nrf54l09/cpuapp + - nrf54l09pdk/nrf54l09/cpuflpr - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - - ophelia4ev/nrf54l15/cpuapp - extra_args: DTC_OVERLAY_FILE="boards/nrf54l15dk_nrf54l15_cpuapp_dual_uart.overlay" - extra_configs: - - CONFIG_DUAL_UART_TEST=y - - CONFIG_SETUP_MISMATCH_TEST=y - drivers.uart.uart_elementary_dual_nrf54l_cpuflpr: - filter: CONFIG_SERIAL_SUPPORT_INTERRUPT - platform_allow: - - nrf54l15dk/nrf54l15/cpuflpr - - nrf54l20pdk/nrf54l20/cpuflpr - - nrf54lm20dk/nrf54lm20a/cpuflpr - - ophelia4ev/nrf54l15/cpuflpr - extra_args: DTC_OVERLAY_FILE="boards/nrf54l15dk_nrf54l15_cpuflpr_dual_uart.overlay" - extra_configs: - - CONFIG_DUAL_UART_TEST=y - drivers.uart.uart_elementary_dual_setup_mismatch_nrf54l_cpuflpr: - filter: CONFIG_SERIAL_SUPPORT_INTERRUPT - platform_allow: - nrf54l15dk/nrf54l15/cpuflpr - - nrf54l20pdk/nrf54l20/cpuflpr + - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54lm20dk/nrf54lm20a/cpuflpr + - ophelia4ev/nrf54l15/cpuapp - ophelia4ev/nrf54l15/cpuflpr - extra_args: DTC_OVERLAY_FILE="boards/nrf54l15dk_nrf54l15_cpuflpr_dual_uart.overlay" - extra_configs: - - CONFIG_DUAL_UART_TEST=y - - CONFIG_SETUP_MISMATCH_TEST=y - drivers.uart.uart_elementary_dual_nrf54l09: - filter: CONFIG_SERIAL_SUPPORT_INTERRUPT - platform_allow: - - nrf54l09pdk/nrf54l09/cpuapp - - nrf54l09pdk/nrf54l09/cpuflpr - extra_args: DTC_OVERLAY_FILE="boards/nrf54l09pdk_nrf54l09_dual_uart.overlay" - extra_configs: - - CONFIG_DUAL_UART_TEST=y - drivers.uart.uart_elementary_dual_setup_mismatch_nrf54l09: - filter: CONFIG_SERIAL_SUPPORT_INTERRUPT - platform_allow: - - nrf54l09pdk/nrf54l09/cpuapp - - nrf54l09pdk/nrf54l09/cpuflpr - extra_args: DTC_OVERLAY_FILE="boards/nrf54l09pdk_nrf54l09_dual_uart.overlay" + extra_args: + - platform:nrf54l09pdk/nrf54l09/cpuapp:"DTC_OVERLAY_FILE=boards/nrf54l09pdk_nrf54l09_dual_uart.overlay" + - platform:nrf54l09pdk/nrf54l09/cpuflpr:"DTC_OVERLAY_FILE=boards/nrf54l09pdk_nrf54l09_dual_uart.overlay" + - platform:nrf54l15dk/nrf54l15/cpuapp:"DTC_OVERLAY_FILE=boards/nrf54l15dk_nrf54l15_dual_uart.overlay" + - platform:nrf54l15dk/nrf54l15/cpuflpr:"DTC_OVERLAY_FILE=boards/nrf54l15dk_nrf54l15_dual_uart.overlay" + - platform:nrf54lm20dk/nrf54lm20a/cpuapp:"DTC_OVERLAY_FILE=boards/nrf54lm20dk_nrf54lm20a_dual_uart.overlay" + - platform:nrf54lm20dk/nrf54lm20a/cpuflpr:"DTC_OVERLAY_FILE=boards/nrf54lm20dk_nrf54lm20a_dual_uart.overlay" + - platform:ophelia4ev/nrf54l15/cpuapp:"DTC_OVERLAY_FILE=boards/nrf54l15dk_nrf54l15_dual_uart.overlay" + - platform:ophelia4ev/nrf54l15/cpuflpr:"DTC_OVERLAY_FILE=boards/nrf54l15dk_nrf54l15_dual_uart.overlay" extra_configs: - CONFIG_DUAL_UART_TEST=y - CONFIG_SETUP_MISMATCH_TEST=y From 30ddb1794710f5e22cea2e71b274b67a4d40c65a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 09:38:00 +0200 Subject: [PATCH 54/59] [nrf fromtree] tests: drivers: uart: uart_errors: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit d05c971350c9bfa1024d9be1fb747a9fb6257ccb) --- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 54 ------------------- tests/drivers/uart/uart_errors/testcase.yaml | 3 +- 2 files changed, 1 insertion(+), 56 deletions(-) delete mode 100644 tests/drivers/uart/uart_errors/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/uart/uart_errors/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/uart/uart_errors/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index babbc740133..00000000000 --- a/tests/drivers/uart/uart_errors/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,54 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ - -&pinctrl { - uart21_default: uart21_default { - group1 { - psels = , - ; - }; - }; - - uart21_sleep: uart21_sleep { - group1 { - psels = , - ; - low-power-enable; - }; - }; - - uart22_default: uart22_default { - group1 { - psels = - ; - bias-pull-up; - }; - group2 { - psels = ; - }; - }; - - uart22_sleep: uart22_sleep { - group1 { - psels = , - ; - low-power-enable; - }; - }; -}; - -dut: &uart21 { - status = "okay"; - current-speed = <115200>; - pinctrl-0 = <&uart21_default>; - pinctrl-1 = <&uart21_sleep>; - pinctrl-names = "default", "sleep"; -}; - -dut_aux: &uart22 { - status = "okay"; - current-speed = <115200>; - pinctrl-0 = <&uart22_default>; - pinctrl-1 = <&uart22_sleep>; - pinctrl-names = "default", "sleep"; - disable-rx; -}; diff --git a/tests/drivers/uart/uart_errors/testcase.yaml b/tests/drivers/uart/uart_errors/testcase.yaml index 522935adcca..c17f071b853 100644 --- a/tests/drivers/uart/uart_errors/testcase.yaml +++ b/tests/drivers/uart/uart_errors/testcase.yaml @@ -6,13 +6,13 @@ common: harness: ztest harness_config: fixture: gpio_loopback + timeout: 30 tests: drivers.uart.uart_errors.int_driven: filter: CONFIG_SERIAL_SUPPORT_INTERRUPT platform_allow: - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - nrf5340dk/nrf5340/cpuapp - ophelia4ev/nrf54l15/cpuapp @@ -21,7 +21,6 @@ tests: platform_allow: - nrf54h20dk/nrf54h20/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - nrf5340dk/nrf5340/cpuapp - ophelia4ev/nrf54l15/cpuapp From 68463bf9ee0e0925d24d94059da1002401bcda20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 09:43:58 +0200 Subject: [PATCH 55/59] [nrf fromtree] tests: drivers: watchodg: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit a918256659084ee6fbd3178989e6b982c990a45d) --- .../boards/nrf54l20pdk_nrf54l20_cpuapp.overlay | 9 --------- .../boards/nrf54l20pdk_nrf54l20_cpuapp.overlay | 9 --------- tests/drivers/watchdog/wdt_error_cases/testcase.yaml | 5 ++--- .../boards/nrf54l20pdk_nrf54l20_cpuapp.overlay | 9 --------- .../boards/nrf54lm20dk_nrf54lm20a_cpuflpr.overlay} | 0 tests/drivers/watchdog/wdt_variables/testcase.yaml | 2 +- 6 files changed, 3 insertions(+), 31 deletions(-) delete mode 100644 tests/drivers/watchdog/wdt_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay delete mode 100644 tests/drivers/watchdog/wdt_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay delete mode 100644 tests/drivers/watchdog/wdt_variables/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay rename tests/drivers/watchdog/{wdt_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay => wdt_variables/boards/nrf54lm20dk_nrf54lm20a_cpuflpr.overlay} (100%) diff --git a/tests/drivers/watchdog/wdt_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/watchdog/wdt_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index 8d3dce3b380..00000000000 --- a/tests/drivers/watchdog/wdt_basic_api/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2024 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -&wdt31 { - status = "okay"; -}; diff --git a/tests/drivers/watchdog/wdt_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/watchdog/wdt_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index 8d3dce3b380..00000000000 --- a/tests/drivers/watchdog/wdt_error_cases/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2024 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -&wdt31 { - status = "okay"; -}; diff --git a/tests/drivers/watchdog/wdt_error_cases/testcase.yaml b/tests/drivers/watchdog/wdt_error_cases/testcase.yaml index 951afe9034e..f8da32ca72d 100644 --- a/tests/drivers/watchdog/wdt_error_cases/testcase.yaml +++ b/tests/drivers/watchdog/wdt_error_cases/testcase.yaml @@ -10,11 +10,10 @@ tests: platform_allow: - nrf5340dk/nrf5340/cpuapp - nrf54l09pdk/nrf54l09/cpuapp - - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54h20dk/nrf54h20/cpuapp - nrf54h20dk/nrf54h20/cpurad + - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - nrf9280pdk/nrf9280/cpuapp - nrf9280pdk/nrf9280/cpurad - ophelia4ev/nrf54l15/cpuapp diff --git a/tests/drivers/watchdog/wdt_variables/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/watchdog/wdt_variables/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index dc1ea1a9ddc..00000000000 --- a/tests/drivers/watchdog/wdt_variables/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -&wdt31 { - status = "okay"; -}; diff --git a/tests/drivers/watchdog/wdt_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay b/tests/drivers/watchdog/wdt_variables/boards/nrf54lm20dk_nrf54lm20a_cpuflpr.overlay similarity index 100% rename from tests/drivers/watchdog/wdt_basic_api/boards/nrf54l20pdk_nrf54l20_cpuflpr.overlay rename to tests/drivers/watchdog/wdt_variables/boards/nrf54lm20dk_nrf54lm20a_cpuflpr.overlay diff --git a/tests/drivers/watchdog/wdt_variables/testcase.yaml b/tests/drivers/watchdog/wdt_variables/testcase.yaml index d033e4f255e..b504cb5b6b8 100644 --- a/tests/drivers/watchdog/wdt_variables/testcase.yaml +++ b/tests/drivers/watchdog/wdt_variables/testcase.yaml @@ -16,8 +16,8 @@ tests: - nrf54h20dk/nrf54h20/cpuppr - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuflpr - ophelia4ev/nrf54l15/cpuapp integration_platforms: - nrf54l15dk/nrf54l15/cpuapp From 817751f8d308557b86f11eec8199e2b3735eebf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 09:44:57 +0200 Subject: [PATCH 56/59] [nrf fromtree] tests: kernel: timer: timer_behavior: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit 1cf511edd9004505f5bba07e4cf88490a2a39acc) --- .../timer/timer_behavior/boards/nrf54l20pdk_nrf54l20_cpuapp.conf | 1 - 1 file changed, 1 deletion(-) delete mode 100644 tests/kernel/timer/timer_behavior/boards/nrf54l20pdk_nrf54l20_cpuapp.conf diff --git a/tests/kernel/timer/timer_behavior/boards/nrf54l20pdk_nrf54l20_cpuapp.conf b/tests/kernel/timer/timer_behavior/boards/nrf54l20pdk_nrf54l20_cpuapp.conf deleted file mode 100644 index 4b13bc80c7f..00000000000 --- a/tests/kernel/timer/timer_behavior/boards/nrf54l20pdk_nrf54l20_cpuapp.conf +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SYS_CLOCK_TICKS_PER_SEC=10000 From 821b15a2ba3ecca206005abee40839f022ff3b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 09:46:03 +0200 Subject: [PATCH 57/59] [nrf fromtree] tests: subsys: fs: fcb: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit c537fa765eb784ddd3d14fd8835b34bfd4df2743) --- tests/subsys/fs/fcb/testcase.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/subsys/fs/fcb/testcase.yaml b/tests/subsys/fs/fcb/testcase.yaml index bd5067eccce..c915dd56840 100644 --- a/tests/subsys/fs/fcb/testcase.yaml +++ b/tests/subsys/fs/fcb/testcase.yaml @@ -14,7 +14,6 @@ tests: platform_allow: - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp - native_sim From a759a02c98dfc47cddc5673004b38ec15ac31bd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 10:44:48 +0200 Subject: [PATCH 58/59] Revert "[nrf fromlist] tests: driver: clock_control_api: longer startup time" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 79eff4e1f1281c5fae8f8fec534fd74edef1c451. Signed-off-by: Sebastian Głąb --- .../clock_control_api/boards/nrf54l09pdk_nrf54l09_cpuapp.conf | 2 +- .../clock_control_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/drivers/clock_control/clock_control_api/boards/nrf54l09pdk_nrf54l09_cpuapp.conf b/tests/drivers/clock_control/clock_control_api/boards/nrf54l09pdk_nrf54l09_cpuapp.conf index 377287fb194..11d42321cbc 100644 --- a/tests/drivers/clock_control/clock_control_api/boards/nrf54l09pdk_nrf54l09_cpuapp.conf +++ b/tests/drivers/clock_control/clock_control_api/boards/nrf54l09pdk_nrf54l09_cpuapp.conf @@ -1 +1 @@ -CONFIG_TEST_NRF_HF_STARTUP_TIME_US=2000 +CONFIG_TEST_NRF_HF_STARTUP_TIME_US=1000 diff --git a/tests/drivers/clock_control/clock_control_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf b/tests/drivers/clock_control/clock_control_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf index 377287fb194..11d42321cbc 100644 --- a/tests/drivers/clock_control/clock_control_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf +++ b/tests/drivers/clock_control/clock_control_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf @@ -1 +1 @@ -CONFIG_TEST_NRF_HF_STARTUP_TIME_US=2000 +CONFIG_TEST_NRF_HF_STARTUP_TIME_US=1000 From 9703de6efb89db1cac8d3fecea016ea77e2346a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Wed, 9 Jul 2025 09:04:29 +0200 Subject: [PATCH 59/59] [nrf fromtree] tests: drivers: clock_control: Cleanup after nRF54LM20 rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated test configuration after nrf54l20pdk/nrf54l20/cpuxxx was renamed to nrf54lm20dk/nrf54lm20a/cpuxxx. Signed-off-by: Sebastian Głąb (cherry picked from commit ebdbc243d4efa84099402a9847c1455b2a784451) --- .../boards/nrf54l20pdk_nrf54l20_cpuapp.conf | 1 - .../clock_control/clock_control_api/testcase.yaml | 2 -- .../clock_control/nrf_clock_calibration/testcase.yaml | 2 +- .../clock_control/nrf_lf_clock_start/testcase.yaml | 9 +-------- tests/drivers/clock_control/onoff/testcase.yaml | 2 +- 5 files changed, 3 insertions(+), 13 deletions(-) delete mode 100644 tests/drivers/clock_control/clock_control_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf diff --git a/tests/drivers/clock_control/clock_control_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf b/tests/drivers/clock_control/clock_control_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf deleted file mode 100644 index 11d42321cbc..00000000000 --- a/tests/drivers/clock_control/clock_control_api/boards/nrf54l20pdk_nrf54l20_cpuapp.conf +++ /dev/null @@ -1 +0,0 @@ -CONFIG_TEST_NRF_HF_STARTUP_TIME_US=1000 diff --git a/tests/drivers/clock_control/clock_control_api/testcase.yaml b/tests/drivers/clock_control/clock_control_api/testcase.yaml index 98f8920e162..4a192e5e3a7 100644 --- a/tests/drivers/clock_control/clock_control_api/testcase.yaml +++ b/tests/drivers/clock_control/clock_control_api/testcase.yaml @@ -23,7 +23,6 @@ tests: - nrf9160dk/nrf9160 - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: @@ -35,7 +34,6 @@ tests: - nrf52840dk/nrf52840 - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: diff --git a/tests/drivers/clock_control/nrf_clock_calibration/testcase.yaml b/tests/drivers/clock_control/nrf_clock_calibration/testcase.yaml index 3cdc785cbc7..4600202f0f1 100644 --- a/tests/drivers/clock_control/nrf_clock_calibration/testcase.yaml +++ b/tests/drivers/clock_control/nrf_clock_calibration/testcase.yaml @@ -1,5 +1,6 @@ tests: drivers.clock.nrf5_clock_calibration: + timeout: 30 tags: - drivers - clock_control @@ -9,7 +10,6 @@ tests: - nrf52840dk/nrf52840 - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: diff --git a/tests/drivers/clock_control/nrf_lf_clock_start/testcase.yaml b/tests/drivers/clock_control/nrf_lf_clock_start/testcase.yaml index 94cc046d696..2a4bba57a71 100644 --- a/tests/drivers/clock_control/nrf_lf_clock_start/testcase.yaml +++ b/tests/drivers/clock_control/nrf_lf_clock_start/testcase.yaml @@ -4,6 +4,7 @@ common: - clock_control integration_platforms: - nrf51dk/nrf51822 + timeout: 30 tests: drivers.clock.nrf_lf_clock_start_xtal_stable: platform_allow: @@ -15,7 +16,6 @@ tests: - nrf5340dk/nrf5340/cpunet - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp extra_configs: @@ -34,7 +34,6 @@ tests: - nrf5340dk/nrf5340/cpunet - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp extra_configs: @@ -68,7 +67,6 @@ tests: - nrf5340dk/nrf5340/cpunet - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: @@ -86,7 +84,6 @@ tests: - nrf5340dk/nrf5340/cpunet - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: @@ -104,7 +101,6 @@ tests: - nrf5340dk/nrf5340/cpunet - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: @@ -122,7 +118,6 @@ tests: - nrf5340dk/nrf5340/cpunet - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: @@ -140,7 +135,6 @@ tests: - nrf5340dk/nrf5340/cpunet - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: @@ -158,7 +152,6 @@ tests: - nrf5340dk/nrf5340/cpunet - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp integration_platforms: diff --git a/tests/drivers/clock_control/onoff/testcase.yaml b/tests/drivers/clock_control/onoff/testcase.yaml index 51c263dad29..c26eeca5e3d 100644 --- a/tests/drivers/clock_control/onoff/testcase.yaml +++ b/tests/drivers/clock_control/onoff/testcase.yaml @@ -9,9 +9,9 @@ tests: - nrf52840dk/nrf52840 - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - nrf9160dk/nrf9160 - ophelia4ev/nrf54l15/cpuapp integration_platforms: - nrf51dk/nrf51822 + timeout: 30