Linux-libre 5.4.48-gnu
[librecmc/linux-libre.git] / arch / powerpc / boot / dts / xpedite5370.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (C) 2008 Extreme Engineering Solutions, Inc.
4  * Based on MPC8572DS device tree from Freescale Semiconductor, Inc.
5  *
6  * XPedite5370 3U VPX single-board computer based on MPC8572E
7  */
8
9 /dts-v1/;
10 / {
11         model = "xes,xpedite5370";
12         compatible = "xes,xpedite5370", "xes,MPC8572";
13         #address-cells = <2>;
14         #size-cells = <2>;
15
16         aliases {
17                 ethernet0 = &enet0;
18                 ethernet1 = &enet1;
19                 serial0 = &serial0;
20                 serial1 = &serial1;
21                 pci1 = &pci1;
22                 pci2 = &pci2;
23         };
24
25         cpus {
26                 #address-cells = <1>;
27                 #size-cells = <0>;
28
29                 PowerPC,8572@0 {
30                         device_type = "cpu";
31                         reg = <0x0>;
32                         d-cache-line-size = <32>;       // 32 bytes
33                         i-cache-line-size = <32>;       // 32 bytes
34                         d-cache-size = <0x8000>;                // L1, 32K
35                         i-cache-size = <0x8000>;                // L1, 32K
36                         timebase-frequency = <0>;
37                         bus-frequency = <0>;
38                         clock-frequency = <0>;
39                         next-level-cache = <&L2>;
40                 };
41
42                 PowerPC,8572@1 {
43                         device_type = "cpu";
44                         reg = <0x1>;
45                         d-cache-line-size = <32>;       // 32 bytes
46                         i-cache-line-size = <32>;       // 32 bytes
47                         d-cache-size = <0x8000>;                // L1, 32K
48                         i-cache-size = <0x8000>;                // L1, 32K
49                         timebase-frequency = <0>;
50                         bus-frequency = <0>;
51                         clock-frequency = <0>;
52                         next-level-cache = <&L2>;
53                 };
54         };
55
56         memory {
57                 device_type = "memory";
58                 reg = <0x0 0x0 0x0 0x0>;        // Filled in by U-Boot
59         };
60
61         localbus@ef005000 {
62                 #address-cells = <2>;
63                 #size-cells = <1>;
64                 compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus";
65                 reg = <0 0xef005000 0 0x1000>;
66                 interrupts = <19 2>;
67                 interrupt-parent = <&mpic>;
68                 /* Local bus region mappings */
69                 ranges = <0 0 0 0xf8000000 0x8000000 /* CS0: Boot flash */
70                           1 0 0 0xf0000000 0x8000000 /* CS1: Alternate flash */
71                           2 0 0 0xef800000 0x40000   /* CS2: NAND CE1 */
72                           3 0 0 0xef840000 0x40000>; /* CS3: NAND CE2 */
73
74                 nor-boot@0,0 {
75                         compatible = "amd,s29gl01gp", "cfi-flash";
76                         bank-width = <2>;
77                         reg = <0 0 0x8000000>; /* 128MB */
78                         #address-cells = <1>;
79                         #size-cells = <1>;
80                         partition@0 {
81                                 label = "Primary user space";
82                                 reg = <0x00000000 0x6f00000>; /* 111 MB */
83                         };
84                         partition@6f00000 {
85                                 label = "Primary kernel";
86                                 reg = <0x6f00000 0x1000000>; /* 16 MB */
87                         };
88                         partition@7f00000 {
89                                 label = "Primary DTB";
90                                 reg = <0x7f00000 0x40000>; /* 256 KB */
91                         };
92                         partition@7f40000 {
93                                 label = "Primary U-Boot environment";
94                                 reg = <0x7f40000 0x40000>; /* 256 KB */
95                         };
96                         partition@7f80000 {
97                                 label = "Primary U-Boot";
98                                 reg = <0x7f80000 0x80000>; /* 512 KB */
99                                 read-only;
100                         };
101                 };
102
103                 nor-alternate@1,0 {
104                         compatible = "amd,s29gl01gp", "cfi-flash";
105                         bank-width = <2>;
106                         //reg = <0xf0000000 0x08000000>; /* 128MB */
107                         reg = <1 0 0x8000000>; /* 128MB */
108                         #address-cells = <1>;
109                         #size-cells = <1>;
110                         partition@0 {
111                                 label = "Secondary user space";
112                                 reg = <0x00000000 0x6f00000>; /* 111 MB */
113                         };
114                         partition@6f00000 {
115                                 label = "Secondary kernel";
116                                 reg = <0x6f00000 0x1000000>; /* 16 MB */
117                         };
118                         partition@7f00000 {
119                                 label = "Secondary DTB";
120                                 reg = <0x7f00000 0x40000>; /* 256 KB */
121                         };
122                         partition@7f40000 {
123                                 label = "Secondary U-Boot environment";
124                                 reg = <0x7f40000 0x40000>; /* 256 KB */
125                         };
126                         partition@7f80000 {
127                                 label = "Secondary U-Boot";
128                                 reg = <0x7f80000 0x80000>; /* 512 KB */
129                                 read-only;
130                         };
131                 };
132
133                 nand@2,0 {
134                         #address-cells = <1>;
135                         #size-cells = <1>;
136                         /*
137                          * Actual part could be ST Micro NAND08GW3B2A (1 GB),
138                          * Micron MT29F8G08DAA (2x 512 MB), or Micron
139                          * MT29F16G08FAA (2x 1 GB), depending on the build
140                          * configuration
141                          */
142                         compatible = "fsl,mpc8572-fcm-nand",
143                                      "fsl,elbc-fcm-nand";
144                         reg = <2 0 0x40000>;
145                         /* U-Boot should fix this up if chip size > 1 GB */
146                         partition@0 {
147                                 label = "NAND Filesystem";
148                                 reg = <0 0x40000000>;
149                         };
150                 };
151
152         };
153
154         soc8572@ef000000 {
155                 #address-cells = <1>;
156                 #size-cells = <1>;
157                 device_type = "soc";
158                 compatible = "fsl,mpc8572-immr", "simple-bus";
159                 ranges = <0x0 0 0xef000000 0x100000>;
160                 bus-frequency = <0>;            // Filled out by uboot.
161
162                 ecm-law@0 {
163                         compatible = "fsl,ecm-law";
164                         reg = <0x0 0x1000>;
165                         fsl,num-laws = <12>;
166                 };
167
168                 ecm@1000 {
169                         compatible = "fsl,mpc8572-ecm", "fsl,ecm";
170                         reg = <0x1000 0x1000>;
171                         interrupts = <17 2>;
172                         interrupt-parent = <&mpic>;
173                 };
174
175                 memory-controller@2000 {
176                         compatible = "fsl,mpc8572-memory-controller";
177                         reg = <0x2000 0x1000>;
178                         interrupt-parent = <&mpic>;
179                         interrupts = <18 2>;
180                 };
181
182                 memory-controller@6000 {
183                         compatible = "fsl,mpc8572-memory-controller";
184                         reg = <0x6000 0x1000>;
185                         interrupt-parent = <&mpic>;
186                         interrupts = <18 2>;
187                 };
188
189                 L2: l2-cache-controller@20000 {
190                         compatible = "fsl,mpc8572-l2-cache-controller";
191                         reg = <0x20000 0x1000>;
192                         cache-line-size = <32>; // 32 bytes
193                         cache-size = <0x100000>; // L2, 1M
194                         interrupt-parent = <&mpic>;
195                         interrupts = <16 2>;
196                 };
197
198                 i2c@3000 {
199                         #address-cells = <1>;
200                         #size-cells = <0>;
201                         cell-index = <0>;
202                         compatible = "fsl-i2c";
203                         reg = <0x3000 0x100>;
204                         interrupts = <43 2>;
205                         interrupt-parent = <&mpic>;
206                         dfsrr;
207
208                         temp-sensor@48 {
209                                 compatible = "dallas,ds1631", "dallas,ds1621";
210                                 reg = <0x48>;
211                         };
212
213                         temp-sensor@4c {
214                                 compatible = "adi,adt7461";
215                                 reg = <0x4c>;
216                         };
217
218                         cpu-supervisor@51 {
219                                 compatible = "dallas,ds4510";
220                                 reg = <0x51>;
221                         };
222
223                         eeprom@54 {
224                                 compatible = "atmel,at24c128b";
225                                 reg = <0x54>;
226                         };
227
228                         rtc@68 {
229                                 compatible = "st,m41t00",
230                                              "dallas,ds1338";
231                                 reg = <0x68>;
232                         };
233
234                         pcie-switch@70 {
235                                 compatible = "plx,pex8518";
236                                 reg = <0x70>;
237                         };
238
239                         gpio1: gpio@18 {
240                                 compatible = "nxp,pca9557";
241                                 reg = <0x18>;
242                                 #gpio-cells = <2>;
243                                 gpio-controller;
244                                 polarity = <0x00>;
245                         };
246
247                         gpio2: gpio@1c {
248                                 compatible = "nxp,pca9557";
249                                 reg = <0x1c>;
250                                 #gpio-cells = <2>;
251                                 gpio-controller;
252                                 polarity = <0x00>;
253                         };
254
255                         gpio3: gpio@1e {
256                                 compatible = "nxp,pca9557";
257                                 reg = <0x1e>;
258                                 #gpio-cells = <2>;
259                                 gpio-controller;
260                                 polarity = <0x00>;
261                         };
262
263                         gpio4: gpio@1f {
264                                 compatible = "nxp,pca9557";
265                                 reg = <0x1f>;
266                                 #gpio-cells = <2>;
267                                 gpio-controller;
268                                 polarity = <0x00>;
269                         };
270                 };
271
272                 i2c@3100 {
273                         #address-cells = <1>;
274                         #size-cells = <0>;
275                         cell-index = <1>;
276                         compatible = "fsl-i2c";
277                         reg = <0x3100 0x100>;
278                         interrupts = <43 2>;
279                         interrupt-parent = <&mpic>;
280                         dfsrr;
281                 };
282
283                 dma@c300 {
284                         #address-cells = <1>;
285                         #size-cells = <1>;
286                         compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
287                         reg = <0xc300 0x4>;
288                         ranges = <0x0 0xc100 0x200>;
289                         cell-index = <1>;
290                         dma-channel@0 {
291                                 compatible = "fsl,mpc8572-dma-channel",
292                                                 "fsl,eloplus-dma-channel";
293                                 reg = <0x0 0x80>;
294                                 cell-index = <0>;
295                                 interrupt-parent = <&mpic>;
296                                 interrupts = <76 2>;
297                         };
298                         dma-channel@80 {
299                                 compatible = "fsl,mpc8572-dma-channel",
300                                                 "fsl,eloplus-dma-channel";
301                                 reg = <0x80 0x80>;
302                                 cell-index = <1>;
303                                 interrupt-parent = <&mpic>;
304                                 interrupts = <77 2>;
305                         };
306                         dma-channel@100 {
307                                 compatible = "fsl,mpc8572-dma-channel",
308                                                 "fsl,eloplus-dma-channel";
309                                 reg = <0x100 0x80>;
310                                 cell-index = <2>;
311                                 interrupt-parent = <&mpic>;
312                                 interrupts = <78 2>;
313                         };
314                         dma-channel@180 {
315                                 compatible = "fsl,mpc8572-dma-channel",
316                                                 "fsl,eloplus-dma-channel";
317                                 reg = <0x180 0x80>;
318                                 cell-index = <3>;
319                                 interrupt-parent = <&mpic>;
320                                 interrupts = <79 2>;
321                         };
322                 };
323
324                 dma@21300 {
325                         #address-cells = <1>;
326                         #size-cells = <1>;
327                         compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
328                         reg = <0x21300 0x4>;
329                         ranges = <0x0 0x21100 0x200>;
330                         cell-index = <0>;
331                         dma-channel@0 {
332                                 compatible = "fsl,mpc8572-dma-channel",
333                                                 "fsl,eloplus-dma-channel";
334                                 reg = <0x0 0x80>;
335                                 cell-index = <0>;
336                                 interrupt-parent = <&mpic>;
337                                 interrupts = <20 2>;
338                         };
339                         dma-channel@80 {
340                                 compatible = "fsl,mpc8572-dma-channel",
341                                                 "fsl,eloplus-dma-channel";
342                                 reg = <0x80 0x80>;
343                                 cell-index = <1>;
344                                 interrupt-parent = <&mpic>;
345                                 interrupts = <21 2>;
346                         };
347                         dma-channel@100 {
348                                 compatible = "fsl,mpc8572-dma-channel",
349                                                 "fsl,eloplus-dma-channel";
350                                 reg = <0x100 0x80>;
351                                 cell-index = <2>;
352                                 interrupt-parent = <&mpic>;
353                                 interrupts = <22 2>;
354                         };
355                         dma-channel@180 {
356                                 compatible = "fsl,mpc8572-dma-channel",
357                                                 "fsl,eloplus-dma-channel";
358                                 reg = <0x180 0x80>;
359                                 cell-index = <3>;
360                                 interrupt-parent = <&mpic>;
361                                 interrupts = <23 2>;
362                         };
363                 };
364
365                 /* eTSEC 1 */
366                 enet0: ethernet@24000 {
367                         #address-cells = <1>;
368                         #size-cells = <1>;
369                         cell-index = <0>;
370                         device_type = "network";
371                         model = "eTSEC";
372                         compatible = "gianfar";
373                         reg = <0x24000 0x1000>;
374                         ranges = <0x0 0x24000 0x1000>;
375                         local-mac-address = [ 00 00 00 00 00 00 ];
376                         interrupts = <29 2 30 2 34 2>;
377                         interrupt-parent = <&mpic>;
378                         tbi-handle = <&tbi0>;
379                         phy-handle = <&phy0>;
380                         phy-connection-type = "sgmii";
381
382                         mdio@520 {
383                                 #address-cells = <1>;
384                                 #size-cells = <0>;
385                                 compatible = "fsl,gianfar-mdio";
386                                 reg = <0x520 0x20>;
387
388                                 phy0: ethernet-phy@1 {
389                                         interrupt-parent = <&mpic>;
390                                         interrupts = <8 1>;
391                                         reg = <0x1>;
392                                 };
393                                 phy1: ethernet-phy@2 {
394                                         interrupt-parent = <&mpic>;
395                                         interrupts = <8 1>;
396                                         reg = <0x2>;
397                                 };
398                                 tbi0: tbi-phy@11 {
399                                         reg = <0x11>;
400                                         device_type = "tbi-phy";
401                                 };
402                         };
403                 };
404
405                 /* eTSEC 2 */
406                 enet1: ethernet@25000 {
407                         #address-cells = <1>;
408                         #size-cells = <1>;
409                         cell-index = <1>;
410                         device_type = "network";
411                         model = "eTSEC";
412                         compatible = "gianfar";
413                         reg = <0x25000 0x1000>;
414                         ranges = <0x0 0x25000 0x1000>;
415                         local-mac-address = [ 00 00 00 00 00 00 ];
416                         interrupts = <35 2 36 2 40 2>;
417                         interrupt-parent = <&mpic>;
418                         tbi-handle = <&tbi1>;
419                         phy-handle = <&phy1>;
420                         phy-connection-type = "sgmii";
421
422                         mdio@520 {
423                                 #address-cells = <1>;
424                                 #size-cells = <0>;
425                                 compatible = "fsl,gianfar-tbi";
426                                 reg = <0x520 0x20>;
427
428                                 tbi1: tbi-phy@11 {
429                                         reg = <0x11>;
430                                         device_type = "tbi-phy";
431                                 };
432                         };
433                 };
434
435                 /* UART0 */
436                 serial0: serial@4500 {
437                         cell-index = <0>;
438                         device_type = "serial";
439                         compatible = "fsl,ns16550", "ns16550";
440                         reg = <0x4500 0x100>;
441                         clock-frequency = <0>;
442                         interrupts = <42 2>;
443                         interrupt-parent = <&mpic>;
444                 };
445
446                 /* UART1 */
447                 serial1: serial@4600 {
448                         cell-index = <1>;
449                         device_type = "serial";
450                         compatible = "fsl,ns16550", "ns16550";
451                         reg = <0x4600 0x100>;
452                         clock-frequency = <0>;
453                         interrupts = <42 2>;
454                         interrupt-parent = <&mpic>;
455                 };
456
457                 global-utilities@e0000 {        //global utilities block
458                         compatible = "fsl,mpc8572-guts";
459                         reg = <0xe0000 0x1000>;
460                         fsl,has-rstcr;
461                 };
462
463                 msi@41600 {
464                         compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
465                         reg = <0x41600 0x80>;
466                         msi-available-ranges = <0 0x100>;
467                         interrupts = <
468                                 0xe0 0
469                                 0xe1 0
470                                 0xe2 0
471                                 0xe3 0
472                                 0xe4 0
473                                 0xe5 0
474                                 0xe6 0
475                                 0xe7 0>;
476                         interrupt-parent = <&mpic>;
477                 };
478
479                 crypto@30000 {
480                         compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
481                                      "fsl,sec2.1", "fsl,sec2.0";
482                         reg = <0x30000 0x10000>;
483                         interrupts = <45 2 58 2>;
484                         interrupt-parent = <&mpic>;
485                         fsl,num-channels = <4>;
486                         fsl,channel-fifo-len = <24>;
487                         fsl,exec-units-mask = <0x9fe>;
488                         fsl,descriptor-types-mask = <0x3ab0ebf>;
489                 };
490
491                 mpic: pic@40000 {
492                         interrupt-controller;
493                         #address-cells = <0>;
494                         #interrupt-cells = <2>;
495                         reg = <0x40000 0x40000>;
496                         compatible = "chrp,open-pic";
497                         device_type = "open-pic";
498                 };
499
500                 gpio0: gpio@f000 {
501                         compatible = "fsl,mpc8572-gpio";
502                         reg = <0xf000 0x1000>;
503                         interrupts = <47 2>;
504                         interrupt-parent = <&mpic>;
505                         #gpio-cells = <2>;
506                         gpio-controller;
507                 };
508
509                 gpio-leds {
510                         compatible = "gpio-leds";
511
512                         heartbeat {
513                                 label = "Heartbeat";
514                                 gpios = <&gpio0 4 1>;
515                                 linux,default-trigger = "heartbeat";
516                         };
517
518                         yellow {
519                                 label = "Yellow";
520                                 gpios = <&gpio0 5 1>;
521                         };
522
523                         red {
524                                 label = "Red";
525                                 gpios = <&gpio0 6 1>;
526                         };
527
528                         green {
529                                 label = "Green";
530                                 gpios = <&gpio0 7 1>;
531                         };
532                 };
533
534                 /* PME (pattern-matcher) */
535                 pme@10000 {
536                         compatible = "fsl,mpc8572-pme", "pme8572";
537                         reg = <0x10000 0x5000>;
538                         interrupts = <57 2 64 2 65 2 66 2 67 2>;
539                         interrupt-parent = <&mpic>;
540                 };
541
542                 tlu@2f000 {
543                         compatible = "fsl,mpc8572-tlu", "fsl_tlu";
544                         reg = <0x2f000 0x1000>;
545                         interrupts = <61 2>;
546                         interrupt-parent = <&mpic>;
547                 };
548
549                 tlu@15000 {
550                         compatible = "fsl,mpc8572-tlu", "fsl_tlu";
551                         reg = <0x15000 0x1000>;
552                         interrupts = <75 2>;
553                         interrupt-parent = <&mpic>;
554                 };
555         };
556
557         /*
558          * PCI Express controller 3 @ ef008000 is not used.
559          * This would have been pci0 on other mpc85xx platforms.
560          */
561
562         /* PCI Express controller 2, wired to VPX P1,P2 backplane */
563         pci1: pcie@ef009000 {
564                 compatible = "fsl,mpc8548-pcie";
565                 device_type = "pci";
566                 #interrupt-cells = <1>;
567                 #size-cells = <2>;
568                 #address-cells = <3>;
569                 reg = <0 0xef009000 0 0x1000>;
570                 bus-range = <0 255>;
571                 ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x10000000
572                           0x1000000 0x0 0x00000000 0 0xe8800000 0x0 0x00010000>;
573                 clock-frequency = <33333333>;
574                 interrupt-parent = <&mpic>;
575                 interrupts = <25 2>;
576                 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
577                 interrupt-map = <
578                         /* IDSEL 0x0 */
579                         0x0 0x0 0x0 0x1 &mpic 0x4 0x1
580                         0x0 0x0 0x0 0x2 &mpic 0x5 0x1
581                         0x0 0x0 0x0 0x3 &mpic 0x6 0x1
582                         0x0 0x0 0x0 0x4 &mpic 0x7 0x1
583                         >;
584                 pcie@0 {
585                         reg = <0x00000000 0x00000000 0x00000000 0x00000000 0x00000000>;
586                         #size-cells = <2>;
587                         #address-cells = <3>;
588                         device_type = "pci";
589                         ranges = <0x2000000 0x0 0xc0000000
590                                   0x2000000 0x0 0xc0000000
591                                   0x0 0x10000000
592
593                                   0x1000000 0x0 0x0
594                                   0x1000000 0x0 0x0
595                                   0x0 0x100000>;
596                 };
597         };
598
599         /* PCI Express controller 1, wired to PEX8518 PCIe switch */
600         pci2: pcie@ef00a000 {
601                 compatible = "fsl,mpc8548-pcie";
602                 device_type = "pci";
603                 #interrupt-cells = <1>;
604                 #size-cells = <2>;
605                 #address-cells = <3>;
606                 reg = <0 0xef00a000 0 0x1000>;
607                 bus-range = <0 255>;
608                 ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x40000000
609                           0x1000000 0x0 0x00000000 0 0xe8000000 0x0 0x10000>;
610                 clock-frequency = <33333333>;
611                 interrupt-parent = <&mpic>;
612                 interrupts = <26 2>;
613                 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
614                 interrupt-map = <
615                         /* IDSEL 0x0 */
616                         0x0 0x0 0x0 0x1 &mpic 0x0 0x1
617                         0x0 0x0 0x0 0x2 &mpic 0x1 0x1
618                         0x0 0x0 0x0 0x3 &mpic 0x2 0x1
619                         0x0 0x0 0x0 0x4 &mpic 0x3 0x1
620                         >;
621                 pcie@0 {
622                         reg = <0x0 0x0 0x0 0x0 0x0>;
623                         #size-cells = <2>;
624                         #address-cells = <3>;
625                         device_type = "pci";
626                         ranges = <0x2000000 0x0 0x80000000
627                                   0x2000000 0x0 0x80000000
628                                   0x0 0x40000000
629
630                                   0x1000000 0x0 0x0
631                                   0x1000000 0x0 0x0
632                                   0x0 0x100000>;
633                 };
634         };
635 };