1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 3 * at91-sama7g5ek.dts - Device Tree file for 4 * 5 * Copyright (c) 2020 Microchip Technology In 6 * 7 * Author: Eugen Hristev <eugen.hristev@microc 8 * Author: Claudiu Beznea <claudiu.beznea@micr 9 * 10 */ 11 /dts-v1/; 12 #include "sama7g5-pinfunc.h" 13 #include "sama7g5.dtsi" 14 #include <dt-bindings/mfd/atmel-flexcom.h> 15 #include <dt-bindings/input/input.h> 16 #include <dt-bindings/pinctrl/at91.h> 17 #include <dt-bindings/sound/microchip,pdmc.h> 18 19 / { 20 model = "Microchip SAMA7G5-EK"; 21 compatible = "microchip,sama7g5ek", "m 22 23 chosen { 24 bootargs = "rw root=/dev/mmcbl 25 stdout-path = "serial0:115200n 26 }; 27 28 aliases { 29 serial0 = &uart3; 30 serial1 = &uart4; 31 serial2 = &uart7; 32 serial3 = &uart0; 33 i2c0 = &i2c1; 34 i2c1 = &i2c8; 35 i2c2 = &i2c9; 36 }; 37 38 clocks { 39 slow_xtal { 40 clock-frequency = <327 41 }; 42 43 main_xtal { 44 clock-frequency = <240 45 }; 46 }; 47 48 gpio-keys { 49 compatible = "gpio-keys"; 50 51 pinctrl-names = "default"; 52 pinctrl-0 = <&pinctrl_key_gpio 53 54 button { 55 label = "PB_USER"; 56 gpios = <&pioA PIN_PA1 57 linux,code = <KEY_PROG 58 wakeup-source; 59 }; 60 }; 61 62 leds { 63 compatible = "gpio-leds"; 64 pinctrl-names = "default"; 65 pinctrl-0 = <&pinctrl_led_gpio 66 status = "okay"; /* Conflict w 67 68 red_led { 69 label = "red"; 70 gpios = <&pioA PIN_PB8 71 }; 72 73 green_led { 74 label = "green"; 75 gpios = <&pioA PIN_PA1 76 }; 77 78 blue_led { 79 label = "blue"; 80 gpios = <&pioA PIN_PD2 81 linux,default-trigger 82 }; 83 }; 84 85 /* 512 M */ 86 memory@60000000 { 87 device_type = "memory"; 88 reg = <0x60000000 0x20000000>; 89 }; 90 91 reg_5v: regulator-5v { 92 compatible = "regulator-fixed" 93 regulator-name = "5V_MAIN"; 94 regulator-min-microvolt = <500 95 regulator-max-microvolt = <500 96 regulator-always-on; 97 }; 98 99 sound: sound { 100 compatible = "simple-audio-car 101 simple-audio-card,name = "sama 102 #address-cells = <1>; 103 #size-cells = <0>; 104 simple-audio-card,dai-link@0 { 105 reg = <0>; 106 cpu { 107 sound-dai = <& 108 }; 109 codec { 110 sound-dai = <& 111 }; 112 }; 113 simple-audio-card,dai-link@1 { 114 reg = <1>; 115 cpu { 116 sound-dai = <& 117 }; 118 codec { 119 sound-dai = <& 120 }; 121 }; 122 }; 123 124 spdif_in: spdif-in { 125 #sound-dai-cells = <0>; 126 compatible = "linux,spdif-dir" 127 }; 128 129 spdif_out: spdif-out { 130 #sound-dai-cells = <0>; 131 compatible = "linux,spdif-dit" 132 }; 133 }; 134 135 &adc { 136 vddana-supply = <&vddout25>; 137 vref-supply = <&vddout25>; 138 pinctrl-names = "default"; 139 pinctrl-0 = <&pinctrl_mikrobus1_an_def 140 status = "okay"; 141 }; 142 143 &can0 { 144 pinctrl-names = "default"; 145 pinctrl-0 = <&pinctrl_can0_default>; 146 status = "okay"; 147 }; 148 149 &can1 { 150 pinctrl-names = "default"; 151 pinctrl-0 = <&pinctrl_can1_default>; 152 status = "okay"; 153 }; 154 155 &cpu0 { 156 cpu-supply = <&vddcpu>; 157 }; 158 159 &qspi0 { 160 pinctrl-names = "default"; 161 pinctrl-0 = <&pinctrl_qspi>; 162 status = "okay"; 163 164 flash@0 { 165 #address-cells = <1>; 166 #size-cells = <1>; 167 compatible = "jedec,spi-nor"; 168 reg = <0>; 169 spi-max-frequency = <133000000 170 spi-tx-bus-width = <8>; 171 spi-rx-bus-width = <8>; 172 m25p,fast-read; 173 174 at91bootstrap@0 { 175 label = "ospi: at91boo 176 reg = <0x0 0x40000>; 177 }; 178 179 bootloader@40000 { 180 label = "ospi: bootloa 181 reg = <0x40000 0xc0000 182 }; 183 184 bootloaderenvred@100000 { 185 label = "ospi: bootloa 186 reg = <0x100000 0x4000 187 }; 188 189 bootloaderenv@140000 { 190 label = "ospi: bootloa 191 reg = <0x140000 0x4000 192 }; 193 194 dtb@180000 { 195 label = "ospi: device 196 reg = <0x180000 0x8000 197 }; 198 199 kernel@200000 { 200 label = "ospi: kernel" 201 reg = <0x200000 0x6000 202 }; 203 204 rootfs@800000 { 205 label = "ospi: rootfs" 206 reg = <0x800000 0x7800 207 }; 208 209 }; 210 }; 211 212 &dma0 { 213 status = "okay"; 214 }; 215 216 &dma1 { 217 status = "okay"; 218 }; 219 220 &dma2 { 221 status = "okay"; 222 }; 223 224 &flx0 { 225 atmel,flexcom-mode = <ATMEL_FLEXCOM_MO 226 status = "disabled"; 227 228 uart0: serial@200 { 229 pinctrl-names = "default"; 230 pinctrl-0 = <&pinctrl_flx0_def 231 status = "disabled"; 232 }; 233 }; 234 235 &flx1 { 236 atmel,flexcom-mode = <ATMEL_FLEXCOM_MO 237 status = "okay"; 238 239 i2c1: i2c@600 { 240 pinctrl-names = "default"; 241 pinctrl-0 = <&pinctrl_i2c1_def 242 i2c-analog-filter; 243 i2c-digital-filter; 244 i2c-digital-filter-width-ns = 245 status = "okay"; 246 247 mcp16502@5b { 248 compatible = "microchi 249 reg = <0x5b>; 250 lvin-supply = <®_5v 251 pvin1-supply = <®_5 252 pvin2-supply = <®_5 253 pvin3-supply = <®_5 254 pvin4-supply = <®_5 255 status = "okay"; 256 257 regulators { 258 vdd_3v3: VDD_I 259 regula 260 regula 261 regula 262 regula 263 regula 264 regula 265 266 regula 267 268 269 270 }; 271 272 regula 273 274 275 }; 276 }; 277 278 vddioddr: VDD_ 279 regula 280 regula 281 regula 282 regula 283 regula 284 regula 285 286 regula 287 288 289 290 }; 291 292 regula 293 294 295 296 }; 297 }; 298 299 vddcore: VDD_C 300 regula 301 regula 302 regula 303 regula 304 regula 305 regula 306 307 regula 308 309 310 311 }; 312 313 regula 314 315 316 }; 317 }; 318 319 vddcpu: VDD_OT 320 regula 321 regula 322 regula 323 regula 324 regula 325 regula 326 regula 327 328 regula 329 330 331 332 }; 333 334 regula 335 336 337 }; 338 }; 339 340 vldo1: LDO1 { 341 regula 342 regula 343 regula 344 regula 345 346 regula 347 348 349 }; 350 351 regula 352 353 }; 354 }; 355 356 vldo2: LDO2 { 357 regula 358 regula 359 regula 360 361 regula 362 363 364 }; 365 366 regula 367 368 }; 369 }; 370 }; 371 }; 372 }; 373 }; 374 375 &flx3 { 376 atmel,flexcom-mode = <ATMEL_FLEXCOM_MO 377 status = "okay"; 378 379 uart3: serial@200 { 380 pinctrl-names = "default"; 381 pinctrl-0 = <&pinctrl_flx3_def 382 status = "okay"; 383 }; 384 }; 385 386 &flx4 { 387 atmel,flexcom-mode = <ATMEL_FLEXCOM_MO 388 status = "okay"; 389 390 uart4: serial@200 { 391 pinctrl-names = "default"; 392 pinctrl-0 = <&pinctrl_flx4_def 393 status = "okay"; 394 }; 395 }; 396 397 &flx7 { 398 atmel,flexcom-mode = <ATMEL_FLEXCOM_MO 399 status = "okay"; 400 401 uart7: serial@200 { 402 pinctrl-names = "default"; 403 pinctrl-0 = <&pinctrl_flx7_def 404 status = "okay"; 405 }; 406 }; 407 408 &flx8 { 409 atmel,flexcom-mode = <ATMEL_FLEXCOM_MO 410 status = "okay"; 411 412 i2c8: i2c@600 { 413 pinctrl-names = "default"; 414 pinctrl-0 = <&pinctrl_i2c8_def 415 i2c-analog-filter; 416 i2c-digital-filter; 417 i2c-digital-filter-width-ns = 418 status = "okay"; 419 420 eeprom0: eeprom@52 { 421 compatible = "microchi 422 reg = <0x52>; 423 size = <256>; 424 pagesize = <16>; 425 vcc-supply = <&vdd_3v3 426 427 nvmem-layout { 428 compatible = " 429 #address-cells 430 #size-cells = 431 432 eeprom0_eui48: 433 reg = 434 }; 435 }; 436 }; 437 438 eeprom1: eeprom@53 { 439 compatible = "microchi 440 reg = <0x53>; 441 size = <256>; 442 pagesize = <16>; 443 vcc-supply = <&vdd_3v3 444 445 nvmem-layout { 446 compatible = " 447 #address-cells 448 #size-cells = 449 450 eeprom1_eui48: 451 reg = 452 }; 453 }; 454 }; 455 }; 456 }; 457 458 &flx9 { 459 atmel,flexcom-mode = <ATMEL_FLEXCOM_MO 460 status = "okay"; 461 462 i2c9: i2c@600 { 463 pinctrl-names = "default"; 464 pinctrl-0 = <&pinctrl_i2c9_def 465 i2c-analog-filter; 466 i2c-digital-filter; 467 i2c-digital-filter-width-ns = 468 status = "okay"; 469 }; 470 }; 471 472 &flx11 { 473 atmel,flexcom-mode = <ATMEL_FLEXCOM_MO 474 status = "okay"; 475 476 spi11: spi@400 { 477 pinctrl-names = "default"; 478 pinctrl-0 = <&pinctrl_mikrobus 479 status = "okay"; 480 }; 481 }; 482 483 &gmac0 { 484 #address-cells = <1>; 485 #size-cells = <0>; 486 pinctrl-names = "default"; 487 pinctrl-0 = <&pinctrl_gmac0_default 488 &pinctrl_gmac0_mdio_defau 489 &pinctrl_gmac0_txck_defau 490 &pinctrl_gmac0_phy_irq>; 491 phy-mode = "rgmii-id"; 492 nvmem-cells = <&eeprom0_eui48>; 493 nvmem-cell-names = "mac-address"; 494 status = "okay"; 495 496 ethernet-phy@7 { 497 reg = <0x7>; 498 interrupt-parent = <&pioA>; 499 interrupts = <PIN_PA31 IRQ_TYP 500 }; 501 }; 502 503 &gmac1 { 504 #address-cells = <1>; 505 #size-cells = <0>; 506 pinctrl-names = "default"; 507 pinctrl-0 = <&pinctrl_gmac1_default 508 &pinctrl_gmac1_mdio_defau 509 &pinctrl_gmac1_phy_irq>; 510 phy-mode = "rmii"; 511 nvmem-cells = <&eeprom1_eui48>; 512 nvmem-cell-names = "mac-address"; 513 status = "okay"; /* Conflict with pdmc 514 515 ethernet-phy@0 { 516 reg = <0x0>; 517 interrupt-parent = <&pioA>; 518 interrupts = <PIN_PA21 IRQ_TYP 519 }; 520 }; 521 522 &i2s0 { 523 pinctrl-names = "default"; 524 pinctrl-0 = <&pinctrl_i2s0_default>; 525 }; 526 527 &pdmc0 { 528 #sound-dai-cells = <0>; 529 microchip,mic-pos = <MCHP_PDMC_DS0 MCH 530 <MCHP_PDMC_DS1 MCH 531 <MCHP_PDMC_DS0 MCH 532 <MCHP_PDMC_DS1 MCH 533 status = "disabled"; /* Conflict with 534 pinctrl-names = "default"; 535 pinctrl-0 = <&pinctrl_pdmc0_default>; 536 }; 537 538 &pioA { 539 540 pinctrl_can0_default: can0_default { 541 pinmux = <PIN_PD12__CANTX0>, 542 <PIN_PD13__CANRX0 >; 543 bias-disable; 544 }; 545 546 pinctrl_can1_default: can1_default { 547 pinmux = <PIN_PD14__CANTX1>, 548 <PIN_PD15__CANRX1 >; 549 bias-disable; 550 }; 551 552 pinctrl_flx0_default: flx0_default { 553 pinmux = <PIN_PE3__FLEXCOM0_IO 554 <PIN_PE4__FLEXCOM0_IO 555 <PIN_PE6__FLEXCOM0_IO 556 <PIN_PE7__FLEXCOM0_IO 557 bias-disable; 558 }; 559 560 pinctrl_flx3_default: flx3_default { 561 pinmux = <PIN_PD16__FLEXCOM3_I 562 <PIN_PD17__FLEXCOM3_I 563 bias-pull-up; 564 }; 565 566 pinctrl_flx4_default: flx4_default { 567 pinmux = <PIN_PD18__FLEXCOM4_I 568 <PIN_PD19__FLEXCOM4_I 569 bias-disable; 570 }; 571 572 pinctrl_flx7_default: flx7_default { 573 pinmux = <PIN_PC23__FLEXCOM7_I 574 <PIN_PC24__FLEXCOM7_I 575 bias-disable; 576 }; 577 578 pinctrl_gmac0_default: gmac0_default { 579 pinmux = <PIN_PA16__G0_TX0>, 580 <PIN_PA17__G0_TX1>, 581 <PIN_PA26__G0_TX2>, 582 <PIN_PA27__G0_TX3>, 583 <PIN_PA19__G0_RX0>, 584 <PIN_PA20__G0_RX1>, 585 <PIN_PA28__G0_RX2>, 586 <PIN_PA29__G0_RX3>, 587 <PIN_PA15__G0_TXEN>, 588 <PIN_PA30__G0_RXCK>, 589 <PIN_PA18__G0_RXDV>, 590 <PIN_PA25__G0_125CK>; 591 slew-rate = <0>; 592 bias-disable; 593 }; 594 595 pinctrl_gmac0_mdio_default: gmac0_mdio 596 pinmux = <PIN_PA22__G0_MDC>, 597 <PIN_PA23__G0_MDIO>; 598 bias-disable; 599 }; 600 601 pinctrl_gmac0_txck_default: gmac0_txck 602 pinmux = <PIN_PA24__G0_TXCK>; 603 slew-rate = <0>; 604 bias-pull-up; 605 }; 606 607 pinctrl_gmac0_phy_irq: gmac0_phy_irq { 608 pinmux = <PIN_PA31__GPIO>; 609 bias-disable; 610 }; 611 612 pinctrl_gmac1_default: gmac1_default { 613 pinmux = <PIN_PD30__G1_TXCK>, 614 <PIN_PD22__G1_TX0>, 615 <PIN_PD23__G1_TX1>, 616 <PIN_PD21__G1_TXEN>, 617 <PIN_PD25__G1_RX0>, 618 <PIN_PD26__G1_RX1>, 619 <PIN_PD27__G1_RXER>, 620 <PIN_PD24__G1_RXDV>; 621 slew-rate = <0>; 622 bias-disable; 623 }; 624 625 pinctrl_gmac1_mdio_default: gmac1_mdio 626 pinmux = <PIN_PD28__G1_MDC>, 627 <PIN_PD29__G1_MDIO>; 628 bias-disable; 629 }; 630 631 pinctrl_gmac1_phy_irq: gmac1_phy_irq { 632 pinmux = <PIN_PA21__GPIO>; 633 bias-disable; 634 }; 635 636 pinctrl_i2c1_default: i2c1_default { 637 pinmux = <PIN_PC9__FLEXCOM1_IO 638 <PIN_PC10__FLEXCOM1_I 639 bias-disable; 640 }; 641 642 pinctrl_i2c8_default: i2c8_default { 643 pinmux = <PIN_PC14__FLEXCOM8_I 644 <PIN_PC13__FLEXCOM8_I 645 bias-disable; 646 }; 647 648 pinctrl_i2c9_default: i2c9_default { 649 pinmux = <PIN_PC18__FLEXCOM9_I 650 <PIN_PC19__FLEXCOM9_I 651 bias-disable; 652 }; 653 654 pinctrl_i2s0_default: i2s0_default { 655 pinmux = <PIN_PB23__I2SMCC0_CK 656 <PIN_PB24__I2SMCC0_WS 657 <PIN_PB25__I2SMCC0_DO 658 <PIN_PB26__I2SMCC0_DO 659 <PIN_PB27__I2SMCC0_MC 660 bias-disable; 661 }; 662 663 pinctrl_key_gpio_default: key_gpio_def 664 pinmux = <PIN_PA12__GPIO>; 665 bias-pull-up; 666 }; 667 668 pinctrl_led_gpio_default: led_gpio_def 669 pinmux = <PIN_PA13__GPIO>, 670 <PIN_PB8__GPIO>, 671 <PIN_PD20__GPIO>; 672 bias-pull-up; 673 }; 674 675 pinctrl_mikrobus1_an_default: mikrobus 676 pinmux = <PIN_PD0__GPIO>; 677 bias-disable; 678 }; 679 680 pinctrl_mikrobus2_an_default: mikrobus 681 pinmux = <PIN_PD1__GPIO>; 682 bias-disable; 683 }; 684 685 pinctrl_mikrobus1_pwm2_default: mikrob 686 pinmux = <PIN_PA13__PWMH2>; 687 bias-disable; 688 }; 689 690 pinctrl_mikrobus2_pwm3_default: mikrob 691 pinmux = <PIN_PD20__PWMH3>; 692 bias-disable; 693 }; 694 695 pinctrl_mikrobus1_spi_cs: mikrobus1_sp 696 pinmux = <PIN_PB6__FLEXCOM11_I 697 bias-disable; 698 }; 699 700 pinctrl_mikrobus1_spi: mikrobus1_spi { 701 pinmux = <PIN_PB3__FLEXCOM11_I 702 <PIN_PB4__FLEXCOM11_I 703 <PIN_PB5__FLEXCOM11_I 704 bias-disable; 705 }; 706 707 pinctrl_pdmc0_default: pdmc0_default { 708 pinmux = <PIN_PD23__PDMC0_DS0> 709 <PIN_PD24__PDMC0_DS1> 710 <PIN_PD22__PDMC0_CLK> 711 bias_disable; 712 }; 713 714 pinctrl_qspi: qspi { 715 pinmux = <PIN_PB12__QSPI0_IO0> 716 <PIN_PB11__QSPI0_IO1> 717 <PIN_PB10__QSPI0_IO2> 718 <PIN_PB9__QSPI0_IO3>, 719 <PIN_PB16__QSPI0_IO4> 720 <PIN_PB17__QSPI0_IO5> 721 <PIN_PB18__QSPI0_IO6> 722 <PIN_PB19__QSPI0_IO7> 723 <PIN_PB13__QSPI0_CS>, 724 <PIN_PB14__QSPI0_SCK> 725 <PIN_PB15__QSPI0_SCKN 726 <PIN_PB20__QSPI0_DQS> 727 <PIN_PB21__QSPI0_INT> 728 bias-disable; 729 slew-rate = <0>; 730 atmel,drive-strength = <ATMEL_ 731 }; 732 733 pinctrl_sdmmc0_default: sdmmc0_default 734 cmd_data { 735 pinmux = <PIN_PA1__SDM 736 <PIN_PA3__SDM 737 <PIN_PA4__SDM 738 <PIN_PA5__SDM 739 <PIN_PA6__SDM 740 <PIN_PA7__SDM 741 <PIN_PA8__SDM 742 <PIN_PA9__SDM 743 <PIN_PA10__SD 744 slew-rate = <0>; 745 bias-pull-up; 746 }; 747 748 ck_cd_rstn_vddsel { 749 pinmux = <PIN_PA0__SDM 750 <PIN_PA2__SDM 751 <PIN_PA11__SD 752 slew-rate = <0>; 753 bias-pull-up; 754 }; 755 }; 756 757 pinctrl_sdmmc1_default: sdmmc1_default 758 cmd_data { 759 pinmux = <PIN_PB29__SD 760 <PIN_PB31__SD 761 <PIN_PC0__SDM 762 <PIN_PC1__SDM 763 <PIN_PC2__SDM 764 slew-rate = <0>; 765 bias-pull-up; 766 }; 767 768 ck_cd_rstn_vddsel { 769 pinmux = <PIN_PB30__SD 770 <PIN_PB28__SD 771 <PIN_PC5__SDM 772 <PIN_PC4__SDM 773 slew-rate = <0>; 774 bias-pull-up; 775 }; 776 }; 777 778 pinctrl_sdmmc2_default: sdmmc2_default 779 cmd_data { 780 pinmux = <PIN_PD3__SDM 781 <PIN_PD5__SDM 782 <PIN_PD6__SDM 783 <PIN_PD7__SDM 784 <PIN_PD8__SDM 785 slew-rate = <0>; 786 bias-pull-up; 787 }; 788 789 ck { 790 pinmux = <PIN_PD4__SDM 791 slew-rate = <0>; 792 bias-pull-up; 793 }; 794 }; 795 796 pinctrl_spdifrx_default: spdifrx_defau 797 pinmux = <PIN_PB0__SPDIF_RX>; 798 bias-disable; 799 }; 800 801 pinctrl_spdiftx_default: spdiftx_defau 802 pinmux = <PIN_PB1__SPDIF_TX>; 803 bias-disable; 804 }; 805 }; 806 807 &pwm { 808 pinctrl-names = "default"; 809 pinctrl-0 = <&pinctrl_mikrobus1_pwm2_d 810 status = "disabled"; /* Conflict with 811 }; 812 813 &rtt { 814 atmel,rtt-rtc-time-reg = <&gpbr 0x0>; 815 }; 816 817 &sdmmc0 { 818 bus-width = <8>; 819 non-removable; 820 sdhci-caps-mask = <0x0 0x00200000>; 821 vmmc-supply = <&vdd_3v3>; 822 vqmmc-supply = <&vldo1>; 823 pinctrl-names = "default"; 824 pinctrl-0 = <&pinctrl_sdmmc0_default>; 825 status = "okay"; 826 }; 827 828 &sdmmc1 { 829 bus-width = <4>; 830 no-1-8-v; 831 sdhci-caps-mask = <0x0 0x00200000>; 832 vmmc-supply = <&vdd_3v3>; 833 vqmmc-supply = <&vdd_3v3>; 834 pinctrl-names = "default"; 835 pinctrl-0 = <&pinctrl_sdmmc1_default>; 836 status = "okay"; 837 }; 838 839 &sdmmc2 { 840 bus-width = <4>; 841 no-1-8-v; 842 sdhci-caps-mask = <0x0 0x00200000>; 843 pinctrl-names = "default"; 844 pinctrl-0 = <&pinctrl_sdmmc2_default>; 845 }; 846 847 &shdwc { 848 debounce-delay-us = <976>; 849 status = "okay"; 850 851 input@0 { 852 reg = <0>; 853 }; 854 }; 855 856 &spdifrx { 857 pinctrl-names = "default"; 858 pinctrl-0 = <&pinctrl_spdifrx_default> 859 status = "okay"; 860 }; 861 862 &spdiftx { 863 pinctrl-names = "default"; 864 pinctrl-0 = <&pinctrl_spdiftx_default> 865 status = "okay"; 866 }; 867 868 &tcb0 { 869 timer0: timer@0 { 870 compatible = "atmel,tcb-timer" 871 reg = <0>; 872 }; 873 874 timer1: timer@1 { 875 compatible = "atmel,tcb-timer" 876 reg = <1>; 877 }; 878 }; 879 880 &trng { 881 status = "okay"; 882 }; 883 884 &vddout25 { 885 vin-supply = <&vdd_3v3>; 886 status = "okay"; 887 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.