xref: /freebsd-src/sys/contrib/device-tree/src/arm/st/spear13xx.dtsi (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later
2f126890aSEmmanuel Vadot/*
3f126890aSEmmanuel Vadot * DTS file for all SPEAr13xx SoCs
4f126890aSEmmanuel Vadot *
5f126890aSEmmanuel Vadot * Copyright 2012 Viresh Kumar <vireshk@kernel.org>
6f126890aSEmmanuel Vadot */
7f126890aSEmmanuel Vadot
8f126890aSEmmanuel Vadot/ {
9f126890aSEmmanuel Vadot	#address-cells = <1>;
10f126890aSEmmanuel Vadot	#size-cells = <1>;
11f126890aSEmmanuel Vadot	interrupt-parent = <&gic>;
12f126890aSEmmanuel Vadot
13f126890aSEmmanuel Vadot	cpus {
14f126890aSEmmanuel Vadot		#address-cells = <1>;
15f126890aSEmmanuel Vadot		#size-cells = <0>;
16f126890aSEmmanuel Vadot
17f126890aSEmmanuel Vadot		cpu@0 {
18f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
19f126890aSEmmanuel Vadot			device_type = "cpu";
20f126890aSEmmanuel Vadot			reg = <0>;
21f126890aSEmmanuel Vadot			next-level-cache = <&L2>;
22f126890aSEmmanuel Vadot		};
23f126890aSEmmanuel Vadot
24f126890aSEmmanuel Vadot		cpu@1 {
25f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
26f126890aSEmmanuel Vadot			device_type = "cpu";
27f126890aSEmmanuel Vadot			reg = <1>;
28f126890aSEmmanuel Vadot			next-level-cache = <&L2>;
29f126890aSEmmanuel Vadot		};
30f126890aSEmmanuel Vadot	};
31f126890aSEmmanuel Vadot
32f126890aSEmmanuel Vadot	gic: interrupt-controller@ec801000 {
33f126890aSEmmanuel Vadot		compatible = "arm,cortex-a9-gic";
34f126890aSEmmanuel Vadot		interrupt-controller;
35f126890aSEmmanuel Vadot		#interrupt-cells = <3>;
36f126890aSEmmanuel Vadot		reg = < 0xec801000 0x1000 >,
37f126890aSEmmanuel Vadot		      < 0xec800100 0x0100 >;
38f126890aSEmmanuel Vadot	};
39f126890aSEmmanuel Vadot
40f126890aSEmmanuel Vadot	pmu {
41f126890aSEmmanuel Vadot		compatible = "arm,cortex-a9-pmu";
42*aa1a8ff2SEmmanuel Vadot		interrupts = <0 6 0x04>,
43*aa1a8ff2SEmmanuel Vadot			     <0 7 0x04>;
44f126890aSEmmanuel Vadot	};
45f126890aSEmmanuel Vadot
46f126890aSEmmanuel Vadot	L2: cache-controller {
47f126890aSEmmanuel Vadot		    compatible = "arm,pl310-cache";
48f126890aSEmmanuel Vadot		    reg = <0xed000000 0x1000>;
49f126890aSEmmanuel Vadot		    cache-unified;
50f126890aSEmmanuel Vadot		    cache-level = <2>;
51f126890aSEmmanuel Vadot	};
52f126890aSEmmanuel Vadot
53f126890aSEmmanuel Vadot	memory {
54f126890aSEmmanuel Vadot		name = "memory";
55f126890aSEmmanuel Vadot		device_type = "memory";
56f126890aSEmmanuel Vadot		reg = <0 0x40000000>;
57f126890aSEmmanuel Vadot	};
58f126890aSEmmanuel Vadot
59f126890aSEmmanuel Vadot	chosen {
60f126890aSEmmanuel Vadot		bootargs = "console=ttyAMA0,115200";
61f126890aSEmmanuel Vadot	};
62f126890aSEmmanuel Vadot
63f126890aSEmmanuel Vadot	cpufreq {
64f126890aSEmmanuel Vadot		compatible = "st,cpufreq-spear";
65f126890aSEmmanuel Vadot		cpufreq_tbl = < 166000
66f126890aSEmmanuel Vadot				200000
67f126890aSEmmanuel Vadot				250000
68f126890aSEmmanuel Vadot				300000
69f126890aSEmmanuel Vadot				400000
70f126890aSEmmanuel Vadot				500000
71f126890aSEmmanuel Vadot				600000 >;
72f126890aSEmmanuel Vadot		status = "disabled";
73f126890aSEmmanuel Vadot	};
74f126890aSEmmanuel Vadot
75f126890aSEmmanuel Vadot	ahb {
76f126890aSEmmanuel Vadot		#address-cells = <1>;
77f126890aSEmmanuel Vadot		#size-cells = <1>;
78f126890aSEmmanuel Vadot		compatible = "simple-bus";
79f126890aSEmmanuel Vadot		ranges = <0x50000000 0x50000000 0x10000000
80f126890aSEmmanuel Vadot			  0x80000000 0x80000000 0x20000000
81f126890aSEmmanuel Vadot			  0xb0000000 0xb0000000 0x22000000
82f126890aSEmmanuel Vadot			  0xd8000000 0xd8000000 0x01000000
83f126890aSEmmanuel Vadot			  0xe0000000 0xe0000000 0x10000000>;
84f126890aSEmmanuel Vadot
85f126890aSEmmanuel Vadot		sdhci@b3000000 {
86f126890aSEmmanuel Vadot			compatible = "st,sdhci-spear";
87f126890aSEmmanuel Vadot			reg = <0xb3000000 0x100>;
88f126890aSEmmanuel Vadot			interrupts = <0 28 0x4>;
89f126890aSEmmanuel Vadot			status = "disabled";
90f126890aSEmmanuel Vadot		};
91f126890aSEmmanuel Vadot
92f126890aSEmmanuel Vadot		cf@b2800000 {
93f126890aSEmmanuel Vadot			compatible = "arasan,cf-spear1340";
94f126890aSEmmanuel Vadot			reg = <0xb2800000 0x1000>;
95f126890aSEmmanuel Vadot			interrupts = <0 29 0x4>;
96f126890aSEmmanuel Vadot			status = "disabled";
97f126890aSEmmanuel Vadot			dmas = <&dwdma0 0 0 0>;
98f126890aSEmmanuel Vadot			dma-names = "data";
99f126890aSEmmanuel Vadot		};
100f126890aSEmmanuel Vadot
101f126890aSEmmanuel Vadot		dwdma0: dma@ea800000 {
102f126890aSEmmanuel Vadot			compatible = "snps,dma-spear1340";
103f126890aSEmmanuel Vadot			reg = <0xea800000 0x1000>;
104f126890aSEmmanuel Vadot			interrupts = <0 19 0x4>;
105f126890aSEmmanuel Vadot			status = "disabled";
106f126890aSEmmanuel Vadot
107f126890aSEmmanuel Vadot			dma-channels = <8>;
108f126890aSEmmanuel Vadot			#dma-cells = <3>;
109f126890aSEmmanuel Vadot			dma-requests = <32>;
110f126890aSEmmanuel Vadot			chan_allocation_order = <1>;
111f126890aSEmmanuel Vadot			chan_priority = <1>;
112f126890aSEmmanuel Vadot			block_size = <0xfff>;
113f126890aSEmmanuel Vadot			dma-masters = <2>;
114f126890aSEmmanuel Vadot			data-width = <8 8>;
115f126890aSEmmanuel Vadot			multi-block = <1 1 1 1 1 1 1 1>;
116f126890aSEmmanuel Vadot		};
117f126890aSEmmanuel Vadot
118f126890aSEmmanuel Vadot		dma@eb000000 {
119f126890aSEmmanuel Vadot			compatible = "snps,dma-spear1340";
120f126890aSEmmanuel Vadot			reg = <0xeb000000 0x1000>;
121f126890aSEmmanuel Vadot			interrupts = <0 59 0x4>;
122f126890aSEmmanuel Vadot			status = "disabled";
123f126890aSEmmanuel Vadot
124f126890aSEmmanuel Vadot			dma-requests = <32>;
125f126890aSEmmanuel Vadot			dma-channels = <8>;
126f126890aSEmmanuel Vadot			dma-masters = <2>;
127f126890aSEmmanuel Vadot			#dma-cells = <3>;
128f126890aSEmmanuel Vadot			chan_allocation_order = <1>;
129f126890aSEmmanuel Vadot			chan_priority = <1>;
130f126890aSEmmanuel Vadot			block_size = <0xfff>;
131f126890aSEmmanuel Vadot			data-width = <8 8>;
132f126890aSEmmanuel Vadot			multi-block = <1 1 1 1 1 1 1 1>;
133f126890aSEmmanuel Vadot		};
134f126890aSEmmanuel Vadot
135f126890aSEmmanuel Vadot		fsmc: flash@b0000000 {
136f126890aSEmmanuel Vadot			compatible = "st,spear600-fsmc-nand";
137f126890aSEmmanuel Vadot			#address-cells = <1>;
138f126890aSEmmanuel Vadot			#size-cells = <1>;
139f126890aSEmmanuel Vadot			reg = <0xb0000000 0x1000	/* FSMC Register*/
140f126890aSEmmanuel Vadot			       0xb0800000 0x0010	/* NAND Base DATA */
141f126890aSEmmanuel Vadot			       0xb0820000 0x0010	/* NAND Base ADDR */
142f126890aSEmmanuel Vadot			       0xb0810000 0x0010>;	/* NAND Base CMD */
143f126890aSEmmanuel Vadot			reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
144*aa1a8ff2SEmmanuel Vadot			interrupts = <0 20 0x4>,
145*aa1a8ff2SEmmanuel Vadot				     <0 21 0x4>,
146*aa1a8ff2SEmmanuel Vadot				     <0 22 0x4>,
147*aa1a8ff2SEmmanuel Vadot				     <0 23 0x4>;
148f126890aSEmmanuel Vadot			st,mode = <2>;
149f126890aSEmmanuel Vadot			status = "disabled";
150f126890aSEmmanuel Vadot		};
151f126890aSEmmanuel Vadot
152f126890aSEmmanuel Vadot		gmac0: eth@e2000000 {
153f126890aSEmmanuel Vadot			compatible = "st,spear600-gmac";
154f126890aSEmmanuel Vadot			reg = <0xe2000000 0x8000>;
155*aa1a8ff2SEmmanuel Vadot			interrupts = <0 33 0x4>,
156*aa1a8ff2SEmmanuel Vadot				     <0 34 0x4>;
157f126890aSEmmanuel Vadot			interrupt-names = "macirq", "eth_wake_irq";
158f126890aSEmmanuel Vadot			status = "disabled";
159f126890aSEmmanuel Vadot		};
160f126890aSEmmanuel Vadot
161f126890aSEmmanuel Vadot		pcm {
162f126890aSEmmanuel Vadot			compatible = "st,pcm-audio";
163f126890aSEmmanuel Vadot			#address-cells = <0>;
164f126890aSEmmanuel Vadot			#size-cells = <0>;
165f126890aSEmmanuel Vadot			status = "disabled";
166f126890aSEmmanuel Vadot		};
167f126890aSEmmanuel Vadot
168f126890aSEmmanuel Vadot		smi: flash@ea000000 {
169f126890aSEmmanuel Vadot			compatible = "st,spear600-smi";
170f126890aSEmmanuel Vadot			#address-cells = <1>;
171f126890aSEmmanuel Vadot			#size-cells = <1>;
172f126890aSEmmanuel Vadot			reg = <0xea000000 0x1000>;
173f126890aSEmmanuel Vadot			interrupts = <0 30 0x4>;
174f126890aSEmmanuel Vadot			status = "disabled";
175f126890aSEmmanuel Vadot		};
176f126890aSEmmanuel Vadot
177f126890aSEmmanuel Vadot		ehci@e4800000 {
178f126890aSEmmanuel Vadot			compatible = "st,spear600-ehci", "usb-ehci";
179f126890aSEmmanuel Vadot			reg = <0xe4800000 0x1000>;
180f126890aSEmmanuel Vadot			interrupts = <0 64 0x4>;
181f126890aSEmmanuel Vadot			usbh0_id = <0>;
182f126890aSEmmanuel Vadot			status = "disabled";
183f126890aSEmmanuel Vadot		};
184f126890aSEmmanuel Vadot
185f126890aSEmmanuel Vadot		ehci@e5800000 {
186f126890aSEmmanuel Vadot			compatible = "st,spear600-ehci", "usb-ehci";
187f126890aSEmmanuel Vadot			reg = <0xe5800000 0x1000>;
188f126890aSEmmanuel Vadot			interrupts = <0 66 0x4>;
189f126890aSEmmanuel Vadot			usbh1_id = <1>;
190f126890aSEmmanuel Vadot			status = "disabled";
191f126890aSEmmanuel Vadot		};
192f126890aSEmmanuel Vadot
193f126890aSEmmanuel Vadot		ohci@e4000000 {
194f126890aSEmmanuel Vadot			compatible = "st,spear600-ohci", "usb-ohci";
195f126890aSEmmanuel Vadot			reg = <0xe4000000 0x1000>;
196f126890aSEmmanuel Vadot			interrupts = <0 65 0x4>;
197f126890aSEmmanuel Vadot			usbh0_id = <0>;
198f126890aSEmmanuel Vadot			status = "disabled";
199f126890aSEmmanuel Vadot		};
200f126890aSEmmanuel Vadot
201f126890aSEmmanuel Vadot		ohci@e5000000 {
202f126890aSEmmanuel Vadot			compatible = "st,spear600-ohci", "usb-ohci";
203f126890aSEmmanuel Vadot			reg = <0xe5000000 0x1000>;
204f126890aSEmmanuel Vadot			interrupts = <0 67 0x4>;
205f126890aSEmmanuel Vadot			usbh1_id = <1>;
206f126890aSEmmanuel Vadot			status = "disabled";
207f126890aSEmmanuel Vadot		};
208f126890aSEmmanuel Vadot
209f126890aSEmmanuel Vadot		apb {
210f126890aSEmmanuel Vadot			#address-cells = <1>;
211f126890aSEmmanuel Vadot			#size-cells = <1>;
212f126890aSEmmanuel Vadot			compatible = "simple-bus";
213f126890aSEmmanuel Vadot			ranges = <0x50000000 0x50000000 0x10000000
214f126890aSEmmanuel Vadot				  0xb0000000 0xb0000000 0x10000000
215f126890aSEmmanuel Vadot				  0xd0000000 0xd0000000 0x02000000
216f126890aSEmmanuel Vadot				  0xd8000000 0xd8000000 0x01000000
217f126890aSEmmanuel Vadot				  0xe0000000 0xe0000000 0x10000000>;
218f126890aSEmmanuel Vadot
219f126890aSEmmanuel Vadot			misc: syscon@e0700000 {
220f126890aSEmmanuel Vadot				compatible = "st,spear1340-misc", "syscon";
221f126890aSEmmanuel Vadot				reg = <0xe0700000 0x1000>;
222f126890aSEmmanuel Vadot			};
223f126890aSEmmanuel Vadot
224f126890aSEmmanuel Vadot			gpio0: gpio@e0600000 {
225f126890aSEmmanuel Vadot				compatible = "arm,pl061", "arm,primecell";
226f126890aSEmmanuel Vadot				reg = <0xe0600000 0x1000>;
227f126890aSEmmanuel Vadot				interrupts = <0 24 0x4>;
228f126890aSEmmanuel Vadot				gpio-controller;
229f126890aSEmmanuel Vadot				#gpio-cells = <2>;
230f126890aSEmmanuel Vadot				interrupt-controller;
231f126890aSEmmanuel Vadot				#interrupt-cells = <2>;
232f126890aSEmmanuel Vadot				status = "disabled";
233f126890aSEmmanuel Vadot			};
234f126890aSEmmanuel Vadot
235f126890aSEmmanuel Vadot			gpio1: gpio@e0680000 {
236f126890aSEmmanuel Vadot				compatible = "arm,pl061", "arm,primecell";
237f126890aSEmmanuel Vadot				reg = <0xe0680000 0x1000>;
238f126890aSEmmanuel Vadot				interrupts = <0 25 0x4>;
239f126890aSEmmanuel Vadot				gpio-controller;
240f126890aSEmmanuel Vadot				#gpio-cells = <2>;
241f126890aSEmmanuel Vadot				interrupt-controller;
242f126890aSEmmanuel Vadot				#interrupt-cells = <2>;
243f126890aSEmmanuel Vadot				status = "disabled";
244f126890aSEmmanuel Vadot			};
245f126890aSEmmanuel Vadot
246f126890aSEmmanuel Vadot			kbd@e0300000 {
247f126890aSEmmanuel Vadot				compatible = "st,spear300-kbd";
248f126890aSEmmanuel Vadot				reg = <0xe0300000 0x1000>;
249f126890aSEmmanuel Vadot				interrupts = <0 52 0x4>;
250f126890aSEmmanuel Vadot				status = "disabled";
251f126890aSEmmanuel Vadot			};
252f126890aSEmmanuel Vadot
253f126890aSEmmanuel Vadot			i2c0: i2c@e0280000 {
254f126890aSEmmanuel Vadot				#address-cells = <1>;
255f126890aSEmmanuel Vadot				#size-cells = <0>;
256f126890aSEmmanuel Vadot				compatible = "snps,designware-i2c";
257f126890aSEmmanuel Vadot				reg = <0xe0280000 0x1000>;
258f126890aSEmmanuel Vadot				interrupts = <0 41 0x4>;
259f126890aSEmmanuel Vadot				status = "disabled";
260f126890aSEmmanuel Vadot			};
261f126890aSEmmanuel Vadot
262f126890aSEmmanuel Vadot			i2s@e0180000 {
263f126890aSEmmanuel Vadot				compatible = "st,designware-i2s";
264f126890aSEmmanuel Vadot				reg = <0xe0180000 0x1000>;
265f126890aSEmmanuel Vadot				interrupt-names = "play_irq", "record_irq";
266*aa1a8ff2SEmmanuel Vadot				interrupts = <0 10 0x4>,
267*aa1a8ff2SEmmanuel Vadot					     <0 11 0x4>;
268f126890aSEmmanuel Vadot				status = "disabled";
269f126890aSEmmanuel Vadot			};
270f126890aSEmmanuel Vadot
271f126890aSEmmanuel Vadot			i2s@e0200000 {
272f126890aSEmmanuel Vadot				compatible = "st,designware-i2s";
273f126890aSEmmanuel Vadot				reg = <0xe0200000 0x1000>;
274f126890aSEmmanuel Vadot				interrupt-names = "play_irq", "record_irq";
275*aa1a8ff2SEmmanuel Vadot				interrupts = <0 26 0x4>,
276*aa1a8ff2SEmmanuel Vadot					     <0 53 0x4>;
277f126890aSEmmanuel Vadot				status = "disabled";
278f126890aSEmmanuel Vadot			};
279f126890aSEmmanuel Vadot
280f126890aSEmmanuel Vadot			spi0: spi@e0100000 {
281f126890aSEmmanuel Vadot				compatible = "arm,pl022", "arm,primecell";
282f126890aSEmmanuel Vadot				reg = <0xe0100000 0x1000>;
283f126890aSEmmanuel Vadot				#address-cells = <1>;
284f126890aSEmmanuel Vadot				#size-cells = <0>;
285f126890aSEmmanuel Vadot				interrupts = <0 31 0x4>;
286f126890aSEmmanuel Vadot				status = "disabled";
287f126890aSEmmanuel Vadot				dmas = <&dwdma0 5 0 0>,
288f126890aSEmmanuel Vadot					<&dwdma0 4 0 0>;
289f126890aSEmmanuel Vadot				dma-names = "rx", "tx";
290f126890aSEmmanuel Vadot			};
291f126890aSEmmanuel Vadot
292f126890aSEmmanuel Vadot			rtc@e0580000 {
293f126890aSEmmanuel Vadot				compatible = "st,spear600-rtc";
294f126890aSEmmanuel Vadot				reg = <0xe0580000 0x1000>;
295f126890aSEmmanuel Vadot				interrupts = <0 36 0x4>;
296f126890aSEmmanuel Vadot				status = "disabled";
297f126890aSEmmanuel Vadot			};
298f126890aSEmmanuel Vadot
299f126890aSEmmanuel Vadot			serial@e0000000 {
300f126890aSEmmanuel Vadot				compatible = "arm,pl011", "arm,primecell";
301f126890aSEmmanuel Vadot				reg = <0xe0000000 0x1000>;
302f126890aSEmmanuel Vadot				interrupts = <0 35 0x4>;
303f126890aSEmmanuel Vadot				status = "disabled";
304f126890aSEmmanuel Vadot			};
305f126890aSEmmanuel Vadot
306f126890aSEmmanuel Vadot			adc@e0080000 {
307f126890aSEmmanuel Vadot				compatible = "st,spear600-adc";
308f126890aSEmmanuel Vadot				reg = <0xe0080000 0x1000>;
309f126890aSEmmanuel Vadot				interrupts = <0 12 0x4>;
310f126890aSEmmanuel Vadot				status = "disabled";
311f126890aSEmmanuel Vadot			};
312f126890aSEmmanuel Vadot
313f126890aSEmmanuel Vadot			timer@e0380000 {
314f126890aSEmmanuel Vadot				compatible = "st,spear-timer";
315f126890aSEmmanuel Vadot				reg = <0xe0380000 0x400>;
316f126890aSEmmanuel Vadot				interrupts = <0 37 0x4>;
317f126890aSEmmanuel Vadot			};
318f126890aSEmmanuel Vadot
319f126890aSEmmanuel Vadot			timer@ec800600 {
320f126890aSEmmanuel Vadot				compatible = "arm,cortex-a9-twd-timer";
321f126890aSEmmanuel Vadot				reg = <0xec800600 0x20>;
322f126890aSEmmanuel Vadot				interrupts = <1 13 0x4>;
323f126890aSEmmanuel Vadot				status = "disabled";
324f126890aSEmmanuel Vadot			};
325f126890aSEmmanuel Vadot
326f126890aSEmmanuel Vadot			wdt@ec800620 {
327f126890aSEmmanuel Vadot				compatible = "arm,cortex-a9-twd-wdt";
328f126890aSEmmanuel Vadot				reg = <0xec800620 0x20>;
329f126890aSEmmanuel Vadot				status = "disabled";
330f126890aSEmmanuel Vadot			};
331f126890aSEmmanuel Vadot
332f126890aSEmmanuel Vadot			thermal@e07008c4 {
333f126890aSEmmanuel Vadot				compatible = "st,thermal-spear1340";
334f126890aSEmmanuel Vadot				reg = <0xe07008c4 0x4>;
335f126890aSEmmanuel Vadot				thermal_flags = <0x7000>;
336f126890aSEmmanuel Vadot			};
337f126890aSEmmanuel Vadot		};
338f126890aSEmmanuel Vadot	};
339f126890aSEmmanuel Vadot};
340