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