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