1/* 2 * Device Tree Source for the Koelsch board 3 * 4 * Copyright (C) 2013 Renesas Electronics Corporation 5 * Copyright (C) 2013-2014 Renesas Solutions Corp. 6 * Copyright (C) 2014 Cogent Embedded, Inc. 7 * 8 * This file is licensed under the terms of the GNU General Public License 9 * version 2. This program is licensed "as is" without any warranty of any 10 * kind, whether express or implied. 11 */ 12 13/* 14 * SSI-AK4643 15 * 16 * SW1: 1: AK4643 17 * 2: CN22 18 * 3: ADV7511 19 * 20 * This command is required when Playback/Capture 21 * 22 * amixer set "LINEOUT Mixer DACL" on 23 * amixer set "DVC Out" 100% 24 * amixer set "DVC In" 100% 25 * 26 * You can use Mute 27 * 28 * amixer set "DVC Out Mute" on 29 * amixer set "DVC In Mute" on 30 * 31 * You can use Volume Ramp 32 * 33 * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 34 * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 35 * amixer set "DVC Out Ramp" on 36 * aplay xxx.wav & 37 * amixer set "DVC Out" 80% // Volume Down 38 * amixer set "DVC Out" 100% // Volume Up 39 */ 40 41/dts-v1/; 42#include "r8a7791.dtsi" 43#include <dt-bindings/gpio/gpio.h> 44#include <dt-bindings/input/input.h> 45 46/ { 47 model = "Koelsch"; 48 compatible = "renesas,koelsch", "renesas,r8a7791"; 49 50 aliases { 51 serial0 = &scif0; 52 serial1 = &scif1; 53 }; 54 55 chosen { 56 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 57 stdout-path = "serial0:115200n8"; 58 }; 59 60 memory@40000000 { 61 device_type = "memory"; 62 reg = <0 0x40000000 0 0x40000000>; 63 }; 64 65 memory@200000000 { 66 device_type = "memory"; 67 reg = <2 0x00000000 0 0x40000000>; 68 }; 69 70 lbsc { 71 #address-cells = <1>; 72 #size-cells = <1>; 73 }; 74 75 keyboard { 76 compatible = "gpio-keys"; 77 78 key-1 { 79 gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; 80 linux,code = <KEY_1>; 81 label = "SW2-1"; 82 wakeup-source; 83 debounce-interval = <20>; 84 }; 85 key-2 { 86 gpios = <&gpio5 1 GPIO_ACTIVE_LOW>; 87 linux,code = <KEY_2>; 88 label = "SW2-2"; 89 wakeup-source; 90 debounce-interval = <20>; 91 }; 92 key-3 { 93 gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; 94 linux,code = <KEY_3>; 95 label = "SW2-3"; 96 wakeup-source; 97 debounce-interval = <20>; 98 }; 99 key-4 { 100 gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; 101 linux,code = <KEY_4>; 102 label = "SW2-4"; 103 wakeup-source; 104 debounce-interval = <20>; 105 }; 106 key-a { 107 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 108 linux,code = <KEY_A>; 109 label = "SW30"; 110 wakeup-source; 111 debounce-interval = <20>; 112 }; 113 key-b { 114 gpios = <&gpio7 1 GPIO_ACTIVE_LOW>; 115 linux,code = <KEY_B>; 116 label = "SW31"; 117 wakeup-source; 118 debounce-interval = <20>; 119 }; 120 key-c { 121 gpios = <&gpio7 2 GPIO_ACTIVE_LOW>; 122 linux,code = <KEY_C>; 123 label = "SW32"; 124 wakeup-source; 125 debounce-interval = <20>; 126 }; 127 key-d { 128 gpios = <&gpio7 3 GPIO_ACTIVE_LOW>; 129 linux,code = <KEY_D>; 130 label = "SW33"; 131 wakeup-source; 132 debounce-interval = <20>; 133 }; 134 key-e { 135 gpios = <&gpio7 4 GPIO_ACTIVE_LOW>; 136 linux,code = <KEY_E>; 137 label = "SW34"; 138 wakeup-source; 139 debounce-interval = <20>; 140 }; 141 key-f { 142 gpios = <&gpio7 5 GPIO_ACTIVE_LOW>; 143 linux,code = <KEY_F>; 144 label = "SW35"; 145 wakeup-source; 146 debounce-interval = <20>; 147 }; 148 key-g { 149 gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; 150 linux,code = <KEY_G>; 151 label = "SW36"; 152 wakeup-source; 153 debounce-interval = <20>; 154 }; 155 }; 156 157 leds { 158 compatible = "gpio-leds"; 159 led6 { 160 gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>; 161 label = "LED6"; 162 }; 163 led7 { 164 gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>; 165 label = "LED7"; 166 }; 167 led8 { 168 gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; 169 label = "LED8"; 170 }; 171 }; 172 173 vcc_sdhi0: regulator-vcc-sdhi0 { 174 compatible = "regulator-fixed"; 175 176 regulator-name = "SDHI0 Vcc"; 177 regulator-min-microvolt = <3300000>; 178 regulator-max-microvolt = <3300000>; 179 180 gpio = <&gpio7 17 GPIO_ACTIVE_HIGH>; 181 enable-active-high; 182 }; 183 184 vccq_sdhi0: regulator-vccq-sdhi0 { 185 compatible = "regulator-gpio"; 186 187 regulator-name = "SDHI0 VccQ"; 188 regulator-min-microvolt = <1800000>; 189 regulator-max-microvolt = <3300000>; 190 191 gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>; 192 gpios-states = <1>; 193 states = <3300000 1 194 1800000 0>; 195 }; 196 197 vcc_sdhi1: regulator-vcc-sdhi1 { 198 compatible = "regulator-fixed"; 199 200 regulator-name = "SDHI1 Vcc"; 201 regulator-min-microvolt = <3300000>; 202 regulator-max-microvolt = <3300000>; 203 204 gpio = <&gpio7 18 GPIO_ACTIVE_HIGH>; 205 enable-active-high; 206 }; 207 208 vccq_sdhi1: regulator-vccq-sdhi1 { 209 compatible = "regulator-gpio"; 210 211 regulator-name = "SDHI1 VccQ"; 212 regulator-min-microvolt = <1800000>; 213 regulator-max-microvolt = <3300000>; 214 215 gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>; 216 gpios-states = <1>; 217 states = <3300000 1 218 1800000 0>; 219 }; 220 221 vcc_sdhi2: regulator-vcc-sdhi2 { 222 compatible = "regulator-fixed"; 223 224 regulator-name = "SDHI2 Vcc"; 225 regulator-min-microvolt = <3300000>; 226 regulator-max-microvolt = <3300000>; 227 228 gpio = <&gpio7 19 GPIO_ACTIVE_HIGH>; 229 enable-active-high; 230 }; 231 232 vccq_sdhi2: regulator-vccq-sdhi2 { 233 compatible = "regulator-gpio"; 234 235 regulator-name = "SDHI2 VccQ"; 236 regulator-min-microvolt = <1800000>; 237 regulator-max-microvolt = <3300000>; 238 239 gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>; 240 gpios-states = <1>; 241 states = <3300000 1 242 1800000 0>; 243 }; 244 245 audio_clock: audio_clock { 246 compatible = "fixed-clock"; 247 #clock-cells = <0>; 248 clock-frequency = <11289600>; 249 }; 250 251 rsnd_ak4643: sound { 252 compatible = "simple-audio-card"; 253 254 simple-audio-card,format = "left_j"; 255 simple-audio-card,bitclock-master = <&sndcodec>; 256 simple-audio-card,frame-master = <&sndcodec>; 257 258 sndcpu: simple-audio-card,cpu { 259 sound-dai = <&rcar_sound>; 260 }; 261 262 sndcodec: simple-audio-card,codec { 263 sound-dai = <&ak4643>; 264 clocks = <&audio_clock>; 265 }; 266 }; 267 268 hdmi-out { 269 compatible = "hdmi-connector"; 270 type = "a"; 271 272 port { 273 hdmi_con: endpoint { 274 remote-endpoint = <&adv7511_out>; 275 }; 276 }; 277 }; 278 279 x2_clk: x2-clock { 280 compatible = "fixed-clock"; 281 #clock-cells = <0>; 282 clock-frequency = <74250000>; 283 }; 284 285 x13_clk: x13-clock { 286 compatible = "fixed-clock"; 287 #clock-cells = <0>; 288 clock-frequency = <148500000>; 289 }; 290}; 291 292&du { 293 pinctrl-0 = <&du_pins>; 294 pinctrl-names = "default"; 295 status = "okay"; 296 297 clocks = <&mstp7_clks R8A7791_CLK_DU0>, 298 <&mstp7_clks R8A7791_CLK_DU1>, 299 <&mstp7_clks R8A7791_CLK_LVDS0>, 300 <&x13_clk>, <&x2_clk>; 301 clock-names = "du.0", "du.1", "lvds.0", 302 "dclkin.0", "dclkin.1"; 303 304 ports { 305 port@0 { 306 endpoint { 307 remote-endpoint = <&adv7511_in>; 308 }; 309 }; 310 port@1 { 311 lvds_connector: endpoint { 312 }; 313 }; 314 }; 315}; 316 317&extal_clk { 318 clock-frequency = <20000000>; 319}; 320 321&pfc { 322 pinctrl-0 = <&scif_clk_pins>; 323 pinctrl-names = "default"; 324 325 i2c2_pins: i2c2 { 326 groups = "i2c2"; 327 function = "i2c2"; 328 }; 329 330 du_pins: du { 331 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0"; 332 function = "du"; 333 }; 334 335 scif0_pins: scif0 { 336 groups = "scif0_data_d"; 337 function = "scif0"; 338 }; 339 340 scif1_pins: scif1 { 341 groups = "scif1_data_d"; 342 function = "scif1"; 343 }; 344 345 scif_clk_pins: scif_clk { 346 groups = "scif_clk"; 347 function = "scif_clk"; 348 }; 349 350 ether_pins: ether { 351 groups = "eth_link", "eth_mdio", "eth_rmii"; 352 function = "eth"; 353 }; 354 355 phy1_pins: phy1 { 356 groups = "intc_irq0"; 357 function = "intc"; 358 }; 359 360 sdhi0_pins: sd0 { 361 groups = "sdhi0_data4", "sdhi0_ctrl"; 362 function = "sdhi0"; 363 }; 364 365 sdhi1_pins: sd1 { 366 groups = "sdhi1_data4", "sdhi1_ctrl"; 367 function = "sdhi1"; 368 }; 369 370 sdhi2_pins: sd2 { 371 groups = "sdhi2_data4", "sdhi2_ctrl"; 372 function = "sdhi2"; 373 }; 374 375 qspi_pins: qspi { 376 groups = "qspi_ctrl", "qspi_data4"; 377 function = "qspi"; 378 }; 379 380 msiof0_pins: msiof0 { 381 groups = "msiof0_clk", "msiof0_sync", "msiof0_rx", 382 "msiof0_tx"; 383 function = "msiof0"; 384 }; 385 386 usb0_pins: usb0 { 387 groups = "usb0"; 388 function = "usb0"; 389 }; 390 391 usb1_pins: usb1 { 392 groups = "usb1"; 393 function = "usb1"; 394 }; 395 396 vin1_pins: vin1 { 397 groups = "vin1_data8", "vin1_clk"; 398 function = "vin1"; 399 }; 400 401 sound_pins: sound { 402 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data"; 403 function = "ssi"; 404 }; 405 406 sound_clk_pins: sound_clk { 407 groups = "audio_clk_a"; 408 function = "audio_clk"; 409 }; 410}; 411 412ðer { 413 pinctrl-0 = <ðer_pins &phy1_pins>; 414 pinctrl-names = "default"; 415 416 phy-handle = <&phy1>; 417 renesas,ether-link-active-low; 418 status = "okay"; 419 420 phy1: ethernet-phy@1 { 421 reg = <1>; 422 interrupt-parent = <&irqc0>; 423 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 424 micrel,led-mode = <1>; 425 }; 426}; 427 428&cmt0 { 429 status = "okay"; 430}; 431 432&sata0 { 433 status = "okay"; 434}; 435 436&scif0 { 437 pinctrl-0 = <&scif0_pins>; 438 pinctrl-names = "default"; 439 440 status = "okay"; 441}; 442 443&scif1 { 444 pinctrl-0 = <&scif1_pins>; 445 pinctrl-names = "default"; 446 447 status = "okay"; 448}; 449 450&scif_clk { 451 clock-frequency = <14745600>; 452 status = "okay"; 453}; 454 455&sdhi0 { 456 pinctrl-0 = <&sdhi0_pins>; 457 pinctrl-names = "default"; 458 459 vmmc-supply = <&vcc_sdhi0>; 460 vqmmc-supply = <&vccq_sdhi0>; 461 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>; 462 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 463 status = "okay"; 464}; 465 466&sdhi1 { 467 pinctrl-0 = <&sdhi1_pins>; 468 pinctrl-names = "default"; 469 470 vmmc-supply = <&vcc_sdhi1>; 471 vqmmc-supply = <&vccq_sdhi1>; 472 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 473 wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>; 474 status = "okay"; 475}; 476 477&sdhi2 { 478 pinctrl-0 = <&sdhi2_pins>; 479 pinctrl-names = "default"; 480 481 vmmc-supply = <&vcc_sdhi2>; 482 vqmmc-supply = <&vccq_sdhi2>; 483 cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>; 484 status = "okay"; 485}; 486 487&qspi { 488 pinctrl-0 = <&qspi_pins>; 489 pinctrl-names = "default"; 490 491 status = "okay"; 492 493 flash: flash@0 { 494 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 495 reg = <0>; 496 spi-max-frequency = <30000000>; 497 spi-tx-bus-width = <4>; 498 spi-rx-bus-width = <4>; 499 spi-cpha; 500 spi-cpol; 501 m25p,fast-read; 502 503 partitions { 504 compatible = "fixed-partitions"; 505 #address-cells = <1>; 506 #size-cells = <1>; 507 508 partition@0 { 509 label = "loader"; 510 reg = <0x00000000 0x00080000>; 511 read-only; 512 }; 513 partition@80000 { 514 label = "user"; 515 reg = <0x00080000 0x00580000>; 516 read-only; 517 }; 518 partition@600000 { 519 label = "flash"; 520 reg = <0x00600000 0x03a00000>; 521 }; 522 }; 523 }; 524}; 525 526&msiof0 { 527 pinctrl-0 = <&msiof0_pins>; 528 pinctrl-names = "default"; 529 530 status = "okay"; 531 532 pmic: pmic@0 { 533 compatible = "renesas,r2a11302ft"; 534 reg = <0>; 535 spi-max-frequency = <6000000>; 536 spi-cpol; 537 spi-cpha; 538 }; 539}; 540 541&i2c2 { 542 pinctrl-0 = <&i2c2_pins>; 543 pinctrl-names = "default"; 544 545 status = "okay"; 546 clock-frequency = <100000>; 547 548 ak4643: codec@12 { 549 compatible = "asahi-kasei,ak4643"; 550 #sound-dai-cells = <0>; 551 reg = <0x12>; 552 }; 553 554 composite-in@20 { 555 compatible = "adi,adv7180"; 556 reg = <0x20>; 557 remote = <&vin1>; 558 559 port { 560 adv7180: endpoint { 561 bus-width = <8>; 562 remote-endpoint = <&vin1ep>; 563 }; 564 }; 565 }; 566 567 hdmi@39 { 568 compatible = "adi,adv7511w"; 569 reg = <0x39>; 570 interrupt-parent = <&gpio3>; 571 interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 572 573 adi,input-depth = <8>; 574 adi,input-colorspace = "rgb"; 575 adi,input-clock = "1x"; 576 adi,input-style = <1>; 577 adi,input-justification = "evenly"; 578 579 ports { 580 #address-cells = <1>; 581 #size-cells = <0>; 582 583 port@0 { 584 reg = <0>; 585 adv7511_in: endpoint { 586 remote-endpoint = <&du_out_rgb>; 587 }; 588 }; 589 590 port@1 { 591 reg = <1>; 592 adv7511_out: endpoint { 593 remote-endpoint = <&hdmi_con>; 594 }; 595 }; 596 }; 597 }; 598 599 eeprom@50 { 600 compatible = "renesas,24c02"; 601 reg = <0x50>; 602 pagesize = <16>; 603 }; 604}; 605 606&i2c6 { 607 status = "okay"; 608 clock-frequency = <100000>; 609 610 pmic@58 { 611 compatible = "dlg,da9063"; 612 reg = <0x58>; 613 interrupt-parent = <&irqc0>; 614 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 615 interrupt-controller; 616 617 rtc { 618 compatible = "dlg,da9063-rtc"; 619 }; 620 621 wdt { 622 compatible = "dlg,da9063-watchdog"; 623 }; 624 }; 625 626 vdd_dvfs: regulator@68 { 627 compatible = "dlg,da9210"; 628 reg = <0x68>; 629 interrupt-parent = <&irqc0>; 630 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 631 632 regulator-min-microvolt = <1000000>; 633 regulator-max-microvolt = <1000000>; 634 regulator-boot-on; 635 regulator-always-on; 636 }; 637}; 638 639&pci0 { 640 status = "okay"; 641 pinctrl-0 = <&usb0_pins>; 642 pinctrl-names = "default"; 643}; 644 645&pci1 { 646 status = "okay"; 647 pinctrl-0 = <&usb1_pins>; 648 pinctrl-names = "default"; 649}; 650 651&hsusb { 652 status = "okay"; 653 pinctrl-0 = <&usb0_pins>; 654 pinctrl-names = "default"; 655 renesas,enable-gpio = <&gpio5 31 GPIO_ACTIVE_HIGH>; 656}; 657 658&usbphy { 659 status = "okay"; 660}; 661 662&pcie_bus_clk { 663 clock-frequency = <100000000>; 664 status = "okay"; 665}; 666 667&pciec { 668 status = "okay"; 669}; 670 671&cpu0 { 672 cpu0-supply = <&vdd_dvfs>; 673}; 674 675/* composite video input */ 676&vin1 { 677 status = "okay"; 678 pinctrl-0 = <&vin1_pins>; 679 pinctrl-names = "default"; 680 681 port { 682 #address-cells = <1>; 683 #size-cells = <0>; 684 685 vin1ep: endpoint { 686 remote-endpoint = <&adv7180>; 687 bus-width = <8>; 688 }; 689 }; 690}; 691 692&rcar_sound { 693 pinctrl-0 = <&sound_pins &sound_clk_pins>; 694 pinctrl-names = "default"; 695 696 /* Single DAI */ 697 #sound-dai-cells = <0>; 698 699 status = "okay"; 700 701 rcar_sound,dai { 702 dai0 { 703 playback = <&ssi0 &src2 &dvc0>; 704 capture = <&ssi1 &src3 &dvc1>; 705 }; 706 }; 707}; 708 709&ssi1 { 710 shared-pin; 711}; 712