xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/sam9x60.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * sam9x60.dtsi - Device Tree Include file for Microchip SAM9X60 SoC
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
6*4882a593Smuzhiyun *
7*4882a593Smuzhiyun * Author: Sandeep Sheriker M <sandeepsheriker.mallikarjun@microchip.com>
8*4882a593Smuzhiyun */
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun#include <dt-bindings/dma/at91.h>
11*4882a593Smuzhiyun#include <dt-bindings/pinctrl/at91.h>
12*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
13*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
14*4882a593Smuzhiyun#include <dt-bindings/clock/at91.h>
15*4882a593Smuzhiyun#include <dt-bindings/mfd/atmel-flexcom.h>
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun/ {
18*4882a593Smuzhiyun	#address-cells = <1>;
19*4882a593Smuzhiyun	#size-cells = <1>;
20*4882a593Smuzhiyun	model = "Microchip SAM9X60 SoC";
21*4882a593Smuzhiyun	compatible = "microchip,sam9x60";
22*4882a593Smuzhiyun	interrupt-parent = <&aic>;
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun	aliases {
25*4882a593Smuzhiyun		serial0 = &dbgu;
26*4882a593Smuzhiyun		gpio0 = &pioA;
27*4882a593Smuzhiyun		gpio1 = &pioB;
28*4882a593Smuzhiyun		gpio2 = &pioC;
29*4882a593Smuzhiyun		gpio3 = &pioD;
30*4882a593Smuzhiyun		tcb0 = &tcb0;
31*4882a593Smuzhiyun		tcb1 = &tcb1;
32*4882a593Smuzhiyun	};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	cpus {
35*4882a593Smuzhiyun		#address-cells = <1>;
36*4882a593Smuzhiyun		#size-cells = <0>;
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun		cpu@0 {
39*4882a593Smuzhiyun			compatible = "arm,arm926ej-s";
40*4882a593Smuzhiyun			device_type = "cpu";
41*4882a593Smuzhiyun			reg = <0>;
42*4882a593Smuzhiyun		};
43*4882a593Smuzhiyun	};
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun	memory@20000000 {
46*4882a593Smuzhiyun		device_type = "memory";
47*4882a593Smuzhiyun		reg = <0x20000000 0x10000000>;
48*4882a593Smuzhiyun	};
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun	clocks {
51*4882a593Smuzhiyun		slow_xtal: slow_xtal {
52*4882a593Smuzhiyun			compatible = "fixed-clock";
53*4882a593Smuzhiyun			#clock-cells = <0>;
54*4882a593Smuzhiyun		};
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun		main_xtal: main_xtal {
57*4882a593Smuzhiyun			compatible = "fixed-clock";
58*4882a593Smuzhiyun			#clock-cells = <0>;
59*4882a593Smuzhiyun		};
60*4882a593Smuzhiyun	};
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun	sram: sram@300000 {
63*4882a593Smuzhiyun		compatible = "mmio-sram";
64*4882a593Smuzhiyun		reg = <0x00300000 0x100000>;
65*4882a593Smuzhiyun		#address-cells = <1>;
66*4882a593Smuzhiyun		#size-cells = <1>;
67*4882a593Smuzhiyun		ranges = <0 0x00300000 0x100000>;
68*4882a593Smuzhiyun	};
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun	ahb {
71*4882a593Smuzhiyun		compatible = "simple-bus";
72*4882a593Smuzhiyun		#address-cells = <1>;
73*4882a593Smuzhiyun		#size-cells = <1>;
74*4882a593Smuzhiyun		ranges;
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun		usb0: gadget@500000 {
77*4882a593Smuzhiyun			#address-cells = <1>;
78*4882a593Smuzhiyun			#size-cells = <0>;
79*4882a593Smuzhiyun			compatible = "microchip,sam9x60-udc";
80*4882a593Smuzhiyun			reg = <0x00500000 0x100000
81*4882a593Smuzhiyun				0xf803c000 0x400>;
82*4882a593Smuzhiyun			interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
83*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
84*4882a593Smuzhiyun			clock-names = "pclk", "hclk";
85*4882a593Smuzhiyun			assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
86*4882a593Smuzhiyun			assigned-clock-rates = <480000000>;
87*4882a593Smuzhiyun			status = "disabled";
88*4882a593Smuzhiyun		};
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun		usb1: ohci@600000 {
91*4882a593Smuzhiyun			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
92*4882a593Smuzhiyun			reg = <0x00600000 0x100000>;
93*4882a593Smuzhiyun			interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
94*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_SYSTEM 6>;
95*4882a593Smuzhiyun			clock-names = "ohci_clk", "hclk", "uhpck";
96*4882a593Smuzhiyun			status = "disabled";
97*4882a593Smuzhiyun		};
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun		usb2: ehci@700000 {
100*4882a593Smuzhiyun			compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
101*4882a593Smuzhiyun			reg = <0x00700000 0x100000>;
102*4882a593Smuzhiyun			interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
103*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 22>;
104*4882a593Smuzhiyun			clock-names = "usb_clk", "ehci_clk";
105*4882a593Smuzhiyun			assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
106*4882a593Smuzhiyun			assigned-clock-rates = <480000000>;
107*4882a593Smuzhiyun			status = "disabled";
108*4882a593Smuzhiyun		};
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun		ebi: ebi@10000000 {
111*4882a593Smuzhiyun			compatible = "microchip,sam9x60-ebi";
112*4882a593Smuzhiyun			#address-cells = <2>;
113*4882a593Smuzhiyun			#size-cells = <1>;
114*4882a593Smuzhiyun			atmel,smc = <&smc>;
115*4882a593Smuzhiyun			microchip,sfr = <&sfr>;
116*4882a593Smuzhiyun			reg = <0x10000000 0x60000000>;
117*4882a593Smuzhiyun			ranges = <0x0 0x0 0x10000000 0x10000000
118*4882a593Smuzhiyun				  0x1 0x0 0x20000000 0x10000000
119*4882a593Smuzhiyun				  0x2 0x0 0x30000000 0x10000000
120*4882a593Smuzhiyun				  0x3 0x0 0x40000000 0x10000000
121*4882a593Smuzhiyun				  0x4 0x0 0x50000000 0x10000000
122*4882a593Smuzhiyun				  0x5 0x0 0x60000000 0x10000000>;
123*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
124*4882a593Smuzhiyun			status = "disabled";
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun			nand_controller: nand-controller {
127*4882a593Smuzhiyun				compatible = "microchip,sam9x60-nand-controller";
128*4882a593Smuzhiyun				ecc-engine = <&pmecc>;
129*4882a593Smuzhiyun				#address-cells = <2>;
130*4882a593Smuzhiyun				#size-cells = <1>;
131*4882a593Smuzhiyun				ranges;
132*4882a593Smuzhiyun				status = "disabled";
133*4882a593Smuzhiyun			};
134*4882a593Smuzhiyun		};
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun		sdmmc0: sdio-host@80000000 {
137*4882a593Smuzhiyun			compatible = "microchip,sam9x60-sdhci";
138*4882a593Smuzhiyun			reg = <0x80000000 0x300>;
139*4882a593Smuzhiyun			interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
140*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_PERIPHERAL 12>, <&pmc PMC_TYPE_GCK 12>;
141*4882a593Smuzhiyun			clock-names = "hclock", "multclk";
142*4882a593Smuzhiyun			assigned-clocks = <&pmc PMC_TYPE_GCK 12>;
143*4882a593Smuzhiyun			assigned-clock-rates = <100000000>;
144*4882a593Smuzhiyun			status = "disabled";
145*4882a593Smuzhiyun		};
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun		sdmmc1: sdio-host@90000000 {
148*4882a593Smuzhiyun			compatible = "microchip,sam9x60-sdhci";
149*4882a593Smuzhiyun			reg = <0x90000000 0x300>;
150*4882a593Smuzhiyun			interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
151*4882a593Smuzhiyun			clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&pmc PMC_TYPE_GCK 26>;
152*4882a593Smuzhiyun			clock-names = "hclock", "multclk";
153*4882a593Smuzhiyun			assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
154*4882a593Smuzhiyun			assigned-clock-rates = <100000000>;
155*4882a593Smuzhiyun			status = "disabled";
156*4882a593Smuzhiyun		};
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun		apb {
159*4882a593Smuzhiyun			compatible = "simple-bus";
160*4882a593Smuzhiyun			#address-cells = <1>;
161*4882a593Smuzhiyun			#size-cells = <1>;
162*4882a593Smuzhiyun			ranges;
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun			flx4: flexcom@f0000000 {
165*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
166*4882a593Smuzhiyun				reg = <0xf0000000 0x200>;
167*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
168*4882a593Smuzhiyun				#address-cells = <1>;
169*4882a593Smuzhiyun				#size-cells = <1>;
170*4882a593Smuzhiyun				ranges = <0x0 0xf0000000 0x800>;
171*4882a593Smuzhiyun				status = "disabled";
172*4882a593Smuzhiyun			};
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun			flx5: flexcom@f0004000 {
175*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
176*4882a593Smuzhiyun				reg = <0xf0004000 0x200>;
177*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
178*4882a593Smuzhiyun				#address-cells = <1>;
179*4882a593Smuzhiyun				#size-cells = <1>;
180*4882a593Smuzhiyun				ranges = <0x0 0xf0004000 0x800>;
181*4882a593Smuzhiyun				status = "disabled";
182*4882a593Smuzhiyun			};
183*4882a593Smuzhiyun
184*4882a593Smuzhiyun			dma0: dma-controller@f0008000 {
185*4882a593Smuzhiyun				compatible = "microchip,sam9x60-dma", "atmel,sama5d4-dma";
186*4882a593Smuzhiyun				reg = <0xf0008000 0x1000>;
187*4882a593Smuzhiyun				interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
188*4882a593Smuzhiyun				#dma-cells = <1>;
189*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
190*4882a593Smuzhiyun				clock-names = "dma_clk";
191*4882a593Smuzhiyun			};
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun			ssc: ssc@f0010000 {
194*4882a593Smuzhiyun				compatible = "atmel,at91sam9g45-ssc";
195*4882a593Smuzhiyun				reg = <0xf0010000 0x4000>;
196*4882a593Smuzhiyun				interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
197*4882a593Smuzhiyun				dmas = <&dma0
198*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
199*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(38))>,
200*4882a593Smuzhiyun				       <&dma0
201*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
202*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(39))>;
203*4882a593Smuzhiyun				dma-names = "tx", "rx";
204*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
205*4882a593Smuzhiyun				clock-names = "pclk";
206*4882a593Smuzhiyun				status = "disabled";
207*4882a593Smuzhiyun			};
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun			qspi: spi@f0014000 {
210*4882a593Smuzhiyun				compatible = "microchip,sam9x60-qspi";
211*4882a593Smuzhiyun				reg = <0xf0014000 0x100>, <0x70000000 0x10000000>;
212*4882a593Smuzhiyun				reg-names = "qspi_base", "qspi_mmap";
213*4882a593Smuzhiyun				interrupts = <35 IRQ_TYPE_LEVEL_HIGH 7>;
214*4882a593Smuzhiyun				dmas = <&dma0
215*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
216*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(26))>,
217*4882a593Smuzhiyun				       <&dma0
218*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
219*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(27))>;
220*4882a593Smuzhiyun				dma-names = "tx", "rx";
221*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 35>, <&pmc PMC_TYPE_SYSTEM 19>;
222*4882a593Smuzhiyun				clock-names = "pclk", "qspick";
223*4882a593Smuzhiyun				atmel,pmc = <&pmc>;
224*4882a593Smuzhiyun				#address-cells = <1>;
225*4882a593Smuzhiyun				#size-cells = <0>;
226*4882a593Smuzhiyun				status = "disabled";
227*4882a593Smuzhiyun			};
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun			i2s: i2s@f001c000 {
230*4882a593Smuzhiyun				compatible = "microchip,sam9x60-i2smcc";
231*4882a593Smuzhiyun				reg = <0xf001c000 0x100>;
232*4882a593Smuzhiyun				interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>;
233*4882a593Smuzhiyun				dmas = <&dma0
234*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
235*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(36))>,
236*4882a593Smuzhiyun				       <&dma0
237*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
238*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(37))>;
239*4882a593Smuzhiyun				dma-names = "tx", "rx";
240*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 34>, <&pmc PMC_TYPE_GCK 34>;
241*4882a593Smuzhiyun				clock-names = "pclk", "gclk";
242*4882a593Smuzhiyun				status = "disabled";
243*4882a593Smuzhiyun			};
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun			flx11: flexcom@f0020000 {
246*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
247*4882a593Smuzhiyun				reg = <0xf0020000 0x200>;
248*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
249*4882a593Smuzhiyun				#address-cells = <1>;
250*4882a593Smuzhiyun				#size-cells = <1>;
251*4882a593Smuzhiyun				ranges = <0x0 0xf0020000 0x800>;
252*4882a593Smuzhiyun				status = "disabled";
253*4882a593Smuzhiyun			};
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun			flx12: flexcom@f0024000 {
256*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
257*4882a593Smuzhiyun				reg = <0xf0024000 0x200>;
258*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
259*4882a593Smuzhiyun				#address-cells = <1>;
260*4882a593Smuzhiyun				#size-cells = <1>;
261*4882a593Smuzhiyun				ranges = <0x0 0xf0024000 0x800>;
262*4882a593Smuzhiyun				status = "disabled";
263*4882a593Smuzhiyun			};
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun			pit64b: timer@f0028000 {
266*4882a593Smuzhiyun				compatible = "microchip,sam9x60-pit64b";
267*4882a593Smuzhiyun				reg = <0xf0028000 0x100>;
268*4882a593Smuzhiyun				interrupts = <37 IRQ_TYPE_LEVEL_HIGH 7>;
269*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 37>, <&pmc PMC_TYPE_GCK 37>;
270*4882a593Smuzhiyun				clock-names = "pclk", "gclk";
271*4882a593Smuzhiyun			};
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun			sha: sha@f002c000 {
274*4882a593Smuzhiyun				compatible = "atmel,at91sam9g46-sha";
275*4882a593Smuzhiyun				reg = <0xf002c000 0x100>;
276*4882a593Smuzhiyun				interrupts = <41 IRQ_TYPE_LEVEL_HIGH 0>;
277*4882a593Smuzhiyun				dmas = <&dma0
278*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
279*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(34))>;
280*4882a593Smuzhiyun				dma-names = "tx";
281*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
282*4882a593Smuzhiyun				clock-names = "sha_clk";
283*4882a593Smuzhiyun				status = "okay";
284*4882a593Smuzhiyun			};
285*4882a593Smuzhiyun
286*4882a593Smuzhiyun			trng: trng@f0030000 {
287*4882a593Smuzhiyun				compatible = "microchip,sam9x60-trng";
288*4882a593Smuzhiyun				reg = <0xf0030000 0x100>;
289*4882a593Smuzhiyun				interrupts = <38 IRQ_TYPE_LEVEL_HIGH 0>;
290*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
291*4882a593Smuzhiyun				status = "okay";
292*4882a593Smuzhiyun			};
293*4882a593Smuzhiyun
294*4882a593Smuzhiyun			aes: aes@f0034000 {
295*4882a593Smuzhiyun				compatible = "atmel,at91sam9g46-aes";
296*4882a593Smuzhiyun				reg = <0xf0034000 0x100>;
297*4882a593Smuzhiyun				interrupts = <39 IRQ_TYPE_LEVEL_HIGH 0>;
298*4882a593Smuzhiyun				dmas = <&dma0
299*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
300*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(32))>,
301*4882a593Smuzhiyun				       <&dma0
302*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
303*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(33))>;
304*4882a593Smuzhiyun				dma-names = "tx", "rx";
305*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
306*4882a593Smuzhiyun				clock-names = "aes_clk";
307*4882a593Smuzhiyun				status = "okay";
308*4882a593Smuzhiyun			};
309*4882a593Smuzhiyun
310*4882a593Smuzhiyun			tdes: tdes@f0038000 {
311*4882a593Smuzhiyun				compatible = "atmel,at91sam9g46-tdes";
312*4882a593Smuzhiyun				reg = <0xf0038000 0x100>;
313*4882a593Smuzhiyun				interrupts = <40 IRQ_TYPE_LEVEL_HIGH 0>;
314*4882a593Smuzhiyun				dmas = <&dma0
315*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
316*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(31))>,
317*4882a593Smuzhiyun				       <&dma0
318*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
319*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(30))>;
320*4882a593Smuzhiyun				dma-names = "tx", "rx";
321*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 40>;
322*4882a593Smuzhiyun				clock-names = "tdes_clk";
323*4882a593Smuzhiyun				status = "okay";
324*4882a593Smuzhiyun			};
325*4882a593Smuzhiyun
326*4882a593Smuzhiyun			classd: classd@f003c000 {
327*4882a593Smuzhiyun				compatible = "atmel,sama5d2-classd";
328*4882a593Smuzhiyun				reg = <0xf003c000 0x100>;
329*4882a593Smuzhiyun				interrupts = <42 IRQ_TYPE_LEVEL_HIGH 7>;
330*4882a593Smuzhiyun				dmas = <&dma0
331*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
332*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(35))>;
333*4882a593Smuzhiyun				dma-names = "tx";
334*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 42>, <&pmc PMC_TYPE_GCK 42>;
335*4882a593Smuzhiyun				clock-names = "pclk", "gclk";
336*4882a593Smuzhiyun				status = "disabled";
337*4882a593Smuzhiyun			};
338*4882a593Smuzhiyun
339*4882a593Smuzhiyun			can0: can@f8000000 {
340*4882a593Smuzhiyun				compatible = "microchip,sam9x60-can", "atmel,at91sam9x5-can";
341*4882a593Smuzhiyun				reg = <0xf8000000 0x300>;
342*4882a593Smuzhiyun				interrupts = <29 IRQ_TYPE_LEVEL_HIGH 3>;
343*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 29>;
344*4882a593Smuzhiyun				clock-names = "can_clk";
345*4882a593Smuzhiyun				status = "disabled";
346*4882a593Smuzhiyun			};
347*4882a593Smuzhiyun
348*4882a593Smuzhiyun			can1: can@f8004000 {
349*4882a593Smuzhiyun				compatible = "microchip,sam9x60-can", "atmel,at91sam9x5-can";
350*4882a593Smuzhiyun				reg = <0xf8004000 0x300>;
351*4882a593Smuzhiyun				interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
352*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 30>;
353*4882a593Smuzhiyun				clock-names = "can_clk";
354*4882a593Smuzhiyun				status = "disabled";
355*4882a593Smuzhiyun			};
356*4882a593Smuzhiyun
357*4882a593Smuzhiyun			tcb0: timer@f8008000 {
358*4882a593Smuzhiyun				compatible = "microchip,sam9x60-tcb", "atmel,at91sam9x5-tcb", "simple-mfd", "syscon";
359*4882a593Smuzhiyun				#address-cells = <1>;
360*4882a593Smuzhiyun				#size-cells = <0>;
361*4882a593Smuzhiyun				reg = <0xf8008000 0x100>;
362*4882a593Smuzhiyun				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
363*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&clk32k 0>;
364*4882a593Smuzhiyun				clock-names = "t0_clk", "slow_clk";
365*4882a593Smuzhiyun			};
366*4882a593Smuzhiyun
367*4882a593Smuzhiyun			tcb1: timer@f800c000 {
368*4882a593Smuzhiyun				compatible = "microchip,sam9x60-tcb", "atmel,at91sam9x5-tcb", "simple-mfd", "syscon";
369*4882a593Smuzhiyun				#address-cells = <1>;
370*4882a593Smuzhiyun				#size-cells = <0>;
371*4882a593Smuzhiyun				reg = <0xf800c000 0x100>;
372*4882a593Smuzhiyun				interrupts = <45 IRQ_TYPE_LEVEL_HIGH 0>;
373*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 45>, <&clk32k 0>;
374*4882a593Smuzhiyun				clock-names = "t0_clk", "slow_clk";
375*4882a593Smuzhiyun			};
376*4882a593Smuzhiyun
377*4882a593Smuzhiyun			flx6: flexcom@f8010000 {
378*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
379*4882a593Smuzhiyun				reg = <0xf8010000 0x200>;
380*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
381*4882a593Smuzhiyun				#address-cells = <1>;
382*4882a593Smuzhiyun				#size-cells = <1>;
383*4882a593Smuzhiyun				ranges = <0x0 0xf8010000 0x800>;
384*4882a593Smuzhiyun				status = "disabled";
385*4882a593Smuzhiyun			};
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun			flx7: flexcom@f8014000 {
388*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
389*4882a593Smuzhiyun				reg = <0xf8014000 0x200>;
390*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
391*4882a593Smuzhiyun				#address-cells = <1>;
392*4882a593Smuzhiyun				#size-cells = <1>;
393*4882a593Smuzhiyun				ranges = <0x0 0xf8014000 0x800>;
394*4882a593Smuzhiyun				status = "disabled";
395*4882a593Smuzhiyun			};
396*4882a593Smuzhiyun
397*4882a593Smuzhiyun			flx8: flexcom@f8018000 {
398*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
399*4882a593Smuzhiyun				reg = <0xf8018000 0x200>;
400*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
401*4882a593Smuzhiyun				#address-cells = <1>;
402*4882a593Smuzhiyun				#size-cells = <1>;
403*4882a593Smuzhiyun				ranges = <0x0 0xf8018000 0x800>;
404*4882a593Smuzhiyun				status = "disabled";
405*4882a593Smuzhiyun			};
406*4882a593Smuzhiyun
407*4882a593Smuzhiyun			flx0: flexcom@f801c000 {
408*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
409*4882a593Smuzhiyun				reg = <0xf801c000 0x200>;
410*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
411*4882a593Smuzhiyun				#address-cells = <1>;
412*4882a593Smuzhiyun				#size-cells = <1>;
413*4882a593Smuzhiyun				ranges = <0x0 0xf801c000 0x800>;
414*4882a593Smuzhiyun				status = "disabled";
415*4882a593Smuzhiyun			};
416*4882a593Smuzhiyun
417*4882a593Smuzhiyun			flx1: flexcom@f8020000 {
418*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
419*4882a593Smuzhiyun				reg = <0xf8020000 0x200>;
420*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
421*4882a593Smuzhiyun				#address-cells = <1>;
422*4882a593Smuzhiyun				#size-cells = <1>;
423*4882a593Smuzhiyun				ranges = <0x0 0xf8020000 0x800>;
424*4882a593Smuzhiyun				status = "disabled";
425*4882a593Smuzhiyun			};
426*4882a593Smuzhiyun
427*4882a593Smuzhiyun			flx2: flexcom@f8024000 {
428*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
429*4882a593Smuzhiyun				reg = <0xf8024000 0x200>;
430*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
431*4882a593Smuzhiyun				#address-cells = <1>;
432*4882a593Smuzhiyun				#size-cells = <1>;
433*4882a593Smuzhiyun				ranges = <0x0 0xf8024000 0x800>;
434*4882a593Smuzhiyun				status = "disabled";
435*4882a593Smuzhiyun			};
436*4882a593Smuzhiyun
437*4882a593Smuzhiyun			flx3: flexcom@f8028000 {
438*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
439*4882a593Smuzhiyun				reg = <0xf8028000 0x200>;
440*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
441*4882a593Smuzhiyun				#address-cells = <1>;
442*4882a593Smuzhiyun				#size-cells = <1>;
443*4882a593Smuzhiyun				ranges = <0x0 0xf8028000 0x800>;
444*4882a593Smuzhiyun				status = "disabled";
445*4882a593Smuzhiyun			};
446*4882a593Smuzhiyun
447*4882a593Smuzhiyun			macb0: ethernet@f802c000 {
448*4882a593Smuzhiyun				compatible = "cdns,sam9x60-macb", "cdns,macb";
449*4882a593Smuzhiyun				reg = <0xf802c000 0x1000>;
450*4882a593Smuzhiyun				interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>;
451*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_PERIPHERAL 24>;
452*4882a593Smuzhiyun				clock-names = "hclk", "pclk";
453*4882a593Smuzhiyun				status = "disabled";
454*4882a593Smuzhiyun			};
455*4882a593Smuzhiyun
456*4882a593Smuzhiyun			macb1: ethernet@f8030000 {
457*4882a593Smuzhiyun				compatible = "cdns,sam9x60-macb", "cdns,macb";
458*4882a593Smuzhiyun				reg = <0xf8030000 0x1000>;
459*4882a593Smuzhiyun				interrupts = <27 IRQ_TYPE_LEVEL_HIGH 3>;
460*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 27>, <&pmc PMC_TYPE_PERIPHERAL 27>;
461*4882a593Smuzhiyun				clock-names = "hclk", "pclk";
462*4882a593Smuzhiyun				status = "disabled";
463*4882a593Smuzhiyun			};
464*4882a593Smuzhiyun
465*4882a593Smuzhiyun			pwm0: pwm@f8034000 {
466*4882a593Smuzhiyun				compatible = "microchip,sam9x60-pwm";
467*4882a593Smuzhiyun				reg = <0xf8034000 0x300>;
468*4882a593Smuzhiyun				interrupts = <18 IRQ_TYPE_LEVEL_HIGH 4>;
469*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
470*4882a593Smuzhiyun				#pwm-cells = <3>;
471*4882a593Smuzhiyun				status="disabled";
472*4882a593Smuzhiyun			};
473*4882a593Smuzhiyun
474*4882a593Smuzhiyun			hlcdc: hlcdc@f8038000 {
475*4882a593Smuzhiyun				compatible = "microchip,sam9x60-hlcdc";
476*4882a593Smuzhiyun				reg = <0xf8038000 0x4000>;
477*4882a593Smuzhiyun				interrupts = <25 IRQ_TYPE_LEVEL_HIGH 0>;
478*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 25>, <&pmc PMC_TYPE_GCK 25>, <&clk32k 1>;
479*4882a593Smuzhiyun				clock-names = "periph_clk","sys_clk", "slow_clk";
480*4882a593Smuzhiyun				assigned-clocks = <&pmc PMC_TYPE_GCK 25>;
481*4882a593Smuzhiyun				assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_MCK>;
482*4882a593Smuzhiyun				status = "disabled";
483*4882a593Smuzhiyun
484*4882a593Smuzhiyun				hlcdc-display-controller {
485*4882a593Smuzhiyun					compatible = "atmel,hlcdc-display-controller";
486*4882a593Smuzhiyun					#address-cells = <1>;
487*4882a593Smuzhiyun					#size-cells = <0>;
488*4882a593Smuzhiyun
489*4882a593Smuzhiyun					port@0 {
490*4882a593Smuzhiyun						#address-cells = <1>;
491*4882a593Smuzhiyun						#size-cells = <0>;
492*4882a593Smuzhiyun						reg = <0>;
493*4882a593Smuzhiyun					};
494*4882a593Smuzhiyun				};
495*4882a593Smuzhiyun
496*4882a593Smuzhiyun				hlcdc_pwm: hlcdc-pwm {
497*4882a593Smuzhiyun					compatible = "atmel,hlcdc-pwm";
498*4882a593Smuzhiyun					#pwm-cells = <3>;
499*4882a593Smuzhiyun				};
500*4882a593Smuzhiyun			};
501*4882a593Smuzhiyun
502*4882a593Smuzhiyun			flx9: flexcom@f8040000 {
503*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
504*4882a593Smuzhiyun				reg = <0xf8040000 0x200>;
505*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
506*4882a593Smuzhiyun				#address-cells = <1>;
507*4882a593Smuzhiyun				#size-cells = <1>;
508*4882a593Smuzhiyun				ranges = <0x0 0xf8040000 0x800>;
509*4882a593Smuzhiyun				status = "disabled";
510*4882a593Smuzhiyun			};
511*4882a593Smuzhiyun
512*4882a593Smuzhiyun			flx10: flexcom@f8044000 {
513*4882a593Smuzhiyun				compatible = "atmel,sama5d2-flexcom";
514*4882a593Smuzhiyun				reg = <0xf8044000 0x200>;
515*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
516*4882a593Smuzhiyun				#address-cells = <1>;
517*4882a593Smuzhiyun				#size-cells = <1>;
518*4882a593Smuzhiyun				ranges = <0x0 0xf8044000 0x800>;
519*4882a593Smuzhiyun				status = "disabled";
520*4882a593Smuzhiyun			};
521*4882a593Smuzhiyun
522*4882a593Smuzhiyun			isi: isi@f8048000 {
523*4882a593Smuzhiyun				compatible = "microchip,sam9x60-isi", "atmel,at91sam9g45-isi";
524*4882a593Smuzhiyun				reg = <0xf8048000 0x100>;
525*4882a593Smuzhiyun				interrupts = <43 IRQ_TYPE_LEVEL_HIGH 5>;
526*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 43>;
527*4882a593Smuzhiyun				clock-names = "isi_clk";
528*4882a593Smuzhiyun				status = "disabled";
529*4882a593Smuzhiyun				port {
530*4882a593Smuzhiyun					#address-cells = <1>;
531*4882a593Smuzhiyun					#size-cells = <0>;
532*4882a593Smuzhiyun				};
533*4882a593Smuzhiyun			};
534*4882a593Smuzhiyun
535*4882a593Smuzhiyun			adc: adc@f804c000 {
536*4882a593Smuzhiyun				compatible = "microchip,sam9x60-adc", "atmel,sama5d2-adc";
537*4882a593Smuzhiyun				reg = <0xf804c000 0x100>;
538*4882a593Smuzhiyun				interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
539*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
540*4882a593Smuzhiyun				clock-names = "adc_clk";
541*4882a593Smuzhiyun				dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(40))>;
542*4882a593Smuzhiyun				dma-names = "rx";
543*4882a593Smuzhiyun				atmel,min-sample-rate-hz = <200000>;
544*4882a593Smuzhiyun				atmel,max-sample-rate-hz = <20000000>;
545*4882a593Smuzhiyun				atmel,startup-time-ms = <4>;
546*4882a593Smuzhiyun				atmel,trigger-edge-type = <IRQ_TYPE_EDGE_RISING>;
547*4882a593Smuzhiyun				#io-channel-cells = <1>;
548*4882a593Smuzhiyun				status = "disabled";
549*4882a593Smuzhiyun			};
550*4882a593Smuzhiyun
551*4882a593Smuzhiyun			sfr: sfr@f8050000 {
552*4882a593Smuzhiyun				compatible = "microchip,sam9x60-sfr", "syscon";
553*4882a593Smuzhiyun				reg = <0xf8050000 0x100>;
554*4882a593Smuzhiyun			};
555*4882a593Smuzhiyun
556*4882a593Smuzhiyun			matrix: matrix@ffffde00 {
557*4882a593Smuzhiyun				compatible = "microchip,sam9x60-matrix", "atmel,at91sam9x5-matrix", "syscon";
558*4882a593Smuzhiyun				reg = <0xffffde00 0x200>;
559*4882a593Smuzhiyun			};
560*4882a593Smuzhiyun
561*4882a593Smuzhiyun			pmecc: ecc-engine@ffffe000 {
562*4882a593Smuzhiyun				compatible = "microchip,sam9x60-pmecc", "atmel,at91sam9g45-pmecc";
563*4882a593Smuzhiyun				reg = <0xffffe000 0x300>,
564*4882a593Smuzhiyun				      <0xffffe600 0x100>;
565*4882a593Smuzhiyun			};
566*4882a593Smuzhiyun
567*4882a593Smuzhiyun			mpddrc: mpddrc@ffffe800 {
568*4882a593Smuzhiyun				compatible = "microchip,sam9x60-ddramc", "atmel,sama5d3-ddramc";
569*4882a593Smuzhiyun				reg = <0xffffe800 0x200>;
570*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_SYSTEM 2>, <&pmc PMC_TYPE_CORE PMC_MCK>;
571*4882a593Smuzhiyun				clock-names = "ddrck", "mpddr";
572*4882a593Smuzhiyun			};
573*4882a593Smuzhiyun
574*4882a593Smuzhiyun			smc: smc@ffffea00 {
575*4882a593Smuzhiyun				compatible = "microchip,sam9x60-smc", "atmel,at91sam9260-smc", "syscon";
576*4882a593Smuzhiyun				reg = <0xffffea00 0x100>;
577*4882a593Smuzhiyun			};
578*4882a593Smuzhiyun
579*4882a593Smuzhiyun			aic: interrupt-controller@fffff100 {
580*4882a593Smuzhiyun				compatible = "microchip,sam9x60-aic";
581*4882a593Smuzhiyun				#interrupt-cells = <3>;
582*4882a593Smuzhiyun				interrupt-controller;
583*4882a593Smuzhiyun				reg = <0xfffff100 0x100>;
584*4882a593Smuzhiyun				atmel,external-irqs = <31>;
585*4882a593Smuzhiyun			};
586*4882a593Smuzhiyun
587*4882a593Smuzhiyun			dbgu: serial@fffff200 {
588*4882a593Smuzhiyun				compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
589*4882a593Smuzhiyun				reg = <0xfffff200 0x200>;
590*4882a593Smuzhiyun				interrupts = <47 IRQ_TYPE_LEVEL_HIGH 7>;
591*4882a593Smuzhiyun				dmas = <&dma0
592*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
593*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(28))>,
594*4882a593Smuzhiyun				       <&dma0
595*4882a593Smuzhiyun					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
596*4882a593Smuzhiyun					 AT91_XDMAC_DT_PERID(29))>;
597*4882a593Smuzhiyun				dma-names = "tx", "rx";
598*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
599*4882a593Smuzhiyun				clock-names = "usart";
600*4882a593Smuzhiyun				status = "disabled";
601*4882a593Smuzhiyun			};
602*4882a593Smuzhiyun
603*4882a593Smuzhiyun			pinctrl: pinctrl@fffff400 {
604*4882a593Smuzhiyun				#address-cells = <1>;
605*4882a593Smuzhiyun				#size-cells = <1>;
606*4882a593Smuzhiyun				compatible = "microchip,sam9x60-pinctrl", "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
607*4882a593Smuzhiyun				ranges = <0xfffff400 0xfffff400 0x800>;
608*4882a593Smuzhiyun
609*4882a593Smuzhiyun				/* mux-mask corresponding to sam9x60 SoC in TFBGA228L package */
610*4882a593Smuzhiyun				atmel,mux-mask = <
611*4882a593Smuzhiyun						 /*	A	B	C	*/
612*4882a593Smuzhiyun						 0xffffffff 0xffe03fff 0xef00019d	/* pioA */
613*4882a593Smuzhiyun						 0x03ffffff 0x02fc7e7f 0x00780000	/* pioB */
614*4882a593Smuzhiyun						 0xffffffff 0xffffffff 0xf83fffff	/* pioC */
615*4882a593Smuzhiyun						 0x003fffff 0x003f8000 0x00000000	/* pioD */
616*4882a593Smuzhiyun						 >;
617*4882a593Smuzhiyun
618*4882a593Smuzhiyun				pioA: gpio@fffff400 {
619*4882a593Smuzhiyun					compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
620*4882a593Smuzhiyun					reg = <0xfffff400 0x200>;
621*4882a593Smuzhiyun					interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
622*4882a593Smuzhiyun					#gpio-cells = <2>;
623*4882a593Smuzhiyun					gpio-controller;
624*4882a593Smuzhiyun					interrupt-controller;
625*4882a593Smuzhiyun					#interrupt-cells = <2>;
626*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
627*4882a593Smuzhiyun				};
628*4882a593Smuzhiyun
629*4882a593Smuzhiyun				pioB: gpio@fffff600 {
630*4882a593Smuzhiyun					compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
631*4882a593Smuzhiyun					reg = <0xfffff600 0x200>;
632*4882a593Smuzhiyun					interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
633*4882a593Smuzhiyun					#gpio-cells = <2>;
634*4882a593Smuzhiyun					gpio-controller;
635*4882a593Smuzhiyun					#gpio-lines = <26>;
636*4882a593Smuzhiyun					interrupt-controller;
637*4882a593Smuzhiyun					#interrupt-cells = <2>;
638*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
639*4882a593Smuzhiyun				};
640*4882a593Smuzhiyun
641*4882a593Smuzhiyun				pioC: gpio@fffff800 {
642*4882a593Smuzhiyun					compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
643*4882a593Smuzhiyun					reg = <0xfffff800 0x200>;
644*4882a593Smuzhiyun					interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
645*4882a593Smuzhiyun					#gpio-cells = <2>;
646*4882a593Smuzhiyun					gpio-controller;
647*4882a593Smuzhiyun					interrupt-controller;
648*4882a593Smuzhiyun					#interrupt-cells = <2>;
649*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
650*4882a593Smuzhiyun				};
651*4882a593Smuzhiyun
652*4882a593Smuzhiyun				pioD: gpio@fffffa00 {
653*4882a593Smuzhiyun					compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
654*4882a593Smuzhiyun					reg = <0xfffffa00 0x200>;
655*4882a593Smuzhiyun					interrupts = <44 IRQ_TYPE_LEVEL_HIGH 1>;
656*4882a593Smuzhiyun					#gpio-cells = <2>;
657*4882a593Smuzhiyun					gpio-controller;
658*4882a593Smuzhiyun					#gpio-lines = <22>;
659*4882a593Smuzhiyun					interrupt-controller;
660*4882a593Smuzhiyun					#interrupt-cells = <2>;
661*4882a593Smuzhiyun					clocks = <&pmc PMC_TYPE_PERIPHERAL 44>;
662*4882a593Smuzhiyun				};
663*4882a593Smuzhiyun			};
664*4882a593Smuzhiyun
665*4882a593Smuzhiyun			pmc: pmc@fffffc00 {
666*4882a593Smuzhiyun				compatible = "microchip,sam9x60-pmc", "syscon";
667*4882a593Smuzhiyun				reg = <0xfffffc00 0x200>;
668*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
669*4882a593Smuzhiyun				#clock-cells = <2>;
670*4882a593Smuzhiyun				clocks = <&clk32k 1>, <&clk32k 0>, <&main_xtal>;
671*4882a593Smuzhiyun				clock-names = "td_slck", "md_slck", "main_xtal";
672*4882a593Smuzhiyun			};
673*4882a593Smuzhiyun
674*4882a593Smuzhiyun			reset_controller: rstc@fffffe00 {
675*4882a593Smuzhiyun				compatible = "microchip,sam9x60-rstc";
676*4882a593Smuzhiyun				reg = <0xfffffe00 0x10>;
677*4882a593Smuzhiyun				clocks = <&clk32k 0>;
678*4882a593Smuzhiyun			};
679*4882a593Smuzhiyun
680*4882a593Smuzhiyun			shutdown_controller: shdwc@fffffe10 {
681*4882a593Smuzhiyun				compatible = "microchip,sam9x60-shdwc";
682*4882a593Smuzhiyun				reg = <0xfffffe10 0x10>;
683*4882a593Smuzhiyun				clocks = <&clk32k 0>;
684*4882a593Smuzhiyun				#address-cells = <1>;
685*4882a593Smuzhiyun				#size-cells = <0>;
686*4882a593Smuzhiyun				atmel,wakeup-rtc-timer;
687*4882a593Smuzhiyun				atmel,wakeup-rtt-timer;
688*4882a593Smuzhiyun				status = "disabled";
689*4882a593Smuzhiyun			};
690*4882a593Smuzhiyun
691*4882a593Smuzhiyun			rtt: rtt@fffffe20 {
692*4882a593Smuzhiyun				compatible = "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
693*4882a593Smuzhiyun				reg = <0xfffffe20 0x20>;
694*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
695*4882a593Smuzhiyun				clocks = <&clk32k 0>;
696*4882a593Smuzhiyun			};
697*4882a593Smuzhiyun
698*4882a593Smuzhiyun			pit: timer@fffffe40 {
699*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-pit";
700*4882a593Smuzhiyun				reg = <0xfffffe40 0x10>;
701*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
702*4882a593Smuzhiyun				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
703*4882a593Smuzhiyun			};
704*4882a593Smuzhiyun
705*4882a593Smuzhiyun			clk32k: sckc@fffffe50 {
706*4882a593Smuzhiyun				compatible = "microchip,sam9x60-sckc";
707*4882a593Smuzhiyun				reg = <0xfffffe50 0x4>;
708*4882a593Smuzhiyun				clocks = <&slow_xtal>;
709*4882a593Smuzhiyun				#clock-cells = <1>;
710*4882a593Smuzhiyun			};
711*4882a593Smuzhiyun
712*4882a593Smuzhiyun			gpbr: syscon@fffffe60 {
713*4882a593Smuzhiyun				compatible = "microchip,sam9x60-gpbr", "atmel,at91sam9260-gpbr", "syscon";
714*4882a593Smuzhiyun				reg = <0xfffffe60 0x10>;
715*4882a593Smuzhiyun			};
716*4882a593Smuzhiyun
717*4882a593Smuzhiyun			rtc: rtc@fffffea8 {
718*4882a593Smuzhiyun				compatible = "microchip,sam9x60-rtc", "atmel,at91sam9x5-rtc";
719*4882a593Smuzhiyun				reg = <0xfffffea8 0x100>;
720*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
721*4882a593Smuzhiyun				clocks = <&clk32k 0>;
722*4882a593Smuzhiyun			};
723*4882a593Smuzhiyun
724*4882a593Smuzhiyun			watchdog: watchdog@ffffff80 {
725*4882a593Smuzhiyun				compatible = "microchip,sam9x60-wdt";
726*4882a593Smuzhiyun				reg = <0xffffff80 0x24>;
727*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
728*4882a593Smuzhiyun				clocks = <&clk32k 0>;
729*4882a593Smuzhiyun				status = "disabled";
730*4882a593Smuzhiyun			};
731*4882a593Smuzhiyun		};
732*4882a593Smuzhiyun	};
733*4882a593Smuzhiyun};
734