xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/devfreq/exynos-bus.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun* Generic Exynos Bus frequency device
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThe Samsung Exynos SoC has many buses for data transfer between DRAM
4*4882a593Smuzhiyunand sub-blocks in SoC. Most Exynos SoCs share the common architecture
5*4882a593Smuzhiyunfor buses. Generally, each bus of Exynos SoC includes a source clock
6*4882a593Smuzhiyunand a power line, which are able to change the clock frequency
7*4882a593Smuzhiyunof the bus in runtime. To monitor the usage of each bus in runtime,
8*4882a593Smuzhiyunthe driver uses the PPMU (Platform Performance Monitoring Unit), which
9*4882a593Smuzhiyunis able to measure the current load of sub-blocks.
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunThe Exynos SoC includes the various sub-blocks which have the each AXI bus.
12*4882a593SmuzhiyunThe each AXI bus has the owned source clock but, has not the only owned
13*4882a593Smuzhiyunpower line. The power line might be shared among one more sub-blocks.
14*4882a593SmuzhiyunSo, we can divide into two type of device as the role of each sub-block.
15*4882a593SmuzhiyunThere are two type of bus devices as following:
16*4882a593Smuzhiyun- parent bus device
17*4882a593Smuzhiyun- passive bus device
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunBasically, parent and passive bus device share the same power line.
20*4882a593SmuzhiyunThe parent bus device can only change the voltage of shared power line
21*4882a593Smuzhiyunand the rest bus devices (passive bus device) depend on the decision of
22*4882a593Smuzhiyunthe parent bus device. If there are three blocks which share the VDD_xxx
23*4882a593Smuzhiyunpower line, Only one block should be parent device and then the rest blocks
24*4882a593Smuzhiyunshould depend on the parent device as passive device.
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	VDD_xxx |--- A block (parent)
27*4882a593Smuzhiyun		|--- B block (passive)
28*4882a593Smuzhiyun		|--- C block (passive)
29*4882a593Smuzhiyun
30*4882a593SmuzhiyunThere are a little different composition among Exynos SoC because each Exynos
31*4882a593SmuzhiyunSoC has different sub-blocks. Therefore, such difference should be specified
32*4882a593Smuzhiyunin devicetree file instead of each device driver. In result, this driver
33*4882a593Smuzhiyunis able to support the bus frequency for all Exynos SoCs.
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunRequired properties for all bus devices:
36*4882a593Smuzhiyun- compatible: Should be "samsung,exynos-bus".
37*4882a593Smuzhiyun- clock-names : the name of clock used by the bus, "bus".
38*4882a593Smuzhiyun- clocks : phandles for clock specified in "clock-names" property.
39*4882a593Smuzhiyun- operating-points-v2: the OPP table including frequency/voltage information
40*4882a593Smuzhiyun  to support DVFS (Dynamic Voltage/Frequency Scaling) feature.
41*4882a593Smuzhiyun
42*4882a593SmuzhiyunRequired properties only for parent bus device:
43*4882a593Smuzhiyun- vdd-supply: the regulator to provide the buses with the voltage.
44*4882a593Smuzhiyun- devfreq-events: the devfreq-event device to monitor the current utilization
45*4882a593Smuzhiyun  of buses.
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunRequired properties only for passive bus device:
48*4882a593Smuzhiyun- devfreq: the parent bus device.
49*4882a593Smuzhiyun
50*4882a593SmuzhiyunOptional properties only for parent bus device:
51*4882a593Smuzhiyun- exynos,saturation-ratio: the percentage value which is used to calibrate
52*4882a593Smuzhiyun			the performance count against total cycle count.
53*4882a593Smuzhiyun
54*4882a593SmuzhiyunDetailed correlation between sub-blocks and power line according to Exynos SoC:
55*4882a593Smuzhiyun- In case of Exynos3250, there are two power line as following:
56*4882a593Smuzhiyun	VDD_MIF |--- DMC
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun	VDD_INT |--- LEFTBUS (parent device)
59*4882a593Smuzhiyun		|--- PERIL
60*4882a593Smuzhiyun		|--- MFC
61*4882a593Smuzhiyun		|--- G3D
62*4882a593Smuzhiyun		|--- RIGHTBUS
63*4882a593Smuzhiyun		|--- PERIR
64*4882a593Smuzhiyun		|--- FSYS
65*4882a593Smuzhiyun		|--- LCD0
66*4882a593Smuzhiyun		|--- PERIR
67*4882a593Smuzhiyun		|--- ISP
68*4882a593Smuzhiyun		|--- CAM
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun- In case of Exynos4210, there is one power line as following:
71*4882a593Smuzhiyun	VDD_INT |--- DMC (parent device)
72*4882a593Smuzhiyun		|--- LEFTBUS
73*4882a593Smuzhiyun		|--- PERIL
74*4882a593Smuzhiyun		|--- MFC(L)
75*4882a593Smuzhiyun		|--- G3D
76*4882a593Smuzhiyun		|--- TV
77*4882a593Smuzhiyun		|--- LCD0
78*4882a593Smuzhiyun		|--- RIGHTBUS
79*4882a593Smuzhiyun		|--- PERIR
80*4882a593Smuzhiyun		|--- MFC(R)
81*4882a593Smuzhiyun		|--- CAM
82*4882a593Smuzhiyun		|--- FSYS
83*4882a593Smuzhiyun		|--- GPS
84*4882a593Smuzhiyun		|--- LCD0
85*4882a593Smuzhiyun		|--- LCD1
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun- In case of Exynos4x12, there are two power line as following:
88*4882a593Smuzhiyun	VDD_MIF |--- DMC
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun	VDD_INT |--- LEFTBUS (parent device)
91*4882a593Smuzhiyun		|--- PERIL
92*4882a593Smuzhiyun		|--- MFC(L)
93*4882a593Smuzhiyun		|--- G3D
94*4882a593Smuzhiyun		|--- TV
95*4882a593Smuzhiyun		|--- IMAGE
96*4882a593Smuzhiyun		|--- RIGHTBUS
97*4882a593Smuzhiyun		|--- PERIR
98*4882a593Smuzhiyun		|--- MFC(R)
99*4882a593Smuzhiyun		|--- CAM
100*4882a593Smuzhiyun		|--- FSYS
101*4882a593Smuzhiyun		|--- GPS
102*4882a593Smuzhiyun		|--- LCD0
103*4882a593Smuzhiyun		|--- ISP
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun- In case of Exynos5422, there are two power line as following:
106*4882a593Smuzhiyun	VDD_MIF |--- DREX 0 (parent device, DRAM EXpress controller)
107*4882a593Smuzhiyun	        |--- DREX 1
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun	VDD_INT |--- NoC_Core (parent device)
110*4882a593Smuzhiyun		|--- G2D
111*4882a593Smuzhiyun		|--- G3D
112*4882a593Smuzhiyun		|--- DISP1
113*4882a593Smuzhiyun		|--- NoC_WCORE
114*4882a593Smuzhiyun		|--- GSCL
115*4882a593Smuzhiyun		|--- MSCL
116*4882a593Smuzhiyun		|--- ISP
117*4882a593Smuzhiyun		|--- MFC
118*4882a593Smuzhiyun		|--- GEN
119*4882a593Smuzhiyun		|--- PERIS
120*4882a593Smuzhiyun		|--- PERIC
121*4882a593Smuzhiyun		|--- FSYS
122*4882a593Smuzhiyun		|--- FSYS2
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun- In case of Exynos5433, there is VDD_INT power line as following:
125*4882a593Smuzhiyun	VDD_INT |--- G2D (parent device)
126*4882a593Smuzhiyun		|--- MSCL
127*4882a593Smuzhiyun		|--- GSCL
128*4882a593Smuzhiyun		|--- JPEG
129*4882a593Smuzhiyun		|--- MFC
130*4882a593Smuzhiyun		|--- HEVC
131*4882a593Smuzhiyun		|--- BUS0
132*4882a593Smuzhiyun		|--- BUS1
133*4882a593Smuzhiyun		|--- BUS2
134*4882a593Smuzhiyun		|--- PERIS (Fixed clock rate)
135*4882a593Smuzhiyun		|--- PERIC (Fixed clock rate)
136*4882a593Smuzhiyun		|--- FSYS  (Fixed clock rate)
137*4882a593Smuzhiyun
138*4882a593SmuzhiyunExample1:
139*4882a593Smuzhiyun	Show the AXI buses of Exynos3250 SoC. Exynos3250 divides the buses to
140*4882a593Smuzhiyun	power line (regulator). The MIF (Memory Interface) AXI bus is used to
141*4882a593Smuzhiyun	transfer data between DRAM and CPU and uses the VDD_MIF regulator.
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun	- MIF (Memory Interface) block
144*4882a593Smuzhiyun	: VDD_MIF |--- DMC (Dynamic Memory Controller)
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun	- INT (Internal) block
147*4882a593Smuzhiyun	: VDD_INT |--- LEFTBUS (parent device)
148*4882a593Smuzhiyun		  |--- PERIL
149*4882a593Smuzhiyun		  |--- MFC
150*4882a593Smuzhiyun		  |--- G3D
151*4882a593Smuzhiyun		  |--- RIGHTBUS
152*4882a593Smuzhiyun		  |--- FSYS
153*4882a593Smuzhiyun		  |--- LCD0
154*4882a593Smuzhiyun		  |--- PERIR
155*4882a593Smuzhiyun		  |--- ISP
156*4882a593Smuzhiyun		  |--- CAM
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun	- MIF bus's frequency/voltage table
159*4882a593Smuzhiyun	-----------------------
160*4882a593Smuzhiyun	|Lv| Freq   | Voltage |
161*4882a593Smuzhiyun	-----------------------
162*4882a593Smuzhiyun	|L1| 50000  |800000   |
163*4882a593Smuzhiyun	|L2| 100000 |800000   |
164*4882a593Smuzhiyun	|L3| 134000 |800000   |
165*4882a593Smuzhiyun	|L4| 200000 |825000   |
166*4882a593Smuzhiyun	|L5| 400000 |875000   |
167*4882a593Smuzhiyun	-----------------------
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun	- INT bus's frequency/voltage table
170*4882a593Smuzhiyun	----------------------------------------------------------
171*4882a593Smuzhiyun	|Block|LEFTBUS|RIGHTBUS|MCUISP |ISP    |PERIL  ||VDD_INT |
172*4882a593Smuzhiyun	| name|       |LCD0    |       |       |       ||        |
173*4882a593Smuzhiyun	|     |       |FSYS    |       |       |       ||        |
174*4882a593Smuzhiyun	|     |       |MFC     |       |       |       ||        |
175*4882a593Smuzhiyun	----------------------------------------------------------
176*4882a593Smuzhiyun	|Mode |*parent|passive |passive|passive|passive||        |
177*4882a593Smuzhiyun	----------------------------------------------------------
178*4882a593Smuzhiyun	|Lv   |Frequency                               ||Voltage |
179*4882a593Smuzhiyun	----------------------------------------------------------
180*4882a593Smuzhiyun	|L1   |50000  |50000   |50000  |50000  |50000  ||900000  |
181*4882a593Smuzhiyun	|L2   |80000  |80000   |80000  |80000  |80000  ||900000  |
182*4882a593Smuzhiyun	|L3   |100000 |100000  |100000 |100000 |100000 ||1000000 |
183*4882a593Smuzhiyun	|L4   |134000 |134000  |200000 |200000 |       ||1000000 |
184*4882a593Smuzhiyun	|L5   |200000 |200000  |400000 |300000 |       ||1000000 |
185*4882a593Smuzhiyun	----------------------------------------------------------
186*4882a593Smuzhiyun
187*4882a593SmuzhiyunExample2 :
188*4882a593Smuzhiyun	The bus of DMC (Dynamic Memory Controller) block in exynos3250.dtsi
189*4882a593Smuzhiyun	is listed below:
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun	bus_dmc: bus_dmc {
192*4882a593Smuzhiyun		compatible = "samsung,exynos-bus";
193*4882a593Smuzhiyun		clocks = <&cmu_dmc CLK_DIV_DMC>;
194*4882a593Smuzhiyun		clock-names = "bus";
195*4882a593Smuzhiyun		operating-points-v2 = <&bus_dmc_opp_table>;
196*4882a593Smuzhiyun		status = "disabled";
197*4882a593Smuzhiyun	};
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun	bus_dmc_opp_table: opp_table1 {
200*4882a593Smuzhiyun		compatible = "operating-points-v2";
201*4882a593Smuzhiyun		opp-shared;
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun		opp-50000000 {
204*4882a593Smuzhiyun			opp-hz = /bits/ 64 <50000000>;
205*4882a593Smuzhiyun			opp-microvolt = <800000>;
206*4882a593Smuzhiyun		};
207*4882a593Smuzhiyun		opp-100000000 {
208*4882a593Smuzhiyun			opp-hz = /bits/ 64 <100000000>;
209*4882a593Smuzhiyun			opp-microvolt = <800000>;
210*4882a593Smuzhiyun		};
211*4882a593Smuzhiyun		opp-134000000 {
212*4882a593Smuzhiyun			opp-hz = /bits/ 64 <134000000>;
213*4882a593Smuzhiyun			opp-microvolt = <800000>;
214*4882a593Smuzhiyun		};
215*4882a593Smuzhiyun		opp-200000000 {
216*4882a593Smuzhiyun			opp-hz = /bits/ 64 <200000000>;
217*4882a593Smuzhiyun			opp-microvolt = <825000>;
218*4882a593Smuzhiyun		};
219*4882a593Smuzhiyun		opp-400000000 {
220*4882a593Smuzhiyun			opp-hz = /bits/ 64 <400000000>;
221*4882a593Smuzhiyun			opp-microvolt = <875000>;
222*4882a593Smuzhiyun		};
223*4882a593Smuzhiyun	};
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun	bus_leftbus: bus_leftbus {
226*4882a593Smuzhiyun		compatible = "samsung,exynos-bus";
227*4882a593Smuzhiyun		clocks = <&cmu CLK_DIV_GDL>;
228*4882a593Smuzhiyun		clock-names = "bus";
229*4882a593Smuzhiyun		operating-points-v2 = <&bus_leftbus_opp_table>;
230*4882a593Smuzhiyun		status = "disabled";
231*4882a593Smuzhiyun	};
232*4882a593Smuzhiyun
233*4882a593Smuzhiyun	bus_rightbus: bus_rightbus {
234*4882a593Smuzhiyun		compatible = "samsung,exynos-bus";
235*4882a593Smuzhiyun		clocks = <&cmu CLK_DIV_GDR>;
236*4882a593Smuzhiyun		clock-names = "bus";
237*4882a593Smuzhiyun		operating-points-v2 = <&bus_leftbus_opp_table>;
238*4882a593Smuzhiyun		status = "disabled";
239*4882a593Smuzhiyun	};
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun	bus_lcd0: bus_lcd0 {
242*4882a593Smuzhiyun		compatible = "samsung,exynos-bus";
243*4882a593Smuzhiyun		clocks = <&cmu CLK_DIV_ACLK_160>;
244*4882a593Smuzhiyun		clock-names = "bus";
245*4882a593Smuzhiyun		operating-points-v2 = <&bus_leftbus_opp_table>;
246*4882a593Smuzhiyun		status = "disabled";
247*4882a593Smuzhiyun	};
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun	bus_fsys: bus_fsys {
250*4882a593Smuzhiyun		compatible = "samsung,exynos-bus";
251*4882a593Smuzhiyun		clocks = <&cmu CLK_DIV_ACLK_200>;
252*4882a593Smuzhiyun		clock-names = "bus";
253*4882a593Smuzhiyun		operating-points-v2 = <&bus_leftbus_opp_table>;
254*4882a593Smuzhiyun		status = "disabled";
255*4882a593Smuzhiyun	};
256*4882a593Smuzhiyun
257*4882a593Smuzhiyun	bus_mcuisp: bus_mcuisp {
258*4882a593Smuzhiyun		compatible = "samsung,exynos-bus";
259*4882a593Smuzhiyun		clocks = <&cmu CLK_DIV_ACLK_400_MCUISP>;
260*4882a593Smuzhiyun		clock-names = "bus";
261*4882a593Smuzhiyun		operating-points-v2 = <&bus_mcuisp_opp_table>;
262*4882a593Smuzhiyun		status = "disabled";
263*4882a593Smuzhiyun	};
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun	bus_isp: bus_isp {
266*4882a593Smuzhiyun		compatible = "samsung,exynos-bus";
267*4882a593Smuzhiyun		clocks = <&cmu CLK_DIV_ACLK_266>;
268*4882a593Smuzhiyun		clock-names = "bus";
269*4882a593Smuzhiyun		operating-points-v2 = <&bus_isp_opp_table>;
270*4882a593Smuzhiyun		status = "disabled";
271*4882a593Smuzhiyun	};
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun	bus_peril: bus_peril {
274*4882a593Smuzhiyun		compatible = "samsung,exynos-bus";
275*4882a593Smuzhiyun		clocks = <&cmu CLK_DIV_ACLK_100>;
276*4882a593Smuzhiyun		clock-names = "bus";
277*4882a593Smuzhiyun		operating-points-v2 = <&bus_peril_opp_table>;
278*4882a593Smuzhiyun		status = "disabled";
279*4882a593Smuzhiyun	};
280*4882a593Smuzhiyun
281*4882a593Smuzhiyun	bus_mfc: bus_mfc {
282*4882a593Smuzhiyun		compatible = "samsung,exynos-bus";
283*4882a593Smuzhiyun		clocks = <&cmu CLK_SCLK_MFC>;
284*4882a593Smuzhiyun		clock-names = "bus";
285*4882a593Smuzhiyun		operating-points-v2 = <&bus_leftbus_opp_table>;
286*4882a593Smuzhiyun		status = "disabled";
287*4882a593Smuzhiyun	};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun	bus_leftbus_opp_table: opp_table1 {
290*4882a593Smuzhiyun		compatible = "operating-points-v2";
291*4882a593Smuzhiyun		opp-shared;
292*4882a593Smuzhiyun
293*4882a593Smuzhiyun		opp-50000000 {
294*4882a593Smuzhiyun			opp-hz = /bits/ 64 <50000000>;
295*4882a593Smuzhiyun			opp-microvolt = <900000>;
296*4882a593Smuzhiyun		};
297*4882a593Smuzhiyun		opp-80000000 {
298*4882a593Smuzhiyun			opp-hz = /bits/ 64 <80000000>;
299*4882a593Smuzhiyun			opp-microvolt = <900000>;
300*4882a593Smuzhiyun		};
301*4882a593Smuzhiyun		opp-100000000 {
302*4882a593Smuzhiyun			opp-hz = /bits/ 64 <100000000>;
303*4882a593Smuzhiyun			opp-microvolt = <1000000>;
304*4882a593Smuzhiyun		};
305*4882a593Smuzhiyun		opp-134000000 {
306*4882a593Smuzhiyun			opp-hz = /bits/ 64 <134000000>;
307*4882a593Smuzhiyun			opp-microvolt = <1000000>;
308*4882a593Smuzhiyun		};
309*4882a593Smuzhiyun		opp-200000000 {
310*4882a593Smuzhiyun			opp-hz = /bits/ 64 <200000000>;
311*4882a593Smuzhiyun			opp-microvolt = <1000000>;
312*4882a593Smuzhiyun		};
313*4882a593Smuzhiyun	};
314*4882a593Smuzhiyun
315*4882a593Smuzhiyun	bus_mcuisp_opp_table: opp_table2 {
316*4882a593Smuzhiyun		compatible = "operating-points-v2";
317*4882a593Smuzhiyun		opp-shared;
318*4882a593Smuzhiyun
319*4882a593Smuzhiyun		opp-50000000 {
320*4882a593Smuzhiyun			opp-hz = /bits/ 64 <50000000>;
321*4882a593Smuzhiyun		};
322*4882a593Smuzhiyun		opp-80000000 {
323*4882a593Smuzhiyun			opp-hz = /bits/ 64 <80000000>;
324*4882a593Smuzhiyun		};
325*4882a593Smuzhiyun		opp-100000000 {
326*4882a593Smuzhiyun			opp-hz = /bits/ 64 <100000000>;
327*4882a593Smuzhiyun		};
328*4882a593Smuzhiyun		opp-200000000 {
329*4882a593Smuzhiyun			opp-hz = /bits/ 64 <200000000>;
330*4882a593Smuzhiyun		};
331*4882a593Smuzhiyun		opp-400000000 {
332*4882a593Smuzhiyun			opp-hz = /bits/ 64 <400000000>;
333*4882a593Smuzhiyun		};
334*4882a593Smuzhiyun	};
335*4882a593Smuzhiyun
336*4882a593Smuzhiyun	bus_isp_opp_table: opp_table3 {
337*4882a593Smuzhiyun		compatible = "operating-points-v2";
338*4882a593Smuzhiyun		opp-shared;
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun		opp-50000000 {
341*4882a593Smuzhiyun			opp-hz = /bits/ 64 <50000000>;
342*4882a593Smuzhiyun		};
343*4882a593Smuzhiyun		opp-80000000 {
344*4882a593Smuzhiyun			opp-hz = /bits/ 64 <80000000>;
345*4882a593Smuzhiyun		};
346*4882a593Smuzhiyun		opp-100000000 {
347*4882a593Smuzhiyun			opp-hz = /bits/ 64 <100000000>;
348*4882a593Smuzhiyun		};
349*4882a593Smuzhiyun		opp-200000000 {
350*4882a593Smuzhiyun			opp-hz = /bits/ 64 <200000000>;
351*4882a593Smuzhiyun		};
352*4882a593Smuzhiyun		opp-300000000 {
353*4882a593Smuzhiyun			opp-hz = /bits/ 64 <300000000>;
354*4882a593Smuzhiyun		};
355*4882a593Smuzhiyun	};
356*4882a593Smuzhiyun
357*4882a593Smuzhiyun	bus_peril_opp_table: opp_table4 {
358*4882a593Smuzhiyun		compatible = "operating-points-v2";
359*4882a593Smuzhiyun		opp-shared;
360*4882a593Smuzhiyun
361*4882a593Smuzhiyun		opp-50000000 {
362*4882a593Smuzhiyun			opp-hz = /bits/ 64 <50000000>;
363*4882a593Smuzhiyun		};
364*4882a593Smuzhiyun		opp-80000000 {
365*4882a593Smuzhiyun			opp-hz = /bits/ 64 <80000000>;
366*4882a593Smuzhiyun		};
367*4882a593Smuzhiyun		opp-100000000 {
368*4882a593Smuzhiyun			opp-hz = /bits/ 64 <100000000>;
369*4882a593Smuzhiyun		};
370*4882a593Smuzhiyun	};
371*4882a593Smuzhiyun
372*4882a593Smuzhiyun
373*4882a593Smuzhiyun	Usage case to handle the frequency and voltage of bus on runtime
374*4882a593Smuzhiyun	in exynos3250-rinato.dts is listed below:
375*4882a593Smuzhiyun
376*4882a593Smuzhiyun	&bus_dmc {
377*4882a593Smuzhiyun		devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
378*4882a593Smuzhiyun		vdd-supply = <&buck1_reg>;	/* VDD_MIF */
379*4882a593Smuzhiyun		status = "okay";
380*4882a593Smuzhiyun	};
381*4882a593Smuzhiyun
382*4882a593Smuzhiyun	&bus_leftbus {
383*4882a593Smuzhiyun		devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
384*4882a593Smuzhiyun		vdd-supply = <&buck3_reg>;
385*4882a593Smuzhiyun		status = "okay";
386*4882a593Smuzhiyun	};
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun	&bus_rightbus {
389*4882a593Smuzhiyun		devfreq = <&bus_leftbus>;
390*4882a593Smuzhiyun		status = "okay";
391*4882a593Smuzhiyun	};
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun	&bus_lcd0 {
394*4882a593Smuzhiyun		devfreq = <&bus_leftbus>;
395*4882a593Smuzhiyun		status = "okay";
396*4882a593Smuzhiyun	};
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun	&bus_fsys {
399*4882a593Smuzhiyun		devfreq = <&bus_leftbus>;
400*4882a593Smuzhiyun		status = "okay";
401*4882a593Smuzhiyun	};
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun	&bus_mcuisp {
404*4882a593Smuzhiyun		devfreq = <&bus_leftbus>;
405*4882a593Smuzhiyun		status = "okay";
406*4882a593Smuzhiyun	};
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun	&bus_isp {
409*4882a593Smuzhiyun		devfreq = <&bus_leftbus>;
410*4882a593Smuzhiyun		status = "okay";
411*4882a593Smuzhiyun	};
412*4882a593Smuzhiyun
413*4882a593Smuzhiyun	&bus_peril {
414*4882a593Smuzhiyun		devfreq = <&bus_leftbus>;
415*4882a593Smuzhiyun		status = "okay";
416*4882a593Smuzhiyun	};
417*4882a593Smuzhiyun
418*4882a593Smuzhiyun	&bus_mfc {
419*4882a593Smuzhiyun		devfreq = <&bus_leftbus>;
420*4882a593Smuzhiyun		status = "okay";
421*4882a593Smuzhiyun	};
422