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