1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Device Tree Source for the Gose board 4 * 5 * Copyright (C) 2014-2015 Renesas Electronics Corporation 6 */ 7 8/* 9 * SSI-AK4643 10 * 11 * SW1: 1: AK4643 12 * 2: CN22 13 * 3: ADV7511 14 * 15 * This command is required when Playback/Capture 16 * 17 * amixer set "LINEOUT Mixer DACL" on 18 * amixer set "DVC Out" 100% 19 * amixer set "DVC In" 100% 20 * 21 * You can use Mute 22 * 23 * amixer set "DVC Out Mute" on 24 * amixer set "DVC In Mute" on 25 * 26 * You can use Volume Ramp 27 * 28 * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 29 * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 30 * amixer set "DVC Out Ramp" on 31 * aplay xxx.wav & 32 * amixer set "DVC Out" 80% // Volume Down 33 * amixer set "DVC Out" 100% // Volume Up 34 */ 35 36/dts-v1/; 37#include "r8a7793.dtsi" 38#include <dt-bindings/gpio/gpio.h> 39#include <dt-bindings/input/input.h> 40 41/ { 42 model = "Gose"; 43 compatible = "renesas,gose", "renesas,r8a7793"; 44 45 aliases { 46 serial0 = &scif0; 47 serial1 = &scif1; 48 i2c9 = &gpioi2c2; 49 i2c10 = &gpioi2c4; 50 i2c11 = &i2chdmi; 51 i2c12 = &i2cexio4; 52 mmc0 = &sdhi0; 53 mmc1 = &sdhi1; 54 mmc2 = &sdhi2; 55 }; 56 57 chosen { 58 bootargs = "ignore_loglevel rw root=/dev/nfs ip=on"; 59 stdout-path = "serial0:115200n8"; 60 }; 61 62 memory@40000000 { 63 device_type = "memory"; 64 reg = <0 0x40000000 0 0x40000000>; 65 }; 66 67 keyboard { 68 compatible = "gpio-keys"; 69 70 pinctrl-0 = <&keyboard_pins>; 71 pinctrl-names = "default"; 72 73 key-1 { 74 gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; 75 linux,code = <KEY_1>; 76 label = "SW2-1"; 77 wakeup-source; 78 debounce-interval = <20>; 79 }; 80 key-2 { 81 gpios = <&gpio5 1 GPIO_ACTIVE_LOW>; 82 linux,code = <KEY_2>; 83 label = "SW2-2"; 84 wakeup-source; 85 debounce-interval = <20>; 86 }; 87 key-3 { 88 gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; 89 linux,code = <KEY_3>; 90 label = "SW2-3"; 91 wakeup-source; 92 debounce-interval = <20>; 93 }; 94 key-4 { 95 gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; 96 linux,code = <KEY_4>; 97 label = "SW2-4"; 98 wakeup-source; 99 debounce-interval = <20>; 100 }; 101 key-a { 102 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 103 linux,code = <KEY_A>; 104 label = "SW30"; 105 wakeup-source; 106 debounce-interval = <20>; 107 }; 108 key-b { 109 gpios = <&gpio7 1 GPIO_ACTIVE_LOW>; 110 linux,code = <KEY_B>; 111 label = "SW31"; 112 wakeup-source; 113 debounce-interval = <20>; 114 }; 115 key-c { 116 gpios = <&gpio7 2 GPIO_ACTIVE_LOW>; 117 linux,code = <KEY_C>; 118 label = "SW32"; 119 wakeup-source; 120 debounce-interval = <20>; 121 }; 122 key-d { 123 gpios = <&gpio7 3 GPIO_ACTIVE_LOW>; 124 linux,code = <KEY_D>; 125 label = "SW33"; 126 wakeup-source; 127 debounce-interval = <20>; 128 }; 129 key-e { 130 gpios = <&gpio7 4 GPIO_ACTIVE_LOW>; 131 linux,code = <KEY_E>; 132 label = "SW34"; 133 wakeup-source; 134 debounce-interval = <20>; 135 }; 136 key-f { 137 gpios = <&gpio7 5 GPIO_ACTIVE_LOW>; 138 linux,code = <KEY_F>; 139 label = "SW35"; 140 wakeup-source; 141 debounce-interval = <20>; 142 }; 143 key-g { 144 gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; 145 linux,code = <KEY_G>; 146 label = "SW36"; 147 wakeup-source; 148 debounce-interval = <20>; 149 }; 150 }; 151 152 leds { 153 compatible = "gpio-leds"; 154 led6 { 155 gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>; 156 label = "LED6"; 157 }; 158 led7 { 159 gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>; 160 label = "LED7"; 161 }; 162 led8 { 163 gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; 164 label = "LED8"; 165 }; 166 }; 167 168 vcc_sdhi0: regulator-vcc-sdhi0 { 169 compatible = "regulator-fixed"; 170 171 regulator-name = "SDHI0 Vcc"; 172 regulator-min-microvolt = <3300000>; 173 regulator-max-microvolt = <3300000>; 174 175 gpio = <&gpio7 17 GPIO_ACTIVE_HIGH>; 176 enable-active-high; 177 }; 178 179 vccq_sdhi0: regulator-vccq-sdhi0 { 180 compatible = "regulator-gpio"; 181 182 regulator-name = "SDHI0 VccQ"; 183 regulator-min-microvolt = <1800000>; 184 regulator-max-microvolt = <3300000>; 185 186 gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>; 187 gpios-states = <1>; 188 states = <3300000 1>, <1800000 0>; 189 }; 190 191 vcc_sdhi1: regulator-vcc-sdhi1 { 192 compatible = "regulator-fixed"; 193 194 regulator-name = "SDHI1 Vcc"; 195 regulator-min-microvolt = <3300000>; 196 regulator-max-microvolt = <3300000>; 197 198 gpio = <&gpio7 18 GPIO_ACTIVE_HIGH>; 199 enable-active-high; 200 }; 201 202 vccq_sdhi1: regulator-vccq-sdhi1 { 203 compatible = "regulator-gpio"; 204 205 regulator-name = "SDHI1 VccQ"; 206 regulator-min-microvolt = <1800000>; 207 regulator-max-microvolt = <3300000>; 208 209 gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>; 210 gpios-states = <1>; 211 states = <3300000 1>, <1800000 0>; 212 }; 213 214 vcc_sdhi2: regulator-vcc-sdhi2 { 215 compatible = "regulator-fixed"; 216 217 regulator-name = "SDHI2 Vcc"; 218 regulator-min-microvolt = <3300000>; 219 regulator-max-microvolt = <3300000>; 220 221 gpio = <&gpio7 19 GPIO_ACTIVE_HIGH>; 222 enable-active-high; 223 }; 224 225 vccq_sdhi2: regulator-vccq-sdhi2 { 226 compatible = "regulator-gpio"; 227 228 regulator-name = "SDHI2 VccQ"; 229 regulator-min-microvolt = <1800000>; 230 regulator-max-microvolt = <3300000>; 231 232 gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>; 233 gpios-states = <1>; 234 states = <3300000 1>, <1800000 0>; 235 }; 236 237 audio_clock: audio_clock { 238 compatible = "fixed-clock"; 239 #clock-cells = <0>; 240 clock-frequency = <11289600>; 241 }; 242 243 rsnd_ak4643: sound { 244 compatible = "simple-audio-card"; 245 246 simple-audio-card,format = "left_j"; 247 simple-audio-card,bitclock-master = <&sndcodec>; 248 simple-audio-card,frame-master = <&sndcodec>; 249 250 sndcpu: simple-audio-card,cpu { 251 sound-dai = <&rcar_sound>; 252 }; 253 254 sndcodec: simple-audio-card,codec { 255 sound-dai = <&ak4643>; 256 clocks = <&audio_clock>; 257 }; 258 }; 259 260 hdmi-in { 261 compatible = "hdmi-connector"; 262 type = "a"; 263 264 port { 265 hdmi_con_in: endpoint { 266 remote-endpoint = <&adv7612_in>; 267 }; 268 }; 269 }; 270 271 hdmi-out { 272 compatible = "hdmi-connector"; 273 type = "a"; 274 275 port { 276 hdmi_con_out: endpoint { 277 remote-endpoint = <&adv7511_out>; 278 }; 279 }; 280 }; 281 282 composite-in { 283 compatible = "composite-video-connector"; 284 285 port { 286 composite_con_in: endpoint { 287 remote-endpoint = <&adv7180_in>; 288 }; 289 }; 290 }; 291 292 x2_clk: x2-clock { 293 compatible = "fixed-clock"; 294 #clock-cells = <0>; 295 clock-frequency = <74250000>; 296 }; 297 298 x13_clk: x13-clock { 299 compatible = "fixed-clock"; 300 #clock-cells = <0>; 301 clock-frequency = <148500000>; 302 }; 303 304 gpioi2c2: i2c-9 { 305 #address-cells = <1>; 306 #size-cells = <0>; 307 compatible = "i2c-gpio"; 308 status = "disabled"; 309 scl-gpios = <&gpio2 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 310 sda-gpios = <&gpio2 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 311 i2c-gpio,delay-us = <5>; 312 }; 313 314 gpioi2c4: i2c-10 { 315 #address-cells = <1>; 316 #size-cells = <0>; 317 compatible = "i2c-gpio"; 318 status = "disabled"; 319 scl-gpios = <&gpio7 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 320 sda-gpios = <&gpio7 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 321 i2c-gpio,delay-us = <5>; 322 }; 323 324 /* 325 * A fallback to GPIO is provided for I2C2. 326 */ 327 i2chdmi: i2c-11 { 328 compatible = "i2c-demux-pinctrl"; 329 i2c-parent = <&i2c2>, <&gpioi2c2>; 330 i2c-bus-name = "i2c-hdmi"; 331 #address-cells = <1>; 332 #size-cells = <0>; 333 334 ak4643: codec@12 { 335 compatible = "asahi-kasei,ak4643"; 336 #sound-dai-cells = <0>; 337 reg = <0x12>; 338 }; 339 340 composite-in@20 { 341 compatible = "adi,adv7180cp"; 342 reg = <0x20>; 343 344 ports { 345 #address-cells = <1>; 346 #size-cells = <0>; 347 348 port@0 { 349 reg = <0>; 350 adv7180_in: endpoint { 351 remote-endpoint = <&composite_con_in>; 352 }; 353 }; 354 355 port@3 { 356 reg = <3>; 357 adv7180_out: endpoint { 358 bus-width = <8>; 359 remote-endpoint = <&vin1ep>; 360 }; 361 }; 362 }; 363 }; 364 365 hdmi@39 { 366 compatible = "adi,adv7511w"; 367 reg = <0x39>; 368 interrupt-parent = <&gpio3>; 369 interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 370 371 adi,input-depth = <8>; 372 adi,input-colorspace = "rgb"; 373 adi,input-clock = "1x"; 374 375 ports { 376 #address-cells = <1>; 377 #size-cells = <0>; 378 379 port@0 { 380 reg = <0>; 381 adv7511_in: endpoint { 382 remote-endpoint = <&du_out_rgb>; 383 }; 384 }; 385 386 port@1 { 387 reg = <1>; 388 adv7511_out: endpoint { 389 remote-endpoint = <&hdmi_con_out>; 390 }; 391 }; 392 }; 393 }; 394 395 hdmi-in@4c { 396 compatible = "adi,adv7612"; 397 reg = <0x4c>; 398 interrupt-parent = <&gpio4>; 399 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 400 default-input = <0>; 401 402 ports { 403 #address-cells = <1>; 404 #size-cells = <0>; 405 406 port@0 { 407 reg = <0>; 408 adv7612_in: endpoint { 409 remote-endpoint = <&hdmi_con_in>; 410 }; 411 }; 412 413 port@2 { 414 reg = <2>; 415 adv7612_out: endpoint { 416 remote-endpoint = <&vin0ep2>; 417 }; 418 }; 419 }; 420 }; 421 422 eeprom@50 { 423 compatible = "renesas,r1ex24002", "atmel,24c02"; 424 reg = <0x50>; 425 pagesize = <16>; 426 }; 427 }; 428 429 /* 430 * I2C4 is routed to EXIO connector E, pins 37 (SCL) + 39 (SDA). 431 * A fallback to GPIO is provided. 432 */ 433 i2cexio4: i2c-12 { 434 compatible = "i2c-demux-pinctrl"; 435 i2c-parent = <&i2c4>, <&gpioi2c4>; 436 i2c-bus-name = "i2c-exio4"; 437 #address-cells = <1>; 438 #size-cells = <0>; 439 }; 440}; 441 442&du { 443 pinctrl-0 = <&du_pins>; 444 pinctrl-names = "default"; 445 status = "okay"; 446 447 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, 448 <&x13_clk>, <&x2_clk>; 449 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; 450 451 ports { 452 port@0 { 453 endpoint { 454 remote-endpoint = <&adv7511_in>; 455 }; 456 }; 457 }; 458}; 459 460&lvds0 { 461 ports { 462 port@1 { 463 lvds_connector: endpoint { 464 }; 465 }; 466 }; 467}; 468 469&extal_clk { 470 clock-frequency = <20000000>; 471}; 472 473&pfc { 474 pinctrl-0 = <&scif_clk_pins>; 475 pinctrl-names = "default"; 476 477 i2c2_pins: i2c2 { 478 groups = "i2c2"; 479 function = "i2c2"; 480 }; 481 482 i2c4_pins: i2c4 { 483 groups = "i2c4_c"; 484 function = "i2c4"; 485 }; 486 487 du_pins: du { 488 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0"; 489 function = "du"; 490 }; 491 492 scif0_pins: scif0 { 493 groups = "scif0_data_d"; 494 function = "scif0"; 495 }; 496 497 scif1_pins: scif1 { 498 groups = "scif1_data_d"; 499 function = "scif1"; 500 }; 501 502 scif_clk_pins: scif_clk { 503 groups = "scif_clk"; 504 function = "scif_clk"; 505 }; 506 507 ether_pins: ether { 508 groups = "eth_link", "eth_mdio", "eth_rmii"; 509 function = "eth"; 510 }; 511 512 phy1_pins: phy1 { 513 groups = "intc_irq0"; 514 function = "intc"; 515 }; 516 517 pmic_irq_pins: pmicirq { 518 groups = "intc_irq2"; 519 function = "intc"; 520 }; 521 522 sdhi0_pins: sd0 { 523 groups = "sdhi0_data4", "sdhi0_ctrl"; 524 function = "sdhi0"; 525 power-source = <3300>; 526 }; 527 528 sdhi0_pins_uhs: sd0_uhs { 529 groups = "sdhi0_data4", "sdhi0_ctrl"; 530 function = "sdhi0"; 531 power-source = <1800>; 532 }; 533 534 sdhi1_pins: sd1 { 535 groups = "sdhi1_data4", "sdhi1_ctrl"; 536 function = "sdhi1"; 537 power-source = <3300>; 538 }; 539 540 sdhi1_pins_uhs: sd1_uhs { 541 groups = "sdhi1_data4", "sdhi1_ctrl"; 542 function = "sdhi1"; 543 power-source = <1800>; 544 }; 545 546 sdhi2_pins: sd2 { 547 groups = "sdhi2_data4", "sdhi2_ctrl"; 548 function = "sdhi2"; 549 power-source = <3300>; 550 }; 551 552 sdhi2_pins_uhs: sd2_uhs { 553 groups = "sdhi2_data4", "sdhi2_ctrl"; 554 function = "sdhi2"; 555 power-source = <1800>; 556 }; 557 558 qspi_pins: qspi { 559 groups = "qspi_ctrl", "qspi_data4"; 560 function = "qspi"; 561 }; 562 563 sound_pins: sound { 564 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data"; 565 function = "ssi"; 566 }; 567 568 sound_clk_pins: sound_clk { 569 groups = "audio_clk_a"; 570 function = "audio_clk"; 571 }; 572 573 keyboard_pins: keyboard { 574 pins = "GP_5_0", "GP_5_1", "GP_5_2", "GP_5_3"; 575 bias-pull-up; 576 }; 577 578 vin0_pins: vin0 { 579 groups = "vin0_data24", "vin0_sync", "vin0_clkenb", "vin0_clk"; 580 function = "vin0"; 581 }; 582 583 vin1_pins: vin1 { 584 groups = "vin1_data8", "vin1_clk"; 585 function = "vin1"; 586 }; 587}; 588 589ðer { 590 pinctrl-0 = <ðer_pins>, <&phy1_pins>; 591 pinctrl-names = "default"; 592 593 phy-handle = <&phy1>; 594 renesas,ether-link-active-low; 595 status = "okay"; 596 597 phy1: ethernet-phy@1 { 598 compatible = "ethernet-phy-id0022.1537", 599 "ethernet-phy-ieee802.3-c22"; 600 reg = <1>; 601 interrupt-parent = <&irqc0>; 602 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 603 micrel,led-mode = <1>; 604 reset-gpios = <&gpio5 22 GPIO_ACTIVE_LOW>; 605 }; 606}; 607 608&cmt0 { 609 status = "okay"; 610}; 611 612&cpu0 { 613 cpu0-supply = <&vdd_dvfs>; 614}; 615 616&rwdt { 617 timeout-sec = <60>; 618 status = "okay"; 619}; 620 621&scif0 { 622 pinctrl-0 = <&scif0_pins>; 623 pinctrl-names = "default"; 624 625 status = "okay"; 626}; 627 628&scif1 { 629 pinctrl-0 = <&scif1_pins>; 630 pinctrl-names = "default"; 631 632 status = "okay"; 633}; 634 635&scif_clk { 636 clock-frequency = <14745600>; 637}; 638 639&sdhi0 { 640 pinctrl-0 = <&sdhi0_pins>; 641 pinctrl-1 = <&sdhi0_pins_uhs>; 642 pinctrl-names = "default", "state_uhs"; 643 644 vmmc-supply = <&vcc_sdhi0>; 645 vqmmc-supply = <&vccq_sdhi0>; 646 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>; 647 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 648 sd-uhs-sdr50; 649 sd-uhs-sdr104; 650 status = "okay"; 651}; 652 653&sdhi1 { 654 pinctrl-0 = <&sdhi1_pins>; 655 pinctrl-1 = <&sdhi1_pins_uhs>; 656 pinctrl-names = "default", "state_uhs"; 657 658 vmmc-supply = <&vcc_sdhi1>; 659 vqmmc-supply = <&vccq_sdhi1>; 660 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 661 wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>; 662 sd-uhs-sdr50; 663 status = "okay"; 664}; 665 666&sdhi2 { 667 pinctrl-0 = <&sdhi2_pins>; 668 pinctrl-1 = <&sdhi2_pins_uhs>; 669 pinctrl-names = "default", "state_uhs"; 670 671 vmmc-supply = <&vcc_sdhi2>; 672 vqmmc-supply = <&vccq_sdhi2>; 673 cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>; 674 sd-uhs-sdr50; 675 status = "okay"; 676}; 677 678&qspi { 679 pinctrl-0 = <&qspi_pins>; 680 pinctrl-names = "default"; 681 682 status = "okay"; 683 684 flash@0 { 685 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 686 reg = <0>; 687 spi-max-frequency = <30000000>; 688 spi-tx-bus-width = <4>; 689 spi-rx-bus-width = <4>; 690 spi-cpol; 691 spi-cpha; 692 m25p,fast-read; 693 694 partitions { 695 compatible = "fixed-partitions"; 696 #address-cells = <1>; 697 #size-cells = <1>; 698 699 partition@0 { 700 label = "loader"; 701 reg = <0x00000000 0x00040000>; 702 read-only; 703 }; 704 partition@40000 { 705 label = "user"; 706 reg = <0x00040000 0x00400000>; 707 read-only; 708 }; 709 partition@440000 { 710 label = "flash"; 711 reg = <0x00440000 0x03bc0000>; 712 }; 713 }; 714 }; 715}; 716 717&i2c2 { 718 pinctrl-0 = <&i2c2_pins>; 719 pinctrl-names = "i2c-hdmi"; 720 721 status = "okay"; 722 clock-frequency = <100000>; 723 724}; 725 726&i2c6 { 727 pinctrl-names = "default"; 728 pinctrl-0 = <&pmic_irq_pins>; 729 status = "okay"; 730 clock-frequency = <100000>; 731 732 pmic@58 { 733 compatible = "dlg,da9063"; 734 reg = <0x58>; 735 interrupt-parent = <&irqc0>; 736 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 737 interrupt-controller; 738 739 rtc { 740 compatible = "dlg,da9063-rtc"; 741 }; 742 743 watchdog { 744 compatible = "dlg,da9063-watchdog"; 745 }; 746 }; 747 748 vdd_dvfs: regulator@68 { 749 compatible = "dlg,da9210"; 750 reg = <0x68>; 751 interrupt-parent = <&irqc0>; 752 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 753 754 regulator-min-microvolt = <1000000>; 755 regulator-max-microvolt = <1000000>; 756 regulator-boot-on; 757 regulator-always-on; 758 }; 759}; 760 761&i2c4 { 762 pinctrl-0 = <&i2c4_pins>; 763 pinctrl-names = "i2c-exio4"; 764}; 765 766&rcar_sound { 767 pinctrl-0 = <&sound_pins>, <&sound_clk_pins>; 768 pinctrl-names = "default"; 769 770 /* Single DAI */ 771 #sound-dai-cells = <0>; 772 773 status = "okay"; 774 775 rcar_sound,dai { 776 dai0 { 777 playback = <&ssi0>, <&src2>, <&dvc0>; 778 capture = <&ssi1>, <&src3>, <&dvc1>; 779 }; 780 }; 781}; 782 783&ssi1 { 784 shared-pin; 785}; 786 787/* HDMI video input */ 788&vin0 { 789 status = "okay"; 790 pinctrl-0 = <&vin0_pins>; 791 pinctrl-names = "default"; 792 793 port { 794 vin0ep2: endpoint { 795 remote-endpoint = <&adv7612_out>; 796 bus-width = <24>; 797 hsync-active = <0>; 798 vsync-active = <0>; 799 pclk-sample = <1>; 800 data-active = <1>; 801 }; 802 }; 803}; 804 805/* composite video input */ 806&vin1 { 807 pinctrl-0 = <&vin1_pins>; 808 pinctrl-names = "default"; 809 810 status = "okay"; 811 812 port { 813 vin1ep: endpoint { 814 remote-endpoint = <&adv7180_out>; 815 bus-width = <8>; 816 }; 817 }; 818}; 819