xref: /freebsd-src/sys/contrib/device-tree/src/arm/nxp/lpc/lpc18xx.dtsi (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1*f126890aSEmmanuel Vadot/*
2*f126890aSEmmanuel Vadot * Common base for NXP LPC18xx and LPC43xx devices.
3*f126890aSEmmanuel Vadot *
4*f126890aSEmmanuel Vadot * Copyright 2015 Joachim Eastwood <manabian@gmail.com>
5*f126890aSEmmanuel Vadot *
6*f126890aSEmmanuel Vadot * This code is released using a dual license strategy: BSD/GPL
7*f126890aSEmmanuel Vadot * You can choose the licence that better fits your requirements.
8*f126890aSEmmanuel Vadot *
9*f126890aSEmmanuel Vadot * Released under the terms of 3-clause BSD License
10*f126890aSEmmanuel Vadot * Released under the terms of GNU General Public License Version 2.0
11*f126890aSEmmanuel Vadot *
12*f126890aSEmmanuel Vadot */
13*f126890aSEmmanuel Vadot
14*f126890aSEmmanuel Vadot#include "../../armv7-m.dtsi"
15*f126890aSEmmanuel Vadot
16*f126890aSEmmanuel Vadot#include "dt-bindings/clock/lpc18xx-cgu.h"
17*f126890aSEmmanuel Vadot#include "dt-bindings/clock/lpc18xx-ccu.h"
18*f126890aSEmmanuel Vadot
19*f126890aSEmmanuel Vadot#define LPC_PIN(port, pin)	(0x##port * 32 + pin)
20*f126890aSEmmanuel Vadot#define LPC_GPIO(port, pin)	(port * 32 + pin)
21*f126890aSEmmanuel Vadot
22*f126890aSEmmanuel Vadot/ {
23*f126890aSEmmanuel Vadot	#address-cells = <1>;
24*f126890aSEmmanuel Vadot	#size-cells = <1>;
25*f126890aSEmmanuel Vadot
26*f126890aSEmmanuel Vadot	cpus {
27*f126890aSEmmanuel Vadot		#address-cells = <1>;
28*f126890aSEmmanuel Vadot		#size-cells = <0>;
29*f126890aSEmmanuel Vadot
30*f126890aSEmmanuel Vadot		cpu@0 {
31*f126890aSEmmanuel Vadot			compatible = "arm,cortex-m3";
32*f126890aSEmmanuel Vadot			device_type = "cpu";
33*f126890aSEmmanuel Vadot			reg = <0x0>;
34*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_CORE>;
35*f126890aSEmmanuel Vadot		};
36*f126890aSEmmanuel Vadot	};
37*f126890aSEmmanuel Vadot
38*f126890aSEmmanuel Vadot	clocks {
39*f126890aSEmmanuel Vadot		xtal: xtal {
40*f126890aSEmmanuel Vadot			compatible = "fixed-clock";
41*f126890aSEmmanuel Vadot			#clock-cells = <0>;
42*f126890aSEmmanuel Vadot			clock-frequency = <12000000>;
43*f126890aSEmmanuel Vadot		};
44*f126890aSEmmanuel Vadot
45*f126890aSEmmanuel Vadot		xtal32: xtal32 {
46*f126890aSEmmanuel Vadot			compatible = "fixed-clock";
47*f126890aSEmmanuel Vadot			#clock-cells = <0>;
48*f126890aSEmmanuel Vadot			clock-frequency = <32768>;
49*f126890aSEmmanuel Vadot		};
50*f126890aSEmmanuel Vadot
51*f126890aSEmmanuel Vadot		enet_rx_clk: enet_rx_clk {
52*f126890aSEmmanuel Vadot			compatible = "fixed-clock";
53*f126890aSEmmanuel Vadot			#clock-cells = <0>;
54*f126890aSEmmanuel Vadot			clock-frequency = <0>;
55*f126890aSEmmanuel Vadot			clock-output-names = "enet_rx_clk";
56*f126890aSEmmanuel Vadot		};
57*f126890aSEmmanuel Vadot
58*f126890aSEmmanuel Vadot		enet_tx_clk: enet_tx_clk {
59*f126890aSEmmanuel Vadot			compatible = "fixed-clock";
60*f126890aSEmmanuel Vadot			#clock-cells = <0>;
61*f126890aSEmmanuel Vadot			clock-frequency = <0>;
62*f126890aSEmmanuel Vadot			clock-output-names = "enet_tx_clk";
63*f126890aSEmmanuel Vadot		};
64*f126890aSEmmanuel Vadot
65*f126890aSEmmanuel Vadot		gp_clkin: gp_clkin {
66*f126890aSEmmanuel Vadot			compatible = "fixed-clock";
67*f126890aSEmmanuel Vadot			#clock-cells = <0>;
68*f126890aSEmmanuel Vadot			clock-frequency = <0>;
69*f126890aSEmmanuel Vadot			clock-output-names = "gp_clkin";
70*f126890aSEmmanuel Vadot		};
71*f126890aSEmmanuel Vadot	};
72*f126890aSEmmanuel Vadot
73*f126890aSEmmanuel Vadot	soc {
74*f126890aSEmmanuel Vadot		sct_pwm: pwm@40000000 {
75*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-sct-pwm";
76*f126890aSEmmanuel Vadot			reg = <0x40000000 0x1000>;
77*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_SCT>;
78*f126890aSEmmanuel Vadot			clock-names = "pwm";
79*f126890aSEmmanuel Vadot			resets = <&rgu 37>;
80*f126890aSEmmanuel Vadot			#pwm-cells = <3>;
81*f126890aSEmmanuel Vadot			status = "disabled";
82*f126890aSEmmanuel Vadot		};
83*f126890aSEmmanuel Vadot
84*f126890aSEmmanuel Vadot		dmac: dma-controller@40002000 {
85*f126890aSEmmanuel Vadot			compatible = "arm,pl080", "arm,primecell";
86*f126890aSEmmanuel Vadot			arm,primecell-periphid = <0x00041080>;
87*f126890aSEmmanuel Vadot			reg = <0x40002000 0x1000>;
88*f126890aSEmmanuel Vadot			interrupts = <2>;
89*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_DMA>;
90*f126890aSEmmanuel Vadot			clock-names = "apb_pclk";
91*f126890aSEmmanuel Vadot			resets = <&rgu 19>;
92*f126890aSEmmanuel Vadot			#dma-cells = <2>;
93*f126890aSEmmanuel Vadot			dma-channels = <8>;
94*f126890aSEmmanuel Vadot			dma-requests = <16>;
95*f126890aSEmmanuel Vadot			lli-bus-interface-ahb1;
96*f126890aSEmmanuel Vadot			lli-bus-interface-ahb2;
97*f126890aSEmmanuel Vadot			mem-bus-interface-ahb1;
98*f126890aSEmmanuel Vadot			mem-bus-interface-ahb2;
99*f126890aSEmmanuel Vadot			memcpy-burst-size = <256>;
100*f126890aSEmmanuel Vadot			memcpy-bus-width = <32>;
101*f126890aSEmmanuel Vadot		};
102*f126890aSEmmanuel Vadot
103*f126890aSEmmanuel Vadot		spifi: flash-controller@40003000 {
104*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1773-spifi";
105*f126890aSEmmanuel Vadot			reg = <0x40003000 0x1000>, <0x14000000 0x4000000>;
106*f126890aSEmmanuel Vadot			reg-names = "spifi", "flash";
107*f126890aSEmmanuel Vadot			interrupts = <30>;
108*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_SPIFI>, <&ccu1 CLK_CPU_SPIFI>;
109*f126890aSEmmanuel Vadot			clock-names = "spifi", "reg";
110*f126890aSEmmanuel Vadot			resets = <&rgu 53>;
111*f126890aSEmmanuel Vadot			status = "disabled";
112*f126890aSEmmanuel Vadot		};
113*f126890aSEmmanuel Vadot
114*f126890aSEmmanuel Vadot		mmcsd: mmcsd@40004000 {
115*f126890aSEmmanuel Vadot			compatible = "snps,dw-mshc";
116*f126890aSEmmanuel Vadot			reg = <0x40004000 0x1000>;
117*f126890aSEmmanuel Vadot			interrupts = <6>;
118*f126890aSEmmanuel Vadot			clocks = <&ccu2 CLK_SDIO>, <&ccu1 CLK_CPU_SDIO>;
119*f126890aSEmmanuel Vadot			clock-names = "ciu", "biu";
120*f126890aSEmmanuel Vadot			resets = <&rgu 20>;
121*f126890aSEmmanuel Vadot			status = "disabled";
122*f126890aSEmmanuel Vadot		};
123*f126890aSEmmanuel Vadot
124*f126890aSEmmanuel Vadot		usb0: usb@40006100 {
125*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-ehci", "generic-ehci";
126*f126890aSEmmanuel Vadot			reg = <0x40006100 0x100>;
127*f126890aSEmmanuel Vadot			interrupts = <8>;
128*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_USB0>;
129*f126890aSEmmanuel Vadot			resets = <&rgu 17>;
130*f126890aSEmmanuel Vadot			phys = <&usb0_otg_phy>;
131*f126890aSEmmanuel Vadot			phy-names = "usb";
132*f126890aSEmmanuel Vadot			has-transaction-translator;
133*f126890aSEmmanuel Vadot			status = "disabled";
134*f126890aSEmmanuel Vadot		};
135*f126890aSEmmanuel Vadot
136*f126890aSEmmanuel Vadot		usb1: usb@40007100 {
137*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-ehci", "generic-ehci";
138*f126890aSEmmanuel Vadot			reg = <0x40007100 0x100>;
139*f126890aSEmmanuel Vadot			interrupts = <9>;
140*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_USB1>;
141*f126890aSEmmanuel Vadot			resets = <&rgu 18>;
142*f126890aSEmmanuel Vadot			status = "disabled";
143*f126890aSEmmanuel Vadot		};
144*f126890aSEmmanuel Vadot
145*f126890aSEmmanuel Vadot		emc: memory-controller@40005000 {
146*f126890aSEmmanuel Vadot			compatible = "arm,pl172", "arm,primecell";
147*f126890aSEmmanuel Vadot			reg = <0x40005000 0x1000>;
148*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>;
149*f126890aSEmmanuel Vadot			clock-names = "mpmcclk", "apb_pclk";
150*f126890aSEmmanuel Vadot			resets = <&rgu 21>;
151*f126890aSEmmanuel Vadot			#address-cells = <2>;
152*f126890aSEmmanuel Vadot			#size-cells = <1>;
153*f126890aSEmmanuel Vadot			ranges = <0 0 0x1c000000 0x1000000
154*f126890aSEmmanuel Vadot				  1 0 0x1d000000 0x1000000
155*f126890aSEmmanuel Vadot				  2 0 0x1e000000 0x1000000
156*f126890aSEmmanuel Vadot				  3 0 0x1f000000 0x1000000>;
157*f126890aSEmmanuel Vadot			status = "disabled";
158*f126890aSEmmanuel Vadot		};
159*f126890aSEmmanuel Vadot
160*f126890aSEmmanuel Vadot		lcdc: lcd-controller@40008000 {
161*f126890aSEmmanuel Vadot			compatible = "arm,pl111", "arm,primecell";
162*f126890aSEmmanuel Vadot			reg = <0x40008000 0x1000>;
163*f126890aSEmmanuel Vadot			interrupts = <7>;
164*f126890aSEmmanuel Vadot			interrupt-names = "combined";
165*f126890aSEmmanuel Vadot			clocks = <&cgu BASE_LCD_CLK>, <&ccu1 CLK_CPU_LCD>;
166*f126890aSEmmanuel Vadot			clock-names = "clcdclk", "apb_pclk";
167*f126890aSEmmanuel Vadot			resets = <&rgu 16>;
168*f126890aSEmmanuel Vadot			status = "disabled";
169*f126890aSEmmanuel Vadot		};
170*f126890aSEmmanuel Vadot
171*f126890aSEmmanuel Vadot		eeprom: eeprom@4000e000 {
172*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1857-eeprom";
173*f126890aSEmmanuel Vadot			reg = <0x4000e000 0x1000>, <0x20040000 0x4000>;
174*f126890aSEmmanuel Vadot			reg-names = "reg", "mem";
175*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_EEPROM>;
176*f126890aSEmmanuel Vadot			clock-names = "eeprom";
177*f126890aSEmmanuel Vadot			resets = <&rgu 27>;
178*f126890aSEmmanuel Vadot			interrupts = <4>;
179*f126890aSEmmanuel Vadot			status = "disabled";
180*f126890aSEmmanuel Vadot		};
181*f126890aSEmmanuel Vadot
182*f126890aSEmmanuel Vadot		mac: ethernet@40010000 {
183*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-dwmac", "snps,dwmac-3.611", "snps,dwmac";
184*f126890aSEmmanuel Vadot			reg = <0x40010000 0x2000>;
185*f126890aSEmmanuel Vadot			interrupts = <5>;
186*f126890aSEmmanuel Vadot			interrupt-names = "macirq";
187*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_ETHERNET>;
188*f126890aSEmmanuel Vadot			clock-names = "stmmaceth";
189*f126890aSEmmanuel Vadot			resets = <&rgu 22>;
190*f126890aSEmmanuel Vadot			reset-names = "stmmaceth";
191*f126890aSEmmanuel Vadot			rx-fifo-depth = <256>;
192*f126890aSEmmanuel Vadot			tx-fifo-depth = <256>;
193*f126890aSEmmanuel Vadot			snps,pbl = <4>; /* 32 (8x mode) */
194*f126890aSEmmanuel Vadot			snps,force_thresh_dma_mode;
195*f126890aSEmmanuel Vadot			status = "disabled";
196*f126890aSEmmanuel Vadot		};
197*f126890aSEmmanuel Vadot
198*f126890aSEmmanuel Vadot		creg: syscon@40043000 {
199*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd";
200*f126890aSEmmanuel Vadot			reg = <0x40043000 0x1000>;
201*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_CREG>;
202*f126890aSEmmanuel Vadot			resets = <&rgu 5>;
203*f126890aSEmmanuel Vadot
204*f126890aSEmmanuel Vadot			creg_clk: clock-controller {
205*f126890aSEmmanuel Vadot				compatible = "nxp,lpc1850-creg-clk";
206*f126890aSEmmanuel Vadot				clocks = <&xtal32>;
207*f126890aSEmmanuel Vadot				#clock-cells = <1>;
208*f126890aSEmmanuel Vadot			};
209*f126890aSEmmanuel Vadot
210*f126890aSEmmanuel Vadot			usb0_otg_phy: phy {
211*f126890aSEmmanuel Vadot				compatible = "nxp,lpc1850-usb-otg-phy";
212*f126890aSEmmanuel Vadot				clocks = <&ccu1 CLK_USB0>;
213*f126890aSEmmanuel Vadot				#phy-cells = <0>;
214*f126890aSEmmanuel Vadot			};
215*f126890aSEmmanuel Vadot
216*f126890aSEmmanuel Vadot			dmamux: dma-mux {
217*f126890aSEmmanuel Vadot				compatible = "nxp,lpc1850-dmamux";
218*f126890aSEmmanuel Vadot				#dma-cells = <3>;
219*f126890aSEmmanuel Vadot				dma-requests = <64>;
220*f126890aSEmmanuel Vadot				dma-masters = <&dmac>;
221*f126890aSEmmanuel Vadot			};
222*f126890aSEmmanuel Vadot		};
223*f126890aSEmmanuel Vadot
224*f126890aSEmmanuel Vadot		rtc: rtc@40046000 {
225*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-rtc", "nxp,lpc1788-rtc";
226*f126890aSEmmanuel Vadot			reg = <0x40046000 0x1000>;
227*f126890aSEmmanuel Vadot			interrupts = <47>;
228*f126890aSEmmanuel Vadot			clocks = <&creg_clk 0>, <&ccu1 CLK_CPU_BUS>;
229*f126890aSEmmanuel Vadot			clock-names = "rtc", "reg";
230*f126890aSEmmanuel Vadot		};
231*f126890aSEmmanuel Vadot
232*f126890aSEmmanuel Vadot		cgu: clock-controller@40050000 {
233*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-cgu";
234*f126890aSEmmanuel Vadot			reg = <0x40050000 0x1000>;
235*f126890aSEmmanuel Vadot			#clock-cells = <1>;
236*f126890aSEmmanuel Vadot			clocks = <&xtal>, <&creg_clk 1>, <&enet_rx_clk>, <&enet_tx_clk>, <&gp_clkin>;
237*f126890aSEmmanuel Vadot		};
238*f126890aSEmmanuel Vadot
239*f126890aSEmmanuel Vadot		ccu1: clock-controller@40051000 {
240*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-ccu";
241*f126890aSEmmanuel Vadot			reg = <0x40051000 0x1000>;
242*f126890aSEmmanuel Vadot			#clock-cells = <1>;
243*f126890aSEmmanuel Vadot			clocks = <&cgu BASE_APB3_CLK>,   <&cgu BASE_APB1_CLK>,
244*f126890aSEmmanuel Vadot				 <&cgu BASE_SPIFI_CLK>,  <&cgu BASE_CPU_CLK>,
245*f126890aSEmmanuel Vadot				 <&cgu BASE_PERIPH_CLK>, <&cgu BASE_USB0_CLK>,
246*f126890aSEmmanuel Vadot				 <&cgu BASE_USB1_CLK>,   <&cgu BASE_SPI_CLK>;
247*f126890aSEmmanuel Vadot			clock-names = "base_apb3_clk",   "base_apb1_clk",
248*f126890aSEmmanuel Vadot				      "base_spifi_clk",  "base_cpu_clk",
249*f126890aSEmmanuel Vadot				      "base_periph_clk", "base_usb0_clk",
250*f126890aSEmmanuel Vadot				      "base_usb1_clk",   "base_spi_clk";
251*f126890aSEmmanuel Vadot		};
252*f126890aSEmmanuel Vadot
253*f126890aSEmmanuel Vadot		ccu2: clock-controller@40052000 {
254*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-ccu";
255*f126890aSEmmanuel Vadot			reg = <0x40052000 0x1000>;
256*f126890aSEmmanuel Vadot			#clock-cells = <1>;
257*f126890aSEmmanuel Vadot			clocks = <&cgu BASE_AUDIO_CLK>, <&cgu BASE_UART3_CLK>,
258*f126890aSEmmanuel Vadot				 <&cgu BASE_UART2_CLK>, <&cgu BASE_UART1_CLK>,
259*f126890aSEmmanuel Vadot				 <&cgu BASE_UART0_CLK>, <&cgu BASE_SSP1_CLK>,
260*f126890aSEmmanuel Vadot				 <&cgu BASE_SSP0_CLK>,  <&cgu BASE_SDIO_CLK>;
261*f126890aSEmmanuel Vadot			clock-names = "base_audio_clk", "base_uart3_clk",
262*f126890aSEmmanuel Vadot				      "base_uart2_clk", "base_uart1_clk",
263*f126890aSEmmanuel Vadot				      "base_uart0_clk", "base_ssp1_clk",
264*f126890aSEmmanuel Vadot				      "base_ssp0_clk",  "base_sdio_clk";
265*f126890aSEmmanuel Vadot		};
266*f126890aSEmmanuel Vadot
267*f126890aSEmmanuel Vadot		rgu: reset-controller@40053000 {
268*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-rgu";
269*f126890aSEmmanuel Vadot			reg = <0x40053000 0x1000>;
270*f126890aSEmmanuel Vadot			clocks = <&cgu BASE_SAFE_CLK>, <&ccu1 CLK_CPU_BUS>;
271*f126890aSEmmanuel Vadot			clock-names = "delay", "reg";
272*f126890aSEmmanuel Vadot			#reset-cells = <1>;
273*f126890aSEmmanuel Vadot		};
274*f126890aSEmmanuel Vadot
275*f126890aSEmmanuel Vadot		watchdog@40080000 {
276*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-wwdt";
277*f126890aSEmmanuel Vadot			reg = <0x40080000 0x24>;
278*f126890aSEmmanuel Vadot			interrupts = <49>;
279*f126890aSEmmanuel Vadot			clocks = <&cgu BASE_SAFE_CLK>, <&ccu1 CLK_CPU_WWDT>;
280*f126890aSEmmanuel Vadot			clock-names = "wdtclk", "reg";
281*f126890aSEmmanuel Vadot		};
282*f126890aSEmmanuel Vadot
283*f126890aSEmmanuel Vadot		uart0: serial@40081000 {
284*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-uart", "ns16550a";
285*f126890aSEmmanuel Vadot			reg = <0x40081000 0x1000>;
286*f126890aSEmmanuel Vadot			reg-shift = <2>;
287*f126890aSEmmanuel Vadot			interrupts = <24>;
288*f126890aSEmmanuel Vadot			clocks = <&ccu2 CLK_APB0_UART0>, <&ccu1 CLK_CPU_UART0>;
289*f126890aSEmmanuel Vadot			clock-names = "uartclk", "reg";
290*f126890aSEmmanuel Vadot			resets = <&rgu 44>;
291*f126890aSEmmanuel Vadot			dmas = <&dmamux  1 1 2
292*f126890aSEmmanuel Vadot				&dmamux  2 1 2
293*f126890aSEmmanuel Vadot				&dmamux 11 2 2
294*f126890aSEmmanuel Vadot				&dmamux 12 2 2>;
295*f126890aSEmmanuel Vadot			dma-names = "tx", "rx", "tx", "rx";
296*f126890aSEmmanuel Vadot			status = "disabled";
297*f126890aSEmmanuel Vadot		};
298*f126890aSEmmanuel Vadot
299*f126890aSEmmanuel Vadot		uart1: serial@40082000 {
300*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-uart", "ns16550a";
301*f126890aSEmmanuel Vadot			reg = <0x40082000 0x1000>;
302*f126890aSEmmanuel Vadot			reg-shift = <2>;
303*f126890aSEmmanuel Vadot			interrupts = <25>;
304*f126890aSEmmanuel Vadot			clocks = <&ccu2 CLK_APB0_UART1>, <&ccu1 CLK_CPU_UART1>;
305*f126890aSEmmanuel Vadot			clock-names = "uartclk", "reg";
306*f126890aSEmmanuel Vadot			resets = <&rgu 45>;
307*f126890aSEmmanuel Vadot			dmas = <&dmamux 3 1 2
308*f126890aSEmmanuel Vadot				&dmamux 4 1 2>;
309*f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
310*f126890aSEmmanuel Vadot			status = "disabled";
311*f126890aSEmmanuel Vadot		};
312*f126890aSEmmanuel Vadot
313*f126890aSEmmanuel Vadot		ssp0: spi@40083000 {
314*f126890aSEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
315*f126890aSEmmanuel Vadot			reg = <0x40083000 0x1000>;
316*f126890aSEmmanuel Vadot			interrupts = <22>;
317*f126890aSEmmanuel Vadot			clocks = <&ccu2 CLK_APB0_SSP0>, <&ccu1 CLK_CPU_SSP0>;
318*f126890aSEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
319*f126890aSEmmanuel Vadot			resets = <&rgu 50>;
320*f126890aSEmmanuel Vadot			dmas = <&dmamux  9 0 2
321*f126890aSEmmanuel Vadot				&dmamux 10 0 2>;
322*f126890aSEmmanuel Vadot			dma-names = "rx", "tx";
323*f126890aSEmmanuel Vadot			#address-cells = <1>;
324*f126890aSEmmanuel Vadot			#size-cells = <0>;
325*f126890aSEmmanuel Vadot			status = "disabled";
326*f126890aSEmmanuel Vadot		};
327*f126890aSEmmanuel Vadot
328*f126890aSEmmanuel Vadot		timer0: timer@40084000 {
329*f126890aSEmmanuel Vadot			compatible = "nxp,lpc3220-timer";
330*f126890aSEmmanuel Vadot			reg = <0x40084000 0x1000>;
331*f126890aSEmmanuel Vadot			interrupts = <12>;
332*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_TIMER0>;
333*f126890aSEmmanuel Vadot			clock-names = "timerclk";
334*f126890aSEmmanuel Vadot			resets = <&rgu 32>;
335*f126890aSEmmanuel Vadot		};
336*f126890aSEmmanuel Vadot
337*f126890aSEmmanuel Vadot		timer1: timer@40085000 {
338*f126890aSEmmanuel Vadot			compatible = "nxp,lpc3220-timer";
339*f126890aSEmmanuel Vadot			reg = <0x40085000 0x1000>;
340*f126890aSEmmanuel Vadot			interrupts = <13>;
341*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_TIMER1>;
342*f126890aSEmmanuel Vadot			clock-names = "timerclk";
343*f126890aSEmmanuel Vadot			resets = <&rgu 33>;
344*f126890aSEmmanuel Vadot		};
345*f126890aSEmmanuel Vadot
346*f126890aSEmmanuel Vadot		pinctrl: pinctrl@40086000 {
347*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-scu";
348*f126890aSEmmanuel Vadot			reg = <0x40086000 0x1000>;
349*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_SCU>;
350*f126890aSEmmanuel Vadot		};
351*f126890aSEmmanuel Vadot
352*f126890aSEmmanuel Vadot		i2c0: i2c@400a1000 {
353*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1788-i2c";
354*f126890aSEmmanuel Vadot			reg = <0x400a1000 0x1000>;
355*f126890aSEmmanuel Vadot			interrupts = <18>;
356*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_APB1_I2C0>;
357*f126890aSEmmanuel Vadot			resets = <&rgu 48>;
358*f126890aSEmmanuel Vadot			#address-cells = <1>;
359*f126890aSEmmanuel Vadot			#size-cells = <0>;
360*f126890aSEmmanuel Vadot			status = "disabled";
361*f126890aSEmmanuel Vadot		};
362*f126890aSEmmanuel Vadot
363*f126890aSEmmanuel Vadot		can1: can@400a4000 {
364*f126890aSEmmanuel Vadot			compatible = "bosch,c_can";
365*f126890aSEmmanuel Vadot			reg = <0x400a4000 0x1000>;
366*f126890aSEmmanuel Vadot			interrupts = <43>;
367*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_APB1_CAN1>;
368*f126890aSEmmanuel Vadot			resets = <&rgu 54>;
369*f126890aSEmmanuel Vadot			status = "disabled";
370*f126890aSEmmanuel Vadot		};
371*f126890aSEmmanuel Vadot
372*f126890aSEmmanuel Vadot		uart2: serial@400c1000 {
373*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-uart", "ns16550a";
374*f126890aSEmmanuel Vadot			reg = <0x400c1000 0x1000>;
375*f126890aSEmmanuel Vadot			reg-shift = <2>;
376*f126890aSEmmanuel Vadot			interrupts = <26>;
377*f126890aSEmmanuel Vadot			clocks = <&ccu2 CLK_APB2_UART2>, <&ccu1 CLK_CPU_UART2>;
378*f126890aSEmmanuel Vadot			clock-names = "uartclk", "reg";
379*f126890aSEmmanuel Vadot			resets = <&rgu 46>;
380*f126890aSEmmanuel Vadot			dmas = <&dmamux 5 1 2
381*f126890aSEmmanuel Vadot				&dmamux 6 1 2>;
382*f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
383*f126890aSEmmanuel Vadot			status = "disabled";
384*f126890aSEmmanuel Vadot		};
385*f126890aSEmmanuel Vadot
386*f126890aSEmmanuel Vadot		uart3: serial@400c2000 {
387*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-uart", "ns16550a";
388*f126890aSEmmanuel Vadot			reg = <0x400c2000 0x1000>;
389*f126890aSEmmanuel Vadot			reg-shift = <2>;
390*f126890aSEmmanuel Vadot			interrupts = <27>;
391*f126890aSEmmanuel Vadot			clocks = <&ccu2 CLK_APB2_UART3>, <&ccu1 CLK_CPU_UART3>;
392*f126890aSEmmanuel Vadot			clock-names = "uartclk", "reg";
393*f126890aSEmmanuel Vadot			resets = <&rgu 47>;
394*f126890aSEmmanuel Vadot			dmas = <&dmamux  7 1 2
395*f126890aSEmmanuel Vadot				&dmamux  8 1 2
396*f126890aSEmmanuel Vadot				&dmamux 13 3 2
397*f126890aSEmmanuel Vadot				&dmamux 14 3 2>;
398*f126890aSEmmanuel Vadot			dma-names = "tx", "rx", "rx", "tx";
399*f126890aSEmmanuel Vadot			status = "disabled";
400*f126890aSEmmanuel Vadot		};
401*f126890aSEmmanuel Vadot
402*f126890aSEmmanuel Vadot		timer2: timer@400c3000 {
403*f126890aSEmmanuel Vadot			compatible = "nxp,lpc3220-timer";
404*f126890aSEmmanuel Vadot			reg = <0x400c3000 0x1000>;
405*f126890aSEmmanuel Vadot			interrupts = <14>;
406*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_TIMER2>;
407*f126890aSEmmanuel Vadot			clock-names = "timerclk";
408*f126890aSEmmanuel Vadot			resets = <&rgu 34>;
409*f126890aSEmmanuel Vadot		};
410*f126890aSEmmanuel Vadot
411*f126890aSEmmanuel Vadot		timer3: timer@400c4000 {
412*f126890aSEmmanuel Vadot			compatible = "nxp,lpc3220-timer";
413*f126890aSEmmanuel Vadot			reg = <0x400c4000 0x1000>;
414*f126890aSEmmanuel Vadot			interrupts = <15>;
415*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_TIMER3>;
416*f126890aSEmmanuel Vadot			clock-names = "timerclk";
417*f126890aSEmmanuel Vadot			resets = <&rgu 35>;
418*f126890aSEmmanuel Vadot		};
419*f126890aSEmmanuel Vadot
420*f126890aSEmmanuel Vadot		ssp1: spi@400c5000 {
421*f126890aSEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
422*f126890aSEmmanuel Vadot			reg = <0x400c5000 0x1000>;
423*f126890aSEmmanuel Vadot			interrupts = <23>;
424*f126890aSEmmanuel Vadot			clocks = <&ccu2 CLK_APB2_SSP1>, <&ccu1 CLK_CPU_SSP1>;
425*f126890aSEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
426*f126890aSEmmanuel Vadot			resets = <&rgu 51>;
427*f126890aSEmmanuel Vadot			dmas = <&dmamux 11 2 2
428*f126890aSEmmanuel Vadot				&dmamux 12 2 2
429*f126890aSEmmanuel Vadot				&dmamux  3 3 2
430*f126890aSEmmanuel Vadot				&dmamux  4 3 2
431*f126890aSEmmanuel Vadot				&dmamux  5 2 2
432*f126890aSEmmanuel Vadot				&dmamux  6 2 2
433*f126890aSEmmanuel Vadot				&dmamux 13 2 2
434*f126890aSEmmanuel Vadot				&dmamux 14 2 2>;
435*f126890aSEmmanuel Vadot			dma-names = "rx", "tx", "tx", "rx",
436*f126890aSEmmanuel Vadot				    "tx", "rx", "rx", "tx";
437*f126890aSEmmanuel Vadot			#address-cells = <1>;
438*f126890aSEmmanuel Vadot			#size-cells = <0>;
439*f126890aSEmmanuel Vadot			status = "disabled";
440*f126890aSEmmanuel Vadot		};
441*f126890aSEmmanuel Vadot
442*f126890aSEmmanuel Vadot		i2c1: i2c@400e0000 {
443*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1788-i2c";
444*f126890aSEmmanuel Vadot			reg = <0x400e0000 0x1000>;
445*f126890aSEmmanuel Vadot			interrupts = <19>;
446*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_APB3_I2C1>;
447*f126890aSEmmanuel Vadot			resets = <&rgu 49>;
448*f126890aSEmmanuel Vadot			#address-cells = <1>;
449*f126890aSEmmanuel Vadot			#size-cells = <0>;
450*f126890aSEmmanuel Vadot			status = "disabled";
451*f126890aSEmmanuel Vadot		};
452*f126890aSEmmanuel Vadot
453*f126890aSEmmanuel Vadot		dac: dac@400e1000 {
454*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-dac";
455*f126890aSEmmanuel Vadot			reg = <0x400e1000 0x1000>;
456*f126890aSEmmanuel Vadot			interrupts = <0>;
457*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_APB3_DAC>;
458*f126890aSEmmanuel Vadot			resets = <&rgu 42>;
459*f126890aSEmmanuel Vadot			status = "disabled";
460*f126890aSEmmanuel Vadot		};
461*f126890aSEmmanuel Vadot
462*f126890aSEmmanuel Vadot		can0: can@400e2000 {
463*f126890aSEmmanuel Vadot			compatible = "bosch,c_can";
464*f126890aSEmmanuel Vadot			reg = <0x400e2000 0x1000>;
465*f126890aSEmmanuel Vadot			interrupts = <51>;
466*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_APB3_CAN0>;
467*f126890aSEmmanuel Vadot			resets = <&rgu 55>;
468*f126890aSEmmanuel Vadot			status = "disabled";
469*f126890aSEmmanuel Vadot		};
470*f126890aSEmmanuel Vadot
471*f126890aSEmmanuel Vadot		adc0: adc@400e3000 {
472*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-adc";
473*f126890aSEmmanuel Vadot			reg = <0x400e3000 0x1000>;
474*f126890aSEmmanuel Vadot			interrupts = <17>;
475*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_APB3_ADC0>;
476*f126890aSEmmanuel Vadot			resets = <&rgu 40>;
477*f126890aSEmmanuel Vadot			status = "disabled";
478*f126890aSEmmanuel Vadot		};
479*f126890aSEmmanuel Vadot
480*f126890aSEmmanuel Vadot		adc1: adc@400e4000 {
481*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-adc";
482*f126890aSEmmanuel Vadot			reg = <0x400e4000 0x1000>;
483*f126890aSEmmanuel Vadot			interrupts = <21>;
484*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_APB3_ADC1>;
485*f126890aSEmmanuel Vadot			resets = <&rgu 41>;
486*f126890aSEmmanuel Vadot			status = "disabled";
487*f126890aSEmmanuel Vadot		};
488*f126890aSEmmanuel Vadot
489*f126890aSEmmanuel Vadot		gpio: gpio@400f4000 {
490*f126890aSEmmanuel Vadot			compatible = "nxp,lpc1850-gpio";
491*f126890aSEmmanuel Vadot			reg = <0x400f4000 0x4000>;
492*f126890aSEmmanuel Vadot			clocks = <&ccu1 CLK_CPU_GPIO>;
493*f126890aSEmmanuel Vadot			gpio-controller;
494*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
495*f126890aSEmmanuel Vadot			gpio-ranges =	<&pinctrl LPC_GPIO(0,0)  LPC_PIN(0,0)  2>,
496*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(0,4)  LPC_PIN(1,0)  1>,
497*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(0,8)  LPC_PIN(1,1)  4>,
498*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(1,8)  LPC_PIN(1,5)  2>,
499*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(1,0)  LPC_PIN(1,7)  8>,
500*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(0,2)  LPC_PIN(1,15) 2>,
501*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(0,12) LPC_PIN(1,17) 2>,
502*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(0,15) LPC_PIN(1,20) 1>,
503*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(5,0)  LPC_PIN(2,0)  7>,
504*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(0,7)  LPC_PIN(2,7)  1>,
505*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(5,7)  LPC_PIN(2,8)  1>,
506*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(1,10) LPC_PIN(2,9)  1>,
507*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(0,14) LPC_PIN(2,10) 1>,
508*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(1,11) LPC_PIN(2,11) 3>,
509*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(5,8)  LPC_PIN(3,1)  2>,
510*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(1,14) LPC_PIN(3,4)  2>,
511*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(0,6)  LPC_PIN(3,6)  1>,
512*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(5,10) LPC_PIN(3,7)  2>,
513*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(2,0)  LPC_PIN(4,0)  7>,
514*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(5,12) LPC_PIN(4,8)  3>,
515*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(2,9)  LPC_PIN(5,0)  7>,
516*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(2,7)  LPC_PIN(5,7)  1>,
517*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(3,0)  LPC_PIN(6,1)  5>,
518*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(0,5)  LPC_PIN(6,6)  1>,
519*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(5,15) LPC_PIN(6,7)  2>,
520*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(3,5)  LPC_PIN(6,9)  3>,
521*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(2,8)  LPC_PIN(6,12) 1>,
522*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(3,8)  LPC_PIN(7,0)  8>,
523*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(4,0)  LPC_PIN(8,0)  8>,
524*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(4,12) LPC_PIN(9,0)  4>,
525*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(5,17) LPC_PIN(9,4)  2>,
526*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(4,11) LPC_PIN(9,6)  1>,
527*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(4,8)  LPC_PIN(a,1)  3>,
528*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(5,19) LPC_PIN(a,4)  1>,
529*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(5,20) LPC_PIN(b,0)  7>,
530*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(6,0)  LPC_PIN(c,1) 14>,
531*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(6,14) LPC_PIN(d,0) 17>,
532*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(7,0)  LPC_PIN(e,0) 16>,
533*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(7,16) LPC_PIN(f,1)  3>,
534*f126890aSEmmanuel Vadot					<&pinctrl LPC_GPIO(7,19) LPC_PIN(f,5)  7>;
535*f126890aSEmmanuel Vadot		};
536*f126890aSEmmanuel Vadot	};
537*f126890aSEmmanuel Vadot};
538