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