1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*724ba675SRob Herring/* 3*724ba675SRob Herring * at91-sama5d27_wlsom1.dtsi - Device Tree file for SAMA5D27 WLSOM1 4*724ba675SRob Herring * 5*724ba675SRob Herring * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries 6*724ba675SRob Herring * 7*724ba675SRob Herring * Author: Nicolas Ferre <nicolas.ferre@microcihp.com> 8*724ba675SRob Herring * Author: Eugen Hristev <eugen.hristev@microcihp.com> 9*724ba675SRob Herring */ 10*724ba675SRob Herring#include "sama5d2.dtsi" 11*724ba675SRob Herring#include "sama5d2-pinfunc.h" 12*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h> 13*724ba675SRob Herring#include <dt-bindings/mfd/atmel-flexcom.h> 14*724ba675SRob Herring#include <dt-bindings/pinctrl/at91.h> 15*724ba675SRob Herring 16*724ba675SRob Herring/ { 17*724ba675SRob Herring model = "Microchip SAMA5D27 WLSOM1"; 18*724ba675SRob Herring compatible = "microchip,sama5d27-wlsom1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5"; 19*724ba675SRob Herring 20*724ba675SRob Herring aliases { 21*724ba675SRob Herring i2c0 = &i2c0; 22*724ba675SRob Herring }; 23*724ba675SRob Herring 24*724ba675SRob Herring clocks { 25*724ba675SRob Herring slow_xtal { 26*724ba675SRob Herring clock-frequency = <32768>; 27*724ba675SRob Herring }; 28*724ba675SRob Herring 29*724ba675SRob Herring main_xtal { 30*724ba675SRob Herring clock-frequency = <24000000>; 31*724ba675SRob Herring }; 32*724ba675SRob Herring }; 33*724ba675SRob Herring 34*724ba675SRob Herring wifi_pwrseq: wifi_pwrseq { 35*724ba675SRob Herring compatible = "mmc-pwrseq-wilc1000"; 36*724ba675SRob Herring reset-gpios = <&pioA PIN_PA27 GPIO_ACTIVE_HIGH>; 37*724ba675SRob Herring powerdown-gpios = <&pioA PIN_PA29 GPIO_ACTIVE_HIGH>; 38*724ba675SRob Herring pinctrl-0 = <&pinctrl_wilc_pwrseq>; 39*724ba675SRob Herring pinctrl-names = "default"; 40*724ba675SRob Herring }; 41*724ba675SRob Herring}; 42*724ba675SRob Herring 43*724ba675SRob Herring&flx1 { 44*724ba675SRob Herring atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>; 45*724ba675SRob Herring 46*724ba675SRob Herring uart6: serial@200 { 47*724ba675SRob Herring pinctrl-0 = <&pinctrl_flx1_default>; 48*724ba675SRob Herring pinctrl-names = "default"; 49*724ba675SRob Herring }; 50*724ba675SRob Herring}; 51*724ba675SRob Herring 52*724ba675SRob Herring&i2c0 { 53*724ba675SRob Herring pinctrl-0 = <&pinctrl_i2c0_default>; 54*724ba675SRob Herring pinctrl-1 = <&pinctrl_i2c0_gpio>; 55*724ba675SRob Herring pinctrl-names = "default", "gpio"; 56*724ba675SRob Herring sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>; 57*724ba675SRob Herring scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 58*724ba675SRob Herring status = "okay"; 59*724ba675SRob Herring}; 60*724ba675SRob Herring 61*724ba675SRob Herring&i2c1 { 62*724ba675SRob Herring dmas = <0>, <0>; 63*724ba675SRob Herring pinctrl-names = "default", "gpio"; 64*724ba675SRob Herring pinctrl-0 = <&pinctrl_i2c1_default>; 65*724ba675SRob Herring pinctrl-1 = <&pinctrl_i2c1_gpio>; 66*724ba675SRob Herring sda-gpios = <&pioA PIN_PD19 GPIO_ACTIVE_HIGH>; 67*724ba675SRob Herring scl-gpios = <&pioA PIN_PD20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 68*724ba675SRob Herring status = "okay"; 69*724ba675SRob Herring 70*724ba675SRob Herring mcp16502@5b { 71*724ba675SRob Herring compatible = "microchip,mcp16502"; 72*724ba675SRob Herring reg = <0x5b>; 73*724ba675SRob Herring status = "okay"; 74*724ba675SRob Herring lpm-gpios = <&pioBU 0 GPIO_ACTIVE_LOW>; 75*724ba675SRob Herring 76*724ba675SRob Herring regulators { 77*724ba675SRob Herring vdd_3v3: VDD_IO { 78*724ba675SRob Herring regulator-name = "VDD_IO"; 79*724ba675SRob Herring regulator-min-microvolt = <3300000>; 80*724ba675SRob Herring regulator-max-microvolt = <3300000>; 81*724ba675SRob Herring regulator-initial-mode = <2>; 82*724ba675SRob Herring regulator-allowed-modes = <2>, <4>; 83*724ba675SRob Herring regulator-always-on; 84*724ba675SRob Herring 85*724ba675SRob Herring regulator-state-standby { 86*724ba675SRob Herring regulator-on-in-suspend; 87*724ba675SRob Herring regulator-mode = <4>; 88*724ba675SRob Herring }; 89*724ba675SRob Herring 90*724ba675SRob Herring regulator-state-mem { 91*724ba675SRob Herring regulator-off-in-suspend; 92*724ba675SRob Herring regulator-mode = <4>; 93*724ba675SRob Herring }; 94*724ba675SRob Herring }; 95*724ba675SRob Herring 96*724ba675SRob Herring vddio_ddr: VDD_DDR { 97*724ba675SRob Herring regulator-name = "VDD_DDR"; 98*724ba675SRob Herring regulator-min-microvolt = <1200000>; 99*724ba675SRob Herring regulator-max-microvolt = <1200000>; 100*724ba675SRob Herring regulator-initial-mode = <2>; 101*724ba675SRob Herring regulator-allowed-modes = <2>, <4>; 102*724ba675SRob Herring regulator-always-on; 103*724ba675SRob Herring 104*724ba675SRob Herring regulator-state-standby { 105*724ba675SRob Herring regulator-on-in-suspend; 106*724ba675SRob Herring regulator-suspend-microvolt = <1200000>; 107*724ba675SRob Herring regulator-changeable-in-suspend; 108*724ba675SRob Herring regulator-mode = <4>; 109*724ba675SRob Herring }; 110*724ba675SRob Herring 111*724ba675SRob Herring regulator-state-mem { 112*724ba675SRob Herring regulator-on-in-suspend; 113*724ba675SRob Herring regulator-suspend-microvolt = <1200000>; 114*724ba675SRob Herring regulator-changeable-in-suspend; 115*724ba675SRob Herring regulator-mode = <4>; 116*724ba675SRob Herring }; 117*724ba675SRob Herring }; 118*724ba675SRob Herring 119*724ba675SRob Herring vdd_core: VDD_CORE { 120*724ba675SRob Herring regulator-name = "VDD_CORE"; 121*724ba675SRob Herring regulator-min-microvolt = <1250000>; 122*724ba675SRob Herring regulator-max-microvolt = <1250000>; 123*724ba675SRob Herring regulator-initial-mode = <2>; 124*724ba675SRob Herring regulator-allowed-modes = <2>, <4>; 125*724ba675SRob Herring regulator-always-on; 126*724ba675SRob Herring 127*724ba675SRob Herring regulator-state-standby { 128*724ba675SRob Herring regulator-on-in-suspend; 129*724ba675SRob Herring regulator-mode = <4>; 130*724ba675SRob Herring }; 131*724ba675SRob Herring 132*724ba675SRob Herring regulator-state-mem { 133*724ba675SRob Herring regulator-off-in-suspend; 134*724ba675SRob Herring regulator-mode = <4>; 135*724ba675SRob Herring }; 136*724ba675SRob Herring }; 137*724ba675SRob Herring 138*724ba675SRob Herring vdd_ddr: VDD_OTHER { 139*724ba675SRob Herring regulator-name = "VDD_OTHER"; 140*724ba675SRob Herring regulator-min-microvolt = <1800000>; 141*724ba675SRob Herring regulator-max-microvolt = <1800000>; 142*724ba675SRob Herring regulator-initial-mode = <2>; 143*724ba675SRob Herring regulator-allowed-modes = <2>, <4>; 144*724ba675SRob Herring regulator-always-on; 145*724ba675SRob Herring 146*724ba675SRob Herring regulator-state-standby { 147*724ba675SRob Herring regulator-on-in-suspend; 148*724ba675SRob Herring regulator-suspend-microvolt = <1800000>; 149*724ba675SRob Herring regulator-changeable-in-suspend; 150*724ba675SRob Herring regulator-mode = <4>; 151*724ba675SRob Herring }; 152*724ba675SRob Herring 153*724ba675SRob Herring regulator-state-mem { 154*724ba675SRob Herring regulator-on-in-suspend; 155*724ba675SRob Herring regulator-suspend-microvolt = <1800000>; 156*724ba675SRob Herring regulator-changeable-in-suspend; 157*724ba675SRob Herring regulator-mode = <4>; 158*724ba675SRob Herring }; 159*724ba675SRob Herring }; 160*724ba675SRob Herring 161*724ba675SRob Herring LDO1 { 162*724ba675SRob Herring regulator-name = "LDO1"; 163*724ba675SRob Herring regulator-min-microvolt = <3300000>; 164*724ba675SRob Herring regulator-max-microvolt = <3300000>; 165*724ba675SRob Herring regulator-always-on; 166*724ba675SRob Herring 167*724ba675SRob Herring regulator-state-standby { 168*724ba675SRob Herring regulator-on-in-suspend; 169*724ba675SRob Herring }; 170*724ba675SRob Herring 171*724ba675SRob Herring regulator-state-mem { 172*724ba675SRob Herring regulator-off-in-suspend; 173*724ba675SRob Herring }; 174*724ba675SRob Herring }; 175*724ba675SRob Herring 176*724ba675SRob Herring LDO2 { 177*724ba675SRob Herring regulator-name = "LDO2"; 178*724ba675SRob Herring regulator-min-microvolt = <1800000>; 179*724ba675SRob Herring regulator-max-microvolt = <3300000>; 180*724ba675SRob Herring 181*724ba675SRob Herring regulator-state-standby { 182*724ba675SRob Herring regulator-on-in-suspend; 183*724ba675SRob Herring }; 184*724ba675SRob Herring 185*724ba675SRob Herring regulator-state-mem { 186*724ba675SRob Herring regulator-off-in-suspend; 187*724ba675SRob Herring }; 188*724ba675SRob Herring }; 189*724ba675SRob Herring }; 190*724ba675SRob Herring }; 191*724ba675SRob Herring}; 192*724ba675SRob Herring 193*724ba675SRob Herring&macb0 { 194*724ba675SRob Herring pinctrl-names = "default"; 195*724ba675SRob Herring pinctrl-0 = <&pinctrl_macb0_default>; 196*724ba675SRob Herring #address-cells = <1>; 197*724ba675SRob Herring #size-cells = <0>; 198*724ba675SRob Herring phy-mode = "rmii"; 199*724ba675SRob Herring 200*724ba675SRob Herring ethernet-phy@0 { 201*724ba675SRob Herring reg = <0x0>; 202*724ba675SRob Herring interrupt-parent = <&pioA>; 203*724ba675SRob Herring interrupts = <PIN_PB24 IRQ_TYPE_LEVEL_LOW>; 204*724ba675SRob Herring pinctrl-names = "default"; 205*724ba675SRob Herring pinctrl-0 = <&pinctrl_macb0_phy_irq>; 206*724ba675SRob Herring }; 207*724ba675SRob Herring}; 208*724ba675SRob Herring 209*724ba675SRob Herring&pmc { 210*724ba675SRob Herring atmel,osc-bypass; 211*724ba675SRob Herring}; 212*724ba675SRob Herring 213*724ba675SRob Herring&qspi1 { 214*724ba675SRob Herring pinctrl-names = "default"; 215*724ba675SRob Herring pinctrl-0 = <&pinctrl_qspi1_default>; 216*724ba675SRob Herring status = "disabled"; 217*724ba675SRob Herring 218*724ba675SRob Herring qspi1_flash: flash@0 { 219*724ba675SRob Herring #address-cells = <1>; 220*724ba675SRob Herring #size-cells = <1>; 221*724ba675SRob Herring compatible = "jedec,spi-nor"; 222*724ba675SRob Herring reg = <0>; 223*724ba675SRob Herring spi-max-frequency = <104000000>; 224*724ba675SRob Herring spi-cs-setup-ns = <7>; 225*724ba675SRob Herring spi-rx-bus-width = <4>; 226*724ba675SRob Herring spi-tx-bus-width = <4>; 227*724ba675SRob Herring m25p,fast-read; 228*724ba675SRob Herring status = "disabled"; 229*724ba675SRob Herring 230*724ba675SRob Herring at91bootstrap@0 { 231*724ba675SRob Herring label = "at91bootstrap"; 232*724ba675SRob Herring reg = <0x0 0x40000>; 233*724ba675SRob Herring }; 234*724ba675SRob Herring 235*724ba675SRob Herring bootloader@40000 { 236*724ba675SRob Herring label = "bootloader"; 237*724ba675SRob Herring reg = <0x40000 0xc0000>; 238*724ba675SRob Herring }; 239*724ba675SRob Herring 240*724ba675SRob Herring bootloaderenvred@100000 { 241*724ba675SRob Herring label = "bootloader env redundant"; 242*724ba675SRob Herring reg = <0x100000 0x40000>; 243*724ba675SRob Herring }; 244*724ba675SRob Herring 245*724ba675SRob Herring bootloaderenv@140000 { 246*724ba675SRob Herring label = "bootloader env"; 247*724ba675SRob Herring reg = <0x140000 0x40000>; 248*724ba675SRob Herring }; 249*724ba675SRob Herring 250*724ba675SRob Herring dtb@180000 { 251*724ba675SRob Herring label = "device tree"; 252*724ba675SRob Herring reg = <0x180000 0x80000>; 253*724ba675SRob Herring }; 254*724ba675SRob Herring 255*724ba675SRob Herring kernel@200000 { 256*724ba675SRob Herring label = "kernel"; 257*724ba675SRob Herring reg = <0x200000 0x600000>; 258*724ba675SRob Herring }; 259*724ba675SRob Herring }; 260*724ba675SRob Herring}; 261*724ba675SRob Herring 262*724ba675SRob Herring&pioA { 263*724ba675SRob Herring pinctrl_flx1_default: flx1_usart_default { 264*724ba675SRob Herring pinmux = <PIN_PA24__FLEXCOM1_IO0>, 265*724ba675SRob Herring <PIN_PA23__FLEXCOM1_IO1>, 266*724ba675SRob Herring <PIN_PA25__FLEXCOM1_IO3>, 267*724ba675SRob Herring <PIN_PA26__FLEXCOM1_IO4>; 268*724ba675SRob Herring bias-disable; 269*724ba675SRob Herring }; 270*724ba675SRob Herring 271*724ba675SRob Herring pinctrl_i2c0_default: i2c0_default { 272*724ba675SRob Herring pinmux = <PIN_PD21__TWD0>, 273*724ba675SRob Herring <PIN_PD22__TWCK0>; 274*724ba675SRob Herring bias-disable; 275*724ba675SRob Herring }; 276*724ba675SRob Herring 277*724ba675SRob Herring pinctrl_i2c0_gpio: i2c0_gpio { 278*724ba675SRob Herring pinmux = <PIN_PD21__GPIO>, 279*724ba675SRob Herring <PIN_PD22__GPIO>; 280*724ba675SRob Herring bias-disable; 281*724ba675SRob Herring }; 282*724ba675SRob Herring 283*724ba675SRob Herring pinctrl_i2c1_default: i2c1_default { 284*724ba675SRob Herring pinmux = <PIN_PD19__TWD1>, 285*724ba675SRob Herring <PIN_PD20__TWCK1>; 286*724ba675SRob Herring bias-disable; 287*724ba675SRob Herring }; 288*724ba675SRob Herring 289*724ba675SRob Herring pinctrl_i2c1_gpio: i2c1_gpio { 290*724ba675SRob Herring pinmux = <PIN_PD19__GPIO>, 291*724ba675SRob Herring <PIN_PD20__GPIO>; 292*724ba675SRob Herring bias-disable; 293*724ba675SRob Herring }; 294*724ba675SRob Herring 295*724ba675SRob Herring pinctrl_macb0_default: macb0_default { 296*724ba675SRob Herring pinmux = <PIN_PB14__GTXCK>, 297*724ba675SRob Herring <PIN_PB15__GTXEN>, 298*724ba675SRob Herring <PIN_PB16__GRXDV>, 299*724ba675SRob Herring <PIN_PB17__GRXER>, 300*724ba675SRob Herring <PIN_PB18__GRX0>, 301*724ba675SRob Herring <PIN_PB19__GRX1>, 302*724ba675SRob Herring <PIN_PB20__GTX0>, 303*724ba675SRob Herring <PIN_PB21__GTX1>, 304*724ba675SRob Herring <PIN_PB22__GMDC>, 305*724ba675SRob Herring <PIN_PB23__GMDIO>; 306*724ba675SRob Herring bias-disable; 307*724ba675SRob Herring }; 308*724ba675SRob Herring 309*724ba675SRob Herring pinctrl_macb0_phy_irq: macb0_phy_irq { 310*724ba675SRob Herring pinmux = <PIN_PB24__GPIO>; 311*724ba675SRob Herring bias-disable; 312*724ba675SRob Herring }; 313*724ba675SRob Herring 314*724ba675SRob Herring pinctrl_qspi1_default: qspi1_default { 315*724ba675SRob Herring pinmux = <PIN_PB5__QSPI1_SCK>, 316*724ba675SRob Herring <PIN_PB6__QSPI1_CS>, 317*724ba675SRob Herring <PIN_PB7__QSPI1_IO0>, 318*724ba675SRob Herring <PIN_PB8__QSPI1_IO1>, 319*724ba675SRob Herring <PIN_PB9__QSPI1_IO2>, 320*724ba675SRob Herring <PIN_PB10__QSPI1_IO3>; 321*724ba675SRob Herring bias-pull-up; 322*724ba675SRob Herring }; 323*724ba675SRob Herring 324*724ba675SRob Herring pinctrl_sdmmc1_default: sdmmc1_default { 325*724ba675SRob Herring cmd-data { 326*724ba675SRob Herring pinmux = <PIN_PA28__SDMMC1_CMD>, 327*724ba675SRob Herring <PIN_PA18__SDMMC1_DAT0>, 328*724ba675SRob Herring <PIN_PA19__SDMMC1_DAT1>, 329*724ba675SRob Herring <PIN_PA20__SDMMC1_DAT2>, 330*724ba675SRob Herring <PIN_PA21__SDMMC1_DAT3>; 331*724ba675SRob Herring bias-disable; 332*724ba675SRob Herring }; 333*724ba675SRob Herring 334*724ba675SRob Herring conf-ck { 335*724ba675SRob Herring pinmux = <PIN_PA22__SDMMC1_CK>; 336*724ba675SRob Herring bias-disable; 337*724ba675SRob Herring }; 338*724ba675SRob Herring }; 339*724ba675SRob Herring 340*724ba675SRob Herring pinctrl_wilc_default: wilc_default { 341*724ba675SRob Herring conf-irq { 342*724ba675SRob Herring pinmux = <PIN_PB25__GPIO>; 343*724ba675SRob Herring bias-disable; 344*724ba675SRob Herring }; 345*724ba675SRob Herring }; 346*724ba675SRob Herring 347*724ba675SRob Herring pinctrl_wilc_pwrseq: wilc_pwrseq { 348*724ba675SRob Herring conf-ce-nrst { 349*724ba675SRob Herring pinmux = <PIN_PA27__GPIO>, 350*724ba675SRob Herring <PIN_PA29__GPIO>; 351*724ba675SRob Herring bias-disable; 352*724ba675SRob Herring }; 353*724ba675SRob Herring 354*724ba675SRob Herring conf-rtcclk { 355*724ba675SRob Herring pinmux = <PIN_PB13__PCK1>; 356*724ba675SRob Herring bias-disable; 357*724ba675SRob Herring }; 358*724ba675SRob Herring }; 359*724ba675SRob Herring}; 360*724ba675SRob Herring 361*724ba675SRob Herring&sdmmc1 { 362*724ba675SRob Herring #address-cells = <1>; 363*724ba675SRob Herring #size-cells = <0>; 364*724ba675SRob Herring bus-width = <4>; 365*724ba675SRob Herring pinctrl-names = "default"; 366*724ba675SRob Herring pinctrl-0 = <&pinctrl_sdmmc1_default>; 367*724ba675SRob Herring mmc-pwrseq = <&wifi_pwrseq>; 368*724ba675SRob Herring no-1-8-v; 369*724ba675SRob Herring non-removable; 370*724ba675SRob Herring bus-width = <4>; 371*724ba675SRob Herring status = "okay"; 372*724ba675SRob Herring 373*724ba675SRob Herring wilc: wifi@0 { 374*724ba675SRob Herring reg = <0>; 375*724ba675SRob Herring compatible = "microchip,wilc1000"; 376*724ba675SRob Herring pinctrl-names = "default"; 377*724ba675SRob Herring pinctrl-0 = <&pinctrl_wilc_default>; 378*724ba675SRob Herring clocks = <&pmc PMC_TYPE_SYSTEM 9>; 379*724ba675SRob Herring clock-names = "rtc"; 380*724ba675SRob Herring interrupts = <PIN_PB25 IRQ_TYPE_NONE>; 381*724ba675SRob Herring interrupt-parent = <&pioA>; 382*724ba675SRob Herring assigned-clocks = <&pmc PMC_TYPE_SYSTEM 9>; 383*724ba675SRob Herring assigned-clock-rates = <32768>; 384*724ba675SRob Herring }; 385*724ba675SRob Herring}; 386*724ba675SRob Herring 387