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