diff mbox series

pwm: adp5585: Set OSC_EN bit to 1 when PWM state is enabled

Message ID 20240826083337.1835405-1-victor.liu@nxp.com
State Accepted
Headers show
Series pwm: adp5585: Set OSC_EN bit to 1 when PWM state is enabled | expand

Commit Message

Liu Ying Aug. 26, 2024, 8:33 a.m. UTC
It turns out that OSC_EN bit in GERNERAL_CFG register has to be set to 1
when PWM state is enabled, otherwise PWM signal won't be generated.

Fixes: e9b503879fd2 ("pwm: adp5585: Add Analog Devices ADP5585 support")
Signed-off-by: Liu Ying <victor.liu@nxp.com>
---
 drivers/pwm/pwm-adp5585.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Laurent Pinchart Aug. 26, 2024, 8:50 a.m. UTC | #1
Hi Liu,

Thank you for the patch.

On Mon, Aug 26, 2024 at 04:33:37PM +0800, Liu Ying wrote:
> It turns out that OSC_EN bit in GERNERAL_CFG register has to be set to 1
> when PWM state is enabled, otherwise PWM signal won't be generated.

Indeed, this likely got lost during one of the reworks. The apply
function correctly clears the bit when disabling PWM, but doesn't set it
otherwise.

> Fixes: e9b503879fd2 ("pwm: adp5585: Add Analog Devices ADP5585 support")
> Signed-off-by: Liu Ying <victor.liu@nxp.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Uwe, would you be able to queue this for v6.12 ?

> ---
>  drivers/pwm/pwm-adp5585.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/pwm/pwm-adp5585.c b/drivers/pwm/pwm-adp5585.c
> index ed7e8c6bcf32..40472ac5db64 100644
> --- a/drivers/pwm/pwm-adp5585.c
> +++ b/drivers/pwm/pwm-adp5585.c
> @@ -100,6 +100,10 @@ static int pwm_adp5585_apply(struct pwm_chip *chip,
>  	if (ret)
>  		return ret;
>  
> +	ret = regmap_set_bits(regmap, ADP5585_GENERAL_CFG, ADP5585_OSC_EN);
> +	if (ret)
> +		return ret;
> +
>  	return regmap_set_bits(regmap, ADP5585_PWM_CFG, ADP5585_PWM_EN);
>  }
>
Uwe Kleine-König Sept. 3, 2024, 4:20 p.m. UTC | #2
Hello Laurent,

On Mon, Aug 26, 2024 at 11:50:49AM +0300, Laurent Pinchart wrote:
> Thank you for the patch.
> 
> On Mon, Aug 26, 2024 at 04:33:37PM +0800, Liu Ying wrote:
> > It turns out that OSC_EN bit in GERNERAL_CFG register has to be set to 1
> > when PWM state is enabled, otherwise PWM signal won't be generated.
> 
> Indeed, this likely got lost during one of the reworks. The apply
> function correctly clears the bit when disabling PWM, but doesn't set it
> otherwise.
> 
> > Fixes: e9b503879fd2 ("pwm: adp5585: Add Analog Devices ADP5585 support")
> > Signed-off-by: Liu Ying <victor.liu@nxp.com>
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> 
> Uwe, would you be able to queue this for v6.12 ?

Yes, I just merged Lee's immutable branch into my for-next branch to get
e9b503879fd2 and applied this patch on top.

Best regards
Uwe
diff mbox series

Patch

diff --git a/drivers/pwm/pwm-adp5585.c b/drivers/pwm/pwm-adp5585.c
index ed7e8c6bcf32..40472ac5db64 100644
--- a/drivers/pwm/pwm-adp5585.c
+++ b/drivers/pwm/pwm-adp5585.c
@@ -100,6 +100,10 @@  static int pwm_adp5585_apply(struct pwm_chip *chip,
 	if (ret)
 		return ret;
 
+	ret = regmap_set_bits(regmap, ADP5585_GENERAL_CFG, ADP5585_OSC_EN);
+	if (ret)
+		return ret;
+
 	return regmap_set_bits(regmap, ADP5585_PWM_CFG, ADP5585_PWM_EN);
 }