Loading...
Note: File does not exist in v4.6.
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree file for Cirrus Logic systems EP93XX SoC
4 */
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/leds/common.h>
7#include <dt-bindings/input/input.h>
8#include <dt-bindings/clock/cirrus,ep9301-syscon.h>
9/ {
10 soc: soc {
11 compatible = "simple-bus";
12 ranges;
13 #address-cells = <1>;
14 #size-cells = <1>;
15
16 syscon: syscon@80930000 {
17 compatible = "cirrus,ep9301-syscon", "syscon";
18 reg = <0x80930000 0x1000>;
19
20 #clock-cells = <1>;
21 clocks = <&xtali>;
22
23 spi_default_pins: pins-spi {
24 function = "spi";
25 groups = "ssp";
26 };
27
28 ac97_default_pins: pins-ac97 {
29 function = "ac97";
30 groups = "ac97";
31 };
32
33 i2s_on_ssp_pins: pins-i2sonssp {
34 function = "i2s";
35 groups = "i2s_on_ssp";
36 };
37
38 i2s_on_ac97_pins: pins-i2sonac97 {
39 function = "i2s";
40 groups = "i2s_on_ac97";
41 };
42
43 gpio1_default_pins: pins-gpio1 {
44 function = "gpio";
45 groups = "gpio1agrp";
46 };
47
48 pwm1_default_pins: pins-pwm1 {
49 function = "pwm";
50 groups = "pwm1";
51 };
52
53 gpio2_default_pins: pins-gpio2 {
54 function = "gpio";
55 groups = "gpio2agrp";
56 };
57
58 gpio3_default_pins: pins-gpio3 {
59 function = "gpio";
60 groups = "gpio3agrp";
61 };
62
63 keypad_default_pins: pins-keypad {
64 function = "keypad";
65 groups = "keypadgrp";
66 };
67
68 gpio4_default_pins: pins-gpio4 {
69 function = "gpio";
70 groups = "gpio4agrp";
71 };
72
73 gpio6_default_pins: pins-gpio6 {
74 function = "gpio";
75 groups = "gpio6agrp";
76 };
77
78 gpio7_default_pins: pins-gpio7 {
79 function = "gpio";
80 groups = "gpio7agrp";
81 };
82
83 ide_default_pins: pins-ide {
84 function = "pata";
85 groups = "idegrp";
86 };
87
88 lcd_on_dram0_pins: pins-rasteronsdram0 {
89 function = "lcd";
90 groups = "rasteronsdram0grp";
91 };
92
93 lcd_on_dram3_pins: pins-rasteronsdram3 {
94 function = "lcd";
95 groups = "rasteronsdram3grp";
96 };
97 };
98
99 adc: adc@80900000 {
100 compatible = "cirrus,ep9301-adc";
101 reg = <0x80900000 0x28>;
102 clocks = <&syscon EP93XX_CLK_ADC>;
103 interrupt-parent = <&vic0>;
104 interrupts = <30>;
105 status = "disabled";
106 };
107
108 /*
109 * The EP93XX expansion bus is a set of up to 7 each up to 16MB
110 * windows in the 256MB space from 0x50000000 to 0x5fffffff.
111 * But since we don't require to setup it in any way, we can
112 * represent it as a simple-bus.
113 */
114 ebi: bus@80080000 {
115 compatible = "simple-bus";
116 reg = <0x80080000 0x20>;
117 native-endian;
118 #address-cells = <1>;
119 #size-cells = <1>;
120 ranges;
121 };
122
123 dma0: dma-controller@80000000 {
124 compatible = "cirrus,ep9301-dma-m2p";
125 reg = <0x80000000 0x0040>,
126 <0x80000040 0x0040>,
127 <0x80000080 0x0040>,
128 <0x800000c0 0x0040>,
129 <0x80000240 0x0040>,
130 <0x80000200 0x0040>,
131 <0x800002c0 0x0040>,
132 <0x80000280 0x0040>,
133 <0x80000340 0x0040>,
134 <0x80000300 0x0040>;
135 clocks = <&syscon EP93XX_CLK_M2P0>,
136 <&syscon EP93XX_CLK_M2P1>,
137 <&syscon EP93XX_CLK_M2P2>,
138 <&syscon EP93XX_CLK_M2P3>,
139 <&syscon EP93XX_CLK_M2P4>,
140 <&syscon EP93XX_CLK_M2P5>,
141 <&syscon EP93XX_CLK_M2P6>,
142 <&syscon EP93XX_CLK_M2P7>,
143 <&syscon EP93XX_CLK_M2P8>,
144 <&syscon EP93XX_CLK_M2P9>;
145 clock-names = "m2p0", "m2p1",
146 "m2p2", "m2p3",
147 "m2p4", "m2p5",
148 "m2p6", "m2p7",
149 "m2p8", "m2p9";
150 interrupt-parent = <&vic0>;
151 interrupts = <7>, <8>, <9>, <10>, <11>,
152 <12>, <13>, <14>, <15>, <16>;
153 #dma-cells = <2>;
154 };
155
156 dma1: dma-controller@80000100 {
157 compatible = "cirrus,ep9301-dma-m2m";
158 reg = <0x80000100 0x0040>,
159 <0x80000140 0x0040>;
160 clocks = <&syscon EP93XX_CLK_M2M0>,
161 <&syscon EP93XX_CLK_M2M1>;
162 clock-names = "m2m0", "m2m1";
163 interrupt-parent = <&vic0>;
164 interrupts = <17>, <18>;
165 #dma-cells = <2>;
166 };
167
168 eth0: ethernet@80010000 {
169 compatible = "cirrus,ep9301-eth";
170 reg = <0x80010000 0x10000>;
171 interrupt-parent = <&vic1>;
172 interrupts = <7>;
173 mdio0: mdio {
174 #address-cells = <1>;
175 #size-cells = <0>;
176 };
177 };
178
179 gpio0: gpio@80840000 {
180 compatible = "cirrus,ep9301-gpio";
181 reg = <0x80840000 0x04>,
182 <0x80840010 0x04>,
183 <0x80840090 0x1c>;
184 reg-names = "data", "dir", "intr";
185 gpio-controller;
186 #gpio-cells = <2>;
187 interrupt-controller;
188 #interrupt-cells = <2>;
189 interrupt-parent = <&vic1>;
190 interrupts = <27>;
191 };
192
193 gpio1: gpio@80840004 {
194 compatible = "cirrus,ep9301-gpio";
195 reg = <0x80840004 0x04>,
196 <0x80840014 0x04>,
197 <0x808400ac 0x1c>;
198 reg-names = "data", "dir", "intr";
199 gpio-controller;
200 #gpio-cells = <2>;
201 interrupt-controller;
202 #interrupt-cells = <2>;
203 interrupt-parent = <&vic1>;
204 interrupts = <27>;
205 };
206
207 gpio2: gpio@80840008 {
208 compatible = "cirrus,ep9301-gpio";
209 reg = <0x80840008 0x04>,
210 <0x80840018 0x04>;
211 reg-names = "data", "dir";
212 gpio-controller;
213 #gpio-cells = <2>;
214 pinctrl-names = "default";
215 pinctrl-0 = <&gpio2_default_pins>;
216 };
217
218 gpio3: gpio@8084000c {
219 compatible = "cirrus,ep9301-gpio";
220 reg = <0x8084000c 0x04>,
221 <0x8084001c 0x04>;
222 reg-names = "data", "dir";
223 gpio-controller;
224 #gpio-cells = <2>;
225 pinctrl-names = "default";
226 pinctrl-0 = <&gpio3_default_pins>;
227 };
228
229 gpio4: gpio@80840020 {
230 compatible = "cirrus,ep9301-gpio";
231 reg = <0x80840020 0x04>,
232 <0x80840024 0x04>;
233 reg-names = "data", "dir";
234 gpio-controller;
235 #gpio-cells = <2>;
236 pinctrl-names = "default";
237 pinctrl-0 = <&gpio4_default_pins>;
238 };
239
240 gpio5: gpio@80840030 {
241 compatible = "cirrus,ep9301-gpio";
242 reg = <0x80840030 0x04>,
243 <0x80840034 0x04>,
244 <0x8084004c 0x1c>;
245 reg-names = "data", "dir", "intr";
246 gpio-controller;
247 #gpio-cells = <2>;
248 interrupt-controller;
249 #interrupt-cells = <2>;
250 interrupts-extended = <&vic0 19>, <&vic0 20>,
251 <&vic0 21>, <&vic0 22>,
252 <&vic1 15>, <&vic1 16>,
253 <&vic1 17>, <&vic1 18>;
254 };
255
256 gpio6: gpio@80840038 {
257 compatible = "cirrus,ep9301-gpio";
258 reg = <0x80840038 0x04>,
259 <0x8084003c 0x04>;
260 reg-names = "data", "dir";
261 gpio-controller;
262 #gpio-cells = <2>;
263 pinctrl-names = "default";
264 pinctrl-0 = <&gpio6_default_pins>;
265 };
266
267 gpio7: gpio@80840040 {
268 compatible = "cirrus,ep9301-gpio";
269 reg = <0x80840040 0x04>,
270 <0x80840044 0x04>;
271 reg-names = "data", "dir";
272 gpio-controller;
273 #gpio-cells = <2>;
274 pinctrl-names = "default";
275 pinctrl-0 = <&gpio7_default_pins>;
276 };
277
278 i2s: i2s@80820000 {
279 compatible = "cirrus,ep9301-i2s";
280 reg = <0x80820000 0x100>;
281 #sound-dai-cells = <0>;
282 interrupt-parent = <&vic1>;
283 interrupts = <28>;
284 clocks = <&syscon EP93XX_CLK_I2S_MCLK>,
285 <&syscon EP93XX_CLK_I2S_SCLK>,
286 <&syscon EP93XX_CLK_I2S_LRCLK>;
287 clock-names = "mclk", "sclk", "lrclk";
288 dmas = <&dma0 0 1>, <&dma0 0 2>;
289 dma-names = "tx", "rx";
290 status = "disabled";
291 };
292
293 ide: ide@800a0000 {
294 compatible = "cirrus,ep9312-pata";
295 reg = <0x800a0000 0x38>;
296 interrupt-parent = <&vic1>;
297 interrupts = <8>;
298 pinctrl-names = "default";
299 pinctrl-0 = <&ide_default_pins>;
300 status = "disabled";
301 };
302
303 vic0: interrupt-controller@800b0000 {
304 compatible = "arm,pl192-vic";
305 reg = <0x800b0000 0x1000>;
306 interrupt-controller;
307 #interrupt-cells = <1>;
308 valid-mask = <0x7ffffffc>;
309 valid-wakeup-mask = <0x0>;
310 };
311
312 vic1: interrupt-controller@800c0000 {
313 compatible = "arm,pl192-vic";
314 reg = <0x800c0000 0x1000>;
315 interrupt-controller;
316 #interrupt-cells = <1>;
317 valid-mask = <0x1fffffff>;
318 valid-wakeup-mask = <0x0>;
319 };
320
321 keypad: keypad@800f0000 {
322 compatible = "cirrus,ep9307-keypad";
323 reg = <0x800f0000 0x0c>;
324 interrupt-parent = <&vic0>;
325 interrupts = <29>;
326 clocks = <&syscon EP93XX_CLK_KEYPAD>;
327 pinctrl-names = "default";
328 pinctrl-0 = <&keypad_default_pins>;
329 linux,keymap = <KEY_UP>,
330 <KEY_DOWN>,
331 <KEY_VOLUMEDOWN>,
332 <KEY_HOME>,
333 <KEY_RIGHT>,
334 <KEY_LEFT>,
335 <KEY_ENTER>,
336 <KEY_VOLUMEUP>,
337 <KEY_F6>,
338 <KEY_F8>,
339 <KEY_F9>,
340 <KEY_F10>,
341 <KEY_F1>,
342 <KEY_F2>,
343 <KEY_F3>,
344 <KEY_POWER>;
345 };
346
347 pwm0: pwm@80910000 {
348 compatible = "cirrus,ep9301-pwm";
349 reg = <0x80910000 0x10>;
350 clocks = <&syscon EP93XX_CLK_PWM>;
351 #pwm-cells = <3>;
352 status = "disabled";
353 };
354
355 pwm1: pwm@80910020 {
356 compatible = "cirrus,ep9301-pwm";
357 reg = <0x80910020 0x10>;
358 clocks = <&syscon EP93XX_CLK_PWM>;
359 #pwm-cells = <3>;
360 pinctrl-names = "default";
361 pinctrl-0 = <&pwm1_default_pins>;
362 status = "disabled";
363 };
364
365 rtc0: rtc@80920000 {
366 compatible = "cirrus,ep9301-rtc";
367 reg = <0x80920000 0x100>;
368 };
369
370 spi0: spi@808a0000 {
371 compatible = "cirrus,ep9301-spi";
372 reg = <0x808a0000 0x18>;
373 #address-cells = <1>;
374 #size-cells = <0>;
375 interrupt-parent = <&vic1>;
376 interrupts = <21>;
377 clocks = <&syscon EP93XX_CLK_SPI>;
378 pinctrl-names = "default";
379 pinctrl-0 = <&spi_default_pins>;
380 status = "disabled";
381 };
382
383 timer: timer@80810000 {
384 compatible = "cirrus,ep9301-timer";
385 reg = <0x80810000 0x100>;
386 interrupt-parent = <&vic1>;
387 interrupts = <19>;
388 };
389
390 uart0: serial@808c0000 {
391 compatible = "arm,pl011", "arm,primecell";
392 reg = <0x808c0000 0x1000>;
393 arm,primecell-periphid = <0x00041010>;
394 clocks = <&syscon EP93XX_CLK_UART1>, <&syscon EP93XX_CLK_UART>;
395 clock-names = "uartclk", "apb_pclk";
396 interrupt-parent = <&vic1>;
397 interrupts = <20>;
398 status = "disabled";
399 };
400
401 uart1: uart@808d0000 {
402 compatible = "arm,primecell";
403 reg = <0x808d0000 0x1000>;
404 arm,primecell-periphid = <0x00041010>;
405 clocks = <&syscon EP93XX_CLK_UART2>, <&syscon EP93XX_CLK_UART>;
406 clock-names = "apb:uart2", "apb_pclk";
407 interrupt-parent = <&vic1>;
408 interrupts = <22>;
409 status = "disabled";
410 };
411
412 uart2: uart@808b0000 {
413 compatible = "arm,primecell";
414 reg = <0x808b0000 0x1000>;
415 arm,primecell-periphid = <0x00041010>;
416 clocks = <&syscon EP93XX_CLK_UART3>, <&syscon EP93XX_CLK_UART>;
417 clock-names = "apb:uart3", "apb_pclk";
418 interrupt-parent = <&vic1>;
419 interrupts = <23>;
420 status = "disabled";
421 };
422
423 usb0: usb@80020000 {
424 compatible = "generic-ohci";
425 reg = <0x80020000 0x10000>;
426 interrupt-parent = <&vic1>;
427 interrupts = <24>;
428 clocks = <&syscon EP93XX_CLK_USB>;
429 status = "disabled";
430 };
431
432 watchdog0: watchdog@80940000 {
433 compatible = "cirrus,ep9301-wdt";
434 reg = <0x80940000 0x08>;
435 };
436 };
437
438 xtali: oscillator {
439 compatible = "fixed-clock";
440 #clock-cells = <0>;
441 clock-frequency = <14745600>;
442 clock-output-names = "xtali";
443 };
444};