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