xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/sama5d2.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * sama5d2.dtsi - Device Tree Include file for SAMA5D2 family SoC
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun *  Copyright (C) 2015 Atmel,
6*4882a593Smuzhiyun *                2015 Ludovic Desroches <ludovic.desroches@atmel.com>
7*4882a593Smuzhiyun */
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include <dt-bindings/dma/at91.h>
10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
11*4882a593Smuzhiyun#include <dt-bindings/clock/at91.h>
12*4882a593Smuzhiyun#include <dt-bindings/iio/adc/at91-sama5d2_adc.h>
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun/ {
15*4882a593Smuzhiyun	#address-cells = <1>;
16*4882a593Smuzhiyun	#size-cells = <1>;
17*4882a593Smuzhiyun	model = "Atmel SAMA5D2 family SoC";
18*4882a593Smuzhiyun	compatible = "atmel,sama5d2";
19*4882a593Smuzhiyun	interrupt-parent = <&aic>;
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	aliases {
22*4882a593Smuzhiyun		serial0 = &uart1;
23*4882a593Smuzhiyun		serial1 = &uart3;
24*4882a593Smuzhiyun	};
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	cpus {
27*4882a593Smuzhiyun		#address-cells = <1>;
28*4882a593Smuzhiyun		#size-cells = <0>;
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun		cpu@0 {
31*4882a593Smuzhiyun			device_type = "cpu";
32*4882a593Smuzhiyun			compatible = "arm,cortex-a5";
33*4882a593Smuzhiyun			reg = <0>;
34*4882a593Smuzhiyun			next-level-cache = <&L2>;
35*4882a593Smuzhiyun		};
36*4882a593Smuzhiyun	};
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun	pmu {
39*4882a593Smuzhiyun		compatible = "arm,cortex-a5-pmu";
40*4882a593Smuzhiyun		interrupts = <2 IRQ_TYPE_LEVEL_HIGH 0>;
41*4882a593Smuzhiyun	};
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun	etb {
44*4882a593Smuzhiyun		compatible = "arm,coresight-etb10", "arm,primecell";
45*4882a593Smuzhiyun		reg = <0x740000 0x1000>;
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun		clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
48*4882a593Smuzhiyun		clock-names = "apb_pclk";
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun		in-ports {
51*4882a593Smuzhiyun			port {
52*4882a593Smuzhiyun				etb_in: endpoint {
53*4882a593Smuzhiyun					remote-endpoint = <&etm_out>;
54*4882a593Smuzhiyun				};
55*4882a593Smuzhiyun			};
56*4882a593Smuzhiyun		};
57*4882a593Smuzhiyun	};
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun	etm {
60*4882a593Smuzhiyun		compatible = "arm,coresight-etm3x", "arm,primecell";
61*4882a593Smuzhiyun		reg = <0x73C000 0x1000>;
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun		clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
64*4882a593Smuzhiyun		clock-names = "apb_pclk";
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun		out-ports {
67*4882a593Smuzhiyun			port {
68*4882a593Smuzhiyun				etm_out: endpoint {
69*4882a593Smuzhiyun					remote-endpoint = <&etb_in>;
70*4882a593Smuzhiyun				};
71*4882a593Smuzhiyun			};
72*4882a593Smuzhiyun		};
73*4882a593Smuzhiyun	};
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun	memory@20000000 {
76*4882a593Smuzhiyun		device_type = "memory";
77*4882a593Smuzhiyun		reg = <0x20000000 0x20000000>;
78*4882a593Smuzhiyun	};
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun	clocks {
81*4882a593Smuzhiyun		slow_xtal: slow_xtal {
82*4882a593Smuzhiyun			compatible = "fixed-clock";
83*4882a593Smuzhiyun			#clock-cells = <0>;
84*4882a593Smuzhiyun			clock-frequency = <0>;
85*4882a593Smuzhiyun		};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun		main_xtal: main_xtal {
88*4882a593Smuzhiyun			compatible = "fixed-clock";
89*4882a593Smuzhiyun			#clock-cells = <0>;
90*4882a593Smuzhiyun			clock-frequency = <0>;
91*4882a593Smuzhiyun		};
92*4882a593Smuzhiyun	};
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun	ns_sram: sram@200000 {
95*4882a593Smuzhiyun		compatible = "mmio-sram";
96*4882a593Smuzhiyun		reg = <0x00200000 0x20000>;
97*4882a593Smuzhiyun		#address-cells = <1>;
98*4882a593Smuzhiyun		#size-cells = <1>;
99*4882a593Smuzhiyun		ranges = <0 0x00200000 0x20000>;
100*4882a593Smuzhiyun	};
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun	ahb {
103*4882a593Smuzhiyun		compatible = "simple-bus";
104*4882a593Smuzhiyun		#address-cells = <1>;
105*4882a593Smuzhiyun		#size-cells = <1>;
106*4882a593Smuzhiyun		ranges;
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun		nfc_sram: sram@100000 {
109*4882a593Smuzhiyun			compatible = "mmio-sram";
110*4882a593Smuzhiyun			no-memory-wc;
111*4882a593Smuzhiyun			reg = <0x00100000 0x2400>;
112*4882a593Smuzhiyun			#address-cells = <1>;
113*4882a593Smuzhiyun			#size-cells = <1>;
114*4882a593Smuzhiyun			ranges = <0 0x00100000 0x2400>;
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun		};
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun		usb0: gadget@300000 {
119*4882a593Smuzhiyun			compatible = "atmel,sama5d3-udc";
120*4882a593Smuzhiyun			reg = <0x00300000 0x100000
121*4882a593Smuzhiyun			       0xfc02c000 0x400>;
122*4882a593Smuzhiyun			interrupts = <42 IRQ_TYPE_LEVEL_HIGH 2>;
123*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_PERIPHERAL 42>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
124*4882a593Smuzhiyun			clock-names = "pclk", "hclk";
125*4882a593Smuzhiyun			status = "disabled";
126*4882a593Smuzhiyun		};
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun		usb1: ohci@400000 {
129*4882a593Smuzhiyun			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
130*4882a593Smuzhiyun			reg = <0x00400000 0x100000>;
131*4882a593Smuzhiyun			interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
132*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_PERIPHERAL 41>, <&pmc PMC_TYPE_PERIPHERAL 41>, <&pmc PMC_TYPE_SYSTEM 6>;
133*4882a593Smuzhiyun			clock-names = "ohci_clk", "hclk", "uhpck";
134*4882a593Smuzhiyun			status = "disabled";
135*4882a593Smuzhiyun		};
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun		usb2: ehci@500000 {
138*4882a593Smuzhiyun			compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
139*4882a593Smuzhiyun			reg = <0x00500000 0x100000>;
140*4882a593Smuzhiyun			interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
141*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 41>;
142*4882a593Smuzhiyun			clock-names = "usb_clk", "ehci_clk";
143*4882a593Smuzhiyun			status = "disabled";
144*4882a593Smuzhiyun		};
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun		L2: cache-controller@a00000 {
147*4882a593Smuzhiyun			compatible = "arm,pl310-cache";
148*4882a593Smuzhiyun			reg = <0x00a00000 0x1000>;
149*4882a593Smuzhiyun			interrupts = <63 IRQ_TYPE_LEVEL_HIGH 4>;
150*4882a593Smuzhiyun			cache-unified;
151*4882a593Smuzhiyun			cache-level = <2>;
152*4882a593Smuzhiyun		};
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun		ebi: ebi@10000000 {
155*4882a593Smuzhiyun			compatible = "atmel,sama5d3-ebi";
156*4882a593Smuzhiyun			#address-cells = <2>;
157*4882a593Smuzhiyun			#size-cells = <1>;
158*4882a593Smuzhiyun			atmel,smc = <&hsmc>;
159*4882a593Smuzhiyun			reg = <0x10000000 0x10000000
160*4882a593Smuzhiyun			       0x60000000 0x30000000>;
161*4882a593Smuzhiyun			ranges = <0x0 0x0 0x10000000 0x10000000
162*4882a593Smuzhiyun				  0x1 0x0 0x60000000 0x10000000
163*4882a593Smuzhiyun				  0x2 0x0 0x70000000 0x10000000
164*4882a593Smuzhiyun				  0x3 0x0 0x80000000 0x10000000>;
165*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_CORE PMC_MCK2>;
166*4882a593Smuzhiyun			status = "disabled";
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun			nand_controller: nand-controller {
169*4882a593Smuzhiyun				compatible = "atmel,sama5d3-nand-controller";
170*4882a593Smuzhiyun				atmel,nfc-sram = <&nfc_sram>;
171*4882a593Smuzhiyun				atmel,nfc-io = <&nfc_io>;
172*4882a593Smuzhiyun				ecc-engine = <&pmecc>;
173*4882a593Smuzhiyun				#address-cells = <2>;
174*4882a593Smuzhiyun				#size-cells = <1>;
175*4882a593Smuzhiyun				ranges;
176*4882a593Smuzhiyun				status = "disabled";
177*4882a593Smuzhiyun			};
178*4882a593Smuzhiyun		};
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun		sdmmc0: sdio-host@a0000000 {
181*4882a593Smuzhiyun			compatible = "atmel,sama5d2-sdhci";
182*4882a593Smuzhiyun			reg = <0xa0000000 0x300>;
183*4882a593Smuzhiyun			interrupts = <31 IRQ_TYPE_LEVEL_HIGH 0>;
184*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_PERIPHERAL 31>, <&pmc PMC_TYPE_GCK 31>, <&pmc PMC_TYPE_CORE PMC_MAIN>;
185*4882a593Smuzhiyun			clock-names = "hclock", "multclk", "baseclk";
186*4882a593Smuzhiyun			assigned-clocks = <&pmc PMC_TYPE_GCK 31>;
187*4882a593Smuzhiyun			assigned-clock-rates = <480000000>;
188*4882a593Smuzhiyun			status = "disabled";
189*4882a593Smuzhiyun		};
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun		sdmmc1: sdio-host@b0000000 {
192*4882a593Smuzhiyun			compatible = "atmel,sama5d2-sdhci";
193*4882a593Smuzhiyun			reg = <0xb0000000 0x300>;
194*4882a593Smuzhiyun			interrupts = <32 IRQ_TYPE_LEVEL_HIGH 0>;
195*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_PERIPHERAL 32>, <&pmc PMC_TYPE_GCK 32>, <&pmc PMC_TYPE_CORE PMC_MAIN>;
196*4882a593Smuzhiyun			clock-names = "hclock", "multclk", "baseclk";
197*4882a593Smuzhiyun			assigned-clocks = <&pmc PMC_TYPE_GCK 32>;
198*4882a593Smuzhiyun			assigned-clock-rates = <480000000>;
199*4882a593Smuzhiyun			status = "disabled";
200*4882a593Smuzhiyun		};
201*4882a593Smuzhiyun
202*4882a593Smuzhiyun		nfc_io: nfc-io@c0000000 {
203*4882a593Smuzhiyun			compatible = "atmel,sama5d3-nfc-io", "syscon";
204*4882a593Smuzhiyun			reg = <0xc0000000 0x8000000>;
205*4882a593Smuzhiyun		};
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun		apb {
208*4882a593Smuzhiyun			compatible = "simple-bus";
209*4882a593Smuzhiyun			#address-cells = <1>;
210*4882a593Smuzhiyun			#size-cells = <1>;
211*4882a593Smuzhiyun			ranges;
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun			hlcdc: hlcdc@f0000000 {
214*4882a593Smuzhiyun				compatible = "atmel,sama5d2-hlcdc";
215*4882a593Smuzhiyun				reg = <0xf0000000 0x2000>;
216*4882a593Smuzhiyun				interrupts = <45 IRQ_TYPE_LEVEL_HIGH 0>;
217*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 45>, <&pmc PMC_TYPE_SYSTEM 3>, <&clk32k>;
218*4882a593Smuzhiyun				clock-names = "periph_clk","sys_clk", "slow_clk";
219*4882a593Smuzhiyun				status = "disabled";
220*4882a593Smuzhiyun
221*4882a593Smuzhiyun				hlcdc-display-controller {
222*4882a593Smuzhiyun					compatible = "atmel,hlcdc-display-controller";
223*4882a593Smuzhiyun					#address-cells = <1>;
224*4882a593Smuzhiyun					#size-cells = <0>;
225*4882a593Smuzhiyun
226*4882a593Smuzhiyun					port@0 {
227*4882a593Smuzhiyun						#address-cells = <1>;
228*4882a593Smuzhiyun						#size-cells = <0>;
229*4882a593Smuzhiyun						reg = <0>;
230*4882a593Smuzhiyun					};
231*4882a593Smuzhiyun				};
232*4882a593Smuzhiyun
233*4882a593Smuzhiyun				hlcdc_pwm: hlcdc-pwm {
234*4882a593Smuzhiyun					compatible = "atmel,hlcdc-pwm";
235*4882a593Smuzhiyun					#pwm-cells = <3>;
236*4882a593Smuzhiyun				};
237*4882a593Smuzhiyun			};
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun			isc: isc@f0008000 {
240*4882a593Smuzhiyun				compatible = "atmel,sama5d2-isc";
241*4882a593Smuzhiyun				reg = <0xf0008000 0x4000>;
242*4882a593Smuzhiyun				interrupts = <46 IRQ_TYPE_LEVEL_HIGH 5>;
243*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 46>, <&pmc PMC_TYPE_SYSTEM 18>, <&pmc PMC_TYPE_GCK 46>;
244*4882a593Smuzhiyun				clock-names = "hclock", "iscck", "gck";
245*4882a593Smuzhiyun				#clock-cells = <0>;
246*4882a593Smuzhiyun				clock-output-names = "isc-mck";
247*4882a593Smuzhiyun				status = "disabled";
248*4882a593Smuzhiyun			};
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun			ramc0: ramc@f000c000 {
251*4882a593Smuzhiyun				compatible = "atmel,sama5d3-ddramc";
252*4882a593Smuzhiyun				reg = <0xf000c000 0x200>;
253*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_SYSTEM 2>, <&pmc PMC_TYPE_PERIPHERAL 13>;
254*4882a593Smuzhiyun				clock-names = "ddrck", "mpddr";
255*4882a593Smuzhiyun			};
256*4882a593Smuzhiyun
257*4882a593Smuzhiyun			dma0: dma-controller@f0010000 {
258*4882a593Smuzhiyun				compatible = "atmel,sama5d4-dma";
259*4882a593Smuzhiyun				reg = <0xf0010000 0x1000>;
260*4882a593Smuzhiyun				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 0>;
261*4882a593Smuzhiyun				#dma-cells = <1>;
262*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
263*4882a593Smuzhiyun				clock-names = "dma_clk";
264*4882a593Smuzhiyun			};
265*4882a593Smuzhiyun
266*4882a593Smuzhiyun			/* Place dma1 here despite its address */
267*4882a593Smuzhiyun			dma1: dma-controller@f0004000 {
268*4882a593Smuzhiyun				compatible = "atmel,sama5d4-dma";
269*4882a593Smuzhiyun				reg = <0xf0004000 0x1000>;
270*4882a593Smuzhiyun				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 0>;
271*4882a593Smuzhiyun				#dma-cells = <1>;
272*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
273*4882a593Smuzhiyun				clock-names = "dma_clk";
274*4882a593Smuzhiyun			};
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun			pmc: pmc@f0014000 {
277*4882a593Smuzhiyun				compatible = "atmel,sama5d2-pmc", "syscon";
278*4882a593Smuzhiyun				reg = <0xf0014000 0x160>;
279*4882a593Smuzhiyun				interrupts = <74 IRQ_TYPE_LEVEL_HIGH 7>;
280*4882a593Smuzhiyun				#clock-cells = <2>;
281*4882a593Smuzhiyun				clocks = <&clk32k>, <&main_xtal>;
282*4882a593Smuzhiyun				clock-names = "slow_clk", "main_xtal";
283*4882a593Smuzhiyun			};
284*4882a593Smuzhiyun
285*4882a593Smuzhiyun			qspi0: spi@f0020000 {
286*4882a593Smuzhiyun				compatible = "atmel,sama5d2-qspi";
287*4882a593Smuzhiyun				reg = <0xf0020000 0x100>, <0xd0000000 0x08000000>;
288*4882a593Smuzhiyun				reg-names = "qspi_base", "qspi_mmap";
289*4882a593Smuzhiyun				interrupts = <52 IRQ_TYPE_LEVEL_HIGH 7>;
290*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 52>;
291*4882a593Smuzhiyun				#address-cells = <1>;
292*4882a593Smuzhiyun				#size-cells = <0>;
293*4882a593Smuzhiyun				status = "disabled";
294*4882a593Smuzhiyun			};
295*4882a593Smuzhiyun
296*4882a593Smuzhiyun			qspi1: spi@f0024000 {
297*4882a593Smuzhiyun				compatible = "atmel,sama5d2-qspi";
298*4882a593Smuzhiyun				reg = <0xf0024000 0x100>, <0xd8000000 0x08000000>;
299*4882a593Smuzhiyun				reg-names = "qspi_base", "qspi_mmap";
300*4882a593Smuzhiyun				interrupts = <53 IRQ_TYPE_LEVEL_HIGH 7>;
301*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 53>;
302*4882a593Smuzhiyun				#address-cells = <1>;
303*4882a593Smuzhiyun				#size-cells = <0>;
304*4882a593Smuzhiyun				status = "disabled";
305*4882a593Smuzhiyun			};
306*4882a593Smuzhiyun
307*4882a593Smuzhiyun			sha@f0028000 {
308*4882a593Smuzhiyun				compatible = "atmel,at91sam9g46-sha";
309*4882a593Smuzhiyun				reg = <0xf0028000 0x100>;
310*4882a593Smuzhiyun				interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
311*4882a593Smuzhiyun				dmas = <&dma0
312*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
313*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(30))>;
314*4882a593Smuzhiyun				dma-names = "tx";
315*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
316*4882a593Smuzhiyun				clock-names = "sha_clk";
317*4882a593Smuzhiyun				status = "okay";
318*4882a593Smuzhiyun			};
319*4882a593Smuzhiyun
320*4882a593Smuzhiyun			aes@f002c000 {
321*4882a593Smuzhiyun				compatible = "atmel,at91sam9g46-aes";
322*4882a593Smuzhiyun				reg = <0xf002c000 0x100>;
323*4882a593Smuzhiyun				interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
324*4882a593Smuzhiyun				dmas = <&dma0
325*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
326*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(26))>,
327*4882a593Smuzhiyun				       <&dma0
328*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
329*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(27))>;
330*4882a593Smuzhiyun				dma-names = "tx", "rx";
331*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
332*4882a593Smuzhiyun				clock-names = "aes_clk";
333*4882a593Smuzhiyun				status = "okay";
334*4882a593Smuzhiyun			};
335*4882a593Smuzhiyun
336*4882a593Smuzhiyun			spi0: spi@f8000000 {
337*4882a593Smuzhiyun				compatible = "atmel,at91rm9200-spi";
338*4882a593Smuzhiyun				reg = <0xf8000000 0x100>;
339*4882a593Smuzhiyun				interrupts = <33 IRQ_TYPE_LEVEL_HIGH 7>;
340*4882a593Smuzhiyun				dmas = <&dma0
341*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
342*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(6))>,
343*4882a593Smuzhiyun				       <&dma0
344*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
345*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(7))>;
346*4882a593Smuzhiyun				dma-names = "tx", "rx";
347*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
348*4882a593Smuzhiyun				clock-names = "spi_clk";
349*4882a593Smuzhiyun				atmel,fifo-size = <16>;
350*4882a593Smuzhiyun				#address-cells = <1>;
351*4882a593Smuzhiyun				#size-cells = <0>;
352*4882a593Smuzhiyun				status = "disabled";
353*4882a593Smuzhiyun			};
354*4882a593Smuzhiyun
355*4882a593Smuzhiyun			ssc0: ssc@f8004000 {
356*4882a593Smuzhiyun				compatible = "atmel,at91sam9g45-ssc";
357*4882a593Smuzhiyun				reg = <0xf8004000 0x4000>;
358*4882a593Smuzhiyun				interrupts = <43 IRQ_TYPE_LEVEL_HIGH 4>;
359*4882a593Smuzhiyun				dmas = <&dma0
360*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
361*4882a593Smuzhiyun					AT91_XDMAC_DT_PERID(21))>,
362*4882a593Smuzhiyun				       <&dma0
363*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
364*4882a593Smuzhiyun					AT91_XDMAC_DT_PERID(22))>;
365*4882a593Smuzhiyun				dma-names = "tx", "rx";
366*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 43>;
367*4882a593Smuzhiyun				clock-names = "pclk";
368*4882a593Smuzhiyun				status = "disabled";
369*4882a593Smuzhiyun			};
370*4882a593Smuzhiyun
371*4882a593Smuzhiyun			macb0: ethernet@f8008000 {
372*4882a593Smuzhiyun				compatible = "atmel,sama5d2-gem";
373*4882a593Smuzhiyun				reg = <0xf8008000 0x1000>;
374*4882a593Smuzhiyun				interrupts = <5  IRQ_TYPE_LEVEL_HIGH 3		/* Queue 0 */
375*4882a593Smuzhiyun					      66 IRQ_TYPE_LEVEL_HIGH 3          /* Queue 1 */
376*4882a593Smuzhiyun					      67 IRQ_TYPE_LEVEL_HIGH 3>;        /* Queue 2 */
377*4882a593Smuzhiyun				#address-cells = <1>;
378*4882a593Smuzhiyun				#size-cells = <0>;
379*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>, <&pmc PMC_TYPE_PERIPHERAL 5>;
380*4882a593Smuzhiyun				clock-names = "hclk", "pclk";
381*4882a593Smuzhiyun				status = "disabled";
382*4882a593Smuzhiyun			};
383*4882a593Smuzhiyun
384*4882a593Smuzhiyun			tcb0: timer@f800c000 {
385*4882a593Smuzhiyun				compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
386*4882a593Smuzhiyun				#address-cells = <1>;
387*4882a593Smuzhiyun				#size-cells = <0>;
388*4882a593Smuzhiyun				reg = <0xf800c000 0x100>;
389*4882a593Smuzhiyun				interrupts = <35 IRQ_TYPE_LEVEL_HIGH 0>;
390*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 35>, <&pmc PMC_TYPE_GCK 35>, <&clk32k>;
391*4882a593Smuzhiyun				clock-names = "t0_clk", "gclk", "slow_clk";
392*4882a593Smuzhiyun			};
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun			tcb1: timer@f8010000 {
395*4882a593Smuzhiyun				compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
396*4882a593Smuzhiyun				#address-cells = <1>;
397*4882a593Smuzhiyun				#size-cells = <0>;
398*4882a593Smuzhiyun				reg = <0xf8010000 0x100>;
399*4882a593Smuzhiyun				interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
400*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 36>, <&pmc PMC_TYPE_GCK 36>, <&clk32k>;
401*4882a593Smuzhiyun				clock-names = "t0_clk", "gclk", "slow_clk";
402*4882a593Smuzhiyun			};
403*4882a593Smuzhiyun
404*4882a593Smuzhiyun			hsmc: hsmc@f8014000 {
405*4882a593Smuzhiyun				compatible = "atmel,sama5d2-smc", "syscon", "simple-mfd";
406*4882a593Smuzhiyun				reg = <0xf8014000 0x1000>;
407*4882a593Smuzhiyun				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 6>;
408*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 17>;
409*4882a593Smuzhiyun				#address-cells = <1>;
410*4882a593Smuzhiyun				#size-cells = <1>;
411*4882a593Smuzhiyun				ranges;
412*4882a593Smuzhiyun
413*4882a593Smuzhiyun				pmecc: ecc-engine@f8014070 {
414*4882a593Smuzhiyun					compatible = "atmel,sama5d2-pmecc";
415*4882a593Smuzhiyun					reg = <0xf8014070 0x490>,
416*4882a593Smuzhiyun					      <0xf8014500 0x200>;
417*4882a593Smuzhiyun				};
418*4882a593Smuzhiyun			};
419*4882a593Smuzhiyun
420*4882a593Smuzhiyun			pdmic: pdmic@f8018000 {
421*4882a593Smuzhiyun				compatible = "atmel,sama5d2-pdmic";
422*4882a593Smuzhiyun				reg = <0xf8018000 0x124>;
423*4882a593Smuzhiyun				interrupts = <48 IRQ_TYPE_LEVEL_HIGH 7>;
424*4882a593Smuzhiyun				dmas = <&dma0
425*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
426*4882a593Smuzhiyun					| AT91_XDMAC_DT_PERID(50))>;
427*4882a593Smuzhiyun				dma-names = "rx";
428*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 48>, <&pmc PMC_TYPE_GCK 48>;
429*4882a593Smuzhiyun				clock-names = "pclk", "gclk";
430*4882a593Smuzhiyun				status = "disabled";
431*4882a593Smuzhiyun			};
432*4882a593Smuzhiyun
433*4882a593Smuzhiyun			uart0: serial@f801c000 {
434*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-usart";
435*4882a593Smuzhiyun				reg = <0xf801c000 0x100>;
436*4882a593Smuzhiyun				interrupts = <24 IRQ_TYPE_LEVEL_HIGH 7>;
437*4882a593Smuzhiyun				dmas = <&dma0
438*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
439*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(35))>,
440*4882a593Smuzhiyun				       <&dma0
441*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
442*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(36))>;
443*4882a593Smuzhiyun				dma-names = "tx", "rx";
444*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
445*4882a593Smuzhiyun				clock-names = "usart";
446*4882a593Smuzhiyun				status = "disabled";
447*4882a593Smuzhiyun			};
448*4882a593Smuzhiyun
449*4882a593Smuzhiyun			uart1: serial@f8020000 {
450*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-usart";
451*4882a593Smuzhiyun				reg = <0xf8020000 0x100>;
452*4882a593Smuzhiyun				interrupts = <25 IRQ_TYPE_LEVEL_HIGH 7>;
453*4882a593Smuzhiyun				dmas = <&dma0
454*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
455*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(37))>,
456*4882a593Smuzhiyun				       <&dma0
457*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
458*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(38))>;
459*4882a593Smuzhiyun				dma-names = "tx", "rx";
460*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 25>;
461*4882a593Smuzhiyun				clock-names = "usart";
462*4882a593Smuzhiyun				status = "disabled";
463*4882a593Smuzhiyun			};
464*4882a593Smuzhiyun
465*4882a593Smuzhiyun			uart2: serial@f8024000 {
466*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-usart";
467*4882a593Smuzhiyun				reg = <0xf8024000 0x100>;
468*4882a593Smuzhiyun				interrupts = <26 IRQ_TYPE_LEVEL_HIGH 7>;
469*4882a593Smuzhiyun				dmas = <&dma0
470*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
471*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(39))>,
472*4882a593Smuzhiyun				       <&dma0
473*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
474*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(40))>;
475*4882a593Smuzhiyun				dma-names = "tx", "rx";
476*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 26>;
477*4882a593Smuzhiyun				clock-names = "usart";
478*4882a593Smuzhiyun				status = "disabled";
479*4882a593Smuzhiyun			};
480*4882a593Smuzhiyun
481*4882a593Smuzhiyun			i2c0: i2c@f8028000 {
482*4882a593Smuzhiyun				compatible = "atmel,sama5d2-i2c";
483*4882a593Smuzhiyun				reg = <0xf8028000 0x100>;
484*4882a593Smuzhiyun				interrupts = <29 IRQ_TYPE_LEVEL_HIGH 7>;
485*4882a593Smuzhiyun				dmas = <&dma0
486*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
487*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(0))>,
488*4882a593Smuzhiyun				       <&dma0
489*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
490*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(1))>;
491*4882a593Smuzhiyun				dma-names = "tx", "rx";
492*4882a593Smuzhiyun				#address-cells = <1>;
493*4882a593Smuzhiyun				#size-cells = <0>;
494*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 29>;
495*4882a593Smuzhiyun				atmel,fifo-size = <16>;
496*4882a593Smuzhiyun				status = "disabled";
497*4882a593Smuzhiyun			};
498*4882a593Smuzhiyun
499*4882a593Smuzhiyun			pwm0: pwm@f802c000 {
500*4882a593Smuzhiyun				compatible = "atmel,sama5d2-pwm";
501*4882a593Smuzhiyun				reg = <0xf802c000 0x4000>;
502*4882a593Smuzhiyun				interrupts = <38 IRQ_TYPE_LEVEL_HIGH 7>;
503*4882a593Smuzhiyun				#pwm-cells = <3>;
504*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
505*4882a593Smuzhiyun				status = "disabled";
506*4882a593Smuzhiyun			};
507*4882a593Smuzhiyun
508*4882a593Smuzhiyun			sfr: sfr@f8030000 {
509*4882a593Smuzhiyun				compatible = "atmel,sama5d2-sfr", "syscon";
510*4882a593Smuzhiyun				reg = <0xf8030000 0x98>;
511*4882a593Smuzhiyun			};
512*4882a593Smuzhiyun
513*4882a593Smuzhiyun			flx0: flexcom@f8034000 {
514*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
515*4882a593Smuzhiyun				reg = <0xf8034000 0x200>;
516*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
517*4882a593Smuzhiyun				#address-cells = <1>;
518*4882a593Smuzhiyun				#size-cells = <1>;
519*4882a593Smuzhiyun				ranges = <0x0 0xf8034000 0x800>;
520*4882a593Smuzhiyun				status = "disabled";
521*4882a593Smuzhiyun
522*4882a593Smuzhiyun				uart5: serial@200 {
523*4882a593Smuzhiyun					compatible = "atmel,at91sam9260-usart";
524*4882a593Smuzhiyun					reg = <0x200 0x200>;
525*4882a593Smuzhiyun					interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
526*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
527*4882a593Smuzhiyun					clock-names = "usart";
528*4882a593Smuzhiyun					dmas = <&dma0
529*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
530*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
531*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(11))>,
532*4882a593Smuzhiyun					       <&dma0
533*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
534*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
535*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(12))>;
536*4882a593Smuzhiyun					dma-names = "tx", "rx";
537*4882a593Smuzhiyun					atmel,fifo-size = <32>;
538*4882a593Smuzhiyun					status = "disabled";
539*4882a593Smuzhiyun				};
540*4882a593Smuzhiyun
541*4882a593Smuzhiyun				spi2: spi@400 {
542*4882a593Smuzhiyun					compatible = "atmel,at91rm9200-spi";
543*4882a593Smuzhiyun					reg = <0x400 0x200>;
544*4882a593Smuzhiyun					interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
545*4882a593Smuzhiyun					#address-cells = <1>;
546*4882a593Smuzhiyun					#size-cells = <0>;
547*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
548*4882a593Smuzhiyun					clock-names = "spi_clk";
549*4882a593Smuzhiyun					dmas = <&dma0
550*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
551*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
552*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(11))>,
553*4882a593Smuzhiyun					       <&dma0
554*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
555*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
556*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(12))>;
557*4882a593Smuzhiyun					dma-names = "tx", "rx";
558*4882a593Smuzhiyun					atmel,fifo-size = <16>;
559*4882a593Smuzhiyun					status = "disabled";
560*4882a593Smuzhiyun				};
561*4882a593Smuzhiyun
562*4882a593Smuzhiyun				i2c2: i2c@600 {
563*4882a593Smuzhiyun					compatible = "atmel,sama5d2-i2c";
564*4882a593Smuzhiyun					reg = <0x600 0x200>;
565*4882a593Smuzhiyun					interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
566*4882a593Smuzhiyun					#address-cells = <1>;
567*4882a593Smuzhiyun					#size-cells = <0>;
568*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
569*4882a593Smuzhiyun					dmas = <&dma0
570*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
571*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
572*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(11))>,
573*4882a593Smuzhiyun					       <&dma0
574*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
575*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
576*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(12))>;
577*4882a593Smuzhiyun					dma-names = "tx", "rx";
578*4882a593Smuzhiyun					atmel,fifo-size = <16>;
579*4882a593Smuzhiyun					status = "disabled";
580*4882a593Smuzhiyun				};
581*4882a593Smuzhiyun			};
582*4882a593Smuzhiyun
583*4882a593Smuzhiyun			flx1: flexcom@f8038000 {
584*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
585*4882a593Smuzhiyun				reg = <0xf8038000 0x200>;
586*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
587*4882a593Smuzhiyun				#address-cells = <1>;
588*4882a593Smuzhiyun				#size-cells = <1>;
589*4882a593Smuzhiyun				ranges = <0x0 0xf8038000 0x800>;
590*4882a593Smuzhiyun				status = "disabled";
591*4882a593Smuzhiyun
592*4882a593Smuzhiyun				uart6: serial@200 {
593*4882a593Smuzhiyun					compatible = "atmel,at91sam9260-usart";
594*4882a593Smuzhiyun					reg = <0x200 0x200>;
595*4882a593Smuzhiyun					interrupts = <20 IRQ_TYPE_LEVEL_HIGH 7>;
596*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
597*4882a593Smuzhiyun					clock-names = "usart";
598*4882a593Smuzhiyun					dmas = <&dma0
599*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
600*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
601*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(13))>,
602*4882a593Smuzhiyun					       <&dma0
603*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
604*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
605*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(14))>;
606*4882a593Smuzhiyun					dma-names = "tx", "rx";
607*4882a593Smuzhiyun					atmel,fifo-size = <32>;
608*4882a593Smuzhiyun					status = "disabled";
609*4882a593Smuzhiyun				};
610*4882a593Smuzhiyun
611*4882a593Smuzhiyun				spi3: spi@400 {
612*4882a593Smuzhiyun					compatible = "atmel,at91rm9200-spi";
613*4882a593Smuzhiyun					reg = <0x400 0x200>;
614*4882a593Smuzhiyun					interrupts = <20 IRQ_TYPE_LEVEL_HIGH 7>;
615*4882a593Smuzhiyun					#address-cells = <1>;
616*4882a593Smuzhiyun					#size-cells = <0>;
617*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
618*4882a593Smuzhiyun					clock-names = "spi_clk";
619*4882a593Smuzhiyun					dmas = <&dma0
620*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
621*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
622*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(13))>,
623*4882a593Smuzhiyun					       <&dma0
624*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
625*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
626*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(14))>;
627*4882a593Smuzhiyun					dma-names = "tx", "rx";
628*4882a593Smuzhiyun					atmel,fifo-size = <16>;
629*4882a593Smuzhiyun					status = "disabled";
630*4882a593Smuzhiyun				};
631*4882a593Smuzhiyun
632*4882a593Smuzhiyun				i2c3: i2c@600 {
633*4882a593Smuzhiyun					compatible = "atmel,sama5d2-i2c";
634*4882a593Smuzhiyun					reg = <0x600 0x200>;
635*4882a593Smuzhiyun					interrupts = <20 IRQ_TYPE_LEVEL_HIGH 7>;
636*4882a593Smuzhiyun					#address-cells = <1>;
637*4882a593Smuzhiyun					#size-cells = <0>;
638*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
639*4882a593Smuzhiyun					dmas = <&dma0
640*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
641*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
642*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(13))>,
643*4882a593Smuzhiyun					       <&dma0
644*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
645*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
646*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(14))>;
647*4882a593Smuzhiyun					dma-names = "tx", "rx";
648*4882a593Smuzhiyun					atmel,fifo-size = <16>;
649*4882a593Smuzhiyun					status = "disabled";
650*4882a593Smuzhiyun				};
651*4882a593Smuzhiyun			};
652*4882a593Smuzhiyun
653*4882a593Smuzhiyun			securam: sram@f8044000 {
654*4882a593Smuzhiyun				compatible = "atmel,sama5d2-securam", "mmio-sram";
655*4882a593Smuzhiyun				reg = <0xf8044000 0x1420>;
656*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 51>;
657*4882a593Smuzhiyun				#address-cells = <1>;
658*4882a593Smuzhiyun				#size-cells = <1>;
659*4882a593Smuzhiyun				no-memory-wc;
660*4882a593Smuzhiyun				ranges = <0 0xf8044000 0x1420>;
661*4882a593Smuzhiyun			};
662*4882a593Smuzhiyun
663*4882a593Smuzhiyun			reset_controller: rstc@f8048000 {
664*4882a593Smuzhiyun				compatible = "atmel,sama5d3-rstc";
665*4882a593Smuzhiyun				reg = <0xf8048000 0x10>;
666*4882a593Smuzhiyun				clocks = <&clk32k>;
667*4882a593Smuzhiyun			};
668*4882a593Smuzhiyun
669*4882a593Smuzhiyun			shutdown_controller: shdwc@f8048010 {
670*4882a593Smuzhiyun				compatible = "atmel,sama5d2-shdwc";
671*4882a593Smuzhiyun				reg = <0xf8048010 0x10>;
672*4882a593Smuzhiyun				clocks = <&clk32k>;
673*4882a593Smuzhiyun				#address-cells = <1>;
674*4882a593Smuzhiyun				#size-cells = <0>;
675*4882a593Smuzhiyun				atmel,wakeup-rtc-timer;
676*4882a593Smuzhiyun			};
677*4882a593Smuzhiyun
678*4882a593Smuzhiyun			pit: timer@f8048030 {
679*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-pit";
680*4882a593Smuzhiyun				reg = <0xf8048030 0x10>;
681*4882a593Smuzhiyun				interrupts = <3 IRQ_TYPE_LEVEL_HIGH 5>;
682*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_CORE PMC_MCK2>;
683*4882a593Smuzhiyun			};
684*4882a593Smuzhiyun
685*4882a593Smuzhiyun			watchdog: watchdog@f8048040 {
686*4882a593Smuzhiyun				compatible = "atmel,sama5d4-wdt";
687*4882a593Smuzhiyun				reg = <0xf8048040 0x10>;
688*4882a593Smuzhiyun				interrupts = <4 IRQ_TYPE_LEVEL_HIGH 7>;
689*4882a593Smuzhiyun				clocks = <&clk32k>;
690*4882a593Smuzhiyun				status = "disabled";
691*4882a593Smuzhiyun			};
692*4882a593Smuzhiyun
693*4882a593Smuzhiyun			clk32k: sckc@f8048050 {
694*4882a593Smuzhiyun				compatible = "atmel,sama5d4-sckc";
695*4882a593Smuzhiyun				reg = <0xf8048050 0x4>;
696*4882a593Smuzhiyun
697*4882a593Smuzhiyun				clocks = <&slow_xtal>;
698*4882a593Smuzhiyun				#clock-cells = <0>;
699*4882a593Smuzhiyun			};
700*4882a593Smuzhiyun
701*4882a593Smuzhiyun			rtc: rtc@f80480b0 {
702*4882a593Smuzhiyun				compatible = "atmel,sama5d2-rtc";
703*4882a593Smuzhiyun				reg = <0xf80480b0 0x30>;
704*4882a593Smuzhiyun				interrupts = <74 IRQ_TYPE_LEVEL_HIGH 7>;
705*4882a593Smuzhiyun				clocks = <&clk32k>;
706*4882a593Smuzhiyun			};
707*4882a593Smuzhiyun
708*4882a593Smuzhiyun			i2s0: i2s@f8050000 {
709*4882a593Smuzhiyun				compatible = "atmel,sama5d2-i2s";
710*4882a593Smuzhiyun				reg = <0xf8050000 0x100>;
711*4882a593Smuzhiyun				interrupts = <54 IRQ_TYPE_LEVEL_HIGH 7>;
712*4882a593Smuzhiyun				dmas = <&dma0
713*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
714*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(31))>,
715*4882a593Smuzhiyun				       <&dma0
716*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
717*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(32))>;
718*4882a593Smuzhiyun				dma-names = "tx", "rx";
719*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 54>, <&pmc PMC_TYPE_GCK 54>;
720*4882a593Smuzhiyun				clock-names = "pclk", "gclk";
721*4882a593Smuzhiyun				assigned-clocks = <&pmc PMC_TYPE_CORE PMC_I2S0_MUX>;
722*4882a593Smuzhiyun				assigned-clock-parents = <&pmc PMC_TYPE_GCK 54>;
723*4882a593Smuzhiyun				status = "disabled";
724*4882a593Smuzhiyun			};
725*4882a593Smuzhiyun
726*4882a593Smuzhiyun			can0: can@f8054000 {
727*4882a593Smuzhiyun				compatible = "bosch,m_can";
728*4882a593Smuzhiyun				reg = <0xf8054000 0x4000>, <0x210000 0x1c00>;
729*4882a593Smuzhiyun				reg-names = "m_can", "message_ram";
730*4882a593Smuzhiyun				interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>,
731*4882a593Smuzhiyun					     <64 IRQ_TYPE_LEVEL_HIGH 7>;
732*4882a593Smuzhiyun				interrupt-names = "int0", "int1";
733*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 56>, <&pmc PMC_TYPE_GCK 56>;
734*4882a593Smuzhiyun				clock-names = "hclk", "cclk";
735*4882a593Smuzhiyun				assigned-clocks = <&pmc PMC_TYPE_GCK 56>;
736*4882a593Smuzhiyun				assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>;
737*4882a593Smuzhiyun				assigned-clock-rates = <40000000>;
738*4882a593Smuzhiyun				bosch,mram-cfg = <0x0 0 0 64 0 0 32 32>;
739*4882a593Smuzhiyun				status = "disabled";
740*4882a593Smuzhiyun			};
741*4882a593Smuzhiyun
742*4882a593Smuzhiyun			spi1: spi@fc000000 {
743*4882a593Smuzhiyun				compatible = "atmel,at91rm9200-spi";
744*4882a593Smuzhiyun				reg = <0xfc000000 0x100>;
745*4882a593Smuzhiyun				interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>;
746*4882a593Smuzhiyun				dmas = <&dma0
747*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
748*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(8))>,
749*4882a593Smuzhiyun				       <&dma0
750*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
751*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(9))>;
752*4882a593Smuzhiyun				dma-names = "tx", "rx";
753*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 34>;
754*4882a593Smuzhiyun				clock-names = "spi_clk";
755*4882a593Smuzhiyun				atmel,fifo-size = <16>;
756*4882a593Smuzhiyun				#address-cells = <1>;
757*4882a593Smuzhiyun				#size-cells = <0>;
758*4882a593Smuzhiyun				status = "disabled";
759*4882a593Smuzhiyun			};
760*4882a593Smuzhiyun
761*4882a593Smuzhiyun			uart3: serial@fc008000 {
762*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-usart";
763*4882a593Smuzhiyun				reg = <0xfc008000 0x100>;
764*4882a593Smuzhiyun				interrupts = <27 IRQ_TYPE_LEVEL_HIGH 7>;
765*4882a593Smuzhiyun				dmas = <&dma1
766*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
767*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(41))>,
768*4882a593Smuzhiyun				       <&dma1
769*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
770*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(42))>;
771*4882a593Smuzhiyun				dma-names = "tx", "rx";
772*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 27>;
773*4882a593Smuzhiyun				clock-names = "usart";
774*4882a593Smuzhiyun				status = "disabled";
775*4882a593Smuzhiyun			};
776*4882a593Smuzhiyun
777*4882a593Smuzhiyun			uart4: serial@fc00c000 {
778*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-usart";
779*4882a593Smuzhiyun				reg = <0xfc00c000 0x100>;
780*4882a593Smuzhiyun				dmas = <&dma0
781*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
782*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(43))>,
783*4882a593Smuzhiyun				       <&dma0
784*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
785*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(44))>;
786*4882a593Smuzhiyun				dma-names = "tx", "rx";
787*4882a593Smuzhiyun				interrupts = <28 IRQ_TYPE_LEVEL_HIGH 7>;
788*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
789*4882a593Smuzhiyun				clock-names = "usart";
790*4882a593Smuzhiyun				status = "disabled";
791*4882a593Smuzhiyun			};
792*4882a593Smuzhiyun
793*4882a593Smuzhiyun			flx2: flexcom@fc010000 {
794*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
795*4882a593Smuzhiyun				reg = <0xfc010000 0x200>;
796*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
797*4882a593Smuzhiyun				#address-cells = <1>;
798*4882a593Smuzhiyun				#size-cells = <1>;
799*4882a593Smuzhiyun				ranges = <0x0 0xfc010000 0x800>;
800*4882a593Smuzhiyun				status = "disabled";
801*4882a593Smuzhiyun
802*4882a593Smuzhiyun				uart7: serial@200 {
803*4882a593Smuzhiyun					compatible = "atmel,at91sam9260-usart";
804*4882a593Smuzhiyun					reg = <0x200 0x200>;
805*4882a593Smuzhiyun					interrupts = <21 IRQ_TYPE_LEVEL_HIGH 7>;
806*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
807*4882a593Smuzhiyun					clock-names = "usart";
808*4882a593Smuzhiyun					dmas = <&dma0
809*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
810*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
811*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(15))>,
812*4882a593Smuzhiyun						<&dma0
813*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
814*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
815*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(16))>;
816*4882a593Smuzhiyun					dma-names = "tx", "rx";
817*4882a593Smuzhiyun					atmel,fifo-size = <32>;
818*4882a593Smuzhiyun					status = "disabled";
819*4882a593Smuzhiyun				};
820*4882a593Smuzhiyun
821*4882a593Smuzhiyun				spi4: spi@400 {
822*4882a593Smuzhiyun					compatible = "atmel,at91rm9200-spi";
823*4882a593Smuzhiyun					reg = <0x400 0x200>;
824*4882a593Smuzhiyun					interrupts = <21 IRQ_TYPE_LEVEL_HIGH 7>;
825*4882a593Smuzhiyun					#address-cells = <1>;
826*4882a593Smuzhiyun					#size-cells = <0>;
827*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
828*4882a593Smuzhiyun					clock-names = "spi_clk";
829*4882a593Smuzhiyun					dmas = <&dma0
830*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
831*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
832*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(15))>,
833*4882a593Smuzhiyun						<&dma0
834*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
835*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
836*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(16))>;
837*4882a593Smuzhiyun					dma-names = "tx", "rx";
838*4882a593Smuzhiyun					atmel,fifo-size = <16>;
839*4882a593Smuzhiyun					status = "disabled";
840*4882a593Smuzhiyun				};
841*4882a593Smuzhiyun
842*4882a593Smuzhiyun				i2c4: i2c@600 {
843*4882a593Smuzhiyun					compatible = "atmel,sama5d2-i2c";
844*4882a593Smuzhiyun					reg = <0x600 0x200>;
845*4882a593Smuzhiyun					interrupts = <21 IRQ_TYPE_LEVEL_HIGH 7>;
846*4882a593Smuzhiyun					#address-cells = <1>;
847*4882a593Smuzhiyun					#size-cells = <0>;
848*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
849*4882a593Smuzhiyun					dmas = <&dma0
850*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
851*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
852*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(15))>,
853*4882a593Smuzhiyun						<&dma0
854*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
855*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
856*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(16))>;
857*4882a593Smuzhiyun					dma-names = "tx", "rx";
858*4882a593Smuzhiyun					atmel,fifo-size = <16>;
859*4882a593Smuzhiyun					status = "disabled";
860*4882a593Smuzhiyun				};
861*4882a593Smuzhiyun			};
862*4882a593Smuzhiyun
863*4882a593Smuzhiyun			flx3: flexcom@fc014000 {
864*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
865*4882a593Smuzhiyun				reg = <0xfc014000 0x200>;
866*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
867*4882a593Smuzhiyun				#address-cells = <1>;
868*4882a593Smuzhiyun				#size-cells = <1>;
869*4882a593Smuzhiyun				ranges = <0x0 0xfc014000 0x800>;
870*4882a593Smuzhiyun				status = "disabled";
871*4882a593Smuzhiyun
872*4882a593Smuzhiyun				uart8: serial@200 {
873*4882a593Smuzhiyun					compatible = "atmel,at91sam9260-usart";
874*4882a593Smuzhiyun					reg = <0x200 0x200>;
875*4882a593Smuzhiyun					interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
876*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
877*4882a593Smuzhiyun					clock-names = "usart";
878*4882a593Smuzhiyun					dmas = <&dma0
879*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
880*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
881*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(17))>,
882*4882a593Smuzhiyun					       <&dma0
883*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
884*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
885*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(18))>;
886*4882a593Smuzhiyun					dma-names = "tx", "rx";
887*4882a593Smuzhiyun					atmel,fifo-size = <32>;
888*4882a593Smuzhiyun					status = "disabled";
889*4882a593Smuzhiyun				};
890*4882a593Smuzhiyun
891*4882a593Smuzhiyun				spi5: spi@400 {
892*4882a593Smuzhiyun					compatible = "atmel,at91rm9200-spi";
893*4882a593Smuzhiyun					reg = <0x400 0x200>;
894*4882a593Smuzhiyun					interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
895*4882a593Smuzhiyun					#address-cells = <1>;
896*4882a593Smuzhiyun					#size-cells = <0>;
897*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
898*4882a593Smuzhiyun					clock-names = "spi_clk";
899*4882a593Smuzhiyun					dmas = <&dma0
900*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
901*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
902*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(17))>,
903*4882a593Smuzhiyun					       <&dma0
904*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
905*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
906*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(18))>;
907*4882a593Smuzhiyun					dma-names = "tx", "rx";
908*4882a593Smuzhiyun					atmel,fifo-size = <16>;
909*4882a593Smuzhiyun					status = "disabled";
910*4882a593Smuzhiyun				};
911*4882a593Smuzhiyun
912*4882a593Smuzhiyun				i2c5: i2c@600 {
913*4882a593Smuzhiyun					compatible = "atmel,sama5d2-i2c";
914*4882a593Smuzhiyun					reg = <0x600 0x200>;
915*4882a593Smuzhiyun					interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
916*4882a593Smuzhiyun					#address-cells = <1>;
917*4882a593Smuzhiyun					#size-cells = <0>;
918*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
919*4882a593Smuzhiyun					dmas = <&dma0
920*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
921*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
922*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(17))>,
923*4882a593Smuzhiyun					       <&dma0
924*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
925*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
926*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(18))>;
927*4882a593Smuzhiyun					dma-names = "tx", "rx";
928*4882a593Smuzhiyun					atmel,fifo-size = <16>;
929*4882a593Smuzhiyun					status = "disabled";
930*4882a593Smuzhiyun				};
931*4882a593Smuzhiyun
932*4882a593Smuzhiyun			};
933*4882a593Smuzhiyun
934*4882a593Smuzhiyun			flx4: flexcom@fc018000 {
935*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
936*4882a593Smuzhiyun				reg = <0xfc018000 0x200>;
937*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
938*4882a593Smuzhiyun				#address-cells = <1>;
939*4882a593Smuzhiyun				#size-cells = <1>;
940*4882a593Smuzhiyun				ranges = <0x0 0xfc018000 0x800>;
941*4882a593Smuzhiyun				status = "disabled";
942*4882a593Smuzhiyun
943*4882a593Smuzhiyun				uart9: serial@200 {
944*4882a593Smuzhiyun					compatible = "atmel,at91sam9260-usart";
945*4882a593Smuzhiyun					reg = <0x200 0x200>;
946*4882a593Smuzhiyun					interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
947*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
948*4882a593Smuzhiyun					clock-names = "usart";
949*4882a593Smuzhiyun					dmas = <&dma0
950*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
951*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
952*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(19))>,
953*4882a593Smuzhiyun					       <&dma0
954*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
955*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
956*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(20))>;
957*4882a593Smuzhiyun					dma-names = "tx", "rx";
958*4882a593Smuzhiyun					atmel,fifo-size = <32>;
959*4882a593Smuzhiyun					status = "disabled";
960*4882a593Smuzhiyun				};
961*4882a593Smuzhiyun
962*4882a593Smuzhiyun				spi6: spi@400 {
963*4882a593Smuzhiyun					compatible = "atmel,at91rm9200-spi";
964*4882a593Smuzhiyun					reg = <0x400 0x200>;
965*4882a593Smuzhiyun					interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
966*4882a593Smuzhiyun					#address-cells = <1>;
967*4882a593Smuzhiyun					#size-cells = <0>;
968*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
969*4882a593Smuzhiyun					clock-names = "spi_clk";
970*4882a593Smuzhiyun					dmas = <&dma0
971*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
972*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
973*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(19))>,
974*4882a593Smuzhiyun					       <&dma0
975*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
976*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
977*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(20))>;
978*4882a593Smuzhiyun					dma-names = "tx", "rx";
979*4882a593Smuzhiyun					atmel,fifo-size = <16>;
980*4882a593Smuzhiyun					status = "disabled";
981*4882a593Smuzhiyun				};
982*4882a593Smuzhiyun
983*4882a593Smuzhiyun				i2c6: i2c@600 {
984*4882a593Smuzhiyun					compatible = "atmel,sama5d2-i2c";
985*4882a593Smuzhiyun					reg = <0x600 0x200>;
986*4882a593Smuzhiyun					interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
987*4882a593Smuzhiyun					#address-cells = <1>;
988*4882a593Smuzhiyun					#size-cells = <0>;
989*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
990*4882a593Smuzhiyun					dmas = <&dma0
991*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
992*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
993*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(19))>,
994*4882a593Smuzhiyun					       <&dma0
995*4882a593Smuzhiyun						(AT91_XDMAC_DT_MEM_IF(0) |
996*4882a593Smuzhiyun						 AT91_XDMAC_DT_PER_IF(1) |
997*4882a593Smuzhiyun						 AT91_XDMAC_DT_PERID(20))>;
998*4882a593Smuzhiyun					dma-names = "tx", "rx";
999*4882a593Smuzhiyun					atmel,fifo-size = <16>;
1000*4882a593Smuzhiyun					status = "disabled";
1001*4882a593Smuzhiyun				};
1002*4882a593Smuzhiyun			};
1003*4882a593Smuzhiyun
1004*4882a593Smuzhiyun			trng@fc01c000 {
1005*4882a593Smuzhiyun				compatible = "atmel,at91sam9g45-trng";
1006*4882a593Smuzhiyun				reg = <0xfc01c000 0x100>;
1007*4882a593Smuzhiyun				interrupts = <47 IRQ_TYPE_LEVEL_HIGH 0>;
1008*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
1009*4882a593Smuzhiyun			};
1010*4882a593Smuzhiyun
1011*4882a593Smuzhiyun			aic: interrupt-controller@fc020000 {
1012*4882a593Smuzhiyun				#interrupt-cells = <3>;
1013*4882a593Smuzhiyun				compatible = "atmel,sama5d2-aic";
1014*4882a593Smuzhiyun				interrupt-controller;
1015*4882a593Smuzhiyun				reg = <0xfc020000 0x200>;
1016*4882a593Smuzhiyun				atmel,external-irqs = <49>;
1017*4882a593Smuzhiyun			};
1018*4882a593Smuzhiyun
1019*4882a593Smuzhiyun			i2c1: i2c@fc028000 {
1020*4882a593Smuzhiyun				compatible = "atmel,sama5d2-i2c";
1021*4882a593Smuzhiyun				reg = <0xfc028000 0x100>;
1022*4882a593Smuzhiyun				interrupts = <30 IRQ_TYPE_LEVEL_HIGH 7>;
1023*4882a593Smuzhiyun				dmas = <&dma0
1024*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1025*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(2))>,
1026*4882a593Smuzhiyun				       <&dma0
1027*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1028*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(3))>;
1029*4882a593Smuzhiyun				dma-names = "tx", "rx";
1030*4882a593Smuzhiyun				#address-cells = <1>;
1031*4882a593Smuzhiyun				#size-cells = <0>;
1032*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 30>;
1033*4882a593Smuzhiyun				atmel,fifo-size = <16>;
1034*4882a593Smuzhiyun				status = "disabled";
1035*4882a593Smuzhiyun			};
1036*4882a593Smuzhiyun
1037*4882a593Smuzhiyun			adc: adc@fc030000 {
1038*4882a593Smuzhiyun				compatible = "atmel,sama5d2-adc";
1039*4882a593Smuzhiyun				reg = <0xfc030000 0x100>;
1040*4882a593Smuzhiyun				interrupts = <40 IRQ_TYPE_LEVEL_HIGH 7>;
1041*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 40>;
1042*4882a593Smuzhiyun				clock-names = "adc_clk";
1043*4882a593Smuzhiyun				dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(25))>;
1044*4882a593Smuzhiyun				dma-names = "rx";
1045*4882a593Smuzhiyun				atmel,min-sample-rate-hz = <200000>;
1046*4882a593Smuzhiyun				atmel,max-sample-rate-hz = <20000000>;
1047*4882a593Smuzhiyun				atmel,startup-time-ms = <4>;
1048*4882a593Smuzhiyun				atmel,trigger-edge-type = <IRQ_TYPE_EDGE_RISING>;
1049*4882a593Smuzhiyun				#io-channel-cells = <1>;
1050*4882a593Smuzhiyun				status = "disabled";
1051*4882a593Smuzhiyun			};
1052*4882a593Smuzhiyun
1053*4882a593Smuzhiyun			resistive_touch: resistive-touch {
1054*4882a593Smuzhiyun				compatible = "resistive-adc-touch";
1055*4882a593Smuzhiyun				io-channels = <&adc AT91_SAMA5D2_ADC_X_CHANNEL>,
1056*4882a593Smuzhiyun					      <&adc AT91_SAMA5D2_ADC_Y_CHANNEL>,
1057*4882a593Smuzhiyun					      <&adc AT91_SAMA5D2_ADC_P_CHANNEL>;
1058*4882a593Smuzhiyun				io-channel-names = "x", "y", "pressure";
1059*4882a593Smuzhiyun				touchscreen-min-pressure = <50000>;
1060*4882a593Smuzhiyun				status = "disabled";
1061*4882a593Smuzhiyun			};
1062*4882a593Smuzhiyun
1063*4882a593Smuzhiyun			pioA: pinctrl@fc038000 {
1064*4882a593Smuzhiyun				compatible = "atmel,sama5d2-pinctrl";
1065*4882a593Smuzhiyun				reg = <0xfc038000 0x600>;
1066*4882a593Smuzhiyun				interrupts = <18 IRQ_TYPE_LEVEL_HIGH 7>,
1067*4882a593Smuzhiyun					     <68 IRQ_TYPE_LEVEL_HIGH 7>,
1068*4882a593Smuzhiyun					     <69 IRQ_TYPE_LEVEL_HIGH 7>,
1069*4882a593Smuzhiyun					     <70 IRQ_TYPE_LEVEL_HIGH 7>;
1070*4882a593Smuzhiyun				interrupt-controller;
1071*4882a593Smuzhiyun				#interrupt-cells = <2>;
1072*4882a593Smuzhiyun				gpio-controller;
1073*4882a593Smuzhiyun				#gpio-cells = <2>;
1074*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
1075*4882a593Smuzhiyun			};
1076*4882a593Smuzhiyun
1077*4882a593Smuzhiyun			pioBU: secumod@fc040000 {
1078*4882a593Smuzhiyun				compatible = "atmel,sama5d2-secumod", "syscon";
1079*4882a593Smuzhiyun				reg = <0xfc040000 0x100>;
1080*4882a593Smuzhiyun
1081*4882a593Smuzhiyun				gpio-controller;
1082*4882a593Smuzhiyun				#gpio-cells = <2>;
1083*4882a593Smuzhiyun			};
1084*4882a593Smuzhiyun
1085*4882a593Smuzhiyun			tdes@fc044000 {
1086*4882a593Smuzhiyun				compatible = "atmel,at91sam9g46-tdes";
1087*4882a593Smuzhiyun				reg = <0xfc044000 0x100>;
1088*4882a593Smuzhiyun				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
1089*4882a593Smuzhiyun				dmas = <&dma0
1090*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1091*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(28))>,
1092*4882a593Smuzhiyun				       <&dma0
1093*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1094*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(29))>;
1095*4882a593Smuzhiyun				dma-names = "tx", "rx";
1096*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
1097*4882a593Smuzhiyun				clock-names = "tdes_clk";
1098*4882a593Smuzhiyun				status = "okay";
1099*4882a593Smuzhiyun			};
1100*4882a593Smuzhiyun
1101*4882a593Smuzhiyun			classd: classd@fc048000 {
1102*4882a593Smuzhiyun				compatible = "atmel,sama5d2-classd";
1103*4882a593Smuzhiyun				reg = <0xfc048000 0x100>;
1104*4882a593Smuzhiyun				interrupts = <59 IRQ_TYPE_LEVEL_HIGH 7>;
1105*4882a593Smuzhiyun				dmas = <&dma0
1106*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1107*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(47))>;
1108*4882a593Smuzhiyun				dma-names = "tx";
1109*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 59>, <&pmc PMC_TYPE_GCK 59>;
1110*4882a593Smuzhiyun				clock-names = "pclk", "gclk";
1111*4882a593Smuzhiyun				status = "disabled";
1112*4882a593Smuzhiyun			};
1113*4882a593Smuzhiyun
1114*4882a593Smuzhiyun			i2s1: i2s@fc04c000 {
1115*4882a593Smuzhiyun				compatible = "atmel,sama5d2-i2s";
1116*4882a593Smuzhiyun				reg = <0xfc04c000 0x100>;
1117*4882a593Smuzhiyun				interrupts = <55 IRQ_TYPE_LEVEL_HIGH 7>;
1118*4882a593Smuzhiyun				dmas = <&dma0
1119*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1120*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(33))>,
1121*4882a593Smuzhiyun				       <&dma0
1122*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1123*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(34))>;
1124*4882a593Smuzhiyun				dma-names = "tx", "rx";
1125*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 55>, <&pmc PMC_TYPE_GCK 55>;
1126*4882a593Smuzhiyun				clock-names = "pclk", "gclk";
1127*4882a593Smuzhiyun				assigned-clocks = <&pmc PMC_TYPE_CORE PMC_I2S1_MUX>;
1128*4882a593Smuzhiyun				assigned-clock-parents = <&pmc PMC_TYPE_GCK 55>;
1129*4882a593Smuzhiyun				status = "disabled";
1130*4882a593Smuzhiyun			};
1131*4882a593Smuzhiyun
1132*4882a593Smuzhiyun			can1: can@fc050000 {
1133*4882a593Smuzhiyun				compatible = "bosch,m_can";
1134*4882a593Smuzhiyun				reg = <0xfc050000 0x4000>, <0x210000 0x3800>;
1135*4882a593Smuzhiyun				reg-names = "m_can", "message_ram";
1136*4882a593Smuzhiyun				interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>,
1137*4882a593Smuzhiyun					     <65 IRQ_TYPE_LEVEL_HIGH 7>;
1138*4882a593Smuzhiyun				interrupt-names = "int0", "int1";
1139*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 57>, <&pmc PMC_TYPE_GCK 57>;
1140*4882a593Smuzhiyun				clock-names = "hclk", "cclk";
1141*4882a593Smuzhiyun				assigned-clocks = <&pmc PMC_TYPE_GCK 57>;
1142*4882a593Smuzhiyun				assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>;
1143*4882a593Smuzhiyun				assigned-clock-rates = <40000000>;
1144*4882a593Smuzhiyun				bosch,mram-cfg = <0x1c00 0 0 64 0 0 32 32>;
1145*4882a593Smuzhiyun				status = "disabled";
1146*4882a593Smuzhiyun			};
1147*4882a593Smuzhiyun
1148*4882a593Smuzhiyun			sfrbu: sfr@fc05c000 {
1149*4882a593Smuzhiyun				compatible = "atmel,sama5d2-sfrbu", "syscon";
1150*4882a593Smuzhiyun				reg = <0xfc05c000 0x20>;
1151*4882a593Smuzhiyun			};
1152*4882a593Smuzhiyun
1153*4882a593Smuzhiyun			chipid@fc069000 {
1154*4882a593Smuzhiyun				compatible = "atmel,sama5d2-chipid";
1155*4882a593Smuzhiyun				reg = <0xfc069000 0x8>;
1156*4882a593Smuzhiyun			};
1157*4882a593Smuzhiyun		};
1158*4882a593Smuzhiyun	};
1159*4882a593Smuzhiyun};
1160