1*8ccc0d23SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*8ccc0d23SEmmanuel Vadot 3*8ccc0d23SEmmanuel Vadot/dts-v1/; 4*8ccc0d23SEmmanuel Vadot 5*8ccc0d23SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 6*8ccc0d23SEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h> 7*8ccc0d23SEmmanuel Vadot#include <dt-bindings/soc/rockchip,vop2.h> 8*8ccc0d23SEmmanuel Vadot#include "rk3568.dtsi" 9*8ccc0d23SEmmanuel Vadot 10*8ccc0d23SEmmanuel Vadot/ { 11*8ccc0d23SEmmanuel Vadot model = "Ariaboard Photonicat"; 12*8ccc0d23SEmmanuel Vadot compatible = "ariaboard,photonicat", "rockchip,rk3568"; 13*8ccc0d23SEmmanuel Vadot 14*8ccc0d23SEmmanuel Vadot aliases { 15*8ccc0d23SEmmanuel Vadot ethernet0 = &gmac0; 16*8ccc0d23SEmmanuel Vadot ethernet1 = &gmac1; 17*8ccc0d23SEmmanuel Vadot mmc0 = &sdhci; 18*8ccc0d23SEmmanuel Vadot mmc1 = &sdmmc0; 19*8ccc0d23SEmmanuel Vadot mmc2 = &sdmmc1; 20*8ccc0d23SEmmanuel Vadot }; 21*8ccc0d23SEmmanuel Vadot 22*8ccc0d23SEmmanuel Vadot battery: battery { 23*8ccc0d23SEmmanuel Vadot compatible = "simple-battery"; 24*8ccc0d23SEmmanuel Vadot device-chemistry = "lithium-ion"; 25*8ccc0d23SEmmanuel Vadot charge-full-design-microamp-hours = <6800000>; 26*8ccc0d23SEmmanuel Vadot energy-full-design-microwatt-hours = <25000000>; 27*8ccc0d23SEmmanuel Vadot voltage-max-design-microvolt = <4200000>; 28*8ccc0d23SEmmanuel Vadot voltage-min-design-microvolt = <3400000>; 29*8ccc0d23SEmmanuel Vadot 30*8ccc0d23SEmmanuel Vadot ocv-capacity-celsius = <25>; 31*8ccc0d23SEmmanuel Vadot ocv-capacity-table-0 = <4100000 100>, <4040000 90>, 32*8ccc0d23SEmmanuel Vadot <3980000 80>, <3920000 70>, 33*8ccc0d23SEmmanuel Vadot <3870000 60>, <3820000 50>, 34*8ccc0d23SEmmanuel Vadot <3790000 40>, <3770000 30>, 35*8ccc0d23SEmmanuel Vadot <3740000 20>, <3680000 10>, 36*8ccc0d23SEmmanuel Vadot <3450000 0>; 37*8ccc0d23SEmmanuel Vadot }; 38*8ccc0d23SEmmanuel Vadot 39*8ccc0d23SEmmanuel Vadot chosen: chosen { 40*8ccc0d23SEmmanuel Vadot stdout-path = "serial2:1500000n8"; 41*8ccc0d23SEmmanuel Vadot }; 42*8ccc0d23SEmmanuel Vadot 43*8ccc0d23SEmmanuel Vadot hdmi_con: hdmi-con { 44*8ccc0d23SEmmanuel Vadot compatible = "hdmi-connector"; 45*8ccc0d23SEmmanuel Vadot type = "a"; 46*8ccc0d23SEmmanuel Vadot 47*8ccc0d23SEmmanuel Vadot port { 48*8ccc0d23SEmmanuel Vadot hdmi_con_in: endpoint { 49*8ccc0d23SEmmanuel Vadot remote-endpoint = <&hdmi_out_con>; 50*8ccc0d23SEmmanuel Vadot }; 51*8ccc0d23SEmmanuel Vadot }; 52*8ccc0d23SEmmanuel Vadot }; 53*8ccc0d23SEmmanuel Vadot 54*8ccc0d23SEmmanuel Vadot vcc_1v8: regulator-vcc-1v8 { 55*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 56*8ccc0d23SEmmanuel Vadot regulator-name = "vcc_1v8"; 57*8ccc0d23SEmmanuel Vadot regulator-always-on; 58*8ccc0d23SEmmanuel Vadot regulator-boot-on; 59*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <1800000>; 60*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <1800000>; 61*8ccc0d23SEmmanuel Vadot vin-supply = <&vcc3v3_sys>; 62*8ccc0d23SEmmanuel Vadot }; 63*8ccc0d23SEmmanuel Vadot 64*8ccc0d23SEmmanuel Vadot vcc_3v3: regulator-vcc-3v3 { 65*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 66*8ccc0d23SEmmanuel Vadot regulator-name = "vcc_3v3"; 67*8ccc0d23SEmmanuel Vadot regulator-always-on; 68*8ccc0d23SEmmanuel Vadot regulator-boot-on; 69*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <3300000>; 70*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <3300000>; 71*8ccc0d23SEmmanuel Vadot vin-supply = <&vcc3v3_sys>; 72*8ccc0d23SEmmanuel Vadot }; 73*8ccc0d23SEmmanuel Vadot 74*8ccc0d23SEmmanuel Vadot /* actually fed by vcc_syson, dependent 75*8ccc0d23SEmmanuel Vadot * on pi6c clock generator 76*8ccc0d23SEmmanuel Vadot */ 77*8ccc0d23SEmmanuel Vadot vcc3v3_pcie: regulator-vcc3v3-pcie { 78*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 79*8ccc0d23SEmmanuel Vadot regulator-name = "vcc3v3_pcie"; 80*8ccc0d23SEmmanuel Vadot regulator-always-on; 81*8ccc0d23SEmmanuel Vadot regulator-boot-on; 82*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <3300000>; 83*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <3300000>; 84*8ccc0d23SEmmanuel Vadot vin-supply = <&vcc3v3_pi6c>; 85*8ccc0d23SEmmanuel Vadot }; 86*8ccc0d23SEmmanuel Vadot 87*8ccc0d23SEmmanuel Vadot /* pi6c pcie clock generator */ 88*8ccc0d23SEmmanuel Vadot vcc3v3_pi6c: regulator-vcc3v3-pi6c { 89*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 90*8ccc0d23SEmmanuel Vadot enable-active-high; 91*8ccc0d23SEmmanuel Vadot gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 92*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 93*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&pcie_pwren_h>; 94*8ccc0d23SEmmanuel Vadot regulator-name = "vcc3v3_pi6c"; 95*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <3300000>; 96*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <3300000>; 97*8ccc0d23SEmmanuel Vadot vin-supply = <&vcc_syson>; 98*8ccc0d23SEmmanuel Vadot }; 99*8ccc0d23SEmmanuel Vadot 100*8ccc0d23SEmmanuel Vadot vcc3v3_sd: regulator-vcc3v3-sd { 101*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 102*8ccc0d23SEmmanuel Vadot gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>; 103*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 104*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&sdmmc0_pwren>; 105*8ccc0d23SEmmanuel Vadot regulator-boot-on; 106*8ccc0d23SEmmanuel Vadot regulator-name = "vcc3v3_sd"; 107*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <3300000>; 108*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <3300000>; 109*8ccc0d23SEmmanuel Vadot vin-supply = <&vcc_3v3>; 110*8ccc0d23SEmmanuel Vadot }; 111*8ccc0d23SEmmanuel Vadot 112*8ccc0d23SEmmanuel Vadot vcc3v3_sys: regulator-vcc3v3-sys { 113*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 114*8ccc0d23SEmmanuel Vadot regulator-name = "vcc3v3_sys"; 115*8ccc0d23SEmmanuel Vadot regulator-always-on; 116*8ccc0d23SEmmanuel Vadot regulator-boot-on; 117*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <3300000>; 118*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <3300000>; 119*8ccc0d23SEmmanuel Vadot vin-supply = <&vcc_syson>; 120*8ccc0d23SEmmanuel Vadot }; 121*8ccc0d23SEmmanuel Vadot 122*8ccc0d23SEmmanuel Vadot vcc3v4_rf: regulator-vcc3v4-rf { 123*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 124*8ccc0d23SEmmanuel Vadot enable-active-high; 125*8ccc0d23SEmmanuel Vadot gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>; 126*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 127*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&rf_pwr_en>; 128*8ccc0d23SEmmanuel Vadot regulator-name = "vcc3v4_rf"; 129*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <3400000>; 130*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <3400000>; 131*8ccc0d23SEmmanuel Vadot vin-supply = <&vccin_5v>; 132*8ccc0d23SEmmanuel Vadot }; 133*8ccc0d23SEmmanuel Vadot 134*8ccc0d23SEmmanuel Vadot vcc5v0_usb30_otg0: regulator-vcc5v0-usb30-otg0 { 135*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 136*8ccc0d23SEmmanuel Vadot enable-active-high; 137*8ccc0d23SEmmanuel Vadot gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; 138*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 139*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&usb_host_pwren_h>; 140*8ccc0d23SEmmanuel Vadot regulator-name = "vcc5v0_usb30_otg0"; 141*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <5000000>; 142*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <5000000>; 143*8ccc0d23SEmmanuel Vadot vin-supply = <&vccin_5v>; 144*8ccc0d23SEmmanuel Vadot }; 145*8ccc0d23SEmmanuel Vadot 146*8ccc0d23SEmmanuel Vadot vccin_5v: regulator-vccin-5v { 147*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 148*8ccc0d23SEmmanuel Vadot regulator-name = "vccin_5v"; 149*8ccc0d23SEmmanuel Vadot regulator-always-on; 150*8ccc0d23SEmmanuel Vadot regulator-boot-on; 151*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <5000000>; 152*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <5000000>; 153*8ccc0d23SEmmanuel Vadot }; 154*8ccc0d23SEmmanuel Vadot 155*8ccc0d23SEmmanuel Vadot vcc_sysin: regulator-vcc-sysin { 156*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 157*8ccc0d23SEmmanuel Vadot regulator-name = "vcc_sysin"; 158*8ccc0d23SEmmanuel Vadot regulator-always-on; 159*8ccc0d23SEmmanuel Vadot regulator-boot-on; 160*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <5000000>; 161*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <5000000>; 162*8ccc0d23SEmmanuel Vadot vin-supply = <&vccin_5v>; 163*8ccc0d23SEmmanuel Vadot }; 164*8ccc0d23SEmmanuel Vadot 165*8ccc0d23SEmmanuel Vadot vcc_syson: regulator-vcc-syson { 166*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 167*8ccc0d23SEmmanuel Vadot regulator-name = "vcc_syson"; 168*8ccc0d23SEmmanuel Vadot regulator-always-on; 169*8ccc0d23SEmmanuel Vadot regulator-boot-on; 170*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <5000000>; 171*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <5000000>; 172*8ccc0d23SEmmanuel Vadot vin-supply = <&vcc_sysin>; 173*8ccc0d23SEmmanuel Vadot }; 174*8ccc0d23SEmmanuel Vadot 175*8ccc0d23SEmmanuel Vadot vcca_1v8: regulator-vcca-1v8 { 176*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 177*8ccc0d23SEmmanuel Vadot regulator-name = "vcca_1v8"; 178*8ccc0d23SEmmanuel Vadot regulator-always-on; 179*8ccc0d23SEmmanuel Vadot regulator-boot-on; 180*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <1800000>; 181*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <1800000>; 182*8ccc0d23SEmmanuel Vadot vin-supply = <&vcc3v3_sys>; 183*8ccc0d23SEmmanuel Vadot }; 184*8ccc0d23SEmmanuel Vadot 185*8ccc0d23SEmmanuel Vadot vdda_0v9: regulator-vdda-0v9 { 186*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 187*8ccc0d23SEmmanuel Vadot regulator-name = "vdda_0v9"; 188*8ccc0d23SEmmanuel Vadot regulator-always-on; 189*8ccc0d23SEmmanuel Vadot regulator-boot-on; 190*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <900000>; 191*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <900000>; 192*8ccc0d23SEmmanuel Vadot vin-supply = <&vcc3v3_sys>; 193*8ccc0d23SEmmanuel Vadot }; 194*8ccc0d23SEmmanuel Vadot 195*8ccc0d23SEmmanuel Vadot vdd_gpu: regulator-vdd-gpu { 196*8ccc0d23SEmmanuel Vadot compatible = "pwm-regulator"; 197*8ccc0d23SEmmanuel Vadot pwms = <&pwm2 0 5000 1>; 198*8ccc0d23SEmmanuel Vadot pwm-supply = <&vcc_syson>; 199*8ccc0d23SEmmanuel Vadot regulator-name = "vdd_gpu"; 200*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <800000>; 201*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <1350000>; 202*8ccc0d23SEmmanuel Vadot regulator-ramp-delay = <6001>; 203*8ccc0d23SEmmanuel Vadot regulator-settling-time-up-us = <250>; 204*8ccc0d23SEmmanuel Vadot }; 205*8ccc0d23SEmmanuel Vadot 206*8ccc0d23SEmmanuel Vadot vdd_logic: regulator-vdd-logic { 207*8ccc0d23SEmmanuel Vadot compatible = "pwm-regulator"; 208*8ccc0d23SEmmanuel Vadot pwms = <&pwm1 0 5000 1>; 209*8ccc0d23SEmmanuel Vadot pwm-supply = <&vcc_syson>; 210*8ccc0d23SEmmanuel Vadot regulator-name = "vdd_logic"; 211*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <500000>; 212*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <1350000>; 213*8ccc0d23SEmmanuel Vadot regulator-ramp-delay = <6001>; 214*8ccc0d23SEmmanuel Vadot regulator-settling-time-up-us = <250>; 215*8ccc0d23SEmmanuel Vadot }; 216*8ccc0d23SEmmanuel Vadot 217*8ccc0d23SEmmanuel Vadot rfkill-modem { 218*8ccc0d23SEmmanuel Vadot compatible = "rfkill-gpio"; 219*8ccc0d23SEmmanuel Vadot label = "M.2 USB Modem"; 220*8ccc0d23SEmmanuel Vadot radio-type = "wwan"; 221*8ccc0d23SEmmanuel Vadot shutdown-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>; 222*8ccc0d23SEmmanuel Vadot }; 223*8ccc0d23SEmmanuel Vadot 224*8ccc0d23SEmmanuel Vadot wifi_pwrseq: wifi-pwrseq { 225*8ccc0d23SEmmanuel Vadot compatible = "mmc-pwrseq-simple"; 226*8ccc0d23SEmmanuel Vadot clocks = <&pmucru CLK_RTC_32K>; 227*8ccc0d23SEmmanuel Vadot clock-names = "ext_clock"; 228*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 229*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&wifi_reg_on_h &clk32k_out1>; 230*8ccc0d23SEmmanuel Vadot post-power-on-delay-ms = <200>; 231*8ccc0d23SEmmanuel Vadot reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; 232*8ccc0d23SEmmanuel Vadot }; 233*8ccc0d23SEmmanuel Vadot}; 234*8ccc0d23SEmmanuel Vadot 235*8ccc0d23SEmmanuel Vadot&combphy0 { 236*8ccc0d23SEmmanuel Vadot status = "okay"; 237*8ccc0d23SEmmanuel Vadot}; 238*8ccc0d23SEmmanuel Vadot 239*8ccc0d23SEmmanuel Vadot&combphy1 { 240*8ccc0d23SEmmanuel Vadot status = "okay"; 241*8ccc0d23SEmmanuel Vadot}; 242*8ccc0d23SEmmanuel Vadot 243*8ccc0d23SEmmanuel Vadot&combphy2 { 244*8ccc0d23SEmmanuel Vadot status = "okay"; 245*8ccc0d23SEmmanuel Vadot}; 246*8ccc0d23SEmmanuel Vadot 247*8ccc0d23SEmmanuel Vadot&cpu0 { 248*8ccc0d23SEmmanuel Vadot cpu-supply = <&vdd_cpu>; 249*8ccc0d23SEmmanuel Vadot}; 250*8ccc0d23SEmmanuel Vadot 251*8ccc0d23SEmmanuel Vadot&cpu1 { 252*8ccc0d23SEmmanuel Vadot cpu-supply = <&vdd_cpu>; 253*8ccc0d23SEmmanuel Vadot}; 254*8ccc0d23SEmmanuel Vadot 255*8ccc0d23SEmmanuel Vadot&cpu2 { 256*8ccc0d23SEmmanuel Vadot cpu-supply = <&vdd_cpu>; 257*8ccc0d23SEmmanuel Vadot}; 258*8ccc0d23SEmmanuel Vadot 259*8ccc0d23SEmmanuel Vadot&cpu3 { 260*8ccc0d23SEmmanuel Vadot cpu-supply = <&vdd_cpu>; 261*8ccc0d23SEmmanuel Vadot}; 262*8ccc0d23SEmmanuel Vadot 263*8ccc0d23SEmmanuel Vadot/* Motorcomm YT8521SC LAN port (require SGMII) */ 264*8ccc0d23SEmmanuel Vadot&gmac0 { 265*8ccc0d23SEmmanuel Vadot status = "disabled"; 266*8ccc0d23SEmmanuel Vadot}; 267*8ccc0d23SEmmanuel Vadot 268*8ccc0d23SEmmanuel Vadot/* Motorcomm YT8521SC WAN port */ 269*8ccc0d23SEmmanuel Vadot&gmac1 { 270*8ccc0d23SEmmanuel Vadot assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; 271*8ccc0d23SEmmanuel Vadot assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>; 272*8ccc0d23SEmmanuel Vadot assigned-clock-rates = <0>, <125000000>; 273*8ccc0d23SEmmanuel Vadot clock_in_out = "output"; 274*8ccc0d23SEmmanuel Vadot phy-handle = <&rgmii_phy>; 275*8ccc0d23SEmmanuel Vadot phy-mode = "rgmii-id"; 276*8ccc0d23SEmmanuel Vadot phy-supply = <&vcc_3v3>; 277*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 278*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&gmac1m1_miim 279*8ccc0d23SEmmanuel Vadot &gmac1m1_tx_bus2 280*8ccc0d23SEmmanuel Vadot &gmac1m1_rx_bus2 281*8ccc0d23SEmmanuel Vadot &gmac1m1_rgmii_clk 282*8ccc0d23SEmmanuel Vadot &gmac1m1_rgmii_bus>; 283*8ccc0d23SEmmanuel Vadot status = "okay"; 284*8ccc0d23SEmmanuel Vadot}; 285*8ccc0d23SEmmanuel Vadot 286*8ccc0d23SEmmanuel Vadot&gpu { 287*8ccc0d23SEmmanuel Vadot mali-supply = <&vdd_gpu>; 288*8ccc0d23SEmmanuel Vadot status = "okay"; 289*8ccc0d23SEmmanuel Vadot}; 290*8ccc0d23SEmmanuel Vadot 291*8ccc0d23SEmmanuel Vadot&hdmi { 292*8ccc0d23SEmmanuel Vadot avdd-0v9-supply = <&vdda_0v9>; 293*8ccc0d23SEmmanuel Vadot avdd-1v8-supply = <&vcca_1v8>; 294*8ccc0d23SEmmanuel Vadot status = "okay"; 295*8ccc0d23SEmmanuel Vadot}; 296*8ccc0d23SEmmanuel Vadot 297*8ccc0d23SEmmanuel Vadot&hdmi_in { 298*8ccc0d23SEmmanuel Vadot hdmi_in_vp0: endpoint { 299*8ccc0d23SEmmanuel Vadot remote-endpoint = <&vp0_out_hdmi>; 300*8ccc0d23SEmmanuel Vadot }; 301*8ccc0d23SEmmanuel Vadot}; 302*8ccc0d23SEmmanuel Vadot 303*8ccc0d23SEmmanuel Vadot&hdmi_out { 304*8ccc0d23SEmmanuel Vadot hdmi_out_con: endpoint { 305*8ccc0d23SEmmanuel Vadot remote-endpoint = <&hdmi_con_in>; 306*8ccc0d23SEmmanuel Vadot }; 307*8ccc0d23SEmmanuel Vadot}; 308*8ccc0d23SEmmanuel Vadot 309*8ccc0d23SEmmanuel Vadot&hdmi_sound { 310*8ccc0d23SEmmanuel Vadot status = "okay"; 311*8ccc0d23SEmmanuel Vadot}; 312*8ccc0d23SEmmanuel Vadot 313*8ccc0d23SEmmanuel Vadot&i2c0 { 314*8ccc0d23SEmmanuel Vadot status = "okay"; 315*8ccc0d23SEmmanuel Vadot 316*8ccc0d23SEmmanuel Vadot vdd_cpu: regulator@1c { 317*8ccc0d23SEmmanuel Vadot compatible = "tcs,tcs4525"; 318*8ccc0d23SEmmanuel Vadot reg = <0x1c>; 319*8ccc0d23SEmmanuel Vadot fcs,suspend-voltage-selector = <1>; 320*8ccc0d23SEmmanuel Vadot regulator-name = "vdd_cpu"; 321*8ccc0d23SEmmanuel Vadot regulator-always-on; 322*8ccc0d23SEmmanuel Vadot regulator-boot-on; 323*8ccc0d23SEmmanuel Vadot regulator-min-microvolt = <800000>; 324*8ccc0d23SEmmanuel Vadot regulator-max-microvolt = <1150000>; 325*8ccc0d23SEmmanuel Vadot regulator-ramp-delay = <2300>; 326*8ccc0d23SEmmanuel Vadot vin-supply = <&vcc_syson>; 327*8ccc0d23SEmmanuel Vadot 328*8ccc0d23SEmmanuel Vadot regulator-state-mem { 329*8ccc0d23SEmmanuel Vadot regulator-off-in-suspend; 330*8ccc0d23SEmmanuel Vadot }; 331*8ccc0d23SEmmanuel Vadot }; 332*8ccc0d23SEmmanuel Vadot}; 333*8ccc0d23SEmmanuel Vadot 334*8ccc0d23SEmmanuel Vadot&i2c2 { 335*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 336*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&i2c2m1_xfer>; 337*8ccc0d23SEmmanuel Vadot status = "okay"; 338*8ccc0d23SEmmanuel Vadot}; 339*8ccc0d23SEmmanuel Vadot 340*8ccc0d23SEmmanuel Vadot&i2s0_8ch { 341*8ccc0d23SEmmanuel Vadot status = "okay"; 342*8ccc0d23SEmmanuel Vadot}; 343*8ccc0d23SEmmanuel Vadot 344*8ccc0d23SEmmanuel Vadot&mdio1 { 345*8ccc0d23SEmmanuel Vadot rgmii_phy: ethernet-phy@3 { 346*8ccc0d23SEmmanuel Vadot compatible = "ethernet-phy-ieee802.3-c22"; 347*8ccc0d23SEmmanuel Vadot reg = <0x3>; 348*8ccc0d23SEmmanuel Vadot reset-assert-us = <20000>; 349*8ccc0d23SEmmanuel Vadot reset-deassert-us = <100000>; 350*8ccc0d23SEmmanuel Vadot reset-gpios = <&gpio4 RK_PC0 GPIO_ACTIVE_LOW>; 351*8ccc0d23SEmmanuel Vadot rx-internal-delay-ps = <1500>; 352*8ccc0d23SEmmanuel Vadot tx-internal-delay-ps = <1500>; 353*8ccc0d23SEmmanuel Vadot }; 354*8ccc0d23SEmmanuel Vadot}; 355*8ccc0d23SEmmanuel Vadot 356*8ccc0d23SEmmanuel Vadot&pcie30phy { 357*8ccc0d23SEmmanuel Vadot status = "okay"; 358*8ccc0d23SEmmanuel Vadot}; 359*8ccc0d23SEmmanuel Vadot 360*8ccc0d23SEmmanuel Vadot/* M.2 E-Key for PCIe WLAN */ 361*8ccc0d23SEmmanuel Vadot&pcie3x2 { 362*8ccc0d23SEmmanuel Vadot max-link-speed = <1>; 363*8ccc0d23SEmmanuel Vadot num-lanes = <1>; 364*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 365*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&pcie30x1m0_pins>; 366*8ccc0d23SEmmanuel Vadot reset-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>; 367*8ccc0d23SEmmanuel Vadot vpcie3v3-supply = <&vcc3v3_pcie>; 368*8ccc0d23SEmmanuel Vadot status = "okay"; 369*8ccc0d23SEmmanuel Vadot}; 370*8ccc0d23SEmmanuel Vadot 371*8ccc0d23SEmmanuel Vadot&pinctrl { 372*8ccc0d23SEmmanuel Vadot bt { 373*8ccc0d23SEmmanuel Vadot bt_reg_on_h: bt-reg-on-h { 374*8ccc0d23SEmmanuel Vadot rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 375*8ccc0d23SEmmanuel Vadot }; 376*8ccc0d23SEmmanuel Vadot }; 377*8ccc0d23SEmmanuel Vadot 378*8ccc0d23SEmmanuel Vadot pcie { 379*8ccc0d23SEmmanuel Vadot pcie_pwren_h: pcie-pwren-h { 380*8ccc0d23SEmmanuel Vadot rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 381*8ccc0d23SEmmanuel Vadot }; 382*8ccc0d23SEmmanuel Vadot }; 383*8ccc0d23SEmmanuel Vadot 384*8ccc0d23SEmmanuel Vadot sdmmc0 { 385*8ccc0d23SEmmanuel Vadot sdmmc0_pwren: sdmmc0-pwren { 386*8ccc0d23SEmmanuel Vadot rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 387*8ccc0d23SEmmanuel Vadot }; 388*8ccc0d23SEmmanuel Vadot }; 389*8ccc0d23SEmmanuel Vadot 390*8ccc0d23SEmmanuel Vadot usb { 391*8ccc0d23SEmmanuel Vadot rf_pwr_en: rf-pwr-en { 392*8ccc0d23SEmmanuel Vadot rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 393*8ccc0d23SEmmanuel Vadot }; 394*8ccc0d23SEmmanuel Vadot 395*8ccc0d23SEmmanuel Vadot usb_host_pwren_h: usb-host-pwren-h { 396*8ccc0d23SEmmanuel Vadot rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 397*8ccc0d23SEmmanuel Vadot }; 398*8ccc0d23SEmmanuel Vadot }; 399*8ccc0d23SEmmanuel Vadot 400*8ccc0d23SEmmanuel Vadot wifi { 401*8ccc0d23SEmmanuel Vadot wifi_reg_on_h: wifi-reg-on-h { 402*8ccc0d23SEmmanuel Vadot rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 403*8ccc0d23SEmmanuel Vadot }; 404*8ccc0d23SEmmanuel Vadot }; 405*8ccc0d23SEmmanuel Vadot}; 406*8ccc0d23SEmmanuel Vadot 407*8ccc0d23SEmmanuel Vadot&pmu_io_domains { 408*8ccc0d23SEmmanuel Vadot pmuio1-supply = <&vcc_3v3>; 409*8ccc0d23SEmmanuel Vadot pmuio2-supply = <&vcc_3v3>; 410*8ccc0d23SEmmanuel Vadot vccio1-supply = <&vcc_3v3>; 411*8ccc0d23SEmmanuel Vadot vccio2-supply = <&vcc_1v8>; 412*8ccc0d23SEmmanuel Vadot vccio3-supply = <&vcc_3v3>; 413*8ccc0d23SEmmanuel Vadot vccio4-supply = <&vcc_1v8>; 414*8ccc0d23SEmmanuel Vadot vccio5-supply = <&vcc_3v3>; 415*8ccc0d23SEmmanuel Vadot vccio6-supply = <&vcc_3v3>; 416*8ccc0d23SEmmanuel Vadot vccio7-supply = <&vcc_3v3>; 417*8ccc0d23SEmmanuel Vadot status = "okay"; 418*8ccc0d23SEmmanuel Vadot}; 419*8ccc0d23SEmmanuel Vadot 420*8ccc0d23SEmmanuel Vadot&pwm1 { 421*8ccc0d23SEmmanuel Vadot status = "okay"; 422*8ccc0d23SEmmanuel Vadot}; 423*8ccc0d23SEmmanuel Vadot 424*8ccc0d23SEmmanuel Vadot&pwm2 { 425*8ccc0d23SEmmanuel Vadot status = "okay"; 426*8ccc0d23SEmmanuel Vadot}; 427*8ccc0d23SEmmanuel Vadot 428*8ccc0d23SEmmanuel Vadot&saradc { 429*8ccc0d23SEmmanuel Vadot vref-supply = <&vcca_1v8>; 430*8ccc0d23SEmmanuel Vadot status = "okay"; 431*8ccc0d23SEmmanuel Vadot}; 432*8ccc0d23SEmmanuel Vadot 433*8ccc0d23SEmmanuel Vadot/* eMMC */ 434*8ccc0d23SEmmanuel Vadot&sdhci { 435*8ccc0d23SEmmanuel Vadot bus-width = <8>; 436*8ccc0d23SEmmanuel Vadot max-frequency = <200000000>; 437*8ccc0d23SEmmanuel Vadot mmc-hs200-1_8v; 438*8ccc0d23SEmmanuel Vadot non-removable; 439*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 440*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>; 441*8ccc0d23SEmmanuel Vadot vmmc-supply = <&vcc_3v3>; 442*8ccc0d23SEmmanuel Vadot vqmmc-supply = <&vcc_1v8>; 443*8ccc0d23SEmmanuel Vadot status = "okay"; 444*8ccc0d23SEmmanuel Vadot}; 445*8ccc0d23SEmmanuel Vadot 446*8ccc0d23SEmmanuel Vadot/* Micro SD card slot */ 447*8ccc0d23SEmmanuel Vadot&sdmmc0 { 448*8ccc0d23SEmmanuel Vadot bus-width = <4>; 449*8ccc0d23SEmmanuel Vadot cap-sd-highspeed; 450*8ccc0d23SEmmanuel Vadot cd-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_LOW>; 451*8ccc0d23SEmmanuel Vadot disable-wp; 452*8ccc0d23SEmmanuel Vadot no-1-8-v; 453*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 454*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd>; 455*8ccc0d23SEmmanuel Vadot vmmc-supply = <&vcc3v3_sd>; 456*8ccc0d23SEmmanuel Vadot vqmmc-supply = <&vcc_3v3>; 457*8ccc0d23SEmmanuel Vadot status = "okay"; 458*8ccc0d23SEmmanuel Vadot}; 459*8ccc0d23SEmmanuel Vadot 460*8ccc0d23SEmmanuel Vadot/* Qualcomm Atheros QCA9377 WiFi */ 461*8ccc0d23SEmmanuel Vadot&sdmmc1 { 462*8ccc0d23SEmmanuel Vadot bus-width = <4>; 463*8ccc0d23SEmmanuel Vadot cap-sd-highspeed; 464*8ccc0d23SEmmanuel Vadot cap-sdio-irq; 465*8ccc0d23SEmmanuel Vadot keep-power-in-suspend; 466*8ccc0d23SEmmanuel Vadot mmc-pwrseq = <&wifi_pwrseq>; 467*8ccc0d23SEmmanuel Vadot non-removable; 468*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 469*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 470*8ccc0d23SEmmanuel Vadot sd-uhs-sdr104; 471*8ccc0d23SEmmanuel Vadot vmmc-supply = <&vcc3v3_sys>; 472*8ccc0d23SEmmanuel Vadot vqmmc-supply = <&vcc_1v8>; 473*8ccc0d23SEmmanuel Vadot #address-cells = <1>; 474*8ccc0d23SEmmanuel Vadot #size-cells = <0>; 475*8ccc0d23SEmmanuel Vadot status = "okay"; 476*8ccc0d23SEmmanuel Vadot 477*8ccc0d23SEmmanuel Vadot wifi: wifi@1 { 478*8ccc0d23SEmmanuel Vadot reg = <1>; 479*8ccc0d23SEmmanuel Vadot interrupt-parent = <&gpio2>; 480*8ccc0d23SEmmanuel Vadot interrupts = <RK_PB2 IRQ_TYPE_LEVEL_HIGH>; 481*8ccc0d23SEmmanuel Vadot interrupt-names = "host-wake"; 482*8ccc0d23SEmmanuel Vadot }; 483*8ccc0d23SEmmanuel Vadot}; 484*8ccc0d23SEmmanuel Vadot 485*8ccc0d23SEmmanuel Vadot&tsadc { 486*8ccc0d23SEmmanuel Vadot rockchip,hw-tshut-mode = <1>; 487*8ccc0d23SEmmanuel Vadot rockchip,hw-tshut-polarity = <0>; 488*8ccc0d23SEmmanuel Vadot status = "okay"; 489*8ccc0d23SEmmanuel Vadot}; 490*8ccc0d23SEmmanuel Vadot 491*8ccc0d23SEmmanuel Vadot/* Qualcomm Atheros QCA9377 Bluetooth */ 492*8ccc0d23SEmmanuel Vadot&uart1 { 493*8ccc0d23SEmmanuel Vadot dma-names = "tx", "rx"; 494*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 495*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 496*8ccc0d23SEmmanuel Vadot uart-has-rtscts; 497*8ccc0d23SEmmanuel Vadot status = "okay"; 498*8ccc0d23SEmmanuel Vadot 499*8ccc0d23SEmmanuel Vadot bluetooth { 500*8ccc0d23SEmmanuel Vadot compatible = "qcom,qca9377-bt"; 501*8ccc0d23SEmmanuel Vadot clocks = <&pmucru CLK_RTC_32K>; 502*8ccc0d23SEmmanuel Vadot enable-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 503*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 504*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&bt_reg_on_h>; 505*8ccc0d23SEmmanuel Vadot vddio-supply = <&vcc_1v8>; 506*8ccc0d23SEmmanuel Vadot }; 507*8ccc0d23SEmmanuel Vadot}; 508*8ccc0d23SEmmanuel Vadot 509*8ccc0d23SEmmanuel Vadot/* Debug UART */ 510*8ccc0d23SEmmanuel Vadot&uart2 { 511*8ccc0d23SEmmanuel Vadot status = "okay"; 512*8ccc0d23SEmmanuel Vadot}; 513*8ccc0d23SEmmanuel Vadot 514*8ccc0d23SEmmanuel Vadot&uart3 { 515*8ccc0d23SEmmanuel Vadot dma-names = "tx", "rx"; 516*8ccc0d23SEmmanuel Vadot status = "okay"; 517*8ccc0d23SEmmanuel Vadot}; 518*8ccc0d23SEmmanuel Vadot 519*8ccc0d23SEmmanuel Vadot/* Onboard power management MCU */ 520*8ccc0d23SEmmanuel Vadot&uart4 { 521*8ccc0d23SEmmanuel Vadot dma-names = "tx", "rx"; 522*8ccc0d23SEmmanuel Vadot status = "okay"; 523*8ccc0d23SEmmanuel Vadot}; 524*8ccc0d23SEmmanuel Vadot 525*8ccc0d23SEmmanuel Vadot/* M.2 E-Key for USB Bluetooth */ 526*8ccc0d23SEmmanuel Vadot&usb_host0_ehci { 527*8ccc0d23SEmmanuel Vadot status = "okay"; 528*8ccc0d23SEmmanuel Vadot}; 529*8ccc0d23SEmmanuel Vadot 530*8ccc0d23SEmmanuel Vadot&usb_host0_ohci { 531*8ccc0d23SEmmanuel Vadot status = "okay"; 532*8ccc0d23SEmmanuel Vadot}; 533*8ccc0d23SEmmanuel Vadot 534*8ccc0d23SEmmanuel Vadot/* USB Type-A Port */ 535*8ccc0d23SEmmanuel Vadot&usb_host0_xhci { 536*8ccc0d23SEmmanuel Vadot dr_mode = "host"; 537*8ccc0d23SEmmanuel Vadot status = "okay"; 538*8ccc0d23SEmmanuel Vadot}; 539*8ccc0d23SEmmanuel Vadot 540*8ccc0d23SEmmanuel Vadot/* M.2 B-Key for USB Modem WWAN */ 541*8ccc0d23SEmmanuel Vadot&usb_host1_xhci { 542*8ccc0d23SEmmanuel Vadot status = "okay"; 543*8ccc0d23SEmmanuel Vadot}; 544*8ccc0d23SEmmanuel Vadot 545*8ccc0d23SEmmanuel Vadot&usb2phy0 { 546*8ccc0d23SEmmanuel Vadot status = "okay"; 547*8ccc0d23SEmmanuel Vadot}; 548*8ccc0d23SEmmanuel Vadot 549*8ccc0d23SEmmanuel Vadot&usb2phy0_host { 550*8ccc0d23SEmmanuel Vadot phy-supply = <&vcc3v4_rf>; 551*8ccc0d23SEmmanuel Vadot status = "okay"; 552*8ccc0d23SEmmanuel Vadot}; 553*8ccc0d23SEmmanuel Vadot 554*8ccc0d23SEmmanuel Vadot&usb2phy0_otg { 555*8ccc0d23SEmmanuel Vadot phy-supply = <&vcc5v0_usb30_otg0>; 556*8ccc0d23SEmmanuel Vadot status = "okay"; 557*8ccc0d23SEmmanuel Vadot}; 558*8ccc0d23SEmmanuel Vadot 559*8ccc0d23SEmmanuel Vadot&usb2phy1 { 560*8ccc0d23SEmmanuel Vadot status = "okay"; 561*8ccc0d23SEmmanuel Vadot}; 562*8ccc0d23SEmmanuel Vadot 563*8ccc0d23SEmmanuel Vadot&usb2phy1_otg { 564*8ccc0d23SEmmanuel Vadot phy-supply = <&vcc5v0_usb30_otg0>; 565*8ccc0d23SEmmanuel Vadot status = "okay"; 566*8ccc0d23SEmmanuel Vadot}; 567*8ccc0d23SEmmanuel Vadot 568*8ccc0d23SEmmanuel Vadot&vop { 569*8ccc0d23SEmmanuel Vadot assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 570*8ccc0d23SEmmanuel Vadot assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 571*8ccc0d23SEmmanuel Vadot status = "okay"; 572*8ccc0d23SEmmanuel Vadot}; 573*8ccc0d23SEmmanuel Vadot 574*8ccc0d23SEmmanuel Vadot&vop_mmu { 575*8ccc0d23SEmmanuel Vadot status = "okay"; 576*8ccc0d23SEmmanuel Vadot}; 577*8ccc0d23SEmmanuel Vadot 578*8ccc0d23SEmmanuel Vadot&vp0 { 579*8ccc0d23SEmmanuel Vadot vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 580*8ccc0d23SEmmanuel Vadot reg = <ROCKCHIP_VOP2_EP_HDMI0>; 581*8ccc0d23SEmmanuel Vadot remote-endpoint = <&hdmi_in_vp0>; 582*8ccc0d23SEmmanuel Vadot }; 583*8ccc0d23SEmmanuel Vadot}; 584*8ccc0d23SEmmanuel Vadot 585*8ccc0d23SEmmanuel Vadot&xin32k { 586*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 587*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&clk32k_out1>; 588*8ccc0d23SEmmanuel Vadot}; 589