1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2*724ba675SRob Herring
3*724ba675SRob Herring#include <dt-bindings/bus/ti-sysc.h>
4*724ba675SRob Herring#include <dt-bindings/clock/dm816.h>
5*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
6*724ba675SRob Herring#include <dt-bindings/pinctrl/omap.h>
7*724ba675SRob Herring
8*724ba675SRob Herring/ {
9*724ba675SRob Herring	compatible = "ti,dm816";
10*724ba675SRob Herring	interrupt-parent = <&intc>;
11*724ba675SRob Herring	#address-cells = <1>;
12*724ba675SRob Herring	#size-cells = <1>;
13*724ba675SRob Herring	chosen { };
14*724ba675SRob Herring
15*724ba675SRob Herring	aliases {
16*724ba675SRob Herring		i2c0 = &i2c1;
17*724ba675SRob Herring		i2c1 = &i2c2;
18*724ba675SRob Herring		serial0 = &uart1;
19*724ba675SRob Herring		serial1 = &uart2;
20*724ba675SRob Herring		serial2 = &uart3;
21*724ba675SRob Herring		ethernet0 = &eth0;
22*724ba675SRob Herring		ethernet1 = &eth1;
23*724ba675SRob Herring	};
24*724ba675SRob Herring
25*724ba675SRob Herring	cpus {
26*724ba675SRob Herring		#address-cells = <1>;
27*724ba675SRob Herring		#size-cells = <0>;
28*724ba675SRob Herring		cpu@0 {
29*724ba675SRob Herring			compatible = "arm,cortex-a8";
30*724ba675SRob Herring			device_type = "cpu";
31*724ba675SRob Herring			reg = <0>;
32*724ba675SRob Herring		};
33*724ba675SRob Herring	};
34*724ba675SRob Herring
35*724ba675SRob Herring	pmu {
36*724ba675SRob Herring		compatible = "arm,cortex-a8-pmu";
37*724ba675SRob Herring		interrupts = <3>;
38*724ba675SRob Herring	};
39*724ba675SRob Herring
40*724ba675SRob Herring	/*
41*724ba675SRob Herring	 * The soc node represents the soc top level view. It is used for IPs
42*724ba675SRob Herring	 * that are not memory mapped in the MPU view or for the MPU itself.
43*724ba675SRob Herring	 */
44*724ba675SRob Herring	soc {
45*724ba675SRob Herring		compatible = "ti,omap-infra";
46*724ba675SRob Herring		mpu {
47*724ba675SRob Herring			compatible = "ti,omap3-mpu";
48*724ba675SRob Herring			ti,hwmods = "mpu";
49*724ba675SRob Herring		};
50*724ba675SRob Herring	};
51*724ba675SRob Herring
52*724ba675SRob Herring	/*
53*724ba675SRob Herring	 * XXX: Use a flat representation of the dm816x interconnect.
54*724ba675SRob Herring	 * The real dm816x interconnect network is quite complex. Since
55*724ba675SRob Herring	 * it will not bring real advantage to represent that in DT
56*724ba675SRob Herring	 * for the moment, just use a fake OCP bus entry to represent
57*724ba675SRob Herring	 * the whole bus hierarchy.
58*724ba675SRob Herring	 */
59*724ba675SRob Herring	ocp {
60*724ba675SRob Herring		compatible = "simple-bus";
61*724ba675SRob Herring		reg = <0x44000000 0x10000>;
62*724ba675SRob Herring		interrupts = <9 10>;
63*724ba675SRob Herring		#address-cells = <1>;
64*724ba675SRob Herring		#size-cells = <1>;
65*724ba675SRob Herring		ranges;
66*724ba675SRob Herring
67*724ba675SRob Herring		prcm: prcm@48180000 {
68*724ba675SRob Herring			compatible = "ti,dm816-prcm", "simple-bus";
69*724ba675SRob Herring			reg = <0x48180000 0x4000>;
70*724ba675SRob Herring			#address-cells = <1>;
71*724ba675SRob Herring			#size-cells = <1>;
72*724ba675SRob Herring			ranges = <0 0x48180000 0x4000>;
73*724ba675SRob Herring
74*724ba675SRob Herring			prcm_clocks: clocks {
75*724ba675SRob Herring				#address-cells = <1>;
76*724ba675SRob Herring				#size-cells = <0>;
77*724ba675SRob Herring			};
78*724ba675SRob Herring
79*724ba675SRob Herring			prcm_clockdomains: clockdomains {
80*724ba675SRob Herring			};
81*724ba675SRob Herring		};
82*724ba675SRob Herring
83*724ba675SRob Herring		scrm: scrm@48140000 {
84*724ba675SRob Herring			compatible = "ti,dm816-scrm", "simple-bus";
85*724ba675SRob Herring			reg = <0x48140000 0x21000>;
86*724ba675SRob Herring			#address-cells = <1>;
87*724ba675SRob Herring			#size-cells = <1>;
88*724ba675SRob Herring			#pinctrl-cells = <1>;
89*724ba675SRob Herring			ranges = <0 0x48140000 0x21000>;
90*724ba675SRob Herring
91*724ba675SRob Herring			dm816x_pinmux: pinmux@800 {
92*724ba675SRob Herring				compatible = "pinctrl-single";
93*724ba675SRob Herring				reg = <0x800 0x50a>;
94*724ba675SRob Herring				#address-cells = <1>;
95*724ba675SRob Herring				#size-cells = <0>;
96*724ba675SRob Herring				#pinctrl-cells = <1>;
97*724ba675SRob Herring				pinctrl-single,register-width = <16>;
98*724ba675SRob Herring				pinctrl-single,function-mask = <0xf>;
99*724ba675SRob Herring			};
100*724ba675SRob Herring
101*724ba675SRob Herring			/* Device Configuration Registers */
102*724ba675SRob Herring			scm_conf: syscon@600 {
103*724ba675SRob Herring				compatible = "syscon", "simple-bus";
104*724ba675SRob Herring				reg = <0x600 0x110>;
105*724ba675SRob Herring				#address-cells = <1>;
106*724ba675SRob Herring				#size-cells = <1>;
107*724ba675SRob Herring				ranges = <0 0x600 0x110>;
108*724ba675SRob Herring
109*724ba675SRob Herring				usb_phy0: usb-phy@20 {
110*724ba675SRob Herring					compatible = "ti,dm8168-usb-phy";
111*724ba675SRob Herring					reg = <0x20 0x8>;
112*724ba675SRob Herring					reg-names = "phy";
113*724ba675SRob Herring					clocks = <&main_fapll 6>;
114*724ba675SRob Herring					clock-names = "refclk";
115*724ba675SRob Herring					#phy-cells = <0>;
116*724ba675SRob Herring					syscon = <&scm_conf>;
117*724ba675SRob Herring				};
118*724ba675SRob Herring
119*724ba675SRob Herring				usb_phy1: usb-phy@28 {
120*724ba675SRob Herring					compatible = "ti,dm8168-usb-phy";
121*724ba675SRob Herring					reg = <0x28 0x8>;
122*724ba675SRob Herring					reg-names = "phy";
123*724ba675SRob Herring					clocks = <&main_fapll 6>;
124*724ba675SRob Herring					clock-names = "refclk";
125*724ba675SRob Herring					#phy-cells = <0>;
126*724ba675SRob Herring					syscon = <&scm_conf>;
127*724ba675SRob Herring				};
128*724ba675SRob Herring			};
129*724ba675SRob Herring
130*724ba675SRob Herring			scrm_clocks: clocks {
131*724ba675SRob Herring				#address-cells = <1>;
132*724ba675SRob Herring				#size-cells = <0>;
133*724ba675SRob Herring			};
134*724ba675SRob Herring
135*724ba675SRob Herring			scrm_clockdomains: clockdomains {
136*724ba675SRob Herring			};
137*724ba675SRob Herring		};
138*724ba675SRob Herring
139*724ba675SRob Herring		target-module@49000000 {
140*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
141*724ba675SRob Herring			reg = <0x49000000 0x4>;
142*724ba675SRob Herring			reg-names = "rev";
143*724ba675SRob Herring			clocks = <&alwon_clkctrl DM816_TPCC_CLKCTRL 0>;
144*724ba675SRob Herring			clock-names = "fck";
145*724ba675SRob Herring			#address-cells = <1>;
146*724ba675SRob Herring			#size-cells = <1>;
147*724ba675SRob Herring			ranges = <0x0 0x49000000 0x10000>;
148*724ba675SRob Herring
149*724ba675SRob Herring			edma: dma@0 {
150*724ba675SRob Herring				compatible = "ti,edma3-tpcc";
151*724ba675SRob Herring				reg = <0 0x10000>;
152*724ba675SRob Herring				reg-names = "edma3_cc";
153*724ba675SRob Herring				interrupts = <12 13 14>;
154*724ba675SRob Herring				interrupt-names = "edma3_ccint", "edma3_mperr",
155*724ba675SRob Herring						  "edma3_ccerrint";
156*724ba675SRob Herring				dma-requests = <64>;
157*724ba675SRob Herring				#dma-cells = <2>;
158*724ba675SRob Herring
159*724ba675SRob Herring				ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
160*724ba675SRob Herring					   <&edma_tptc2 3>, <&edma_tptc3 0>;
161*724ba675SRob Herring
162*724ba675SRob Herring				ti,edma-memcpy-channels = <20 21>;
163*724ba675SRob Herring			};
164*724ba675SRob Herring		};
165*724ba675SRob Herring
166*724ba675SRob Herring		target-module@49800000 {
167*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
168*724ba675SRob Herring			reg = <0x49800000 0x4>,
169*724ba675SRob Herring			      <0x49800010 0x4>;
170*724ba675SRob Herring			reg-names = "rev", "sysc";
171*724ba675SRob Herring			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
172*724ba675SRob Herring			ti,sysc-midle = <SYSC_IDLE_FORCE>;
173*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
174*724ba675SRob Herring					<SYSC_IDLE_SMART>;
175*724ba675SRob Herring			clocks = <&alwon_clkctrl DM816_TPTC0_CLKCTRL 0>;
176*724ba675SRob Herring			clock-names = "fck";
177*724ba675SRob Herring			#address-cells = <1>;
178*724ba675SRob Herring			#size-cells = <1>;
179*724ba675SRob Herring			ranges = <0x0 0x49800000 0x100000>;
180*724ba675SRob Herring
181*724ba675SRob Herring			edma_tptc0: dma@0 {
182*724ba675SRob Herring				compatible = "ti,edma3-tptc";
183*724ba675SRob Herring				reg = <0 0x100000>;
184*724ba675SRob Herring				interrupts = <112>;
185*724ba675SRob Herring				interrupt-names = "edma3_tcerrint";
186*724ba675SRob Herring			};
187*724ba675SRob Herring		};
188*724ba675SRob Herring
189*724ba675SRob Herring		target-module@49900000 {
190*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
191*724ba675SRob Herring			reg = <0x49900000 0x4>,
192*724ba675SRob Herring			      <0x49900010 0x4>;
193*724ba675SRob Herring			reg-names = "rev", "sysc";
194*724ba675SRob Herring			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
195*724ba675SRob Herring			ti,sysc-midle = <SYSC_IDLE_FORCE>;
196*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
197*724ba675SRob Herring					<SYSC_IDLE_SMART>;
198*724ba675SRob Herring			clocks = <&alwon_clkctrl DM816_TPTC1_CLKCTRL 0>;
199*724ba675SRob Herring			clock-names = "fck";
200*724ba675SRob Herring			#address-cells = <1>;
201*724ba675SRob Herring			#size-cells = <1>;
202*724ba675SRob Herring			ranges = <0x0 0x49900000 0x100000>;
203*724ba675SRob Herring
204*724ba675SRob Herring			edma_tptc1: dma@0 {
205*724ba675SRob Herring				compatible = "ti,edma3-tptc";
206*724ba675SRob Herring				reg = <0 0x100000>;
207*724ba675SRob Herring				interrupts = <113>;
208*724ba675SRob Herring				interrupt-names = "edma3_tcerrint";
209*724ba675SRob Herring			};
210*724ba675SRob Herring		};
211*724ba675SRob Herring
212*724ba675SRob Herring		target-module@49a00000 {
213*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
214*724ba675SRob Herring			reg = <0x49a00000 0x4>,
215*724ba675SRob Herring			      <0x49a00010 0x4>;
216*724ba675SRob Herring			reg-names = "rev", "sysc";
217*724ba675SRob Herring			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
218*724ba675SRob Herring			ti,sysc-midle = <SYSC_IDLE_FORCE>;
219*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
220*724ba675SRob Herring					<SYSC_IDLE_SMART>;
221*724ba675SRob Herring			clocks = <&alwon_clkctrl DM816_TPTC2_CLKCTRL 0>;
222*724ba675SRob Herring			clock-names = "fck";
223*724ba675SRob Herring			#address-cells = <1>;
224*724ba675SRob Herring			#size-cells = <1>;
225*724ba675SRob Herring			ranges = <0x0 0x49a00000 0x100000>;
226*724ba675SRob Herring
227*724ba675SRob Herring			edma_tptc2: dma@0 {
228*724ba675SRob Herring				compatible = "ti,edma3-tptc";
229*724ba675SRob Herring				reg = <0 0x100000>;
230*724ba675SRob Herring				interrupts = <114>;
231*724ba675SRob Herring				interrupt-names = "edma3_tcerrint";
232*724ba675SRob Herring			};
233*724ba675SRob Herring		};
234*724ba675SRob Herring
235*724ba675SRob Herring		target-module@49b00000 {
236*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
237*724ba675SRob Herring			reg = <0x49b00000 0x4>,
238*724ba675SRob Herring			      <0x49b00010 0x4>;
239*724ba675SRob Herring			reg-names = "rev", "sysc";
240*724ba675SRob Herring			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
241*724ba675SRob Herring			ti,sysc-midle = <SYSC_IDLE_FORCE>;
242*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
243*724ba675SRob Herring					<SYSC_IDLE_SMART>;
244*724ba675SRob Herring			clocks = <&alwon_clkctrl DM816_TPTC3_CLKCTRL 0>;
245*724ba675SRob Herring			clock-names = "fck";
246*724ba675SRob Herring			#address-cells = <1>;
247*724ba675SRob Herring			#size-cells = <1>;
248*724ba675SRob Herring			ranges = <0x0 0x49b00000 0x100000>;
249*724ba675SRob Herring
250*724ba675SRob Herring			edma_tptc3: dma@0 {
251*724ba675SRob Herring				compatible = "ti,edma3-tptc";
252*724ba675SRob Herring				reg = <0 0x100000>;
253*724ba675SRob Herring				interrupts = <115>;
254*724ba675SRob Herring				interrupt-names = "edma3_tcerrint";
255*724ba675SRob Herring			};
256*724ba675SRob Herring		};
257*724ba675SRob Herring
258*724ba675SRob Herring		elm: elm@48080000 {
259*724ba675SRob Herring			compatible = "ti,am3352-elm";
260*724ba675SRob Herring			ti,hwmods = "elm";
261*724ba675SRob Herring			reg = <0x48080000 0x2000>;
262*724ba675SRob Herring			interrupts = <4>;
263*724ba675SRob Herring		};
264*724ba675SRob Herring
265*724ba675SRob Herring		gpio1: gpio@48032000 {
266*724ba675SRob Herring			compatible = "ti,omap4-gpio";
267*724ba675SRob Herring			ti,hwmods = "gpio1";
268*724ba675SRob Herring			ti,gpio-always-on;
269*724ba675SRob Herring			reg = <0x48032000 0x1000>;
270*724ba675SRob Herring			interrupts = <96>;
271*724ba675SRob Herring			gpio-controller;
272*724ba675SRob Herring			#gpio-cells = <2>;
273*724ba675SRob Herring			interrupt-controller;
274*724ba675SRob Herring			#interrupt-cells = <2>;
275*724ba675SRob Herring		};
276*724ba675SRob Herring
277*724ba675SRob Herring		gpio2: gpio@4804c000 {
278*724ba675SRob Herring			compatible = "ti,omap4-gpio";
279*724ba675SRob Herring			ti,hwmods = "gpio2";
280*724ba675SRob Herring			ti,gpio-always-on;
281*724ba675SRob Herring			reg = <0x4804c000 0x1000>;
282*724ba675SRob Herring			interrupts = <98>;
283*724ba675SRob Herring			gpio-controller;
284*724ba675SRob Herring			#gpio-cells = <2>;
285*724ba675SRob Herring			interrupt-controller;
286*724ba675SRob Herring			#interrupt-cells = <2>;
287*724ba675SRob Herring		};
288*724ba675SRob Herring
289*724ba675SRob Herring		gpmc: gpmc@50000000 {
290*724ba675SRob Herring			compatible = "ti,am3352-gpmc";
291*724ba675SRob Herring			ti,hwmods = "gpmc";
292*724ba675SRob Herring			reg = <0x50000000 0x2000>;
293*724ba675SRob Herring			#address-cells = <2>;
294*724ba675SRob Herring			#size-cells = <1>;
295*724ba675SRob Herring			interrupts = <100>;
296*724ba675SRob Herring			dmas = <&edma 52 0>;
297*724ba675SRob Herring			dma-names = "rxtx";
298*724ba675SRob Herring			gpmc,num-cs = <6>;
299*724ba675SRob Herring			gpmc,num-waitpins = <2>;
300*724ba675SRob Herring			interrupt-controller;
301*724ba675SRob Herring			#interrupt-cells = <2>;
302*724ba675SRob Herring			gpio-controller;
303*724ba675SRob Herring			#gpio-cells = <2>;
304*724ba675SRob Herring		};
305*724ba675SRob Herring
306*724ba675SRob Herring		i2c1: i2c@48028000 {
307*724ba675SRob Herring			compatible = "ti,omap4-i2c";
308*724ba675SRob Herring			ti,hwmods = "i2c1";
309*724ba675SRob Herring			reg = <0x48028000 0x1000>;
310*724ba675SRob Herring			#address-cells = <1>;
311*724ba675SRob Herring			#size-cells = <0>;
312*724ba675SRob Herring			interrupts = <70>;
313*724ba675SRob Herring		};
314*724ba675SRob Herring
315*724ba675SRob Herring		i2c2: i2c@4802a000 {
316*724ba675SRob Herring			compatible = "ti,omap4-i2c";
317*724ba675SRob Herring			ti,hwmods = "i2c2";
318*724ba675SRob Herring			reg = <0x4802a000 0x1000>;
319*724ba675SRob Herring			#address-cells = <1>;
320*724ba675SRob Herring			#size-cells = <0>;
321*724ba675SRob Herring			interrupts = <71>;
322*724ba675SRob Herring		};
323*724ba675SRob Herring
324*724ba675SRob Herring		intc: interrupt-controller@48200000 {
325*724ba675SRob Herring			compatible = "ti,dm816-intc";
326*724ba675SRob Herring			interrupt-controller;
327*724ba675SRob Herring			#interrupt-cells = <1>;
328*724ba675SRob Herring			reg = <0x48200000 0x1000>;
329*724ba675SRob Herring		};
330*724ba675SRob Herring
331*724ba675SRob Herring		rtc: rtc@480c0000 {
332*724ba675SRob Herring			compatible = "ti,am3352-rtc", "ti,da830-rtc";
333*724ba675SRob Herring			reg = <0x480c0000 0x1000>;
334*724ba675SRob Herring			interrupts = <75 76>;
335*724ba675SRob Herring			ti,hwmods = "rtc";
336*724ba675SRob Herring		};
337*724ba675SRob Herring
338*724ba675SRob Herring		mailbox: mailbox@480c8000 {
339*724ba675SRob Herring			compatible = "ti,omap4-mailbox";
340*724ba675SRob Herring			reg = <0x480c8000 0x2000>;
341*724ba675SRob Herring			interrupts = <77>;
342*724ba675SRob Herring			ti,hwmods = "mailbox";
343*724ba675SRob Herring			#mbox-cells = <1>;
344*724ba675SRob Herring			ti,mbox-num-users = <4>;
345*724ba675SRob Herring			ti,mbox-num-fifos = <12>;
346*724ba675SRob Herring			mbox_dsp: mbox-dsp {
347*724ba675SRob Herring				ti,mbox-tx = <3 0 0>;
348*724ba675SRob Herring				ti,mbox-rx = <0 0 0>;
349*724ba675SRob Herring			};
350*724ba675SRob Herring		};
351*724ba675SRob Herring
352*724ba675SRob Herring		spinbox: spinbox@480ca000 {
353*724ba675SRob Herring			compatible = "ti,omap4-hwspinlock";
354*724ba675SRob Herring			reg = <0x480ca000 0x2000>;
355*724ba675SRob Herring			ti,hwmods = "spinbox";
356*724ba675SRob Herring			#hwlock-cells = <1>;
357*724ba675SRob Herring		};
358*724ba675SRob Herring
359*724ba675SRob Herring		mdio: mdio@4a100800 {
360*724ba675SRob Herring			compatible = "ti,davinci_mdio";
361*724ba675SRob Herring			#address-cells = <1>;
362*724ba675SRob Herring			#size-cells = <0>;
363*724ba675SRob Herring			reg = <0x4a100800 0x100>;
364*724ba675SRob Herring			ti,hwmods = "davinci_mdio";
365*724ba675SRob Herring			bus_freq = <1000000>;
366*724ba675SRob Herring			phy0: ethernet-phy@0 {
367*724ba675SRob Herring				reg = <1>;
368*724ba675SRob Herring			};
369*724ba675SRob Herring			phy1: ethernet-phy@1 {
370*724ba675SRob Herring				reg = <2>;
371*724ba675SRob Herring			};
372*724ba675SRob Herring		};
373*724ba675SRob Herring
374*724ba675SRob Herring		eth0: ethernet@4a100000 {
375*724ba675SRob Herring			compatible = "ti,dm816-emac";
376*724ba675SRob Herring			ti,hwmods = "emac0";
377*724ba675SRob Herring			reg = <0x4a100000 0x800
378*724ba675SRob Herring			       0x4a100900 0x3700>;
379*724ba675SRob Herring			clocks = <&sysclk24_ck>;
380*724ba675SRob Herring			syscon = <&scm_conf>;
381*724ba675SRob Herring			ti,davinci-ctrl-reg-offset = <0>;
382*724ba675SRob Herring			ti,davinci-ctrl-mod-reg-offset = <0x900>;
383*724ba675SRob Herring			ti,davinci-ctrl-ram-offset = <0x2000>;
384*724ba675SRob Herring			ti,davinci-ctrl-ram-size = <0x2000>;
385*724ba675SRob Herring			interrupts = <40 41 42 43>;
386*724ba675SRob Herring			phy-handle = <&phy0>;
387*724ba675SRob Herring		};
388*724ba675SRob Herring
389*724ba675SRob Herring		eth1: ethernet@4a120000 {
390*724ba675SRob Herring			compatible = "ti,dm816-emac";
391*724ba675SRob Herring			ti,hwmods = "emac1";
392*724ba675SRob Herring			reg = <0x4a120000 0x4000>;
393*724ba675SRob Herring			clocks = <&sysclk24_ck>;
394*724ba675SRob Herring			syscon = <&scm_conf>;
395*724ba675SRob Herring			ti,davinci-ctrl-reg-offset = <0>;
396*724ba675SRob Herring			ti,davinci-ctrl-mod-reg-offset = <0x900>;
397*724ba675SRob Herring			ti,davinci-ctrl-ram-offset = <0x2000>;
398*724ba675SRob Herring			ti,davinci-ctrl-ram-size = <0x2000>;
399*724ba675SRob Herring			interrupts = <44 45 46 47>;
400*724ba675SRob Herring			phy-handle = <&phy1>;
401*724ba675SRob Herring		};
402*724ba675SRob Herring
403*724ba675SRob Herring		sata: sata@4a140000 {
404*724ba675SRob Herring			compatible = "ti,dm816-ahci";
405*724ba675SRob Herring			reg = <0x4a140000 0x10000>;
406*724ba675SRob Herring			interrupts = <16>;
407*724ba675SRob Herring			ti,hwmods = "sata";
408*724ba675SRob Herring		};
409*724ba675SRob Herring
410*724ba675SRob Herring		mcspi1: spi@48030000 {
411*724ba675SRob Herring			compatible = "ti,omap4-mcspi";
412*724ba675SRob Herring			reg = <0x48030000 0x1000>;
413*724ba675SRob Herring			#address-cells = <1>;
414*724ba675SRob Herring			#size-cells = <0>;
415*724ba675SRob Herring			interrupts = <65>;
416*724ba675SRob Herring			ti,spi-num-cs = <4>;
417*724ba675SRob Herring			ti,hwmods = "mcspi1";
418*724ba675SRob Herring			dmas = <&edma 16 0 &edma 17 0
419*724ba675SRob Herring				&edma 18 0 &edma 19 0
420*724ba675SRob Herring				&edma 20 0 &edma 21 0
421*724ba675SRob Herring				&edma 22 0 &edma 23 0>;
422*724ba675SRob Herring			dma-names = "tx0", "rx0", "tx1", "rx1",
423*724ba675SRob Herring				    "tx2", "rx2", "tx3", "rx3";
424*724ba675SRob Herring		};
425*724ba675SRob Herring
426*724ba675SRob Herring		mmc1: mmc@48060000 {
427*724ba675SRob Herring			compatible = "ti,omap4-hsmmc";
428*724ba675SRob Herring			reg = <0x48060000 0x11000>;
429*724ba675SRob Herring			ti,hwmods = "mmc1";
430*724ba675SRob Herring			interrupts = <64>;
431*724ba675SRob Herring			dmas = <&edma 24 0 &edma 25 0>;
432*724ba675SRob Herring			dma-names = "tx", "rx";
433*724ba675SRob Herring		};
434*724ba675SRob Herring
435*724ba675SRob Herring		timer1_target: target-module@4802e000 {
436*724ba675SRob Herring			compatible = "ti,sysc-omap4-timer", "ti,sysc";
437*724ba675SRob Herring			reg = <0x4802e000 0x4>,
438*724ba675SRob Herring			      <0x4802e010 0x4>;
439*724ba675SRob Herring			reg-names = "rev", "sysc";
440*724ba675SRob Herring			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
441*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
442*724ba675SRob Herring					<SYSC_IDLE_NO>,
443*724ba675SRob Herring					<SYSC_IDLE_SMART>,
444*724ba675SRob Herring					<SYSC_IDLE_SMART_WKUP>;
445*724ba675SRob Herring			clocks = <&alwon_clkctrl DM816_TIMER1_CLKCTRL 0>;
446*724ba675SRob Herring			clock-names = "fck";
447*724ba675SRob Herring			#address-cells = <1>;
448*724ba675SRob Herring			#size-cells = <1>;
449*724ba675SRob Herring			ranges = <0x0 0x4802e000 0x1000>;
450*724ba675SRob Herring
451*724ba675SRob Herring			timer1: timer@0 {
452*724ba675SRob Herring				compatible = "ti,dm816-timer";
453*724ba675SRob Herring				reg = <0 0x1000>;
454*724ba675SRob Herring				interrupts = <67>;
455*724ba675SRob Herring				ti,timer-alwon;
456*724ba675SRob Herring				clocks = <&alwon_clkctrl DM816_TIMER1_CLKCTRL 0>;
457*724ba675SRob Herring				clock-names = "fck";
458*724ba675SRob Herring			};
459*724ba675SRob Herring		};
460*724ba675SRob Herring
461*724ba675SRob Herring		timer2_target: target-module@48040000 {
462*724ba675SRob Herring			compatible = "ti,sysc-omap4-timer", "ti,sysc";
463*724ba675SRob Herring			reg = <0x48040000 0x4>,
464*724ba675SRob Herring			      <0x48040010 0x4>;
465*724ba675SRob Herring			reg-names = "rev", "sysc";
466*724ba675SRob Herring			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
467*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
468*724ba675SRob Herring					<SYSC_IDLE_NO>,
469*724ba675SRob Herring					<SYSC_IDLE_SMART>,
470*724ba675SRob Herring					<SYSC_IDLE_SMART_WKUP>;
471*724ba675SRob Herring			clocks = <&alwon_clkctrl DM816_TIMER2_CLKCTRL 0>;
472*724ba675SRob Herring			clock-names = "fck";
473*724ba675SRob Herring			#address-cells = <1>;
474*724ba675SRob Herring			#size-cells = <1>;
475*724ba675SRob Herring			ranges = <0x0 0x48040000 0x1000>;
476*724ba675SRob Herring
477*724ba675SRob Herring			timer2: timer@0 {
478*724ba675SRob Herring				compatible = "ti,dm816-timer";
479*724ba675SRob Herring				reg = <0 0x1000>;
480*724ba675SRob Herring				interrupts = <68>;
481*724ba675SRob Herring				clocks = <&alwon_clkctrl DM816_TIMER2_CLKCTRL 0>;
482*724ba675SRob Herring				clock-names = "fck";
483*724ba675SRob Herring			};
484*724ba675SRob Herring		};
485*724ba675SRob Herring
486*724ba675SRob Herring		timer3: timer@48042000 {
487*724ba675SRob Herring			compatible = "ti,dm816-timer";
488*724ba675SRob Herring			reg = <0x48042000 0x2000>;
489*724ba675SRob Herring			interrupts = <69>;
490*724ba675SRob Herring			ti,hwmods = "timer3";
491*724ba675SRob Herring		};
492*724ba675SRob Herring
493*724ba675SRob Herring		timer4: timer@48044000 {
494*724ba675SRob Herring			compatible = "ti,dm816-timer";
495*724ba675SRob Herring			reg = <0x48044000 0x2000>;
496*724ba675SRob Herring			interrupts = <92>;
497*724ba675SRob Herring			ti,hwmods = "timer4";
498*724ba675SRob Herring			ti,timer-pwm;
499*724ba675SRob Herring		};
500*724ba675SRob Herring
501*724ba675SRob Herring		timer5: timer@48046000 {
502*724ba675SRob Herring			compatible = "ti,dm816-timer";
503*724ba675SRob Herring			reg = <0x48046000 0x2000>;
504*724ba675SRob Herring			interrupts = <93>;
505*724ba675SRob Herring			ti,hwmods = "timer5";
506*724ba675SRob Herring			ti,timer-pwm;
507*724ba675SRob Herring		};
508*724ba675SRob Herring
509*724ba675SRob Herring		timer6: timer@48048000 {
510*724ba675SRob Herring			compatible = "ti,dm816-timer";
511*724ba675SRob Herring			reg = <0x48048000 0x2000>;
512*724ba675SRob Herring			interrupts = <94>;
513*724ba675SRob Herring			ti,hwmods = "timer6";
514*724ba675SRob Herring			ti,timer-pwm;
515*724ba675SRob Herring		};
516*724ba675SRob Herring
517*724ba675SRob Herring		timer7: timer@4804a000 {
518*724ba675SRob Herring			compatible = "ti,dm816-timer";
519*724ba675SRob Herring			reg = <0x4804a000 0x2000>;
520*724ba675SRob Herring			interrupts = <95>;
521*724ba675SRob Herring			ti,hwmods = "timer7";
522*724ba675SRob Herring			ti,timer-pwm;
523*724ba675SRob Herring		};
524*724ba675SRob Herring
525*724ba675SRob Herring		uart1: serial@48020000 {
526*724ba675SRob Herring			compatible = "ti,am3352-uart", "ti,omap3-uart";
527*724ba675SRob Herring			ti,hwmods = "uart1";
528*724ba675SRob Herring			reg = <0x48020000 0x2000>;
529*724ba675SRob Herring			clock-frequency = <48000000>;
530*724ba675SRob Herring			interrupts = <72>;
531*724ba675SRob Herring			dmas = <&edma 26 0 &edma 27 0>;
532*724ba675SRob Herring			dma-names = "tx", "rx";
533*724ba675SRob Herring		};
534*724ba675SRob Herring
535*724ba675SRob Herring		uart2: serial@48022000 {
536*724ba675SRob Herring			compatible = "ti,am3352-uart", "ti,omap3-uart";
537*724ba675SRob Herring			ti,hwmods = "uart2";
538*724ba675SRob Herring			reg = <0x48022000 0x2000>;
539*724ba675SRob Herring			clock-frequency = <48000000>;
540*724ba675SRob Herring			interrupts = <73>;
541*724ba675SRob Herring			dmas = <&edma 28 0 &edma 29 0>;
542*724ba675SRob Herring			dma-names = "tx", "rx";
543*724ba675SRob Herring		};
544*724ba675SRob Herring
545*724ba675SRob Herring		uart3: serial@48024000 {
546*724ba675SRob Herring			compatible = "ti,am3352-uart", "ti,omap3-uart";
547*724ba675SRob Herring			ti,hwmods = "uart3";
548*724ba675SRob Herring			reg = <0x48024000 0x2000>;
549*724ba675SRob Herring			clock-frequency = <48000000>;
550*724ba675SRob Herring			interrupts = <74>;
551*724ba675SRob Herring			dmas = <&edma 30 0 &edma 31 0>;
552*724ba675SRob Herring			dma-names = "tx", "rx";
553*724ba675SRob Herring		};
554*724ba675SRob Herring
555*724ba675SRob Herring		/* NOTE: USB needs a transceiver driver for phys to work */
556*724ba675SRob Herring		usb: usb_otg_hs@47401000 {
557*724ba675SRob Herring			compatible = "ti,am33xx-usb";
558*724ba675SRob Herring			reg = <0x47401000 0x400000>;
559*724ba675SRob Herring			ranges;
560*724ba675SRob Herring			#address-cells = <1>;
561*724ba675SRob Herring			#size-cells = <1>;
562*724ba675SRob Herring			ti,hwmods = "usb_otg_hs";
563*724ba675SRob Herring
564*724ba675SRob Herring			usb0: usb@47401000 {
565*724ba675SRob Herring				compatible = "ti,musb-dm816";
566*724ba675SRob Herring				reg = <0x47401400 0x400
567*724ba675SRob Herring				       0x47401000 0x200>;
568*724ba675SRob Herring				reg-names = "mc", "control";
569*724ba675SRob Herring				interrupts = <18>;
570*724ba675SRob Herring				interrupt-names = "mc";
571*724ba675SRob Herring				dr_mode = "host";
572*724ba675SRob Herring				interface-type = <0>;
573*724ba675SRob Herring				phys = <&usb_phy0>;
574*724ba675SRob Herring				phy-names = "usb2-phy";
575*724ba675SRob Herring				mentor,multipoint = <1>;
576*724ba675SRob Herring				mentor,num-eps = <16>;
577*724ba675SRob Herring				mentor,ram-bits = <12>;
578*724ba675SRob Herring				mentor,power = <500>;
579*724ba675SRob Herring
580*724ba675SRob Herring				dmas = <&cppi41dma  0 0 &cppi41dma  1 0
581*724ba675SRob Herring					&cppi41dma  2 0 &cppi41dma  3 0
582*724ba675SRob Herring					&cppi41dma  4 0 &cppi41dma  5 0
583*724ba675SRob Herring					&cppi41dma  6 0 &cppi41dma  7 0
584*724ba675SRob Herring					&cppi41dma  8 0 &cppi41dma  9 0
585*724ba675SRob Herring					&cppi41dma 10 0 &cppi41dma 11 0
586*724ba675SRob Herring					&cppi41dma 12 0 &cppi41dma 13 0
587*724ba675SRob Herring					&cppi41dma 14 0 &cppi41dma  0 1
588*724ba675SRob Herring					&cppi41dma  1 1 &cppi41dma  2 1
589*724ba675SRob Herring					&cppi41dma  3 1 &cppi41dma  4 1
590*724ba675SRob Herring					&cppi41dma  5 1 &cppi41dma  6 1
591*724ba675SRob Herring					&cppi41dma  7 1 &cppi41dma  8 1
592*724ba675SRob Herring					&cppi41dma  9 1 &cppi41dma 10 1
593*724ba675SRob Herring					&cppi41dma 11 1 &cppi41dma 12 1
594*724ba675SRob Herring					&cppi41dma 13 1 &cppi41dma 14 1>;
595*724ba675SRob Herring				dma-names =
596*724ba675SRob Herring					"rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
597*724ba675SRob Herring					"rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
598*724ba675SRob Herring					"rx14", "rx15",
599*724ba675SRob Herring					"tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
600*724ba675SRob Herring					"tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
601*724ba675SRob Herring					"tx14", "tx15";
602*724ba675SRob Herring			};
603*724ba675SRob Herring
604*724ba675SRob Herring			usb1: usb@47401800 {
605*724ba675SRob Herring				compatible = "ti,musb-dm816";
606*724ba675SRob Herring				reg = <0x47401c00 0x400
607*724ba675SRob Herring				       0x47401800 0x200>;
608*724ba675SRob Herring				reg-names = "mc", "control";
609*724ba675SRob Herring				interrupts = <19>;
610*724ba675SRob Herring				interrupt-names = "mc";
611*724ba675SRob Herring				dr_mode = "host";
612*724ba675SRob Herring				interface-type = <0>;
613*724ba675SRob Herring				phys = <&usb_phy1>;
614*724ba675SRob Herring				phy-names = "usb2-phy";
615*724ba675SRob Herring				mentor,multipoint = <1>;
616*724ba675SRob Herring				mentor,num-eps = <16>;
617*724ba675SRob Herring				mentor,ram-bits = <12>;
618*724ba675SRob Herring				mentor,power = <500>;
619*724ba675SRob Herring
620*724ba675SRob Herring				dmas = <&cppi41dma 15 0 &cppi41dma 16 0
621*724ba675SRob Herring					&cppi41dma 17 0 &cppi41dma 18 0
622*724ba675SRob Herring					&cppi41dma 19 0 &cppi41dma 20 0
623*724ba675SRob Herring					&cppi41dma 21 0 &cppi41dma 22 0
624*724ba675SRob Herring					&cppi41dma 23 0 &cppi41dma 24 0
625*724ba675SRob Herring					&cppi41dma 25 0 &cppi41dma 26 0
626*724ba675SRob Herring					&cppi41dma 27 0 &cppi41dma 28 0
627*724ba675SRob Herring					&cppi41dma 29 0 &cppi41dma 15 1
628*724ba675SRob Herring					&cppi41dma 16 1 &cppi41dma 17 1
629*724ba675SRob Herring					&cppi41dma 18 1 &cppi41dma 19 1
630*724ba675SRob Herring					&cppi41dma 20 1 &cppi41dma 21 1
631*724ba675SRob Herring					&cppi41dma 22 1 &cppi41dma 23 1
632*724ba675SRob Herring					&cppi41dma 24 1 &cppi41dma 25 1
633*724ba675SRob Herring					&cppi41dma 26 1 &cppi41dma 27 1
634*724ba675SRob Herring					&cppi41dma 28 1 &cppi41dma 29 1>;
635*724ba675SRob Herring				dma-names =
636*724ba675SRob Herring					"rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
637*724ba675SRob Herring					"rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
638*724ba675SRob Herring					"rx14", "rx15",
639*724ba675SRob Herring					"tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
640*724ba675SRob Herring					"tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
641*724ba675SRob Herring					"tx14", "tx15";
642*724ba675SRob Herring			};
643*724ba675SRob Herring
644*724ba675SRob Herring			cppi41dma: dma-controller@47402000 {
645*724ba675SRob Herring				compatible = "ti,am3359-cppi41";
646*724ba675SRob Herring				reg =  <0x47400000 0x1000
647*724ba675SRob Herring					0x47402000 0x1000
648*724ba675SRob Herring					0x47403000 0x1000
649*724ba675SRob Herring					0x47404000 0x4000>;
650*724ba675SRob Herring				reg-names = "glue", "controller", "scheduler", "queuemgr";
651*724ba675SRob Herring				interrupts = <17>;
652*724ba675SRob Herring				interrupt-names = "glue";
653*724ba675SRob Herring				#dma-cells = <2>;
654*724ba675SRob Herring				/* For backwards compatibility: */
655*724ba675SRob Herring				#dma-channels = <30>;
656*724ba675SRob Herring				dma-channels = <30>;
657*724ba675SRob Herring				#dma-requests = <256>;
658*724ba675SRob Herring				dma-requests = <256>;
659*724ba675SRob Herring			};
660*724ba675SRob Herring		};
661*724ba675SRob Herring
662*724ba675SRob Herring		wd_timer2: wd_timer@480c2000 {
663*724ba675SRob Herring			compatible = "ti,omap3-wdt";
664*724ba675SRob Herring			ti,hwmods = "wd_timer";
665*724ba675SRob Herring			reg = <0x480c2000 0x1000>;
666*724ba675SRob Herring			interrupts = <0>;
667*724ba675SRob Herring		};
668*724ba675SRob Herring	};
669*724ba675SRob Herring};
670*724ba675SRob Herring
671*724ba675SRob Herring#include "dm816x-clocks.dtsi"
672*724ba675SRob Herring
673*724ba675SRob Herring/* Preferred always-on timer for clocksource */
674*724ba675SRob Herring&timer1_target {
675*724ba675SRob Herring	ti,no-reset-on-init;
676*724ba675SRob Herring	ti,no-idle;
677*724ba675SRob Herring	timer@0 {
678*724ba675SRob Herring		assigned-clocks = <&timer1_fck>;
679*724ba675SRob Herring		assigned-clock-parents = <&sys_clkin_ck>;
680*724ba675SRob Herring	};
681*724ba675SRob Herring};
682*724ba675SRob Herring
683*724ba675SRob Herring/* Preferred timer for clockevent */
684*724ba675SRob Herring&timer2_target {
685*724ba675SRob Herring	ti,no-reset-on-init;
686*724ba675SRob Herring	ti,no-idle;
687*724ba675SRob Herring	timer@0 {
688*724ba675SRob Herring		assigned-clocks = <&timer2_fck>;
689*724ba675SRob Herring		assigned-clock-parents = <&sys_clkin_ck>;
690*724ba675SRob Herring	};
691*724ba675SRob Herring};
692