Message ID | 20220513061347.46480-4-krzysztof.kozlowski@linaro.org |
---|---|
State | Accepted |
Commit | e820de1d115fa52c792c78937e11661bd9165465 |
Headers | show |
Series | ufs: set power domain performance state when scaling gears | expand |
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@linaro.org> > > Reviewed-by: Rob Herring <robh@kernel.org> > > > > --- > > > > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > > --- > > .../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 > > > > -- > மணிவண்ணன் சதாசிவம்
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. + + opp-table: true interrupts: maxItems: 1 @@ -75,8 +88,23 @@ properties: dependencies: freq-table-hz: [ 'clocks' ] + operating-points-v2: [ 'clocks', 'clock-names' ] 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