1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Device Tree Source for the SILK board 4 * 5 * Copyright (C) 2014 Renesas Electronics Corporation 6 * Copyright (C) 2014-2015 Renesas Solutions Corp. 7 * Copyright (C) 2014-2015 Cogent Embedded, Inc. 8 */ 9 10/* 11 * SSI-AK4643 12 * 13 * SW1: 2-1: AK4643 14 * 2-3: ADV7511 15 * 16 * This command is required before playback/capture: 17 * 18 * amixer set "LINEOUT Mixer DACL" on 19 */ 20 21/dts-v1/; 22#include "r8a7794.dtsi" 23#include <dt-bindings/gpio/gpio.h> 24#include <dt-bindings/input/input.h> 25 26/ { 27 model = "SILK"; 28 compatible = "renesas,silk", "renesas,r8a7794"; 29 30 aliases { 31 serial0 = &scif2; 32 i2c9 = &gpioi2c1; 33 i2c10 = &i2chdmi; 34 mmc0 = &mmcif0; 35 mmc1 = &sdhi1; 36 }; 37 38 chosen { 39 bootargs = "ignore_loglevel rw root=/dev/nfs ip=on"; 40 stdout-path = "serial0:115200n8"; 41 }; 42 43 memory@40000000 { 44 device_type = "memory"; 45 reg = <0 0x40000000 0 0x40000000>; 46 }; 47 48 keyboard { 49 compatible = "gpio-keys"; 50 51 pinctrl-0 = <&keyboard_pins>; 52 pinctrl-names = "default"; 53 54 key-3 { 55 gpios = <&gpio5 10 GPIO_ACTIVE_LOW>; 56 linux,code = <KEY_3>; 57 label = "SW3"; 58 wakeup-source; 59 debounce-interval = <20>; 60 }; 61 key-4 { 62 gpios = <&gpio5 11 GPIO_ACTIVE_LOW>; 63 linux,code = <KEY_4>; 64 label = "SW4"; 65 wakeup-source; 66 debounce-interval = <20>; 67 }; 68 key-6 { 69 gpios = <&gpio5 12 GPIO_ACTIVE_LOW>; 70 linux,code = <KEY_6>; 71 label = "SW6"; 72 wakeup-source; 73 debounce-interval = <20>; 74 }; 75 key-a { 76 gpios = <&gpio3 9 GPIO_ACTIVE_LOW>; 77 linux,code = <KEY_A>; 78 label = "SW12-1"; 79 wakeup-source; 80 debounce-interval = <20>; 81 }; 82 key-b { 83 gpios = <&gpio3 10 GPIO_ACTIVE_LOW>; 84 linux,code = <KEY_B>; 85 label = "SW12-2"; 86 wakeup-source; 87 debounce-interval = <20>; 88 }; 89 key-c { 90 gpios = <&gpio3 11 GPIO_ACTIVE_LOW>; 91 linux,code = <KEY_C>; 92 label = "SW12-3"; 93 wakeup-source; 94 debounce-interval = <20>; 95 }; 96 key-d { 97 gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 98 linux,code = <KEY_D>; 99 label = "SW12-4"; 100 wakeup-source; 101 debounce-interval = <20>; 102 }; 103 }; 104 105 d1_8v: regulator-d1-8v { 106 compatible = "regulator-fixed"; 107 regulator-name = "D1.8V"; 108 regulator-min-microvolt = <1800000>; 109 regulator-max-microvolt = <1800000>; 110 regulator-boot-on; 111 regulator-always-on; 112 }; 113 114 d3_3v: regulator-d3-3v { 115 compatible = "regulator-fixed"; 116 regulator-name = "D3.3V"; 117 regulator-min-microvolt = <3300000>; 118 regulator-max-microvolt = <3300000>; 119 regulator-boot-on; 120 regulator-always-on; 121 }; 122 123 vcc_sdhi1: regulator-vcc-sdhi1 { 124 compatible = "regulator-fixed"; 125 126 regulator-name = "SDHI1 Vcc"; 127 regulator-min-microvolt = <3300000>; 128 regulator-max-microvolt = <3300000>; 129 130 gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>; 131 enable-active-high; 132 }; 133 134 vccq_sdhi1: regulator-vccq-sdhi1 { 135 compatible = "regulator-gpio"; 136 137 regulator-name = "SDHI1 VccQ"; 138 regulator-min-microvolt = <1800000>; 139 regulator-max-microvolt = <3300000>; 140 141 gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>; 142 gpios-states = <1>; 143 states = <3300000 1>, <1800000 0>; 144 }; 145 146 vga-encoder { 147 compatible = "adi,adv7123"; 148 149 ports { 150 #address-cells = <1>; 151 #size-cells = <0>; 152 153 port@0 { 154 reg = <0>; 155 adv7123_in: endpoint { 156 remote-endpoint = <&du_out_rgb1>; 157 }; 158 }; 159 port@1 { 160 reg = <1>; 161 adv7123_out: endpoint { 162 remote-endpoint = <&vga_in>; 163 }; 164 }; 165 }; 166 }; 167 168 hdmi-out { 169 compatible = "hdmi-connector"; 170 type = "a"; 171 172 port { 173 hdmi_con: endpoint { 174 remote-endpoint = <&adv7511_out>; 175 }; 176 }; 177 }; 178 179 vga { 180 compatible = "vga-connector"; 181 182 port { 183 vga_in: endpoint { 184 remote-endpoint = <&adv7123_out>; 185 }; 186 }; 187 }; 188 189 x2_clk: x2-clock { 190 compatible = "fixed-clock"; 191 #clock-cells = <0>; 192 clock-frequency = <148500000>; 193 }; 194 195 x3_clk: x3-clock { 196 compatible = "fixed-clock"; 197 #clock-cells = <0>; 198 clock-frequency = <74250000>; 199 }; 200 201 x9_clk: audio_clock { 202 compatible = "fixed-clock"; 203 #clock-cells = <0>; 204 clock-frequency = <12288000>; 205 }; 206 207 sound { 208 compatible = "simple-audio-card"; 209 210 simple-audio-card,format = "left_j"; 211 simple-audio-card,bitclock-master = <&soundcodec>; 212 simple-audio-card,frame-master = <&soundcodec>; 213 214 simple-audio-card,cpu { 215 sound-dai = <&rcar_sound>; 216 }; 217 218 soundcodec: simple-audio-card,codec { 219 sound-dai = <&ak4643>; 220 clocks = <&x9_clk>; 221 }; 222 }; 223 224 gpioi2c1: i2c-9 { 225 #address-cells = <1>; 226 #size-cells = <0>; 227 compatible = "i2c-gpio"; 228 status = "disabled"; 229 scl-gpios = <&gpio4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 230 sda-gpios = <&gpio4 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 231 i2c-gpio,delay-us = <5>; 232 }; 233 234 /* 235 * A fallback to GPIO is provided for I2C1. 236 */ 237 i2chdmi: i2c-mux1 { 238 compatible = "i2c-demux-pinctrl"; 239 i2c-parent = <&i2c1>, <&gpioi2c1>; 240 i2c-bus-name = "i2c-hdmi"; 241 #address-cells = <1>; 242 #size-cells = <0>; 243 244 ak4643: codec@12 { 245 compatible = "asahi-kasei,ak4643"; 246 #sound-dai-cells = <0>; 247 reg = <0x12>; 248 }; 249 250 composite-in@20 { 251 compatible = "adi,adv7180"; 252 reg = <0x20>; 253 254 port { 255 adv7180: endpoint { 256 bus-width = <8>; 257 remote-endpoint = <&vin0ep>; 258 }; 259 }; 260 }; 261 262 hdmi@39 { 263 compatible = "adi,adv7511w"; 264 reg = <0x39>; 265 interrupt-parent = <&gpio5>; 266 interrupts = <23 IRQ_TYPE_LEVEL_LOW>; 267 268 avdd-supply = <&d1_8v>; 269 dvdd-supply = <&d1_8v>; 270 pvdd-supply = <&d1_8v>; 271 dvdd-3v-supply = <&d3_3v>; 272 bgvdd-supply = <&d1_8v>; 273 274 adi,input-depth = <8>; 275 adi,input-colorspace = "rgb"; 276 adi,input-clock = "1x"; 277 278 ports { 279 #address-cells = <1>; 280 #size-cells = <0>; 281 282 port@0 { 283 reg = <0>; 284 adv7511_in: endpoint { 285 remote-endpoint = <&du_out_rgb0>; 286 }; 287 }; 288 289 port@1 { 290 reg = <1>; 291 adv7511_out: endpoint { 292 remote-endpoint = <&hdmi_con>; 293 }; 294 }; 295 }; 296 }; 297 298 eeprom@50 { 299 compatible = "renesas,r1ex24002", "atmel,24c02"; 300 reg = <0x50>; 301 pagesize = <16>; 302 }; 303 }; 304}; 305 306&extal_clk { 307 clock-frequency = <20000000>; 308}; 309 310&pfc { 311 pinctrl-0 = <&scif_clk_pins>; 312 pinctrl-names = "default"; 313 314 scif2_pins: scif2 { 315 groups = "scif2_data"; 316 function = "scif2"; 317 }; 318 319 scif_clk_pins: scif_clk { 320 groups = "scif_clk"; 321 function = "scif_clk"; 322 }; 323 324 ether_pins: ether { 325 groups = "eth_link", "eth_mdio", "eth_rmii"; 326 function = "eth"; 327 }; 328 329 phy1_pins: phy1 { 330 groups = "intc_irq8"; 331 function = "intc"; 332 }; 333 334 i2c1_pins: i2c1 { 335 groups = "i2c1"; 336 function = "i2c1"; 337 }; 338 339 mmcif0_pins: mmcif0 { 340 groups = "mmc_data8", "mmc_ctrl"; 341 function = "mmc"; 342 }; 343 344 sdhi1_pins: sd1 { 345 groups = "sdhi1_data4", "sdhi1_ctrl"; 346 function = "sdhi1"; 347 }; 348 349 qspi_pins: qspi { 350 groups = "qspi_ctrl", "qspi_data4"; 351 function = "qspi"; 352 }; 353 354 vin0_pins: vin0 { 355 groups = "vin0_data8", "vin0_clk"; 356 function = "vin0"; 357 }; 358 359 usb0_pins: usb0 { 360 groups = "usb0"; 361 function = "usb0"; 362 }; 363 364 usb1_pins: usb1 { 365 groups = "usb1"; 366 function = "usb1"; 367 }; 368 369 du0_pins: du0 { 370 groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out"; 371 function = "du0"; 372 }; 373 374 du1_pins: du1 { 375 groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out"; 376 function = "du1"; 377 }; 378 379 keyboard_pins: keyboard { 380 pins = "GP_3_9", "GP_3_10", "GP_3_11", "GP_3_12"; 381 bias-pull-up; 382 }; 383 384 ssi_pins: sound { 385 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data"; 386 function = "ssi"; 387 }; 388 389 audio_clk_pins: audio_clk { 390 groups = "audio_clkc"; 391 function = "audio_clk"; 392 }; 393}; 394 395&scif2 { 396 pinctrl-0 = <&scif2_pins>; 397 pinctrl-names = "default"; 398 399 status = "okay"; 400}; 401 402&scif_clk { 403 clock-frequency = <14745600>; 404}; 405 406ðer { 407 pinctrl-0 = <ðer_pins>, <&phy1_pins>; 408 pinctrl-names = "default"; 409 410 phy-handle = <&phy1>; 411 renesas,ether-link-active-low; 412 status = "okay"; 413 414 phy1: ethernet-phy@1 { 415 compatible = "ethernet-phy-id0022.1537", 416 "ethernet-phy-ieee802.3-c22"; 417 reg = <1>; 418 interrupt-parent = <&irqc0>; 419 interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 420 micrel,led-mode = <1>; 421 reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; 422 }; 423}; 424 425&i2c1 { 426 pinctrl-0 = <&i2c1_pins>; 427 pinctrl-names = "i2c-hdmi"; 428 429 clock-frequency = <400000>; 430}; 431 432&i2c7 { 433 status = "okay"; 434 clock-frequency = <100000>; 435 436 pmic@58 { 437 compatible = "dlg,da9063"; 438 reg = <0x58>; 439 interrupt-parent = <&gpio3>; 440 interrupts = <31 IRQ_TYPE_LEVEL_LOW>; 441 interrupt-controller; 442 #interrupt-cells = <2>; 443 444 onkey { 445 compatible = "dlg,da9063-onkey"; 446 }; 447 448 rtc { 449 compatible = "dlg,da9063-rtc"; 450 }; 451 452 watchdog { 453 compatible = "dlg,da9063-watchdog"; 454 }; 455 }; 456}; 457 458&mmcif0 { 459 pinctrl-0 = <&mmcif0_pins>; 460 pinctrl-names = "default"; 461 462 vmmc-supply = <&d3_3v>; 463 vqmmc-supply = <&d3_3v>; 464 bus-width = <8>; 465 non-removable; 466 status = "okay"; 467}; 468 469&sdhi1 { 470 pinctrl-0 = <&sdhi1_pins>; 471 pinctrl-names = "default"; 472 473 vmmc-supply = <&vcc_sdhi1>; 474 vqmmc-supply = <&vccq_sdhi1>; 475 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 476 status = "okay"; 477}; 478 479&qspi { 480 pinctrl-0 = <&qspi_pins>; 481 pinctrl-names = "default"; 482 483 status = "okay"; 484 485 flash@0 { 486 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 487 reg = <0>; 488 spi-max-frequency = <30000000>; 489 spi-tx-bus-width = <4>; 490 spi-rx-bus-width = <4>; 491 spi-cpol; 492 spi-cpha; 493 m25p,fast-read; 494 495 partitions { 496 compatible = "fixed-partitions"; 497 #address-cells = <1>; 498 #size-cells = <1>; 499 500 partition@0 { 501 label = "loader"; 502 reg = <0x00000000 0x00040000>; 503 read-only; 504 }; 505 partition@40000 { 506 label = "user"; 507 reg = <0x00040000 0x00400000>; 508 read-only; 509 }; 510 partition@440000 { 511 label = "flash"; 512 reg = <0x00440000 0x03bc0000>; 513 }; 514 }; 515 }; 516}; 517 518/* composite video input */ 519&vin0 { 520 status = "okay"; 521 pinctrl-0 = <&vin0_pins>; 522 pinctrl-names = "default"; 523 524 port { 525 vin0ep: endpoint { 526 remote-endpoint = <&adv7180>; 527 bus-width = <8>; 528 }; 529 }; 530}; 531 532&pci0 { 533 status = "okay"; 534 pinctrl-0 = <&usb0_pins>; 535 pinctrl-names = "default"; 536}; 537 538&pci1 { 539 status = "okay"; 540 pinctrl-0 = <&usb1_pins>; 541 pinctrl-names = "default"; 542}; 543 544&usbphy { 545 status = "okay"; 546}; 547 548&du { 549 pinctrl-0 = <&du0_pins>, <&du1_pins>; 550 pinctrl-names = "default"; 551 status = "okay"; 552 553 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, 554 <&x2_clk>, <&x3_clk>; 555 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; 556 557 ports { 558 port@0 { 559 endpoint { 560 remote-endpoint = <&adv7511_in>; 561 }; 562 }; 563 port@1 { 564 endpoint { 565 remote-endpoint = <&adv7123_in>; 566 }; 567 }; 568 }; 569}; 570 571&rcar_sound { 572 pinctrl-0 = <&ssi_pins>, <&audio_clk_pins>; 573 pinctrl-names = "default"; 574 status = "okay"; 575 576 /* Single DAI */ 577 #sound-dai-cells = <0>; 578 579 rcar_sound,dai { 580 dai0 { 581 playback = <&ssi0>; 582 capture = <&ssi1>; 583 }; 584 }; 585}; 586 587&rwdt { 588 timeout-sec = <60>; 589 status = "okay"; 590}; 591 592&ssi1 { 593 shared-pin; 594}; 595