diff options
author | Stefan Agner <stefan@agner.ch> | 2016-07-26 02:42:35 -0400 |
---|---|---|
committer | Shawn Guo <shawnguo@kernel.org> | 2016-08-15 07:46:24 -0400 |
commit | 974a3abcffaebc5ac9da03540f1bc5440f6ae7cf (patch) | |
tree | bf39c22ad5b63ef40e8bc0787cf91c62251b82fc | |
parent | 2a8e583c09c841744a6aa17d7247bc4fd5c6dfbf (diff) |
ARM: dts: imx7d: move ARM platform peripherals inside soc node
Since we have a SoC level node we should make use of it and have
all nodes which are within the SoC, inside that node. This also
saves an extra interrupt-parent properties. While at it, also
order the Coresight nodes according to register addresses.
Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-rw-r--r-- | arch/arm/boot/dts/imx7d.dtsi | 32 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx7s.dtsi | 301 |
2 files changed, 167 insertions, 166 deletions
diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi index 51c13cbdffb7..3d77d95bbc9d 100644 --- a/arch/arm/boot/dts/imx7d.dtsi +++ b/arch/arm/boot/dts/imx7d.dtsi | |||
@@ -52,23 +52,25 @@ | |||
52 | }; | 52 | }; |
53 | }; | 53 | }; |
54 | 54 | ||
55 | etm@3007d000 { | 55 | soc { |
56 | compatible = "arm,coresight-etm3x", "arm,primecell"; | 56 | etm@3007d000 { |
57 | reg = <0x3007d000 0x1000>; | 57 | compatible = "arm,coresight-etm3x", "arm,primecell"; |
58 | reg = <0x3007d000 0x1000>; | ||
58 | 59 | ||
59 | /* | 60 | /* |
60 | * System will hang if added nosmp in kernel command line | 61 | * System will hang if added nosmp in kernel command line |
61 | * without arm,primecell-periphid because amba bus try to | 62 | * without arm,primecell-periphid because amba bus try to |
62 | * read id and core1 power off at this time. | 63 | * read id and core1 power off at this time. |
63 | */ | 64 | */ |
64 | arm,primecell-periphid = <0xbb956>; | 65 | arm,primecell-periphid = <0xbb956>; |
65 | cpu = <&cpu1>; | 66 | cpu = <&cpu1>; |
66 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; | 67 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; |
67 | clock-names = "apb_pclk"; | 68 | clock-names = "apb_pclk"; |
68 | 69 | ||
69 | port { | 70 | port { |
70 | etm1_out_port: endpoint { | 71 | etm1_out_port: endpoint { |
71 | remote-endpoint = <&ca_funnel_in_port1>; | 72 | remote-endpoint = <&ca_funnel_in_port1>; |
73 | }; | ||
72 | }; | 74 | }; |
73 | }; | 75 | }; |
74 | }; | 76 | }; |
diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi index 1e90bdbe3a6e..d89587a97725 100644 --- a/arch/arm/boot/dts/imx7s.dtsi +++ b/arch/arm/boot/dts/imx7s.dtsi | |||
@@ -95,16 +95,6 @@ | |||
95 | }; | 95 | }; |
96 | }; | 96 | }; |
97 | 97 | ||
98 | intc: interrupt-controller@31001000 { | ||
99 | compatible = "arm,cortex-a7-gic"; | ||
100 | #interrupt-cells = <3>; | ||
101 | interrupt-controller; | ||
102 | reg = <0x31001000 0x1000>, | ||
103 | <0x31002000 0x1000>, | ||
104 | <0x31004000 0x2000>, | ||
105 | <0x31006000 0x2000>; | ||
106 | }; | ||
107 | |||
108 | ckil: clock-cki { | 98 | ckil: clock-cki { |
109 | compatible = "fixed-clock"; | 99 | compatible = "fixed-clock"; |
110 | #clock-cells = <0>; | 100 | #clock-cells = <0>; |
@@ -119,195 +109,204 @@ | |||
119 | clock-output-names = "osc"; | 109 | clock-output-names = "osc"; |
120 | }; | 110 | }; |
121 | 111 | ||
122 | timer { | 112 | soc { |
123 | compatible = "arm,armv7-timer"; | 113 | #address-cells = <1>; |
124 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 114 | #size-cells = <1>; |
125 | <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 115 | compatible = "simple-bus"; |
126 | <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
127 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | ||
128 | interrupt-parent = <&intc>; | 116 | interrupt-parent = <&intc>; |
129 | }; | 117 | ranges; |
130 | 118 | ||
131 | etr@30086000 { | 119 | funnel@30041000 { |
132 | compatible = "arm,coresight-tmc", "arm,primecell"; | 120 | compatible = "arm,coresight-funnel", "arm,primecell"; |
133 | reg = <0x30086000 0x1000>; | 121 | reg = <0x30041000 0x1000>; |
134 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; | 122 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; |
135 | clock-names = "apb_pclk"; | 123 | clock-names = "apb_pclk"; |
124 | |||
125 | ca_funnel_ports: ports { | ||
126 | #address-cells = <1>; | ||
127 | #size-cells = <0>; | ||
128 | |||
129 | /* funnel input ports */ | ||
130 | port@0 { | ||
131 | reg = <0>; | ||
132 | ca_funnel_in_port0: endpoint { | ||
133 | slave-mode; | ||
134 | remote-endpoint = <&etm0_out_port>; | ||
135 | }; | ||
136 | }; | ||
137 | |||
138 | /* funnel output port */ | ||
139 | port@2 { | ||
140 | reg = <0>; | ||
141 | ca_funnel_out_port0: endpoint { | ||
142 | remote-endpoint = <&hugo_funnel_in_port0>; | ||
143 | }; | ||
144 | }; | ||
136 | 145 | ||
137 | port { | 146 | /* the other input ports are not connect to anything */ |
138 | etr_in_port: endpoint { | ||
139 | slave-mode; | ||
140 | remote-endpoint = <&replicator_out_port1>; | ||
141 | }; | 147 | }; |
142 | }; | 148 | }; |
143 | }; | ||
144 | 149 | ||
145 | tpiu@30087000 { | 150 | etm@3007c000 { |
146 | compatible = "arm,coresight-tpiu", "arm,primecell"; | 151 | compatible = "arm,coresight-etm3x", "arm,primecell"; |
147 | reg = <0x30087000 0x1000>; | 152 | reg = <0x3007c000 0x1000>; |
148 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; | 153 | cpu = <&cpu0>; |
149 | clock-names = "apb_pclk"; | 154 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; |
155 | clock-names = "apb_pclk"; | ||
150 | 156 | ||
151 | port { | 157 | port { |
152 | tpiu_in_port: endpoint { | 158 | etm0_out_port: endpoint { |
153 | slave-mode; | 159 | remote-endpoint = <&ca_funnel_in_port0>; |
154 | remote-endpoint = <&replicator_out_port1>; | 160 | }; |
155 | }; | 161 | }; |
156 | }; | 162 | }; |
157 | }; | ||
158 | 163 | ||
159 | replicator { | 164 | funnel@30083000 { |
160 | /* | 165 | compatible = "arm,coresight-funnel", "arm,primecell"; |
161 | * non-configurable replicators don't show up on the | 166 | reg = <0x30083000 0x1000>; |
162 | * AMBA bus. As such no need to add "arm,primecell" | 167 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; |
163 | */ | 168 | clock-names = "apb_pclk"; |
164 | compatible = "arm,coresight-replicator"; | ||
165 | 169 | ||
166 | ports { | 170 | ports { |
167 | #address-cells = <1>; | 171 | #address-cells = <1>; |
168 | #size-cells = <0>; | 172 | #size-cells = <0>; |
169 | 173 | ||
170 | /* replicator output ports */ | 174 | /* funnel input ports */ |
171 | port@0 { | 175 | port@0 { |
172 | reg = <0>; | 176 | reg = <0>; |
173 | replicator_out_port0: endpoint { | 177 | hugo_funnel_in_port0: endpoint { |
174 | remote-endpoint = <&tpiu_in_port>; | 178 | slave-mode; |
179 | remote-endpoint = <&ca_funnel_out_port0>; | ||
180 | }; | ||
175 | }; | 181 | }; |
176 | }; | ||
177 | 182 | ||
178 | port@1 { | 183 | port@1 { |
179 | reg = <1>; | 184 | reg = <1>; |
180 | replicator_out_port1: endpoint { | 185 | hugo_funnel_in_port1: endpoint { |
181 | remote-endpoint = <&etr_in_port>; | 186 | slave-mode; /* M4 input */ |
187 | }; | ||
182 | }; | 188 | }; |
183 | }; | ||
184 | 189 | ||
185 | /* replicator input port */ | 190 | port@2 { |
186 | port@2 { | 191 | reg = <0>; |
187 | reg = <0>; | 192 | hugo_funnel_out_port0: endpoint { |
188 | replicator_in_port0: endpoint { | 193 | remote-endpoint = <&etf_in_port>; |
189 | slave-mode; | 194 | }; |
190 | remote-endpoint = <&etf_out_port>; | ||
191 | }; | 195 | }; |
196 | |||
197 | /* the other input ports are not connect to anything */ | ||
192 | }; | 198 | }; |
193 | }; | 199 | }; |
194 | }; | ||
195 | 200 | ||
196 | etf@30084000 { | 201 | etf@30084000 { |
197 | compatible = "arm,coresight-tmc", "arm,primecell"; | 202 | compatible = "arm,coresight-tmc", "arm,primecell"; |
198 | reg = <0x30084000 0x1000>; | 203 | reg = <0x30084000 0x1000>; |
199 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; | 204 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; |
200 | clock-names = "apb_pclk"; | 205 | clock-names = "apb_pclk"; |
201 | 206 | ||
202 | ports { | 207 | ports { |
203 | #address-cells = <1>; | 208 | #address-cells = <1>; |
204 | #size-cells = <0>; | 209 | #size-cells = <0>; |
205 | 210 | ||
206 | port@0 { | 211 | port@0 { |
207 | reg = <0>; | 212 | reg = <0>; |
208 | etf_in_port: endpoint { | 213 | etf_in_port: endpoint { |
209 | slave-mode; | 214 | slave-mode; |
210 | remote-endpoint = <&hugo_funnel_out_port0>; | 215 | remote-endpoint = <&hugo_funnel_out_port0>; |
216 | }; | ||
211 | }; | 217 | }; |
212 | }; | ||
213 | 218 | ||
214 | port@1 { | 219 | port@1 { |
215 | reg = <0>; | 220 | reg = <0>; |
216 | etf_out_port: endpoint { | 221 | etf_out_port: endpoint { |
217 | remote-endpoint = <&replicator_in_port0>; | 222 | remote-endpoint = <&replicator_in_port0>; |
223 | }; | ||
218 | }; | 224 | }; |
219 | }; | 225 | }; |
220 | }; | 226 | }; |
221 | }; | ||
222 | 227 | ||
223 | funnel@30083000 { | 228 | etr@30086000 { |
224 | compatible = "arm,coresight-funnel", "arm,primecell"; | 229 | compatible = "arm,coresight-tmc", "arm,primecell"; |
225 | reg = <0x30083000 0x1000>; | 230 | reg = <0x30086000 0x1000>; |
226 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; | 231 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; |
227 | clock-names = "apb_pclk"; | 232 | clock-names = "apb_pclk"; |
228 | |||
229 | ports { | ||
230 | #address-cells = <1>; | ||
231 | #size-cells = <0>; | ||
232 | 233 | ||
233 | /* funnel input ports */ | 234 | port { |
234 | port@0 { | 235 | etr_in_port: endpoint { |
235 | reg = <0>; | ||
236 | hugo_funnel_in_port0: endpoint { | ||
237 | slave-mode; | 236 | slave-mode; |
238 | remote-endpoint = <&ca_funnel_out_port0>; | 237 | remote-endpoint = <&replicator_out_port1>; |
239 | }; | 238 | }; |
240 | }; | 239 | }; |
240 | }; | ||
241 | 241 | ||
242 | port@1 { | 242 | tpiu@30087000 { |
243 | reg = <1>; | 243 | compatible = "arm,coresight-tpiu", "arm,primecell"; |
244 | hugo_funnel_in_port1: endpoint { | 244 | reg = <0x30087000 0x1000>; |
245 | slave-mode; /* M4 input */ | 245 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; |
246 | }; | 246 | clock-names = "apb_pclk"; |
247 | }; | ||
248 | 247 | ||
249 | port@2 { | 248 | port { |
250 | reg = <0>; | 249 | tpiu_in_port: endpoint { |
251 | hugo_funnel_out_port0: endpoint { | 250 | slave-mode; |
252 | remote-endpoint = <&etf_in_port>; | 251 | remote-endpoint = <&replicator_out_port1>; |
253 | }; | 252 | }; |
254 | }; | 253 | }; |
255 | |||
256 | /* the other input ports are not connect to anything */ | ||
257 | }; | 254 | }; |
258 | }; | ||
259 | 255 | ||
260 | funnel@30041000 { | 256 | replicator { |
261 | compatible = "arm,coresight-funnel", "arm,primecell"; | 257 | /* |
262 | reg = <0x30041000 0x1000>; | 258 | * non-configurable replicators don't show up on the |
263 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; | 259 | * AMBA bus. As such no need to add "arm,primecell" |
264 | clock-names = "apb_pclk"; | 260 | */ |
261 | compatible = "arm,coresight-replicator"; | ||
265 | 262 | ||
266 | ca_funnel_ports: ports { | 263 | ports { |
267 | #address-cells = <1>; | 264 | #address-cells = <1>; |
268 | #size-cells = <0>; | 265 | #size-cells = <0>; |
269 | 266 | ||
270 | /* funnel input ports */ | 267 | /* replicator output ports */ |
271 | port@0 { | 268 | port@0 { |
272 | reg = <0>; | 269 | reg = <0>; |
273 | ca_funnel_in_port0: endpoint { | 270 | replicator_out_port0: endpoint { |
274 | slave-mode; | 271 | remote-endpoint = <&tpiu_in_port>; |
275 | remote-endpoint = <&etm0_out_port>; | 272 | }; |
276 | }; | 273 | }; |
277 | }; | ||
278 | 274 | ||
279 | /* funnel output port */ | 275 | port@1 { |
280 | port@2 { | 276 | reg = <1>; |
281 | reg = <0>; | 277 | replicator_out_port1: endpoint { |
282 | ca_funnel_out_port0: endpoint { | 278 | remote-endpoint = <&etr_in_port>; |
283 | remote-endpoint = <&hugo_funnel_in_port0>; | 279 | }; |
284 | }; | 280 | }; |
285 | }; | ||
286 | 281 | ||
287 | /* the other input ports are not connect to anything */ | 282 | /* replicator input port */ |
283 | port@2 { | ||
284 | reg = <0>; | ||
285 | replicator_in_port0: endpoint { | ||
286 | slave-mode; | ||
287 | remote-endpoint = <&etf_out_port>; | ||
288 | }; | ||
289 | }; | ||
290 | }; | ||
288 | }; | 291 | }; |
289 | }; | ||
290 | 292 | ||
291 | etm@3007c000 { | 293 | intc: interrupt-controller@31001000 { |
292 | compatible = "arm,coresight-etm3x", "arm,primecell"; | 294 | compatible = "arm,cortex-a7-gic"; |
293 | reg = <0x3007c000 0x1000>; | 295 | #interrupt-cells = <3>; |
294 | cpu = <&cpu0>; | 296 | interrupt-controller; |
295 | clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; | 297 | reg = <0x31001000 0x1000>, |
296 | clock-names = "apb_pclk"; | 298 | <0x31002000 0x1000>, |
297 | 299 | <0x31004000 0x2000>, | |
298 | port { | 300 | <0x31006000 0x2000>; |
299 | etm0_out_port: endpoint { | ||
300 | remote-endpoint = <&ca_funnel_in_port0>; | ||
301 | }; | ||
302 | }; | 301 | }; |
303 | }; | ||
304 | 302 | ||
305 | soc { | 303 | timer { |
306 | #address-cells = <1>; | 304 | compatible = "arm,armv7-timer"; |
307 | #size-cells = <1>; | 305 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
308 | compatible = "simple-bus"; | 306 | <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
309 | interrupt-parent = <&intc>; | 307 | <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
310 | ranges; | 308 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; |
309 | }; | ||
311 | 310 | ||
312 | aips1: aips-bus@30000000 { | 311 | aips1: aips-bus@30000000 { |
313 | compatible = "fsl,aips-bus", "simple-bus"; | 312 | compatible = "fsl,aips-bus", "simple-bus"; |