1c2aacceeSNick Xie// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c2aacceeSNick Xie/* 3c2aacceeSNick Xie * Copyright (c) 2019 Shenzhen Wesion Technology Co., Ltd. 4c2aacceeSNick Xie * (https://www.khadas.com) 5c2aacceeSNick Xie */ 6c2aacceeSNick Xie 7c2aacceeSNick Xie/dts-v1/; 8c2aacceeSNick Xie#include <dt-bindings/input/linux-event-codes.h> 9c043dee9SKrzysztof Kozlowski#include <dt-bindings/interrupt-controller/irq.h> 10c2aacceeSNick Xie#include <dt-bindings/pwm/pwm.h> 11c2aacceeSNick Xie#include "rk3399.dtsi" 12c2aacceeSNick Xie#include "rk3399-opp.dtsi" 13c2aacceeSNick Xie 14c2aacceeSNick Xie/ { 155dcbe7e3SHeiko Stuebner aliases { 165dcbe7e3SHeiko Stuebner mmc0 = &sdio0; 175dcbe7e3SHeiko Stuebner mmc1 = &sdmmc; 185dcbe7e3SHeiko Stuebner mmc2 = &sdhci; 195dcbe7e3SHeiko Stuebner }; 205dcbe7e3SHeiko Stuebner 21c2aacceeSNick Xie chosen { 22c2aacceeSNick Xie stdout-path = "serial2:1500000n8"; 23c2aacceeSNick Xie }; 24c2aacceeSNick Xie 25c2aacceeSNick Xie clkin_gmac: external-gmac-clock { 26c2aacceeSNick Xie compatible = "fixed-clock"; 27c2aacceeSNick Xie clock-frequency = <125000000>; 28c2aacceeSNick Xie clock-output-names = "clkin_gmac"; 29c2aacceeSNick Xie #clock-cells = <0>; 30c2aacceeSNick Xie }; 31c2aacceeSNick Xie 32c2aacceeSNick Xie sdio_pwrseq: sdio-pwrseq { 33c2aacceeSNick Xie compatible = "mmc-pwrseq-simple"; 34c2aacceeSNick Xie clocks = <&rk808 1>; 35c2aacceeSNick Xie clock-names = "ext_clock"; 36c2aacceeSNick Xie pinctrl-names = "default"; 37c2aacceeSNick Xie pinctrl-0 = <&wifi_enable_h>; 38c2aacceeSNick Xie 39c2aacceeSNick Xie /* 40c2aacceeSNick Xie * On the module itself this is one of these (depending 41c2aacceeSNick Xie * on the actual card populated): 42c2aacceeSNick Xie * - SDIO_RESET_L_WL_REG_ON 43c2aacceeSNick Xie * - PDN (power down when low) 44c2aacceeSNick Xie */ 45c2aacceeSNick Xie reset-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_LOW>; 46c2aacceeSNick Xie }; 47c2aacceeSNick Xie 48c2aacceeSNick Xie /* switched by pmic_sleep */ 49c2aacceeSNick Xie vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 { 50c2aacceeSNick Xie compatible = "regulator-fixed"; 51c2aacceeSNick Xie regulator-name = "vcc1v8_s3"; 52c2aacceeSNick Xie regulator-always-on; 53c2aacceeSNick Xie regulator-boot-on; 54c2aacceeSNick Xie regulator-min-microvolt = <1800000>; 55c2aacceeSNick Xie regulator-max-microvolt = <1800000>; 56c2aacceeSNick Xie vin-supply = <&vcc_1v8>; 57c2aacceeSNick Xie }; 58c2aacceeSNick Xie 59c2aacceeSNick Xie vcc3v3_pcie: vcc3v3-pcie-regulator { 60c2aacceeSNick Xie compatible = "regulator-fixed"; 61c2aacceeSNick Xie regulator-name = "vcc3v3_pcie"; 62c2aacceeSNick Xie regulator-always-on; 63c2aacceeSNick Xie regulator-boot-on; 64c2aacceeSNick Xie regulator-min-microvolt = <3300000>; 65c2aacceeSNick Xie regulator-max-microvolt = <3300000>; 66c2aacceeSNick Xie vin-supply = <&vsys_3v3>; 67c2aacceeSNick Xie }; 68c2aacceeSNick Xie 69c2aacceeSNick Xie /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */ 70c2aacceeSNick Xie vcc5v0_host: vcc5v0-host-regulator { 71c2aacceeSNick Xie compatible = "regulator-fixed"; 72c2aacceeSNick Xie enable-active-high; 73c2aacceeSNick Xie gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; 74c2aacceeSNick Xie pinctrl-names = "default"; 75c2aacceeSNick Xie pinctrl-0 = <&vcc5v0_host_en>; 76c2aacceeSNick Xie regulator-name = "vcc5v0_host"; 77c2aacceeSNick Xie regulator-always-on; 78c2aacceeSNick Xie vin-supply = <&vsys_5v0>; 79c2aacceeSNick Xie }; 80c2aacceeSNick Xie 81c2aacceeSNick Xie vdd_log: vdd-log { 82c2aacceeSNick Xie compatible = "pwm-regulator"; 83c2aacceeSNick Xie pwms = <&pwm2 0 25000 1>; 84dc570e8eSHeiko Stuebner pwm-supply = <&vsys_3v3>; 85c2aacceeSNick Xie regulator-name = "vdd_log"; 86c2aacceeSNick Xie regulator-always-on; 87c2aacceeSNick Xie regulator-boot-on; 88c2aacceeSNick Xie regulator-min-microvolt = <800000>; 89c2aacceeSNick Xie regulator-max-microvolt = <1400000>; 90c2aacceeSNick Xie }; 91c2aacceeSNick Xie 92c2aacceeSNick Xie vsys: vsys { 93c2aacceeSNick Xie compatible = "regulator-fixed"; 94c2aacceeSNick Xie regulator-name = "vsys"; 95c2aacceeSNick Xie regulator-always-on; 96c2aacceeSNick Xie regulator-boot-on; 97c2aacceeSNick Xie }; 98c2aacceeSNick Xie 99c2aacceeSNick Xie vsys_3v3: vsys-3v3 { 100c2aacceeSNick Xie compatible = "regulator-fixed"; 101c2aacceeSNick Xie regulator-name = "vsys_3v3"; 102c2aacceeSNick Xie regulator-always-on; 103c2aacceeSNick Xie regulator-boot-on; 104c2aacceeSNick Xie regulator-min-microvolt = <3300000>; 105c2aacceeSNick Xie regulator-max-microvolt = <3300000>; 106c2aacceeSNick Xie vin-supply = <&vsys>; 107c2aacceeSNick Xie }; 108c2aacceeSNick Xie 109c2aacceeSNick Xie vsys_5v0: vsys-5v0 { 110c2aacceeSNick Xie compatible = "regulator-fixed"; 111c2aacceeSNick Xie regulator-name = "vsys_5v0"; 112c2aacceeSNick Xie regulator-always-on; 113c2aacceeSNick Xie regulator-boot-on; 114c2aacceeSNick Xie regulator-min-microvolt = <5000000>; 115c2aacceeSNick Xie regulator-max-microvolt = <5000000>; 116c2aacceeSNick Xie vin-supply = <&vsys>; 117c2aacceeSNick Xie }; 118c2aacceeSNick Xie 119c2aacceeSNick Xie adc-keys { 120c2aacceeSNick Xie compatible = "adc-keys"; 121c2aacceeSNick Xie io-channels = <&saradc 1>; 122c2aacceeSNick Xie io-channel-names = "buttons"; 123c2aacceeSNick Xie keyup-threshold-microvolt = <1800000>; 124c2aacceeSNick Xie poll-interval = <100>; 125c2aacceeSNick Xie 126*f2bd2e76SJohan Jonker button-recovery { 127c2aacceeSNick Xie label = "Recovery"; 128c2aacceeSNick Xie linux,code = <KEY_VENDOR>; 129c2aacceeSNick Xie press-threshold-microvolt = <18000>; 130c2aacceeSNick Xie }; 131c2aacceeSNick Xie }; 132c2aacceeSNick Xie 133c2aacceeSNick Xie gpio-keys { 134c2aacceeSNick Xie compatible = "gpio-keys"; 135c2aacceeSNick Xie autorepeat; 136c2aacceeSNick Xie pinctrl-names = "default"; 137c2aacceeSNick Xie pinctrl-0 = <&pwrbtn>; 138c2aacceeSNick Xie 139517ed0ffSKrzysztof Kozlowski key-power { 140c2aacceeSNick Xie debounce-interval = <100>; 141c2aacceeSNick Xie gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 142c2aacceeSNick Xie label = "GPIO Key Power"; 143c2aacceeSNick Xie linux,code = <KEY_POWER>; 144c2aacceeSNick Xie wakeup-source; 145c2aacceeSNick Xie }; 146c2aacceeSNick Xie }; 147c2aacceeSNick Xie 14830a9a8c1SArtem Lapkin ir-receiver { 14930a9a8c1SArtem Lapkin compatible = "gpio-ir-receiver"; 15030a9a8c1SArtem Lapkin gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>; 15130a9a8c1SArtem Lapkin linux,rc-map-name = "rc-khadas"; 15230a9a8c1SArtem Lapkin pinctrl-names = "default"; 15330a9a8c1SArtem Lapkin pinctrl-0 = <&ir_rx>; 15430a9a8c1SArtem Lapkin }; 15530a9a8c1SArtem Lapkin 156c2aacceeSNick Xie leds { 157c2aacceeSNick Xie compatible = "gpio-leds"; 158c2aacceeSNick Xie pinctrl-names = "default"; 1596dd5e12cSJohan Jonker pinctrl-0 = <&sys_led_pin>, <&user_led_pin>; 160c2aacceeSNick Xie 1616dd5e12cSJohan Jonker sys_led: led-0 { 162c2aacceeSNick Xie label = "sys_led"; 163c2aacceeSNick Xie linux,default-trigger = "heartbeat"; 164c2aacceeSNick Xie gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 165c2aacceeSNick Xie }; 166c2aacceeSNick Xie 1676dd5e12cSJohan Jonker user_led: led-1 { 168c2aacceeSNick Xie label = "user_led"; 169c2aacceeSNick Xie default-state = "off"; 170c2aacceeSNick Xie gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>; 171c2aacceeSNick Xie }; 172c2aacceeSNick Xie }; 173c2aacceeSNick Xie 174c2aacceeSNick Xie fan: pwm-fan { 175c2aacceeSNick Xie compatible = "pwm-fan"; 176c2aacceeSNick Xie cooling-levels = <0 150 200 255>; 177c2aacceeSNick Xie #cooling-cells = <2>; 178c2aacceeSNick Xie fan-supply = <&vsys_5v0>; 179c2aacceeSNick Xie pwms = <&pwm0 0 40000 0>; 180c2aacceeSNick Xie }; 181c2aacceeSNick Xie}; 182c2aacceeSNick Xie 183c2aacceeSNick Xie&cpu_l0 { 184c2aacceeSNick Xie cpu-supply = <&vdd_cpu_l>; 185c2aacceeSNick Xie}; 186c2aacceeSNick Xie 187c2aacceeSNick Xie&cpu_l1 { 188c2aacceeSNick Xie cpu-supply = <&vdd_cpu_l>; 189c2aacceeSNick Xie}; 190c2aacceeSNick Xie 191c2aacceeSNick Xie&cpu_l2 { 192c2aacceeSNick Xie cpu-supply = <&vdd_cpu_l>; 193c2aacceeSNick Xie}; 194c2aacceeSNick Xie 195c2aacceeSNick Xie&cpu_l3 { 196c2aacceeSNick Xie cpu-supply = <&vdd_cpu_l>; 197c2aacceeSNick Xie}; 198c2aacceeSNick Xie 199c2aacceeSNick Xie&cpu_b0 { 200c2aacceeSNick Xie cpu-supply = <&vdd_cpu_b>; 201c2aacceeSNick Xie}; 202c2aacceeSNick Xie 203c2aacceeSNick Xie&cpu_b1 { 204c2aacceeSNick Xie cpu-supply = <&vdd_cpu_b>; 205c2aacceeSNick Xie}; 206c2aacceeSNick Xie 207c2aacceeSNick Xie&cpu_thermal { 208c2aacceeSNick Xie trips { 209c2aacceeSNick Xie cpu_warm: cpu_warm { 210c2aacceeSNick Xie temperature = <55000>; 211c2aacceeSNick Xie hysteresis = <2000>; 212c2aacceeSNick Xie type = "active"; 213c2aacceeSNick Xie }; 214c2aacceeSNick Xie 215c2aacceeSNick Xie cpu_hot: cpu_hot { 216c2aacceeSNick Xie temperature = <65000>; 217c2aacceeSNick Xie hysteresis = <2000>; 218c2aacceeSNick Xie type = "active"; 219c2aacceeSNick Xie }; 220c2aacceeSNick Xie }; 221c2aacceeSNick Xie 222c2aacceeSNick Xie cooling-maps { 223c2aacceeSNick Xie map2 { 224c2aacceeSNick Xie trip = <&cpu_warm>; 225c2aacceeSNick Xie cooling-device = <&fan THERMAL_NO_LIMIT 1>; 226c2aacceeSNick Xie }; 227c2aacceeSNick Xie 228c2aacceeSNick Xie map3 { 229c2aacceeSNick Xie trip = <&cpu_hot>; 230c2aacceeSNick Xie cooling-device = <&fan 2 THERMAL_NO_LIMIT>; 231c2aacceeSNick Xie }; 232c2aacceeSNick Xie }; 233c2aacceeSNick Xie}; 234c2aacceeSNick Xie 235c2aacceeSNick Xie&emmc_phy { 236c2aacceeSNick Xie status = "okay"; 237c2aacceeSNick Xie}; 238c2aacceeSNick Xie 239c2aacceeSNick Xie&gmac { 240c2aacceeSNick Xie assigned-clocks = <&cru SCLK_RMII_SRC>; 241c2aacceeSNick Xie assigned-clock-parents = <&clkin_gmac>; 242c2aacceeSNick Xie clock_in_out = "input"; 243c2aacceeSNick Xie phy-supply = <&vcc_lan>; 244c2aacceeSNick Xie phy-mode = "rgmii"; 245c2aacceeSNick Xie pinctrl-names = "default"; 246c2aacceeSNick Xie pinctrl-0 = <&rgmii_pins>; 247c2aacceeSNick Xie snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; 248c2aacceeSNick Xie snps,reset-active-low; 249c2aacceeSNick Xie snps,reset-delays-us = <0 10000 50000>; 250c2aacceeSNick Xie tx_delay = <0x28>; 251c2aacceeSNick Xie rx_delay = <0x11>; 252c2aacceeSNick Xie}; 253c2aacceeSNick Xie 254c2aacceeSNick Xie&gpu { 255c2aacceeSNick Xie mali-supply = <&vdd_gpu>; 256c2aacceeSNick Xie status = "okay"; 257c2aacceeSNick Xie}; 258c2aacceeSNick Xie 259c2aacceeSNick Xie&gpu_thermal { 260c2aacceeSNick Xie trips { 261c2aacceeSNick Xie gpu_warm: gpu_warm { 262c2aacceeSNick Xie temperature = <55000>; 263c2aacceeSNick Xie hysteresis = <2000>; 264c2aacceeSNick Xie type = "active"; 265c2aacceeSNick Xie }; 266c2aacceeSNick Xie 267c2aacceeSNick Xie gpu_hot: gpu_hot { 268c2aacceeSNick Xie temperature = <65000>; 269c2aacceeSNick Xie hysteresis = <2000>; 270c2aacceeSNick Xie type = "active"; 271c2aacceeSNick Xie }; 272c2aacceeSNick Xie }; 273c2aacceeSNick Xie 274c2aacceeSNick Xie cooling-maps { 275c2aacceeSNick Xie map1 { 276c2aacceeSNick Xie trip = <&gpu_warm>; 277c2aacceeSNick Xie cooling-device = <&fan THERMAL_NO_LIMIT 1>; 278c2aacceeSNick Xie }; 279c2aacceeSNick Xie 280c2aacceeSNick Xie map2 { 281c2aacceeSNick Xie trip = <&gpu_hot>; 282c2aacceeSNick Xie cooling-device = <&fan 2 THERMAL_NO_LIMIT>; 283c2aacceeSNick Xie }; 284c2aacceeSNick Xie }; 285c2aacceeSNick Xie}; 286c2aacceeSNick Xie 287c2aacceeSNick Xie&hdmi { 288c2aacceeSNick Xie ddc-i2c-bus = <&i2c3>; 289c2aacceeSNick Xie pinctrl-names = "default"; 290c2aacceeSNick Xie pinctrl-0 = <&hdmi_cec>; 291c2aacceeSNick Xie status = "okay"; 292c2aacceeSNick Xie}; 293c2aacceeSNick Xie 294c2aacceeSNick Xie&hdmi_sound { 295c2aacceeSNick Xie status = "okay"; 296c2aacceeSNick Xie}; 297c2aacceeSNick Xie 298c2aacceeSNick Xie&i2c3 { 299c2aacceeSNick Xie i2c-scl-rising-time-ns = <450>; 300c2aacceeSNick Xie i2c-scl-falling-time-ns = <15>; 301c2aacceeSNick Xie status = "okay"; 302c2aacceeSNick Xie}; 303c2aacceeSNick Xie 304c2aacceeSNick Xie&i2c4 { 305c2aacceeSNick Xie clock-frequency = <400000>; 306c2aacceeSNick Xie i2c-scl-rising-time-ns = <168>; 307c2aacceeSNick Xie i2c-scl-falling-time-ns = <4>; 308c2aacceeSNick Xie status = "okay"; 309c2aacceeSNick Xie 310c2aacceeSNick Xie rk808: pmic@1b { 311c2aacceeSNick Xie compatible = "rockchip,rk808"; 312c2aacceeSNick Xie reg = <0x1b>; 313c2aacceeSNick Xie interrupt-parent = <&gpio1>; 314c2aacceeSNick Xie interrupts = <RK_PC6 IRQ_TYPE_LEVEL_LOW>; 315c2aacceeSNick Xie #clock-cells = <1>; 316c2aacceeSNick Xie clock-output-names = "xin32k", "rk808-clkout2"; 317c2aacceeSNick Xie pinctrl-names = "default"; 318c2aacceeSNick Xie pinctrl-0 = <&pmic_int_l>; 319c2aacceeSNick Xie rockchip,system-power-controller; 320c2aacceeSNick Xie wakeup-source; 321c2aacceeSNick Xie 322c2aacceeSNick Xie vcc1-supply = <&vsys_3v3>; 323c2aacceeSNick Xie vcc2-supply = <&vsys_3v3>; 324c2aacceeSNick Xie vcc3-supply = <&vsys_3v3>; 325c2aacceeSNick Xie vcc4-supply = <&vsys_3v3>; 326c2aacceeSNick Xie vcc6-supply = <&vsys_3v3>; 327c2aacceeSNick Xie vcc7-supply = <&vsys_3v3>; 328c2aacceeSNick Xie vcc8-supply = <&vsys_3v3>; 329c2aacceeSNick Xie vcc9-supply = <&vsys_3v3>; 330c2aacceeSNick Xie vcc10-supply = <&vsys_3v3>; 331c2aacceeSNick Xie vcc11-supply = <&vsys_3v3>; 332c2aacceeSNick Xie vcc12-supply = <&vsys_3v3>; 333c2aacceeSNick Xie vddio-supply = <&vcc_1v8>; 334c2aacceeSNick Xie 335c2aacceeSNick Xie regulators { 336c2aacceeSNick Xie vdd_center: DCDC_REG1 { 337c2aacceeSNick Xie regulator-name = "vdd_center"; 338c2aacceeSNick Xie regulator-always-on; 339c2aacceeSNick Xie regulator-boot-on; 340c2aacceeSNick Xie regulator-min-microvolt = <750000>; 341c2aacceeSNick Xie regulator-max-microvolt = <1350000>; 342c2aacceeSNick Xie regulator-ramp-delay = <6001>; 343c2aacceeSNick Xie 344c2aacceeSNick Xie regulator-state-mem { 345c2aacceeSNick Xie regulator-off-in-suspend; 346c2aacceeSNick Xie }; 347c2aacceeSNick Xie }; 348c2aacceeSNick Xie 349c2aacceeSNick Xie vdd_cpu_l: DCDC_REG2 { 350c2aacceeSNick Xie regulator-name = "vdd_cpu_l"; 351c2aacceeSNick Xie regulator-always-on; 352c2aacceeSNick Xie regulator-boot-on; 353c2aacceeSNick Xie regulator-min-microvolt = <750000>; 354c2aacceeSNick Xie regulator-max-microvolt = <1350000>; 355c2aacceeSNick Xie regulator-ramp-delay = <6001>; 356c2aacceeSNick Xie 357c2aacceeSNick Xie regulator-state-mem { 358c2aacceeSNick Xie regulator-off-in-suspend; 359c2aacceeSNick Xie }; 360c2aacceeSNick Xie }; 361c2aacceeSNick Xie 362c2aacceeSNick Xie vcc_ddr: DCDC_REG3 { 363c2aacceeSNick Xie regulator-name = "vcc_ddr"; 364c2aacceeSNick Xie regulator-always-on; 365c2aacceeSNick Xie regulator-boot-on; 366c2aacceeSNick Xie 367c2aacceeSNick Xie regulator-state-mem { 368c2aacceeSNick Xie regulator-on-in-suspend; 369c2aacceeSNick Xie }; 370c2aacceeSNick Xie }; 371c2aacceeSNick Xie 372c2aacceeSNick Xie vcc_1v8: DCDC_REG4 { 373c2aacceeSNick Xie regulator-name = "vcc_1v8"; 374c2aacceeSNick Xie regulator-always-on; 375c2aacceeSNick Xie regulator-boot-on; 376c2aacceeSNick Xie regulator-min-microvolt = <1800000>; 377c2aacceeSNick Xie regulator-max-microvolt = <1800000>; 378c2aacceeSNick Xie 379c2aacceeSNick Xie regulator-state-mem { 380c2aacceeSNick Xie regulator-on-in-suspend; 381c2aacceeSNick Xie regulator-suspend-microvolt = <1800000>; 382c2aacceeSNick Xie }; 383c2aacceeSNick Xie }; 384c2aacceeSNick Xie 385c2aacceeSNick Xie vcc1v8_apio2: LDO_REG1 { 386c2aacceeSNick Xie regulator-name = "vcc1v8_apio2"; 387c2aacceeSNick Xie regulator-always-on; 388c2aacceeSNick Xie regulator-boot-on; 389c2aacceeSNick Xie regulator-min-microvolt = <1800000>; 390c2aacceeSNick Xie regulator-max-microvolt = <1800000>; 391c2aacceeSNick Xie 392c2aacceeSNick Xie regulator-state-mem { 393c2aacceeSNick Xie regulator-off-in-suspend; 394c2aacceeSNick Xie }; 395c2aacceeSNick Xie }; 396c2aacceeSNick Xie 397c2aacceeSNick Xie vcc_vldo2: LDO_REG2 { 398c2aacceeSNick Xie regulator-name = "vcc_vldo2"; 399c2aacceeSNick Xie regulator-always-on; 400c2aacceeSNick Xie regulator-boot-on; 401c2aacceeSNick Xie regulator-min-microvolt = <3000000>; 402c2aacceeSNick Xie regulator-max-microvolt = <3000000>; 403c2aacceeSNick Xie 404c2aacceeSNick Xie regulator-state-mem { 405c2aacceeSNick Xie regulator-off-in-suspend; 406c2aacceeSNick Xie }; 407c2aacceeSNick Xie }; 408c2aacceeSNick Xie 409c2aacceeSNick Xie vcc1v8_pmupll: LDO_REG3 { 410c2aacceeSNick Xie regulator-name = "vcc1v8_pmupll"; 411c2aacceeSNick Xie regulator-always-on; 412c2aacceeSNick Xie regulator-boot-on; 413c2aacceeSNick Xie regulator-min-microvolt = <1800000>; 414c2aacceeSNick Xie regulator-max-microvolt = <1800000>; 415c2aacceeSNick Xie 416c2aacceeSNick Xie regulator-state-mem { 417c2aacceeSNick Xie regulator-on-in-suspend; 418c2aacceeSNick Xie regulator-suspend-microvolt = <1800000>; 419c2aacceeSNick Xie }; 420c2aacceeSNick Xie }; 421c2aacceeSNick Xie 422c2aacceeSNick Xie vccio_sd: LDO_REG4 { 423c2aacceeSNick Xie regulator-name = "vccio_sd"; 424c2aacceeSNick Xie regulator-always-on; 425c2aacceeSNick Xie regulator-boot-on; 426c2aacceeSNick Xie regulator-min-microvolt = <1800000>; 427c2aacceeSNick Xie regulator-max-microvolt = <3000000>; 428c2aacceeSNick Xie 429c2aacceeSNick Xie regulator-state-mem { 430c2aacceeSNick Xie regulator-on-in-suspend; 431c2aacceeSNick Xie regulator-suspend-microvolt = <3000000>; 432c2aacceeSNick Xie }; 433c2aacceeSNick Xie }; 434c2aacceeSNick Xie 435c2aacceeSNick Xie vcc_vldo5: LDO_REG5 { 436c2aacceeSNick Xie regulator-name = "vcc_vldo5"; 437c2aacceeSNick Xie regulator-always-on; 438c2aacceeSNick Xie regulator-boot-on; 439c2aacceeSNick Xie regulator-min-microvolt = <3000000>; 440c2aacceeSNick Xie regulator-max-microvolt = <3000000>; 441c2aacceeSNick Xie 442c2aacceeSNick Xie regulator-state-mem { 443c2aacceeSNick Xie regulator-off-in-suspend; 444c2aacceeSNick Xie }; 445c2aacceeSNick Xie }; 446c2aacceeSNick Xie 447c2aacceeSNick Xie vcc_1v5: LDO_REG6 { 448c2aacceeSNick Xie regulator-name = "vcc_1v5"; 449c2aacceeSNick Xie regulator-always-on; 450c2aacceeSNick Xie regulator-boot-on; 451c2aacceeSNick Xie regulator-min-microvolt = <1500000>; 452c2aacceeSNick Xie regulator-max-microvolt = <1500000>; 453c2aacceeSNick Xie 454c2aacceeSNick Xie regulator-state-mem { 455c2aacceeSNick Xie regulator-on-in-suspend; 456c2aacceeSNick Xie regulator-suspend-microvolt = <1500000>; 457c2aacceeSNick Xie }; 458c2aacceeSNick Xie }; 459c2aacceeSNick Xie 460c2aacceeSNick Xie vcc1v8_codec: LDO_REG7 { 461c2aacceeSNick Xie regulator-name = "vcc1v8_codec"; 462c2aacceeSNick Xie regulator-always-on; 463c2aacceeSNick Xie regulator-boot-on; 464c2aacceeSNick Xie regulator-min-microvolt = <1800000>; 465c2aacceeSNick Xie regulator-max-microvolt = <1800000>; 466c2aacceeSNick Xie 467c2aacceeSNick Xie regulator-state-mem { 468c2aacceeSNick Xie regulator-off-in-suspend; 469c2aacceeSNick Xie }; 470c2aacceeSNick Xie }; 471c2aacceeSNick Xie 472c2aacceeSNick Xie vcc_3v0: LDO_REG8 { 473c2aacceeSNick Xie regulator-name = "vcc_3v0"; 474c2aacceeSNick Xie regulator-always-on; 475c2aacceeSNick Xie regulator-boot-on; 476c2aacceeSNick Xie regulator-min-microvolt = <3000000>; 477c2aacceeSNick Xie regulator-max-microvolt = <3000000>; 478c2aacceeSNick Xie 479c2aacceeSNick Xie regulator-state-mem { 480c2aacceeSNick Xie regulator-on-in-suspend; 481c2aacceeSNick Xie regulator-suspend-microvolt = <3000000>; 482c2aacceeSNick Xie }; 483c2aacceeSNick Xie }; 484c2aacceeSNick Xie 485c2aacceeSNick Xie vcc3v3_s3: vcc_lan: SWITCH_REG1 { 486c2aacceeSNick Xie regulator-name = "vcc3v3_s3"; 487c2aacceeSNick Xie regulator-always-on; 488c2aacceeSNick Xie regulator-boot-on; 489c2aacceeSNick Xie 490c2aacceeSNick Xie regulator-state-mem { 491c2aacceeSNick Xie regulator-off-in-suspend; 492c2aacceeSNick Xie }; 493c2aacceeSNick Xie }; 494c2aacceeSNick Xie 495c2aacceeSNick Xie vcc3v3_s0: SWITCH_REG2 { 496c2aacceeSNick Xie regulator-name = "vcc3v3_s0"; 497c2aacceeSNick Xie regulator-always-on; 498c2aacceeSNick Xie regulator-boot-on; 499c2aacceeSNick Xie 500c2aacceeSNick Xie regulator-state-mem { 501c2aacceeSNick Xie regulator-off-in-suspend; 502c2aacceeSNick Xie }; 503c2aacceeSNick Xie }; 504c2aacceeSNick Xie }; 505c2aacceeSNick Xie }; 506c2aacceeSNick Xie 507c2aacceeSNick Xie vdd_cpu_b: regulator@40 { 508c2aacceeSNick Xie compatible = "silergy,syr827"; 509c2aacceeSNick Xie reg = <0x40>; 510c2aacceeSNick Xie fcs,suspend-voltage-selector = <1>; 511c2aacceeSNick Xie pinctrl-names = "default"; 512c2aacceeSNick Xie pinctrl-0 = <&cpu_b_sleep>; 513c2aacceeSNick Xie regulator-name = "vdd_cpu_b"; 514c2aacceeSNick Xie regulator-min-microvolt = <712500>; 515c2aacceeSNick Xie regulator-max-microvolt = <1500000>; 516c2aacceeSNick Xie regulator-ramp-delay = <1000>; 517c2aacceeSNick Xie regulator-always-on; 518c2aacceeSNick Xie regulator-boot-on; 519c2aacceeSNick Xie vin-supply = <&vsys_3v3>; 520c2aacceeSNick Xie 521c2aacceeSNick Xie regulator-state-mem { 522c2aacceeSNick Xie regulator-off-in-suspend; 523c2aacceeSNick Xie }; 524c2aacceeSNick Xie }; 525c2aacceeSNick Xie 526c2aacceeSNick Xie vdd_gpu: regulator@41 { 527c2aacceeSNick Xie compatible = "silergy,syr828"; 528c2aacceeSNick Xie reg = <0x41>; 529c2aacceeSNick Xie fcs,suspend-voltage-selector = <1>; 530c2aacceeSNick Xie pinctrl-names = "default"; 531c2aacceeSNick Xie pinctrl-0 = <&gpu_sleep>; 532c2aacceeSNick Xie regulator-name = "vdd_gpu"; 533c2aacceeSNick Xie regulator-min-microvolt = <712500>; 534c2aacceeSNick Xie regulator-max-microvolt = <1500000>; 535c2aacceeSNick Xie regulator-ramp-delay = <1000>; 536c2aacceeSNick Xie regulator-always-on; 537c2aacceeSNick Xie regulator-boot-on; 538c2aacceeSNick Xie vin-supply = <&vsys_3v3>; 539c2aacceeSNick Xie 540c2aacceeSNick Xie regulator-state-mem { 541c2aacceeSNick Xie regulator-off-in-suspend; 542c2aacceeSNick Xie }; 543c2aacceeSNick Xie }; 544c2aacceeSNick Xie}; 545c2aacceeSNick Xie 546c2aacceeSNick Xie&i2c8 { 547c2aacceeSNick Xie clock-frequency = <400000>; 548c2aacceeSNick Xie i2c-scl-rising-time-ns = <160>; 549c2aacceeSNick Xie i2c-scl-falling-time-ns = <30>; 550c2aacceeSNick Xie status = "okay"; 551c2aacceeSNick Xie}; 552c2aacceeSNick Xie 553c2aacceeSNick Xie&i2s0 { 554c2aacceeSNick Xie rockchip,playback-channels = <8>; 555c2aacceeSNick Xie rockchip,capture-channels = <8>; 556c2aacceeSNick Xie status = "okay"; 557c2aacceeSNick Xie}; 558c2aacceeSNick Xie 559c2aacceeSNick Xie&i2s1 { 560c2aacceeSNick Xie rockchip,playback-channels = <2>; 561c2aacceeSNick Xie rockchip,capture-channels = <2>; 562c2aacceeSNick Xie status = "okay"; 563c2aacceeSNick Xie}; 564c2aacceeSNick Xie 565c2aacceeSNick Xie&i2s2 { 566c2aacceeSNick Xie status = "okay"; 567c2aacceeSNick Xie}; 568c2aacceeSNick Xie 569c2aacceeSNick Xie&io_domains { 570c2aacceeSNick Xie bt656-supply = <&vcc1v8_apio2>; 571c2aacceeSNick Xie audio-supply = <&vcc1v8_codec>; 572c2aacceeSNick Xie sdmmc-supply = <&vccio_sd>; 573c2aacceeSNick Xie gpio1830-supply = <&vcc_3v0>; 574c2aacceeSNick Xie status = "okay"; 575c2aacceeSNick Xie}; 576c2aacceeSNick Xie 577c2aacceeSNick Xie&pmu_io_domains { 578c2aacceeSNick Xie pmu1830-supply = <&vcc_1v8>; 579c2aacceeSNick Xie status = "okay"; 580c2aacceeSNick Xie}; 581c2aacceeSNick Xie 582c2aacceeSNick Xie&pinctrl { 583c2aacceeSNick Xie bt { 584c2aacceeSNick Xie bt_host_wake_l: bt-host-wake-l { 585c2aacceeSNick Xie rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 586c2aacceeSNick Xie }; 587c2aacceeSNick Xie 588c2aacceeSNick Xie bt_reg_on_h: bt-reg-on-h { 589c2aacceeSNick Xie rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 590c2aacceeSNick Xie }; 591c2aacceeSNick Xie 592c2aacceeSNick Xie bt_wake_l: bt-wake-l { 593c2aacceeSNick Xie rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 594c2aacceeSNick Xie }; 595c2aacceeSNick Xie }; 596c2aacceeSNick Xie 597c2aacceeSNick Xie buttons { 598c2aacceeSNick Xie pwrbtn: pwrbtn { 599c2aacceeSNick Xie rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 600c2aacceeSNick Xie }; 601c2aacceeSNick Xie }; 602c2aacceeSNick Xie 60330a9a8c1SArtem Lapkin ir { 60430a9a8c1SArtem Lapkin ir_rx: ir-rx { 60530a9a8c1SArtem Lapkin rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 60630a9a8c1SArtem Lapkin }; 60730a9a8c1SArtem Lapkin }; 60830a9a8c1SArtem Lapkin 609c2aacceeSNick Xie leds { 6106dd5e12cSJohan Jonker sys_led_pin: sys-led-pin { 611c2aacceeSNick Xie rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 612c2aacceeSNick Xie }; 613c2aacceeSNick Xie 6146dd5e12cSJohan Jonker user_led_pin: user-led-pin { 615c2aacceeSNick Xie rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; 616c2aacceeSNick Xie }; 617c2aacceeSNick Xie }; 618c2aacceeSNick Xie 619c2aacceeSNick Xie pmic { 620c2aacceeSNick Xie pmic_int_l: pmic-int-l { 621c2aacceeSNick Xie rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>; 622c2aacceeSNick Xie }; 623c2aacceeSNick Xie 624c2aacceeSNick Xie cpu_b_sleep: cpu-b-sleep { 625c2aacceeSNick Xie rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; 626c2aacceeSNick Xie }; 627c2aacceeSNick Xie 628c2aacceeSNick Xie gpu_sleep: gpu-sleep { 629c2aacceeSNick Xie rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; 630c2aacceeSNick Xie }; 631c2aacceeSNick Xie }; 632c2aacceeSNick Xie 633c2aacceeSNick Xie sdio-pwrseq { 634c2aacceeSNick Xie wifi_enable_h: wifi-enable-h { 635c2aacceeSNick Xie rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 636c2aacceeSNick Xie }; 637c2aacceeSNick Xie }; 638c2aacceeSNick Xie 639c2aacceeSNick Xie usb2 { 640c2aacceeSNick Xie vcc5v0_host_en: vcc5v0-host-en { 641c2aacceeSNick Xie rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; 642c2aacceeSNick Xie }; 643c2aacceeSNick Xie }; 644c2aacceeSNick Xie 645c2aacceeSNick Xie wifi { 646c2aacceeSNick Xie wifi_host_wake_l: wifi-host-wake-l { 647c2aacceeSNick Xie rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; 648c2aacceeSNick Xie }; 649c2aacceeSNick Xie }; 650c2aacceeSNick Xie}; 651c2aacceeSNick Xie 652c2aacceeSNick Xie&pwm0 { 653c2aacceeSNick Xie status = "okay"; 654c2aacceeSNick Xie}; 655c2aacceeSNick Xie 656c2aacceeSNick Xie&pwm2 { 657c2aacceeSNick Xie status = "okay"; 658c2aacceeSNick Xie}; 659c2aacceeSNick Xie 660c2aacceeSNick Xie&saradc { 661c2aacceeSNick Xie vref-supply = <&vcca1v8_s3>; 662c2aacceeSNick Xie status = "okay"; 663c2aacceeSNick Xie}; 664c2aacceeSNick Xie 665c2aacceeSNick Xie&sdio0 { 666c2aacceeSNick Xie /* WiFi & BT combo module Ampak AP6356S */ 667c2aacceeSNick Xie bus-width = <4>; 668c2aacceeSNick Xie cap-sdio-irq; 669c2aacceeSNick Xie cap-sd-highspeed; 670c2aacceeSNick Xie keep-power-in-suspend; 671c2aacceeSNick Xie mmc-pwrseq = <&sdio_pwrseq>; 672c2aacceeSNick Xie non-removable; 673c2aacceeSNick Xie pinctrl-names = "default"; 674c2aacceeSNick Xie pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; 675c2aacceeSNick Xie sd-uhs-sdr104; 676c2aacceeSNick Xie vqmmc-supply = <&vcc1v8_s3>; 677c2aacceeSNick Xie vmmc-supply = <&vccio_sd>; 67896ff264bSJohan Jonker #address-cells = <1>; 67996ff264bSJohan Jonker #size-cells = <0>; 680c2aacceeSNick Xie status = "okay"; 681c2aacceeSNick Xie 682c2aacceeSNick Xie brcmf: wifi@1 { 68396ff264bSJohan Jonker reg = <1>; 684c2aacceeSNick Xie compatible = "brcm,bcm4329-fmac"; 685c2aacceeSNick Xie interrupt-parent = <&gpio0>; 686c043dee9SKrzysztof Kozlowski interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>; 687c2aacceeSNick Xie interrupt-names = "host-wake"; 688c2aacceeSNick Xie brcm,drive-strength = <5>; 689c2aacceeSNick Xie pinctrl-names = "default"; 690c2aacceeSNick Xie pinctrl-0 = <&wifi_host_wake_l>; 691c2aacceeSNick Xie }; 692c2aacceeSNick Xie}; 693c2aacceeSNick Xie 694c2aacceeSNick Xie&sdmmc { 695c2aacceeSNick Xie bus-width = <4>; 696c2aacceeSNick Xie cap-mmc-highspeed; 697c2aacceeSNick Xie cap-sd-highspeed; 698c2aacceeSNick Xie cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 699c2aacceeSNick Xie disable-wp; 700c2aacceeSNick Xie max-frequency = <150000000>; 701c2aacceeSNick Xie pinctrl-names = "default"; 702c2aacceeSNick Xie pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; 703c2aacceeSNick Xie status = "okay"; 704c2aacceeSNick Xie}; 705c2aacceeSNick Xie 706c2aacceeSNick Xie&sdhci { 707c2aacceeSNick Xie bus-width = <8>; 708c2aacceeSNick Xie mmc-hs400-1_8v; 709c2aacceeSNick Xie non-removable; 710c2aacceeSNick Xie status = "okay"; 711c2aacceeSNick Xie}; 712c2aacceeSNick Xie 7135d71f445SArtem Lapkin&spi1 { 7145d71f445SArtem Lapkin status = "okay"; 7155d71f445SArtem Lapkin 7165d71f445SArtem Lapkin spiflash: flash@0 { 7175d71f445SArtem Lapkin compatible = "winbond,w25q128fw", "jedec,spi-nor"; 7185d71f445SArtem Lapkin reg = <0>; 7195d71f445SArtem Lapkin spi-max-frequency = <104000000>; 7205d71f445SArtem Lapkin }; 7215d71f445SArtem Lapkin}; 7225d71f445SArtem Lapkin 723c2aacceeSNick Xie&tcphy0 { 724c2aacceeSNick Xie status = "okay"; 725c2aacceeSNick Xie}; 726c2aacceeSNick Xie 727c2aacceeSNick Xie&tcphy1 { 728c2aacceeSNick Xie status = "okay"; 729c2aacceeSNick Xie}; 730c2aacceeSNick Xie 731c2aacceeSNick Xie&tsadc { 732c2aacceeSNick Xie /* tshut mode 0:CRU 1:GPIO */ 733c2aacceeSNick Xie rockchip,hw-tshut-mode = <1>; 734c2aacceeSNick Xie /* tshut polarity 0:LOW 1:HIGH */ 735c2aacceeSNick Xie rockchip,hw-tshut-polarity = <1>; 736c2aacceeSNick Xie status = "okay"; 737c2aacceeSNick Xie}; 738c2aacceeSNick Xie 739c2aacceeSNick Xie&u2phy0 { 740c2aacceeSNick Xie status = "okay"; 741c2aacceeSNick Xie 742c2aacceeSNick Xie u2phy0_otg: otg-port { 743c2aacceeSNick Xie status = "okay"; 744c2aacceeSNick Xie }; 745c2aacceeSNick Xie 746c2aacceeSNick Xie u2phy0_host: host-port { 747c2aacceeSNick Xie phy-supply = <&vcc5v0_host>; 748c2aacceeSNick Xie status = "okay"; 749c2aacceeSNick Xie }; 750c2aacceeSNick Xie}; 751c2aacceeSNick Xie 752c2aacceeSNick Xie&u2phy1 { 753c2aacceeSNick Xie status = "okay"; 754c2aacceeSNick Xie 755c2aacceeSNick Xie u2phy1_otg: otg-port { 756c2aacceeSNick Xie status = "okay"; 757c2aacceeSNick Xie }; 758c2aacceeSNick Xie 759c2aacceeSNick Xie u2phy1_host: host-port { 760c2aacceeSNick Xie phy-supply = <&vcc5v0_host>; 761c2aacceeSNick Xie status = "okay"; 762c2aacceeSNick Xie }; 763c2aacceeSNick Xie}; 764c2aacceeSNick Xie 765c2aacceeSNick Xie&uart0 { 766c2aacceeSNick Xie pinctrl-names = "default"; 767c2aacceeSNick Xie pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>; 768c2aacceeSNick Xie status = "okay"; 769c2aacceeSNick Xie 770c2aacceeSNick Xie bluetooth { 771c2aacceeSNick Xie compatible = "brcm,bcm43438-bt"; 772c2aacceeSNick Xie clocks = <&rk808 1>; 773c2aacceeSNick Xie clock-names = "lpo"; 774c2aacceeSNick Xie device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>; 775c2aacceeSNick Xie host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; 776c2aacceeSNick Xie shutdown-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; 777c2aacceeSNick Xie max-speed = <4000000>; 778c2aacceeSNick Xie pinctrl-names = "default"; 779c2aacceeSNick Xie pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>; 780c2aacceeSNick Xie vbat-supply = <&vsys_3v3>; 781c2aacceeSNick Xie vddio-supply = <&vcc_1v8>; 782c2aacceeSNick Xie }; 783c2aacceeSNick Xie}; 784c2aacceeSNick Xie 785c2aacceeSNick Xie&uart2 { 786c2aacceeSNick Xie status = "okay"; 787c2aacceeSNick Xie}; 788c2aacceeSNick Xie 789c2aacceeSNick Xie&usb_host0_ehci { 790c2aacceeSNick Xie status = "okay"; 791c2aacceeSNick Xie}; 792c2aacceeSNick Xie 793c2aacceeSNick Xie&usb_host0_ohci { 794c2aacceeSNick Xie status = "okay"; 795c2aacceeSNick Xie}; 796c2aacceeSNick Xie 797c2aacceeSNick Xie&usb_host1_ehci { 798c2aacceeSNick Xie status = "okay"; 799c2aacceeSNick Xie}; 800c2aacceeSNick Xie 801c2aacceeSNick Xie&usb_host1_ohci { 802c2aacceeSNick Xie status = "okay"; 803c2aacceeSNick Xie}; 804c2aacceeSNick Xie 805c2aacceeSNick Xie&usbdrd3_0 { 806c2aacceeSNick Xie status = "okay"; 807c2aacceeSNick Xie}; 808c2aacceeSNick Xie 809c2aacceeSNick Xie&usbdrd_dwc3_0 { 810c2aacceeSNick Xie status = "okay"; 811c2aacceeSNick Xie dr_mode = "otg"; 812c2aacceeSNick Xie}; 813c2aacceeSNick Xie 814c2aacceeSNick Xie&usbdrd3_1 { 815c2aacceeSNick Xie status = "okay"; 816c2aacceeSNick Xie}; 817c2aacceeSNick Xie 818c2aacceeSNick Xie&usbdrd_dwc3_1 { 819c2aacceeSNick Xie status = "okay"; 820c2aacceeSNick Xie dr_mode = "host"; 821c2aacceeSNick Xie}; 822c2aacceeSNick Xie 823c2aacceeSNick Xie&vopb { 824c2aacceeSNick Xie status = "okay"; 825c2aacceeSNick Xie}; 826c2aacceeSNick Xie 827c2aacceeSNick Xie&vopb_mmu { 828c2aacceeSNick Xie status = "okay"; 829c2aacceeSNick Xie}; 830c2aacceeSNick Xie 831c2aacceeSNick Xie&vopl { 832c2aacceeSNick Xie status = "okay"; 833c2aacceeSNick Xie}; 834c2aacceeSNick Xie 835c2aacceeSNick Xie&vopl_mmu { 836c2aacceeSNick Xie status = "okay"; 837c2aacceeSNick Xie}; 838