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

From: Krzysztof Kozlowski
Date: Fri Nov 24 2023 - 06:35:55 EST


On 24/11/2023 12:03, Sayyed, Mubin wrote:
> Hi Krzysztof,
>
>> -----Original Message-----
>> From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
>> Sent: Wednesday, November 15, 2023 5:41 PM
>> To: Sayyed, Mubin <mubin.sayyed@xxxxxxx>
>> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
>> devicetree@xxxxxxxxxxxxxxx; linux-pwm@xxxxxxxxxxxxxxx; git (AMD-Xilinx)
>> <git@xxxxxxx>; mubin10@xxxxxxxxx; 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>
>> Subject: Re: [LINUX PATCH v2 1/3] clocksource: timer-cadence-ttc: Do not probe
>> TTC device configured as PWM
>>
>> On 15/11/2023 06:55, Sayyed, Mubin wrote:
>>>>> + /*
>>>>> + * 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.
>>
>> No, because solution is wrong.
>>
>>>
>>>> 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/.
>>
>> You are mixing bindings with driver. I said here about driver and yes - you must
>> use pwm-cells to differentiate that. It's obvious.
>>
>> So again, one driver binding.
> [Mubin]: I will explore whether mfd framework can be used to handle this.

You do not need MFD for this, because you do not have a really MFD. This
is just one device, so I expect here one driver. Why do you need
multiple drivers (which also would solve that problem but why?)?

Best regards,
Krzysztof