xref: /freebsd-src/sys/contrib/device-tree/src/arm/microchip/lan966x.dtsi (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * lan966x.dtsi - Device Tree Include file for Microchip LAN966 family SoC
4*f126890aSEmmanuel Vadot *
5*f126890aSEmmanuel Vadot * Copyright (C) 2021 Microchip Technology, Inc. and its subsidiaries
6*f126890aSEmmanuel Vadot *
7*f126890aSEmmanuel Vadot * Author: Kavyasree Kotagiri <kavyasree.kotagiri@microchip.com>
8*f126890aSEmmanuel Vadot *
9*f126890aSEmmanuel Vadot */
10*f126890aSEmmanuel Vadot
11*f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
12*f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
13*f126890aSEmmanuel Vadot#include <dt-bindings/mfd/atmel-flexcom.h>
14*f126890aSEmmanuel Vadot#include <dt-bindings/dma/at91.h>
15*f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
16*f126890aSEmmanuel Vadot#include <dt-bindings/clock/microchip,lan966x.h>
17*f126890aSEmmanuel Vadot
18*f126890aSEmmanuel Vadot/ {
19*f126890aSEmmanuel Vadot	model = "Microchip LAN966 family SoC";
20*f126890aSEmmanuel Vadot	compatible = "microchip,lan966";
21*f126890aSEmmanuel Vadot	interrupt-parent = <&gic>;
22*f126890aSEmmanuel Vadot	#address-cells = <1>;
23*f126890aSEmmanuel Vadot	#size-cells = <1>;
24*f126890aSEmmanuel Vadot
25*f126890aSEmmanuel Vadot	cpus {
26*f126890aSEmmanuel Vadot		#address-cells = <1>;
27*f126890aSEmmanuel Vadot		#size-cells = <0>;
28*f126890aSEmmanuel Vadot
29*f126890aSEmmanuel Vadot		cpu@0 {
30*f126890aSEmmanuel Vadot			device_type = "cpu";
31*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
32*f126890aSEmmanuel Vadot			clock-frequency = <600000000>;
33*f126890aSEmmanuel Vadot			reg = <0x0>;
34*f126890aSEmmanuel Vadot		};
35*f126890aSEmmanuel Vadot	};
36*f126890aSEmmanuel Vadot
37*f126890aSEmmanuel Vadot	clocks {
38*f126890aSEmmanuel Vadot		sys_clk: sys_clk {
39*f126890aSEmmanuel Vadot			compatible = "fixed-clock";
40*f126890aSEmmanuel Vadot			#clock-cells = <0>;
41*f126890aSEmmanuel Vadot			clock-frequency = <165625000>;
42*f126890aSEmmanuel Vadot		};
43*f126890aSEmmanuel Vadot
44*f126890aSEmmanuel Vadot		cpu_clk: cpu_clk {
45*f126890aSEmmanuel Vadot			compatible = "fixed-clock";
46*f126890aSEmmanuel Vadot			#clock-cells = <0>;
47*f126890aSEmmanuel Vadot			clock-frequency = <600000000>;
48*f126890aSEmmanuel Vadot		};
49*f126890aSEmmanuel Vadot
50*f126890aSEmmanuel Vadot		ddr_clk: ddr_clk {
51*f126890aSEmmanuel Vadot			compatible = "fixed-clock";
52*f126890aSEmmanuel Vadot			#clock-cells = <0>;
53*f126890aSEmmanuel Vadot			clock-frequency = <300000000>;
54*f126890aSEmmanuel Vadot		};
55*f126890aSEmmanuel Vadot
56*f126890aSEmmanuel Vadot		nic_clk: nic_clk {
57*f126890aSEmmanuel Vadot			compatible = "fixed-clock";
58*f126890aSEmmanuel Vadot			#clock-cells = <0>;
59*f126890aSEmmanuel Vadot			clock-frequency = <200000000>;
60*f126890aSEmmanuel Vadot		};
61*f126890aSEmmanuel Vadot	};
62*f126890aSEmmanuel Vadot
63*f126890aSEmmanuel Vadot	clks: clock-controller@e00c00a8 {
64*f126890aSEmmanuel Vadot		compatible = "microchip,lan966x-gck";
65*f126890aSEmmanuel Vadot		#clock-cells = <1>;
66*f126890aSEmmanuel Vadot		clocks = <&cpu_clk>, <&ddr_clk>, <&sys_clk>;
67*f126890aSEmmanuel Vadot		clock-names = "cpu", "ddr", "sys";
68*f126890aSEmmanuel Vadot		reg = <0xe00c00a8 0x38>, <0xe00c02cc 0x4>;
69*f126890aSEmmanuel Vadot	};
70*f126890aSEmmanuel Vadot
71*f126890aSEmmanuel Vadot	timer {
72*f126890aSEmmanuel Vadot		compatible = "arm,armv7-timer";
73*f126890aSEmmanuel Vadot		interrupt-parent = <&gic>;
74*f126890aSEmmanuel Vadot		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
75*f126890aSEmmanuel Vadot			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
76*f126890aSEmmanuel Vadot			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
77*f126890aSEmmanuel Vadot			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
78*f126890aSEmmanuel Vadot		clock-frequency = <37500000>;
79*f126890aSEmmanuel Vadot	};
80*f126890aSEmmanuel Vadot
81*f126890aSEmmanuel Vadot	soc {
82*f126890aSEmmanuel Vadot		compatible = "simple-bus";
83*f126890aSEmmanuel Vadot		#address-cells = <1>;
84*f126890aSEmmanuel Vadot		#size-cells = <1>;
85*f126890aSEmmanuel Vadot		ranges;
86*f126890aSEmmanuel Vadot
87*f126890aSEmmanuel Vadot		udc: usb@200000 {
88*f126890aSEmmanuel Vadot			compatible = "microchip,lan9662-udc",
89*f126890aSEmmanuel Vadot				     "atmel,sama5d3-udc";
90*f126890aSEmmanuel Vadot			reg = <0x00200000 0x80000>,
91*f126890aSEmmanuel Vadot			      <0xe0808000 0x400>;
92*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
93*f126890aSEmmanuel Vadot			clocks = <&clks GCK_GATE_UDPHS>, <&nic_clk>;
94*f126890aSEmmanuel Vadot			clock-names = "pclk", "hclk";
95*f126890aSEmmanuel Vadot			status = "disabled";
96*f126890aSEmmanuel Vadot		};
97*f126890aSEmmanuel Vadot
98*f126890aSEmmanuel Vadot		switch: switch@e0000000 {
99*f126890aSEmmanuel Vadot			compatible = "microchip,lan966x-switch";
100*f126890aSEmmanuel Vadot			reg = <0xe0000000 0x0100000>,
101*f126890aSEmmanuel Vadot			      <0xe2000000 0x0800000>;
102*f126890aSEmmanuel Vadot			reg-names = "cpu", "gcb";
103*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
104*f126890aSEmmanuel Vadot				     <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
105*f126890aSEmmanuel Vadot				     <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
106*f126890aSEmmanuel Vadot				     <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
107*f126890aSEmmanuel Vadot				     <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
108*f126890aSEmmanuel Vadot			interrupt-names = "xtr", "fdma", "ana", "ptp",
109*f126890aSEmmanuel Vadot					  "ptp-ext";
110*f126890aSEmmanuel Vadot			resets = <&reset 0>;
111*f126890aSEmmanuel Vadot			reset-names = "switch";
112*f126890aSEmmanuel Vadot			status = "disabled";
113*f126890aSEmmanuel Vadot
114*f126890aSEmmanuel Vadot			ethernet-ports {
115*f126890aSEmmanuel Vadot				#address-cells = <1>;
116*f126890aSEmmanuel Vadot				#size-cells = <0>;
117*f126890aSEmmanuel Vadot
118*f126890aSEmmanuel Vadot				port0: port@0 {
119*f126890aSEmmanuel Vadot					reg = <0>;
120*f126890aSEmmanuel Vadot					status = "disabled";
121*f126890aSEmmanuel Vadot				};
122*f126890aSEmmanuel Vadot
123*f126890aSEmmanuel Vadot				port1: port@1 {
124*f126890aSEmmanuel Vadot					reg = <1>;
125*f126890aSEmmanuel Vadot					status = "disabled";
126*f126890aSEmmanuel Vadot				};
127*f126890aSEmmanuel Vadot
128*f126890aSEmmanuel Vadot				port2: port@2 {
129*f126890aSEmmanuel Vadot					reg = <2>;
130*f126890aSEmmanuel Vadot					status = "disabled";
131*f126890aSEmmanuel Vadot				};
132*f126890aSEmmanuel Vadot
133*f126890aSEmmanuel Vadot				port3: port@3 {
134*f126890aSEmmanuel Vadot					reg = <3>;
135*f126890aSEmmanuel Vadot					status = "disabled";
136*f126890aSEmmanuel Vadot				};
137*f126890aSEmmanuel Vadot
138*f126890aSEmmanuel Vadot				port4: port@4 {
139*f126890aSEmmanuel Vadot					reg = <4>;
140*f126890aSEmmanuel Vadot					status = "disabled";
141*f126890aSEmmanuel Vadot				};
142*f126890aSEmmanuel Vadot
143*f126890aSEmmanuel Vadot				port5: port@5 {
144*f126890aSEmmanuel Vadot					reg = <5>;
145*f126890aSEmmanuel Vadot					status = "disabled";
146*f126890aSEmmanuel Vadot				};
147*f126890aSEmmanuel Vadot
148*f126890aSEmmanuel Vadot				port6: port@6 {
149*f126890aSEmmanuel Vadot					reg = <6>;
150*f126890aSEmmanuel Vadot					status = "disabled";
151*f126890aSEmmanuel Vadot				};
152*f126890aSEmmanuel Vadot
153*f126890aSEmmanuel Vadot				port7: port@7 {
154*f126890aSEmmanuel Vadot					reg = <7>;
155*f126890aSEmmanuel Vadot					status = "disabled";
156*f126890aSEmmanuel Vadot				};
157*f126890aSEmmanuel Vadot			};
158*f126890aSEmmanuel Vadot		};
159*f126890aSEmmanuel Vadot
160*f126890aSEmmanuel Vadot		otp: otp@e0021000 {
161*f126890aSEmmanuel Vadot			compatible = "microchip,lan9668-otpc", "microchip,lan9662-otpc";
162*f126890aSEmmanuel Vadot			reg = <0xe0021000 0x300>;
163*f126890aSEmmanuel Vadot		};
164*f126890aSEmmanuel Vadot
165*f126890aSEmmanuel Vadot		flx0: flexcom@e0040000 {
166*f126890aSEmmanuel Vadot			compatible = "atmel,sama5d2-flexcom";
167*f126890aSEmmanuel Vadot			reg = <0xe0040000 0x100>;
168*f126890aSEmmanuel Vadot			clocks = <&clks GCK_ID_FLEXCOM0>;
169*f126890aSEmmanuel Vadot			#address-cells = <1>;
170*f126890aSEmmanuel Vadot			#size-cells = <1>;
171*f126890aSEmmanuel Vadot			ranges = <0x0 0xe0040000 0x800>;
172*f126890aSEmmanuel Vadot			status = "disabled";
173*f126890aSEmmanuel Vadot
174*f126890aSEmmanuel Vadot			usart0: serial@200 {
175*f126890aSEmmanuel Vadot				compatible = "atmel,at91sam9260-usart";
176*f126890aSEmmanuel Vadot				reg = <0x200 0x200>;
177*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
178*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(3)>,
179*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(2)>;
180*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
181*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
182*f126890aSEmmanuel Vadot				clock-names = "usart";
183*f126890aSEmmanuel Vadot				atmel,fifo-size = <32>;
184*f126890aSEmmanuel Vadot				status = "disabled";
185*f126890aSEmmanuel Vadot			};
186*f126890aSEmmanuel Vadot
187*f126890aSEmmanuel Vadot			spi0: spi@400 {
188*f126890aSEmmanuel Vadot				compatible = "atmel,at91rm9200-spi";
189*f126890aSEmmanuel Vadot				reg = <0x400 0x200>;
190*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
191*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(3)>,
192*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(2)>;
193*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
194*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
195*f126890aSEmmanuel Vadot				clock-names = "spi_clk";
196*f126890aSEmmanuel Vadot				atmel,fifo-size = <32>;
197*f126890aSEmmanuel Vadot				#address-cells = <1>;
198*f126890aSEmmanuel Vadot				#size-cells = <0>;
199*f126890aSEmmanuel Vadot				status = "disabled";
200*f126890aSEmmanuel Vadot			};
201*f126890aSEmmanuel Vadot
202*f126890aSEmmanuel Vadot			i2c0: i2c@600 {
203*f126890aSEmmanuel Vadot				compatible = "microchip,sam9x60-i2c";
204*f126890aSEmmanuel Vadot				reg = <0x600 0x200>;
205*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
206*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(3)>,
207*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(2)>;
208*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
209*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
210*f126890aSEmmanuel Vadot				#address-cells = <1>;
211*f126890aSEmmanuel Vadot				#size-cells = <0>;
212*f126890aSEmmanuel Vadot				status = "disabled";
213*f126890aSEmmanuel Vadot			};
214*f126890aSEmmanuel Vadot		};
215*f126890aSEmmanuel Vadot
216*f126890aSEmmanuel Vadot		flx1: flexcom@e0044000 {
217*f126890aSEmmanuel Vadot			compatible = "atmel,sama5d2-flexcom";
218*f126890aSEmmanuel Vadot			reg = <0xe0044000 0x100>;
219*f126890aSEmmanuel Vadot			clocks = <&clks GCK_ID_FLEXCOM1>;
220*f126890aSEmmanuel Vadot			#address-cells = <1>;
221*f126890aSEmmanuel Vadot			#size-cells = <1>;
222*f126890aSEmmanuel Vadot			ranges = <0x0 0xe0044000 0x800>;
223*f126890aSEmmanuel Vadot			status = "disabled";
224*f126890aSEmmanuel Vadot
225*f126890aSEmmanuel Vadot			usart1: serial@200 {
226*f126890aSEmmanuel Vadot				compatible = "atmel,at91sam9260-usart";
227*f126890aSEmmanuel Vadot				reg = <0x200 0x200>;
228*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
229*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(5)>,
230*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(4)>;
231*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
232*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
233*f126890aSEmmanuel Vadot				clock-names = "usart";
234*f126890aSEmmanuel Vadot				atmel,fifo-size = <32>;
235*f126890aSEmmanuel Vadot				status = "disabled";
236*f126890aSEmmanuel Vadot			};
237*f126890aSEmmanuel Vadot
238*f126890aSEmmanuel Vadot			spi1: spi@400 {
239*f126890aSEmmanuel Vadot				compatible = "atmel,at91rm9200-spi";
240*f126890aSEmmanuel Vadot				reg = <0x400 0x200>;
241*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
242*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(5)>,
243*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(4)>;
244*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
245*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
246*f126890aSEmmanuel Vadot				clock-names = "spi_clk";
247*f126890aSEmmanuel Vadot				atmel,fifo-size = <32>;
248*f126890aSEmmanuel Vadot				#address-cells = <1>;
249*f126890aSEmmanuel Vadot				#size-cells = <0>;
250*f126890aSEmmanuel Vadot				status = "disabled";
251*f126890aSEmmanuel Vadot			};
252*f126890aSEmmanuel Vadot
253*f126890aSEmmanuel Vadot			i2c1: i2c@600 {
254*f126890aSEmmanuel Vadot				compatible = "microchip,sam9x60-i2c";
255*f126890aSEmmanuel Vadot				reg = <0x600 0x200>;
256*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
257*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(5)>,
258*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(4)>;
259*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
260*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
261*f126890aSEmmanuel Vadot				#address-cells = <1>;
262*f126890aSEmmanuel Vadot				#size-cells = <0>;
263*f126890aSEmmanuel Vadot				status = "disabled";
264*f126890aSEmmanuel Vadot			};
265*f126890aSEmmanuel Vadot		};
266*f126890aSEmmanuel Vadot
267*f126890aSEmmanuel Vadot		trng: rng@e0048000 {
268*f126890aSEmmanuel Vadot			compatible = "atmel,at91sam9g45-trng";
269*f126890aSEmmanuel Vadot			reg = <0xe0048000 0x100>;
270*f126890aSEmmanuel Vadot			clocks = <&nic_clk>;
271*f126890aSEmmanuel Vadot		};
272*f126890aSEmmanuel Vadot
273*f126890aSEmmanuel Vadot		aes: crypto@e004c000 {
274*f126890aSEmmanuel Vadot			compatible = "atmel,at91sam9g46-aes";
275*f126890aSEmmanuel Vadot			reg = <0xe004c000 0x100>;
276*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
277*f126890aSEmmanuel Vadot			dmas = <&dma0 AT91_XDMAC_DT_PERID(12)>,
278*f126890aSEmmanuel Vadot			       <&dma0 AT91_XDMAC_DT_PERID(13)>;
279*f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
280*f126890aSEmmanuel Vadot			clocks = <&nic_clk>;
281*f126890aSEmmanuel Vadot			clock-names = "aes_clk";
282*f126890aSEmmanuel Vadot		};
283*f126890aSEmmanuel Vadot
284*f126890aSEmmanuel Vadot		flx2: flexcom@e0060000 {
285*f126890aSEmmanuel Vadot			compatible = "atmel,sama5d2-flexcom";
286*f126890aSEmmanuel Vadot			reg = <0xe0060000 0x100>;
287*f126890aSEmmanuel Vadot			clocks = <&clks GCK_ID_FLEXCOM2>;
288*f126890aSEmmanuel Vadot			#address-cells = <1>;
289*f126890aSEmmanuel Vadot			#size-cells = <1>;
290*f126890aSEmmanuel Vadot			ranges = <0x0 0xe0060000 0x800>;
291*f126890aSEmmanuel Vadot			status = "disabled";
292*f126890aSEmmanuel Vadot
293*f126890aSEmmanuel Vadot			usart2: serial@200 {
294*f126890aSEmmanuel Vadot				compatible = "atmel,at91sam9260-usart";
295*f126890aSEmmanuel Vadot				reg = <0x200 0x200>;
296*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
297*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
298*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(6)>;
299*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
300*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
301*f126890aSEmmanuel Vadot				clock-names = "usart";
302*f126890aSEmmanuel Vadot				atmel,fifo-size = <32>;
303*f126890aSEmmanuel Vadot				status = "disabled";
304*f126890aSEmmanuel Vadot			};
305*f126890aSEmmanuel Vadot
306*f126890aSEmmanuel Vadot			spi2: spi@400 {
307*f126890aSEmmanuel Vadot				compatible = "atmel,at91rm9200-spi";
308*f126890aSEmmanuel Vadot				reg = <0x400 0x200>;
309*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
310*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
311*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(6)>;
312*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
313*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
314*f126890aSEmmanuel Vadot				clock-names = "spi_clk";
315*f126890aSEmmanuel Vadot				atmel,fifo-size = <32>;
316*f126890aSEmmanuel Vadot				#address-cells = <1>;
317*f126890aSEmmanuel Vadot				#size-cells = <0>;
318*f126890aSEmmanuel Vadot				status = "disabled";
319*f126890aSEmmanuel Vadot			};
320*f126890aSEmmanuel Vadot
321*f126890aSEmmanuel Vadot			i2c2: i2c@600 {
322*f126890aSEmmanuel Vadot				compatible = "microchip,sam9x60-i2c";
323*f126890aSEmmanuel Vadot				reg = <0x600 0x200>;
324*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
325*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
326*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(6)>;
327*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
328*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
329*f126890aSEmmanuel Vadot				#address-cells = <1>;
330*f126890aSEmmanuel Vadot				#size-cells = <0>;
331*f126890aSEmmanuel Vadot				status = "disabled";
332*f126890aSEmmanuel Vadot			};
333*f126890aSEmmanuel Vadot		};
334*f126890aSEmmanuel Vadot
335*f126890aSEmmanuel Vadot		flx3: flexcom@e0064000 {
336*f126890aSEmmanuel Vadot			compatible = "atmel,sama5d2-flexcom";
337*f126890aSEmmanuel Vadot			reg = <0xe0064000 0x100>;
338*f126890aSEmmanuel Vadot			clocks = <&clks GCK_ID_FLEXCOM3>;
339*f126890aSEmmanuel Vadot			#address-cells = <1>;
340*f126890aSEmmanuel Vadot			#size-cells = <1>;
341*f126890aSEmmanuel Vadot			ranges = <0x0 0xe0064000 0x800>;
342*f126890aSEmmanuel Vadot			status = "disabled";
343*f126890aSEmmanuel Vadot
344*f126890aSEmmanuel Vadot			usart3: serial@200 {
345*f126890aSEmmanuel Vadot				compatible = "atmel,at91sam9260-usart";
346*f126890aSEmmanuel Vadot				reg = <0x200 0x200>;
347*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
348*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(9)>,
349*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(8)>;
350*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
351*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
352*f126890aSEmmanuel Vadot				clock-names = "usart";
353*f126890aSEmmanuel Vadot				atmel,fifo-size = <32>;
354*f126890aSEmmanuel Vadot				status = "disabled";
355*f126890aSEmmanuel Vadot			};
356*f126890aSEmmanuel Vadot
357*f126890aSEmmanuel Vadot			spi3: spi@400 {
358*f126890aSEmmanuel Vadot				compatible = "atmel,at91rm9200-spi";
359*f126890aSEmmanuel Vadot				reg = <0x400 0x200>;
360*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
361*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(9)>,
362*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(8)>;
363*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
364*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
365*f126890aSEmmanuel Vadot				clock-names = "spi_clk";
366*f126890aSEmmanuel Vadot				atmel,fifo-size = <32>;
367*f126890aSEmmanuel Vadot				#address-cells = <1>;
368*f126890aSEmmanuel Vadot				#size-cells = <0>;
369*f126890aSEmmanuel Vadot				status = "disabled";
370*f126890aSEmmanuel Vadot			};
371*f126890aSEmmanuel Vadot
372*f126890aSEmmanuel Vadot			i2c3: i2c@600 {
373*f126890aSEmmanuel Vadot				compatible = "microchip,sam9x60-i2c";
374*f126890aSEmmanuel Vadot				reg = <0x600 0x200>;
375*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
376*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(9)>,
377*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(8)>;
378*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
379*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
380*f126890aSEmmanuel Vadot				#address-cells = <1>;
381*f126890aSEmmanuel Vadot				#size-cells = <0>;
382*f126890aSEmmanuel Vadot				status = "disabled";
383*f126890aSEmmanuel Vadot			};
384*f126890aSEmmanuel Vadot		};
385*f126890aSEmmanuel Vadot
386*f126890aSEmmanuel Vadot		dma0: dma-controller@e0068000 {
387*f126890aSEmmanuel Vadot			compatible = "microchip,sama7g5-dma";
388*f126890aSEmmanuel Vadot			reg = <0xe0068000 0x1000>;
389*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
390*f126890aSEmmanuel Vadot			#dma-cells = <1>;
391*f126890aSEmmanuel Vadot			clocks = <&nic_clk>;
392*f126890aSEmmanuel Vadot			clock-names = "dma_clk";
393*f126890aSEmmanuel Vadot		};
394*f126890aSEmmanuel Vadot
395*f126890aSEmmanuel Vadot		sha: crypto@e006c000 {
396*f126890aSEmmanuel Vadot			compatible = "atmel,at91sam9g46-sha";
397*f126890aSEmmanuel Vadot			reg = <0xe006c000 0xec>;
398*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
399*f126890aSEmmanuel Vadot			dmas = <&dma0 AT91_XDMAC_DT_PERID(14)>;
400*f126890aSEmmanuel Vadot			dma-names = "tx";
401*f126890aSEmmanuel Vadot			clocks = <&nic_clk>;
402*f126890aSEmmanuel Vadot			clock-names = "sha_clk";
403*f126890aSEmmanuel Vadot		};
404*f126890aSEmmanuel Vadot
405*f126890aSEmmanuel Vadot		flx4: flexcom@e0070000 {
406*f126890aSEmmanuel Vadot			compatible = "atmel,sama5d2-flexcom";
407*f126890aSEmmanuel Vadot			reg = <0xe0070000 0x100>;
408*f126890aSEmmanuel Vadot			clocks = <&clks GCK_ID_FLEXCOM4>;
409*f126890aSEmmanuel Vadot			#address-cells = <1>;
410*f126890aSEmmanuel Vadot			#size-cells = <1>;
411*f126890aSEmmanuel Vadot			ranges = <0x0 0xe0070000 0x800>;
412*f126890aSEmmanuel Vadot			status = "disabled";
413*f126890aSEmmanuel Vadot
414*f126890aSEmmanuel Vadot			usart4: serial@200 {
415*f126890aSEmmanuel Vadot				compatible = "atmel,at91sam9260-usart";
416*f126890aSEmmanuel Vadot				reg = <0x200 0x200>;
417*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
418*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(11)>,
419*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(10)>;
420*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
421*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
422*f126890aSEmmanuel Vadot				clock-names = "usart";
423*f126890aSEmmanuel Vadot				atmel,fifo-size = <32>;
424*f126890aSEmmanuel Vadot				status = "disabled";
425*f126890aSEmmanuel Vadot			};
426*f126890aSEmmanuel Vadot
427*f126890aSEmmanuel Vadot			spi4: spi@400 {
428*f126890aSEmmanuel Vadot				compatible = "atmel,at91rm9200-spi";
429*f126890aSEmmanuel Vadot				reg = <0x400 0x200>;
430*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
431*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(11)>,
432*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(10)>;
433*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
434*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
435*f126890aSEmmanuel Vadot				clock-names = "spi_clk";
436*f126890aSEmmanuel Vadot				atmel,fifo-size = <32>;
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			i2c4: i2c@600 {
443*f126890aSEmmanuel Vadot				compatible = "microchip,sam9x60-i2c";
444*f126890aSEmmanuel Vadot				reg = <0x600 0x200>;
445*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
446*f126890aSEmmanuel Vadot				dmas = <&dma0 AT91_XDMAC_DT_PERID(11)>,
447*f126890aSEmmanuel Vadot				       <&dma0 AT91_XDMAC_DT_PERID(10)>;
448*f126890aSEmmanuel Vadot				dma-names = "tx", "rx";
449*f126890aSEmmanuel Vadot				clocks = <&nic_clk>;
450*f126890aSEmmanuel Vadot				#address-cells = <1>;
451*f126890aSEmmanuel Vadot				#size-cells = <0>;
452*f126890aSEmmanuel Vadot				status = "disabled";
453*f126890aSEmmanuel Vadot			};
454*f126890aSEmmanuel Vadot		};
455*f126890aSEmmanuel Vadot
456*f126890aSEmmanuel Vadot		timer0: timer@e008c000 {
457*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-timer";
458*f126890aSEmmanuel Vadot			reg = <0xe008c000 0x400>;
459*f126890aSEmmanuel Vadot			clocks = <&nic_clk>;
460*f126890aSEmmanuel Vadot			clock-names = "timer";
461*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
462*f126890aSEmmanuel Vadot		};
463*f126890aSEmmanuel Vadot
464*f126890aSEmmanuel Vadot		watchdog: watchdog@e0090000 {
465*f126890aSEmmanuel Vadot			compatible = "snps,dw-wdt";
466*f126890aSEmmanuel Vadot			reg = <0xe0090000 0x1000>;
467*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
468*f126890aSEmmanuel Vadot			clocks = <&nic_clk>;
469*f126890aSEmmanuel Vadot			status = "disabled";
470*f126890aSEmmanuel Vadot		};
471*f126890aSEmmanuel Vadot
472*f126890aSEmmanuel Vadot		cpu_ctrl: syscon@e00c0000 {
473*f126890aSEmmanuel Vadot			compatible = "microchip,lan966x-cpu-syscon", "syscon";
474*f126890aSEmmanuel Vadot			reg = <0xe00c0000 0x350>;
475*f126890aSEmmanuel Vadot		};
476*f126890aSEmmanuel Vadot
477*f126890aSEmmanuel Vadot		can0: can@e081c000 {
478*f126890aSEmmanuel Vadot			compatible = "bosch,m_can";
479*f126890aSEmmanuel Vadot			reg = <0xe081c000 0xfc>, <0x00100000 0x4000>;
480*f126890aSEmmanuel Vadot			reg-names = "m_can", "message_ram";
481*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
482*f126890aSEmmanuel Vadot				     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
483*f126890aSEmmanuel Vadot			interrupt-names = "int0", "int1";
484*f126890aSEmmanuel Vadot			clocks = <&clks GCK_ID_MCAN0>, <&clks GCK_ID_MCAN0>;
485*f126890aSEmmanuel Vadot			clock-names = "hclk", "cclk";
486*f126890aSEmmanuel Vadot			assigned-clocks = <&clks GCK_ID_MCAN0>;
487*f126890aSEmmanuel Vadot			assigned-clock-rates = <40000000>;
488*f126890aSEmmanuel Vadot			bosch,mram-cfg = <0x0 0 0 64 0 0 32 32>;
489*f126890aSEmmanuel Vadot			status = "disabled";
490*f126890aSEmmanuel Vadot		};
491*f126890aSEmmanuel Vadot
492*f126890aSEmmanuel Vadot		can1: can@e0820000 {
493*f126890aSEmmanuel Vadot			compatible = "bosch,m_can";
494*f126890aSEmmanuel Vadot			reg = <0xe0820000 0xfc>, <0x00100000 0x8000>;
495*f126890aSEmmanuel Vadot			reg-names = "m_can", "message_ram";
496*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
497*f126890aSEmmanuel Vadot				     <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
498*f126890aSEmmanuel Vadot			interrupt-names = "int0", "int1";
499*f126890aSEmmanuel Vadot			clocks = <&clks GCK_ID_MCAN1>, <&clks GCK_ID_MCAN1>;
500*f126890aSEmmanuel Vadot			clock-names = "hclk", "cclk";
501*f126890aSEmmanuel Vadot			assigned-clocks = <&clks GCK_ID_MCAN1>;
502*f126890aSEmmanuel Vadot			assigned-clock-rates = <40000000>;
503*f126890aSEmmanuel Vadot			bosch,mram-cfg = <0x4000 0 0 64 0 0 32 32>;
504*f126890aSEmmanuel Vadot			status = "disabled";
505*f126890aSEmmanuel Vadot		};
506*f126890aSEmmanuel Vadot
507*f126890aSEmmanuel Vadot		reset: reset-controller@e200400c {
508*f126890aSEmmanuel Vadot			compatible = "microchip,lan966x-switch-reset";
509*f126890aSEmmanuel Vadot			reg = <0xe200400c 0x4>;
510*f126890aSEmmanuel Vadot			reg-names = "gcb";
511*f126890aSEmmanuel Vadot			#reset-cells = <1>;
512*f126890aSEmmanuel Vadot			cpu-syscon = <&cpu_ctrl>;
513*f126890aSEmmanuel Vadot		};
514*f126890aSEmmanuel Vadot
515*f126890aSEmmanuel Vadot		gpio: pinctrl@e2004064 {
516*f126890aSEmmanuel Vadot			compatible = "microchip,lan966x-pinctrl";
517*f126890aSEmmanuel Vadot			reg = <0xe2004064 0xb4>,
518*f126890aSEmmanuel Vadot			    <0xe2010024 0x138>;
519*f126890aSEmmanuel Vadot			resets = <&reset 0>;
520*f126890aSEmmanuel Vadot			reset-names = "switch";
521*f126890aSEmmanuel Vadot			gpio-controller;
522*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
523*f126890aSEmmanuel Vadot			gpio-ranges = <&gpio 0 0 78>;
524*f126890aSEmmanuel Vadot			interrupt-controller;
525*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
526*f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
527*f126890aSEmmanuel Vadot		};
528*f126890aSEmmanuel Vadot
529*f126890aSEmmanuel Vadot		mdio0: mdio@e2004118 {
530*f126890aSEmmanuel Vadot			compatible = "microchip,lan966x-miim";
531*f126890aSEmmanuel Vadot			#address-cells = <1>;
532*f126890aSEmmanuel Vadot			#size-cells = <0>;
533*f126890aSEmmanuel Vadot			reg = <0xe2004118 0x24>;
534*f126890aSEmmanuel Vadot			clocks = <&sys_clk>;
535*f126890aSEmmanuel Vadot			status = "disabled";
536*f126890aSEmmanuel Vadot		};
537*f126890aSEmmanuel Vadot
538*f126890aSEmmanuel Vadot		mdio1: mdio@e200413c {
539*f126890aSEmmanuel Vadot			compatible = "microchip,lan966x-miim";
540*f126890aSEmmanuel Vadot			#address-cells = <1>;
541*f126890aSEmmanuel Vadot			#size-cells = <0>;
542*f126890aSEmmanuel Vadot			reg = <0xe200413c 0x24>,
543*f126890aSEmmanuel Vadot			      <0xe2010020 0x4>;
544*f126890aSEmmanuel Vadot			clocks = <&sys_clk>;
545*f126890aSEmmanuel Vadot			status = "disabled";
546*f126890aSEmmanuel Vadot
547*f126890aSEmmanuel Vadot			phy0: ethernet-phy@1 {
548*f126890aSEmmanuel Vadot				reg = <1>;
549*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
550*f126890aSEmmanuel Vadot				status = "disabled";
551*f126890aSEmmanuel Vadot			};
552*f126890aSEmmanuel Vadot
553*f126890aSEmmanuel Vadot			phy1: ethernet-phy@2 {
554*f126890aSEmmanuel Vadot				reg = <2>;
555*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
556*f126890aSEmmanuel Vadot				status = "disabled";
557*f126890aSEmmanuel Vadot			};
558*f126890aSEmmanuel Vadot		};
559*f126890aSEmmanuel Vadot
560*f126890aSEmmanuel Vadot		sgpio: gpio@e2004190 {
561*f126890aSEmmanuel Vadot			compatible = "microchip,sparx5-sgpio";
562*f126890aSEmmanuel Vadot			reg = <0xe2004190 0x118>;
563*f126890aSEmmanuel Vadot			clocks = <&sys_clk>;
564*f126890aSEmmanuel Vadot			resets = <&reset 0>;
565*f126890aSEmmanuel Vadot			reset-names = "switch";
566*f126890aSEmmanuel Vadot			#address-cells = <1>;
567*f126890aSEmmanuel Vadot			#size-cells = <0>;
568*f126890aSEmmanuel Vadot			status = "disabled";
569*f126890aSEmmanuel Vadot
570*f126890aSEmmanuel Vadot			sgpio_in: gpio@0 {
571*f126890aSEmmanuel Vadot				compatible = "microchip,sparx5-sgpio-bank";
572*f126890aSEmmanuel Vadot				reg = <0>;
573*f126890aSEmmanuel Vadot				gpio-controller;
574*f126890aSEmmanuel Vadot				#gpio-cells = <3>;
575*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
576*f126890aSEmmanuel Vadot				interrupt-controller;
577*f126890aSEmmanuel Vadot				#interrupt-cells = <3>;
578*f126890aSEmmanuel Vadot			};
579*f126890aSEmmanuel Vadot
580*f126890aSEmmanuel Vadot			sgpio_out: gpio@1 {
581*f126890aSEmmanuel Vadot				compatible = "microchip,sparx5-sgpio-bank";
582*f126890aSEmmanuel Vadot				reg = <1>;
583*f126890aSEmmanuel Vadot				gpio-controller;
584*f126890aSEmmanuel Vadot				#gpio-cells = <3>;
585*f126890aSEmmanuel Vadot			};
586*f126890aSEmmanuel Vadot		};
587*f126890aSEmmanuel Vadot
588*f126890aSEmmanuel Vadot		hwmon: hwmon@e2010180 {
589*f126890aSEmmanuel Vadot			compatible = "microchip,lan9668-hwmon";
590*f126890aSEmmanuel Vadot			reg = <0xe2010180 0xc>,
591*f126890aSEmmanuel Vadot			      <0xe20042a8 0xc>;
592*f126890aSEmmanuel Vadot			reg-names = "pvt", "fan";
593*f126890aSEmmanuel Vadot			clocks = <&sys_clk>;
594*f126890aSEmmanuel Vadot		};
595*f126890aSEmmanuel Vadot
596*f126890aSEmmanuel Vadot		serdes: serdes@e202c000 {
597*f126890aSEmmanuel Vadot			compatible = "microchip,lan966x-serdes";
598*f126890aSEmmanuel Vadot			reg = <0xe202c000 0x9c>,
599*f126890aSEmmanuel Vadot			      <0xe2004010 0x4>;
600*f126890aSEmmanuel Vadot			#phy-cells = <2>;
601*f126890aSEmmanuel Vadot			status = "disabled";
602*f126890aSEmmanuel Vadot		};
603*f126890aSEmmanuel Vadot
604*f126890aSEmmanuel Vadot		gic: interrupt-controller@e8c11000 {
605*f126890aSEmmanuel Vadot			compatible = "arm,gic-400", "arm,cortex-a7-gic";
606*f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
607*f126890aSEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
608*f126890aSEmmanuel Vadot			interrupt-controller;
609*f126890aSEmmanuel Vadot			reg = <0xe8c11000 0x1000>,
610*f126890aSEmmanuel Vadot			      <0xe8c12000 0x2000>,
611*f126890aSEmmanuel Vadot			      <0xe8c14000 0x2000>,
612*f126890aSEmmanuel Vadot			      <0xe8c16000 0x2000>;
613*f126890aSEmmanuel Vadot		};
614*f126890aSEmmanuel Vadot	};
615*f126890aSEmmanuel Vadot};
616