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 }; 53 54 chosen { 55 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 56 stdout-path = "serial0:115200n8"; 57 }; 58 59 memory@40000000 { 60 device_type = "memory"; 61 reg = <0 0x40000000 0 0x40000000>; 62 }; 63 64 gpio-keys { 65 compatible = "gpio-keys"; 66 67 key-1 { 68 gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; 69 linux,code = <KEY_1>; 70 label = "SW2-1"; 71 wakeup-source; 72 debounce-interval = <20>; 73 }; 74 key-2 { 75 gpios = <&gpio5 1 GPIO_ACTIVE_LOW>; 76 linux,code = <KEY_2>; 77 label = "SW2-2"; 78 wakeup-source; 79 debounce-interval = <20>; 80 }; 81 key-3 { 82 gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; 83 linux,code = <KEY_3>; 84 label = "SW2-3"; 85 wakeup-source; 86 debounce-interval = <20>; 87 }; 88 key-4 { 89 gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; 90 linux,code = <KEY_4>; 91 label = "SW2-4"; 92 wakeup-source; 93 debounce-interval = <20>; 94 }; 95 key-a { 96 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 97 linux,code = <KEY_A>; 98 label = "SW30"; 99 wakeup-source; 100 debounce-interval = <20>; 101 }; 102 key-b { 103 gpios = <&gpio7 1 GPIO_ACTIVE_LOW>; 104 linux,code = <KEY_B>; 105 label = "SW31"; 106 wakeup-source; 107 debounce-interval = <20>; 108 }; 109 key-c { 110 gpios = <&gpio7 2 GPIO_ACTIVE_LOW>; 111 linux,code = <KEY_C>; 112 label = "SW32"; 113 wakeup-source; 114 debounce-interval = <20>; 115 }; 116 key-d { 117 gpios = <&gpio7 3 GPIO_ACTIVE_LOW>; 118 linux,code = <KEY_D>; 119 label = "SW33"; 120 wakeup-source; 121 debounce-interval = <20>; 122 }; 123 key-e { 124 gpios = <&gpio7 4 GPIO_ACTIVE_LOW>; 125 linux,code = <KEY_E>; 126 label = "SW34"; 127 wakeup-source; 128 debounce-interval = <20>; 129 }; 130 key-f { 131 gpios = <&gpio7 5 GPIO_ACTIVE_LOW>; 132 linux,code = <KEY_F>; 133 label = "SW35"; 134 wakeup-source; 135 debounce-interval = <20>; 136 }; 137 key-g { 138 gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; 139 linux,code = <KEY_G>; 140 label = "SW36"; 141 wakeup-source; 142 debounce-interval = <20>; 143 }; 144 }; 145 146 leds { 147 compatible = "gpio-leds"; 148 led6 { 149 gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>; 150 label = "LED6"; 151 }; 152 led7 { 153 gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>; 154 label = "LED7"; 155 }; 156 led8 { 157 gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; 158 label = "LED8"; 159 }; 160 }; 161 162 vcc_sdhi0: regulator-vcc-sdhi0 { 163 compatible = "regulator-fixed"; 164 165 regulator-name = "SDHI0 Vcc"; 166 regulator-min-microvolt = <3300000>; 167 regulator-max-microvolt = <3300000>; 168 169 gpio = <&gpio7 17 GPIO_ACTIVE_HIGH>; 170 enable-active-high; 171 }; 172 173 vccq_sdhi0: regulator-vccq-sdhi0 { 174 compatible = "regulator-gpio"; 175 176 regulator-name = "SDHI0 VccQ"; 177 regulator-min-microvolt = <1800000>; 178 regulator-max-microvolt = <3300000>; 179 180 gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>; 181 gpios-states = <1>; 182 states = <3300000 1 183 1800000 0>; 184 }; 185 186 vcc_sdhi1: regulator-vcc-sdhi1 { 187 compatible = "regulator-fixed"; 188 189 regulator-name = "SDHI1 Vcc"; 190 regulator-min-microvolt = <3300000>; 191 regulator-max-microvolt = <3300000>; 192 193 gpio = <&gpio7 18 GPIO_ACTIVE_HIGH>; 194 enable-active-high; 195 }; 196 197 vccq_sdhi1: regulator-vccq-sdhi1 { 198 compatible = "regulator-gpio"; 199 200 regulator-name = "SDHI1 VccQ"; 201 regulator-min-microvolt = <1800000>; 202 regulator-max-microvolt = <3300000>; 203 204 gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>; 205 gpios-states = <1>; 206 states = <3300000 1 207 1800000 0>; 208 }; 209 210 vcc_sdhi2: regulator-vcc-sdhi2 { 211 compatible = "regulator-fixed"; 212 213 regulator-name = "SDHI2 Vcc"; 214 regulator-min-microvolt = <3300000>; 215 regulator-max-microvolt = <3300000>; 216 217 gpio = <&gpio7 19 GPIO_ACTIVE_HIGH>; 218 enable-active-high; 219 }; 220 221 vccq_sdhi2: regulator-vccq-sdhi2 { 222 compatible = "regulator-gpio"; 223 224 regulator-name = "SDHI2 VccQ"; 225 regulator-min-microvolt = <1800000>; 226 regulator-max-microvolt = <3300000>; 227 228 gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>; 229 gpios-states = <1>; 230 states = <3300000 1 231 1800000 0>; 232 }; 233 234 audio_clock: audio_clock { 235 compatible = "fixed-clock"; 236 #clock-cells = <0>; 237 clock-frequency = <11289600>; 238 }; 239 240 rsnd_ak4643: sound { 241 compatible = "simple-audio-card"; 242 243 simple-audio-card,format = "left_j"; 244 simple-audio-card,bitclock-master = <&sndcodec>; 245 simple-audio-card,frame-master = <&sndcodec>; 246 247 sndcpu: simple-audio-card,cpu { 248 sound-dai = <&rcar_sound>; 249 }; 250 251 sndcodec: simple-audio-card,codec { 252 sound-dai = <&ak4643>; 253 clocks = <&audio_clock>; 254 }; 255 }; 256 257 hdmi-in { 258 compatible = "hdmi-connector"; 259 type = "a"; 260 261 port { 262 hdmi_con_in: endpoint { 263 remote-endpoint = <&adv7612_in>; 264 }; 265 }; 266 }; 267 268 hdmi-out { 269 compatible = "hdmi-connector"; 270 type = "a"; 271 272 port { 273 hdmi_con_out: endpoint { 274 remote-endpoint = <&adv7511_out>; 275 }; 276 }; 277 }; 278 279 composite-in { 280 compatible = "composite-video-connector"; 281 282 port { 283 composite_con_in: endpoint { 284 remote-endpoint = <&adv7180_in>; 285 }; 286 }; 287 }; 288 289 x2_clk: x2-clock { 290 compatible = "fixed-clock"; 291 #clock-cells = <0>; 292 clock-frequency = <74250000>; 293 }; 294 295 x13_clk: x13-clock { 296 compatible = "fixed-clock"; 297 #clock-cells = <0>; 298 clock-frequency = <148500000>; 299 }; 300 301 gpioi2c2: i2c-9 { 302 #address-cells = <1>; 303 #size-cells = <0>; 304 compatible = "i2c-gpio"; 305 status = "disabled"; 306 scl-gpios = <&gpio2 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 307 sda-gpios = <&gpio2 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 308 i2c-gpio,delay-us = <5>; 309 }; 310 311 gpioi2c4: i2c-10 { 312 #address-cells = <1>; 313 #size-cells = <0>; 314 compatible = "i2c-gpio"; 315 status = "disabled"; 316 scl-gpios = <&gpio7 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 317 sda-gpios = <&gpio7 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 318 i2c-gpio,delay-us = <5>; 319 }; 320 321 /* 322 * A fallback to GPIO is provided for I2C2. 323 */ 324 i2chdmi: i2c-11 { 325 compatible = "i2c-demux-pinctrl"; 326 i2c-parent = <&i2c2>, <&gpioi2c2>; 327 i2c-bus-name = "i2c-hdmi"; 328 #address-cells = <1>; 329 #size-cells = <0>; 330 331 ak4643: codec@12 { 332 compatible = "asahi-kasei,ak4643"; 333 #sound-dai-cells = <0>; 334 reg = <0x12>; 335 }; 336 337 composite-in@20 { 338 compatible = "adi,adv7180cp"; 339 reg = <0x20>; 340 remote = <&vin1>; 341 342 port { 343 #address-cells = <1>; 344 #size-cells = <0>; 345 346 port@0 { 347 reg = <0>; 348 adv7180_in: endpoint { 349 remote-endpoint = <&composite_con_in>; 350 }; 351 }; 352 353 port@3 { 354 reg = <3>; 355 adv7180_out: endpoint { 356 bus-width = <8>; 357 remote-endpoint = <&vin1ep>; 358 }; 359 }; 360 }; 361 }; 362 363 hdmi@39 { 364 compatible = "adi,adv7511w"; 365 reg = <0x39>; 366 interrupt-parent = <&gpio3>; 367 interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 368 369 adi,input-depth = <8>; 370 adi,input-colorspace = "rgb"; 371 adi,input-clock = "1x"; 372 adi,input-style = <1>; 373 adi,input-justification = "evenly"; 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 port { 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 sdhi0_pins: sd0 { 518 groups = "sdhi0_data4", "sdhi0_ctrl"; 519 function = "sdhi0"; 520 power-source = <3300>; 521 }; 522 523 sdhi0_pins_uhs: sd0_uhs { 524 groups = "sdhi0_data4", "sdhi0_ctrl"; 525 function = "sdhi0"; 526 power-source = <1800>; 527 }; 528 529 sdhi1_pins: sd1 { 530 groups = "sdhi1_data4", "sdhi1_ctrl"; 531 function = "sdhi1"; 532 power-source = <3300>; 533 }; 534 535 sdhi1_pins_uhs: sd1_uhs { 536 groups = "sdhi1_data4", "sdhi1_ctrl"; 537 function = "sdhi1"; 538 power-source = <1800>; 539 }; 540 541 sdhi2_pins: sd2 { 542 groups = "sdhi2_data4", "sdhi2_ctrl"; 543 function = "sdhi2"; 544 power-source = <3300>; 545 }; 546 547 sdhi2_pins_uhs: sd2_uhs { 548 groups = "sdhi2_data4", "sdhi2_ctrl"; 549 function = "sdhi2"; 550 power-source = <1800>; 551 }; 552 553 qspi_pins: qspi { 554 groups = "qspi_ctrl", "qspi_data4"; 555 function = "qspi"; 556 }; 557 558 sound_pins: sound { 559 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data"; 560 function = "ssi"; 561 }; 562 563 sound_clk_pins: sound_clk { 564 groups = "audio_clk_a"; 565 function = "audio_clk"; 566 }; 567 568 vin0_pins: vin0 { 569 groups = "vin0_data24", "vin0_sync", "vin0_clkenb", "vin0_clk"; 570 function = "vin0"; 571 }; 572 573 vin1_pins: vin1 { 574 groups = "vin1_data8", "vin1_clk"; 575 function = "vin1"; 576 }; 577}; 578 579ðer { 580 pinctrl-0 = <ðer_pins &phy1_pins>; 581 pinctrl-names = "default"; 582 583 phy-handle = <&phy1>; 584 renesas,ether-link-active-low; 585 status = "okay"; 586 587 phy1: ethernet-phy@1 { 588 reg = <1>; 589 interrupt-parent = <&irqc0>; 590 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 591 micrel,led-mode = <1>; 592 }; 593}; 594 595&cmt0 { 596 status = "okay"; 597}; 598 599&scif0 { 600 pinctrl-0 = <&scif0_pins>; 601 pinctrl-names = "default"; 602 603 status = "okay"; 604}; 605 606&scif1 { 607 pinctrl-0 = <&scif1_pins>; 608 pinctrl-names = "default"; 609 610 status = "okay"; 611}; 612 613&scif_clk { 614 clock-frequency = <14745600>; 615}; 616 617&sdhi0 { 618 pinctrl-0 = <&sdhi0_pins>; 619 pinctrl-1 = <&sdhi0_pins_uhs>; 620 pinctrl-names = "default", "state_uhs"; 621 622 vmmc-supply = <&vcc_sdhi0>; 623 vqmmc-supply = <&vccq_sdhi0>; 624 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>; 625 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 626 sd-uhs-sdr50; 627 sd-uhs-sdr104; 628 status = "okay"; 629}; 630 631&sdhi1 { 632 pinctrl-0 = <&sdhi1_pins>; 633 pinctrl-1 = <&sdhi1_pins_uhs>; 634 pinctrl-names = "default", "state_uhs"; 635 636 vmmc-supply = <&vcc_sdhi1>; 637 vqmmc-supply = <&vccq_sdhi1>; 638 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 639 wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>; 640 sd-uhs-sdr50; 641 status = "okay"; 642}; 643 644&sdhi2 { 645 pinctrl-0 = <&sdhi2_pins>; 646 pinctrl-1 = <&sdhi2_pins_uhs>; 647 pinctrl-names = "default", "state_uhs"; 648 649 vmmc-supply = <&vcc_sdhi2>; 650 vqmmc-supply = <&vccq_sdhi2>; 651 cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>; 652 sd-uhs-sdr50; 653 status = "okay"; 654}; 655 656&qspi { 657 pinctrl-0 = <&qspi_pins>; 658 pinctrl-names = "default"; 659 660 status = "okay"; 661 662 flash@0 { 663 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 664 reg = <0>; 665 spi-max-frequency = <30000000>; 666 spi-tx-bus-width = <4>; 667 spi-rx-bus-width = <4>; 668 spi-cpol; 669 spi-cpha; 670 m25p,fast-read; 671 672 partitions { 673 compatible = "fixed-partitions"; 674 #address-cells = <1>; 675 #size-cells = <1>; 676 677 partition@0 { 678 label = "loader"; 679 reg = <0x00000000 0x00040000>; 680 read-only; 681 }; 682 partition@40000 { 683 label = "user"; 684 reg = <0x00040000 0x00400000>; 685 read-only; 686 }; 687 partition@440000 { 688 label = "flash"; 689 reg = <0x00440000 0x03bc0000>; 690 }; 691 }; 692 }; 693}; 694 695&i2c2 { 696 pinctrl-0 = <&i2c2_pins>; 697 pinctrl-names = "i2c-hdmi"; 698 699 status = "okay"; 700 clock-frequency = <100000>; 701 702}; 703 704&i2c6 { 705 status = "okay"; 706 clock-frequency = <100000>; 707 708 pmic@58 { 709 compatible = "dlg,da9063"; 710 reg = <0x58>; 711 interrupt-parent = <&irqc0>; 712 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 713 interrupt-controller; 714 715 rtc { 716 compatible = "dlg,da9063-rtc"; 717 }; 718 719 wdt { 720 compatible = "dlg,da9063-watchdog"; 721 }; 722 }; 723}; 724 725&i2c4 { 726 pinctrl-0 = <&i2c4_pins>; 727 pinctrl-names = "i2c-exio4"; 728}; 729 730&rcar_sound { 731 pinctrl-0 = <&sound_pins &sound_clk_pins>; 732 pinctrl-names = "default"; 733 734 /* Single DAI */ 735 #sound-dai-cells = <0>; 736 737 status = "okay"; 738 739 rcar_sound,dai { 740 dai0 { 741 playback = <&ssi0 &src2 &dvc0>; 742 capture = <&ssi1 &src3 &dvc1>; 743 }; 744 }; 745}; 746 747&ssi1 { 748 shared-pin; 749}; 750 751/* HDMI video input */ 752&vin0 { 753 status = "okay"; 754 pinctrl-0 = <&vin0_pins>; 755 pinctrl-names = "default"; 756 757 port { 758 #address-cells = <1>; 759 #size-cells = <0>; 760 761 vin0ep2: endpoint { 762 remote-endpoint = <&adv7612_out>; 763 bus-width = <24>; 764 hsync-active = <0>; 765 vsync-active = <0>; 766 pclk-sample = <1>; 767 data-active = <1>; 768 }; 769 }; 770}; 771 772/* composite video input */ 773&vin1 { 774 pinctrl-0 = <&vin1_pins>; 775 pinctrl-names = "default"; 776 777 status = "okay"; 778 779 port { 780 #address-cells = <1>; 781 #size-cells = <0>; 782 783 vin1ep: endpoint { 784 remote-endpoint = <&adv7180_out>; 785 bus-width = <8>; 786 }; 787 }; 788}; 789