aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2016-05-10 10:17:55 -0400
committerArnd Bergmann <arnd@arndb.de>2016-05-10 10:17:55 -0400
commit88f1847639d68d732f83adb7aae94e0d989f7e28 (patch)
treeb15304c21a324f04b287c510c378be753127ef14
parent28f3136910b9733b9647e84430096f613dcec9e9 (diff)
parent3f2129fd0daeaf9e60a51f9ebd2d9faabb437308 (diff)
Merge tag 'samsung-dt-devfreq-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/late
Merge "ARM: dts: exynos: Devfreq for v4.7: from Krzysztof Kozłowski: Topic branch for Device Tree changes adding new generic devfreq driver, for v4.7: 1. Add bus nodes for Exynos3250, Exynos4x12, Exynos4210 and Exynos542x. 2. Split out common PPMU (Performance Monitoring Unit) nodes into separate DTSI. The PPMU provides performance data for devfreq. 3. Add NoCP (Network on Chip Probe) node for Exynos542x. On this SoC, like PPMU on older designs, provides performance data for devfreq. 4. Enable DFVS (Dynamic Voltage and Frequency Scaling) on boards: - Exynos3250 Rinato, - Exynos4412 Odroid-X/X2/U3 and Trats2, - Exynos5422 Odroid XU3/XU3-Lite/XU4. * tag 'samsung-dt-devfreq-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: dts: exynos: Add support of Bus frequency using VDD_INT for exynos5422-odroidxu3 ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos542x SoC ARM: dts: exynos: Add NoC Probe dt node for Exynos542x SoC ARM: dts: exynos: Add support of bus frequency for exynos4412-trats/odroidu3 ARM: dts: exynos: Expand the voltage range of buck1/3 regulator for exynos4412-odroidu3 ARM: dts: exynos: Add support of bus frequency using VDD_INT for exynos3250-rinato ARM: dts: exynos: Add exynos4412-ppmu-common dtsi to delete duplicate PPMU nodes ARM: dts: exynos: Add bus nodes using VDD_MIF for Exynos4210 ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos4x12 ARM: dts: exynos: Add bus nodes using VDD_MIF for Exynos4x12 ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos3250 ARM: dts: exynos: Add DMC bus frequency for exynos3250-rinato/monk ARM: dts: exynos: Add DMC bus node for Exynos3250 clk: samsung: exynos542x: Add the clock id for ACLK dt-bindings: clock: Add the clock id for ACLK clock of Exynos542x SoC
-rw-r--r--arch/arm/boot/dts/exynos3250-monk.dts47
-rw-r--r--arch/arm/boot/dts/exynos3250-rinato.dts88
-rw-r--r--arch/arm/boot/dts/exynos3250.dtsi181
-rw-r--r--arch/arm/boot/dts/exynos4210.dtsi159
-rw-r--r--arch/arm/boot/dts/exynos4412-odroid-common.dtsi56
-rw-r--r--arch/arm/boot/dts/exynos4412-ppmu-common.dtsi50
-rw-r--r--arch/arm/boot/dts/exynos4412-trats2.dts88
-rw-r--r--arch/arm/boot/dts/exynos4x12.dtsi174
-rw-r--r--arch/arm/boot/dts/exynos5420.dtsi407
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi99
-rw-r--r--drivers/clk/samsung/clk-exynos5420.c77
-rw-r--r--include/dt-bindings/clock/exynos5420.h24
12 files changed, 1295 insertions, 155 deletions
diff --git a/arch/arm/boot/dts/exynos3250-monk.dts b/arch/arm/boot/dts/exynos3250-monk.dts
index 9e2840b59ae8..fbe09d640c9a 100644
--- a/arch/arm/boot/dts/exynos3250-monk.dts
+++ b/arch/arm/boot/dts/exynos3250-monk.dts
@@ -14,6 +14,7 @@
14 14
15/dts-v1/; 15/dts-v1/;
16#include "exynos3250.dtsi" 16#include "exynos3250.dtsi"
17#include "exynos4412-ppmu-common.dtsi"
17#include <dt-bindings/input/input.h> 18#include <dt-bindings/input/input.h>
18#include <dt-bindings/gpio/gpio.h> 19#include <dt-bindings/gpio/gpio.h>
19#include <dt-bindings/clock/samsung,s2mps11.h> 20#include <dt-bindings/clock/samsung,s2mps11.h>
@@ -156,6 +157,12 @@
156 }; 157 };
157}; 158};
158 159
160&bus_dmc {
161 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
162 vdd-supply = <&buck1_reg>;
163 status = "okay";
164};
165
159&cpu0 { 166&cpu0 {
160 cpu0-supply = <&buck2_reg>; 167 cpu0-supply = <&buck2_reg>;
161}; 168};
@@ -458,46 +465,6 @@
458 status = "okay"; 465 status = "okay";
459}; 466};
460 467
461&ppmu_dmc0 {
462 status = "okay";
463
464 events {
465 ppmu_dmc0_3: ppmu-event3-dmc0 {
466 event-name = "ppmu-event3-dmc0";
467 };
468 };
469};
470
471&ppmu_dmc1 {
472 status = "okay";
473
474 events {
475 ppmu_dmc1_3: ppmu-event3-dmc1 {
476 event-name = "ppmu-event3-dmc1";
477 };
478 };
479};
480
481&ppmu_leftbus {
482 status = "okay";
483
484 events {
485 ppmu_leftbus_3: ppmu-event3-leftbus {
486 event-name = "ppmu-event3-leftbus";
487 };
488 };
489};
490
491&ppmu_rightbus {
492 status = "okay";
493
494 events {
495 ppmu_rightbus_3: ppmu-event3-rightbus {
496 event-name = "ppmu-event3-rightbus";
497 };
498 };
499};
500
501&xusbxti { 468&xusbxti {
502 clock-frequency = <24000000>; 469 clock-frequency = <24000000>;
503}; 470};
diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
index 1f102f3a1ab1..09444897b416 100644
--- a/arch/arm/boot/dts/exynos3250-rinato.dts
+++ b/arch/arm/boot/dts/exynos3250-rinato.dts
@@ -14,6 +14,7 @@
14 14
15/dts-v1/; 15/dts-v1/;
16#include "exynos3250.dtsi" 16#include "exynos3250.dtsi"
17#include "exynos4412-ppmu-common.dtsi"
17#include <dt-bindings/input/input.h> 18#include <dt-bindings/input/input.h>
18#include <dt-bindings/gpio/gpio.h> 19#include <dt-bindings/gpio/gpio.h>
19#include <dt-bindings/clock/samsung,s2mps11.h> 20#include <dt-bindings/clock/samsung,s2mps11.h>
@@ -147,6 +148,53 @@
147 }; 148 };
148}; 149};
149 150
151&bus_dmc {
152 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
153 vdd-supply = <&buck1_reg>;
154 status = "okay";
155};
156
157&bus_leftbus {
158 devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
159 vdd-supply = <&buck3_reg>;
160 status = "okay";
161};
162
163&bus_rightbus {
164 devfreq = <&bus_leftbus>;
165 status = "okay";
166};
167
168&bus_lcd0 {
169 devfreq = <&bus_leftbus>;
170 status = "okay";
171};
172
173&bus_fsys {
174 devfreq = <&bus_leftbus>;
175 status = "okay";
176};
177
178&bus_mcuisp {
179 devfreq = <&bus_leftbus>;
180 status = "okay";
181};
182
183&bus_isp {
184 devfreq = <&bus_leftbus>;
185 status = "okay";
186};
187
188&bus_peril {
189 devfreq = <&bus_leftbus>;
190 status = "okay";
191};
192
193&bus_mfc {
194 devfreq = <&bus_leftbus>;
195 status = "okay";
196};
197
150&cpu0 { 198&cpu0 {
151 cpu0-supply = <&buck2_reg>; 199 cpu0-supply = <&buck2_reg>;
152}; 200};
@@ -635,46 +683,6 @@
635 status = "okay"; 683 status = "okay";
636}; 684};
637 685
638&ppmu_dmc0 {
639 status = "okay";
640
641 events {
642 ppmu_dmc0_3: ppmu-event3-dmc0 {
643 event-name = "ppmu-event3-dmc0";
644 };
645 };
646};
647
648&ppmu_dmc1 {
649 status = "okay";
650
651 events {
652 ppmu_dmc1_3: ppmu-event3-dmc1 {
653 event-name = "ppmu-event3-dmc1";
654 };
655 };
656};
657
658&ppmu_leftbus {
659 status = "okay";
660
661 events {
662 ppmu_leftbus_3: ppmu-event3-leftbus {
663 event-name = "ppmu-event3-leftbus";
664 };
665 };
666};
667
668&ppmu_rightbus {
669 status = "okay";
670
671 events {
672 ppmu_rightbus_3: ppmu-event3-rightbus {
673 event-name = "ppmu-event3-rightbus";
674 };
675 };
676};
677
678&xusbxti { 686&xusbxti {
679 clock-frequency = <24000000>; 687 clock-frequency = <24000000>;
680}; 688};
diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi
index 137f9015d4e8..b5157492a422 100644
--- a/arch/arm/boot/dts/exynos3250.dtsi
+++ b/arch/arm/boot/dts/exynos3250.dtsi
@@ -688,6 +688,187 @@
688 clock-names = "ppmu"; 688 clock-names = "ppmu";
689 status = "disabled"; 689 status = "disabled";
690 }; 690 };
691
692 bus_dmc: bus_dmc {
693 compatible = "samsung,exynos-bus";
694 clocks = <&cmu_dmc CLK_DIV_DMC>;
695 clock-names = "bus";
696 operating-points-v2 = <&bus_dmc_opp_table>;
697 status = "disabled";
698 };
699
700 bus_dmc_opp_table: opp_table1 {
701 compatible = "operating-points-v2";
702 opp-shared;
703
704 opp@50000000 {
705 opp-hz = /bits/ 64 <50000000>;
706 opp-microvolt = <800000>;
707 };
708 opp@100000000 {
709 opp-hz = /bits/ 64 <100000000>;
710 opp-microvolt = <800000>;
711 };
712 opp@134000000 {
713 opp-hz = /bits/ 64 <134000000>;
714 opp-microvolt = <800000>;
715 };
716 opp@200000000 {
717 opp-hz = /bits/ 64 <200000000>;
718 opp-microvolt = <825000>;
719 };
720 opp@400000000 {
721 opp-hz = /bits/ 64 <400000000>;
722 opp-microvolt = <875000>;
723 };
724 };
725
726 bus_leftbus: bus_leftbus {
727 compatible = "samsung,exynos-bus";
728 clocks = <&cmu CLK_DIV_GDL>;
729 clock-names = "bus";
730 operating-points-v2 = <&bus_leftbus_opp_table>;
731 status = "disabled";
732 };
733
734 bus_rightbus: bus_rightbus {
735 compatible = "samsung,exynos-bus";
736 clocks = <&cmu CLK_DIV_GDR>;
737 clock-names = "bus";
738 operating-points-v2 = <&bus_leftbus_opp_table>;
739 status = "disabled";
740 };
741
742 bus_lcd0: bus_lcd0 {
743 compatible = "samsung,exynos-bus";
744 clocks = <&cmu CLK_DIV_ACLK_160>;
745 clock-names = "bus";
746 operating-points-v2 = <&bus_leftbus_opp_table>;
747 status = "disabled";
748 };
749
750 bus_fsys: bus_fsys {
751 compatible = "samsung,exynos-bus";
752 clocks = <&cmu CLK_DIV_ACLK_200>;
753 clock-names = "bus";
754 operating-points-v2 = <&bus_leftbus_opp_table>;
755 status = "disabled";
756 };
757
758 bus_mcuisp: bus_mcuisp {
759 compatible = "samsung,exynos-bus";
760 clocks = <&cmu CLK_DIV_ACLK_400_MCUISP>;
761 clock-names = "bus";
762 operating-points-v2 = <&bus_mcuisp_opp_table>;
763 status = "disabled";
764 };
765
766 bus_isp: bus_isp {
767 compatible = "samsung,exynos-bus";
768 clocks = <&cmu CLK_DIV_ACLK_266>;
769 clock-names = "bus";
770 operating-points-v2 = <&bus_isp_opp_table>;
771 status = "disabled";
772 };
773
774 bus_peril: bus_peril {
775 compatible = "samsung,exynos-bus";
776 clocks = <&cmu CLK_DIV_ACLK_100>;
777 clock-names = "bus";
778 operating-points-v2 = <&bus_peril_opp_table>;
779 status = "disabled";
780 };
781
782 bus_mfc: bus_mfc {
783 compatible = "samsung,exynos-bus";
784 clocks = <&cmu CLK_SCLK_MFC>;
785 clock-names = "bus";
786 operating-points-v2 = <&bus_leftbus_opp_table>;
787 status = "disabled";
788 };
789
790 bus_leftbus_opp_table: opp_table2 {
791 compatible = "operating-points-v2";
792 opp-shared;
793
794 opp@50000000 {
795 opp-hz = /bits/ 64 <50000000>;
796 opp-microvolt = <900000>;
797 };
798 opp@80000000 {
799 opp-hz = /bits/ 64 <80000000>;
800 opp-microvolt = <900000>;
801 };
802 opp@100000000 {
803 opp-hz = /bits/ 64 <100000000>;
804 opp-microvolt = <1000000>;
805 };
806 opp@134000000 {
807 opp-hz = /bits/ 64 <134000000>;
808 opp-microvolt = <1000000>;
809 };
810 opp@200000000 {
811 opp-hz = /bits/ 64 <200000000>;
812 opp-microvolt = <1000000>;
813 };
814 };
815
816 bus_mcuisp_opp_table: opp_table3 {
817 compatible = "operating-points-v2";
818 opp-shared;
819
820 opp@50000000 {
821 opp-hz = /bits/ 64 <50000000>;
822 };
823 opp@80000000 {
824 opp-hz = /bits/ 64 <80000000>;
825 };
826 opp@100000000 {
827 opp-hz = /bits/ 64 <100000000>;
828 };
829 opp@200000000 {
830 opp-hz = /bits/ 64 <200000000>;
831 };
832 opp@400000000 {
833 opp-hz = /bits/ 64 <400000000>;
834 };
835 };
836
837 bus_isp_opp_table: opp_table4 {
838 compatible = "operating-points-v2";
839 opp-shared;
840
841 opp@50000000 {
842 opp-hz = /bits/ 64 <50000000>;
843 };
844 opp@80000000 {
845 opp-hz = /bits/ 64 <80000000>;
846 };
847 opp@100000000 {
848 opp-hz = /bits/ 64 <100000000>;
849 };
850 opp@200000000 {
851 opp-hz = /bits/ 64 <200000000>;
852 };
853 opp@300000000 {
854 opp-hz = /bits/ 64 <300000000>;
855 };
856 };
857
858 bus_peril_opp_table: opp_table5 {
859 compatible = "operating-points-v2";
860 opp-shared;
861
862 opp@50000000 {
863 opp-hz = /bits/ 64 <50000000>;
864 };
865 opp@80000000 {
866 opp-hz = /bits/ 64 <80000000>;
867 };
868 opp@100000000 {
869 opp-hz = /bits/ 64 <100000000>;
870 };
871 };
691 }; 872 };
692}; 873};
693 874
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index c1cb8df6da07..2d9b02967105 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -257,6 +257,165 @@
257 power-domains = <&pd_lcd1>; 257 power-domains = <&pd_lcd1>;
258 #iommu-cells = <0>; 258 #iommu-cells = <0>;
259 }; 259 };
260
261 bus_dmc: bus_dmc {
262 compatible = "samsung,exynos-bus";
263 clocks = <&clock CLK_DIV_DMC>;
264 clock-names = "bus";
265 operating-points-v2 = <&bus_dmc_opp_table>;
266 status = "disabled";
267 };
268
269 bus_acp: bus_acp {
270 compatible = "samsung,exynos-bus";
271 clocks = <&clock CLK_DIV_ACP>;
272 clock-names = "bus";
273 operating-points-v2 = <&bus_acp_opp_table>;
274 status = "disabled";
275 };
276
277 bus_peri: bus_peri {
278 compatible = "samsung,exynos-bus";
279 clocks = <&clock CLK_ACLK100>;
280 clock-names = "bus";
281 operating-points-v2 = <&bus_peri_opp_table>;
282 status = "disabled";
283 };
284
285 bus_fsys: bus_fsys {
286 compatible = "samsung,exynos-bus";
287 clocks = <&clock CLK_ACLK133>;
288 clock-names = "bus";
289 operating-points-v2 = <&bus_fsys_opp_table>;
290 status = "disabled";
291 };
292
293 bus_display: bus_display {
294 compatible = "samsung,exynos-bus";
295 clocks = <&clock CLK_ACLK160>;
296 clock-names = "bus";
297 operating-points-v2 = <&bus_display_opp_table>;
298 status = "disabled";
299 };
300
301 bus_lcd0: bus_lcd0 {
302 compatible = "samsung,exynos-bus";
303 clocks = <&clock CLK_ACLK200>;
304 clock-names = "bus";
305 operating-points-v2 = <&bus_leftbus_opp_table>;
306 status = "disabled";
307 };
308
309 bus_leftbus: bus_leftbus {
310 compatible = "samsung,exynos-bus";
311 clocks = <&clock CLK_DIV_GDL>;
312 clock-names = "bus";
313 operating-points-v2 = <&bus_leftbus_opp_table>;
314 status = "disabled";
315 };
316
317 bus_rightbus: bus_rightbus {
318 compatible = "samsung,exynos-bus";
319 clocks = <&clock CLK_DIV_GDR>;
320 clock-names = "bus";
321 operating-points-v2 = <&bus_leftbus_opp_table>;
322 status = "disabled";
323 };
324
325 bus_mfc: bus_mfc {
326 compatible = "samsung,exynos-bus";
327 clocks = <&clock CLK_SCLK_MFC>;
328 clock-names = "bus";
329 operating-points-v2 = <&bus_leftbus_opp_table>;
330 status = "disabled";
331 };
332
333 bus_dmc_opp_table: opp_table1 {
334 compatible = "operating-points-v2";
335 opp-shared;
336
337 opp@134000000 {
338 opp-hz = /bits/ 64 <134000000>;
339 opp-microvolt = <1025000>;
340 };
341 opp@267000000 {
342 opp-hz = /bits/ 64 <267000000>;
343 opp-microvolt = <1050000>;
344 };
345 opp@400000000 {
346 opp-hz = /bits/ 64 <400000000>;
347 opp-microvolt = <1150000>;
348 };
349 };
350
351 bus_acp_opp_table: opp_table2 {
352 compatible = "operating-points-v2";
353 opp-shared;
354
355 opp@134000000 {
356 opp-hz = /bits/ 64 <134000000>;
357 };
358 opp@160000000 {
359 opp-hz = /bits/ 64 <160000000>;
360 };
361 opp@200000000 {
362 opp-hz = /bits/ 64 <200000000>;
363 };
364 };
365
366 bus_peri_opp_table: opp_table3 {
367 compatible = "operating-points-v2";
368 opp-shared;
369
370 opp@5000000 {
371 opp-hz = /bits/ 64 <5000000>;
372 };
373 opp@100000000 {
374 opp-hz = /bits/ 64 <100000000>;
375 };
376 };
377
378 bus_fsys_opp_table: opp_table4 {
379 compatible = "operating-points-v2";
380 opp-shared;
381
382 opp@10000000 {
383 opp-hz = /bits/ 64 <10000000>;
384 };
385 opp@134000000 {
386 opp-hz = /bits/ 64 <134000000>;
387 };
388 };
389
390 bus_display_opp_table: opp_table5 {
391 compatible = "operating-points-v2";
392 opp-shared;
393
394 opp@100000000 {
395 opp-hz = /bits/ 64 <100000000>;
396 };
397 opp@134000000 {
398 opp-hz = /bits/ 64 <134000000>;
399 };
400 opp@160000000 {
401 opp-hz = /bits/ 64 <160000000>;
402 };
403 };
404
405 bus_leftbus_opp_table: opp_table6 {
406 compatible = "operating-points-v2";
407 opp-shared;
408
409 opp@100000000 {
410 opp-hz = /bits/ 64 <100000000>;
411 };
412 opp@160000000 {
413 opp-hz = /bits/ 64 <160000000>;
414 };
415 opp@200000000 {
416 opp-hz = /bits/ 64 <200000000>;
417 };
418 };
260}; 419};
261 420
262&gic { 421&gic {
diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
index 5e5d3fecb04c..2015f10071f9 100644
--- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
+++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
@@ -11,6 +11,7 @@
11#include <dt-bindings/input/input.h> 11#include <dt-bindings/input/input.h>
12#include <dt-bindings/clock/maxim,max77686.h> 12#include <dt-bindings/clock/maxim,max77686.h>
13#include "exynos4412.dtsi" 13#include "exynos4412.dtsi"
14#include "exynos4412-ppmu-common.dtsi"
14#include <dt-bindings/gpio/gpio.h> 15#include <dt-bindings/gpio/gpio.h>
15 16
16/ { 17/ {
@@ -108,6 +109,53 @@
108 }; 109 };
109}; 110};
110 111
112&bus_dmc {
113 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
114 vdd-supply = <&buck1_reg>;
115 status = "okay";
116};
117
118&bus_acp {
119 devfreq = <&bus_dmc>;
120 status = "okay";
121};
122
123&bus_c2c {
124 devfreq = <&bus_dmc>;
125 status = "okay";
126};
127
128&bus_leftbus {
129 devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
130 vdd-supply = <&buck3_reg>;
131 status = "okay";
132};
133
134&bus_rightbus {
135 devfreq = <&bus_leftbus>;
136 status = "okay";
137};
138
139&bus_display {
140 devfreq = <&bus_leftbus>;
141 status = "okay";
142};
143
144&bus_fsys {
145 devfreq = <&bus_leftbus>;
146 status = "okay";
147};
148
149&bus_peri {
150 devfreq = <&bus_leftbus>;
151 status = "okay";
152};
153
154&bus_mfc {
155 devfreq = <&bus_leftbus>;
156 status = "okay";
157};
158
111&cpu0 { 159&cpu0 {
112 cpu0-supply = <&buck2_reg>; 160 cpu0-supply = <&buck2_reg>;
113}; 161};
@@ -355,8 +403,8 @@
355 403
356 buck1_reg: BUCK1 { 404 buck1_reg: BUCK1 {
357 regulator-name = "vdd_mif"; 405 regulator-name = "vdd_mif";
358 regulator-min-microvolt = <1000000>; 406 regulator-min-microvolt = <900000>;
359 regulator-max-microvolt = <1000000>; 407 regulator-max-microvolt = <1100000>;
360 regulator-always-on; 408 regulator-always-on;
361 regulator-boot-on; 409 regulator-boot-on;
362 }; 410 };
@@ -371,8 +419,8 @@
371 419
372 buck3_reg: BUCK3 { 420 buck3_reg: BUCK3 {
373 regulator-name = "vdd_int"; 421 regulator-name = "vdd_int";
374 regulator-min-microvolt = <1000000>; 422 regulator-min-microvolt = <900000>;
375 regulator-max-microvolt = <1000000>; 423 regulator-max-microvolt = <1050000>;
376 regulator-always-on; 424 regulator-always-on;
377 regulator-boot-on; 425 regulator-boot-on;
378 }; 426 };
diff --git a/arch/arm/boot/dts/exynos4412-ppmu-common.dtsi b/arch/arm/boot/dts/exynos4412-ppmu-common.dtsi
new file mode 100644
index 000000000000..16e4b77d8cb1
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4412-ppmu-common.dtsi
@@ -0,0 +1,50 @@
1/*
2 * Device tree sources for Exynos4412 PPMU common device tree
3 *
4 * Copyright (C) 2015 Samsung Electronics
5 * Author: Chanwoo Choi <cw00.choi@samsung.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12&ppmu_dmc0 {
13 status = "okay";
14
15 events {
16 ppmu_dmc0_3: ppmu-event3-dmc0 {
17 event-name = "ppmu-event3-dmc0";
18 };
19 };
20};
21
22&ppmu_dmc1 {
23 status = "okay";
24
25 events {
26 ppmu_dmc1_3: ppmu-event3-dmc1 {
27 event-name = "ppmu-event3-dmc1";
28 };
29 };
30};
31
32&ppmu_leftbus {
33 status = "okay";
34
35 events {
36 ppmu_leftbus_3: ppmu-event3-leftbus {
37 event-name = "ppmu-event3-leftbus";
38 };
39 };
40};
41
42&ppmu_rightbus {
43 status = "okay";
44
45 events {
46 ppmu_rightbus_3: ppmu-event3-rightbus {
47 event-name = "ppmu-event3-rightbus";
48 };
49 };
50};
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index ed017cc7b14f..9f3fb9a7f5f4 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -14,6 +14,7 @@
14 14
15/dts-v1/; 15/dts-v1/;
16#include "exynos4412.dtsi" 16#include "exynos4412.dtsi"
17#include "exynos4412-ppmu-common.dtsi"
17#include <dt-bindings/gpio/gpio.h> 18#include <dt-bindings/gpio/gpio.h>
18#include <dt-bindings/interrupt-controller/irq.h> 19#include <dt-bindings/interrupt-controller/irq.h>
19#include <dt-bindings/clock/maxim,max77686.h> 20#include <dt-bindings/clock/maxim,max77686.h>
@@ -288,6 +289,53 @@
288 status = "okay"; 289 status = "okay";
289}; 290};
290 291
292&bus_dmc {
293 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
294 vdd-supply = <&buck1_reg>;
295 status = "okay";
296};
297
298&bus_acp {
299 devfreq = <&bus_dmc>;
300 status = "okay";
301};
302
303&bus_c2c {
304 devfreq = <&bus_dmc>;
305 status = "okay";
306};
307
308&bus_leftbus {
309 devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
310 vdd-supply = <&buck3_reg>;
311 status = "okay";
312};
313
314&bus_rightbus {
315 devfreq = <&bus_leftbus>;
316 status = "okay";
317};
318
319&bus_display {
320 devfreq = <&bus_leftbus>;
321 status = "okay";
322};
323
324&bus_fsys {
325 devfreq = <&bus_leftbus>;
326 status = "okay";
327};
328
329&bus_peri {
330 devfreq = <&bus_leftbus>;
331 status = "okay";
332};
333
334&bus_mfc {
335 devfreq = <&bus_leftbus>;
336 status = "okay";
337};
338
291&cpu0 { 339&cpu0 {
292 cpu0-supply = <&buck2_reg>; 340 cpu0-supply = <&buck2_reg>;
293}; 341};
@@ -871,46 +919,6 @@
871 assigned-clock-parents = <&clock CLK_XUSBXTI>; 919 assigned-clock-parents = <&clock CLK_XUSBXTI>;
872}; 920};
873 921
874&ppmu_dmc0 {
875 status = "okay";
876
877 events {
878 ppmu_dmc0_3: ppmu-event3-dmc0 {
879 event-name = "ppmu-event3-dmc0";
880 };
881 };
882};
883
884&ppmu_dmc1 {
885 status = "okay";
886
887 events {
888 ppmu_dmc1_3: ppmu-event3-dmc1 {
889 event-name = "ppmu-event3-dmc1";
890 };
891 };
892};
893
894&ppmu_leftbus {
895 status = "okay";
896
897 events {
898 ppmu_leftbus_3: ppmu-event3-leftbus {
899 event-name = "ppmu-event3-leftbus";
900 };
901 };
902};
903
904&ppmu_rightbus {
905 status = "okay";
906
907 events {
908 ppmu_rightbus_3: ppmu-event3-rightbus {
909 event-name = "ppmu-event3-rightbus";
910 };
911 };
912};
913
914&pinctrl_0 { 922&pinctrl_0 {
915 pinctrl-names = "default"; 923 pinctrl-names = "default";
916 pinctrl-0 = <&sleep0>; 924 pinctrl-0 = <&sleep0>;
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index 84a23f962946..e5173107ed44 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -281,6 +281,180 @@
281 clocks = <&clock CLK_SMMU_LITE1>, <&clock CLK_FIMC_LITE1>; 281 clocks = <&clock CLK_SMMU_LITE1>, <&clock CLK_FIMC_LITE1>;
282 #iommu-cells = <0>; 282 #iommu-cells = <0>;
283 }; 283 };
284
285 bus_dmc: bus_dmc {
286 compatible = "samsung,exynos-bus";
287 clocks = <&clock CLK_DIV_DMC>;
288 clock-names = "bus";
289 operating-points-v2 = <&bus_dmc_opp_table>;
290 status = "disabled";
291 };
292
293 bus_acp: bus_acp {
294 compatible = "samsung,exynos-bus";
295 clocks = <&clock CLK_DIV_ACP>;
296 clock-names = "bus";
297 operating-points-v2 = <&bus_acp_opp_table>;
298 status = "disabled";
299 };
300
301 bus_c2c: bus_c2c {
302 compatible = "samsung,exynos-bus";
303 clocks = <&clock CLK_DIV_C2C>;
304 clock-names = "bus";
305 operating-points-v2 = <&bus_dmc_opp_table>;
306 status = "disabled";
307 };
308
309 bus_dmc_opp_table: opp_table1 {
310 compatible = "operating-points-v2";
311 opp-shared;
312
313 opp@100000000 {
314 opp-hz = /bits/ 64 <100000000>;
315 opp-microvolt = <900000>;
316 };
317 opp@134000000 {
318 opp-hz = /bits/ 64 <134000000>;
319 opp-microvolt = <900000>;
320 };
321 opp@160000000 {
322 opp-hz = /bits/ 64 <160000000>;
323 opp-microvolt = <900000>;
324 };
325 opp@267000000 {
326 opp-hz = /bits/ 64 <267000000>;
327 opp-microvolt = <950000>;
328 };
329 opp@400000000 {
330 opp-hz = /bits/ 64 <400000000>;
331 opp-microvolt = <1050000>;
332 };
333 };
334
335 bus_acp_opp_table: opp_table2 {
336 compatible = "operating-points-v2";
337 opp-shared;
338
339 opp@100000000 {
340 opp-hz = /bits/ 64 <100000000>;
341 };
342 opp@134000000 {
343 opp-hz = /bits/ 64 <134000000>;
344 };
345 opp@160000000 {
346 opp-hz = /bits/ 64 <160000000>;
347 };
348 opp@267000000 {
349 opp-hz = /bits/ 64 <267000000>;
350 };
351 };
352
353 bus_leftbus: bus_leftbus {
354 compatible = "samsung,exynos-bus";
355 clocks = <&clock CLK_DIV_GDL>;
356 clock-names = "bus";
357 operating-points-v2 = <&bus_leftbus_opp_table>;
358 status = "disabled";
359 };
360
361 bus_rightbus: bus_rightbus {
362 compatible = "samsung,exynos-bus";
363 clocks = <&clock CLK_DIV_GDR>;
364 clock-names = "bus";
365 operating-points-v2 = <&bus_leftbus_opp_table>;
366 status = "disabled";
367 };
368
369 bus_display: bus_display {
370 compatible = "samsung,exynos-bus";
371 clocks = <&clock CLK_ACLK160>;
372 clock-names = "bus";
373 operating-points-v2 = <&bus_display_opp_table>;
374 status = "disabled";
375 };
376
377 bus_fsys: bus_fsys {
378 compatible = "samsung,exynos-bus";
379 clocks = <&clock CLK_ACLK133>;
380 clock-names = "bus";
381 operating-points-v2 = <&bus_fsys_opp_table>;
382 status = "disabled";
383 };
384
385 bus_peri: bus_peri {
386 compatible = "samsung,exynos-bus";
387 clocks = <&clock CLK_ACLK100>;
388 clock-names = "bus";
389 operating-points-v2 = <&bus_peri_opp_table>;
390 status = "disabled";
391 };
392
393 bus_mfc: bus_mfc {
394 compatible = "samsung,exynos-bus";
395 clocks = <&clock CLK_SCLK_MFC>;
396 clock-names = "bus";
397 operating-points-v2 = <&bus_leftbus_opp_table>;
398 status = "disabled";
399 };
400
401 bus_leftbus_opp_table: opp_table3 {
402 compatible = "operating-points-v2";
403 opp-shared;
404
405 opp@100000000 {
406 opp-hz = /bits/ 64 <100000000>;
407 opp-microvolt = <900000>;
408 };
409 opp@134000000 {
410 opp-hz = /bits/ 64 <134000000>;
411 opp-microvolt = <925000>;
412 };
413 opp@160000000 {
414 opp-hz = /bits/ 64 <160000000>;
415 opp-microvolt = <950000>;
416 };
417 opp@200000000 {
418 opp-hz = /bits/ 64 <200000000>;
419 opp-microvolt = <1000000>;
420 };
421 };
422
423 bus_display_opp_table: opp_table4 {
424 compatible = "operating-points-v2";
425 opp-shared;
426
427 opp@160000000 {
428 opp-hz = /bits/ 64 <160000000>;
429 };
430 opp@200000000 {
431 opp-hz = /bits/ 64 <200000000>;
432 };
433 };
434
435 bus_fsys_opp_table: opp_table5 {
436 compatible = "operating-points-v2";
437 opp-shared;
438
439 opp@100000000 {
440 opp-hz = /bits/ 64 <100000000>;
441 };
442 opp@134000000 {
443 opp-hz = /bits/ 64 <134000000>;
444 };
445 };
446
447 bus_peri_opp_table: opp_table6 {
448 compatible = "operating-points-v2";
449 opp-shared;
450
451 opp@50000000 {
452 opp-hz = /bits/ 64 <50000000>;
453 };
454 opp@100000000 {
455 opp-hz = /bits/ 64 <100000000>;
456 };
457 };
284}; 458};
285 459
286&combiner { 460&combiner {
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index 7b99cb58d82d..18888b5d2f8c 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -294,6 +294,42 @@
294 }; 294 };
295 }; 295 };
296 296
297 nocp_mem0_0: nocp@10CA1000 {
298 compatible = "samsung,exynos5420-nocp";
299 reg = <0x10CA1000 0x200>;
300 status = "disabled";
301 };
302
303 nocp_mem0_1: nocp@10CA1400 {
304 compatible = "samsung,exynos5420-nocp";
305 reg = <0x10CA1400 0x200>;
306 status = "disabled";
307 };
308
309 nocp_mem1_0: nocp@10CA1800 {
310 compatible = "samsung,exynos5420-nocp";
311 reg = <0x10CA1800 0x200>;
312 status = "disabled";
313 };
314
315 nocp_mem1_1: nocp@10CA1C00 {
316 compatible = "samsung,exynos5420-nocp";
317 reg = <0x10CA1C00 0x200>;
318 status = "disabled";
319 };
320
321 nocp_g3d_0: nocp@11A51000 {
322 compatible = "samsung,exynos5420-nocp";
323 reg = <0x11A51000 0x200>;
324 status = "disabled";
325 };
326
327 nocp_g3d_1: nocp@11A51400 {
328 compatible = "samsung,exynos5420-nocp";
329 reg = <0x11A51400 0x200>;
330 status = "disabled";
331 };
332
297 gsc_pd: power-domain@10044000 { 333 gsc_pd: power-domain@10044000 {
298 compatible = "samsung,exynos4210-pd"; 334 compatible = "samsung,exynos4210-pd";
299 reg = <0x10044000 0x20>; 335 reg = <0x10044000 0x20>;
@@ -1188,6 +1224,377 @@
1188 power-domains = <&disp_pd>; 1224 power-domains = <&disp_pd>;
1189 #iommu-cells = <0>; 1225 #iommu-cells = <0>;
1190 }; 1226 };
1227
1228 bus_wcore: bus_wcore {
1229 compatible = "samsung,exynos-bus";
1230 clocks = <&clock CLK_DOUT_ACLK400_WCORE>;
1231 clock-names = "bus";
1232 operating-points-v2 = <&bus_wcore_opp_table>;
1233 status = "disabled";
1234 };
1235
1236 bus_noc: bus_noc {
1237 compatible = "samsung,exynos-bus";
1238 clocks = <&clock CLK_DOUT_ACLK100_NOC>;
1239 clock-names = "bus";
1240 operating-points-v2 = <&bus_noc_opp_table>;
1241 status = "disabled";
1242 };
1243
1244 bus_fsys_apb: bus_fsys_apb {
1245 compatible = "samsung,exynos-bus";
1246 clocks = <&clock CLK_DOUT_PCLK200_FSYS>;
1247 clock-names = "bus";
1248 operating-points-v2 = <&bus_fsys_apb_opp_table>;
1249 status = "disabled";
1250 };
1251
1252 bus_fsys: bus_fsys {
1253 compatible = "samsung,exynos-bus";
1254 clocks = <&clock CLK_DOUT_ACLK200_FSYS>;
1255 clock-names = "bus";
1256 operating-points-v2 = <&bus_fsys_apb_opp_table>;
1257 status = "disabled";
1258 };
1259
1260 bus_fsys2: bus_fsys2 {
1261 compatible = "samsung,exynos-bus";
1262 clocks = <&clock CLK_DOUT_ACLK200_FSYS2>;
1263 clock-names = "bus";
1264 operating-points-v2 = <&bus_fsys2_opp_table>;
1265 status = "disabled";
1266 };
1267
1268 bus_mfc: bus_mfc {
1269 compatible = "samsung,exynos-bus";
1270 clocks = <&clock CLK_DOUT_ACLK333>;
1271 clock-names = "bus";
1272 operating-points-v2 = <&bus_mfc_opp_table>;
1273 status = "disabled";
1274 };
1275
1276 bus_gen: bus_gen {
1277 compatible = "samsung,exynos-bus";
1278 clocks = <&clock CLK_DOUT_ACLK266>;
1279 clock-names = "bus";
1280 operating-points-v2 = <&bus_gen_opp_table>;
1281 status = "disabled";
1282 };
1283
1284 bus_peri: bus_peri {
1285 compatible = "samsung,exynos-bus";
1286 clocks = <&clock CLK_DOUT_ACLK66>;
1287 clock-names = "bus";
1288 operating-points-v2 = <&bus_peri_opp_table>;
1289 status = "disabled";
1290 };
1291
1292 bus_g2d: bus_g2d {
1293 compatible = "samsung,exynos-bus";
1294 clocks = <&clock CLK_DOUT_ACLK333_G2D>;
1295 clock-names = "bus";
1296 operating-points-v2 = <&bus_g2d_opp_table>;
1297 status = "disabled";
1298 };
1299
1300 bus_g2d_acp: bus_g2d_acp {
1301 compatible = "samsung,exynos-bus";
1302 clocks = <&clock CLK_DOUT_ACLK266_G2D>;
1303 clock-names = "bus";
1304 operating-points-v2 = <&bus_g2d_acp_opp_table>;
1305 status = "disabled";
1306 };
1307
1308 bus_jpeg: bus_jpeg {
1309 compatible = "samsung,exynos-bus";
1310 clocks = <&clock CLK_DOUT_ACLK300_JPEG>;
1311 clock-names = "bus";
1312 operating-points-v2 = <&bus_jpeg_opp_table>;
1313 status = "disabled";
1314 };
1315
1316 bus_jpeg_apb: bus_jpeg_apb {
1317 compatible = "samsung,exynos-bus";
1318 clocks = <&clock CLK_DOUT_ACLK166>;
1319 clock-names = "bus";
1320 operating-points-v2 = <&bus_jpeg_apb_opp_table>;
1321 status = "disabled";
1322 };
1323
1324 bus_disp1_fimd: bus_disp1_fimd {
1325 compatible = "samsung,exynos-bus";
1326 clocks = <&clock CLK_DOUT_ACLK300_DISP1>;
1327 clock-names = "bus";
1328 operating-points-v2 = <&bus_disp1_fimd_opp_table>;
1329 status = "disabled";
1330 };
1331
1332 bus_disp1: bus_disp1 {
1333 compatible = "samsung,exynos-bus";
1334 clocks = <&clock CLK_DOUT_ACLK400_DISP1>;
1335 clock-names = "bus";
1336 operating-points-v2 = <&bus_disp1_opp_table>;
1337 status = "disabled";
1338 };
1339
1340 bus_gscl_scaler: bus_gscl_scaler {
1341 compatible = "samsung,exynos-bus";
1342 clocks = <&clock CLK_DOUT_ACLK300_GSCL>;
1343 clock-names = "bus";
1344 operating-points-v2 = <&bus_gscl_opp_table>;
1345 status = "disabled";
1346 };
1347
1348 bus_mscl: bus_mscl {
1349 compatible = "samsung,exynos-bus";
1350 clocks = <&clock CLK_DOUT_ACLK400_MSCL>;
1351 clock-names = "bus";
1352 operating-points-v2 = <&bus_mscl_opp_table>;
1353 status = "disabled";
1354 };
1355
1356 bus_wcore_opp_table: opp_table2 {
1357 compatible = "operating-points-v2";
1358
1359 opp00 {
1360 opp-hz = /bits/ 64 <84000000>;
1361 opp-microvolt = <925000>;
1362 };
1363 opp01 {
1364 opp-hz = /bits/ 64 <111000000>;
1365 opp-microvolt = <950000>;
1366 };
1367 opp02 {
1368 opp-hz = /bits/ 64 <222000000>;
1369 opp-microvolt = <950000>;
1370 };
1371 opp03 {
1372 opp-hz = /bits/ 64 <333000000>;
1373 opp-microvolt = <950000>;
1374 };
1375 opp04 {
1376 opp-hz = /bits/ 64 <400000000>;
1377 opp-microvolt = <987500>;
1378 };
1379 };
1380
1381 bus_noc_opp_table: opp_table3 {
1382 compatible = "operating-points-v2";
1383
1384 opp00 {
1385 opp-hz = /bits/ 64 <67000000>;
1386 };
1387 opp01 {
1388 opp-hz = /bits/ 64 <75000000>;
1389 };
1390 opp02 {
1391 opp-hz = /bits/ 64 <86000000>;
1392 };
1393 opp03 {
1394 opp-hz = /bits/ 64 <100000000>;
1395 };
1396 };
1397
1398 bus_fsys_apb_opp_table: opp_table4 {
1399 compatible = "operating-points-v2";
1400 opp-shared;
1401
1402 opp00 {
1403 opp-hz = /bits/ 64 <100000000>;
1404 };
1405 opp01 {
1406 opp-hz = /bits/ 64 <200000000>;
1407 };
1408 };
1409
1410 bus_fsys2_opp_table: opp_table5 {
1411 compatible = "operating-points-v2";
1412
1413 opp00 {
1414 opp-hz = /bits/ 64 <75000000>;
1415 };
1416 opp01 {
1417 opp-hz = /bits/ 64 <100000000>;
1418 };
1419 opp02 {
1420 opp-hz = /bits/ 64 <150000000>;
1421 };
1422 };
1423
1424 bus_mfc_opp_table: opp_table6 {
1425 compatible = "operating-points-v2";
1426
1427 opp00 {
1428 opp-hz = /bits/ 64 <96000000>;
1429 };
1430 opp01 {
1431 opp-hz = /bits/ 64 <111000000>;
1432 };
1433 opp02 {
1434 opp-hz = /bits/ 64 <167000000>;
1435 };
1436 opp03 {
1437 opp-hz = /bits/ 64 <222000000>;
1438 };
1439 opp04 {
1440 opp-hz = /bits/ 64 <333000000>;
1441 };
1442 };
1443
1444 bus_gen_opp_table: opp_table7 {
1445 compatible = "operating-points-v2";
1446
1447 opp00 {
1448 opp-hz = /bits/ 64 <89000000>;
1449 };
1450 opp01 {
1451 opp-hz = /bits/ 64 <133000000>;
1452 };
1453 opp02 {
1454 opp-hz = /bits/ 64 <178000000>;
1455 };
1456 opp03 {
1457 opp-hz = /bits/ 64 <267000000>;
1458 };
1459 };
1460
1461 bus_peri_opp_table: opp_table8 {
1462 compatible = "operating-points-v2";
1463
1464 opp00 {
1465 opp-hz = /bits/ 64 <67000000>;
1466 };
1467 };
1468
1469 bus_g2d_opp_table: opp_table9 {
1470 compatible = "operating-points-v2";
1471
1472 opp00 {
1473 opp-hz = /bits/ 64 <84000000>;
1474 };
1475 opp01 {
1476 opp-hz = /bits/ 64 <167000000>;
1477 };
1478 opp02 {
1479 opp-hz = /bits/ 64 <222000000>;
1480 };
1481 opp03 {
1482 opp-hz = /bits/ 64 <300000000>;
1483 };
1484 opp04 {
1485 opp-hz = /bits/ 64 <333000000>;
1486 };
1487 };
1488
1489 bus_g2d_acp_opp_table: opp_table10 {
1490 compatible = "operating-points-v2";
1491
1492 opp00 {
1493 opp-hz = /bits/ 64 <67000000>;
1494 };
1495 opp01 {
1496 opp-hz = /bits/ 64 <133000000>;
1497 };
1498 opp02 {
1499 opp-hz = /bits/ 64 <178000000>;
1500 };
1501 opp03 {
1502 opp-hz = /bits/ 64 <267000000>;
1503 };
1504 };
1505
1506 bus_jpeg_opp_table: opp_table11 {
1507 compatible = "operating-points-v2";
1508
1509 opp00 {
1510 opp-hz = /bits/ 64 <75000000>;
1511 };
1512 opp01 {
1513 opp-hz = /bits/ 64 <150000000>;
1514 };
1515 opp02 {
1516 opp-hz = /bits/ 64 <200000000>;
1517 };
1518 opp03 {
1519 opp-hz = /bits/ 64 <300000000>;
1520 };
1521 };
1522
1523 bus_jpeg_apb_opp_table: opp_table12 {
1524 compatible = "operating-points-v2";
1525
1526 opp00 {
1527 opp-hz = /bits/ 64 <84000000>;
1528 };
1529 opp01 {
1530 opp-hz = /bits/ 64 <111000000>;
1531 };
1532 opp02 {
1533 opp-hz = /bits/ 64 <134000000>;
1534 };
1535 opp03 {
1536 opp-hz = /bits/ 64 <167000000>;
1537 };
1538 };
1539
1540 bus_disp1_fimd_opp_table: opp_table13 {
1541 compatible = "operating-points-v2";
1542
1543 opp00 {
1544 opp-hz = /bits/ 64 <120000000>;
1545 };
1546 opp01 {
1547 opp-hz = /bits/ 64 <200000000>;
1548 };
1549 };
1550
1551 bus_disp1_opp_table: opp_table14 {
1552 compatible = "operating-points-v2";
1553
1554 opp00 {
1555 opp-hz = /bits/ 64 <120000000>;
1556 };
1557 opp01 {
1558 opp-hz = /bits/ 64 <200000000>;
1559 };
1560 opp02 {
1561 opp-hz = /bits/ 64 <300000000>;
1562 };
1563 };
1564
1565 bus_gscl_opp_table: opp_table15 {
1566 compatible = "operating-points-v2";
1567
1568 opp00 {
1569 opp-hz = /bits/ 64 <150000000>;
1570 };
1571 opp01 {
1572 opp-hz = /bits/ 64 <200000000>;
1573 };
1574 opp02 {
1575 opp-hz = /bits/ 64 <300000000>;
1576 };
1577 };
1578
1579 bus_mscl_opp_table: opp_table16 {
1580 compatible = "operating-points-v2";
1581
1582 opp00 {
1583 opp-hz = /bits/ 64 <84000000>;
1584 };
1585 opp01 {
1586 opp-hz = /bits/ 64 <167000000>;
1587 };
1588 opp02 {
1589 opp-hz = /bits/ 64 <222000000>;
1590 };
1591 opp03 {
1592 opp-hz = /bits/ 64 <333000000>;
1593 };
1594 opp04 {
1595 opp-hz = /bits/ 64 <400000000>;
1596 };
1597 };
1191}; 1598};
1192 1599
1193&dp { 1600&dp {
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index 1bd507bfa750..d32984c5ff93 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -56,6 +56,89 @@
56 }; 56 };
57}; 57};
58 58
59&bus_wcore {
60 devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>,
61 <&nocp_mem1_0>, <&nocp_mem1_1>;
62 vdd-supply = <&buck3_reg>;
63 exynos,saturation-ratio = <100>;
64 status = "okay";
65};
66
67&bus_noc {
68 devfreq = <&bus_wcore>;
69 status = "okay";
70};
71
72&bus_fsys_apb {
73 devfreq = <&bus_wcore>;
74 status = "okay";
75};
76
77&bus_fsys {
78 devfreq = <&bus_wcore>;
79 status = "okay";
80};
81
82&bus_fsys2 {
83 devfreq = <&bus_wcore>;
84 status = "okay";
85};
86
87&bus_mfc {
88 devfreq = <&bus_wcore>;
89 status = "okay";
90};
91
92&bus_gen {
93 devfreq = <&bus_wcore>;
94 status = "okay";
95};
96
97&bus_peri {
98 devfreq = <&bus_wcore>;
99 status = "okay";
100};
101
102&bus_g2d {
103 devfreq = <&bus_wcore>;
104 status = "okay";
105};
106
107&bus_g2d_acp {
108 devfreq = <&bus_wcore>;
109 status = "okay";
110};
111
112&bus_jpeg {
113 devfreq = <&bus_wcore>;
114 status = "okay";
115};
116
117&bus_jpeg_apb {
118 devfreq = <&bus_wcore>;
119 status = "okay";
120};
121
122&bus_disp1_fimd {
123 devfreq = <&bus_wcore>;
124 status = "okay";
125};
126
127&bus_disp1 {
128 devfreq = <&bus_wcore>;
129 status = "okay";
130};
131
132&bus_gscl_scaler {
133 devfreq = <&bus_wcore>;
134 status = "okay";
135};
136
137&bus_mscl {
138 devfreq = <&bus_wcore>;
139 status = "okay";
140};
141
59&clock_audss { 142&clock_audss {
60 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>, 143 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
61 <&clock_audss EXYNOS_MOUT_I2S>, 144 <&clock_audss EXYNOS_MOUT_I2S>,
@@ -361,6 +444,22 @@
361 cap-sd-highspeed; 444 cap-sd-highspeed;
362}; 445};
363 446
447&nocp_mem0_0 {
448 status = "okay";
449};
450
451&nocp_mem0_1 {
452 status = "okay";
453};
454
455&nocp_mem1_0 {
456 status = "okay";
457};
458
459&nocp_mem1_1 {
460 status = "okay";
461};
462
364&pinctrl_0 { 463&pinctrl_0 {
365 hdmi_hpd_irq: hdmi-hpd-irq { 464 hdmi_hpd_irq: hdmi-hpd-irq {
366 samsung,pins = "gpx3-7"; 465 samsung,pins = "gpx3-7";
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index be03ed0fcb6b..92382cef9f90 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -554,8 +554,8 @@ static struct samsung_mux_clock exynos5800_mux_clks[] __initdata = {
554}; 554};
555 555
556static struct samsung_div_clock exynos5800_div_clks[] __initdata = { 556static struct samsung_div_clock exynos5800_div_clks[] __initdata = {
557 DIV(0, "dout_aclk400_wcore", "mout_aclk400_wcore", DIV_TOP0, 16, 3), 557 DIV(CLK_DOUT_ACLK400_WCORE, "dout_aclk400_wcore",
558 558 "mout_aclk400_wcore", DIV_TOP0, 16, 3),
559 DIV(0, "dout_aclk550_cam", "mout_aclk550_cam", 559 DIV(0, "dout_aclk550_cam", "mout_aclk550_cam",
560 DIV_TOP8, 16, 3), 560 DIV_TOP8, 16, 3),
561 DIV(0, "dout_aclkfl1_550_cam", "mout_aclkfl1_550_cam", 561 DIV(0, "dout_aclkfl1_550_cam", "mout_aclkfl1_550_cam",
@@ -607,8 +607,8 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
607}; 607};
608 608
609static struct samsung_div_clock exynos5420_div_clks[] __initdata = { 609static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
610 DIV(0, "dout_aclk400_wcore", "mout_aclk400_wcore_bpll", 610 DIV(CLK_DOUT_ACLK400_WCORE, "dout_aclk400_wcore",
611 DIV_TOP0, 16, 3), 611 "mout_aclk400_wcore_bpll", DIV_TOP0, 16, 3),
612}; 612};
613 613
614static struct samsung_mux_clock exynos5x_mux_clks[] __initdata = { 614static struct samsung_mux_clock exynos5x_mux_clks[] __initdata = {
@@ -785,31 +785,47 @@ static struct samsung_div_clock exynos5x_div_clks[] __initdata = {
785 DIV(0, "div_kfc", "mout_kfc", DIV_KFC0, 0, 3), 785 DIV(0, "div_kfc", "mout_kfc", DIV_KFC0, 0, 3),
786 DIV(0, "sclk_kpll", "mout_kpll", DIV_KFC0, 24, 3), 786 DIV(0, "sclk_kpll", "mout_kpll", DIV_KFC0, 24, 3),
787 787
788 DIV(0, "dout_aclk400_isp", "mout_aclk400_isp", DIV_TOP0, 0, 3), 788 DIV(CLK_DOUT_ACLK400_ISP, "dout_aclk400_isp", "mout_aclk400_isp",
789 DIV(0, "dout_aclk400_mscl", "mout_aclk400_mscl", DIV_TOP0, 4, 3), 789 DIV_TOP0, 0, 3),
790 DIV(0, "dout_aclk200", "mout_aclk200", DIV_TOP0, 8, 3), 790 DIV(CLK_DOUT_ACLK400_MSCL, "dout_aclk400_mscl", "mout_aclk400_mscl",
791 DIV(0, "dout_aclk200_fsys2", "mout_aclk200_fsys2", DIV_TOP0, 12, 3), 791 DIV_TOP0, 4, 3),
792 DIV(0, "dout_aclk100_noc", "mout_aclk100_noc", DIV_TOP0, 20, 3), 792 DIV(CLK_DOUT_ACLK200, "dout_aclk200", "mout_aclk200",
793 DIV(0, "dout_pclk200_fsys", "mout_pclk200_fsys", DIV_TOP0, 24, 3), 793 DIV_TOP0, 8, 3),
794 DIV(0, "dout_aclk200_fsys", "mout_aclk200_fsys", DIV_TOP0, 28, 3), 794 DIV(CLK_DOUT_ACLK200_FSYS2, "dout_aclk200_fsys2", "mout_aclk200_fsys2",
795 795 DIV_TOP0, 12, 3),
796 DIV(0, "dout_aclk333_432_gscl", "mout_aclk333_432_gscl", 796 DIV(CLK_DOUT_ACLK100_NOC, "dout_aclk100_noc", "mout_aclk100_noc",
797 DIV_TOP1, 0, 3), 797 DIV_TOP0, 20, 3),
798 DIV(0, "dout_aclk333_432_isp", "mout_aclk333_432_isp", 798 DIV(CLK_DOUT_PCLK200_FSYS, "dout_pclk200_fsys", "mout_pclk200_fsys",
799 DIV_TOP1, 4, 3), 799 DIV_TOP0, 24, 3),
800 DIV(0, "dout_aclk66", "mout_aclk66", DIV_TOP1, 8, 6), 800 DIV(CLK_DOUT_ACLK200_FSYS, "dout_aclk200_fsys", "mout_aclk200_fsys",
801 DIV(0, "dout_aclk333_432_isp0", "mout_aclk333_432_isp0", 801 DIV_TOP0, 28, 3),
802 DIV_TOP1, 16, 3), 802 DIV(CLK_DOUT_ACLK333_432_GSCL, "dout_aclk333_432_gscl",
803 DIV(0, "dout_aclk266", "mout_aclk266", DIV_TOP1, 20, 3), 803 "mout_aclk333_432_gscl", DIV_TOP1, 0, 3),
804 DIV(0, "dout_aclk166", "mout_aclk166", DIV_TOP1, 24, 3), 804 DIV(CLK_DOUT_ACLK333_432_ISP, "dout_aclk333_432_isp",
805 DIV(0, "dout_aclk333", "mout_aclk333", DIV_TOP1, 28, 3), 805 "mout_aclk333_432_isp", DIV_TOP1, 4, 3),
806 806 DIV(CLK_DOUT_ACLK66, "dout_aclk66", "mout_aclk66",
807 DIV(0, "dout_aclk333_g2d", "mout_aclk333_g2d", DIV_TOP2, 8, 3), 807 DIV_TOP1, 8, 6),
808 DIV(0, "dout_aclk266_g2d", "mout_aclk266_g2d", DIV_TOP2, 12, 3), 808 DIV(CLK_DOUT_ACLK333_432_ISP0, "dout_aclk333_432_isp0",
809 DIV(0, "dout_aclk_g3d", "mout_aclk_g3d", DIV_TOP2, 16, 3), 809 "mout_aclk333_432_isp0", DIV_TOP1, 16, 3),
810 DIV(0, "dout_aclk300_jpeg", "mout_aclk300_jpeg", DIV_TOP2, 20, 3), 810 DIV(CLK_DOUT_ACLK266, "dout_aclk266", "mout_aclk266",
811 DIV(0, "dout_aclk300_disp1", "mout_aclk300_disp1", DIV_TOP2, 24, 3), 811 DIV_TOP1, 20, 3),
812 DIV(0, "dout_aclk300_gscl", "mout_aclk300_gscl", DIV_TOP2, 28, 3), 812 DIV(CLK_DOUT_ACLK166, "dout_aclk166", "mout_aclk166",
813 DIV_TOP1, 24, 3),
814 DIV(CLK_DOUT_ACLK333, "dout_aclk333", "mout_aclk333",
815 DIV_TOP1, 28, 3),
816
817 DIV(CLK_DOUT_ACLK333_G2D, "dout_aclk333_g2d", "mout_aclk333_g2d",
818 DIV_TOP2, 8, 3),
819 DIV(CLK_DOUT_ACLK266_G2D, "dout_aclk266_g2d", "mout_aclk266_g2d",
820 DIV_TOP2, 12, 3),
821 DIV(CLK_DOUT_ACLK_G3D, "dout_aclk_g3d", "mout_aclk_g3d", DIV_TOP2,
822 16, 3),
823 DIV(CLK_DOUT_ACLK300_JPEG, "dout_aclk300_jpeg", "mout_aclk300_jpeg",
824 DIV_TOP2, 20, 3),
825 DIV(CLK_DOUT_ACLK300_DISP1, "dout_aclk300_disp1",
826 "mout_aclk300_disp1", DIV_TOP2, 24, 3),
827 DIV(CLK_DOUT_ACLK300_GSCL, "dout_aclk300_gscl", "mout_aclk300_gscl",
828 DIV_TOP2, 28, 3),
813 829
814 /* DISP1 Block */ 830 /* DISP1 Block */
815 DIV(0, "dout_fimd1", "mout_fimd1_final", DIV_DISP10, 0, 4), 831 DIV(0, "dout_fimd1", "mout_fimd1_final", DIV_DISP10, 0, 4),
@@ -817,7 +833,8 @@ static struct samsung_div_clock exynos5x_div_clks[] __initdata = {
817 DIV(0, "dout_dp1", "mout_dp1", DIV_DISP10, 24, 4), 833 DIV(0, "dout_dp1", "mout_dp1", DIV_DISP10, 24, 4),
818 DIV(CLK_DOUT_PIXEL, "dout_hdmi_pixel", "mout_pixel", DIV_DISP10, 28, 4), 834 DIV(CLK_DOUT_PIXEL, "dout_hdmi_pixel", "mout_pixel", DIV_DISP10, 28, 4),
819 DIV(0, "dout_disp1_blk", "aclk200_disp1", DIV2_RATIO0, 16, 2), 835 DIV(0, "dout_disp1_blk", "aclk200_disp1", DIV2_RATIO0, 16, 2),
820 DIV(0, "dout_aclk400_disp1", "mout_aclk400_disp1", DIV_TOP2, 4, 3), 836 DIV(CLK_DOUT_ACLK400_DISP1, "dout_aclk400_disp1",
837 "mout_aclk400_disp1", DIV_TOP2, 4, 3),
821 838
822 /* Audio Block */ 839 /* Audio Block */
823 DIV(0, "dout_maudio0", "mout_maudio0", DIV_MAU, 20, 4), 840 DIV(0, "dout_maudio0", "mout_maudio0", DIV_MAU, 20, 4),
diff --git a/include/dt-bindings/clock/exynos5420.h b/include/dt-bindings/clock/exynos5420.h
index 7699ee9c16c0..17ab8394bec7 100644
--- a/include/dt-bindings/clock/exynos5420.h
+++ b/include/dt-bindings/clock/exynos5420.h
@@ -217,8 +217,30 @@
217 217
218/* divider clocks */ 218/* divider clocks */
219#define CLK_DOUT_PIXEL 768 219#define CLK_DOUT_PIXEL 768
220#define CLK_DOUT_ACLK400_WCORE 769
221#define CLK_DOUT_ACLK400_ISP 770
222#define CLK_DOUT_ACLK400_MSCL 771
223#define CLK_DOUT_ACLK200 772
224#define CLK_DOUT_ACLK200_FSYS2 773
225#define CLK_DOUT_ACLK100_NOC 774
226#define CLK_DOUT_PCLK200_FSYS 775
227#define CLK_DOUT_ACLK200_FSYS 776
228#define CLK_DOUT_ACLK333_432_GSCL 777
229#define CLK_DOUT_ACLK333_432_ISP 778
230#define CLK_DOUT_ACLK66 779
231#define CLK_DOUT_ACLK333_432_ISP0 780
232#define CLK_DOUT_ACLK266 781
233#define CLK_DOUT_ACLK166 782
234#define CLK_DOUT_ACLK333 783
235#define CLK_DOUT_ACLK333_G2D 784
236#define CLK_DOUT_ACLK266_G2D 785
237#define CLK_DOUT_ACLK_G3D 786
238#define CLK_DOUT_ACLK300_JPEG 787
239#define CLK_DOUT_ACLK300_DISP1 788
240#define CLK_DOUT_ACLK300_GSCL 789
241#define CLK_DOUT_ACLK400_DISP1 790
220 242
221/* must be greater than maximal clock id */ 243/* must be greater than maximal clock id */
222#define CLK_NR_CLKS 769 244#define CLK_NR_CLKS 791
223 245
224#endif /* _DT_BINDINGS_CLOCK_EXYNOS_5420_H */ 246#endif /* _DT_BINDINGS_CLOCK_EXYNOS_5420_H */