Select either pinctrl sleep state in suspend function or default state in
resume function.

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

diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c
index 9c2b04e..a8f20ba 100644
--- a/drivers/tty/serial/stm32-usart.c
+++ b/drivers/tty/serial/stm32-usart.c
@@ -24,6 +24,7 @@
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_platform.h>
+#include <linux/pinctrl/consumer.h>
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
 #include <linux/pm_wakeirq.h>
@@ -1298,6 +1299,8 @@ static int stm32_serial_suspend(struct device *dev)
        else
                stm32_serial_enable_wakeup(port, false);
 
+       pinctrl_pm_select_sleep_state(dev);
+
        return 0;
 }
 
@@ -1305,6 +1308,8 @@ static int stm32_serial_resume(struct device *dev)
 {
        struct uart_port *port = dev_get_drvdata(dev);
 
+       pinctrl_pm_select_default_state(dev);
+
        if (device_may_wakeup(dev))
                stm32_serial_enable_wakeup(port, false);
 
-- 
1.9.1

Reply via email to