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