1/* 2 * Device Tree Source for the Porter board 3 * 4 * Copyright (C) 2015 Cogent Embedded, Inc. 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-AK4642 13 * 14 * JP3: 2-1: AK4642 15 * 2-3: ADV7511 16 * 17 * This command is required before playback/capture: 18 * 19 * amixer set "LINEOUT Mixer DACL" on 20 */ 21 22/dts-v1/; 23#include "r8a7791.dtsi" 24#include <dt-bindings/gpio/gpio.h> 25 26/ { 27 model = "Porter"; 28 compatible = "renesas,porter", "renesas,r8a7791"; 29 30 aliases { 31 serial0 = &scif0; 32 }; 33 34 chosen { 35 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 36 stdout-path = "serial0:115200n8"; 37 }; 38 39 memory@40000000 { 40 device_type = "memory"; 41 reg = <0 0x40000000 0 0x40000000>; 42 }; 43 44 memory@200000000 { 45 device_type = "memory"; 46 reg = <2 0x00000000 0 0x40000000>; 47 }; 48 49 vcc_sdhi0: regulator-vcc-sdhi0 { 50 compatible = "regulator-fixed"; 51 52 regulator-name = "SDHI0 Vcc"; 53 regulator-min-microvolt = <3300000>; 54 regulator-max-microvolt = <3300000>; 55 regulator-always-on; 56 }; 57 58 vccq_sdhi0: regulator-vccq-sdhi0 { 59 compatible = "regulator-gpio"; 60 61 regulator-name = "SDHI0 VccQ"; 62 regulator-min-microvolt = <1800000>; 63 regulator-max-microvolt = <3300000>; 64 65 gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>; 66 gpios-states = <1>; 67 states = <3300000 1 68 1800000 0>; 69 }; 70 71 vcc_sdhi2: regulator-vcc-sdhi2 { 72 compatible = "regulator-fixed"; 73 74 regulator-name = "SDHI2 Vcc"; 75 regulator-min-microvolt = <3300000>; 76 regulator-max-microvolt = <3300000>; 77 regulator-always-on; 78 }; 79 80 vccq_sdhi2: regulator-vccq-sdhi2 { 81 compatible = "regulator-gpio"; 82 83 regulator-name = "SDHI2 VccQ"; 84 regulator-min-microvolt = <1800000>; 85 regulator-max-microvolt = <3300000>; 86 87 gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>; 88 gpios-states = <1>; 89 states = <3300000 1 90 1800000 0>; 91 }; 92 93 hdmi-out { 94 compatible = "hdmi-connector"; 95 type = "a"; 96 97 port { 98 hdmi_con: endpoint { 99 remote-endpoint = <&adv7511_out>; 100 }; 101 }; 102 }; 103 104 x3_clk: x3-clock { 105 compatible = "fixed-clock"; 106 #clock-cells = <0>; 107 clock-frequency = <148500000>; 108 }; 109 110 x16_clk: x16-clock { 111 compatible = "fixed-clock"; 112 #clock-cells = <0>; 113 clock-frequency = <74250000>; 114 }; 115 116 x14_clk: audio_clock { 117 compatible = "fixed-clock"; 118 #clock-cells = <0>; 119 clock-frequency = <11289600>; 120 }; 121 122 sound { 123 compatible = "simple-audio-card"; 124 125 simple-audio-card,format = "left_j"; 126 simple-audio-card,bitclock-master = <&soundcodec>; 127 simple-audio-card,frame-master = <&soundcodec>; 128 129 simple-audio-card,cpu { 130 sound-dai = <&rcar_sound>; 131 }; 132 133 soundcodec: simple-audio-card,codec { 134 sound-dai = <&ak4642>; 135 clocks = <&x14_clk>; 136 }; 137 }; 138}; 139 140&extal_clk { 141 clock-frequency = <20000000>; 142}; 143 144&pfc { 145 scif0_pins: scif0 { 146 groups = "scif0_data_d"; 147 function = "scif0"; 148 }; 149 150 ether_pins: ether { 151 groups = "eth_link", "eth_mdio", "eth_rmii"; 152 function = "eth"; 153 }; 154 155 phy1_pins: phy1 { 156 groups = "intc_irq0"; 157 function = "intc"; 158 }; 159 160 sdhi0_pins: sd0 { 161 groups = "sdhi0_data4", "sdhi0_ctrl"; 162 function = "sdhi0"; 163 }; 164 165 sdhi2_pins: sd2 { 166 groups = "sdhi2_data4", "sdhi2_ctrl"; 167 function = "sdhi2"; 168 }; 169 170 qspi_pins: qspi { 171 groups = "qspi_ctrl", "qspi_data4"; 172 function = "qspi"; 173 }; 174 175 i2c2_pins: i2c2 { 176 groups = "i2c2"; 177 function = "i2c2"; 178 }; 179 180 usb0_pins: usb0 { 181 groups = "usb0"; 182 function = "usb0"; 183 }; 184 185 usb1_pins: usb1 { 186 groups = "usb1"; 187 function = "usb1"; 188 }; 189 190 vin0_pins: vin0 { 191 groups = "vin0_data8", "vin0_clk"; 192 function = "vin0"; 193 }; 194 195 can0_pins: can0 { 196 groups = "can0_data"; 197 function = "can0"; 198 }; 199 200 du_pins: du { 201 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0"; 202 function = "du"; 203 }; 204 205 ssi_pins: sound { 206 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data"; 207 function = "ssi"; 208 }; 209 210 audio_clk_pins: audio_clk { 211 groups = "audio_clk_a"; 212 function = "audio_clk"; 213 }; 214}; 215 216&scif0 { 217 pinctrl-0 = <&scif0_pins>; 218 pinctrl-names = "default"; 219 220 status = "okay"; 221}; 222 223ðer { 224 pinctrl-0 = <ðer_pins &phy1_pins>; 225 pinctrl-names = "default"; 226 227 phy-handle = <&phy1>; 228 renesas,ether-link-active-low; 229 status = "ok"; 230 231 phy1: ethernet-phy@1 { 232 reg = <1>; 233 interrupt-parent = <&irqc0>; 234 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 235 micrel,led-mode = <1>; 236 }; 237}; 238 239&sdhi0 { 240 pinctrl-0 = <&sdhi0_pins>; 241 pinctrl-names = "default"; 242 243 vmmc-supply = <&vcc_sdhi0>; 244 vqmmc-supply = <&vccq_sdhi0>; 245 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>; 246 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 247 status = "okay"; 248}; 249 250&sdhi2 { 251 pinctrl-0 = <&sdhi2_pins>; 252 pinctrl-names = "default"; 253 254 vmmc-supply = <&vcc_sdhi2>; 255 vqmmc-supply = <&vccq_sdhi2>; 256 cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>; 257 status = "okay"; 258}; 259 260&qspi { 261 pinctrl-0 = <&qspi_pins>; 262 pinctrl-names = "default"; 263 264 status = "okay"; 265 266 flash@0 { 267 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 268 reg = <0>; 269 spi-max-frequency = <30000000>; 270 spi-tx-bus-width = <4>; 271 spi-rx-bus-width = <4>; 272 m25p,fast-read; 273 274 partitions { 275 compatible = "fixed-partitions"; 276 #address-cells = <1>; 277 #size-cells = <1>; 278 279 partition@0 { 280 label = "loader_prg"; 281 reg = <0x00000000 0x00040000>; 282 read-only; 283 }; 284 partition@40000 { 285 label = "user_prg"; 286 reg = <0x00040000 0x00400000>; 287 read-only; 288 }; 289 partition@440000 { 290 label = "flash_fs"; 291 reg = <0x00440000 0x03bc0000>; 292 }; 293 }; 294 }; 295}; 296 297&i2c2 { 298 pinctrl-0 = <&i2c2_pins>; 299 pinctrl-names = "default"; 300 301 status = "okay"; 302 clock-frequency = <400000>; 303 304 ak4642: codec@12 { 305 compatible = "asahi-kasei,ak4642"; 306 #sound-dai-cells = <0>; 307 reg = <0x12>; 308 }; 309 310 composite-in@20 { 311 compatible = "adi,adv7180"; 312 reg = <0x20>; 313 remote = <&vin0>; 314 315 port { 316 adv7180: endpoint { 317 bus-width = <8>; 318 remote-endpoint = <&vin0ep>; 319 }; 320 }; 321 }; 322 323 hdmi@39 { 324 compatible = "adi,adv7511w"; 325 reg = <0x39>; 326 interrupt-parent = <&gpio3>; 327 interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 328 329 adi,input-depth = <8>; 330 adi,input-colorspace = "rgb"; 331 adi,input-clock = "1x"; 332 adi,input-style = <1>; 333 adi,input-justification = "evenly"; 334 335 ports { 336 #address-cells = <1>; 337 #size-cells = <0>; 338 339 port@0 { 340 reg = <0>; 341 adv7511_in: endpoint { 342 remote-endpoint = <&du_out_rgb>; 343 }; 344 }; 345 346 port@1 { 347 reg = <1>; 348 adv7511_out: endpoint { 349 remote-endpoint = <&hdmi_con>; 350 }; 351 }; 352 }; 353 }; 354}; 355 356&sata0 { 357 status = "okay"; 358}; 359 360/* composite video input */ 361&vin0 { 362 status = "ok"; 363 pinctrl-0 = <&vin0_pins>; 364 pinctrl-names = "default"; 365 366 port { 367 #address-cells = <1>; 368 #size-cells = <0>; 369 370 vin0ep: endpoint { 371 remote-endpoint = <&adv7180>; 372 bus-width = <8>; 373 }; 374 }; 375}; 376 377&pci0 { 378 pinctrl-0 = <&usb0_pins>; 379 pinctrl-names = "default"; 380 381 status = "okay"; 382}; 383 384&pci1 { 385 pinctrl-0 = <&usb1_pins>; 386 pinctrl-names = "default"; 387 388 status = "okay"; 389}; 390 391&hsusb { 392 pinctrl-0 = <&usb0_pins>; 393 pinctrl-names = "default"; 394 395 status = "okay"; 396}; 397 398&usbphy { 399 status = "okay"; 400}; 401 402&pcie_bus_clk { 403 clock-frequency = <100000000>; 404 status = "okay"; 405}; 406 407&pciec { 408 status = "okay"; 409}; 410 411&can0 { 412 pinctrl-0 = <&can0_pins>; 413 pinctrl-names = "default"; 414 415 status = "okay"; 416}; 417 418&du { 419 pinctrl-0 = <&du_pins>; 420 pinctrl-names = "default"; 421 status = "okay"; 422 423 clocks = <&mstp7_clks R8A7791_CLK_DU0>, 424 <&mstp7_clks R8A7791_CLK_DU1>, 425 <&mstp7_clks R8A7791_CLK_LVDS0>, 426 <&x3_clk>, <&x16_clk>; 427 clock-names = "du.0", "du.1", "lvds.0", 428 "dclkin.0", "dclkin.1"; 429 430 ports { 431 port@1 { 432 endpoint { 433 remote-endpoint = <&adv7511_in>; 434 }; 435 }; 436 }; 437}; 438 439&rcar_sound { 440 pinctrl-0 = <&ssi_pins &audio_clk_pins>; 441 pinctrl-names = "default"; 442 status = "okay"; 443 444 /* Single DAI */ 445 #sound-dai-cells = <0>; 446 447 rcar_sound,dai { 448 dai0 { 449 playback = <&ssi0>; 450 capture = <&ssi1>; 451 }; 452 }; 453}; 454 455&ssi1 { 456 shared-pin; 457}; 458