Linux Audio

Check our new training course

Linux kernel drivers training

May 6-19, 2025
Register
Loading...
v5.4
  1// SPDX-License-Identifier: GPL-2.0-or-later
  2/*
  3 * SBC8548 Device Tree Source
  4 *
  5 * Copyright 2007 Wind River Systems Inc.
  6 *
  7 * Paul Gortmaker (see MAINTAINERS for contact information)
 
 
 
 
 
  8 */
  9
 10/{
 11	soc8548@e0000000 {
 12		#address-cells = <1>;
 13		#size-cells = <1>;
 14		device_type = "soc";
 15		ranges = <0x00000000 0xe0000000 0x00100000>;
 16		bus-frequency = <0>;
 17		compatible = "simple-bus";
 18
 19		ecm-law@0 {
 20			compatible = "fsl,ecm-law";
 21			reg = <0x0 0x1000>;
 22			fsl,num-laws = <10>;
 23		};
 24
 25		ecm@1000 {
 26			compatible = "fsl,mpc8548-ecm", "fsl,ecm";
 27			reg = <0x1000 0x1000>;
 28			interrupts = <17 2>;
 29			interrupt-parent = <&mpic>;
 30		};
 31
 32		memory-controller@2000 {
 33			compatible = "fsl,mpc8548-memory-controller";
 34			reg = <0x2000 0x1000>;
 35			interrupt-parent = <&mpic>;
 36			interrupts = <0x12 0x2>;
 37		};
 38
 39		L2: l2-cache-controller@20000 {
 40			compatible = "fsl,mpc8548-l2-cache-controller";
 41			reg = <0x20000 0x1000>;
 42			cache-line-size = <0x20>;	// 32 bytes
 43			cache-size = <0x80000>;	// L2, 512K
 44			interrupt-parent = <&mpic>;
 45			interrupts = <0x10 0x2>;
 46		};
 47
 48		i2c@3000 {
 49			#address-cells = <1>;
 50			#size-cells = <0>;
 51			cell-index = <0>;
 52			compatible = "fsl-i2c";
 53			reg = <0x3000 0x100>;
 54			interrupts = <0x2b 0x2>;
 55			interrupt-parent = <&mpic>;
 56			dfsrr;
 57		};
 58
 59		i2c@3100 {
 60			#address-cells = <1>;
 61			#size-cells = <0>;
 62			cell-index = <1>;
 63			compatible = "fsl-i2c";
 64			reg = <0x3100 0x100>;
 65			interrupts = <0x2b 0x2>;
 66			interrupt-parent = <&mpic>;
 67			dfsrr;
 68		};
 69
 70		dma@21300 {
 71			#address-cells = <1>;
 72			#size-cells = <1>;
 73			compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma";
 74			reg = <0x21300 0x4>;
 75			ranges = <0x0 0x21100 0x200>;
 76			cell-index = <0>;
 77			dma-channel@0 {
 78				compatible = "fsl,mpc8548-dma-channel",
 79						"fsl,eloplus-dma-channel";
 80				reg = <0x0 0x80>;
 81				cell-index = <0>;
 82				interrupt-parent = <&mpic>;
 83				interrupts = <20 2>;
 84			};
 85			dma-channel@80 {
 86				compatible = "fsl,mpc8548-dma-channel",
 87						"fsl,eloplus-dma-channel";
 88				reg = <0x80 0x80>;
 89				cell-index = <1>;
 90				interrupt-parent = <&mpic>;
 91				interrupts = <21 2>;
 92			};
 93			dma-channel@100 {
 94				compatible = "fsl,mpc8548-dma-channel",
 95						"fsl,eloplus-dma-channel";
 96				reg = <0x100 0x80>;
 97				cell-index = <2>;
 98				interrupt-parent = <&mpic>;
 99				interrupts = <22 2>;
100			};
101			dma-channel@180 {
102				compatible = "fsl,mpc8548-dma-channel",
103						"fsl,eloplus-dma-channel";
104				reg = <0x180 0x80>;
105				cell-index = <3>;
106				interrupt-parent = <&mpic>;
107				interrupts = <23 2>;
108			};
109		};
110
111		enet0: ethernet@24000 {
112			#address-cells = <1>;
113			#size-cells = <1>;
114			cell-index = <0>;
115			device_type = "network";
116			model = "eTSEC";
117			compatible = "gianfar";
118			reg = <0x24000 0x1000>;
119			ranges = <0x0 0x24000 0x1000>;
120			local-mac-address = [ 00 00 00 00 00 00 ];
121			interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
122			interrupt-parent = <&mpic>;
123			tbi-handle = <&tbi0>;
124			phy-handle = <&phy0>;
125
126			mdio@520 {
127				#address-cells = <1>;
128				#size-cells = <0>;
129				compatible = "fsl,gianfar-mdio";
130				reg = <0x520 0x20>;
131
132				phy0: ethernet-phy@19 {
133					interrupt-parent = <&mpic>;
134					interrupts = <0x6 0x1>;
135					reg = <0x19>;
136				};
137				phy1: ethernet-phy@1a {
138					interrupt-parent = <&mpic>;
139					interrupts = <0x7 0x1>;
140					reg = <0x1a>;
141				};
142				tbi0: tbi-phy@11 {
143					reg = <0x11>;
144					device_type = "tbi-phy";
145				};
146			};
147		};
148
149		enet1: ethernet@25000 {
150			#address-cells = <1>;
151			#size-cells = <1>;
152			cell-index = <1>;
153			device_type = "network";
154			model = "eTSEC";
155			compatible = "gianfar";
156			reg = <0x25000 0x1000>;
157			ranges = <0x0 0x25000 0x1000>;
158			local-mac-address = [ 00 00 00 00 00 00 ];
159			interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>;
160			interrupt-parent = <&mpic>;
161			tbi-handle = <&tbi1>;
162			phy-handle = <&phy1>;
163
164			mdio@520 {
165				#address-cells = <1>;
166				#size-cells = <0>;
167				compatible = "fsl,gianfar-tbi";
168				reg = <0x520 0x20>;
169
170				tbi1: tbi-phy@11 {
171					reg = <0x11>;
172					device_type = "tbi-phy";
173				};
174			};
175		};
176
177		serial0: serial@4500 {
178			cell-index = <0>;
179			device_type = "serial";
180			compatible = "fsl,ns16550", "ns16550";
181			reg = <0x4500 0x100>;	// reg base, size
182			clock-frequency = <0>;	// should we fill in in uboot?
183			interrupts = <0x2a 0x2>;
184			interrupt-parent = <&mpic>;
185		};
186
187		serial1: serial@4600 {
188			cell-index = <1>;
189			device_type = "serial";
190			compatible = "fsl,ns16550", "ns16550";
191			reg = <0x4600 0x100>;	// reg base, size
192			clock-frequency = <0>;	// should we fill in in uboot?
193			interrupts = <0x2a 0x2>;
194			interrupt-parent = <&mpic>;
195		};
196
197		global-utilities@e0000 {	//global utilities reg
198			compatible = "fsl,mpc8548-guts";
199			reg = <0xe0000 0x1000>;
200			fsl,has-rstcr;
201		};
202
203		crypto@30000 {
204			compatible = "fsl,sec2.1", "fsl,sec2.0";
205			reg = <0x30000 0x10000>;
206			interrupts = <45 2>;
207			interrupt-parent = <&mpic>;
208			fsl,num-channels = <4>;
209			fsl,channel-fifo-len = <24>;
210			fsl,exec-units-mask = <0xfe>;
211			fsl,descriptor-types-mask = <0x12b0ebf>;
212		};
213
214		mpic: pic@40000 {
215			interrupt-controller;
216			#address-cells = <0>;
217			#interrupt-cells = <2>;
218			reg = <0x40000 0x40000>;
219			compatible = "chrp,open-pic";
220			device_type = "open-pic";
221		};
222	};
223
224	pci0: pci@e0008000 {
225		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
226		interrupt-map = <
227			/* IDSEL 0x01 (PCI-X slot) @66MHz */
228			0x0800 0x0 0x0 0x1 &mpic 0x2 0x1
229			0x0800 0x0 0x0 0x2 &mpic 0x3 0x1
230			0x0800 0x0 0x0 0x3 &mpic 0x4 0x1
231			0x0800 0x0 0x0 0x4 &mpic 0x1 0x1
232
233			/* IDSEL 0x11 (PCI, 3.3V 32bit) @33MHz */
234			0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
235			0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
236			0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
237			0x8800 0x0 0x0 0x4 &mpic 0x1 0x1>;
238
239		interrupt-parent = <&mpic>;
240		interrupts = <0x18 0x2>;
241		bus-range = <0 0>;
242		ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x10000000
243			  0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00800000>;
244		clock-frequency = <66000000>;
245		#interrupt-cells = <1>;
246		#size-cells = <2>;
247		#address-cells = <3>;
248		reg = <0xe0008000 0x1000>;
249		compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
250		device_type = "pci";
251	};
252
253	pci1: pcie@e000a000 {
254		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
255		interrupt-map = <
256
257			/* IDSEL 0x0 (PEX) */
258			0x0000 0x0 0x0 0x1 &mpic 0x0 0x1
259			0x0000 0x0 0x0 0x2 &mpic 0x1 0x1
260			0x0000 0x0 0x0 0x3 &mpic 0x2 0x1
261			0x0000 0x0 0x0 0x4 &mpic 0x3 0x1>;
262
263		interrupt-parent = <&mpic>;
264		interrupts = <0x1a 0x2>;
265		bus-range = <0x0 0xff>;
266		ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
267			  0x01000000 0x0 0x00000000 0xe2800000 0x0 0x08000000>;
268		clock-frequency = <33000000>;
269		#interrupt-cells = <1>;
270		#size-cells = <2>;
271		#address-cells = <3>;
272		reg = <0xe000a000 0x1000>;
273		compatible = "fsl,mpc8548-pcie";
274		device_type = "pci";
275		pcie@0 {
276			reg = <0x0 0x0 0x0 0x0 0x0>;
277			#size-cells = <2>;
278			#address-cells = <3>;
279			device_type = "pci";
280			ranges = <0x02000000 0x0 0xa0000000
281				  0x02000000 0x0 0xa0000000
282				  0x0 0x10000000
283
284				  0x01000000 0x0 0x00000000
285				  0x01000000 0x0 0x00000000
286				  0x0 0x00800000>;
287		};
288	};
289};
v4.6
 
  1/*
  2 * SBC8548 Device Tree Source
  3 *
  4 * Copyright 2007 Wind River Systems Inc.
  5 *
  6 * Paul Gortmaker (see MAINTAINERS for contact information)
  7 *
  8 * This program is free software; you can redistribute  it and/or modify it
  9 * under  the terms of  the GNU General  Public License as published by the
 10 * Free Software Foundation;  either version 2 of the  License, or (at your
 11 * option) any later version.
 12 */
 13
 14/{
 15	soc8548@e0000000 {
 16		#address-cells = <1>;
 17		#size-cells = <1>;
 18		device_type = "soc";
 19		ranges = <0x00000000 0xe0000000 0x00100000>;
 20		bus-frequency = <0>;
 21		compatible = "simple-bus";
 22
 23		ecm-law@0 {
 24			compatible = "fsl,ecm-law";
 25			reg = <0x0 0x1000>;
 26			fsl,num-laws = <10>;
 27		};
 28
 29		ecm@1000 {
 30			compatible = "fsl,mpc8548-ecm", "fsl,ecm";
 31			reg = <0x1000 0x1000>;
 32			interrupts = <17 2>;
 33			interrupt-parent = <&mpic>;
 34		};
 35
 36		memory-controller@2000 {
 37			compatible = "fsl,mpc8548-memory-controller";
 38			reg = <0x2000 0x1000>;
 39			interrupt-parent = <&mpic>;
 40			interrupts = <0x12 0x2>;
 41		};
 42
 43		L2: l2-cache-controller@20000 {
 44			compatible = "fsl,mpc8548-l2-cache-controller";
 45			reg = <0x20000 0x1000>;
 46			cache-line-size = <0x20>;	// 32 bytes
 47			cache-size = <0x80000>;	// L2, 512K
 48			interrupt-parent = <&mpic>;
 49			interrupts = <0x10 0x2>;
 50		};
 51
 52		i2c@3000 {
 53			#address-cells = <1>;
 54			#size-cells = <0>;
 55			cell-index = <0>;
 56			compatible = "fsl-i2c";
 57			reg = <0x3000 0x100>;
 58			interrupts = <0x2b 0x2>;
 59			interrupt-parent = <&mpic>;
 60			dfsrr;
 61		};
 62
 63		i2c@3100 {
 64			#address-cells = <1>;
 65			#size-cells = <0>;
 66			cell-index = <1>;
 67			compatible = "fsl-i2c";
 68			reg = <0x3100 0x100>;
 69			interrupts = <0x2b 0x2>;
 70			interrupt-parent = <&mpic>;
 71			dfsrr;
 72		};
 73
 74		dma@21300 {
 75			#address-cells = <1>;
 76			#size-cells = <1>;
 77			compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma";
 78			reg = <0x21300 0x4>;
 79			ranges = <0x0 0x21100 0x200>;
 80			cell-index = <0>;
 81			dma-channel@0 {
 82				compatible = "fsl,mpc8548-dma-channel",
 83						"fsl,eloplus-dma-channel";
 84				reg = <0x0 0x80>;
 85				cell-index = <0>;
 86				interrupt-parent = <&mpic>;
 87				interrupts = <20 2>;
 88			};
 89			dma-channel@80 {
 90				compatible = "fsl,mpc8548-dma-channel",
 91						"fsl,eloplus-dma-channel";
 92				reg = <0x80 0x80>;
 93				cell-index = <1>;
 94				interrupt-parent = <&mpic>;
 95				interrupts = <21 2>;
 96			};
 97			dma-channel@100 {
 98				compatible = "fsl,mpc8548-dma-channel",
 99						"fsl,eloplus-dma-channel";
100				reg = <0x100 0x80>;
101				cell-index = <2>;
102				interrupt-parent = <&mpic>;
103				interrupts = <22 2>;
104			};
105			dma-channel@180 {
106				compatible = "fsl,mpc8548-dma-channel",
107						"fsl,eloplus-dma-channel";
108				reg = <0x180 0x80>;
109				cell-index = <3>;
110				interrupt-parent = <&mpic>;
111				interrupts = <23 2>;
112			};
113		};
114
115		enet0: ethernet@24000 {
116			#address-cells = <1>;
117			#size-cells = <1>;
118			cell-index = <0>;
119			device_type = "network";
120			model = "eTSEC";
121			compatible = "gianfar";
122			reg = <0x24000 0x1000>;
123			ranges = <0x0 0x24000 0x1000>;
124			local-mac-address = [ 00 00 00 00 00 00 ];
125			interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
126			interrupt-parent = <&mpic>;
127			tbi-handle = <&tbi0>;
128			phy-handle = <&phy0>;
129
130			mdio@520 {
131				#address-cells = <1>;
132				#size-cells = <0>;
133				compatible = "fsl,gianfar-mdio";
134				reg = <0x520 0x20>;
135
136				phy0: ethernet-phy@19 {
137					interrupt-parent = <&mpic>;
138					interrupts = <0x6 0x1>;
139					reg = <0x19>;
140				};
141				phy1: ethernet-phy@1a {
142					interrupt-parent = <&mpic>;
143					interrupts = <0x7 0x1>;
144					reg = <0x1a>;
145				};
146				tbi0: tbi-phy@11 {
147					reg = <0x11>;
148					device_type = "tbi-phy";
149				};
150			};
151		};
152
153		enet1: ethernet@25000 {
154			#address-cells = <1>;
155			#size-cells = <1>;
156			cell-index = <1>;
157			device_type = "network";
158			model = "eTSEC";
159			compatible = "gianfar";
160			reg = <0x25000 0x1000>;
161			ranges = <0x0 0x25000 0x1000>;
162			local-mac-address = [ 00 00 00 00 00 00 ];
163			interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>;
164			interrupt-parent = <&mpic>;
165			tbi-handle = <&tbi1>;
166			phy-handle = <&phy1>;
167
168			mdio@520 {
169				#address-cells = <1>;
170				#size-cells = <0>;
171				compatible = "fsl,gianfar-tbi";
172				reg = <0x520 0x20>;
173
174				tbi1: tbi-phy@11 {
175					reg = <0x11>;
176					device_type = "tbi-phy";
177				};
178			};
179		};
180
181		serial0: serial@4500 {
182			cell-index = <0>;
183			device_type = "serial";
184			compatible = "fsl,ns16550", "ns16550";
185			reg = <0x4500 0x100>;	// reg base, size
186			clock-frequency = <0>;	// should we fill in in uboot?
187			interrupts = <0x2a 0x2>;
188			interrupt-parent = <&mpic>;
189		};
190
191		serial1: serial@4600 {
192			cell-index = <1>;
193			device_type = "serial";
194			compatible = "fsl,ns16550", "ns16550";
195			reg = <0x4600 0x100>;	// reg base, size
196			clock-frequency = <0>;	// should we fill in in uboot?
197			interrupts = <0x2a 0x2>;
198			interrupt-parent = <&mpic>;
199		};
200
201		global-utilities@e0000 {	//global utilities reg
202			compatible = "fsl,mpc8548-guts";
203			reg = <0xe0000 0x1000>;
204			fsl,has-rstcr;
205		};
206
207		crypto@30000 {
208			compatible = "fsl,sec2.1", "fsl,sec2.0";
209			reg = <0x30000 0x10000>;
210			interrupts = <45 2>;
211			interrupt-parent = <&mpic>;
212			fsl,num-channels = <4>;
213			fsl,channel-fifo-len = <24>;
214			fsl,exec-units-mask = <0xfe>;
215			fsl,descriptor-types-mask = <0x12b0ebf>;
216		};
217
218		mpic: pic@40000 {
219			interrupt-controller;
220			#address-cells = <0>;
221			#interrupt-cells = <2>;
222			reg = <0x40000 0x40000>;
223			compatible = "chrp,open-pic";
224			device_type = "open-pic";
225		};
226	};
227
228	pci0: pci@e0008000 {
229		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
230		interrupt-map = <
231			/* IDSEL 0x01 (PCI-X slot) @66MHz */
232			0x0800 0x0 0x0 0x1 &mpic 0x2 0x1
233			0x0800 0x0 0x0 0x2 &mpic 0x3 0x1
234			0x0800 0x0 0x0 0x3 &mpic 0x4 0x1
235			0x0800 0x0 0x0 0x4 &mpic 0x1 0x1
236
237			/* IDSEL 0x11 (PCI, 3.3V 32bit) @33MHz */
238			0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
239			0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
240			0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
241			0x8800 0x0 0x0 0x4 &mpic 0x1 0x1>;
242
243		interrupt-parent = <&mpic>;
244		interrupts = <0x18 0x2>;
245		bus-range = <0 0>;
246		ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x10000000
247			  0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00800000>;
248		clock-frequency = <66000000>;
249		#interrupt-cells = <1>;
250		#size-cells = <2>;
251		#address-cells = <3>;
252		reg = <0xe0008000 0x1000>;
253		compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
254		device_type = "pci";
255	};
256
257	pci1: pcie@e000a000 {
258		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
259		interrupt-map = <
260
261			/* IDSEL 0x0 (PEX) */
262			0x0000 0x0 0x0 0x1 &mpic 0x0 0x1
263			0x0000 0x0 0x0 0x2 &mpic 0x1 0x1
264			0x0000 0x0 0x0 0x3 &mpic 0x2 0x1
265			0x0000 0x0 0x0 0x4 &mpic 0x3 0x1>;
266
267		interrupt-parent = <&mpic>;
268		interrupts = <0x1a 0x2>;
269		bus-range = <0x0 0xff>;
270		ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
271			  0x01000000 0x0 0x00000000 0xe2800000 0x0 0x08000000>;
272		clock-frequency = <33000000>;
273		#interrupt-cells = <1>;
274		#size-cells = <2>;
275		#address-cells = <3>;
276		reg = <0xe000a000 0x1000>;
277		compatible = "fsl,mpc8548-pcie";
278		device_type = "pci";
279		pcie@0 {
280			reg = <0x0 0x0 0x0 0x0 0x0>;
281			#size-cells = <2>;
282			#address-cells = <3>;
283			device_type = "pci";
284			ranges = <0x02000000 0x0 0xa0000000
285				  0x02000000 0x0 0xa0000000
286				  0x0 0x10000000
287
288				  0x01000000 0x0 0x00000000
289				  0x01000000 0x0 0x00000000
290				  0x0 0x00800000>;
291		};
292	};
293};