pwm: imx-tpm: force 'real_period' to be zero in suspend
authorFancy Fang <chen.fang@nxp.com>
Fri, 5 May 2023 06:58:39 +0000 (14:58 +0800)
committerThierry Reding <thierry.reding@gmail.com>
Fri, 23 Jun 2023 13:42:44 +0000 (15:42 +0200)
During suspend, all the tpm registers will lose values.
So the 'real_period' value of struct 'imx_tpm_pwm_chip'
should be forced to be zero to force the period update
code can be executed after system resume back.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Fixes: 738a1cfec2ed ("pwm: Add i.MX TPM PWM driver support")
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/pwm-imx-tpm.c

index 5e2b452..98ab65c 100644 (file)
@@ -397,6 +397,13 @@ static int __maybe_unused pwm_imx_tpm_suspend(struct device *dev)
        if (tpm->enable_count > 0)
                return -EBUSY;
 
+       /*
+        * Force 'real_period' to be zero to force period update code
+        * can be executed after system resume back, since suspend causes
+        * the period related registers to become their reset values.
+        */
+       tpm->real_period = 0;
+
        clk_disable_unprepare(tpm->clk);
 
        return 0;