xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/tegra20.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun#include <dt-bindings/clock/tegra20-car.h>
3*4882a593Smuzhiyun#include <dt-bindings/gpio/tegra-gpio.h>
4*4882a593Smuzhiyun#include <dt-bindings/memory/tegra20-mc.h>
5*4882a593Smuzhiyun#include <dt-bindings/pinctrl/pinctrl-tegra.h>
6*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
7*4882a593Smuzhiyun#include <dt-bindings/soc/tegra-pmc.h>
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun/ {
10*4882a593Smuzhiyun	compatible = "nvidia,tegra20";
11*4882a593Smuzhiyun	interrupt-parent = <&lic>;
12*4882a593Smuzhiyun	#address-cells = <1>;
13*4882a593Smuzhiyun	#size-cells = <1>;
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun	memory@0 {
16*4882a593Smuzhiyun		device_type = "memory";
17*4882a593Smuzhiyun		reg = <0 0>;
18*4882a593Smuzhiyun	};
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun	sram@40000000 {
21*4882a593Smuzhiyun		compatible = "mmio-sram";
22*4882a593Smuzhiyun		reg = <0x40000000 0x40000>;
23*4882a593Smuzhiyun		#address-cells = <1>;
24*4882a593Smuzhiyun		#size-cells = <1>;
25*4882a593Smuzhiyun		ranges = <0 0x40000000 0x40000>;
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun		vde_pool: sram@400 {
28*4882a593Smuzhiyun			reg = <0x400 0x3fc00>;
29*4882a593Smuzhiyun			pool;
30*4882a593Smuzhiyun		};
31*4882a593Smuzhiyun	};
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun	host1x@50000000 {
34*4882a593Smuzhiyun		compatible = "nvidia,tegra20-host1x";
35*4882a593Smuzhiyun		reg = <0x50000000 0x00024000>;
36*4882a593Smuzhiyun		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
37*4882a593Smuzhiyun			     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */
38*4882a593Smuzhiyun		interrupt-names = "syncpt", "host1x";
39*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_HOST1X>;
40*4882a593Smuzhiyun		clock-names = "host1x";
41*4882a593Smuzhiyun		resets = <&tegra_car 28>;
42*4882a593Smuzhiyun		reset-names = "host1x";
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun		#address-cells = <1>;
45*4882a593Smuzhiyun		#size-cells = <1>;
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun		ranges = <0x54000000 0x54000000 0x04000000>;
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun		mpe@54040000 {
50*4882a593Smuzhiyun			compatible = "nvidia,tegra20-mpe";
51*4882a593Smuzhiyun			reg = <0x54040000 0x00040000>;
52*4882a593Smuzhiyun			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
53*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_MPE>;
54*4882a593Smuzhiyun			resets = <&tegra_car 60>;
55*4882a593Smuzhiyun			reset-names = "mpe";
56*4882a593Smuzhiyun		};
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun		vi@54080000 {
59*4882a593Smuzhiyun			compatible = "nvidia,tegra20-vi";
60*4882a593Smuzhiyun			reg = <0x54080000 0x00040000>;
61*4882a593Smuzhiyun			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
62*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_VI>;
63*4882a593Smuzhiyun			resets = <&tegra_car 20>;
64*4882a593Smuzhiyun			reset-names = "vi";
65*4882a593Smuzhiyun		};
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun		epp@540c0000 {
68*4882a593Smuzhiyun			compatible = "nvidia,tegra20-epp";
69*4882a593Smuzhiyun			reg = <0x540c0000 0x00040000>;
70*4882a593Smuzhiyun			interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
71*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_EPP>;
72*4882a593Smuzhiyun			resets = <&tegra_car 19>;
73*4882a593Smuzhiyun			reset-names = "epp";
74*4882a593Smuzhiyun		};
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun		isp@54100000 {
77*4882a593Smuzhiyun			compatible = "nvidia,tegra20-isp";
78*4882a593Smuzhiyun			reg = <0x54100000 0x00040000>;
79*4882a593Smuzhiyun			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
80*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_ISP>;
81*4882a593Smuzhiyun			resets = <&tegra_car 23>;
82*4882a593Smuzhiyun			reset-names = "isp";
83*4882a593Smuzhiyun		};
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun		gr2d@54140000 {
86*4882a593Smuzhiyun			compatible = "nvidia,tegra20-gr2d";
87*4882a593Smuzhiyun			reg = <0x54140000 0x00040000>;
88*4882a593Smuzhiyun			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
89*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_GR2D>;
90*4882a593Smuzhiyun			resets = <&tegra_car 21>;
91*4882a593Smuzhiyun			reset-names = "2d";
92*4882a593Smuzhiyun		};
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun		gr3d@54180000 {
95*4882a593Smuzhiyun			compatible = "nvidia,tegra20-gr3d";
96*4882a593Smuzhiyun			reg = <0x54180000 0x00040000>;
97*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_GR3D>;
98*4882a593Smuzhiyun			resets = <&tegra_car 24>;
99*4882a593Smuzhiyun			reset-names = "3d";
100*4882a593Smuzhiyun		};
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun		dc@54200000 {
103*4882a593Smuzhiyun			compatible = "nvidia,tegra20-dc";
104*4882a593Smuzhiyun			reg = <0x54200000 0x00040000>;
105*4882a593Smuzhiyun			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
106*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_DISP1>,
107*4882a593Smuzhiyun				 <&tegra_car TEGRA20_CLK_PLL_P>;
108*4882a593Smuzhiyun			clock-names = "dc", "parent";
109*4882a593Smuzhiyun			resets = <&tegra_car 27>;
110*4882a593Smuzhiyun			reset-names = "dc";
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun			nvidia,head = <0>;
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun			rgb {
115*4882a593Smuzhiyun				status = "disabled";
116*4882a593Smuzhiyun			};
117*4882a593Smuzhiyun		};
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun		dc@54240000 {
120*4882a593Smuzhiyun			compatible = "nvidia,tegra20-dc";
121*4882a593Smuzhiyun			reg = <0x54240000 0x00040000>;
122*4882a593Smuzhiyun			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
123*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_DISP2>,
124*4882a593Smuzhiyun				 <&tegra_car TEGRA20_CLK_PLL_P>;
125*4882a593Smuzhiyun			clock-names = "dc", "parent";
126*4882a593Smuzhiyun			resets = <&tegra_car 26>;
127*4882a593Smuzhiyun			reset-names = "dc";
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun			nvidia,head = <1>;
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun			rgb {
132*4882a593Smuzhiyun				status = "disabled";
133*4882a593Smuzhiyun			};
134*4882a593Smuzhiyun		};
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun		hdmi@54280000 {
137*4882a593Smuzhiyun			compatible = "nvidia,tegra20-hdmi";
138*4882a593Smuzhiyun			reg = <0x54280000 0x00040000>;
139*4882a593Smuzhiyun			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
140*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_HDMI>,
141*4882a593Smuzhiyun				 <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
142*4882a593Smuzhiyun			clock-names = "hdmi", "parent";
143*4882a593Smuzhiyun			resets = <&tegra_car 51>;
144*4882a593Smuzhiyun			reset-names = "hdmi";
145*4882a593Smuzhiyun			status = "disabled";
146*4882a593Smuzhiyun		};
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun		tvo@542c0000 {
149*4882a593Smuzhiyun			compatible = "nvidia,tegra20-tvo";
150*4882a593Smuzhiyun			reg = <0x542c0000 0x00040000>;
151*4882a593Smuzhiyun			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
152*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_TVO>;
153*4882a593Smuzhiyun			status = "disabled";
154*4882a593Smuzhiyun		};
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun		dsi@54300000 {
157*4882a593Smuzhiyun			compatible = "nvidia,tegra20-dsi";
158*4882a593Smuzhiyun			reg = <0x54300000 0x00040000>;
159*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_DSI>,
160*4882a593Smuzhiyun				 <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
161*4882a593Smuzhiyun			clock-names = "dsi", "parent";
162*4882a593Smuzhiyun			resets = <&tegra_car 48>;
163*4882a593Smuzhiyun			reset-names = "dsi";
164*4882a593Smuzhiyun			status = "disabled";
165*4882a593Smuzhiyun		};
166*4882a593Smuzhiyun	};
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun	timer@50040600 {
169*4882a593Smuzhiyun		compatible = "arm,cortex-a9-twd-timer";
170*4882a593Smuzhiyun		interrupt-parent = <&intc>;
171*4882a593Smuzhiyun		reg = <0x50040600 0x20>;
172*4882a593Smuzhiyun		interrupts = <GIC_PPI 13
173*4882a593Smuzhiyun			(GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
174*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_TWD>;
175*4882a593Smuzhiyun	};
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun	intc: interrupt-controller@50041000 {
178*4882a593Smuzhiyun		compatible = "arm,cortex-a9-gic";
179*4882a593Smuzhiyun		reg = <0x50041000 0x1000>,
180*4882a593Smuzhiyun		      <0x50040100 0x0100>;
181*4882a593Smuzhiyun		interrupt-controller;
182*4882a593Smuzhiyun		#interrupt-cells = <3>;
183*4882a593Smuzhiyun		interrupt-parent = <&intc>;
184*4882a593Smuzhiyun	};
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun	cache-controller@50043000 {
187*4882a593Smuzhiyun		compatible = "arm,pl310-cache";
188*4882a593Smuzhiyun		reg = <0x50043000 0x1000>;
189*4882a593Smuzhiyun		arm,data-latency = <5 5 2>;
190*4882a593Smuzhiyun		arm,tag-latency = <4 4 2>;
191*4882a593Smuzhiyun		cache-unified;
192*4882a593Smuzhiyun		cache-level = <2>;
193*4882a593Smuzhiyun	};
194*4882a593Smuzhiyun
195*4882a593Smuzhiyun	lic: interrupt-controller@60004000 {
196*4882a593Smuzhiyun		compatible = "nvidia,tegra20-ictlr";
197*4882a593Smuzhiyun		reg = <0x60004000 0x100>,
198*4882a593Smuzhiyun		      <0x60004100 0x50>,
199*4882a593Smuzhiyun		      <0x60004200 0x50>,
200*4882a593Smuzhiyun		      <0x60004300 0x50>;
201*4882a593Smuzhiyun		interrupt-controller;
202*4882a593Smuzhiyun		#interrupt-cells = <3>;
203*4882a593Smuzhiyun		interrupt-parent = <&intc>;
204*4882a593Smuzhiyun	};
205*4882a593Smuzhiyun
206*4882a593Smuzhiyun	timer@60005000 {
207*4882a593Smuzhiyun		compatible = "nvidia,tegra20-timer";
208*4882a593Smuzhiyun		reg = <0x60005000 0x60>;
209*4882a593Smuzhiyun		interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
210*4882a593Smuzhiyun			     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
211*4882a593Smuzhiyun			     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
212*4882a593Smuzhiyun			     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
213*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_TIMER>;
214*4882a593Smuzhiyun	};
215*4882a593Smuzhiyun
216*4882a593Smuzhiyun	tegra_car: clock@60006000 {
217*4882a593Smuzhiyun		compatible = "nvidia,tegra20-car";
218*4882a593Smuzhiyun		reg = <0x60006000 0x1000>;
219*4882a593Smuzhiyun		#clock-cells = <1>;
220*4882a593Smuzhiyun		#reset-cells = <1>;
221*4882a593Smuzhiyun	};
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun	flow-controller@60007000 {
224*4882a593Smuzhiyun		compatible = "nvidia,tegra20-flowctrl";
225*4882a593Smuzhiyun		reg = <0x60007000 0x1000>;
226*4882a593Smuzhiyun	};
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun	apbdma: dma@6000a000 {
229*4882a593Smuzhiyun		compatible = "nvidia,tegra20-apbdma";
230*4882a593Smuzhiyun		reg = <0x6000a000 0x1200>;
231*4882a593Smuzhiyun		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
232*4882a593Smuzhiyun			     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
233*4882a593Smuzhiyun			     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
234*4882a593Smuzhiyun			     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
235*4882a593Smuzhiyun			     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
236*4882a593Smuzhiyun			     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
237*4882a593Smuzhiyun			     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
238*4882a593Smuzhiyun			     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
239*4882a593Smuzhiyun			     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
240*4882a593Smuzhiyun			     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
241*4882a593Smuzhiyun			     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
242*4882a593Smuzhiyun			     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
243*4882a593Smuzhiyun			     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
244*4882a593Smuzhiyun			     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
245*4882a593Smuzhiyun			     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
246*4882a593Smuzhiyun			     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
247*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_APBDMA>;
248*4882a593Smuzhiyun		resets = <&tegra_car 34>;
249*4882a593Smuzhiyun		reset-names = "dma";
250*4882a593Smuzhiyun		#dma-cells = <1>;
251*4882a593Smuzhiyun	};
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun	ahb@6000c000 {
254*4882a593Smuzhiyun		compatible = "nvidia,tegra20-ahb";
255*4882a593Smuzhiyun		reg = <0x6000c000 0x110>; /* AHB Arbitration + Gizmo Controller */
256*4882a593Smuzhiyun	};
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun	gpio: gpio@6000d000 {
259*4882a593Smuzhiyun		compatible = "nvidia,tegra20-gpio";
260*4882a593Smuzhiyun		reg = <0x6000d000 0x1000>;
261*4882a593Smuzhiyun		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
262*4882a593Smuzhiyun			     <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
263*4882a593Smuzhiyun			     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
264*4882a593Smuzhiyun			     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
265*4882a593Smuzhiyun			     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
266*4882a593Smuzhiyun			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
267*4882a593Smuzhiyun			     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
268*4882a593Smuzhiyun		#gpio-cells = <2>;
269*4882a593Smuzhiyun		gpio-controller;
270*4882a593Smuzhiyun		#interrupt-cells = <2>;
271*4882a593Smuzhiyun		interrupt-controller;
272*4882a593Smuzhiyun		/*
273*4882a593Smuzhiyun		gpio-ranges = <&pinmux 0 0 224>;
274*4882a593Smuzhiyun		*/
275*4882a593Smuzhiyun	};
276*4882a593Smuzhiyun
277*4882a593Smuzhiyun	vde@6001a000 {
278*4882a593Smuzhiyun		compatible = "nvidia,tegra20-vde";
279*4882a593Smuzhiyun		reg = <0x6001a000 0x1000>, /* Syntax Engine */
280*4882a593Smuzhiyun		      <0x6001b000 0x1000>, /* Video Bitstream Engine */
281*4882a593Smuzhiyun		      <0x6001c000  0x100>, /* Macroblock Engine */
282*4882a593Smuzhiyun		      <0x6001c200  0x100>, /* Post-processing Engine */
283*4882a593Smuzhiyun		      <0x6001c400  0x100>, /* Motion Compensation Engine */
284*4882a593Smuzhiyun		      <0x6001c600  0x100>, /* Transform Engine */
285*4882a593Smuzhiyun		      <0x6001c800  0x100>, /* Pixel prediction block */
286*4882a593Smuzhiyun		      <0x6001ca00  0x100>, /* Video DMA */
287*4882a593Smuzhiyun		      <0x6001d800  0x300>; /* Video frame controls */
288*4882a593Smuzhiyun		reg-names = "sxe", "bsev", "mbe", "ppe", "mce",
289*4882a593Smuzhiyun			    "tfe", "ppb", "vdma", "frameid";
290*4882a593Smuzhiyun		iram = <&vde_pool>; /* IRAM region */
291*4882a593Smuzhiyun		interrupts = <GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>, /* Sync token interrupt */
292*4882a593Smuzhiyun			     <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, /* BSE-V interrupt */
293*4882a593Smuzhiyun			     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; /* SXE interrupt */
294*4882a593Smuzhiyun		interrupt-names = "sync-token", "bsev", "sxe";
295*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_VDE>;
296*4882a593Smuzhiyun		reset-names = "vde", "mc";
297*4882a593Smuzhiyun		resets = <&tegra_car 61>, <&mc TEGRA20_MC_RESET_VDE>;
298*4882a593Smuzhiyun	};
299*4882a593Smuzhiyun
300*4882a593Smuzhiyun	apbmisc@70000800 {
301*4882a593Smuzhiyun		compatible = "nvidia,tegra20-apbmisc";
302*4882a593Smuzhiyun		reg = <0x70000800 0x64>, /* Chip revision */
303*4882a593Smuzhiyun		      <0x70000008 0x04>; /* Strapping options */
304*4882a593Smuzhiyun	};
305*4882a593Smuzhiyun
306*4882a593Smuzhiyun	pinmux: pinmux@70000014 {
307*4882a593Smuzhiyun		compatible = "nvidia,tegra20-pinmux";
308*4882a593Smuzhiyun		reg = <0x70000014 0x10>, /* Tri-state registers */
309*4882a593Smuzhiyun		      <0x70000080 0x20>, /* Mux registers */
310*4882a593Smuzhiyun		      <0x700000a0 0x14>, /* Pull-up/down registers */
311*4882a593Smuzhiyun		      <0x70000868 0xa8>; /* Pad control registers */
312*4882a593Smuzhiyun	};
313*4882a593Smuzhiyun
314*4882a593Smuzhiyun	das@70000c00 {
315*4882a593Smuzhiyun		compatible = "nvidia,tegra20-das";
316*4882a593Smuzhiyun		reg = <0x70000c00 0x80>;
317*4882a593Smuzhiyun	};
318*4882a593Smuzhiyun
319*4882a593Smuzhiyun	tegra_ac97: ac97@70002000 {
320*4882a593Smuzhiyun		compatible = "nvidia,tegra20-ac97";
321*4882a593Smuzhiyun		reg = <0x70002000 0x200>;
322*4882a593Smuzhiyun		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
323*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_AC97>;
324*4882a593Smuzhiyun		resets = <&tegra_car 3>;
325*4882a593Smuzhiyun		reset-names = "ac97";
326*4882a593Smuzhiyun		dmas = <&apbdma 12>, <&apbdma 12>;
327*4882a593Smuzhiyun		dma-names = "rx", "tx";
328*4882a593Smuzhiyun		status = "disabled";
329*4882a593Smuzhiyun	};
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun	tegra_i2s1: i2s@70002800 {
332*4882a593Smuzhiyun		compatible = "nvidia,tegra20-i2s";
333*4882a593Smuzhiyun		reg = <0x70002800 0x200>;
334*4882a593Smuzhiyun		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
335*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_I2S1>;
336*4882a593Smuzhiyun		resets = <&tegra_car 11>;
337*4882a593Smuzhiyun		reset-names = "i2s";
338*4882a593Smuzhiyun		dmas = <&apbdma 2>, <&apbdma 2>;
339*4882a593Smuzhiyun		dma-names = "rx", "tx";
340*4882a593Smuzhiyun		status = "disabled";
341*4882a593Smuzhiyun	};
342*4882a593Smuzhiyun
343*4882a593Smuzhiyun	tegra_i2s2: i2s@70002a00 {
344*4882a593Smuzhiyun		compatible = "nvidia,tegra20-i2s";
345*4882a593Smuzhiyun		reg = <0x70002a00 0x200>;
346*4882a593Smuzhiyun		interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
347*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_I2S2>;
348*4882a593Smuzhiyun		resets = <&tegra_car 18>;
349*4882a593Smuzhiyun		reset-names = "i2s";
350*4882a593Smuzhiyun		dmas = <&apbdma 1>, <&apbdma 1>;
351*4882a593Smuzhiyun		dma-names = "rx", "tx";
352*4882a593Smuzhiyun		status = "disabled";
353*4882a593Smuzhiyun	};
354*4882a593Smuzhiyun
355*4882a593Smuzhiyun	/*
356*4882a593Smuzhiyun	 * There are two serial driver i.e. 8250 based simple serial
357*4882a593Smuzhiyun	 * driver and APB DMA based serial driver for higher baudrate
358*4882a593Smuzhiyun	 * and performace. To enable the 8250 based driver, the compatible
359*4882a593Smuzhiyun	 * is "nvidia,tegra20-uart" and to enable the APB DMA based serial
360*4882a593Smuzhiyun	 * driver, the compatible is "nvidia,tegra20-hsuart".
361*4882a593Smuzhiyun	 */
362*4882a593Smuzhiyun	uarta: serial@70006000 {
363*4882a593Smuzhiyun		compatible = "nvidia,tegra20-uart";
364*4882a593Smuzhiyun		reg = <0x70006000 0x40>;
365*4882a593Smuzhiyun		reg-shift = <2>;
366*4882a593Smuzhiyun		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
367*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_UARTA>;
368*4882a593Smuzhiyun		resets = <&tegra_car 6>;
369*4882a593Smuzhiyun		reset-names = "serial";
370*4882a593Smuzhiyun		dmas = <&apbdma 8>, <&apbdma 8>;
371*4882a593Smuzhiyun		dma-names = "rx", "tx";
372*4882a593Smuzhiyun		status = "disabled";
373*4882a593Smuzhiyun	};
374*4882a593Smuzhiyun
375*4882a593Smuzhiyun	uartb: serial@70006040 {
376*4882a593Smuzhiyun		compatible = "nvidia,tegra20-uart";
377*4882a593Smuzhiyun		reg = <0x70006040 0x40>;
378*4882a593Smuzhiyun		reg-shift = <2>;
379*4882a593Smuzhiyun		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
380*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_UARTB>;
381*4882a593Smuzhiyun		resets = <&tegra_car 7>;
382*4882a593Smuzhiyun		reset-names = "serial";
383*4882a593Smuzhiyun		dmas = <&apbdma 9>, <&apbdma 9>;
384*4882a593Smuzhiyun		dma-names = "rx", "tx";
385*4882a593Smuzhiyun		status = "disabled";
386*4882a593Smuzhiyun	};
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun	uartc: serial@70006200 {
389*4882a593Smuzhiyun		compatible = "nvidia,tegra20-uart";
390*4882a593Smuzhiyun		reg = <0x70006200 0x100>;
391*4882a593Smuzhiyun		reg-shift = <2>;
392*4882a593Smuzhiyun		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
393*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_UARTC>;
394*4882a593Smuzhiyun		resets = <&tegra_car 55>;
395*4882a593Smuzhiyun		reset-names = "serial";
396*4882a593Smuzhiyun		dmas = <&apbdma 10>, <&apbdma 10>;
397*4882a593Smuzhiyun		dma-names = "rx", "tx";
398*4882a593Smuzhiyun		status = "disabled";
399*4882a593Smuzhiyun	};
400*4882a593Smuzhiyun
401*4882a593Smuzhiyun	uartd: serial@70006300 {
402*4882a593Smuzhiyun		compatible = "nvidia,tegra20-uart";
403*4882a593Smuzhiyun		reg = <0x70006300 0x100>;
404*4882a593Smuzhiyun		reg-shift = <2>;
405*4882a593Smuzhiyun		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
406*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_UARTD>;
407*4882a593Smuzhiyun		resets = <&tegra_car 65>;
408*4882a593Smuzhiyun		reset-names = "serial";
409*4882a593Smuzhiyun		dmas = <&apbdma 19>, <&apbdma 19>;
410*4882a593Smuzhiyun		dma-names = "rx", "tx";
411*4882a593Smuzhiyun		status = "disabled";
412*4882a593Smuzhiyun	};
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun	uarte: serial@70006400 {
415*4882a593Smuzhiyun		compatible = "nvidia,tegra20-uart";
416*4882a593Smuzhiyun		reg = <0x70006400 0x100>;
417*4882a593Smuzhiyun		reg-shift = <2>;
418*4882a593Smuzhiyun		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
419*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_UARTE>;
420*4882a593Smuzhiyun		resets = <&tegra_car 66>;
421*4882a593Smuzhiyun		reset-names = "serial";
422*4882a593Smuzhiyun		dmas = <&apbdma 20>, <&apbdma 20>;
423*4882a593Smuzhiyun		dma-names = "rx", "tx";
424*4882a593Smuzhiyun		status = "disabled";
425*4882a593Smuzhiyun	};
426*4882a593Smuzhiyun
427*4882a593Smuzhiyun	nand-controller@70008000 {
428*4882a593Smuzhiyun		compatible = "nvidia,tegra20-nand";
429*4882a593Smuzhiyun		reg = <0x70008000 0x100>;
430*4882a593Smuzhiyun		#address-cells = <1>;
431*4882a593Smuzhiyun		#size-cells = <0>;
432*4882a593Smuzhiyun		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
433*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_NDFLASH>;
434*4882a593Smuzhiyun		clock-names = "nand";
435*4882a593Smuzhiyun		resets = <&tegra_car 13>;
436*4882a593Smuzhiyun		reset-names = "nand";
437*4882a593Smuzhiyun		assigned-clocks = <&tegra_car TEGRA20_CLK_NDFLASH>;
438*4882a593Smuzhiyun		assigned-clock-rates = <150000000>;
439*4882a593Smuzhiyun		status = "disabled";
440*4882a593Smuzhiyun	};
441*4882a593Smuzhiyun
442*4882a593Smuzhiyun	gmi@70009000 {
443*4882a593Smuzhiyun		compatible = "nvidia,tegra20-gmi";
444*4882a593Smuzhiyun		reg = <0x70009000 0x1000>;
445*4882a593Smuzhiyun		#address-cells = <2>;
446*4882a593Smuzhiyun		#size-cells = <1>;
447*4882a593Smuzhiyun		ranges = <0 0 0xd0000000 0xfffffff>;
448*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_NOR>;
449*4882a593Smuzhiyun		clock-names = "gmi";
450*4882a593Smuzhiyun		resets = <&tegra_car 42>;
451*4882a593Smuzhiyun		reset-names = "gmi";
452*4882a593Smuzhiyun		status = "disabled";
453*4882a593Smuzhiyun	};
454*4882a593Smuzhiyun
455*4882a593Smuzhiyun	pwm: pwm@7000a000 {
456*4882a593Smuzhiyun		compatible = "nvidia,tegra20-pwm";
457*4882a593Smuzhiyun		reg = <0x7000a000 0x100>;
458*4882a593Smuzhiyun		#pwm-cells = <2>;
459*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_PWM>;
460*4882a593Smuzhiyun		resets = <&tegra_car 17>;
461*4882a593Smuzhiyun		reset-names = "pwm";
462*4882a593Smuzhiyun		status = "disabled";
463*4882a593Smuzhiyun	};
464*4882a593Smuzhiyun
465*4882a593Smuzhiyun	rtc@7000e000 {
466*4882a593Smuzhiyun		compatible = "nvidia,tegra20-rtc";
467*4882a593Smuzhiyun		reg = <0x7000e000 0x100>;
468*4882a593Smuzhiyun		interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
469*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_RTC>;
470*4882a593Smuzhiyun	};
471*4882a593Smuzhiyun
472*4882a593Smuzhiyun	i2c@7000c000 {
473*4882a593Smuzhiyun		compatible = "nvidia,tegra20-i2c";
474*4882a593Smuzhiyun		reg = <0x7000c000 0x100>;
475*4882a593Smuzhiyun		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
476*4882a593Smuzhiyun		#address-cells = <1>;
477*4882a593Smuzhiyun		#size-cells = <0>;
478*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_I2C1>,
479*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
480*4882a593Smuzhiyun		clock-names = "div-clk", "fast-clk";
481*4882a593Smuzhiyun		resets = <&tegra_car 12>;
482*4882a593Smuzhiyun		reset-names = "i2c";
483*4882a593Smuzhiyun		dmas = <&apbdma 21>, <&apbdma 21>;
484*4882a593Smuzhiyun		dma-names = "rx", "tx";
485*4882a593Smuzhiyun		status = "disabled";
486*4882a593Smuzhiyun	};
487*4882a593Smuzhiyun
488*4882a593Smuzhiyun	spi@7000c380 {
489*4882a593Smuzhiyun		compatible = "nvidia,tegra20-sflash";
490*4882a593Smuzhiyun		reg = <0x7000c380 0x80>;
491*4882a593Smuzhiyun		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
492*4882a593Smuzhiyun		#address-cells = <1>;
493*4882a593Smuzhiyun		#size-cells = <0>;
494*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_SPI>;
495*4882a593Smuzhiyun		resets = <&tegra_car 43>;
496*4882a593Smuzhiyun		reset-names = "spi";
497*4882a593Smuzhiyun		dmas = <&apbdma 11>, <&apbdma 11>;
498*4882a593Smuzhiyun		dma-names = "rx", "tx";
499*4882a593Smuzhiyun		status = "disabled";
500*4882a593Smuzhiyun	};
501*4882a593Smuzhiyun
502*4882a593Smuzhiyun	i2c@7000c400 {
503*4882a593Smuzhiyun		compatible = "nvidia,tegra20-i2c";
504*4882a593Smuzhiyun		reg = <0x7000c400 0x100>;
505*4882a593Smuzhiyun		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
506*4882a593Smuzhiyun		#address-cells = <1>;
507*4882a593Smuzhiyun		#size-cells = <0>;
508*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_I2C2>,
509*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
510*4882a593Smuzhiyun		clock-names = "div-clk", "fast-clk";
511*4882a593Smuzhiyun		resets = <&tegra_car 54>;
512*4882a593Smuzhiyun		reset-names = "i2c";
513*4882a593Smuzhiyun		dmas = <&apbdma 22>, <&apbdma 22>;
514*4882a593Smuzhiyun		dma-names = "rx", "tx";
515*4882a593Smuzhiyun		status = "disabled";
516*4882a593Smuzhiyun	};
517*4882a593Smuzhiyun
518*4882a593Smuzhiyun	i2c@7000c500 {
519*4882a593Smuzhiyun		compatible = "nvidia,tegra20-i2c";
520*4882a593Smuzhiyun		reg = <0x7000c500 0x100>;
521*4882a593Smuzhiyun		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
522*4882a593Smuzhiyun		#address-cells = <1>;
523*4882a593Smuzhiyun		#size-cells = <0>;
524*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_I2C3>,
525*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
526*4882a593Smuzhiyun		clock-names = "div-clk", "fast-clk";
527*4882a593Smuzhiyun		resets = <&tegra_car 67>;
528*4882a593Smuzhiyun		reset-names = "i2c";
529*4882a593Smuzhiyun		dmas = <&apbdma 23>, <&apbdma 23>;
530*4882a593Smuzhiyun		dma-names = "rx", "tx";
531*4882a593Smuzhiyun		status = "disabled";
532*4882a593Smuzhiyun	};
533*4882a593Smuzhiyun
534*4882a593Smuzhiyun	i2c@7000d000 {
535*4882a593Smuzhiyun		compatible = "nvidia,tegra20-i2c-dvc";
536*4882a593Smuzhiyun		reg = <0x7000d000 0x200>;
537*4882a593Smuzhiyun		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
538*4882a593Smuzhiyun		#address-cells = <1>;
539*4882a593Smuzhiyun		#size-cells = <0>;
540*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_DVC>,
541*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
542*4882a593Smuzhiyun		clock-names = "div-clk", "fast-clk";
543*4882a593Smuzhiyun		resets = <&tegra_car 47>;
544*4882a593Smuzhiyun		reset-names = "i2c";
545*4882a593Smuzhiyun		dmas = <&apbdma 24>, <&apbdma 24>;
546*4882a593Smuzhiyun		dma-names = "rx", "tx";
547*4882a593Smuzhiyun		status = "disabled";
548*4882a593Smuzhiyun	};
549*4882a593Smuzhiyun
550*4882a593Smuzhiyun	spi@7000d400 {
551*4882a593Smuzhiyun		compatible = "nvidia,tegra20-slink";
552*4882a593Smuzhiyun		reg = <0x7000d400 0x200>;
553*4882a593Smuzhiyun		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
554*4882a593Smuzhiyun		#address-cells = <1>;
555*4882a593Smuzhiyun		#size-cells = <0>;
556*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_SBC1>;
557*4882a593Smuzhiyun		resets = <&tegra_car 41>;
558*4882a593Smuzhiyun		reset-names = "spi";
559*4882a593Smuzhiyun		dmas = <&apbdma 15>, <&apbdma 15>;
560*4882a593Smuzhiyun		dma-names = "rx", "tx";
561*4882a593Smuzhiyun		status = "disabled";
562*4882a593Smuzhiyun	};
563*4882a593Smuzhiyun
564*4882a593Smuzhiyun	spi@7000d600 {
565*4882a593Smuzhiyun		compatible = "nvidia,tegra20-slink";
566*4882a593Smuzhiyun		reg = <0x7000d600 0x200>;
567*4882a593Smuzhiyun		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
568*4882a593Smuzhiyun		#address-cells = <1>;
569*4882a593Smuzhiyun		#size-cells = <0>;
570*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_SBC2>;
571*4882a593Smuzhiyun		resets = <&tegra_car 44>;
572*4882a593Smuzhiyun		reset-names = "spi";
573*4882a593Smuzhiyun		dmas = <&apbdma 16>, <&apbdma 16>;
574*4882a593Smuzhiyun		dma-names = "rx", "tx";
575*4882a593Smuzhiyun		status = "disabled";
576*4882a593Smuzhiyun	};
577*4882a593Smuzhiyun
578*4882a593Smuzhiyun	spi@7000d800 {
579*4882a593Smuzhiyun		compatible = "nvidia,tegra20-slink";
580*4882a593Smuzhiyun		reg = <0x7000d800 0x200>;
581*4882a593Smuzhiyun		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
582*4882a593Smuzhiyun		#address-cells = <1>;
583*4882a593Smuzhiyun		#size-cells = <0>;
584*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_SBC3>;
585*4882a593Smuzhiyun		resets = <&tegra_car 46>;
586*4882a593Smuzhiyun		reset-names = "spi";
587*4882a593Smuzhiyun		dmas = <&apbdma 17>, <&apbdma 17>;
588*4882a593Smuzhiyun		dma-names = "rx", "tx";
589*4882a593Smuzhiyun		status = "disabled";
590*4882a593Smuzhiyun	};
591*4882a593Smuzhiyun
592*4882a593Smuzhiyun	spi@7000da00 {
593*4882a593Smuzhiyun		compatible = "nvidia,tegra20-slink";
594*4882a593Smuzhiyun		reg = <0x7000da00 0x200>;
595*4882a593Smuzhiyun		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
596*4882a593Smuzhiyun		#address-cells = <1>;
597*4882a593Smuzhiyun		#size-cells = <0>;
598*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_SBC4>;
599*4882a593Smuzhiyun		resets = <&tegra_car 68>;
600*4882a593Smuzhiyun		reset-names = "spi";
601*4882a593Smuzhiyun		dmas = <&apbdma 18>, <&apbdma 18>;
602*4882a593Smuzhiyun		dma-names = "rx", "tx";
603*4882a593Smuzhiyun		status = "disabled";
604*4882a593Smuzhiyun	};
605*4882a593Smuzhiyun
606*4882a593Smuzhiyun	kbc@7000e200 {
607*4882a593Smuzhiyun		compatible = "nvidia,tegra20-kbc";
608*4882a593Smuzhiyun		reg = <0x7000e200 0x100>;
609*4882a593Smuzhiyun		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
610*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_KBC>;
611*4882a593Smuzhiyun		resets = <&tegra_car 36>;
612*4882a593Smuzhiyun		reset-names = "kbc";
613*4882a593Smuzhiyun		status = "disabled";
614*4882a593Smuzhiyun	};
615*4882a593Smuzhiyun
616*4882a593Smuzhiyun	tegra_pmc: pmc@7000e400 {
617*4882a593Smuzhiyun		compatible = "nvidia,tegra20-pmc";
618*4882a593Smuzhiyun		reg = <0x7000e400 0x400>;
619*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_PCLK>, <&clk32k_in>;
620*4882a593Smuzhiyun		clock-names = "pclk", "clk32k_in";
621*4882a593Smuzhiyun		#clock-cells = <1>;
622*4882a593Smuzhiyun	};
623*4882a593Smuzhiyun
624*4882a593Smuzhiyun	mc: memory-controller@7000f000 {
625*4882a593Smuzhiyun		compatible = "nvidia,tegra20-mc-gart";
626*4882a593Smuzhiyun		reg = <0x7000f000 0x00000400>, /* controller registers */
627*4882a593Smuzhiyun		      <0x58000000 0x02000000>; /* GART aperture */
628*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_MC>;
629*4882a593Smuzhiyun		clock-names = "mc";
630*4882a593Smuzhiyun		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
631*4882a593Smuzhiyun		#reset-cells = <1>;
632*4882a593Smuzhiyun		#iommu-cells = <0>;
633*4882a593Smuzhiyun	};
634*4882a593Smuzhiyun
635*4882a593Smuzhiyun	memory-controller@7000f400 {
636*4882a593Smuzhiyun		compatible = "nvidia,tegra20-emc";
637*4882a593Smuzhiyun		reg = <0x7000f400 0x200>;
638*4882a593Smuzhiyun		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
639*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_EMC>;
640*4882a593Smuzhiyun		#address-cells = <1>;
641*4882a593Smuzhiyun		#size-cells = <0>;
642*4882a593Smuzhiyun	};
643*4882a593Smuzhiyun
644*4882a593Smuzhiyun	fuse@7000f800 {
645*4882a593Smuzhiyun		compatible = "nvidia,tegra20-efuse";
646*4882a593Smuzhiyun		reg = <0x7000f800 0x400>;
647*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_FUSE>;
648*4882a593Smuzhiyun		clock-names = "fuse";
649*4882a593Smuzhiyun		resets = <&tegra_car 39>;
650*4882a593Smuzhiyun		reset-names = "fuse";
651*4882a593Smuzhiyun	};
652*4882a593Smuzhiyun
653*4882a593Smuzhiyun	pcie@80003000 {
654*4882a593Smuzhiyun		compatible = "nvidia,tegra20-pcie";
655*4882a593Smuzhiyun		device_type = "pci";
656*4882a593Smuzhiyun		reg = <0x80003000 0x00000800>, /* PADS registers */
657*4882a593Smuzhiyun		      <0x80003800 0x00000200>, /* AFI registers */
658*4882a593Smuzhiyun		      <0x90000000 0x10000000>; /* configuration space */
659*4882a593Smuzhiyun		reg-names = "pads", "afi", "cs";
660*4882a593Smuzhiyun		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
661*4882a593Smuzhiyun			     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
662*4882a593Smuzhiyun		interrupt-names = "intr", "msi";
663*4882a593Smuzhiyun
664*4882a593Smuzhiyun		#interrupt-cells = <1>;
665*4882a593Smuzhiyun		interrupt-map-mask = <0 0 0 0>;
666*4882a593Smuzhiyun		interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
667*4882a593Smuzhiyun
668*4882a593Smuzhiyun		bus-range = <0x00 0xff>;
669*4882a593Smuzhiyun		#address-cells = <3>;
670*4882a593Smuzhiyun		#size-cells = <2>;
671*4882a593Smuzhiyun
672*4882a593Smuzhiyun		ranges = <0x02000000 0 0x80000000 0x80000000 0 0x00001000>, /* port 0 registers */
673*4882a593Smuzhiyun			 <0x02000000 0 0x80001000 0x80001000 0 0x00001000>, /* port 1 registers */
674*4882a593Smuzhiyun			 <0x01000000 0 0          0x82000000 0 0x00010000>, /* downstream I/O */
675*4882a593Smuzhiyun			 <0x02000000 0 0xa0000000 0xa0000000 0 0x08000000>, /* non-prefetchable memory */
676*4882a593Smuzhiyun			 <0x42000000 0 0xa8000000 0xa8000000 0 0x18000000>; /* prefetchable memory */
677*4882a593Smuzhiyun
678*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_PEX>,
679*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_AFI>,
680*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_PLL_E>;
681*4882a593Smuzhiyun		clock-names = "pex", "afi", "pll_e";
682*4882a593Smuzhiyun		resets = <&tegra_car 70>,
683*4882a593Smuzhiyun			 <&tegra_car 72>,
684*4882a593Smuzhiyun			 <&tegra_car 74>;
685*4882a593Smuzhiyun		reset-names = "pex", "afi", "pcie_x";
686*4882a593Smuzhiyun		status = "disabled";
687*4882a593Smuzhiyun
688*4882a593Smuzhiyun		pci@1,0 {
689*4882a593Smuzhiyun			device_type = "pci";
690*4882a593Smuzhiyun			assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>;
691*4882a593Smuzhiyun			reg = <0x000800 0 0 0 0>;
692*4882a593Smuzhiyun			bus-range = <0x00 0xff>;
693*4882a593Smuzhiyun			status = "disabled";
694*4882a593Smuzhiyun
695*4882a593Smuzhiyun			#address-cells = <3>;
696*4882a593Smuzhiyun			#size-cells = <2>;
697*4882a593Smuzhiyun			ranges;
698*4882a593Smuzhiyun
699*4882a593Smuzhiyun			nvidia,num-lanes = <2>;
700*4882a593Smuzhiyun		};
701*4882a593Smuzhiyun
702*4882a593Smuzhiyun		pci@2,0 {
703*4882a593Smuzhiyun			device_type = "pci";
704*4882a593Smuzhiyun			assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>;
705*4882a593Smuzhiyun			reg = <0x001000 0 0 0 0>;
706*4882a593Smuzhiyun			bus-range = <0x00 0xff>;
707*4882a593Smuzhiyun			status = "disabled";
708*4882a593Smuzhiyun
709*4882a593Smuzhiyun			#address-cells = <3>;
710*4882a593Smuzhiyun			#size-cells = <2>;
711*4882a593Smuzhiyun			ranges;
712*4882a593Smuzhiyun
713*4882a593Smuzhiyun			nvidia,num-lanes = <2>;
714*4882a593Smuzhiyun		};
715*4882a593Smuzhiyun	};
716*4882a593Smuzhiyun
717*4882a593Smuzhiyun	usb@c5000000 {
718*4882a593Smuzhiyun		compatible = "nvidia,tegra20-ehci", "usb-ehci";
719*4882a593Smuzhiyun		reg = <0xc5000000 0x4000>;
720*4882a593Smuzhiyun		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
721*4882a593Smuzhiyun		phy_type = "utmi";
722*4882a593Smuzhiyun		nvidia,has-legacy-mode;
723*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_USBD>;
724*4882a593Smuzhiyun		resets = <&tegra_car 22>;
725*4882a593Smuzhiyun		reset-names = "usb";
726*4882a593Smuzhiyun		nvidia,needs-double-reset;
727*4882a593Smuzhiyun		nvidia,phy = <&phy1>;
728*4882a593Smuzhiyun		status = "disabled";
729*4882a593Smuzhiyun	};
730*4882a593Smuzhiyun
731*4882a593Smuzhiyun	phy1: usb-phy@c5000000 {
732*4882a593Smuzhiyun		compatible = "nvidia,tegra20-usb-phy";
733*4882a593Smuzhiyun		reg = <0xc5000000 0x4000>,
734*4882a593Smuzhiyun		      <0xc5000000 0x4000>;
735*4882a593Smuzhiyun		phy_type = "utmi";
736*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_USBD>,
737*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_PLL_U>,
738*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_CLK_M>,
739*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_USBD>;
740*4882a593Smuzhiyun		clock-names = "reg", "pll_u", "timer", "utmi-pads";
741*4882a593Smuzhiyun		resets = <&tegra_car 22>, <&tegra_car 22>;
742*4882a593Smuzhiyun		reset-names = "usb", "utmi-pads";
743*4882a593Smuzhiyun		#phy-cells = <0>;
744*4882a593Smuzhiyun		nvidia,has-legacy-mode;
745*4882a593Smuzhiyun		nvidia,hssync-start-delay = <9>;
746*4882a593Smuzhiyun		nvidia,idle-wait-delay = <17>;
747*4882a593Smuzhiyun		nvidia,elastic-limit = <16>;
748*4882a593Smuzhiyun		nvidia,term-range-adj = <6>;
749*4882a593Smuzhiyun		nvidia,xcvr-setup = <9>;
750*4882a593Smuzhiyun		nvidia,xcvr-lsfslew = <1>;
751*4882a593Smuzhiyun		nvidia,xcvr-lsrslew = <1>;
752*4882a593Smuzhiyun		nvidia,has-utmi-pad-registers;
753*4882a593Smuzhiyun		status = "disabled";
754*4882a593Smuzhiyun	};
755*4882a593Smuzhiyun
756*4882a593Smuzhiyun	usb@c5004000 {
757*4882a593Smuzhiyun		compatible = "nvidia,tegra20-ehci", "usb-ehci";
758*4882a593Smuzhiyun		reg = <0xc5004000 0x4000>;
759*4882a593Smuzhiyun		interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
760*4882a593Smuzhiyun		phy_type = "ulpi";
761*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_USB2>;
762*4882a593Smuzhiyun		resets = <&tegra_car 58>;
763*4882a593Smuzhiyun		reset-names = "usb";
764*4882a593Smuzhiyun		nvidia,phy = <&phy2>;
765*4882a593Smuzhiyun		status = "disabled";
766*4882a593Smuzhiyun	};
767*4882a593Smuzhiyun
768*4882a593Smuzhiyun	phy2: usb-phy@c5004000 {
769*4882a593Smuzhiyun		compatible = "nvidia,tegra20-usb-phy";
770*4882a593Smuzhiyun		reg = <0xc5004000 0x4000>;
771*4882a593Smuzhiyun		phy_type = "ulpi";
772*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_USB2>,
773*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_PLL_U>,
774*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_CDEV2>;
775*4882a593Smuzhiyun		clock-names = "reg", "pll_u", "ulpi-link";
776*4882a593Smuzhiyun		resets = <&tegra_car 58>, <&tegra_car 22>;
777*4882a593Smuzhiyun		reset-names = "usb", "utmi-pads";
778*4882a593Smuzhiyun		#phy-cells = <0>;
779*4882a593Smuzhiyun		status = "disabled";
780*4882a593Smuzhiyun	};
781*4882a593Smuzhiyun
782*4882a593Smuzhiyun	usb@c5008000 {
783*4882a593Smuzhiyun		compatible = "nvidia,tegra20-ehci", "usb-ehci";
784*4882a593Smuzhiyun		reg = <0xc5008000 0x4000>;
785*4882a593Smuzhiyun		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
786*4882a593Smuzhiyun		phy_type = "utmi";
787*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_USB3>;
788*4882a593Smuzhiyun		resets = <&tegra_car 59>;
789*4882a593Smuzhiyun		reset-names = "usb";
790*4882a593Smuzhiyun		nvidia,phy = <&phy3>;
791*4882a593Smuzhiyun		status = "disabled";
792*4882a593Smuzhiyun	};
793*4882a593Smuzhiyun
794*4882a593Smuzhiyun	phy3: usb-phy@c5008000 {
795*4882a593Smuzhiyun		compatible = "nvidia,tegra20-usb-phy";
796*4882a593Smuzhiyun		reg = <0xc5008000 0x4000>,
797*4882a593Smuzhiyun		      <0xc5000000 0x4000>;
798*4882a593Smuzhiyun		phy_type = "utmi";
799*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_USB3>,
800*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_PLL_U>,
801*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_CLK_M>,
802*4882a593Smuzhiyun			 <&tegra_car TEGRA20_CLK_USBD>;
803*4882a593Smuzhiyun		clock-names = "reg", "pll_u", "timer", "utmi-pads";
804*4882a593Smuzhiyun		resets = <&tegra_car 59>, <&tegra_car 22>;
805*4882a593Smuzhiyun		reset-names = "usb", "utmi-pads";
806*4882a593Smuzhiyun		#phy-cells = <0>;
807*4882a593Smuzhiyun		nvidia,hssync-start-delay = <9>;
808*4882a593Smuzhiyun		nvidia,idle-wait-delay = <17>;
809*4882a593Smuzhiyun		nvidia,elastic-limit = <16>;
810*4882a593Smuzhiyun		nvidia,term-range-adj = <6>;
811*4882a593Smuzhiyun		nvidia,xcvr-setup = <9>;
812*4882a593Smuzhiyun		nvidia,xcvr-lsfslew = <2>;
813*4882a593Smuzhiyun		nvidia,xcvr-lsrslew = <2>;
814*4882a593Smuzhiyun		status = "disabled";
815*4882a593Smuzhiyun	};
816*4882a593Smuzhiyun
817*4882a593Smuzhiyun	mmc@c8000000 {
818*4882a593Smuzhiyun		compatible = "nvidia,tegra20-sdhci";
819*4882a593Smuzhiyun		reg = <0xc8000000 0x200>;
820*4882a593Smuzhiyun		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
821*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_SDMMC1>;
822*4882a593Smuzhiyun		clock-names = "sdhci";
823*4882a593Smuzhiyun		resets = <&tegra_car 14>;
824*4882a593Smuzhiyun		reset-names = "sdhci";
825*4882a593Smuzhiyun		status = "disabled";
826*4882a593Smuzhiyun	};
827*4882a593Smuzhiyun
828*4882a593Smuzhiyun	mmc@c8000200 {
829*4882a593Smuzhiyun		compatible = "nvidia,tegra20-sdhci";
830*4882a593Smuzhiyun		reg = <0xc8000200 0x200>;
831*4882a593Smuzhiyun		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
832*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_SDMMC2>;
833*4882a593Smuzhiyun		clock-names = "sdhci";
834*4882a593Smuzhiyun		resets = <&tegra_car 9>;
835*4882a593Smuzhiyun		reset-names = "sdhci";
836*4882a593Smuzhiyun		status = "disabled";
837*4882a593Smuzhiyun	};
838*4882a593Smuzhiyun
839*4882a593Smuzhiyun	mmc@c8000400 {
840*4882a593Smuzhiyun		compatible = "nvidia,tegra20-sdhci";
841*4882a593Smuzhiyun		reg = <0xc8000400 0x200>;
842*4882a593Smuzhiyun		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
843*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_SDMMC3>;
844*4882a593Smuzhiyun		clock-names = "sdhci";
845*4882a593Smuzhiyun		resets = <&tegra_car 69>;
846*4882a593Smuzhiyun		reset-names = "sdhci";
847*4882a593Smuzhiyun		status = "disabled";
848*4882a593Smuzhiyun	};
849*4882a593Smuzhiyun
850*4882a593Smuzhiyun	mmc@c8000600 {
851*4882a593Smuzhiyun		compatible = "nvidia,tegra20-sdhci";
852*4882a593Smuzhiyun		reg = <0xc8000600 0x200>;
853*4882a593Smuzhiyun		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
854*4882a593Smuzhiyun		clocks = <&tegra_car TEGRA20_CLK_SDMMC4>;
855*4882a593Smuzhiyun		clock-names = "sdhci";
856*4882a593Smuzhiyun		resets = <&tegra_car 15>;
857*4882a593Smuzhiyun		reset-names = "sdhci";
858*4882a593Smuzhiyun		status = "disabled";
859*4882a593Smuzhiyun	};
860*4882a593Smuzhiyun
861*4882a593Smuzhiyun	cpus {
862*4882a593Smuzhiyun		#address-cells = <1>;
863*4882a593Smuzhiyun		#size-cells = <0>;
864*4882a593Smuzhiyun
865*4882a593Smuzhiyun		cpu@0 {
866*4882a593Smuzhiyun			device_type = "cpu";
867*4882a593Smuzhiyun			compatible = "arm,cortex-a9";
868*4882a593Smuzhiyun			reg = <0>;
869*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_CCLK>;
870*4882a593Smuzhiyun		};
871*4882a593Smuzhiyun
872*4882a593Smuzhiyun		cpu@1 {
873*4882a593Smuzhiyun			device_type = "cpu";
874*4882a593Smuzhiyun			compatible = "arm,cortex-a9";
875*4882a593Smuzhiyun			reg = <1>;
876*4882a593Smuzhiyun			clocks = <&tegra_car TEGRA20_CLK_CCLK>;
877*4882a593Smuzhiyun		};
878*4882a593Smuzhiyun	};
879*4882a593Smuzhiyun
880*4882a593Smuzhiyun	pmu {
881*4882a593Smuzhiyun		compatible = "arm,cortex-a9-pmu";
882*4882a593Smuzhiyun		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
883*4882a593Smuzhiyun			     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
884*4882a593Smuzhiyun		interrupt-affinity = <&{/cpus/cpu@0}>,
885*4882a593Smuzhiyun				     <&{/cpus/cpu@1}>;
886*4882a593Smuzhiyun	};
887*4882a593Smuzhiyun};
888