arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / arm64 / boot / dts / apm / apm-storm.dtsi
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * dts file for AppliedMicro (APM) X-Gene Storm SOC
4  *
5  * Copyright (C) 2013, Applied Micro Circuits Corporation
6  */
7
8 / {
9         compatible = "apm,xgene-storm";
10         interrupt-parent = <&gic>;
11         #address-cells = <2>;
12         #size-cells = <2>;
13
14         cpus {
15                 #address-cells = <2>;
16                 #size-cells = <0>;
17
18                 cpu@0 {
19                         device_type = "cpu";
20                         compatible = "apm,potenza";
21                         reg = <0x0 0x000>;
22                         enable-method = "spin-table";
23                         cpu-release-addr = <0x1 0x0000fff8>;
24                         next-level-cache = <&xgene_L2_0>;
25                 };
26                 cpu@1 {
27                         device_type = "cpu";
28                         compatible = "apm,potenza";
29                         reg = <0x0 0x001>;
30                         enable-method = "spin-table";
31                         cpu-release-addr = <0x1 0x0000fff8>;
32                         next-level-cache = <&xgene_L2_0>;
33                 };
34                 cpu@100 {
35                         device_type = "cpu";
36                         compatible = "apm,potenza";
37                         reg = <0x0 0x100>;
38                         enable-method = "spin-table";
39                         cpu-release-addr = <0x1 0x0000fff8>;
40                         next-level-cache = <&xgene_L2_1>;
41                 };
42                 cpu@101 {
43                         device_type = "cpu";
44                         compatible = "apm,potenza";
45                         reg = <0x0 0x101>;
46                         enable-method = "spin-table";
47                         cpu-release-addr = <0x1 0x0000fff8>;
48                         next-level-cache = <&xgene_L2_1>;
49                 };
50                 cpu@200 {
51                         device_type = "cpu";
52                         compatible = "apm,potenza";
53                         reg = <0x0 0x200>;
54                         enable-method = "spin-table";
55                         cpu-release-addr = <0x1 0x0000fff8>;
56                         next-level-cache = <&xgene_L2_2>;
57                 };
58                 cpu@201 {
59                         device_type = "cpu";
60                         compatible = "apm,potenza";
61                         reg = <0x0 0x201>;
62                         enable-method = "spin-table";
63                         cpu-release-addr = <0x1 0x0000fff8>;
64                         next-level-cache = <&xgene_L2_2>;
65                 };
66                 cpu@300 {
67                         device_type = "cpu";
68                         compatible = "apm,potenza";
69                         reg = <0x0 0x300>;
70                         enable-method = "spin-table";
71                         cpu-release-addr = <0x1 0x0000fff8>;
72                         next-level-cache = <&xgene_L2_3>;
73                 };
74                 cpu@301 {
75                         device_type = "cpu";
76                         compatible = "apm,potenza";
77                         reg = <0x0 0x301>;
78                         enable-method = "spin-table";
79                         cpu-release-addr = <0x1 0x0000fff8>;
80                         next-level-cache = <&xgene_L2_3>;
81                 };
82                 xgene_L2_0: l2-cache-0 {
83                         compatible = "cache";
84                         cache-level = <2>;
85                         cache-unified;
86                 };
87                 xgene_L2_1: l2-cache-1 {
88                         compatible = "cache";
89                         cache-level = <2>;
90                         cache-unified;
91                 };
92                 xgene_L2_2: l2-cache-2 {
93                         compatible = "cache";
94                         cache-level = <2>;
95                         cache-unified;
96                 };
97                 xgene_L2_3: l2-cache-3 {
98                         compatible = "cache";
99                         cache-level = <2>;
100                         cache-unified;
101                 };
102         };
103
104         gic: interrupt-controller@78010000 {
105                 compatible = "arm,cortex-a15-gic";
106                 #interrupt-cells = <3>;
107                 interrupt-controller;
108                 reg = <0x0 0x78010000 0x0 0x1000>,      /* GIC Dist */
109                       <0x0 0x78020000 0x0 0x1000>,      /* GIC CPU */
110                       <0x0 0x78040000 0x0 0x2000>,      /* GIC VCPU Control */
111                       <0x0 0x78060000 0x0 0x2000>;      /* GIC VCPU */
112                 interrupts = <1 9 0xf04>;       /* GIC Maintenence IRQ */
113         };
114
115         timer {
116                 compatible = "arm,armv8-timer";
117                 interrupts = <1 0 0xff08>,      /* Secure Phys IRQ */
118                              <1 13 0xff08>,     /* Non-secure Phys IRQ */
119                              <1 14 0xff08>,     /* Virt IRQ */
120                              <1 15 0xff08>;     /* Hyp IRQ */
121                 clock-frequency = <50000000>;
122         };
123
124         pmu {
125                 compatible = "apm,potenza-pmu", "arm,armv8-pmuv3";
126                 interrupts = <1 12 0xff04>;
127         };
128
129         soc {
130                 compatible = "simple-bus";
131                 #address-cells = <2>;
132                 #size-cells = <2>;
133                 ranges;
134                 dma-ranges = <0x0 0x0 0x0 0x0 0x400 0x0>;
135
136                 clocks {
137                         #address-cells = <2>;
138                         #size-cells = <2>;
139                         ranges;
140                         refclk: refclk {
141                                 compatible = "fixed-clock";
142                                 #clock-cells = <1>;
143                                 clock-frequency = <100000000>;
144                                 clock-output-names = "refclk";
145                         };
146
147                         pcppll: pcppll@17000100 {
148                                 compatible = "apm,xgene-pcppll-clock";
149                                 #clock-cells = <1>;
150                                 clocks = <&refclk 0>;
151                                 clock-names = "pcppll";
152                                 reg = <0x0 0x17000100 0x0 0x1000>;
153                                 clock-output-names = "pcppll";
154                                 type = <0>;
155                         };
156
157                         socpll: socpll@17000120 {
158                                 compatible = "apm,xgene-socpll-clock";
159                                 #clock-cells = <1>;
160                                 clocks = <&refclk 0>;
161                                 clock-names = "socpll";
162                                 reg = <0x0 0x17000120 0x0 0x1000>;
163                                 clock-output-names = "socpll";
164                                 type = <1>;
165                         };
166
167                         socplldiv2: socplldiv2  {
168                                 compatible = "fixed-factor-clock";
169                                 #clock-cells = <1>;
170                                 clocks = <&socpll 0>;
171                                 clock-names = "socplldiv2";
172                                 clock-mult = <1>;
173                                 clock-div = <2>;
174                                 clock-output-names = "socplldiv2";
175                         };
176
177                         ahbclk: ahbclk@17000000 {
178                                 compatible = "apm,xgene-device-clock";
179                                 #clock-cells = <1>;
180                                 clocks = <&socplldiv2 0>;
181                                 reg = <0x0 0x17000000 0x0 0x2000>;
182                                 reg-names = "div-reg";
183                                 divider-offset = <0x164>;
184                                 divider-width = <0x5>;
185                                 divider-shift = <0x0>;
186                                 clock-output-names = "ahbclk";
187                         };
188
189                         sdioclk: sdioclk@1f2ac000 {
190                                 compatible = "apm,xgene-device-clock";
191                                 #clock-cells = <1>;
192                                 clocks = <&socplldiv2 0>;
193                                 reg = <0x0 0x1f2ac000 0x0 0x1000
194                                         0x0 0x17000000 0x0 0x2000>;
195                                 reg-names = "csr-reg", "div-reg";
196                                 csr-offset = <0x0>;
197                                 csr-mask = <0x2>;
198                                 enable-offset = <0x8>;
199                                 enable-mask = <0x2>;
200                                 divider-offset = <0x178>;
201                                 divider-width = <0x8>;
202                                 divider-shift = <0x0>;
203                                 clock-output-names = "sdioclk";
204                         };
205
206                         ethclk: ethclk {
207                                 compatible = "apm,xgene-device-clock";
208                                 #clock-cells = <1>;
209                                 clocks = <&socplldiv2 0>;
210                                 clock-names = "ethclk";
211                                 reg = <0x0 0x17000000 0x0 0x1000>;
212                                 reg-names = "div-reg";
213                                 divider-offset = <0x238>;
214                                 divider-width = <0x9>;
215                                 divider-shift = <0x0>;
216                                 clock-output-names = "ethclk";
217                         };
218
219                         menetclk: menetclk {
220                                 compatible = "apm,xgene-device-clock";
221                                 #clock-cells = <1>;
222                                 clocks = <&ethclk 0>;
223                                 reg = <0x0 0x1702c000 0x0 0x1000>;
224                                 reg-names = "csr-reg";
225                                 clock-output-names = "menetclk";
226                         };
227
228                         sge0clk: sge0clk@1f21c000 {
229                                 compatible = "apm,xgene-device-clock";
230                                 #clock-cells = <1>;
231                                 clocks = <&socplldiv2 0>;
232                                 reg = <0x0 0x1f21c000 0x0 0x1000>;
233                                 reg-names = "csr-reg";
234                                 csr-mask = <0xa>;
235                                 enable-mask = <0xf>;
236                                 clock-output-names = "sge0clk";
237                         };
238
239                         xge0clk: xge0clk@1f61c000 {
240                                 compatible = "apm,xgene-device-clock";
241                                 #clock-cells = <1>;
242                                 clocks = <&socplldiv2 0>;
243                                 reg = <0x0 0x1f61c000 0x0 0x1000>;
244                                 reg-names = "csr-reg";
245                                 csr-mask = <0x3>;
246                                 clock-output-names = "xge0clk";
247                         };
248
249                         xge1clk: xge1clk@1f62c000 {
250                                 compatible = "apm,xgene-device-clock";
251                                 status = "disabled";
252                                 #clock-cells = <1>;
253                                 clocks = <&socplldiv2 0>;
254                                 reg = <0x0 0x1f62c000 0x0 0x1000>;
255                                 reg-names = "csr-reg";
256                                 csr-mask = <0x3>;
257                                 clock-output-names = "xge1clk";
258                         };
259
260                         sataphy1clk: sataphy1clk@1f21c000 {
261                                 compatible = "apm,xgene-device-clock";
262                                 #clock-cells = <1>;
263                                 clocks = <&socplldiv2 0>;
264                                 reg = <0x0 0x1f21c000 0x0 0x1000>;
265                                 reg-names = "csr-reg";
266                                 clock-output-names = "sataphy1clk";
267                                 status = "disabled";
268                                 csr-offset = <0x4>;
269                                 csr-mask = <0x00>;
270                                 enable-offset = <0x0>;
271                                 enable-mask = <0x06>;
272                         };
273
274                         sataphy2clk: sataphy1clk@1f22c000 {
275                                 compatible = "apm,xgene-device-clock";
276                                 #clock-cells = <1>;
277                                 clocks = <&socplldiv2 0>;
278                                 reg = <0x0 0x1f22c000 0x0 0x1000>;
279                                 reg-names = "csr-reg";
280                                 clock-output-names = "sataphy2clk";
281                                 status = "okay";
282                                 csr-offset = <0x4>;
283                                 csr-mask = <0x3a>;
284                                 enable-offset = <0x0>;
285                                 enable-mask = <0x06>;
286                         };
287
288                         sataphy3clk: sataphy1clk@1f23c000 {
289                                 compatible = "apm,xgene-device-clock";
290                                 #clock-cells = <1>;
291                                 clocks = <&socplldiv2 0>;
292                                 reg = <0x0 0x1f23c000 0x0 0x1000>;
293                                 reg-names = "csr-reg";
294                                 clock-output-names = "sataphy3clk";
295                                 status = "okay";
296                                 csr-offset = <0x4>;
297                                 csr-mask = <0x3a>;
298                                 enable-offset = <0x0>;
299                                 enable-mask = <0x06>;
300                         };
301
302                         sata01clk: sata01clk@1f21c000 {
303                                 compatible = "apm,xgene-device-clock";
304                                 #clock-cells = <1>;
305                                 clocks = <&socplldiv2 0>;
306                                 reg = <0x0 0x1f21c000 0x0 0x1000>;
307                                 reg-names = "csr-reg";
308                                 clock-output-names = "sata01clk";
309                                 csr-offset = <0x4>;
310                                 csr-mask = <0x05>;
311                                 enable-offset = <0x0>;
312                                 enable-mask = <0x39>;
313                         };
314
315                         sata23clk: sata23clk@1f22c000 {
316                                 compatible = "apm,xgene-device-clock";
317                                 #clock-cells = <1>;
318                                 clocks = <&socplldiv2 0>;
319                                 reg = <0x0 0x1f22c000 0x0 0x1000>;
320                                 reg-names = "csr-reg";
321                                 clock-output-names = "sata23clk";
322                                 csr-offset = <0x4>;
323                                 csr-mask = <0x05>;
324                                 enable-offset = <0x0>;
325                                 enable-mask = <0x39>;
326                         };
327
328                         sata45clk: sata45clk@1f23c000 {
329                                 compatible = "apm,xgene-device-clock";
330                                 #clock-cells = <1>;
331                                 clocks = <&socplldiv2 0>;
332                                 reg = <0x0 0x1f23c000 0x0 0x1000>;
333                                 reg-names = "csr-reg";
334                                 clock-output-names = "sata45clk";
335                                 csr-offset = <0x4>;
336                                 csr-mask = <0x05>;
337                                 enable-offset = <0x0>;
338                                 enable-mask = <0x39>;
339                         };
340
341                         rtcclk: rtcclk@17000000 {
342                                 compatible = "apm,xgene-device-clock";
343                                 #clock-cells = <1>;
344                                 clocks = <&socplldiv2 0>;
345                                 reg = <0x0 0x17000000 0x0 0x2000>;
346                                 reg-names = "csr-reg";
347                                 csr-offset = <0xc>;
348                                 csr-mask = <0x2>;
349                                 enable-offset = <0x10>;
350                                 enable-mask = <0x2>;
351                                 clock-output-names = "rtcclk";
352                         };
353
354                         rngpkaclk: rngpkaclk@17000000 {
355                                 compatible = "apm,xgene-device-clock";
356                                 #clock-cells = <1>;
357                                 clocks = <&socplldiv2 0>;
358                                 reg = <0x0 0x17000000 0x0 0x2000>;
359                                 reg-names = "csr-reg";
360                                 csr-offset = <0xc>;
361                                 csr-mask = <0x10>;
362                                 enable-offset = <0x10>;
363                                 enable-mask = <0x10>;
364                                 clock-output-names = "rngpkaclk";
365                         };
366
367                         pcie0clk: pcie0clk@1f2bc000 {
368                                 status = "disabled";
369                                 compatible = "apm,xgene-device-clock";
370                                 #clock-cells = <1>;
371                                 clocks = <&socplldiv2 0>;
372                                 reg = <0x0 0x1f2bc000 0x0 0x1000>;
373                                 reg-names = "csr-reg";
374                                 clock-output-names = "pcie0clk";
375                         };
376
377                         pcie1clk: pcie1clk@1f2cc000 {
378                                 status = "disabled";
379                                 compatible = "apm,xgene-device-clock";
380                                 #clock-cells = <1>;
381                                 clocks = <&socplldiv2 0>;
382                                 reg = <0x0 0x1f2cc000 0x0 0x1000>;
383                                 reg-names = "csr-reg";
384                                 clock-output-names = "pcie1clk";
385                         };
386
387                         pcie2clk: pcie2clk@1f2dc000 {
388                                 status = "disabled";
389                                 compatible = "apm,xgene-device-clock";
390                                 #clock-cells = <1>;
391                                 clocks = <&socplldiv2 0>;
392                                 reg = <0x0 0x1f2dc000 0x0 0x1000>;
393                                 reg-names = "csr-reg";
394                                 clock-output-names = "pcie2clk";
395                         };
396
397                         pcie3clk: pcie3clk@1f50c000 {
398                                 status = "disabled";
399                                 compatible = "apm,xgene-device-clock";
400                                 #clock-cells = <1>;
401                                 clocks = <&socplldiv2 0>;
402                                 reg = <0x0 0x1f50c000 0x0 0x1000>;
403                                 reg-names = "csr-reg";
404                                 clock-output-names = "pcie3clk";
405                         };
406
407                         pcie4clk: pcie4clk@1f51c000 {
408                                 status = "disabled";
409                                 compatible = "apm,xgene-device-clock";
410                                 #clock-cells = <1>;
411                                 clocks = <&socplldiv2 0>;
412                                 reg = <0x0 0x1f51c000 0x0 0x1000>;
413                                 reg-names = "csr-reg";
414                                 clock-output-names = "pcie4clk";
415                         };
416
417                         dmaclk: dmaclk@1f27c000 {
418                                 compatible = "apm,xgene-device-clock";
419                                 #clock-cells = <1>;
420                                 clocks = <&socplldiv2 0>;
421                                 reg = <0x0 0x1f27c000 0x0 0x1000>;
422                                 reg-names = "csr-reg";
423                                 clock-output-names = "dmaclk";
424                         };
425                 };
426
427                 msi: msi@79000000 {
428                         compatible = "apm,xgene1-msi";
429                         msi-controller;
430                         reg = <0x00 0x79000000 0x0 0x900000>;
431                         interrupts = <  0x0 0x10 0x4
432                                         0x0 0x11 0x4
433                                         0x0 0x12 0x4
434                                         0x0 0x13 0x4
435                                         0x0 0x14 0x4
436                                         0x0 0x15 0x4
437                                         0x0 0x16 0x4
438                                         0x0 0x17 0x4
439                                         0x0 0x18 0x4
440                                         0x0 0x19 0x4
441                                         0x0 0x1a 0x4
442                                         0x0 0x1b 0x4
443                                         0x0 0x1c 0x4
444                                         0x0 0x1d 0x4
445                                         0x0 0x1e 0x4
446                                         0x0 0x1f 0x4>;
447                 };
448
449                 scu: system-clk-controller@17000000 {
450                         compatible = "apm,xgene-scu","syscon";
451                         reg = <0x0 0x17000000 0x0 0x400>;
452                 };
453
454                 reboot: reboot@17000014 {
455                         compatible = "syscon-reboot";
456                         regmap = <&scu>;
457                         offset = <0x14>;
458                         mask = <0x1>;
459                 };
460
461                 csw: csw@7e200000 {
462                         compatible = "apm,xgene-csw", "syscon";
463                         reg = <0x0 0x7e200000 0x0 0x1000>;
464                 };
465
466                 mcba: mcba@7e700000 {
467                         compatible = "apm,xgene-mcb", "syscon";
468                         reg = <0x0 0x7e700000 0x0 0x1000>;
469                 };
470
471                 mcbb: mcbb@7e720000 {
472                         compatible = "apm,xgene-mcb", "syscon";
473                         reg = <0x0 0x7e720000 0x0 0x1000>;
474                 };
475
476                 efuse: efuse@1054a000 {
477                         compatible = "apm,xgene-efuse", "syscon";
478                         reg = <0x0 0x1054a000 0x0 0x20>;
479                 };
480
481                 rb: rb@7e000000 {
482                         compatible = "apm,xgene-rb", "syscon";
483                         reg = <0x0 0x7e000000 0x0 0x10>;
484                 };
485
486                 edac@78800000 {
487                         compatible = "apm,xgene-edac";
488                         #address-cells = <2>;
489                         #size-cells = <2>;
490                         ranges;
491                         regmap-csw = <&csw>;
492                         regmap-mcba = <&mcba>;
493                         regmap-mcbb = <&mcbb>;
494                         regmap-efuse = <&efuse>;
495                         regmap-rb = <&rb>;
496                         reg = <0x0 0x78800000 0x0 0x100>;
497                         interrupts = <0x0 0x20 0x4>,
498                                      <0x0 0x21 0x4>,
499                                      <0x0 0x27 0x4>;
500
501                         edacmc@7e800000 {
502                                 compatible = "apm,xgene-edac-mc";
503                                 reg = <0x0 0x7e800000 0x0 0x1000>;
504                                 memory-controller = <0>;
505                         };
506
507                         edacmc@7e840000 {
508                                 compatible = "apm,xgene-edac-mc";
509                                 reg = <0x0 0x7e840000 0x0 0x1000>;
510                                 memory-controller = <1>;
511                         };
512
513                         edacmc@7e880000 {
514                                 compatible = "apm,xgene-edac-mc";
515                                 reg = <0x0 0x7e880000 0x0 0x1000>;
516                                 memory-controller = <2>;
517                         };
518
519                         edacmc@7e8c0000 {
520                                 compatible = "apm,xgene-edac-mc";
521                                 reg = <0x0 0x7e8c0000 0x0 0x1000>;
522                                 memory-controller = <3>;
523                         };
524
525                         edacpmd@7c000000 {
526                                 compatible = "apm,xgene-edac-pmd";
527                                 reg = <0x0 0x7c000000 0x0 0x200000>;
528                                 pmd-controller = <0>;
529                         };
530
531                         edacpmd@7c200000 {
532                                 compatible = "apm,xgene-edac-pmd";
533                                 reg = <0x0 0x7c200000 0x0 0x200000>;
534                                 pmd-controller = <1>;
535                         };
536
537                         edacpmd@7c400000 {
538                                 compatible = "apm,xgene-edac-pmd";
539                                 reg = <0x0 0x7c400000 0x0 0x200000>;
540                                 pmd-controller = <2>;
541                         };
542
543                         edacpmd@7c600000 {
544                                 compatible = "apm,xgene-edac-pmd";
545                                 reg = <0x0 0x7c600000 0x0 0x200000>;
546                                 pmd-controller = <3>;
547                         };
548
549                         edacl3@7e600000 {
550                                 compatible = "apm,xgene-edac-l3";
551                                 reg = <0x0 0x7e600000 0x0 0x1000>;
552                         };
553
554                         edacsoc@7e930000 {
555                                 compatible = "apm,xgene-edac-soc-v1";
556                                 reg = <0x0 0x7e930000 0x0 0x1000>;
557                         };
558                 };
559
560                 pmu: pmu@78810000 {
561                         compatible = "apm,xgene-pmu-v2";
562                         #address-cells = <2>;
563                         #size-cells = <2>;
564                         ranges;
565                         regmap-csw = <&csw>;
566                         regmap-mcba = <&mcba>;
567                         regmap-mcbb = <&mcbb>;
568                         reg = <0x0 0x78810000 0x0 0x1000>;
569                         interrupts = <0x0 0x22 0x4>;
570
571                         pmul3c@7e610000 {
572                                 compatible = "apm,xgene-pmu-l3c";
573                                 reg = <0x0 0x7e610000 0x0 0x1000>;
574                         };
575
576                         pmuiob@7e940000 {
577                                 compatible = "apm,xgene-pmu-iob";
578                                 reg = <0x0 0x7e940000 0x0 0x1000>;
579                         };
580
581                         pmucmcb@7e710000 {
582                                 compatible = "apm,xgene-pmu-mcb";
583                                 reg = <0x0 0x7e710000 0x0 0x1000>;
584                                 enable-bit-index = <0>;
585                         };
586
587                         pmucmcb@7e730000 {
588                                 compatible = "apm,xgene-pmu-mcb";
589                                 reg = <0x0 0x7e730000 0x0 0x1000>;
590                                 enable-bit-index = <1>;
591                         };
592
593                         pmucmc@7e810000 {
594                                 compatible = "apm,xgene-pmu-mc";
595                                 reg = <0x0 0x7e810000 0x0 0x1000>;
596                                 enable-bit-index = <0>;
597                         };
598
599                         pmucmc@7e850000 {
600                                 compatible = "apm,xgene-pmu-mc";
601                                 reg = <0x0 0x7e850000 0x0 0x1000>;
602                                 enable-bit-index = <1>;
603                         };
604
605                         pmucmc@7e890000 {
606                                 compatible = "apm,xgene-pmu-mc";
607                                 reg = <0x0 0x7e890000 0x0 0x1000>;
608                                 enable-bit-index = <2>;
609                         };
610
611                         pmucmc@7e8d0000 {
612                                 compatible = "apm,xgene-pmu-mc";
613                                 reg = <0x0 0x7e8d0000 0x0 0x1000>;
614                                 enable-bit-index = <3>;
615                         };
616                 };
617
618                 pcie0: pcie@1f2b0000 {
619                         status = "disabled";
620                         device_type = "pci";
621                         compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
622                         #interrupt-cells = <1>;
623                         #size-cells = <2>;
624                         #address-cells = <3>;
625                         reg = < 0x00 0x1f2b0000 0x0 0x00010000   /* Controller registers */
626                                 0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */
627                         reg-names = "csr", "cfg";
628                         ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000   /* io */
629                                   0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000   /* mem */
630                                   0x43000000 0xf0 0x00000000 0xf0 0x00000000 0x10 0x00000000>; /* mem */
631                         dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
632                                       0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
633                         bus-range = <0x00 0xff>;
634                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
635                         interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x4
636                                          0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x4
637                                          0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x4
638                                          0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x4>;
639                         dma-coherent;
640                         clocks = <&pcie0clk 0>;
641                         msi-parent = <&msi>;
642                 };
643
644                 pcie1: pcie@1f2c0000 {
645                         status = "disabled";
646                         device_type = "pci";
647                         compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
648                         #interrupt-cells = <1>;
649                         #size-cells = <2>;
650                         #address-cells = <3>;
651                         reg = < 0x00 0x1f2c0000 0x0 0x00010000   /* Controller registers */
652                                 0xd0 0xd0000000 0x0 0x00040000>; /* PCI config space */
653                         reg-names = "csr", "cfg";
654                         ranges = <0x01000000 0x00 0x00000000 0xd0 0x10000000 0x00 0x00010000   /* io  */
655                                   0x02000000 0x00 0x80000000 0xd1 0x80000000 0x00 0x80000000   /* mem */
656                                   0x43000000 0xd8 0x00000000 0xd8 0x00000000 0x08 0x00000000>; /* mem */
657                         dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
658                                       0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
659                         bus-range = <0x00 0xff>;
660                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
661                         interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc8 0x4
662                                          0x0 0x0 0x0 0x2 &gic 0x0 0xc9 0x4
663                                          0x0 0x0 0x0 0x3 &gic 0x0 0xca 0x4
664                                          0x0 0x0 0x0 0x4 &gic 0x0 0xcb 0x4>;
665                         dma-coherent;
666                         clocks = <&pcie1clk 0>;
667                         msi-parent = <&msi>;
668                 };
669
670                 pcie2: pcie@1f2d0000 {
671                         status = "disabled";
672                         device_type = "pci";
673                         compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
674                         #interrupt-cells = <1>;
675                         #size-cells = <2>;
676                         #address-cells = <3>;
677                         reg =  < 0x00 0x1f2d0000 0x0 0x00010000   /* Controller registers */
678                                  0x90 0xd0000000 0x0 0x00040000>; /* PCI config space */
679                         reg-names = "csr", "cfg";
680                         ranges = <0x01000000 0x00 0x00000000 0x90 0x10000000 0x00 0x00010000   /* io  */
681                                   0x02000000 0x00 0x80000000 0x91 0x80000000 0x00 0x80000000   /* mem */
682                                   0x43000000 0x94 0x00000000 0x94 0x00000000 0x04 0x00000000>; /* mem */
683                         dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
684                                       0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
685                         bus-range = <0x00 0xff>;
686                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
687                         interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xce 0x4
688                                          0x0 0x0 0x0 0x2 &gic 0x0 0xcf 0x4
689                                          0x0 0x0 0x0 0x3 &gic 0x0 0xd0 0x4
690                                          0x0 0x0 0x0 0x4 &gic 0x0 0xd1 0x4>;
691                         dma-coherent;
692                         clocks = <&pcie2clk 0>;
693                         msi-parent = <&msi>;
694                 };
695
696                 pcie3: pcie@1f500000 {
697                         status = "disabled";
698                         device_type = "pci";
699                         compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
700                         #interrupt-cells = <1>;
701                         #size-cells = <2>;
702                         #address-cells = <3>;
703                         reg = < 0x00 0x1f500000 0x0 0x00010000   /* Controller registers */
704                                 0xa0 0xd0000000 0x0 0x00040000>; /* PCI config space */
705                         reg-names = "csr", "cfg";
706                         ranges = <0x01000000 0x00 0x00000000 0xa0 0x10000000 0x00 0x00010000   /* io  */
707                                   0x02000000 0x00 0x80000000 0xa1 0x80000000 0x00 0x80000000   /* mem */
708                                   0x43000000 0xb0 0x00000000 0xb0 0x00000000 0x10 0x00000000>; /* mem */
709                         dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
710                                       0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
711                         bus-range = <0x00 0xff>;
712                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
713                         interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xd4 0x4
714                                          0x0 0x0 0x0 0x2 &gic 0x0 0xd5 0x4
715                                          0x0 0x0 0x0 0x3 &gic 0x0 0xd6 0x4
716                                          0x0 0x0 0x0 0x4 &gic 0x0 0xd7 0x4>;
717                         dma-coherent;
718                         clocks = <&pcie3clk 0>;
719                         msi-parent = <&msi>;
720                 };
721
722                 pcie4: pcie@1f510000 {
723                         status = "disabled";
724                         device_type = "pci";
725                         compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
726                         #interrupt-cells = <1>;
727                         #size-cells = <2>;
728                         #address-cells = <3>;
729                         reg = < 0x00 0x1f510000 0x0 0x00010000   /* Controller registers */
730                                 0xc0 0xd0000000 0x0 0x00200000>; /* PCI config space */
731                         reg-names = "csr", "cfg";
732                         ranges = <0x01000000 0x00 0x00000000 0xc0 0x10000000 0x00 0x00010000   /* io  */
733                                   0x02000000 0x00 0x80000000 0xc1 0x80000000 0x00 0x80000000   /* mem */
734                                   0x43000000 0xc8 0x00000000 0xc8 0x00000000 0x08 0x00000000>; /* mem */
735                         dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
736                                       0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
737                         bus-range = <0x00 0xff>;
738                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
739                         interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xda 0x4
740                                          0x0 0x0 0x0 0x2 &gic 0x0 0xdb 0x4
741                                          0x0 0x0 0x0 0x3 &gic 0x0 0xdc 0x4
742                                          0x0 0x0 0x0 0x4 &gic 0x0 0xdd 0x4>;
743                         dma-coherent;
744                         clocks = <&pcie4clk 0>;
745                         msi-parent = <&msi>;
746                 };
747
748                 mailbox: mailbox@10540000 {
749                         compatible = "apm,xgene-slimpro-mbox";
750                         reg = <0x0 0x10540000 0x0 0xa000>;
751                         #mbox-cells = <1>;
752                         interrupts =    <0x0 0x0 0x4>,
753                                         <0x0 0x1 0x4>,
754                                         <0x0 0x2 0x4>,
755                                         <0x0 0x3 0x4>,
756                                         <0x0 0x4 0x4>,
757                                         <0x0 0x5 0x4>,
758                                         <0x0 0x6 0x4>,
759                                         <0x0 0x7 0x4>;
760                 };
761
762                 i2cslimpro {
763                         compatible = "apm,xgene-slimpro-i2c";
764                         mboxes = <&mailbox 0>;
765                 };
766
767                 hwmonslimpro {
768                         compatible = "apm,xgene-slimpro-hwmon";
769                         mboxes = <&mailbox 7>;
770                 };
771
772                 serial0: serial@1c020000 {
773                         status = "disabled";
774                         compatible = "ns16550a";
775                         reg = <0 0x1c020000 0x0 0x1000>;
776                         reg-shift = <2>;
777                         clock-frequency = <10000000>; /* Updated by bootloader */
778                         interrupt-parent = <&gic>;
779                         interrupts = <0x0 0x4c 0x4>;
780                 };
781
782                 serial1: serial@1c021000 {
783                         status = "disabled";
784                         compatible = "ns16550a";
785                         reg = <0 0x1c021000 0x0 0x1000>;
786                         reg-shift = <2>;
787                         clock-frequency = <10000000>; /* Updated by bootloader */
788                         interrupt-parent = <&gic>;
789                         interrupts = <0x0 0x4d 0x4>;
790                 };
791
792                 serial2: serial@1c022000 {
793                         status = "disabled";
794                         compatible = "ns16550a";
795                         reg = <0 0x1c022000 0x0 0x1000>;
796                         reg-shift = <2>;
797                         clock-frequency = <10000000>; /* Updated by bootloader */
798                         interrupt-parent = <&gic>;
799                         interrupts = <0x0 0x4e 0x4>;
800                 };
801
802                 serial3: serial@1c023000 {
803                         status = "disabled";
804                         compatible = "ns16550a";
805                         reg = <0 0x1c023000 0x0 0x1000>;
806                         reg-shift = <2>;
807                         clock-frequency = <10000000>; /* Updated by bootloader */
808                         interrupt-parent = <&gic>;
809                         interrupts = <0x0 0x4f 0x4>;
810                 };
811
812                 mmc0: mmc@1c000000 {
813                         compatible = "arasan,sdhci-4.9a";
814                         reg = <0x0 0x1c000000 0x0 0x100>;
815                         interrupts = <0x0 0x49 0x4>;
816                         dma-coherent;
817                         no-1-8-v;
818                         clock-names = "clk_xin", "clk_ahb";
819                         clocks = <&sdioclk 0>, <&ahbclk 0>;
820                 };
821
822                 gfcgpio: gpio0@1701c000 {
823                         compatible = "apm,xgene-gpio";
824                         reg = <0x0 0x1701c000 0x0 0x40>;
825                         gpio-controller;
826                         #gpio-cells = <2>;
827                 };
828
829                 dwgpio: gpio@1c024000 {
830                         compatible = "snps,dw-apb-gpio";
831                         reg = <0x0 0x1c024000 0x0 0x1000>;
832                         #address-cells = <1>;
833                         #size-cells = <0>;
834
835                         porta: gpio-controller@0 {
836                                 compatible = "snps,dw-apb-gpio-port";
837                                 gpio-controller;
838                                 #gpio-cells = <2>;
839                                 snps,nr-gpios = <32>;
840                                 reg = <0>;
841                         };
842                 };
843
844                 i2c0: i2c@10512000 {
845                         status = "disabled";
846                         #address-cells = <1>;
847                         #size-cells = <0>;
848                         compatible = "snps,designware-i2c";
849                         reg = <0x0 0x10512000 0x0 0x1000>;
850                         interrupts = <0 0x44 0x4>;
851                         #clock-cells = <1>;
852                         clocks = <&ahbclk 0>;
853                         bus_num = <0>;
854                 };
855
856                 phy1: phy@1f21a000 {
857                         compatible = "apm,xgene-phy";
858                         reg = <0x0 0x1f21a000 0x0 0x100>;
859                         #phy-cells = <1>;
860                         clocks = <&sataphy1clk 0>;
861                         status = "disabled";
862                         apm,tx-boost-gain = <30 30 30 30 30 30>;
863                         apm,tx-eye-tuning = <2 10 10 2 10 10>;
864                 };
865
866                 phy2: phy@1f22a000 {
867                         compatible = "apm,xgene-phy";
868                         reg = <0x0 0x1f22a000 0x0 0x100>;
869                         #phy-cells = <1>;
870                         clocks = <&sataphy2clk 0>;
871                         status = "okay";
872                         apm,tx-boost-gain = <30 30 30 30 30 30>;
873                         apm,tx-eye-tuning = <1 10 10 2 10 10>;
874                 };
875
876                 phy3: phy@1f23a000 {
877                         compatible = "apm,xgene-phy";
878                         reg = <0x0 0x1f23a000 0x0 0x100>;
879                         #phy-cells = <1>;
880                         clocks = <&sataphy3clk 0>;
881                         status = "okay";
882                         apm,tx-boost-gain = <31 31 31 31 31 31>;
883                         apm,tx-eye-tuning = <2 10 10 2 10 10>;
884                 };
885
886                 sata1: sata@1a000000 {
887                         compatible = "apm,xgene-ahci";
888                         reg = <0x0 0x1a000000 0x0 0x1000>,
889                               <0x0 0x1f210000 0x0 0x1000>,
890                               <0x0 0x1f21d000 0x0 0x1000>,
891                               <0x0 0x1f21e000 0x0 0x1000>,
892                               <0x0 0x1f217000 0x0 0x1000>;
893                         interrupts = <0x0 0x86 0x4>;
894                         dma-coherent;
895                         status = "disabled";
896                         clocks = <&sata01clk 0>;
897                         phys = <&phy1 0>;
898                         phy-names = "sata-phy";
899                 };
900
901                 sata2: sata@1a400000 {
902                         compatible = "apm,xgene-ahci";
903                         reg = <0x0 0x1a400000 0x0 0x1000>,
904                               <0x0 0x1f220000 0x0 0x1000>,
905                               <0x0 0x1f22d000 0x0 0x1000>,
906                               <0x0 0x1f22e000 0x0 0x1000>,
907                               <0x0 0x1f227000 0x0 0x1000>;
908                         interrupts = <0x0 0x87 0x4>;
909                         dma-coherent;
910                         status = "okay";
911                         clocks = <&sata23clk 0>;
912                         phys = <&phy2 0>;
913                         phy-names = "sata-phy";
914                 };
915
916                 sata3: sata@1a800000 {
917                         compatible = "apm,xgene-ahci";
918                         reg = <0x0 0x1a800000 0x0 0x1000>,
919                               <0x0 0x1f230000 0x0 0x1000>,
920                               <0x0 0x1f23d000 0x0 0x1000>,
921                               <0x0 0x1f23e000 0x0 0x1000>;
922                         interrupts = <0x0 0x88 0x4>;
923                         dma-coherent;
924                         status = "okay";
925                         clocks = <&sata45clk 0>;
926                         phys = <&phy3 0>;
927                         phy-names = "sata-phy";
928                 };
929
930                 /* Node-name might need to be coded as dwusb for backward compatibility */
931                 usb0: usb@19000000 {
932                         status = "disabled";
933                         compatible = "snps,dwc3";
934                         reg = <0x0 0x19000000 0x0 0x100000>;
935                         interrupts = <0x0 0x89 0x4>;
936                         dma-coherent;
937                         dr_mode = "host";
938                 };
939
940                 usb1: usb@19800000 {
941                         status = "disabled";
942                         compatible = "snps,dwc3";
943                         reg = <0x0 0x19800000 0x0 0x100000>;
944                         interrupts = <0x0 0x8a 0x4>;
945                         dma-coherent;
946                         dr_mode = "host";
947                 };
948
949                 sbgpio: gpio@17001000 {
950                         compatible = "apm,xgene-gpio-sb";
951                         reg = <0x0 0x17001000 0x0 0x400>;
952                         #gpio-cells = <2>;
953                         gpio-controller;
954                         interrupts =    <0x0 0x28 0x1>,
955                                         <0x0 0x29 0x1>,
956                                         <0x0 0x2a 0x1>,
957                                         <0x0 0x2b 0x1>,
958                                         <0x0 0x2c 0x1>,
959                                         <0x0 0x2d 0x1>;
960                         interrupt-parent = <&gic>;
961                         #interrupt-cells = <2>;
962                         interrupt-controller;
963                 };
964
965                 rtc: rtc@10510000 {
966                         compatible = "apm,xgene-rtc";
967                         reg = <0x0 0x10510000 0x0 0x400>;
968                         interrupts = <0x0 0x46 0x4>;
969                         #clock-cells = <1>;
970                         clocks = <&rtcclk 0>;
971                 };
972
973                 mdio: mdio@17020000 {
974                         compatible = "apm,xgene-mdio-rgmii";
975                         #address-cells = <1>;
976                         #size-cells = <0>;
977                         reg = <0x0 0x17020000 0x0 0xd100>;
978                         clocks = <&menetclk 0>;
979                 };
980
981                 menet: ethernet@17020000 {
982                         compatible = "apm,xgene-enet";
983                         status = "disabled";
984                         reg = <0x0 0x17020000 0x0 0xd100>,
985                               <0x0 0x17030000 0x0 0xc300>,
986                               <0x0 0x10000000 0x0 0x200>;
987                         reg-names = "enet_csr", "ring_csr", "ring_cmd";
988                         interrupts = <0x0 0x3c 0x4>;
989                         dma-coherent;
990                         clocks = <&menetclk 0>;
991                         /* mac address will be overwritten by the bootloader */
992                         local-mac-address = [00 00 00 00 00 00];
993                         phy-connection-type = "rgmii";
994                         phy-handle = <&menetphy>,<&menet0phy>;
995                         mdio {
996                                 compatible = "apm,xgene-mdio";
997                                 #address-cells = <1>;
998                                 #size-cells = <0>;
999                                 menetphy: menetphy@3 {
1000                                         compatible = "ethernet-phy-id001c.c915";
1001                                         reg = <0x3>;
1002                                 };
1003
1004                         };
1005                 };
1006
1007                 sgenet0: ethernet@1f210000 {
1008                         compatible = "apm,xgene1-sgenet";
1009                         status = "disabled";
1010                         reg = <0x0 0x1f210000 0x0 0xd100>,
1011                               <0x0 0x1f200000 0x0 0xc300>,
1012                               <0x0 0x1b000000 0x0 0x200>;
1013                         reg-names = "enet_csr", "ring_csr", "ring_cmd";
1014                         interrupts = <0x0 0xa0 0x4>,
1015                                      <0x0 0xa1 0x4>;
1016                         dma-coherent;
1017                         clocks = <&sge0clk 0>;
1018                         local-mac-address = [00 00 00 00 00 00];
1019                         phy-connection-type = "sgmii";
1020                         phy-handle = <&sgenet0phy>;
1021                 };
1022
1023                 sgenet1: ethernet@1f210030 {
1024                         compatible = "apm,xgene1-sgenet";
1025                         status = "disabled";
1026                         reg = <0x0 0x1f210030 0x0 0xd100>,
1027                               <0x0 0x1f200000 0x0 0xc300>,
1028                               <0x0 0x1b000000 0x0 0x8000>;
1029                         reg-names = "enet_csr", "ring_csr", "ring_cmd";
1030                         interrupts = <0x0 0xac 0x4>,
1031                                      <0x0 0xad 0x4>;
1032                         port-id = <1>;
1033                         dma-coherent;
1034                         local-mac-address = [00 00 00 00 00 00];
1035                         phy-connection-type = "sgmii";
1036                         phy-handle = <&sgenet1phy>;
1037                 };
1038
1039                 xgenet: ethernet@1f610000 {
1040                         compatible = "apm,xgene1-xgenet";
1041                         status = "disabled";
1042                         reg = <0x0 0x1f610000 0x0 0xd100>,
1043                               <0x0 0x1f600000 0x0 0xc300>,
1044                               <0x0 0x18000000 0x0 0x200>;
1045                         reg-names = "enet_csr", "ring_csr", "ring_cmd";
1046                         interrupts = <0x0 0x60 0x4>,
1047                                      <0x0 0x61 0x4>,
1048                                      <0x0 0x62 0x4>,
1049                                      <0x0 0x63 0x4>,
1050                                      <0x0 0x64 0x4>,
1051                                      <0x0 0x65 0x4>,
1052                                      <0x0 0x66 0x4>,
1053                                      <0x0 0x67 0x4>;
1054                         channel = <0>;
1055                         dma-coherent;
1056                         clocks = <&xge0clk 0>;
1057                         /* mac address will be overwritten by the bootloader */
1058                         local-mac-address = [00 00 00 00 00 00];
1059                         phy-connection-type = "xgmii";
1060                 };
1061
1062                 xgenet1: ethernet@1f620000 {
1063                         compatible = "apm,xgene1-xgenet";
1064                         status = "disabled";
1065                         reg = <0x0 0x1f620000 0x0 0xd100>,
1066                               <0x0 0x1f600000 0x0 0xc300>,
1067                               <0x0 0x18000000 0x0 0x8000>;
1068                         reg-names = "enet_csr", "ring_csr", "ring_cmd";
1069                         interrupts = <0x0 0x6c 0x4>,
1070                                      <0x0 0x6d 0x4>;
1071                         port-id = <1>;
1072                         dma-coherent;
1073                         clocks = <&xge1clk 0>;
1074                         /* mac address will be overwritten by the bootloader */
1075                         local-mac-address = [00 00 00 00 00 00];
1076                         phy-connection-type = "xgmii";
1077                 };
1078
1079                 rng: rng@10520000 {
1080                         compatible = "apm,xgene-rng";
1081                         reg = <0x0 0x10520000 0x0 0x100>;
1082                         interrupts = <0x0 0x41 0x4>;
1083                         clocks = <&rngpkaclk 0>;
1084                 };
1085
1086                 dma: dma@1f270000 {
1087                         compatible = "apm,xgene-storm-dma";
1088                         device_type = "dma";
1089                         reg = <0x0 0x1f270000 0x0 0x10000>,
1090                               <0x0 0x1f200000 0x0 0x10000>,
1091                               <0x0 0x1b000000 0x0 0x400000>,
1092                               <0x0 0x1054a000 0x0 0x100>;
1093                         interrupts = <0x0 0x82 0x4>,
1094                                      <0x0 0xb8 0x4>,
1095                                      <0x0 0xb9 0x4>,
1096                                      <0x0 0xba 0x4>,
1097                                      <0x0 0xbb 0x4>;
1098                         dma-coherent;
1099                         clocks = <&dmaclk 0>;
1100                 };
1101         };
1102 };