On 21/10/2024 12:56, Dmitry Baryshkov wrote: >>> { } >>> }; >>> @@ -596,6 +635,14 @@ static int gpu_cc_sa8775p_probe(struct platform_device *pdev) >>> if (IS_ERR(regmap)) >>> return PTR_ERR(regmap); >>> >>> + if (of_device_is_compatible(pdev->dev.of_node, "qcom,qcs8300-gpucc")) { >> >> Why we cannot use match data? Seeing compatibles in the code is >> unexpected and does not scale. > > Because using match data doesn't scale in such cases. We have been using I don't understand how it could not scale. That's the entire point of match data - scaling. > compatibles to patch clock trees for the platforms for quite a while. > You can see that each of the "tunings" is slightly different. From my You have one driver, where are these tunings which are supposed to be different? You need here only enum or define, in the simplest choice. > point of view, this approach provides a nice balance between having a > completely duplicate driver and having a driver which self-patches the > tree. How duplicate driver got into this? I don't think we talk about the same. I meant ID table match data. > Best regards, Krzysztof