On Fri, 2022-04-01 at 18:32 +0200, Krzysztof Kozlowski wrote: > On 01/04/2022 15:26, Jia-Wei Chang wrote: > > On Thu, 2022-03-24 at 11:33 +0100, Krzysztof Kozlowski wrote: > > > On 24/03/2022 10:38, Jia-Wei Chang wrote: > > > > > > > > > > > > > > > > > diff --git > > > > > > a/Documentation/devicetree/bindings/cpufreq/cpufreq- > > > > > > mediatek.yaml > > > > > > b/Documentation/devicetree/bindings/cpufreq/cpufreq- > > > > > > mediatek.yaml > > > > > > new file mode 100644 > > > > > > index 000000000000..584946eb3790 > > > > > > --- /dev/null > > > > > > +++ b/Documentation/devicetree/bindings/cpufreq/cpufreq- > > > > > > mediatek.yaml > > > > > > @@ -0,0 +1,131 @@ > > > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > > > +%YAML 1.2 > > > > > > +--- > > > > > > +$id: > > > > > > > > > > https://urldefense.com/v3/__http://devicetree.org/schemas/cpufreq/cpufreq-mediatek.yaml*__;Iw!!CTRNKA9wMg0ARbw!xbKG4TgD0MRpMLyGJVBZEGpZFrNOclrcxOCx_APKo5Nmg8nF2x5PcBdE0unvL2NdpChkMA$ > > > > > > > > > > > > +$schema: > > > > > > > > > > https://urldefense.com/v3/__http://devicetree.org/meta-schemas/core.yaml*__;Iw!!CTRNKA9wMg0ARbw!xbKG4TgD0MRpMLyGJVBZEGpZFrNOclrcxOCx_APKo5Nmg8nF2x5PcBdE0unvL2O8T_oxCQ$ > > > > > > > > > > > > + > > > > > > +title: Mediatek CPUFREQ driver Device Tree Bindings > > > > > > > > > > Please remove "driver Device Tree Bindings" because the title > > > > > should > > > > > describe the hardware. Therefore it could be something like > > > > > "Mediatek > > > > > SoC CPU frequency and voltage scaling". > > > > > > > > Thanks for your suggestion of title. > > > > Or should I use the origin title "Binding for MediaTek's > > > > CPUFreq > > > > driver"? > > > > > > Mediatek CPUFREQ > > > or > > > Mediatek CPU frequency scaling > > > > Ok, I will choose one of it. > > > > > > > > > > > > > > > > > > > How is it related to cpufreq-mediatek-hw.yaml? The > > > > > names/title > > > > > look > > > > > unfortunately too similar. > > > > > > > > No, mediatek-cpufreq is performing in kernel driver rather than > > > > on > > > > hardware. > > > > On the other hand, mediatek-cpufreq-hw is performing on > > > > hardware. > > > > That's why "hw" is present in its name. > > > > > > Unfortunately, I do not get it. The bindings are only about > > > hardware, > > > so > > > how bindings could be about CPU frequency scaling not in > > > hardware? > > > > Sorry, let me correct my statements. > > > > For mediatek-cpufreq here, the required hardware are clock and > > regulator which have to be under control of mediatek-cpufreq. > > That's > > the reason why it needs bindings. > > > > mediatek-cpufreq scales up and down voltage and frequency via > > kernel > > framework of clock and regulator, however, mediatek-cpufreq-hw > > delegate > > the voltage and frequency control to a hardware agent instead. > > OK, that makes sense, thanks for explanation. > > > > > > > > > > > > > > > > > > > > In general this does not look like proper bindings (see also > > > > > below > > > > > lack > > > > > of compatible). Bindings describe the hardware, so what is > > > > > exactly > > > > > the > > > > > hardware here? > > > > > > > > Except for SoC, there's no requirement of hardware binding for > > > > mediatek-cpufreq. > > > > mediatek-cpufreq recognizes the compatible of Mediatek SoC > > > > while > > > > probing. > > > > > > What is the hardware here? If there is no requirement for > > > bindings > > > for > > > mediate-cpufreq, why do we have this patch here? > > > > Sorry, that's my mistake. > > Clock and regulator are required hardware for mediatek-cpufreq. > > > > > > > > > > > > > > > > > > > > + > > > > > > +maintainers: > > > > > > + - Jia-Wei Chang <jia-wei.chang@xxxxxxxxxxxx> > > > > > > + > > > > > > +description: | > > > > > > + CPUFREQ is used for scaling clock frequency of CPUs. > > > > > > + The module cooperates with CCI DEVFREQ to manage > > > > > > frequency > > > > > > for > > > > > > some Mediatek > > > > > > + SoCs. > > > > > > + > > > > > > +properties: > > > > > > > > > > How is this schema going to be applied? I don't see here > > > > > select > > > > > neither > > > > > compatible. > > > > > > > > As mentioned above, only compatible of SoC is required for > > > > mediatek- > > > > cpufreq. > > > > > > It does not answer my questions. How the schema is going to be > > > applied? > > > > Currently, we do use compatible of SoC to probe mediatek-cpufreq. > > Probing and binding to compatible is correct, but there is no > compatible > here, so the schema is a no-op. Does nothing. Correct. I will update it in the next version. > > > If the better way is using clock and regulator opp, do you have a > > suggestion to approach that? > > I mean I can't find a good example from other vendors trying to do > > that > > way. Or maybe I miss something? > > One other way (proper) is to use cpufreq-dt and existing bindings. I > understand that maybe you need some specific bindings here, but I > fail > to see how they would work. IOW, you don't have the compatible, no > select, so nothing can use these bindings. Also bindings do not refer > to > any specific hardware, like SoC model. > > It's good that you try to convert existing bindings to DT schema, but > with that they should be probably fixed/updated to match proper > bindings. I got it. I will add compatible information to property of bindings and dts example here as well. Should I split the overall change of yaml into two patches? One for conversion of bindings and the other for the rest of change. > > Best regards, > Krzysztof