diff options
author | Thomas Abraham <thomas.ab@samsung.com> | 2015-12-15 12:33:17 -0500 |
---|---|---|
committer | Krzysztof Kozlowski <k.kozlowski@samsung.com> | 2016-01-28 05:30:26 -0500 |
commit | 66a4a1fb2398cc03637394a6ddfd077a5ee2acf4 (patch) | |
tree | 3a8f42d721c2eaab3269904f06cd423de37bf9da | |
parent | 8b51c5e730fb66048f48437b17a024d2107347c3 (diff) |
ARM: dts: Add CPU OPP properties for exynos542x/5800
For Exynos542x/5800 platforms, add CPU operating points
for migrating from Exynos specific cpufreq driver to using
generic cpufreq driver.
Changes by Bartlomiej:
- split Exynos5420 support from the original patch
- merged Exynos5422 fixes from Ben
Changes by Ben Gamari:
- Port to operating-points-v2
Cc: Doug Anderson <dianders@chromium.org>
Cc: Javier Martinez Canillas <javier@osg.samsung.com>
Cc: Andreas Faerber <afaerber@suse.de>
Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Ben Gamari <ben@smart-cactus.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
-rw-r--r-- | arch/arm/boot/dts/exynos5420-cpus.dtsi | 10 | ||||
-rw-r--r-- | arch/arm/boot/dts/exynos5420.dtsi | 110 | ||||
-rw-r--r-- | arch/arm/boot/dts/exynos5422-cpus.dtsi | 10 |
3 files changed, 130 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/exynos5420-cpus.dtsi b/arch/arm/boot/dts/exynos5420-cpus.dtsi index 7aaf0313274f..261d25173f61 100644 --- a/arch/arm/boot/dts/exynos5420-cpus.dtsi +++ b/arch/arm/boot/dts/exynos5420-cpus.dtsi | |||
@@ -29,8 +29,10 @@ | |||
29 | device_type = "cpu"; | 29 | device_type = "cpu"; |
30 | compatible = "arm,cortex-a15"; | 30 | compatible = "arm,cortex-a15"; |
31 | reg = <0x0>; | 31 | reg = <0x0>; |
32 | clocks = <&clock CLK_ARM_CLK>; | ||
32 | clock-frequency = <1800000000>; | 33 | clock-frequency = <1800000000>; |
33 | cci-control-port = <&cci_control1>; | 34 | cci-control-port = <&cci_control1>; |
35 | operating-points-v2 = <&cluster_a15_opp_table>; | ||
34 | }; | 36 | }; |
35 | 37 | ||
36 | cpu1: cpu@1 { | 38 | cpu1: cpu@1 { |
@@ -39,6 +41,7 @@ | |||
39 | reg = <0x1>; | 41 | reg = <0x1>; |
40 | clock-frequency = <1800000000>; | 42 | clock-frequency = <1800000000>; |
41 | cci-control-port = <&cci_control1>; | 43 | cci-control-port = <&cci_control1>; |
44 | operating-points-v2 = <&cluster_a15_opp_table>; | ||
42 | }; | 45 | }; |
43 | 46 | ||
44 | cpu2: cpu@2 { | 47 | cpu2: cpu@2 { |
@@ -47,6 +50,7 @@ | |||
47 | reg = <0x2>; | 50 | reg = <0x2>; |
48 | clock-frequency = <1800000000>; | 51 | clock-frequency = <1800000000>; |
49 | cci-control-port = <&cci_control1>; | 52 | cci-control-port = <&cci_control1>; |
53 | operating-points-v2 = <&cluster_a15_opp_table>; | ||
50 | }; | 54 | }; |
51 | 55 | ||
52 | cpu3: cpu@3 { | 56 | cpu3: cpu@3 { |
@@ -55,14 +59,17 @@ | |||
55 | reg = <0x3>; | 59 | reg = <0x3>; |
56 | clock-frequency = <1800000000>; | 60 | clock-frequency = <1800000000>; |
57 | cci-control-port = <&cci_control1>; | 61 | cci-control-port = <&cci_control1>; |
62 | operating-points-v2 = <&cluster_a15_opp_table>; | ||
58 | }; | 63 | }; |
59 | 64 | ||
60 | cpu4: cpu@100 { | 65 | cpu4: cpu@100 { |
61 | device_type = "cpu"; | 66 | device_type = "cpu"; |
62 | compatible = "arm,cortex-a7"; | 67 | compatible = "arm,cortex-a7"; |
63 | reg = <0x100>; | 68 | reg = <0x100>; |
69 | clocks = <&clock CLK_KFC_CLK>; | ||
64 | clock-frequency = <1000000000>; | 70 | clock-frequency = <1000000000>; |
65 | cci-control-port = <&cci_control0>; | 71 | cci-control-port = <&cci_control0>; |
72 | operating-points-v2 = <&cluster_a7_opp_table>; | ||
66 | }; | 73 | }; |
67 | 74 | ||
68 | cpu5: cpu@101 { | 75 | cpu5: cpu@101 { |
@@ -71,6 +78,7 @@ | |||
71 | reg = <0x101>; | 78 | reg = <0x101>; |
72 | clock-frequency = <1000000000>; | 79 | clock-frequency = <1000000000>; |
73 | cci-control-port = <&cci_control0>; | 80 | cci-control-port = <&cci_control0>; |
81 | operating-points-v2 = <&cluster_a7_opp_table>; | ||
74 | }; | 82 | }; |
75 | 83 | ||
76 | cpu6: cpu@102 { | 84 | cpu6: cpu@102 { |
@@ -79,6 +87,7 @@ | |||
79 | reg = <0x102>; | 87 | reg = <0x102>; |
80 | clock-frequency = <1000000000>; | 88 | clock-frequency = <1000000000>; |
81 | cci-control-port = <&cci_control0>; | 89 | cci-control-port = <&cci_control0>; |
90 | operating-points-v2 = <&cluster_a7_opp_table>; | ||
82 | }; | 91 | }; |
83 | 92 | ||
84 | cpu7: cpu@103 { | 93 | cpu7: cpu@103 { |
@@ -87,6 +96,7 @@ | |||
87 | reg = <0x103>; | 96 | reg = <0x103>; |
88 | clock-frequency = <1000000000>; | 97 | clock-frequency = <1000000000>; |
89 | cci-control-port = <&cci_control0>; | 98 | cci-control-port = <&cci_control0>; |
99 | operating-points-v2 = <&cluster_a7_opp_table>; | ||
90 | }; | 100 | }; |
91 | }; | 101 | }; |
92 | }; | 102 | }; |
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi index 6c102c46af73..2a405544ea46 100644 --- a/arch/arm/boot/dts/exynos5420.dtsi +++ b/arch/arm/boot/dts/exynos5420.dtsi | |||
@@ -50,6 +50,116 @@ | |||
50 | usbdrdphy1 = &usbdrd_phy1; | 50 | usbdrdphy1 = &usbdrd_phy1; |
51 | }; | 51 | }; |
52 | 52 | ||
53 | cluster_a15_opp_table: opp_table0 { | ||
54 | compatible = "operating-points-v2"; | ||
55 | opp-shared; | ||
56 | opp@1800000000 { | ||
57 | opp-hz = /bits/ 64 <1800000000>; | ||
58 | opp-microvolt = <1250000>; | ||
59 | clock-latency-ns = <140000>; | ||
60 | }; | ||
61 | opp@1700000000 { | ||
62 | opp-hz = /bits/ 64 <1700000000>; | ||
63 | opp-microvolt = <1212500>; | ||
64 | clock-latency-ns = <140000>; | ||
65 | }; | ||
66 | opp@1600000000 { | ||
67 | opp-hz = /bits/ 64 <1600000000>; | ||
68 | opp-microvolt = <1175000>; | ||
69 | clock-latency-ns = <140000>; | ||
70 | }; | ||
71 | opp@1500000000 { | ||
72 | opp-hz = /bits/ 64 <1500000000>; | ||
73 | opp-microvolt = <1137500>; | ||
74 | clock-latency-ns = <140000>; | ||
75 | }; | ||
76 | opp@1400000000 { | ||
77 | opp-hz = /bits/ 64 <1400000000>; | ||
78 | opp-microvolt = <1112500>; | ||
79 | clock-latency-ns = <140000>; | ||
80 | }; | ||
81 | opp@1300000000 { | ||
82 | opp-hz = /bits/ 64 <1300000000>; | ||
83 | opp-microvolt = <1062500>; | ||
84 | clock-latency-ns = <140000>; | ||
85 | }; | ||
86 | opp@1200000000 { | ||
87 | opp-hz = /bits/ 64 <1200000000>; | ||
88 | opp-microvolt = <1037500>; | ||
89 | clock-latency-ns = <140000>; | ||
90 | }; | ||
91 | opp@1100000000 { | ||
92 | opp-hz = /bits/ 64 <1100000000>; | ||
93 | opp-microvolt = <1012500>; | ||
94 | clock-latency-ns = <140000>; | ||
95 | }; | ||
96 | opp@1000000000 { | ||
97 | opp-hz = /bits/ 64 <1000000000>; | ||
98 | opp-microvolt = < 987500>; | ||
99 | clock-latency-ns = <140000>; | ||
100 | }; | ||
101 | opp@900000000 { | ||
102 | opp-hz = /bits/ 64 <900000000>; | ||
103 | opp-microvolt = < 962500>; | ||
104 | clock-latency-ns = <140000>; | ||
105 | }; | ||
106 | opp@800000000 { | ||
107 | opp-hz = /bits/ 64 <800000000>; | ||
108 | opp-microvolt = < 937500>; | ||
109 | clock-latency-ns = <140000>; | ||
110 | }; | ||
111 | opp@700000000 { | ||
112 | opp-hz = /bits/ 64 <700000000>; | ||
113 | opp-microvolt = < 912500>; | ||
114 | clock-latency-ns = <140000>; | ||
115 | }; | ||
116 | }; | ||
117 | |||
118 | cluster_a7_opp_table: opp_table1 { | ||
119 | compatible = "operating-points-v2"; | ||
120 | opp-shared; | ||
121 | opp@1300000000 { | ||
122 | opp-hz = /bits/ 64 <1300000000>; | ||
123 | opp-microvolt = <1275000>; | ||
124 | clock-latency-ns = <140000>; | ||
125 | }; | ||
126 | opp@1200000000 { | ||
127 | opp-hz = /bits/ 64 <1200000000>; | ||
128 | opp-microvolt = <1212500>; | ||
129 | clock-latency-ns = <140000>; | ||
130 | }; | ||
131 | opp@1100000000 { | ||
132 | opp-hz = /bits/ 64 <1100000000>; | ||
133 | opp-microvolt = <1162500>; | ||
134 | clock-latency-ns = <140000>; | ||
135 | }; | ||
136 | opp@1000000000 { | ||
137 | opp-hz = /bits/ 64 <1000000000>; | ||
138 | opp-microvolt = <1112500>; | ||
139 | clock-latency-ns = <140000>; | ||
140 | }; | ||
141 | opp@900000000 { | ||
142 | opp-hz = /bits/ 64 <900000000>; | ||
143 | opp-microvolt = <1062500>; | ||
144 | clock-latency-ns = <140000>; | ||
145 | }; | ||
146 | opp@800000000 { | ||
147 | opp-hz = /bits/ 64 <800000000>; | ||
148 | opp-microvolt = <1025000>; | ||
149 | clock-latency-ns = <140000>; | ||
150 | }; | ||
151 | opp@700000000 { | ||
152 | opp-hz = /bits/ 64 <700000000>; | ||
153 | opp-microvolt = <975000>; | ||
154 | clock-latency-ns = <140000>; | ||
155 | }; | ||
156 | opp@600000000 { | ||
157 | opp-hz = /bits/ 64 <600000000>; | ||
158 | opp-microvolt = <937500>; | ||
159 | clock-latency-ns = <140000>; | ||
160 | }; | ||
161 | }; | ||
162 | |||
53 | /* | 163 | /* |
54 | * The 'cpus' node is not present here but instead it is provided | 164 | * The 'cpus' node is not present here but instead it is provided |
55 | * by exynos5420-cpus.dtsi or exynos5422-cpus.dtsi. | 165 | * by exynos5420-cpus.dtsi or exynos5422-cpus.dtsi. |
diff --git a/arch/arm/boot/dts/exynos5422-cpus.dtsi b/arch/arm/boot/dts/exynos5422-cpus.dtsi index 33028ac76a33..9b46b9fbac4e 100644 --- a/arch/arm/boot/dts/exynos5422-cpus.dtsi +++ b/arch/arm/boot/dts/exynos5422-cpus.dtsi | |||
@@ -28,8 +28,10 @@ | |||
28 | device_type = "cpu"; | 28 | device_type = "cpu"; |
29 | compatible = "arm,cortex-a7"; | 29 | compatible = "arm,cortex-a7"; |
30 | reg = <0x100>; | 30 | reg = <0x100>; |
31 | clocks = <&clock CLK_KFC_CLK>; | ||
31 | clock-frequency = <1000000000>; | 32 | clock-frequency = <1000000000>; |
32 | cci-control-port = <&cci_control0>; | 33 | cci-control-port = <&cci_control0>; |
34 | operating-points-v2 = <&cluster_a7_opp_table>; | ||
33 | }; | 35 | }; |
34 | 36 | ||
35 | cpu1: cpu@101 { | 37 | cpu1: cpu@101 { |
@@ -38,6 +40,7 @@ | |||
38 | reg = <0x101>; | 40 | reg = <0x101>; |
39 | clock-frequency = <1000000000>; | 41 | clock-frequency = <1000000000>; |
40 | cci-control-port = <&cci_control0>; | 42 | cci-control-port = <&cci_control0>; |
43 | operating-points-v2 = <&cluster_a7_opp_table>; | ||
41 | }; | 44 | }; |
42 | 45 | ||
43 | cpu2: cpu@102 { | 46 | cpu2: cpu@102 { |
@@ -46,6 +49,7 @@ | |||
46 | reg = <0x102>; | 49 | reg = <0x102>; |
47 | clock-frequency = <1000000000>; | 50 | clock-frequency = <1000000000>; |
48 | cci-control-port = <&cci_control0>; | 51 | cci-control-port = <&cci_control0>; |
52 | operating-points-v2 = <&cluster_a7_opp_table>; | ||
49 | }; | 53 | }; |
50 | 54 | ||
51 | cpu3: cpu@103 { | 55 | cpu3: cpu@103 { |
@@ -54,14 +58,17 @@ | |||
54 | reg = <0x103>; | 58 | reg = <0x103>; |
55 | clock-frequency = <1000000000>; | 59 | clock-frequency = <1000000000>; |
56 | cci-control-port = <&cci_control0>; | 60 | cci-control-port = <&cci_control0>; |
61 | operating-points-v2 = <&cluster_a7_opp_table>; | ||
57 | }; | 62 | }; |
58 | 63 | ||
59 | cpu4: cpu@0 { | 64 | cpu4: cpu@0 { |
60 | device_type = "cpu"; | 65 | device_type = "cpu"; |
61 | compatible = "arm,cortex-a15"; | 66 | compatible = "arm,cortex-a15"; |
67 | clocks = <&clock CLK_ARM_CLK>; | ||
62 | reg = <0x0>; | 68 | reg = <0x0>; |
63 | clock-frequency = <1800000000>; | 69 | clock-frequency = <1800000000>; |
64 | cci-control-port = <&cci_control1>; | 70 | cci-control-port = <&cci_control1>; |
71 | operating-points-v2 = <&cluster_a15_opp_table>; | ||
65 | }; | 72 | }; |
66 | 73 | ||
67 | cpu5: cpu@1 { | 74 | cpu5: cpu@1 { |
@@ -70,6 +77,7 @@ | |||
70 | reg = <0x1>; | 77 | reg = <0x1>; |
71 | clock-frequency = <1800000000>; | 78 | clock-frequency = <1800000000>; |
72 | cci-control-port = <&cci_control1>; | 79 | cci-control-port = <&cci_control1>; |
80 | operating-points-v2 = <&cluster_a15_opp_table>; | ||
73 | }; | 81 | }; |
74 | 82 | ||
75 | cpu6: cpu@2 { | 83 | cpu6: cpu@2 { |
@@ -78,6 +86,7 @@ | |||
78 | reg = <0x2>; | 86 | reg = <0x2>; |
79 | clock-frequency = <1800000000>; | 87 | clock-frequency = <1800000000>; |
80 | cci-control-port = <&cci_control1>; | 88 | cci-control-port = <&cci_control1>; |
89 | operating-points-v2 = <&cluster_a15_opp_table>; | ||
81 | }; | 90 | }; |
82 | 91 | ||
83 | cpu7: cpu@3 { | 92 | cpu7: cpu@3 { |
@@ -86,6 +95,7 @@ | |||
86 | reg = <0x3>; | 95 | reg = <0x3>; |
87 | clock-frequency = <1800000000>; | 96 | clock-frequency = <1800000000>; |
88 | cci-control-port = <&cci_control1>; | 97 | cci-control-port = <&cci_control1>; |
98 | operating-points-v2 = <&cluster_a15_opp_table>; | ||
89 | }; | 99 | }; |
90 | }; | 100 | }; |
91 | }; | 101 | }; |