1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * at91-sama5d2_icp.dts - Device Tree file for SAMA5D2-ICP board
4*724ba675SRob Herring *
5*724ba675SRob Herring *  Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
6*724ba675SRob Herring *
7*724ba675SRob Herring *	Author: Radu Pirea & Razvan Stefanescu,
8*724ba675SRob Herring *		Codrin Ciubotariu <codrin.ciubotariu@microchip.com>,
9*724ba675SRob Herring *		Cristian Birsan <cristian.birsan@microchip.com>
10*724ba675SRob Herring */
11*724ba675SRob Herring/dts-v1/;
12*724ba675SRob Herring#include "sama5d2.dtsi"
13*724ba675SRob Herring#include "sama5d2-pinfunc.h"
14*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
15*724ba675SRob Herring#include <dt-bindings/input/input.h>
16*724ba675SRob Herring#include <dt-bindings/mfd/atmel-flexcom.h>
17*724ba675SRob Herring
18*724ba675SRob Herring/ {
19*724ba675SRob Herring	model = "Microchip SAMA5D2-ICP";
20*724ba675SRob Herring	compatible = "microchip,sama5d2-icp", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";
21*724ba675SRob Herring
22*724ba675SRob Herring	aliases {
23*724ba675SRob Herring		serial0 = &uart0;	/* debug uart0 + mikro BUS 1 */
24*724ba675SRob Herring		serial1 = &uart1;	/* mikro BUS 3 */
25*724ba675SRob Herring		serial3 = &uart3;	/* mikro BUS 2 */
26*724ba675SRob Herring		serial5 = &uart7;	/* flx2 */
27*724ba675SRob Herring		i2c0 = &i2c0;
28*724ba675SRob Herring		i2c1 = &i2c1;
29*724ba675SRob Herring	};
30*724ba675SRob Herring
31*724ba675SRob Herring	chosen {
32*724ba675SRob Herring		stdout-path = "serial0:115200n8";
33*724ba675SRob Herring	};
34*724ba675SRob Herring
35*724ba675SRob Herring	clocks {
36*724ba675SRob Herring		slow_xtal {
37*724ba675SRob Herring			clock-frequency = <32768>;
38*724ba675SRob Herring		};
39*724ba675SRob Herring
40*724ba675SRob Herring		main_xtal {
41*724ba675SRob Herring			clock-frequency = <12000000>;
42*724ba675SRob Herring		};
43*724ba675SRob Herring	};
44*724ba675SRob Herring
45*724ba675SRob Herring	gpio-keys {
46*724ba675SRob Herring		compatible = "gpio-keys";
47*724ba675SRob Herring
48*724ba675SRob Herring		pinctrl-names = "default";
49*724ba675SRob Herring		pinctrl-0 = <&pinctrl_key_gpio_default>;
50*724ba675SRob Herring
51*724ba675SRob Herring		button-1 {
52*724ba675SRob Herring			label = "USER_PB1";
53*724ba675SRob Herring			gpios = <&pioA PIN_PD0 GPIO_ACTIVE_LOW>;
54*724ba675SRob Herring			linux,code = <KEY_PROG1>;
55*724ba675SRob Herring			wakeup-source;
56*724ba675SRob Herring		};
57*724ba675SRob Herring	};
58*724ba675SRob Herring
59*724ba675SRob Herring	leds {
60*724ba675SRob Herring		compatible = "gpio-leds";
61*724ba675SRob Herring		pinctrl-names = "default";
62*724ba675SRob Herring		pinctrl-0 = <&pinctrl_led_gpio_default>;
63*724ba675SRob Herring		status = "okay"; /* conflict with pwm0 */
64*724ba675SRob Herring
65*724ba675SRob Herring		led-red {
66*724ba675SRob Herring			label = "red";
67*724ba675SRob Herring			gpios = <&pioA PIN_PB0 GPIO_ACTIVE_HIGH>;
68*724ba675SRob Herring		};
69*724ba675SRob Herring
70*724ba675SRob Herring		led-green {
71*724ba675SRob Herring			label = "green";
72*724ba675SRob Herring			gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>;
73*724ba675SRob Herring		};
74*724ba675SRob Herring
75*724ba675SRob Herring		led-blue {
76*724ba675SRob Herring			label = "blue";
77*724ba675SRob Herring			gpios = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>;
78*724ba675SRob Herring			linux,default-trigger = "heartbeat";
79*724ba675SRob Herring		};
80*724ba675SRob Herring	};
81*724ba675SRob Herring};
82*724ba675SRob Herring
83*724ba675SRob Herring&adc {
84*724ba675SRob Herring	vddana-supply = <&vdd_io_reg>;
85*724ba675SRob Herring	vref-supply = <&vdd_io_reg>;
86*724ba675SRob Herring	pinctrl-names = "default";
87*724ba675SRob Herring	pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
88*724ba675SRob Herring	status = "okay";
89*724ba675SRob Herring};
90*724ba675SRob Herring
91*724ba675SRob Herring&can0 {
92*724ba675SRob Herring	pinctrl-names = "default";
93*724ba675SRob Herring	pinctrl-0 = <&pinctrl_can0_default>;
94*724ba675SRob Herring	status = "okay";
95*724ba675SRob Herring};
96*724ba675SRob Herring
97*724ba675SRob Herring&can1 {
98*724ba675SRob Herring	pinctrl-names = "default";
99*724ba675SRob Herring	pinctrl-0 = <&pinctrl_can1_default>;
100*724ba675SRob Herring	status = "okay";
101*724ba675SRob Herring};
102*724ba675SRob Herring
103*724ba675SRob Herring&flx0 { /* mikrobus2 spi */
104*724ba675SRob Herring	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
105*724ba675SRob Herring	status = "okay";
106*724ba675SRob Herring
107*724ba675SRob Herring	spi2: spi@400 {
108*724ba675SRob Herring		dmas = <0>, <0>;
109*724ba675SRob Herring		cs-gpios = <&pioA PIN_PC0 GPIO_ACTIVE_LOW>;
110*724ba675SRob Herring		pinctrl-names = "default";
111*724ba675SRob Herring		pinctrl-0 = <&pinctrl_mikrobus2_spi &pinctrl_ksz_spi_cs>;
112*724ba675SRob Herring		status = "okay";
113*724ba675SRob Herring		#address-cells = <1>;
114*724ba675SRob Herring		#size-cells = <0>;
115*724ba675SRob Herring
116*724ba675SRob Herring		switch0: ksz8563@0 {
117*724ba675SRob Herring			compatible = "microchip,ksz8563";
118*724ba675SRob Herring			reg = <0>;
119*724ba675SRob Herring			reset-gpios = <&pioA PIN_PD4 GPIO_ACTIVE_LOW>;
120*724ba675SRob Herring
121*724ba675SRob Herring			spi-max-frequency = <500000>;
122*724ba675SRob Herring			spi-cpha;
123*724ba675SRob Herring			spi-cpol;
124*724ba675SRob Herring
125*724ba675SRob Herring			ports {
126*724ba675SRob Herring				#address-cells = <1>;
127*724ba675SRob Herring				#size-cells = <0>;
128*724ba675SRob Herring				port@0 {
129*724ba675SRob Herring					reg = <0>;
130*724ba675SRob Herring					label = "lan1";
131*724ba675SRob Herring				};
132*724ba675SRob Herring
133*724ba675SRob Herring				port@1 {
134*724ba675SRob Herring					reg = <1>;
135*724ba675SRob Herring					label = "lan2";
136*724ba675SRob Herring				};
137*724ba675SRob Herring
138*724ba675SRob Herring				port@2 {
139*724ba675SRob Herring					reg = <2>;
140*724ba675SRob Herring					label = "cpu";
141*724ba675SRob Herring					ethernet = <&macb0>;
142*724ba675SRob Herring					phy-mode = "mii";
143*724ba675SRob Herring					fixed-link {
144*724ba675SRob Herring						speed = <100>;
145*724ba675SRob Herring						full-duplex;
146*724ba675SRob Herring					};
147*724ba675SRob Herring				};
148*724ba675SRob Herring			};
149*724ba675SRob Herring		};
150*724ba675SRob Herring	};
151*724ba675SRob Herring};
152*724ba675SRob Herring
153*724ba675SRob Herring&flx2 {
154*724ba675SRob Herring	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
155*724ba675SRob Herring	status = "okay";
156*724ba675SRob Herring
157*724ba675SRob Herring	uart7: serial@200 {
158*724ba675SRob Herring		pinctrl-0 = <&pinctrl_flx2_default>;
159*724ba675SRob Herring		pinctrl-names = "default";
160*724ba675SRob Herring		atmel,use-dma-rx;
161*724ba675SRob Herring		atmel,use-dma-tx;
162*724ba675SRob Herring		status = "okay"; /* Conflict w/ qspi1. */
163*724ba675SRob Herring	};
164*724ba675SRob Herring};
165*724ba675SRob Herring
166*724ba675SRob Herring&flx3 { /* mikrobus1 spi */
167*724ba675SRob Herring	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
168*724ba675SRob Herring	status = "okay";
169*724ba675SRob Herring
170*724ba675SRob Herring	spi5: spi@400 {
171*724ba675SRob Herring		dmas = <0>, <0>;
172*724ba675SRob Herring		pinctrl-names = "default";
173*724ba675SRob Herring		pinctrl-0 = <&pinctrl_mikrobus1_spi &pinctrl_mikrobus1_spi_cs>;
174*724ba675SRob Herring		status = "okay";
175*724ba675SRob Herring	};
176*724ba675SRob Herring};
177*724ba675SRob Herring
178*724ba675SRob Herring&flx4 {
179*724ba675SRob Herring	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
180*724ba675SRob Herring	status = "okay";
181*724ba675SRob Herring
182*724ba675SRob Herring	i2c6: i2c@600 {
183*724ba675SRob Herring		dmas = <0>, <0>;
184*724ba675SRob Herring		pinctrl-names = "default";
185*724ba675SRob Herring		pinctrl-0 = <&pinctrl_flx4_default>;
186*724ba675SRob Herring		i2c-digital-filter;
187*724ba675SRob Herring		i2c-digital-filter-width-ns = <35>;
188*724ba675SRob Herring		status = "okay";
189*724ba675SRob Herring
190*724ba675SRob Herring		mcp16502@5b {
191*724ba675SRob Herring			compatible = "microchip,mcp16502";
192*724ba675SRob Herring			reg = <0x5b>;
193*724ba675SRob Herring			status = "okay";
194*724ba675SRob Herring			lpm-gpios = <&pioBU 7 GPIO_ACTIVE_LOW>;
195*724ba675SRob Herring
196*724ba675SRob Herring			regulators {
197*724ba675SRob Herring				vdd_io_reg: VDD_IO {
198*724ba675SRob Herring					regulator-name = "VDD_IO";
199*724ba675SRob Herring					regulator-min-microvolt = <3300000>;
200*724ba675SRob Herring					regulator-max-microvolt = <3300000>;
201*724ba675SRob Herring					regulator-initial-mode = <2>;
202*724ba675SRob Herring					regulator-allowed-modes = <2>, <4>;
203*724ba675SRob Herring					regulator-always-on;
204*724ba675SRob Herring
205*724ba675SRob Herring					regulator-state-standby {
206*724ba675SRob Herring						regulator-on-in-suspend;
207*724ba675SRob Herring						regulator-mode = <4>;
208*724ba675SRob Herring					};
209*724ba675SRob Herring
210*724ba675SRob Herring					regulator-state-mem {
211*724ba675SRob Herring						regulator-off-in-suspend;
212*724ba675SRob Herring						regulator-mode = <4>;
213*724ba675SRob Herring					};
214*724ba675SRob Herring				};
215*724ba675SRob Herring
216*724ba675SRob Herring				VDD_DDR {
217*724ba675SRob Herring					regulator-name = "VDD_DDR";
218*724ba675SRob Herring					regulator-min-microvolt = <1350000>;
219*724ba675SRob Herring					regulator-max-microvolt = <1350000>;
220*724ba675SRob Herring					regulator-initial-mode = <2>;
221*724ba675SRob Herring					regulator-allowed-modes = <2>, <4>;
222*724ba675SRob Herring					regulator-always-on;
223*724ba675SRob Herring
224*724ba675SRob Herring					regulator-state-standby {
225*724ba675SRob Herring						regulator-on-in-suspend;
226*724ba675SRob Herring						regulator-mode = <4>;
227*724ba675SRob Herring					};
228*724ba675SRob Herring
229*724ba675SRob Herring					regulator-state-mem {
230*724ba675SRob Herring						regulator-on-in-suspend;
231*724ba675SRob Herring						regulator-mode = <4>;
232*724ba675SRob Herring					};
233*724ba675SRob Herring				};
234*724ba675SRob Herring
235*724ba675SRob Herring				VDD_CORE {
236*724ba675SRob Herring					regulator-name = "VDD_CORE";
237*724ba675SRob Herring					regulator-min-microvolt = <1250000>;
238*724ba675SRob Herring					regulator-max-microvolt = <1250000>;
239*724ba675SRob Herring					regulator-initial-mode = <2>;
240*724ba675SRob Herring					regulator-allowed-modes = <2>, <4>;
241*724ba675SRob Herring					regulator-always-on;
242*724ba675SRob Herring
243*724ba675SRob Herring					regulator-state-standby {
244*724ba675SRob Herring						regulator-on-in-suspend;
245*724ba675SRob Herring						regulator-mode = <4>;
246*724ba675SRob Herring					};
247*724ba675SRob Herring
248*724ba675SRob Herring					regulator-state-mem {
249*724ba675SRob Herring						regulator-off-in-suspend;
250*724ba675SRob Herring						regulator-mode = <4>;
251*724ba675SRob Herring					};
252*724ba675SRob Herring				};
253*724ba675SRob Herring
254*724ba675SRob Herring				VDD_OTHER {
255*724ba675SRob Herring					regulator-name = "VDD_OTHER";
256*724ba675SRob Herring					regulator-min-microvolt = <600000>;
257*724ba675SRob Herring					regulator-max-microvolt = <1850000>;
258*724ba675SRob Herring					regulator-initial-mode = <2>;
259*724ba675SRob Herring					regulator-allowed-modes = <2>, <4>;
260*724ba675SRob Herring
261*724ba675SRob Herring					regulator-state-standby {
262*724ba675SRob Herring						regulator-on-in-suspend;
263*724ba675SRob Herring						regulator-mode = <4>;
264*724ba675SRob Herring					};
265*724ba675SRob Herring
266*724ba675SRob Herring					regulator-state-mem {
267*724ba675SRob Herring						regulator-off-in-suspend;
268*724ba675SRob Herring						regulator-mode = <4>;
269*724ba675SRob Herring					};
270*724ba675SRob Herring				};
271*724ba675SRob Herring
272*724ba675SRob Herring				LDO1 {
273*724ba675SRob Herring					regulator-name = "LDO1";
274*724ba675SRob Herring					regulator-min-microvolt = <2500000>;
275*724ba675SRob Herring					regulator-max-microvolt = <2500000>;
276*724ba675SRob Herring					regulator-always-on;
277*724ba675SRob Herring
278*724ba675SRob Herring					regulator-state-standby {
279*724ba675SRob Herring						regulator-on-in-suspend;
280*724ba675SRob Herring					};
281*724ba675SRob Herring
282*724ba675SRob Herring					regulator-state-mem {
283*724ba675SRob Herring						regulator-off-in-suspend;
284*724ba675SRob Herring					};
285*724ba675SRob Herring				};
286*724ba675SRob Herring
287*724ba675SRob Herring				LDO2 {
288*724ba675SRob Herring					regulator-name = "LDO2";
289*724ba675SRob Herring					regulator-min-microvolt = <3300000>;
290*724ba675SRob Herring					regulator-max-microvolt = <3300000>;
291*724ba675SRob Herring					regulator-always-on;
292*724ba675SRob Herring
293*724ba675SRob Herring					regulator-state-standby {
294*724ba675SRob Herring						regulator-on-in-suspend;
295*724ba675SRob Herring					};
296*724ba675SRob Herring
297*724ba675SRob Herring					regulator-state-mem {
298*724ba675SRob Herring						regulator-off-in-suspend;
299*724ba675SRob Herring					};
300*724ba675SRob Herring				};
301*724ba675SRob Herring
302*724ba675SRob Herring			};
303*724ba675SRob Herring		};
304*724ba675SRob Herring	};
305*724ba675SRob Herring};
306*724ba675SRob Herring
307*724ba675SRob Herring&i2c0 { /* mikrobus i2c */
308*724ba675SRob Herring	pinctrl-names = "default", "gpio";
309*724ba675SRob Herring	pinctrl-0 = <&pinctrl_mikrobus_i2c>;
310*724ba675SRob Herring	pinctrl-1 = <&pinctrl_i2c0_gpio>;
311*724ba675SRob Herring	sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
312*724ba675SRob Herring	scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
313*724ba675SRob Herring	i2c-digital-filter;
314*724ba675SRob Herring	i2c-digital-filter-width-ns = <35>;
315*724ba675SRob Herring	status = "okay";
316*724ba675SRob Herring};
317*724ba675SRob Herring
318*724ba675SRob Herring&i2c1 {
319*724ba675SRob Herring	dmas = <0>, <0>;
320*724ba675SRob Herring	pinctrl-names = "default", "gpio";
321*724ba675SRob Herring	pinctrl-0 = <&pinctrl_i2c1_default>;
322*724ba675SRob Herring	pinctrl-1 = <&pinctrl_i2c1_gpio>;
323*724ba675SRob Herring	sda-gpios = <&pioA PIN_PD19 GPIO_ACTIVE_HIGH>;
324*724ba675SRob Herring	scl-gpios = <&pioA PIN_PD20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
325*724ba675SRob Herring	i2c-digital-filter;
326*724ba675SRob Herring	i2c-digital-filter-width-ns = <35>;
327*724ba675SRob Herring	status = "okay";
328*724ba675SRob Herring
329*724ba675SRob Herring	eeprom@50 {
330*724ba675SRob Herring		compatible = "atmel,24c02";
331*724ba675SRob Herring		reg = <0x50>;
332*724ba675SRob Herring		pagesize = <16>;
333*724ba675SRob Herring		status = "okay";
334*724ba675SRob Herring	};
335*724ba675SRob Herring
336*724ba675SRob Herring	eeprom@52 {
337*724ba675SRob Herring		compatible = "atmel,24c02";
338*724ba675SRob Herring		reg = <0x52>;
339*724ba675SRob Herring		pagesize = <16>;
340*724ba675SRob Herring		status = "disabled";
341*724ba675SRob Herring	};
342*724ba675SRob Herring
343*724ba675SRob Herring	eeprom@53 {
344*724ba675SRob Herring		compatible = "atmel,24c02";
345*724ba675SRob Herring		reg = <0x53>;
346*724ba675SRob Herring		pagesize = <16>;
347*724ba675SRob Herring		status = "disabled";
348*724ba675SRob Herring	};
349*724ba675SRob Herring};
350*724ba675SRob Herring
351*724ba675SRob Herring&macb0 {
352*724ba675SRob Herring	pinctrl-names = "default";
353*724ba675SRob Herring	pinctrl-0 = <&pinctrl_macb0_default &pinctrl_macb0_phy_irq &pinctrl_macb0_rst>;
354*724ba675SRob Herring	phy-mode = "mii";
355*724ba675SRob Herring	status = "okay";
356*724ba675SRob Herring
357*724ba675SRob Herring	fixed-link {
358*724ba675SRob Herring		speed = <100>;
359*724ba675SRob Herring		full-duplex;
360*724ba675SRob Herring	};
361*724ba675SRob Herring};
362*724ba675SRob Herring
363*724ba675SRob Herring&pioA {
364*724ba675SRob Herring	pinctrl_adc_default: adc_default {
365*724ba675SRob Herring		pinmux = <PIN_PD24__GPIO>,
366*724ba675SRob Herring				<PIN_PD25__GPIO>,
367*724ba675SRob Herring				<PIN_PD26__GPIO>;
368*724ba675SRob Herring		bias-disable;
369*724ba675SRob Herring	};
370*724ba675SRob Herring
371*724ba675SRob Herring	/*
372*724ba675SRob Herring	 * The ADTRG pin can work on any edge type.
373*724ba675SRob Herring	 * In here it's being pulled up, so need to
374*724ba675SRob Herring	 * connect it to ground to get an edge e.g.
375*724ba675SRob Herring	 * Trigger can be configured on falling, rise
376*724ba675SRob Herring	 * or any edge, and the pull-up can be changed
377*724ba675SRob Herring	 * to pull-down or left floating according to
378*724ba675SRob Herring	 * needs.
379*724ba675SRob Herring	 */
380*724ba675SRob Herring	pinctrl_adtrg_default: adtrg_default {
381*724ba675SRob Herring		pinmux = <PIN_PD31__ADTRG>;
382*724ba675SRob Herring		bias-pull-up;
383*724ba675SRob Herring	};
384*724ba675SRob Herring
385*724ba675SRob Herring	pinctrl_flx4_default: flx4_default {
386*724ba675SRob Herring		pinmux = <PIN_PC28__FLEXCOM4_IO0>,
387*724ba675SRob Herring			 <PIN_PC29__FLEXCOM4_IO1>;
388*724ba675SRob Herring		bias-disable;
389*724ba675SRob Herring	};
390*724ba675SRob Herring
391*724ba675SRob Herring	pinctrl_can0_default: can0_default {
392*724ba675SRob Herring		pinmux = <PIN_PC10__CANTX0>,
393*724ba675SRob Herring			 <PIN_PC11__CANRX0>;
394*724ba675SRob Herring		bias-disable;
395*724ba675SRob Herring	};
396*724ba675SRob Herring
397*724ba675SRob Herring	pinctrl_can1_default: can1_default {
398*724ba675SRob Herring		pinmux = <PIN_PC26__CANTX1>,
399*724ba675SRob Herring			 <PIN_PC27__CANRX1>;
400*724ba675SRob Herring		bias-disable;
401*724ba675SRob Herring	};
402*724ba675SRob Herring
403*724ba675SRob Herring	pinctrl_i2c1_default: i2c1_default {
404*724ba675SRob Herring		pinmux = <PIN_PD19__TWD1>,
405*724ba675SRob Herring			 <PIN_PD20__TWCK1>;
406*724ba675SRob Herring		bias-disable;
407*724ba675SRob Herring	};
408*724ba675SRob Herring
409*724ba675SRob Herring	pinctrl_i2c1_gpio: i2c1_gpio {
410*724ba675SRob Herring                pinmux = <PIN_PD19__GPIO>,
411*724ba675SRob Herring                         <PIN_PD20__GPIO>;
412*724ba675SRob Herring                bias-disable;
413*724ba675SRob Herring        };
414*724ba675SRob Herring
415*724ba675SRob Herring	pinctrl_key_gpio_default: key_gpio_default {
416*724ba675SRob Herring		pinmux = <PIN_PD0__GPIO>;
417*724ba675SRob Herring		bias-pull-up;
418*724ba675SRob Herring	};
419*724ba675SRob Herring
420*724ba675SRob Herring	pinctrl_led_gpio_default: led_gpio_default {
421*724ba675SRob Herring		pinmux = <PIN_PB0__GPIO>,
422*724ba675SRob Herring			 <PIN_PB1__GPIO>,
423*724ba675SRob Herring			 <PIN_PA31__GPIO>;
424*724ba675SRob Herring		bias-pull-up;
425*724ba675SRob Herring	};
426*724ba675SRob Herring
427*724ba675SRob Herring	pinctrl_qspi1_default: qspi1_default {
428*724ba675SRob Herring		pinmux = <PIN_PA6__QSPI1_SCK>,
429*724ba675SRob Herring			 <PIN_PA7__QSPI1_IO0>,
430*724ba675SRob Herring			 <PIN_PA8__QSPI1_IO1>,
431*724ba675SRob Herring			 <PIN_PA9__QSPI1_IO2>,
432*724ba675SRob Herring			 <PIN_PA10__QSPI1_IO3>,
433*724ba675SRob Herring			 <PIN_PA11__QSPI1_CS>;
434*724ba675SRob Herring		bias-disable;
435*724ba675SRob Herring	};
436*724ba675SRob Herring
437*724ba675SRob Herring	pinctrl_sdmmc0_default: sdmmc0_default {
438*724ba675SRob Herring		cmd_data {
439*724ba675SRob Herring			pinmux = <PIN_PA1__SDMMC0_CMD>,
440*724ba675SRob Herring				 <PIN_PA2__SDMMC0_DAT0>,
441*724ba675SRob Herring				 <PIN_PA3__SDMMC0_DAT1>,
442*724ba675SRob Herring				 <PIN_PA4__SDMMC0_DAT2>,
443*724ba675SRob Herring				 <PIN_PA5__SDMMC0_DAT3>;
444*724ba675SRob Herring			bias-disable;
445*724ba675SRob Herring		};
446*724ba675SRob Herring
447*724ba675SRob Herring		ck_cd {
448*724ba675SRob Herring			pinmux = <PIN_PA0__SDMMC0_CK>,
449*724ba675SRob Herring				 <PIN_PA13__SDMMC0_CD>;
450*724ba675SRob Herring			bias-disable;
451*724ba675SRob Herring		};
452*724ba675SRob Herring	};
453*724ba675SRob Herring
454*724ba675SRob Herring	pinctrl_sdmmc1_default: sdmmc1_default {
455*724ba675SRob Herring		cmd_data {
456*724ba675SRob Herring			pinmux = <PIN_PA18__SDMMC1_DAT0>,
457*724ba675SRob Herring				 <PIN_PA19__SDMMC1_DAT1>,
458*724ba675SRob Herring				 <PIN_PA20__SDMMC1_DAT2>,
459*724ba675SRob Herring				 <PIN_PA21__SDMMC1_DAT3>;
460*724ba675SRob Herring			bias-disable;
461*724ba675SRob Herring		};
462*724ba675SRob Herring
463*724ba675SRob Herring		ck_cd {
464*724ba675SRob Herring			pinmux = <PIN_PA22__SDMMC1_CK>,
465*724ba675SRob Herring				 <PIN_PA28__SDMMC1_CMD>;
466*724ba675SRob Herring			bias-disable;
467*724ba675SRob Herring		};
468*724ba675SRob Herring	};
469*724ba675SRob Herring
470*724ba675SRob Herring	pinctrl_mikrobus_i2c: mikrobus_i2c {
471*724ba675SRob Herring		pinmux = <PIN_PD22__TWCK0>,
472*724ba675SRob Herring			 <PIN_PD21__TWD0>;
473*724ba675SRob Herring		bias-disable;
474*724ba675SRob Herring	};
475*724ba675SRob Herring
476*724ba675SRob Herring	pinctrl_i2c0_gpio: i2c0_gpio {
477*724ba675SRob Herring		pinmux = <PIN_PD21__GPIO>,
478*724ba675SRob Herring			 <PIN_PD22__GPIO>;
479*724ba675SRob Herring		bias-disable;
480*724ba675SRob Herring	};
481*724ba675SRob Herring
482*724ba675SRob Herring	pinctrl_mikrobus1_an: mikrobus1_an {
483*724ba675SRob Herring		pinmux = <PIN_PD26__GPIO>;
484*724ba675SRob Herring		bias-disable;
485*724ba675SRob Herring	};
486*724ba675SRob Herring
487*724ba675SRob Herring	pinctrl_mikrobus1_rst: mikrobus1_rst {
488*724ba675SRob Herring		pinmux = <PIN_PC5__GPIO>;
489*724ba675SRob Herring		bias-disable;
490*724ba675SRob Herring	};
491*724ba675SRob Herring
492*724ba675SRob Herring	pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs {
493*724ba675SRob Herring		pinmux = <PIN_PC21__FLEXCOM3_IO3>;
494*724ba675SRob Herring		bias-disable;
495*724ba675SRob Herring	};
496*724ba675SRob Herring
497*724ba675SRob Herring	pinctrl_mikrobus1_spi: mikrobus1_spi {
498*724ba675SRob Herring		pinmux = <PIN_PC20__FLEXCOM3_IO0>,
499*724ba675SRob Herring			 <PIN_PC19__FLEXCOM3_IO1>,
500*724ba675SRob Herring			 <PIN_PC18__FLEXCOM3_IO2>;
501*724ba675SRob Herring		bias-disable;
502*724ba675SRob Herring	};
503*724ba675SRob Herring
504*724ba675SRob Herring	pinctrl_mikrobus1_pwm: mikrobus1_pwm {
505*724ba675SRob Herring		pinmux = <PIN_PC4__TIOB1>;
506*724ba675SRob Herring		bias-disable;
507*724ba675SRob Herring	};
508*724ba675SRob Herring
509*724ba675SRob Herring	pinctrl_mikrobus1_int: mikrobus1_int {
510*724ba675SRob Herring		pinmux = <PIN_PC3__GPIO>;
511*724ba675SRob Herring		bias-disable;
512*724ba675SRob Herring	};
513*724ba675SRob Herring
514*724ba675SRob Herring	pinctrl_mikrobus1_uart: mikrobus1_uart {
515*724ba675SRob Herring		pinmux = <PIN_PB26__URXD0>,
516*724ba675SRob Herring			 <PIN_PB27__UTXD0>;
517*724ba675SRob Herring		bias-disable;
518*724ba675SRob Herring	};
519*724ba675SRob Herring
520*724ba675SRob Herring	pinctrl_mikrobus2_an: mikrobus2_an {
521*724ba675SRob Herring		pinmux = <PIN_PD25__GPIO>;
522*724ba675SRob Herring		bias-disable;
523*724ba675SRob Herring	};
524*724ba675SRob Herring
525*724ba675SRob Herring	pinctrl_mikrobus2_rst: mikrobus2_rst {
526*724ba675SRob Herring		pinmux = <PIN_PB24__GPIO>;
527*724ba675SRob Herring		bias-disable;
528*724ba675SRob Herring	};
529*724ba675SRob Herring
530*724ba675SRob Herring	pinctrl_mikrobus2_spi_cs: mikrobus2_spi_cs {
531*724ba675SRob Herring		pinmux = <PIN_PB31__FLEXCOM0_IO3>;
532*724ba675SRob Herring		bias-disable;
533*724ba675SRob Herring	};
534*724ba675SRob Herring
535*724ba675SRob Herring	pinctrl_mikrobus2_spi: mikrobus2_spi {
536*724ba675SRob Herring		pinmux = <PIN_PB28__FLEXCOM0_IO0>,
537*724ba675SRob Herring			 <PIN_PB29__FLEXCOM0_IO1>,
538*724ba675SRob Herring			 <PIN_PB30__FLEXCOM0_IO2>;
539*724ba675SRob Herring		bias-disable;
540*724ba675SRob Herring	};
541*724ba675SRob Herring
542*724ba675SRob Herring	pinctrl_ksz_spi_cs: ksz_spi_cs {
543*724ba675SRob Herring		pinmux = <PIN_PC0__GPIO>;
544*724ba675SRob Herring		bias-disable;
545*724ba675SRob Herring	};
546*724ba675SRob Herring
547*724ba675SRob Herring	pinctrl_mikrobus2_pwm: mikrobus2_pwm {
548*724ba675SRob Herring		pinmux = <PIN_PB23__TIOB2>;
549*724ba675SRob Herring		bias-disable;
550*724ba675SRob Herring	};
551*724ba675SRob Herring
552*724ba675SRob Herring	pinctrl_mikrobus2_int: mikrobus2_int {
553*724ba675SRob Herring		pinmux = <PIN_PB22__GPIO>;
554*724ba675SRob Herring		bias-disable;
555*724ba675SRob Herring	};
556*724ba675SRob Herring
557*724ba675SRob Herring	pinctrl_mikrobus2_uart: mikrobus2_uart {
558*724ba675SRob Herring		pinmux = <PIN_PC12__URXD3>,
559*724ba675SRob Herring			 <PIN_PC13__UTXD3>;
560*724ba675SRob Herring		bias-disable;
561*724ba675SRob Herring	};
562*724ba675SRob Herring
563*724ba675SRob Herring	pinctrl_mikrobus3_an: mikrobus3_an {
564*724ba675SRob Herring		pinmux = <PIN_PD24__GPIO>;
565*724ba675SRob Herring		bias-disable;
566*724ba675SRob Herring	};
567*724ba675SRob Herring
568*724ba675SRob Herring	pinctrl_mikrobus3_rst: mikrobus3_rst {
569*724ba675SRob Herring		pinmux = <PIN_PB21__GPIO>;
570*724ba675SRob Herring		bias-disable;
571*724ba675SRob Herring	};
572*724ba675SRob Herring
573*724ba675SRob Herring	pinctrl_mikrobus3_spi_cs: mikrobus3_spi_cs {
574*724ba675SRob Herring		pinmux = <PIN_PA17__SPI0_NPCS0>;
575*724ba675SRob Herring		bias-disable;
576*724ba675SRob Herring	};
577*724ba675SRob Herring
578*724ba675SRob Herring	pinctrl_mikrobus3_spi: mikrobus3_spi {
579*724ba675SRob Herring		pinmux = <PIN_PA14__SPI0_SPCK>,
580*724ba675SRob Herring			 <PIN_PA16__SPI0_MISO>,
581*724ba675SRob Herring			 <PIN_PA15__SPI0_MOSI>;
582*724ba675SRob Herring		bias-disable;
583*724ba675SRob Herring	};
584*724ba675SRob Herring
585*724ba675SRob Herring	pinctrl_mikrobus3_pwm: mikrobus3_pwm {
586*724ba675SRob Herring		pinmux = <PIN_PB20__TIOB3>;
587*724ba675SRob Herring		bias-disable;
588*724ba675SRob Herring	};
589*724ba675SRob Herring
590*724ba675SRob Herring	pinctrl_mikrobus3_int: mikrobus3_int {
591*724ba675SRob Herring		pinmux = <PIN_PB18__GPIO>;
592*724ba675SRob Herring		bias-disable;
593*724ba675SRob Herring	};
594*724ba675SRob Herring
595*724ba675SRob Herring	pinctrl_mikrobus3_uart: mikrobus3_uart {
596*724ba675SRob Herring		pinmux = <PIN_PC7__URXD1>,
597*724ba675SRob Herring			 <PIN_PC8__UTXD1>;
598*724ba675SRob Herring		bias-disable;
599*724ba675SRob Herring	};
600*724ba675SRob Herring
601*724ba675SRob Herring	pinctrl_usb_default: usb_default {
602*724ba675SRob Herring		pinmux = <PIN_PC17__GPIO>;
603*724ba675SRob Herring		bias-disable;
604*724ba675SRob Herring	};
605*724ba675SRob Herring
606*724ba675SRob Herring	pinctrl_usba_vbus: usba_vbus {
607*724ba675SRob Herring		pinmux = <PIN_PD23__GPIO>;
608*724ba675SRob Herring		bias-disable;
609*724ba675SRob Herring	};
610*724ba675SRob Herring
611*724ba675SRob Herring	pinctrl_pwm0_pwm2_default: pwm0_pwm2_default {
612*724ba675SRob Herring		pinmux = <PIN_PB5__PWMH2>,
613*724ba675SRob Herring			 <PIN_PB6__PWML2>;
614*724ba675SRob Herring		bias-pull-up;
615*724ba675SRob Herring	};
616*724ba675SRob Herring
617*724ba675SRob Herring	pinctrl_macb0_default: macb0_default {
618*724ba675SRob Herring		pinmux = <PIN_PD1__GRXCK>,
619*724ba675SRob Herring			 <PIN_PD2__GTXER>,
620*724ba675SRob Herring			 <PIN_PD5__GRX2>,
621*724ba675SRob Herring			 <PIN_PD6__GRX3>,
622*724ba675SRob Herring			 <PIN_PD7__GTX2>,
623*724ba675SRob Herring			 <PIN_PD8__GTX3>,
624*724ba675SRob Herring			 <PIN_PD9__GTXCK>,
625*724ba675SRob Herring			 <PIN_PD10__GTXEN>,
626*724ba675SRob Herring			 <PIN_PD11__GRXDV>,
627*724ba675SRob Herring			 <PIN_PD12__GRXER>,
628*724ba675SRob Herring			 <PIN_PD13__GRX0>,
629*724ba675SRob Herring			 <PIN_PD14__GRX1>,
630*724ba675SRob Herring			 <PIN_PD15__GTX0>,
631*724ba675SRob Herring			 <PIN_PD16__GTX1>,
632*724ba675SRob Herring			 <PIN_PD17__GMDC>,
633*724ba675SRob Herring			 <PIN_PD18__GMDIO>;
634*724ba675SRob Herring		bias-disable;
635*724ba675SRob Herring	};
636*724ba675SRob Herring
637*724ba675SRob Herring	pinctrl_macb0_phy_irq: macb0_phy_irq {
638*724ba675SRob Herring		pinmux = <PIN_PD3__GPIO>;
639*724ba675SRob Herring		bias-disable;
640*724ba675SRob Herring	};
641*724ba675SRob Herring
642*724ba675SRob Herring	pinctrl_macb0_rst: macb0_sw_rst {
643*724ba675SRob Herring		pinmux = <PIN_PD4__GPIO>;
644*724ba675SRob Herring		bias-disable;
645*724ba675SRob Herring	};
646*724ba675SRob Herring
647*724ba675SRob Herring	pinctrl_flx2_default: flx2_default {
648*724ba675SRob Herring		pinmux = <PIN_PA6__FLEXCOM2_IO0>,
649*724ba675SRob Herring			 <PIN_PA7__FLEXCOM2_IO1>,
650*724ba675SRob Herring			 <PIN_PA9__FLEXCOM2_IO3>,
651*724ba675SRob Herring			 <PIN_PA10__FLEXCOM2_IO4>;
652*724ba675SRob Herring		bias-disable;
653*724ba675SRob Herring	};
654*724ba675SRob Herring};
655*724ba675SRob Herring
656*724ba675SRob Herring&pwm0 {
657*724ba675SRob Herring	pinctrl-names = "default";
658*724ba675SRob Herring	pinctrl-0 = <&pinctrl_pwm0_pwm2_default>;
659*724ba675SRob Herring	status = "disabled"; /* conflict with leds, HSIC */
660*724ba675SRob Herring};
661*724ba675SRob Herring
662*724ba675SRob Herring&qspi1 {
663*724ba675SRob Herring	pinctrl-names = "default";
664*724ba675SRob Herring	pinctrl-0 = <&pinctrl_qspi1_default>;
665*724ba675SRob Herring	status = "disabled"; /* Conflict with wilc_pwrseq, flx2 */
666*724ba675SRob Herring
667*724ba675SRob Herring	flash@0 {
668*724ba675SRob Herring		#address-cells = <1>;
669*724ba675SRob Herring		#size-cells = <1>;
670*724ba675SRob Herring		compatible = "jedec,spi-nor";
671*724ba675SRob Herring		reg = <0>;
672*724ba675SRob Herring		spi-max-frequency = <104000000>;
673*724ba675SRob Herring		spi-cs-setup-ns = <7>;
674*724ba675SRob Herring		spi-tx-bus-width = <4>;
675*724ba675SRob Herring		spi-rx-bus-width = <4>;
676*724ba675SRob Herring		m25p,fast-read;
677*724ba675SRob Herring
678*724ba675SRob Herring		at91bootstrap@0 {
679*724ba675SRob Herring			label = "qspi: at91bootstrap";
680*724ba675SRob Herring			reg = <0x00000000 0x00040000>;
681*724ba675SRob Herring		};
682*724ba675SRob Herring
683*724ba675SRob Herring		bootloader@40000 {
684*724ba675SRob Herring			label = "qspi: bootloader";
685*724ba675SRob Herring			reg = <0x00040000 0x000c0000>;
686*724ba675SRob Herring		};
687*724ba675SRob Herring
688*724ba675SRob Herring		bootloaderenvred@100000 {
689*724ba675SRob Herring			label = "qspi: bootloader env redundant";
690*724ba675SRob Herring			reg = <0x00100000 0x00040000>;
691*724ba675SRob Herring		};
692*724ba675SRob Herring
693*724ba675SRob Herring		bootloaderenv@140000 {
694*724ba675SRob Herring			label = "qspi: bootloader env";
695*724ba675SRob Herring			reg = <0x00140000 0x00040000>;
696*724ba675SRob Herring		};
697*724ba675SRob Herring
698*724ba675SRob Herring		dtb@180000 {
699*724ba675SRob Herring			label = "qspi: device tree";
700*724ba675SRob Herring			reg = <0x00180000 0x00080000>;
701*724ba675SRob Herring		};
702*724ba675SRob Herring
703*724ba675SRob Herring		kernel@200000 {
704*724ba675SRob Herring			label = "qspi: kernel";
705*724ba675SRob Herring			reg = <0x00200000 0x00600000>;
706*724ba675SRob Herring		};
707*724ba675SRob Herring	};
708*724ba675SRob Herring};
709*724ba675SRob Herring
710*724ba675SRob Herring&sdmmc0 {
711*724ba675SRob Herring	no-1-8-v;
712*724ba675SRob Herring	bus-width = <4>;
713*724ba675SRob Herring	pinctrl-names = "default";
714*724ba675SRob Herring	pinctrl-0 = <&pinctrl_sdmmc0_default>;
715*724ba675SRob Herring	status = "okay";
716*724ba675SRob Herring};
717*724ba675SRob Herring
718*724ba675SRob Herring&shutdown_controller {
719*724ba675SRob Herring	debounce-delay-us = <976>;
720*724ba675SRob Herring	atmel,wakeup-rtc-timer;
721*724ba675SRob Herring
722*724ba675SRob Herring	input@0 {
723*724ba675SRob Herring		reg = <0>;
724*724ba675SRob Herring	};
725*724ba675SRob Herring};
726*724ba675SRob Herring
727*724ba675SRob Herring&spi0 {  /* mikrobus3 spi */
728*724ba675SRob Herring	pinctrl-names = "default";
729*724ba675SRob Herring	pinctrl-0 = <&pinctrl_mikrobus3_spi &pinctrl_mikrobus3_spi_cs>;
730*724ba675SRob Herring	status = "okay";
731*724ba675SRob Herring};
732*724ba675SRob Herring
733*724ba675SRob Herring&tcb0 {
734*724ba675SRob Herring	timer0: timer@0 {
735*724ba675SRob Herring		compatible = "atmel,tcb-timer";
736*724ba675SRob Herring		reg = <0>;
737*724ba675SRob Herring	};
738*724ba675SRob Herring
739*724ba675SRob Herring	timer1: timer@1 {
740*724ba675SRob Herring		compatible = "atmel,tcb-timer";
741*724ba675SRob Herring		reg = <1>;
742*724ba675SRob Herring	};
743*724ba675SRob Herring};
744*724ba675SRob Herring
745*724ba675SRob Herring&uart0 {
746*724ba675SRob Herring	pinctrl-names = "default";
747*724ba675SRob Herring	pinctrl-0 = <&pinctrl_mikrobus1_uart>;
748*724ba675SRob Herring	atmel,use-dma-rx;
749*724ba675SRob Herring	atmel,use-dma-tx;
750*724ba675SRob Herring	status = "okay";
751*724ba675SRob Herring};
752*724ba675SRob Herring
753*724ba675SRob Herring&uart1 {
754*724ba675SRob Herring	pinctrl-names = "default";
755*724ba675SRob Herring	pinctrl-0 = <&pinctrl_mikrobus3_uart>;
756*724ba675SRob Herring	atmel,use-dma-rx;
757*724ba675SRob Herring	atmel,use-dma-tx;
758*724ba675SRob Herring	status = "okay";
759*724ba675SRob Herring};
760*724ba675SRob Herring
761*724ba675SRob Herring&uart3 {
762*724ba675SRob Herring	pinctrl-names = "default";
763*724ba675SRob Herring	pinctrl-0 = <&pinctrl_mikrobus2_uart>;
764*724ba675SRob Herring	atmel,use-dma-rx;
765*724ba675SRob Herring	atmel,use-dma-tx;
766*724ba675SRob Herring	status = "okay";
767*724ba675SRob Herring};
768*724ba675SRob Herring
769*724ba675SRob Herring&usb0 {
770*724ba675SRob Herring	atmel,vbus-gpio = <&pioA PIN_PD23 GPIO_ACTIVE_HIGH>;
771*724ba675SRob Herring	pinctrl-names = "default";
772*724ba675SRob Herring	pinctrl-0 = <&pinctrl_usba_vbus>;
773*724ba675SRob Herring	status = "okay";
774*724ba675SRob Herring};
775*724ba675SRob Herring
776*724ba675SRob Herring&usb1 {
777*724ba675SRob Herring	num-ports = <3>;
778*724ba675SRob Herring	pinctrl-names = "default";
779*724ba675SRob Herring	pinctrl-0 = <&pinctrl_usb_default>;
780*724ba675SRob Herring	status = "okay";
781*724ba675SRob Herring};
782*724ba675SRob Herring
783*724ba675SRob Herring&usb2 {
784*724ba675SRob Herring	phy_type = "hsic";
785*724ba675SRob Herring	status = "okay";
786*724ba675SRob Herring};
787*724ba675SRob Herring
788*724ba675SRob Herring&watchdog {
789*724ba675SRob Herring	status = "okay";
790*724ba675SRob Herring};
791