Currently, pinctrl states defines only one "sleep" configuration for pins,
no matter the possible uart low power modes (Rx pin always kept active).

Sleep pin configuration is refined for low power modes:
- "sleep" (no wakeup & console suspend enabled): put pins in analog state
  to optimize power
- "idle" (wakeup capability): keep Rx pin in alternate function
- "default" state remains untouched, to be used while the UART is active
  or in case the no_console_suspend mode is enabled

Signed-off-by: Bich Hemon <bich.he...@st.com>
Signed-off-by: Erwan Le Ray <erwan.le...@st.com>

diff --git a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi 
b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
index 85c417d..2e1ab1b 100644
--- a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
@@ -599,6 +599,23 @@
                                        bias-disable;
                                };
                        };
+
+                       uart4_idle_pins_a: uart4-idle-0 {
+                               pins1 {
+                                       pinmux = <STM32_PINMUX('G', 11, 
ANALOG)>; /* UART4_TX */
+                               };
+                               pins2 {
+                                       pinmux = <STM32_PINMUX('B', 2, AF8)>; 
/* UART4_RX */
+                                       bias-disable;
+                               };
+                       };
+
+                       uart4_sleep_pins_a: uart4-sleep-0 {
+                               pins {
+                                       pinmux = <STM32_PINMUX('G', 11, 
ANALOG)>, /* UART4_TX */
+                                                <STM32_PINMUX('B', 2, 
ANALOG)>; /* UART4_RX */
+                               };
+                       };
                };
 
                pinctrl_z: pin-controller-z@54004000 {
-- 
1.9.1

Reply via email to