Re: [PATCH v2 0/7] Rust Abstractions for PWM subsystem with TH1520 PWM driver
From: Michal Wilczynski
Date: Thu Jun 12 2025 - 09:29:47 EST
On 6/12/25 07:01, Uwe Kleine-König wrote:
> Hello Drew,
>
> On Wed, Jun 11, 2025 at 04:52:22PM -0700, Drew Fustini wrote:
>> I also enabled the pwm fan driver. However, there is a probe failure:
>>
>> [ 1.250921] pwm-fan pwm-fan: Failed to configure PWM: -524
>> [ 1.256546] pwm-fan pwm-fan: probe with driver pwm-fan failed with error -524
>
> 524 = ENOTSUPP, so it seems the request had duty_offset > 0. Does your
> fan use PWM_POLARITY_INVERTED? If so, try without that flag. If your fan
> really needs an inverted PWM this of course makes fan control buggy.
> With the next revision it should work fine (as a duty_offset > 0 should
> get rounded down to 0).
Since we're running the same DT, the polarity shouldn't be inverted. I
see you have CONFIG_PWM_DEBUG=y enabled, which is most likely the reason
the probe fails.
With that option, the following check is performed in __pwm_apply:
if (IS_ENABLED(CONFIG_PWM_DEBUG)) {
struct pwm_waveform wf_rounded;
err = __pwm_round_waveform_fromhw(chip, pwm, &wfhw, &wf_rounded);
if (err)
return err;
In this revision of the driver, I have not implemented the read-waveform
callbacks, so the Rust PWM abstractions correctly return -ENOTSUPP.
Uwe, this poses a problem, as reading from the duty and period registers
on the TH1520 SoC's PWM controller appears to be broken.
>
> Best regards
> Uwe
Best regards,
--
Michal Wilczynski <m.wilczynski@xxxxxxxxxxx>