1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 2 /* 3 * Copyright (c) 2019 Fuzhou Rockchip Electron 3 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd 4 * Copyright (c) 2019 Vamrs Limited 4 * Copyright (c) 2019 Vamrs Limited 5 * Copyright (c) 2019 Amarula Solutions(India) 5 * Copyright (c) 2019 Amarula Solutions(India) 6 */ 6 */ 7 7 8 #include <dt-bindings/gpio/gpio.h> 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/pinctrl/rockchip.h> 9 #include <dt-bindings/pinctrl/rockchip.h> 10 #include <dt-bindings/pwm/pwm.h> 10 #include <dt-bindings/pwm/pwm.h> 11 11 12 / { 12 / { 13 compatible = "vamrs,rk3399pro-vmarc-so 13 compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro"; 14 14 15 aliases { !! 15 clkin_gmac: external-gmac-clock { 16 ethernet0 = &gmac; !! 16 compatible = "fixed-clock"; 17 mmc0 = &sdhci; !! 17 clock-frequency = <125000000>; 18 mmc1 = &sdmmc; !! 18 clock-output-names = "clkin_gmac"; >> 19 #clock-cells = <0>; 19 }; 20 }; 20 21 21 vcc3v3_pcie: vcc-pcie-regulator { !! 22 vcc12v_dcin: vcc12v-dcin-regulator { 22 compatible = "regulator-fixed" 23 compatible = "regulator-fixed"; 23 enable-active-high; !! 24 regulator-name = "vcc12v_dcin"; 24 gpio = <&gpio4 RK_PD4 GPIO_ACT !! 25 regulator-always-on; 25 pinctrl-names = "default"; !! 26 regulator-boot-on; 26 pinctrl-0 = <&pcie_pwr>; !! 27 regulator-min-microvolt = <12000000>; 27 regulator-name = "vcc3v3_pcie" !! 28 regulator-max-microvolt = <12000000>; >> 29 }; >> 30 >> 31 vcc5v0_sys: vcc5v0-sys-regulator { >> 32 compatible = "regulator-fixed"; >> 33 regulator-name = "vcc5v0_sys"; 28 regulator-always-on; 34 regulator-always-on; 29 regulator-boot-on; 35 regulator-boot-on; 30 vin-supply = <&vcc5v0_sys>; !! 36 regulator-min-microvolt = <5000000>; >> 37 regulator-max-microvolt = <5000000>; >> 38 vin-supply = <&vcc12v_dcin>; 31 }; 39 }; 32 }; 40 }; 33 41 34 &cpu_l0 { 42 &cpu_l0 { 35 cpu-supply = <&vdd_cpu_l>; 43 cpu-supply = <&vdd_cpu_l>; 36 }; 44 }; 37 45 38 &cpu_l1 { 46 &cpu_l1 { 39 cpu-supply = <&vdd_cpu_l>; 47 cpu-supply = <&vdd_cpu_l>; 40 }; 48 }; 41 49 42 &cpu_l2 { 50 &cpu_l2 { 43 cpu-supply = <&vdd_cpu_l>; 51 cpu-supply = <&vdd_cpu_l>; 44 }; 52 }; 45 53 46 &cpu_l3 { 54 &cpu_l3 { 47 cpu-supply = <&vdd_cpu_l>; 55 cpu-supply = <&vdd_cpu_l>; 48 }; 56 }; 49 57 50 &emmc_phy { 58 &emmc_phy { 51 status = "okay"; 59 status = "okay"; 52 }; 60 }; 53 61 54 &gmac { 62 &gmac { 55 assigned-clocks = <&cru SCLK_RMII_SRC> 63 assigned-clocks = <&cru SCLK_RMII_SRC>; >> 64 assigned-clock-parents = <&clkin_gmac>; >> 65 clock_in_out = "input"; 56 phy-supply = <&vcc_lan>; 66 phy-supply = <&vcc_lan>; 57 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ !! 67 phy-mode = "rgmii"; 58 }; << 59 << 60 &hdmi { << 61 ddc-i2c-bus = <&i2c3>; << 62 pinctrl-names = "default"; 68 pinctrl-names = "default"; 63 pinctrl-0 = <&hdmi_cec>; !! 69 pinctrl-0 = <&rgmii_pins>; >> 70 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; >> 71 snps,reset-active-low; >> 72 snps,reset-delays-us = <0 10000 50000>; >> 73 tx_delay = <0x28>; >> 74 rx_delay = <0x11>; 64 }; 75 }; 65 76 66 &i2c0 { 77 &i2c0 { 67 clock-frequency = <400000>; 78 clock-frequency = <400000>; 68 i2c-scl-falling-time-ns = <30>; << 69 i2c-scl-rising-time-ns = <180>; 79 i2c-scl-rising-time-ns = <180>; >> 80 i2c-scl-falling-time-ns = <30>; 70 status = "okay"; 81 status = "okay"; 71 82 72 rk809: pmic@20 { 83 rk809: pmic@20 { 73 compatible = "rockchip,rk809"; 84 compatible = "rockchip,rk809"; 74 reg = <0x20>; 85 reg = <0x20>; 75 interrupt-parent = <&gpio1>; 86 interrupt-parent = <&gpio1>; 76 interrupts = <RK_PC2 IRQ_TYPE_ 87 interrupts = <RK_PC2 IRQ_TYPE_LEVEL_LOW>; 77 #clock-cells = <1>; 88 #clock-cells = <1>; 78 clock-output-names = "rk808-cl 89 clock-output-names = "rk808-clkout1", "rk808-clkout2"; 79 pinctrl-names = "default"; 90 pinctrl-names = "default"; 80 pinctrl-0 = <&pmic_int_l>; 91 pinctrl-0 = <&pmic_int_l>; 81 rockchip,system-power-controll 92 rockchip,system-power-controller; 82 wakeup-source; 93 wakeup-source; 83 94 84 vcc1-supply = <&vcc5v0_sys>; 95 vcc1-supply = <&vcc5v0_sys>; 85 vcc2-supply = <&vcc5v0_sys>; 96 vcc2-supply = <&vcc5v0_sys>; 86 vcc3-supply = <&vcc5v0_sys>; 97 vcc3-supply = <&vcc5v0_sys>; 87 vcc4-supply = <&vcc5v0_sys>; 98 vcc4-supply = <&vcc5v0_sys>; 88 vcc5-supply = <&vcc_buck5>; 99 vcc5-supply = <&vcc_buck5>; 89 vcc6-supply = <&vcc_buck5>; 100 vcc6-supply = <&vcc_buck5>; 90 vcc7-supply = <&vcc5v0_sys>; 101 vcc7-supply = <&vcc5v0_sys>; 91 vcc8-supply = <&vcc3v3_sys>; 102 vcc8-supply = <&vcc3v3_sys>; 92 vcc9-supply = <&vcc5v0_sys>; 103 vcc9-supply = <&vcc5v0_sys>; 93 104 94 regulators { 105 regulators { 95 vdd_log: DCDC_REG1 { 106 vdd_log: DCDC_REG1 { 96 regulator-name 107 regulator-name = "vdd_log"; 97 regulator-alwa 108 regulator-always-on; 98 regulator-boot 109 regulator-boot-on; 99 regulator-min- 110 regulator-min-microvolt = <750000>; 100 regulator-max- 111 regulator-max-microvolt = <1350000>; 101 regulator-init 112 regulator-initial-mode = <0x2>; 102 regulator-stat 113 regulator-state-mem { 103 regula 114 regulator-off-in-suspend; 104 regula 115 regulator-suspend-microvolt = <900000>; 105 }; 116 }; 106 }; 117 }; 107 118 108 vdd_cpu_l: DCDC_REG2 { 119 vdd_cpu_l: DCDC_REG2 { 109 regulator-name 120 regulator-name = "vdd_cpu_l"; 110 regulator-alwa 121 regulator-always-on; 111 regulator-boot 122 regulator-boot-on; 112 regulator-min- 123 regulator-min-microvolt = <750000>; 113 regulator-max- 124 regulator-max-microvolt = <1350000>; 114 regulator-ramp 125 regulator-ramp-delay = <6001>; 115 regulator-init 126 regulator-initial-mode = <0x2>; 116 regulator-stat 127 regulator-state-mem { 117 regula 128 regulator-off-in-suspend; 118 }; 129 }; 119 }; 130 }; 120 131 121 vcc_ddr: DCDC_REG3 { 132 vcc_ddr: DCDC_REG3 { 122 regulator-name 133 regulator-name = "vcc_ddr"; 123 regulator-alwa 134 regulator-always-on; 124 regulator-boot 135 regulator-boot-on; 125 regulator-init 136 regulator-initial-mode = <0x2>; 126 regulator-stat 137 regulator-state-mem { 127 regula 138 regulator-on-in-suspend; 128 }; 139 }; 129 }; 140 }; 130 141 131 vcc3v3_sys: DCDC_REG4 142 vcc3v3_sys: DCDC_REG4 { 132 regulator-name 143 regulator-name = "vcc3v3_sys"; 133 regulator-alwa 144 regulator-always-on; 134 regulator-boot 145 regulator-boot-on; 135 regulator-min- 146 regulator-min-microvolt = <3300000>; 136 regulator-max- 147 regulator-max-microvolt = <3300000>; 137 regulator-init 148 regulator-initial-mode = <0x2>; 138 regulator-stat 149 regulator-state-mem { 139 regula 150 regulator-on-in-suspend; 140 regula 151 regulator-suspend-microvolt = <3300000>; 141 }; 152 }; 142 }; 153 }; 143 154 144 vcc_buck5: DCDC_REG5 { 155 vcc_buck5: DCDC_REG5 { 145 regulator-name 156 regulator-name = "vcc_buck5"; 146 regulator-alwa 157 regulator-always-on; 147 regulator-boot 158 regulator-boot-on; 148 regulator-min- 159 regulator-min-microvolt = <2200000>; 149 regulator-max- 160 regulator-max-microvolt = <2200000>; 150 regulator-stat 161 regulator-state-mem { 151 regula 162 regulator-on-in-suspend; 152 regula 163 regulator-suspend-microvolt = <2200000>; 153 }; 164 }; 154 }; 165 }; 155 166 156 vcca_0v9: LDO_REG1 { 167 vcca_0v9: LDO_REG1 { 157 regulator-name 168 regulator-name = "vcca_0v9"; 158 regulator-alwa 169 regulator-always-on; 159 regulator-boot 170 regulator-boot-on; 160 regulator-min- 171 regulator-min-microvolt = <900000>; 161 regulator-max- 172 regulator-max-microvolt = <900000>; 162 regulator-stat 173 regulator-state-mem { 163 regula !! 174 regulator-off-in-suspend; 164 regula << 165 }; 175 }; 166 }; 176 }; 167 177 168 vcc_1v8: LDO_REG2 { 178 vcc_1v8: LDO_REG2 { 169 regulator-name 179 regulator-name = "vcc_1v8"; 170 regulator-alwa 180 regulator-always-on; 171 regulator-boot 181 regulator-boot-on; 172 regulator-min- 182 regulator-min-microvolt = <1800000>; 173 regulator-max- 183 regulator-max-microvolt = <1800000>; 174 regulator-stat 184 regulator-state-mem { 175 regula 185 regulator-on-in-suspend; 176 regula 186 regulator-suspend-microvolt = <1800000>; 177 }; 187 }; 178 }; 188 }; 179 189 180 vcc_0v9: LDO_REG3 { 190 vcc_0v9: LDO_REG3 { 181 regulator-name 191 regulator-name = "vcc_0v9"; 182 regulator-alwa 192 regulator-always-on; 183 regulator-boot 193 regulator-boot-on; 184 regulator-min- 194 regulator-min-microvolt = <900000>; 185 regulator-max- 195 regulator-max-microvolt = <900000>; 186 regulator-stat 196 regulator-state-mem { 187 regula 197 regulator-on-in-suspend; 188 regula 198 regulator-suspend-microvolt = <900000>; 189 }; 199 }; 190 }; 200 }; 191 201 192 vcca_1v8: LDO_REG4 { 202 vcca_1v8: LDO_REG4 { 193 regulator-name 203 regulator-name = "vcca_1v8"; 194 regulator-alwa 204 regulator-always-on; 195 regulator-boot 205 regulator-boot-on; 196 regulator-min- 206 regulator-min-microvolt = <1850000>; 197 regulator-max- 207 regulator-max-microvolt = <1850000>; 198 regulator-stat 208 regulator-state-mem { 199 regula !! 209 regulator-off-in-suspend; 200 regula << 201 }; 210 }; 202 }; 211 }; 203 212 204 /* 213 /* 205 * As per BSP, but sch 214 * As per BSP, but schematic not showing any regulator 206 * pin for LD05. 215 * pin for LD05. 207 */ 216 */ 208 vdd1v5_dvp: LDO_REG5 { 217 vdd1v5_dvp: LDO_REG5 { 209 regulator-name 218 regulator-name = "vdd1v5_dvp"; 210 regulator-alwa 219 regulator-always-on; 211 regulator-boot 220 regulator-boot-on; 212 regulator-min- 221 regulator-min-microvolt = <1500000>; 213 regulator-max- 222 regulator-max-microvolt = <1500000>; 214 regulator-stat 223 regulator-state-mem { 215 regula 224 regulator-off-in-suspend; 216 }; 225 }; 217 }; 226 }; 218 227 219 vcc_1v5: LDO_REG6 { 228 vcc_1v5: LDO_REG6 { 220 regulator-name 229 regulator-name = "vcc_1v5"; 221 regulator-alwa 230 regulator-always-on; 222 regulator-boot 231 regulator-boot-on; 223 regulator-min- 232 regulator-min-microvolt = <1500000>; 224 regulator-max- 233 regulator-max-microvolt = <1500000>; 225 regulator-stat 234 regulator-state-mem { 226 regula 235 regulator-off-in-suspend; 227 }; 236 }; 228 }; 237 }; 229 238 230 vccio_3v0: LDO_REG7 { 239 vccio_3v0: LDO_REG7 { 231 regulator-name 240 regulator-name = "vccio_3v0"; 232 regulator-alwa 241 regulator-always-on; 233 regulator-boot 242 regulator-boot-on; 234 regulator-min- 243 regulator-min-microvolt = <3000000>; 235 regulator-max- 244 regulator-max-microvolt = <3000000>; 236 regulator-stat 245 regulator-state-mem { 237 regula 246 regulator-off-in-suspend; 238 }; 247 }; 239 }; 248 }; 240 249 241 vccio_sd: LDO_REG8 { 250 vccio_sd: LDO_REG8 { 242 regulator-name 251 regulator-name = "vccio_sd"; 243 regulator-alwa 252 regulator-always-on; 244 regulator-boot 253 regulator-boot-on; 245 regulator-min- 254 regulator-min-microvolt = <1800000>; 246 regulator-max- 255 regulator-max-microvolt = <3300000>; 247 regulator-stat 256 regulator-state-mem { 248 regula 257 regulator-off-in-suspend; 249 }; 258 }; 250 }; 259 }; 251 260 252 /* 261 /* 253 * As per BSP, but sch 262 * As per BSP, but schematic not showing any regulator 254 * pin for LD09. 263 * pin for LD09. 255 */ 264 */ 256 vcc_sd: LDO_REG9 { 265 vcc_sd: LDO_REG9 { 257 regulator-name 266 regulator-name = "vcc_sd"; 258 regulator-alwa 267 regulator-always-on; 259 regulator-boot 268 regulator-boot-on; 260 regulator-min- 269 regulator-min-microvolt = <3300000>; 261 regulator-max- 270 regulator-max-microvolt = <3300000>; 262 regulator-stat 271 regulator-state-mem { 263 regula 272 regulator-off-in-suspend; 264 }; 273 }; 265 }; 274 }; 266 275 267 vcc5v0_usb2: SWITCH_RE 276 vcc5v0_usb2: SWITCH_REG1 { 268 regulator-name 277 regulator-name = "vcc5v0_usb2"; 269 regulator-min- 278 regulator-min-microvolt = <5000000>; 270 regulator-max- 279 regulator-max-microvolt = <5000000>; 271 regulator-stat 280 regulator-state-mem { 272 regula 281 regulator-on-in-suspend; 273 regula 282 regulator-suspend-microvolt = <5000000>; 274 }; 283 }; 275 }; 284 }; 276 285 277 vccio_3v3: vcc_lan: SW 286 vccio_3v3: vcc_lan: SWITCH_REG2 { 278 regulator-name 287 regulator-name = "vccio_3v3"; 279 regulator-alwa 288 regulator-always-on; 280 regulator-boot 289 regulator-boot-on; 281 regulator-min- 290 regulator-min-microvolt = <3300000>; 282 regulator-max- 291 regulator-max-microvolt = <3300000>; 283 regulator-stat 292 regulator-state-mem { 284 regula 293 regulator-off-in-suspend; 285 }; 294 }; 286 }; 295 }; 287 }; 296 }; 288 }; 297 }; 289 }; 298 }; 290 299 291 &i2c1 { << 292 i2c-scl-falling-time-ns = <30>; << 293 i2c-scl-rising-time-ns = <140>; << 294 status = "okay"; << 295 }; << 296 << 297 &i2c2 { << 298 clock-frequency = <400000>; << 299 status = "okay"; << 300 << 301 hym8563: rtc@51 { << 302 compatible = "haoyu,hym8563"; << 303 reg = <0x51>; << 304 #clock-cells = <0>; << 305 clock-output-names = "hym8563" << 306 pinctrl-names = "default"; << 307 pinctrl-0 = <&hym8563_int>; << 308 interrupt-parent = <&gpio4>; << 309 interrupts = <RK_PD6 IRQ_TYPE_ << 310 }; << 311 }; << 312 << 313 &i2c3 { << 314 i2c-scl-rising-time-ns = <450>; << 315 i2c-scl-falling-time-ns = <15>; << 316 status = "okay"; << 317 }; << 318 << 319 &io_domains { 300 &io_domains { 320 status = "okay"; 301 status = "okay"; 321 bt656-supply = <&vcca_1v8>; 302 bt656-supply = <&vcca_1v8>; 322 gpio1830-supply = <&vccio_3v0>; << 323 sdmmc-supply = <&vccio_sd>; 303 sdmmc-supply = <&vccio_sd>; 324 }; !! 304 gpio1830-supply = <&vccio_3v0>; 325 << 326 &pcie_phy { << 327 status = "okay"; << 328 }; << 329 << 330 &pcie0 { << 331 ep-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_ << 332 num-lanes = <4>; << 333 pinctrl-0 = <&pcie_clkreqnb_cpm>; << 334 pinctrl-names = "default"; << 335 vpcie0v9-supply = <&vcca_0v9>; /* VCC << 336 vpcie1v8-supply = <&vcca_1v8>; /* VCC << 337 vpcie3v3-supply = <&vcc3v3_pcie>; << 338 status = "okay"; << 339 }; << 340 << 341 &pinctrl { << 342 hym8563 { << 343 hym8563_int: hym8563-int { << 344 rockchip,pins = <4 RK_ << 345 }; << 346 }; << 347 << 348 pcie { << 349 pcie_pwr: pcie-pwr { << 350 rockchip,pins = <4 RK_ << 351 }; << 352 }; << 353 << 354 pmic { << 355 pmic_int_l: pmic-int-l { << 356 rockchip,pins = <1 RK_ << 357 }; << 358 }; << 359 << 360 sdio-pwrseq { << 361 wifi_enable_h: wifi-enable-h { << 362 rockchip,pins = <2 RK_ << 363 }; << 364 }; << 365 << 366 vbus_host { << 367 usb1_en_oc: usb1-en-oc { << 368 rockchip,pins = <4 RK_ << 369 }; << 370 }; << 371 << 372 vbus_typec { << 373 usb0_en_oc: usb0-en-oc { << 374 rockchip,pins = <4 RK_ << 375 }; << 376 }; << 377 }; 305 }; 378 306 379 &pmu_io_domains { 307 &pmu_io_domains { 380 status = "okay"; 308 status = "okay"; 381 pmu1830-supply = <&vcc_1v8>; 309 pmu1830-supply = <&vcc_1v8>; 382 }; 310 }; 383 311 384 &sdio_pwrseq { << 385 /* << 386 * On the module itself this is one of << 387 * on the actual card populated): << 388 * - SDIO_RESET_L_WL_REG_ON << 389 * - PDN (power down when low) << 390 */ << 391 reset-gpios = <&gpio2 RK_PD3 GPIO_ACTI << 392 }; << 393 << 394 &sdhci { 312 &sdhci { 395 bus-width = <8>; 313 bus-width = <8>; 396 mmc-hs400-1_8v; 314 mmc-hs400-1_8v; 397 mmc-hs400-enhanced-strobe; 315 mmc-hs400-enhanced-strobe; 398 non-removable; 316 non-removable; 399 status = "okay"; 317 status = "okay"; 400 }; 318 }; 401 319 402 &sdmmc { << 403 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_ << 404 max-frequency = <150000000>; << 405 }; << 406 << 407 &tcphy0 { << 408 status = "okay"; << 409 }; << 410 << 411 &tsadc { 320 &tsadc { >> 321 status = "okay"; 412 rockchip,hw-tshut-mode = <1>; 322 rockchip,hw-tshut-mode = <1>; 413 rockchip,hw-tshut-polarity = <1>; 323 rockchip,hw-tshut-polarity = <1>; 414 status = "okay"; << 415 }; << 416 << 417 &u2phy0 { << 418 status = "okay"; << 419 << 420 u2phy0_otg: otg-port { << 421 phy-supply = <&vbus_typec>; << 422 status = "okay"; << 423 }; << 424 << 425 u2phy0_host: host-port { << 426 phy-supply = <&vbus_host>; << 427 status = "okay"; << 428 }; << 429 }; 324 }; 430 325 431 !! 326 &pinctrl { 432 &u2phy1 { !! 327 pmic { 433 status = "okay"; !! 328 pmic_int_l: pmic-int-l { 434 !! 329 rockchip,pins = 435 u2phy1_host: host-port { !! 330 <1 RK_PC2 0 &pcfg_pull_up>; 436 phy-supply = <&vbus_host>; !! 331 }; 437 status = "okay"; << 438 }; 332 }; 439 }; << 440 << 441 &usb_host0_ehci { << 442 status = "okay"; << 443 }; << 444 << 445 &usb_host0_ohci { << 446 status = "okay"; << 447 }; << 448 << 449 &usb_host1_ehci { << 450 status = "okay"; << 451 }; << 452 << 453 &usb_host1_ohci { << 454 status = "okay"; << 455 }; << 456 << 457 &usbdrd3_0 { << 458 status = "okay"; << 459 }; << 460 << 461 &usbdrd_dwc3_0 { << 462 status = "okay"; << 463 }; << 464 << 465 &vbus_host { << 466 enable-active-high; << 467 gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH << 468 pinctrl-names = "default"; << 469 pinctrl-0 = <&usb1_en_oc>; << 470 }; << 471 << 472 &vbus_typec { << 473 enable-active-high; << 474 gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH << 475 pinctrl-names = "default"; << 476 pinctrl-0 = <&usb0_en_oc>; << 477 }; 333 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.