Linux PWM subsystem development
 help / color / mirror / Atom feed
* [PATCH 1/2] pwm: lp3943: fix duty calculation in case period was clamped
@ 2022-04-08 15:22 Uwe Kleine-König
  2022-04-08 15:22 ` [PATCH 2/2] pwm: lp3943: Implement .apply() callback Uwe Kleine-König
  2022-04-22 16:43 ` [PATCH 1/2] pwm: lp3943: fix duty calculation in case period was clamped Thierry Reding
  0 siblings, 2 replies; 3+ messages in thread
From: Uwe Kleine-König @ 2022-04-08 15:22 UTC (permalink / raw)
  To: Thierry Reding, Lee Jones, Milo Kim; +Cc: linux-pwm, kernel

The hardware only supports periods <= 1.6 ms and if a bigger period is
requested it is clamped to 1.6 ms. In this case duty_cycle might be bigger
than 1.6 ms and then the duty cycle register is written with a value
bigger than LP3943_MAX_DUTY. So clamp duty_cycle accordingly.

Fixes: af66b3c0934e ("pwm: Add LP3943 PWM driver")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/pwm/pwm-lp3943.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/pwm/pwm-lp3943.c b/drivers/pwm/pwm-lp3943.c
index ea17d446a627..2bd04ecb508c 100644
--- a/drivers/pwm/pwm-lp3943.c
+++ b/drivers/pwm/pwm-lp3943.c
@@ -125,6 +125,7 @@ static int lp3943_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
 	if (err)
 		return err;
 
+	duty_ns = min(duty_ns, period_ns);
 	val = (u8)(duty_ns * LP3943_MAX_DUTY / period_ns);
 
 	return lp3943_write_byte(lp3943, reg_duty, val);

base-commit: 3123109284176b1532874591f7c81f3837bbdc17
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-04-22 16:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-08 15:22 [PATCH 1/2] pwm: lp3943: fix duty calculation in case period was clamped Uwe Kleine-König
2022-04-08 15:22 ` [PATCH 2/2] pwm: lp3943: Implement .apply() callback Uwe Kleine-König
2022-04-22 16:43 ` [PATCH 1/2] pwm: lp3943: fix duty calculation in case period was clamped Thierry Reding

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox