Re: pwm: atmel: problem when disable pwm

From: Thierry Reding
Date: Wed Jun 04 2014 - 10:49:29 EST


Adding in the linux-pwm mailing list.

On Wed, Jun 04, 2014 at 02:56:13PM +0200, RaphaÃl Poggi wrote:
> Hello,
>
> I'm using the pwm-atmel driver to control led, but i'm facing a problem.
>
> When writing "echo 0 > /sys/class/leds/d1/brightness" (to switch off
> the led) sometimes the led stayed active.
>
> After investigation I think this problem is due to this function:
>
> static void atmel_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
> {
> struct atmel_pwm_chip *atmel_pwm = to_atmel_pwm_chip(chip);
>
> atmel_pwm_writel(atmel_pwm, PWM_DIS, 1 << pwm->hwpwm);
>
> clk_disable(atmel_pwm->clk);
> }
>
> By disable the pwm channel, I think the duty cycle "0" has not been
> update, and the channel is disable and stayed in active state (high or
> low depending of polarity).

This sounds like a bug that could be fixed by this commit:

916030db4399 pwm: atmel: correct CDTY calculation

What version of the kernel are you seeing this problem with? The above
commit was first added in v3.15-rc1, so maybe try that or any later
version to see if that fixes it.

Thierry

Attachment: pgpuiQNPS5Gv6.pgp
Description: PGP signature