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