1*27ec910eSWenyou Yang/* 2*27ec910eSWenyou Yang * at91-sama5d3_xplained.dts - Device Tree file for the SAMA5D3 Xplained board 3*27ec910eSWenyou Yang * 4*27ec910eSWenyou Yang * Copyright (C) 2014 Atmel, 5*27ec910eSWenyou Yang * 2014 Nicolas Ferre <nicolas.ferre@atmel.com> 6*27ec910eSWenyou Yang * 7*27ec910eSWenyou Yang * Licensed under GPLv2 or later. 8*27ec910eSWenyou Yang */ 9*27ec910eSWenyou Yang/dts-v1/; 10*27ec910eSWenyou Yang#include "sama5d36.dtsi" 11*27ec910eSWenyou Yang 12*27ec910eSWenyou Yang/ { 13*27ec910eSWenyou Yang model = "SAMA5D3 Xplained"; 14*27ec910eSWenyou Yang compatible = "atmel,sama5d3-xplained", "atmel,sama5d3", "atmel,sama5"; 15*27ec910eSWenyou Yang 16*27ec910eSWenyou Yang chosen { 17*27ec910eSWenyou Yang u-boot,dm-pre-reloc; 18*27ec910eSWenyou Yang stdout-path = &dbgu; 19*27ec910eSWenyou Yang }; 20*27ec910eSWenyou Yang 21*27ec910eSWenyou Yang aliases { 22*27ec910eSWenyou Yang spi0 = &spi0; 23*27ec910eSWenyou Yang }; 24*27ec910eSWenyou Yang 25*27ec910eSWenyou Yang memory { 26*27ec910eSWenyou Yang reg = <0x20000000 0x10000000>; 27*27ec910eSWenyou Yang }; 28*27ec910eSWenyou Yang 29*27ec910eSWenyou Yang clocks { 30*27ec910eSWenyou Yang slow_xtal { 31*27ec910eSWenyou Yang clock-frequency = <32768>; 32*27ec910eSWenyou Yang }; 33*27ec910eSWenyou Yang 34*27ec910eSWenyou Yang main_xtal { 35*27ec910eSWenyou Yang clock-frequency = <12000000>; 36*27ec910eSWenyou Yang }; 37*27ec910eSWenyou Yang }; 38*27ec910eSWenyou Yang 39*27ec910eSWenyou Yang ahb { 40*27ec910eSWenyou Yang apb { 41*27ec910eSWenyou Yang mmc0: mmc@f0000000 { 42*27ec910eSWenyou Yang u-boot,dm-pre-reloc; 43*27ec910eSWenyou Yang pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>; 44*27ec910eSWenyou Yang vmmc-supply = <&vcc_mmc0_reg>; 45*27ec910eSWenyou Yang vqmmc-supply = <&vcc_3v3_reg>; 46*27ec910eSWenyou Yang status = "okay"; 47*27ec910eSWenyou Yang slot@0 { 48*27ec910eSWenyou Yang reg = <0>; 49*27ec910eSWenyou Yang bus-width = <8>; 50*27ec910eSWenyou Yang cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>; 51*27ec910eSWenyou Yang }; 52*27ec910eSWenyou Yang }; 53*27ec910eSWenyou Yang 54*27ec910eSWenyou Yang mmc1: mmc@f8000000 { 55*27ec910eSWenyou Yang u-boot,dm-pre-reloc; 56*27ec910eSWenyou Yang vmmc-supply = <&vcc_3v3_reg>; 57*27ec910eSWenyou Yang vqmmc-supply = <&vcc_3v3_reg>; 58*27ec910eSWenyou Yang status = "disabled"; 59*27ec910eSWenyou Yang slot@0 { 60*27ec910eSWenyou Yang reg = <0>; 61*27ec910eSWenyou Yang bus-width = <4>; 62*27ec910eSWenyou Yang cd-gpios = <&pioE 1 GPIO_ACTIVE_LOW>; 63*27ec910eSWenyou Yang }; 64*27ec910eSWenyou Yang }; 65*27ec910eSWenyou Yang 66*27ec910eSWenyou Yang spi0: spi@f0004000 { 67*27ec910eSWenyou Yang cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>; 68*27ec910eSWenyou Yang status = "okay"; 69*27ec910eSWenyou Yang }; 70*27ec910eSWenyou Yang 71*27ec910eSWenyou Yang can0: can@f000c000 { 72*27ec910eSWenyou Yang status = "okay"; 73*27ec910eSWenyou Yang }; 74*27ec910eSWenyou Yang 75*27ec910eSWenyou Yang i2c0: i2c@f0014000 { 76*27ec910eSWenyou Yang pinctrl-0 = <&pinctrl_i2c0_pu>; 77*27ec910eSWenyou Yang status = "okay"; 78*27ec910eSWenyou Yang }; 79*27ec910eSWenyou Yang 80*27ec910eSWenyou Yang i2c1: i2c@f0018000 { 81*27ec910eSWenyou Yang status = "okay"; 82*27ec910eSWenyou Yang 83*27ec910eSWenyou Yang pmic: act8865@5b { 84*27ec910eSWenyou Yang compatible = "active-semi,act8865"; 85*27ec910eSWenyou Yang reg = <0x5b>; 86*27ec910eSWenyou Yang status = "disabled"; 87*27ec910eSWenyou Yang 88*27ec910eSWenyou Yang regulators { 89*27ec910eSWenyou Yang vcc_1v8_reg: DCDC_REG1 { 90*27ec910eSWenyou Yang regulator-name = "VCC_1V8"; 91*27ec910eSWenyou Yang regulator-min-microvolt = <1800000>; 92*27ec910eSWenyou Yang regulator-max-microvolt = <1800000>; 93*27ec910eSWenyou Yang regulator-always-on; 94*27ec910eSWenyou Yang }; 95*27ec910eSWenyou Yang 96*27ec910eSWenyou Yang vcc_1v2_reg: DCDC_REG2 { 97*27ec910eSWenyou Yang regulator-name = "VCC_1V2"; 98*27ec910eSWenyou Yang regulator-min-microvolt = <1200000>; 99*27ec910eSWenyou Yang regulator-max-microvolt = <1200000>; 100*27ec910eSWenyou Yang regulator-always-on; 101*27ec910eSWenyou Yang }; 102*27ec910eSWenyou Yang 103*27ec910eSWenyou Yang vcc_3v3_reg: DCDC_REG3 { 104*27ec910eSWenyou Yang regulator-name = "VCC_3V3"; 105*27ec910eSWenyou Yang regulator-min-microvolt = <3300000>; 106*27ec910eSWenyou Yang regulator-max-microvolt = <3300000>; 107*27ec910eSWenyou Yang regulator-always-on; 108*27ec910eSWenyou Yang }; 109*27ec910eSWenyou Yang 110*27ec910eSWenyou Yang vddfuse_reg: LDO_REG1 { 111*27ec910eSWenyou Yang regulator-name = "FUSE_2V5"; 112*27ec910eSWenyou Yang regulator-min-microvolt = <2500000>; 113*27ec910eSWenyou Yang regulator-max-microvolt = <2500000>; 114*27ec910eSWenyou Yang }; 115*27ec910eSWenyou Yang 116*27ec910eSWenyou Yang vddana_reg: LDO_REG2 { 117*27ec910eSWenyou Yang regulator-name = "VDDANA"; 118*27ec910eSWenyou Yang regulator-min-microvolt = <3300000>; 119*27ec910eSWenyou Yang regulator-max-microvolt = <3300000>; 120*27ec910eSWenyou Yang regulator-always-on; 121*27ec910eSWenyou Yang }; 122*27ec910eSWenyou Yang }; 123*27ec910eSWenyou Yang }; 124*27ec910eSWenyou Yang }; 125*27ec910eSWenyou Yang 126*27ec910eSWenyou Yang macb0: ethernet@f0028000 { 127*27ec910eSWenyou Yang phy-mode = "rgmii"; 128*27ec910eSWenyou Yang #address-cells = <1>; 129*27ec910eSWenyou Yang #size-cells = <0>; 130*27ec910eSWenyou Yang status = "okay"; 131*27ec910eSWenyou Yang 132*27ec910eSWenyou Yang ethernet-phy@7 { 133*27ec910eSWenyou Yang reg = <0x7>; 134*27ec910eSWenyou Yang }; 135*27ec910eSWenyou Yang }; 136*27ec910eSWenyou Yang 137*27ec910eSWenyou Yang pwm0: pwm@f002c000 { 138*27ec910eSWenyou Yang pinctrl-names = "default"; 139*27ec910eSWenyou Yang pinctrl-0 = <&pinctrl_pwm0_pwmh0_0 &pinctrl_pwm0_pwmh1_0>; 140*27ec910eSWenyou Yang status = "okay"; 141*27ec910eSWenyou Yang }; 142*27ec910eSWenyou Yang 143*27ec910eSWenyou Yang usart0: serial@f001c000 { 144*27ec910eSWenyou Yang status = "okay"; 145*27ec910eSWenyou Yang }; 146*27ec910eSWenyou Yang 147*27ec910eSWenyou Yang usart1: serial@f0020000 { 148*27ec910eSWenyou Yang pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>; 149*27ec910eSWenyou Yang status = "okay"; 150*27ec910eSWenyou Yang }; 151*27ec910eSWenyou Yang 152*27ec910eSWenyou Yang uart0: serial@f0024000 { 153*27ec910eSWenyou Yang status = "okay"; 154*27ec910eSWenyou Yang }; 155*27ec910eSWenyou Yang 156*27ec910eSWenyou Yang mmc1: mmc@f8000000 { 157*27ec910eSWenyou Yang pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>; 158*27ec910eSWenyou Yang status = "okay"; 159*27ec910eSWenyou Yang slot@0 { 160*27ec910eSWenyou Yang reg = <0>; 161*27ec910eSWenyou Yang bus-width = <4>; 162*27ec910eSWenyou Yang cd-gpios = <&pioE 1 GPIO_ACTIVE_HIGH>; 163*27ec910eSWenyou Yang }; 164*27ec910eSWenyou Yang }; 165*27ec910eSWenyou Yang 166*27ec910eSWenyou Yang spi1: spi@f8008000 { 167*27ec910eSWenyou Yang cs-gpios = <&pioC 25 0>; 168*27ec910eSWenyou Yang status = "okay"; 169*27ec910eSWenyou Yang }; 170*27ec910eSWenyou Yang 171*27ec910eSWenyou Yang adc0: adc@f8018000 { 172*27ec910eSWenyou Yang pinctrl-0 = < 173*27ec910eSWenyou Yang &pinctrl_adc0_adtrg 174*27ec910eSWenyou Yang &pinctrl_adc0_ad0 175*27ec910eSWenyou Yang &pinctrl_adc0_ad1 176*27ec910eSWenyou Yang &pinctrl_adc0_ad2 177*27ec910eSWenyou Yang &pinctrl_adc0_ad3 178*27ec910eSWenyou Yang &pinctrl_adc0_ad4 179*27ec910eSWenyou Yang &pinctrl_adc0_ad5 180*27ec910eSWenyou Yang &pinctrl_adc0_ad6 181*27ec910eSWenyou Yang &pinctrl_adc0_ad7 182*27ec910eSWenyou Yang &pinctrl_adc0_ad8 183*27ec910eSWenyou Yang &pinctrl_adc0_ad9 184*27ec910eSWenyou Yang >; 185*27ec910eSWenyou Yang status = "okay"; 186*27ec910eSWenyou Yang }; 187*27ec910eSWenyou Yang 188*27ec910eSWenyou Yang i2c2: i2c@f801c000 { 189*27ec910eSWenyou Yang dmas = <0>, <0>; /* Do not use DMA for i2c2 */ 190*27ec910eSWenyou Yang pinctrl-0 = <&pinctrl_i2c2_pu>; 191*27ec910eSWenyou Yang status = "okay"; 192*27ec910eSWenyou Yang }; 193*27ec910eSWenyou Yang 194*27ec910eSWenyou Yang macb1: ethernet@f802c000 { 195*27ec910eSWenyou Yang phy-mode = "rmii"; 196*27ec910eSWenyou Yang #address-cells = <1>; 197*27ec910eSWenyou Yang #size-cells = <0>; 198*27ec910eSWenyou Yang status = "okay"; 199*27ec910eSWenyou Yang 200*27ec910eSWenyou Yang ethernet-phy@1 { 201*27ec910eSWenyou Yang reg = <0x1>; 202*27ec910eSWenyou Yang }; 203*27ec910eSWenyou Yang }; 204*27ec910eSWenyou Yang 205*27ec910eSWenyou Yang dbgu: serial@ffffee00 { 206*27ec910eSWenyou Yang u-boot,dm-pre-reloc; 207*27ec910eSWenyou Yang status = "okay"; 208*27ec910eSWenyou Yang }; 209*27ec910eSWenyou Yang 210*27ec910eSWenyou Yang pinctrl@fffff200 { 211*27ec910eSWenyou Yang board { 212*27ec910eSWenyou Yang u-boot,dm-pre-reloc; 213*27ec910eSWenyou Yang pinctrl_i2c0_pu: i2c0_pu { 214*27ec910eSWenyou Yang atmel,pins = 215*27ec910eSWenyou Yang <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>, 216*27ec910eSWenyou Yang <AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; 217*27ec910eSWenyou Yang }; 218*27ec910eSWenyou Yang 219*27ec910eSWenyou Yang pinctrl_i2c2_pu: i2c2_pu { 220*27ec910eSWenyou Yang atmel,pins = 221*27ec910eSWenyou Yang <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>, 222*27ec910eSWenyou Yang <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>; 223*27ec910eSWenyou Yang }; 224*27ec910eSWenyou Yang 225*27ec910eSWenyou Yang pinctrl_key_gpio: key_gpio_0 { 226*27ec910eSWenyou Yang atmel,pins = 227*27ec910eSWenyou Yang <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; 228*27ec910eSWenyou Yang }; 229*27ec910eSWenyou Yang 230*27ec910eSWenyou Yang pinctrl_mmc0_cd: mmc0_cd { 231*27ec910eSWenyou Yang u-boot,dm-pre-reloc; 232*27ec910eSWenyou Yang atmel,pins = 233*27ec910eSWenyou Yang <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; 234*27ec910eSWenyou Yang }; 235*27ec910eSWenyou Yang 236*27ec910eSWenyou Yang pinctrl_mmc1_cd: mmc1_cd { 237*27ec910eSWenyou Yang u-boot,dm-pre-reloc; 238*27ec910eSWenyou Yang atmel,pins = 239*27ec910eSWenyou Yang <AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; 240*27ec910eSWenyou Yang }; 241*27ec910eSWenyou Yang 242*27ec910eSWenyou Yang pinctrl_usba_vbus: usba_vbus { 243*27ec910eSWenyou Yang atmel,pins = 244*27ec910eSWenyou Yang <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */ 245*27ec910eSWenyou Yang }; 246*27ec910eSWenyou Yang }; 247*27ec910eSWenyou Yang }; 248*27ec910eSWenyou Yang }; 249*27ec910eSWenyou Yang 250*27ec910eSWenyou Yang nand0: nand@60000000 { 251*27ec910eSWenyou Yang nand-bus-width = <8>; 252*27ec910eSWenyou Yang nand-ecc-mode = "hw"; 253*27ec910eSWenyou Yang atmel,has-pmecc; 254*27ec910eSWenyou Yang atmel,pmecc-cap = <4>; 255*27ec910eSWenyou Yang atmel,pmecc-sector-size = <512>; 256*27ec910eSWenyou Yang nand-on-flash-bbt; 257*27ec910eSWenyou Yang status = "okay"; 258*27ec910eSWenyou Yang 259*27ec910eSWenyou Yang at91bootstrap@0 { 260*27ec910eSWenyou Yang label = "at91bootstrap"; 261*27ec910eSWenyou Yang reg = <0x0 0x40000>; 262*27ec910eSWenyou Yang }; 263*27ec910eSWenyou Yang 264*27ec910eSWenyou Yang bootloader@40000 { 265*27ec910eSWenyou Yang label = "bootloader"; 266*27ec910eSWenyou Yang reg = <0x40000 0x80000>; 267*27ec910eSWenyou Yang }; 268*27ec910eSWenyou Yang 269*27ec910eSWenyou Yang bootloaderenv@c0000 { 270*27ec910eSWenyou Yang label = "bootloader env"; 271*27ec910eSWenyou Yang reg = <0xc0000 0xc0000>; 272*27ec910eSWenyou Yang }; 273*27ec910eSWenyou Yang 274*27ec910eSWenyou Yang dtb@180000 { 275*27ec910eSWenyou Yang label = "device tree"; 276*27ec910eSWenyou Yang reg = <0x180000 0x80000>; 277*27ec910eSWenyou Yang }; 278*27ec910eSWenyou Yang 279*27ec910eSWenyou Yang kernel@200000 { 280*27ec910eSWenyou Yang label = "kernel"; 281*27ec910eSWenyou Yang reg = <0x200000 0x600000>; 282*27ec910eSWenyou Yang }; 283*27ec910eSWenyou Yang 284*27ec910eSWenyou Yang rootfs@800000 { 285*27ec910eSWenyou Yang label = "rootfs"; 286*27ec910eSWenyou Yang reg = <0x800000 0x0f800000>; 287*27ec910eSWenyou Yang }; 288*27ec910eSWenyou Yang }; 289*27ec910eSWenyou Yang 290*27ec910eSWenyou Yang usb0: gadget@00500000 { 291*27ec910eSWenyou Yang atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>; /* PE9, conflicts with A9 */ 292*27ec910eSWenyou Yang pinctrl-names = "default"; 293*27ec910eSWenyou Yang pinctrl-0 = <&pinctrl_usba_vbus>; 294*27ec910eSWenyou Yang status = "okay"; 295*27ec910eSWenyou Yang }; 296*27ec910eSWenyou Yang 297*27ec910eSWenyou Yang usb1: ohci@00600000 { 298*27ec910eSWenyou Yang num-ports = <3>; 299*27ec910eSWenyou Yang atmel,vbus-gpio = <0 300*27ec910eSWenyou Yang &pioE 3 GPIO_ACTIVE_LOW 301*27ec910eSWenyou Yang &pioE 4 GPIO_ACTIVE_LOW 302*27ec910eSWenyou Yang >; 303*27ec910eSWenyou Yang status = "okay"; 304*27ec910eSWenyou Yang }; 305*27ec910eSWenyou Yang 306*27ec910eSWenyou Yang usb2: ehci@00700000 { 307*27ec910eSWenyou Yang status = "okay"; 308*27ec910eSWenyou Yang }; 309*27ec910eSWenyou Yang }; 310*27ec910eSWenyou Yang 311*27ec910eSWenyou Yang vcc_mmc0_reg: fixedregulator@0 { 312*27ec910eSWenyou Yang compatible = "regulator-fixed"; 313*27ec910eSWenyou Yang gpio = <&pioE 2 GPIO_ACTIVE_LOW>; 314*27ec910eSWenyou Yang regulator-name = "mmc0-card-supply"; 315*27ec910eSWenyou Yang regulator-min-microvolt = <3300000>; 316*27ec910eSWenyou Yang regulator-max-microvolt = <3300000>; 317*27ec910eSWenyou Yang regulator-always-on; 318*27ec910eSWenyou Yang }; 319*27ec910eSWenyou Yang 320*27ec910eSWenyou Yang gpio_keys { 321*27ec910eSWenyou Yang compatible = "gpio-keys"; 322*27ec910eSWenyou Yang 323*27ec910eSWenyou Yang pinctrl-names = "default"; 324*27ec910eSWenyou Yang pinctrl-0 = <&pinctrl_key_gpio>; 325*27ec910eSWenyou Yang 326*27ec910eSWenyou Yang bp3 { 327*27ec910eSWenyou Yang label = "PB_USER"; 328*27ec910eSWenyou Yang gpios = <&pioE 29 GPIO_ACTIVE_LOW>; 329*27ec910eSWenyou Yang linux,code = <0x104>; 330*27ec910eSWenyou Yang wakeup-source; 331*27ec910eSWenyou Yang }; 332*27ec910eSWenyou Yang }; 333*27ec910eSWenyou Yang 334*27ec910eSWenyou Yang leds { 335*27ec910eSWenyou Yang compatible = "gpio-leds"; 336*27ec910eSWenyou Yang 337*27ec910eSWenyou Yang d2 { 338*27ec910eSWenyou Yang label = "d2"; 339*27ec910eSWenyou Yang gpios = <&pioE 23 GPIO_ACTIVE_LOW>; /* PE23, conflicts with A23, CTS2 */ 340*27ec910eSWenyou Yang linux,default-trigger = "heartbeat"; 341*27ec910eSWenyou Yang }; 342*27ec910eSWenyou Yang 343*27ec910eSWenyou Yang d3 { 344*27ec910eSWenyou Yang label = "d3"; 345*27ec910eSWenyou Yang gpios = <&pioE 24 GPIO_ACTIVE_HIGH>; 346*27ec910eSWenyou Yang }; 347*27ec910eSWenyou Yang }; 348*27ec910eSWenyou Yang}; 349