Re: [PATCH v3 3/7] dt-bindings: ufs: common: add OPP table

From: Manivannan Sadhasivam
Date: Fri May 13 2022 - 14:32:45 EST


On Fri, May 13, 2022 at 11:10:20PM +0530, Manivannan Sadhasivam wrote:
> On Fri, May 13, 2022 at 08:13:43AM +0200, Krzysztof Kozlowski wrote:
> > Except scaling UFS and bus clocks, it's necessary to scale also the
> > voltages of regulators or power domain performance state levels. Adding
> > Operating Performance Points table allows to adjust power domain
> > performance state, depending on the UFS clock speed.
> >
> > OPPv2 deprecates previous property limited to clock scaling:
> > freq-table-hz.
> >
> > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> > Reviewed-by: Rob Herring <robh@xxxxxxxxxx>
> >
> > ---
> >
> > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>
> > ---
> > .../devicetree/bindings/ufs/ufs-common.yaml | 34 +++++++++++++++++--
> > 1 file changed, 31 insertions(+), 3 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/ufs/ufs-common.yaml b/Documentation/devicetree/bindings/ufs/ufs-common.yaml
> > index 47a4e9e1a775..d7d2c8a136bb 100644
> > --- a/Documentation/devicetree/bindings/ufs/ufs-common.yaml
> > +++ b/Documentation/devicetree/bindings/ufs/ufs-common.yaml
> > @@ -20,11 +20,24 @@ properties:
> > items:
> > - description: Minimum frequency for given clock in Hz
> > - description: Maximum frequency for given clock in Hz
> > + deprecated: true
> > description: |
> > + Preferred is operating-points-v2.
> > +
> > Array of <min max> operating frequencies in Hz stored in the same order
> > - as the clocks property. If this property is not defined or a value in the
> > - array is "0" then it is assumed that the frequency is set by the parent
> > - clock or a fixed rate clock source.
> > + as the clocks property. If either this property or operating-points-v2 is
> > + not defined or a value in the array is "0" then it is assumed that the
> > + frequency is set by the parent clock or a fixed rate clock source.
> > +
> > + operating-points-v2:
> > + description:
> > + Preferred over freq-table-hz.
> > + If present, each OPP must contain array of frequencies stored in the same
> > + order for each clock. If clock frequency in the array is "0" then it is
> > + assumed that the frequency is set by the parent clock or a fixed rate
> > + clock source.
>
> This description mentions only the clocks and not voltages. But in theory, the
> OPP table can contain other parameters like current, bandwidth, etc,... So to
> avoid confusion, I'd suggest to get rid of the description.
>
> > +
> > + opp-table: true
> >
> > interrupts:
> > maxItems: 1
> > @@ -75,8 +88,23 @@ properties:
> >
> > dependencies:
> > freq-table-hz: [ 'clocks' ]
> > + operating-points-v2: [ 'clocks', 'clock-names' ]
>
> What about voltage regulators if relevant opp property is present?
>

Current UFS driver model won't allow us to change both voltage supplies and clks
using OPP implementation. So please ignore my above comment.

Thanks,
Mani

> Thanks,
> Mani
>
> >
> > required:
> > - interrupts
> >
> > +allOf:
> > + - if:
> > + required:
> > + - freq-table-hz
> > + then:
> > + properties:
> > + operating-points-v2: false
> > + - if:
> > + required:
> > + - operating-points-v2
> > + then:
> > + properties:
> > + freq-table-hz: false
> > +
> > additionalProperties: true
> > --
> > 2.32.0
> >
>
> --
> மணிவண்ணன் சதாசிவம்

--
மணிவண்ணன் சதாசிவம்