1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * at91-sama5d29_curiosity.dts - Device Tree file for SAMA5D29 Curiosity board 4 * 5 * Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries 6 * 7 * Author: Mihai Sain <mihai.sain@microchip.com> 8 * 9 */ 10/dts-v1/; 11#include "sama5d29.dtsi" 12#include "sama5d2-pinfunc.h" 13#include <dt-bindings/gpio/gpio.h> 14#include <dt-bindings/input/input.h> 15#include <dt-bindings/mfd/atmel-flexcom.h> 16 17/ { 18 model = "Microchip SAMA5D29 Curiosity"; 19 compatible = "microchip,sama5d29-curiosity", "atmel,sama5d29", "atmel,sama5d2", "atmel,sama5"; 20 21 aliases { 22 serial0 = &uart0; // debug 23 serial1 = &uart1; // RPi 24 serial2 = &uart3; // mikro BUS 2 25 serial3 = &uart4; // mikro BUS 1 26 serial4 = &uart6; // flx1 Bluetooth 27 i2c0 = &i2c0; 28 i2c1 = &i2c1; 29 }; 30 31 chosen { 32 bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait"; 33 stdout-path = "serial0:115200n8"; 34 }; 35 36 clocks { 37 slow_xtal { 38 clock-frequency = <32768>; 39 }; 40 41 main_xtal { 42 clock-frequency = <24000000>; 43 }; 44 }; 45 46 gpio-keys { 47 compatible = "gpio-keys"; 48 49 pinctrl-names = "default"; 50 pinctrl-0 = <&pinctrl_key_gpio_default>; 51 52 button-1 { 53 label = "USER BUTTON"; 54 gpios = <&pioA PIN_PA17 GPIO_ACTIVE_LOW>; 55 linux,code = <KEY_PROG1>; 56 wakeup-source; 57 }; 58 }; 59 60 leds { 61 compatible = "gpio-leds"; 62 pinctrl-names = "default"; 63 pinctrl-0 = <&pinctrl_led_gpio_default>; 64 status = "okay"; 65 66 led-red { 67 label = "red"; 68 gpios = <&pioA PIN_PA7 GPIO_ACTIVE_HIGH>; 69 }; 70 71 led-green { 72 label = "green"; 73 gpios = <&pioA PIN_PA8 GPIO_ACTIVE_HIGH>; 74 }; 75 76 led-blue { 77 label = "blue"; 78 gpios = <&pioA PIN_PA9 GPIO_ACTIVE_HIGH>; 79 linux,default-trigger = "heartbeat"; 80 }; 81 }; 82 83 memory@20000000 { 84 device_type = "memory"; 85 reg = <0x20000000 0x20000000>; 86 }; 87 88 reg_5v: regulator-5v { 89 compatible = "regulator-fixed"; 90 regulator-name = "5V_MAIN"; 91 regulator-min-microvolt = <5000000>; 92 regulator-max-microvolt = <5000000>; 93 regulator-always-on; 94 }; 95}; 96 97&adc { 98 vddana-supply = <&vdd_3v3>; 99 vref-supply = <&vdd_3v3>; 100 pinctrl-names = "default"; 101 pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>; 102 status = "okay"; 103}; 104 105&can0 { 106 pinctrl-names = "default"; 107 pinctrl-0 = <&pinctrl_can0_default>; 108 status = "okay"; 109}; 110 111&can1 { 112 pinctrl-names = "default"; 113 pinctrl-0 = <&pinctrl_can1_default>; 114 status = "okay"; 115}; 116 117&flx1 { 118 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>; 119 status = "okay"; 120 121 uart6: serial@200 { 122 pinctrl-0 = <&pinctrl_flx1_default>; 123 pinctrl-names = "default"; 124 atmel,use-dma-rx; 125 atmel,use-dma-tx; 126 status = "okay"; 127 }; 128}; 129 130&flx4 { 131 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; 132 status = "okay"; 133 134 spi6: spi@400 { 135 dmas = <0>, <0>; 136 pinctrl-names = "default"; 137 pinctrl-0 = <&pinctrl_rpi_spi>; 138 status = "okay"; 139 }; 140}; 141 142&i2c0 { 143 dmas = <0>, <0>; 144 pinctrl-names = "default", "gpio"; 145 pinctrl-0 = <&pinctrl_i2c0_default>; 146 pinctrl-1 = <&pinctrl_i2c0_gpio>; 147 sda-gpios = <&pioA PIN_PB31 GPIO_ACTIVE_HIGH>; 148 scl-gpios = <&pioA PIN_PC0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 149 i2c-sda-hold-time-ns = <350>; 150 status = "okay"; 151 152 mcp16502@5b { 153 compatible = "microchip,mcp16502"; 154 reg = <0x5b>; 155 lvin-supply = <®_5v>; 156 pvin1-supply = <®_5v>; 157 pvin2-supply = <®_5v>; 158 pvin3-supply = <®_5v>; 159 pvin4-supply = <®_5v>; 160 status = "okay"; 161 lpm-gpios = <&pioBU 0 GPIO_ACTIVE_LOW>; 162 163 regulators { 164 vdd_3v3: VDD_IO { 165 regulator-name = "VDD_IO"; 166 regulator-min-microvolt = <3300000>; 167 regulator-max-microvolt = <3300000>; 168 regulator-initial-mode = <2>; 169 regulator-allowed-modes = <2>, <4>; 170 regulator-always-on; 171 172 regulator-state-standby { 173 regulator-on-in-suspend; 174 regulator-mode = <4>; 175 }; 176 177 regulator-state-mem { 178 regulator-off-in-suspend; 179 regulator-mode = <4>; 180 }; 181 }; 182 183 vddio_ddr: VDD_DDR { 184 regulator-name = "VDD_DDR"; 185 regulator-min-microvolt = <1200000>; 186 regulator-max-microvolt = <1200000>; 187 regulator-initial-mode = <2>; 188 regulator-allowed-modes = <2>, <4>; 189 regulator-always-on; 190 191 regulator-state-standby { 192 regulator-on-in-suspend; 193 regulator-suspend-microvolt = <1200000>; 194 regulator-changeable-in-suspend; 195 regulator-mode = <4>; 196 }; 197 198 regulator-state-mem { 199 regulator-on-in-suspend; 200 regulator-suspend-microvolt = <1200000>; 201 regulator-changeable-in-suspend; 202 regulator-mode = <4>; 203 }; 204 }; 205 206 vdd_core: VDD_CORE { 207 regulator-name = "VDD_CORE"; 208 regulator-min-microvolt = <1250000>; 209 regulator-max-microvolt = <1250000>; 210 regulator-initial-mode = <2>; 211 regulator-allowed-modes = <2>, <4>; 212 regulator-always-on; 213 214 regulator-state-standby { 215 regulator-on-in-suspend; 216 regulator-mode = <4>; 217 }; 218 219 regulator-state-mem { 220 regulator-off-in-suspend; 221 regulator-mode = <4>; 222 }; 223 }; 224 225 vdd_ddr: VDD_OTHER { 226 regulator-name = "VDD_OTHER"; 227 regulator-min-microvolt = <1800000>; 228 regulator-max-microvolt = <1800000>; 229 regulator-initial-mode = <2>; 230 regulator-allowed-modes = <2>, <4>; 231 regulator-always-on; 232 233 regulator-state-standby { 234 regulator-on-in-suspend; 235 regulator-suspend-microvolt = <1800000>; 236 regulator-changeable-in-suspend; 237 regulator-mode = <4>; 238 }; 239 240 regulator-state-mem { 241 regulator-on-in-suspend; 242 regulator-suspend-microvolt = <1800000>; 243 regulator-changeable-in-suspend; 244 regulator-mode = <4>; 245 }; 246 }; 247 248 LDO1 { 249 regulator-name = "LDO1"; 250 regulator-min-microvolt = <2500000>; 251 regulator-max-microvolt = <2500000>; 252 regulator-always-on; 253 254 regulator-state-standby { 255 regulator-on-in-suspend; 256 }; 257 258 regulator-state-mem { 259 regulator-off-in-suspend; 260 }; 261 }; 262 263 LDO2 { 264 regulator-name = "LDO2"; 265 regulator-min-microvolt = <3300000>; 266 regulator-max-microvolt = <3300000>; 267 regulator-always-on; 268 269 regulator-state-standby { 270 regulator-on-in-suspend; 271 }; 272 273 regulator-state-mem { 274 regulator-off-in-suspend; 275 }; 276 }; 277 }; 278 }; 279}; 280 281&i2c1 { 282 dmas = <0>, <0>; 283 pinctrl-names = "default", "gpio"; 284 pinctrl-0 = <&pinctrl_i2c1_default>; 285 pinctrl-1 = <&pinctrl_i2c1_gpio>; 286 i2c-analog-filter; 287 i2c-digital-filter; 288 i2c-digital-filter-width-ns = <35>; 289 sda-gpios = <&pioA PIN_PD4 GPIO_ACTIVE_HIGH>; 290 scl-gpios = <&pioA PIN_PD5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 291 status = "okay"; 292}; 293 294&pioA { 295 pinctrl_adc_default: adc-default { 296 pinmux = <PIN_PD25__GPIO>, 297 <PIN_PD26__GPIO>; 298 bias-disable; 299 }; 300 301 pinctrl_adtrg_default: adtrg-default { 302 pinmux = <PIN_PD31__ADTRG>; 303 bias-pull-up; 304 }; 305 306 pinctrl_can0_default: can0-default { 307 pinmux = <PIN_PC10__CANTX0>, 308 <PIN_PC11__CANRX0>; 309 bias-disable; 310 }; 311 312 pinctrl_can1_default: can1-default { 313 pinmux = <PIN_PC26__CANTX1>, 314 <PIN_PC27__CANRX1>; 315 bias-disable; 316 }; 317 318 pinctrl_debug_uart: debug-uart { 319 pinmux = <PIN_PB26__URXD0>, 320 <PIN_PB27__UTXD0>; 321 bias-disable; 322 }; 323 324 pinctrl_flx1_default: flx1-default { 325 pinmux = <PIN_PA24__FLEXCOM1_IO0>, 326 <PIN_PA23__FLEXCOM1_IO1>, 327 <PIN_PA25__FLEXCOM1_IO3>, 328 <PIN_PA26__FLEXCOM1_IO4>; 329 bias-disable; 330 }; 331 332 pinctrl_i2c0_default: i2c0-default { 333 pinmux = <PIN_PB31__TWD0>, 334 <PIN_PC0__TWCK0>; 335 bias-disable; 336 }; 337 338 pinctrl_i2c0_gpio: i2c0-gpio-default { 339 pinmux = <PIN_PB31__GPIO>, 340 <PIN_PC0__GPIO>; 341 bias-disable; 342 }; 343 344 pinctrl_i2c1_default: i2c1-default { 345 pinmux = <PIN_PD4__TWD1>, 346 <PIN_PD5__TWCK1>; 347 bias-disable; 348 }; 349 350 pinctrl_i2c1_gpio: i2c1-gpio-default { 351 pinmux = <PIN_PD4__GPIO>, 352 <PIN_PD5__GPIO>; 353 bias-disable; 354 }; 355 356 pinctrl_key_gpio_default: key-gpio-default { 357 pinmux = <PIN_PA17__GPIO>; 358 bias-pull-up; 359 }; 360 361 pinctrl_led_gpio_default: led-gpio-default { 362 pinmux = <PIN_PA7__GPIO>, 363 <PIN_PA8__GPIO>, 364 <PIN_PA9__GPIO>; 365 bias-pull-up; 366 }; 367 368 pinctrl_mikrobus1_pwm: mikrobus1-pwm { 369 pinmux = <PIN_PA31__PWML0>; 370 bias-disable; 371 }; 372 373 pinctrl_mikrobus2_pwm: mikrobus2-pwm { 374 pinmux = <PIN_PB0__PWMH1>; 375 bias-disable; 376 }; 377 378 pinctrl_mikrobus1_uart: mikrobus1-uart { 379 pinmux = <PIN_PB3__URXD4>, 380 <PIN_PB4__UTXD4>; 381 bias-disable; 382 }; 383 384 pinctrl_mikrobus2_uart: mikrobus2-uart { 385 pinmux = <PIN_PB11__URXD3>, 386 <PIN_PB12__UTXD3>; 387 bias-disable; 388 }; 389 390 pinctrl_qspi1_default: qspi1-default { 391 pinmux = <PIN_PB5__QSPI1_SCK>, 392 <PIN_PB6__QSPI1_CS>, 393 <PIN_PB7__QSPI1_IO0>, 394 <PIN_PB8__QSPI1_IO1>, 395 <PIN_PB9__QSPI1_IO2>, 396 <PIN_PB10__QSPI1_IO3>; 397 bias-disable; 398 }; 399 400 pinctrl_rpi_spi: rpi-spi { 401 pinmux = <PIN_PD12__FLEXCOM4_IO0>, 402 <PIN_PD13__FLEXCOM4_IO1>, 403 <PIN_PD14__FLEXCOM4_IO2>, 404 <PIN_PD15__FLEXCOM4_IO3>, 405 <PIN_PD16__FLEXCOM4_IO4>; 406 bias-disable; 407 }; 408 409 pinctrl_rpi_uart: rpi-uart { 410 pinmux = <PIN_PD2__URXD1>, 411 <PIN_PD3__UTXD1>; 412 bias-disable; 413 }; 414 415 pinctrl_sdmmc0_default: sdmmc0-default { 416 pinmux = <PIN_PA0__SDMMC0_CK>, 417 <PIN_PA1__SDMMC0_CMD>, 418 <PIN_PA2__SDMMC0_DAT0>, 419 <PIN_PA3__SDMMC0_DAT1>, 420 <PIN_PA4__SDMMC0_DAT2>, 421 <PIN_PA5__SDMMC0_DAT3>, 422 <PIN_PA11__SDMMC0_VDDSEL>, 423 <PIN_PA13__SDMMC0_CD>; 424 bias-disable; 425 }; 426 427 pinctrl_sdmmc1_default: sdmmc1-default { 428 pinmux = <PIN_PA18__SDMMC1_DAT0>, 429 <PIN_PA19__SDMMC1_DAT1>, 430 <PIN_PA20__SDMMC1_DAT2>, 431 <PIN_PA21__SDMMC1_DAT3>, 432 <PIN_PA22__SDMMC1_CK>, 433 <PIN_PA28__SDMMC1_CMD>, 434 <PIN_PA30__SDMMC1_CD>; 435 bias-disable; 436 }; 437 438 pinctrl_spi1_default: spi1-default { 439 pinmux = <PIN_PC1__SPI1_SPCK>, 440 <PIN_PC2__SPI1_MOSI>, 441 <PIN_PC3__SPI1_MISO>, 442 <PIN_PC4__SPI1_NPCS0>, 443 <PIN_PC5__SPI1_NPCS1>, 444 <PIN_PC6__SPI1_NPCS2>, 445 <PIN_PC7__SPI1_NPCS3>; 446 bias-disable; 447 }; 448 449 pinctrl_usb_default: usb-default { 450 pinmux = <PIN_PA6__GPIO>; 451 bias-disable; 452 }; 453 454 pinctrl_usba_vbus: usba-vbus { 455 pinmux = <PIN_PB13__GPIO>; 456 bias-disable; 457 }; 458}; 459 460&pwm0 { 461 pinctrl-names = "default"; 462 pinctrl-0 = <&pinctrl_mikrobus1_pwm &pinctrl_mikrobus2_pwm>; 463 status = "okay"; 464}; 465 466&qspi1 { 467 pinctrl-names = "default"; 468 pinctrl-0 = <&pinctrl_qspi1_default>; 469 status = "okay"; 470 471 flash@0 { 472 #address-cells = <1>; 473 #size-cells = <1>; 474 compatible = "jedec,spi-nor"; 475 reg = <0>; 476 spi-max-frequency = <80000000>; 477 spi-tx-bus-width = <4>; 478 spi-rx-bus-width = <4>; 479 m25p,fast-read; 480 label = "atmel_qspi1"; 481 status = "okay"; 482 483 at91bootstrap@0 { 484 label = "at91bootstrap"; 485 reg = <0x0 0x40000>; 486 }; 487 488 bootloader@40000 { 489 label = "bootloader"; 490 reg = <0x40000 0xc0000>; 491 }; 492 493 bootloaderenvred@100000 { 494 label = "bootloader env redundant"; 495 reg = <0x100000 0x40000>; 496 }; 497 498 bootloaderenv@140000 { 499 label = "bootloader env"; 500 reg = <0x140000 0x40000>; 501 }; 502 503 dtb@180000 { 504 label = "device tree"; 505 reg = <0x180000 0x80000>; 506 }; 507 508 kernel@200000 { 509 label = "kernel"; 510 reg = <0x200000 0x600000>; 511 }; 512 }; 513}; 514 515&sdmmc0 { 516 bus-width = <4>; 517 pinctrl-names = "default"; 518 pinctrl-0 = <&pinctrl_sdmmc0_default>; 519 disable-wp; 520 status = "okay"; 521}; 522 523&sdmmc1 { 524 bus-width = <4>; 525 pinctrl-names = "default"; 526 pinctrl-0 = <&pinctrl_sdmmc1_default>; 527 disable-wp; 528 status = "okay"; 529}; 530 531&shutdown_controller { 532 debounce-delay-us = <976>; 533 atmel,wakeup-rtc-timer; 534 535 input@0 { 536 reg = <0>; 537 }; 538}; 539 540&spi1 { 541 pinctrl-names = "default"; 542 pinctrl-0 = <&pinctrl_spi1_default>; 543 status = "okay"; 544}; 545 546&tcb0 { 547 timer0: timer@0 { 548 compatible = "atmel,tcb-timer"; 549 reg = <0>; 550 }; 551 552 timer1: timer@1 { 553 compatible = "atmel,tcb-timer"; 554 reg = <1>; 555 }; 556}; 557 558&uart0 { 559 pinctrl-names = "default"; 560 pinctrl-0 = <&pinctrl_debug_uart>; 561 atmel,use-dma-rx; 562 atmel,use-dma-tx; 563 status = "okay"; 564}; 565 566&uart1 { 567 pinctrl-names = "default"; 568 pinctrl-0 = <&pinctrl_rpi_uart>; 569 atmel,use-dma-rx; 570 atmel,use-dma-tx; 571 status = "okay"; 572}; 573 574&uart3 { 575 pinctrl-names = "default"; 576 pinctrl-0 = <&pinctrl_mikrobus2_uart>; 577 atmel,use-dma-rx; 578 atmel,use-dma-tx; 579 status = "okay"; 580}; 581 582&uart4 { 583 pinctrl-names = "default"; 584 pinctrl-0 = <&pinctrl_mikrobus1_uart>; 585 atmel,use-dma-rx; 586 atmel,use-dma-tx; 587 status = "okay"; 588}; 589 590&usb0 { 591 atmel,vbus-gpio = <&pioA PIN_PB13 GPIO_ACTIVE_HIGH>; 592 pinctrl-names = "default"; 593 pinctrl-0 = <&pinctrl_usba_vbus>; 594 status = "okay"; 595}; 596 597&usb1 { 598 num-ports = <3>; 599 atmel,vbus-gpio = <0 600 &pioA PIN_PA6 GPIO_ACTIVE_HIGH 601 0>; 602 pinctrl-names = "default"; 603 pinctrl-0 = <&pinctrl_usb_default>; 604 status = "okay"; 605}; 606 607&usb2 { 608 status = "okay"; 609}; 610 611&watchdog { 612 status = "okay"; 613}; 614