boards: arm: nucleo_g474re & b_g474e_dpow1 PM support

Add STM32G4x boards support for Power Management with 2 low power
modes: STOP0 and STOP1. LPTIM used as clock source.

Signed-off-by: Cyril Fougeray <cyril.fougeray@worldcoin.org>
This commit is contained in:
Cyril Fougeray 2022-12-22 10:16:58 +01:00 committed by Carles Cufí
commit fcfb7f30ed
2 changed files with 62 additions and 2 deletions

View file

@ -63,6 +63,27 @@
};
};
power-states {
stop0: state0 {
compatible = "zephyr,power-state";
power-state-name = "suspend-to-idle";
substate-id = <1>;
min-residency-us = <20>;
};
stop1: state1 {
compatible = "zephyr,power-state";
power-state-name = "suspend-to-idle";
substate-id = <2>;
min-residency-us = <100>;
};
};
cpus {
cpu@0 {
cpu-power-states = <&stop0 &stop1>;
};
};
aliases {
led0 = &blue_led_2;
led1 = &orange_led_3;
@ -77,6 +98,10 @@
};
};
&clk_lsi {
status = "okay";
};
&clk_hsi48 {
status = "okay";
};
@ -85,6 +110,12 @@
status = "okay";
};
&lptim1 {
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>,
<&rcc STM32_SRC_LSI LPTIM1_SEL(1)>;
status = "okay";
};
&pll {
div-m = <1>;
mul-n = <16>;
@ -105,7 +136,8 @@
&usart3 {
pinctrl-0 = <&usart3_tx_pc10 &usart3_rx_pc11>;
pinctrl-names = "default";
pinctrl-1 = <&analog_pc10 &analog_pc11>;
pinctrl-names = "default", "sleep";
current-speed = <115200>;
status = "okay";
};

View file

@ -45,6 +45,27 @@
};
};
power-states {
stop0: state0 {
compatible = "zephyr,power-state";
power-state-name = "suspend-to-idle";
substate-id = <1>;
min-residency-us = <20>;
};
stop1: state1 {
compatible = "zephyr,power-state";
power-state-name = "suspend-to-idle";
substate-id = <2>;
min-residency-us = <100>;
};
};
cpus {
cpu@0 {
cpu-power-states = <&stop0 &stop1>;
};
};
aliases {
led0 = &green_led;
pwm-led0 = &green_pwm_led;
@ -93,7 +114,8 @@
&lpuart1 {
pinctrl-0 = <&lpuart1_tx_pa2 &lpuart1_rx_pa3>;
pinctrl-names = "default";
pinctrl-1 = <&analog_pa2 &analog_pa3>;
pinctrl-names = "default", "sleep";
current-speed = <115200>;
status = "okay";
};
@ -146,6 +168,12 @@
};
};
&lptim1 {
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>,
<&rcc STM32_SRC_LSI LPTIM1_SEL(1)>;
status = "okay";
};
&rtc {
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000400>,
<&rcc STM32_SRC_LSI RTC_SEL(2)>;