• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Qualcomm Technologies, Inc. NVMEM CPUFreq and OPP bindings
2===================================
3
4In Certain Qualcomm Technologies, Inc. SoCs like apq8096 and msm8996,
5the CPU frequencies subset and voltage value of each OPP varies based on
6the silicon variant in use.
7Qualcomm Technologies, Inc. Process Voltage Scaling Tables
8defines the voltage and frequency value based on the msm-id in SMEM
9and speedbin blown in the efuse combination.
10The qcom-cpufreq-nvmem driver reads the msm-id and efuse value from the SoC
11to provide the OPP framework with required information (existing HW bitmap).
12This is used to determine the voltage and frequency value for each OPP of
13operating-points-v2 table when it is parsed by the OPP framework.
14
15Required properties:
16--------------------
17In 'cpu' nodes:
18- operating-points-v2: Phandle to the operating-points-v2 table to use.
19
20In 'operating-points-v2' table:
21- compatible: Should be
22	- 'operating-points-v2-kryo-cpu' for apq8096 and msm8996.
23
24Optional properties:
25--------------------
26In 'cpu' nodes:
27- power-domains: A phandle pointing to the PM domain specifier which provides
28		the performance states available for active state management.
29		Please refer to the power-domains bindings
30		Documentation/devicetree/bindings/power/power_domain.txt
31		and also examples below.
32- power-domain-names: Should be
33	- 'cpr' for qcs404.
34
35In 'operating-points-v2' table:
36- nvmem-cells: A phandle pointing to a nvmem-cells node representing the
37		efuse registers that has information about the
38		speedbin that is used to select the right frequency/voltage
39		value pair.
40		Please refer the for nvmem-cells
41		bindings Documentation/devicetree/bindings/nvmem/nvmem.txt
42		and also examples below.
43
44In every OPP node:
45- opp-supported-hw: A single 32 bit bitmap value, representing compatible HW.
46		    Bitmap:
47			0:	MSM8996 V3, speedbin 0
48			1:	MSM8996 V3, speedbin 1
49			2:	MSM8996 V3, speedbin 2
50			3:	unused
51			4:	MSM8996 SG, speedbin 0
52			5:	MSM8996 SG, speedbin 1
53			6:	MSM8996 SG, speedbin 2
54			7-31:	unused
55
56Example 1:
57---------
58
59	cpus {
60		#address-cells = <2>;
61		#size-cells = <0>;
62
63		CPU0: cpu@0 {
64			device_type = "cpu";
65			compatible = "qcom,kryo";
66			reg = <0x0 0x0>;
67			enable-method = "psci";
68			clocks = <&kryocc 0>;
69			cpu-supply = <&pm8994_s11_saw>;
70			operating-points-v2 = <&cluster0_opp>;
71			#cooling-cells = <2>;
72			next-level-cache = <&L2_0>;
73			L2_0: l2-cache {
74			      compatible = "cache";
75			      cache-level = <2>;
76			};
77		};
78
79		CPU1: cpu@1 {
80			device_type = "cpu";
81			compatible = "qcom,kryo";
82			reg = <0x0 0x1>;
83			enable-method = "psci";
84			clocks = <&kryocc 0>;
85			cpu-supply = <&pm8994_s11_saw>;
86			operating-points-v2 = <&cluster0_opp>;
87			#cooling-cells = <2>;
88			next-level-cache = <&L2_0>;
89		};
90
91		CPU2: cpu@100 {
92			device_type = "cpu";
93			compatible = "qcom,kryo";
94			reg = <0x0 0x100>;
95			enable-method = "psci";
96			clocks = <&kryocc 1>;
97			cpu-supply = <&pm8994_s11_saw>;
98			operating-points-v2 = <&cluster1_opp>;
99			#cooling-cells = <2>;
100			next-level-cache = <&L2_1>;
101			L2_1: l2-cache {
102			      compatible = "cache";
103			      cache-level = <2>;
104			};
105		};
106
107		CPU3: cpu@101 {
108			device_type = "cpu";
109			compatible = "qcom,kryo";
110			reg = <0x0 0x101>;
111			enable-method = "psci";
112			clocks = <&kryocc 1>;
113			cpu-supply = <&pm8994_s11_saw>;
114			operating-points-v2 = <&cluster1_opp>;
115			#cooling-cells = <2>;
116			next-level-cache = <&L2_1>;
117		};
118
119		cpu-map {
120			cluster0 {
121				core0 {
122					cpu = <&CPU0>;
123				};
124
125				core1 {
126					cpu = <&CPU1>;
127				};
128			};
129
130			cluster1 {
131				core0 {
132					cpu = <&CPU2>;
133				};
134
135				core1 {
136					cpu = <&CPU3>;
137				};
138			};
139		};
140	};
141
142	cluster0_opp: opp_table0 {
143		compatible = "operating-points-v2-kryo-cpu";
144		nvmem-cells = <&speedbin_efuse>;
145		opp-shared;
146
147		opp-307200000 {
148			opp-hz = /bits/ 64 <307200000>;
149			opp-microvolt = <905000 905000 1140000>;
150			opp-supported-hw = <0x77>;
151			clock-latency-ns = <200000>;
152		};
153		opp-384000000 {
154			opp-hz = /bits/ 64 <384000000>;
155			opp-microvolt = <905000 905000 1140000>;
156			opp-supported-hw = <0x70>;
157			clock-latency-ns = <200000>;
158		};
159		opp-422400000 {
160			opp-hz = /bits/ 64 <422400000>;
161			opp-microvolt = <905000 905000 1140000>;
162			opp-supported-hw = <0x7>;
163			clock-latency-ns = <200000>;
164		};
165		opp-460800000 {
166			opp-hz = /bits/ 64 <460800000>;
167			opp-microvolt = <905000 905000 1140000>;
168			opp-supported-hw = <0x70>;
169			clock-latency-ns = <200000>;
170		};
171		opp-480000000 {
172			opp-hz = /bits/ 64 <480000000>;
173			opp-microvolt = <905000 905000 1140000>;
174			opp-supported-hw = <0x7>;
175			clock-latency-ns = <200000>;
176		};
177		opp-537600000 {
178			opp-hz = /bits/ 64 <537600000>;
179			opp-microvolt = <905000 905000 1140000>;
180			opp-supported-hw = <0x70>;
181			clock-latency-ns = <200000>;
182		};
183		opp-556800000 {
184			opp-hz = /bits/ 64 <556800000>;
185			opp-microvolt = <905000 905000 1140000>;
186			opp-supported-hw = <0x7>;
187			clock-latency-ns = <200000>;
188		};
189		opp-614400000 {
190			opp-hz = /bits/ 64 <614400000>;
191			opp-microvolt = <905000 905000 1140000>;
192			opp-supported-hw = <0x70>;
193			clock-latency-ns = <200000>;
194		};
195		opp-652800000 {
196			opp-hz = /bits/ 64 <652800000>;
197			opp-microvolt = <905000 905000 1140000>;
198			opp-supported-hw = <0x7>;
199			clock-latency-ns = <200000>;
200		};
201		opp-691200000 {
202			opp-hz = /bits/ 64 <691200000>;
203			opp-microvolt = <905000 905000 1140000>;
204			opp-supported-hw = <0x70>;
205			clock-latency-ns = <200000>;
206		};
207		opp-729600000 {
208			opp-hz = /bits/ 64 <729600000>;
209			opp-microvolt = <905000 905000 1140000>;
210			opp-supported-hw = <0x7>;
211			clock-latency-ns = <200000>;
212		};
213		opp-768000000 {
214			opp-hz = /bits/ 64 <768000000>;
215			opp-microvolt = <905000 905000 1140000>;
216			opp-supported-hw = <0x70>;
217			clock-latency-ns = <200000>;
218		};
219		opp-844800000 {
220			opp-hz = /bits/ 64 <844800000>;
221			opp-microvolt = <905000 905000 1140000>;
222			opp-supported-hw = <0x77>;
223			clock-latency-ns = <200000>;
224		};
225		opp-902400000 {
226			opp-hz = /bits/ 64 <902400000>;
227			opp-microvolt = <905000 905000 1140000>;
228			opp-supported-hw = <0x70>;
229			clock-latency-ns = <200000>;
230		};
231		opp-960000000 {
232			opp-hz = /bits/ 64 <960000000>;
233			opp-microvolt = <905000 905000 1140000>;
234			opp-supported-hw = <0x7>;
235			clock-latency-ns = <200000>;
236		};
237		opp-979200000 {
238			opp-hz = /bits/ 64 <979200000>;
239			opp-microvolt = <905000 905000 1140000>;
240			opp-supported-hw = <0x70>;
241			clock-latency-ns = <200000>;
242		};
243		opp-1036800000 {
244			opp-hz = /bits/ 64 <1036800000>;
245			opp-microvolt = <905000 905000 1140000>;
246			opp-supported-hw = <0x7>;
247			clock-latency-ns = <200000>;
248		};
249		opp-1056000000 {
250			opp-hz = /bits/ 64 <1056000000>;
251			opp-microvolt = <905000 905000 1140000>;
252			opp-supported-hw = <0x70>;
253			clock-latency-ns = <200000>;
254		};
255		opp-1113600000 {
256			opp-hz = /bits/ 64 <1113600000>;
257			opp-microvolt = <905000 905000 1140000>;
258			opp-supported-hw = <0x7>;
259			clock-latency-ns = <200000>;
260		};
261		opp-1132800000 {
262			opp-hz = /bits/ 64 <1132800000>;
263			opp-microvolt = <905000 905000 1140000>;
264			opp-supported-hw = <0x70>;
265			clock-latency-ns = <200000>;
266		};
267		opp-1190400000 {
268			opp-hz = /bits/ 64 <1190400000>;
269			opp-microvolt = <905000 905000 1140000>;
270			opp-supported-hw = <0x7>;
271			clock-latency-ns = <200000>;
272		};
273		opp-1209600000 {
274			opp-hz = /bits/ 64 <1209600000>;
275			opp-microvolt = <905000 905000 1140000>;
276			opp-supported-hw = <0x70>;
277			clock-latency-ns = <200000>;
278		};
279		opp-1228800000 {
280			opp-hz = /bits/ 64 <1228800000>;
281			opp-microvolt = <905000 905000 1140000>;
282			opp-supported-hw = <0x7>;
283			clock-latency-ns = <200000>;
284		};
285		opp-1286400000 {
286			opp-hz = /bits/ 64 <1286400000>;
287			opp-microvolt = <1140000 905000 1140000>;
288			opp-supported-hw = <0x70>;
289			clock-latency-ns = <200000>;
290		};
291		opp-1324800000 {
292			opp-hz = /bits/ 64 <1324800000>;
293			opp-microvolt = <1140000 905000 1140000>;
294			opp-supported-hw = <0x5>;
295			clock-latency-ns = <200000>;
296		};
297		opp-1363200000 {
298			opp-hz = /bits/ 64 <1363200000>;
299			opp-microvolt = <1140000 905000 1140000>;
300			opp-supported-hw = <0x72>;
301			clock-latency-ns = <200000>;
302		};
303		opp-1401600000 {
304			opp-hz = /bits/ 64 <1401600000>;
305			opp-microvolt = <1140000 905000 1140000>;
306			opp-supported-hw = <0x5>;
307			clock-latency-ns = <200000>;
308		};
309		opp-1440000000 {
310			opp-hz = /bits/ 64 <1440000000>;
311			opp-microvolt = <1140000 905000 1140000>;
312			opp-supported-hw = <0x70>;
313			clock-latency-ns = <200000>;
314		};
315		opp-1478400000 {
316			opp-hz = /bits/ 64 <1478400000>;
317			opp-microvolt = <1140000 905000 1140000>;
318			opp-supported-hw = <0x1>;
319			clock-latency-ns = <200000>;
320		};
321		opp-1497600000 {
322			opp-hz = /bits/ 64 <1497600000>;
323			opp-microvolt = <1140000 905000 1140000>;
324			opp-supported-hw = <0x4>;
325			clock-latency-ns = <200000>;
326		};
327		opp-1516800000 {
328			opp-hz = /bits/ 64 <1516800000>;
329			opp-microvolt = <1140000 905000 1140000>;
330			opp-supported-hw = <0x70>;
331			clock-latency-ns = <200000>;
332		};
333		opp-1593600000 {
334			opp-hz = /bits/ 64 <1593600000>;
335			opp-microvolt = <1140000 905000 1140000>;
336			opp-supported-hw = <0x71>;
337			clock-latency-ns = <200000>;
338		};
339		opp-1996800000 {
340			opp-hz = /bits/ 64 <1996800000>;
341			opp-microvolt = <1140000 905000 1140000>;
342			opp-supported-hw = <0x20>;
343			clock-latency-ns = <200000>;
344		};
345		opp-2188800000 {
346			opp-hz = /bits/ 64 <2188800000>;
347			opp-microvolt = <1140000 905000 1140000>;
348			opp-supported-hw = <0x10>;
349			clock-latency-ns = <200000>;
350		};
351	};
352
353	cluster1_opp: opp_table1 {
354		compatible = "operating-points-v2-kryo-cpu";
355		nvmem-cells = <&speedbin_efuse>;
356		opp-shared;
357
358		opp-307200000 {
359			opp-hz = /bits/ 64 <307200000>;
360			opp-microvolt = <905000 905000 1140000>;
361			opp-supported-hw = <0x77>;
362			clock-latency-ns = <200000>;
363		};
364		opp-384000000 {
365			opp-hz = /bits/ 64 <384000000>;
366			opp-microvolt = <905000 905000 1140000>;
367			opp-supported-hw = <0x70>;
368			clock-latency-ns = <200000>;
369		};
370		opp-403200000 {
371			opp-hz = /bits/ 64 <403200000>;
372			opp-microvolt = <905000 905000 1140000>;
373			opp-supported-hw = <0x7>;
374			clock-latency-ns = <200000>;
375		};
376		opp-460800000 {
377			opp-hz = /bits/ 64 <460800000>;
378			opp-microvolt = <905000 905000 1140000>;
379			opp-supported-hw = <0x70>;
380			clock-latency-ns = <200000>;
381		};
382		opp-480000000 {
383			opp-hz = /bits/ 64 <480000000>;
384			opp-microvolt = <905000 905000 1140000>;
385			opp-supported-hw = <0x7>;
386			clock-latency-ns = <200000>;
387		};
388		opp-537600000 {
389			opp-hz = /bits/ 64 <537600000>;
390			opp-microvolt = <905000 905000 1140000>;
391			opp-supported-hw = <0x70>;
392			clock-latency-ns = <200000>;
393		};
394		opp-556800000 {
395			opp-hz = /bits/ 64 <556800000>;
396			opp-microvolt = <905000 905000 1140000>;
397			opp-supported-hw = <0x7>;
398			clock-latency-ns = <200000>;
399		};
400		opp-614400000 {
401			opp-hz = /bits/ 64 <614400000>;
402			opp-microvolt = <905000 905000 1140000>;
403			opp-supported-hw = <0x70>;
404			clock-latency-ns = <200000>;
405		};
406		opp-652800000 {
407			opp-hz = /bits/ 64 <652800000>;
408			opp-microvolt = <905000 905000 1140000>;
409			opp-supported-hw = <0x7>;
410			clock-latency-ns = <200000>;
411		};
412		opp-691200000 {
413			opp-hz = /bits/ 64 <691200000>;
414			opp-microvolt = <905000 905000 1140000>;
415			opp-supported-hw = <0x70>;
416			clock-latency-ns = <200000>;
417		};
418		opp-729600000 {
419			opp-hz = /bits/ 64 <729600000>;
420			opp-microvolt = <905000 905000 1140000>;
421			opp-supported-hw = <0x7>;
422			clock-latency-ns = <200000>;
423		};
424		opp-748800000 {
425			opp-hz = /bits/ 64 <748800000>;
426			opp-microvolt = <905000 905000 1140000>;
427			opp-supported-hw = <0x70>;
428			clock-latency-ns = <200000>;
429		};
430		opp-806400000 {
431			opp-hz = /bits/ 64 <806400000>;
432			opp-microvolt = <905000 905000 1140000>;
433			opp-supported-hw = <0x7>;
434			clock-latency-ns = <200000>;
435		};
436		opp-825600000 {
437			opp-hz = /bits/ 64 <825600000>;
438			opp-microvolt = <905000 905000 1140000>;
439			opp-supported-hw = <0x70>;
440			clock-latency-ns = <200000>;
441		};
442		opp-883200000 {
443			opp-hz = /bits/ 64 <883200000>;
444			opp-microvolt = <905000 905000 1140000>;
445			opp-supported-hw = <0x7>;
446			clock-latency-ns = <200000>;
447		};
448		opp-902400000 {
449			opp-hz = /bits/ 64 <902400000>;
450			opp-microvolt = <905000 905000 1140000>;
451			opp-supported-hw = <0x70>;
452			clock-latency-ns = <200000>;
453		};
454		opp-940800000 {
455			opp-hz = /bits/ 64 <940800000>;
456			opp-microvolt = <905000 905000 1140000>;
457			opp-supported-hw = <0x7>;
458			clock-latency-ns = <200000>;
459		};
460		opp-979200000 {
461			opp-hz = /bits/ 64 <979200000>;
462			opp-microvolt = <905000 905000 1140000>;
463			opp-supported-hw = <0x70>;
464			clock-latency-ns = <200000>;
465		};
466		opp-1036800000 {
467			opp-hz = /bits/ 64 <1036800000>;
468			opp-microvolt = <905000 905000 1140000>;
469			opp-supported-hw = <0x7>;
470			clock-latency-ns = <200000>;
471		};
472		opp-1056000000 {
473			opp-hz = /bits/ 64 <1056000000>;
474			opp-microvolt = <905000 905000 1140000>;
475			opp-supported-hw = <0x70>;
476			clock-latency-ns = <200000>;
477		};
478		opp-1113600000 {
479			opp-hz = /bits/ 64 <1113600000>;
480			opp-microvolt = <905000 905000 1140000>;
481			opp-supported-hw = <0x7>;
482			clock-latency-ns = <200000>;
483		};
484		opp-1132800000 {
485			opp-hz = /bits/ 64 <1132800000>;
486			opp-microvolt = <905000 905000 1140000>;
487			opp-supported-hw = <0x70>;
488			clock-latency-ns = <200000>;
489		};
490		opp-1190400000 {
491			opp-hz = /bits/ 64 <1190400000>;
492			opp-microvolt = <905000 905000 1140000>;
493			opp-supported-hw = <0x7>;
494			clock-latency-ns = <200000>;
495		};
496		opp-1209600000 {
497			opp-hz = /bits/ 64 <1209600000>;
498			opp-microvolt = <905000 905000 1140000>;
499			opp-supported-hw = <0x70>;
500			clock-latency-ns = <200000>;
501		};
502		opp-1248000000 {
503			opp-hz = /bits/ 64 <1248000000>;
504			opp-microvolt = <905000 905000 1140000>;
505			opp-supported-hw = <0x7>;
506			clock-latency-ns = <200000>;
507		};
508		opp-1286400000 {
509			opp-hz = /bits/ 64 <1286400000>;
510			opp-microvolt = <905000 905000 1140000>;
511			opp-supported-hw = <0x70>;
512			clock-latency-ns = <200000>;
513		};
514		opp-1324800000 {
515			opp-hz = /bits/ 64 <1324800000>;
516			opp-microvolt = <1140000 905000 1140000>;
517			opp-supported-hw = <0x7>;
518			clock-latency-ns = <200000>;
519		};
520		opp-1363200000 {
521			opp-hz = /bits/ 64 <1363200000>;
522			opp-microvolt = <1140000 905000 1140000>;
523			opp-supported-hw = <0x70>;
524			clock-latency-ns = <200000>;
525		};
526		opp-1401600000 {
527			opp-hz = /bits/ 64 <1401600000>;
528			opp-microvolt = <1140000 905000 1140000>;
529			opp-supported-hw = <0x7>;
530			clock-latency-ns = <200000>;
531		};
532		opp-1440000000 {
533			opp-hz = /bits/ 64 <1440000000>;
534			opp-microvolt = <1140000 905000 1140000>;
535			opp-supported-hw = <0x70>;
536			clock-latency-ns = <200000>;
537		};
538		opp-1478400000 {
539			opp-hz = /bits/ 64 <1478400000>;
540			opp-microvolt = <1140000 905000 1140000>;
541			opp-supported-hw = <0x7>;
542			clock-latency-ns = <200000>;
543		};
544		opp-1516800000 {
545			opp-hz = /bits/ 64 <1516800000>;
546			opp-microvolt = <1140000 905000 1140000>;
547			opp-supported-hw = <0x70>;
548			clock-latency-ns = <200000>;
549		};
550		opp-1555200000 {
551			opp-hz = /bits/ 64 <1555200000>;
552			opp-microvolt = <1140000 905000 1140000>;
553			opp-supported-hw = <0x7>;
554			clock-latency-ns = <200000>;
555		};
556		opp-1593600000 {
557			opp-hz = /bits/ 64 <1593600000>;
558			opp-microvolt = <1140000 905000 1140000>;
559			opp-supported-hw = <0x70>;
560			clock-latency-ns = <200000>;
561		};
562		opp-1632000000 {
563			opp-hz = /bits/ 64 <1632000000>;
564			opp-microvolt = <1140000 905000 1140000>;
565			opp-supported-hw = <0x7>;
566			clock-latency-ns = <200000>;
567		};
568		opp-1670400000 {
569			opp-hz = /bits/ 64 <1670400000>;
570			opp-microvolt = <1140000 905000 1140000>;
571			opp-supported-hw = <0x70>;
572			clock-latency-ns = <200000>;
573		};
574		opp-1708800000 {
575			opp-hz = /bits/ 64 <1708800000>;
576			opp-microvolt = <1140000 905000 1140000>;
577			opp-supported-hw = <0x7>;
578			clock-latency-ns = <200000>;
579		};
580		opp-1747200000 {
581			opp-hz = /bits/ 64 <1747200000>;
582			opp-microvolt = <1140000 905000 1140000>;
583			opp-supported-hw = <0x70>;
584			clock-latency-ns = <200000>;
585		};
586		opp-1785600000 {
587			opp-hz = /bits/ 64 <1785600000>;
588			opp-microvolt = <1140000 905000 1140000>;
589			opp-supported-hw = <0x7>;
590			clock-latency-ns = <200000>;
591		};
592		opp-1804800000 {
593			opp-hz = /bits/ 64 <1804800000>;
594			opp-microvolt = <1140000 905000 1140000>;
595			opp-supported-hw = <0x6>;
596			clock-latency-ns = <200000>;
597		};
598		opp-1824000000 {
599			opp-hz = /bits/ 64 <1824000000>;
600			opp-microvolt = <1140000 905000 1140000>;
601			opp-supported-hw = <0x71>;
602			clock-latency-ns = <200000>;
603		};
604		opp-1900800000 {
605			opp-hz = /bits/ 64 <1900800000>;
606			opp-microvolt = <1140000 905000 1140000>;
607			opp-supported-hw = <0x74>;
608			clock-latency-ns = <200000>;
609		};
610		opp-1920000000 {
611			opp-hz = /bits/ 64 <1920000000>;
612			opp-microvolt = <1140000 905000 1140000>;
613			opp-supported-hw = <0x1>;
614			clock-latency-ns = <200000>;
615		};
616		opp-1977600000 {
617			opp-hz = /bits/ 64 <1977600000>;
618			opp-microvolt = <1140000 905000 1140000>;
619			opp-supported-hw = <0x30>;
620			clock-latency-ns = <200000>;
621		};
622		opp-1996800000 {
623			opp-hz = /bits/ 64 <1996800000>;
624			opp-microvolt = <1140000 905000 1140000>;
625			opp-supported-hw = <0x1>;
626			clock-latency-ns = <200000>;
627		};
628		opp-2054400000 {
629			opp-hz = /bits/ 64 <2054400000>;
630			opp-microvolt = <1140000 905000 1140000>;
631			opp-supported-hw = <0x30>;
632			clock-latency-ns = <200000>;
633		};
634		opp-2073600000 {
635			opp-hz = /bits/ 64 <2073600000>;
636			opp-microvolt = <1140000 905000 1140000>;
637			opp-supported-hw = <0x1>;
638			clock-latency-ns = <200000>;
639		};
640		opp-2150400000 {
641			opp-hz = /bits/ 64 <2150400000>;
642			opp-microvolt = <1140000 905000 1140000>;
643			opp-supported-hw = <0x31>;
644			clock-latency-ns = <200000>;
645		};
646		opp-2246400000 {
647			opp-hz = /bits/ 64 <2246400000>;
648			opp-microvolt = <1140000 905000 1140000>;
649			opp-supported-hw = <0x10>;
650			clock-latency-ns = <200000>;
651		};
652		opp-2342400000 {
653			opp-hz = /bits/ 64 <2342400000>;
654			opp-microvolt = <1140000 905000 1140000>;
655			opp-supported-hw = <0x10>;
656			clock-latency-ns = <200000>;
657		};
658	};
659
660....
661
662reserved-memory {
663	#address-cells = <2>;
664	#size-cells = <2>;
665	ranges;
666....
667	smem_mem: smem-mem@86000000 {
668		reg = <0x0 0x86000000 0x0 0x200000>;
669		no-map;
670	};
671....
672};
673
674smem {
675	compatible = "qcom,smem";
676	memory-region = <&smem_mem>;
677	hwlocks = <&tcsr_mutex 3>;
678};
679
680soc {
681....
682	qfprom: qfprom@74000 {
683		compatible = "qcom,qfprom";
684		reg = <0x00074000 0x8ff>;
685		#address-cells = <1>;
686		#size-cells = <1>;
687		....
688		speedbin_efuse: speedbin@133 {
689			reg = <0x133 0x1>;
690			bits = <5 3>;
691		};
692	};
693};
694
695Example 2:
696---------
697
698	cpus {
699		#address-cells = <1>;
700		#size-cells = <0>;
701
702		CPU0: cpu@100 {
703			device_type = "cpu";
704			compatible = "arm,cortex-a53";
705			reg = <0x100>;
706			....
707			clocks = <&apcs_glb>;
708			operating-points-v2 = <&cpu_opp_table>;
709			power-domains = <&cpr>;
710			power-domain-names = "cpr";
711		};
712
713		CPU1: cpu@101 {
714			device_type = "cpu";
715			compatible = "arm,cortex-a53";
716			reg = <0x101>;
717			....
718			clocks = <&apcs_glb>;
719			operating-points-v2 = <&cpu_opp_table>;
720			power-domains = <&cpr>;
721			power-domain-names = "cpr";
722		};
723
724		CPU2: cpu@102 {
725			device_type = "cpu";
726			compatible = "arm,cortex-a53";
727			reg = <0x102>;
728			....
729			clocks = <&apcs_glb>;
730			operating-points-v2 = <&cpu_opp_table>;
731			power-domains = <&cpr>;
732			power-domain-names = "cpr";
733		};
734
735		CPU3: cpu@103 {
736			device_type = "cpu";
737			compatible = "arm,cortex-a53";
738			reg = <0x103>;
739			....
740			clocks = <&apcs_glb>;
741			operating-points-v2 = <&cpu_opp_table>;
742			power-domains = <&cpr>;
743			power-domain-names = "cpr";
744		};
745	};
746
747	cpu_opp_table: cpu-opp-table {
748		compatible = "operating-points-v2-kryo-cpu";
749		opp-shared;
750
751		opp-1094400000 {
752			opp-hz = /bits/ 64 <1094400000>;
753			required-opps = <&cpr_opp1>;
754		};
755		opp-1248000000 {
756			opp-hz = /bits/ 64 <1248000000>;
757			required-opps = <&cpr_opp2>;
758		};
759		opp-1401600000 {
760			opp-hz = /bits/ 64 <1401600000>;
761			required-opps = <&cpr_opp3>;
762		};
763	};
764
765	cpr_opp_table: cpr-opp-table {
766		compatible = "operating-points-v2-qcom-level";
767
768		cpr_opp1: opp1 {
769			opp-level = <1>;
770			qcom,opp-fuse-level = <1>;
771		};
772		cpr_opp2: opp2 {
773			opp-level = <2>;
774			qcom,opp-fuse-level = <2>;
775		};
776		cpr_opp3: opp3 {
777			opp-level = <3>;
778			qcom,opp-fuse-level = <3>;
779		};
780	};
781
782....
783
784soc {
785....
786	cpr: power-controller@b018000 {
787		compatible = "qcom,qcs404-cpr", "qcom,cpr";
788		reg = <0x0b018000 0x1000>;
789		....
790		vdd-apc-supply = <&pms405_s3>;
791		#power-domain-cells = <0>;
792		operating-points-v2 = <&cpr_opp_table>;
793		....
794	};
795};
796