From 45d79b87db3138dfbf49990a6ab442bd25f0786d Mon Sep 17 00:00:00 2001 From: Jani Paalijarvi Date: Wed, 4 Sep 2024 10:08:51 +0300 Subject: [PATCH] arch/risc-v/src/mpfs/mpfs_corepwm.c: Disable PWM channels in setup Set frequency to zero and disable channels in pwm_setup() to avoid unexpected behaviour when starting PWM. Signed-off-by: Jani Paalijarvi --- arch/risc-v/src/mpfs/mpfs_corepwm.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/risc-v/src/mpfs/mpfs_corepwm.c b/arch/risc-v/src/mpfs/mpfs_corepwm.c index b59d3250b6172..d964a72bccab1 100644 --- a/arch/risc-v/src/mpfs/mpfs_corepwm.c +++ b/arch/risc-v/src/mpfs/mpfs_corepwm.c @@ -557,6 +557,13 @@ static int pwm_setup(struct pwm_lowerhalf_s *dev) struct mpfs_pwmtimer_s *priv = (struct mpfs_pwmtimer_s *)dev; pwminfo("PWMID%u\n", priv->pwmid); + + /* Make sure that frequency is zero and channels has been disabled */ + + priv->frequency = 0; + pwm_putreg(priv, MPFS_COREPWM_PWM_ENABLE_0_7_OFFSET, 0x00); + pwm_putreg(priv, MPFS_COREPWM_PWM_ENABLE_8_15_OFFSET, 0x00); + pwm_dumpregs(priv, "Initially"); return OK;