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