Merge tag 'block-5.14-2021-08-07' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / hisilicon / hi3660-coresight.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2
3 /*
4  * dtsi for Hisilicon Hi3660 Coresight
5  *
6  * Copyright (C) 2016-2018 HiSilicon Ltd.
7  *
8  * Author: Wanglai Shi <shiwanglai@hisilicon.com>
9  *
10  */
11 / {
12         soc {
13                 /* A53 cluster internals */
14                 etm@ecc40000 {
15                         compatible = "arm,coresight-etm4x", "arm,primecell";
16                         reg = <0 0xecc40000 0 0x1000>;
17                         clocks = <&crg_ctrl HI3660_PCLK>;
18                         clock-names = "apb_pclk";
19                         cpu = <&cpu0>;
20
21                         out-ports {
22                                 port {
23                                         etm0_out: endpoint {
24                                                 remote-endpoint =
25                                                         <&cluster0_funnel_in0>;
26                                         };
27                                 };
28                         };
29                 };
30
31                 etm@ecd40000 {
32                         compatible = "arm,coresight-etm4x", "arm,primecell";
33                         reg = <0 0xecd40000 0 0x1000>;
34                         clocks = <&crg_ctrl HI3660_PCLK>;
35                         clock-names = "apb_pclk";
36                         cpu = <&cpu1>;
37
38                         out-ports {
39                                 port {
40                                         etm1_out: endpoint {
41                                                 remote-endpoint =
42                                                         <&cluster0_funnel_in1>;
43                                         };
44                                 };
45                         };
46                 };
47
48                 etm@ece40000 {
49                         compatible = "arm,coresight-etm4x", "arm,primecell";
50                         reg = <0 0xece40000 0 0x1000>;
51                         clocks = <&crg_ctrl HI3660_PCLK>;
52                         clock-names = "apb_pclk";
53                         cpu = <&cpu2>;
54
55                         out-ports {
56                                 port {
57                                         etm2_out: endpoint {
58                                                 remote-endpoint =
59                                                         <&cluster0_funnel_in2>;
60                                         };
61                                 };
62                         };
63                 };
64
65                 etm@ecf40000 {
66                         compatible = "arm,coresight-etm4x", "arm,primecell";
67                         reg = <0 0xecf40000 0 0x1000>;
68                         clocks = <&crg_ctrl HI3660_PCLK>;
69                         clock-names = "apb_pclk";
70                         cpu = <&cpu3>;
71
72                         out-ports {
73                                 port {
74                                         etm3_out: endpoint {
75                                                 remote-endpoint =
76                                                         <&cluster0_funnel_in3>;
77                                         };
78                                 };
79                         };
80                 };
81
82                 funnel@ec801000 {
83                         compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
84                         reg = <0 0xec801000 0 0x1000>;
85                         clocks = <&crg_ctrl HI3660_PCLK>;
86                         clock-names = "apb_pclk";
87
88                         out-ports {
89                                 port {
90                                         cluster0_funnel_out: endpoint {
91                                                 remote-endpoint =
92                                                         <&cluster0_etf_in>;
93                                         };
94                                 };
95                         };
96
97                         in-ports {
98                                 #address-cells = <1>;
99                                 #size-cells = <0>;
100
101                                 port@0 {
102                                         reg = <0>;
103                                         cluster0_funnel_in0: endpoint {
104                                                 remote-endpoint = <&etm0_out>;
105                                         };
106                                 };
107
108                                 port@1 {
109                                         reg = <1>;
110                                         cluster0_funnel_in1: endpoint {
111                                                 remote-endpoint = <&etm1_out>;
112                                         };
113                                 };
114
115                                 port@2 {
116                                         reg = <2>;
117                                         cluster0_funnel_in2: endpoint {
118                                                 remote-endpoint = <&etm2_out>;
119                                         };
120                                 };
121
122                                 port@3 {
123                                         reg = <3>;
124                                         cluster0_funnel_in3: endpoint {
125                                                 remote-endpoint = <&etm3_out>;
126                                         };
127                                 };
128                         };
129                 };
130
131                 etf@ec802000 {
132                         compatible = "arm,coresight-tmc", "arm,primecell";
133                         reg = <0 0xec802000 0 0x1000>;
134                         clocks = <&crg_ctrl HI3660_PCLK>;
135                         clock-names = "apb_pclk";
136
137                         in-ports {
138                                 port {
139                                         cluster0_etf_in: endpoint {
140                                                 remote-endpoint =
141                                                         <&cluster0_funnel_out>;
142                                         };
143                                 };
144                         };
145
146                         out-ports {
147                                 port {
148                                         cluster0_etf_out: endpoint {
149                                                 remote-endpoint =
150                                                         <&combo_funnel_in0>;
151                                         };
152                                 };
153                         };
154                 };
155
156                 /* A73 cluster internals */
157                 etm@ed440000 {
158                         compatible = "arm,coresight-etm4x", "arm,primecell";
159                         reg = <0 0xed440000 0 0x1000>;
160                         clocks = <&crg_ctrl HI3660_PCLK>;
161                         clock-names = "apb_pclk";
162                         cpu = <&cpu4>;
163
164                         out-ports {
165                                 port {
166                                         etm4_out: endpoint {
167                                                 remote-endpoint =
168                                                         <&cluster1_funnel_in0>;
169                                         };
170                                 };
171                         };
172                 };
173
174                 etm@ed540000 {
175                         compatible = "arm,coresight-etm4x", "arm,primecell";
176                         reg = <0 0xed540000 0 0x1000>;
177                         clocks = <&crg_ctrl HI3660_PCLK>;
178                         clock-names = "apb_pclk";
179                         cpu = <&cpu5>;
180
181                         out-ports {
182                                 port {
183                                         etm5_out: endpoint {
184                                                 remote-endpoint =
185                                                         <&cluster1_funnel_in1>;
186                                         };
187                                 };
188                         };
189                 };
190
191                 etm@ed640000 {
192                         compatible = "arm,coresight-etm4x", "arm,primecell";
193                         reg = <0 0xed640000 0 0x1000>;
194                         clocks = <&crg_ctrl HI3660_PCLK>;
195                         clock-names = "apb_pclk";
196                         cpu = <&cpu6>;
197
198                         out-ports {
199                                 port {
200                                         etm6_out: endpoint {
201                                                 remote-endpoint =
202                                                         <&cluster1_funnel_in2>;
203                                         };
204                                 };
205                         };
206                 };
207
208                 etm@ed740000 {
209                         compatible = "arm,coresight-etm4x", "arm,primecell";
210                         reg = <0 0xed740000 0 0x1000>;
211                         clocks = <&crg_ctrl HI3660_PCLK>;
212                         clock-names = "apb_pclk";
213                         cpu = <&cpu7>;
214
215                         out-ports {
216                                 port {
217                                         etm7_out: endpoint {
218                                                 remote-endpoint =
219                                                         <&cluster1_funnel_in3>;
220                                         };
221                                 };
222                         };
223                 };
224
225                 funnel@ed001000 {
226                         compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
227                         reg = <0 0xed001000 0 0x1000>;
228                         clocks = <&crg_ctrl HI3660_PCLK>;
229                         clock-names = "apb_pclk";
230                         out-ports {
231                                 port {
232                                         cluster1_funnel_out: endpoint {
233                                                 remote-endpoint =
234                                                         <&cluster1_etf_in>;
235                                         };
236                                 };
237                         };
238
239                         in-ports {
240                                 #address-cells = <1>;
241                                 #size-cells = <0>;
242
243                                 port@0 {
244                                         reg = <0>;
245                                         cluster1_funnel_in0: endpoint {
246                                                 remote-endpoint = <&etm4_out>;
247                                         };
248                                 };
249
250                                 port@1 {
251                                         reg = <1>;
252                                         cluster1_funnel_in1: endpoint {
253                                                 remote-endpoint = <&etm5_out>;
254                                         };
255                                 };
256
257                                 port@2 {
258                                         reg = <2>;
259                                         cluster1_funnel_in2: endpoint {
260                                                 remote-endpoint = <&etm6_out>;
261                                         };
262                                 };
263
264                                 port@3 {
265                                         reg = <3>;
266                                         cluster1_funnel_in3: endpoint {
267                                                 remote-endpoint = <&etm7_out>;
268                                         };
269                                 };
270                         };
271                 };
272
273                 etf@ed002000 {
274                         compatible = "arm,coresight-tmc", "arm,primecell";
275                         reg = <0 0xed002000 0 0x1000>;
276                         clocks = <&crg_ctrl HI3660_PCLK>;
277                         clock-names = "apb_pclk";
278
279                         in-ports {
280                                 port {
281                                         cluster1_etf_in: endpoint {
282                                                 remote-endpoint =
283                                                         <&cluster1_funnel_out>;
284                                         };
285                                 };
286                         };
287
288                         out-ports {
289                                 port {
290                                         cluster1_etf_out: endpoint {
291                                                 remote-endpoint =
292                                                         <&combo_funnel_in1>;
293                                         };
294                                 };
295                         };
296                 };
297
298                 /* An invisible combo funnel between clusters and top funnel */
299                 funnel {
300                         compatible = "arm,coresight-static-funnel";
301                         clocks = <&crg_ctrl HI3660_PCLK>;
302                         clock-names = "apb_pclk";
303
304                         out-ports {
305                                 port {
306                                         combo_funnel_out: endpoint {
307                                                 remote-endpoint =
308                                                         <&top_funnel_in>;
309                                         };
310                                 };
311                         };
312
313                         in-ports {
314                                 #address-cells = <1>;
315                                 #size-cells = <0>;
316
317                                 port@0 {
318                                         reg = <0>;
319                                         combo_funnel_in0: endpoint {
320                                                 remote-endpoint =
321                                                         <&cluster0_etf_out>;
322                                         };
323                                 };
324
325                                 port@1 {
326                                         reg = <1>;
327                                         combo_funnel_in1: endpoint {
328                                                 remote-endpoint =
329                                                         <&cluster1_etf_out>;
330                                         };
331                                 };
332                         };
333                 };
334
335                 /* Top internals */
336                 funnel@ec031000 {
337                         compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
338                         reg = <0 0xec031000 0 0x1000>;
339                         clocks = <&crg_ctrl HI3660_PCLK>;
340                         clock-names = "apb_pclk";
341
342                         out-ports {
343                                 port {
344                                         top_funnel_out: endpoint {
345                                                 remote-endpoint =
346                                                         <&top_etf_in>;
347                                         };
348                                 };
349                         };
350
351                         in-ports {
352                                 #address-cells = <1>;
353                                 #size-cells = <0>;
354
355                                 port@0 {
356                                         reg = <0>;
357                                         top_funnel_in: endpoint {
358                                                 remote-endpoint =
359                                                         <&combo_funnel_out>;
360                                         };
361                                 };
362                         };
363                 };
364
365                 etf@ec036000 {
366                         compatible = "arm,coresight-tmc", "arm,primecell";
367                         reg = <0 0xec036000 0 0x1000>;
368                         clocks = <&crg_ctrl HI3660_PCLK>;
369                         clock-names = "apb_pclk";
370
371                         in-ports {
372                                 port {
373                                         top_etf_in: endpoint {
374                                                 remote-endpoint =
375                                                         <&top_funnel_out>;
376                                         };
377                                 };
378                         };
379
380                         out-ports {
381                                 port {
382                                         top_etf_out: endpoint {
383                                                 remote-endpoint =
384                                                         <&replicator_in>;
385                                         };
386                                 };
387                         };
388                 };
389
390                 replicator {
391                         compatible = "arm,coresight-static-replicator";
392                         clocks = <&crg_ctrl HI3660_PCLK>;
393                         clock-names = "apb_pclk";
394
395                         in-ports {
396                                 port {
397                                         replicator_in: endpoint {
398                                                 remote-endpoint =
399                                                         <&top_etf_out>;
400                                         };
401                                 };
402                         };
403
404                         out-ports {
405                                 #address-cells = <1>;
406                                 #size-cells = <0>;
407
408                                 port@0 {
409                                         reg = <0>;
410                                         replicator0_out0: endpoint {
411                                                 remote-endpoint = <&etr_in>;
412                                         };
413                                 };
414
415                                 port@1 {
416                                         reg = <1>;
417                                         replicator0_out1: endpoint {
418                                                 remote-endpoint = <&tpiu_in>;
419                                         };
420                                 };
421                         };
422                 };
423
424                 etr@ec033000 {
425                         compatible = "arm,coresight-tmc", "arm,primecell";
426                         reg = <0 0xec033000 0 0x1000>;
427                         clocks = <&crg_ctrl HI3660_PCLK>;
428                         clock-names = "apb_pclk";
429
430                         in-ports {
431                                 port {
432                                         etr_in: endpoint {
433                                                 remote-endpoint =
434                                                         <&replicator0_out0>;
435                                         };
436                                 };
437                         };
438                 };
439
440                 tpiu@ec032000 {
441                         compatible = "arm,coresight-tpiu", "arm,primecell";
442                         reg = <0 0xec032000 0 0x1000>;
443                         clocks = <&crg_ctrl HI3660_PCLK>;
444                         clock-names = "apb_pclk";
445
446                         in-ports {
447                                 port {
448                                         tpiu_in: endpoint {
449                                                 remote-endpoint =
450                                                         <&replicator0_out1>;
451                                         };
452                                 };
453                         };
454                 };
455         };
456 };