Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 
0003 /dts-v1/;
0004 
0005 #include <dt-bindings/gpio/gpio.h>
0006 #include <dt-bindings/pinctrl/rockchip.h>
0007 #include <dt-bindings/soc/rockchip,vop2.h>
0008 #include "rk3566.dtsi"
0009 
0010 / {
0011         model = "Pine64 RK3566 Quartz64-A Board";
0012         compatible = "pine64,quartz64-a", "rockchip,rk3566";
0013 
0014         aliases {
0015                 ethernet0 = &gmac1;
0016                 mmc0 = &sdmmc0;
0017                 mmc1 = &sdhci;
0018         };
0019 
0020         chosen: chosen {
0021                 stdout-path = "serial2:1500000n8";
0022         };
0023 
0024         gmac1_clkin: external-gmac1-clock {
0025                 compatible = "fixed-clock";
0026                 clock-frequency = <125000000>;
0027                 clock-output-names = "gmac1_clkin";
0028                 #clock-cells = <0>;
0029         };
0030 
0031         fan: gpio_fan {
0032                 compatible = "gpio-fan";
0033                 gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
0034                 gpio-fan,speed-map = <0    0
0035                                       4500 1>;
0036                 pinctrl-names = "default";
0037                 pinctrl-0 = <&fan_en_h>;
0038                 #cooling-cells = <2>;
0039         };
0040 
0041         hdmi-con {
0042                 compatible = "hdmi-connector";
0043                 type = "a";
0044 
0045                 port {
0046                         hdmi_con_in: endpoint {
0047                                 remote-endpoint = <&hdmi_out_con>;
0048                         };
0049                 };
0050         };
0051 
0052         leds {
0053                 compatible = "gpio-leds";
0054 
0055                 led-work {
0056                         label = "work-led";
0057                         default-state = "off";
0058                         gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
0059                         pinctrl-names = "default";
0060                         pinctrl-0 = <&work_led_enable_h>;
0061                         retain-state-suspended;
0062                 };
0063 
0064                 led-diy {
0065                         label = "diy-led";
0066                         default-state = "on";
0067                         gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
0068                         linux,default-trigger = "heartbeat";
0069                         pinctrl-names = "default";
0070                         pinctrl-0 = <&diy_led_enable_h>;
0071                         retain-state-suspended;
0072                 };
0073         };
0074 
0075         rk817-sound {
0076                 compatible = "simple-audio-card";
0077                 simple-audio-card,format = "i2s";
0078                 simple-audio-card,name = "Analog RK817";
0079                 simple-audio-card,mclk-fs = <256>;
0080 
0081                 simple-audio-card,cpu {
0082                         sound-dai = <&i2s1_8ch>;
0083                 };
0084 
0085                 simple-audio-card,codec {
0086                         sound-dai = <&rk817>;
0087                 };
0088         };
0089 
0090         sdio_pwrseq: sdio-pwrseq {
0091                 compatible = "mmc-pwrseq-simple";
0092                 clocks = <&rk817 1>;
0093                 clock-names = "ext_clock";
0094                 pinctrl-names = "default";
0095                 pinctrl-0 = <&wifi_enable_h>;
0096                 post-power-on-delay-ms = <100>;
0097                 power-off-delay-us = <5000000>;
0098                 reset-gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_LOW>;
0099         };
0100 
0101         spdif_dit: spdif-dit {
0102                 compatible = "linux,spdif-dit";
0103                 #sound-dai-cells = <0>;
0104         };
0105 
0106         spdif_sound: spdif-sound {
0107                 compatible = "simple-audio-card";
0108                 simple-audio-card,name = "SPDIF";
0109 
0110                 simple-audio-card,cpu {
0111                         sound-dai = <&spdif>;
0112                 };
0113 
0114                 simple-audio-card,codec {
0115                         sound-dai = <&spdif_dit>;
0116                 };
0117         };
0118 
0119         vcc12v_dcin: vcc12v_dcin {
0120                 compatible = "regulator-fixed";
0121                 regulator-name = "vcc12v_dcin";
0122                 regulator-always-on;
0123                 regulator-boot-on;
0124                 regulator-min-microvolt = <12000000>;
0125                 regulator-max-microvolt = <12000000>;
0126         };
0127 
0128         /* vbus feeds the rk817 usb input.
0129          * With no battery attached, also feeds vcc_bat+
0130          * via ON/OFF_BAT jumper
0131          */
0132         vbus: vbus {
0133                 compatible = "regulator-fixed";
0134                 regulator-name = "vbus";
0135                 regulator-always-on;
0136                 regulator-boot-on;
0137                 regulator-min-microvolt = <5000000>;
0138                 regulator-max-microvolt = <5000000>;
0139                 vin-supply = <&vcc12v_dcin>;
0140         };
0141 
0142         vcc3v3_pcie_p: vcc3v3-pcie-p-regulator {
0143                 compatible = "regulator-fixed";
0144                 enable-active-high;
0145                 gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
0146                 pinctrl-names = "default";
0147                 pinctrl-0 = <&pcie_enable_h>;
0148                 regulator-name = "vcc3v3_pcie_p";
0149                 regulator-min-microvolt = <3300000>;
0150                 regulator-max-microvolt = <3300000>;
0151                 vin-supply = <&vcc_3v3>;
0152         };
0153 
0154         vcc5v0_usb: vcc5v0_usb {
0155                 compatible = "regulator-fixed";
0156                 regulator-name = "vcc5v0_usb";
0157                 regulator-always-on;
0158                 regulator-boot-on;
0159                 regulator-min-microvolt = <5000000>;
0160                 regulator-max-microvolt = <5000000>;
0161                 vin-supply = <&vcc12v_dcin>;
0162         };
0163 
0164         /* all four ports are controlled by one gpio
0165          * the host ports are sourced from vcc5v0_usb
0166          * the otg port is sourced from vcc5v0_midu
0167          */
0168         vcc5v0_usb20_host: vcc5v0_usb20_host {
0169                 compatible = "regulator-fixed";
0170                 enable-active-high;
0171                 gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
0172                 pinctrl-names = "default";
0173                 pinctrl-0 = <&vcc5v0_usb20_host_en>;
0174                 regulator-name = "vcc5v0_usb20_host";
0175                 regulator-min-microvolt = <5000000>;
0176                 regulator-max-microvolt = <5000000>;
0177                 vin-supply = <&vcc5v0_usb>;
0178         };
0179 
0180         vcc5v0_usb20_otg: vcc5v0_usb20_otg {
0181                 compatible = "regulator-fixed";
0182                 enable-active-high;
0183                 gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
0184                 regulator-name = "vcc5v0_usb20_otg";
0185                 regulator-min-microvolt = <5000000>;
0186                 regulator-max-microvolt = <5000000>;
0187                 vin-supply = <&dcdc_boost>;
0188         };
0189 
0190         vcc3v3_sd: vcc3v3_sd {
0191                 compatible = "regulator-fixed";
0192                 gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
0193                 pinctrl-names = "default";
0194                 pinctrl-0 = <&vcc_sd_h>;
0195                 regulator-boot-on;
0196                 regulator-name = "vcc3v3_sd";
0197                 regulator-min-microvolt = <3300000>;
0198                 regulator-max-microvolt = <3300000>;
0199                 vin-supply = <&vcc_3v3>;
0200         };
0201 
0202         /* sourced from vbus and vcc_bat+ via rk817 sw5 */
0203         vcc_sys: vcc_sys {
0204                 compatible = "regulator-fixed";
0205                 regulator-name = "vcc_sys";
0206                 regulator-always-on;
0207                 regulator-boot-on;
0208                 regulator-min-microvolt = <4400000>;
0209                 regulator-max-microvolt = <4400000>;
0210                 vin-supply = <&vbus>;
0211         };
0212 
0213         /* sourced from vcc_sys, sdio module operates internally at 3.3v */
0214         vcc_wl: vcc_wl {
0215                 compatible = "regulator-fixed";
0216                 regulator-name = "vcc_wl";
0217                 regulator-always-on;
0218                 regulator-boot-on;
0219                 regulator-min-microvolt = <3300000>;
0220                 regulator-max-microvolt = <3300000>;
0221                 vin-supply = <&vcc_sys>;
0222         };
0223 };
0224 
0225 &combphy1 {
0226         status = "okay";
0227 };
0228 
0229 &combphy2 {
0230         status = "okay";
0231 };
0232 
0233 &cpu0 {
0234         cpu-supply = <&vdd_cpu>;
0235 };
0236 
0237 &cpu1 {
0238         cpu-supply = <&vdd_cpu>;
0239 };
0240 
0241 &cpu2 {
0242         cpu-supply = <&vdd_cpu>;
0243 };
0244 
0245 &cpu3 {
0246         cpu-supply = <&vdd_cpu>;
0247 };
0248 
0249 &cpu_thermal {
0250         trips {
0251                 cpu_hot: cpu_hot {
0252                         temperature = <55000>;
0253                         hysteresis = <2000>;
0254                         type = "active";
0255                 };
0256         };
0257 
0258         cooling-maps {
0259                 map1 {
0260                         trip = <&cpu_hot>;
0261                         cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
0262                 };
0263         };
0264 };
0265 
0266 &gmac1 {
0267         assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
0268         assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
0269         clock_in_out = "input";
0270         phy-supply = <&vcc_3v3>;
0271         phy-mode = "rgmii";
0272         pinctrl-names = "default";
0273         pinctrl-0 = <&gmac1m0_miim
0274                      &gmac1m0_tx_bus2
0275                      &gmac1m0_rx_bus2
0276                      &gmac1m0_rgmii_clk
0277                      &gmac1m0_clkinout
0278                      &gmac1m0_rgmii_bus>;
0279         snps,reset-gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>;
0280         snps,reset-active-low;
0281         /* Reset time is 20ms, 100ms for rtl8211f */
0282         snps,reset-delays-us = <0 20000 100000>;
0283         tx_delay = <0x30>;
0284         rx_delay = <0x10>;
0285         phy-handle = <&rgmii_phy1>;
0286         status = "okay";
0287 };
0288 
0289 &gpu {
0290         mali-supply = <&vdd_gpu>;
0291         status = "okay";
0292 };
0293 
0294 &hdmi {
0295         avdd-0v9-supply = <&vdda_0v9>;
0296         avdd-1v8-supply = <&vcc_1v8>;
0297         status = "okay";
0298 };
0299 
0300 &hdmi_in {
0301         hdmi_in_vp0: endpoint {
0302                 remote-endpoint = <&vp0_out_hdmi>;
0303         };
0304 };
0305 
0306 &hdmi_out {
0307         hdmi_out_con: endpoint {
0308                 remote-endpoint = <&hdmi_con_in>;
0309         };
0310 };
0311 
0312 &hdmi_sound {
0313         status = "okay";
0314 };
0315 
0316 &i2c0 {
0317         status = "okay";
0318 
0319         vdd_cpu: regulator@1c {
0320                 compatible = "tcs,tcs4525";
0321                 reg = <0x1c>;
0322                 fcs,suspend-voltage-selector = <1>;
0323                 regulator-name = "vdd_cpu";
0324                 regulator-min-microvolt = <800000>;
0325                 regulator-max-microvolt = <1150000>;
0326                 regulator-ramp-delay = <2300>;
0327                 regulator-always-on;
0328                 regulator-boot-on;
0329                 vin-supply = <&vcc_sys>;
0330 
0331                 regulator-state-mem {
0332                         regulator-off-in-suspend;
0333                 };
0334         };
0335 
0336         rk817: pmic@20 {
0337                 compatible = "rockchip,rk817";
0338                 reg = <0x20>;
0339                 interrupt-parent = <&gpio0>;
0340                 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
0341                 assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
0342                 assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
0343                 clock-names = "mclk";
0344                 clocks = <&cru I2S1_MCLKOUT_TX>;
0345                 clock-output-names = "rk808-clkout1", "rk808-clkout2";
0346                 #clock-cells = <1>;
0347                 pinctrl-names = "default";
0348                 pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
0349                 rockchip,system-power-controller;
0350                 #sound-dai-cells = <0>;
0351                 wakeup-source;
0352 
0353                 vcc1-supply = <&vcc_sys>;
0354                 vcc2-supply = <&vcc_sys>;
0355                 vcc3-supply = <&vcc_sys>;
0356                 vcc4-supply = <&vcc_sys>;
0357                 vcc5-supply = <&vcc_sys>;
0358                 vcc6-supply = <&vcc_sys>;
0359                 vcc7-supply = <&vcc_sys>;
0360                 vcc8-supply = <&vcc_sys>;
0361                 vcc9-supply = <&dcdc_boost>;
0362 
0363                 regulators {
0364                         vdd_logic: DCDC_REG1 {
0365                                 regulator-always-on;
0366                                 regulator-boot-on;
0367                                 regulator-min-microvolt = <500000>;
0368                                 regulator-max-microvolt = <1350000>;
0369                                 regulator-init-microvolt = <900000>;
0370                                 regulator-ramp-delay = <6001>;
0371                                 regulator-initial-mode = <0x2>;
0372                                 regulator-name = "vdd_logic";
0373                                 regulator-state-mem {
0374                                         regulator-on-in-suspend;
0375                                         regulator-suspend-microvolt = <900000>;
0376                                 };
0377                         };
0378 
0379                         vdd_gpu: DCDC_REG2 {
0380                                 regulator-always-on;
0381                                 regulator-boot-on;
0382                                 regulator-min-microvolt = <500000>;
0383                                 regulator-max-microvolt = <1350000>;
0384                                 regulator-init-microvolt = <900000>;
0385                                 regulator-ramp-delay = <6001>;
0386                                 regulator-initial-mode = <0x2>;
0387                                 regulator-name = "vdd_gpu";
0388                                         regulator-state-mem {
0389                                         regulator-off-in-suspend;
0390                                 };
0391                         };
0392 
0393                         vcc_ddr: DCDC_REG3 {
0394                                 regulator-always-on;
0395                                 regulator-boot-on;
0396                                 regulator-initial-mode = <0x2>;
0397                                 regulator-name = "vcc_ddr";
0398                                 regulator-state-mem {
0399                                         regulator-on-in-suspend;
0400                                 };
0401                         };
0402 
0403                         vcc_3v3: DCDC_REG4 {
0404                                 regulator-always-on;
0405                                 regulator-boot-on;
0406                                 regulator-min-microvolt = <3300000>;
0407                                 regulator-max-microvolt = <3300000>;
0408                                 regulator-initial-mode = <0x2>;
0409                                 regulator-name = "vcc_3v3";
0410                                 regulator-state-mem {
0411                                         regulator-off-in-suspend;
0412                                 };
0413                         };
0414 
0415                         vcca1v8_pmu: LDO_REG1 {
0416                                 regulator-always-on;
0417                                 regulator-boot-on;
0418                                 regulator-min-microvolt = <1800000>;
0419                                 regulator-max-microvolt = <1800000>;
0420                                 regulator-name = "vcca1v8_pmu";
0421                                 regulator-state-mem {
0422                                         regulator-on-in-suspend;
0423                                         regulator-suspend-microvolt = <1800000>;
0424                                 };
0425                         };
0426 
0427                         vdda_0v9: LDO_REG2 {
0428                                 regulator-always-on;
0429                                 regulator-boot-on;
0430                                 regulator-min-microvolt = <900000>;
0431                                 regulator-max-microvolt = <900000>;
0432                                 regulator-name = "vdda_0v9";
0433                                 regulator-state-mem {
0434                                         regulator-off-in-suspend;
0435                                 };
0436                         };
0437 
0438                         vdda0v9_pmu: LDO_REG3 {
0439                                 regulator-always-on;
0440                                 regulator-boot-on;
0441                                 regulator-min-microvolt = <900000>;
0442                                 regulator-max-microvolt = <900000>;
0443                                 regulator-name = "vdda0v9_pmu";
0444                                 regulator-state-mem {
0445                                         regulator-on-in-suspend;
0446                                         regulator-suspend-microvolt = <900000>;
0447                                 };
0448                         };
0449 
0450                         vccio_acodec: LDO_REG4 {
0451                                 regulator-always-on;
0452                                 regulator-boot-on;
0453                                 regulator-min-microvolt = <3300000>;
0454                                 regulator-max-microvolt = <3300000>;
0455                                 regulator-name = "vccio_acodec";
0456                                 regulator-state-mem {
0457                                         regulator-off-in-suspend;
0458                                 };
0459                         };
0460 
0461                         vccio_sd: LDO_REG5 {
0462                                 regulator-always-on;
0463                                 regulator-boot-on;
0464                                 regulator-min-microvolt = <1800000>;
0465                                 regulator-max-microvolt = <3300000>;
0466                                 regulator-name = "vccio_sd";
0467                                 regulator-state-mem {
0468                                         regulator-off-in-suspend;
0469                                 };
0470                         };
0471 
0472                         vcc3v3_pmu: LDO_REG6 {
0473                                 regulator-always-on;
0474                                 regulator-boot-on;
0475                                 regulator-min-microvolt = <3300000>;
0476                                 regulator-max-microvolt = <3300000>;
0477                                 regulator-name = "vcc3v3_pmu";
0478                                 regulator-state-mem {
0479                                         regulator-on-in-suspend;
0480                                         regulator-suspend-microvolt = <3300000>;
0481                                 };
0482                         };
0483 
0484                         vcc_1v8: LDO_REG7 {
0485                                 regulator-always-on;
0486                                 regulator-boot-on;
0487                                 regulator-min-microvolt = <1800000>;
0488                                 regulator-max-microvolt = <1800000>;
0489                                 regulator-name = "vcc_1v8";
0490                                 regulator-state-mem {
0491                                         regulator-off-in-suspend;
0492                                 };
0493                         };
0494 
0495                         vcc1v8_dvp: LDO_REG8 {
0496                                 regulator-always-on;
0497                                 regulator-boot-on;
0498                                 regulator-min-microvolt = <1800000>;
0499                                 regulator-max-microvolt = <1800000>;
0500                                 regulator-name = "vcc1v8_dvp";
0501                                 regulator-state-mem {
0502                                         regulator-off-in-suspend;
0503                                 };
0504                         };
0505 
0506                         vcc2v8_dvp: LDO_REG9 {
0507                                 regulator-always-on;
0508                                 regulator-boot-on;
0509                                 regulator-min-microvolt = <2800000>;
0510                                 regulator-max-microvolt = <2800000>;
0511                                 regulator-name = "vcc2v8_dvp";
0512                                 regulator-state-mem {
0513                                         regulator-off-in-suspend;
0514                                 };
0515                         };
0516 
0517                         dcdc_boost: BOOST {
0518                                 regulator-always-on;
0519                                 regulator-boot-on;
0520                                 regulator-min-microvolt = <5000000>;
0521                                 regulator-max-microvolt = <5000000>;
0522                                 regulator-name = "boost";
0523                                 regulator-state-mem {
0524                                         regulator-off-in-suspend;
0525                                 };
0526                         };
0527 
0528                         otg_switch: OTG_SWITCH {
0529                                 regulator-name = "otg_switch";
0530                                 regulator-state-mem {
0531                                         regulator-off-in-suspend;
0532                                 };
0533                         };
0534                 };
0535         };
0536 };
0537 
0538 /* i2c3 is exposed on con40
0539  * pin 3 - i2c3_sda_m0, pullup to vcc_3v3
0540  * pin 5 - i2c3_scl_m0, pullup to vcc_3v3
0541  */
0542 &i2c3 {
0543         status = "okay";
0544 };
0545 
0546 &i2s0_8ch {
0547         status = "okay";
0548 };
0549 
0550 &i2s1_8ch {
0551         pinctrl-names = "default";
0552         pinctrl-0 = <&i2s1m0_sclktx
0553                      &i2s1m0_lrcktx
0554                      &i2s1m0_sdi0
0555                      &i2s1m0_sdo0>;
0556         rockchip,trcm-sync-tx-only;
0557         status = "okay";
0558 };
0559 
0560 &mdio1 {
0561         rgmii_phy1: ethernet-phy@0 {
0562                 compatible = "ethernet-phy-ieee802.3-c22";
0563                 reg = <0>;
0564         };
0565 };
0566 
0567 &pcie2x1 {
0568         pinctrl-names = "default";
0569         pinctrl-0 = <&pcie_reset_h>;
0570         reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
0571         vpcie3v3-supply = <&vcc3v3_pcie_p>;
0572         status = "okay";
0573 };
0574 
0575 &pinctrl {
0576         bt {
0577                 bt_enable_h: bt-enable-h {
0578                         rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
0579                 };
0580 
0581                 bt_host_wake_l: bt-host-wake-l {
0582                         rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>;
0583                 };
0584 
0585                 bt_wake_l: bt-wake-l {
0586                         rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
0587                 };
0588         };
0589 
0590         fan {
0591                 fan_en_h: fan-en-h {
0592                         rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
0593                 };
0594         };
0595 
0596         leds {
0597                 work_led_enable_h: work-led-enable-h {
0598                         rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
0599                 };
0600 
0601                 diy_led_enable_h: diy-led-enable-h {
0602                         rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
0603                 };
0604         };
0605 
0606         pcie {
0607                 pcie_enable_h: pcie-enable-h {
0608                         rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
0609                 };
0610 
0611                 pcie_reset_h: pcie-reset-h {
0612                         rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
0613                 };
0614         };
0615 
0616         pmic {
0617                 pmic_int_l: pmic-int-l {
0618                         rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
0619                 };
0620         };
0621 
0622         usb2 {
0623                 vcc5v0_usb20_host_en: vcc5v0-usb20-host-en {
0624                         rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
0625                 };
0626         };
0627 
0628         sdio-pwrseq {
0629                 wifi_enable_h: wifi-enable-h {
0630                         rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
0631                 };
0632         };
0633 
0634         vcc_sd {
0635                 vcc_sd_h: vcc-sd-h {
0636                         rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
0637                 };
0638         };
0639 };
0640 
0641 &pmu_io_domains {
0642         pmuio1-supply = <&vcc3v3_pmu>;
0643         pmuio2-supply = <&vcc3v3_pmu>;
0644         vccio1-supply = <&vccio_acodec>;
0645         vccio2-supply = <&vcc_1v8>;
0646         vccio3-supply = <&vccio_sd>;
0647         vccio4-supply = <&vcc_1v8>;
0648         vccio5-supply = <&vcc_3v3>;
0649         vccio6-supply = <&vcc1v8_dvp>;
0650         vccio7-supply = <&vcc_3v3>;
0651         status = "okay";
0652 };
0653 
0654 &sdhci {
0655         bus-width = <8>;
0656         mmc-hs200-1_8v;
0657         non-removable;
0658         vmmc-supply = <&vcc_3v3>;
0659         vqmmc-supply = <&vcc_1v8>;
0660         status = "okay";
0661 };
0662 
0663 &sdmmc0 {
0664         bus-width = <4>;
0665         cap-sd-highspeed;
0666         cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
0667         disable-wp;
0668         pinctrl-names = "default";
0669         pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
0670         sd-uhs-sdr104;
0671         vmmc-supply = <&vcc3v3_sd>;
0672         vqmmc-supply = <&vccio_sd>;
0673         status = "okay";
0674 };
0675 
0676 &sdmmc1 {
0677         bus-width = <4>;
0678         cap-sd-highspeed;
0679         cap-sdio-irq;
0680         keep-power-in-suspend;
0681         mmc-pwrseq = <&sdio_pwrseq>;
0682         non-removable;
0683         pinctrl-names = "default";
0684         pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
0685         sd-uhs-sdr104;
0686         vmmc-supply = <&vcc_wl>;
0687         vqmmc-supply = <&vcc_1v8>;
0688         status = "okay";
0689 };
0690 
0691 &sfc {
0692         pinctrl-0 = <&fspi_pins>;
0693         pinctrl-names = "default";
0694         #address-cells = <1>;
0695         #size-cells = <0>;
0696         status = "disabled";
0697 
0698         flash@0 {
0699                 compatible = "jedec,spi-nor";
0700                 reg = <0>;
0701                 spi-max-frequency = <24000000>;
0702                 spi-rx-bus-width = <4>;
0703                 spi-tx-bus-width = <1>;
0704         };
0705 };
0706 
0707 /* spdif is exposed on con40 pin 18 */
0708 &spdif {
0709         status = "okay";
0710 };
0711 
0712 /* spi1 is exposed on con40
0713  * pin 11 - spi1_mosi_m1
0714  * pin 13 - spi1_miso_m1
0715  * pin 15 - spi1_clk_m1
0716  * pin 17 - spi1_cs0_m1
0717  */
0718 &spi1 {
0719         pinctrl-names = "default";
0720         pinctrl-0 = <&spi1m1_cs0 &spi1m1_pins>;
0721 };
0722 
0723 &tsadc {
0724         /* tshut mode 0:CRU 1:GPIO */
0725         rockchip,hw-tshut-mode = <1>;
0726         /* tshut polarity 0:LOW 1:HIGH */
0727         rockchip,hw-tshut-polarity = <0>;
0728         status = "okay";
0729 };
0730 
0731 /* uart0 is exposed on con40
0732  * pin 12 - uart0_tx
0733  * pin 14 - uart0_rx
0734  */
0735 &uart0 {
0736         pinctrl-names = "default";
0737         pinctrl-0 = <&uart0_xfer>;
0738         status = "okay";
0739 };
0740 
0741 &uart1 {
0742         pinctrl-names = "default";
0743         pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>;
0744         status = "okay";
0745         uart-has-rtscts;
0746 
0747         bluetooth {
0748                 compatible = "brcm,bcm43438-bt";
0749                 clocks = <&rk817 1>;
0750                 clock-names = "lpo";
0751                 device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
0752                 host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
0753                 shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
0754                 pinctrl-names = "default";
0755                 pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
0756                 vbat-supply = <&vcc_sys>;
0757                 vddio-supply = <&vcca1v8_pmu>;
0758         };
0759 };
0760 
0761 /* uart2 is exposed on con40
0762  * pin 8 - uart2_tx_m0_debug
0763  * pin 10 - uart2_rx_m0_debug
0764  */
0765 &uart2 {
0766         status = "okay";
0767 };
0768 
0769 &usb_host0_ehci {
0770         status = "okay";
0771 };
0772 
0773 &usb_host0_ohci {
0774         status = "okay";
0775 };
0776 
0777 &usb_host1_ehci {
0778         status = "okay";
0779 };
0780 
0781 &usb_host1_ohci {
0782         status = "okay";
0783 };
0784 
0785 &usb_host0_xhci {
0786         dr_mode = "host";
0787         status = "okay";
0788 };
0789 
0790 /* usb3 controller is muxed with sata1 */
0791 &usb_host1_xhci {
0792         status = "okay";
0793 };
0794 
0795 &usb2phy0 {
0796         status = "okay";
0797 };
0798 
0799 &usb2phy0_host {
0800         phy-supply = <&vcc5v0_usb20_host>;
0801         status = "okay";
0802 };
0803 
0804 &usb2phy0_otg {
0805         phy-supply = <&vcc5v0_usb20_otg>;
0806         status = "okay";
0807 };
0808 
0809 &usb2phy1 {
0810         status = "okay";
0811 };
0812 
0813 &usb2phy1_host {
0814         phy-supply = <&vcc5v0_usb20_host>;
0815         status = "okay";
0816 };
0817 
0818 &usb2phy1_otg {
0819         phy-supply = <&vcc5v0_usb20_host>;
0820         status = "okay";
0821 };
0822 
0823 &vop {
0824         assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
0825         assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
0826         status = "okay";
0827 };
0828 
0829 &vop_mmu {
0830         status = "okay";
0831 };
0832 
0833 &vp0 {
0834         vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
0835                 reg = <ROCKCHIP_VOP2_EP_HDMI0>;
0836                 remote-endpoint = <&hdmi_in_vp0>;
0837         };
0838 };