1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874) 4 * 5 * Copyright (C) 2019 Renesas Electronics Corp. 6 */ 7 8/dts-v1/; 9#include "r8a774c0.dtsi" 10#include <dt-bindings/gpio/gpio.h> 11#include <dt-bindings/display/tda998x.h> 12 13/ { 14 model = "Silicon Linux RZ/G2E 96board platform (CAT874)"; 15 compatible = "si-linux,cat874", "renesas,r8a774c0"; 16 17 aliases { 18 serial0 = &scif2; 19 serial1 = &hscif2; 20 mmc0 = &sdhi0; 21 mmc1 = &sdhi3; 22 }; 23 24 chosen { 25 bootargs = "ignore_loglevel rw root=/dev/nfs ip=on"; 26 stdout-path = "serial0:115200n8"; 27 }; 28 29 hdmi-out { 30 compatible = "hdmi-connector"; 31 type = "a"; 32 33 port { 34 hdmi_con_out: endpoint { 35 remote-endpoint = <&tda19988_out>; 36 }; 37 }; 38 }; 39 40 leds { 41 compatible = "gpio-leds"; 42 43 led0 { 44 gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>; 45 label = "LED0"; 46 }; 47 48 led1 { 49 gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; 50 label = "LED1"; 51 }; 52 53 led2 { 54 gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; 55 label = "LED2"; 56 }; 57 58 led3 { 59 gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; 60 label = "LED3"; 61 }; 62 }; 63 64 memory@48000000 { 65 device_type = "memory"; 66 /* first 128MB is reserved for secure area. */ 67 reg = <0x0 0x48000000 0x0 0x78000000>; 68 }; 69 70 reg_12p0v: regulator-12p0v { 71 compatible = "regulator-fixed"; 72 regulator-name = "D12.0V"; 73 regulator-min-microvolt = <12000000>; 74 regulator-max-microvolt = <12000000>; 75 regulator-boot-on; 76 regulator-always-on; 77 }; 78 79 sound: sound { 80 compatible = "simple-audio-card"; 81 82 simple-audio-card,name = "CAT874 HDMI sound"; 83 simple-audio-card,format = "i2s"; 84 simple-audio-card,bitclock-master = <&sndcpu>; 85 simple-audio-card,frame-master = <&sndcpu>; 86 87 sndcodec: simple-audio-card,codec { 88 sound-dai = <&tda19988>; 89 }; 90 91 sndcpu: simple-audio-card,cpu { 92 sound-dai = <&rcar_sound>; 93 }; 94 }; 95 96 vcc_sdhi0: regulator-vcc-sdhi0 { 97 compatible = "regulator-fixed"; 98 99 regulator-name = "SDHI0 Vcc"; 100 regulator-min-microvolt = <3300000>; 101 regulator-max-microvolt = <3300000>; 102 regulator-always-on; 103 regulator-boot-on; 104 }; 105 106 vccq_sdhi0: regulator-vccq-sdhi0 { 107 compatible = "regulator-gpio"; 108 109 regulator-name = "SDHI0 VccQ"; 110 regulator-min-microvolt = <1800000>; 111 regulator-max-microvolt = <3300000>; 112 113 gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 114 gpios-states = <1>; 115 states = <3300000 1>, <1800000 0>; 116 }; 117 118 wlan_en_reg: fixedregulator { 119 compatible = "regulator-fixed"; 120 regulator-name = "wlan-en-regulator"; 121 regulator-min-microvolt = <1800000>; 122 regulator-max-microvolt = <1800000>; 123 startup-delay-us = <70000>; 124 125 gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>; 126 enable-active-high; 127 }; 128 129 x13_clk: x13 { 130 compatible = "fixed-clock"; 131 #clock-cells = <0>; 132 clock-frequency = <74250000>; 133 }; 134}; 135 136&audio_clk_a { 137 clock-frequency = <22579200>; 138}; 139 140&du { 141 pinctrl-0 = <&du_pins>; 142 pinctrl-names = "default"; 143 status = "okay"; 144 145 clocks = <&cpg CPG_MOD 724>, 146 <&cpg CPG_MOD 723>, 147 <&x13_clk>; 148 clock-names = "du.0", "du.1", "dclkin.0"; 149 150 ports { 151 port@0 { 152 endpoint { 153 remote-endpoint = <&tda19988_in>; 154 }; 155 }; 156 }; 157}; 158 159&ehci0 { 160 dr_mode = "host"; 161 status = "okay"; 162}; 163 164&extal_clk { 165 clock-frequency = <48000000>; 166}; 167 168&hscif2 { 169 pinctrl-0 = <&hscif2_pins>; 170 pinctrl-names = "default"; 171 172 uart-has-rtscts; 173 status = "okay"; 174 175 bluetooth { 176 compatible = "ti,wl1837-st"; 177 enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; 178 }; 179}; 180 181&i2c0 { 182 status = "okay"; 183 clock-frequency = <100000>; 184 185 hd3ss3220@47 { 186 compatible = "ti,hd3ss3220"; 187 reg = <0x47>; 188 interrupt-parent = <&gpio6>; 189 interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 190 191 connector { 192 compatible = "usb-c-connector"; 193 label = "USB-C"; 194 data-role = "dual"; 195 196 ports { 197 #address-cells = <1>; 198 #size-cells = <0>; 199 200 port@1 { 201 reg = <1>; 202 hd3ss3220_ep: endpoint { 203 remote-endpoint = <&usb3_role_switch>; 204 }; 205 }; 206 }; 207 }; 208 }; 209 210 tda19988: tda19988@70 { 211 compatible = "nxp,tda998x"; 212 reg = <0x70>; 213 interrupt-parent = <&gpio1>; 214 interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 215 216 video-ports = <0x234501>; 217 218 #sound-dai-cells = <0>; 219 audio-ports = <TDA998x_I2S 0x03>; 220 clocks = <&rcar_sound 1>; 221 222 ports { 223 #address-cells = <1>; 224 #size-cells = <0>; 225 226 port@0 { 227 reg = <0>; 228 tda19988_in: endpoint { 229 remote-endpoint = <&du_out_rgb>; 230 }; 231 }; 232 233 port@1 { 234 reg = <1>; 235 tda19988_out: endpoint { 236 remote-endpoint = <&hdmi_con_out>; 237 }; 238 }; 239 }; 240 }; 241}; 242 243&i2c1 { 244 pinctrl-0 = <&i2c1_pins>; 245 pinctrl-names = "default"; 246 247 status = "okay"; 248 clock-frequency = <400000>; 249 250 rtc@32 { 251 compatible = "epson,rx8571"; 252 reg = <0x32>; 253 }; 254}; 255 256&lvds0 { 257 status = "okay"; 258 259 clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>; 260 clock-names = "fck", "dclkin.0", "extal"; 261}; 262 263&ohci0 { 264 dr_mode = "host"; 265 status = "okay"; 266}; 267 268&pcie_bus_clk { 269 clock-frequency = <100000000>; 270}; 271 272&pciec0 { 273 /* Map all possible DDR as inbound ranges */ 274 dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>; 275}; 276 277&pfc { 278 du_pins: du { 279 groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp", 280 "du_clk_in_0"; 281 function = "du"; 282 }; 283 284 hscif2_pins: hscif2 { 285 groups = "hscif2_data_a", "hscif2_ctrl_a"; 286 function = "hscif2"; 287 }; 288 289 i2c1_pins: i2c1 { 290 groups = "i2c1_b"; 291 function = "i2c1"; 292 }; 293 294 scif2_pins: scif2 { 295 groups = "scif2_data_a"; 296 function = "scif2"; 297 }; 298 299 sdhi0_pins: sd0 { 300 groups = "sdhi0_data4", "sdhi0_ctrl"; 301 function = "sdhi0"; 302 power-source = <3300>; 303 }; 304 305 sdhi0_pins_uhs: sd0_uhs { 306 groups = "sdhi0_data4", "sdhi0_ctrl"; 307 function = "sdhi0"; 308 power-source = <1800>; 309 }; 310 311 sdhi3_pins: sd3 { 312 groups = "sdhi3_data4", "sdhi3_ctrl"; 313 function = "sdhi3"; 314 power-source = <1800>; 315 }; 316 317 sound_clk_pins: sound_clk { 318 groups = "audio_clkout1_a"; 319 function = "audio_clk"; 320 }; 321 322 sound_pins: sound { 323 groups = "ssi01239_ctrl", "ssi0_data"; 324 function = "ssi"; 325 }; 326 327 usb30_pins: usb30 { 328 groups = "usb30", "usb30_id"; 329 function = "usb30"; 330 }; 331}; 332 333&rcar_sound { 334 pinctrl-0 = <&sound_pins &sound_clk_pins>; 335 pinctrl-names = "default"; 336 337 /* Single DAI */ 338 #sound-dai-cells = <0>; 339 340 /* audio_clkout0/1/2/3 */ 341 #clock-cells = <1>; 342 clock-frequency = <11289600>; 343 344 status = "okay"; 345 346 rcar_sound,dai { 347 dai0 { 348 playback = <&ssi0 &src0 &dvc0>; 349 }; 350 }; 351}; 352 353&rwdt { 354 timeout-sec = <60>; 355 status = "okay"; 356}; 357 358&scif2 { 359 pinctrl-0 = <&scif2_pins>; 360 pinctrl-names = "default"; 361 362 status = "okay"; 363}; 364 365&sdhi0 { 366 pinctrl-0 = <&sdhi0_pins>; 367 pinctrl-1 = <&sdhi0_pins_uhs>; 368 pinctrl-names = "default", "state_uhs"; 369 370 vmmc-supply = <&vcc_sdhi0>; 371 vqmmc-supply = <&vccq_sdhi0>; 372 cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 373 bus-width = <4>; 374 sd-uhs-sdr50; 375 sd-uhs-sdr104; 376 status = "okay"; 377}; 378 379&sdhi3 { 380 status = "okay"; 381 pinctrl-0 = <&sdhi3_pins>; 382 pinctrl-names = "default"; 383 384 vmmc-supply = <&wlan_en_reg>; 385 bus-width = <4>; 386 non-removable; 387 cap-power-off-card; 388 keep-power-in-suspend; 389 390 #address-cells = <1>; 391 #size-cells = <0>; 392 wlcore: wlcore@2 { 393 compatible = "ti,wl1837"; 394 reg = <2>; 395 interrupt-parent = <&gpio1>; 396 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; 397 }; 398}; 399 400&usb2_phy0 { 401 renesas,no-otg-pins; 402 status = "okay"; 403}; 404 405&usb3_peri0 { 406 companion = <&xhci0>; 407 status = "okay"; 408 usb-role-switch; 409 410 port { 411 usb3_role_switch: endpoint { 412 remote-endpoint = <&hd3ss3220_ep>; 413 }; 414 }; 415}; 416 417&xhci0 { 418 pinctrl-0 = <&usb30_pins>; 419 pinctrl-names = "default"; 420 421 status = "okay"; 422}; 423