xref: /openbmc/linux/Documentation/devicetree/bindings/cpufreq/cpufreq-st.txt (revision b122bcd94743239cc26a5732fef87b28d7f5c22a)
1*b122bcd9SLee JonesBinding for ST's CPUFreq driver
2*b122bcd9SLee Jones===============================
3*b122bcd9SLee Jones
4*b122bcd9SLee JonesST's CPUFreq driver attempts to read 'process' and 'version' attributes
5*b122bcd9SLee Jonesfrom the SoC, then supplies the OPP framework with 'prop' and 'supported
6*b122bcd9SLee Joneshardware' information respectively.  The framework is then able to read
7*b122bcd9SLee Jonesthe DT and operate in the usual way.
8*b122bcd9SLee Jones
9*b122bcd9SLee JonesFor more information about the expected DT format [See: ../opp/opp.txt].
10*b122bcd9SLee Jones
11*b122bcd9SLee JonesFrequency Scaling only
12*b122bcd9SLee Jones----------------------
13*b122bcd9SLee Jones
14*b122bcd9SLee JonesNo vendor specific driver required for this.
15*b122bcd9SLee Jones
16*b122bcd9SLee JonesLocated in CPU's node:
17*b122bcd9SLee Jones
18*b122bcd9SLee Jones- operating-points		: [See: ../power/opp.txt]
19*b122bcd9SLee Jones
20*b122bcd9SLee JonesExample [safe]
21*b122bcd9SLee Jones--------------
22*b122bcd9SLee Jones
23*b122bcd9SLee Jonescpus {
24*b122bcd9SLee Jones	cpu@0 {
25*b122bcd9SLee Jones				 /* kHz     uV   */
26*b122bcd9SLee Jones		operating-points = <1500000 0
27*b122bcd9SLee Jones				    1200000 0
28*b122bcd9SLee Jones				    800000  0
29*b122bcd9SLee Jones				    500000  0>;
30*b122bcd9SLee Jones	};
31*b122bcd9SLee Jones};
32*b122bcd9SLee Jones
33*b122bcd9SLee JonesDynamic Voltage and Frequency Scaling (DVFS)
34*b122bcd9SLee Jones--------------------------------------------
35*b122bcd9SLee Jones
36*b122bcd9SLee JonesThis requires the ST CPUFreq driver to supply 'process' and 'version' info.
37*b122bcd9SLee Jones
38*b122bcd9SLee JonesLocated in CPU's node:
39*b122bcd9SLee Jones
40*b122bcd9SLee Jones- operating-points-v2		: [See ../power/opp.txt]
41*b122bcd9SLee Jones
42*b122bcd9SLee JonesExample [unsafe]
43*b122bcd9SLee Jones----------------
44*b122bcd9SLee Jones
45*b122bcd9SLee Jonescpus {
46*b122bcd9SLee Jones	cpu@0 {
47*b122bcd9SLee Jones		operating-points-v2	= <&cpu0_opp_table>;
48*b122bcd9SLee Jones	};
49*b122bcd9SLee Jones};
50*b122bcd9SLee Jones
51*b122bcd9SLee Jonescpu0_opp_table: opp_table {
52*b122bcd9SLee Jones	compatible = "operating-points-v2";
53*b122bcd9SLee Jones
54*b122bcd9SLee Jones	/* ############################################################### */
55*b122bcd9SLee Jones	/* # WARNING: Do not attempt to copy/replicate these nodes,      # */
56*b122bcd9SLee Jones	/* #          they are only to be supplied by the bootloader !!! # */
57*b122bcd9SLee Jones	/* ############################################################### */
58*b122bcd9SLee Jones	opp0 {
59*b122bcd9SLee Jones		/*			   Major       Minor       Substrate */
60*b122bcd9SLee Jones		/*			   2           all         all       */
61*b122bcd9SLee Jones		opp-supported-hw	= <0x00000004  0xffffffff  0xffffffff>;
62*b122bcd9SLee Jones		opp-hz			= /bits/ 64 <1500000000>;
63*b122bcd9SLee Jones		clock-latency-ns	= <10000000>;
64*b122bcd9SLee Jones
65*b122bcd9SLee Jones		opp-microvolt-pcode0	= <1200000>;
66*b122bcd9SLee Jones		opp-microvolt-pcode1	= <1200000>;
67*b122bcd9SLee Jones		opp-microvolt-pcode2	= <1200000>;
68*b122bcd9SLee Jones		opp-microvolt-pcode3	= <1200000>;
69*b122bcd9SLee Jones		opp-microvolt-pcode4	= <1170000>;
70*b122bcd9SLee Jones		opp-microvolt-pcode5	= <1140000>;
71*b122bcd9SLee Jones		opp-microvolt-pcode6	= <1100000>;
72*b122bcd9SLee Jones		opp-microvolt-pcode7	= <1070000>;
73*b122bcd9SLee Jones	};
74*b122bcd9SLee Jones
75*b122bcd9SLee Jones	opp1 {
76*b122bcd9SLee Jones		/*			   Major       Minor       Substrate */
77*b122bcd9SLee Jones		/*			   all         all         all       */
78*b122bcd9SLee Jones		opp-supported-hw	= <0xffffffff  0xffffffff  0xffffffff>;
79*b122bcd9SLee Jones		opp-hz			= /bits/ 64 <1200000000>;
80*b122bcd9SLee Jones		clock-latency-ns	= <10000000>;
81*b122bcd9SLee Jones
82*b122bcd9SLee Jones		opp-microvolt-pcode0	= <1110000>;
83*b122bcd9SLee Jones		opp-microvolt-pcode1	= <1150000>;
84*b122bcd9SLee Jones		opp-microvolt-pcode2	= <1100000>;
85*b122bcd9SLee Jones		opp-microvolt-pcode3	= <1080000>;
86*b122bcd9SLee Jones		opp-microvolt-pcode4	= <1040000>;
87*b122bcd9SLee Jones		opp-microvolt-pcode5	= <1020000>;
88*b122bcd9SLee Jones		opp-microvolt-pcode6	= <980000>;
89*b122bcd9SLee Jones		opp-microvolt-pcode7	= <930000>;
90*b122bcd9SLee Jones	};
91*b122bcd9SLee Jones};
92