1*53ec6d21SJun Yan// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*53ec6d21SJun Yan 3*53ec6d21SJun Yan/dts-v1/; 4*53ec6d21SJun Yan 5*53ec6d21SJun Yan#include <dt-bindings/gpio/gpio.h> 6*53ec6d21SJun Yan#include <dt-bindings/leds/common.h> 7*53ec6d21SJun Yan#include <dt-bindings/pinctrl/rockchip.h> 8*53ec6d21SJun Yan#include <dt-bindings/pwm/pwm.h> 9*53ec6d21SJun Yan#include "rk3566.dtsi" 10*53ec6d21SJun Yan 11*53ec6d21SJun Yan/ { 12*53ec6d21SJun Yan model = "OneThing Edge Cube (OEC)/OEC Turbo"; 13*53ec6d21SJun Yan compatible = "onething,edge-cube", "rockchip,rk3566"; 14*53ec6d21SJun Yan 15*53ec6d21SJun Yan aliases { 16*53ec6d21SJun Yan ethernet0 = &gmac1; 17*53ec6d21SJun Yan mmc0 = &sdhci; 18*53ec6d21SJun Yan }; 19*53ec6d21SJun Yan 20*53ec6d21SJun Yan chosen: chosen { 21*53ec6d21SJun Yan stdout-path = "serial2:1500000n8"; 22*53ec6d21SJun Yan }; 23*53ec6d21SJun Yan 24*53ec6d21SJun Yan gmac1_clkin: external-gmac1-clock { 25*53ec6d21SJun Yan compatible = "fixed-clock"; 26*53ec6d21SJun Yan clock-frequency = <125000000>; 27*53ec6d21SJun Yan clock-output-names = "gmac1_clkin"; 28*53ec6d21SJun Yan #clock-cells = <0>; 29*53ec6d21SJun Yan }; 30*53ec6d21SJun Yan 31*53ec6d21SJun Yan leds { 32*53ec6d21SJun Yan compatible = "gpio-leds"; 33*53ec6d21SJun Yan 34*53ec6d21SJun Yan rgb_led_b: led-0 { 35*53ec6d21SJun Yan color = <LED_COLOR_ID_BLUE>; 36*53ec6d21SJun Yan default-state = "off"; 37*53ec6d21SJun Yan function = LED_FUNCTION_STATUS; 38*53ec6d21SJun Yan gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>; 39*53ec6d21SJun Yan pinctrl-names = "default"; 40*53ec6d21SJun Yan pinctrl-0 = <&rgb_led_b_enable_l>; 41*53ec6d21SJun Yan }; 42*53ec6d21SJun Yan 43*53ec6d21SJun Yan rgb_led_g: led-1 { 44*53ec6d21SJun Yan color = <LED_COLOR_ID_GREEN>; 45*53ec6d21SJun Yan default-state = "on"; 46*53ec6d21SJun Yan function = LED_FUNCTION_STATUS; 47*53ec6d21SJun Yan gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>; 48*53ec6d21SJun Yan pinctrl-names = "default"; 49*53ec6d21SJun Yan pinctrl-0 = <&rgb_led_g_enable_l>; 50*53ec6d21SJun Yan }; 51*53ec6d21SJun Yan 52*53ec6d21SJun Yan rgb_led_r: led-2 { 53*53ec6d21SJun Yan color = <LED_COLOR_ID_RED>; 54*53ec6d21SJun Yan default-state = "off"; 55*53ec6d21SJun Yan function = LED_FUNCTION_STATUS; 56*53ec6d21SJun Yan gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>; 57*53ec6d21SJun Yan pinctrl-names = "default"; 58*53ec6d21SJun Yan pinctrl-0 = <&rgb_led_r_enable_l>; 59*53ec6d21SJun Yan }; 60*53ec6d21SJun Yan }; 61*53ec6d21SJun Yan 62*53ec6d21SJun Yan vcc_1v8: regulator-vcc-1v8 { 63*53ec6d21SJun Yan compatible = "regulator-fixed"; 64*53ec6d21SJun Yan regulator-name = "vcc_1v8"; 65*53ec6d21SJun Yan regulator-always-on; 66*53ec6d21SJun Yan regulator-boot-on; 67*53ec6d21SJun Yan regulator-min-microvolt = <1800000>; 68*53ec6d21SJun Yan regulator-max-microvolt = <1800000>; 69*53ec6d21SJun Yan vin-supply = <&vcc5v0_sys>; 70*53ec6d21SJun Yan }; 71*53ec6d21SJun Yan 72*53ec6d21SJun Yan vcc_3v3: regulator-vcc-3v3 { 73*53ec6d21SJun Yan compatible = "regulator-fixed"; 74*53ec6d21SJun Yan regulator-name = "vcc_3v3"; 75*53ec6d21SJun Yan regulator-always-on; 76*53ec6d21SJun Yan regulator-boot-on; 77*53ec6d21SJun Yan regulator-min-microvolt = <3300000>; 78*53ec6d21SJun Yan regulator-max-microvolt = <3300000>; 79*53ec6d21SJun Yan vin-supply = <&vcc5v0_sys>; 80*53ec6d21SJun Yan }; 81*53ec6d21SJun Yan 82*53ec6d21SJun Yan vcc12v0_dcin: regulator-vcc12v0-dcin { 83*53ec6d21SJun Yan compatible = "regulator-fixed"; 84*53ec6d21SJun Yan regulator-name = "vcc12v0_dcin"; 85*53ec6d21SJun Yan regulator-always-on; 86*53ec6d21SJun Yan regulator-boot-on; 87*53ec6d21SJun Yan regulator-min-microvolt = <12000000>; 88*53ec6d21SJun Yan regulator-max-microvolt = <12000000>; 89*53ec6d21SJun Yan }; 90*53ec6d21SJun Yan 91*53ec6d21SJun Yan vcc3v3_sys: regulator-vcc3v3-sys { 92*53ec6d21SJun Yan compatible = "regulator-fixed"; 93*53ec6d21SJun Yan regulator-name = "vcc3v3_sys"; 94*53ec6d21SJun Yan regulator-always-on; 95*53ec6d21SJun Yan regulator-boot-on; 96*53ec6d21SJun Yan regulator-min-microvolt = <3300000>; 97*53ec6d21SJun Yan regulator-max-microvolt = <3300000>; 98*53ec6d21SJun Yan vin-supply = <&vcc12v0_dcin>; 99*53ec6d21SJun Yan }; 100*53ec6d21SJun Yan 101*53ec6d21SJun Yan vcc5v0_sys: regulator-vcc5v0-sys { 102*53ec6d21SJun Yan compatible = "regulator-fixed"; 103*53ec6d21SJun Yan regulator-name = "vcc5v0_sys"; 104*53ec6d21SJun Yan regulator-always-on; 105*53ec6d21SJun Yan regulator-boot-on; 106*53ec6d21SJun Yan regulator-min-microvolt = <5000000>; 107*53ec6d21SJun Yan regulator-max-microvolt = <5000000>; 108*53ec6d21SJun Yan vin-supply = <&vcc12v0_dcin>; 109*53ec6d21SJun Yan }; 110*53ec6d21SJun Yan 111*53ec6d21SJun Yan vcc5v0_usb_host: regulator-vcc5v0-usb-host { 112*53ec6d21SJun Yan compatible = "regulator-fixed"; 113*53ec6d21SJun Yan enable-active-high; 114*53ec6d21SJun Yan gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; 115*53ec6d21SJun Yan pinctrl-names = "default"; 116*53ec6d21SJun Yan pinctrl-0 = <&vcc5v0_usb_host_en>; 117*53ec6d21SJun Yan regulator-name = "vcc5v0_usb_host"; 118*53ec6d21SJun Yan regulator-min-microvolt = <5000000>; 119*53ec6d21SJun Yan regulator-max-microvolt = <5000000>; 120*53ec6d21SJun Yan vin-supply = <&vcc5v0_sys>; 121*53ec6d21SJun Yan }; 122*53ec6d21SJun Yan 123*53ec6d21SJun Yan vdd_cpu: regulator-vdd-cpu { 124*53ec6d21SJun Yan compatible = "pwm-regulator"; 125*53ec6d21SJun Yan pwms = <&pwm0 0 5000 PWM_POLARITY_INVERTED>; 126*53ec6d21SJun Yan regulator-always-on; 127*53ec6d21SJun Yan regulator-boot-on; 128*53ec6d21SJun Yan regulator-name = "vdd_cpu"; 129*53ec6d21SJun Yan regulator-min-microvolt = <800000>; 130*53ec6d21SJun Yan regulator-max-microvolt = <1200000>; 131*53ec6d21SJun Yan regulator-settling-time-up-us = <250>; 132*53ec6d21SJun Yan pwm-supply = <&vcc5v0_sys>; 133*53ec6d21SJun Yan }; 134*53ec6d21SJun Yan 135*53ec6d21SJun Yan vdd_fixed: regulator-vdd-fixed { 136*53ec6d21SJun Yan compatible = "regulator-fixed"; 137*53ec6d21SJun Yan regulator-always-on; 138*53ec6d21SJun Yan regulator-boot-on; 139*53ec6d21SJun Yan regulator-name = "vdd_fixed"; 140*53ec6d21SJun Yan regulator-min-microvolt = <950000>; 141*53ec6d21SJun Yan regulator-max-microvolt = <950000>; 142*53ec6d21SJun Yan vin-supply = <&vcc5v0_sys>; 143*53ec6d21SJun Yan }; 144*53ec6d21SJun Yan 145*53ec6d21SJun Yan vdd_logic: regulator-vdd-logic { 146*53ec6d21SJun Yan compatible = "pwm-regulator"; 147*53ec6d21SJun Yan pwms = <&pwm1 0 5000 PWM_POLARITY_INVERTED>; 148*53ec6d21SJun Yan regulator-name = "vdd_logic"; 149*53ec6d21SJun Yan regulator-always-on; 150*53ec6d21SJun Yan regulator-boot-on; 151*53ec6d21SJun Yan regulator-min-microvolt = <800000>; 152*53ec6d21SJun Yan regulator-max-microvolt = <1100000>; 153*53ec6d21SJun Yan regulator-settling-time-up-us = <250>; 154*53ec6d21SJun Yan pwm-supply = <&vcc5v0_sys>; 155*53ec6d21SJun Yan }; 156*53ec6d21SJun Yan}; 157*53ec6d21SJun Yan 158*53ec6d21SJun Yan 159*53ec6d21SJun Yan/* No hardware video output port */ 160*53ec6d21SJun Yan&display_subsystem { 161*53ec6d21SJun Yan status = "disabled"; 162*53ec6d21SJun Yan}; 163*53ec6d21SJun Yan 164*53ec6d21SJun Yan&combphy1 { 165*53ec6d21SJun Yan status = "okay"; 166*53ec6d21SJun Yan}; 167*53ec6d21SJun Yan 168*53ec6d21SJun Yan&combphy2 { 169*53ec6d21SJun Yan status = "okay"; 170*53ec6d21SJun Yan}; 171*53ec6d21SJun Yan 172*53ec6d21SJun Yan&cpu0 { 173*53ec6d21SJun Yan cpu-supply = <&vdd_cpu>; 174*53ec6d21SJun Yan}; 175*53ec6d21SJun Yan 176*53ec6d21SJun Yan&cpu1 { 177*53ec6d21SJun Yan cpu-supply = <&vdd_cpu>; 178*53ec6d21SJun Yan}; 179*53ec6d21SJun Yan 180*53ec6d21SJun Yan&cpu2 { 181*53ec6d21SJun Yan cpu-supply = <&vdd_cpu>; 182*53ec6d21SJun Yan}; 183*53ec6d21SJun Yan 184*53ec6d21SJun Yan&cpu3 { 185*53ec6d21SJun Yan cpu-supply = <&vdd_cpu>; 186*53ec6d21SJun Yan}; 187*53ec6d21SJun Yan 188*53ec6d21SJun Yan&gmac1 { 189*53ec6d21SJun Yan assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; 190*53ec6d21SJun Yan assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>; 191*53ec6d21SJun Yan clock_in_out = "input"; 192*53ec6d21SJun Yan phy-handle = <&rgmii_phy1>; 193*53ec6d21SJun Yan phy-mode = "rgmii-id"; 194*53ec6d21SJun Yan pinctrl-names = "default"; 195*53ec6d21SJun Yan pinctrl-0 = <&gmac1m1_miim 196*53ec6d21SJun Yan &gmac1m1_tx_bus2 197*53ec6d21SJun Yan &gmac1m1_rx_bus2 198*53ec6d21SJun Yan &gmac1m1_rgmii_clk 199*53ec6d21SJun Yan &gmac1m1_rgmii_bus 200*53ec6d21SJun Yan &gmac1m1_clkinout>; 201*53ec6d21SJun Yan status = "okay"; 202*53ec6d21SJun Yan}; 203*53ec6d21SJun Yan 204*53ec6d21SJun Yan&gpu { 205*53ec6d21SJun Yan status = "okay"; 206*53ec6d21SJun Yan}; 207*53ec6d21SJun Yan 208*53ec6d21SJun Yan&mdio1 { 209*53ec6d21SJun Yan rgmii_phy1: ethernet-phy@1 { 210*53ec6d21SJun Yan compatible = "ethernet-phy-ieee802.3-c22"; 211*53ec6d21SJun Yan reg = <0x1>; 212*53ec6d21SJun Yan reset-assert-us = <20000>; 213*53ec6d21SJun Yan reset-deassert-us = <100000>; 214*53ec6d21SJun Yan reset-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; 215*53ec6d21SJun Yan }; 216*53ec6d21SJun Yan}; 217*53ec6d21SJun Yan 218*53ec6d21SJun Yan&pinctrl { 219*53ec6d21SJun Yan gmac { 220*53ec6d21SJun Yan eth_phy_reset_pin: eth-phy-reset-pin { 221*53ec6d21SJun Yan rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>; 222*53ec6d21SJun Yan }; 223*53ec6d21SJun Yan }; 224*53ec6d21SJun Yan 225*53ec6d21SJun Yan leds { 226*53ec6d21SJun Yan rgb_led_b_enable_l: rgb-led-b-enable-l { 227*53ec6d21SJun Yan rockchip,pins = <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 228*53ec6d21SJun Yan }; 229*53ec6d21SJun Yan 230*53ec6d21SJun Yan rgb_led_g_enable_l: rgb-led-g-enable-l { 231*53ec6d21SJun Yan rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 232*53ec6d21SJun Yan }; 233*53ec6d21SJun Yan 234*53ec6d21SJun Yan rgb_led_r_enable_l: rgb-led-r-enable-l { 235*53ec6d21SJun Yan rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; 236*53ec6d21SJun Yan }; 237*53ec6d21SJun Yan }; 238*53ec6d21SJun Yan 239*53ec6d21SJun Yan usb { 240*53ec6d21SJun Yan vcc5v0_usb_host_en: vcc5v0-usb-host-en { 241*53ec6d21SJun Yan rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 242*53ec6d21SJun Yan }; 243*53ec6d21SJun Yan }; 244*53ec6d21SJun Yan}; 245*53ec6d21SJun Yan 246*53ec6d21SJun Yan&pmu_io_domains { 247*53ec6d21SJun Yan pmuio1-supply = <&vcc_3v3>; 248*53ec6d21SJun Yan pmuio2-supply = <&vcc_3v3>; 249*53ec6d21SJun Yan vccio1-supply = <&vcc_1v8>; 250*53ec6d21SJun Yan vccio3-supply = <&vcc_3v3>; 251*53ec6d21SJun Yan vccio4-supply = <&vcc_1v8>; 252*53ec6d21SJun Yan vccio5-supply = <&vcc_3v3>; 253*53ec6d21SJun Yan vccio6-supply = <&vcc_1v8>; 254*53ec6d21SJun Yan vccio7-supply = <&vcc_3v3>; 255*53ec6d21SJun Yan status = "okay"; 256*53ec6d21SJun Yan}; 257*53ec6d21SJun Yan 258*53ec6d21SJun Yan&pwm0 { 259*53ec6d21SJun Yan status = "okay"; 260*53ec6d21SJun Yan}; 261*53ec6d21SJun Yan 262*53ec6d21SJun Yan&pwm1 { 263*53ec6d21SJun Yan status = "okay"; 264*53ec6d21SJun Yan}; 265*53ec6d21SJun Yan 266*53ec6d21SJun Yan&saradc { 267*53ec6d21SJun Yan vref-supply = <&vcc_1v8>; 268*53ec6d21SJun Yan status = "okay"; 269*53ec6d21SJun Yan}; 270*53ec6d21SJun Yan 271*53ec6d21SJun Yan&sata2 { 272*53ec6d21SJun Yan status = "okay"; 273*53ec6d21SJun Yan}; 274*53ec6d21SJun Yan 275*53ec6d21SJun Yan&sdhci { 276*53ec6d21SJun Yan bus-width = <8>; 277*53ec6d21SJun Yan cap-mmc-highspeed; 278*53ec6d21SJun Yan mmc-hs200-1_8v; 279*53ec6d21SJun Yan no-sd; 280*53ec6d21SJun Yan no-sdio; 281*53ec6d21SJun Yan non-removable; 282*53ec6d21SJun Yan pinctrl-names = "default"; 283*53ec6d21SJun Yan pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>; 284*53ec6d21SJun Yan status = "okay"; 285*53ec6d21SJun Yan}; 286*53ec6d21SJun Yan 287*53ec6d21SJun Yan&tsadc { 288*53ec6d21SJun Yan rockchip,hw-tshut-mode = <1>; 289*53ec6d21SJun Yan rockchip,hw-tshut-polarity = <0>; 290*53ec6d21SJun Yan status = "okay"; 291*53ec6d21SJun Yan}; 292*53ec6d21SJun Yan 293*53ec6d21SJun Yan&uart2 { 294*53ec6d21SJun Yan status = "okay"; 295*53ec6d21SJun Yan}; 296*53ec6d21SJun Yan 297*53ec6d21SJun Yan&usb_host0_ehci { 298*53ec6d21SJun Yan status = "okay"; 299*53ec6d21SJun Yan}; 300*53ec6d21SJun Yan 301*53ec6d21SJun Yan&usb_host0_ohci { 302*53ec6d21SJun Yan status = "okay"; 303*53ec6d21SJun Yan}; 304*53ec6d21SJun Yan 305*53ec6d21SJun Yan&usb_host1_ehci { 306*53ec6d21SJun Yan status = "okay"; 307*53ec6d21SJun Yan}; 308*53ec6d21SJun Yan 309*53ec6d21SJun Yan&usb_host1_ohci { 310*53ec6d21SJun Yan status = "okay"; 311*53ec6d21SJun Yan}; 312*53ec6d21SJun Yan 313*53ec6d21SJun Yan&usb_host1_xhci { 314*53ec6d21SJun Yan status = "okay"; 315*53ec6d21SJun Yan}; 316*53ec6d21SJun Yan 317*53ec6d21SJun Yan&usb2phy0 { 318*53ec6d21SJun Yan status = "okay"; 319*53ec6d21SJun Yan}; 320*53ec6d21SJun Yan 321*53ec6d21SJun Yan&usb2phy0_host { 322*53ec6d21SJun Yan phy-supply = <&vcc5v0_usb_host>; 323*53ec6d21SJun Yan status = "okay"; 324*53ec6d21SJun Yan}; 325*53ec6d21SJun Yan 326*53ec6d21SJun Yan&usb2phy0_otg { 327*53ec6d21SJun Yan status = "okay"; 328*53ec6d21SJun Yan}; 329*53ec6d21SJun Yan 330*53ec6d21SJun Yan&usb2phy1 { 331*53ec6d21SJun Yan status = "okay"; 332*53ec6d21SJun Yan}; 333*53ec6d21SJun Yan 334*53ec6d21SJun Yan&usb2phy1_host { 335*53ec6d21SJun Yan phy-supply = <&vcc5v0_usb_host>; 336*53ec6d21SJun Yan status = "okay"; 337*53ec6d21SJun Yan}; 338*53ec6d21SJun Yan 339*53ec6d21SJun Yan&usb2phy1_otg { 340*53ec6d21SJun Yan phy-supply = <&vcc5v0_usb_host>; 341*53ec6d21SJun Yan status = "okay"; 342*53ec6d21SJun Yan}; 343