1e7a09590STomeu Vizoso// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2e7a09590STomeu Vizoso/* 3e7a09590STomeu Vizoso * RK3399-based FriendlyElec boards device tree source 4e7a09590STomeu Vizoso * 5e7a09590STomeu Vizoso * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd 6e7a09590STomeu Vizoso * 7e7a09590STomeu Vizoso * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd. 8e7a09590STomeu Vizoso * (http://www.friendlyarm.com) 9e7a09590STomeu Vizoso * 10e7a09590STomeu Vizoso * Copyright (c) 2018 Collabora Ltd. 11e7a09590STomeu Vizoso * Copyright (c) 2019 Arm Ltd. 12e7a09590STomeu Vizoso */ 13e7a09590STomeu Vizoso 14e7a09590STomeu Vizoso/dts-v1/; 15e7a09590STomeu Vizoso#include <dt-bindings/input/linux-event-codes.h> 16e7a09590STomeu Vizoso#include "rk3399.dtsi" 17e7a09590STomeu Vizoso#include "rk3399-opp.dtsi" 18e7a09590STomeu Vizoso 19e7a09590STomeu Vizoso/ { 20e7a09590STomeu Vizoso chosen { 21e7a09590STomeu Vizoso stdout-path = "serial2:1500000n8"; 22e7a09590STomeu Vizoso }; 23e7a09590STomeu Vizoso 24e7a09590STomeu Vizoso clkin_gmac: external-gmac-clock { 25e7a09590STomeu Vizoso compatible = "fixed-clock"; 26e7a09590STomeu Vizoso clock-frequency = <125000000>; 27e7a09590STomeu Vizoso clock-output-names = "clkin_gmac"; 28e7a09590STomeu Vizoso #clock-cells = <0>; 29e7a09590STomeu Vizoso }; 30e7a09590STomeu Vizoso 31e7a09590STomeu Vizoso vcc3v3_sys: vcc3v3-sys { 32e7a09590STomeu Vizoso compatible = "regulator-fixed"; 33e7a09590STomeu Vizoso regulator-always-on; 34e7a09590STomeu Vizoso regulator-boot-on; 35e7a09590STomeu Vizoso regulator-min-microvolt = <3300000>; 36e7a09590STomeu Vizoso regulator-max-microvolt = <3300000>; 37e7a09590STomeu Vizoso regulator-name = "vcc3v3_sys"; 38e7a09590STomeu Vizoso }; 39e7a09590STomeu Vizoso 40e7a09590STomeu Vizoso vcc5v0_sys: vcc5v0-sys { 41e7a09590STomeu Vizoso compatible = "regulator-fixed"; 42e7a09590STomeu Vizoso regulator-always-on; 43e7a09590STomeu Vizoso regulator-boot-on; 44e7a09590STomeu Vizoso regulator-min-microvolt = <5000000>; 45e7a09590STomeu Vizoso regulator-max-microvolt = <5000000>; 46e7a09590STomeu Vizoso regulator-name = "vcc5v0_sys"; 47e7a09590STomeu Vizoso vin-supply = <&vdd_5v>; 48e7a09590STomeu Vizoso }; 49e7a09590STomeu Vizoso 50e7a09590STomeu Vizoso /* switched by pmic_sleep */ 51876816b2SRobin Murphy vcc1v8_s3: vcc1v8-s3 { 52e7a09590STomeu Vizoso compatible = "regulator-fixed"; 53e7a09590STomeu Vizoso regulator-always-on; 54e7a09590STomeu Vizoso regulator-boot-on; 55e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 56e7a09590STomeu Vizoso regulator-max-microvolt = <1800000>; 57e7a09590STomeu Vizoso regulator-name = "vcc1v8_s3"; 58e7a09590STomeu Vizoso vin-supply = <&vcc_1v8>; 59e7a09590STomeu Vizoso }; 60e7a09590STomeu Vizoso 61e7a09590STomeu Vizoso vcc3v0_sd: vcc3v0-sd { 62e7a09590STomeu Vizoso compatible = "regulator-fixed"; 63e7a09590STomeu Vizoso enable-active-high; 64e7a09590STomeu Vizoso gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; 65e7a09590STomeu Vizoso pinctrl-names = "default"; 66e7a09590STomeu Vizoso pinctrl-0 = <&sdmmc0_pwr_h>; 67e7a09590STomeu Vizoso regulator-always-on; 68e7a09590STomeu Vizoso regulator-min-microvolt = <3000000>; 69e7a09590STomeu Vizoso regulator-max-microvolt = <3000000>; 70e7a09590STomeu Vizoso regulator-name = "vcc3v0_sd"; 71e7a09590STomeu Vizoso vin-supply = <&vcc3v3_sys>; 72e7a09590STomeu Vizoso }; 73e7a09590STomeu Vizoso 74876816b2SRobin Murphy /* 75876816b2SRobin Murphy * Really, this is supplied by vcc_1v8, and vcc1v8_s3 only 76876816b2SRobin Murphy * drives the enable pin, but we can't quite model that. 77876816b2SRobin Murphy */ 78876816b2SRobin Murphy vcca0v9_s3: vcca0v9-s3 { 79876816b2SRobin Murphy compatible = "regulator-fixed"; 80876816b2SRobin Murphy regulator-min-microvolt = <900000>; 81876816b2SRobin Murphy regulator-max-microvolt = <900000>; 82876816b2SRobin Murphy regulator-name = "vcca0v9_s3"; 83876816b2SRobin Murphy vin-supply = <&vcc1v8_s3>; 84876816b2SRobin Murphy }; 85876816b2SRobin Murphy 86876816b2SRobin Murphy /* As above, actually supplied by vcc3v3_sys */ 87876816b2SRobin Murphy vcca1v8_s3: vcca1v8-s3 { 88876816b2SRobin Murphy compatible = "regulator-fixed"; 89876816b2SRobin Murphy regulator-min-microvolt = <1800000>; 90876816b2SRobin Murphy regulator-max-microvolt = <1800000>; 91876816b2SRobin Murphy regulator-name = "vcca1v8_s3"; 92876816b2SRobin Murphy vin-supply = <&vcc1v8_s3>; 93876816b2SRobin Murphy }; 94876816b2SRobin Murphy 95e7a09590STomeu Vizoso vbus_typec: vbus-typec { 96e7a09590STomeu Vizoso compatible = "regulator-fixed"; 97e7a09590STomeu Vizoso regulator-min-microvolt = <5000000>; 98e7a09590STomeu Vizoso regulator-max-microvolt = <5000000>; 99e7a09590STomeu Vizoso regulator-name = "vbus_typec"; 100e7a09590STomeu Vizoso }; 101e7a09590STomeu Vizoso 102e7a09590STomeu Vizoso gpio-keys { 103e7a09590STomeu Vizoso compatible = "gpio-keys"; 104e7a09590STomeu Vizoso autorepeat; 105e7a09590STomeu Vizoso pinctrl-names = "default"; 106e7a09590STomeu Vizoso pinctrl-0 = <&power_key>; 107e7a09590STomeu Vizoso 108e7a09590STomeu Vizoso power { 109e7a09590STomeu Vizoso debounce-interval = <100>; 110e7a09590STomeu Vizoso gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 111e7a09590STomeu Vizoso label = "GPIO Key Power"; 112e7a09590STomeu Vizoso linux,code = <KEY_POWER>; 113e7a09590STomeu Vizoso wakeup-source; 114e7a09590STomeu Vizoso }; 115e7a09590STomeu Vizoso }; 116e7a09590STomeu Vizoso 117e7a09590STomeu Vizoso leds: gpio-leds { 118e7a09590STomeu Vizoso compatible = "gpio-leds"; 119e7a09590STomeu Vizoso pinctrl-names = "default"; 120e7a09590STomeu Vizoso pinctrl-0 = <&leds_gpio>; 121e7a09590STomeu Vizoso 122e7a09590STomeu Vizoso status { 123e7a09590STomeu Vizoso gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; 124e7a09590STomeu Vizoso label = "status_led"; 125e7a09590STomeu Vizoso linux,default-trigger = "heartbeat"; 126e7a09590STomeu Vizoso }; 127e7a09590STomeu Vizoso }; 128e7a09590STomeu Vizoso 129e7a09590STomeu Vizoso sdio_pwrseq: sdio-pwrseq { 130e7a09590STomeu Vizoso compatible = "mmc-pwrseq-simple"; 131e7a09590STomeu Vizoso clocks = <&rk808 1>; 132e7a09590STomeu Vizoso clock-names = "ext_clock"; 133e7a09590STomeu Vizoso pinctrl-names = "default"; 134e7a09590STomeu Vizoso pinctrl-0 = <&wifi_reg_on_h>; 135e7a09590STomeu Vizoso reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; 136e7a09590STomeu Vizoso }; 137e7a09590STomeu Vizoso}; 138e7a09590STomeu Vizoso 139e7a09590STomeu Vizoso&cpu_b0 { 140e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_b>; 141e7a09590STomeu Vizoso}; 142e7a09590STomeu Vizoso 143e7a09590STomeu Vizoso&cpu_b1 { 144e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_b>; 145e7a09590STomeu Vizoso}; 146e7a09590STomeu Vizoso 147e7a09590STomeu Vizoso&cpu_l0 { 148e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_l>; 149e7a09590STomeu Vizoso}; 150e7a09590STomeu Vizoso 151e7a09590STomeu Vizoso&cpu_l1 { 152e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_l>; 153e7a09590STomeu Vizoso}; 154e7a09590STomeu Vizoso 155e7a09590STomeu Vizoso&cpu_l2 { 156e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_l>; 157e7a09590STomeu Vizoso}; 158e7a09590STomeu Vizoso 159e7a09590STomeu Vizoso&cpu_l3 { 160e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_l>; 161e7a09590STomeu Vizoso}; 162e7a09590STomeu Vizoso 163e7a09590STomeu Vizoso&emmc_phy { 164e7a09590STomeu Vizoso status = "okay"; 165e7a09590STomeu Vizoso}; 166e7a09590STomeu Vizoso 167e7a09590STomeu Vizoso&gmac { 168e7a09590STomeu Vizoso assigned-clock-parents = <&clkin_gmac>; 169e7a09590STomeu Vizoso assigned-clocks = <&cru SCLK_RMII_SRC>; 170e7a09590STomeu Vizoso clock_in_out = "input"; 171e7a09590STomeu Vizoso pinctrl-names = "default"; 1721a4e6203SRobin Murphy pinctrl-0 = <&rgmii_pins>, <&phy_intb>, <&phy_rstb>; 1731a4e6203SRobin Murphy phy-handle = <&rtl8211e>; 174e7a09590STomeu Vizoso phy-mode = "rgmii"; 175e7a09590STomeu Vizoso phy-supply = <&vcc3v3_s3>; 176e7a09590STomeu Vizoso tx_delay = <0x28>; 177e7a09590STomeu Vizoso rx_delay = <0x11>; 178e7a09590STomeu Vizoso status = "okay"; 1791a4e6203SRobin Murphy 1801a4e6203SRobin Murphy mdio { 1811a4e6203SRobin Murphy compatible = "snps,dwmac-mdio"; 1821a4e6203SRobin Murphy #address-cells = <1>; 1831a4e6203SRobin Murphy #size-cells = <0>; 1841a4e6203SRobin Murphy 185b450d1c5SJohan Jonker rtl8211e: ethernet-phy@1 { 1861a4e6203SRobin Murphy reg = <1>; 1871a4e6203SRobin Murphy interrupt-parent = <&gpio3>; 1881a4e6203SRobin Murphy interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>; 189bc43cee8SRobin Murphy reset-assert-us = <10000>; 190bc43cee8SRobin Murphy reset-deassert-us = <30000>; 191bc43cee8SRobin Murphy reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; 1921a4e6203SRobin Murphy }; 1931a4e6203SRobin Murphy }; 194e7a09590STomeu Vizoso}; 195e7a09590STomeu Vizoso 196e7a09590STomeu Vizoso&gpu { 197e7a09590STomeu Vizoso mali-supply = <&vdd_gpu>; 198e7a09590STomeu Vizoso status = "okay"; 199e7a09590STomeu Vizoso}; 200e7a09590STomeu Vizoso 201e7a09590STomeu Vizoso&hdmi { 202e7a09590STomeu Vizoso ddc-i2c-bus = <&i2c7>; 203e7a09590STomeu Vizoso pinctrl-names = "default"; 204e7a09590STomeu Vizoso pinctrl-0 = <&hdmi_cec>; 205e7a09590STomeu Vizoso status = "okay"; 206e7a09590STomeu Vizoso}; 207e7a09590STomeu Vizoso 208f94ffd95SRobin Murphy&hdmi_sound { 209f94ffd95SRobin Murphy status = "okay"; 210f94ffd95SRobin Murphy}; 211f94ffd95SRobin Murphy 212e7a09590STomeu Vizoso&i2c0 { 213e7a09590STomeu Vizoso clock-frequency = <400000>; 214e7a09590STomeu Vizoso i2c-scl-rising-time-ns = <160>; 215e7a09590STomeu Vizoso i2c-scl-falling-time-ns = <30>; 216e7a09590STomeu Vizoso status = "okay"; 217e7a09590STomeu Vizoso 218e7a09590STomeu Vizoso vdd_cpu_b: regulator@40 { 219e7a09590STomeu Vizoso compatible = "silergy,syr827"; 220e7a09590STomeu Vizoso reg = <0x40>; 221e7a09590STomeu Vizoso fcs,suspend-voltage-selector = <1>; 222e7a09590STomeu Vizoso pinctrl-names = "default"; 223e7a09590STomeu Vizoso pinctrl-0 = <&cpu_b_sleep>; 224e7a09590STomeu Vizoso regulator-always-on; 225e7a09590STomeu Vizoso regulator-boot-on; 226e7a09590STomeu Vizoso regulator-min-microvolt = <712500>; 227e7a09590STomeu Vizoso regulator-max-microvolt = <1500000>; 228e7a09590STomeu Vizoso regulator-name = "vdd_cpu_b"; 229e7a09590STomeu Vizoso regulator-ramp-delay = <1000>; 230e7a09590STomeu Vizoso vin-supply = <&vcc3v3_sys>; 231e7a09590STomeu Vizoso 232e7a09590STomeu Vizoso regulator-state-mem { 233e7a09590STomeu Vizoso regulator-off-in-suspend; 234e7a09590STomeu Vizoso }; 235e7a09590STomeu Vizoso }; 236e7a09590STomeu Vizoso 237e7a09590STomeu Vizoso vdd_gpu: regulator@41 { 238e7a09590STomeu Vizoso compatible = "silergy,syr828"; 239e7a09590STomeu Vizoso reg = <0x41>; 240e7a09590STomeu Vizoso fcs,suspend-voltage-selector = <1>; 241e7a09590STomeu Vizoso pinctrl-names = "default"; 242e7a09590STomeu Vizoso pinctrl-0 = <&gpu_sleep>; 243e7a09590STomeu Vizoso regulator-always-on; 244e7a09590STomeu Vizoso regulator-boot-on; 245e7a09590STomeu Vizoso regulator-min-microvolt = <712500>; 246e7a09590STomeu Vizoso regulator-max-microvolt = <1500000>; 247e7a09590STomeu Vizoso regulator-name = "vdd_gpu"; 248e7a09590STomeu Vizoso regulator-ramp-delay = <1000>; 249e7a09590STomeu Vizoso vin-supply = <&vcc3v3_sys>; 250e7a09590STomeu Vizoso 251e7a09590STomeu Vizoso regulator-state-mem { 252e7a09590STomeu Vizoso regulator-off-in-suspend; 253e7a09590STomeu Vizoso }; 254e7a09590STomeu Vizoso }; 255e7a09590STomeu Vizoso 256e7a09590STomeu Vizoso rk808: pmic@1b { 257e7a09590STomeu Vizoso compatible = "rockchip,rk808"; 258e7a09590STomeu Vizoso reg = <0x1b>; 2593e2f0bb7SRobin Murphy clock-output-names = "xin32k", "rtc_clko_wifi"; 260e7a09590STomeu Vizoso #clock-cells = <1>; 261e7a09590STomeu Vizoso interrupt-parent = <&gpio1>; 262e7a09590STomeu Vizoso interrupts = <21 IRQ_TYPE_LEVEL_LOW>; 263e7a09590STomeu Vizoso pinctrl-names = "default"; 264e7a09590STomeu Vizoso pinctrl-0 = <&pmic_int_l>; 265e7a09590STomeu Vizoso rockchip,system-power-controller; 266e7a09590STomeu Vizoso wakeup-source; 267e7a09590STomeu Vizoso 268e7a09590STomeu Vizoso vcc1-supply = <&vcc3v3_sys>; 269e7a09590STomeu Vizoso vcc2-supply = <&vcc3v3_sys>; 270e7a09590STomeu Vizoso vcc3-supply = <&vcc3v3_sys>; 271e7a09590STomeu Vizoso vcc4-supply = <&vcc3v3_sys>; 272e7a09590STomeu Vizoso vcc6-supply = <&vcc3v3_sys>; 273e7a09590STomeu Vizoso vcc7-supply = <&vcc3v3_sys>; 274e7a09590STomeu Vizoso vcc8-supply = <&vcc3v3_sys>; 275e7a09590STomeu Vizoso vcc9-supply = <&vcc3v3_sys>; 276e7a09590STomeu Vizoso vcc10-supply = <&vcc3v3_sys>; 277e7a09590STomeu Vizoso vcc11-supply = <&vcc3v3_sys>; 278e7a09590STomeu Vizoso vcc12-supply = <&vcc3v3_sys>; 279e7a09590STomeu Vizoso vddio-supply = <&vcc_3v0>; 280e7a09590STomeu Vizoso 281e7a09590STomeu Vizoso regulators { 282e7a09590STomeu Vizoso vdd_center: DCDC_REG1 { 283e7a09590STomeu Vizoso regulator-always-on; 284e7a09590STomeu Vizoso regulator-boot-on; 285e7a09590STomeu Vizoso regulator-min-microvolt = <750000>; 286e7a09590STomeu Vizoso regulator-max-microvolt = <1350000>; 287e7a09590STomeu Vizoso regulator-name = "vdd_center"; 288e7a09590STomeu Vizoso regulator-ramp-delay = <6001>; 289e7a09590STomeu Vizoso 290e7a09590STomeu Vizoso regulator-state-mem { 291e7a09590STomeu Vizoso regulator-off-in-suspend; 292e7a09590STomeu Vizoso }; 293e7a09590STomeu Vizoso }; 294e7a09590STomeu Vizoso 295e7a09590STomeu Vizoso vdd_cpu_l: DCDC_REG2 { 296e7a09590STomeu Vizoso regulator-always-on; 297e7a09590STomeu Vizoso regulator-boot-on; 298e7a09590STomeu Vizoso regulator-min-microvolt = <750000>; 299e7a09590STomeu Vizoso regulator-max-microvolt = <1350000>; 300e7a09590STomeu Vizoso regulator-name = "vdd_cpu_l"; 301e7a09590STomeu Vizoso regulator-ramp-delay = <6001>; 302e7a09590STomeu Vizoso 303e7a09590STomeu Vizoso regulator-state-mem { 304e7a09590STomeu Vizoso regulator-off-in-suspend; 305e7a09590STomeu Vizoso }; 306e7a09590STomeu Vizoso }; 307e7a09590STomeu Vizoso 308e7a09590STomeu Vizoso vcc_ddr: DCDC_REG3 { 309e7a09590STomeu Vizoso regulator-always-on; 310e7a09590STomeu Vizoso regulator-boot-on; 311e7a09590STomeu Vizoso regulator-name = "vcc_ddr"; 312e7a09590STomeu Vizoso 313e7a09590STomeu Vizoso regulator-state-mem { 314e7a09590STomeu Vizoso regulator-on-in-suspend; 315e7a09590STomeu Vizoso }; 316e7a09590STomeu Vizoso }; 317e7a09590STomeu Vizoso 318e7a09590STomeu Vizoso vcc_1v8: DCDC_REG4 { 319e7a09590STomeu Vizoso regulator-always-on; 320e7a09590STomeu Vizoso regulator-boot-on; 321e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 322e7a09590STomeu Vizoso regulator-max-microvolt = <1800000>; 323e7a09590STomeu Vizoso regulator-name = "vcc_1v8"; 324e7a09590STomeu Vizoso 325e7a09590STomeu Vizoso regulator-state-mem { 326e7a09590STomeu Vizoso regulator-on-in-suspend; 327e7a09590STomeu Vizoso regulator-suspend-microvolt = <1800000>; 328e7a09590STomeu Vizoso }; 329e7a09590STomeu Vizoso }; 330e7a09590STomeu Vizoso 331e7a09590STomeu Vizoso vcc1v8_cam: LDO_REG1 { 332e7a09590STomeu Vizoso regulator-always-on; 333e7a09590STomeu Vizoso regulator-boot-on; 334e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 335e7a09590STomeu Vizoso regulator-max-microvolt = <1800000>; 336e7a09590STomeu Vizoso regulator-name = "vcc1v8_cam"; 337e7a09590STomeu Vizoso 338e7a09590STomeu Vizoso regulator-state-mem { 339e7a09590STomeu Vizoso regulator-off-in-suspend; 340e7a09590STomeu Vizoso }; 341e7a09590STomeu Vizoso }; 342e7a09590STomeu Vizoso 343e7a09590STomeu Vizoso vcc3v0_touch: LDO_REG2 { 344e7a09590STomeu Vizoso regulator-always-on; 345e7a09590STomeu Vizoso regulator-boot-on; 346e7a09590STomeu Vizoso regulator-min-microvolt = <3000000>; 347e7a09590STomeu Vizoso regulator-max-microvolt = <3000000>; 348e7a09590STomeu Vizoso regulator-name = "vcc3v0_touch"; 349e7a09590STomeu Vizoso 350e7a09590STomeu Vizoso regulator-state-mem { 351e7a09590STomeu Vizoso regulator-off-in-suspend; 352e7a09590STomeu Vizoso }; 353e7a09590STomeu Vizoso }; 354e7a09590STomeu Vizoso 355e7a09590STomeu Vizoso vcc1v8_pmupll: LDO_REG3 { 356e7a09590STomeu Vizoso regulator-always-on; 357e7a09590STomeu Vizoso regulator-boot-on; 358e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 359e7a09590STomeu Vizoso regulator-max-microvolt = <1800000>; 360e7a09590STomeu Vizoso regulator-name = "vcc1v8_pmupll"; 361e7a09590STomeu Vizoso 362e7a09590STomeu Vizoso regulator-state-mem { 363e7a09590STomeu Vizoso regulator-on-in-suspend; 364e7a09590STomeu Vizoso regulator-suspend-microvolt = <1800000>; 365e7a09590STomeu Vizoso }; 366e7a09590STomeu Vizoso }; 367e7a09590STomeu Vizoso 368e7a09590STomeu Vizoso vcc_sdio: LDO_REG4 { 369e7a09590STomeu Vizoso regulator-always-on; 370e7a09590STomeu Vizoso regulator-boot-on; 371e7a09590STomeu Vizoso regulator-init-microvolt = <3000000>; 372e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 373e7a09590STomeu Vizoso regulator-max-microvolt = <3300000>; 374e7a09590STomeu Vizoso regulator-name = "vcc_sdio"; 375e7a09590STomeu Vizoso 376e7a09590STomeu Vizoso regulator-state-mem { 377e7a09590STomeu Vizoso regulator-on-in-suspend; 378e7a09590STomeu Vizoso regulator-suspend-microvolt = <3000000>; 379e7a09590STomeu Vizoso }; 380e7a09590STomeu Vizoso }; 381e7a09590STomeu Vizoso 382e7a09590STomeu Vizoso vcca3v0_codec: LDO_REG5 { 383e7a09590STomeu Vizoso regulator-always-on; 384e7a09590STomeu Vizoso regulator-boot-on; 385e7a09590STomeu Vizoso regulator-min-microvolt = <3000000>; 386e7a09590STomeu Vizoso regulator-max-microvolt = <3000000>; 387e7a09590STomeu Vizoso regulator-name = "vcca3v0_codec"; 388e7a09590STomeu Vizoso 389e7a09590STomeu Vizoso regulator-state-mem { 390e7a09590STomeu Vizoso regulator-off-in-suspend; 391e7a09590STomeu Vizoso }; 392e7a09590STomeu Vizoso }; 393e7a09590STomeu Vizoso 394e7a09590STomeu Vizoso vcc_1v5: LDO_REG6 { 395e7a09590STomeu Vizoso regulator-always-on; 396e7a09590STomeu Vizoso regulator-boot-on; 397e7a09590STomeu Vizoso regulator-min-microvolt = <1500000>; 398e7a09590STomeu Vizoso regulator-max-microvolt = <1500000>; 399e7a09590STomeu Vizoso regulator-name = "vcc_1v5"; 400e7a09590STomeu Vizoso 401e7a09590STomeu Vizoso regulator-state-mem { 402e7a09590STomeu Vizoso regulator-on-in-suspend; 403e7a09590STomeu Vizoso regulator-suspend-microvolt = <1500000>; 404e7a09590STomeu Vizoso }; 405e7a09590STomeu Vizoso }; 406e7a09590STomeu Vizoso 407e7a09590STomeu Vizoso vcca1v8_codec: LDO_REG7 { 408e7a09590STomeu Vizoso regulator-always-on; 409e7a09590STomeu Vizoso regulator-boot-on; 410e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 411e7a09590STomeu Vizoso regulator-max-microvolt = <1800000>; 412e7a09590STomeu Vizoso regulator-name = "vcca1v8_codec"; 413e7a09590STomeu Vizoso 414e7a09590STomeu Vizoso regulator-state-mem { 415e7a09590STomeu Vizoso regulator-off-in-suspend; 416e7a09590STomeu Vizoso }; 417e7a09590STomeu Vizoso }; 418e7a09590STomeu Vizoso 419e7a09590STomeu Vizoso vcc_3v0: LDO_REG8 { 420e7a09590STomeu Vizoso regulator-always-on; 421e7a09590STomeu Vizoso regulator-boot-on; 422e7a09590STomeu Vizoso regulator-min-microvolt = <3000000>; 423e7a09590STomeu Vizoso regulator-max-microvolt = <3000000>; 424e7a09590STomeu Vizoso regulator-name = "vcc_3v0"; 425e7a09590STomeu Vizoso 426e7a09590STomeu Vizoso regulator-state-mem { 427e7a09590STomeu Vizoso regulator-on-in-suspend; 428e7a09590STomeu Vizoso regulator-suspend-microvolt = <3000000>; 429e7a09590STomeu Vizoso }; 430e7a09590STomeu Vizoso }; 431e7a09590STomeu Vizoso 432e7a09590STomeu Vizoso vcc3v3_s3: SWITCH_REG1 { 433e7a09590STomeu Vizoso regulator-always-on; 434e7a09590STomeu Vizoso regulator-boot-on; 435e7a09590STomeu Vizoso regulator-name = "vcc3v3_s3"; 436e7a09590STomeu Vizoso 437e7a09590STomeu Vizoso regulator-state-mem { 438e7a09590STomeu Vizoso regulator-off-in-suspend; 439e7a09590STomeu Vizoso }; 440e7a09590STomeu Vizoso }; 441e7a09590STomeu Vizoso 442e7a09590STomeu Vizoso vcc3v3_s0: SWITCH_REG2 { 443e7a09590STomeu Vizoso regulator-always-on; 444e7a09590STomeu Vizoso regulator-boot-on; 445e7a09590STomeu Vizoso regulator-name = "vcc3v3_s0"; 446e7a09590STomeu Vizoso 447e7a09590STomeu Vizoso regulator-state-mem { 448e7a09590STomeu Vizoso regulator-off-in-suspend; 449e7a09590STomeu Vizoso }; 450e7a09590STomeu Vizoso }; 451e7a09590STomeu Vizoso }; 452e7a09590STomeu Vizoso }; 453e7a09590STomeu Vizoso}; 454e7a09590STomeu Vizoso 455e7a09590STomeu Vizoso&i2c1 { 456e7a09590STomeu Vizoso clock-frequency = <200000>; 457e7a09590STomeu Vizoso i2c-scl-rising-time-ns = <150>; 458e7a09590STomeu Vizoso i2c-scl-falling-time-ns = <30>; 459e7a09590STomeu Vizoso status = "okay"; 460e7a09590STomeu Vizoso}; 461e7a09590STomeu Vizoso 462e7a09590STomeu Vizoso&i2c2 { 463e7a09590STomeu Vizoso status = "okay"; 464e7a09590STomeu Vizoso}; 465e7a09590STomeu Vizoso 466e7a09590STomeu Vizoso&i2c4 { 467e7a09590STomeu Vizoso clock-frequency = <400000>; 468e7a09590STomeu Vizoso i2c-scl-rising-time-ns = <160>; 469e7a09590STomeu Vizoso i2c-scl-falling-time-ns = <30>; 470e7a09590STomeu Vizoso status = "okay"; 471e7a09590STomeu Vizoso 472e7a09590STomeu Vizoso fusb0: typec-portc@22 { 473e7a09590STomeu Vizoso compatible = "fcs,fusb302"; 474e7a09590STomeu Vizoso reg = <0x22>; 475e7a09590STomeu Vizoso interrupt-parent = <&gpio1>; 476e7a09590STomeu Vizoso interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>; 477e7a09590STomeu Vizoso pinctrl-names = "default"; 478e7a09590STomeu Vizoso pinctrl-0 = <&fusb0_int>; 479e7a09590STomeu Vizoso vbus-supply = <&vbus_typec>; 480e7a09590STomeu Vizoso }; 481e7a09590STomeu Vizoso}; 482e7a09590STomeu Vizoso 483e7a09590STomeu Vizoso&i2c7 { 484e7a09590STomeu Vizoso status = "okay"; 485e7a09590STomeu Vizoso}; 486e7a09590STomeu Vizoso 487f94ffd95SRobin Murphy&i2s2 { 488f94ffd95SRobin Murphy status = "okay"; 489f94ffd95SRobin Murphy}; 490f94ffd95SRobin Murphy 491e7a09590STomeu Vizoso&io_domains { 492e7a09590STomeu Vizoso bt656-supply = <&vcc_1v8>; 493e7a09590STomeu Vizoso audio-supply = <&vcca1v8_codec>; 494e7a09590STomeu Vizoso sdmmc-supply = <&vcc_sdio>; 495e7a09590STomeu Vizoso gpio1830-supply = <&vcc_3v0>; 496e7a09590STomeu Vizoso status = "okay"; 497e7a09590STomeu Vizoso}; 498e7a09590STomeu Vizoso 499e7a09590STomeu Vizoso&pcie_phy { 500e7a09590STomeu Vizoso assigned-clock-parents = <&cru SCLK_PCIEPHY_REF100M>; 501e7a09590STomeu Vizoso assigned-clock-rates = <100000000>; 502e7a09590STomeu Vizoso assigned-clocks = <&cru SCLK_PCIEPHY_REF>; 503e7a09590STomeu Vizoso status = "okay"; 504e7a09590STomeu Vizoso}; 505e7a09590STomeu Vizoso 506e7a09590STomeu Vizoso&pcie0 { 507e7a09590STomeu Vizoso ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>; 508e7a09590STomeu Vizoso max-link-speed = <2>; 509876816b2SRobin Murphy num-lanes = <2>; 510876816b2SRobin Murphy vpcie0v9-supply = <&vcca0v9_s3>; 511876816b2SRobin Murphy vpcie1v8-supply = <&vcca1v8_s3>; 512e7a09590STomeu Vizoso status = "okay"; 513e7a09590STomeu Vizoso}; 514e7a09590STomeu Vizoso 515e7a09590STomeu Vizoso&pinctrl { 516e7a09590STomeu Vizoso fusb30x { 517e7a09590STomeu Vizoso fusb0_int: fusb0-int { 518e7a09590STomeu Vizoso rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; 519e7a09590STomeu Vizoso }; 520e7a09590STomeu Vizoso }; 521e7a09590STomeu Vizoso 522e7a09590STomeu Vizoso gpio-leds { 523e7a09590STomeu Vizoso leds_gpio: leds-gpio { 524e7a09590STomeu Vizoso rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 525e7a09590STomeu Vizoso }; 526e7a09590STomeu Vizoso }; 527e7a09590STomeu Vizoso 528737157f9SJohan Jonker gmac { 5291a4e6203SRobin Murphy phy_intb: phy-intb { 5301a4e6203SRobin Murphy rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; 5311a4e6203SRobin Murphy }; 5321a4e6203SRobin Murphy 5331a4e6203SRobin Murphy phy_rstb: phy-rstb { 5341a4e6203SRobin Murphy rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 5351a4e6203SRobin Murphy }; 5361a4e6203SRobin Murphy }; 5371a4e6203SRobin Murphy 538e7a09590STomeu Vizoso pmic { 539e7a09590STomeu Vizoso cpu_b_sleep: cpu-b-sleep { 540e7a09590STomeu Vizoso rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; 541e7a09590STomeu Vizoso }; 542e7a09590STomeu Vizoso 543e7a09590STomeu Vizoso gpu_sleep: gpu-sleep { 544e7a09590STomeu Vizoso rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; 545e7a09590STomeu Vizoso }; 546e7a09590STomeu Vizoso 547e7a09590STomeu Vizoso pmic_int_l: pmic-int-l { 548e7a09590STomeu Vizoso rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; 549e7a09590STomeu Vizoso }; 550e7a09590STomeu Vizoso }; 551e7a09590STomeu Vizoso 552e7a09590STomeu Vizoso rockchip-key { 553e7a09590STomeu Vizoso power_key: power-key { 554e7a09590STomeu Vizoso rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 555e7a09590STomeu Vizoso }; 556e7a09590STomeu Vizoso }; 557e7a09590STomeu Vizoso 5583e2f0bb7SRobin Murphy sdio { 5593e2f0bb7SRobin Murphy bt_host_wake_l: bt-host-wake-l { 5603e2f0bb7SRobin Murphy rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 5613e2f0bb7SRobin Murphy }; 5623e2f0bb7SRobin Murphy 5633e2f0bb7SRobin Murphy bt_reg_on_h: bt-reg-on-h { 5643e2f0bb7SRobin Murphy /* external pullup to VCC1V8_PMUPLL */ 5653e2f0bb7SRobin Murphy rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 5663e2f0bb7SRobin Murphy }; 5673e2f0bb7SRobin Murphy 5683e2f0bb7SRobin Murphy bt_wake_l: bt-wake-l { 5693e2f0bb7SRobin Murphy rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 5703e2f0bb7SRobin Murphy }; 5713e2f0bb7SRobin Murphy 572e7a09590STomeu Vizoso wifi_reg_on_h: wifi-reg_on-h { 573e7a09590STomeu Vizoso rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 574e7a09590STomeu Vizoso }; 575e7a09590STomeu Vizoso }; 57610f595eeSRobin Murphy 57710f595eeSRobin Murphy sdmmc { 57810f595eeSRobin Murphy sdmmc0_det_l: sdmmc0-det-l { 57910f595eeSRobin Murphy rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; 58010f595eeSRobin Murphy }; 58110f595eeSRobin Murphy 58210f595eeSRobin Murphy sdmmc0_pwr_h: sdmmc0-pwr-h { 58310f595eeSRobin Murphy rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 58410f595eeSRobin Murphy }; 58510f595eeSRobin Murphy }; 586e7a09590STomeu Vizoso}; 587e7a09590STomeu Vizoso 588e7a09590STomeu Vizoso&pmu_io_domains { 589e7a09590STomeu Vizoso pmu1830-supply = <&vcc_3v0>; 590e7a09590STomeu Vizoso status = "okay"; 591e7a09590STomeu Vizoso}; 592e7a09590STomeu Vizoso 593e7a09590STomeu Vizoso&pwm0 { 594e7a09590STomeu Vizoso status = "okay"; 595e7a09590STomeu Vizoso}; 596e7a09590STomeu Vizoso 597e7a09590STomeu Vizoso&pwm1 { 598e7a09590STomeu Vizoso status = "okay"; 599e7a09590STomeu Vizoso}; 600e7a09590STomeu Vizoso 601e7a09590STomeu Vizoso&pwm2 { 602e7a09590STomeu Vizoso pinctrl-names = "active"; 603e7a09590STomeu Vizoso pinctrl-0 = <&pwm2_pin_pull_down>; 604e7a09590STomeu Vizoso status = "okay"; 605e7a09590STomeu Vizoso}; 606e7a09590STomeu Vizoso 607e7a09590STomeu Vizoso&saradc { 608e7a09590STomeu Vizoso vref-supply = <&vcca1v8_s3>; 609e7a09590STomeu Vizoso status = "okay"; 610e7a09590STomeu Vizoso}; 611e7a09590STomeu Vizoso 612e7a09590STomeu Vizoso&sdhci { 613e7a09590STomeu Vizoso bus-width = <8>; 614c62ffaf5SRobin Murphy mmc-hs200-1_8v; 615e7a09590STomeu Vizoso non-removable; 616e7a09590STomeu Vizoso status = "okay"; 617e7a09590STomeu Vizoso}; 618e7a09590STomeu Vizoso 619e7a09590STomeu Vizoso&sdio0 { 620e7a09590STomeu Vizoso bus-width = <4>; 621e7a09590STomeu Vizoso cap-sd-highspeed; 622e7a09590STomeu Vizoso cap-sdio-irq; 623e7a09590STomeu Vizoso keep-power-in-suspend; 624e7a09590STomeu Vizoso mmc-pwrseq = <&sdio_pwrseq>; 625e7a09590STomeu Vizoso non-removable; 626e7a09590STomeu Vizoso pinctrl-names = "default"; 627e7a09590STomeu Vizoso pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; 628e7a09590STomeu Vizoso sd-uhs-sdr104; 629e7a09590STomeu Vizoso status = "okay"; 630e7a09590STomeu Vizoso}; 631e7a09590STomeu Vizoso 632e7a09590STomeu Vizoso&sdmmc { 633e7a09590STomeu Vizoso bus-width = <4>; 634e7a09590STomeu Vizoso cap-sd-highspeed; 635e7a09590STomeu Vizoso cap-mmc-highspeed; 63610f595eeSRobin Murphy cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 637e7a09590STomeu Vizoso disable-wp; 638e7a09590STomeu Vizoso pinctrl-names = "default"; 63910f595eeSRobin Murphy pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc0_det_l>; 640e7a09590STomeu Vizoso sd-uhs-sdr104; 641e7a09590STomeu Vizoso vmmc-supply = <&vcc3v0_sd>; 642e7a09590STomeu Vizoso vqmmc-supply = <&vcc_sdio>; 643e7a09590STomeu Vizoso status = "okay"; 644e7a09590STomeu Vizoso}; 645e7a09590STomeu Vizoso 646e7a09590STomeu Vizoso&tcphy0 { 647e7a09590STomeu Vizoso status = "okay"; 648e7a09590STomeu Vizoso}; 649e7a09590STomeu Vizoso 650e7a09590STomeu Vizoso&tcphy1 { 651e7a09590STomeu Vizoso status = "okay"; 652e7a09590STomeu Vizoso}; 653e7a09590STomeu Vizoso 654e7a09590STomeu Vizoso&tsadc { 655e7a09590STomeu Vizoso /* tshut mode 0:CRU 1:GPIO */ 656e7a09590STomeu Vizoso rockchip,hw-tshut-mode = <1>; 657e7a09590STomeu Vizoso /* tshut polarity 0:LOW 1:HIGH */ 658e7a09590STomeu Vizoso rockchip,hw-tshut-polarity = <1>; 659e7a09590STomeu Vizoso status = "okay"; 660e7a09590STomeu Vizoso}; 661e7a09590STomeu Vizoso 662e7a09590STomeu Vizoso&u2phy0 { 663e7a09590STomeu Vizoso status = "okay"; 664e7a09590STomeu Vizoso}; 665e7a09590STomeu Vizoso 666e7a09590STomeu Vizoso&u2phy0_host { 667e7a09590STomeu Vizoso status = "okay"; 668e7a09590STomeu Vizoso}; 669e7a09590STomeu Vizoso 670e7a09590STomeu Vizoso&u2phy0_otg { 671e7a09590STomeu Vizoso status = "okay"; 672e7a09590STomeu Vizoso}; 673e7a09590STomeu Vizoso 674e7a09590STomeu Vizoso&u2phy1 { 675e7a09590STomeu Vizoso status = "okay"; 676e7a09590STomeu Vizoso}; 677e7a09590STomeu Vizoso 678e7a09590STomeu Vizoso&u2phy1_host { 679e7a09590STomeu Vizoso status = "okay"; 680e7a09590STomeu Vizoso}; 681e7a09590STomeu Vizoso 682e7a09590STomeu Vizoso&u2phy1_otg { 683e7a09590STomeu Vizoso status = "okay"; 684e7a09590STomeu Vizoso}; 685e7a09590STomeu Vizoso 686e7a09590STomeu Vizoso&uart0 { 687e7a09590STomeu Vizoso pinctrl-names = "default"; 688e7a09590STomeu Vizoso pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>; 689e7a09590STomeu Vizoso status = "okay"; 6903e2f0bb7SRobin Murphy 6913e2f0bb7SRobin Murphy bluetooth { 6923e2f0bb7SRobin Murphy compatible = "brcm,bcm43438-bt"; 6933e2f0bb7SRobin Murphy clocks = <&rk808 1>; 6943e2f0bb7SRobin Murphy clock-names = "lpo"; 6953e2f0bb7SRobin Murphy device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>; 6963e2f0bb7SRobin Murphy host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; 6973e2f0bb7SRobin Murphy shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; 6983e2f0bb7SRobin Murphy max-speed = <4000000>; 6993e2f0bb7SRobin Murphy pinctrl-names = "default"; 7003e2f0bb7SRobin Murphy pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>; 7013e2f0bb7SRobin Murphy vbat-supply = <&vcc3v3_sys>; 7023e2f0bb7SRobin Murphy vddio-supply = <&vcc_1v8>; 7033e2f0bb7SRobin Murphy }; 704e7a09590STomeu Vizoso}; 705e7a09590STomeu Vizoso 706e7a09590STomeu Vizoso&uart2 { 707e7a09590STomeu Vizoso status = "okay"; 708e7a09590STomeu Vizoso}; 709e7a09590STomeu Vizoso 710e7a09590STomeu Vizoso&usbdrd3_0 { 711e7a09590STomeu Vizoso status = "okay"; 712e7a09590STomeu Vizoso}; 713e7a09590STomeu Vizoso 714e7a09590STomeu Vizoso&usbdrd3_1 { 715e7a09590STomeu Vizoso status = "okay"; 716e7a09590STomeu Vizoso}; 717e7a09590STomeu Vizoso 718e7a09590STomeu Vizoso&usbdrd_dwc3_0 { 719e7a09590STomeu Vizoso status = "okay"; 720e7a09590STomeu Vizoso}; 721e7a09590STomeu Vizoso 722e7a09590STomeu Vizoso&usbdrd_dwc3_1 { 723e7a09590STomeu Vizoso dr_mode = "host"; 724e7a09590STomeu Vizoso status = "okay"; 725e7a09590STomeu Vizoso}; 726e7a09590STomeu Vizoso 727e7a09590STomeu Vizoso&usb_host0_ehci { 728e7a09590STomeu Vizoso status = "okay"; 729e7a09590STomeu Vizoso}; 730e7a09590STomeu Vizoso 731e7a09590STomeu Vizoso&usb_host0_ohci { 732e7a09590STomeu Vizoso status = "okay"; 733e7a09590STomeu Vizoso}; 734e7a09590STomeu Vizoso 735e7a09590STomeu Vizoso&usb_host1_ehci { 736e7a09590STomeu Vizoso status = "okay"; 737e7a09590STomeu Vizoso}; 738e7a09590STomeu Vizoso 739e7a09590STomeu Vizoso&usb_host1_ohci { 740e7a09590STomeu Vizoso status = "okay"; 741e7a09590STomeu Vizoso}; 742e7a09590STomeu Vizoso 743e7a09590STomeu Vizoso&vopb { 744e7a09590STomeu Vizoso status = "okay"; 745e7a09590STomeu Vizoso}; 746e7a09590STomeu Vizoso 747e7a09590STomeu Vizoso&vopb_mmu { 748e7a09590STomeu Vizoso status = "okay"; 749e7a09590STomeu Vizoso}; 750e7a09590STomeu Vizoso 751e7a09590STomeu Vizoso&vopl { 752e7a09590STomeu Vizoso status = "okay"; 753e7a09590STomeu Vizoso}; 754e7a09590STomeu Vizoso 755e7a09590STomeu Vizoso&vopl_mmu { 756e7a09590STomeu Vizoso status = "okay"; 757e7a09590STomeu Vizoso}; 758