1/* 2 * Device Tree Source for the Salvator-X board 3 * 4 * Copyright (C) 2015 Renesas Electronics Corp. 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-AK4613 13 * 14 * This command is required when Playback/Capture 15 * 16 * amixer set "DVC Out" 100% 17 * amixer set "DVC In" 100% 18 * 19 * You can use Mute 20 * 21 * amixer set "DVC Out Mute" on 22 * amixer set "DVC In Mute" on 23 * 24 * You can use Volume Ramp 25 * 26 * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 27 * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 28 * amixer set "DVC Out Ramp" on 29 * aplay xxx.wav & 30 * amixer set "DVC Out" 80% // Volume Down 31 * amixer set "DVC Out" 100% // Volume Up 32 */ 33 34/dts-v1/; 35#include "r8a7795.dtsi" 36#include <dt-bindings/gpio/gpio.h> 37 38/ { 39 model = "Renesas Salvator-X board based on r8a7795"; 40 compatible = "renesas,salvator-x", "renesas,r8a7795"; 41 42 aliases { 43 serial0 = &scif2; 44 serial1 = &scif1; 45 ethernet0 = &avb; 46 }; 47 48 chosen { 49 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 50 stdout-path = "serial0:115200n8"; 51 }; 52 53 memory@48000000 { 54 device_type = "memory"; 55 /* first 128MB is reserved for secure area. */ 56 reg = <0x0 0x48000000 0x0 0x38000000>; 57 }; 58 59 x12_clk: x12 { 60 compatible = "fixed-clock"; 61 #clock-cells = <0>; 62 clock-frequency = <24576000>; 63 }; 64 65 reg_1p8v: regulator0 { 66 compatible = "regulator-fixed"; 67 regulator-name = "fixed-1.8V"; 68 regulator-min-microvolt = <1800000>; 69 regulator-max-microvolt = <1800000>; 70 regulator-boot-on; 71 regulator-always-on; 72 }; 73 74 reg_3p3v: regulator1 { 75 compatible = "regulator-fixed"; 76 regulator-name = "fixed-3.3V"; 77 regulator-min-microvolt = <3300000>; 78 regulator-max-microvolt = <3300000>; 79 regulator-boot-on; 80 regulator-always-on; 81 }; 82 83 vcc_sdhi0: regulator-vcc-sdhi0 { 84 compatible = "regulator-fixed"; 85 86 regulator-name = "SDHI0 Vcc"; 87 regulator-min-microvolt = <3300000>; 88 regulator-max-microvolt = <3300000>; 89 90 gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; 91 enable-active-high; 92 }; 93 94 vccq_sdhi0: regulator-vccq-sdhi0 { 95 compatible = "regulator-gpio"; 96 97 regulator-name = "SDHI0 VccQ"; 98 regulator-min-microvolt = <1800000>; 99 regulator-max-microvolt = <3300000>; 100 101 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; 102 gpios-states = <1>; 103 states = <3300000 1 104 1800000 0>; 105 }; 106 107 vcc_sdhi3: regulator-vcc-sdhi3 { 108 compatible = "regulator-fixed"; 109 110 regulator-name = "SDHI3 Vcc"; 111 regulator-min-microvolt = <3300000>; 112 regulator-max-microvolt = <3300000>; 113 114 gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; 115 enable-active-high; 116 }; 117 118 vccq_sdhi3: regulator-vccq-sdhi3 { 119 compatible = "regulator-gpio"; 120 121 regulator-name = "SDHI3 VccQ"; 122 regulator-min-microvolt = <1800000>; 123 regulator-max-microvolt = <3300000>; 124 125 gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; 126 gpios-states = <1>; 127 states = <3300000 1 128 1800000 0>; 129 }; 130 131 vbus0_usb2: regulator-vbus0-usb2 { 132 compatible = "regulator-fixed"; 133 134 regulator-name = "USB20_VBUS0"; 135 regulator-min-microvolt = <5000000>; 136 regulator-max-microvolt = <5000000>; 137 138 gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>; 139 enable-active-high; 140 }; 141 142 audio_clkout: audio_clkout { 143 /* 144 * This is same as <&rcar_sound 0> 145 * but needed to avoid cs2000/rcar_sound probe dead-lock 146 */ 147 compatible = "fixed-clock"; 148 #clock-cells = <0>; 149 clock-frequency = <11289600>; 150 }; 151 152 rsnd_ak4613: sound { 153 compatible = "simple-audio-card"; 154 155 simple-audio-card,format = "left_j"; 156 simple-audio-card,bitclock-master = <&sndcpu>; 157 simple-audio-card,frame-master = <&sndcpu>; 158 159 sndcpu: simple-audio-card,cpu { 160 sound-dai = <&rcar_sound>; 161 }; 162 163 sndcodec: simple-audio-card,codec { 164 sound-dai = <&ak4613>; 165 }; 166 }; 167 168 vga-encoder { 169 compatible = "adi,adv7123"; 170 171 ports { 172 #address-cells = <1>; 173 #size-cells = <0>; 174 175 port@0 { 176 reg = <0>; 177 adv7123_in: endpoint { 178 remote-endpoint = <&du_out_rgb>; 179 }; 180 }; 181 port@1 { 182 reg = <1>; 183 adv7123_out: endpoint { 184 remote-endpoint = <&vga_in>; 185 }; 186 }; 187 }; 188 }; 189 190 vga { 191 compatible = "vga-connector"; 192 193 port { 194 vga_in: endpoint { 195 remote-endpoint = <&adv7123_out>; 196 }; 197 }; 198 }; 199}; 200 201&du { 202 pinctrl-0 = <&du_pins>; 203 pinctrl-names = "default"; 204 status = "okay"; 205 206 ports { 207 port@0 { 208 endpoint { 209 remote-endpoint = <&adv7123_in>; 210 }; 211 }; 212 port@3 { 213 lvds_connector: endpoint { 214 }; 215 }; 216 }; 217}; 218 219&extal_clk { 220 clock-frequency = <16666666>; 221}; 222 223&extalr_clk { 224 clock-frequency = <32768>; 225}; 226 227&pfc { 228 pinctrl-0 = <&scif_clk_pins>; 229 pinctrl-names = "default"; 230 231 scif1_pins: scif1 { 232 groups = "scif1_data_a", "scif1_ctrl"; 233 function = "scif1"; 234 }; 235 scif2_pins: scif2 { 236 groups = "scif2_data_a"; 237 function = "scif2"; 238 }; 239 scif_clk_pins: scif_clk { 240 groups = "scif_clk_a"; 241 function = "scif_clk"; 242 }; 243 244 i2c2_pins: i2c2 { 245 groups = "i2c2_a"; 246 function = "i2c2"; 247 }; 248 249 avb_pins: avb { 250 mux { 251 groups = "avb_link", "avb_phy_int", "avb_mdc", 252 "avb_mii"; 253 function = "avb"; 254 }; 255 256 pins_mdc { 257 groups = "avb_mdc"; 258 drive-strength = <24>; 259 }; 260 261 pins_mii_tx { 262 pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", 263 "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; 264 drive-strength = <12>; 265 }; 266 }; 267 268 du_pins: du { 269 groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0"; 270 function = "du"; 271 }; 272 273 sdhi0_pins: sd0 { 274 groups = "sdhi0_data4", "sdhi0_ctrl"; 275 function = "sdhi0"; 276 power-source = <3300>; 277 }; 278 279 sdhi0_pins_uhs: sd0_uhs { 280 groups = "sdhi0_data4", "sdhi0_ctrl"; 281 function = "sdhi0"; 282 power-source = <1800>; 283 }; 284 285 sdhi2_pins: sd2 { 286 groups = "sdhi2_data8", "sdhi2_ctrl"; 287 function = "sdhi2"; 288 power-source = <3300>; 289 }; 290 291 sdhi2_pins_uhs: sd2_uhs { 292 groups = "sdhi2_data8", "sdhi2_ctrl"; 293 function = "sdhi2"; 294 power-source = <1800>; 295 }; 296 297 sdhi3_pins: sd3 { 298 groups = "sdhi3_data4", "sdhi3_ctrl"; 299 function = "sdhi3"; 300 power-source = <3300>; 301 }; 302 303 sdhi3_pins_uhs: sd3_uhs { 304 groups = "sdhi3_data4", "sdhi3_ctrl"; 305 function = "sdhi3"; 306 power-source = <1800>; 307 }; 308 309 sound_pins: sound { 310 groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; 311 function = "ssi"; 312 }; 313 314 sound_clk_pins: sound_clk { 315 groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", 316 "audio_clkout_a", "audio_clkout3_a"; 317 function = "audio_clk"; 318 }; 319 320 usb0_pins: usb0 { 321 groups = "usb0"; 322 function = "usb0"; 323 }; 324 325 usb1_pins: usb1 { 326 mux { 327 groups = "usb1"; 328 function = "usb1"; 329 }; 330 331 ovc { 332 pins = "GP_6_27"; 333 bias-pull-up; 334 }; 335 336 pwen { 337 pins = "GP_6_26"; 338 bias-pull-down; 339 }; 340 }; 341 342 usb2_pins: usb2 { 343 groups = "usb2"; 344 function = "usb2"; 345 }; 346}; 347 348&scif1 { 349 pinctrl-0 = <&scif1_pins>; 350 pinctrl-names = "default"; 351 352 uart-has-rtscts; 353 status = "okay"; 354}; 355 356&scif2 { 357 pinctrl-0 = <&scif2_pins>; 358 pinctrl-names = "default"; 359 360 status = "okay"; 361}; 362 363&scif_clk { 364 clock-frequency = <14745600>; 365}; 366 367&i2c2 { 368 pinctrl-0 = <&i2c2_pins>; 369 pinctrl-names = "default"; 370 371 status = "okay"; 372 373 clock-frequency = <100000>; 374 375 ak4613: codec@10 { 376 compatible = "asahi-kasei,ak4613"; 377 #sound-dai-cells = <0>; 378 reg = <0x10>; 379 clocks = <&rcar_sound 3>; 380 381 asahi-kasei,in1-single-end; 382 asahi-kasei,in2-single-end; 383 asahi-kasei,out1-single-end; 384 asahi-kasei,out2-single-end; 385 asahi-kasei,out3-single-end; 386 asahi-kasei,out4-single-end; 387 asahi-kasei,out5-single-end; 388 asahi-kasei,out6-single-end; 389 }; 390 391 cs2000: clk_multiplier@4f { 392 #clock-cells = <0>; 393 compatible = "cirrus,cs2000-cp"; 394 reg = <0x4f>; 395 clocks = <&audio_clkout>, <&x12_clk>; 396 clock-names = "clk_in", "ref_clk"; 397 398 assigned-clocks = <&cs2000>; 399 assigned-clock-rates = <24576000>; /* 1/1 divide */ 400 }; 401}; 402 403&rcar_sound { 404 pinctrl-0 = <&sound_pins &sound_clk_pins>; 405 pinctrl-names = "default"; 406 407 /* Single DAI */ 408 #sound-dai-cells = <0>; 409 410 /* audio_clkout0/1/2/3 */ 411 #clock-cells = <1>; 412 clock-frequency = <11289600>; 413 414 status = "okay"; 415 416 /* update <audio_clk_b> to <cs2000> */ 417 clocks = <&cpg CPG_MOD 1005>, 418 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, 419 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, 420 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, 421 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, 422 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, 423 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, 424 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, 425 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, 426 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, 427 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, 428 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 429 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 430 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 431 <&audio_clk_a>, <&cs2000>, 432 <&audio_clk_c>, 433 <&cpg CPG_CORE R8A7795_CLK_S0D4>; 434 435 rcar_sound,dai { 436 dai0 { 437 playback = <&ssi0 &src0 &dvc0>; 438 capture = <&ssi1 &src1 &dvc1>; 439 }; 440 }; 441}; 442 443&sata { 444 status = "okay"; 445}; 446 447&sdhi0 { 448 pinctrl-0 = <&sdhi0_pins>; 449 pinctrl-1 = <&sdhi0_pins_uhs>; 450 pinctrl-names = "default", "state_uhs"; 451 452 vmmc-supply = <&vcc_sdhi0>; 453 vqmmc-supply = <&vccq_sdhi0>; 454 cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 455 wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 456 bus-width = <4>; 457 sd-uhs-sdr50; 458 status = "okay"; 459}; 460 461&sdhi2 { 462 /* used for on-board 8bit eMMC */ 463 pinctrl-0 = <&sdhi2_pins>; 464 pinctrl-1 = <&sdhi2_pins_uhs>; 465 pinctrl-names = "default", "state_uhs"; 466 467 vmmc-supply = <®_3p3v>; 468 vqmmc-supply = <®_1p8v>; 469 bus-width = <8>; 470 non-removable; 471 status = "okay"; 472}; 473 474&sdhi3 { 475 pinctrl-0 = <&sdhi3_pins>; 476 pinctrl-1 = <&sdhi3_pins_uhs>; 477 pinctrl-names = "default", "state_uhs"; 478 479 vmmc-supply = <&vcc_sdhi3>; 480 vqmmc-supply = <&vccq_sdhi3>; 481 cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; 482 wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; 483 bus-width = <4>; 484 sd-uhs-sdr50; 485 status = "okay"; 486}; 487 488&ssi1 { 489 shared-pin; 490}; 491 492&wdt0 { 493 timeout-sec = <60>; 494 status = "okay"; 495}; 496 497&audio_clk_a { 498 clock-frequency = <22579200>; 499}; 500 501&i2c_dvfs { 502 status = "okay"; 503}; 504 505&avb { 506 pinctrl-0 = <&avb_pins>; 507 pinctrl-names = "default"; 508 renesas,no-ether-link; 509 phy-handle = <&phy0>; 510 status = "okay"; 511 512 phy0: ethernet-phy@0 { 513 rxc-skew-ps = <1500>; 514 reg = <0>; 515 interrupt-parent = <&gpio2>; 516 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 517 }; 518}; 519 520&xhci0 { 521 status = "okay"; 522}; 523 524&usb2_phy0 { 525 pinctrl-0 = <&usb0_pins>; 526 pinctrl-names = "default"; 527 528 vbus-supply = <&vbus0_usb2>; 529 status = "okay"; 530}; 531 532&usb2_phy1 { 533 pinctrl-0 = <&usb1_pins>; 534 pinctrl-names = "default"; 535 536 status = "okay"; 537}; 538 539&usb2_phy2 { 540 pinctrl-0 = <&usb2_pins>; 541 pinctrl-names = "default"; 542 543 status = "okay"; 544}; 545 546&ehci0 { 547 status = "okay"; 548}; 549 550&ehci1 { 551 status = "okay"; 552}; 553 554&ehci2 { 555 status = "okay"; 556}; 557 558&ohci0 { 559 status = "okay"; 560}; 561 562&ohci1 { 563 status = "okay"; 564}; 565 566&ohci2 { 567 status = "okay"; 568}; 569 570&hsusb { 571 status = "okay"; 572}; 573 574&pcie_bus_clk { 575 clock-frequency = <100000000>; 576}; 577 578&pciec0 { 579 status = "okay"; 580}; 581 582&pciec1 { 583 status = "okay"; 584}; 585