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