~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/opp/opp-v2.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/devicetree/bindings/opp/opp-v2.yaml (Version linux-6.12-rc7) and /Documentation/devicetree/bindings/opp/opp-v2.yaml (Version linux-6.9.12)


  1 # SPDX-License-Identifier: (GPL-2.0-only OR BS      1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2                                           2 %YAML 1.2
  3 ---                                                 3 ---
  4 $id: http://devicetree.org/schemas/opp/opp-v2.      4 $id: http://devicetree.org/schemas/opp/opp-v2.yaml#
  5 $schema: http://devicetree.org/meta-schemas/co      5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6                                                     6 
  7 title: Generic OPP (Operating Performance Poin      7 title: Generic OPP (Operating Performance Points)
  8                                                     8 
  9 maintainers:                                        9 maintainers:
 10   - Viresh Kumar <viresh.kumar@linaro.org>          10   - Viresh Kumar <viresh.kumar@linaro.org>
 11                                                    11 
 12 allOf:                                             12 allOf:
 13   - $ref: opp-v2-base.yaml#                        13   - $ref: opp-v2-base.yaml#
 14                                                    14 
 15 properties:                                        15 properties:
 16   compatible:                                      16   compatible:
 17     const: operating-points-v2                     17     const: operating-points-v2
 18                                                    18 
 19 unevaluatedProperties: false                       19 unevaluatedProperties: false
 20                                                    20 
 21 examples:                                          21 examples:
 22   - |                                              22   - |
 23     /*                                             23     /*
 24      * Example 1: Single cluster Dual-core ARM     24      * Example 1: Single cluster Dual-core ARM cortex A9, switch DVFS states
 25      * together.                                   25      * together.
 26      */                                            26      */
 27     cpus {                                         27     cpus {
 28         #address-cells = <1>;                      28         #address-cells = <1>;
 29         #size-cells = <0>;                         29         #size-cells = <0>;
 30                                                    30 
 31         cpu@0 {                                    31         cpu@0 {
 32             compatible = "arm,cortex-a9";          32             compatible = "arm,cortex-a9";
 33             device_type = "cpu";                   33             device_type = "cpu";
 34             reg = <0>;                             34             reg = <0>;
 35             next-level-cache = <&L2>;              35             next-level-cache = <&L2>;
 36             clocks = <&clk_controller 0>;          36             clocks = <&clk_controller 0>;
 37             clock-names = "cpu";                   37             clock-names = "cpu";
 38             cpu-supply = <&cpu_supply0>;           38             cpu-supply = <&cpu_supply0>;
 39             operating-points-v2 = <&cpu0_opp_t     39             operating-points-v2 = <&cpu0_opp_table0>;
 40         };                                         40         };
 41                                                    41 
 42         cpu@1 {                                    42         cpu@1 {
 43             compatible = "arm,cortex-a9";          43             compatible = "arm,cortex-a9";
 44             device_type = "cpu";                   44             device_type = "cpu";
 45             reg = <1>;                             45             reg = <1>;
 46             next-level-cache = <&L2>;              46             next-level-cache = <&L2>;
 47             clocks = <&clk_controller 0>;          47             clocks = <&clk_controller 0>;
 48             clock-names = "cpu";                   48             clock-names = "cpu";
 49             cpu-supply = <&cpu_supply0>;           49             cpu-supply = <&cpu_supply0>;
 50             operating-points-v2 = <&cpu0_opp_t     50             operating-points-v2 = <&cpu0_opp_table0>;
 51         };                                         51         };
 52     };                                             52     };
 53                                                    53 
 54     cpu0_opp_table0: opp-table {                   54     cpu0_opp_table0: opp-table {
 55         compatible = "operating-points-v2";        55         compatible = "operating-points-v2";
 56         opp-shared;                                56         opp-shared;
 57                                                    57 
 58         opp-1000000000 {                           58         opp-1000000000 {
 59             opp-hz = /bits/ 64 <1000000000>;       59             opp-hz = /bits/ 64 <1000000000>;
 60             opp-microvolt = <975000 970000 985     60             opp-microvolt = <975000 970000 985000>;
 61             opp-microamp = <70000>;                61             opp-microamp = <70000>;
 62             clock-latency-ns = <300000>;           62             clock-latency-ns = <300000>;
 63             opp-suspend;                           63             opp-suspend;
 64         };                                         64         };
 65         opp-1100000000 {                           65         opp-1100000000 {
 66             opp-hz = /bits/ 64 <1100000000>;       66             opp-hz = /bits/ 64 <1100000000>;
 67             opp-microvolt = <1000000 980000 10     67             opp-microvolt = <1000000 980000 1010000>;
 68             opp-microamp = <80000>;                68             opp-microamp = <80000>;
 69             clock-latency-ns = <310000>;           69             clock-latency-ns = <310000>;
 70         };                                         70         };
 71         opp-1200000000 {                           71         opp-1200000000 {
 72             opp-hz = /bits/ 64 <1200000000>;       72             opp-hz = /bits/ 64 <1200000000>;
 73             opp-microvolt = <1025000>;             73             opp-microvolt = <1025000>;
 74             clock-latency-ns = <290000>;           74             clock-latency-ns = <290000>;
 75             turbo-mode;                            75             turbo-mode;
 76         };                                         76         };
 77     };                                             77     };
 78                                                    78 
 79   - |                                              79   - |
 80     /*                                             80     /*
 81      * Example 2: Single cluster, Quad-core Qu     81      * Example 2: Single cluster, Quad-core Qualcom-krait, switches DVFS states
 82      * independently.                              82      * independently.
 83      */                                            83      */
 84     cpus {                                         84     cpus {
 85         #address-cells = <1>;                      85         #address-cells = <1>;
 86         #size-cells = <0>;                         86         #size-cells = <0>;
 87                                                    87 
 88         cpu@0 {                                    88         cpu@0 {
 89             compatible = "qcom,krait";             89             compatible = "qcom,krait";
 90             device_type = "cpu";                   90             device_type = "cpu";
 91             reg = <0>;                             91             reg = <0>;
 92             next-level-cache = <&L2>;              92             next-level-cache = <&L2>;
 93             clocks = <&clk_controller 0>;          93             clocks = <&clk_controller 0>;
 94             clock-names = "cpu";                   94             clock-names = "cpu";
 95             cpu-supply = <&cpu_supply0>;           95             cpu-supply = <&cpu_supply0>;
 96             operating-points-v2 = <&cpu_opp_ta     96             operating-points-v2 = <&cpu_opp_table>;
 97         };                                         97         };
 98                                                    98 
 99         cpu@1 {                                    99         cpu@1 {
100             compatible = "qcom,krait";            100             compatible = "qcom,krait";
101             device_type = "cpu";                  101             device_type = "cpu";
102             reg = <1>;                            102             reg = <1>;
103             next-level-cache = <&L2>;             103             next-level-cache = <&L2>;
104             clocks = <&clk_controller 1>;         104             clocks = <&clk_controller 1>;
105             clock-names = "cpu";                  105             clock-names = "cpu";
106             cpu-supply = <&cpu_supply1>;          106             cpu-supply = <&cpu_supply1>;
107             operating-points-v2 = <&cpu_opp_ta    107             operating-points-v2 = <&cpu_opp_table>;
108         };                                        108         };
109                                                   109 
110         cpu@2 {                                   110         cpu@2 {
111             compatible = "qcom,krait";            111             compatible = "qcom,krait";
112             device_type = "cpu";                  112             device_type = "cpu";
113             reg = <2>;                            113             reg = <2>;
114             next-level-cache = <&L2>;             114             next-level-cache = <&L2>;
115             clocks = <&clk_controller 2>;         115             clocks = <&clk_controller 2>;
116             clock-names = "cpu";                  116             clock-names = "cpu";
117             cpu-supply = <&cpu_supply2>;          117             cpu-supply = <&cpu_supply2>;
118             operating-points-v2 = <&cpu_opp_ta    118             operating-points-v2 = <&cpu_opp_table>;
119         };                                        119         };
120                                                   120 
121         cpu@3 {                                   121         cpu@3 {
122             compatible = "qcom,krait";            122             compatible = "qcom,krait";
123             device_type = "cpu";                  123             device_type = "cpu";
124             reg = <3>;                            124             reg = <3>;
125             next-level-cache = <&L2>;             125             next-level-cache = <&L2>;
126             clocks = <&clk_controller 3>;         126             clocks = <&clk_controller 3>;
127             clock-names = "cpu";                  127             clock-names = "cpu";
128             cpu-supply = <&cpu_supply3>;          128             cpu-supply = <&cpu_supply3>;
129             operating-points-v2 = <&cpu_opp_ta    129             operating-points-v2 = <&cpu_opp_table>;
130         };                                        130         };
131     };                                            131     };
132                                                   132 
133     cpu_opp_table: opp-table {                    133     cpu_opp_table: opp-table {
134         compatible = "operating-points-v2";       134         compatible = "operating-points-v2";
135                                                   135 
136         /*                                        136         /*
137          * Missing opp-shared property means C    137          * Missing opp-shared property means CPUs switch DVFS states
138          * independently.                         138          * independently.
139          */                                       139          */
140                                                   140 
141         opp-1000000000 {                          141         opp-1000000000 {
142             opp-hz = /bits/ 64 <1000000000>;      142             opp-hz = /bits/ 64 <1000000000>;
143             opp-microvolt = <975000 970000 985    143             opp-microvolt = <975000 970000 985000>;
144             opp-microamp = <70000>;               144             opp-microamp = <70000>;
145             clock-latency-ns = <300000>;          145             clock-latency-ns = <300000>;
146             opp-suspend;                          146             opp-suspend;
147         };                                        147         };
148         opp-1100000000 {                          148         opp-1100000000 {
149             opp-hz = /bits/ 64 <1100000000>;      149             opp-hz = /bits/ 64 <1100000000>;
150             opp-microvolt = <1000000 980000 10    150             opp-microvolt = <1000000 980000 1010000>;
151             opp-microamp = <80000>;               151             opp-microamp = <80000>;
152             clock-latency-ns = <310000>;          152             clock-latency-ns = <310000>;
153         };                                        153         };
154         opp-1200000000 {                          154         opp-1200000000 {
155             opp-hz = /bits/ 64 <1200000000>;      155             opp-hz = /bits/ 64 <1200000000>;
156             opp-microvolt = <1025000>;            156             opp-microvolt = <1025000>;
157             opp-microamp = <90000>;               157             opp-microamp = <90000>;
158             clock-latency-ns = <290000>;          158             clock-latency-ns = <290000>;
159             turbo-mode;                           159             turbo-mode;
160         };                                        160         };
161     };                                            161     };
162                                                   162 
163   - |                                             163   - |
164     /*                                            164     /*
165      * Example 3: Dual-cluster, Dual-core per     165      * Example 3: Dual-cluster, Dual-core per cluster. CPUs within a cluster switch
166      * DVFS state together.                       166      * DVFS state together.
167      */                                           167      */
168     cpus {                                        168     cpus {
169         #address-cells = <1>;                     169         #address-cells = <1>;
170         #size-cells = <0>;                        170         #size-cells = <0>;
171                                                   171 
172         cpu@0 {                                   172         cpu@0 {
173             compatible = "arm,cortex-a7";         173             compatible = "arm,cortex-a7";
174             device_type = "cpu";                  174             device_type = "cpu";
175             reg = <0>;                            175             reg = <0>;
176             next-level-cache = <&L2>;             176             next-level-cache = <&L2>;
177             clocks = <&clk_controller 0>;         177             clocks = <&clk_controller 0>;
178             clock-names = "cpu";                  178             clock-names = "cpu";
179             cpu-supply = <&cpu_supply0>;          179             cpu-supply = <&cpu_supply0>;
180             operating-points-v2 = <&cluster0_o    180             operating-points-v2 = <&cluster0_opp>;
181         };                                        181         };
182                                                   182 
183         cpu@1 {                                   183         cpu@1 {
184             compatible = "arm,cortex-a7";         184             compatible = "arm,cortex-a7";
185             device_type = "cpu";                  185             device_type = "cpu";
186             reg = <1>;                            186             reg = <1>;
187             next-level-cache = <&L2>;             187             next-level-cache = <&L2>;
188             clocks = <&clk_controller 0>;         188             clocks = <&clk_controller 0>;
189             clock-names = "cpu";                  189             clock-names = "cpu";
190             cpu-supply = <&cpu_supply0>;          190             cpu-supply = <&cpu_supply0>;
191             operating-points-v2 = <&cluster0_o    191             operating-points-v2 = <&cluster0_opp>;
192         };                                        192         };
193                                                   193 
194         cpu@100 {                                 194         cpu@100 {
195             compatible = "arm,cortex-a15";        195             compatible = "arm,cortex-a15";
196             device_type = "cpu";                  196             device_type = "cpu";
197             reg = <100>;                          197             reg = <100>;
198             next-level-cache = <&L2>;             198             next-level-cache = <&L2>;
199             clocks = <&clk_controller 1>;         199             clocks = <&clk_controller 1>;
200             clock-names = "cpu";                  200             clock-names = "cpu";
201             cpu-supply = <&cpu_supply1>;          201             cpu-supply = <&cpu_supply1>;
202             operating-points-v2 = <&cluster1_o    202             operating-points-v2 = <&cluster1_opp>;
203         };                                        203         };
204                                                   204 
205         cpu@101 {                                 205         cpu@101 {
206             compatible = "arm,cortex-a15";        206             compatible = "arm,cortex-a15";
207             device_type = "cpu";                  207             device_type = "cpu";
208             reg = <101>;                          208             reg = <101>;
209             next-level-cache = <&L2>;             209             next-level-cache = <&L2>;
210             clocks = <&clk_controller 1>;         210             clocks = <&clk_controller 1>;
211             clock-names = "cpu";                  211             clock-names = "cpu";
212             cpu-supply = <&cpu_supply1>;          212             cpu-supply = <&cpu_supply1>;
213             operating-points-v2 = <&cluster1_o    213             operating-points-v2 = <&cluster1_opp>;
214         };                                        214         };
215     };                                            215     };
216                                                   216 
217     cluster0_opp: opp-table-0 {                   217     cluster0_opp: opp-table-0 {
218         compatible = "operating-points-v2";       218         compatible = "operating-points-v2";
219         opp-shared;                               219         opp-shared;
220                                                   220 
221         opp-1000000000 {                          221         opp-1000000000 {
222             opp-hz = /bits/ 64 <1000000000>;      222             opp-hz = /bits/ 64 <1000000000>;
223             opp-microvolt = <975000 970000 985    223             opp-microvolt = <975000 970000 985000>;
224             opp-microamp = <70000>;               224             opp-microamp = <70000>;
225             clock-latency-ns = <300000>;          225             clock-latency-ns = <300000>;
226             opp-suspend;                          226             opp-suspend;
227         };                                        227         };
228         opp-1100000000 {                          228         opp-1100000000 {
229             opp-hz = /bits/ 64 <1100000000>;      229             opp-hz = /bits/ 64 <1100000000>;
230             opp-microvolt = <1000000 980000 10    230             opp-microvolt = <1000000 980000 1010000>;
231             opp-microamp = <80000>;               231             opp-microamp = <80000>;
232             clock-latency-ns = <310000>;          232             clock-latency-ns = <310000>;
233         };                                        233         };
234         opp-1200000000 {                          234         opp-1200000000 {
235             opp-hz = /bits/ 64 <1200000000>;      235             opp-hz = /bits/ 64 <1200000000>;
236             opp-microvolt = <1025000>;            236             opp-microvolt = <1025000>;
237             opp-microamp = <90000>;               237             opp-microamp = <90000>;
238             clock-latency-ns = <290000>;          238             clock-latency-ns = <290000>;
239             turbo-mode;                           239             turbo-mode;
240         };                                        240         };
241     };                                            241     };
242                                                   242 
243     cluster1_opp: opp-table-1 {                   243     cluster1_opp: opp-table-1 {
244         compatible = "operating-points-v2";       244         compatible = "operating-points-v2";
245         opp-shared;                               245         opp-shared;
246                                                   246 
247         opp-1300000000 {                          247         opp-1300000000 {
248             opp-hz = /bits/ 64 <1300000000>;      248             opp-hz = /bits/ 64 <1300000000>;
249             opp-microvolt = <1050000 1045000 1    249             opp-microvolt = <1050000 1045000 1055000>;
250             opp-microamp = <95000>;               250             opp-microamp = <95000>;
251             clock-latency-ns = <400000>;          251             clock-latency-ns = <400000>;
252             opp-suspend;                          252             opp-suspend;
253         };                                        253         };
254         opp-1400000000 {                          254         opp-1400000000 {
255             opp-hz = /bits/ 64 <1400000000>;      255             opp-hz = /bits/ 64 <1400000000>;
256             opp-microvolt = <1075000>;            256             opp-microvolt = <1075000>;
257             opp-microamp = <100000>;              257             opp-microamp = <100000>;
258             clock-latency-ns = <400000>;          258             clock-latency-ns = <400000>;
259         };                                        259         };
260         opp-1500000000 {                          260         opp-1500000000 {
261             opp-hz = /bits/ 64 <1500000000>;      261             opp-hz = /bits/ 64 <1500000000>;
262             opp-microvolt = <1100000 1010000 1    262             opp-microvolt = <1100000 1010000 1110000>;
263             opp-microamp = <95000>;               263             opp-microamp = <95000>;
264             clock-latency-ns = <400000>;          264             clock-latency-ns = <400000>;
265             turbo-mode;                           265             turbo-mode;
266         };                                        266         };
267     };                                            267     };
268                                                   268 
269   - |                                             269   - |
270     /* Example 4: Handling multiple regulators    270     /* Example 4: Handling multiple regulators */
271     cpus {                                        271     cpus {
272         #address-cells = <1>;                     272         #address-cells = <1>;
273         #size-cells = <0>;                        273         #size-cells = <0>;
274                                                   274 
275         cpu@0 {                                   275         cpu@0 {
276             compatible = "foo,cpu-type";          276             compatible = "foo,cpu-type";
277             device_type = "cpu";                  277             device_type = "cpu";
278             reg = <0>;                            278             reg = <0>;
279                                                   279 
280             vcc0-supply = <&cpu_supply0>;         280             vcc0-supply = <&cpu_supply0>;
281             vcc1-supply = <&cpu_supply1>;         281             vcc1-supply = <&cpu_supply1>;
282             vcc2-supply = <&cpu_supply2>;         282             vcc2-supply = <&cpu_supply2>;
283             operating-points-v2 = <&cpu0_opp_t    283             operating-points-v2 = <&cpu0_opp_table4>;
284         };                                        284         };
285     };                                            285     };
286                                                   286 
287     cpu0_opp_table4: opp-table-0 {                287     cpu0_opp_table4: opp-table-0 {
288         compatible = "operating-points-v2";       288         compatible = "operating-points-v2";
289         opp-shared;                               289         opp-shared;
290                                                   290 
291         opp-1000000000 {                          291         opp-1000000000 {
292             opp-hz = /bits/ 64 <1000000000>;      292             opp-hz = /bits/ 64 <1000000000>;
293             opp-microvolt = <970000>, /* Suppl    293             opp-microvolt = <970000>, /* Supply 0 */
294                             <960000>, /* Suppl    294                             <960000>, /* Supply 1 */
295                             <960000>; /* Suppl    295                             <960000>; /* Supply 2 */
296             opp-microamp =  <70000>,  /* Suppl    296             opp-microamp =  <70000>,  /* Supply 0 */
297                             <70000>,  /* Suppl    297                             <70000>,  /* Supply 1 */
298                             <70000>;  /* Suppl    298                             <70000>;  /* Supply 2 */
299             clock-latency-ns = <300000>;          299             clock-latency-ns = <300000>;
300         };                                        300         };
301                                                   301 
302         /* OR */                                  302         /* OR */
303                                                   303 
304         opp-1000000001 {                          304         opp-1000000001 {
305             opp-hz = /bits/ 64 <1000000001>;      305             opp-hz = /bits/ 64 <1000000001>;
306             opp-microvolt = <975000 970000 985    306             opp-microvolt = <975000 970000 985000>, /* Supply 0 */
307                             <965000 960000 975    307                             <965000 960000 975000>, /* Supply 1 */
308                             <965000 960000 975    308                             <965000 960000 975000>; /* Supply 2 */
309             opp-microamp =  <70000>,    /* Sup    309             opp-microamp =  <70000>,    /* Supply 0 */
310                 <70000>,    /* Supply 1 */        310                 <70000>,    /* Supply 1 */
311                 <70000>;    /* Supply 2 */        311                 <70000>;    /* Supply 2 */
312             clock-latency-ns = <300000>;          312             clock-latency-ns = <300000>;
313         };                                        313         };
314                                                   314 
315         /* OR */                                  315         /* OR */
316                                                   316 
317         opp-1000000002 {                          317         opp-1000000002 {
318             opp-hz = /bits/ 64 <1000000002>;      318             opp-hz = /bits/ 64 <1000000002>;
319             opp-microvolt = <975000 970000 985    319             opp-microvolt = <975000 970000 985000>, /* Supply 0 */
320                 <965000 960000 975000>, /* Sup    320                 <965000 960000 975000>, /* Supply 1 */
321                 <965000 960000 975000>; /* Sup    321                 <965000 960000 975000>; /* Supply 2 */
322             opp-microamp =  <70000>,    /* Sup    322             opp-microamp =  <70000>,    /* Supply 0 */
323                 <0>,      /* Supply 1 doesn't     323                 <0>,      /* Supply 1 doesn't need this */
324                 <70000>;    /* Supply 2 */        324                 <70000>;    /* Supply 2 */
325             clock-latency-ns = <300000>;          325             clock-latency-ns = <300000>;
326         };                                        326         };
327     };                                            327     };
328                                                   328 
329   - |                                             329   - |
330     /*                                            330     /*
331      * Example 5: opp-supported-hw                331      * Example 5: opp-supported-hw
332      * (example: three level hierarchy of vers    332      * (example: three level hierarchy of versions: cuts, substrate and process)
333      */                                           333      */
334     cpus {                                        334     cpus {
335         #address-cells = <1>;                     335         #address-cells = <1>;
336         #size-cells = <0>;                        336         #size-cells = <0>;
337                                                   337 
338         cpu@0 {                                   338         cpu@0 {
339             compatible = "arm,cortex-a7";         339             compatible = "arm,cortex-a7";
340             device_type = "cpu";                  340             device_type = "cpu";
341             reg = <0>;                            341             reg = <0>;
342             cpu-supply = <&cpu_supply>;           342             cpu-supply = <&cpu_supply>;
343             operating-points-v2 = <&cpu0_opp_t    343             operating-points-v2 = <&cpu0_opp_table_slow>;
344         };                                        344         };
345     };                                            345     };
346                                                   346 
347     cpu0_opp_table_slow: opp-table {              347     cpu0_opp_table_slow: opp-table {
348         compatible = "operating-points-v2";       348         compatible = "operating-points-v2";
349         opp-shared;                               349         opp-shared;
350                                                   350 
351         opp-600000000 {                           351         opp-600000000 {
352             /*                                    352             /*
353              * Supports all substrate and proc    353              * Supports all substrate and process versions for 0xF
354              * cuts, i.e. only first four cuts    354              * cuts, i.e. only first four cuts.
355              */                                   355              */
356             opp-supported-hw = <0xF 0xFFFFFFFF    356             opp-supported-hw = <0xF 0xFFFFFFFF 0xFFFFFFFF>;
357             opp-hz = /bits/ 64 <600000000>;       357             opp-hz = /bits/ 64 <600000000>;
358         };                                        358         };
359                                                   359 
360         opp-800000000 {                           360         opp-800000000 {
361             /*                                    361             /*
362              * Supports:                          362              * Supports:
363              * - cuts: only one, 6th cut (repr    363              * - cuts: only one, 6th cut (represented by 6th bit).
364              * - substrate: supports 16 differ    364              * - substrate: supports 16 different substrate versions
365              * - process: supports 9 different    365              * - process: supports 9 different process versions
366              */                                   366              */
367             opp-supported-hw = <0x20 0xff0000f    367             opp-supported-hw = <0x20 0xff0000ff 0x0000f4f0>;
368             opp-hz = /bits/ 64 <800000000>;       368             opp-hz = /bits/ 64 <800000000>;
369         };                                        369         };
370                                                   370 
371         opp-900000000 {                           371         opp-900000000 {
372             /*                                    372             /*
373              * Supports:                          373              * Supports:
374              * - All cuts and substrate where     374              * - All cuts and substrate where process version is 0x2.
375              * - All cuts and process where su    375              * - All cuts and process where substrate version is 0x2.
376              */                                   376              */
377             opp-supported-hw = <0xFFFFFFFF 0xF    377             opp-supported-hw = <0xFFFFFFFF 0xFFFFFFFF 0x02>,
378                                <0xFFFFFFFF 0x0    378                                <0xFFFFFFFF 0x01 0xFFFFFFFF>;
379             opp-hz = /bits/ 64 <900000000>;       379             opp-hz = /bits/ 64 <900000000>;
380         };                                        380         };
381     };                                            381     };
382                                                   382 
383   - |                                             383   - |
384     /*                                            384     /*
385      * Example 6: opp-microvolt-<name>, opp-mi    385      * Example 6: opp-microvolt-<name>, opp-microamp-<name>:
386      * (example: device with two possible micr    386      * (example: device with two possible microvolt ranges: slow and fast)
387      */                                           387      */
388     cpus {                                        388     cpus {
389         #address-cells = <1>;                     389         #address-cells = <1>;
390         #size-cells = <0>;                        390         #size-cells = <0>;
391                                                   391 
392         cpu@0 {                                   392         cpu@0 {
393             compatible = "arm,cortex-a7";         393             compatible = "arm,cortex-a7";
394             device_type = "cpu";                  394             device_type = "cpu";
395             reg = <0>;                            395             reg = <0>;
396             operating-points-v2 = <&cpu0_opp_t    396             operating-points-v2 = <&cpu0_opp_table6>;
397         };                                        397         };
398     };                                            398     };
399                                                   399 
400     cpu0_opp_table6: opp-table-0 {                400     cpu0_opp_table6: opp-table-0 {
401         compatible = "operating-points-v2";       401         compatible = "operating-points-v2";
402         opp-shared;                               402         opp-shared;
403                                                   403 
404         opp-1000000000 {                          404         opp-1000000000 {
405             opp-hz = /bits/ 64 <1000000000>;      405             opp-hz = /bits/ 64 <1000000000>;
406             opp-microvolt-slow = <915000 90000    406             opp-microvolt-slow = <915000 900000 925000>;
407             opp-microvolt-fast = <975000 97000    407             opp-microvolt-fast = <975000 970000 985000>;
408             opp-microamp-slow =  <70000>;         408             opp-microamp-slow =  <70000>;
409             opp-microamp-fast =  <71000>;         409             opp-microamp-fast =  <71000>;
410         };                                        410         };
411                                                   411 
412         opp-1200000000 {                          412         opp-1200000000 {
413             opp-hz = /bits/ 64 <1200000000>;      413             opp-hz = /bits/ 64 <1200000000>;
414             opp-microvolt-slow = <915000 90000    414             opp-microvolt-slow = <915000 900000 925000>, /* Supply vcc0 */
415                                  <925000 91000    415                                  <925000 910000 935000>; /* Supply vcc1 */
416             opp-microvolt-fast = <975000 97000    416             opp-microvolt-fast = <975000 970000 985000>, /* Supply vcc0 */
417                                  <965000 96000    417                                  <965000 960000 975000>; /* Supply vcc1 */
418             opp-microamp =  <70000>; /* Will b    418             opp-microamp =  <70000>; /* Will be used for both slow/fast */
419         };                                        419         };
420     };                                            420     };
421                                                   421 
422   - |                                             422   - |
423     /*                                            423     /*
424      * Example 7: Single cluster Quad-core ARM    424      * Example 7: Single cluster Quad-core ARM cortex A53, OPP points from firmware,
425      * distinct clock controls but two sets of    425      * distinct clock controls but two sets of clock/voltage/current lines.
426      */                                           426      */
427     cpus {                                        427     cpus {
428         #address-cells = <2>;                     428         #address-cells = <2>;
429         #size-cells = <0>;                        429         #size-cells = <0>;
430                                                   430 
431         cpu@0 {                                   431         cpu@0 {
432             compatible = "arm,cortex-a53";        432             compatible = "arm,cortex-a53";
433             device_type = "cpu";                  433             device_type = "cpu";
434             reg = <0x0 0x100>;                    434             reg = <0x0 0x100>;
435             next-level-cache = <&A53_L2>;         435             next-level-cache = <&A53_L2>;
436             clocks = <&dvfs_controller 0>;        436             clocks = <&dvfs_controller 0>;
437             operating-points-v2 = <&cpu_opp0_t    437             operating-points-v2 = <&cpu_opp0_table>;
438         };                                        438         };
439         cpu@1 {                                   439         cpu@1 {
440             compatible = "arm,cortex-a53";        440             compatible = "arm,cortex-a53";
441             device_type = "cpu";                  441             device_type = "cpu";
442             reg = <0x0 0x101>;                    442             reg = <0x0 0x101>;
443             next-level-cache = <&A53_L2>;         443             next-level-cache = <&A53_L2>;
444             clocks = <&dvfs_controller 1>;        444             clocks = <&dvfs_controller 1>;
445             operating-points-v2 = <&cpu_opp0_t    445             operating-points-v2 = <&cpu_opp0_table>;
446         };                                        446         };
447         cpu@2 {                                   447         cpu@2 {
448             compatible = "arm,cortex-a53";        448             compatible = "arm,cortex-a53";
449             device_type = "cpu";                  449             device_type = "cpu";
450             reg = <0x0 0x102>;                    450             reg = <0x0 0x102>;
451             next-level-cache = <&A53_L2>;         451             next-level-cache = <&A53_L2>;
452             clocks = <&dvfs_controller 2>;        452             clocks = <&dvfs_controller 2>;
453             operating-points-v2 = <&cpu_opp1_t    453             operating-points-v2 = <&cpu_opp1_table>;
454         };                                        454         };
455         cpu@3 {                                   455         cpu@3 {
456             compatible = "arm,cortex-a53";        456             compatible = "arm,cortex-a53";
457             device_type = "cpu";                  457             device_type = "cpu";
458             reg = <0x0 0x103>;                    458             reg = <0x0 0x103>;
459             next-level-cache = <&A53_L2>;         459             next-level-cache = <&A53_L2>;
460             clocks = <&dvfs_controller 3>;        460             clocks = <&dvfs_controller 3>;
461             operating-points-v2 = <&cpu_opp1_t    461             operating-points-v2 = <&cpu_opp1_table>;
462         };                                        462         };
463                                                   463 
464     };                                            464     };
465                                                   465 
466     cpu_opp0_table: opp-table-0 {                 466     cpu_opp0_table: opp-table-0 {
467         compatible = "operating-points-v2";       467         compatible = "operating-points-v2";
468         opp-shared;                               468         opp-shared;
469     };                                            469     };
470                                                   470 
471     cpu_opp1_table: opp-table-1 {                 471     cpu_opp1_table: opp-table-1 {
472         compatible = "operating-points-v2";       472         compatible = "operating-points-v2";
473         opp-shared;                               473         opp-shared;
474     };                                            474     };
475 ...                                               475 ...
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php