Re: [PATCH v5 2/4] dt-bindings: opp: opp-v2-kryo-cpu: Document named opp-microvolt property

Christian Marangi
2023-10-02T19:10:46Z

On Mon, Oct 02, 2023 at 10:07:44PM +0300, Dmitry Baryshkov wrote:
> On Sat, 30 Sept 2023 at 13:22, Robert Marko <robimarko@gmail.com> wrote:
> >
> > From: Christian Marangi <ansuelsmth@gmail.com>
> >
> > Document named opp-microvolt property for opp-v2-kryo-cpu schema.
> > This property is used to declare multiple voltage ranges selected on the
> > different values read from efuses. The selection is done based on the
> > speed pvs values and the named opp-microvolt property is selected by the
> > qcom-cpufreq-nvmem driver.
> >
> > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> > Signed-off-by: Robert Marko <robimarko@gmail.com>
> > ---
> > Changes v5:
> > * Fix typo in opp items
> >
> > Changes v4:
> > * Address comments from Rob (meaning of pvs, drop of
> > driver specific info, drop of legacy single voltage OPP,
> > better specify max regulators supported)
> >
> > .../bindings/opp/opp-v2-kryo-cpu.yaml | 39 +++++++++++++++++++
> > 1 file changed, 39 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/opp/opp-v2-kryo-cpu.yaml b/Documentation/devicetree/bindings/opp/opp-v2-kryo-cpu.yaml
> > index 27ea7eca73e5..8d2a47e9a854 100644
> > --- a/Documentation/devicetree/bindings/opp/opp-v2-kryo-cpu.yaml
> > +++ b/Documentation/devicetree/bindings/opp/opp-v2-kryo-cpu.yaml
> > @@ -65,6 +65,12 @@ patternProperties:
> > 5: MSM8996SG, speedbin 1
> > 6: MSM8996SG, speedbin 2
> > 7-31: unused
> > +
> > + Bitmap for IPQ806X SoC:
> > + 0: IPQ8062
> > + 1: IPQ8064/IPQ8066/IPQ8068
> > + 2: IPQ8065/IPQ8069
> > + 3-31: unused
> > enum: [0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
> > 0x9, 0xd, 0xe, 0xf,
> > 0x10, 0x20, 0x30, 0x70]
> > @@ -73,6 +79,23 @@ patternProperties:
> >
> > required-opps: true
> >
> > + patternProperties:
> > + '^opp-microvolt-speed[0-9]+-pvs[0-9]+$':
> > + description: |
> > + Named opp-microvolt property following the same generic
> > + binding for named opp-microvolt.
> > +
> > + The correct voltage range is selected based on the values
> > + in the efuse for the speed and the pvs (power variable
> > + scaling).
>
> I suppose that simple 'true' schema should be enough since this is
> already mostly described in opp/opp-v2-base.yaml
>

Mhhh an example of the following implementation?

> > + minItems: 1
> > + maxItems: 4 # Up to 4 regulators: Core, Mem, Dig and HFPLL
> > + items:
> > + items:
> > + - description: nominal voltage
> > + - description: minimum voltage
> > + - description: maximum voltage
> > +
> > required:
> > - opp-hz
> >
> > @@ -258,6 +281,22 @@ examples:
> > };
> > };
> >
> > + /* Dummy opp table to give example for named opp-microvolt */
> > + opp-table-2 {
> > + compatible = "operating-points-v2-kryo-cpu";
> > + nvmem-cells = <&speedbin_efuse>;
> > +
> > + opp-384000000 {
> > + opp-hz = /bits/ 64 <384000000>;
> > + opp-microvolt-speed0-pvs0 = <1000000 950000 1050000>;
> > + opp-microvolt-speed0-pvs1 = <925000 878750 971250>;
> > + opp-microvolt-speed0-pvs2 = <875000 831250 918750>;
> > + opp-microvolt-speed0-pvs3 = <800000 760000 840000>;
> > + opp-supported-hw = <0x7>;
> > + clock-latency-ns = <100000>;
> > + };
> > + };
> > +
> > smem {
> > compatible = "qcom,smem";
> > memory-region = <&smem_mem>;
> > --
> > 2.41.0
> >
>
>
> --
> With best wishes
> Dmitry

--
Ansuel