diff --git a/boards/arm/nucleo_f401re/nucleo_f401re.dts b/boards/arm/nucleo_f401re/nucleo_f401re.dts index 2610d7890ce..0510d8bc4fe 100644 --- a/boards/arm/nucleo_f401re/nucleo_f401re.dts +++ b/boards/arm/nucleo_f401re/nucleo_f401re.dts @@ -32,7 +32,7 @@ pwmleds { compatible = "pwm-leds"; green_pwm_led: green_pwm_led { - pwms = <&pwm2 1 0>; + pwms = <&pwm2 1 0 PWM_POLARITY_NORMAL>; }; }; diff --git a/boards/arm/nucleo_g431rb/nucleo_g431rb.dts b/boards/arm/nucleo_g431rb/nucleo_g431rb.dts index 7808186fc7d..bb443c02f7c 100644 --- a/boards/arm/nucleo_g431rb/nucleo_g431rb.dts +++ b/boards/arm/nucleo_g431rb/nucleo_g431rb.dts @@ -31,7 +31,7 @@ compatible = "pwm-leds"; green_pwm_led: green_pwm_led { - pwms = <&pwm2 1 4>; + pwms = <&pwm2 1 4 PWM_POLARITY_NORMAL>; }; }; diff --git a/boards/arm/nucleo_g474re/nucleo_g474re.dts b/boards/arm/nucleo_g474re/nucleo_g474re.dts index 774203ecb6b..34761c190cb 100644 --- a/boards/arm/nucleo_g474re/nucleo_g474re.dts +++ b/boards/arm/nucleo_g474re/nucleo_g474re.dts @@ -31,7 +31,7 @@ compatible = "pwm-leds"; green_pwm_led: green_pwm_led { - pwms = <&pwm2 1 4>; + pwms = <&pwm2 1 4 PWM_POLARITY_NORMAL>; }; }; diff --git a/boards/arm/nucleo_h743zi/nucleo_h743zi.dts b/boards/arm/nucleo_h743zi/nucleo_h743zi.dts index 288255118bb..7e5bfea4b63 100644 --- a/boards/arm/nucleo_h743zi/nucleo_h743zi.dts +++ b/boards/arm/nucleo_h743zi/nucleo_h743zi.dts @@ -36,7 +36,7 @@ compatible = "pwm-leds"; red_pwm_led: red_pwm_led { - pwms = <&pwm12 1 4>; + pwms = <&pwm12 1 4 PWM_POLARITY_NORMAL>; }; }; diff --git a/boards/arm/nucleo_l496zg/nucleo_l496zg.dts b/boards/arm/nucleo_l496zg/nucleo_l496zg.dts index 8b124999c68..417b47c925a 100644 --- a/boards/arm/nucleo_l496zg/nucleo_l496zg.dts +++ b/boards/arm/nucleo_l496zg/nucleo_l496zg.dts @@ -39,7 +39,7 @@ compatible = "pwm-leds"; red_pwm_led: red_pwm_led { - pwms = <&pwm15 1 4>; + pwms = <&pwm15 1 4 PWM_POLARITY_NORMAL>; }; }; diff --git a/boards/arm/stm32f411e_disco/stm32f411e_disco.dts b/boards/arm/stm32f411e_disco/stm32f411e_disco.dts index 1c50f310259..c7982f6ac8d 100644 --- a/boards/arm/stm32f411e_disco/stm32f411e_disco.dts +++ b/boards/arm/stm32f411e_disco/stm32f411e_disco.dts @@ -41,7 +41,7 @@ pwmleds { compatible = "pwm-leds"; green_pwm_led: green_pwm_led { - pwms = <&pwm4 1 0>; + pwms = <&pwm4 1 0 PWM_POLARITY_NORMAL>; }; }; diff --git a/drivers/pwm/pwm_stm32.c b/drivers/pwm/pwm_stm32.c index 4ffc5fd2a4f..bd345eaff5a 100644 --- a/drivers/pwm/pwm_stm32.c +++ b/drivers/pwm/pwm_stm32.c @@ -85,6 +85,22 @@ static inline const struct pwm_stm32_config *to_config(struct device *dev) return dev->config_info; } +/** + * Obtain LL polarity from PWM flags. + * + * @param flags PWM flags. + * + * @return LL polarity. + */ +static uint32_t get_polarity(pwm_flags_t flags) +{ + if (flags & PWM_POLARITY_NORMAL) { + return LL_TIM_OCPOLARITY_HIGH; + } + + return LL_TIM_OCPOLARITY_LOW; +} + /** * Obtain timer clock speed. * @@ -209,7 +225,7 @@ static int pwm_stm32_pin_set(struct device *dev, uint32_t pwm, oc_init.OCMode = LL_TIM_OCMODE_PWM1; oc_init.OCState = LL_TIM_OCSTATE_ENABLE; oc_init.CompareValue = pulse_cycles; - oc_init.OCPolarity = LL_TIM_OCPOLARITY_HIGH; + oc_init.OCPolarity = get_polarity(flags); oc_init.OCIdleState = LL_TIM_OCIDLESTATE_LOW; if (LL_TIM_OC_Init(cfg->timer, channel, &oc_init) != SUCCESS) { @@ -219,6 +235,7 @@ static int pwm_stm32_pin_set(struct device *dev, uint32_t pwm, LL_TIM_OC_EnablePreload(cfg->timer, channel); } else { + LL_TIM_OC_SetPolarity(cfg->timer, channel, get_polarity(flags)); set_timer_compare[pwm - 1u](cfg->timer, pulse_cycles); } diff --git a/dts/arm/st/f0/stm32f0.dtsi b/dts/arm/st/f0/stm32f0.dtsi index ef8e6a3db02..cff6b54a70c 100644 --- a/dts/arm/st/f0/stm32f0.dtsi +++ b/dts/arm/st/f0/stm32f0.dtsi @@ -9,6 +9,7 @@ #include #include #include +#include / { chosen { @@ -189,7 +190,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -205,7 +206,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -221,7 +222,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_6"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -237,7 +238,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_7"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -253,7 +254,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_14"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -269,7 +270,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_15"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -285,7 +286,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_16"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -301,7 +302,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_17"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/f0/stm32f072.dtsi b/dts/arm/st/f0/stm32f072.dtsi index 28371ef25c4..e45eed6a465 100644 --- a/dts/arm/st/f0/stm32f072.dtsi +++ b/dts/arm/st/f0/stm32f072.dtsi @@ -38,7 +38,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_2"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/f0/stm32f091.dtsi b/dts/arm/st/f0/stm32f091.dtsi index 919f861f2f9..334cd16a315 100644 --- a/dts/arm/st/f0/stm32f091.dtsi +++ b/dts/arm/st/f0/stm32f091.dtsi @@ -26,7 +26,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_2"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/f1/stm32f1.dtsi b/dts/arm/st/f1/stm32f1.dtsi index cf4a16a22b0..ef42cdff4d6 100644 --- a/dts/arm/st/f1/stm32f1.dtsi +++ b/dts/arm/st/f1/stm32f1.dtsi @@ -9,6 +9,7 @@ #include #include #include +#include / { chosen { @@ -201,7 +202,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -217,7 +218,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_2"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -233,7 +234,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -249,7 +250,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_4"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/f1/stm32f103Xe.dtsi b/dts/arm/st/f1/stm32f103Xe.dtsi index 4711bed2e47..95216922fd9 100644 --- a/dts/arm/st/f1/stm32f103Xe.dtsi +++ b/dts/arm/st/f1/stm32f103Xe.dtsi @@ -53,7 +53,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_5"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -69,7 +69,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_6"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -85,7 +85,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_7"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -134,7 +134,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_8"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/f1/stm32f107.dtsi b/dts/arm/st/f1/stm32f107.dtsi index e93a0253862..daf4a1c6e0b 100644 --- a/dts/arm/st/f1/stm32f107.dtsi +++ b/dts/arm/st/f1/stm32f107.dtsi @@ -44,7 +44,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_5"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -60,7 +60,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_6"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -76,7 +76,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_7"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/f2/stm32f2.dtsi b/dts/arm/st/f2/stm32f2.dtsi index c1fd4f27d55..2924ff9b16a 100644 --- a/dts/arm/st/f2/stm32f2.dtsi +++ b/dts/arm/st/f2/stm32f2.dtsi @@ -8,6 +8,7 @@ #include #include #include +#include / { chosen { diff --git a/dts/arm/st/f3/stm32f3.dtsi b/dts/arm/st/f3/stm32f3.dtsi index 9d73c9943b6..1d1dd7abbf4 100644 --- a/dts/arm/st/f3/stm32f3.dtsi +++ b/dts/arm/st/f3/stm32f3.dtsi @@ -9,6 +9,7 @@ #include #include #include +#include / { chosen { @@ -200,7 +201,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_2"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -216,7 +217,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -232,7 +233,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_6"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -248,7 +249,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_7"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -264,7 +265,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_15"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -280,7 +281,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_16"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -296,7 +297,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_17"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/f3/stm32f302.dtsi b/dts/arm/st/f3/stm32f302.dtsi index 9365d2bacea..5a60032cc27 100644 --- a/dts/arm/st/f3/stm32f302.dtsi +++ b/dts/arm/st/f3/stm32f302.dtsi @@ -73,7 +73,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; }; diff --git a/dts/arm/st/f3/stm32f303.dtsi b/dts/arm/st/f3/stm32f303.dtsi index f26732c8fb0..71bd0c355ed 100644 --- a/dts/arm/st/f3/stm32f303.dtsi +++ b/dts/arm/st/f3/stm32f303.dtsi @@ -61,7 +61,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -77,7 +77,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_4"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -93,7 +93,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_8"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -109,7 +109,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_20"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; }; diff --git a/dts/arm/st/f3/stm32f334.dtsi b/dts/arm/st/f3/stm32f334.dtsi index 492f0d456d8..b7ab44f63cd 100644 --- a/dts/arm/st/f3/stm32f334.dtsi +++ b/dts/arm/st/f3/stm32f334.dtsi @@ -20,7 +20,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; }; diff --git a/dts/arm/st/f3/stm32f373.dtsi b/dts/arm/st/f3/stm32f373.dtsi index c329d42317d..65612899b7b 100644 --- a/dts/arm/st/f3/stm32f373.dtsi +++ b/dts/arm/st/f3/stm32f373.dtsi @@ -66,7 +66,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_4"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -82,7 +82,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_5"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -98,7 +98,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_12"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -114,7 +114,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_13"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -130,7 +130,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_14"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -146,7 +146,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_18"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -162,7 +162,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_19"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; }; diff --git a/dts/arm/st/f4/stm32f4.dtsi b/dts/arm/st/f4/stm32f4.dtsi index 6e2c56d17fb..0da11e35090 100644 --- a/dts/arm/st/f4/stm32f4.dtsi +++ b/dts/arm/st/f4/stm32f4.dtsi @@ -9,6 +9,7 @@ #include #include #include +#include / { chosen { @@ -249,7 +250,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -265,7 +266,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_2"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -281,7 +282,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -297,7 +298,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_4"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -313,7 +314,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_5"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -329,7 +330,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_9"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -345,7 +346,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_10"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -361,7 +362,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_11"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/f4/stm32f405.dtsi b/dts/arm/st/f4/stm32f405.dtsi index 3d8d8992304..0ccaccdf83c 100644 --- a/dts/arm/st/f4/stm32f405.dtsi +++ b/dts/arm/st/f4/stm32f405.dtsi @@ -82,7 +82,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_6"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -98,7 +98,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_7"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -114,7 +114,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_8"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -130,7 +130,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_12"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -146,7 +146,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_13"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -162,7 +162,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_14"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/f4/stm32f412.dtsi b/dts/arm/st/f4/stm32f412.dtsi index 6d25bbd73ca..c2738cc5604 100644 --- a/dts/arm/st/f4/stm32f412.dtsi +++ b/dts/arm/st/f4/stm32f412.dtsi @@ -55,7 +55,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_6"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -71,7 +71,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_7"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -87,7 +87,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_8"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -103,7 +103,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_12"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -119,7 +119,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_13"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -135,7 +135,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_14"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/f7/stm32f7.dtsi b/dts/arm/st/f7/stm32f7.dtsi index cc4349027ee..ba737c91534 100644 --- a/dts/arm/st/f7/stm32f7.dtsi +++ b/dts/arm/st/f7/stm32f7.dtsi @@ -9,6 +9,7 @@ #include #include #include +#include / { chosen { @@ -353,7 +354,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -369,7 +370,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_2"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -385,7 +386,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -401,7 +402,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_4"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -417,7 +418,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_5"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -433,7 +434,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_6"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -449,7 +450,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_7"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -465,7 +466,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_8"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -481,7 +482,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_9"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -497,7 +498,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_10"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -513,7 +514,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_11"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -529,7 +530,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_12"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -545,7 +546,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_13"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -561,7 +562,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_14"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/g0/stm32g0.dtsi b/dts/arm/st/g0/stm32g0.dtsi index a410471f5ec..a0fdc3d80c3 100644 --- a/dts/arm/st/g0/stm32g0.dtsi +++ b/dts/arm/st/g0/stm32g0.dtsi @@ -11,6 +11,7 @@ #include #include #include +#include / { chosen { @@ -166,7 +167,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/g4/stm32g4.dtsi b/dts/arm/st/g4/stm32g4.dtsi index a9c65c30d59..4803e1cebe6 100644 --- a/dts/arm/st/g4/stm32g4.dtsi +++ b/dts/arm/st/g4/stm32g4.dtsi @@ -9,6 +9,7 @@ #include #include #include +#include / { chosen { @@ -295,7 +296,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -311,7 +312,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_2"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -327,7 +328,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -343,7 +344,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_4"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -359,7 +360,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_6"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -375,7 +376,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_7"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -391,7 +392,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_8"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -407,7 +408,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_15"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -423,7 +424,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_16"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -439,7 +440,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_17"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/h7/stm32h7.dtsi b/dts/arm/st/h7/stm32h7.dtsi index 66f74f5b751..801d55985a3 100644 --- a/dts/arm/st/h7/stm32h7.dtsi +++ b/dts/arm/st/h7/stm32h7.dtsi @@ -10,6 +10,7 @@ #include #include #include +#include / { chosen { @@ -309,7 +310,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -327,7 +328,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_2"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -345,7 +346,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -363,7 +364,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_4"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -381,7 +382,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_5"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -399,7 +400,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_6"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -417,7 +418,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_7"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -435,7 +436,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_8"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -453,7 +454,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_12"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -471,7 +472,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_13"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -489,7 +490,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_14"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -507,7 +508,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_15"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -525,7 +526,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_16"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -543,7 +544,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_17"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/l0/stm32l0.dtsi b/dts/arm/st/l0/stm32l0.dtsi index b92c542ed77..de25ca8645c 100644 --- a/dts/arm/st/l0/stm32l0.dtsi +++ b/dts/arm/st/l0/stm32l0.dtsi @@ -9,6 +9,7 @@ #include #include #include +#include / { chosen { diff --git a/dts/arm/st/l1/stm32l1.dtsi b/dts/arm/st/l1/stm32l1.dtsi index e30c0ab2040..ea9c43891d9 100644 --- a/dts/arm/st/l1/stm32l1.dtsi +++ b/dts/arm/st/l1/stm32l1.dtsi @@ -9,6 +9,7 @@ #include #include #include +#include / { chosen { diff --git a/dts/arm/st/l4/stm32l4.dtsi b/dts/arm/st/l4/stm32l4.dtsi index bd236e7a2e0..82c50c3ce97 100644 --- a/dts/arm/st/l4/stm32l4.dtsi +++ b/dts/arm/st/l4/stm32l4.dtsi @@ -10,6 +10,7 @@ #include #include #include +#include / { chosen { @@ -194,7 +195,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -210,7 +211,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_2"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -226,7 +227,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_6"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -242,7 +243,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_7"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -258,7 +259,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_15"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -274,7 +275,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_16"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/l4/stm32l452.dtsi b/dts/arm/st/l4/stm32l452.dtsi index 68ad9beb38f..d3e91495ded 100644 --- a/dts/arm/st/l4/stm32l452.dtsi +++ b/dts/arm/st/l4/stm32l452.dtsi @@ -119,7 +119,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; }; diff --git a/dts/arm/st/l4/stm32l471.dtsi b/dts/arm/st/l4/stm32l471.dtsi index 678e2fa7c1a..b57394c04de 100644 --- a/dts/arm/st/l4/stm32l471.dtsi +++ b/dts/arm/st/l4/stm32l471.dtsi @@ -121,7 +121,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -137,7 +137,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_4"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -153,7 +153,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_5"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -169,7 +169,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_8"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -185,7 +185,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_17"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/l4/stm32l4r5.dtsi b/dts/arm/st/l4/stm32l4r5.dtsi index dfb21398ecb..dc5ae27e2f9 100644 --- a/dts/arm/st/l4/stm32l4r5.dtsi +++ b/dts/arm/st/l4/stm32l4r5.dtsi @@ -144,7 +144,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_3"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -160,7 +160,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_4"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -176,7 +176,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_5"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -192,7 +192,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_8"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -208,7 +208,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_17"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/arm/st/l5/stm32l5.dtsi b/dts/arm/st/l5/stm32l5.dtsi index caca908e6be..bbdda88de30 100644 --- a/dts/arm/st/l5/stm32l5.dtsi +++ b/dts/arm/st/l5/stm32l5.dtsi @@ -8,7 +8,7 @@ #include #include #include - +#include / { cpus { diff --git a/dts/arm/st/mp1/stm32mp157.dtsi b/dts/arm/st/mp1/stm32mp157.dtsi index 0452b157d4c..e2c4dcccf9a 100644 --- a/dts/arm/st/mp1/stm32mp157.dtsi +++ b/dts/arm/st/mp1/stm32mp157.dtsi @@ -10,6 +10,7 @@ #include #include #include +#include / { cpus { diff --git a/dts/arm/st/wb/stm32wb.dtsi b/dts/arm/st/wb/stm32wb.dtsi index 12726b6cf89..43166a2c845 100644 --- a/dts/arm/st/wb/stm32wb.dtsi +++ b/dts/arm/st/wb/stm32wb.dtsi @@ -9,6 +9,7 @@ #include #include #include +#include / { chosen { @@ -214,7 +215,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_1"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -230,7 +231,7 @@ status = "disabled"; st,prescaler = <0>; label = "PWM_2"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -246,7 +247,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_16"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; @@ -262,7 +263,7 @@ status = "disabled"; st,prescaler = <10000>; label = "PWM_17"; - #pwm-cells = <2>; + #pwm-cells = <3>; }; }; diff --git a/dts/bindings/pwm/st,stm32-pwm.yaml b/dts/bindings/pwm/st,stm32-pwm.yaml index ea9f4e502a9..98f86e86f67 100644 --- a/dts/bindings/pwm/st,stm32-pwm.yaml +++ b/dts/bindings/pwm/st,stm32-pwm.yaml @@ -14,9 +14,10 @@ properties: description: Clock prescaler at the input of the timer "#pwm-cells": - const: 2 + const: 3 pwm-cells: - channel # period in terms of nanoseconds - period + - flags