diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2021-04-20 12:51:17 +0300 |
---|---|---|
committer | Thierry Reding <thierry.reding@gmail.com> | 2021-04-23 20:05:31 +0300 |
commit | 453e8b3d8e36ddcb283b3d1698864a03ea45599a (patch) | |
tree | 6f26a1cd050780c0443f34a150777c37a1c74231 /drivers/pwm | |
parent | 721b595744f199c185fbcefaa6e7e5cea9da1941 (diff) | |
download | linux-453e8b3d8e36ddcb283b3d1698864a03ea45599a.tar.xz |
pwm: atmel: Fix duty cycle calculation in .get_state()
The CDTY register contains the number of inactive cycles. .apply() does
this correctly, however .get_state() got this wrong.
Fixes: 651b510a74d4 ("pwm: atmel: Implement .get_state()")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Diffstat (limited to 'drivers/pwm')
-rw-r--r-- | drivers/pwm/pwm-atmel.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pwm/pwm-atmel.c b/drivers/pwm/pwm-atmel.c index d49da708337f..ebaeb50dcfde 100644 --- a/drivers/pwm/pwm-atmel.c +++ b/drivers/pwm/pwm-atmel.c @@ -319,7 +319,7 @@ static void atmel_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm, cdty = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, atmel_pwm->data->regs.duty); - tmp = (u64)cdty * NSEC_PER_SEC; + tmp = (u64)(cprd - cdty) * NSEC_PER_SEC; tmp <<= pres; state->duty_cycle = DIV64_U64_ROUND_UP(tmp, rate); |