diff --git a/boards/arm/b_u585i_iot02a/b_u585i_iot02a.yaml b/boards/arm/b_u585i_iot02a/b_u585i_iot02a.yaml index edfe71abd4891..45cf413fa60a8 100644 --- a/boards/arm/b_u585i_iot02a/b_u585i_iot02a.yaml +++ b/boards/arm/b_u585i_iot02a/b_u585i_iot02a.yaml @@ -21,3 +21,4 @@ supported: - nvs - backup_sram - pwm + - counter diff --git a/boards/arm/disco_l475_iot1/disco_l475_iot1.yaml b/boards/arm/disco_l475_iot1/disco_l475_iot1.yaml index 12c6754adf89f..cfe2b7bf06b2d 100644 --- a/boards/arm/disco_l475_iot1/disco_l475_iot1.yaml +++ b/boards/arm/disco_l475_iot1/disco_l475_iot1.yaml @@ -14,6 +14,7 @@ supported: - lps22hb - lsm6dsl - pwm + - counter - gpio - ble - spi diff --git a/boards/arm/nucleo_l073rz/nucleo_l073rz.yaml b/boards/arm/nucleo_l073rz/nucleo_l073rz.yaml index 23486b7e2df64..dc82c77449c0d 100644 --- a/boards/arm/nucleo_l073rz/nucleo_l073rz.yaml +++ b/boards/arm/nucleo_l073rz/nucleo_l073rz.yaml @@ -19,5 +19,6 @@ supported: - adc - dac - pwm + - counter - rng - eeprom diff --git a/boards/arm/nucleo_wl55jc/nucleo_wl55jc.yaml b/boards/arm/nucleo_wl55jc/nucleo_wl55jc.yaml index 5172dee6f7b0e..93be2f6ed9110 100644 --- a/boards/arm/nucleo_wl55jc/nucleo_wl55jc.yaml +++ b/boards/arm/nucleo_wl55jc/nucleo_wl55jc.yaml @@ -18,6 +18,7 @@ supported: - adc - dac - pwm + - counter - dma - watchdog - nvs diff --git a/boards/arm/stm32l562e_dk/stm32l562e_dk.yaml b/boards/arm/stm32l562e_dk/stm32l562e_dk.yaml index 3d5c1780b41e1..a6759c10c25fe 100644 --- a/boards/arm/stm32l562e_dk/stm32l562e_dk.yaml +++ b/boards/arm/stm32l562e_dk/stm32l562e_dk.yaml @@ -10,6 +10,7 @@ supported: - i2c - lptim - pwm + - counter - watchdog - dac - adc diff --git a/drivers/clock_control/Kconfig.stm32 b/drivers/clock_control/Kconfig.stm32 index 70296f6223177..5a96e9151481a 100644 --- a/drivers/clock_control/Kconfig.stm32 +++ b/drivers/clock_control/Kconfig.stm32 @@ -8,7 +8,8 @@ menuconfig CLOCK_CONTROL_STM32_CUBE bool "STM32 Reset & Clock Control" depends on SOC_FAMILY_STM32 select USE_STM32_LL_UTILS - select USE_STM32_LL_RCC if (SOC_SERIES_STM32MP1X || SOC_SERIES_STM32H7X) + select USE_STM32_LL_RCC if (SOC_SERIES_STM32MP1X || SOC_SERIES_STM32H7X || \ + SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X) help Enable driver for Reset & Clock Control subsystem found in STM32 family of MCUs diff --git a/drivers/counter/counter_ll_stm32_timer.c b/drivers/counter/counter_ll_stm32_timer.c index 47932cde7a710..d2e568e0d795c 100644 --- a/drivers/counter/counter_ll_stm32_timer.c +++ b/drivers/counter/counter_ll_stm32_timer.c @@ -18,6 +18,11 @@ #include LOG_MODULE_REGISTER(counter_timer_stm32, CONFIG_COUNTER_LOG_LEVEL); +/* L0 series MCUs only have 16-bit timers and don't have below macro defined */ +#ifndef IS_TIM_32B_COUNTER_INSTANCE +#define IS_TIM_32B_COUNTER_INSTANCE(INSTANCE) (0) +#endif + /** Maximum number of timer channels. */ #define TIMER_MAX_CH 4U @@ -37,7 +42,13 @@ static void(*const set_timer_compare[TIMER_MAX_CH])(TIM_TypeDef *, }; /** Channel to compare get function mapping. */ -#if !defined(CONFIG_SOC_SERIES_STM32F4X) +#if !defined(CONFIG_SOC_SERIES_STM32C0X) && \ + !defined(CONFIG_SOC_SERIES_STM32F1X) && \ + !defined(CONFIG_SOC_SERIES_STM32F2X) && \ + !defined(CONFIG_SOC_SERIES_STM32F4X) && \ + !defined(CONFIG_SOC_SERIES_STM32G4X) && \ + !defined(CONFIG_SOC_SERIES_STM32L1X) && \ + !defined(CONFIG_SOC_SERIES_STM32MP1X) static uint32_t(*const get_timer_compare[TIMER_MAX_CH])(const TIM_TypeDef *) = { LL_TIM_OC_GetCompareCH1, LL_TIM_OC_GetCompareCH2, LL_TIM_OC_GetCompareCH3, LL_TIM_OC_GetCompareCH4, @@ -62,7 +73,13 @@ static void(*const disable_it[TIMER_MAX_CH])(TIM_TypeDef *) = { #ifdef CONFIG_ASSERT /** Channel to interrupt enable check function mapping. */ -#if !defined(CONFIG_SOC_SERIES_STM32F4X) +#if !defined(CONFIG_SOC_SERIES_STM32C0X) && \ + !defined(CONFIG_SOC_SERIES_STM32F1X) && \ + !defined(CONFIG_SOC_SERIES_STM32F2X) && \ + !defined(CONFIG_SOC_SERIES_STM32F4X) && \ + !defined(CONFIG_SOC_SERIES_STM32G4X) && \ + !defined(CONFIG_SOC_SERIES_STM32L1X) && \ + !defined(CONFIG_SOC_SERIES_STM32MP1X) static uint32_t(*const check_it_enabled[TIMER_MAX_CH])(const TIM_TypeDef *) = { LL_TIM_IsEnabledIT_CC1, LL_TIM_IsEnabledIT_CC2, LL_TIM_IsEnabledIT_CC3, LL_TIM_IsEnabledIT_CC4, diff --git a/dts/arm/st/f0/stm32f0.dtsi b/dts/arm/st/f0/stm32f0.dtsi index cac6fc774de34..808339299b8f1 100644 --- a/dts/arm/st/f0/stm32f0.dtsi +++ b/dts/arm/st/f0/stm32f0.dtsi @@ -250,6 +250,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers14: timers@40002000 { @@ -267,6 +272,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers16: timers@40014400 { @@ -284,6 +294,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers17: timers@40014800 { @@ -301,6 +316,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; adc1: adc@40012400 { diff --git a/dts/arm/st/f0/stm32f031.dtsi b/dts/arm/st/f0/stm32f031.dtsi index 260c65af5107a..8232e0b4ef6ba 100644 --- a/dts/arm/st/f0/stm32f031.dtsi +++ b/dts/arm/st/f0/stm32f031.dtsi @@ -23,6 +23,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; rtc@40002800 { diff --git a/dts/arm/st/f1/stm32f1.dtsi b/dts/arm/st/f1/stm32f1.dtsi index eba5174f3f3f9..bb3fc2e53c8ab 100644 --- a/dts/arm/st/f1/stm32f1.dtsi +++ b/dts/arm/st/f1/stm32f1.dtsi @@ -271,6 +271,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers3: timers@40000400 { @@ -288,6 +293,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers4: timers@40000800 { @@ -305,6 +315,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; rtc: rtc@40002800 { diff --git a/dts/arm/st/f2/stm32f2.dtsi b/dts/arm/st/f2/stm32f2.dtsi index 2fecefc3e2458..3673ceaea49c6 100644 --- a/dts/arm/st/f2/stm32f2.dtsi +++ b/dts/arm/st/f2/stm32f2.dtsi @@ -445,6 +445,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers4: timers@40000800 { @@ -462,6 +467,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers5: timers@40000c00 { @@ -479,6 +489,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers6: timers@40001000 { @@ -490,6 +505,11 @@ interrupt-names = "global"; st,prescaler = <0>; status = "disabled"; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers7: timers@40001400 { @@ -501,6 +521,11 @@ interrupt-names = "global"; st,prescaler = <0>; status = "disabled"; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers8: timers@40010400 { @@ -535,6 +560,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers10: timers@40014400 { @@ -552,6 +582,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers11: timers@40014800 { @@ -569,6 +604,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers12: timers@40001800 { @@ -586,6 +626,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers13: timers@40001c00 { @@ -603,6 +648,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers14: timers@40002000 { @@ -620,6 +670,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; rng: rng@50060800 { diff --git a/dts/arm/st/f3/stm32f3.dtsi b/dts/arm/st/f3/stm32f3.dtsi index ce0e767f2c4d1..02757816d76ad 100644 --- a/dts/arm/st/f3/stm32f3.dtsi +++ b/dts/arm/st/f3/stm32f3.dtsi @@ -277,6 +277,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers3: timers@40000400 { @@ -294,6 +299,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers6: timers@40001000 { @@ -305,6 +315,11 @@ interrupt-names = "global"; st,prescaler = <0>; status = "disabled"; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers7: timers@40001400 { @@ -316,6 +331,11 @@ interrupt-names = "global"; st,prescaler = <0>; status = "disabled"; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers15: timers@40014000 { @@ -333,6 +353,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers16: timers@40014400 { @@ -350,6 +375,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers17: timers@40014800 { @@ -367,6 +397,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; rtc: rtc@40002800 { diff --git a/dts/arm/st/f7/stm32f7.dtsi b/dts/arm/st/f7/stm32f7.dtsi index fc15edb8fc056..4f40d29c6eadf 100644 --- a/dts/arm/st/f7/stm32f7.dtsi +++ b/dts/arm/st/f7/stm32f7.dtsi @@ -430,6 +430,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers3: timers@40000400 { @@ -447,6 +452,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers4: timers@40000800 { @@ -464,6 +474,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers5: timers@40000c00 { @@ -481,6 +496,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers6: timers@40001000 { @@ -492,6 +512,11 @@ interrupt-names = "global"; st,prescaler = <0>; status = "disabled"; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers7: timers@40001400 { @@ -503,6 +528,11 @@ interrupt-names = "global"; st,prescaler = <0>; status = "disabled"; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers8: timers@40010400 { @@ -537,6 +567,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers10: timers@40014400 { @@ -554,6 +589,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers11: timers@40014800 { @@ -571,6 +611,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers12: timers@40001800 { @@ -588,6 +633,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers13: timers@40001c00 { @@ -605,6 +655,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers14: timers@40002000 { @@ -622,6 +677,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; usbotg_fs: usb@50000000 { diff --git a/dts/arm/st/g0/stm32g0.dtsi b/dts/arm/st/g0/stm32g0.dtsi index ef8ca0908c112..ecbebe41b1ad6 100644 --- a/dts/arm/st/g0/stm32g0.dtsi +++ b/dts/arm/st/g0/stm32g0.dtsi @@ -248,6 +248,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers3: timers@40000400 { @@ -265,6 +270,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers14: timers@40002000 { @@ -282,6 +292,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers16: timers@40014400 { @@ -299,6 +314,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers17: timers@40014800 { @@ -316,6 +336,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; i2c1: i2c@40005400 { diff --git a/dts/arm/st/g0/stm32g051.dtsi b/dts/arm/st/g0/stm32g051.dtsi index c9ec4c6b97782..2ffdf3022905b 100644 --- a/dts/arm/st/g0/stm32g051.dtsi +++ b/dts/arm/st/g0/stm32g051.dtsi @@ -16,6 +16,11 @@ interrupts = <17 0>; interrupt-names = "global"; status = "disabled"; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers7: timers@40001400 { @@ -27,6 +32,11 @@ interrupt-names = "global"; st,prescaler = <0>; status = "disabled"; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers15: timers@40014000 { @@ -44,6 +54,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; dac1: dac@40007400 { diff --git a/dts/arm/st/g4/stm32g4.dtsi b/dts/arm/st/g4/stm32g4.dtsi index e7adae91ef984..852bf6a752718 100644 --- a/dts/arm/st/g4/stm32g4.dtsi +++ b/dts/arm/st/g4/stm32g4.dtsi @@ -433,6 +433,11 @@ st,prescaler = <0>; status = "disabled"; + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; + pwm { compatible = "st,stm32-pwm"; status = "disabled"; @@ -450,6 +455,11 @@ st,prescaler = <0>; status = "disabled"; + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; + pwm { compatible = "st,stm32-pwm"; status = "disabled"; @@ -467,6 +477,11 @@ st,prescaler = <0>; status = "disabled"; + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; + pwm { compatible = "st,stm32-pwm"; status = "disabled"; @@ -528,6 +543,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers16: timers@40014400 { @@ -545,6 +565,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers17: timers@40014800 { @@ -562,6 +587,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; rtc: rtc@40002800 { diff --git a/dts/arm/st/l0/stm32l0.dtsi b/dts/arm/st/l0/stm32l0.dtsi index 5ea27e533f2fd..54be533127b62 100644 --- a/dts/arm/st/l0/stm32l0.dtsi +++ b/dts/arm/st/l0/stm32l0.dtsi @@ -251,6 +251,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers21: timers@40010800 { @@ -268,6 +273,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; lptim1: timers@40007c00 { diff --git a/dts/arm/st/l0/stm32l071.dtsi b/dts/arm/st/l0/stm32l071.dtsi index bd219c45dee1f..f2cdc7825f0d8 100644 --- a/dts/arm/st/l0/stm32l071.dtsi +++ b/dts/arm/st/l0/stm32l071.dtsi @@ -67,6 +67,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers6: timers@40001000 { @@ -78,6 +83,11 @@ interrupt-names = "global"; st,prescaler = <0>; status = "disabled"; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers7: timers@40001400 { @@ -89,6 +99,11 @@ interrupt-names = "global"; st,prescaler = <0>; status = "disabled"; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers22: timers@40011400 { @@ -106,6 +121,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; usart1: serial@40013800 { diff --git a/dts/arm/st/l1/stm32l1.dtsi b/dts/arm/st/l1/stm32l1.dtsi index 54a0dc1d72028..48ecab945c86f 100644 --- a/dts/arm/st/l1/stm32l1.dtsi +++ b/dts/arm/st/l1/stm32l1.dtsi @@ -257,6 +257,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers3: timers@40000400 { @@ -274,6 +279,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers4: timers@40000800 { @@ -291,6 +301,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers9: timers@40010800 { @@ -308,6 +323,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers10: timers@40010c00 { @@ -325,6 +345,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers11: timers@40011000 { @@ -342,6 +367,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; pinctrl: pin-controller@40020000 { diff --git a/dts/arm/st/l5/stm32l5.dtsi b/dts/arm/st/l5/stm32l5.dtsi index 075896668eafc..aa11bf0989309 100644 --- a/dts/arm/st/l5/stm32l5.dtsi +++ b/dts/arm/st/l5/stm32l5.dtsi @@ -494,6 +494,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers3: timers@40000400 { @@ -511,6 +516,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers4: timers@40000800 { @@ -528,6 +538,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers5: timers@40000c00 { @@ -545,6 +560,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers8: timers@40013400 { @@ -579,6 +599,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers16: timers@40014400 { @@ -596,6 +621,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers17: timers@40014800 { @@ -613,6 +643,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; adc1: adc@42028000 { diff --git a/dts/arm/st/u5/stm32u5.dtsi b/dts/arm/st/u5/stm32u5.dtsi index c4cddfdbe32d0..16125cd6a408c 100644 --- a/dts/arm/st/u5/stm32u5.dtsi +++ b/dts/arm/st/u5/stm32u5.dtsi @@ -481,6 +481,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers5: timers@40000c00 { @@ -497,6 +502,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers8: timers@40013400 { @@ -529,6 +539,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers16: timers@40014400 { @@ -545,6 +560,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers17: timers@40014800 { @@ -561,6 +581,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; octospi1: octospi@420d1400 { diff --git a/dts/arm/st/wb/stm32wb.dtsi b/dts/arm/st/wb/stm32wb.dtsi index 1ad82f6a2b64f..469166e56e731 100644 --- a/dts/arm/st/wb/stm32wb.dtsi +++ b/dts/arm/st/wb/stm32wb.dtsi @@ -353,6 +353,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers16: timers@40014400 { @@ -370,6 +375,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers17: timers@40014800 { @@ -387,6 +397,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; adc1: adc@50040000 { diff --git a/dts/arm/st/wl/stm32wl.dtsi b/dts/arm/st/wl/stm32wl.dtsi index 341a6de5f272a..091f2cb6d244b 100644 --- a/dts/arm/st/wl/stm32wl.dtsi +++ b/dts/arm/st/wl/stm32wl.dtsi @@ -374,6 +374,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers16: timers@40014400 { @@ -391,6 +396,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; timers17: timers@40014800 { @@ -408,6 +418,11 @@ status = "disabled"; #pwm-cells = <3>; }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; }; aes: aes@58001800 { diff --git a/tests/drivers/counter/counter_basic_api/boards/b_u585i_iot02a.overlay b/tests/drivers/counter/counter_basic_api/boards/b_u585i_iot02a.overlay new file mode 100644 index 0000000000000..0163df2c3b165 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/b_u585i_iot02a.overlay @@ -0,0 +1,34 @@ +&timers4 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers5 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers15 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers16 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers17 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/disco_l475_iot1.overlay b/tests/drivers/counter/counter_basic_api/boards/disco_l475_iot1.overlay new file mode 100644 index 0000000000000..041ba9097cf53 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/disco_l475_iot1.overlay @@ -0,0 +1,27 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers6 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers15 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers16 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_f091rc.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_f091rc.overlay new file mode 100644 index 0000000000000..2b84514640650 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_f091rc.overlay @@ -0,0 +1,34 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers14 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers16 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers17 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_f103rb.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_f103rb.overlay new file mode 100644 index 0000000000000..fff07d39d1718 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_f103rb.overlay @@ -0,0 +1,20 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers4 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_f207zg.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_f207zg.overlay new file mode 100644 index 0000000000000..042d133b41bbc --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_f207zg.overlay @@ -0,0 +1,84 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers4 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers5 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers6 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers7 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers9 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers10 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers11 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + + +&timers12 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers13 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers14 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_f429zi.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_f429zi.overlay new file mode 100644 index 0000000000000..ace5ac6ad2c81 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_f429zi.overlay @@ -0,0 +1,47 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers4 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers5 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; +&timers9 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers10 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers11 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_f746zg.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_f746zg.overlay new file mode 100644 index 0000000000000..265c55da4b631 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_f746zg.overlay @@ -0,0 +1,83 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers4 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers5 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers6 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers7 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers9 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers10 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers11 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers12 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers13 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers14 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_g071rb.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_g071rb.overlay new file mode 100644 index 0000000000000..847f5aaa509c9 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_g071rb.overlay @@ -0,0 +1,48 @@ +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers6 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers7 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers14 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers15 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers16 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers17 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_g474re.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_g474re.overlay new file mode 100644 index 0000000000000..05f729d4279de --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_g474re.overlay @@ -0,0 +1,41 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers4 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers15 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers16 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers17 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_h743zi.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_h743zi.overlay new file mode 100644 index 0000000000000..f10bb3a428308 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_h743zi.overlay @@ -0,0 +1,83 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers4 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers5 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers6 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers7 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers12 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers13 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers14 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers15 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers16 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers17 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_l073rz.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_l073rz.overlay new file mode 100644 index 0000000000000..f1795f432a96d --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_l073rz.overlay @@ -0,0 +1,41 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers6 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers7 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers21 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers22 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_l152re.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_l152re.overlay new file mode 100644 index 0000000000000..55f211cccabca --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_l152re.overlay @@ -0,0 +1,41 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers4 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers9 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers10 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers11 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_wb55rg.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_wb55rg.overlay new file mode 100644 index 0000000000000..54e72d296cf20 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_wb55rg.overlay @@ -0,0 +1,20 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers16 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers17 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/nucleo_wl55jc.overlay b/tests/drivers/counter/counter_basic_api/boards/nucleo_wl55jc.overlay new file mode 100644 index 0000000000000..54e72d296cf20 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/nucleo_wl55jc.overlay @@ -0,0 +1,20 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers16 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers17 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/stm32f3_disco.overlay b/tests/drivers/counter/counter_basic_api/boards/stm32f3_disco.overlay new file mode 100644 index 0000000000000..4751b69886406 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/stm32f3_disco.overlay @@ -0,0 +1,48 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers6 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers7 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers15 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers16 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers17 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; diff --git a/tests/drivers/counter/counter_basic_api/boards/stm32h735g_disco.overlay b/tests/drivers/counter/counter_basic_api/boards/stm32h735g_disco.overlay index 680418ecc3a29..00a10669ba0d7 100644 --- a/tests/drivers/counter/counter_basic_api/boards/stm32h735g_disco.overlay +++ b/tests/drivers/counter/counter_basic_api/boards/stm32h735g_disco.overlay @@ -4,7 +4,3 @@ status = "okay"; }; }; - -&rtc { - status = "disabled"; -}; diff --git a/tests/drivers/counter/counter_basic_api/boards/stm32h747i_disco_m7.overlay b/tests/drivers/counter/counter_basic_api/boards/stm32h747i_disco_m7.overlay index 87d4899af1122..702307533960d 100644 --- a/tests/drivers/counter/counter_basic_api/boards/stm32h747i_disco_m7.overlay +++ b/tests/drivers/counter/counter_basic_api/boards/stm32h747i_disco_m7.overlay @@ -81,7 +81,3 @@ status = "okay"; }; }; - -&rtc { - status = "disabled"; -}; diff --git a/tests/drivers/counter/counter_basic_api/boards/stm32l562e_dk.overlay b/tests/drivers/counter/counter_basic_api/boards/stm32l562e_dk.overlay new file mode 100644 index 0000000000000..b9935272a5047 --- /dev/null +++ b/tests/drivers/counter/counter_basic_api/boards/stm32l562e_dk.overlay @@ -0,0 +1,49 @@ +&timers2 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers3 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers4 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + + +&timers5 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers15 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers16 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +}; + +&timers17 { + st,prescaler = <79>; + counter { + status = "okay"; + }; +};