xref: /openbmc/u-boot/arch/arm/dts/da850.dtsi (revision a3b36c84)
1/*
2 * Copyright 2012 DENX Software Engineering GmbH
3 * Heiko Schocher <hs@denx.de>
4 *
5 * This program is free software; you can redistribute  it and/or modify it
6 * under  the terms of  the GNU General  Public License as published by the
7 * Free Software Foundation;  either version 2 of the  License, or (at your
8 * option) any later version.
9 */
10#include "skeleton.dtsi"
11#include <dt-bindings/interrupt-controller/irq.h>
12
13/ {
14	arm {
15		#address-cells = <1>;
16		#size-cells = <1>;
17		ranges;
18		intc: interrupt-controller@fffee000 {
19			compatible = "ti,cp-intc";
20			interrupt-controller;
21			#interrupt-cells = <1>;
22			ti,intc-size = <101>;
23			reg = <0xfffee000 0x2000>;
24		};
25	};
26
27	aliases {
28		spi0 = &spi0;
29	};
30
31	soc@1c00000 {
32		compatible = "simple-bus";
33		model = "da850";
34		#address-cells = <1>;
35		#size-cells = <1>;
36		ranges = <0x0 0x01c00000 0x400000>;
37		interrupt-parent = <&intc>;
38
39		pmx_core: pinmux@14120 {
40			compatible = "pinctrl-single";
41			reg = <0x14120 0x50>;
42			#address-cells = <1>;
43			#size-cells = <0>;
44			#pinctrl-cells = <2>;
45			pinctrl-single,bit-per-mux;
46			pinctrl-single,register-width = <32>;
47			pinctrl-single,function-mask = <0xf>;
48			status = "disabled";
49
50			serial0_rtscts_pins: pinmux_serial0_rtscts_pins {
51				pinctrl-single,bits = <
52					/* UART0_RTS UART0_CTS */
53					0x0c 0x22000000 0xff000000
54				>;
55			};
56			serial0_rxtx_pins: pinmux_serial0_rxtx_pins {
57				pinctrl-single,bits = <
58					/* UART0_TXD UART0_RXD */
59					0x0c 0x00220000 0x00ff0000
60				>;
61			};
62			serial1_rtscts_pins: pinmux_serial1_rtscts_pins {
63				pinctrl-single,bits = <
64					/* UART1_CTS UART1_RTS */
65					0x00 0x00440000 0x00ff0000
66				>;
67			};
68			serial1_rxtx_pins: pinmux_serial1_rxtx_pins {
69				pinctrl-single,bits = <
70					/* UART1_TXD UART1_RXD */
71					0x10 0x22000000 0xff000000
72				>;
73			};
74			serial2_rtscts_pins: pinmux_serial2_rtscts_pins {
75				pinctrl-single,bits = <
76					/* UART2_CTS UART2_RTS */
77					0x00 0x44000000 0xff000000
78				>;
79			};
80			serial2_rxtx_pins: pinmux_serial2_rxtx_pins {
81				pinctrl-single,bits = <
82					/* UART2_TXD UART2_RXD */
83					0x10 0x00220000 0x00ff0000
84				>;
85			};
86			i2c0_pins: pinmux_i2c0_pins {
87				pinctrl-single,bits = <
88					/* I2C0_SDA,I2C0_SCL */
89					0x10 0x00002200 0x0000ff00
90				>;
91			};
92			i2c1_pins: pinmux_i2c1_pins {
93				pinctrl-single,bits = <
94					/* I2C1_SDA, I2C1_SCL */
95					0x10 0x00440000 0x00ff0000
96				>;
97			};
98			mmc0_pins: pinmux_mmc_pins {
99				pinctrl-single,bits = <
100					/* MMCSD0_DAT[3] MMCSD0_DAT[2]
101					 * MMCSD0_DAT[1] MMCSD0_DAT[0]
102					 * MMCSD0_CMD    MMCSD0_CLK
103					 */
104					0x28 0x00222222  0x00ffffff
105				>;
106			};
107			ehrpwm0a_pins: pinmux_ehrpwm0a_pins {
108				pinctrl-single,bits = <
109					/* EPWM0A */
110					0xc 0x00000002 0x0000000f
111				>;
112			};
113			ehrpwm0b_pins: pinmux_ehrpwm0b_pins {
114				pinctrl-single,bits = <
115					/* EPWM0B */
116					0xc 0x00000020 0x000000f0
117				>;
118			};
119			ehrpwm1a_pins: pinmux_ehrpwm1a_pins {
120				pinctrl-single,bits = <
121					/* EPWM1A */
122					0x14 0x00000002 0x0000000f
123				>;
124			};
125			ehrpwm1b_pins: pinmux_ehrpwm1b_pins {
126				pinctrl-single,bits = <
127					/* EPWM1B */
128					0x14 0x00000020 0x000000f0
129				>;
130			};
131			ecap0_pins: pinmux_ecap0_pins {
132				pinctrl-single,bits = <
133					/* ECAP0_APWM0 */
134					0x8 0x20000000 0xf0000000
135				>;
136			};
137			ecap1_pins: pinmux_ecap1_pins {
138				pinctrl-single,bits = <
139					/* ECAP1_APWM1 */
140					0x4 0x40000000 0xf0000000
141				>;
142			};
143			ecap2_pins: pinmux_ecap2_pins {
144				pinctrl-single,bits = <
145					/* ECAP2_APWM2 */
146					0x4 0x00000004 0x0000000f
147				>;
148			};
149			spi0_pins: pinmux_spi0_pins {
150				pinctrl-single,bits = <
151					/* SIMO, SOMI, CLK */
152					0xc 0x00001101 0x0000ff0f
153				>;
154			};
155			spi0_cs0_pin: pinmux_spi0_cs0 {
156				pinctrl-single,bits = <
157					/* CS0 */
158					0x10 0x00000010 0x000000f0
159				>;
160			};
161			spi0_cs3_pin: pinmux_spi0_cs3_pin {
162				pinctrl-single,bits = <
163					/* CS3 */
164					0xc 0x01000000 0x0f000000
165				>;
166			};
167			spi1_pins: pinmux_spi1_pins {
168				pinctrl-single,bits = <
169					/* SIMO, SOMI, CLK */
170					0x14 0x00110100 0x00ff0f00
171				>;
172			};
173			spi1_cs0_pin: pinmux_spi1_cs0 {
174				pinctrl-single,bits = <
175					/* CS0 */
176					0x14 0x00000010 0x000000f0
177				>;
178			};
179			mdio_pins: pinmux_mdio_pins {
180				pinctrl-single,bits = <
181					/* MDIO_CLK, MDIO_D */
182					0x10 0x00000088 0x000000ff
183				>;
184			};
185			mii_pins: pinmux_mii_pins {
186				pinctrl-single,bits = <
187					/*
188					 * MII_TXEN, MII_TXCLK, MII_COL
189					 * MII_TXD_3, MII_TXD_2, MII_TXD_1
190					 * MII_TXD_0
191					 */
192					0x8 0x88888880 0xfffffff0
193					/*
194					 * MII_RXER, MII_CRS, MII_RXCLK
195					 * MII_RXDV, MII_RXD_3, MII_RXD_2
196					 * MII_RXD_1, MII_RXD_0
197					 */
198					0xc 0x88888888 0xffffffff
199				>;
200			};
201			lcd_pins: pinmux_lcd_pins {
202				pinctrl-single,bits = <
203					/*
204					 * LCD_D[2], LCD_D[3], LCD_D[4], LCD_D[5],
205					 * LCD_D[6], LCD_D[7]
206					 */
207					0x40 0x22222200 0xffffff00
208					/*
209					 * LCD_D[10], LCD_D[11], LCD_D[12], LCD_D[13],
210					 * LCD_D[14], LCD_D[15], LCD_D[0], LCD_D[1]
211					 */
212					0x44 0x22222222 0xffffffff
213					/* LCD_D[8], LCD_D[9] */
214					0x48 0x00000022 0x000000ff
215
216					/* LCD_PCLK */
217					0x48 0x02000000 0x0f000000
218					/* LCD_AC_ENB_CS, LCD_VSYNC, LCD_HSYNC */
219					0x4c 0x02000022 0x0f0000ff
220				>;
221			};
222			vpif_capture_pins: vpif_capture_pins {
223				pinctrl-single,bits = <
224					/* VP_DIN[2..7], VP_CLKIN1, VP_CLKIN0 */
225					0x38 0x11111111 0xffffffff
226					/* VP_DIN[10..15,0..1] */
227					0x3c 0x11111111 0xffffffff
228					/* VP_DIN[8..9] */
229					0x40 0x00000011 0x000000ff
230				>;
231			};
232			vpif_display_pins: vpif_display_pins {
233				pinctrl-single,bits = <
234					/* VP_DOUT[2..7] */
235					0x40 0x11111100 0xffffff00
236					/* VP_DOUT[10..15,0..1] */
237					0x44 0x11111111 0xffffffff
238					/*  VP_DOUT[8..9] */
239					0x48 0x00000011 0x000000ff
240					/*
241					 * VP_CLKOUT3, VP_CLKIN3,
242					 * VP_CLKOUT2, VP_CLKIN2
243					 */
244					0x4c 0x00111100 0x00ffff00
245				>;
246			};
247		};
248		prictrl: priority-controller@14110 {
249			compatible = "ti,da850-mstpri";
250			reg = <0x14110 0x0c>;
251			status = "disabled";
252		};
253		cfgchip: chip-controller@1417c {
254			compatible = "ti,da830-cfgchip", "syscon", "simple-mfd";
255			reg = <0x1417c 0x14>;
256
257			usb_phy: usb-phy {
258				compatible = "ti,da830-usb-phy";
259				#phy-cells = <1>;
260				status = "disabled";
261			};
262		};
263		edma0: edma@0 {
264			compatible = "ti,edma3-tpcc";
265			/* eDMA3 CC0: 0x01c0 0000 - 0x01c0 7fff */
266			reg =	<0x0 0x8000>;
267			reg-names = "edma3_cc";
268			interrupts = <11 12>;
269			interrupt-names = "edma3_ccint", "edma3_ccerrint";
270			#dma-cells = <2>;
271
272			ti,tptcs = <&edma0_tptc0 7>, <&edma0_tptc1 0>;
273		};
274		edma0_tptc0: tptc@8000 {
275			compatible = "ti,edma3-tptc";
276			reg =	<0x8000 0x400>;
277			interrupts = <13>;
278			interrupt-names = "edm3_tcerrint";
279		};
280		edma0_tptc1: tptc@8400 {
281			compatible = "ti,edma3-tptc";
282			reg =	<0x8400 0x400>;
283			interrupts = <32>;
284			interrupt-names = "edm3_tcerrint";
285		};
286		edma1: edma@230000 {
287			compatible = "ti,edma3-tpcc";
288			/* eDMA3 CC1: 0x01e3 0000 - 0x01e3 7fff */
289			reg =	<0x230000 0x8000>;
290			reg-names = "edma3_cc";
291			interrupts = <93 94>;
292			interrupt-names = "edma3_ccint", "edma3_ccerrint";
293			#dma-cells = <2>;
294
295			ti,tptcs = <&edma1_tptc0 7>;
296		};
297		edma1_tptc0: tptc@238000 {
298			compatible = "ti,edma3-tptc";
299			reg =	<0x238000 0x400>;
300			interrupts = <95>;
301			interrupt-names = "edm3_tcerrint";
302		};
303		serial0: serial@42000 {
304			compatible = "ti,da830-uart", "ns16550a";
305			reg = <0x42000 0x100>;
306			reg-io-width = <4>;
307			reg-shift = <2>;
308			interrupts = <25>;
309			status = "disabled";
310		};
311		serial1: serial@10c000 {
312			compatible = "ti,da830-uart", "ns16550a";
313			reg = <0x10c000 0x100>;
314			reg-io-width = <4>;
315			reg-shift = <2>;
316			interrupts = <53>;
317			status = "disabled";
318		};
319		serial2: serial@10d000 {
320			compatible = "ti,da830-uart", "ns16550a";
321			reg = <0x10d000 0x100>;
322			reg-io-width = <4>;
323			reg-shift = <2>;
324			interrupts = <61>;
325			status = "disabled";
326		};
327		rtc0: rtc@23000 {
328			compatible = "ti,da830-rtc";
329			reg = <0x23000 0x1000>;
330			interrupts = <19
331				      19>;
332			status = "disabled";
333		};
334		i2c0: i2c@22000 {
335			compatible = "ti,davinci-i2c";
336			reg = <0x22000 0x1000>;
337			interrupts = <15>;
338			#address-cells = <1>;
339			#size-cells = <0>;
340			status = "disabled";
341		};
342		i2c1: i2c@228000 {
343			compatible = "ti,davinci-i2c";
344			reg = <0x228000 0x1000>;
345			interrupts = <51>;
346			#address-cells = <1>;
347			#size-cells = <0>;
348			status = "disabled";
349		};
350		wdt: wdt@21000 {
351			compatible = "ti,davinci-wdt";
352			reg = <0x21000 0x1000>;
353			status = "disabled";
354		};
355		mmc0: mmc@40000 {
356			compatible = "ti,da830-mmc";
357			reg = <0x40000 0x1000>;
358			cap-sd-highspeed;
359			cap-mmc-highspeed;
360			interrupts = <16>;
361			dmas = <&edma0 16 0>, <&edma0 17 0>;
362			dma-names = "rx", "tx";
363			status = "disabled";
364		};
365		vpif: video@217000 {
366			compatible = "ti,da850-vpif";
367			reg = <0x217000 0x1000>;
368			interrupts = <92>;
369			status = "disabled";
370
371			/* VPIF capture port */
372			port@0 {
373				#address-cells = <1>;
374				#size-cells = <0>;
375			};
376
377			/* VPIF display port */
378			port@1 {
379				#address-cells = <1>;
380				#size-cells = <0>;
381			};
382		};
383		mmc1: mmc@21b000 {
384			compatible = "ti,da830-mmc";
385			reg = <0x21b000 0x1000>;
386			cap-sd-highspeed;
387			cap-mmc-highspeed;
388			interrupts = <72>;
389			dmas = <&edma1 28 0>, <&edma1 29 0>;
390			dma-names = "rx", "tx";
391			status = "disabled";
392		};
393		ehrpwm0: pwm@300000 {
394			compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm",
395				     "ti,am33xx-ehrpwm";
396			#pwm-cells = <3>;
397			reg = <0x300000 0x2000>;
398			status = "disabled";
399		};
400		ehrpwm1: pwm@302000 {
401			compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm",
402				     "ti,am33xx-ehrpwm";
403			#pwm-cells = <3>;
404			reg = <0x302000 0x2000>;
405			status = "disabled";
406		};
407		ecap0: ecap@306000 {
408			compatible = "ti,da850-ecap", "ti,am3352-ecap",
409				     "ti,am33xx-ecap";
410			#pwm-cells = <3>;
411			reg = <0x306000 0x80>;
412			status = "disabled";
413		};
414		ecap1: ecap@307000 {
415			compatible = "ti,da850-ecap", "ti,am3352-ecap",
416				     "ti,am33xx-ecap";
417			#pwm-cells = <3>;
418			reg = <0x307000 0x80>;
419			status = "disabled";
420		};
421		ecap2: ecap@308000 {
422			compatible = "ti,da850-ecap", "ti,am3352-ecap",
423				     "ti,am33xx-ecap";
424			#pwm-cells = <3>;
425			reg = <0x308000 0x80>;
426			status = "disabled";
427		};
428		spi0: spi@41000 {
429			#address-cells = <1>;
430			#size-cells = <0>;
431			compatible = "ti,da830-spi";
432			reg = <0x41000 0x1000>;
433			num-cs = <6>;
434			ti,davinci-spi-intr-line = <1>;
435			interrupts = <20>;
436			dmas = <&edma0 14 0>, <&edma0 15 0>;
437			dma-names = "rx", "tx";
438			status = "disabled";
439		};
440		spi1: spi@30e000 {
441			#address-cells = <1>;
442			#size-cells = <0>;
443			compatible = "ti,da830-spi";
444			reg = <0x30e000 0x1000>;
445			num-cs = <4>;
446			ti,davinci-spi-intr-line = <1>;
447			interrupts = <56>;
448			dmas = <&edma0 18 0>, <&edma0 19 0>;
449			dma-names = "rx", "tx";
450			status = "disabled";
451		};
452		usb0: usb@200000 {
453			compatible = "ti,da830-musb";
454			reg = <0x200000 0x1000>;
455			ranges;
456			interrupts = <58>;
457			interrupt-names = "mc";
458			dr_mode = "otg";
459			phys = <&usb_phy 0>;
460			phy-names = "usb-phy";
461			status = "disabled";
462
463			#address-cells = <1>;
464			#size-cells = <1>;
465
466			dmas = <&cppi41dma 0 0 &cppi41dma 1 0
467				&cppi41dma 2 0 &cppi41dma 3 0
468				&cppi41dma 0 1 &cppi41dma 1 1
469				&cppi41dma 2 1 &cppi41dma 3 1>;
470			dma-names =
471				"rx1", "rx2", "rx3", "rx4",
472				"tx1", "tx2", "tx3", "tx4";
473
474			cppi41dma: dma-controller@201000 {
475				compatible = "ti,da830-cppi41";
476				reg =  <0x201000 0x1000
477					0x202000 0x1000
478					0x204000 0x4000>;
479				reg-names = "controller",
480					    "scheduler", "queuemgr";
481				interrupts = <58>;
482				#dma-cells = <2>;
483				#dma-channels = <4>;
484				status = "okay";
485			};
486		};
487		sata: sata@218000 {
488			compatible = "ti,da850-ahci";
489			reg = <0x218000 0x2000>, <0x22c018 0x4>;
490			interrupts = <67>;
491			status = "disabled";
492		};
493		mdio: mdio@224000 {
494			compatible = "ti,davinci_mdio";
495			#address-cells = <1>;
496			#size-cells = <0>;
497			reg = <0x224000 0x1000>;
498			status = "disabled";
499		};
500		eth0: ethernet@220000 {
501			compatible = "ti,davinci-dm6467-emac";
502			reg = <0x220000 0x4000>;
503			ti,davinci-ctrl-reg-offset = <0x3000>;
504			ti,davinci-ctrl-mod-reg-offset = <0x2000>;
505			ti,davinci-ctrl-ram-offset = <0>;
506			ti,davinci-ctrl-ram-size = <0x2000>;
507			local-mac-address = [ 00 00 00 00 00 00 ];
508			interrupts = <33
509					34
510					35
511					36
512					>;
513			status = "disabled";
514		};
515		usb1: usb@225000 {
516			compatible = "ti,da830-ohci";
517			reg = <0x225000 0x1000>;
518			interrupts = <59>;
519			phys = <&usb_phy 1>;
520			phy-names = "usb-phy";
521			status = "disabled";
522		};
523		gpio: gpio@226000 {
524			compatible = "ti,dm6441-gpio";
525			gpio-controller;
526			#gpio-cells = <2>;
527			reg = <0x226000 0x1000>;
528			interrupts = <42 IRQ_TYPE_EDGE_BOTH
529				43 IRQ_TYPE_EDGE_BOTH 44 IRQ_TYPE_EDGE_BOTH
530				45 IRQ_TYPE_EDGE_BOTH 46 IRQ_TYPE_EDGE_BOTH
531				47 IRQ_TYPE_EDGE_BOTH 48 IRQ_TYPE_EDGE_BOTH
532				49 IRQ_TYPE_EDGE_BOTH 50 IRQ_TYPE_EDGE_BOTH>;
533			ti,ngpio = <144>;
534			ti,davinci-gpio-unbanked = <0>;
535			status = "disabled";
536			interrupt-controller;
537			#interrupt-cells = <2>;
538		};
539		pinconf: pin-controller@22c00c {
540			compatible = "ti,da850-pupd";
541			reg = <0x22c00c 0x8>;
542			status = "disabled";
543		};
544
545		mcasp0: mcasp@100000 {
546			compatible = "ti,da830-mcasp-audio";
547			reg = <0x100000 0x2000>,
548			      <0x102000 0x400000>;
549			reg-names = "mpu", "dat";
550			interrupts = <54>;
551			interrupt-names = "common";
552			status = "disabled";
553			dmas = <&edma0 1 1>,
554				<&edma0 0 1>;
555			dma-names = "tx", "rx";
556		};
557
558		lcdc: display@213000 {
559			compatible = "ti,da850-tilcdc";
560			reg = <0x213000 0x1000>;
561			interrupts = <52>;
562			max-pixelclock = <37500>;
563			status = "disabled";
564		};
565	};
566	aemif: aemif@68000000 {
567		compatible = "ti,da850-aemif";
568		#address-cells = <2>;
569		#size-cells = <1>;
570
571		reg = <0x68000000 0x00008000>;
572		ranges = <0 0 0x60000000 0x08000000
573			  1 0 0x68000000 0x00008000>;
574		status = "disabled";
575	};
576	memctrl: memory-controller@b0000000 {
577		compatible = "ti,da850-ddr-controller";
578		reg = <0xb0000000 0xe8>;
579		status = "disabled";
580	};
581};
582