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