From 89c917a78318e2e0522f45210ed4ef748a0b6d91 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 e951b7d4bcd5f2193048f980e9dd0e7273ee316c 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 76122a4c23408c2c276536e3b2195262bd28f0d5 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 110e62f7751c59cd42cb7488ea1639e522d9592c 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 94dc8747c822449200fb92e27e1b9a5d218df3d6 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 7d9f6a1f23b3b94bcddeee0fc1c701cbd3b7d197 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 a6b5e941cbf40410d659999f858e5d60c1333459 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 103755795e7f3b2b04faa569769fd36983173a96 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 3d1a51ee2bd271650b3f747aba333eb0b173c478 Mon Sep 17 00:00:00 2001 From: Yunshao Chiang Date: Thu, 23 Jan 2025 15:29:53 +0800 Subject: [PATCH 09/62] [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 9fdf8e776ea7c34f1786a881e4209f70bbffb3e2 Mon Sep 17 00:00:00 2001 From: Khoa Nguyen Date: Mon, 2 Jun 2025 11:24:59 +0700 Subject: [PATCH 10/62] [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 21c1c637c9cb0b65e370cbc078b26f146f67265f 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 5c3f440f04ec638076f7750621ecd92918ba76c5 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 b5a804582d049263199df7c9d1464305564a68c3 Mon Sep 17 00:00:00 2001 From: Khoa Nguyen Date: Tue, 22 Apr 2025 14:14:43 +0700 Subject: [PATCH 13/62] [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 21cf2cb323f7d9e6623af132850763a0d76bc4b8 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/62] [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 9adf353dd9b5fa50d4d35ad6758ed56d2fedfee2 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 b40fbe003a0ab385df59a942ff83dedee8b74da0 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- 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 45d891b6b9844014f1614694f7df20f7e596f3fd 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 24b0698518b774d121b3c83fb9fa75ca7cb1150b 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 e56ed08a05b012a8d71518b5dacb72e23f92de1f 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- ...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 da9c0bafb526cb51cc548d96196d82f1b8c40415 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 a993e5bea87db415d76c0003978fd5fe246afe43 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 ee114ffe098882ca07a04f08d5f011ec9c2cfd48 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 c154f0a8a0b070cd24defbdbf28d0ac7021ed393 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 d89b2592ea3ff06a93c880779e6e36054b71c122 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 41dc08658a4ff7b9cb5ade1eebe0329c024f3a33 Mon Sep 17 00:00:00 2001 From: Khoa Nguyen Date: Tue, 15 Apr 2025 18:05:12 +0700 Subject: [PATCH 25/62] [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 edc04bae6ce8f40724b6e4214644649ee0095a8c Mon Sep 17 00:00:00 2001 From: Declan Snyder Date: Fri, 14 Mar 2025 07:57:11 -0500 Subject: [PATCH 26/62] [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 51e9f83f776064c89a58ec1d586d10a3c460901a 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 56f3545235e..ed9b4cf6e79 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: @@ -63,10 +62,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 @@ -77,10 +75,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 96e757ab461096312923d1e224a8b276f8217024 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/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 d33c23d176023dc1126ecb7c2f485ef27c6df5f1 Mon Sep 17 00:00:00 2001 From: Raffael Rostagno Date: Mon, 19 May 2025 16:06:20 -0300 Subject: [PATCH 29/62] [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 7639aeab935dda62b61f24d267a23bfe82a5461f Mon Sep 17 00:00:00 2001 From: Duy Nguyen Date: Wed, 18 Dec 2024 06:38:32 +0700 Subject: [PATCH 30/62] [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 1cb6b1ad737b59559052d879cd0b62700cf82efe Mon Sep 17 00:00:00 2001 From: Bjarki Arge Andreasen Date: Fri, 6 Jun 2025 15:04:02 +0200 Subject: [PATCH 31/62] [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 7e01c9ce8345ae5f0bca581577294e81283d44af Mon Sep 17 00:00:00 2001 From: Piotr Krzyzanowski Date: Tue, 27 May 2025 22:54:15 +0200 Subject: [PATCH 32/62] [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 52851bb706a14c97cb9b9cd0b33bd389b7c15133 Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Tue, 3 Jun 2025 09:41:14 +0200 Subject: [PATCH 33/62] [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 ad5ee640538cfb59952c5426ccb9641aa21a98bc Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Fri, 30 May 2025 16:09:28 +0200 Subject: [PATCH 34/62] [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 162be274c9378b2c16097ead51b2850834253767 Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Thu, 5 Jun 2025 14:14:45 +0200 Subject: [PATCH 35/62] [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 b3b55b8c957e079f66ace704a7eb756f9a4015b8 Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Fri, 13 Jun 2025 11:47:58 +0200 Subject: [PATCH 36/62] [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 9a54fbd81c267f1fcf8ebb7e3c4c15d4626595b0 Mon Sep 17 00:00:00 2001 From: Sai Santhosh Malae Date: Fri, 13 Jun 2025 18:49:08 +0530 Subject: [PATCH 37/62] [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 bab26663f57e90ed6e6ddb6d62ad61c267a0bf47 Mon Sep 17 00:00:00 2001 From: Thao Luong Date: Fri, 23 May 2025 19:25:07 +0700 Subject: [PATCH 38/62] [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 2f34818f482c5c67ffb3c4c1c9d181cf426675ca Mon Sep 17 00:00:00 2001 From: Khoa Nguyen Date: Wed, 2 Apr 2025 15:49:20 +0700 Subject: [PATCH 39/62] [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 fa29a38ffb75c8e3a55300e4bac3f2060aa8618b Mon Sep 17 00:00:00 2001 From: Abderrahmane JARMOUNI Date: Fri, 2 May 2025 16:58:03 +0200 Subject: [PATCH 40/62] [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 321d065d60a1f923d2c1e6f31b8114a400e5a1e9 Mon Sep 17 00:00:00 2001 From: Raymond Lei Date: Fri, 7 Mar 2025 14:26:40 -0600 Subject: [PATCH 41/62] [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 c3a7747419942acbccd653d639530d6c6e122952 Mon Sep 17 00:00:00 2001 From: Julien Panis Date: Tue, 17 Jun 2025 09:43:27 +0200 Subject: [PATCH 42/62] [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 8faa3751c17d6aa919e63bd87521fec35a321ee7 Mon Sep 17 00:00:00 2001 From: Mert Ekren Date: Tue, 4 Jun 2024 13:31:32 +0300 Subject: [PATCH 43/62] [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 1b8680193524b84116e01cbaad7ef45165adac44 Mon Sep 17 00:00:00 2001 From: Declan Snyder Date: Tue, 1 Jul 2025 10:41:31 -0500 Subject: [PATCH 44/62] [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 39aee74bd1634d047fafdcdd0dbf5b6782b18e70 Mon Sep 17 00:00:00 2001 From: Declan Snyder Date: Tue, 1 Jul 2025 11:24:12 -0500 Subject: [PATCH 45/62] [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 610d75c97dfc6ffddcca323635f82f79f2bfb569 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/62] [nrf fromlist] 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). Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 e87017d104d0dd654a65123c0a100419e9512de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 09:27:31 +0200 Subject: [PATCH 47/62] [nrf fromlist] tests: drivers: timer: nrf_grtc_timer: 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- tests/drivers/timer/nrf_grtc_timer/testcase.yaml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/drivers/timer/nrf_grtc_timer/testcase.yaml b/tests/drivers/timer/nrf_grtc_timer/testcase.yaml index cd4f99daede..8d01344c49c 100644 --- a/tests/drivers/timer/nrf_grtc_timer/testcase.yaml +++ b/tests/drivers/timer/nrf_grtc_timer/testcase.yaml @@ -2,20 +2,18 @@ tests: drivers.timer.nrf_grtc_timer: tags: drivers platform_allow: + - nrf54h20dk/nrf54h20/cpuapp + - nrf54h20dk/nrf54h20/cpurad + - nrf54h20dk/nrf54h20/cpuppr - nrf54l09pdk/nrf54l09/cpuapp - nrf54l09pdk/nrf54l09/cpuflpr - nrf54l15dk/nrf54l15/cpuapp - nrf54l15dk/nrf54l15/cpuflpr - nrf54l15bsim/nrf54l15/cpuapp - - nrf54h20dk/nrf54h20/cpuapp - - nrf54h20dk/nrf54h20/cpurad - - nrf54h20dk/nrf54h20/cpuppr - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - - nrf54l20pdk/nrf54l20/cpuflpr - nrf54lm20dk/nrf54lm20a/cpuflpr - ophelia4ev/nrf54l15/cpuapp - ophelia4ev/nrf54l15/cpuflpr integration_platforms: - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp + timeout: 30 From 6814f154813e2ff448022e2ca1b76edb61f09b1f Mon Sep 17 00:00:00 2001 From: Jerzy Kasenberg Date: Mon, 10 Feb 2025 13:11:01 +0100 Subject: [PATCH 48/62] [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 47b05edcf56b5ebe74d88162d26860ade473c5dd Mon Sep 17 00:00:00 2001 From: Khaoula Bidani Date: Mon, 16 Jun 2025 09:50:44 +0200 Subject: [PATCH 49/62] [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 b51e64de301782812f0ad4b906c34c3db4a54584 Mon Sep 17 00:00:00 2001 From: Khoa Nguyen Date: Wed, 2 Apr 2025 13:12:02 +0700 Subject: [PATCH 50/62] [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 34efccd74f2f780c49d0427a81def7b6ccb25eab Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Fri, 6 Jun 2025 11:44:20 +0200 Subject: [PATCH 51/62] [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 8e9df6c0ab3e3d4e8df4d8099f51aa1a56a10d02 Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Fri, 20 Jun 2025 09:36:35 +0200 Subject: [PATCH 52/62] [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 e4dee3e882ad365d58987a147a4734240afd7f59 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 53/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 | 9 ++++ 5 files changed, 58 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..7751418afa8 100644 --- a/tests/drivers/uart/uart_async_api/testcase.yaml +++ b/tests/drivers/uart/uart_async_api/testcase.yaml @@ -18,6 +18,15 @@ 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: + filter: CONFIG_SERIAL_SUPPORT_ASYNC and not CONFIG_UART_MCUX_LPUART + 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 cb88fa1c52c09e14edf8666e32827452af985c2f 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 54/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- ...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 93633709e9eaa8df2bab67629c7373c7bd21e90f 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 55/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 b33f3461686fa2d7f9668086a134c6339827e82d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 09:39:09 +0200 Subject: [PATCH 56/62] [nrf fromlist] tests: drivers: uart: uart_mix_fifo_poll: 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 43 ------------------- .../uart/uart_mix_fifo_poll/testcase.yaml | 9 ++-- 2 files changed, 4 insertions(+), 48 deletions(-) delete mode 100644 tests/drivers/uart/uart_mix_fifo_poll/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/uart/uart_mix_fifo_poll/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/uart/uart_mix_fifo_poll/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index 945b8628e7a..00000000000 --- a/tests/drivers/uart/uart_mix_fifo_poll/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2024 Nordic Semiconductor ASA - * - * 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; -}; - -counter_dev: &timer00 { - status = "okay"; -}; - -&grtc { - interrupts = <228 2>; -}; diff --git a/tests/drivers/uart/uart_mix_fifo_poll/testcase.yaml b/tests/drivers/uart/uart_mix_fifo_poll/testcase.yaml index a901abda9e4..90ab0bf7b71 100644 --- a/tests/drivers/uart/uart_mix_fifo_poll/testcase.yaml +++ b/tests/drivers/uart/uart_mix_fifo_poll/testcase.yaml @@ -5,19 +5,18 @@ common: depends_on: gpio harness: ztest platform_allow: + - nrf52_bsim - nrf52840dk/nrf52840 - nrf9160dk/nrf9160 - nrf5340dk/nrf5340/cpuapp - nrf5340bsim/nrf5340/cpuapp + - nrf54h20dk/nrf54h20/cpuapp + - nrf54h20dk/nrf54h20/cpurad - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54l15bsim/nrf54l15/cpuapp - - nrf54h20dk/nrf54h20/cpuapp - - nrf54h20dk/nrf54h20/cpurad + - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp - - nrf52_bsim integration_platforms: - nrf52840dk/nrf52840 harness_config: From 0ea4b45d13916198551cde379051a770bb35c286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C5=82=C4=85b?= Date: Thu, 10 Jul 2025 09:40:19 +0200 Subject: [PATCH 57/62] [nrf fromlist] tests: drivers: uart: uart_pm: 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../nrf54l20pdk_nrf54l20_cpuapp.overlay | 36 ------------------- tests/drivers/uart/uart_pm/testcase.yaml | 27 ++++++-------- 2 files changed, 11 insertions(+), 52 deletions(-) delete mode 100644 tests/drivers/uart/uart_pm/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay diff --git a/tests/drivers/uart/uart_pm/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay b/tests/drivers/uart/uart_pm/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay deleted file mode 100644 index 033aab401ac..00000000000 --- a/tests/drivers/uart/uart_pm/boards/nrf54l20pdk_nrf54l20_cpuapp.overlay +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2024 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: Apache-2.0 - */ - -&pinctrl { - uart21_default: uart21_default { - group1 { - psels = , - ; - }; - }; - - uart21_sleep: uart21_sleep { - group1 { - psels = , - ; - low-power-enable; - }; - }; -}; - -/ { - chosen { - zephyr,console = &uart20; - }; -}; - -dut: &uart21 { - status = "okay"; - current-speed = <115200>; - pinctrl-0 = <&uart21_default>; - pinctrl-1 = <&uart21_sleep>; - pinctrl-names = "default", "sleep"; -}; diff --git a/tests/drivers/uart/uart_pm/testcase.yaml b/tests/drivers/uart/uart_pm/testcase.yaml index 9bb36067757..0cab9dc6a44 100644 --- a/tests/drivers/uart/uart_pm/testcase.yaml +++ b/tests/drivers/uart/uart_pm/testcase.yaml @@ -4,15 +4,14 @@ common: - uart harness: ztest platform_allow: + - nrf52_bsim - nrf52840dk/nrf52840 + - nrf5340bsim/nrf5340/cpuapp + - nrf54h20dk/nrf54h20/cpuapp - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54l15bsim/nrf54l15/cpuapp - - nrf54h20dk/nrf54h20/cpuapp - - nrf52_bsim - - nrf5340bsim/nrf5340/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp harness_config: fixture: gpio_loopback @@ -33,14 +32,13 @@ tests: - CONFIG_UART_0_ENHANCED_POLL_OUT=n extra_args: DTC_OVERLAY_FILE="boards/nrf52840dk_nrf52840.overlay;nrf_rx_disable.overlay" platform_exclude: + - nrf52_bsim + - nrf5340bsim/nrf5340/cpuapp + - nrf54h20dk/nrf54h20/cpuapp - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54l15bsim/nrf54l15/cpuapp - - nrf54h20dk/nrf54h20/cpuapp - - nrf52_bsim - - nrf5340bsim/nrf5340/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - ophelia4ev/nrf54l15/cpuapp drivers.uart.pm.enhanced_poll: @@ -49,11 +47,10 @@ tests: - CONFIG_UART_ASYNC_API=n - CONFIG_UART_0_ENHANCED_POLL_OUT=y platform_exclude: + - nrf54h20dk/nrf54h20/cpuapp - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - - nrf54h20dk/nrf54h20/cpuapp - ophelia4ev/nrf54l15/cpuapp drivers.uart.pm.int_driven: @@ -70,11 +67,10 @@ tests: - CONFIG_UART_ASYNC_API=n - CONFIG_UART_0_ENHANCED_POLL_OUT=y platform_exclude: + - nrf54h20dk/nrf54h20/cpuapp - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - - nrf54h20dk/nrf54h20/cpuapp - ophelia4ev/nrf54l15/cpuapp drivers.uart.pm.async: @@ -91,9 +87,8 @@ tests: - CONFIG_UART_0_ASYNC=y - CONFIG_UART_0_ENHANCED_POLL_OUT=y platform_exclude: + - nrf54h20dk/nrf54h20/cpuapp - nrf54l09pdk/nrf54l09/cpuapp - nrf54l15dk/nrf54l15/cpuapp - - nrf54l20pdk/nrf54l20/cpuapp - nrf54lm20dk/nrf54lm20a/cpuapp - - nrf54h20dk/nrf54h20/cpuapp - ophelia4ev/nrf54l15/cpuapp From 999f2cd2169df24118242ffb82ddf3608c335a2f 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 58/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 5b9d7473fda8bbc2cfdfeeaae1dd1644985e16ac 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 59/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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 7a4442a192f7b493be1a0ac82e7b4bb7ba9ff158 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 60/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- 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 3045cf910c2d3a860d80571842e87c3b279267c0 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 61/62] 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 741f4c09fc3bab1d5eb0b2d58faa6abceb651266 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 62/62] [nrf fromlist] 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. Upstream PR #: 92901 Signed-off-by: Sebastian Głąb --- .../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