GNU Linux-libre 5.4.274-gnu1
[releases.git] / arch / powerpc / boot / dts / socrates.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Device Tree Source for the Socrates board (MPC8544).
4  *
5  * Copyright (c) 2008 Emcraft Systems.
6  * Sergei Poselenov, <sposelenov@emcraft.com>
7  */
8
9 /dts-v1/;
10
11 / {
12         model = "abb,socrates";
13         compatible = "abb,socrates";
14         #address-cells = <1>;
15         #size-cells = <1>;
16
17         aliases {
18                 ethernet0 = &enet0;
19                 ethernet1 = &enet1;
20                 serial0 = &serial0;
21                 serial1 = &serial1;
22                 pci0 = &pci0;
23         };
24
25         cpus {
26                 #address-cells = <1>;
27                 #size-cells = <0>;
28
29                 PowerPC,8544@0 {
30                         device_type = "cpu";
31                         reg = <0>;
32                         d-cache-line-size = <32>;
33                         i-cache-line-size = <32>;
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
43         memory {
44                 device_type = "memory";
45                 reg = <0x00000000 0x00000000>;  // Filled in by U-Boot
46         };
47
48         soc8544@e0000000 {
49                 #address-cells = <1>;
50                 #size-cells = <1>;
51                 device_type = "soc";
52
53                 ranges = <0x00000000 0xe0000000 0x00100000>;
54                 bus-frequency = <0>;            // Filled in by U-Boot
55                 compatible = "fsl,mpc8544-immr", "simple-bus";
56
57                 ecm-law@0 {
58                         compatible = "fsl,ecm-law";
59                         reg = <0x0 0x1000>;
60                         fsl,num-laws = <10>;
61                 };
62
63                 ecm@1000 {
64                         compatible = "fsl,mpc8544-ecm", "fsl,ecm";
65                         reg = <0x1000 0x1000>;
66                         interrupts = <17 2>;
67                         interrupt-parent = <&mpic>;
68                 };
69
70                 memory-controller@2000 {
71                         compatible = "fsl,mpc8544-memory-controller";
72                         reg = <0x2000 0x1000>;
73                         interrupt-parent = <&mpic>;
74                         interrupts = <18 2>;
75                 };
76
77                 L2: l2-cache-controller@20000 {
78                         compatible = "fsl,mpc8544-l2-cache-controller";
79                         reg = <0x20000 0x1000>;
80                         cache-line-size = <32>;
81                         cache-size = <0x40000>; // L2, 256K
82                         interrupt-parent = <&mpic>;
83                         interrupts = <16 2>;
84                 };
85
86                 i2c@3000 {
87                         #address-cells = <1>;
88                         #size-cells = <0>;
89                         cell-index = <0>;
90                         compatible = "fsl,mpc8544-i2c", "fsl-i2c";
91                         reg = <0x3000 0x100>;
92                         interrupts = <43 2>;
93                         interrupt-parent = <&mpic>;
94                         fsl,preserve-clocking;
95
96                         dtt@28 {
97                                 compatible = "winbond,w83782d";
98                                 reg = <0x28>;
99                         };
100                         rtc@32 {
101                                 compatible = "epson,rx8025";
102                                 reg = <0x32>;
103                                 interrupts = <7 1>;
104                                 interrupt-parent = <&mpic>;
105                         };
106                         dtt@4c {
107                                 compatible = "dallas,ds75";
108                                 reg = <0x4c>;
109                         };
110                         ts@4a {
111                                 compatible = "ti,tsc2003";
112                                 reg = <0x4a>;
113                                 interrupt-parent = <&mpic>;
114                                 interrupts = <8 1>;
115                         };
116                 };
117
118                 i2c@3100 {
119                         #address-cells = <1>;
120                         #size-cells = <0>;
121                         cell-index = <1>;
122                         compatible = "fsl,mpc8544-i2c", "fsl-i2c";
123                         reg = <0x3100 0x100>;
124                         interrupts = <43 2>;
125                         interrupt-parent = <&mpic>;
126                         fsl,preserve-clocking;
127                 };
128
129                 enet0: ethernet@24000 {
130                         #address-cells = <1>;
131                         #size-cells = <1>;
132                         cell-index = <0>;
133                         device_type = "network";
134                         model = "eTSEC";
135                         compatible = "gianfar";
136                         reg = <0x24000 0x1000>;
137                         ranges = <0x0 0x24000 0x1000>;
138                         local-mac-address = [ 00 00 00 00 00 00 ];
139                         interrupts = <29 2 30 2 34 2>;
140                         interrupt-parent = <&mpic>;
141                         phy-handle = <&phy0>;
142                         tbi-handle = <&tbi0>;
143                         phy-connection-type = "rgmii-id";
144
145                         mdio@520 {
146                                 #address-cells = <1>;
147                                 #size-cells = <0>;
148                                 compatible = "fsl,gianfar-mdio";
149                                 reg = <0x520 0x20>;
150
151                                 phy0: ethernet-phy@0 {
152                                         interrupt-parent = <&mpic>;
153                                         interrupts = <0 1>;
154                                         reg = <0>;
155                                 };
156                                 phy1: ethernet-phy@1 {
157                                         interrupt-parent = <&mpic>;
158                                         interrupts = <0 1>;
159                                         reg = <1>;
160                                 };
161                                 tbi0: tbi-phy@11 {
162                                         reg = <0x11>;
163                                 };
164                         };
165                 };
166
167                 enet1: ethernet@26000 {
168                         #address-cells = <1>;
169                         #size-cells = <1>;
170                         cell-index = <1>;
171                         device_type = "network";
172                         model = "eTSEC";
173                         compatible = "gianfar";
174                         reg = <0x26000 0x1000>;
175                         ranges = <0x0 0x26000 0x1000>;
176                         local-mac-address = [ 00 00 00 00 00 00 ];
177                         interrupts = <31 2 32 2 33 2>;
178                         interrupt-parent = <&mpic>;
179                         phy-handle = <&phy1>;
180                         tbi-handle = <&tbi1>;
181                         phy-connection-type = "rgmii-id";
182
183                         mdio@520 {
184                                 #address-cells = <1>;
185                                 #size-cells = <0>;
186                                 compatible = "fsl,gianfar-tbi";
187                                 reg = <0x520 0x20>;
188
189                                 tbi1: tbi-phy@11 {
190                                         reg = <0x11>;
191                                 };
192                         };
193                 };
194
195                 serial0: serial@4500 {
196                         cell-index = <0>;
197                         device_type = "serial";
198                         compatible = "fsl,ns16550", "ns16550";
199                         reg = <0x4500 0x100>;
200                         clock-frequency = <0>;
201                         interrupts = <42 2>;
202                         interrupt-parent = <&mpic>;
203                 };
204
205                 serial1: serial@4600 {
206                         cell-index = <1>;
207                         device_type = "serial";
208                         compatible = "fsl,ns16550", "ns16550";
209                         reg = <0x4600 0x100>;
210                         clock-frequency = <0>;
211                         interrupts = <42 2>;
212                         interrupt-parent = <&mpic>;
213                 };
214
215                 global-utilities@e0000 {        //global utilities block
216                         compatible = "fsl,mpc8548-guts";
217                         reg = <0xe0000 0x1000>;
218                         fsl,has-rstcr;
219                 };
220
221                 mpic: pic@40000 {
222                         interrupt-controller;
223                         #address-cells = <0>;
224                         #interrupt-cells = <2>;
225                         reg = <0x40000 0x40000>;
226                         compatible = "chrp,open-pic";
227                         device_type = "open-pic";
228                 };
229         };
230
231
232         localbus {
233                 compatible = "fsl,mpc8544-localbus",
234                              "fsl,pq3-localbus",
235                              "simple-bus";
236                 #address-cells = <2>;
237                 #size-cells = <1>;
238                 reg = <0xe0005000 0x40>;
239                 interrupt-parent = <&mpic>;
240                 interrupts = <19 2>;
241
242                 ranges = <0 0 0xfc000000 0x04000000
243                           2 0 0xc8000000 0x04000000
244                           3 0 0xc0000000 0x00100000
245                         >; /* Overwritten by U-Boot */
246
247                 nor_flash@0,0 {
248                         compatible = "amd,s29gl256n", "cfi-flash";
249                         bank-width = <2>;
250                         reg = <0x0 0x000000 0x4000000>;
251                         #address-cells = <1>;
252                         #size-cells = <1>;
253                         partition@0 {
254                                 label = "kernel";
255                                 reg = <0x0 0x1e0000>;
256                                 read-only;
257                         };
258                         partition@1e0000 {
259                                 label = "dtb";
260                                 reg = <0x1e0000 0x20000>;
261                         };
262                         partition@200000 {
263                                 label = "root";
264                                 reg = <0x200000 0x200000>;
265                         };
266                         partition@400000 {
267                                 label = "user";
268                                 reg = <0x400000 0x3b80000>;
269                         };
270                         partition@3f80000 {
271                                 label = "env";
272                                 reg = <0x3f80000 0x40000>;
273                                 read-only;
274                         };
275                         partition@3fc0000 {
276                                 label = "u-boot";
277                                 reg = <0x3fc0000 0x40000>;
278                                 read-only;
279                         };
280                 };
281
282                 display@2,0 {
283                         compatible = "fujitsu,lime";
284                         reg = <2 0x0 0x4000000>;
285                         interrupt-parent = <&mpic>;
286                         interrupts = <6 1>;
287                 };
288
289                 fpga_pic: fpga-pic@3,10 {
290                         compatible = "abb,socrates-fpga-pic";
291                         reg = <3 0x10 0x10>;
292                         interrupt-controller;
293                         /* IRQs 2, 10, 11, active low, level-sensitive */
294                         interrupts = <2 1 10 1 11 1>;
295                         interrupt-parent = <&mpic>;
296                         #interrupt-cells = <3>;
297                 };
298
299                 spi@3,60 {
300                         compatible = "abb,socrates-spi";
301                         reg = <3 0x60 0x10>;
302                         interrupts = <8 4 0>;   // number, type, routing
303                         interrupt-parent = <&fpga_pic>;
304                 };
305
306                 nand@3,70 {
307                         compatible = "abb,socrates-nand";
308                         reg = <3 0x70 0x04>;
309                         bank-width = <1>;
310                         #address-cells = <1>;
311                         #size-cells = <1>;
312                         data@0 {
313                                 label = "data";
314                                 reg = <0x0 0x40000000>;
315                         };
316                 };
317
318                 can@3,100 {
319                         compatible = "philips,sja1000";
320                         reg = <3 0x100 0x80>;
321                         interrupts = <2 8 1>;   // number, type, routing
322                         interrupt-parent = <&fpga_pic>;
323                 };
324         };
325
326         pci0: pci@e0008000 {
327                 #interrupt-cells = <1>;
328                 #size-cells = <2>;
329                 #address-cells = <3>;
330                 compatible = "fsl,mpc8540-pci";
331                 device_type = "pci";
332                 reg = <0xe0008000 0x1000>;
333                 clock-frequency = <66666666>;
334
335                 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
336                 interrupt-map = <
337                                 /* IDSEL 0x11 */
338                                  0x8800 0x0 0x0 1 &mpic 5 1
339                                 /* IDSEL 0x12 */
340                                  0x9000 0x0 0x0 1 &mpic 4 1>;
341                 interrupt-parent = <&mpic>;
342                 interrupts = <24 2>;
343                 bus-range = <0x0 0x0>;
344                 ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000
345                           0x01000000 0x0 0x00000000 0xe2000000 0x0 0x01000000>;
346         };
347
348 };