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