[PATCH v15 0/7] Rust Abstractions for PWM subsystem with TH1520 PWM driver

Michal Wilczynski m.wilczynski at samsung.com
Wed Oct 15 11:07:04 PDT 2025



On 10/15/25 19:52, Michal Wilczynski wrote:
> 
> 
> On 10/13/25 18:48, Uwe Kleine-König wrote:
>>
>> diff --git a/drivers/pwm/pwm_th1520.rs b/drivers/pwm/pwm_th1520.rs
>> index c9fd1d8d17bc..a5666052b7ce 100644
>> --- a/drivers/pwm/pwm_th1520.rs
>> +++ b/drivers/pwm/pwm_th1520.rs
>> @@ -121,6 +121,7 @@ fn round_waveform_tohw(
>>          wf: &pwm::Waveform,
>>      ) -> Result<pwm::RoundedWaveform<Self::WfHw>> {
>>          let data = chip.drvdata();
>> +        let status = 0;
>>  
>>          if wf.period_length_ns == 0 {
>>              dev_dbg!(chip.device(), "Requested period is 0, disabling PWM.\n");
>> @@ -141,18 +142,13 @@ fn round_waveform_tohw(
>>          if period_cycles == 0 {
>>              dev_dbg!(
>>                  chip.device(),
>> -                "Requested period {} ns is too small for clock rate {} Hz, disabling PWM.\n",
>> +                "Requested period {} ns is too small for clock rate {} Hz, rounding up.\n",
>>                  wf.period_length_ns,
>>                  rate_hz
>>              );
>>  
>> -            return Ok(pwm::RoundedWaveform {
>> -                status: 0,
>> -                hardware_waveform: Th1520WfHw {
>> -                    enabled: false,
>> -                    ..Default::default()
>> -                },
>> -            });
>> +            period_cycles = 1;
>> +            status = 1;

Well status and period_cycles need to be mutable obviously, will change
that.


Best regards,
-- 
Michal Wilczynski <m.wilczynski at samsung.com>



More information about the linux-riscv mailing list