xref: /linux/scripts/dtc/include-prefixes/arm/ti/omap/am33xx.dtsi (revision 724ba6751532055db75992fc6ae21c3e322e94a7)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Device Tree Source for AM33XX SoC
4*724ba675SRob Herring *
5*724ba675SRob Herring * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
6*724ba675SRob Herring */
7*724ba675SRob Herring
8*724ba675SRob Herring#include <dt-bindings/bus/ti-sysc.h>
9*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
10*724ba675SRob Herring#include <dt-bindings/pinctrl/am33xx.h>
11*724ba675SRob Herring#include <dt-bindings/clock/am3.h>
12*724ba675SRob Herring
13*724ba675SRob Herring/ {
14*724ba675SRob Herring	compatible = "ti,am33xx";
15*724ba675SRob Herring	interrupt-parent = <&intc>;
16*724ba675SRob Herring	#address-cells = <1>;
17*724ba675SRob Herring	#size-cells = <1>;
18*724ba675SRob Herring	chosen { };
19*724ba675SRob Herring
20*724ba675SRob Herring	aliases {
21*724ba675SRob Herring		i2c0 = &i2c0;
22*724ba675SRob Herring		i2c1 = &i2c1;
23*724ba675SRob Herring		i2c2 = &i2c2;
24*724ba675SRob Herring		serial0 = &uart0;
25*724ba675SRob Herring		serial1 = &uart1;
26*724ba675SRob Herring		serial2 = &uart2;
27*724ba675SRob Herring		serial3 = &uart3;
28*724ba675SRob Herring		serial4 = &uart4;
29*724ba675SRob Herring		serial5 = &uart5;
30*724ba675SRob Herring		d-can0 = &dcan0;
31*724ba675SRob Herring		d-can1 = &dcan1;
32*724ba675SRob Herring		usb0 = &usb0;
33*724ba675SRob Herring		usb1 = &usb1;
34*724ba675SRob Herring		phy0 = &usb0_phy;
35*724ba675SRob Herring		phy1 = &usb1_phy;
36*724ba675SRob Herring		ethernet0 = &cpsw_port1;
37*724ba675SRob Herring		ethernet1 = &cpsw_port2;
38*724ba675SRob Herring		spi0 = &spi0;
39*724ba675SRob Herring		spi1 = &spi1;
40*724ba675SRob Herring		mmc0 = &mmc1;
41*724ba675SRob Herring		mmc1 = &mmc2;
42*724ba675SRob Herring		mmc2 = &mmc3;
43*724ba675SRob Herring	};
44*724ba675SRob Herring
45*724ba675SRob Herring	cpus {
46*724ba675SRob Herring		#address-cells = <1>;
47*724ba675SRob Herring		#size-cells = <0>;
48*724ba675SRob Herring		cpu@0 {
49*724ba675SRob Herring			compatible = "arm,cortex-a8";
50*724ba675SRob Herring			enable-method = "ti,am3352";
51*724ba675SRob Herring			device_type = "cpu";
52*724ba675SRob Herring			reg = <0>;
53*724ba675SRob Herring
54*724ba675SRob Herring			operating-points-v2 = <&cpu0_opp_table>;
55*724ba675SRob Herring
56*724ba675SRob Herring			clocks = <&dpll_mpu_ck>;
57*724ba675SRob Herring			clock-names = "cpu";
58*724ba675SRob Herring
59*724ba675SRob Herring			clock-latency = <300000>; /* From omap-cpufreq driver */
60*724ba675SRob Herring			cpu-idle-states = <&mpu_gate>;
61*724ba675SRob Herring		};
62*724ba675SRob Herring
63*724ba675SRob Herring		idle-states {
64*724ba675SRob Herring			mpu_gate: mpu_gate {
65*724ba675SRob Herring				compatible = "arm,idle-state";
66*724ba675SRob Herring				entry-latency-us = <40>;
67*724ba675SRob Herring				exit-latency-us = <90>;
68*724ba675SRob Herring				min-residency-us = <300>;
69*724ba675SRob Herring				ti,idle-wkup-m3;
70*724ba675SRob Herring			};
71*724ba675SRob Herring		};
72*724ba675SRob Herring	};
73*724ba675SRob Herring
74*724ba675SRob Herring	cpu0_opp_table: opp-table {
75*724ba675SRob Herring		compatible = "operating-points-v2-ti-cpu";
76*724ba675SRob Herring		syscon = <&scm_conf>;
77*724ba675SRob Herring
78*724ba675SRob Herring		/*
79*724ba675SRob Herring		 * The three following nodes are marked with opp-suspend
80*724ba675SRob Herring		 * because the can not be enabled simultaneously on a
81*724ba675SRob Herring		 * single SoC.
82*724ba675SRob Herring		 */
83*724ba675SRob Herring		opp50-300000000 {
84*724ba675SRob Herring			opp-hz = /bits/ 64 <300000000>;
85*724ba675SRob Herring			opp-microvolt = <950000 931000 969000>;
86*724ba675SRob Herring			opp-supported-hw = <0x06 0x0010>;
87*724ba675SRob Herring			opp-suspend;
88*724ba675SRob Herring		};
89*724ba675SRob Herring
90*724ba675SRob Herring		opp100-275000000 {
91*724ba675SRob Herring			opp-hz = /bits/ 64 <275000000>;
92*724ba675SRob Herring			opp-microvolt = <1100000 1078000 1122000>;
93*724ba675SRob Herring			opp-supported-hw = <0x01 0x00FF>;
94*724ba675SRob Herring			opp-suspend;
95*724ba675SRob Herring		};
96*724ba675SRob Herring
97*724ba675SRob Herring		opp100-300000000 {
98*724ba675SRob Herring			opp-hz = /bits/ 64 <300000000>;
99*724ba675SRob Herring			opp-microvolt = <1100000 1078000 1122000>;
100*724ba675SRob Herring			opp-supported-hw = <0x06 0x0020>;
101*724ba675SRob Herring			opp-suspend;
102*724ba675SRob Herring		};
103*724ba675SRob Herring
104*724ba675SRob Herring		opp100-500000000 {
105*724ba675SRob Herring			opp-hz = /bits/ 64 <500000000>;
106*724ba675SRob Herring			opp-microvolt = <1100000 1078000 1122000>;
107*724ba675SRob Herring			opp-supported-hw = <0x01 0xFFFF>;
108*724ba675SRob Herring		};
109*724ba675SRob Herring
110*724ba675SRob Herring		opp100-600000000 {
111*724ba675SRob Herring			opp-hz = /bits/ 64 <600000000>;
112*724ba675SRob Herring			opp-microvolt = <1100000 1078000 1122000>;
113*724ba675SRob Herring			opp-supported-hw = <0x06 0x0040>;
114*724ba675SRob Herring		};
115*724ba675SRob Herring
116*724ba675SRob Herring		opp120-600000000 {
117*724ba675SRob Herring			opp-hz = /bits/ 64 <600000000>;
118*724ba675SRob Herring			opp-microvolt = <1200000 1176000 1224000>;
119*724ba675SRob Herring			opp-supported-hw = <0x01 0xFFFF>;
120*724ba675SRob Herring		};
121*724ba675SRob Herring
122*724ba675SRob Herring		opp120-720000000 {
123*724ba675SRob Herring			opp-hz = /bits/ 64 <720000000>;
124*724ba675SRob Herring			opp-microvolt = <1200000 1176000 1224000>;
125*724ba675SRob Herring			opp-supported-hw = <0x06 0x0080>;
126*724ba675SRob Herring		};
127*724ba675SRob Herring
128*724ba675SRob Herring		oppturbo-720000000 {
129*724ba675SRob Herring			opp-hz = /bits/ 64 <720000000>;
130*724ba675SRob Herring			opp-microvolt = <1260000 1234800 1285200>;
131*724ba675SRob Herring			opp-supported-hw = <0x01 0xFFFF>;
132*724ba675SRob Herring		};
133*724ba675SRob Herring
134*724ba675SRob Herring		oppturbo-800000000 {
135*724ba675SRob Herring			opp-hz = /bits/ 64 <800000000>;
136*724ba675SRob Herring			opp-microvolt = <1260000 1234800 1285200>;
137*724ba675SRob Herring			opp-supported-hw = <0x06 0x0100>;
138*724ba675SRob Herring		};
139*724ba675SRob Herring
140*724ba675SRob Herring		oppnitro-1000000000 {
141*724ba675SRob Herring			opp-hz = /bits/ 64 <1000000000>;
142*724ba675SRob Herring			opp-microvolt = <1325000 1298500 1351500>;
143*724ba675SRob Herring			opp-supported-hw = <0x04 0x0200>;
144*724ba675SRob Herring		};
145*724ba675SRob Herring	};
146*724ba675SRob Herring
147*724ba675SRob Herring	target-module@4b000000 {
148*724ba675SRob Herring		compatible = "ti,sysc-omap4-simple", "ti,sysc";
149*724ba675SRob Herring		clocks = <&l3_clkctrl AM3_L3_L3_INSTR_CLKCTRL 0>;
150*724ba675SRob Herring		clock-names = "fck";
151*724ba675SRob Herring		ti,no-idle;
152*724ba675SRob Herring		#address-cells = <1>;
153*724ba675SRob Herring		#size-cells = <1>;
154*724ba675SRob Herring		ranges = <0x0 0x4b000000 0x1000000>;
155*724ba675SRob Herring
156*724ba675SRob Herring		target-module@140000 {
157*724ba675SRob Herring			compatible = "ti,sysc-omap4-simple", "ti,sysc";
158*724ba675SRob Herring			clocks = <&l3_aon_clkctrl AM3_L3_AON_DEBUGSS_CLKCTRL 0>;
159*724ba675SRob Herring			clock-names = "fck";
160*724ba675SRob Herring			#address-cells = <1>;
161*724ba675SRob Herring			#size-cells = <1>;
162*724ba675SRob Herring			ranges = <0x0 0x140000 0xec0000>;
163*724ba675SRob Herring
164*724ba675SRob Herring			pmu@0 {
165*724ba675SRob Herring				compatible = "arm,cortex-a8-pmu";
166*724ba675SRob Herring				interrupts = <3>;
167*724ba675SRob Herring			};
168*724ba675SRob Herring		};
169*724ba675SRob Herring	};
170*724ba675SRob Herring
171*724ba675SRob Herring	/*
172*724ba675SRob Herring	 * The soc node represents the soc top level view. It is used for IPs
173*724ba675SRob Herring	 * that are not memory mapped in the MPU view or for the MPU itself.
174*724ba675SRob Herring	 */
175*724ba675SRob Herring	soc {
176*724ba675SRob Herring		compatible = "ti,omap-infra";
177*724ba675SRob Herring	};
178*724ba675SRob Herring
179*724ba675SRob Herring	/*
180*724ba675SRob Herring	 * XXX: Use a flat representation of the AM33XX interconnect.
181*724ba675SRob Herring	 * The real AM33XX interconnect network is quite complex. Since
182*724ba675SRob Herring	 * it will not bring real advantage to represent that in DT
183*724ba675SRob Herring	 * for the moment, just use a fake OCP bus entry to represent
184*724ba675SRob Herring	 * the whole bus hierarchy.
185*724ba675SRob Herring	 */
186*724ba675SRob Herring	ocp: ocp {
187*724ba675SRob Herring		compatible = "simple-pm-bus";
188*724ba675SRob Herring		power-domains = <&prm_per>;
189*724ba675SRob Herring		clocks = <&l3_clkctrl AM3_L3_L3_MAIN_CLKCTRL 0>;
190*724ba675SRob Herring		clock-names = "fck";
191*724ba675SRob Herring		#address-cells = <1>;
192*724ba675SRob Herring		#size-cells = <1>;
193*724ba675SRob Herring		ranges;
194*724ba675SRob Herring
195*724ba675SRob Herring		l4_wkup: interconnect@44c00000 {
196*724ba675SRob Herring		};
197*724ba675SRob Herring		l4_per: interconnect@48000000 {
198*724ba675SRob Herring		};
199*724ba675SRob Herring		l4_fw: interconnect@47c00000 {
200*724ba675SRob Herring		};
201*724ba675SRob Herring		l4_fast: interconnect@4a000000 {
202*724ba675SRob Herring		};
203*724ba675SRob Herring		l4_mpuss: interconnect@4b140000 {
204*724ba675SRob Herring		};
205*724ba675SRob Herring
206*724ba675SRob Herring		intc: interrupt-controller@48200000 {
207*724ba675SRob Herring			compatible = "ti,am33xx-intc";
208*724ba675SRob Herring			interrupt-controller;
209*724ba675SRob Herring			#interrupt-cells = <1>;
210*724ba675SRob Herring			reg = <0x48200000 0x1000>;
211*724ba675SRob Herring		};
212*724ba675SRob Herring
213*724ba675SRob Herring		target-module@49000000 {
214*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
215*724ba675SRob Herring			reg = <0x49000000 0x4>;
216*724ba675SRob Herring			reg-names = "rev";
217*724ba675SRob Herring			clocks = <&l3_clkctrl AM3_L3_TPCC_CLKCTRL 0>;
218*724ba675SRob Herring			clock-names = "fck";
219*724ba675SRob Herring			#address-cells = <1>;
220*724ba675SRob Herring			#size-cells = <1>;
221*724ba675SRob Herring			ranges = <0x0 0x49000000 0x10000>;
222*724ba675SRob Herring
223*724ba675SRob Herring			edma: dma@0 {
224*724ba675SRob Herring				compatible = "ti,edma3-tpcc";
225*724ba675SRob Herring				reg = <0 0x10000>;
226*724ba675SRob Herring				reg-names = "edma3_cc";
227*724ba675SRob Herring				interrupts = <12 13 14>;
228*724ba675SRob Herring				interrupt-names = "edma3_ccint", "edma3_mperr",
229*724ba675SRob Herring						  "edma3_ccerrint";
230*724ba675SRob Herring				dma-requests = <64>;
231*724ba675SRob Herring				#dma-cells = <2>;
232*724ba675SRob Herring
233*724ba675SRob Herring				ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
234*724ba675SRob Herring					   <&edma_tptc2 0>;
235*724ba675SRob Herring
236*724ba675SRob Herring				ti,edma-memcpy-channels = <20 21>;
237*724ba675SRob Herring			};
238*724ba675SRob Herring		};
239*724ba675SRob Herring
240*724ba675SRob Herring		target-module@49800000 {
241*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
242*724ba675SRob Herring			reg = <0x49800000 0x4>,
243*724ba675SRob Herring			      <0x49800010 0x4>;
244*724ba675SRob Herring			reg-names = "rev", "sysc";
245*724ba675SRob Herring			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
246*724ba675SRob Herring			ti,sysc-midle = <SYSC_IDLE_FORCE>;
247*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
248*724ba675SRob Herring					<SYSC_IDLE_SMART>;
249*724ba675SRob Herring			clocks = <&l3_clkctrl AM3_L3_TPTC0_CLKCTRL 0>;
250*724ba675SRob Herring			clock-names = "fck";
251*724ba675SRob Herring			#address-cells = <1>;
252*724ba675SRob Herring			#size-cells = <1>;
253*724ba675SRob Herring			ranges = <0x0 0x49800000 0x100000>;
254*724ba675SRob Herring
255*724ba675SRob Herring			edma_tptc0: dma@0 {
256*724ba675SRob Herring				compatible = "ti,edma3-tptc";
257*724ba675SRob Herring				reg = <0 0x100000>;
258*724ba675SRob Herring				interrupts = <112>;
259*724ba675SRob Herring				interrupt-names = "edma3_tcerrint";
260*724ba675SRob Herring			};
261*724ba675SRob Herring		};
262*724ba675SRob Herring
263*724ba675SRob Herring		target-module@49900000 {
264*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
265*724ba675SRob Herring			reg = <0x49900000 0x4>,
266*724ba675SRob Herring			      <0x49900010 0x4>;
267*724ba675SRob Herring			reg-names = "rev", "sysc";
268*724ba675SRob Herring			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
269*724ba675SRob Herring			ti,sysc-midle = <SYSC_IDLE_FORCE>;
270*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
271*724ba675SRob Herring					<SYSC_IDLE_SMART>;
272*724ba675SRob Herring			clocks = <&l3_clkctrl AM3_L3_TPTC1_CLKCTRL 0>;
273*724ba675SRob Herring			clock-names = "fck";
274*724ba675SRob Herring			#address-cells = <1>;
275*724ba675SRob Herring			#size-cells = <1>;
276*724ba675SRob Herring			ranges = <0x0 0x49900000 0x100000>;
277*724ba675SRob Herring
278*724ba675SRob Herring			edma_tptc1: dma@0 {
279*724ba675SRob Herring				compatible = "ti,edma3-tptc";
280*724ba675SRob Herring				reg = <0 0x100000>;
281*724ba675SRob Herring				interrupts = <113>;
282*724ba675SRob Herring				interrupt-names = "edma3_tcerrint";
283*724ba675SRob Herring			};
284*724ba675SRob Herring		};
285*724ba675SRob Herring
286*724ba675SRob Herring		target-module@49a00000 {
287*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
288*724ba675SRob Herring			reg = <0x49a00000 0x4>,
289*724ba675SRob Herring			      <0x49a00010 0x4>;
290*724ba675SRob Herring			reg-names = "rev", "sysc";
291*724ba675SRob Herring			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
292*724ba675SRob Herring			ti,sysc-midle = <SYSC_IDLE_FORCE>;
293*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
294*724ba675SRob Herring					<SYSC_IDLE_SMART>;
295*724ba675SRob Herring			clocks = <&l3_clkctrl AM3_L3_TPTC2_CLKCTRL 0>;
296*724ba675SRob Herring			clock-names = "fck";
297*724ba675SRob Herring			#address-cells = <1>;
298*724ba675SRob Herring			#size-cells = <1>;
299*724ba675SRob Herring			ranges = <0x0 0x49a00000 0x100000>;
300*724ba675SRob Herring
301*724ba675SRob Herring			edma_tptc2: dma@0 {
302*724ba675SRob Herring				compatible = "ti,edma3-tptc";
303*724ba675SRob Herring				reg = <0 0x100000>;
304*724ba675SRob Herring				interrupts = <114>;
305*724ba675SRob Herring				interrupt-names = "edma3_tcerrint";
306*724ba675SRob Herring			};
307*724ba675SRob Herring		};
308*724ba675SRob Herring
309*724ba675SRob Herring		target-module@47810000 {
310*724ba675SRob Herring			compatible = "ti,sysc-omap2", "ti,sysc";
311*724ba675SRob Herring			reg = <0x478102fc 0x4>,
312*724ba675SRob Herring			      <0x47810110 0x4>,
313*724ba675SRob Herring			      <0x47810114 0x4>;
314*724ba675SRob Herring			reg-names = "rev", "sysc", "syss";
315*724ba675SRob Herring			ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
316*724ba675SRob Herring					 SYSC_OMAP2_ENAWAKEUP |
317*724ba675SRob Herring					 SYSC_OMAP2_SOFTRESET |
318*724ba675SRob Herring					 SYSC_OMAP2_AUTOIDLE)>;
319*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
320*724ba675SRob Herring					<SYSC_IDLE_NO>,
321*724ba675SRob Herring					<SYSC_IDLE_SMART>;
322*724ba675SRob Herring			ti,syss-mask = <1>;
323*724ba675SRob Herring			clocks = <&l3s_clkctrl AM3_L3S_MMC3_CLKCTRL 0>;
324*724ba675SRob Herring			clock-names = "fck";
325*724ba675SRob Herring			#address-cells = <1>;
326*724ba675SRob Herring			#size-cells = <1>;
327*724ba675SRob Herring			ranges = <0x0 0x47810000 0x1000>;
328*724ba675SRob Herring
329*724ba675SRob Herring			mmc3: mmc@0 {
330*724ba675SRob Herring				compatible = "ti,am335-sdhci";
331*724ba675SRob Herring				ti,needs-special-reset;
332*724ba675SRob Herring				interrupts = <29>;
333*724ba675SRob Herring				reg = <0x0 0x1000>;
334*724ba675SRob Herring				status = "disabled";
335*724ba675SRob Herring			};
336*724ba675SRob Herring		};
337*724ba675SRob Herring
338*724ba675SRob Herring		usb: target-module@47400000 {
339*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
340*724ba675SRob Herring			reg = <0x47400000 0x4>,
341*724ba675SRob Herring			      <0x47400010 0x4>;
342*724ba675SRob Herring			reg-names = "rev", "sysc";
343*724ba675SRob Herring			ti,sysc-mask = <(SYSC_OMAP4_FREEEMU |
344*724ba675SRob Herring					 SYSC_OMAP4_SOFTRESET)>;
345*724ba675SRob Herring			ti,sysc-midle = <SYSC_IDLE_FORCE>,
346*724ba675SRob Herring					<SYSC_IDLE_NO>,
347*724ba675SRob Herring					<SYSC_IDLE_SMART>;
348*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
349*724ba675SRob Herring					<SYSC_IDLE_NO>,
350*724ba675SRob Herring					<SYSC_IDLE_SMART>,
351*724ba675SRob Herring					<SYSC_IDLE_SMART_WKUP>;
352*724ba675SRob Herring			clocks = <&l3s_clkctrl AM3_L3S_USB_OTG_HS_CLKCTRL 0>;
353*724ba675SRob Herring			clock-names = "fck";
354*724ba675SRob Herring			#address-cells = <1>;
355*724ba675SRob Herring			#size-cells = <1>;
356*724ba675SRob Herring			ranges = <0x0 0x47400000 0x8000>;
357*724ba675SRob Herring
358*724ba675SRob Herring			usb0_phy: usb-phy@1300 {
359*724ba675SRob Herring				compatible = "ti,am335x-usb-phy";
360*724ba675SRob Herring				reg = <0x1300 0x100>;
361*724ba675SRob Herring				reg-names = "phy";
362*724ba675SRob Herring				ti,ctrl_mod = <&usb_ctrl_mod>;
363*724ba675SRob Herring				#phy-cells = <0>;
364*724ba675SRob Herring			};
365*724ba675SRob Herring
366*724ba675SRob Herring			usb0: usb@1400 {
367*724ba675SRob Herring				compatible = "ti,musb-am33xx";
368*724ba675SRob Herring				reg = <0x1400 0x400>,
369*724ba675SRob Herring				      <0x1000 0x200>;
370*724ba675SRob Herring				reg-names = "mc", "control";
371*724ba675SRob Herring
372*724ba675SRob Herring				interrupts = <18>;
373*724ba675SRob Herring				interrupt-names = "mc";
374*724ba675SRob Herring				dr_mode = "otg";
375*724ba675SRob Herring				mentor,multipoint = <1>;
376*724ba675SRob Herring				mentor,num-eps = <16>;
377*724ba675SRob Herring				mentor,ram-bits = <12>;
378*724ba675SRob Herring				mentor,power = <500>;
379*724ba675SRob Herring				phys = <&usb0_phy>;
380*724ba675SRob Herring
381*724ba675SRob Herring				dmas = <&cppi41dma  0 0 &cppi41dma  1 0
382*724ba675SRob Herring					&cppi41dma  2 0 &cppi41dma  3 0
383*724ba675SRob Herring					&cppi41dma  4 0 &cppi41dma  5 0
384*724ba675SRob Herring					&cppi41dma  6 0 &cppi41dma  7 0
385*724ba675SRob Herring					&cppi41dma  8 0 &cppi41dma  9 0
386*724ba675SRob Herring					&cppi41dma 10 0 &cppi41dma 11 0
387*724ba675SRob Herring					&cppi41dma 12 0 &cppi41dma 13 0
388*724ba675SRob Herring					&cppi41dma 14 0 &cppi41dma  0 1
389*724ba675SRob Herring					&cppi41dma  1 1 &cppi41dma  2 1
390*724ba675SRob Herring					&cppi41dma  3 1 &cppi41dma  4 1
391*724ba675SRob Herring					&cppi41dma  5 1 &cppi41dma  6 1
392*724ba675SRob Herring					&cppi41dma  7 1 &cppi41dma  8 1
393*724ba675SRob Herring					&cppi41dma  9 1 &cppi41dma 10 1
394*724ba675SRob Herring					&cppi41dma 11 1 &cppi41dma 12 1
395*724ba675SRob Herring					&cppi41dma 13 1 &cppi41dma 14 1>;
396*724ba675SRob Herring				dma-names =
397*724ba675SRob Herring					"rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
398*724ba675SRob Herring					"rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
399*724ba675SRob Herring					"rx14", "rx15",
400*724ba675SRob Herring					"tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
401*724ba675SRob Herring					"tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
402*724ba675SRob Herring					"tx14", "tx15";
403*724ba675SRob Herring			};
404*724ba675SRob Herring
405*724ba675SRob Herring			usb1_phy: usb-phy@1b00 {
406*724ba675SRob Herring				compatible = "ti,am335x-usb-phy";
407*724ba675SRob Herring				reg = <0x1b00 0x100>;
408*724ba675SRob Herring				reg-names = "phy";
409*724ba675SRob Herring				ti,ctrl_mod = <&usb_ctrl_mod>;
410*724ba675SRob Herring				#phy-cells = <0>;
411*724ba675SRob Herring			};
412*724ba675SRob Herring
413*724ba675SRob Herring			usb1: usb@1800 {
414*724ba675SRob Herring				compatible = "ti,musb-am33xx";
415*724ba675SRob Herring				reg = <0x1c00 0x400>,
416*724ba675SRob Herring				      <0x1800 0x200>;
417*724ba675SRob Herring				reg-names = "mc", "control";
418*724ba675SRob Herring				interrupts = <19>;
419*724ba675SRob Herring				interrupt-names = "mc";
420*724ba675SRob Herring				dr_mode = "otg";
421*724ba675SRob Herring				mentor,multipoint = <1>;
422*724ba675SRob Herring				mentor,num-eps = <16>;
423*724ba675SRob Herring				mentor,ram-bits = <12>;
424*724ba675SRob Herring				mentor,power = <500>;
425*724ba675SRob Herring				phys = <&usb1_phy>;
426*724ba675SRob Herring
427*724ba675SRob Herring				dmas = <&cppi41dma 15 0 &cppi41dma 16 0
428*724ba675SRob Herring					&cppi41dma 17 0 &cppi41dma 18 0
429*724ba675SRob Herring					&cppi41dma 19 0 &cppi41dma 20 0
430*724ba675SRob Herring					&cppi41dma 21 0 &cppi41dma 22 0
431*724ba675SRob Herring					&cppi41dma 23 0 &cppi41dma 24 0
432*724ba675SRob Herring					&cppi41dma 25 0 &cppi41dma 26 0
433*724ba675SRob Herring					&cppi41dma 27 0 &cppi41dma 28 0
434*724ba675SRob Herring					&cppi41dma 29 0 &cppi41dma 15 1
435*724ba675SRob Herring					&cppi41dma 16 1 &cppi41dma 17 1
436*724ba675SRob Herring					&cppi41dma 18 1 &cppi41dma 19 1
437*724ba675SRob Herring					&cppi41dma 20 1 &cppi41dma 21 1
438*724ba675SRob Herring					&cppi41dma 22 1 &cppi41dma 23 1
439*724ba675SRob Herring					&cppi41dma 24 1 &cppi41dma 25 1
440*724ba675SRob Herring					&cppi41dma 26 1 &cppi41dma 27 1
441*724ba675SRob Herring					&cppi41dma 28 1 &cppi41dma 29 1>;
442*724ba675SRob Herring				dma-names =
443*724ba675SRob Herring					"rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
444*724ba675SRob Herring					"rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
445*724ba675SRob Herring					"rx14", "rx15",
446*724ba675SRob Herring					"tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
447*724ba675SRob Herring					"tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
448*724ba675SRob Herring					"tx14", "tx15";
449*724ba675SRob Herring			};
450*724ba675SRob Herring
451*724ba675SRob Herring			cppi41dma: dma-controller@2000 {
452*724ba675SRob Herring				compatible = "ti,am3359-cppi41";
453*724ba675SRob Herring				reg =  <0x0000 0x1000>,
454*724ba675SRob Herring				       <0x2000 0x1000>,
455*724ba675SRob Herring				       <0x3000 0x1000>,
456*724ba675SRob Herring				       <0x4000 0x4000>;
457*724ba675SRob Herring				reg-names = "glue", "controller", "scheduler", "queuemgr";
458*724ba675SRob Herring				interrupts = <17>;
459*724ba675SRob Herring				interrupt-names = "glue";
460*724ba675SRob Herring				#dma-cells = <2>;
461*724ba675SRob Herring				/* For backwards compatibility: */
462*724ba675SRob Herring				#dma-channels = <30>;
463*724ba675SRob Herring				dma-channels = <30>;
464*724ba675SRob Herring				#dma-requests = <256>;
465*724ba675SRob Herring				dma-requests = <256>;
466*724ba675SRob Herring			};
467*724ba675SRob Herring		};
468*724ba675SRob Herring
469*724ba675SRob Herring		target-module@40300000 {
470*724ba675SRob Herring			compatible = "ti,sysc-omap4-simple", "ti,sysc";
471*724ba675SRob Herring			clocks = <&l3_clkctrl AM3_L3_OCMCRAM_CLKCTRL 0>;
472*724ba675SRob Herring			clock-names = "fck";
473*724ba675SRob Herring			ti,no-idle;
474*724ba675SRob Herring			#address-cells = <1>;
475*724ba675SRob Herring			#size-cells = <1>;
476*724ba675SRob Herring			ranges = <0 0x40300000 0x10000>;
477*724ba675SRob Herring
478*724ba675SRob Herring			ocmcram: sram@0 {
479*724ba675SRob Herring				compatible = "mmio-sram";
480*724ba675SRob Herring				reg = <0 0x10000>; /* 64k */
481*724ba675SRob Herring				ranges = <0 0 0x10000>;
482*724ba675SRob Herring				#address-cells = <1>;
483*724ba675SRob Herring				#size-cells = <1>;
484*724ba675SRob Herring
485*724ba675SRob Herring				pm_sram_code: pm-code-sram@0 {
486*724ba675SRob Herring					compatible = "ti,sram";
487*724ba675SRob Herring					reg = <0x0 0x1000>;
488*724ba675SRob Herring					protect-exec;
489*724ba675SRob Herring				};
490*724ba675SRob Herring
491*724ba675SRob Herring				pm_sram_data: pm-data-sram@1000 {
492*724ba675SRob Herring					compatible = "ti,sram";
493*724ba675SRob Herring					reg = <0x1000 0x1000>;
494*724ba675SRob Herring					pool;
495*724ba675SRob Herring				};
496*724ba675SRob Herring			};
497*724ba675SRob Herring		};
498*724ba675SRob Herring
499*724ba675SRob Herring		target-module@4c000000 {
500*724ba675SRob Herring			compatible = "ti,sysc-omap4-simple", "ti,sysc";
501*724ba675SRob Herring			reg = <0x4c000000 0x4>;
502*724ba675SRob Herring			reg-names = "rev";
503*724ba675SRob Herring			clocks = <&l3_clkctrl AM3_L3_EMIF_CLKCTRL 0>;
504*724ba675SRob Herring			clock-names = "fck";
505*724ba675SRob Herring			ti,no-idle;
506*724ba675SRob Herring			#address-cells = <1>;
507*724ba675SRob Herring			#size-cells = <1>;
508*724ba675SRob Herring			ranges = <0x0 0x4c000000 0x1000000>;
509*724ba675SRob Herring
510*724ba675SRob Herring			emif: emif@0 {
511*724ba675SRob Herring				compatible = "ti,emif-am3352";
512*724ba675SRob Herring				reg = <0 0x1000000>;
513*724ba675SRob Herring				interrupts = <101>;
514*724ba675SRob Herring				sram = <&pm_sram_code
515*724ba675SRob Herring					&pm_sram_data>;
516*724ba675SRob Herring			};
517*724ba675SRob Herring		};
518*724ba675SRob Herring
519*724ba675SRob Herring		target-module@50000000 {
520*724ba675SRob Herring			compatible = "ti,sysc-omap2", "ti,sysc";
521*724ba675SRob Herring			reg = <0x50000000 4>,
522*724ba675SRob Herring			      <0x50000010 4>,
523*724ba675SRob Herring			      <0x50000014 4>;
524*724ba675SRob Herring			reg-names = "rev", "sysc", "syss";
525*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
526*724ba675SRob Herring					<SYSC_IDLE_NO>,
527*724ba675SRob Herring					<SYSC_IDLE_SMART>;
528*724ba675SRob Herring			ti,syss-mask = <1>;
529*724ba675SRob Herring			clocks = <&l3s_clkctrl AM3_L3S_GPMC_CLKCTRL 0>;
530*724ba675SRob Herring			clock-names = "fck";
531*724ba675SRob Herring			#address-cells = <1>;
532*724ba675SRob Herring			#size-cells = <1>;
533*724ba675SRob Herring			ranges = <0x50000000 0x50000000 0x00001000>, /* regs */
534*724ba675SRob Herring				 <0x00000000 0x00000000 0x40000000>; /* data */
535*724ba675SRob Herring
536*724ba675SRob Herring			gpmc: gpmc@50000000 {
537*724ba675SRob Herring				compatible = "ti,am3352-gpmc";
538*724ba675SRob Herring				reg = <0x50000000 0x2000>;
539*724ba675SRob Herring				interrupts = <100>;
540*724ba675SRob Herring				dmas = <&edma 52 0>;
541*724ba675SRob Herring				dma-names = "rxtx";
542*724ba675SRob Herring				gpmc,num-cs = <7>;
543*724ba675SRob Herring				gpmc,num-waitpins = <2>;
544*724ba675SRob Herring				#address-cells = <2>;
545*724ba675SRob Herring				#size-cells = <1>;
546*724ba675SRob Herring				interrupt-controller;
547*724ba675SRob Herring				#interrupt-cells = <2>;
548*724ba675SRob Herring				gpio-controller;
549*724ba675SRob Herring				#gpio-cells = <2>;
550*724ba675SRob Herring				status = "disabled";
551*724ba675SRob Herring			};
552*724ba675SRob Herring		};
553*724ba675SRob Herring
554*724ba675SRob Herring		sham_target: target-module@53100000 {
555*724ba675SRob Herring			compatible = "ti,sysc-omap3-sham", "ti,sysc";
556*724ba675SRob Herring			reg = <0x53100100 0x4>,
557*724ba675SRob Herring			      <0x53100110 0x4>,
558*724ba675SRob Herring			      <0x53100114 0x4>;
559*724ba675SRob Herring			reg-names = "rev", "sysc", "syss";
560*724ba675SRob Herring			ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
561*724ba675SRob Herring					 SYSC_OMAP2_AUTOIDLE)>;
562*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
563*724ba675SRob Herring					<SYSC_IDLE_NO>,
564*724ba675SRob Herring					<SYSC_IDLE_SMART>;
565*724ba675SRob Herring			ti,syss-mask = <1>;
566*724ba675SRob Herring			/* Domains (P, C): per_pwrdm, l3_clkdm */
567*724ba675SRob Herring			clocks = <&l3_clkctrl AM3_L3_SHAM_CLKCTRL 0>;
568*724ba675SRob Herring			clock-names = "fck";
569*724ba675SRob Herring			#address-cells = <1>;
570*724ba675SRob Herring			#size-cells = <1>;
571*724ba675SRob Herring			ranges = <0x0 0x53100000 0x1000>;
572*724ba675SRob Herring
573*724ba675SRob Herring			sham: sham@0 {
574*724ba675SRob Herring				compatible = "ti,omap4-sham";
575*724ba675SRob Herring				reg = <0 0x200>;
576*724ba675SRob Herring				interrupts = <109>;
577*724ba675SRob Herring				dmas = <&edma 36 0>;
578*724ba675SRob Herring				dma-names = "rx";
579*724ba675SRob Herring			};
580*724ba675SRob Herring		};
581*724ba675SRob Herring
582*724ba675SRob Herring		aes_target: target-module@53500000 {
583*724ba675SRob Herring			compatible = "ti,sysc-omap2", "ti,sysc";
584*724ba675SRob Herring			reg = <0x53500080 0x4>,
585*724ba675SRob Herring			      <0x53500084 0x4>,
586*724ba675SRob Herring			      <0x53500088 0x4>;
587*724ba675SRob Herring			reg-names = "rev", "sysc", "syss";
588*724ba675SRob Herring			ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
589*724ba675SRob Herring					 SYSC_OMAP2_AUTOIDLE)>;
590*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
591*724ba675SRob Herring					<SYSC_IDLE_NO>,
592*724ba675SRob Herring					<SYSC_IDLE_SMART>,
593*724ba675SRob Herring					<SYSC_IDLE_SMART_WKUP>;
594*724ba675SRob Herring			ti,syss-mask = <1>;
595*724ba675SRob Herring			/* Domains (P, C): per_pwrdm, l3_clkdm */
596*724ba675SRob Herring			clocks = <&l3_clkctrl AM3_L3_AES_CLKCTRL 0>;
597*724ba675SRob Herring			clock-names = "fck";
598*724ba675SRob Herring			#address-cells = <1>;
599*724ba675SRob Herring			#size-cells = <1>;
600*724ba675SRob Herring			ranges = <0x0 0x53500000 0x1000>;
601*724ba675SRob Herring
602*724ba675SRob Herring			aes: aes@0 {
603*724ba675SRob Herring				compatible = "ti,omap4-aes";
604*724ba675SRob Herring				reg = <0 0xa0>;
605*724ba675SRob Herring				interrupts = <103>;
606*724ba675SRob Herring				dmas = <&edma 6 0>,
607*724ba675SRob Herring				       <&edma 5 0>;
608*724ba675SRob Herring				dma-names = "tx", "rx";
609*724ba675SRob Herring			};
610*724ba675SRob Herring		};
611*724ba675SRob Herring
612*724ba675SRob Herring		target-module@56000000 {
613*724ba675SRob Herring			compatible = "ti,sysc-omap4", "ti,sysc";
614*724ba675SRob Herring			reg = <0x5600fe00 0x4>,
615*724ba675SRob Herring			      <0x5600fe10 0x4>;
616*724ba675SRob Herring			reg-names = "rev", "sysc";
617*724ba675SRob Herring			ti,sysc-midle = <SYSC_IDLE_FORCE>,
618*724ba675SRob Herring					<SYSC_IDLE_NO>,
619*724ba675SRob Herring					<SYSC_IDLE_SMART>;
620*724ba675SRob Herring			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
621*724ba675SRob Herring					<SYSC_IDLE_NO>,
622*724ba675SRob Herring					<SYSC_IDLE_SMART>;
623*724ba675SRob Herring			clocks = <&gfx_l3_clkctrl AM3_GFX_L3_GFX_CLKCTRL 0>;
624*724ba675SRob Herring			clock-names = "fck";
625*724ba675SRob Herring			power-domains = <&prm_gfx>;
626*724ba675SRob Herring			resets = <&prm_gfx 0>;
627*724ba675SRob Herring			reset-names = "rstctrl";
628*724ba675SRob Herring			#address-cells = <1>;
629*724ba675SRob Herring			#size-cells = <1>;
630*724ba675SRob Herring			ranges = <0 0x56000000 0x1000000>;
631*724ba675SRob Herring
632*724ba675SRob Herring			/*
633*724ba675SRob Herring			 * Closed source PowerVR driver, no child device
634*724ba675SRob Herring			 * binding or driver in mainline
635*724ba675SRob Herring			 */
636*724ba675SRob Herring		};
637*724ba675SRob Herring	};
638*724ba675SRob Herring};
639*724ba675SRob Herring
640*724ba675SRob Herring#include "am33xx-l4.dtsi"
641*724ba675SRob Herring#include "am33xx-clocks.dtsi"
642*724ba675SRob Herring
643*724ba675SRob Herring&prcm {
644*724ba675SRob Herring	prm_per: prm@c00 {
645*724ba675SRob Herring		compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
646*724ba675SRob Herring		reg = <0xc00 0x100>;
647*724ba675SRob Herring		#reset-cells = <1>;
648*724ba675SRob Herring		#power-domain-cells = <0>;
649*724ba675SRob Herring	};
650*724ba675SRob Herring
651*724ba675SRob Herring	prm_wkup: prm@d00 {
652*724ba675SRob Herring		compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
653*724ba675SRob Herring		reg = <0xd00 0x100>;
654*724ba675SRob Herring		#reset-cells = <1>;
655*724ba675SRob Herring		#power-domain-cells = <0>;
656*724ba675SRob Herring	};
657*724ba675SRob Herring
658*724ba675SRob Herring	prm_mpu: prm@e00 {
659*724ba675SRob Herring		compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
660*724ba675SRob Herring		reg = <0xe00 0x100>;
661*724ba675SRob Herring		#power-domain-cells = <0>;
662*724ba675SRob Herring	};
663*724ba675SRob Herring
664*724ba675SRob Herring	prm_device: prm@f00 {
665*724ba675SRob Herring		compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
666*724ba675SRob Herring		reg = <0xf00 0x100>;
667*724ba675SRob Herring		#reset-cells = <1>;
668*724ba675SRob Herring	};
669*724ba675SRob Herring
670*724ba675SRob Herring	prm_rtc: prm@1000 {
671*724ba675SRob Herring		compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
672*724ba675SRob Herring		reg = <0x1000 0x100>;
673*724ba675SRob Herring		#power-domain-cells = <0>;
674*724ba675SRob Herring	};
675*724ba675SRob Herring
676*724ba675SRob Herring	prm_gfx: prm@1100 {
677*724ba675SRob Herring		compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
678*724ba675SRob Herring		reg = <0x1100 0x100>;
679*724ba675SRob Herring		#power-domain-cells = <0>;
680*724ba675SRob Herring		#reset-cells = <1>;
681*724ba675SRob Herring	};
682*724ba675SRob Herring
683*724ba675SRob Herring	prm_cefuse: prm@1200 {
684*724ba675SRob Herring		compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
685*724ba675SRob Herring		reg = <0x1200 0x100>;
686*724ba675SRob Herring		#power-domain-cells = <0>;
687*724ba675SRob Herring	};
688*724ba675SRob Herring};
689*724ba675SRob Herring
690*724ba675SRob Herring/* Preferred always-on timer for clocksource */
691*724ba675SRob Herring&timer1_target {
692*724ba675SRob Herring	clocks = <&l4_wkup_clkctrl AM3_L4_WKUP_TIMER1_CLKCTRL 0>,
693*724ba675SRob Herring		 <&l4_wkup_clkctrl AM3_L4_WKUP_L4_WKUP_CLKCTRL 0>;
694*724ba675SRob Herring	clock-names = "fck", "ick";
695*724ba675SRob Herring	ti,no-reset-on-init;
696*724ba675SRob Herring	ti,no-idle;
697*724ba675SRob Herring	timer@0 {
698*724ba675SRob Herring		assigned-clocks = <&timer1_fck>;
699*724ba675SRob Herring		assigned-clock-parents = <&sys_clkin_ck>;
700*724ba675SRob Herring	};
701*724ba675SRob Herring};
702*724ba675SRob Herring
703*724ba675SRob Herring/* Preferred timer for clockevent */
704*724ba675SRob Herring&timer2_target {
705*724ba675SRob Herring	clocks = <&l4ls_clkctrl AM3_L4LS_TIMER2_CLKCTRL 0>,
706*724ba675SRob Herring		 <&l4ls_clkctrl AM3_L4LS_L4_LS_CLKCTRL 0>;
707*724ba675SRob Herring	clock-names = "fck", "ick";
708*724ba675SRob Herring	ti,no-reset-on-init;
709*724ba675SRob Herring	ti,no-idle;
710*724ba675SRob Herring	timer@0 {
711*724ba675SRob Herring		assigned-clocks = <&timer2_fck>;
712*724ba675SRob Herring		assigned-clock-parents = <&sys_clkin_ck>;
713*724ba675SRob Herring	};
714*724ba675SRob Herring};
715