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 compatible = "ethernet-phy-id0022.1537", 401 "ethernet-phy-ieee802.3-c22"; 402 reg = <1>; 403 interrupt-parent = <&irqc0>; 404 interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 405 micrel,led-mode = <1>; 406 reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; 407 }; 408}; 409 410&i2c1 { 411 pinctrl-0 = <&i2c1_pins>; 412 pinctrl-names = "i2c-hdmi"; 413 414 clock-frequency = <400000>; 415}; 416 417&i2c7 { 418 status = "okay"; 419 clock-frequency = <100000>; 420 421 pmic@58 { 422 compatible = "dlg,da9063"; 423 reg = <0x58>; 424 interrupt-parent = <&gpio3>; 425 interrupts = <31 IRQ_TYPE_LEVEL_LOW>; 426 interrupt-controller; 427 #interrupt-cells = <2>; 428 429 onkey { 430 compatible = "dlg,da9063-onkey"; 431 }; 432 433 rtc { 434 compatible = "dlg,da9063-rtc"; 435 }; 436 437 watchdog { 438 compatible = "dlg,da9063-watchdog"; 439 }; 440 }; 441}; 442 443&mmcif0 { 444 pinctrl-0 = <&mmcif0_pins>; 445 pinctrl-names = "default"; 446 447 vmmc-supply = <&d3_3v>; 448 vqmmc-supply = <&d3_3v>; 449 bus-width = <8>; 450 non-removable; 451 status = "okay"; 452}; 453 454&sdhi1 { 455 pinctrl-0 = <&sdhi1_pins>; 456 pinctrl-names = "default"; 457 458 vmmc-supply = <&vcc_sdhi1>; 459 vqmmc-supply = <&vccq_sdhi1>; 460 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 461 status = "okay"; 462}; 463 464&qspi { 465 pinctrl-0 = <&qspi_pins>; 466 pinctrl-names = "default"; 467 468 status = "okay"; 469 470 flash@0 { 471 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 472 reg = <0>; 473 spi-max-frequency = <30000000>; 474 spi-tx-bus-width = <4>; 475 spi-rx-bus-width = <4>; 476 spi-cpol; 477 spi-cpha; 478 m25p,fast-read; 479 480 partitions { 481 compatible = "fixed-partitions"; 482 #address-cells = <1>; 483 #size-cells = <1>; 484 485 partition@0 { 486 label = "loader"; 487 reg = <0x00000000 0x00040000>; 488 read-only; 489 }; 490 partition@40000 { 491 label = "user"; 492 reg = <0x00040000 0x00400000>; 493 read-only; 494 }; 495 partition@440000 { 496 label = "flash"; 497 reg = <0x00440000 0x03bc0000>; 498 }; 499 }; 500 }; 501}; 502 503/* composite video input */ 504&vin0 { 505 status = "okay"; 506 pinctrl-0 = <&vin0_pins>; 507 pinctrl-names = "default"; 508 509 port { 510 vin0ep: endpoint { 511 remote-endpoint = <&adv7180>; 512 bus-width = <8>; 513 }; 514 }; 515}; 516 517&pci0 { 518 status = "okay"; 519 pinctrl-0 = <&usb0_pins>; 520 pinctrl-names = "default"; 521}; 522 523&pci1 { 524 status = "okay"; 525 pinctrl-0 = <&usb1_pins>; 526 pinctrl-names = "default"; 527}; 528 529&usbphy { 530 status = "okay"; 531}; 532 533&du { 534 pinctrl-0 = <&du0_pins>, <&du1_pins>; 535 pinctrl-names = "default"; 536 status = "okay"; 537 538 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, 539 <&x2_clk>, <&x3_clk>; 540 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; 541 542 ports { 543 port@0 { 544 endpoint { 545 remote-endpoint = <&adv7511_in>; 546 }; 547 }; 548 port@1 { 549 endpoint { 550 remote-endpoint = <&adv7123_in>; 551 }; 552 }; 553 }; 554}; 555 556&rcar_sound { 557 pinctrl-0 = <&ssi_pins>, <&audio_clk_pins>; 558 pinctrl-names = "default"; 559 status = "okay"; 560 561 /* Single DAI */ 562 #sound-dai-cells = <0>; 563 564 rcar_sound,dai { 565 dai0 { 566 playback = <&ssi0>; 567 capture = <&ssi1>; 568 }; 569 }; 570}; 571 572&rwdt { 573 timeout-sec = <60>; 574 status = "okay"; 575}; 576 577&ssi1 { 578 shared-pin; 579}; 580