1// SPDX-License-Identifier: (GPL-2.0+ OR X11) 2/* 3 * at91-sama5d2_ptc_ek.dts - Device Tree file for SAMA5D2 PTC EK board 4 * 5 * Copyright (C) 2017 Microchip/Atmel, 6 * 2017 Wenyou Yang <wenyou.yang@microchip.com> 7 * 2017 Ludovic Desroches <ludovic.desroches@microchip.com> 8 */ 9/dts-v1/; 10#include "sama5d2.dtsi" 11#include "sama5d2-pinfunc.h" 12#include <dt-bindings/mfd/atmel-flexcom.h> 13#include <dt-bindings/gpio/gpio.h> 14#include <dt-bindings/input/input.h> 15#include <dt-bindings/pinctrl/at91.h> 16 17/ { 18 model = "Atmel SAMA5D2 PTC EK"; 19 compatible = "atmel,sama5d2-ptc_ek", "atmel,sama5d2", "atmel,sama5"; 20 21 aliases { 22 serial0 = &uart0; /* DBGU */ 23 i2c0 = &i2c0; /* mikroBUS 1 */ 24 i2c1 = &i2c1; /* XPRO EXT1 */ 25 i2c2 = &i2c2; 26 }; 27 28 chosen { 29 stdout-path = "serial0:115200n8"; 30 }; 31 32 clocks { 33 slow_xtal { 34 clock-frequency = <32768>; 35 }; 36 37 main_xtal { 38 clock-frequency = <24000000>; 39 }; 40 }; 41 42 ahb { 43 usb0: gadget@300000 { 44 atmel,vbus-gpio = <&pioA PIN_PB11 GPIO_ACTIVE_HIGH>; 45 pinctrl-names = "default"; 46 pinctrl-0 = <&pinctrl_usba_vbus>; 47 status = "okay"; 48 }; 49 50 usb1: ohci@400000 { 51 num-ports = <3>; 52 atmel,vbus-gpio = <0 53 &pioA PIN_PB12 GPIO_ACTIVE_HIGH 54 0 55 >; 56 pinctrl-names = "default"; 57 pinctrl-0 = <&pinctrl_usb_default>; 58 status = "okay"; 59 }; 60 61 usb2: ehci@500000 { 62 status = "okay"; 63 }; 64 65 ebi: ebi@10000000 { 66 pinctrl-names = "default"; 67 pinctrl-0 = <&pinctrl_nand_default>; 68 status = "okay"; /* conflicts with sdmmc1 and qspi0 */ 69 70 nand_controller: nand-controller { 71 status = "okay"; 72 73 nand@3 { 74 reg = <0x3 0x0 0x2>; 75 atmel,rb = <0>; 76 nand-bus-width = <8>; 77 nand-ecc-mode = "hw"; 78 nand-on-flash-bbt; 79 label = "atmel_nand"; 80 81 partitions { 82 compatible = "fixed-partitions"; 83 #address-cells = <1>; 84 #size-cells = <1>; 85 86 at91bootstrap@0 { 87 label = "bootstrap"; 88 reg = <0x0 0x40000>; 89 }; 90 91 bootloader@40000 { 92 label = "bootloader"; 93 reg = <0x40000 0xc0000>; 94 }; 95 96 bootloaderenvred@100000 { 97 label = "bootloader env redundant"; 98 reg = <0x100000 0x40000>; 99 }; 100 101 bootloaderenv@140000 { 102 label = "bootloader env"; 103 reg = <0x140000 0x40000>; 104 }; 105 106 dtb@180000 { 107 label = "device tree"; 108 reg = <0x180000 0x80000>; 109 }; 110 111 kernel@200000 { 112 label = "kernel"; 113 reg = <0x200000 0x600000>; 114 }; 115 116 rootfs@800000 { 117 label = "rootfs"; 118 reg = <0x800000 0x1f800000>; 119 }; 120 }; 121 }; 122 }; 123 }; 124 125 sdmmc0: sdio-host@a0000000 { 126 bus-width = <8>; 127 pinctrl-names = "default"; 128 pinctrl-0 = <&pinctrl_sdmmc0_default>; 129 status = "okay"; 130 }; 131 132 apb { 133 spi0: spi@f8000000 { 134 pinctrl-names = "default"; 135 pinctrl-0 = <&pinctrl_spi0_default>; 136 status = "okay"; 137 }; 138 139 macb0: ethernet@f8008000 { 140 pinctrl-names = "default"; 141 pinctrl-0 = <&pinctrl_macb0_default &pinctrl_macb0_phy_irq>; 142 #address-cells = <1>; 143 #size-cells = <0>; 144 phy-mode = "rmii"; 145 status = "okay"; 146 147 ethernet-phy@1 { 148 reg = <0x1>; 149 interrupt-parent = <&pioA>; 150 interrupts = <56 IRQ_TYPE_LEVEL_LOW>; 151 }; 152 }; 153 154 tcb0: timer@f800c000 { 155 timer0: timer@0 { 156 compatible = "atmel,tcb-timer"; 157 reg = <0>; 158 }; 159 160 timer1: timer@1 { 161 compatible = "atmel,tcb-timer"; 162 reg = <1>; 163 }; 164 }; 165 166 uart0: serial@f801c000 { 167 pinctrl-names = "default"; 168 pinctrl-0 = <&pinctrl_uart0_default>; 169 atmel,use-dma-rx; 170 atmel,use-dma-tx; 171 status = "okay"; 172 }; 173 174 uart2: serial@f8024000 { 175 pinctrl-names = "default"; 176 pinctrl-0 = <&pinctrl_uart2_default>; 177 atmel,use-dma-rx; 178 atmel,use-dma-tx; 179 status = "okay"; 180 }; 181 182 i2c0: i2c@f8028000 { 183 dmas = <0>, <0>; 184 pinctrl-names = "default", "gpio"; 185 pinctrl-0 = <&pinctrl_i2c0_default>; 186 pinctrl-1 = <&pinctrl_i2c0_gpio>; 187 sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>; 188 scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 189 status = "okay"; 190 }; 191 192 flx0: flexcom@f8034000 { 193 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; 194 status = "okay"; 195 196 i2c2: i2c@600 { 197 dmas = <0>, <0>; 198 pinctrl-names = "default", "gpio"; 199 pinctrl-0 = <&pinctrl_flx0_default>; 200 pinctrl-1 = <&pinctrl_flx0_gpio>; 201 sda-gpios = <&pioA PIN_PB28 GPIO_ACTIVE_HIGH>; 202 scl-gpios = <&pioA PIN_PB29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 203 status = "okay"; 204 }; 205 }; 206 207 poweroff@f8048010 { 208 debounce-delay-us = <976>; 209 210 input@0 { 211 reg = <0>; 212 }; 213 }; 214 215 watchdog@f8048040 { 216 status = "okay"; 217 }; 218 219 spi1: spi@fc000000 { 220 pinctrl-names = "default"; 221 pinctrl-0 = <&pinctrl_spi1_default>; 222 status = "okay"; 223 }; 224 225 i2c1: i2c@fc028000 { 226 dmas = <0>, <0>; 227 pinctrl-names = "default", "gpio"; 228 pinctrl-0 = <&pinctrl_i2c1_default>; 229 pinctrl-1 = <&pinctrl_i2c1_gpio>; 230 sda-gpios = <&pioA PIN_PC6 GPIO_ACTIVE_HIGH>; 231 scl-gpios = <&pioA PIN_PC7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 232 status = "okay"; 233 234 at24@50 { 235 compatible = "atmel,24c02"; 236 reg = <0x50>; 237 pagesize = <8>; 238 }; 239 }; 240 241 pinctrl@fc038000 { 242 pinctrl_flx0_default: flx0_default { 243 pinmux = <PIN_PB28__FLEXCOM0_IO0>, 244 <PIN_PB29__FLEXCOM0_IO1>; 245 bias-disable; 246 }; 247 248 pinctrl_flx0_gpio: flx0_gpio { 249 pinmux = <PIN_PB28__GPIO>, 250 <PIN_PB29__GPIO>; 251 bias-disable; 252 }; 253 254 pinctrl_i2c0_default: i2c0_default { 255 pinmux = <PIN_PD21__TWD0>, 256 <PIN_PD22__TWCK0>; 257 bias-disable; 258 }; 259 260 pinctrl_i2c0_gpio: i2c0_gpio { 261 pinmux = <PIN_PD21__GPIO>, 262 <PIN_PD22__GPIO>; 263 bias-disable; 264 }; 265 266 pinctrl_i2c1_default: i2c1_default { 267 pinmux = <PIN_PC6__TWD1>, 268 <PIN_PC7__TWCK1>; 269 bias-disable; 270 }; 271 272 pinctrl_i2c1_gpio: i2c1_gpio { 273 pinmux = <PIN_PC6__GPIO>, 274 <PIN_PC7__GPIO>; 275 bias-disable; 276 }; 277 278 pinctrl_key_gpio_default: key_gpio_default { 279 pinmux = <PIN_PA10__GPIO>; 280 bias-pull-up; 281 }; 282 283 pinctrl_led_gpio_default: led_gpio_default { 284 pinmux = <PIN_PB6__GPIO>, 285 <PIN_PB8__GPIO>, 286 <PIN_PB10__GPIO>; 287 bias-pull-up; 288 }; 289 290 pinctrl_macb0_default: macb0_default { 291 pinmux = <PIN_PB14__GTXCK>, 292 <PIN_PB15__GTXEN>, 293 <PIN_PB16__GRXDV>, 294 <PIN_PB17__GRXER>, 295 <PIN_PB18__GRX0>, 296 <PIN_PB19__GRX1>, 297 <PIN_PB20__GTX0>, 298 <PIN_PB21__GTX1>, 299 <PIN_PB22__GMDC>, 300 <PIN_PB23__GMDIO>; 301 bias-disable; 302 }; 303 304 pinctrl_macb0_phy_irq: macb0_phy_irq { 305 pinmux = <PIN_PB24__GPIO>; 306 bias-disable; 307 }; 308 309 pinctrl_nand_default: nand_default { 310 re_we_data { 311 pinmux = <PIN_PA22__D0>, 312 <PIN_PA23__D1>, 313 <PIN_PA24__D2>, 314 <PIN_PA25__D3>, 315 <PIN_PA26__D4>, 316 <PIN_PA27__D5>, 317 <PIN_PA28__D6>, 318 <PIN_PA29__D7>, 319 <PIN_PA30__NWE_NANDWE>, 320 <PIN_PB2__NRD_NANDOE>; 321 bias-pull-up; 322 atmel,drive-strength = <ATMEL_PIO_DRVSTR_ME>; 323 }; 324 325 ale_cle_rdy_cs { 326 pinmux = <PIN_PB0__A21_NANDALE>, 327 <PIN_PB1__A22_NANDCLE>, 328 <PIN_PC8__NANDRDY>, 329 <PIN_PA31__NCS3>; 330 bias-pull-up; 331 }; 332 }; 333 334 pinctrl_sdmmc0_default: sdmmc0_default { 335 cmd_data { 336 pinmux = <PIN_PA1__SDMMC0_CMD>, 337 <PIN_PA2__SDMMC0_DAT0>, 338 <PIN_PA3__SDMMC0_DAT1>, 339 <PIN_PA4__SDMMC0_DAT2>, 340 <PIN_PA5__SDMMC0_DAT3>, 341 <PIN_PA6__SDMMC0_DAT4>, 342 <PIN_PA7__SDMMC0_DAT5>, 343 <PIN_PA8__SDMMC0_DAT6>, 344 <PIN_PA9__SDMMC0_DAT7>; 345 bias-pull-up; 346 }; 347 348 ck_cd_vddsel { 349 pinmux = <PIN_PA0__SDMMC0_CK>, 350 <PIN_PA11__SDMMC0_VDDSEL>, 351 <PIN_PA13__SDMMC0_CD>; 352 bias-disable; 353 }; 354 }; 355 356 pinctrl_spi0_default: spi0_default { 357 pinmux = <PIN_PA14__SPI0_SPCK>, 358 <PIN_PA15__SPI0_MOSI>, 359 <PIN_PA16__SPI0_MISO>, 360 <PIN_PA17__SPI0_NPCS0>; 361 bias-disable; 362 }; 363 364 pinctrl_spi1_default: spi1_default { 365 pinmux = <PIN_PC1__SPI1_SPCK>, 366 <PIN_PC2__SPI1_MOSI>, 367 <PIN_PC3__SPI1_MISO>, 368 <PIN_PC4__SPI1_NPCS0>; 369 bias-disable; 370 }; 371 372 pinctrl_uart0_default: uart0_default { 373 pinmux = <PIN_PB26__URXD0>, 374 <PIN_PB27__UTXD0>; 375 bias-disable; 376 }; 377 378 pinctrl_uart2_default: uart2_default { 379 pinmux = <PIN_PD23__URXD2>, 380 <PIN_PD24__UTXD2>; 381 bias-disable; 382 }; 383 384 pinctrl_usb_default: usb_default { 385 pinmux = <PIN_PB12__GPIO>; 386 bias-disable; 387 }; 388 389 pinctrl_usba_vbus: usba_vbus { 390 pinmux = <PIN_PB11__GPIO>; 391 bias-disable; 392 }; 393 394 }; 395 396 }; 397 }; 398 399 gpio-keys { 400 compatible = "gpio-keys"; 401 402 pinctrl-names = "default"; 403 pinctrl-0 = <&pinctrl_key_gpio_default>; 404 405 button-1 { 406 label = "PB_USER"; 407 gpios = <&pioA PIN_PA10 GPIO_ACTIVE_LOW>; 408 linux,code = <KEY_PROG1>; 409 wakeup-source; 410 }; 411 }; 412 413 leds { 414 compatible = "gpio-leds"; 415 pinctrl-names = "default"; 416 pinctrl-0 = <&pinctrl_led_gpio_default>; 417 status = "okay"; 418 419 led-red { 420 label = "red"; 421 gpios = <&pioA PIN_PB10 GPIO_ACTIVE_HIGH>; 422 }; 423 424 led-green { 425 label = "green"; 426 gpios = <&pioA PIN_PB8 GPIO_ACTIVE_HIGH>; 427 }; 428 429 led-blue { 430 label = "blue"; 431 gpios = <&pioA PIN_PB6 GPIO_ACTIVE_HIGH>; 432 linux,default-trigger = "heartbeat"; 433 }; 434 }; 435}; 436