RE: [LINUX PATCH v2 1/3] clocksource: timer-cadence-ttc: Do not probe TTC device configured as PWM

From: Sayyed, Mubin
Date: Wed Nov 15 2023 - 00:55:39 EST


Hi,

> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> Sent: Wednesday, November 15, 2023 2:41 AM
> To: Sayyed, Mubin <mubin.sayyed@xxxxxxx>;
> krzysztof.kozlowski+dt@xxxxxxxxxx; u.kleine-koenig@xxxxxxxxxxxxxx;
> thierry.reding@xxxxxxxxx; robh+dt@xxxxxxxxxx; conor+dt@xxxxxxxxxx;
> tglx@xxxxxxxxxxxxx; daniel.lezcano@xxxxxxxxxx; Simek, Michal
> <michal.simek@xxxxxxx>
> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-pwm@xxxxxxxxxxxxxxx; git (AMD-Xilinx)
> <git@xxxxxxx>; mubin10@xxxxxxxxx
> Subject: Re: [LINUX PATCH v2 1/3] clocksource: timer-cadence-ttc: Do not
> probe TTC device configured as PWM
>
> On 14/11/2023 13:47, Mubin Sayyed wrote:
> > TTC device can act either as clocksource/clockevent or PWM generator,
> > it would be decided by pwm-cells property.
> > TTC PWM feature would be supported through separate driver based on
> > PWM framework.
> >
> > If pwm-cells property is present in TTC node, it would be treated as
> > PWM device, and clocksource driver should just skip it.
> >
> > Signed-off-by: Mubin Sayyed <mubin.sayyed@xxxxxxx>
> > ---
> > Changes for v2:
> > - Added comment regarding pwm-cells property
> > ---
> > drivers/clocksource/timer-cadence-ttc.c | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/drivers/clocksource/timer-cadence-ttc.c
> > b/drivers/clocksource/timer-cadence-ttc.c
> > index 32daaac9b132..f8fcb1a4bdd0 100644
> > --- a/drivers/clocksource/timer-cadence-ttc.c
> > +++ b/drivers/clocksource/timer-cadence-ttc.c
> > @@ -477,6 +477,13 @@ static int __init ttc_timer_probe(struct
> platform_device *pdev)
> > u32 timer_width = 16;
> > struct device_node *timer = pdev->dev.of_node;
> >
> > + /*
> > + * If pwm-cells property is present in TTC node,
> > + * it would be treated as PWM device.
> > + */
> > + if (of_property_read_bool(timer, "#pwm-cells"))
> > + return -ENODEV;
>
> You will introduce dmesg errors, so regressions.
>
[Mubin]: I will change it to "return 0" to avoid dmesg errors.

> This does not look right. What you want is to bind one device driver and
> choose different functionality based on properties.
[Mubin]: I am doing it based on earlier discussion related to AXI Timer PWM driver. It was suggested to use #pwm-cells property for identifying role of device(PWM/clocksource) https://lore.kernel.org/linux-devicetree/20210513021631.GA878860@xxxxxxxxxxxxxxxxxx/.

Thanks,
Mubin
>
> Best regards,
> Krzysztof