Hello Uwe, Am Sun, Nov 03, 2024 at 09:19:36PM +0100 schrieb Uwe Kleine-König: > Hello Dimitri, > > On Sun, Nov 03, 2024 at 08:07:09PM +0100, Dimitri Fedrau wrote: > > Am Thu, Oct 24, 2024 at 11:19:16PM +0200 schrieb Uwe Kleine-König: > > > What breaks if you drop the check for state->enabled? > > > > > The device is unable to generate a 0% duty cycle, to support this you > > proposed in an earlier review to disable the output. Without checking if > > the output is disabled, the mc33xs2410_pwm_get_state function returns the > > wrong duty cycle for a previously setted 0% duty cycle. A "0" value in the > > MC33XS2410_PWM_DC register means that the relative duty cylce is 1/256. As > > a result there are complaints if PWM_DEBUG is enabled. > > I fail to follow. If .enabled=true + .duty_cycle=0 is requested you > disable. That's fine. However it shouldn't be necessary to use > state->enabled in .get_state(). I didn't look at the actual code, but if > you provide a sequence of writes to /sys that trigger a PWM_DEBUG > output, I'll take another look. > Apply 0% duty cycle: .enabled=false + .duty_cycle=0 Below some writes triggering PWM_DEBUG output: # echo 488282 > /sys/class/pwm/pwmchip3/pwm0/period # echo 244140 > /sys/class/pwm/pwmchip3/pwm0/duty_cycle # echo 0 > /sys/class/pwm/pwmchip3/pwm0/duty_cycle [ 91.813513] mc33xs2410-pwm spi0.0: .apply is supposed to round down duty_cycle (requested: 0/488282, applied: 1908/488282) Best regards, Dimitri