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 sound { 178 compatible = "simple-audio-card"; 179 180 simple-audio-card,format = "left_j"; 181 simple-audio-card,bitclock-master = <&sndcodec>; 182 simple-audio-card,frame-master = <&sndcodec>; 183 184 sndcpu: simple-audio-card,cpu { 185 sound-dai = <&rcar_sound>; 186 }; 187 188 sndcodec: simple-audio-card,codec { 189 sound-dai = <&ak4643>; 190 system-clock-frequency = <11289600>; 191 }; 192 }; 193 194 vga-encoder { 195 compatible = "adi,adv7123"; 196 197 ports { 198 #address-cells = <1>; 199 #size-cells = <0>; 200 201 port@0 { 202 reg = <0>; 203 adv7123_in: endpoint { 204 remote-endpoint = <&du_out_rgb>; 205 }; 206 }; 207 port@1 { 208 reg = <1>; 209 adv7123_out: endpoint { 210 remote-endpoint = <&vga_in>; 211 }; 212 }; 213 }; 214 }; 215 216 vga { 217 compatible = "vga-connector"; 218 219 port { 220 vga_in: endpoint { 221 remote-endpoint = <&adv7123_out>; 222 }; 223 }; 224 }; 225 226 hdmi-out { 227 compatible = "hdmi-connector"; 228 type = "a"; 229 230 port { 231 hdmi_con: endpoint { 232 remote-endpoint = <&adv7511_out>; 233 }; 234 }; 235 }; 236 237 x2_clk: x2-clock { 238 compatible = "fixed-clock"; 239 #clock-cells = <0>; 240 clock-frequency = <148500000>; 241 }; 242 243 x13_clk: x13-clock { 244 compatible = "fixed-clock"; 245 #clock-cells = <0>; 246 clock-frequency = <148500000>; 247 }; 248}; 249 250&du { 251 pinctrl-0 = <&du_pins>; 252 pinctrl-names = "default"; 253 status = "okay"; 254 255 clocks = <&mstp7_clks R8A7790_CLK_DU0>, 256 <&mstp7_clks R8A7790_CLK_DU1>, 257 <&mstp7_clks R8A7790_CLK_DU2>, 258 <&mstp7_clks R8A7790_CLK_LVDS0>, 259 <&mstp7_clks R8A7790_CLK_LVDS1>, 260 <&x13_clk>, <&x2_clk>; 261 clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1", 262 "dclkin.0", "dclkin.1"; 263 264 ports { 265 port@0 { 266 endpoint { 267 remote-endpoint = <&adv7123_in>; 268 }; 269 }; 270 port@1 { 271 endpoint { 272 remote-endpoint = <&adv7511_in>; 273 }; 274 }; 275 port@2 { 276 lvds_connector: endpoint { 277 }; 278 }; 279 }; 280}; 281 282&extal_clk { 283 clock-frequency = <20000000>; 284}; 285 286&pfc { 287 du_pins: du { 288 renesas,groups = "du_rgb666", "du_sync_1", "du_clk_out_0"; 289 renesas,function = "du"; 290 }; 291 292 scifa0_pins: serial0 { 293 renesas,groups = "scifa0_data"; 294 renesas,function = "scifa0"; 295 }; 296 297 ether_pins: ether { 298 renesas,groups = "eth_link", "eth_mdio", "eth_rmii"; 299 renesas,function = "eth"; 300 }; 301 302 phy1_pins: phy1 { 303 renesas,groups = "intc_irq0"; 304 renesas,function = "intc"; 305 }; 306 307 scifa1_pins: serial1 { 308 renesas,groups = "scifa1_data"; 309 renesas,function = "scifa1"; 310 }; 311 312 sdhi0_pins: sd0 { 313 renesas,groups = "sdhi0_data4", "sdhi0_ctrl"; 314 renesas,function = "sdhi0"; 315 }; 316 317 sdhi2_pins: sd2 { 318 renesas,groups = "sdhi2_data4", "sdhi2_ctrl"; 319 renesas,function = "sdhi2"; 320 }; 321 322 mmc1_pins: mmc1 { 323 renesas,groups = "mmc1_data8", "mmc1_ctrl"; 324 renesas,function = "mmc1"; 325 }; 326 327 qspi_pins: spi0 { 328 renesas,groups = "qspi_ctrl", "qspi_data4"; 329 renesas,function = "qspi"; 330 }; 331 332 msiof1_pins: spi2 { 333 renesas,groups = "msiof1_clk", "msiof1_sync", "msiof1_rx", 334 "msiof1_tx"; 335 renesas,function = "msiof1"; 336 }; 337 338 iic1_pins: iic1 { 339 renesas,groups = "iic1"; 340 renesas,function = "iic1"; 341 }; 342 343 iic2_pins: iic2 { 344 renesas,groups = "iic2"; 345 renesas,function = "iic2"; 346 }; 347 348 iic3_pins: iic3 { 349 renesas,groups = "iic3"; 350 renesas,function = "iic3"; 351 }; 352 353 hsusb_pins: hsusb { 354 renesas,groups = "usb0_ovc_vbus"; 355 renesas,function = "usb0"; 356 }; 357 358 usb0_pins: usb0 { 359 renesas,groups = "usb0"; 360 renesas,function = "usb0"; 361 }; 362 363 usb1_pins: usb1 { 364 renesas,groups = "usb1"; 365 renesas,function = "usb1"; 366 }; 367 368 usb2_pins: usb2 { 369 renesas,groups = "usb2"; 370 renesas,function = "usb2"; 371 }; 372 373 vin1_pins: vin { 374 renesas,groups = "vin1_data8", "vin1_clk"; 375 renesas,function = "vin1"; 376 }; 377 378 sound_pins: sound { 379 renesas,groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data"; 380 renesas,function = "ssi"; 381 }; 382 383 sound_clk_pins: sound_clk { 384 renesas,groups = "audio_clk_a"; 385 renesas,function = "audio_clk"; 386 }; 387}; 388 389ðer { 390 pinctrl-0 = <ðer_pins &phy1_pins>; 391 pinctrl-names = "default"; 392 393 phy-handle = <&phy1>; 394 renesas,ether-link-active-low; 395 status = "okay"; 396 397 phy1: ethernet-phy@1 { 398 reg = <1>; 399 interrupt-parent = <&irqc0>; 400 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 401 micrel,led-mode = <1>; 402 }; 403}; 404 405&cmt0 { 406 status = "okay"; 407}; 408 409&mmcif1 { 410 pinctrl-0 = <&mmc1_pins>; 411 pinctrl-names = "default"; 412 413 vmmc-supply = <&fixedregulator3v3>; 414 bus-width = <8>; 415 non-removable; 416 status = "okay"; 417}; 418 419&sata1 { 420 status = "okay"; 421}; 422 423&qspi { 424 pinctrl-0 = <&qspi_pins>; 425 pinctrl-names = "default"; 426 427 status = "okay"; 428 429 flash: flash@0 { 430 #address-cells = <1>; 431 #size-cells = <1>; 432 compatible = "spansion,s25fl512s"; 433 reg = <0>; 434 spi-max-frequency = <30000000>; 435 spi-tx-bus-width = <4>; 436 spi-rx-bus-width = <4>; 437 spi-cpha; 438 spi-cpol; 439 m25p,fast-read; 440 441 partition@0 { 442 label = "loader"; 443 reg = <0x00000000 0x00040000>; 444 read-only; 445 }; 446 partition@40000 { 447 label = "user"; 448 reg = <0x00040000 0x00400000>; 449 read-only; 450 }; 451 partition@440000 { 452 label = "flash"; 453 reg = <0x00440000 0x03bc0000>; 454 }; 455 }; 456}; 457 458&scifa0 { 459 pinctrl-0 = <&scifa0_pins>; 460 pinctrl-names = "default"; 461 462 status = "okay"; 463}; 464 465&scifa1 { 466 pinctrl-0 = <&scifa1_pins>; 467 pinctrl-names = "default"; 468 469 status = "okay"; 470}; 471 472&msiof1 { 473 pinctrl-0 = <&msiof1_pins>; 474 pinctrl-names = "default"; 475 476 status = "okay"; 477 478 pmic: pmic@0 { 479 compatible = "renesas,r2a11302ft"; 480 reg = <0>; 481 spi-max-frequency = <6000000>; 482 spi-cpol; 483 spi-cpha; 484 }; 485}; 486 487&sdhi0 { 488 pinctrl-0 = <&sdhi0_pins>; 489 pinctrl-names = "default"; 490 491 vmmc-supply = <&vcc_sdhi0>; 492 vqmmc-supply = <&vccq_sdhi0>; 493 cd-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>; 494 status = "okay"; 495}; 496 497&sdhi2 { 498 pinctrl-0 = <&sdhi2_pins>; 499 pinctrl-names = "default"; 500 501 vmmc-supply = <&vcc_sdhi2>; 502 vqmmc-supply = <&vccq_sdhi2>; 503 cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>; 504 status = "okay"; 505}; 506 507&cpu0 { 508 cpu0-supply = <&vdd_dvfs>; 509}; 510 511&iic0 { 512 status = "okay"; 513}; 514 515&iic1 { 516 status = "okay"; 517 pinctrl-0 = <&iic1_pins>; 518 pinctrl-names = "default"; 519}; 520 521&iic2 { 522 status = "okay"; 523 pinctrl-0 = <&iic2_pins>; 524 pinctrl-names = "default"; 525 526 clock-frequency = <100000>; 527 528 ak4643: sound-codec@12 { 529 compatible = "asahi-kasei,ak4643"; 530 #sound-dai-cells = <0>; 531 reg = <0x12>; 532 }; 533 534 composite-in@20 { 535 compatible = "adi,adv7180"; 536 reg = <0x20>; 537 remote = <&vin1>; 538 539 port { 540 adv7180: endpoint { 541 bus-width = <8>; 542 remote-endpoint = <&vin1ep0>; 543 }; 544 }; 545 }; 546 547 hdmi@39 { 548 compatible = "adi,adv7511w"; 549 reg = <0x39>; 550 interrupt-parent = <&gpio1>; 551 interrupts = <15 IRQ_TYPE_EDGE_FALLING>; 552 553 adi,input-depth = <8>; 554 adi,input-colorspace = "rgb"; 555 adi,input-clock = "1x"; 556 adi,input-style = <1>; 557 adi,input-justification = "evenly"; 558 559 ports { 560 #address-cells = <1>; 561 #size-cells = <0>; 562 563 port@0 { 564 reg = <0>; 565 adv7511_in: endpoint { 566 remote-endpoint = <&du_out_lvds0>; 567 }; 568 }; 569 570 port@1 { 571 reg = <1>; 572 adv7511_out: endpoint { 573 remote-endpoint = <&hdmi_con>; 574 }; 575 }; 576 }; 577 }; 578}; 579 580&iic3 { 581 pinctrl-names = "default"; 582 pinctrl-0 = <&iic3_pins>; 583 status = "okay"; 584 585 pmic@58 { 586 compatible = "dlg,da9063"; 587 reg = <0x58>; 588 interrupt-parent = <&irqc0>; 589 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 590 interrupt-controller; 591 592 rtc { 593 compatible = "dlg,da9063-rtc"; 594 }; 595 596 wdt { 597 compatible = "dlg,da9063-watchdog"; 598 }; 599 }; 600 601 vdd_dvfs: regulator@68 { 602 compatible = "dlg,da9210"; 603 reg = <0x68>; 604 interrupt-parent = <&irqc0>; 605 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 606 607 regulator-min-microvolt = <1000000>; 608 regulator-max-microvolt = <1000000>; 609 regulator-boot-on; 610 regulator-always-on; 611 }; 612}; 613 614&pci0 { 615 status = "okay"; 616 pinctrl-0 = <&usb0_pins>; 617 pinctrl-names = "default"; 618}; 619 620&pci1 { 621 status = "okay"; 622 pinctrl-0 = <&usb1_pins>; 623 pinctrl-names = "default"; 624}; 625 626&xhci { 627 status = "okay"; 628 pinctrl-0 = <&usb2_pins>; 629 pinctrl-names = "default"; 630}; 631 632&pci2 { 633 status = "okay"; 634 pinctrl-0 = <&usb2_pins>; 635 pinctrl-names = "default"; 636}; 637 638&hsusb { 639 status = "okay"; 640 pinctrl-0 = <&hsusb_pins>; 641 pinctrl-names = "default"; 642 renesas,enable-gpio = <&gpio5 18 GPIO_ACTIVE_HIGH>; 643}; 644 645&usbphy { 646 status = "okay"; 647}; 648 649/* composite video input */ 650&vin1 { 651 pinctrl-0 = <&vin1_pins>; 652 pinctrl-names = "default"; 653 654 status = "okay"; 655 656 port { 657 #address-cells = <1>; 658 #size-cells = <0>; 659 660 vin1ep0: endpoint { 661 remote-endpoint = <&adv7180>; 662 bus-width = <8>; 663 }; 664 }; 665}; 666 667&rcar_sound { 668 pinctrl-0 = <&sound_pins &sound_clk_pins>; 669 pinctrl-names = "default"; 670 671 /* Single DAI */ 672 #sound-dai-cells = <0>; 673 674 status = "okay"; 675 676 rcar_sound,dai { 677 dai0 { 678 playback = <&ssi0 &src2 &dvc0>; 679 capture = <&ssi1 &src3 &dvc1>; 680 }; 681 }; 682}; 683 684&ssi1 { 685 shared-pin; 686}; 687