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

From: Krzysztof Kozlowski
Date: Tue Nov 14 2023 - 16:11:05 EST


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.

This does not look right. What you want is to bind one device driver and
choose different functionality based on properties.

Best regards,
Krzysztof