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>, <1800000 0>; 116 }; 114 }; 117 115 118 wlan_en_reg: fixedregulator { 116 wlan_en_reg: fixedregulator { 119 compatible = "regulator-fixed" 117 compatible = "regulator-fixed"; 120 regulator-name = "wlan-en-regu 118 regulator-name = "wlan-en-regulator"; 121 regulator-min-microvolt = <180 119 regulator-min-microvolt = <1800000>; 122 regulator-max-microvolt = <180 120 regulator-max-microvolt = <1800000>; 123 startup-delay-us = <70000>; 121 startup-delay-us = <70000>; 124 122 125 gpio = <&gpio2 25 GPIO_ACTIVE_ 123 gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>; 126 enable-active-high; 124 enable-active-high; 127 }; 125 }; 128 126 129 x13_clk: x13 { 127 x13_clk: x13 { 130 compatible = "fixed-clock"; 128 compatible = "fixed-clock"; 131 #clock-cells = <0>; 129 #clock-cells = <0>; 132 clock-frequency = <74250000>; 130 clock-frequency = <74250000>; 133 }; 131 }; 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 }; 132 }; 158 133 159 &audio_clk_a { 134 &audio_clk_a { 160 clock-frequency = <22579200>; 135 clock-frequency = <22579200>; 161 }; 136 }; 162 137 163 &du { 138 &du { 164 pinctrl-0 = <&du_pins>; 139 pinctrl-0 = <&du_pins>; 165 pinctrl-names = "default"; 140 pinctrl-names = "default"; 166 status = "okay"; 141 status = "okay"; 167 142 168 clocks = <&cpg CPG_MOD 724>, 143 clocks = <&cpg CPG_MOD 724>, 169 <&cpg CPG_MOD 723>, 144 <&cpg CPG_MOD 723>, 170 <&x13_clk>; 145 <&x13_clk>; 171 clock-names = "du.0", "du.1", "dclkin. 146 clock-names = "du.0", "du.1", "dclkin.0"; 172 147 173 ports { 148 ports { 174 port@0 { 149 port@0 { 175 du_out_rgb: endpoint { !! 150 endpoint { 176 remote-endpoin 151 remote-endpoint = <&tda19988_in>; 177 }; 152 }; 178 }; 153 }; 179 }; 154 }; 180 }; 155 }; 181 156 182 &ehci0 { 157 &ehci0 { 183 dr_mode = "host"; 158 dr_mode = "host"; 184 status = "okay"; 159 status = "okay"; 185 }; 160 }; 186 161 187 &extal_clk { 162 &extal_clk { 188 clock-frequency = <48000000>; 163 clock-frequency = <48000000>; 189 }; 164 }; 190 165 191 &hscif2 { 166 &hscif2 { 192 pinctrl-0 = <&hscif2_pins>; 167 pinctrl-0 = <&hscif2_pins>; 193 pinctrl-names = "default"; 168 pinctrl-names = "default"; 194 169 195 uart-has-rtscts; 170 uart-has-rtscts; 196 status = "okay"; 171 status = "okay"; 197 172 198 bluetooth { 173 bluetooth { 199 compatible = "ti,wl1837-st"; 174 compatible = "ti,wl1837-st"; 200 enable-gpios = <&gpio4 6 GPIO_ 175 enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; 201 }; 176 }; 202 }; 177 }; 203 178 204 &i2c0 { 179 &i2c0 { 205 status = "okay"; 180 status = "okay"; 206 clock-frequency = <100000>; 181 clock-frequency = <100000>; 207 182 208 hd3ss3220@47 { 183 hd3ss3220@47 { 209 compatible = "ti,hd3ss3220"; 184 compatible = "ti,hd3ss3220"; 210 reg = <0x47>; 185 reg = <0x47>; 211 interrupt-parent = <&gpio6>; 186 interrupt-parent = <&gpio6>; 212 interrupts = <3 IRQ_TYPE_LEVEL 187 interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 213 188 214 ports { !! 189 connector { 215 #address-cells = <1>; !! 190 compatible = "usb-c-connector"; 216 #size-cells = <0>; !! 191 label = "USB-C"; 217 port@0 { !! 192 data-role = "dual"; 218 reg = <0>; !! 193 219 hd3ss3220_in_e !! 194 ports { 220 remote !! 195 #address-cells = <1>; 221 }; !! 196 #size-cells = <0>; 222 }; !! 197 223 port@1 { !! 198 port@1 { 224 reg = <1>; !! 199 reg = <1>; 225 hd3ss3220_out_ !! 200 hd3ss3220_ep: endpoint { 226 remote !! 201 remote-endpoint = <&usb3_role_switch>; >> 202 }; 227 }; 203 }; 228 }; 204 }; 229 }; 205 }; 230 }; 206 }; 231 207 232 tda19988: tda19988@70 { 208 tda19988: tda19988@70 { 233 compatible = "nxp,tda998x"; 209 compatible = "nxp,tda998x"; 234 reg = <0x70>; 210 reg = <0x70>; 235 interrupt-parent = <&gpio1>; 211 interrupt-parent = <&gpio1>; 236 interrupts = <1 IRQ_TYPE_LEVEL 212 interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 237 213 238 video-ports = <0x234501>; 214 video-ports = <0x234501>; 239 215 240 #sound-dai-cells = <0>; 216 #sound-dai-cells = <0>; 241 audio-ports = <TDA998x_I2S 0x0 217 audio-ports = <TDA998x_I2S 0x03>; 242 clocks = <&rcar_sound 1>; 218 clocks = <&rcar_sound 1>; 243 219 244 ports { 220 ports { 245 #address-cells = <1>; 221 #address-cells = <1>; 246 #size-cells = <0>; 222 #size-cells = <0>; 247 223 248 port@0 { 224 port@0 { 249 reg = <0>; 225 reg = <0>; 250 tda19988_in: e 226 tda19988_in: endpoint { 251 remote 227 remote-endpoint = <&du_out_rgb>; 252 }; 228 }; 253 }; 229 }; 254 230 255 port@1 { 231 port@1 { 256 reg = <1>; 232 reg = <1>; 257 tda19988_out: 233 tda19988_out: endpoint { 258 remote 234 remote-endpoint = <&hdmi_con_out>; 259 }; 235 }; 260 }; 236 }; 261 }; 237 }; 262 }; 238 }; 263 }; 239 }; 264 240 265 &i2c1 { 241 &i2c1 { 266 pinctrl-0 = <&i2c1_pins>; 242 pinctrl-0 = <&i2c1_pins>; 267 pinctrl-names = "default"; 243 pinctrl-names = "default"; 268 244 269 status = "okay"; 245 status = "okay"; 270 clock-frequency = <400000>; 246 clock-frequency = <400000>; 271 247 272 rtc@32 { 248 rtc@32 { 273 compatible = "epson,rx8571"; 249 compatible = "epson,rx8571"; 274 reg = <0x32>; 250 reg = <0x32>; 275 }; 251 }; 276 }; 252 }; 277 253 278 &lvds0 { 254 &lvds0 { 279 status = "okay"; 255 status = "okay"; 280 256 281 clocks = <&cpg CPG_MOD 727>, <&x13_clk 257 clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>; 282 clock-names = "fck", "dclkin.0", "exta 258 clock-names = "fck", "dclkin.0", "extal"; 283 }; 259 }; 284 260 285 &ohci0 { 261 &ohci0 { 286 dr_mode = "host"; 262 dr_mode = "host"; 287 status = "okay"; 263 status = "okay"; 288 }; 264 }; 289 265 290 &pcie_bus_clk { 266 &pcie_bus_clk { 291 clock-frequency = <100000000>; 267 clock-frequency = <100000000>; 292 }; 268 }; 293 269 294 &pciec0 { 270 &pciec0 { 295 /* Map all possible DDR as inbound ran 271 /* Map all possible DDR as inbound ranges */ 296 dma-ranges = <0x42000000 0 0x40000000 272 dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>; 297 }; 273 }; 298 274 299 &pfc { 275 &pfc { 300 du_pins: du { 276 du_pins: du { 301 groups = "du_rgb888", "du_clk_ 277 groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp", 302 "du_clk_in_0"; 278 "du_clk_in_0"; 303 function = "du"; 279 function = "du"; 304 }; 280 }; 305 281 306 hscif2_pins: hscif2 { 282 hscif2_pins: hscif2 { 307 groups = "hscif2_data_a", "hsc 283 groups = "hscif2_data_a", "hscif2_ctrl_a"; 308 function = "hscif2"; 284 function = "hscif2"; 309 }; 285 }; 310 286 311 i2c1_pins: i2c1 { 287 i2c1_pins: i2c1 { 312 groups = "i2c1_b"; 288 groups = "i2c1_b"; 313 function = "i2c1"; 289 function = "i2c1"; 314 }; 290 }; 315 291 316 scif2_pins: scif2 { 292 scif2_pins: scif2 { 317 groups = "scif2_data_a"; 293 groups = "scif2_data_a"; 318 function = "scif2"; 294 function = "scif2"; 319 }; 295 }; 320 296 321 sdhi0_pins: sd0 { 297 sdhi0_pins: sd0 { 322 groups = "sdhi0_data4", "sdhi0 298 groups = "sdhi0_data4", "sdhi0_ctrl"; 323 function = "sdhi0"; 299 function = "sdhi0"; 324 power-source = <3300>; 300 power-source = <3300>; 325 }; 301 }; 326 302 327 sdhi0_pins_uhs: sd0_uhs { 303 sdhi0_pins_uhs: sd0_uhs { 328 groups = "sdhi0_data4", "sdhi0 304 groups = "sdhi0_data4", "sdhi0_ctrl"; 329 function = "sdhi0"; 305 function = "sdhi0"; 330 power-source = <1800>; 306 power-source = <1800>; 331 }; 307 }; 332 308 333 sdhi3_pins: sd3 { 309 sdhi3_pins: sd3 { 334 groups = "sdhi3_data4", "sdhi3 310 groups = "sdhi3_data4", "sdhi3_ctrl"; 335 function = "sdhi3"; 311 function = "sdhi3"; 336 power-source = <1800>; 312 power-source = <1800>; 337 }; 313 }; 338 314 339 sound_clk_pins: sound_clk { 315 sound_clk_pins: sound_clk { 340 groups = "audio_clkout1_a"; 316 groups = "audio_clkout1_a"; 341 function = "audio_clk"; 317 function = "audio_clk"; 342 }; 318 }; 343 319 344 sound_pins: sound { 320 sound_pins: sound { 345 groups = "ssi01239_ctrl", "ssi 321 groups = "ssi01239_ctrl", "ssi0_data"; 346 function = "ssi"; 322 function = "ssi"; 347 }; 323 }; 348 324 349 usb30_pins: usb30 { 325 usb30_pins: usb30 { 350 groups = "usb30", "usb30_id"; 326 groups = "usb30", "usb30_id"; 351 function = "usb30"; 327 function = "usb30"; 352 }; 328 }; 353 }; 329 }; 354 330 355 &rcar_sound { 331 &rcar_sound { 356 pinctrl-0 = <&sound_pins>, <&sound_clk !! 332 pinctrl-0 = <&sound_pins &sound_clk_pins>; 357 pinctrl-names = "default"; 333 pinctrl-names = "default"; 358 334 359 /* Single DAI */ 335 /* Single DAI */ 360 #sound-dai-cells = <0>; 336 #sound-dai-cells = <0>; 361 337 362 /* audio_clkout0/1/2/3 */ 338 /* audio_clkout0/1/2/3 */ 363 #clock-cells = <1>; 339 #clock-cells = <1>; 364 clock-frequency = <11289600>; 340 clock-frequency = <11289600>; 365 341 366 status = "okay"; 342 status = "okay"; 367 343 368 rcar_sound,dai { 344 rcar_sound,dai { 369 dai0 { 345 dai0 { 370 playback = <&ssi0>, <& !! 346 playback = <&ssi0 &src0 &dvc0>; 371 }; 347 }; 372 }; 348 }; 373 }; 349 }; 374 350 375 &rwdt { 351 &rwdt { 376 timeout-sec = <60>; 352 timeout-sec = <60>; 377 status = "okay"; 353 status = "okay"; 378 }; 354 }; 379 355 380 &scif2 { 356 &scif2 { 381 pinctrl-0 = <&scif2_pins>; 357 pinctrl-0 = <&scif2_pins>; 382 pinctrl-names = "default"; 358 pinctrl-names = "default"; 383 359 384 status = "okay"; 360 status = "okay"; 385 }; 361 }; 386 362 387 &sdhi0 { 363 &sdhi0 { 388 pinctrl-0 = <&sdhi0_pins>; 364 pinctrl-0 = <&sdhi0_pins>; 389 pinctrl-1 = <&sdhi0_pins_uhs>; 365 pinctrl-1 = <&sdhi0_pins_uhs>; 390 pinctrl-names = "default", "state_uhs" 366 pinctrl-names = "default", "state_uhs"; 391 367 392 vmmc-supply = <&vcc_sdhi0>; 368 vmmc-supply = <&vcc_sdhi0>; 393 vqmmc-supply = <&vccq_sdhi0>; 369 vqmmc-supply = <&vccq_sdhi0>; 394 cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW> 370 cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 395 bus-width = <4>; 371 bus-width = <4>; 396 sd-uhs-sdr50; 372 sd-uhs-sdr50; 397 sd-uhs-sdr104; 373 sd-uhs-sdr104; 398 status = "okay"; 374 status = "okay"; 399 }; 375 }; 400 376 401 &sdhi3 { 377 &sdhi3 { 402 status = "okay"; 378 status = "okay"; 403 pinctrl-0 = <&sdhi3_pins>; 379 pinctrl-0 = <&sdhi3_pins>; 404 pinctrl-names = "default"; 380 pinctrl-names = "default"; 405 381 406 vmmc-supply = <&wlan_en_reg>; 382 vmmc-supply = <&wlan_en_reg>; 407 bus-width = <4>; 383 bus-width = <4>; 408 non-removable; 384 non-removable; 409 cap-power-off-card; 385 cap-power-off-card; 410 keep-power-in-suspend; 386 keep-power-in-suspend; 411 387 412 #address-cells = <1>; 388 #address-cells = <1>; 413 #size-cells = <0>; 389 #size-cells = <0>; 414 wlcore: wlcore@2 { 390 wlcore: wlcore@2 { 415 compatible = "ti,wl1837"; 391 compatible = "ti,wl1837"; 416 reg = <2>; 392 reg = <2>; 417 interrupt-parent = <&gpio1>; 393 interrupt-parent = <&gpio1>; 418 interrupts = <0 IRQ_TYPE_LEVEL 394 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; 419 }; 395 }; 420 }; 396 }; 421 397 422 &usb2_phy0 { 398 &usb2_phy0 { 423 renesas,no-otg-pins; 399 renesas,no-otg-pins; 424 status = "okay"; 400 status = "okay"; 425 }; 401 }; 426 402 427 &usb3_peri0 { 403 &usb3_peri0 { 428 companion = <&xhci0>; 404 companion = <&xhci0>; 429 status = "okay"; 405 status = "okay"; 430 usb-role-switch; 406 usb-role-switch; 431 407 432 ports { !! 408 port { 433 #address-cells = <1>; !! 409 usb3_role_switch: endpoint { 434 #size-cells = <0>; !! 410 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 }; 411 }; 447 }; 412 }; 448 }; 413 }; 449 414 450 &xhci0 { 415 &xhci0 { 451 pinctrl-0 = <&usb30_pins>; 416 pinctrl-0 = <&usb30_pins>; 452 pinctrl-names = "default"; 417 pinctrl-names = "default"; 453 418 454 status = "okay"; 419 status = "okay"; 455 }; 420 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.