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 d3_3v: regulator-d3-3v { 106 compatible = "regulator-fixed"; 107 regulator-name = "D3.3V"; 108 regulator-min-microvolt = <3300000>; 109 regulator-max-microvolt = <3300000>; 110 regulator-boot-on; 111 regulator-always-on; 112 }; 113 114 vcc_sdhi1: regulator-vcc-sdhi1 { 115 compatible = "regulator-fixed"; 116 117 regulator-name = "SDHI1 Vcc"; 118 regulator-min-microvolt = <3300000>; 119 regulator-max-microvolt = <3300000>; 120 121 gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>; 122 enable-active-high; 123 }; 124 125 vccq_sdhi1: regulator-vccq-sdhi1 { 126 compatible = "regulator-gpio"; 127 128 regulator-name = "SDHI1 VccQ"; 129 regulator-min-microvolt = <1800000>; 130 regulator-max-microvolt = <3300000>; 131 132 gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>; 133 gpios-states = <1>; 134 states = <3300000 1>, <1800000 0>; 135 }; 136 137 vga-encoder { 138 compatible = "adi,adv7123"; 139 140 ports { 141 #address-cells = <1>; 142 #size-cells = <0>; 143 144 port@0 { 145 reg = <0>; 146 adv7123_in: endpoint { 147 remote-endpoint = <&du_out_rgb1>; 148 }; 149 }; 150 port@1 { 151 reg = <1>; 152 adv7123_out: endpoint { 153 remote-endpoint = <&vga_in>; 154 }; 155 }; 156 }; 157 }; 158 159 hdmi-out { 160 compatible = "hdmi-connector"; 161 type = "a"; 162 163 port { 164 hdmi_con: endpoint { 165 remote-endpoint = <&adv7511_out>; 166 }; 167 }; 168 }; 169 170 vga { 171 compatible = "vga-connector"; 172 173 port { 174 vga_in: endpoint { 175 remote-endpoint = <&adv7123_out>; 176 }; 177 }; 178 }; 179 180 x2_clk: x2-clock { 181 compatible = "fixed-clock"; 182 #clock-cells = <0>; 183 clock-frequency = <148500000>; 184 }; 185 186 x3_clk: x3-clock { 187 compatible = "fixed-clock"; 188 #clock-cells = <0>; 189 clock-frequency = <74250000>; 190 }; 191 192 x9_clk: audio_clock { 193 compatible = "fixed-clock"; 194 #clock-cells = <0>; 195 clock-frequency = <12288000>; 196 }; 197 198 sound { 199 compatible = "simple-audio-card"; 200 201 simple-audio-card,format = "left_j"; 202 simple-audio-card,bitclock-master = <&soundcodec>; 203 simple-audio-card,frame-master = <&soundcodec>; 204 205 simple-audio-card,cpu { 206 sound-dai = <&rcar_sound>; 207 }; 208 209 soundcodec: simple-audio-card,codec { 210 sound-dai = <&ak4643>; 211 clocks = <&x9_clk>; 212 }; 213 }; 214 215 gpioi2c1: i2c-9 { 216 #address-cells = <1>; 217 #size-cells = <0>; 218 compatible = "i2c-gpio"; 219 status = "disabled"; 220 scl-gpios = <&gpio4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 221 sda-gpios = <&gpio4 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 222 i2c-gpio,delay-us = <5>; 223 }; 224 225 /* 226 * A fallback to GPIO is provided for I2C1. 227 */ 228 i2chdmi: i2c-10 { 229 compatible = "i2c-demux-pinctrl"; 230 i2c-parent = <&i2c1>, <&gpioi2c1>; 231 i2c-bus-name = "i2c-hdmi"; 232 #address-cells = <1>; 233 #size-cells = <0>; 234 235 ak4643: codec@12 { 236 compatible = "asahi-kasei,ak4643"; 237 #sound-dai-cells = <0>; 238 reg = <0x12>; 239 }; 240 241 composite-in@20 { 242 compatible = "adi,adv7180"; 243 reg = <0x20>; 244 245 port { 246 adv7180: endpoint { 247 bus-width = <8>; 248 remote-endpoint = <&vin0ep>; 249 }; 250 }; 251 }; 252 253 hdmi@39 { 254 compatible = "adi,adv7511w"; 255 reg = <0x39>; 256 interrupt-parent = <&gpio5>; 257 interrupts = <23 IRQ_TYPE_LEVEL_LOW>; 258 259 adi,input-depth = <8>; 260 adi,input-colorspace = "rgb"; 261 adi,input-clock = "1x"; 262 263 ports { 264 #address-cells = <1>; 265 #size-cells = <0>; 266 267 port@0 { 268 reg = <0>; 269 adv7511_in: endpoint { 270 remote-endpoint = <&du_out_rgb0>; 271 }; 272 }; 273 274 port@1 { 275 reg = <1>; 276 adv7511_out: endpoint { 277 remote-endpoint = <&hdmi_con>; 278 }; 279 }; 280 }; 281 }; 282 283 eeprom@50 { 284 compatible = "renesas,r1ex24002", "atmel,24c02"; 285 reg = <0x50>; 286 pagesize = <16>; 287 }; 288 }; 289}; 290 291&extal_clk { 292 clock-frequency = <20000000>; 293}; 294 295&pfc { 296 pinctrl-0 = <&scif_clk_pins>; 297 pinctrl-names = "default"; 298 299 scif2_pins: scif2 { 300 groups = "scif2_data"; 301 function = "scif2"; 302 }; 303 304 scif_clk_pins: scif_clk { 305 groups = "scif_clk"; 306 function = "scif_clk"; 307 }; 308 309 ether_pins: ether { 310 groups = "eth_link", "eth_mdio", "eth_rmii"; 311 function = "eth"; 312 }; 313 314 phy1_pins: phy1 { 315 groups = "intc_irq8"; 316 function = "intc"; 317 }; 318 319 i2c1_pins: i2c1 { 320 groups = "i2c1"; 321 function = "i2c1"; 322 }; 323 324 mmcif0_pins: mmcif0 { 325 groups = "mmc_data8", "mmc_ctrl"; 326 function = "mmc"; 327 }; 328 329 sdhi1_pins: sd1 { 330 groups = "sdhi1_data4", "sdhi1_ctrl"; 331 function = "sdhi1"; 332 }; 333 334 qspi_pins: qspi { 335 groups = "qspi_ctrl", "qspi_data4"; 336 function = "qspi"; 337 }; 338 339 vin0_pins: vin0 { 340 groups = "vin0_data8", "vin0_clk"; 341 function = "vin0"; 342 }; 343 344 usb0_pins: usb0 { 345 groups = "usb0"; 346 function = "usb0"; 347 }; 348 349 usb1_pins: usb1 { 350 groups = "usb1"; 351 function = "usb1"; 352 }; 353 354 du0_pins: du0 { 355 groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out"; 356 function = "du0"; 357 }; 358 359 du1_pins: du1 { 360 groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out"; 361 function = "du1"; 362 }; 363 364 keyboard_pins: keyboard { 365 pins = "GP_3_9", "GP_3_10", "GP_3_11", "GP_3_12"; 366 bias-pull-up; 367 }; 368 369 ssi_pins: sound { 370 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data"; 371 function = "ssi"; 372 }; 373 374 audio_clk_pins: audio_clk { 375 groups = "audio_clkc"; 376 function = "audio_clk"; 377 }; 378}; 379 380&scif2 { 381 pinctrl-0 = <&scif2_pins>; 382 pinctrl-names = "default"; 383 384 status = "okay"; 385}; 386 387&scif_clk { 388 clock-frequency = <14745600>; 389}; 390 391ðer { 392 pinctrl-0 = <ðer_pins>, <&phy1_pins>; 393 pinctrl-names = "default"; 394 395 phy-handle = <&phy1>; 396 renesas,ether-link-active-low; 397 status = "okay"; 398 399 phy1: ethernet-phy@1 { 400 reg = <1>; 401 interrupt-parent = <&irqc0>; 402 interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 403 micrel,led-mode = <1>; 404 reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; 405 }; 406}; 407 408&i2c1 { 409 pinctrl-0 = <&i2c1_pins>; 410 pinctrl-names = "i2c-hdmi"; 411 412 clock-frequency = <400000>; 413}; 414 415&i2c7 { 416 status = "okay"; 417 clock-frequency = <100000>; 418 419 pmic@58 { 420 compatible = "dlg,da9063"; 421 reg = <0x58>; 422 interrupt-parent = <&gpio3>; 423 interrupts = <31 IRQ_TYPE_LEVEL_LOW>; 424 interrupt-controller; 425 426 onkey { 427 compatible = "dlg,da9063-onkey"; 428 }; 429 430 rtc { 431 compatible = "dlg,da9063-rtc"; 432 }; 433 434 wdt { 435 compatible = "dlg,da9063-watchdog"; 436 }; 437 }; 438}; 439 440&mmcif0 { 441 pinctrl-0 = <&mmcif0_pins>; 442 pinctrl-names = "default"; 443 444 vmmc-supply = <&d3_3v>; 445 vqmmc-supply = <&d3_3v>; 446 bus-width = <8>; 447 non-removable; 448 status = "okay"; 449}; 450 451&sdhi1 { 452 pinctrl-0 = <&sdhi1_pins>; 453 pinctrl-names = "default"; 454 455 vmmc-supply = <&vcc_sdhi1>; 456 vqmmc-supply = <&vccq_sdhi1>; 457 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 458 status = "okay"; 459}; 460 461&qspi { 462 pinctrl-0 = <&qspi_pins>; 463 pinctrl-names = "default"; 464 465 status = "okay"; 466 467 flash@0 { 468 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 469 reg = <0>; 470 spi-max-frequency = <30000000>; 471 spi-tx-bus-width = <4>; 472 spi-rx-bus-width = <4>; 473 spi-cpol; 474 spi-cpha; 475 m25p,fast-read; 476 477 partitions { 478 compatible = "fixed-partitions"; 479 #address-cells = <1>; 480 #size-cells = <1>; 481 482 partition@0 { 483 label = "loader"; 484 reg = <0x00000000 0x00040000>; 485 read-only; 486 }; 487 partition@40000 { 488 label = "user"; 489 reg = <0x00040000 0x00400000>; 490 read-only; 491 }; 492 partition@440000 { 493 label = "flash"; 494 reg = <0x00440000 0x03bc0000>; 495 }; 496 }; 497 }; 498}; 499 500/* composite video input */ 501&vin0 { 502 status = "okay"; 503 pinctrl-0 = <&vin0_pins>; 504 pinctrl-names = "default"; 505 506 port { 507 vin0ep: endpoint { 508 remote-endpoint = <&adv7180>; 509 bus-width = <8>; 510 }; 511 }; 512}; 513 514&pci0 { 515 status = "okay"; 516 pinctrl-0 = <&usb0_pins>; 517 pinctrl-names = "default"; 518}; 519 520&pci1 { 521 status = "okay"; 522 pinctrl-0 = <&usb1_pins>; 523 pinctrl-names = "default"; 524}; 525 526&usbphy { 527 status = "okay"; 528}; 529 530&du { 531 pinctrl-0 = <&du0_pins>, <&du1_pins>; 532 pinctrl-names = "default"; 533 status = "okay"; 534 535 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, 536 <&x2_clk>, <&x3_clk>; 537 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; 538 539 ports { 540 port@0 { 541 endpoint { 542 remote-endpoint = <&adv7511_in>; 543 }; 544 }; 545 port@1 { 546 endpoint { 547 remote-endpoint = <&adv7123_in>; 548 }; 549 }; 550 }; 551}; 552 553&rcar_sound { 554 pinctrl-0 = <&ssi_pins>, <&audio_clk_pins>; 555 pinctrl-names = "default"; 556 status = "okay"; 557 558 /* Single DAI */ 559 #sound-dai-cells = <0>; 560 561 rcar_sound,dai { 562 dai0 { 563 playback = <&ssi0>; 564 capture = <&ssi1>; 565 }; 566 }; 567}; 568 569&rwdt { 570 timeout-sec = <60>; 571 status = "okay"; 572}; 573 574&ssi1 { 575 shared-pin; 576}; 577