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 */ 51e7a09590STomeu Vizoso vcc1v8_s3: vcca1v8_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 74e7a09590STomeu Vizoso vbus_typec: vbus-typec { 75e7a09590STomeu Vizoso compatible = "regulator-fixed"; 76e7a09590STomeu Vizoso regulator-min-microvolt = <5000000>; 77e7a09590STomeu Vizoso regulator-max-microvolt = <5000000>; 78e7a09590STomeu Vizoso regulator-name = "vbus_typec"; 79e7a09590STomeu Vizoso }; 80e7a09590STomeu Vizoso 81e7a09590STomeu Vizoso gpio-keys { 82e7a09590STomeu Vizoso compatible = "gpio-keys"; 83e7a09590STomeu Vizoso autorepeat; 84e7a09590STomeu Vizoso pinctrl-names = "default"; 85e7a09590STomeu Vizoso pinctrl-0 = <&power_key>; 86e7a09590STomeu Vizoso 87e7a09590STomeu Vizoso power { 88e7a09590STomeu Vizoso debounce-interval = <100>; 89e7a09590STomeu Vizoso gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 90e7a09590STomeu Vizoso label = "GPIO Key Power"; 91e7a09590STomeu Vizoso linux,code = <KEY_POWER>; 92e7a09590STomeu Vizoso wakeup-source; 93e7a09590STomeu Vizoso }; 94e7a09590STomeu Vizoso }; 95e7a09590STomeu Vizoso 96e7a09590STomeu Vizoso leds: gpio-leds { 97e7a09590STomeu Vizoso compatible = "gpio-leds"; 98e7a09590STomeu Vizoso pinctrl-names = "default"; 99e7a09590STomeu Vizoso pinctrl-0 = <&leds_gpio>; 100e7a09590STomeu Vizoso 101e7a09590STomeu Vizoso status { 102e7a09590STomeu Vizoso gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; 103e7a09590STomeu Vizoso label = "status_led"; 104e7a09590STomeu Vizoso linux,default-trigger = "heartbeat"; 105e7a09590STomeu Vizoso }; 106e7a09590STomeu Vizoso }; 107e7a09590STomeu Vizoso 108e7a09590STomeu Vizoso sdio_pwrseq: sdio-pwrseq { 109e7a09590STomeu Vizoso compatible = "mmc-pwrseq-simple"; 110e7a09590STomeu Vizoso clocks = <&rk808 1>; 111e7a09590STomeu Vizoso clock-names = "ext_clock"; 112e7a09590STomeu Vizoso pinctrl-names = "default"; 113e7a09590STomeu Vizoso pinctrl-0 = <&wifi_reg_on_h>; 114e7a09590STomeu Vizoso reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; 115e7a09590STomeu Vizoso }; 116e7a09590STomeu Vizoso}; 117e7a09590STomeu Vizoso 118e7a09590STomeu Vizoso&cpu_b0 { 119e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_b>; 120e7a09590STomeu Vizoso}; 121e7a09590STomeu Vizoso 122e7a09590STomeu Vizoso&cpu_b1 { 123e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_b>; 124e7a09590STomeu Vizoso}; 125e7a09590STomeu Vizoso 126e7a09590STomeu Vizoso&cpu_l0 { 127e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_l>; 128e7a09590STomeu Vizoso}; 129e7a09590STomeu Vizoso 130e7a09590STomeu Vizoso&cpu_l1 { 131e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_l>; 132e7a09590STomeu Vizoso}; 133e7a09590STomeu Vizoso 134e7a09590STomeu Vizoso&cpu_l2 { 135e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_l>; 136e7a09590STomeu Vizoso}; 137e7a09590STomeu Vizoso 138e7a09590STomeu Vizoso&cpu_l3 { 139e7a09590STomeu Vizoso cpu-supply = <&vdd_cpu_l>; 140e7a09590STomeu Vizoso}; 141e7a09590STomeu Vizoso 142e7a09590STomeu Vizoso&emmc_phy { 143e7a09590STomeu Vizoso status = "okay"; 144e7a09590STomeu Vizoso}; 145e7a09590STomeu Vizoso 146e7a09590STomeu Vizoso&gmac { 147e7a09590STomeu Vizoso assigned-clock-parents = <&clkin_gmac>; 148e7a09590STomeu Vizoso assigned-clocks = <&cru SCLK_RMII_SRC>; 149e7a09590STomeu Vizoso clock_in_out = "input"; 150e7a09590STomeu Vizoso pinctrl-names = "default"; 1511a4e6203SRobin Murphy pinctrl-0 = <&rgmii_pins>, <&phy_intb>, <&phy_rstb>; 1521a4e6203SRobin Murphy phy-handle = <&rtl8211e>; 153e7a09590STomeu Vizoso phy-mode = "rgmii"; 154e7a09590STomeu Vizoso phy-supply = <&vcc3v3_s3>; 155e7a09590STomeu Vizoso snps,reset-active-low; 1561a4e6203SRobin Murphy snps,reset-delays-us = <0 10000 30000>; 157e7a09590STomeu Vizoso snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; 158e7a09590STomeu Vizoso tx_delay = <0x28>; 159e7a09590STomeu Vizoso rx_delay = <0x11>; 160e7a09590STomeu Vizoso status = "okay"; 1611a4e6203SRobin Murphy 1621a4e6203SRobin Murphy mdio { 1631a4e6203SRobin Murphy compatible = "snps,dwmac-mdio"; 1641a4e6203SRobin Murphy #address-cells = <1>; 1651a4e6203SRobin Murphy #size-cells = <0>; 1661a4e6203SRobin Murphy 1671a4e6203SRobin Murphy rtl8211e: phy@1 { 1681a4e6203SRobin Murphy reg = <1>; 1691a4e6203SRobin Murphy interrupt-parent = <&gpio3>; 1701a4e6203SRobin Murphy interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>; 1711a4e6203SRobin Murphy }; 1721a4e6203SRobin Murphy }; 173e7a09590STomeu Vizoso}; 174e7a09590STomeu Vizoso 175e7a09590STomeu Vizoso&gpu { 176e7a09590STomeu Vizoso mali-supply = <&vdd_gpu>; 177e7a09590STomeu Vizoso status = "okay"; 178e7a09590STomeu Vizoso}; 179e7a09590STomeu Vizoso 180e7a09590STomeu Vizoso&hdmi { 181e7a09590STomeu Vizoso ddc-i2c-bus = <&i2c7>; 182e7a09590STomeu Vizoso pinctrl-names = "default"; 183e7a09590STomeu Vizoso pinctrl-0 = <&hdmi_cec>; 184e7a09590STomeu Vizoso status = "okay"; 185e7a09590STomeu Vizoso}; 186e7a09590STomeu Vizoso 187f94ffd95SRobin Murphy&hdmi_sound { 188f94ffd95SRobin Murphy status = "okay"; 189f94ffd95SRobin Murphy}; 190f94ffd95SRobin Murphy 191e7a09590STomeu Vizoso&i2c0 { 192e7a09590STomeu Vizoso clock-frequency = <400000>; 193e7a09590STomeu Vizoso i2c-scl-rising-time-ns = <160>; 194e7a09590STomeu Vizoso i2c-scl-falling-time-ns = <30>; 195e7a09590STomeu Vizoso status = "okay"; 196e7a09590STomeu Vizoso 197e7a09590STomeu Vizoso vdd_cpu_b: regulator@40 { 198e7a09590STomeu Vizoso compatible = "silergy,syr827"; 199e7a09590STomeu Vizoso reg = <0x40>; 200e7a09590STomeu Vizoso fcs,suspend-voltage-selector = <1>; 201e7a09590STomeu Vizoso pinctrl-names = "default"; 202e7a09590STomeu Vizoso pinctrl-0 = <&cpu_b_sleep>; 203e7a09590STomeu Vizoso regulator-always-on; 204e7a09590STomeu Vizoso regulator-boot-on; 205e7a09590STomeu Vizoso regulator-min-microvolt = <712500>; 206e7a09590STomeu Vizoso regulator-max-microvolt = <1500000>; 207e7a09590STomeu Vizoso regulator-name = "vdd_cpu_b"; 208e7a09590STomeu Vizoso regulator-ramp-delay = <1000>; 209e7a09590STomeu Vizoso vin-supply = <&vcc3v3_sys>; 210e7a09590STomeu Vizoso 211e7a09590STomeu Vizoso regulator-state-mem { 212e7a09590STomeu Vizoso regulator-off-in-suspend; 213e7a09590STomeu Vizoso }; 214e7a09590STomeu Vizoso }; 215e7a09590STomeu Vizoso 216e7a09590STomeu Vizoso vdd_gpu: regulator@41 { 217e7a09590STomeu Vizoso compatible = "silergy,syr828"; 218e7a09590STomeu Vizoso reg = <0x41>; 219e7a09590STomeu Vizoso fcs,suspend-voltage-selector = <1>; 220e7a09590STomeu Vizoso pinctrl-names = "default"; 221e7a09590STomeu Vizoso pinctrl-0 = <&gpu_sleep>; 222e7a09590STomeu Vizoso regulator-always-on; 223e7a09590STomeu Vizoso regulator-boot-on; 224e7a09590STomeu Vizoso regulator-min-microvolt = <712500>; 225e7a09590STomeu Vizoso regulator-max-microvolt = <1500000>; 226e7a09590STomeu Vizoso regulator-name = "vdd_gpu"; 227e7a09590STomeu Vizoso regulator-ramp-delay = <1000>; 228e7a09590STomeu Vizoso vin-supply = <&vcc3v3_sys>; 229e7a09590STomeu Vizoso 230e7a09590STomeu Vizoso regulator-state-mem { 231e7a09590STomeu Vizoso regulator-off-in-suspend; 232e7a09590STomeu Vizoso }; 233e7a09590STomeu Vizoso }; 234e7a09590STomeu Vizoso 235e7a09590STomeu Vizoso rk808: pmic@1b { 236e7a09590STomeu Vizoso compatible = "rockchip,rk808"; 237e7a09590STomeu Vizoso reg = <0x1b>; 2383e2f0bb7SRobin Murphy clock-output-names = "xin32k", "rtc_clko_wifi"; 239e7a09590STomeu Vizoso #clock-cells = <1>; 240e7a09590STomeu Vizoso interrupt-parent = <&gpio1>; 241e7a09590STomeu Vizoso interrupts = <21 IRQ_TYPE_LEVEL_LOW>; 242e7a09590STomeu Vizoso pinctrl-names = "default"; 243e7a09590STomeu Vizoso pinctrl-0 = <&pmic_int_l>; 244e7a09590STomeu Vizoso rockchip,system-power-controller; 245e7a09590STomeu Vizoso wakeup-source; 246e7a09590STomeu Vizoso 247e7a09590STomeu Vizoso vcc1-supply = <&vcc3v3_sys>; 248e7a09590STomeu Vizoso vcc2-supply = <&vcc3v3_sys>; 249e7a09590STomeu Vizoso vcc3-supply = <&vcc3v3_sys>; 250e7a09590STomeu Vizoso vcc4-supply = <&vcc3v3_sys>; 251e7a09590STomeu Vizoso vcc6-supply = <&vcc3v3_sys>; 252e7a09590STomeu Vizoso vcc7-supply = <&vcc3v3_sys>; 253e7a09590STomeu Vizoso vcc8-supply = <&vcc3v3_sys>; 254e7a09590STomeu Vizoso vcc9-supply = <&vcc3v3_sys>; 255e7a09590STomeu Vizoso vcc10-supply = <&vcc3v3_sys>; 256e7a09590STomeu Vizoso vcc11-supply = <&vcc3v3_sys>; 257e7a09590STomeu Vizoso vcc12-supply = <&vcc3v3_sys>; 258e7a09590STomeu Vizoso vddio-supply = <&vcc_3v0>; 259e7a09590STomeu Vizoso 260e7a09590STomeu Vizoso regulators { 261e7a09590STomeu Vizoso vdd_center: DCDC_REG1 { 262e7a09590STomeu Vizoso regulator-always-on; 263e7a09590STomeu Vizoso regulator-boot-on; 264e7a09590STomeu Vizoso regulator-min-microvolt = <750000>; 265e7a09590STomeu Vizoso regulator-max-microvolt = <1350000>; 266e7a09590STomeu Vizoso regulator-name = "vdd_center"; 267e7a09590STomeu Vizoso regulator-ramp-delay = <6001>; 268e7a09590STomeu Vizoso 269e7a09590STomeu Vizoso regulator-state-mem { 270e7a09590STomeu Vizoso regulator-off-in-suspend; 271e7a09590STomeu Vizoso }; 272e7a09590STomeu Vizoso }; 273e7a09590STomeu Vizoso 274e7a09590STomeu Vizoso vdd_cpu_l: DCDC_REG2 { 275e7a09590STomeu Vizoso regulator-always-on; 276e7a09590STomeu Vizoso regulator-boot-on; 277e7a09590STomeu Vizoso regulator-min-microvolt = <750000>; 278e7a09590STomeu Vizoso regulator-max-microvolt = <1350000>; 279e7a09590STomeu Vizoso regulator-name = "vdd_cpu_l"; 280e7a09590STomeu Vizoso regulator-ramp-delay = <6001>; 281e7a09590STomeu Vizoso 282e7a09590STomeu Vizoso regulator-state-mem { 283e7a09590STomeu Vizoso regulator-off-in-suspend; 284e7a09590STomeu Vizoso }; 285e7a09590STomeu Vizoso }; 286e7a09590STomeu Vizoso 287e7a09590STomeu Vizoso vcc_ddr: DCDC_REG3 { 288e7a09590STomeu Vizoso regulator-always-on; 289e7a09590STomeu Vizoso regulator-boot-on; 290e7a09590STomeu Vizoso regulator-name = "vcc_ddr"; 291e7a09590STomeu Vizoso 292e7a09590STomeu Vizoso regulator-state-mem { 293e7a09590STomeu Vizoso regulator-on-in-suspend; 294e7a09590STomeu Vizoso }; 295e7a09590STomeu Vizoso }; 296e7a09590STomeu Vizoso 297e7a09590STomeu Vizoso vcc_1v8: DCDC_REG4 { 298e7a09590STomeu Vizoso regulator-always-on; 299e7a09590STomeu Vizoso regulator-boot-on; 300e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 301e7a09590STomeu Vizoso regulator-max-microvolt = <1800000>; 302e7a09590STomeu Vizoso regulator-name = "vcc_1v8"; 303e7a09590STomeu Vizoso 304e7a09590STomeu Vizoso regulator-state-mem { 305e7a09590STomeu Vizoso regulator-on-in-suspend; 306e7a09590STomeu Vizoso regulator-suspend-microvolt = <1800000>; 307e7a09590STomeu Vizoso }; 308e7a09590STomeu Vizoso }; 309e7a09590STomeu Vizoso 310e7a09590STomeu Vizoso vcc1v8_cam: LDO_REG1 { 311e7a09590STomeu Vizoso regulator-always-on; 312e7a09590STomeu Vizoso regulator-boot-on; 313e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 314e7a09590STomeu Vizoso regulator-max-microvolt = <1800000>; 315e7a09590STomeu Vizoso regulator-name = "vcc1v8_cam"; 316e7a09590STomeu Vizoso 317e7a09590STomeu Vizoso regulator-state-mem { 318e7a09590STomeu Vizoso regulator-off-in-suspend; 319e7a09590STomeu Vizoso }; 320e7a09590STomeu Vizoso }; 321e7a09590STomeu Vizoso 322e7a09590STomeu Vizoso vcc3v0_touch: LDO_REG2 { 323e7a09590STomeu Vizoso regulator-always-on; 324e7a09590STomeu Vizoso regulator-boot-on; 325e7a09590STomeu Vizoso regulator-min-microvolt = <3000000>; 326e7a09590STomeu Vizoso regulator-max-microvolt = <3000000>; 327e7a09590STomeu Vizoso regulator-name = "vcc3v0_touch"; 328e7a09590STomeu Vizoso 329e7a09590STomeu Vizoso regulator-state-mem { 330e7a09590STomeu Vizoso regulator-off-in-suspend; 331e7a09590STomeu Vizoso }; 332e7a09590STomeu Vizoso }; 333e7a09590STomeu Vizoso 334e7a09590STomeu Vizoso vcc1v8_pmupll: LDO_REG3 { 335e7a09590STomeu Vizoso regulator-always-on; 336e7a09590STomeu Vizoso regulator-boot-on; 337e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 338e7a09590STomeu Vizoso regulator-max-microvolt = <1800000>; 339e7a09590STomeu Vizoso regulator-name = "vcc1v8_pmupll"; 340e7a09590STomeu Vizoso 341e7a09590STomeu Vizoso regulator-state-mem { 342e7a09590STomeu Vizoso regulator-on-in-suspend; 343e7a09590STomeu Vizoso regulator-suspend-microvolt = <1800000>; 344e7a09590STomeu Vizoso }; 345e7a09590STomeu Vizoso }; 346e7a09590STomeu Vizoso 347e7a09590STomeu Vizoso vcc_sdio: LDO_REG4 { 348e7a09590STomeu Vizoso regulator-always-on; 349e7a09590STomeu Vizoso regulator-boot-on; 350e7a09590STomeu Vizoso regulator-init-microvolt = <3000000>; 351e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 352e7a09590STomeu Vizoso regulator-max-microvolt = <3300000>; 353e7a09590STomeu Vizoso regulator-name = "vcc_sdio"; 354e7a09590STomeu Vizoso 355e7a09590STomeu Vizoso regulator-state-mem { 356e7a09590STomeu Vizoso regulator-on-in-suspend; 357e7a09590STomeu Vizoso regulator-suspend-microvolt = <3000000>; 358e7a09590STomeu Vizoso }; 359e7a09590STomeu Vizoso }; 360e7a09590STomeu Vizoso 361e7a09590STomeu Vizoso vcca3v0_codec: LDO_REG5 { 362e7a09590STomeu Vizoso regulator-always-on; 363e7a09590STomeu Vizoso regulator-boot-on; 364e7a09590STomeu Vizoso regulator-min-microvolt = <3000000>; 365e7a09590STomeu Vizoso regulator-max-microvolt = <3000000>; 366e7a09590STomeu Vizoso regulator-name = "vcca3v0_codec"; 367e7a09590STomeu Vizoso 368e7a09590STomeu Vizoso regulator-state-mem { 369e7a09590STomeu Vizoso regulator-off-in-suspend; 370e7a09590STomeu Vizoso }; 371e7a09590STomeu Vizoso }; 372e7a09590STomeu Vizoso 373e7a09590STomeu Vizoso vcc_1v5: LDO_REG6 { 374e7a09590STomeu Vizoso regulator-always-on; 375e7a09590STomeu Vizoso regulator-boot-on; 376e7a09590STomeu Vizoso regulator-min-microvolt = <1500000>; 377e7a09590STomeu Vizoso regulator-max-microvolt = <1500000>; 378e7a09590STomeu Vizoso regulator-name = "vcc_1v5"; 379e7a09590STomeu Vizoso 380e7a09590STomeu Vizoso regulator-state-mem { 381e7a09590STomeu Vizoso regulator-on-in-suspend; 382e7a09590STomeu Vizoso regulator-suspend-microvolt = <1500000>; 383e7a09590STomeu Vizoso }; 384e7a09590STomeu Vizoso }; 385e7a09590STomeu Vizoso 386e7a09590STomeu Vizoso vcca1v8_codec: LDO_REG7 { 387e7a09590STomeu Vizoso regulator-always-on; 388e7a09590STomeu Vizoso regulator-boot-on; 389e7a09590STomeu Vizoso regulator-min-microvolt = <1800000>; 390e7a09590STomeu Vizoso regulator-max-microvolt = <1800000>; 391e7a09590STomeu Vizoso regulator-name = "vcca1v8_codec"; 392e7a09590STomeu Vizoso 393e7a09590STomeu Vizoso regulator-state-mem { 394e7a09590STomeu Vizoso regulator-off-in-suspend; 395e7a09590STomeu Vizoso }; 396e7a09590STomeu Vizoso }; 397e7a09590STomeu Vizoso 398e7a09590STomeu Vizoso vcc_3v0: LDO_REG8 { 399e7a09590STomeu Vizoso regulator-always-on; 400e7a09590STomeu Vizoso regulator-boot-on; 401e7a09590STomeu Vizoso regulator-min-microvolt = <3000000>; 402e7a09590STomeu Vizoso regulator-max-microvolt = <3000000>; 403e7a09590STomeu Vizoso regulator-name = "vcc_3v0"; 404e7a09590STomeu Vizoso 405e7a09590STomeu Vizoso regulator-state-mem { 406e7a09590STomeu Vizoso regulator-on-in-suspend; 407e7a09590STomeu Vizoso regulator-suspend-microvolt = <3000000>; 408e7a09590STomeu Vizoso }; 409e7a09590STomeu Vizoso }; 410e7a09590STomeu Vizoso 411e7a09590STomeu Vizoso vcc3v3_s3: SWITCH_REG1 { 412e7a09590STomeu Vizoso regulator-always-on; 413e7a09590STomeu Vizoso regulator-boot-on; 414e7a09590STomeu Vizoso regulator-name = "vcc3v3_s3"; 415e7a09590STomeu Vizoso 416e7a09590STomeu Vizoso regulator-state-mem { 417e7a09590STomeu Vizoso regulator-off-in-suspend; 418e7a09590STomeu Vizoso }; 419e7a09590STomeu Vizoso }; 420e7a09590STomeu Vizoso 421e7a09590STomeu Vizoso vcc3v3_s0: SWITCH_REG2 { 422e7a09590STomeu Vizoso regulator-always-on; 423e7a09590STomeu Vizoso regulator-boot-on; 424e7a09590STomeu Vizoso regulator-name = "vcc3v3_s0"; 425e7a09590STomeu Vizoso 426e7a09590STomeu Vizoso regulator-state-mem { 427e7a09590STomeu Vizoso regulator-off-in-suspend; 428e7a09590STomeu Vizoso }; 429e7a09590STomeu Vizoso }; 430e7a09590STomeu Vizoso }; 431e7a09590STomeu Vizoso }; 432e7a09590STomeu Vizoso}; 433e7a09590STomeu Vizoso 434e7a09590STomeu Vizoso&i2c1 { 435e7a09590STomeu Vizoso clock-frequency = <200000>; 436e7a09590STomeu Vizoso i2c-scl-rising-time-ns = <150>; 437e7a09590STomeu Vizoso i2c-scl-falling-time-ns = <30>; 438e7a09590STomeu Vizoso status = "okay"; 439e7a09590STomeu Vizoso}; 440e7a09590STomeu Vizoso 441e7a09590STomeu Vizoso&i2c2 { 442e7a09590STomeu Vizoso status = "okay"; 443e7a09590STomeu Vizoso}; 444e7a09590STomeu Vizoso 445e7a09590STomeu Vizoso&i2c4 { 446e7a09590STomeu Vizoso clock-frequency = <400000>; 447e7a09590STomeu Vizoso i2c-scl-rising-time-ns = <160>; 448e7a09590STomeu Vizoso i2c-scl-falling-time-ns = <30>; 449e7a09590STomeu Vizoso status = "okay"; 450e7a09590STomeu Vizoso 451e7a09590STomeu Vizoso fusb0: typec-portc@22 { 452e7a09590STomeu Vizoso compatible = "fcs,fusb302"; 453e7a09590STomeu Vizoso reg = <0x22>; 454e7a09590STomeu Vizoso interrupt-parent = <&gpio1>; 455e7a09590STomeu Vizoso interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>; 456e7a09590STomeu Vizoso pinctrl-names = "default"; 457e7a09590STomeu Vizoso pinctrl-0 = <&fusb0_int>; 458e7a09590STomeu Vizoso vbus-supply = <&vbus_typec>; 459e7a09590STomeu Vizoso }; 460e7a09590STomeu Vizoso}; 461e7a09590STomeu Vizoso 462e7a09590STomeu Vizoso&i2c7 { 463e7a09590STomeu Vizoso status = "okay"; 464e7a09590STomeu Vizoso}; 465e7a09590STomeu Vizoso 466f94ffd95SRobin Murphy&i2s2 { 467f94ffd95SRobin Murphy status = "okay"; 468f94ffd95SRobin Murphy}; 469f94ffd95SRobin Murphy 470e7a09590STomeu Vizoso&io_domains { 471e7a09590STomeu Vizoso bt656-supply = <&vcc_1v8>; 472e7a09590STomeu Vizoso audio-supply = <&vcca1v8_codec>; 473e7a09590STomeu Vizoso sdmmc-supply = <&vcc_sdio>; 474e7a09590STomeu Vizoso gpio1830-supply = <&vcc_3v0>; 475e7a09590STomeu Vizoso status = "okay"; 476e7a09590STomeu Vizoso}; 477e7a09590STomeu Vizoso 478e7a09590STomeu Vizoso&pcie_phy { 479e7a09590STomeu Vizoso assigned-clock-parents = <&cru SCLK_PCIEPHY_REF100M>; 480e7a09590STomeu Vizoso assigned-clock-rates = <100000000>; 481e7a09590STomeu Vizoso assigned-clocks = <&cru SCLK_PCIEPHY_REF>; 482e7a09590STomeu Vizoso status = "okay"; 483e7a09590STomeu Vizoso}; 484e7a09590STomeu Vizoso 485e7a09590STomeu Vizoso&pcie0 { 486e7a09590STomeu Vizoso ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>; 487e7a09590STomeu Vizoso max-link-speed = <2>; 488e7a09590STomeu Vizoso num-lanes = <4>; 489e7a09590STomeu Vizoso status = "okay"; 490e7a09590STomeu Vizoso}; 491e7a09590STomeu Vizoso 492e7a09590STomeu Vizoso&pinctrl { 493e7a09590STomeu Vizoso fusb30x { 494e7a09590STomeu Vizoso fusb0_int: fusb0-int { 495e7a09590STomeu Vizoso rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; 496e7a09590STomeu Vizoso }; 497e7a09590STomeu Vizoso }; 498e7a09590STomeu Vizoso 499e7a09590STomeu Vizoso gpio-leds { 500e7a09590STomeu Vizoso leds_gpio: leds-gpio { 501e7a09590STomeu Vizoso rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 502e7a09590STomeu Vizoso }; 503e7a09590STomeu Vizoso }; 504e7a09590STomeu Vizoso 5051a4e6203SRobin Murphy phy { 5061a4e6203SRobin Murphy phy_intb: phy-intb { 5071a4e6203SRobin Murphy rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; 5081a4e6203SRobin Murphy }; 5091a4e6203SRobin Murphy 5101a4e6203SRobin Murphy phy_rstb: phy-rstb { 5111a4e6203SRobin Murphy rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 5121a4e6203SRobin Murphy }; 5131a4e6203SRobin Murphy }; 5141a4e6203SRobin Murphy 515e7a09590STomeu Vizoso pmic { 516e7a09590STomeu Vizoso cpu_b_sleep: cpu-b-sleep { 517e7a09590STomeu Vizoso rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; 518e7a09590STomeu Vizoso }; 519e7a09590STomeu Vizoso 520e7a09590STomeu Vizoso gpu_sleep: gpu-sleep { 521e7a09590STomeu Vizoso rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; 522e7a09590STomeu Vizoso }; 523e7a09590STomeu Vizoso 524e7a09590STomeu Vizoso pmic_int_l: pmic-int-l { 525e7a09590STomeu Vizoso rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; 526e7a09590STomeu Vizoso }; 527e7a09590STomeu Vizoso }; 528e7a09590STomeu Vizoso 529e7a09590STomeu Vizoso rockchip-key { 530e7a09590STomeu Vizoso power_key: power-key { 531e7a09590STomeu Vizoso rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 532e7a09590STomeu Vizoso }; 533e7a09590STomeu Vizoso }; 534e7a09590STomeu Vizoso 5353e2f0bb7SRobin Murphy sdio { 5363e2f0bb7SRobin Murphy bt_host_wake_l: bt-host-wake-l { 5373e2f0bb7SRobin Murphy rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 5383e2f0bb7SRobin Murphy }; 5393e2f0bb7SRobin Murphy 5403e2f0bb7SRobin Murphy bt_reg_on_h: bt-reg-on-h { 5413e2f0bb7SRobin Murphy /* external pullup to VCC1V8_PMUPLL */ 5423e2f0bb7SRobin Murphy rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 5433e2f0bb7SRobin Murphy }; 5443e2f0bb7SRobin Murphy 5453e2f0bb7SRobin Murphy bt_wake_l: bt-wake-l { 5463e2f0bb7SRobin Murphy rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 5473e2f0bb7SRobin Murphy }; 5483e2f0bb7SRobin Murphy 549e7a09590STomeu Vizoso wifi_reg_on_h: wifi-reg_on-h { 550e7a09590STomeu Vizoso rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 551e7a09590STomeu Vizoso }; 552e7a09590STomeu Vizoso }; 55310f595eeSRobin Murphy 55410f595eeSRobin Murphy sdmmc { 55510f595eeSRobin Murphy sdmmc0_det_l: sdmmc0-det-l { 55610f595eeSRobin Murphy rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; 55710f595eeSRobin Murphy }; 55810f595eeSRobin Murphy 55910f595eeSRobin Murphy sdmmc0_pwr_h: sdmmc0-pwr-h { 56010f595eeSRobin Murphy rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 56110f595eeSRobin Murphy }; 56210f595eeSRobin Murphy }; 563e7a09590STomeu Vizoso}; 564e7a09590STomeu Vizoso 565e7a09590STomeu Vizoso&pmu_io_domains { 566e7a09590STomeu Vizoso pmu1830-supply = <&vcc_3v0>; 567e7a09590STomeu Vizoso status = "okay"; 568e7a09590STomeu Vizoso}; 569e7a09590STomeu Vizoso 570e7a09590STomeu Vizoso&pwm0 { 571e7a09590STomeu Vizoso status = "okay"; 572e7a09590STomeu Vizoso}; 573e7a09590STomeu Vizoso 574e7a09590STomeu Vizoso&pwm1 { 575e7a09590STomeu Vizoso status = "okay"; 576e7a09590STomeu Vizoso}; 577e7a09590STomeu Vizoso 578e7a09590STomeu Vizoso&pwm2 { 579e7a09590STomeu Vizoso pinctrl-names = "active"; 580e7a09590STomeu Vizoso pinctrl-0 = <&pwm2_pin_pull_down>; 581e7a09590STomeu Vizoso status = "okay"; 582e7a09590STomeu Vizoso}; 583e7a09590STomeu Vizoso 584e7a09590STomeu Vizoso&saradc { 585e7a09590STomeu Vizoso vref-supply = <&vcca1v8_s3>; 586e7a09590STomeu Vizoso status = "okay"; 587e7a09590STomeu Vizoso}; 588e7a09590STomeu Vizoso 589e7a09590STomeu Vizoso&sdhci { 590e7a09590STomeu Vizoso bus-width = <8>; 591c62ffaf5SRobin Murphy mmc-hs200-1_8v; 592e7a09590STomeu Vizoso non-removable; 593e7a09590STomeu Vizoso status = "okay"; 594e7a09590STomeu Vizoso}; 595e7a09590STomeu Vizoso 596e7a09590STomeu Vizoso&sdio0 { 597e7a09590STomeu Vizoso bus-width = <4>; 598e7a09590STomeu Vizoso cap-sd-highspeed; 599e7a09590STomeu Vizoso cap-sdio-irq; 600e7a09590STomeu Vizoso keep-power-in-suspend; 601e7a09590STomeu Vizoso mmc-pwrseq = <&sdio_pwrseq>; 602e7a09590STomeu Vizoso non-removable; 603e7a09590STomeu Vizoso pinctrl-names = "default"; 604e7a09590STomeu Vizoso pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; 605e7a09590STomeu Vizoso sd-uhs-sdr104; 606e7a09590STomeu Vizoso status = "okay"; 607e7a09590STomeu Vizoso}; 608e7a09590STomeu Vizoso 609e7a09590STomeu Vizoso&sdmmc { 610e7a09590STomeu Vizoso bus-width = <4>; 611e7a09590STomeu Vizoso cap-sd-highspeed; 612e7a09590STomeu Vizoso cap-mmc-highspeed; 61310f595eeSRobin Murphy cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 614e7a09590STomeu Vizoso disable-wp; 615e7a09590STomeu Vizoso pinctrl-names = "default"; 61610f595eeSRobin Murphy pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc0_det_l>; 617e7a09590STomeu Vizoso sd-uhs-sdr104; 618e7a09590STomeu Vizoso vmmc-supply = <&vcc3v0_sd>; 619e7a09590STomeu Vizoso vqmmc-supply = <&vcc_sdio>; 620e7a09590STomeu Vizoso status = "okay"; 621e7a09590STomeu Vizoso}; 622e7a09590STomeu Vizoso 623e7a09590STomeu Vizoso&tcphy0 { 624e7a09590STomeu Vizoso status = "okay"; 625e7a09590STomeu Vizoso}; 626e7a09590STomeu Vizoso 627e7a09590STomeu Vizoso&tcphy1 { 628e7a09590STomeu Vizoso status = "okay"; 629e7a09590STomeu Vizoso}; 630e7a09590STomeu Vizoso 631e7a09590STomeu Vizoso&tsadc { 632e7a09590STomeu Vizoso /* tshut mode 0:CRU 1:GPIO */ 633e7a09590STomeu Vizoso rockchip,hw-tshut-mode = <1>; 634e7a09590STomeu Vizoso /* tshut polarity 0:LOW 1:HIGH */ 635e7a09590STomeu Vizoso rockchip,hw-tshut-polarity = <1>; 636e7a09590STomeu Vizoso status = "okay"; 637e7a09590STomeu Vizoso}; 638e7a09590STomeu Vizoso 639e7a09590STomeu Vizoso&u2phy0 { 640e7a09590STomeu Vizoso status = "okay"; 641e7a09590STomeu Vizoso}; 642e7a09590STomeu Vizoso 643e7a09590STomeu Vizoso&u2phy0_host { 644e7a09590STomeu Vizoso status = "okay"; 645e7a09590STomeu Vizoso}; 646e7a09590STomeu Vizoso 647e7a09590STomeu Vizoso&u2phy0_otg { 648e7a09590STomeu Vizoso status = "okay"; 649e7a09590STomeu Vizoso}; 650e7a09590STomeu Vizoso 651e7a09590STomeu Vizoso&u2phy1 { 652e7a09590STomeu Vizoso status = "okay"; 653e7a09590STomeu Vizoso}; 654e7a09590STomeu Vizoso 655e7a09590STomeu Vizoso&u2phy1_host { 656e7a09590STomeu Vizoso status = "okay"; 657e7a09590STomeu Vizoso}; 658e7a09590STomeu Vizoso 659e7a09590STomeu Vizoso&u2phy1_otg { 660e7a09590STomeu Vizoso status = "okay"; 661e7a09590STomeu Vizoso}; 662e7a09590STomeu Vizoso 663e7a09590STomeu Vizoso&uart0 { 664e7a09590STomeu Vizoso pinctrl-names = "default"; 665e7a09590STomeu Vizoso pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>; 666e7a09590STomeu Vizoso status = "okay"; 6673e2f0bb7SRobin Murphy 6683e2f0bb7SRobin Murphy bluetooth { 6693e2f0bb7SRobin Murphy compatible = "brcm,bcm43438-bt"; 6703e2f0bb7SRobin Murphy clocks = <&rk808 1>; 6713e2f0bb7SRobin Murphy clock-names = "lpo"; 6723e2f0bb7SRobin Murphy device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>; 6733e2f0bb7SRobin Murphy host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; 6743e2f0bb7SRobin Murphy shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; 6753e2f0bb7SRobin Murphy max-speed = <4000000>; 6763e2f0bb7SRobin Murphy pinctrl-names = "default"; 6773e2f0bb7SRobin Murphy pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>; 6783e2f0bb7SRobin Murphy vbat-supply = <&vcc3v3_sys>; 6793e2f0bb7SRobin Murphy vddio-supply = <&vcc_1v8>; 6803e2f0bb7SRobin Murphy }; 681e7a09590STomeu Vizoso}; 682e7a09590STomeu Vizoso 683e7a09590STomeu Vizoso&uart2 { 684e7a09590STomeu Vizoso status = "okay"; 685e7a09590STomeu Vizoso}; 686e7a09590STomeu Vizoso 687e7a09590STomeu Vizoso&usbdrd3_0 { 688e7a09590STomeu Vizoso status = "okay"; 689e7a09590STomeu Vizoso}; 690e7a09590STomeu Vizoso 691e7a09590STomeu Vizoso&usbdrd3_1 { 692e7a09590STomeu Vizoso status = "okay"; 693e7a09590STomeu Vizoso}; 694e7a09590STomeu Vizoso 695e7a09590STomeu Vizoso&usbdrd_dwc3_0 { 696e7a09590STomeu Vizoso status = "okay"; 697e7a09590STomeu Vizoso}; 698e7a09590STomeu Vizoso 699e7a09590STomeu Vizoso&usbdrd_dwc3_1 { 700e7a09590STomeu Vizoso dr_mode = "host"; 701e7a09590STomeu Vizoso status = "okay"; 702e7a09590STomeu Vizoso}; 703e7a09590STomeu Vizoso 704e7a09590STomeu Vizoso&usb_host0_ehci { 705e7a09590STomeu Vizoso status = "okay"; 706e7a09590STomeu Vizoso}; 707e7a09590STomeu Vizoso 708e7a09590STomeu Vizoso&usb_host0_ohci { 709e7a09590STomeu Vizoso status = "okay"; 710e7a09590STomeu Vizoso}; 711e7a09590STomeu Vizoso 712e7a09590STomeu Vizoso&usb_host1_ehci { 713e7a09590STomeu Vizoso status = "okay"; 714e7a09590STomeu Vizoso}; 715e7a09590STomeu Vizoso 716e7a09590STomeu Vizoso&usb_host1_ohci { 717e7a09590STomeu Vizoso status = "okay"; 718e7a09590STomeu Vizoso}; 719e7a09590STomeu Vizoso 720e7a09590STomeu Vizoso&vopb { 721e7a09590STomeu Vizoso status = "okay"; 722e7a09590STomeu Vizoso}; 723e7a09590STomeu Vizoso 724e7a09590STomeu Vizoso&vopb_mmu { 725e7a09590STomeu Vizoso status = "okay"; 726e7a09590STomeu Vizoso}; 727e7a09590STomeu Vizoso 728e7a09590STomeu Vizoso&vopl { 729e7a09590STomeu Vizoso status = "okay"; 730e7a09590STomeu Vizoso}; 731e7a09590STomeu Vizoso 732e7a09590STomeu Vizoso&vopl_mmu { 733e7a09590STomeu Vizoso status = "okay"; 734e7a09590STomeu Vizoso}; 735