~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/scripts/dtc/include-prefixes/powerpc/akebono.dts

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Device Tree Source for IBM Embedded PPC 476 Platform
  3  *
  4  * Copyright © 2013 Tony Breeds IBM Corporation
  5  * Copyright © 2013 Alistair Popple IBM Corporation
  6  *
  7  * This file is licensed under the terms of the GNU General Public
  8  * License version 2.  This program is licensed "as is" without
  9  * any warranty of any kind, whether express or implied.
 10  */
 11 
 12 /dts-v1/;
 13 
 14 /memreserve/ 0x01f00000 0x00100000;     // spin table
 15 
 16 / {
 17         #address-cells = <2>;
 18         #size-cells = <2>;
 19         model = "ibm,akebono";
 20         compatible = "ibm,akebono", "ibm,476gtr";
 21         dcr-parent = <&{/cpus/cpu@0}>;
 22 
 23         aliases {
 24                 serial0 = &UART0;
 25         };
 26 
 27         cpus {
 28                 #address-cells = <1>;
 29                 #size-cells = <0>;
 30 
 31                 cpu@0 {
 32                         device_type = "cpu";
 33                         model = "PowerPC,476";
 34                         reg = <0>;
 35                         clock-frequency = <1600000000>; // 1.6 GHz
 36                         timebase-frequency = <100000000>; // 100Mhz
 37                         i-cache-line-size = <32>;
 38                         d-cache-line-size = <32>;
 39                         i-cache-size = <32768>;
 40                         d-cache-size = <32768>;
 41                         dcr-controller;
 42                         dcr-access-method = "native";
 43                         status = "okay";
 44                 };
 45                 cpu@1 {
 46                         device_type = "cpu";
 47                         model = "PowerPC,476";
 48                         reg = <1>;
 49                         clock-frequency = <1600000000>; // 1.6 GHz
 50                         timebase-frequency = <100000000>; // 100Mhz
 51                         i-cache-line-size = <32>;
 52                         d-cache-line-size = <32>;
 53                         i-cache-size = <32768>;
 54                         d-cache-size = <32768>;
 55                         dcr-controller;
 56                         dcr-access-method = "native";
 57                         status = "disabled";
 58                         enable-method = "spin-table";
 59                         cpu-release-addr = <0x0 0x01f00000>;
 60                 };
 61         };
 62 
 63         memory {
 64                 device_type = "memory";
 65                 reg = <0x0 0x0 0x0 0x0>; // filled in by zImage
 66         };
 67 
 68         MPIC: interrupt-controller {
 69                 compatible = "chrp,open-pic";
 70                 interrupt-controller;
 71                 dcr-reg = <0xffc00000 0x00040000>;
 72                 #address-cells = <0>;
 73                 #size-cells = <0>;
 74                 #interrupt-cells = <2>;
 75                 single-cpu-affinity;
 76         };
 77 
 78         plb {
 79                 compatible = "ibm,plb6";
 80                 #address-cells = <2>;
 81                 #size-cells = <2>;
 82                 ranges;
 83                 clock-frequency = <200000000>; // 200Mhz
 84 
 85                 HSTA0: hsta@310000e0000 {
 86                         compatible = "ibm,476gtr-hsta-msi", "ibm,hsta-msi";
 87                         reg = <0x310 0x000e0000 0x0 0xf0>;
 88                         interrupt-parent = <&MPIC>;
 89                         interrupts = <108 0
 90                                       109 0
 91                                       110 0
 92                                       111 0
 93                                       112 0
 94                                       113 0
 95                                       114 0
 96                                       115 0
 97                                       116 0
 98                                       117 0
 99                                       118 0
100                                       119 0
101                                       120 0
102                                       121 0
103                                       122 0
104                                       123 0>;
105                 };
106 
107                 MAL0: mcmal {
108                         compatible = "ibm,mcmal-476gtr", "ibm,mcmal2";
109                         dcr-reg = <0xc0000000 0x062>;
110                         num-tx-chans = <1>;
111                         num-rx-chans = <1>;
112                         #address-cells = <0>;
113                         #size-cells = <0>;
114                         interrupt-parent = <&MPIC>;
115                         interrupts = <  /*TXEOB*/ 77 0x4
116                                         /*RXEOB*/ 78 0x4
117                                         /*SERR*/  76 0x4
118                                         /*TXDE*/  79 0x4
119                                         /*RXDE*/  80 0x4>;
120                 };
121 
122                 SATA0: sata@30000010000 {
123                         compatible = "ibm,476gtr-ahci";
124                         reg = <0x300 0x00010000 0x0 0x10000>;
125                         interrupt-parent = <&MPIC>;
126                         interrupts = <93 2>;
127                 };
128 
129                 EHCI0: usb@30010000000 {
130                         compatible = "ibm,476gtr-ehci", "generic-ehci";
131                         reg = <0x300 0x10000000 0x0 0x10000>;
132                         interrupt-parent = <&MPIC>;
133                         interrupts = <85 2>;
134                 };
135 
136                 SD0: sd@30000000000 {
137                         compatible = "ibm,476gtr-sdhci", "generic-sdhci";
138                         reg = <0x300 0x00000000 0x0 0x10000>;
139                         interrupts = <91 2>;
140                         interrupt-parent = <&MPIC>;
141                 };
142 
143                 OHCI0: usb@30010010000 {
144                         compatible = "ibm,476gtr-ohci", "generic-ohci";
145                         reg = <0x300 0x10010000 0x0 0x10000>;
146                         interrupt-parent = <&MPIC>;
147                         interrupts = <89 1>;
148                         };
149 
150                 OHCI1: usb@30010020000 {
151                         compatible = "ibm,476gtr-ohci", "generic-ohci";
152                         reg = <0x300 0x10020000 0x0 0x10000>;
153                         interrupt-parent = <&MPIC>;
154                         interrupts = <88 1>;
155                         };
156 
157                 POB0: opb {
158                         compatible = "ibm,opb-4xx", "ibm,opb";
159                         #address-cells = <1>;
160                         #size-cells = <1>;
161                         /* Wish there was a nicer way of specifying a full
162                          * 32-bit range
163                          */
164                         ranges = <0x00000000 0x0000033f 0x00000000 0x80000000
165                                   0x80000000 0x0000033f 0x80000000 0x80000000>;
166                         clock-frequency = <100000000>;
167 
168                         RGMII0: emac-rgmii-wol@50004 {
169                                 compatible = "ibm,rgmii-wol-476gtr", "ibm,rgmii-wol";
170                                 reg = <0x50004 0x00000008>;
171                                 has-mdio;
172                         };
173 
174                         EMAC0: ethernet@30000 {
175                                 device_type = "network";
176                                 compatible = "ibm,emac-476gtr", "ibm,emac4sync";
177                                 interrupt-parent = <&EMAC0>;
178                                 interrupts = <0x0 0x1>;
179                                 #interrupt-cells = <1>;
180                                 #address-cells = <0>;
181                                 #size-cells = <0>;
182                                 interrupt-map = </*Status*/ 0x0 &MPIC 81 0x4
183                                                  /*Wake*/   0x1 &MPIC 82 0x4>;
184                                 reg = <0x30000 0x78>;
185 
186                                 /* local-mac-address will normally be added by
187                                  * the wrapper. If your device doesn't support
188                                  * passing data to the wrapper (in the form
189                                  * local-mac-addr=<hwaddr>) then you will need
190                                  * to set it manually here. */
191                                 //local-mac-address = [000000000000];
192 
193                                 mal-device = <&MAL0>;
194                                 mal-tx-channel = <0>;
195                                 mal-rx-channel = <0>;
196                                 cell-index = <0>;
197                                 max-frame-size = <9000>;
198                                 rx-fifo-size = <4096>;
199                                 tx-fifo-size = <2048>;
200                                 rx-fifo-size-gige = <16384>;
201                                 phy-mode = "rgmii";
202                                 phy-map = <0x00000000>;
203                                 rgmii-wol-device = <&RGMII0>;
204                                 has-inverted-stacr-oc;
205                                 has-new-stacr-staopc;
206                         };
207 
208                         UART0: serial@10000 {
209                                 device_type = "serial";
210                                 compatible = "ns16750", "ns16550";
211                                 reg = <0x10000 0x00000008>;
212                                 virtual-reg = <0xe8010000>;
213                                 clock-frequency = <1851851>;
214                                 current-speed = <38400>;
215                                 interrupt-parent = <&MPIC>;
216                                 interrupts = <39 2>;
217                         };
218 
219                         IIC0: i2c@0 {
220                                 compatible = "ibm,iic-476gtr", "ibm,iic";
221                                 reg = <0x0 0x00000020>;
222                                 interrupt-parent = <&MPIC>;
223                                 interrupts = <37 2>;
224                                 #address-cells = <1>;
225                                 #size-cells = <0>;
226                                 rtc@68 {
227                                         compatible = "st,m41t80", "m41st85";
228                                         reg = <0x68>;
229                                 };
230                         };
231 
232                         IIC1: i2c@100 {
233                                 compatible = "ibm,iic-476gtr", "ibm,iic";
234                                 reg = <0x100 0x00000020>;
235                                 interrupt-parent = <&MPIC>;
236                                 interrupts = <38 2>;
237                                 #address-cells = <1>;
238                                 #size-cells = <0>;
239                                 avr@58 {
240                                         compatible = "ibm,akebono-avr";
241                                         reg = <0x58>;
242                                 };
243                         };
244 
245                         FPGA0: fpga@ebc00000 {
246                                 compatible = "ibm,akebono-fpga";
247                                 reg = <0xebc00000 0x8>;
248                         };
249                 };
250 
251                 PCIE0: pcie@10100000000 {
252                         device_type = "pci";
253                         #interrupt-cells = <1>;
254                         #size-cells = <2>;
255                         #address-cells = <3>;
256                         compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex";
257                         primary;
258                         port = <0x0>; /* port number */
259                         reg = <0x00000101 0x00000000 0x0 0x10000000            /* Config space access */
260                                0x00000100 0x00000000 0x0 0x00001000>;   /* UTL Registers space access */
261                         dcr-reg = <0xc0 0x20>;
262 
263 //                                pci_space  < pci_addr          > < cpu_addr          > < size       >
264                         ranges = <0x02000000 0x00000000 0x80000000 0x00000110 0x80000000 0x0 0x80000000
265                                   0x01000000 0x0        0x0        0x00000140 0x0        0x0 0x00010000>;
266 
267                         /* Inbound starting at 0x0 to 0x40000000000. In order to use MSI
268                          * PCI devices must be able to write to the HSTA module.
269                          */
270                         dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x400 0x0>;
271 
272                         /* This drives busses 0 to 0xf */
273                         bus-range = <0x0 0xf>;
274 
275                         /* Legacy interrupts (note the weird polarity, the bridge seems
276                          * to invert PCIe legacy interrupts).
277                          * We are de-swizzling here because the numbers are actually for
278                          * port of the root complex virtual P2P bridge. But I want
279                          * to avoid putting a node for it in the tree, so the numbers
280                          * below are basically de-swizzled numbers.
281                          * The real slot is on idsel 0, so the swizzling is 1:1
282                          */
283                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
284                         interrupt-map = <
285                                 0x0 0x0 0x0 0x1 &MPIC 45 0x2 /* int A */
286                                 0x0 0x0 0x0 0x2 &MPIC 46 0x2 /* int B */
287                                 0x0 0x0 0x0 0x3 &MPIC 47 0x2 /* int C */
288                                 0x0 0x0 0x0 0x4 &MPIC 48 0x2 /* int D */>;
289                 };
290 
291                 PCIE1: pcie@20100000000 {
292                         device_type = "pci";
293                         #interrupt-cells = <1>;
294                         #size-cells = <2>;
295                         #address-cells = <3>;
296                         compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex";
297                         primary;
298                         port = <0x1>; /* port number */
299                         reg = <0x00000201 0x00000000 0x0 0x10000000            /* Config space access */
300                                0x00000200 0x00000000 0x0 0x00001000>;   /* UTL Registers space access */
301                         dcr-reg = <0x100 0x20>;
302 
303 //                                pci_space  < pci_addr          > < cpu_addr          > < size       >
304                         ranges = <0x02000000 0x00000000 0x80000000 0x00000210 0x80000000 0x0 0x80000000
305                                   0x01000000 0x0        0x0        0x00000240 0x0        0x0 0x00010000>;
306 
307                         /* Inbound starting at 0x0 to 0x40000000000. In order to use MSI
308                          * PCI devices must be able to write to the HSTA module.
309                          */
310                         dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x400 0x0>;
311 
312                         /* This drives busses 0 to 0xf */
313                         bus-range = <0x0 0xf>;
314 
315                         /* Legacy interrupts (note the weird polarity, the bridge seems
316                          * to invert PCIe legacy interrupts).
317                          * We are de-swizzling here because the numbers are actually for
318                          * port of the root complex virtual P2P bridge. But I want
319                          * to avoid putting a node for it in the tree, so the numbers
320                          * below are basically de-swizzled numbers.
321                          * The real slot is on idsel 0, so the swizzling is 1:1
322                          */
323                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
324                         interrupt-map = <
325                                 0x0 0x0 0x0 0x1 &MPIC 53 0x2 /* int A */
326                                 0x0 0x0 0x0 0x2 &MPIC 54 0x2 /* int B */
327                                 0x0 0x0 0x0 0x3 &MPIC 55 0x2 /* int C */
328                                 0x0 0x0 0x0 0x4 &MPIC 56 0x2 /* int D */>;
329                 };
330 
331                 PCIE2: pcie@18100000000 {
332                         device_type = "pci";
333                         #interrupt-cells = <1>;
334                         #size-cells = <2>;
335                         #address-cells = <3>;
336                         compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex";
337                         primary;
338                         port = <0x2>; /* port number */
339                         reg = <0x00000181 0x00000000 0x0 0x10000000            /* Config space access */
340                                0x00000180 0x00000000 0x0 0x00001000>;   /* UTL Registers space access */
341                         dcr-reg = <0xe0 0x20>;
342 
343 //                                pci_space  < pci_addr          > < cpu_addr          > < size       >
344                         ranges = <0x02000000 0x00000000 0x80000000 0x00000190 0x80000000 0x0 0x80000000
345                                   0x01000000 0x0        0x0        0x000001c0 0x0        0x0 0x00010000>;
346 
347                         /* Inbound starting at 0x0 to 0x40000000000. In order to use MSI
348                          * PCI devices must be able to write to the HSTA module.
349                          */
350                         dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x400 0x0>;
351 
352                         /* This drives busses 0 to 0xf */
353                         bus-range = <0x0 0xf>;
354 
355                         /* Legacy interrupts (note the weird polarity, the bridge seems
356                          * to invert PCIe legacy interrupts).
357                          * We are de-swizzling here because the numbers are actually for
358                          * port of the root complex virtual P2P bridge. But I want
359                          * to avoid putting a node for it in the tree, so the numbers
360                          * below are basically de-swizzled numbers.
361                          * The real slot is on idsel 0, so the swizzling is 1:1
362                          */
363                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
364                         interrupt-map = <
365                                 0x0 0x0 0x0 0x1 &MPIC 61 0x2 /* int A */
366                                 0x0 0x0 0x0 0x2 &MPIC 62 0x2 /* int B */
367                                 0x0 0x0 0x0 0x3 &MPIC 63 0x2 /* int C */
368                                 0x0 0x0 0x0 0x4 &MPIC 64 0x2 /* int D */>;
369                 };
370 
371                 PCIE3: pcie@28100000000 {
372                         device_type = "pci";
373                         #interrupt-cells = <1>;
374                         #size-cells = <2>;
375                         #address-cells = <3>;
376                         compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex";
377                         primary;
378                         port = <0x3>; /* port number */
379                         reg = <0x00000281 0x00000000 0x0 0x10000000            /* Config space access */
380                                0x00000280 0x00000000 0x0 0x00001000>;   /* UTL Registers space access */
381                         dcr-reg = <0x120 0x20>;
382 
383 //                                pci_space  < pci_addr          > < cpu_addr          > < size       >
384                         ranges = <0x02000000 0x00000000 0x80000000 0x00000290 0x80000000 0x0 0x80000000
385                                   0x01000000 0x0        0x0        0x000002c0 0x0        0x0 0x00010000>;
386 
387                         /* Inbound starting at 0x0 to 0x40000000000. In order to use MSI
388                          * PCI devices must be able to write to the HSTA module.
389                          */
390                         dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x400 0x0>;
391 
392                         /* This drives busses 0 to 0xf */
393                         bus-range = <0x0 0xf>;
394 
395                         /* Legacy interrupts (note the weird polarity, the bridge seems
396                          * to invert PCIe legacy interrupts).
397                          * We are de-swizzling here because the numbers are actually for
398                          * port of the root complex virtual P2P bridge. But I want
399                          * to avoid putting a node for it in the tree, so the numbers
400                          * below are basically de-swizzled numbers.
401                          * The real slot is on idsel 0, so the swizzling is 1:1
402                          */
403                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
404                         interrupt-map = <
405                                 0x0 0x0 0x0 0x1 &MPIC 69 0x2 /* int A */
406                                 0x0 0x0 0x0 0x2 &MPIC 70 0x2 /* int B */
407                                 0x0 0x0 0x0 0x3 &MPIC 71 0x2 /* int C */
408                                 0x0 0x0 0x0 0x4 &MPIC 72 0x2 /* int D */>;
409                 };
410         };
411 
412         chosen {
413                 stdout-path = &UART0;
414         };
415 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php