On Mon Aug 18, 2025 at 11:05 AM CEST, Uwe Kleine-König wrote: > Hello, > > On Mon, Aug 11, 2025 at 12:46:22PM +0200, Mathieu Dubois-Briand wrote: >> From: Kamel Bouhara <kamel.bouhara@xxxxxxxxxxx> >> >> Add driver for Maxim Integrated MAX7360 PWM controller, supporting up to >> 8 independent PWM outputs. >> >> Signed-off-by: Kamel Bouhara <kamel.bouhara@xxxxxxxxxxx> >> Co-developed-by: Mathieu Dubois-Briand <mathieu.dubois-briand@xxxxxxxxxxx> >> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@xxxxxxxxxxx> >> Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> >> --- >> ... >> +static int max7360_pwm_round_waveform_tohw(struct pwm_chip *chip, >> + struct pwm_device *pwm, >> + const struct pwm_waveform *wf, >> + void *_wfhw) >> +{ >> + struct max7360_pwm_waveform *wfhw = _wfhw; >> + u64 duty_steps; >> + >> + /* >> + * Ignore user provided values for period_length_ns and duty_offset_ns: >> + * we only support fixed period of MAX7360_PWM_PERIOD_NS and offset of 0. >> + * Values from 0 to 254 as duty_steps will provide duty cycles of 0/256 >> + * to 254/256, while value 255 will provide a duty cycle of 100%. >> + */ >> + if (wf->duty_length_ns >= MAX7360_PWM_PERIOD_NS) { >> + duty_steps = MAX7360_PWM_MAX; >> + } else { >> + duty_steps = (u32)wf->duty_length_ns * MAX7360_PWM_STEPS / MAX7360_PWM_PERIOD_NS; >> + if (duty_steps == MAX7360_PWM_MAX) >> + duty_steps = MAX7360_PWM_MAX - 1; >> + } >> + >> + wfhw->duty_steps = min(MAX7360_PWM_MAX, duty_steps); >> + wfhw->enabled = !!wf->period_length_ns; >> + >> + if (wf->period_length_ns < MAX7360_PWM_PERIOD_NS) > > I know this code was suggested as is by me, but I think we need: > > if (wf->period_length_ns && wf->period_length_ns < MAX7360_PWM_PERIOD_NS) > > here to prevent to trigger a PWM_DEBUG warning. Sorry to spot this only > now. > Right, this does make sense. I will send a new version shortly. >> + return 1; >> + else >> + return 0; >> +} > > Best regards > Uwe Best regards, Mathieu -- Mathieu Dubois-Briand, Bootlin Embedded Linux and Kernel engineering https://bootlin.com