diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2016-10-20 00:44:07 -0400 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2016-11-05 00:25:41 -0400 |
commit | 183ad3669f28e96e820c0fdf495927955b559662 (patch) | |
tree | 629b4248b15065714b4d0dfc9bf442c76b9cf833 | |
parent | bdb8183681810672dd7344ad14d070a3c8cf7d14 (diff) |
arm64: dts: uniphier: add CPU clocks and OPP tables for LD20 SoC
Add a CPU clock to every CPU node and CPU OPP tables to use the
generic cpufreq driver. All the CPUs in each cluster share the
same OPP table.
Note:
clock-latency-ns (300ns) was calculated based on the CPU-gear switch
sequencer spec; it takes 12 clock cycles on the sequencer running
at 50 MHz, plus a bit additional latency.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
-rw-r--r-- | arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi index eaf260823084..c6462563ad88 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi +++ b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi | |||
@@ -79,28 +79,112 @@ | |||
79 | device_type = "cpu"; | 79 | device_type = "cpu"; |
80 | compatible = "arm,cortex-a72", "arm,armv8"; | 80 | compatible = "arm,cortex-a72", "arm,armv8"; |
81 | reg = <0 0x000>; | 81 | reg = <0 0x000>; |
82 | clocks = <&sys_clk 32>; | ||
82 | enable-method = "psci"; | 83 | enable-method = "psci"; |
84 | operating-points-v2 = <&cluster0_opp>; | ||
83 | }; | 85 | }; |
84 | 86 | ||
85 | cpu1: cpu@1 { | 87 | cpu1: cpu@1 { |
86 | device_type = "cpu"; | 88 | device_type = "cpu"; |
87 | compatible = "arm,cortex-a72", "arm,armv8"; | 89 | compatible = "arm,cortex-a72", "arm,armv8"; |
88 | reg = <0 0x001>; | 90 | reg = <0 0x001>; |
91 | clocks = <&sys_clk 32>; | ||
89 | enable-method = "psci"; | 92 | enable-method = "psci"; |
93 | operating-points-v2 = <&cluster0_opp>; | ||
90 | }; | 94 | }; |
91 | 95 | ||
92 | cpu2: cpu@100 { | 96 | cpu2: cpu@100 { |
93 | device_type = "cpu"; | 97 | device_type = "cpu"; |
94 | compatible = "arm,cortex-a53", "arm,armv8"; | 98 | compatible = "arm,cortex-a53", "arm,armv8"; |
95 | reg = <0 0x100>; | 99 | reg = <0 0x100>; |
100 | clocks = <&sys_clk 33>; | ||
96 | enable-method = "psci"; | 101 | enable-method = "psci"; |
102 | operating-points-v2 = <&cluster1_opp>; | ||
97 | }; | 103 | }; |
98 | 104 | ||
99 | cpu3: cpu@101 { | 105 | cpu3: cpu@101 { |
100 | device_type = "cpu"; | 106 | device_type = "cpu"; |
101 | compatible = "arm,cortex-a53", "arm,armv8"; | 107 | compatible = "arm,cortex-a53", "arm,armv8"; |
102 | reg = <0 0x101>; | 108 | reg = <0 0x101>; |
109 | clocks = <&sys_clk 33>; | ||
103 | enable-method = "psci"; | 110 | enable-method = "psci"; |
111 | operating-points-v2 = <&cluster1_opp>; | ||
112 | }; | ||
113 | }; | ||
114 | |||
115 | cluster0_opp: opp_table0 { | ||
116 | compatible = "operating-points-v2"; | ||
117 | opp-shared; | ||
118 | |||
119 | opp@250000000 { | ||
120 | opp-hz = /bits/ 64 <250000000>; | ||
121 | clock-latency-ns = <300>; | ||
122 | }; | ||
123 | opp@275000000 { | ||
124 | opp-hz = /bits/ 64 <275000000>; | ||
125 | clock-latency-ns = <300>; | ||
126 | }; | ||
127 | opp@500000000 { | ||
128 | opp-hz = /bits/ 64 <500000000>; | ||
129 | clock-latency-ns = <300>; | ||
130 | }; | ||
131 | opp@550000000 { | ||
132 | opp-hz = /bits/ 64 <550000000>; | ||
133 | clock-latency-ns = <300>; | ||
134 | }; | ||
135 | opp@666667000 { | ||
136 | opp-hz = /bits/ 64 <666667000>; | ||
137 | clock-latency-ns = <300>; | ||
138 | }; | ||
139 | opp@733334000 { | ||
140 | opp-hz = /bits/ 64 <733334000>; | ||
141 | clock-latency-ns = <300>; | ||
142 | }; | ||
143 | opp@1000000000 { | ||
144 | opp-hz = /bits/ 64 <1000000000>; | ||
145 | clock-latency-ns = <300>; | ||
146 | }; | ||
147 | opp@1100000000 { | ||
148 | opp-hz = /bits/ 64 <1100000000>; | ||
149 | clock-latency-ns = <300>; | ||
150 | }; | ||
151 | }; | ||
152 | |||
153 | cluster1_opp: opp_table1 { | ||
154 | compatible = "operating-points-v2"; | ||
155 | opp-shared; | ||
156 | |||
157 | opp@250000000 { | ||
158 | opp-hz = /bits/ 64 <250000000>; | ||
159 | clock-latency-ns = <300>; | ||
160 | }; | ||
161 | opp@275000000 { | ||
162 | opp-hz = /bits/ 64 <275000000>; | ||
163 | clock-latency-ns = <300>; | ||
164 | }; | ||
165 | opp@500000000 { | ||
166 | opp-hz = /bits/ 64 <500000000>; | ||
167 | clock-latency-ns = <300>; | ||
168 | }; | ||
169 | opp@550000000 { | ||
170 | opp-hz = /bits/ 64 <550000000>; | ||
171 | clock-latency-ns = <300>; | ||
172 | }; | ||
173 | opp@666667000 { | ||
174 | opp-hz = /bits/ 64 <666667000>; | ||
175 | clock-latency-ns = <300>; | ||
176 | }; | ||
177 | opp@733334000 { | ||
178 | opp-hz = /bits/ 64 <733334000>; | ||
179 | clock-latency-ns = <300>; | ||
180 | }; | ||
181 | opp@1000000000 { | ||
182 | opp-hz = /bits/ 64 <1000000000>; | ||
183 | clock-latency-ns = <300>; | ||
184 | }; | ||
185 | opp@1100000000 { | ||
186 | opp-hz = /bits/ 64 <1100000000>; | ||
187 | clock-latency-ns = <300>; | ||
104 | }; | 188 | }; |
105 | }; | 189 | }; |
106 | 190 | ||