1/* 2 * Device Tree Source for the Gose board 3 * 4 * Copyright (C) 2014-2015 Renesas Electronics Corporation 5 * 6 * This file is licensed under the terms of the GNU General Public License 7 * version 2. This program is licensed "as is" without any warranty of any 8 * kind, whether express or implied. 9 */ 10 11/* 12 * SSI-AK4643 13 * 14 * SW1: 1: AK4643 15 * 2: CN22 16 * 3: ADV7511 17 * 18 * This command is required when Playback/Capture 19 * 20 * amixer set "LINEOUT Mixer DACL" on 21 * amixer set "DVC Out" 100% 22 * amixer set "DVC In" 100% 23 * 24 * You can use Mute 25 * 26 * amixer set "DVC Out Mute" on 27 * amixer set "DVC In Mute" on 28 * 29 * You can use Volume Ramp 30 * 31 * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 32 * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 33 * amixer set "DVC Out Ramp" on 34 * aplay xxx.wav & 35 * amixer set "DVC Out" 80% // Volume Down 36 * amixer set "DVC Out" 100% // Volume Up 37 */ 38 39/dts-v1/; 40#include "r8a7793.dtsi" 41#include <dt-bindings/gpio/gpio.h> 42#include <dt-bindings/input/input.h> 43 44/ { 45 model = "Gose"; 46 compatible = "renesas,gose", "renesas,r8a7793"; 47 48 aliases { 49 serial0 = &scif0; 50 serial1 = &scif1; 51 }; 52 53 chosen { 54 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 55 stdout-path = "serial0:115200n8"; 56 }; 57 58 memory@40000000 { 59 device_type = "memory"; 60 reg = <0 0x40000000 0 0x40000000>; 61 }; 62 63 gpio-keys { 64 compatible = "gpio-keys"; 65 66 key-1 { 67 gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; 68 linux,code = <KEY_1>; 69 label = "SW2-1"; 70 wakeup-source; 71 debounce-interval = <20>; 72 }; 73 key-2 { 74 gpios = <&gpio5 1 GPIO_ACTIVE_LOW>; 75 linux,code = <KEY_2>; 76 label = "SW2-2"; 77 wakeup-source; 78 debounce-interval = <20>; 79 }; 80 key-3 { 81 gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; 82 linux,code = <KEY_3>; 83 label = "SW2-3"; 84 wakeup-source; 85 debounce-interval = <20>; 86 }; 87 key-4 { 88 gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; 89 linux,code = <KEY_4>; 90 label = "SW2-4"; 91 wakeup-source; 92 debounce-interval = <20>; 93 }; 94 key-a { 95 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 96 linux,code = <KEY_A>; 97 label = "SW30"; 98 wakeup-source; 99 debounce-interval = <20>; 100 }; 101 key-b { 102 gpios = <&gpio7 1 GPIO_ACTIVE_LOW>; 103 linux,code = <KEY_B>; 104 label = "SW31"; 105 wakeup-source; 106 debounce-interval = <20>; 107 }; 108 key-c { 109 gpios = <&gpio7 2 GPIO_ACTIVE_LOW>; 110 linux,code = <KEY_C>; 111 label = "SW32"; 112 wakeup-source; 113 debounce-interval = <20>; 114 }; 115 key-d { 116 gpios = <&gpio7 3 GPIO_ACTIVE_LOW>; 117 linux,code = <KEY_D>; 118 label = "SW33"; 119 wakeup-source; 120 debounce-interval = <20>; 121 }; 122 key-e { 123 gpios = <&gpio7 4 GPIO_ACTIVE_LOW>; 124 linux,code = <KEY_E>; 125 label = "SW34"; 126 wakeup-source; 127 debounce-interval = <20>; 128 }; 129 key-f { 130 gpios = <&gpio7 5 GPIO_ACTIVE_LOW>; 131 linux,code = <KEY_F>; 132 label = "SW35"; 133 wakeup-source; 134 debounce-interval = <20>; 135 }; 136 key-g { 137 gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; 138 linux,code = <KEY_G>; 139 label = "SW36"; 140 wakeup-source; 141 debounce-interval = <20>; 142 }; 143 }; 144 145 leds { 146 compatible = "gpio-leds"; 147 led6 { 148 gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>; 149 label = "LED6"; 150 }; 151 led7 { 152 gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>; 153 label = "LED7"; 154 }; 155 led8 { 156 gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; 157 label = "LED8"; 158 }; 159 }; 160 161 vcc_sdhi0: regulator-vcc-sdhi0 { 162 compatible = "regulator-fixed"; 163 164 regulator-name = "SDHI0 Vcc"; 165 regulator-min-microvolt = <3300000>; 166 regulator-max-microvolt = <3300000>; 167 168 gpio = <&gpio7 17 GPIO_ACTIVE_HIGH>; 169 enable-active-high; 170 }; 171 172 vccq_sdhi0: regulator-vccq-sdhi0 { 173 compatible = "regulator-gpio"; 174 175 regulator-name = "SDHI0 VccQ"; 176 regulator-min-microvolt = <1800000>; 177 regulator-max-microvolt = <3300000>; 178 179 gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>; 180 gpios-states = <1>; 181 states = <3300000 1 182 1800000 0>; 183 }; 184 185 vcc_sdhi1: regulator-vcc-sdhi1 { 186 compatible = "regulator-fixed"; 187 188 regulator-name = "SDHI1 Vcc"; 189 regulator-min-microvolt = <3300000>; 190 regulator-max-microvolt = <3300000>; 191 192 gpio = <&gpio7 18 GPIO_ACTIVE_HIGH>; 193 enable-active-high; 194 }; 195 196 vccq_sdhi1: regulator-vccq-sdhi1 { 197 compatible = "regulator-gpio"; 198 199 regulator-name = "SDHI1 VccQ"; 200 regulator-min-microvolt = <1800000>; 201 regulator-max-microvolt = <3300000>; 202 203 gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>; 204 gpios-states = <1>; 205 states = <3300000 1 206 1800000 0>; 207 }; 208 209 vcc_sdhi2: regulator-vcc-sdhi2 { 210 compatible = "regulator-fixed"; 211 212 regulator-name = "SDHI2 Vcc"; 213 regulator-min-microvolt = <3300000>; 214 regulator-max-microvolt = <3300000>; 215 216 gpio = <&gpio7 19 GPIO_ACTIVE_HIGH>; 217 enable-active-high; 218 }; 219 220 vccq_sdhi2: regulator-vccq-sdhi2 { 221 compatible = "regulator-gpio"; 222 223 regulator-name = "SDHI2 VccQ"; 224 regulator-min-microvolt = <1800000>; 225 regulator-max-microvolt = <3300000>; 226 227 gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>; 228 gpios-states = <1>; 229 states = <3300000 1 230 1800000 0>; 231 }; 232 233 audio_clock: audio_clock { 234 compatible = "fixed-clock"; 235 #clock-cells = <0>; 236 clock-frequency = <11289600>; 237 }; 238 239 rsnd_ak4643: sound { 240 compatible = "simple-audio-card"; 241 242 simple-audio-card,format = "left_j"; 243 simple-audio-card,bitclock-master = <&sndcodec>; 244 simple-audio-card,frame-master = <&sndcodec>; 245 246 sndcpu: simple-audio-card,cpu { 247 sound-dai = <&rcar_sound>; 248 }; 249 250 sndcodec: simple-audio-card,codec { 251 sound-dai = <&ak4643>; 252 clocks = <&audio_clock>; 253 }; 254 }; 255 256 hdmi-out { 257 compatible = "hdmi-connector"; 258 type = "a"; 259 260 port { 261 hdmi_con: endpoint { 262 remote-endpoint = <&adv7511_out>; 263 }; 264 }; 265 }; 266 267 x2_clk: x2-clock { 268 compatible = "fixed-clock"; 269 #clock-cells = <0>; 270 clock-frequency = <74250000>; 271 }; 272 273 x13_clk: x13-clock { 274 compatible = "fixed-clock"; 275 #clock-cells = <0>; 276 clock-frequency = <148500000>; 277 }; 278}; 279 280&du { 281 pinctrl-0 = <&du_pins>; 282 pinctrl-names = "default"; 283 status = "okay"; 284 285 clocks = <&mstp7_clks R8A7793_CLK_DU0>, 286 <&mstp7_clks R8A7793_CLK_DU1>, 287 <&mstp7_clks R8A7793_CLK_LVDS0>, 288 <&x13_clk>, <&x2_clk>; 289 clock-names = "du.0", "du.1", "lvds.0", 290 "dclkin.0", "dclkin.1"; 291 292 ports { 293 port@0 { 294 endpoint { 295 remote-endpoint = <&adv7511_in>; 296 }; 297 }; 298 port@1 { 299 lvds_connector: endpoint { 300 }; 301 }; 302 }; 303}; 304 305&extal_clk { 306 clock-frequency = <20000000>; 307}; 308 309&pfc { 310 pinctrl-0 = <&scif_clk_pins>; 311 pinctrl-names = "default"; 312 313 i2c2_pins: i2c2 { 314 groups = "i2c2"; 315 function = "i2c2"; 316 }; 317 318 du_pins: du { 319 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0"; 320 function = "du"; 321 }; 322 323 scif0_pins: scif0 { 324 groups = "scif0_data_d"; 325 function = "scif0"; 326 }; 327 328 scif1_pins: scif1 { 329 groups = "scif1_data_d"; 330 function = "scif1"; 331 }; 332 333 scif_clk_pins: scif_clk { 334 groups = "scif_clk"; 335 function = "scif_clk"; 336 }; 337 338 ether_pins: ether { 339 groups = "eth_link", "eth_mdio", "eth_rmii"; 340 function = "eth"; 341 }; 342 343 phy1_pins: phy1 { 344 groups = "intc_irq0"; 345 function = "intc"; 346 }; 347 348 sdhi0_pins: sd0 { 349 renesas,groups = "sdhi0_data4", "sdhi0_ctrl"; 350 renesas,function = "sdhi0"; 351 }; 352 353 sdhi1_pins: sd1 { 354 renesas,groups = "sdhi1_data4", "sdhi1_ctrl"; 355 renesas,function = "sdhi1"; 356 }; 357 358 sdhi2_pins: sd2 { 359 renesas,groups = "sdhi2_data4", "sdhi2_ctrl"; 360 renesas,function = "sdhi2"; 361 }; 362 363 qspi_pins: qspi { 364 groups = "qspi_ctrl", "qspi_data4"; 365 function = "qspi"; 366 }; 367 368 sound_pins: sound { 369 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data"; 370 function = "ssi"; 371 }; 372 373 sound_clk_pins: sound_clk { 374 groups = "audio_clk_a"; 375 function = "audio_clk"; 376 }; 377}; 378 379ðer { 380 pinctrl-0 = <ðer_pins &phy1_pins>; 381 pinctrl-names = "default"; 382 383 phy-handle = <&phy1>; 384 renesas,ether-link-active-low; 385 status = "okay"; 386 387 phy1: ethernet-phy@1 { 388 reg = <1>; 389 interrupt-parent = <&irqc0>; 390 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 391 micrel,led-mode = <1>; 392 }; 393}; 394 395&cmt0 { 396 status = "okay"; 397}; 398 399&scif0 { 400 pinctrl-0 = <&scif0_pins>; 401 pinctrl-names = "default"; 402 403 status = "okay"; 404}; 405 406&scif1 { 407 pinctrl-0 = <&scif1_pins>; 408 pinctrl-names = "default"; 409 410 status = "okay"; 411}; 412 413&scif_clk { 414 clock-frequency = <14745600>; 415 status = "okay"; 416}; 417 418&sdhi0 { 419 pinctrl-0 = <&sdhi0_pins>; 420 pinctrl-names = "default"; 421 422 vmmc-supply = <&vcc_sdhi0>; 423 vqmmc-supply = <&vccq_sdhi0>; 424 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>; 425 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 426 status = "okay"; 427}; 428 429&sdhi1 { 430 pinctrl-0 = <&sdhi1_pins>; 431 pinctrl-names = "default"; 432 433 vmmc-supply = <&vcc_sdhi1>; 434 vqmmc-supply = <&vccq_sdhi1>; 435 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 436 wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>; 437 status = "okay"; 438}; 439 440&sdhi2 { 441 pinctrl-0 = <&sdhi2_pins>; 442 pinctrl-names = "default"; 443 444 vmmc-supply = <&vcc_sdhi2>; 445 vqmmc-supply = <&vccq_sdhi2>; 446 cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>; 447 status = "okay"; 448}; 449 450&qspi { 451 pinctrl-0 = <&qspi_pins>; 452 pinctrl-names = "default"; 453 454 status = "okay"; 455 456 flash@0 { 457 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 458 reg = <0>; 459 spi-max-frequency = <30000000>; 460 spi-tx-bus-width = <4>; 461 spi-rx-bus-width = <4>; 462 spi-cpol; 463 spi-cpha; 464 m25p,fast-read; 465 466 partitions { 467 compatible = "fixed-partitions"; 468 #address-cells = <1>; 469 #size-cells = <1>; 470 471 partition@0 { 472 label = "loader"; 473 reg = <0x00000000 0x00040000>; 474 read-only; 475 }; 476 partition@40000 { 477 label = "user"; 478 reg = <0x00040000 0x00400000>; 479 read-only; 480 }; 481 partition@440000 { 482 label = "flash"; 483 reg = <0x00440000 0x03bc0000>; 484 }; 485 }; 486 }; 487}; 488 489&i2c2 { 490 pinctrl-0 = <&i2c2_pins>; 491 pinctrl-names = "default"; 492 493 status = "okay"; 494 clock-frequency = <100000>; 495 496 ak4643: codec@12 { 497 compatible = "asahi-kasei,ak4643"; 498 #sound-dai-cells = <0>; 499 reg = <0x12>; 500 }; 501 502 hdmi@39 { 503 compatible = "adi,adv7511w"; 504 reg = <0x39>; 505 interrupt-parent = <&gpio3>; 506 interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 507 508 adi,input-depth = <8>; 509 adi,input-colorspace = "rgb"; 510 adi,input-clock = "1x"; 511 adi,input-style = <1>; 512 adi,input-justification = "evenly"; 513 514 ports { 515 #address-cells = <1>; 516 #size-cells = <0>; 517 518 port@0 { 519 reg = <0>; 520 adv7511_in: endpoint { 521 remote-endpoint = <&du_out_rgb>; 522 }; 523 }; 524 525 port@1 { 526 reg = <1>; 527 adv7511_out: endpoint { 528 remote-endpoint = <&hdmi_con>; 529 }; 530 }; 531 }; 532 }; 533 534 eeprom@50 { 535 compatible = "renesas,r1ex24002", "atmel,24c02"; 536 reg = <0x50>; 537 pagesize = <16>; 538 }; 539}; 540 541&rcar_sound { 542 pinctrl-0 = <&sound_pins &sound_clk_pins>; 543 pinctrl-names = "default"; 544 545 /* Single DAI */ 546 #sound-dai-cells = <0>; 547 548 status = "okay"; 549 550 rcar_sound,dai { 551 dai0 { 552 playback = <&ssi0 &src2 &dvc0>; 553 capture = <&ssi1 &src3 &dvc1>; 554 }; 555 }; 556}; 557 558&ssi1 { 559 shared-pin; 560}; 561