1*2aaa4ce4SWenyou Yang/* 2*2aaa4ce4SWenyou Yang * at91-sama5d4_xplained.dts - Device Tree file for SAMA5D4 Xplained board 3*2aaa4ce4SWenyou Yang * 4*2aaa4ce4SWenyou Yang * Copyright (C) 2015 Atmel, 5*2aaa4ce4SWenyou Yang * 2015 Josh Wu <josh.wu@atmel.com> 6*2aaa4ce4SWenyou Yang * 7*2aaa4ce4SWenyou Yang * This file is dual-licensed: you can use it either under the terms 8*2aaa4ce4SWenyou Yang * of the GPL or the X11 license, at your option. Note that this dual 9*2aaa4ce4SWenyou Yang * licensing only applies to this file, and not this project as a 10*2aaa4ce4SWenyou Yang * whole. 11*2aaa4ce4SWenyou Yang * 12*2aaa4ce4SWenyou Yang * a) This file is free software; you can redistribute it and/or 13*2aaa4ce4SWenyou Yang * modify it under the terms of the GNU General Public License as 14*2aaa4ce4SWenyou Yang * published by the Free Software Foundation; either version 2 of the 15*2aaa4ce4SWenyou Yang * License, or (at your option) any later version. 16*2aaa4ce4SWenyou Yang * 17*2aaa4ce4SWenyou Yang * This file is distributed in the hope that it will be useful, 18*2aaa4ce4SWenyou Yang * but WITHOUT ANY WARRANTY; without even the implied warranty of 19*2aaa4ce4SWenyou Yang * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20*2aaa4ce4SWenyou Yang * GNU General Public License for more details. 21*2aaa4ce4SWenyou Yang * 22*2aaa4ce4SWenyou Yang * Or, alternatively, 23*2aaa4ce4SWenyou Yang * 24*2aaa4ce4SWenyou Yang * b) Permission is hereby granted, free of charge, to any person 25*2aaa4ce4SWenyou Yang * obtaining a copy of this software and associated documentation 26*2aaa4ce4SWenyou Yang * files (the "Software"), to deal in the Software without 27*2aaa4ce4SWenyou Yang * restriction, including without limitation the rights to use, 28*2aaa4ce4SWenyou Yang * copy, modify, merge, publish, distribute, sublicense, and/or 29*2aaa4ce4SWenyou Yang * sell copies of the Software, and to permit persons to whom the 30*2aaa4ce4SWenyou Yang * Software is furnished to do so, subject to the following 31*2aaa4ce4SWenyou Yang * conditions: 32*2aaa4ce4SWenyou Yang * 33*2aaa4ce4SWenyou Yang * The above copyright notice and this permission notice shall be 34*2aaa4ce4SWenyou Yang * included in all copies or substantial portions of the Software. 35*2aaa4ce4SWenyou Yang * 36*2aaa4ce4SWenyou Yang * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37*2aaa4ce4SWenyou Yang * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38*2aaa4ce4SWenyou Yang * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39*2aaa4ce4SWenyou Yang * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40*2aaa4ce4SWenyou Yang * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41*2aaa4ce4SWenyou Yang * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42*2aaa4ce4SWenyou Yang * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43*2aaa4ce4SWenyou Yang * OTHER DEALINGS IN THE SOFTWARE. 44*2aaa4ce4SWenyou Yang */ 45*2aaa4ce4SWenyou Yang/dts-v1/; 46*2aaa4ce4SWenyou Yang#include "sama5d4.dtsi" 47*2aaa4ce4SWenyou Yang 48*2aaa4ce4SWenyou Yang/ { 49*2aaa4ce4SWenyou Yang model = "Atmel SAMA5D4 Xplained"; 50*2aaa4ce4SWenyou Yang compatible = "atmel,sama5d4-xplained", "atmel,sama5d4", "atmel,sama5"; 51*2aaa4ce4SWenyou Yang 52*2aaa4ce4SWenyou Yang aliases { 53*2aaa4ce4SWenyou Yang spi0 = &spi0; 54*2aaa4ce4SWenyou Yang }; 55*2aaa4ce4SWenyou Yang 56*2aaa4ce4SWenyou Yang chosen { 57*2aaa4ce4SWenyou Yang u-boot,dm-pre-reloc; 58*2aaa4ce4SWenyou Yang stdout-path = &usart3; 59*2aaa4ce4SWenyou Yang }; 60*2aaa4ce4SWenyou Yang 61*2aaa4ce4SWenyou Yang memory { 62*2aaa4ce4SWenyou Yang reg = <0x20000000 0x20000000>; 63*2aaa4ce4SWenyou Yang }; 64*2aaa4ce4SWenyou Yang 65*2aaa4ce4SWenyou Yang clocks { 66*2aaa4ce4SWenyou Yang slow_xtal { 67*2aaa4ce4SWenyou Yang clock-frequency = <32768>; 68*2aaa4ce4SWenyou Yang }; 69*2aaa4ce4SWenyou Yang 70*2aaa4ce4SWenyou Yang main_xtal { 71*2aaa4ce4SWenyou Yang clock-frequency = <12000000>; 72*2aaa4ce4SWenyou Yang }; 73*2aaa4ce4SWenyou Yang }; 74*2aaa4ce4SWenyou Yang 75*2aaa4ce4SWenyou Yang ahb { 76*2aaa4ce4SWenyou Yang apb { 77*2aaa4ce4SWenyou Yang spi0: spi@f8010000 { 78*2aaa4ce4SWenyou Yang u-boot,dm-pre-reloc; 79*2aaa4ce4SWenyou Yang cs-gpios = <&pioC 3 0>, <0>, <0>, <0>; 80*2aaa4ce4SWenyou Yang status = "okay"; 81*2aaa4ce4SWenyou Yang spi_flash@0 { 82*2aaa4ce4SWenyou Yang u-boot,dm-pre-reloc; 83*2aaa4ce4SWenyou Yang compatible = "spi-flash"; 84*2aaa4ce4SWenyou Yang spi-max-frequency = <50000000>; 85*2aaa4ce4SWenyou Yang reg = <0>; 86*2aaa4ce4SWenyou Yang }; 87*2aaa4ce4SWenyou Yang }; 88*2aaa4ce4SWenyou Yang 89*2aaa4ce4SWenyou Yang i2c0: i2c@f8014000 { 90*2aaa4ce4SWenyou Yang status = "okay"; 91*2aaa4ce4SWenyou Yang }; 92*2aaa4ce4SWenyou Yang 93*2aaa4ce4SWenyou Yang macb0: ethernet@f8020000 { 94*2aaa4ce4SWenyou Yang phy-mode = "rmii"; 95*2aaa4ce4SWenyou Yang status = "okay"; 96*2aaa4ce4SWenyou Yang pinctrl-names = "default"; 97*2aaa4ce4SWenyou Yang pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>; 98*2aaa4ce4SWenyou Yang 99*2aaa4ce4SWenyou Yang phy0: ethernet-phy@1 { 100*2aaa4ce4SWenyou Yang interrupt-parent = <&pioE>; 101*2aaa4ce4SWenyou Yang interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 102*2aaa4ce4SWenyou Yang reg = <1>; 103*2aaa4ce4SWenyou Yang }; 104*2aaa4ce4SWenyou Yang }; 105*2aaa4ce4SWenyou Yang 106*2aaa4ce4SWenyou Yang mmc1: mmc@fc000000 { 107*2aaa4ce4SWenyou Yang u-boot,dm-pre-reloc; 108*2aaa4ce4SWenyou Yang pinctrl-names = "default"; 109*2aaa4ce4SWenyou Yang pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>; 110*2aaa4ce4SWenyou Yang vmmc-supply = <&vcc_mmc1_reg>; 111*2aaa4ce4SWenyou Yang vqmmc-supply = <&vcc_3v3_reg>; 112*2aaa4ce4SWenyou Yang status = "okay"; 113*2aaa4ce4SWenyou Yang slot@0 { 114*2aaa4ce4SWenyou Yang reg = <0>; 115*2aaa4ce4SWenyou Yang bus-width = <4>; 116*2aaa4ce4SWenyou Yang cd-gpios = <&pioE 3 0>; 117*2aaa4ce4SWenyou Yang }; 118*2aaa4ce4SWenyou Yang }; 119*2aaa4ce4SWenyou Yang 120*2aaa4ce4SWenyou Yang usart3: serial@fc00c000 { 121*2aaa4ce4SWenyou Yang u-boot,dm-pre-reloc; 122*2aaa4ce4SWenyou Yang status = "okay"; 123*2aaa4ce4SWenyou Yang }; 124*2aaa4ce4SWenyou Yang 125*2aaa4ce4SWenyou Yang usart4: serial@fc010000 { 126*2aaa4ce4SWenyou Yang status = "okay"; 127*2aaa4ce4SWenyou Yang }; 128*2aaa4ce4SWenyou Yang 129*2aaa4ce4SWenyou Yang spi1: spi@fc018000 { 130*2aaa4ce4SWenyou Yang cs-gpios = <&pioB 21 0>; 131*2aaa4ce4SWenyou Yang status = "okay"; 132*2aaa4ce4SWenyou Yang }; 133*2aaa4ce4SWenyou Yang 134*2aaa4ce4SWenyou Yang adc0: adc@fc034000 { 135*2aaa4ce4SWenyou Yang pinctrl-names = "default"; 136*2aaa4ce4SWenyou Yang pinctrl-0 = < 137*2aaa4ce4SWenyou Yang /* external trigger conflicts with USBA_VBUS */ 138*2aaa4ce4SWenyou Yang &pinctrl_adc0_ad0 139*2aaa4ce4SWenyou Yang &pinctrl_adc0_ad1 140*2aaa4ce4SWenyou Yang &pinctrl_adc0_ad2 141*2aaa4ce4SWenyou Yang &pinctrl_adc0_ad3 142*2aaa4ce4SWenyou Yang &pinctrl_adc0_ad4 143*2aaa4ce4SWenyou Yang >; 144*2aaa4ce4SWenyou Yang atmel,adc-vref = <3300>; 145*2aaa4ce4SWenyou Yang status = "okay"; 146*2aaa4ce4SWenyou Yang }; 147*2aaa4ce4SWenyou Yang 148*2aaa4ce4SWenyou Yang watchdog@fc068640 { 149*2aaa4ce4SWenyou Yang status = "okay"; 150*2aaa4ce4SWenyou Yang }; 151*2aaa4ce4SWenyou Yang 152*2aaa4ce4SWenyou Yang pinctrl@fc06a000 { 153*2aaa4ce4SWenyou Yang board { 154*2aaa4ce4SWenyou Yang u-boot,dm-pre-reloc; 155*2aaa4ce4SWenyou Yang pinctrl_mmc1_cd: mmc1_cd { 156*2aaa4ce4SWenyou Yang u-boot,dm-pre-reloc; 157*2aaa4ce4SWenyou Yang atmel,pins = 158*2aaa4ce4SWenyou Yang <AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; 159*2aaa4ce4SWenyou Yang }; 160*2aaa4ce4SWenyou Yang pinctrl_usba_vbus: usba_vbus { 161*2aaa4ce4SWenyou Yang atmel,pins = 162*2aaa4ce4SWenyou Yang <AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; 163*2aaa4ce4SWenyou Yang }; 164*2aaa4ce4SWenyou Yang pinctrl_key_gpio: key_gpio_0 { 165*2aaa4ce4SWenyou Yang atmel,pins = 166*2aaa4ce4SWenyou Yang <AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; 167*2aaa4ce4SWenyou Yang }; 168*2aaa4ce4SWenyou Yang pinctrl_macb0_phy_irq: macb0_phy_irq_0 { 169*2aaa4ce4SWenyou Yang atmel,pins = 170*2aaa4ce4SWenyou Yang <AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; 171*2aaa4ce4SWenyou Yang }; 172*2aaa4ce4SWenyou Yang }; 173*2aaa4ce4SWenyou Yang }; 174*2aaa4ce4SWenyou Yang }; 175*2aaa4ce4SWenyou Yang 176*2aaa4ce4SWenyou Yang usb0: gadget@00400000 { 177*2aaa4ce4SWenyou Yang atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>; 178*2aaa4ce4SWenyou Yang pinctrl-names = "default"; 179*2aaa4ce4SWenyou Yang pinctrl-0 = <&pinctrl_usba_vbus>; 180*2aaa4ce4SWenyou Yang status = "okay"; 181*2aaa4ce4SWenyou Yang }; 182*2aaa4ce4SWenyou Yang 183*2aaa4ce4SWenyou Yang usb1: ohci@00500000 { 184*2aaa4ce4SWenyou Yang num-ports = <3>; 185*2aaa4ce4SWenyou Yang atmel,vbus-gpio = <0 186*2aaa4ce4SWenyou Yang &pioE 11 GPIO_ACTIVE_HIGH 187*2aaa4ce4SWenyou Yang &pioE 14 GPIO_ACTIVE_HIGH 188*2aaa4ce4SWenyou Yang >; 189*2aaa4ce4SWenyou Yang status = "okay"; 190*2aaa4ce4SWenyou Yang }; 191*2aaa4ce4SWenyou Yang 192*2aaa4ce4SWenyou Yang usb2: ehci@00600000 { 193*2aaa4ce4SWenyou Yang status = "okay"; 194*2aaa4ce4SWenyou Yang }; 195*2aaa4ce4SWenyou Yang 196*2aaa4ce4SWenyou Yang nand0: nand@80000000 { 197*2aaa4ce4SWenyou Yang nand-bus-width = <8>; 198*2aaa4ce4SWenyou Yang nand-ecc-mode = "hw"; 199*2aaa4ce4SWenyou Yang nand-on-flash-bbt; 200*2aaa4ce4SWenyou Yang atmel,has-pmecc; 201*2aaa4ce4SWenyou Yang status = "okay"; 202*2aaa4ce4SWenyou Yang 203*2aaa4ce4SWenyou Yang at91bootstrap@0 { 204*2aaa4ce4SWenyou Yang label = "at91bootstrap"; 205*2aaa4ce4SWenyou Yang reg = <0x0 0x40000>; 206*2aaa4ce4SWenyou Yang }; 207*2aaa4ce4SWenyou Yang 208*2aaa4ce4SWenyou Yang bootloader@40000 { 209*2aaa4ce4SWenyou Yang label = "bootloader"; 210*2aaa4ce4SWenyou Yang reg = <0x40000 0x80000>; 211*2aaa4ce4SWenyou Yang }; 212*2aaa4ce4SWenyou Yang 213*2aaa4ce4SWenyou Yang bootloaderenv@c0000 { 214*2aaa4ce4SWenyou Yang label = "bootloader env"; 215*2aaa4ce4SWenyou Yang reg = <0xc0000 0xc0000>; 216*2aaa4ce4SWenyou Yang }; 217*2aaa4ce4SWenyou Yang 218*2aaa4ce4SWenyou Yang dtb@180000 { 219*2aaa4ce4SWenyou Yang label = "device tree"; 220*2aaa4ce4SWenyou Yang reg = <0x180000 0x80000>; 221*2aaa4ce4SWenyou Yang }; 222*2aaa4ce4SWenyou Yang 223*2aaa4ce4SWenyou Yang kernel@200000 { 224*2aaa4ce4SWenyou Yang label = "kernel"; 225*2aaa4ce4SWenyou Yang reg = <0x200000 0x600000>; 226*2aaa4ce4SWenyou Yang }; 227*2aaa4ce4SWenyou Yang 228*2aaa4ce4SWenyou Yang rootfs@800000 { 229*2aaa4ce4SWenyou Yang label = "rootfs"; 230*2aaa4ce4SWenyou Yang reg = <0x800000 0x0f800000>; 231*2aaa4ce4SWenyou Yang }; 232*2aaa4ce4SWenyou Yang }; 233*2aaa4ce4SWenyou Yang }; 234*2aaa4ce4SWenyou Yang 235*2aaa4ce4SWenyou Yang gpio_keys { 236*2aaa4ce4SWenyou Yang compatible = "gpio-keys"; 237*2aaa4ce4SWenyou Yang 238*2aaa4ce4SWenyou Yang pinctrl-names = "default"; 239*2aaa4ce4SWenyou Yang pinctrl-0 = <&pinctrl_key_gpio>; 240*2aaa4ce4SWenyou Yang 241*2aaa4ce4SWenyou Yang pb_user1 { 242*2aaa4ce4SWenyou Yang label = "pb_user1"; 243*2aaa4ce4SWenyou Yang gpios = <&pioE 8 GPIO_ACTIVE_HIGH>; 244*2aaa4ce4SWenyou Yang linux,code = <0x100>; 245*2aaa4ce4SWenyou Yang wakeup-source; 246*2aaa4ce4SWenyou Yang }; 247*2aaa4ce4SWenyou Yang }; 248*2aaa4ce4SWenyou Yang 249*2aaa4ce4SWenyou Yang leds { 250*2aaa4ce4SWenyou Yang compatible = "gpio-leds"; 251*2aaa4ce4SWenyou Yang status = "okay"; 252*2aaa4ce4SWenyou Yang 253*2aaa4ce4SWenyou Yang d8 { 254*2aaa4ce4SWenyou Yang label = "d8"; 255*2aaa4ce4SWenyou Yang gpios = <&pioD 30 GPIO_ACTIVE_HIGH>; 256*2aaa4ce4SWenyou Yang default-state = "on"; 257*2aaa4ce4SWenyou Yang }; 258*2aaa4ce4SWenyou Yang 259*2aaa4ce4SWenyou Yang d10 { 260*2aaa4ce4SWenyou Yang label = "d10"; 261*2aaa4ce4SWenyou Yang gpios = <&pioE 15 GPIO_ACTIVE_LOW>; 262*2aaa4ce4SWenyou Yang linux,default-trigger = "heartbeat"; 263*2aaa4ce4SWenyou Yang }; 264*2aaa4ce4SWenyou Yang }; 265*2aaa4ce4SWenyou Yang 266*2aaa4ce4SWenyou Yang vcc_3v3_reg: fixedregulator@0 { 267*2aaa4ce4SWenyou Yang compatible = "regulator-fixed"; 268*2aaa4ce4SWenyou Yang regulator-name = "VCC 3V3"; 269*2aaa4ce4SWenyou Yang regulator-min-microvolt = <3300000>; 270*2aaa4ce4SWenyou Yang regulator-max-microvolt = <3300000>; 271*2aaa4ce4SWenyou Yang regulator-boot-on; 272*2aaa4ce4SWenyou Yang regulator-always-on; 273*2aaa4ce4SWenyou Yang reg = <0 1>; 274*2aaa4ce4SWenyou Yang }; 275*2aaa4ce4SWenyou Yang 276*2aaa4ce4SWenyou Yang vcc_mmc1_reg: fixedregulator@1 { 277*2aaa4ce4SWenyou Yang compatible = "regulator-fixed"; 278*2aaa4ce4SWenyou Yang gpio = <&pioE 4 GPIO_ACTIVE_LOW>; 279*2aaa4ce4SWenyou Yang regulator-name = "VDD MCI1"; 280*2aaa4ce4SWenyou Yang regulator-min-microvolt = <3300000>; 281*2aaa4ce4SWenyou Yang regulator-max-microvolt = <3300000>; 282*2aaa4ce4SWenyou Yang vin-supply = <&vcc_3v3_reg>; 283*2aaa4ce4SWenyou Yang regulator-always-on; 284*2aaa4ce4SWenyou Yang reg = <1 1>; 285*2aaa4ce4SWenyou Yang }; 286*2aaa4ce4SWenyou Yang}; 287