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