Message ID | dedf8c02fdd9dbf169f43de74ead4c1434d89b45.1433434659.git.viresh.kumar@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jun 4, 2015 at 11:20 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote: > On few platforms, for power efficiency, we want the device to be > configured for a specific OPP while we put the device in suspend state. > > Add an optional property in operating-points-v2 bindings for that. > > Acked-by: Nishanth Menon <nm@ti.com> > Suggested-by: Nishanth Menon <nm@ti.com> > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> > --- > Documentation/devicetree/bindings/power/opp.txt | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/Documentation/devicetree/bindings/power/opp.txt b/Documentation/devicetree/bindings/power/opp.txt > index 2938c52dbf84..6c245d87dd50 100644 > --- a/Documentation/devicetree/bindings/power/opp.txt > +++ b/Documentation/devicetree/bindings/power/opp.txt > @@ -74,6 +74,8 @@ This describes the OPPs belonging to a device. This node can have following > Missing property means devices have independent clock/voltage/current lines, > but they share OPP tables. > > +- opp-suspend: Phandle of the OPP to set while device is suspended. > + I would just do a bool property in the OPP you want. Rob > > * OPP Node > > @@ -145,9 +147,10 @@ Example 1: Single cluster Dual-core ARM cortex A9, switch DVFS states together. > > cpu0_opp_table: opp_table0 { > compatible = "operating-points-v2"; > + opp-suspend = <&suspend_opp>; > opp-shared; > > - opp00 { > + suspend-opp: opp00 { > opp-hz = <1000000000>; > opp-microvolt = <970000 975000 985000>; > opp-microamp = <70000>; > @@ -219,13 +222,14 @@ independently. > > cpu_opp_table: opp_table { > compatible = "operating-points-v2"; > + opp-suspend = <&suspend_opp>; > > /* > * Missing opp-shared property means CPUs switch DVFS states > * independently. > */ > > - opp00 { > + suspend-opp: opp00 { > opp-hz = <1000000000>; > opp-microvolt = <970000 975000 985000>; > opp-microamp = <70000>; > @@ -298,9 +302,10 @@ DVFS state together. > > cluster0_opp: opp_table0 { > compatible = "operating-points-v2"; > + opp-suspend = <&suspend_opp0>; > opp-shared; > > - opp00 { > + suspend-opp: opp00 { > opp-hz = <1000000000>; > opp-microvolt = <970000 975000 985000>; > opp-microamp = <70000>; > @@ -323,9 +328,10 @@ DVFS state together. > > cluster1_opp: opp_table1 { > compatible = "operating-points-v2"; > + opp-suspend = <&suspend_opp1>; > opp-shared; > > - opp10 { > + suspend-opp: opp10 { > opp-hz = <1300000000>; > opp-microvolt = <1045000 1050000 1055000>; > opp-microamp = <95000>; > -- > 2.4.0 > > -- > To unsubscribe from this list: send the line "unsubscribe devicetree" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
On 16 June 2015 at 05:05, Rob Herring <robherring2@gmail.com> wrote: >> +- opp-suspend: Phandle of the OPP to set while device is suspended. >> + > > I would just do a bool property in the OPP you want. I will do that if you want, no big deal. But I would like to explain why I did it this way. Nishanth asked the same thing earlier and now he looks convinced :) There can only be one OPP that can be selected during suspend. Allowing more than one OPP to select this property doesn't look like the right thing to me. In that case we have to make a rule that the first OPP in the table will be selected or error out in that case. And I thought that this is property of the table, instead of each OPP. For example, in code this will waste lots of space if we choose such a field in individual OPPs, and we will always keep it in the OPP-table thing.. But then this is DT :) I will wait for your reply Rob on this, and then will send an update. Thanks.
diff --git a/Documentation/devicetree/bindings/power/opp.txt b/Documentation/devicetree/bindings/power/opp.txt index 2938c52dbf84..6c245d87dd50 100644 --- a/Documentation/devicetree/bindings/power/opp.txt +++ b/Documentation/devicetree/bindings/power/opp.txt @@ -74,6 +74,8 @@ This describes the OPPs belonging to a device. This node can have following Missing property means devices have independent clock/voltage/current lines, but they share OPP tables. +- opp-suspend: Phandle of the OPP to set while device is suspended. + * OPP Node @@ -145,9 +147,10 @@ Example 1: Single cluster Dual-core ARM cortex A9, switch DVFS states together. cpu0_opp_table: opp_table0 { compatible = "operating-points-v2"; + opp-suspend = <&suspend_opp>; opp-shared; - opp00 { + suspend-opp: opp00 { opp-hz = <1000000000>; opp-microvolt = <970000 975000 985000>; opp-microamp = <70000>; @@ -219,13 +222,14 @@ independently. cpu_opp_table: opp_table { compatible = "operating-points-v2"; + opp-suspend = <&suspend_opp>; /* * Missing opp-shared property means CPUs switch DVFS states * independently. */ - opp00 { + suspend-opp: opp00 { opp-hz = <1000000000>; opp-microvolt = <970000 975000 985000>; opp-microamp = <70000>; @@ -298,9 +302,10 @@ DVFS state together. cluster0_opp: opp_table0 { compatible = "operating-points-v2"; + opp-suspend = <&suspend_opp0>; opp-shared; - opp00 { + suspend-opp: opp00 { opp-hz = <1000000000>; opp-microvolt = <970000 975000 985000>; opp-microamp = <70000>; @@ -323,9 +328,10 @@ DVFS state together. cluster1_opp: opp_table1 { compatible = "operating-points-v2"; + opp-suspend = <&suspend_opp1>; opp-shared; - opp10 { + suspend-opp: opp10 { opp-hz = <1300000000>; opp-microvolt = <1045000 1050000 1055000>; opp-microamp = <95000>;