Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: dts: rockchip: Add RK3562 evb2 devicetree

DRAM: DDR4
Storage: eMMC
PMIC: RK809
Audio: Headphone and speaker
Interface:
- USB3.0 HOST
- USB2.0 HOST
- PCIe x4 slot(pcie2x1 available)
- SD card slot
- GMAC
- debug UART0

NOTE: the USB3.0 and the PCIe reuse the comboPHY, so the USB3.0 work in
USB2 only mode.

Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Link: https://lore.kernel.org/r/20250509102308.761424-6-kever.yang@rock-chips.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

authored by

Finley Xiao and committed by
Heiko Stuebner
ceb6ef1e 515fd622

+457
+1
arch/arm64/boot/dts/rockchip/Makefile
··· 82 82 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb 83 83 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb 84 84 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-radxa-e20c.dtb 85 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3562-evb2-v10.dtb 85 86 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg-arc-d.dtb 86 87 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg-arc-s.dtb 87 88 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353p.dtb
+456
arch/arm64/boot/dts/rockchip/rk3562-evb2-v10.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2024-2025 Rockchip Electronics Co., Ltd. 4 + * 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include <dt-bindings/gpio/gpio.h> 10 + #include <dt-bindings/input/input.h> 11 + #include <dt-bindings/leds/common.h> 12 + #include <dt-bindings/pinctrl/rockchip.h> 13 + #include "rk3562.dtsi" 14 + 15 + / { 16 + model = "Rockchip RK3562 EVB V20 Board"; 17 + compatible = "rockchip,rk3562-evb2-v10", "rockchip,rk3562"; 18 + 19 + chosen: chosen { 20 + stdout-path = "serial0:1500000n8"; 21 + }; 22 + 23 + adc_keys: adc-keys { 24 + compatible = "adc-keys"; 25 + io-channels = <&saradc0 1>; 26 + io-channel-names = "buttons"; 27 + keyup-threshold-microvolt = <1800000>; 28 + poll-interval = <100>; 29 + 30 + button-vol-up { 31 + linux,code = <KEY_VOLUMEUP>; 32 + label = "volume up"; 33 + press-threshold-microvolt = <17000>; 34 + }; 35 + 36 + button-vol-down { 37 + linux,code = <KEY_VOLUMEDOWN>; 38 + label = "volume down"; 39 + press-threshold-microvolt = <414000>; 40 + }; 41 + 42 + button-menu { 43 + linux,code = <KEY_MENU>; 44 + label = "menu"; 45 + press-threshold-microvolt = <800000>; 46 + }; 47 + 48 + button-back { 49 + linux,code = <KEY_BACK>; 50 + label = "back"; 51 + press-threshold-microvolt = <1200000>; 52 + }; 53 + }; 54 + 55 + leds: leds { 56 + compatible = "gpio-leds"; 57 + 58 + work_led: led-0 { 59 + gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; 60 + linux,default-trigger = "heartbeat"; 61 + }; 62 + }; 63 + 64 + sdio_pwrseq: sdio-pwrseq { 65 + compatible = "mmc-pwrseq-simple"; 66 + clocks = <&rk809 1>; 67 + clock-names = "ext_clock"; 68 + pinctrl-names = "default"; 69 + pinctrl-0 = <&wifi_enable_h>; 70 + 71 + /* 72 + * On the module itself this is one of these (depending 73 + * on the actual card populated): 74 + * - SDIO_RESET_L_WL_REG_ON 75 + * - PDN (power down when low) 76 + */ 77 + post-power-on-delay-ms = <200>; 78 + reset-gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_LOW>; 79 + }; 80 + 81 + vcc12v_dcin: regulator-vcc12v-dcin { 82 + compatible = "regulator-fixed"; 83 + regulator-name = "vcc12v_dcin"; 84 + regulator-always-on; 85 + regulator-boot-on; 86 + regulator-min-microvolt = <12000000>; 87 + regulator-max-microvolt = <12000000>; 88 + }; 89 + 90 + vcc3v3_pcie20: regulator-vcc3v3-pcie20 { 91 + compatible = "regulator-fixed"; 92 + regulator-name = "vcc3v3_pcie20"; 93 + regulator-min-microvolt = <3300000>; 94 + regulator-max-microvolt = <3300000>; 95 + enable-active-high; 96 + gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; 97 + startup-delay-us = <5000>; 98 + vin-supply = <&vcc12v_dcin>; 99 + }; 100 + 101 + vcc5v0_sys: regulator-vcc5v0-sys { 102 + compatible = "regulator-fixed"; 103 + regulator-name = "vcc5v0_sys"; 104 + regulator-always-on; 105 + regulator-boot-on; 106 + regulator-min-microvolt = <5000000>; 107 + regulator-max-microvolt = <5000000>; 108 + vin-supply = <&vcc12v_dcin>; 109 + }; 110 + 111 + vcc5v0_usb: regulator-vcc5v0-usb { 112 + compatible = "regulator-fixed"; 113 + regulator-name = "vcc5v0_usb"; 114 + regulator-always-on; 115 + regulator-boot-on; 116 + regulator-min-microvolt = <5000000>; 117 + regulator-max-microvolt = <5000000>; 118 + vin-supply = <&vcc12v_dcin>; 119 + }; 120 + 121 + vcc5v0_usb_host: regulator-vcc5v0-usb-host { 122 + compatible = "regulator-fixed"; 123 + regulator-name = "vcc5v0_usb_host"; 124 + regulator-boot-on; 125 + regulator-always-on; 126 + regulator-min-microvolt = <5000000>; 127 + regulator-max-microvolt = <5000000>; 128 + enable-active-high; 129 + gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; 130 + vin-supply = <&vcc5v0_usb>; 131 + pinctrl-names = "default"; 132 + pinctrl-0 = <&usb_host_pwren>; 133 + }; 134 + 135 + vcc5v0_usb_otg: regulator-vcc5v0-usb-otg { 136 + compatible = "regulator-fixed"; 137 + regulator-name = "vcc5v0_usb_otg"; 138 + regulator-min-microvolt = <5000000>; 139 + regulator-max-microvolt = <5000000>; 140 + enable-active-high; 141 + gpio = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>; 142 + vin-supply = <&vcc5v0_usb>; 143 + pinctrl-names = "default"; 144 + pinctrl-0 = <&usb_otg_pwren>; 145 + }; 146 + 147 + vcc3v3_clk: regulator-vcc3v3-clk { 148 + compatible = "regulator-fixed"; 149 + regulator-name = "vcc3v3_clk"; 150 + regulator-min-microvolt = <3300000>; 151 + regulator-max-microvolt = <3300000>; 152 + vin-supply = <&vcc5v0_sys>; 153 + }; 154 + 155 + vcc3v3_sys: regulator-vcc-sys { 156 + compatible = "regulator-fixed"; 157 + regulator-name = "vcc3v3_sys"; 158 + regulator-always-on; 159 + regulator-boot-on; 160 + regulator-min-microvolt = <3300000>; 161 + regulator-max-microvolt = <3300000>; 162 + vin-supply = <&vcc12v_dcin>; 163 + }; 164 + }; 165 + 166 + &combphy { 167 + status = "okay"; 168 + }; 169 + 170 + &i2c0 { 171 + status = "okay"; 172 + 173 + rk809: pmic@20 { 174 + compatible = "rockchip,rk809"; 175 + reg = <0x20>; 176 + interrupt-parent = <&gpio0>; 177 + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 178 + 179 + pinctrl-names = "default", "pmic-sleep", 180 + "pmic-power-off", "pmic-reset"; 181 + pinctrl-0 = <&pmic_int>; 182 + rockchip,system-power-controller; 183 + wakeup-source; 184 + #clock-cells = <1>; 185 + clock-output-names = "rk808-clkout1", "rk808-clkout2"; 186 + 187 + vcc1-supply = <&vcc3v3_sys>; 188 + vcc2-supply = <&vcc3v3_sys>; 189 + vcc3-supply = <&vcc3v3_sys>; 190 + vcc4-supply = <&vcc3v3_sys>; 191 + vcc5-supply = <&vcc3v3_sys>; 192 + vcc6-supply = <&vcc3v3_sys>; 193 + vcc7-supply = <&vcc3v3_sys>; 194 + vcc8-supply = <&vcc3v3_sys>; 195 + vcc9-supply = <&vcc3v3_sys>; 196 + 197 + regulators { 198 + vdd_logic: DCDC_REG1 { 199 + regulator-always-on; 200 + regulator-boot-on; 201 + regulator-min-microvolt = <500000>; 202 + regulator-max-microvolt = <1350000>; 203 + regulator-ramp-delay = <6001>; 204 + regulator-initial-mode = <0x2>; 205 + regulator-name = "vdd_logic"; 206 + regulator-state-mem { 207 + regulator-off-in-suspend; 208 + }; 209 + }; 210 + 211 + vdd_cpu: DCDC_REG2 { 212 + regulator-always-on; 213 + regulator-boot-on; 214 + regulator-min-microvolt = <500000>; 215 + regulator-max-microvolt = <1350000>; 216 + regulator-ramp-delay = <6001>; 217 + regulator-initial-mode = <0x2>; 218 + regulator-name = "vdd_cpu"; 219 + regulator-state-mem { 220 + regulator-off-in-suspend; 221 + }; 222 + }; 223 + 224 + vcc_ddr: DCDC_REG3 { 225 + regulator-always-on; 226 + regulator-boot-on; 227 + regulator-initial-mode = <0x2>; 228 + regulator-name = "vcc_ddr"; 229 + regulator-state-mem { 230 + regulator-on-in-suspend; 231 + }; 232 + }; 233 + 234 + vdd_gpu: DCDC_REG4 { 235 + regulator-always-on; 236 + regulator-boot-on; 237 + regulator-min-microvolt = <500000>; 238 + regulator-max-microvolt = <1350000>; 239 + regulator-ramp-delay = <6001>; 240 + regulator-initial-mode = <0x2>; 241 + regulator-name = "vdd_gpu"; 242 + regulator-state-mem { 243 + regulator-off-in-suspend; 244 + }; 245 + }; 246 + 247 + vcc2v8_dvp: LDO_REG1 { 248 + regulator-min-microvolt = <2800000>; 249 + regulator-max-microvolt = <2800000>; 250 + regulator-name = "vcc2v8_dvp"; 251 + regulator-state-mem { 252 + regulator-off-in-suspend; 253 + }; 254 + }; 255 + 256 + vdda_0v9: LDO_REG2 { 257 + regulator-always-on; 258 + regulator-boot-on; 259 + regulator-min-microvolt = <900000>; 260 + regulator-max-microvolt = <900000>; 261 + regulator-name = "vdda_0v9"; 262 + regulator-state-mem { 263 + regulator-off-in-suspend; 264 + }; 265 + }; 266 + 267 + vdda0v9_pmu: LDO_REG3 { 268 + regulator-always-on; 269 + regulator-boot-on; 270 + regulator-min-microvolt = <900000>; 271 + regulator-max-microvolt = <900000>; 272 + regulator-name = "vdda0v9_pmu"; 273 + regulator-state-mem { 274 + regulator-on-in-suspend; 275 + regulator-suspend-microvolt = <900000>; 276 + }; 277 + }; 278 + 279 + vccio_acodec: LDO_REG4 { 280 + regulator-always-on; 281 + regulator-boot-on; 282 + regulator-min-microvolt = <3000000>; 283 + regulator-max-microvolt = <3000000>; 284 + regulator-name = "vccio_acodec"; 285 + regulator-state-mem { 286 + regulator-off-in-suspend; 287 + }; 288 + }; 289 + 290 + vccio_sd: LDO_REG5 { 291 + regulator-always-on; 292 + regulator-boot-on; 293 + regulator-min-microvolt = <1800000>; 294 + regulator-max-microvolt = <3300000>; 295 + regulator-name = "vccio_sd"; 296 + regulator-state-mem { 297 + regulator-off-in-suspend; 298 + }; 299 + }; 300 + 301 + vcc3v3_pmu: LDO_REG6 { 302 + regulator-always-on; 303 + regulator-boot-on; 304 + regulator-min-microvolt = <3300000>; 305 + regulator-max-microvolt = <3300000>; 306 + regulator-name = "vcc3v3_pmu"; 307 + regulator-state-mem { 308 + regulator-on-in-suspend; 309 + regulator-suspend-microvolt = <3300000>; 310 + }; 311 + }; 312 + 313 + vcca_1v8: LDO_REG7 { 314 + regulator-always-on; 315 + regulator-boot-on; 316 + regulator-min-microvolt = <1800000>; 317 + regulator-max-microvolt = <1800000>; 318 + regulator-name = "vcca_1v8"; 319 + regulator-state-mem { 320 + regulator-off-in-suspend; 321 + }; 322 + }; 323 + 324 + vcca1v8_pmu: LDO_REG8 { 325 + regulator-always-on; 326 + regulator-boot-on; 327 + regulator-min-microvolt = <1800000>; 328 + regulator-max-microvolt = <1800000>; 329 + regulator-name = "vcca1v8_pmu"; 330 + regulator-state-mem { 331 + regulator-on-in-suspend; 332 + regulator-suspend-microvolt = <1800000>; 333 + }; 334 + }; 335 + 336 + vcc1v8_dvp: LDO_REG9 { 337 + regulator-min-microvolt = <1800000>; 338 + regulator-max-microvolt = <1800000>; 339 + regulator-name = "vcc1v8_dvp"; 340 + regulator-state-mem { 341 + regulator-off-in-suspend; 342 + }; 343 + }; 344 + 345 + vcc_1v8: DCDC_REG5 { 346 + regulator-always-on; 347 + regulator-boot-on; 348 + regulator-min-microvolt = <1800000>; 349 + regulator-max-microvolt = <1800000>; 350 + regulator-name = "vcc_1v8"; 351 + regulator-state-mem { 352 + regulator-off-in-suspend; 353 + }; 354 + }; 355 + 356 + vcc_3v3: SWITCH_REG1 { 357 + regulator-always-on; 358 + regulator-boot-on; 359 + regulator-name = "vcc_3v3"; 360 + regulator-state-mem { 361 + regulator-off-in-suspend; 362 + }; 363 + }; 364 + 365 + vcc3v3_sd: SWITCH_REG2 { 366 + regulator-always-on; 367 + regulator-boot-on; 368 + regulator-name = "vcc3v3_sd"; 369 + regulator-state-mem { 370 + regulator-off-in-suspend; 371 + }; 372 + }; 373 + }; 374 + }; 375 + }; 376 + 377 + &pcie2x1 { 378 + reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>; 379 + vpcie3v3-supply = <&vcc3v3_pcie20>; 380 + status = "okay"; 381 + }; 382 + 383 + &pinctrl { 384 + sdio-pwrseq { 385 + wifi_enable_h: wifi-enable-h { 386 + rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 387 + }; 388 + }; 389 + 390 + usb { 391 + usb_host_pwren: usb-host-pwren { 392 + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 393 + }; 394 + 395 + usb_otg_pwren: usb-otg-pwren { 396 + rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; 397 + }; 398 + }; 399 + }; 400 + 401 + &saradc0 { 402 + vref-supply = <&vcc_1v8>; 403 + status = "okay"; 404 + }; 405 + 406 + &sdhci { 407 + bus-width = <8>; 408 + no-sdio; 409 + no-sd; 410 + non-removable; 411 + mmc-hs400-1_8v; 412 + mmc-hs400-enhanced-strobe; 413 + full-pwr-cycle-in-suspend; 414 + status = "okay"; 415 + }; 416 + 417 + &sdmmc0 { 418 + no-sdio; 419 + no-mmc; 420 + bus-width = <4>; 421 + cap-mmc-highspeed; 422 + cap-sd-highspeed; 423 + disable-wp; 424 + pinctrl-names = "default"; 425 + pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 426 + sd-uhs-sdr104; 427 + vmmc-supply = <&vcc3v3_sd>; 428 + vqmmc-supply = <&vccio_sd>; 429 + status = "okay"; 430 + }; 431 + 432 + &sdmmc1 { 433 + no-sd; 434 + no-mmc; 435 + bus-width = <4>; 436 + disable-wp; 437 + cap-sd-highspeed; 438 + cap-sdio-irq; 439 + keep-power-in-suspend; 440 + mmc-pwrseq = <&sdio_pwrseq>; 441 + non-removable; 442 + pinctrl-names = "default"; 443 + pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 444 + sd-uhs-sdr104; 445 + status = "okay"; 446 + }; 447 + 448 + &uart0 { 449 + status = "okay"; 450 + }; 451 + 452 + &uart1 { 453 + pinctrl-names = "default"; 454 + pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>; 455 + status = "okay"; 456 + };