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