1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later
2724ba675SRob Herring/*
3724ba675SRob Herring * DTS file for all SPEAr13xx SoCs
4724ba675SRob Herring *
5724ba675SRob Herring * Copyright 2012 Viresh Kumar <vireshk@kernel.org>
6724ba675SRob Herring */
7724ba675SRob Herring
8724ba675SRob Herring/ {
9724ba675SRob Herring	#address-cells = <1>;
10724ba675SRob Herring	#size-cells = <1>;
11724ba675SRob Herring	interrupt-parent = <&gic>;
12724ba675SRob Herring
13724ba675SRob Herring	cpus {
14724ba675SRob Herring		#address-cells = <1>;
15724ba675SRob Herring		#size-cells = <0>;
16724ba675SRob Herring
17724ba675SRob Herring		cpu@0 {
18724ba675SRob Herring			compatible = "arm,cortex-a9";
19724ba675SRob Herring			device_type = "cpu";
20724ba675SRob Herring			reg = <0>;
21724ba675SRob Herring			next-level-cache = <&L2>;
22724ba675SRob Herring		};
23724ba675SRob Herring
24724ba675SRob Herring		cpu@1 {
25724ba675SRob Herring			compatible = "arm,cortex-a9";
26724ba675SRob Herring			device_type = "cpu";
27724ba675SRob Herring			reg = <1>;
28724ba675SRob Herring			next-level-cache = <&L2>;
29724ba675SRob Herring		};
30724ba675SRob Herring	};
31724ba675SRob Herring
32724ba675SRob Herring	gic: interrupt-controller@ec801000 {
33724ba675SRob Herring		compatible = "arm,cortex-a9-gic";
34724ba675SRob Herring		interrupt-controller;
35724ba675SRob Herring		#interrupt-cells = <3>;
36724ba675SRob Herring		reg = < 0xec801000 0x1000 >,
37724ba675SRob Herring		      < 0xec800100 0x0100 >;
38724ba675SRob Herring	};
39724ba675SRob Herring
40724ba675SRob Herring	pmu {
41724ba675SRob Herring		compatible = "arm,cortex-a9-pmu";
42*a3265be8SKrzysztof Kozlowski		interrupts = <0 6 0x04>,
43*a3265be8SKrzysztof Kozlowski			     <0 7 0x04>;
44724ba675SRob Herring	};
45724ba675SRob Herring
46724ba675SRob Herring	L2: cache-controller {
47724ba675SRob Herring		    compatible = "arm,pl310-cache";
48724ba675SRob Herring		    reg = <0xed000000 0x1000>;
49724ba675SRob Herring		    cache-unified;
50724ba675SRob Herring		    cache-level = <2>;
51724ba675SRob Herring	};
52724ba675SRob Herring
53724ba675SRob Herring	memory {
54724ba675SRob Herring		name = "memory";
55724ba675SRob Herring		device_type = "memory";
56724ba675SRob Herring		reg = <0 0x40000000>;
57724ba675SRob Herring	};
58724ba675SRob Herring
59724ba675SRob Herring	chosen {
60724ba675SRob Herring		bootargs = "console=ttyAMA0,115200";
61724ba675SRob Herring	};
62724ba675SRob Herring
63724ba675SRob Herring	cpufreq {
64724ba675SRob Herring		compatible = "st,cpufreq-spear";
65724ba675SRob Herring		cpufreq_tbl = < 166000
66724ba675SRob Herring				200000
67724ba675SRob Herring				250000
68724ba675SRob Herring				300000
69724ba675SRob Herring				400000
70724ba675SRob Herring				500000
71724ba675SRob Herring				600000 >;
72724ba675SRob Herring		status = "disabled";
73724ba675SRob Herring	};
74724ba675SRob Herring
75724ba675SRob Herring	ahb {
76724ba675SRob Herring		#address-cells = <1>;
77724ba675SRob Herring		#size-cells = <1>;
78724ba675SRob Herring		compatible = "simple-bus";
79724ba675SRob Herring		ranges = <0x50000000 0x50000000 0x10000000
80724ba675SRob Herring			  0x80000000 0x80000000 0x20000000
81724ba675SRob Herring			  0xb0000000 0xb0000000 0x22000000
82724ba675SRob Herring			  0xd8000000 0xd8000000 0x01000000
83724ba675SRob Herring			  0xe0000000 0xe0000000 0x10000000>;
84724ba675SRob Herring
85724ba675SRob Herring		sdhci@b3000000 {
86724ba675SRob Herring			compatible = "st,sdhci-spear";
87724ba675SRob Herring			reg = <0xb3000000 0x100>;
88724ba675SRob Herring			interrupts = <0 28 0x4>;
89724ba675SRob Herring			status = "disabled";
90724ba675SRob Herring		};
91724ba675SRob Herring
92724ba675SRob Herring		cf@b2800000 {
93724ba675SRob Herring			compatible = "arasan,cf-spear1340";
94724ba675SRob Herring			reg = <0xb2800000 0x1000>;
95724ba675SRob Herring			interrupts = <0 29 0x4>;
96724ba675SRob Herring			status = "disabled";
97724ba675SRob Herring			dmas = <&dwdma0 0 0 0>;
98724ba675SRob Herring			dma-names = "data";
99724ba675SRob Herring		};
100724ba675SRob Herring
101724ba675SRob Herring		dwdma0: dma@ea800000 {
102724ba675SRob Herring			compatible = "snps,dma-spear1340";
103724ba675SRob Herring			reg = <0xea800000 0x1000>;
104724ba675SRob Herring			interrupts = <0 19 0x4>;
105724ba675SRob Herring			status = "disabled";
106724ba675SRob Herring
107724ba675SRob Herring			dma-channels = <8>;
108724ba675SRob Herring			#dma-cells = <3>;
109724ba675SRob Herring			dma-requests = <32>;
110724ba675SRob Herring			chan_allocation_order = <1>;
111724ba675SRob Herring			chan_priority = <1>;
112724ba675SRob Herring			block_size = <0xfff>;
113724ba675SRob Herring			dma-masters = <2>;
114724ba675SRob Herring			data-width = <8 8>;
115724ba675SRob Herring			multi-block = <1 1 1 1 1 1 1 1>;
116724ba675SRob Herring		};
117724ba675SRob Herring
118724ba675SRob Herring		dma@eb000000 {
119724ba675SRob Herring			compatible = "snps,dma-spear1340";
120724ba675SRob Herring			reg = <0xeb000000 0x1000>;
121724ba675SRob Herring			interrupts = <0 59 0x4>;
122724ba675SRob Herring			status = "disabled";
123724ba675SRob Herring
124724ba675SRob Herring			dma-requests = <32>;
125724ba675SRob Herring			dma-channels = <8>;
126724ba675SRob Herring			dma-masters = <2>;
127724ba675SRob Herring			#dma-cells = <3>;
128724ba675SRob Herring			chan_allocation_order = <1>;
129724ba675SRob Herring			chan_priority = <1>;
130724ba675SRob Herring			block_size = <0xfff>;
131724ba675SRob Herring			data-width = <8 8>;
132724ba675SRob Herring			multi-block = <1 1 1 1 1 1 1 1>;
133724ba675SRob Herring		};
134724ba675SRob Herring
135724ba675SRob Herring		fsmc: flash@b0000000 {
136724ba675SRob Herring			compatible = "st,spear600-fsmc-nand";
137724ba675SRob Herring			#address-cells = <1>;
138724ba675SRob Herring			#size-cells = <1>;
139724ba675SRob Herring			reg = <0xb0000000 0x1000	/* FSMC Register*/
140724ba675SRob Herring			       0xb0800000 0x0010	/* NAND Base DATA */
141724ba675SRob Herring			       0xb0820000 0x0010	/* NAND Base ADDR */
142724ba675SRob Herring			       0xb0810000 0x0010>;	/* NAND Base CMD */
143724ba675SRob Herring			reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
144*a3265be8SKrzysztof Kozlowski			interrupts = <0 20 0x4>,
145*a3265be8SKrzysztof Kozlowski				     <0 21 0x4>,
146*a3265be8SKrzysztof Kozlowski				     <0 22 0x4>,
147*a3265be8SKrzysztof Kozlowski				     <0 23 0x4>;
148724ba675SRob Herring			st,mode = <2>;
149724ba675SRob Herring			status = "disabled";
150724ba675SRob Herring		};
151724ba675SRob Herring
152724ba675SRob Herring		gmac0: eth@e2000000 {
153724ba675SRob Herring			compatible = "st,spear600-gmac";
154724ba675SRob Herring			reg = <0xe2000000 0x8000>;
155*a3265be8SKrzysztof Kozlowski			interrupts = <0 33 0x4>,
156*a3265be8SKrzysztof Kozlowski				     <0 34 0x4>;
157724ba675SRob Herring			interrupt-names = "macirq", "eth_wake_irq";
158724ba675SRob Herring			status = "disabled";
159724ba675SRob Herring		};
160724ba675SRob Herring
161724ba675SRob Herring		pcm {
162724ba675SRob Herring			compatible = "st,pcm-audio";
163724ba675SRob Herring			#address-cells = <0>;
164724ba675SRob Herring			#size-cells = <0>;
165724ba675SRob Herring			status = "disabled";
166724ba675SRob Herring		};
167724ba675SRob Herring
168724ba675SRob Herring		smi: flash@ea000000 {
169724ba675SRob Herring			compatible = "st,spear600-smi";
170724ba675SRob Herring			#address-cells = <1>;
171724ba675SRob Herring			#size-cells = <1>;
172724ba675SRob Herring			reg = <0xea000000 0x1000>;
173724ba675SRob Herring			interrupts = <0 30 0x4>;
174724ba675SRob Herring			status = "disabled";
175724ba675SRob Herring		};
176724ba675SRob Herring
177724ba675SRob Herring		ehci@e4800000 {
178724ba675SRob Herring			compatible = "st,spear600-ehci", "usb-ehci";
179724ba675SRob Herring			reg = <0xe4800000 0x1000>;
180724ba675SRob Herring			interrupts = <0 64 0x4>;
181724ba675SRob Herring			usbh0_id = <0>;
182724ba675SRob Herring			status = "disabled";
183724ba675SRob Herring		};
184724ba675SRob Herring
185724ba675SRob Herring		ehci@e5800000 {
186724ba675SRob Herring			compatible = "st,spear600-ehci", "usb-ehci";
187724ba675SRob Herring			reg = <0xe5800000 0x1000>;
188724ba675SRob Herring			interrupts = <0 66 0x4>;
189724ba675SRob Herring			usbh1_id = <1>;
190724ba675SRob Herring			status = "disabled";
191724ba675SRob Herring		};
192724ba675SRob Herring
193724ba675SRob Herring		ohci@e4000000 {
194724ba675SRob Herring			compatible = "st,spear600-ohci", "usb-ohci";
195724ba675SRob Herring			reg = <0xe4000000 0x1000>;
196724ba675SRob Herring			interrupts = <0 65 0x4>;
197724ba675SRob Herring			usbh0_id = <0>;
198724ba675SRob Herring			status = "disabled";
199724ba675SRob Herring		};
200724ba675SRob Herring
201724ba675SRob Herring		ohci@e5000000 {
202724ba675SRob Herring			compatible = "st,spear600-ohci", "usb-ohci";
203724ba675SRob Herring			reg = <0xe5000000 0x1000>;
204724ba675SRob Herring			interrupts = <0 67 0x4>;
205724ba675SRob Herring			usbh1_id = <1>;
206724ba675SRob Herring			status = "disabled";
207724ba675SRob Herring		};
208724ba675SRob Herring
209724ba675SRob Herring		apb {
210724ba675SRob Herring			#address-cells = <1>;
211724ba675SRob Herring			#size-cells = <1>;
212724ba675SRob Herring			compatible = "simple-bus";
213724ba675SRob Herring			ranges = <0x50000000 0x50000000 0x10000000
214724ba675SRob Herring				  0xb0000000 0xb0000000 0x10000000
215724ba675SRob Herring				  0xd0000000 0xd0000000 0x02000000
216724ba675SRob Herring				  0xd8000000 0xd8000000 0x01000000
217724ba675SRob Herring				  0xe0000000 0xe0000000 0x10000000>;
218724ba675SRob Herring
219724ba675SRob Herring			misc: syscon@e0700000 {
220724ba675SRob Herring				compatible = "st,spear1340-misc", "syscon";
221724ba675SRob Herring				reg = <0xe0700000 0x1000>;
222724ba675SRob Herring			};
223724ba675SRob Herring
224724ba675SRob Herring			gpio0: gpio@e0600000 {
225724ba675SRob Herring				compatible = "arm,pl061", "arm,primecell";
226724ba675SRob Herring				reg = <0xe0600000 0x1000>;
227724ba675SRob Herring				interrupts = <0 24 0x4>;
228724ba675SRob Herring				gpio-controller;
229724ba675SRob Herring				#gpio-cells = <2>;
230724ba675SRob Herring				interrupt-controller;
231724ba675SRob Herring				#interrupt-cells = <2>;
232724ba675SRob Herring				status = "disabled";
233724ba675SRob Herring			};
234724ba675SRob Herring
235724ba675SRob Herring			gpio1: gpio@e0680000 {
236724ba675SRob Herring				compatible = "arm,pl061", "arm,primecell";
237724ba675SRob Herring				reg = <0xe0680000 0x1000>;
238724ba675SRob Herring				interrupts = <0 25 0x4>;
239724ba675SRob Herring				gpio-controller;
240724ba675SRob Herring				#gpio-cells = <2>;
241724ba675SRob Herring				interrupt-controller;
242724ba675SRob Herring				#interrupt-cells = <2>;
243724ba675SRob Herring				status = "disabled";
244724ba675SRob Herring			};
245724ba675SRob Herring
246724ba675SRob Herring			kbd@e0300000 {
247724ba675SRob Herring				compatible = "st,spear300-kbd";
248724ba675SRob Herring				reg = <0xe0300000 0x1000>;
249724ba675SRob Herring				interrupts = <0 52 0x4>;
250724ba675SRob Herring				status = "disabled";
251724ba675SRob Herring			};
252724ba675SRob Herring
253724ba675SRob Herring			i2c0: i2c@e0280000 {
254724ba675SRob Herring				#address-cells = <1>;
255724ba675SRob Herring				#size-cells = <0>;
256724ba675SRob Herring				compatible = "snps,designware-i2c";
257724ba675SRob Herring				reg = <0xe0280000 0x1000>;
258724ba675SRob Herring				interrupts = <0 41 0x4>;
259724ba675SRob Herring				status = "disabled";
260724ba675SRob Herring			};
261724ba675SRob Herring
262724ba675SRob Herring			i2s@e0180000 {
263724ba675SRob Herring				compatible = "st,designware-i2s";
264724ba675SRob Herring				reg = <0xe0180000 0x1000>;
265724ba675SRob Herring				interrupt-names = "play_irq", "record_irq";
266*a3265be8SKrzysztof Kozlowski				interrupts = <0 10 0x4>,
267*a3265be8SKrzysztof Kozlowski					     <0 11 0x4>;
268724ba675SRob Herring				status = "disabled";
269724ba675SRob Herring			};
270724ba675SRob Herring
271724ba675SRob Herring			i2s@e0200000 {
272724ba675SRob Herring				compatible = "st,designware-i2s";
273724ba675SRob Herring				reg = <0xe0200000 0x1000>;
274724ba675SRob Herring				interrupt-names = "play_irq", "record_irq";
275*a3265be8SKrzysztof Kozlowski				interrupts = <0 26 0x4>,
276*a3265be8SKrzysztof Kozlowski					     <0 53 0x4>;
277724ba675SRob Herring				status = "disabled";
278724ba675SRob Herring			};
279724ba675SRob Herring
280724ba675SRob Herring			spi0: spi@e0100000 {
281724ba675SRob Herring				compatible = "arm,pl022", "arm,primecell";
282724ba675SRob Herring				reg = <0xe0100000 0x1000>;
283724ba675SRob Herring				#address-cells = <1>;
284724ba675SRob Herring				#size-cells = <0>;
285724ba675SRob Herring				interrupts = <0 31 0x4>;
286724ba675SRob Herring				status = "disabled";
287724ba675SRob Herring				dmas = <&dwdma0 5 0 0>,
288724ba675SRob Herring					<&dwdma0 4 0 0>;
289724ba675SRob Herring				dma-names = "rx", "tx";
290724ba675SRob Herring			};
291724ba675SRob Herring
292724ba675SRob Herring			rtc@e0580000 {
293724ba675SRob Herring				compatible = "st,spear600-rtc";
294724ba675SRob Herring				reg = <0xe0580000 0x1000>;
295724ba675SRob Herring				interrupts = <0 36 0x4>;
296724ba675SRob Herring				status = "disabled";
297724ba675SRob Herring			};
298724ba675SRob Herring
299724ba675SRob Herring			serial@e0000000 {
300724ba675SRob Herring				compatible = "arm,pl011", "arm,primecell";
301724ba675SRob Herring				reg = <0xe0000000 0x1000>;
302724ba675SRob Herring				interrupts = <0 35 0x4>;
303724ba675SRob Herring				status = "disabled";
304724ba675SRob Herring			};
305724ba675SRob Herring
306724ba675SRob Herring			adc@e0080000 {
307724ba675SRob Herring				compatible = "st,spear600-adc";
308724ba675SRob Herring				reg = <0xe0080000 0x1000>;
309724ba675SRob Herring				interrupts = <0 12 0x4>;
310724ba675SRob Herring				status = "disabled";
311724ba675SRob Herring			};
312724ba675SRob Herring
313724ba675SRob Herring			timer@e0380000 {
314724ba675SRob Herring				compatible = "st,spear-timer";
315724ba675SRob Herring				reg = <0xe0380000 0x400>;
316724ba675SRob Herring				interrupts = <0 37 0x4>;
317724ba675SRob Herring			};
318724ba675SRob Herring
319724ba675SRob Herring			timer@ec800600 {
320724ba675SRob Herring				compatible = "arm,cortex-a9-twd-timer";
321724ba675SRob Herring				reg = <0xec800600 0x20>;
322724ba675SRob Herring				interrupts = <1 13 0x4>;
323724ba675SRob Herring				status = "disabled";
324724ba675SRob Herring			};
325724ba675SRob Herring
326724ba675SRob Herring			wdt@ec800620 {
327724ba675SRob Herring				compatible = "arm,cortex-a9-twd-wdt";
328724ba675SRob Herring				reg = <0xec800620 0x20>;
329724ba675SRob Herring				status = "disabled";
330724ba675SRob Herring			};
331724ba675SRob Herring
332724ba675SRob Herring			thermal@e07008c4 {
333724ba675SRob Herring				compatible = "st,thermal-spear1340";
334724ba675SRob Herring				reg = <0xe07008c4 0x4>;
335724ba675SRob Herring				thermal_flags = <0x7000>;
336724ba675SRob Herring			};
337724ba675SRob Herring		};
338724ba675SRob Herring	};
339724ba675SRob Herring};
340