RE: [PATCH v5 13/14] dt-bindings: cpufreq: Document operating-points-v2-kryo-cpu
From: ilialin
Date: Fri May 04 2018 - 02:47:38 EST
bbbb
> -----Original Message-----
> From: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> Sent: Friday, May 4, 2018 09:11
> To: Ilia Lin <ilialin@xxxxxxxxxxxxxx>
> Cc: mturquette@xxxxxxxxxxxx; sboyd@xxxxxxxxxx; robh@xxxxxxxxxx;
> mark.rutland@xxxxxxx; rjw@xxxxxxxxxxxxx; lgirdwood@xxxxxxxxx;
> broonie@xxxxxxxxxx; andy.gross@xxxxxxxxxx; david.brown@xxxxxxxxxx;
> catalin.marinas@xxxxxxx; will.deacon@xxxxxxx; linux-clk@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-
> pm@xxxxxxxxxxxxxxx; linux-arm-msm@xxxxxxxxxxxxxxx; linux-
> soc@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> rnayak@xxxxxxxxxxxxxx; amit.kucheria@xxxxxxxxxx;
> nicolas.dechesne@xxxxxxxxxx; celster@xxxxxxxxxxxxxx;
> tfinkel@xxxxxxxxxxxxxx
> Subject: Re: [PATCH v5 13/14] dt-bindings: cpufreq: Document operating-
> points-v2-kryo-cpu
>
> On 03-05-18, 14:52, Ilia Lin wrote:
> > In Certain Qualcomm Technologies, Inc. SoCs like apq8096 and msm8996
> > that have KRYO processors, the CPU ferequencies subset and voltage
> > value of each OPP varies based on the silicon variant in use.
> > Qualcomm Technologies, Inc. Process Voltage Scaling Tables defines the
> > voltage and frequency value based on the msm-id in SMEM and speedbin
> > blown in the efuse combination.
> > The qcom-cpufreq-kryo driver reads the msm-id and efuse value from the
> > SoC to provide the OPP framework with required information.
> > This is used to determine the voltage and frequency value for each OPP
> > of
> > operating-points-v2 table when it is parsed by the OPP framework.
> >
> > This change adds documentation.
> >
> > Signed-off-by: Ilia Lin <ilialin@xxxxxxxxxxxxxx>
> > ---
> > .../devicetree/bindings/opp/kryo-cpufreq.txt | 693
> +++++++++++++++++++++
> > 1 file changed, 693 insertions(+)
> > create mode 100644
> > Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
> >
> > diff --git a/Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
> > b/Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
> > new file mode 100644
> > index 0000000..20cef9d
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
> > @@ -0,0 +1,693 @@
> > +Qualcomm Technologies, Inc. KRYO CPUFreq and OPP bindings
> > +===================================
> > +
> > +In Certain Qualcomm Technologies, Inc. SoCs like apq8096 and msm8996
> > +that have KRYO processors, the CPU ferequencies subset and voltage
> > +value of each OPP varies based on the silicon variant in use.
> > +Qualcomm Technologies, Inc. Process Voltage Scaling Tables defines
> > +the voltage and frequency value based on the msm-id in SMEM and
> > +speedbin blown in the efuse combination.
> > +The qcom-cpufreq-kryo driver reads the msm-id and efuse value from
> > +the SoC to provide the OPP framework with required information
> (existing HW bitmap).
> > +This is used to determine the voltage and frequency value for each
> > +OPP of
> > +operating-points-v2 table when it is parsed by the OPP framework.
> > +
> > +Required properties:
> > +--------------------
> > +In 'cpus' nodes:
> > +- operating-points-v2: Phandle to the operating-points-v2 table to use.
> > +
> > +In 'operating-points-v2' table:
> > +- compatible: Should be
> > + - 'operating-points-v2-kryo-cpu' for apq8096 and msm8996.
> > +- nvmem-cells: A phandle pointing to a nvmem-cells node representing
> the
> > + efuse registers that has information about the
> > + speedbin that is used to select the right frequency/voltage
> > + value pair.
> > + Please refer the for nvmem-cells
> > + bindings
> Documentation/devicetree/bindings/nvmem/nvmem.txt
> > + and also examples below.
> > +
> > +In every OPP node:
> > +- opp-supported-hw: A single 32 bit bitmap value, representing
> compatible HW.
> > + Bitmap:
> > + 0: MSM8996 V3, speedbin 0
> > + 1: MSM8996 V3, speedbin 1
> > + 2: MSM8996 V3, speedbin 2
> > + 3: unused
> > + 4: MSM8996 SG, speedbin 0
> > + 5: MSM8996 SG, speedbin 1
> > + 6: MSM8996 SG, speedbin 2
> > + 7-31: unused
> > +
> > +Example 1:
> > +---------
> > +
> > + cpus {
> > + #address-cells = <2>;
> > + #size-cells = <0>;
> > +
> > + CPU0: cpu@0 {
> > + device_type = "cpu";
> > + compatible = "qcom,kryo";
> > + reg = <0x0 0x0>;
> > + enable-method = "psci";
> > + clocks = <&kryocc 0>;
> > + cpu-supply = <&pm8994_s11_saw>;
> > + operating-points-v2 = <&cluster0_opp>;
> > + /* cooling options */
> > + cooling-min-level = <0>;
> > + cooling-max-level = <15>;
>
> cooling min/max aren't required anymore, as I told you in the previous
> version :)
Sure, I removed them in the DT, but forgot in the documentation. Will fix.
>
> > + cluster0_opp: opp_table0 {
> > + compatible = "operating-points-v2-kryo-cpu";
> > + nvmem-cells = <&speedbin_efuse>;
> > + opp-shared;
> > +
> > + opp-307200000 {
> > + opp-hz = /bits/ 64 < 307200000 >;
>
> You fixed spacing around frequency values in the dts but not here.
Same as above.
>
> > + opp-microvolt = <905000 905000 1140000>;
> > + opp-supported-hw = <0x77>;
> > + clock-latency-ns = <200000>;
> > + };
>
> --
> viresh