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 - 11:29:13 EST


On 24/11/2023 17:24, Krzysztof Kozlowski wrote:
>>>>> 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?)?
>> Cadence TTC IP can be used as timer(clocksource/clockevent) and PWM device.
>> We have drivers/clocksource/timer-cadence-ttc.c for clocksource/clockevent functionality.
>> New driver for PWM functionality will be added to drivers/pwm/pwm-cadence.c (3/3 of this
>> Series). In given SoC, multiple instances of TTC IP are possible(ZynqMP Ultrscale SoC has 4
>> Instances), few of them could be configured as clocksource/clockevent devices and others
>> as PWM ones. So, cloksource as well as PWM drivers for cadence TTC IP would be enabled in
>> the kernel.
>>
>> Now in this scenario, each TTC device would be matching with 2 drivers, clocksource and PWM, since
>> compatible string is same. If I don’t add #pwm-cells checking in clocksource driver and return
>> -ENODEV based on that, each device would always bind with clocksource driver. PWM driver
>> would never probe since clocksource driver probes ahead of PWM one in probing order.
>
> None of these above explain why you need two drivers.

And please do not answer to this with again: "I have two drivers...".

>
>>
>> I am exploring mfd to deal with said scenario. Do you see any better way to handle this?
>
> You basically repeated previous sentence about MFD without answering.
> Yeah, better way could be to have one driver. Why you cannot have it
> that way?
>
>
> Best regards,
> Krzysztof
>

Best regards,
Krzysztof