am335x.dtsi revision 273623
1356290Sjkim/*-
296593Smarkm * Copyright (c) 2012 Damjan Marion <dmarion@Freebsd.org>
396593Smarkm * All rights reserved.
4142429Snectar *
596593Smarkm * Redistribution and use in source and binary forms, with or without
696593Smarkm * modification, are permitted provided that the following conditions
796593Smarkm * are met:
896593Smarkm * 1. Redistributions of source code must retain the above copyright
996593Smarkm *    notice, this list of conditions and the following disclaimer.
1096593Smarkm * 2. Redistributions in binary form must reproduce the above copyright
1196593Smarkm *    notice, this list of conditions and the following disclaimer in the
1296593Smarkm *    documentation and/or other materials provided with the distribution.
1396593Smarkm *
1496593Smarkm * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1596593Smarkm * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1696593Smarkm * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1796593Smarkm * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1896593Smarkm * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1996593Smarkm * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20215698Ssimon * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21215698Ssimon * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22215698Ssimon * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23215698Ssimon * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24215698Ssimon * SUCH DAMAGE.
2596593Smarkm * 
2696593Smarkm * $FreeBSD: stable/10/sys/boot/fdt/dts/arm/am335x.dtsi 273623 2014-10-25 02:02:20Z rpaulo $
2796593Smarkm */
2896593Smarkm
2996593Smarkm/ {
3096593Smarkm	#address-cells = <1>;
3196593Smarkm	#size-cells = <1>;
3296593Smarkm
3396593Smarkm	interrupt-parent = <&AINTC>;
3496593Smarkm
3596593Smarkm	SOC: am335x {
3696593Smarkm		#address-cells = <1>;
3796593Smarkm		#size-cells = <1>;
3896593Smarkm		compatible = "simple-bus";
3996593Smarkm		ranges;
4096593Smarkm		bus-frequency = <0>;
41276861Sjkim
42276861Sjkim		AINTC: interrupt-controller@48200000 {
4396593Smarkm			compatible = "ti,aintc";
4496593Smarkm			interrupt-controller;
45215698Ssimon			#address-cells = <0>;
46215698Ssimon			#interrupt-cells = <1>;
47215698Ssimon			reg =	< 0x48200000 0x1000 >;
48215698Ssimon		};
49312826Sjkim
50215698Ssimon		scm@44e10000 {
51142429Snectar			compatible = "ti,scm";
52142429Snectar			reg =	< 0x44e10000 0x2000 >;
53276861Sjkim		};
54276861Sjkim
55276861Sjkim		prcm@44E00000 {
5696593Smarkm			compatible = "am335x,prcm";
57344604Sjkim			#address-cells = <1>;
58344604Sjkim			#size-cells = <1>;
59344604Sjkim			reg = < 0x44E00000 0x1300 >;
60344604Sjkim		};
61344604Sjkim
62344604Sjkim		dmtimers@44E05000 {
63215698Ssimon			compatible = "ti,am335x-dmtimer";
64344604Sjkim			#address-cells = <1>;
65344604Sjkim			#size-cells = <1>;
66344604Sjkim			reg =	< 0x44E05000 0x1000
67344604Sjkim				  0x44E31000 0x1000
68276861Sjkim				  0x48040000 0x1000
69215698Ssimon				  0x48042000 0x1000
70344604Sjkim				  0x48044000 0x1000
7196593Smarkm				  0x48046000 0x1000
7296593Smarkm				  0x48048000 0x1000
7396593Smarkm				  0x4804A000 0x1000 >;
7496593Smarkm			interrupts = < 66 67 68 69 92 93 94 95 >;
7596593Smarkm			interrupt-parent = <&AINTC>;
7696593Smarkm		};
7796593Smarkm
7896593Smarkm		adc0: adc@44E0D000 {
7996593Smarkm			compatible = "ti,adc";
8096593Smarkm			reg = <0x44E0D000 0x2000>;
8196593Smarkm			interrupts = < 16 >;
8296593Smarkm			interrupt-parent = <&AINTC>;
8396593Smarkm 		};
8496593Smarkm
8596593Smarkm		wdt1@44E35000 {
8696593Smarkm			compatible = "ti,omap3-wdt";
8796593Smarkm			reg = <0x44E35000 0x1000>;
8896593Smarkm			interrupts = <91>;
8996593Smarkm			interrupt-parent = <&AINTC>;
9096593Smarkm		};
9196593Smarkm 		
9296593Smarkm		GPIO: gpio {
9396593Smarkm			#gpio-cells = <3>;
9496593Smarkm			compatible = "ti,gpio";
9596593Smarkm			gpio-controller;
9696593Smarkm			reg =<	0x44E07000 0x1000
9796593Smarkm				0x4804C000 0x1000
9896593Smarkm				0x481AC000 0x1000
9996593Smarkm				0x481AE000 0x1000 >;
10096593Smarkm			interrupts = < 96 97 98 99 32 33 62 63 >;
10196593Smarkm			interrupt-parent = <&AINTC>;
10296593Smarkm		};
10396593Smarkm
10496593Smarkm		uart0: serial@44E09000 {
10596593Smarkm			compatible = "ti,ns16550";
10696593Smarkm			reg = <0x44E09000 0x1000>;
10796593Smarkm			reg-shift = <2>;
10896593Smarkm			interrupts = < 72 >;
10996593Smarkm			interrupt-parent = <&AINTC>;
11096593Smarkm 			clock-frequency = < 48000000 >;
11196593Smarkm			uart-device-id = < 0 >;
11296593Smarkm 		};
11396593Smarkm 		
11496593Smarkm 		uart1: serial@48022000 {
11596593Smarkm 			compatible = "ti,ns16550";
11696593Smarkm 			reg = <0x48022000 0x1000>;
11796593Smarkm 			reg-shift = <2>;
11896593Smarkm 			interrupts = < 73 >;
11996593Smarkm 			interrupt-parent = <&AINTC>;
12096593Smarkm 			clock-frequency = < 48000000 >; 
12196593Smarkm			uart-device-id = < 1 >;
12296593Smarkm			status = "disabled";
12396593Smarkm 		};
12496593Smarkm 		
12596593Smarkm 		uart2: serial@48024000 {
12696593Smarkm 			compatible = "ti,ns16550";
12796593Smarkm 			reg = <0x48024000 0x1000>;
12896593Smarkm 			reg-shift = <2>;
12996593Smarkm 			interrupts = < 74 >;
13096593Smarkm 			interrupt-parent = <&AINTC>;
13196593Smarkm 			clock-frequency = < 48000000 >; 
13296593Smarkm			uart-device-id = < 2 >;
133142429Snectar			status = "disabled";
13496593Smarkm 		};
135100946Snectar 		
136356290Sjkim 		uart3: serial@481a6000 {
137215698Ssimon 			compatible = "ti,ns16550";
138215698Ssimon 			reg = <0x481A6000 0x1000>;
139215698Ssimon 			reg-shift = <2>;
140215698Ssimon 			interrupts = < 44 >;
14196593Smarkm 			interrupt-parent = <&AINTC>;
142142429Snectar 			clock-frequency = < 48000000 >; 
14396593Smarkm			uart-device-id = < 3 >;
14496593Smarkm			status = "disabled";
14596593Smarkm 		};
14696593Smarkm 
147215698Ssimon 		uart4: serial@481a8000 {
148160819Ssimon 			compatible = "ti,ns16550";
14996593Smarkm 			reg = <0x481A8000 0x1000>;
150215698Ssimon 			reg-shift = <2>;
151160819Ssimon 			interrupts = < 45 >;
15296593Smarkm 			interrupt-parent = <&AINTC>;
15396593Smarkm 			clock-frequency = < 48000000 >; 
15496593Smarkm			uart-device-id = < 4 >;
15596593Smarkm			status = "disabled";
156344604Sjkim 		};
15796593Smarkm 
15896593Smarkm 		uart5: serial@481aa000 {
15996593Smarkm 			compatible = "ti,ns16550";
160269682Sjkim 			reg = <0x481AA000 0x1000>;
161269682Sjkim 			reg-shift = <2>;
162344604Sjkim 			interrupts = < 46 >;
163269682Sjkim 			interrupt-parent = <&AINTC>;
16496593Smarkm 			clock-frequency = < 48000000 >; 
16596593Smarkm			uart-device-id = < 5 >;
16696593Smarkm			status = "disabled";
167344604Sjkim  		};
16896593Smarkm
16996593Smarkm		edma3@49000000 {
17096593Smarkm			compatible = "ti,edma3";
171344604Sjkim			reg =<	0x49000000 0x100000	/* Channel Controller Regs */
17296593Smarkm				0x49800000 0x100000	/* Transfer Controller 0 Regs */
17396593Smarkm				0x49900000 0x100000	/* Transfer Controller 1 Regs */
17496593Smarkm				0x49a00000 0x100000 >;	/* Transfer Controller 2 Regs */
17596593Smarkm			interrupts = <12 13 14>;
17696593Smarkm			interrupt-parent = <&AINTC>;
177344604Sjkim		};
17896593Smarkm
17996593Smarkm		mmchs0@48060000 {
180344604Sjkim			compatible = "ti,omap3-hsmmc", "ti,mmchs";
18196593Smarkm			reg =<0x48060000 0x1000 >;
18296593Smarkm			interrupts = <64>;
18396593Smarkm			interrupt-parent = <&AINTC>;
18496593Smarkm			mmchs-device-id = <0>;
18596593Smarkm			mmchs-wp-gpio-pin = <0xffffffff>;
18696593Smarkm			ti,dual-volt;
187276861Sjkim		};
18896593Smarkm
18996593Smarkm		mmchs1@481D8000 {
190344604Sjkim			compatible = "ti,omap3-hsmmc", "ti,mmchs";
191344604Sjkim			reg =<0x481D8000 0x1000 >;
192344604Sjkim			interrupts = <28>;
19396593Smarkm			interrupt-parent = <&AINTC>;
19496593Smarkm			mmchs-device-id = <1>;
195344604Sjkim			mmchs-wp-gpio-pin = <0xffffffff>;
19696593Smarkm			status = "disabled";
197		};
198
199		enet0: ethernet@4A100000 {
200			#address-cells = <1>;
201			#size-cells = <1>;
202			compatible = "ti,cpsw";
203			reg = <0x4A100000 0x4000>;
204			interrupts = <40 41 42 43>;
205			interrupt-parent = <&AINTC>;
206			phy-handle = <&phy0>;
207			mdio@0 {
208				#address-cells = <1>;
209				#size-cells = <0>;
210				compatible = "ti,cpsw-mdio";
211				phy0: ethernet-phy@0 {
212					reg = <0x0>;
213				};
214			};
215		};
216
217		i2c0: i2c@44e0b000 {
218			#address-cells = <1>;
219			#size-cells = <0>;
220			compatible = "ti,i2c";
221			reg =<	0x44e0b000 0x1000 >;
222			interrupts = <70>;
223			interrupt-parent = <&AINTC>;
224			i2c-device-id = <0>;
225		};
226
227		i2c1: i2c@4802a000 {
228			#address-cells = <1>;
229			#size-cells = <0>;
230			compatible = "ti,i2c";
231			reg =<  0x4802a000 0x1000 >;
232			interrupts = <71>;
233			interrupt-parent = <&AINTC>;
234			i2c-device-id = <1>;
235		};
236
237		i2c2: i2c@4819c000 {
238			#address-cells = <1>;
239			#size-cells = <0>;
240			compatible = "ti,i2c";
241			reg =<  0x4819c000 0x1000 >;
242			interrupts = <30>;
243			interrupt-parent = <&AINTC>;
244			i2c-device-id = <2>;
245		};
246
247		pwm@48300000 {
248			compatible = "ti,am335x-pwm";
249			#address-cells = <1>;
250			#size-cells = <1>;
251			reg = < 0x48300000 0x100	/* PWMSS0 */
252				0x48300100 0x80		/* eCAP0 */
253				0x48300180 0x80		/* eQEP0 */
254				0x48300200 0x60		/* ePWM0 */
255			>;
256			interrupts = <86 58>; /* ePWM0INT, ePWM0_TZINT */
257			interrupt-parent = <&AINTC>;
258			pwm-device-id = <0>;
259		};
260
261		pwm@48302000 {
262			compatible = "ti,am335x-pwm";
263			#address-cells = <1>;
264			#size-cells = <1>;
265			reg = < 0x48302000 0x100	/* PWMSS1 */
266				0x48302100 0x80		/* eCAP1 */
267				0x48302180 0x80		/* eQEP1 */
268				0x48302200 0x60		/* ePWM1 */
269			>;
270			interrupts = <87 59>; /* ePWM1INT, ePWM1_TZINT */
271			interrupt-parent = <&AINTC>;
272			pwm-device-id = <1>;
273		};
274
275		pwm@48304000 {
276			compatible = "ti,am335x-pwm";
277			#address-cells = <1>;
278			#size-cells = <1>;
279			reg = < 0x48304000 0x100	/* PWMSS2 */
280				0x48304100 0x80		/* eCAP2 */
281				0x48304180 0x80		/* eQEP2 */
282				0x48304200 0x60		/* ePWM2 */
283			>;
284			interrupts = <88 60>; /* ePWM2INT, ePWM2_TZINT */
285			interrupt-parent = <&AINTC>;
286			pwm-device-id = <2>;
287		};
288
289		lcd: lcd@4830e000 {
290			#address-cells = <1>;
291			#size-cells = <0>;
292			compatible = "ti,am335x-lcd";
293			reg =<	0x4830e000 0x1000 >;
294			interrupts = <36>;
295			interrupt-parent = <&AINTC>;
296		};
297
298 		usb@47400000 {
299 			#address-cells = <1>;
300 			#size-cells = <0>;
301 			compatible = "ti,musb-am33xx";
302 			reg =<	0x47400000 0x1000	/* USBSS */
303 				0x47401000 0x300	/* USB0 */
304 				0x47401300 0x100 	/* USB0_PHY */
305 				0x47401400 0x400 	/* USB0_CORE */
306 				0x47401800 0x300 	/* USB1 */
307 				0x47401B00 0x100 	/* USB1_PHY */
308 				0x47401C00 0x400 	/* USB1_CORE */
309 			>;
310 			interrupts = <17 18 19>;
311 			interrupt-parent = <&AINTC>;
312 			/* 1 - Host Mode, 0 - Device Mode */
313 			modemask = <2>;
314 		};
315
316		mbox0@480C8000 {
317			compatible = "am335x,system-mbox";
318			reg = < 0x480C8000 0x1000 >;
319			interrupts = <77>;
320			interrupt-parent = <&AINTC>;
321		};
322
323		spinlock0@480CA000 {
324			compatible = "am335x,spinlock";
325			reg = < 0x480CA000 0x1000 >;
326		};
327
328		pruss@4A300000 {
329			compatible = "ti,pruss-v2";
330			reg = <0x4A300000 0x80000>;
331 			interrupt-parent = <&AINTC>;
332			interrupts = <20 21 22 23 24 25 26 27>;
333		};
334	};
335};
336