xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/lpc32xx.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0+
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * NXP LPC32xx SoC
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (C) 2015-2019 Vladimir Zapolskiy <vz@mleia.com>
6*4882a593Smuzhiyun * Copyright 2012 Roland Stigge <stigge@antcom.de>
7*4882a593Smuzhiyun */
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include <dt-bindings/clock/lpc32xx-clock.h>
10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/ {
13*4882a593Smuzhiyun	#address-cells = <1>;
14*4882a593Smuzhiyun	#size-cells = <1>;
15*4882a593Smuzhiyun	compatible = "nxp,lpc3220";
16*4882a593Smuzhiyun	interrupt-parent = <&mic>;
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	cpus {
19*4882a593Smuzhiyun		#address-cells = <1>;
20*4882a593Smuzhiyun		#size-cells = <0>;
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun		cpu@0 {
23*4882a593Smuzhiyun			compatible = "arm,arm926ej-s";
24*4882a593Smuzhiyun			device_type = "cpu";
25*4882a593Smuzhiyun			reg = <0x0>;
26*4882a593Smuzhiyun		};
27*4882a593Smuzhiyun	};
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun	clocks {
30*4882a593Smuzhiyun		xtal_32k: xtal_32k {
31*4882a593Smuzhiyun			compatible = "fixed-clock";
32*4882a593Smuzhiyun			#clock-cells = <0>;
33*4882a593Smuzhiyun			clock-frequency = <32768>;
34*4882a593Smuzhiyun			clock-output-names = "xtal_32k";
35*4882a593Smuzhiyun		};
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun		xtal: xtal {
38*4882a593Smuzhiyun			compatible = "fixed-clock";
39*4882a593Smuzhiyun			#clock-cells = <0>;
40*4882a593Smuzhiyun			clock-frequency = <13000000>;
41*4882a593Smuzhiyun			clock-output-names = "xtal";
42*4882a593Smuzhiyun		};
43*4882a593Smuzhiyun	};
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun	ahb {
46*4882a593Smuzhiyun		#address-cells = <1>;
47*4882a593Smuzhiyun		#size-cells = <1>;
48*4882a593Smuzhiyun		compatible = "simple-bus";
49*4882a593Smuzhiyun		ranges = <0x00000000 0x00000000 0x10000000>,
50*4882a593Smuzhiyun			 <0x20000000 0x20000000 0x30000000>,
51*4882a593Smuzhiyun			 <0xe0000000 0xe0000000 0x04000000>;
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun		iram: sram@8000000 {
54*4882a593Smuzhiyun			compatible = "mmio-sram";
55*4882a593Smuzhiyun			reg = <0x08000000 0x20000>;
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun			#address-cells = <1>;
58*4882a593Smuzhiyun			#size-cells = <1>;
59*4882a593Smuzhiyun			ranges = <0x00000000 0x08000000 0x20000>;
60*4882a593Smuzhiyun		};
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun		/*
63*4882a593Smuzhiyun		 * Enable either SLC or MLC
64*4882a593Smuzhiyun		 */
65*4882a593Smuzhiyun		slc: flash@20020000 {
66*4882a593Smuzhiyun			compatible = "nxp,lpc3220-slc";
67*4882a593Smuzhiyun			reg = <0x20020000 0x1000>;
68*4882a593Smuzhiyun			clocks = <&clk LPC32XX_CLK_SLC>;
69*4882a593Smuzhiyun			status = "disabled";
70*4882a593Smuzhiyun		};
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun		mlc: flash@200a8000 {
73*4882a593Smuzhiyun			compatible = "nxp,lpc3220-mlc";
74*4882a593Smuzhiyun			reg = <0x200a8000 0x11000>;
75*4882a593Smuzhiyun			interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
76*4882a593Smuzhiyun			clocks = <&clk LPC32XX_CLK_MLC>;
77*4882a593Smuzhiyun			status = "disabled";
78*4882a593Smuzhiyun		};
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun		dma: dma@31000000 {
81*4882a593Smuzhiyun			compatible = "arm,pl080", "arm,primecell";
82*4882a593Smuzhiyun			reg = <0x31000000 0x1000>;
83*4882a593Smuzhiyun			interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
84*4882a593Smuzhiyun			clocks = <&clk LPC32XX_CLK_DMA>;
85*4882a593Smuzhiyun			clock-names = "apb_pclk";
86*4882a593Smuzhiyun		};
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun		usb {
89*4882a593Smuzhiyun			#address-cells = <1>;
90*4882a593Smuzhiyun			#size-cells = <1>;
91*4882a593Smuzhiyun			compatible = "simple-bus";
92*4882a593Smuzhiyun			ranges = <0x0 0x31020000 0x00001000>;
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun			/*
95*4882a593Smuzhiyun			 * Enable either ohci or usbd (gadget)!
96*4882a593Smuzhiyun			 */
97*4882a593Smuzhiyun			ohci: ohci@0 {
98*4882a593Smuzhiyun				compatible = "nxp,ohci-nxp", "usb-ohci";
99*4882a593Smuzhiyun				reg = <0x0 0x300>;
100*4882a593Smuzhiyun				interrupt-parent = <&sic1>;
101*4882a593Smuzhiyun				interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
102*4882a593Smuzhiyun				clocks = <&usbclk LPC32XX_USB_CLK_HOST>;
103*4882a593Smuzhiyun				status = "disabled";
104*4882a593Smuzhiyun			};
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun			usbd: usbd@0 {
107*4882a593Smuzhiyun				compatible = "nxp,lpc3220-udc";
108*4882a593Smuzhiyun				reg = <0x0 0x300>;
109*4882a593Smuzhiyun				interrupt-parent = <&sic1>;
110*4882a593Smuzhiyun				interrupts = <29 IRQ_TYPE_LEVEL_HIGH>,
111*4882a593Smuzhiyun					     <30 IRQ_TYPE_LEVEL_HIGH>,
112*4882a593Smuzhiyun					     <28 IRQ_TYPE_LEVEL_HIGH>,
113*4882a593Smuzhiyun					     <26 IRQ_TYPE_LEVEL_LOW>;
114*4882a593Smuzhiyun				clocks = <&usbclk LPC32XX_USB_CLK_DEVICE>;
115*4882a593Smuzhiyun				status = "disabled";
116*4882a593Smuzhiyun			};
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun			i2cusb: i2c@300 {
119*4882a593Smuzhiyun				compatible = "nxp,pnx-i2c";
120*4882a593Smuzhiyun				reg = <0x300 0x100>;
121*4882a593Smuzhiyun				interrupt-parent = <&sic1>;
122*4882a593Smuzhiyun				interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;
123*4882a593Smuzhiyun				clocks = <&usbclk LPC32XX_USB_CLK_I2C>;
124*4882a593Smuzhiyun				#address-cells = <1>;
125*4882a593Smuzhiyun				#size-cells = <0>;
126*4882a593Smuzhiyun				pnx,timeout = <0x64>;
127*4882a593Smuzhiyun			};
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun			usbclk: clock-controller@f00 {
130*4882a593Smuzhiyun				compatible = "nxp,lpc3220-usb-clk";
131*4882a593Smuzhiyun				reg = <0xf00 0x100>;
132*4882a593Smuzhiyun				#clock-cells = <1>;
133*4882a593Smuzhiyun			};
134*4882a593Smuzhiyun		};
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun		clcd: clcd@31040000 {
137*4882a593Smuzhiyun			compatible = "arm,pl111", "arm,primecell";
138*4882a593Smuzhiyun			reg = <0x31040000 0x1000>;
139*4882a593Smuzhiyun			interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
140*4882a593Smuzhiyun			clocks = <&clk LPC32XX_CLK_LCD>, <&clk LPC32XX_CLK_LCD>;
141*4882a593Smuzhiyun			clock-names = "clcdclk", "apb_pclk";
142*4882a593Smuzhiyun			status = "disabled";
143*4882a593Smuzhiyun		};
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun		mac: ethernet@31060000 {
146*4882a593Smuzhiyun			compatible = "nxp,lpc-eth";
147*4882a593Smuzhiyun			reg = <0x31060000 0x1000>;
148*4882a593Smuzhiyun			interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;
149*4882a593Smuzhiyun			clocks = <&clk LPC32XX_CLK_MAC>;
150*4882a593Smuzhiyun			status = "disabled";
151*4882a593Smuzhiyun		};
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun		emc: memory-controller@31080000 {
154*4882a593Smuzhiyun			compatible = "arm,pl175", "arm,primecell";
155*4882a593Smuzhiyun			reg = <0x31080000 0x1000>;
156*4882a593Smuzhiyun			clocks = <&clk LPC32XX_CLK_DDRAM>, <&clk LPC32XX_CLK_DDRAM>;
157*4882a593Smuzhiyun			clock-names = "mpmcclk", "apb_pclk";
158*4882a593Smuzhiyun			#address-cells = <1>;
159*4882a593Smuzhiyun			#size-cells = <1>;
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun			ranges = <0 0xe0000000 0x01000000>,
162*4882a593Smuzhiyun				 <1 0xe1000000 0x01000000>,
163*4882a593Smuzhiyun				 <2 0xe2000000 0x01000000>,
164*4882a593Smuzhiyun				 <3 0xe3000000 0x01000000>;
165*4882a593Smuzhiyun			status = "disabled";
166*4882a593Smuzhiyun		};
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun		apb {
169*4882a593Smuzhiyun			#address-cells = <1>;
170*4882a593Smuzhiyun			#size-cells = <1>;
171*4882a593Smuzhiyun			compatible = "simple-bus";
172*4882a593Smuzhiyun			ranges = <0x20000000 0x20000000 0x30000000>;
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun			/*
175*4882a593Smuzhiyun			 * ssp0 and spi1 are shared pins;
176*4882a593Smuzhiyun			 * enable one in your board dts, as needed.
177*4882a593Smuzhiyun			 */
178*4882a593Smuzhiyun			ssp0: spi@20084000 {
179*4882a593Smuzhiyun				compatible = "arm,pl022", "arm,primecell";
180*4882a593Smuzhiyun				reg = <0x20084000 0x1000>;
181*4882a593Smuzhiyun				interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
182*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_SSP0>;
183*4882a593Smuzhiyun				clock-names = "apb_pclk";
184*4882a593Smuzhiyun				#address-cells = <1>;
185*4882a593Smuzhiyun				#size-cells = <0>;
186*4882a593Smuzhiyun				status = "disabled";
187*4882a593Smuzhiyun			};
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun			spi1: spi@20088000 {
190*4882a593Smuzhiyun				compatible = "nxp,lpc3220-spi";
191*4882a593Smuzhiyun				reg = <0x20088000 0x1000>;
192*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_SPI1>;
193*4882a593Smuzhiyun				#address-cells = <1>;
194*4882a593Smuzhiyun				#size-cells = <0>;
195*4882a593Smuzhiyun				status = "disabled";
196*4882a593Smuzhiyun			};
197*4882a593Smuzhiyun
198*4882a593Smuzhiyun			/*
199*4882a593Smuzhiyun			 * ssp1 and spi2 are shared pins;
200*4882a593Smuzhiyun			 * enable one in your board dts, as needed.
201*4882a593Smuzhiyun			 */
202*4882a593Smuzhiyun			ssp1: spi@2008c000 {
203*4882a593Smuzhiyun				compatible = "arm,pl022", "arm,primecell";
204*4882a593Smuzhiyun				reg = <0x2008c000 0x1000>;
205*4882a593Smuzhiyun				interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
206*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_SSP1>;
207*4882a593Smuzhiyun				clock-names = "apb_pclk";
208*4882a593Smuzhiyun				#address-cells = <1>;
209*4882a593Smuzhiyun				#size-cells = <0>;
210*4882a593Smuzhiyun				status = "disabled";
211*4882a593Smuzhiyun			};
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun			spi2: spi@20090000 {
214*4882a593Smuzhiyun				compatible = "nxp,lpc3220-spi";
215*4882a593Smuzhiyun				reg = <0x20090000 0x1000>;
216*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_SPI2>;
217*4882a593Smuzhiyun				#address-cells = <1>;
218*4882a593Smuzhiyun				#size-cells = <0>;
219*4882a593Smuzhiyun				status = "disabled";
220*4882a593Smuzhiyun			};
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun			i2s0: i2s@20094000 {
223*4882a593Smuzhiyun				compatible = "nxp,lpc3220-i2s";
224*4882a593Smuzhiyun				reg = <0x20094000 0x1000>;
225*4882a593Smuzhiyun				status = "disabled";
226*4882a593Smuzhiyun			};
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun			sd: sd@20098000 {
229*4882a593Smuzhiyun				compatible = "arm,pl18x", "arm,primecell";
230*4882a593Smuzhiyun				reg = <0x20098000 0x1000>;
231*4882a593Smuzhiyun				interrupts = <15 IRQ_TYPE_LEVEL_HIGH>,
232*4882a593Smuzhiyun					     <13 IRQ_TYPE_LEVEL_HIGH>;
233*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_SD>;
234*4882a593Smuzhiyun				clock-names = "apb_pclk";
235*4882a593Smuzhiyun				status = "disabled";
236*4882a593Smuzhiyun			};
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun			i2s1: i2s@2009c000 {
239*4882a593Smuzhiyun				compatible = "nxp,lpc3220-i2s";
240*4882a593Smuzhiyun				reg = <0x2009c000 0x1000>;
241*4882a593Smuzhiyun				status = "disabled";
242*4882a593Smuzhiyun			};
243*4882a593Smuzhiyun
244*4882a593Smuzhiyun			/* UART5 first since it is the default console, ttyS0 */
245*4882a593Smuzhiyun			uart5: serial@40090000 {
246*4882a593Smuzhiyun				/* actually, ns16550a w/ 64 byte fifos! */
247*4882a593Smuzhiyun				compatible = "nxp,lpc3220-uart";
248*4882a593Smuzhiyun				reg = <0x40090000 0x1000>;
249*4882a593Smuzhiyun				interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
250*4882a593Smuzhiyun				reg-shift = <2>;
251*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_UART5>;
252*4882a593Smuzhiyun				status = "disabled";
253*4882a593Smuzhiyun			};
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun			uart3: serial@40080000 {
256*4882a593Smuzhiyun				compatible = "nxp,lpc3220-uart";
257*4882a593Smuzhiyun				reg = <0x40080000 0x1000>;
258*4882a593Smuzhiyun				interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
259*4882a593Smuzhiyun				reg-shift = <2>;
260*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_UART3>;
261*4882a593Smuzhiyun				status = "disabled";
262*4882a593Smuzhiyun			};
263*4882a593Smuzhiyun
264*4882a593Smuzhiyun			uart4: serial@40088000 {
265*4882a593Smuzhiyun				compatible = "nxp,lpc3220-uart";
266*4882a593Smuzhiyun				reg = <0x40088000 0x1000>;
267*4882a593Smuzhiyun				interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
268*4882a593Smuzhiyun				reg-shift = <2>;
269*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_UART4>;
270*4882a593Smuzhiyun				status = "disabled";
271*4882a593Smuzhiyun			};
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun			uart6: serial@40098000 {
274*4882a593Smuzhiyun				compatible = "nxp,lpc3220-uart";
275*4882a593Smuzhiyun				reg = <0x40098000 0x1000>;
276*4882a593Smuzhiyun				interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
277*4882a593Smuzhiyun				reg-shift = <2>;
278*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_UART6>;
279*4882a593Smuzhiyun				status = "disabled";
280*4882a593Smuzhiyun			};
281*4882a593Smuzhiyun
282*4882a593Smuzhiyun			i2c1: i2c@400a0000 {
283*4882a593Smuzhiyun				compatible = "nxp,pnx-i2c";
284*4882a593Smuzhiyun				reg = <0x400a0000 0x100>;
285*4882a593Smuzhiyun				interrupt-parent = <&sic1>;
286*4882a593Smuzhiyun				interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
287*4882a593Smuzhiyun				#address-cells = <1>;
288*4882a593Smuzhiyun				#size-cells = <0>;
289*4882a593Smuzhiyun				pnx,timeout = <0x64>;
290*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_I2C1>;
291*4882a593Smuzhiyun			};
292*4882a593Smuzhiyun
293*4882a593Smuzhiyun			i2c2: i2c@400a8000 {
294*4882a593Smuzhiyun				compatible = "nxp,pnx-i2c";
295*4882a593Smuzhiyun				reg = <0x400a8000 0x100>;
296*4882a593Smuzhiyun				interrupt-parent = <&sic1>;
297*4882a593Smuzhiyun				interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
298*4882a593Smuzhiyun				#address-cells = <1>;
299*4882a593Smuzhiyun				#size-cells = <0>;
300*4882a593Smuzhiyun				pnx,timeout = <0x64>;
301*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_I2C2>;
302*4882a593Smuzhiyun			};
303*4882a593Smuzhiyun
304*4882a593Smuzhiyun			mpwm: mpwm@400e8000 {
305*4882a593Smuzhiyun				compatible = "nxp,lpc3220-motor-pwm";
306*4882a593Smuzhiyun				reg = <0x400e8000 0x78>;
307*4882a593Smuzhiyun				status = "disabled";
308*4882a593Smuzhiyun				#pwm-cells = <2>;
309*4882a593Smuzhiyun			};
310*4882a593Smuzhiyun		};
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun		fab {
313*4882a593Smuzhiyun			#address-cells = <1>;
314*4882a593Smuzhiyun			#size-cells = <1>;
315*4882a593Smuzhiyun			compatible = "simple-bus";
316*4882a593Smuzhiyun			ranges = <0x20000000 0x20000000 0x30000000>;
317*4882a593Smuzhiyun
318*4882a593Smuzhiyun			/* System Control Block */
319*4882a593Smuzhiyun			scb {
320*4882a593Smuzhiyun				compatible = "simple-bus";
321*4882a593Smuzhiyun				ranges = <0x0 0x040004000 0x00001000>;
322*4882a593Smuzhiyun				#address-cells = <1>;
323*4882a593Smuzhiyun				#size-cells = <1>;
324*4882a593Smuzhiyun
325*4882a593Smuzhiyun				clk: clock-controller@0 {
326*4882a593Smuzhiyun					compatible = "nxp,lpc3220-clk";
327*4882a593Smuzhiyun					reg = <0x00 0x114>;
328*4882a593Smuzhiyun					#clock-cells = <1>;
329*4882a593Smuzhiyun
330*4882a593Smuzhiyun					clocks = <&xtal_32k>, <&xtal>;
331*4882a593Smuzhiyun					clock-names = "xtal_32k", "xtal";
332*4882a593Smuzhiyun				};
333*4882a593Smuzhiyun			};
334*4882a593Smuzhiyun
335*4882a593Smuzhiyun			mic: interrupt-controller@40008000 {
336*4882a593Smuzhiyun				compatible = "nxp,lpc3220-mic";
337*4882a593Smuzhiyun				reg = <0x40008000 0x4000>;
338*4882a593Smuzhiyun				interrupt-controller;
339*4882a593Smuzhiyun				#interrupt-cells = <2>;
340*4882a593Smuzhiyun			};
341*4882a593Smuzhiyun
342*4882a593Smuzhiyun			sic1: interrupt-controller@4000c000 {
343*4882a593Smuzhiyun				compatible = "nxp,lpc3220-sic";
344*4882a593Smuzhiyun				reg = <0x4000c000 0x4000>;
345*4882a593Smuzhiyun				interrupt-controller;
346*4882a593Smuzhiyun				#interrupt-cells = <2>;
347*4882a593Smuzhiyun
348*4882a593Smuzhiyun				interrupt-parent = <&mic>;
349*4882a593Smuzhiyun				interrupts = <0 IRQ_TYPE_LEVEL_LOW>,
350*4882a593Smuzhiyun					     <30 IRQ_TYPE_LEVEL_LOW>;
351*4882a593Smuzhiyun				};
352*4882a593Smuzhiyun
353*4882a593Smuzhiyun			sic2: interrupt-controller@40010000 {
354*4882a593Smuzhiyun				compatible = "nxp,lpc3220-sic";
355*4882a593Smuzhiyun				reg = <0x40010000 0x4000>;
356*4882a593Smuzhiyun				interrupt-controller;
357*4882a593Smuzhiyun				#interrupt-cells = <2>;
358*4882a593Smuzhiyun
359*4882a593Smuzhiyun				interrupt-parent = <&mic>;
360*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_LOW>,
361*4882a593Smuzhiyun					     <31 IRQ_TYPE_LEVEL_LOW>;
362*4882a593Smuzhiyun			};
363*4882a593Smuzhiyun
364*4882a593Smuzhiyun			uart1: serial@40014000 {
365*4882a593Smuzhiyun				compatible = "nxp,lpc3220-hsuart";
366*4882a593Smuzhiyun				reg = <0x40014000 0x1000>;
367*4882a593Smuzhiyun				interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
368*4882a593Smuzhiyun				status = "disabled";
369*4882a593Smuzhiyun			};
370*4882a593Smuzhiyun
371*4882a593Smuzhiyun			uart2: serial@40018000 {
372*4882a593Smuzhiyun				compatible = "nxp,lpc3220-hsuart";
373*4882a593Smuzhiyun				reg = <0x40018000 0x1000>;
374*4882a593Smuzhiyun				interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
375*4882a593Smuzhiyun				status = "disabled";
376*4882a593Smuzhiyun			};
377*4882a593Smuzhiyun
378*4882a593Smuzhiyun			uart7: serial@4001c000 {
379*4882a593Smuzhiyun				compatible = "nxp,lpc3220-hsuart";
380*4882a593Smuzhiyun				reg = <0x4001c000 0x1000>;
381*4882a593Smuzhiyun				interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
382*4882a593Smuzhiyun				status = "disabled";
383*4882a593Smuzhiyun			};
384*4882a593Smuzhiyun
385*4882a593Smuzhiyun			rtc: rtc@40024000 {
386*4882a593Smuzhiyun				compatible = "nxp,lpc3220-rtc";
387*4882a593Smuzhiyun				reg = <0x40024000 0x1000>;
388*4882a593Smuzhiyun				interrupt-parent = <&sic1>;
389*4882a593Smuzhiyun				interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
390*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_RTC>;
391*4882a593Smuzhiyun			};
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun			gpio: gpio@40028000 {
394*4882a593Smuzhiyun				compatible = "nxp,lpc3220-gpio";
395*4882a593Smuzhiyun				reg = <0x40028000 0x1000>;
396*4882a593Smuzhiyun				gpio-controller;
397*4882a593Smuzhiyun				#gpio-cells = <3>; /* bank, pin, flags */
398*4882a593Smuzhiyun			};
399*4882a593Smuzhiyun
400*4882a593Smuzhiyun			timer4: timer@4002c000 {
401*4882a593Smuzhiyun				compatible = "nxp,lpc3220-timer";
402*4882a593Smuzhiyun				reg = <0x4002c000 0x1000>;
403*4882a593Smuzhiyun				interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
404*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_TIMER4>;
405*4882a593Smuzhiyun				clock-names = "timerclk";
406*4882a593Smuzhiyun				status = "disabled";
407*4882a593Smuzhiyun			};
408*4882a593Smuzhiyun
409*4882a593Smuzhiyun			timer5: timer@40030000 {
410*4882a593Smuzhiyun				compatible = "nxp,lpc3220-timer";
411*4882a593Smuzhiyun				reg = <0x40030000 0x1000>;
412*4882a593Smuzhiyun				interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
413*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_TIMER5>;
414*4882a593Smuzhiyun				clock-names = "timerclk";
415*4882a593Smuzhiyun				status = "disabled";
416*4882a593Smuzhiyun			};
417*4882a593Smuzhiyun
418*4882a593Smuzhiyun			watchdog: watchdog@4003c000 {
419*4882a593Smuzhiyun				compatible = "nxp,pnx4008-wdt";
420*4882a593Smuzhiyun				reg = <0x4003c000 0x1000>;
421*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_WDOG>;
422*4882a593Smuzhiyun			};
423*4882a593Smuzhiyun
424*4882a593Smuzhiyun			timer0: timer@40044000 {
425*4882a593Smuzhiyun				compatible = "nxp,lpc3220-timer";
426*4882a593Smuzhiyun				reg = <0x40044000 0x1000>;
427*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_TIMER0>;
428*4882a593Smuzhiyun				clock-names = "timerclk";
429*4882a593Smuzhiyun				interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
430*4882a593Smuzhiyun			};
431*4882a593Smuzhiyun
432*4882a593Smuzhiyun			/*
433*4882a593Smuzhiyun			 * TSC vs. ADC: Since those two share the same
434*4882a593Smuzhiyun			 * hardware, you need to choose from one of the
435*4882a593Smuzhiyun			 * following two and do 'status = "okay";' for one of
436*4882a593Smuzhiyun			 * them
437*4882a593Smuzhiyun			 */
438*4882a593Smuzhiyun
439*4882a593Smuzhiyun			adc: adc@40048000 {
440*4882a593Smuzhiyun				compatible = "nxp,lpc3220-adc";
441*4882a593Smuzhiyun				reg = <0x40048000 0x1000>;
442*4882a593Smuzhiyun				interrupt-parent = <&sic1>;
443*4882a593Smuzhiyun				interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
444*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_ADC>;
445*4882a593Smuzhiyun				status = "disabled";
446*4882a593Smuzhiyun			};
447*4882a593Smuzhiyun
448*4882a593Smuzhiyun			tsc: tsc@40048000 {
449*4882a593Smuzhiyun				compatible = "nxp,lpc3220-tsc";
450*4882a593Smuzhiyun				reg = <0x40048000 0x1000>;
451*4882a593Smuzhiyun				interrupt-parent = <&sic1>;
452*4882a593Smuzhiyun				interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
453*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_ADC>;
454*4882a593Smuzhiyun				status = "disabled";
455*4882a593Smuzhiyun			};
456*4882a593Smuzhiyun
457*4882a593Smuzhiyun			timer1: timer@4004c000 {
458*4882a593Smuzhiyun				compatible = "nxp,lpc3220-timer";
459*4882a593Smuzhiyun				reg = <0x4004c000 0x1000>;
460*4882a593Smuzhiyun				interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
461*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_TIMER1>;
462*4882a593Smuzhiyun				clock-names = "timerclk";
463*4882a593Smuzhiyun			};
464*4882a593Smuzhiyun
465*4882a593Smuzhiyun			key: key@40050000 {
466*4882a593Smuzhiyun				compatible = "nxp,lpc3220-key";
467*4882a593Smuzhiyun				reg = <0x40050000 0x1000>;
468*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_KEY>;
469*4882a593Smuzhiyun				interrupt-parent = <&sic1>;
470*4882a593Smuzhiyun				interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
471*4882a593Smuzhiyun				status = "disabled";
472*4882a593Smuzhiyun			};
473*4882a593Smuzhiyun
474*4882a593Smuzhiyun			timer2: timer@40058000 {
475*4882a593Smuzhiyun				compatible = "nxp,lpc3220-timer";
476*4882a593Smuzhiyun				reg = <0x40058000 0x1000>;
477*4882a593Smuzhiyun				interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
478*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_TIMER2>;
479*4882a593Smuzhiyun				clock-names = "timerclk";
480*4882a593Smuzhiyun				status = "disabled";
481*4882a593Smuzhiyun			};
482*4882a593Smuzhiyun
483*4882a593Smuzhiyun			pwm1: pwm@4005c000 {
484*4882a593Smuzhiyun				compatible = "nxp,lpc3220-pwm";
485*4882a593Smuzhiyun				reg = <0x4005c000 0x4>;
486*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_PWM1>;
487*4882a593Smuzhiyun				assigned-clocks = <&clk LPC32XX_CLK_PWM1>;
488*4882a593Smuzhiyun				assigned-clock-parents = <&clk LPC32XX_CLK_PERIPH>;
489*4882a593Smuzhiyun				status = "disabled";
490*4882a593Smuzhiyun			};
491*4882a593Smuzhiyun
492*4882a593Smuzhiyun			pwm2: pwm@4005c004 {
493*4882a593Smuzhiyun				compatible = "nxp,lpc3220-pwm";
494*4882a593Smuzhiyun				reg = <0x4005c004 0x4>;
495*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_PWM2>;
496*4882a593Smuzhiyun				assigned-clocks = <&clk LPC32XX_CLK_PWM2>;
497*4882a593Smuzhiyun				assigned-clock-parents = <&clk LPC32XX_CLK_PERIPH>;
498*4882a593Smuzhiyun				status = "disabled";
499*4882a593Smuzhiyun			};
500*4882a593Smuzhiyun
501*4882a593Smuzhiyun			timer3: timer@40060000 {
502*4882a593Smuzhiyun				compatible = "nxp,lpc3220-timer";
503*4882a593Smuzhiyun				reg = <0x40060000 0x1000>;
504*4882a593Smuzhiyun				interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
505*4882a593Smuzhiyun				clocks = <&clk LPC32XX_CLK_TIMER3>;
506*4882a593Smuzhiyun				clock-names = "timerclk";
507*4882a593Smuzhiyun				status = "disabled";
508*4882a593Smuzhiyun			};
509*4882a593Smuzhiyun		};
510*4882a593Smuzhiyun	};
511*4882a593Smuzhiyun};
512