1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * at91-sama5d27_wlsom1_ek.dts - Device Tree file for SAMA5D27 WLSOM1 EK
4*f126890aSEmmanuel Vadot *
5*f126890aSEmmanuel Vadot * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
6*f126890aSEmmanuel Vadot *
7*f126890aSEmmanuel Vadot * Author: Nicolas Ferre <nicolas.ferre@microcihp.com>
8*f126890aSEmmanuel Vadot */
9*f126890aSEmmanuel Vadot/dts-v1/;
10*f126890aSEmmanuel Vadot#include "at91-sama5d27_wlsom1.dtsi"
11*f126890aSEmmanuel Vadot#include <dt-bindings/input/input.h>
12*f126890aSEmmanuel Vadot
13*f126890aSEmmanuel Vadot/ {
14*f126890aSEmmanuel Vadot	model = "Microchip SAMA5D27 WLSOM1 EK";
15*f126890aSEmmanuel Vadot	compatible = "microchip,sama5d27-wlsom1-ek", "microchip,sama5d27-wlsom1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";
16*f126890aSEmmanuel Vadot
17*f126890aSEmmanuel Vadot	aliases {
18*f126890aSEmmanuel Vadot		serial0 = &uart0;	/* DBGU */
19*f126890aSEmmanuel Vadot		serial1 = &uart6;	/* BT */
20*f126890aSEmmanuel Vadot		serial2 = &uart5;	/* mikro BUS 2 */
21*f126890aSEmmanuel Vadot		serial3 = &uart3;	/* mikro BUS 1 */
22*f126890aSEmmanuel Vadot		i2c1 = &i2c1;
23*f126890aSEmmanuel Vadot	};
24*f126890aSEmmanuel Vadot
25*f126890aSEmmanuel Vadot	chosen {
26*f126890aSEmmanuel Vadot		stdout-path = "serial0:115200n8";
27*f126890aSEmmanuel Vadot	};
28*f126890aSEmmanuel Vadot
29*f126890aSEmmanuel Vadot	gpio-keys {
30*f126890aSEmmanuel Vadot		compatible = "gpio-keys";
31*f126890aSEmmanuel Vadot
32*f126890aSEmmanuel Vadot		pinctrl-names = "default";
33*f126890aSEmmanuel Vadot		pinctrl-0 = <&pinctrl_key_gpio_default>;
34*f126890aSEmmanuel Vadot
35*f126890aSEmmanuel Vadot		button-1 {
36*f126890aSEmmanuel Vadot			label = "USER BUTTON";
37*f126890aSEmmanuel Vadot			gpios = <&pioA PIN_PB2 GPIO_ACTIVE_LOW>;
38*f126890aSEmmanuel Vadot			linux,code = <KEY_PROG1>;
39*f126890aSEmmanuel Vadot			wakeup-source;
40*f126890aSEmmanuel Vadot		};
41*f126890aSEmmanuel Vadot	};
42*f126890aSEmmanuel Vadot
43*f126890aSEmmanuel Vadot	leds {
44*f126890aSEmmanuel Vadot		compatible = "gpio-leds";
45*f126890aSEmmanuel Vadot		pinctrl-names = "default";
46*f126890aSEmmanuel Vadot		pinctrl-0 = <&pinctrl_led_gpio_default>;
47*f126890aSEmmanuel Vadot		status = "okay";
48*f126890aSEmmanuel Vadot
49*f126890aSEmmanuel Vadot		led-red {
50*f126890aSEmmanuel Vadot			label = "red";
51*f126890aSEmmanuel Vadot			gpios = <&pioA PIN_PA6 GPIO_ACTIVE_HIGH>;
52*f126890aSEmmanuel Vadot		};
53*f126890aSEmmanuel Vadot
54*f126890aSEmmanuel Vadot		led-green {
55*f126890aSEmmanuel Vadot			label = "green";
56*f126890aSEmmanuel Vadot			gpios = <&pioA PIN_PA7 GPIO_ACTIVE_HIGH>;
57*f126890aSEmmanuel Vadot		};
58*f126890aSEmmanuel Vadot
59*f126890aSEmmanuel Vadot		led-blue {
60*f126890aSEmmanuel Vadot			label = "blue";
61*f126890aSEmmanuel Vadot			gpios = <&pioA PIN_PA8 GPIO_ACTIVE_HIGH>;
62*f126890aSEmmanuel Vadot			linux,default-trigger = "heartbeat";
63*f126890aSEmmanuel Vadot		};
64*f126890aSEmmanuel Vadot	};
65*f126890aSEmmanuel Vadot};
66*f126890aSEmmanuel Vadot
67*f126890aSEmmanuel Vadot&adc {
68*f126890aSEmmanuel Vadot	vddana-supply = <&vdd_3v3>;
69*f126890aSEmmanuel Vadot	vref-supply = <&vdd_3v3>;
70*f126890aSEmmanuel Vadot	pinctrl-names = "default";
71*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_adc_default>;
72*f126890aSEmmanuel Vadot	status = "okay";
73*f126890aSEmmanuel Vadot};
74*f126890aSEmmanuel Vadot
75*f126890aSEmmanuel Vadot&flx0 {
76*f126890aSEmmanuel Vadot	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
77*f126890aSEmmanuel Vadot	status = "okay";
78*f126890aSEmmanuel Vadot
79*f126890aSEmmanuel Vadot	uart5: serial@200 {
80*f126890aSEmmanuel Vadot		pinctrl-0 = <&pinctrl_flx0_default>;
81*f126890aSEmmanuel Vadot		pinctrl-names = "default";
82*f126890aSEmmanuel Vadot		atmel,use-dma-rx;
83*f126890aSEmmanuel Vadot		atmel,use-dma-tx;
84*f126890aSEmmanuel Vadot		status = "okay";
85*f126890aSEmmanuel Vadot	};
86*f126890aSEmmanuel Vadot};
87*f126890aSEmmanuel Vadot
88*f126890aSEmmanuel Vadot&flx1 {
89*f126890aSEmmanuel Vadot	status = "okay";
90*f126890aSEmmanuel Vadot
91*f126890aSEmmanuel Vadot	uart6: serial@200 {
92*f126890aSEmmanuel Vadot		atmel,use-dma-rx;
93*f126890aSEmmanuel Vadot		atmel,use-dma-tx;
94*f126890aSEmmanuel Vadot		status = "okay";
95*f126890aSEmmanuel Vadot	};
96*f126890aSEmmanuel Vadot};
97*f126890aSEmmanuel Vadot
98*f126890aSEmmanuel Vadot&macb0 {
99*f126890aSEmmanuel Vadot	status = "okay";
100*f126890aSEmmanuel Vadot};
101*f126890aSEmmanuel Vadot
102*f126890aSEmmanuel Vadot&pioA {
103*f126890aSEmmanuel Vadot	/*
104*f126890aSEmmanuel Vadot	 * There is no real pinmux for ADC, if the pin
105*f126890aSEmmanuel Vadot	 * is not requested by another peripheral then
106*f126890aSEmmanuel Vadot	 * the muxing is done when channel is enabled.
107*f126890aSEmmanuel Vadot	 * Requesting pins for ADC is GPIO is
108*f126890aSEmmanuel Vadot	 * encouraged to prevent conflicts and to
109*f126890aSEmmanuel Vadot	 * disable bias in order to be in the same
110*f126890aSEmmanuel Vadot	 * state when the pin is not muxed to the adc.
111*f126890aSEmmanuel Vadot	 */
112*f126890aSEmmanuel Vadot	pinctrl_adc_default: adc_default {
113*f126890aSEmmanuel Vadot		pinmux = <PIN_PD25__GPIO>,
114*f126890aSEmmanuel Vadot			 <PIN_PD26__GPIO>;
115*f126890aSEmmanuel Vadot		bias-disable;
116*f126890aSEmmanuel Vadot	};
117*f126890aSEmmanuel Vadot
118*f126890aSEmmanuel Vadot	pinctrl_flx0_default: flx0_usart_default {
119*f126890aSEmmanuel Vadot		pinmux = <PIN_PB28__FLEXCOM0_IO0>,
120*f126890aSEmmanuel Vadot			 <PIN_PB29__FLEXCOM0_IO1>;
121*f126890aSEmmanuel Vadot		bias-disable;
122*f126890aSEmmanuel Vadot	};
123*f126890aSEmmanuel Vadot
124*f126890aSEmmanuel Vadot	pinctrl_key_gpio_default: key_gpio_default {
125*f126890aSEmmanuel Vadot		pinmux = <PIN_PB2__GPIO>;
126*f126890aSEmmanuel Vadot		bias-pull-up;
127*f126890aSEmmanuel Vadot	};
128*f126890aSEmmanuel Vadot
129*f126890aSEmmanuel Vadot	pinctrl_led_gpio_default: led_gpio_default {
130*f126890aSEmmanuel Vadot		pinmux = <PIN_PA6__GPIO>,
131*f126890aSEmmanuel Vadot			 <PIN_PA7__GPIO>,
132*f126890aSEmmanuel Vadot			 <PIN_PA8__GPIO>;
133*f126890aSEmmanuel Vadot		bias-pull-down;
134*f126890aSEmmanuel Vadot	};
135*f126890aSEmmanuel Vadot
136*f126890aSEmmanuel Vadot	pinctrl_sdmmc0_default: sdmmc0_default {
137*f126890aSEmmanuel Vadot		cmd_data {
138*f126890aSEmmanuel Vadot			pinmux = <PIN_PA1__SDMMC0_CMD>,
139*f126890aSEmmanuel Vadot				 <PIN_PA2__SDMMC0_DAT0>,
140*f126890aSEmmanuel Vadot				 <PIN_PA3__SDMMC0_DAT1>,
141*f126890aSEmmanuel Vadot				 <PIN_PA4__SDMMC0_DAT2>,
142*f126890aSEmmanuel Vadot				 <PIN_PA5__SDMMC0_DAT3>;
143*f126890aSEmmanuel Vadot			bias-disable;
144*f126890aSEmmanuel Vadot		};
145*f126890aSEmmanuel Vadot
146*f126890aSEmmanuel Vadot		ck_cd_vddsel {
147*f126890aSEmmanuel Vadot			pinmux = <PIN_PA0__SDMMC0_CK>,
148*f126890aSEmmanuel Vadot				 <PIN_PA11__SDMMC0_VDDSEL>,
149*f126890aSEmmanuel Vadot				 <PIN_PA12__SDMMC0_WP>,
150*f126890aSEmmanuel Vadot				 <PIN_PA13__SDMMC0_CD>;
151*f126890aSEmmanuel Vadot			bias-disable;
152*f126890aSEmmanuel Vadot		};
153*f126890aSEmmanuel Vadot	};
154*f126890aSEmmanuel Vadot
155*f126890aSEmmanuel Vadot	pinctrl_uart0_default: uart0_default {
156*f126890aSEmmanuel Vadot		pinmux = <PIN_PB26__URXD0>,
157*f126890aSEmmanuel Vadot			 <PIN_PB27__UTXD0>;
158*f126890aSEmmanuel Vadot		bias-disable;
159*f126890aSEmmanuel Vadot	};
160*f126890aSEmmanuel Vadot
161*f126890aSEmmanuel Vadot	pinctrl_uart3_default: uart3_default {
162*f126890aSEmmanuel Vadot		pinmux = <PIN_PB11__URXD3>,
163*f126890aSEmmanuel Vadot			 <PIN_PB12__UTXD3>;
164*f126890aSEmmanuel Vadot		bias-disable;
165*f126890aSEmmanuel Vadot	};
166*f126890aSEmmanuel Vadot
167*f126890aSEmmanuel Vadot	pinctrl_pwm0_default: pwm0_default {
168*f126890aSEmmanuel Vadot		pinmux = <PIN_PA31__PWML0>,
169*f126890aSEmmanuel Vadot			 <PIN_PA30__PWMH0>;
170*f126890aSEmmanuel Vadot		bias-disable;
171*f126890aSEmmanuel Vadot	};
172*f126890aSEmmanuel Vadot
173*f126890aSEmmanuel Vadot	pinctrl_usb_default: usb_default {
174*f126890aSEmmanuel Vadot		pinmux = <PIN_PA10__GPIO>;
175*f126890aSEmmanuel Vadot		bias-disable;
176*f126890aSEmmanuel Vadot	};
177*f126890aSEmmanuel Vadot
178*f126890aSEmmanuel Vadot	pinctrl_usba_vbus: usba_vbus {
179*f126890aSEmmanuel Vadot		pinmux = <PIN_PA16__GPIO>;
180*f126890aSEmmanuel Vadot		bias-disable;
181*f126890aSEmmanuel Vadot	};
182*f126890aSEmmanuel Vadot};
183*f126890aSEmmanuel Vadot
184*f126890aSEmmanuel Vadot&pwm0 {
185*f126890aSEmmanuel Vadot	pinctrl-names = "default";
186*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_pwm0_default>;
187*f126890aSEmmanuel Vadot	status = "okay";
188*f126890aSEmmanuel Vadot};
189*f126890aSEmmanuel Vadot
190*f126890aSEmmanuel Vadot&qspi1 {
191*f126890aSEmmanuel Vadot	status = "okay";
192*f126890aSEmmanuel Vadot
193*f126890aSEmmanuel Vadot	qspi1_flash: flash@0 {
194*f126890aSEmmanuel Vadot		status = "okay";
195*f126890aSEmmanuel Vadot	};
196*f126890aSEmmanuel Vadot};
197*f126890aSEmmanuel Vadot
198*f126890aSEmmanuel Vadot&sdmmc0 {
199*f126890aSEmmanuel Vadot	bus-width = <4>;
200*f126890aSEmmanuel Vadot	pinctrl-names = "default";
201*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_sdmmc0_default>;
202*f126890aSEmmanuel Vadot	status = "okay";
203*f126890aSEmmanuel Vadot};
204*f126890aSEmmanuel Vadot
205*f126890aSEmmanuel Vadot&shutdown_controller {
206*f126890aSEmmanuel Vadot	debounce-delay-us = <976>;
207*f126890aSEmmanuel Vadot	atmel,wakeup-rtc-timer;
208*f126890aSEmmanuel Vadot
209*f126890aSEmmanuel Vadot	input@0 {
210*f126890aSEmmanuel Vadot		reg = <0>;
211*f126890aSEmmanuel Vadot	};
212*f126890aSEmmanuel Vadot};
213*f126890aSEmmanuel Vadot
214*f126890aSEmmanuel Vadot&tcb0 {
215*f126890aSEmmanuel Vadot	timer0: timer@0 {
216*f126890aSEmmanuel Vadot		compatible = "atmel,tcb-timer";
217*f126890aSEmmanuel Vadot		reg = <0>;
218*f126890aSEmmanuel Vadot	};
219*f126890aSEmmanuel Vadot
220*f126890aSEmmanuel Vadot	timer1: timer@1 {
221*f126890aSEmmanuel Vadot		compatible = "atmel,tcb-timer";
222*f126890aSEmmanuel Vadot		reg = <1>;
223*f126890aSEmmanuel Vadot	};
224*f126890aSEmmanuel Vadot};
225*f126890aSEmmanuel Vadot
226*f126890aSEmmanuel Vadot&uart0 {
227*f126890aSEmmanuel Vadot	pinctrl-names = "default";
228*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart0_default>;
229*f126890aSEmmanuel Vadot	atmel,use-dma-rx;
230*f126890aSEmmanuel Vadot	atmel,use-dma-tx;
231*f126890aSEmmanuel Vadot	status = "okay";
232*f126890aSEmmanuel Vadot};
233*f126890aSEmmanuel Vadot
234*f126890aSEmmanuel Vadot&uart3 {
235*f126890aSEmmanuel Vadot	pinctrl-names = "default";
236*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart3_default>;
237*f126890aSEmmanuel Vadot	atmel,use-dma-rx;
238*f126890aSEmmanuel Vadot	atmel,use-dma-tx;
239*f126890aSEmmanuel Vadot	status = "okay";
240*f126890aSEmmanuel Vadot};
241*f126890aSEmmanuel Vadot
242*f126890aSEmmanuel Vadot&usb0 {
243*f126890aSEmmanuel Vadot	atmel,vbus-gpio = <&pioA PIN_PA16 GPIO_ACTIVE_HIGH>;
244*f126890aSEmmanuel Vadot	pinctrl-names = "default";
245*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_usba_vbus>;
246*f126890aSEmmanuel Vadot	status = "okay";
247*f126890aSEmmanuel Vadot};
248*f126890aSEmmanuel Vadot
249*f126890aSEmmanuel Vadot&usb1 {
250*f126890aSEmmanuel Vadot	num-ports = <3>;
251*f126890aSEmmanuel Vadot	atmel,vbus-gpio = <0
252*f126890aSEmmanuel Vadot			   &pioA PIN_PA10 GPIO_ACTIVE_HIGH
253*f126890aSEmmanuel Vadot			   0
254*f126890aSEmmanuel Vadot			  >;
255*f126890aSEmmanuel Vadot	pinctrl-names = "default";
256*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_usb_default>;
257*f126890aSEmmanuel Vadot	status = "okay";
258*f126890aSEmmanuel Vadot};
259*f126890aSEmmanuel Vadot
260*f126890aSEmmanuel Vadot&usb2 {
261*f126890aSEmmanuel Vadot	phy_type = "hsic";
262*f126890aSEmmanuel Vadot	status = "okay";
263*f126890aSEmmanuel Vadot};
264*f126890aSEmmanuel Vadot
265*f126890aSEmmanuel Vadot&watchdog {
266*f126890aSEmmanuel Vadot	status = "okay";
267*f126890aSEmmanuel Vadot};
268*f126890aSEmmanuel Vadot
269