Home | History | Annotate | Line # | Download | only in rockchip
      1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2 /*
      3  * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
      4  * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar (a] mentor.com>
      5  */
      6 
      7 #include <dt-bindings/input/linux-event-codes.h>
      8 #include <dt-bindings/pwm/pwm.h>
      9 #include "rk3399.dtsi"
     10 #include "rk3399-opp.dtsi"
     11 
     12 / {
     13 	aliases {
     14 		mmc0 = &sdio0;
     15 		mmc1 = &sdmmc;
     16 		mmc2 = &sdhci;
     17 	};
     18 
     19 	chosen {
     20 		stdout-path = "serial2:1500000n8";
     21 	};
     22 
     23 	clkin_gmac: external-gmac-clock {
     24 		compatible = "fixed-clock";
     25 		clock-frequency = <125000000>;
     26 		clock-output-names = "clkin_gmac";
     27 		#clock-cells = <0>;
     28 	};
     29 
     30 	gpio-keys {
     31 		compatible = "gpio-keys";
     32 		autorepeat;
     33 		pinctrl-names = "default";
     34 		pinctrl-0 = <&pwrbtn>;
     35 
     36 		power {
     37 			debounce-interval = <100>;
     38 			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
     39 			label = "GPIO Key Power";
     40 			linux,code = <KEY_POWER>;
     41 			wakeup-source;
     42 		};
     43 	};
     44 
     45 	ir-receiver {
     46 		compatible = "gpio-ir-receiver";
     47 		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
     48 		pinctrl-0 = <&ir_int>;
     49 		pinctrl-names = "default";
     50 	};
     51 
     52 	leds {
     53 		compatible = "gpio-leds";
     54 		pinctrl-names = "default";
     55 		pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
     56 
     57 		work_led: led-0 {
     58 			label = "work";
     59 			default-state = "on";
     60 			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
     61 		};
     62 
     63 		diy_led: led-1 {
     64 			label = "diy";
     65 			default-state = "off";
     66 			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
     67 		};
     68 	};
     69 
     70 	fan: pwm-fan {
     71 		compatible = "pwm-fan";
     72 		#cooling-cells = <2>;
     73 		fan-supply = <&vcc12v_dcin>;
     74 		pwms = <&pwm1 0 50000 0>;
     75 	};
     76 
     77 	sdio_pwrseq: sdio-pwrseq {
     78 		compatible = "mmc-pwrseq-simple";
     79 		clocks = <&rk808 1>;
     80 		clock-names = "ext_clock";
     81 		pinctrl-names = "default";
     82 		pinctrl-0 = <&wifi_enable_h>;
     83 		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
     84 	};
     85 
     86 	sound {
     87 		compatible = "audio-graph-card";
     88 		label = "Analog";
     89 		dais = <&i2s1_p0>;
     90 	};
     91 
     92 	sound-dit {
     93 		compatible = "audio-graph-card";
     94 		label = "SPDIF";
     95 		dais = <&spdif_p0>;
     96 	};
     97 
     98 	spdif-dit {
     99 		compatible = "linux,spdif-dit";
    100 		#sound-dai-cells = <0>;
    101 
    102 		port {
    103 			dit_p0_0: endpoint {
    104 				remote-endpoint = <&spdif_p0_0>;
    105 			};
    106 		};
    107 	};
    108 
    109 	vcc12v_dcin: vcc12v-dcin {
    110 		compatible = "regulator-fixed";
    111 		regulator-name = "vcc12v_dcin";
    112 		regulator-always-on;
    113 		regulator-boot-on;
    114 		regulator-min-microvolt = <12000000>;
    115 		regulator-max-microvolt = <12000000>;
    116 	};
    117 
    118 	/* switched by pmic_sleep */
    119 	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
    120 		compatible = "regulator-fixed";
    121 		regulator-name = "vcc1v8_s3";
    122 		regulator-always-on;
    123 		regulator-boot-on;
    124 		regulator-min-microvolt = <1800000>;
    125 		regulator-max-microvolt = <1800000>;
    126 		vin-supply = <&vcc_1v8>;
    127 	};
    128 
    129 	/* micro SD card power */
    130 	vcc3v0_sd: vcc3v0-sd {
    131 		compatible = "regulator-fixed";
    132 		enable-active-high;
    133 		gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
    134 		pinctrl-names = "default";
    135 		pinctrl-0 = <&sdmmc0_pwr_h>;
    136 		regulator-name = "vcc3v0_sd";
    137 		regulator-always-on;
    138 		regulator-min-microvolt = <3000000>;
    139 		regulator-max-microvolt = <3000000>;
    140 		vin-supply = <&vcc3v3_sys>;
    141 
    142 		regulator-state-mem {
    143 			regulator-off-in-suspend;
    144 		};
    145 	};
    146 
    147 	vcc3v3_pcie: vcc3v3-pcie-regulator {
    148 		compatible = "regulator-fixed";
    149 		enable-active-high;
    150 		gpio = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
    151 		pinctrl-names = "default";
    152 		pinctrl-0 = <&pcie_pwr_en>;
    153 		regulator-name = "vcc3v3_pcie";
    154 		regulator-always-on;
    155 		regulator-boot-on;
    156 		vin-supply = <&vcc12v_dcin>;
    157 	};
    158 
    159 	vcc3v3_sys: vcc3v3-sys {
    160 		compatible = "regulator-fixed";
    161 		regulator-name = "vcc3v3_sys";
    162 		regulator-always-on;
    163 		regulator-boot-on;
    164 		regulator-min-microvolt = <3300000>;
    165 		regulator-max-microvolt = <3300000>;
    166 		vin-supply = <&vcc5v0_sys>;
    167 	};
    168 
    169 	/* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
    170 	vcc5v0_host: vcc5v0-host-regulator {
    171 		compatible = "regulator-fixed";
    172 		enable-active-high;
    173 		gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
    174 		pinctrl-names = "default";
    175 		pinctrl-0 = <&vcc5v0_host_en>;
    176 		regulator-name = "vcc5v0_host";
    177 		regulator-always-on;
    178 		vin-supply = <&vcc5v0_usb>;
    179 	};
    180 
    181 	vcc5v0_typec: vcc5v0-typec-regulator {
    182 		compatible = "regulator-fixed";
    183 		enable-active-high;
    184 		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
    185 		pinctrl-names = "default";
    186 		pinctrl-0 = <&vcc5v0_typec_en>;
    187 		regulator-name = "vcc5v0_typec";
    188 		regulator-always-on;
    189 		vin-supply = <&vcc5v0_usb>;
    190 	};
    191 
    192 	vcc5v0_sys: vcc5v0-sys {
    193 		compatible = "regulator-fixed";
    194 		regulator-name = "vcc5v0_sys";
    195 		regulator-always-on;
    196 		regulator-boot-on;
    197 		regulator-min-microvolt = <5000000>;
    198 		regulator-max-microvolt = <5000000>;
    199 		vin-supply = <&vcc12v_dcin>;
    200 	};
    201 
    202 	vcc5v0_usb: vcc5v0-usb {
    203 		compatible = "regulator-fixed";
    204 		regulator-name = "vcc5v0_usb";
    205 		regulator-always-on;
    206 		regulator-boot-on;
    207 		regulator-min-microvolt = <5000000>;
    208 		regulator-max-microvolt = <5000000>;
    209 		vin-supply = <&vcc12v_dcin>;
    210 	};
    211 
    212 	vdd_log: vdd-log {
    213 		compatible = "pwm-regulator";
    214 		pwms = <&pwm2 0 25000 1>;
    215 		regulator-name = "vdd_log";
    216 		regulator-always-on;
    217 		regulator-boot-on;
    218 		regulator-min-microvolt = <800000>;
    219 		regulator-max-microvolt = <1700000>;
    220 		vin-supply = <&vcc5v0_sys>;
    221 	};
    222 };
    223 
    224 &cpu_l0 {
    225 	cpu-supply = <&vdd_cpu_l>;
    226 };
    227 
    228 &cpu_l1 {
    229 	cpu-supply = <&vdd_cpu_l>;
    230 };
    231 
    232 &cpu_l2 {
    233 	cpu-supply = <&vdd_cpu_l>;
    234 };
    235 
    236 &cpu_l3 {
    237 	cpu-supply = <&vdd_cpu_l>;
    238 };
    239 
    240 &cpu_b0 {
    241 	cpu-supply = <&vdd_cpu_b>;
    242 };
    243 
    244 &cpu_b1 {
    245 	cpu-supply = <&vdd_cpu_b>;
    246 };
    247 
    248 &emmc_phy {
    249 	status = "okay";
    250 };
    251 
    252 &gmac {
    253 	assigned-clocks = <&cru SCLK_RMII_SRC>;
    254 	assigned-clock-parents = <&clkin_gmac>;
    255 	clock_in_out = "input";
    256 	phy-supply = <&vcc_lan>;
    257 	phy-mode = "rgmii";
    258 	pinctrl-names = "default";
    259 	pinctrl-0 = <&rgmii_pins>;
    260 	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
    261 	snps,reset-active-low;
    262 	snps,reset-delays-us = <0 10000 50000>;
    263 	tx_delay = <0x28>;
    264 	rx_delay = <0x11>;
    265 	status = "okay";
    266 };
    267 
    268 &hdmi {
    269 	ddc-i2c-bus = <&i2c3>;
    270 	pinctrl-names = "default";
    271 	pinctrl-0 = <&hdmi_cec>;
    272 	status = "okay";
    273 };
    274 
    275 &hdmi_sound {
    276 	status = "okay";
    277 };
    278 
    279 &gpu {
    280 	mali-supply = <&vdd_gpu>;
    281 	status = "okay";
    282 };
    283 
    284 &i2c0 {
    285 	clock-frequency = <400000>;
    286 	i2c-scl-rising-time-ns = <168>;
    287 	i2c-scl-falling-time-ns = <4>;
    288 	status = "okay";
    289 
    290 	rk808: pmic@1b {
    291 		compatible = "rockchip,rk808";
    292 		reg = <0x1b>;
    293 		interrupt-parent = <&gpio3>;
    294 		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
    295 		#clock-cells = <1>;
    296 		clock-output-names = "xin32k", "rk808-clkout2";
    297 		pinctrl-names = "default";
    298 		pinctrl-0 = <&pmic_int_l>;
    299 		rockchip,system-power-controller;
    300 		wakeup-source;
    301 
    302 		vcc1-supply = <&vcc5v0_sys>;
    303 		vcc2-supply = <&vcc5v0_sys>;
    304 		vcc3-supply = <&vcc5v0_sys>;
    305 		vcc4-supply = <&vcc5v0_sys>;
    306 		vcc6-supply = <&vcc5v0_sys>;
    307 		vcc7-supply = <&vcc5v0_sys>;
    308 		vcc8-supply = <&vcc3v3_sys>;
    309 		vcc9-supply = <&vcc5v0_sys>;
    310 		vcc10-supply = <&vcc5v0_sys>;
    311 		vcc11-supply = <&vcc5v0_sys>;
    312 		vcc12-supply = <&vcc3v3_sys>;
    313 		vddio-supply = <&vcca_1v8>;
    314 
    315 		regulators {
    316 			vdd_center: DCDC_REG1 {
    317 				regulator-name = "vdd_center";
    318 				regulator-always-on;
    319 				regulator-boot-on;
    320 				regulator-min-microvolt = <750000>;
    321 				regulator-max-microvolt = <1350000>;
    322 				regulator-ramp-delay = <6001>;
    323 				regulator-state-mem {
    324 					regulator-off-in-suspend;
    325 				};
    326 			};
    327 
    328 			vdd_cpu_l: DCDC_REG2 {
    329 				regulator-name = "vdd_cpu_l";
    330 				regulator-always-on;
    331 				regulator-boot-on;
    332 				regulator-min-microvolt = <750000>;
    333 				regulator-max-microvolt = <1350000>;
    334 				regulator-ramp-delay = <6001>;
    335 				regulator-state-mem {
    336 					regulator-off-in-suspend;
    337 				};
    338 			};
    339 
    340 			vcc_ddr: DCDC_REG3 {
    341 				regulator-name = "vcc_ddr";
    342 				regulator-always-on;
    343 				regulator-boot-on;
    344 				regulator-state-mem {
    345 					regulator-on-in-suspend;
    346 				};
    347 			};
    348 
    349 			vcc_1v8: DCDC_REG4 {
    350 				regulator-name = "vcc_1v8";
    351 				regulator-always-on;
    352 				regulator-boot-on;
    353 				regulator-min-microvolt = <1800000>;
    354 				regulator-max-microvolt = <1800000>;
    355 				regulator-state-mem {
    356 					regulator-on-in-suspend;
    357 					regulator-suspend-microvolt = <1800000>;
    358 				};
    359 			};
    360 
    361 			vcc1v8_dvp: LDO_REG1 {
    362 				regulator-name = "vcc1v8_dvp";
    363 				regulator-always-on;
    364 				regulator-boot-on;
    365 				regulator-min-microvolt = <1800000>;
    366 				regulator-max-microvolt = <1800000>;
    367 				regulator-state-mem {
    368 					regulator-off-in-suspend;
    369 				};
    370 			};
    371 
    372 			vcc3v0_touch: LDO_REG2 {
    373 				regulator-name = "vcc3v0_touch";
    374 				regulator-always-on;
    375 				regulator-boot-on;
    376 				regulator-min-microvolt = <3000000>;
    377 				regulator-max-microvolt = <3000000>;
    378 				regulator-state-mem {
    379 					regulator-off-in-suspend;
    380 				};
    381 			};
    382 
    383 			vcca_1v8: LDO_REG3 {
    384 				regulator-name = "vcca_1v8";
    385 				regulator-always-on;
    386 				regulator-boot-on;
    387 				regulator-min-microvolt = <1800000>;
    388 				regulator-max-microvolt = <1800000>;
    389 				regulator-state-mem {
    390 					regulator-on-in-suspend;
    391 					regulator-suspend-microvolt = <1800000>;
    392 				};
    393 			};
    394 
    395 			vcc_sdio: LDO_REG4 {
    396 				regulator-name = "vcc_sdio";
    397 				regulator-always-on;
    398 				regulator-boot-on;
    399 				regulator-min-microvolt = <1800000>;
    400 				regulator-max-microvolt = <3000000>;
    401 				regulator-state-mem {
    402 					regulator-on-in-suspend;
    403 					regulator-suspend-microvolt = <3000000>;
    404 				};
    405 			};
    406 
    407 			vcca3v0_codec: LDO_REG5 {
    408 				regulator-name = "vcca3v0_codec";
    409 				regulator-always-on;
    410 				regulator-boot-on;
    411 				regulator-min-microvolt = <3000000>;
    412 				regulator-max-microvolt = <3000000>;
    413 				regulator-state-mem {
    414 					regulator-off-in-suspend;
    415 				};
    416 			};
    417 
    418 			vcc_1v5: LDO_REG6 {
    419 				regulator-name = "vcc_1v5";
    420 				regulator-always-on;
    421 				regulator-boot-on;
    422 				regulator-min-microvolt = <1500000>;
    423 				regulator-max-microvolt = <1500000>;
    424 				regulator-state-mem {
    425 					regulator-on-in-suspend;
    426 					regulator-suspend-microvolt = <1500000>;
    427 				};
    428 			};
    429 
    430 			vcca1v8_codec: LDO_REG7 {
    431 				regulator-name = "vcca1v8_codec";
    432 				regulator-always-on;
    433 				regulator-boot-on;
    434 				regulator-min-microvolt = <1800000>;
    435 				regulator-max-microvolt = <1800000>;
    436 				regulator-state-mem {
    437 					regulator-off-in-suspend;
    438 				};
    439 			};
    440 
    441 			vcc_3v0: LDO_REG8 {
    442 				regulator-name = "vcc_3v0";
    443 				regulator-always-on;
    444 				regulator-boot-on;
    445 				regulator-min-microvolt = <3000000>;
    446 				regulator-max-microvolt = <3000000>;
    447 				regulator-state-mem {
    448 					regulator-on-in-suspend;
    449 					regulator-suspend-microvolt = <3000000>;
    450 				};
    451 			};
    452 
    453 			vcc3v3_s3: vcc_lan: SWITCH_REG1 {
    454 				regulator-name = "vcc3v3_s3";
    455 				regulator-always-on;
    456 				regulator-boot-on;
    457 				regulator-state-mem {
    458 					regulator-off-in-suspend;
    459 				};
    460 			};
    461 
    462 			vcc3v3_s0: SWITCH_REG2 {
    463 				regulator-name = "vcc3v3_s0";
    464 				regulator-always-on;
    465 				regulator-boot-on;
    466 				regulator-state-mem {
    467 					regulator-off-in-suspend;
    468 				};
    469 			};
    470 		};
    471 	};
    472 
    473 	vdd_cpu_b: regulator@40 {
    474 		compatible = "silergy,syr827";
    475 		reg = <0x40>;
    476 		fcs,suspend-voltage-selector = <1>;
    477 		pinctrl-names = "default";
    478 		pinctrl-0 = <&vsel1_pin>;
    479 		regulator-name = "vdd_cpu_b";
    480 		regulator-min-microvolt = <712500>;
    481 		regulator-max-microvolt = <1500000>;
    482 		regulator-ramp-delay = <1000>;
    483 		regulator-always-on;
    484 		regulator-boot-on;
    485 		vin-supply = <&vcc5v0_sys>;
    486 
    487 		regulator-state-mem {
    488 			regulator-off-in-suspend;
    489 		};
    490 	};
    491 
    492 	vdd_gpu: regulator@41 {
    493 		compatible = "silergy,syr828";
    494 		reg = <0x41>;
    495 		fcs,suspend-voltage-selector = <1>;
    496 		pinctrl-names = "default";
    497 		pinctrl-0 = <&vsel2_pin>;
    498 		regulator-name = "vdd_gpu";
    499 		regulator-min-microvolt = <712500>;
    500 		regulator-max-microvolt = <1500000>;
    501 		regulator-ramp-delay = <1000>;
    502 		regulator-always-on;
    503 		regulator-boot-on;
    504 		vin-supply = <&vcc5v0_sys>;
    505 
    506 		regulator-state-mem {
    507 			regulator-off-in-suspend;
    508 		};
    509 	};
    510 };
    511 
    512 &i2c1 {
    513 	i2c-scl-rising-time-ns = <300>;
    514 	i2c-scl-falling-time-ns = <15>;
    515 	status = "okay";
    516 };
    517 
    518 &i2c3 {
    519 	i2c-scl-rising-time-ns = <450>;
    520 	i2c-scl-falling-time-ns = <15>;
    521 	status = "okay";
    522 };
    523 
    524 &i2c4 {
    525 	i2c-scl-rising-time-ns = <600>;
    526 	i2c-scl-falling-time-ns = <20>;
    527 	status = "okay";
    528 
    529 	fusb0: typec-portc@22 {
    530 		compatible = "fcs,fusb302";
    531 		reg = <0x22>;
    532 		interrupt-parent = <&gpio1>;
    533 		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
    534 		pinctrl-names = "default";
    535 		pinctrl-0 = <&fusb0_int>;
    536 		vbus-supply = <&vcc5v0_typec>;
    537 		status = "okay";
    538 	};
    539 };
    540 
    541 &i2s0 {
    542 	rockchip,playback-channels = <8>;
    543 	rockchip,capture-channels = <8>;
    544 	status = "okay";
    545 };
    546 
    547 &i2s1 {
    548 	rockchip,playback-channels = <2>;
    549 	rockchip,capture-channels = <2>;
    550 	status = "okay";
    551 
    552 	i2s1_p0: port {
    553 		i2s1_p0_0: endpoint {
    554 			dai-format = "i2s";
    555 			mclk-fs = <256>;
    556 			remote-endpoint = <&es8316_p0_0>;
    557 		};
    558 	};
    559 };
    560 
    561 &i2s2 {
    562 	status = "okay";
    563 };
    564 
    565 &io_domains {
    566 	status = "okay";
    567 
    568 	bt656-supply = <&vcc1v8_dvp>;
    569 	audio-supply = <&vcc_3v0>;
    570 	sdmmc-supply = <&vcc_sdio>;
    571 	gpio1830-supply = <&vcc_3v0>;
    572 };
    573 
    574 &pcie0 {
    575 	ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
    576 	num-lanes = <4>;
    577 	pinctrl-names = "default";
    578 	pinctrl-0 = <&pcie_perst>;
    579 	vpcie12v-supply = <&vcc12v_dcin>;
    580 	vpcie3v3-supply = <&vcc3v3_pcie>;
    581 	status = "okay";
    582 };
    583 
    584 &pcie_phy {
    585 	status = "okay";
    586 };
    587 
    588 &pmu_io_domains {
    589 	pmu1830-supply = <&vcc_3v0>;
    590 	status = "okay";
    591 };
    592 
    593 &pinctrl {
    594 	bt {
    595 		bt_enable_h: bt-enable-h {
    596 			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
    597 		};
    598 
    599 		bt_host_wake_l: bt-host-wake-l {
    600 			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
    601 		};
    602 
    603 		bt_wake_l: bt-wake-l {
    604 			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
    605 		};
    606 	};
    607 
    608 	buttons {
    609 		pwrbtn: pwrbtn {
    610 			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
    611 		};
    612 	};
    613 
    614 	fusb302x {
    615 		fusb0_int: fusb0-int {
    616 			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
    617 		};
    618 	};
    619 
    620 	ir {
    621 		ir_int: ir-int {
    622 			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
    623 		};
    624 	};
    625 
    626 	leds {
    627 		work_led_pin: work-led-pin {
    628 			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
    629 		};
    630 
    631 		diy_led_pin: diy-led-pin {
    632 			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
    633 		};
    634 	};
    635 
    636 	pcie {
    637 		pcie_perst: pcie-perst {
    638 			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
    639 		};
    640 
    641 		pcie_pwr_en: pcie-pwr-en {
    642 			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
    643 		};
    644 	};
    645 
    646 	pmic {
    647 		pmic_int_l: pmic-int-l {
    648 			rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
    649 		};
    650 
    651 		vsel1_pin: vsel1-pin {
    652 			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
    653 		};
    654 
    655 		vsel2_pin: vsel2-pin {
    656 			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
    657 		};
    658 	};
    659 
    660 	sdcard {
    661 		sdmmc0_pwr_h: sdmmc0-pwr-h {
    662 			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
    663 		};
    664 
    665 	};
    666 
    667 	sdio-pwrseq {
    668 		wifi_enable_h: wifi-enable-h {
    669 			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
    670 		};
    671 	};
    672 
    673 	usb-typec {
    674 		vcc5v0_typec_en: vcc5v0_typec_en {
    675 			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
    676 		};
    677 	};
    678 
    679 	usb2 {
    680 		vcc5v0_host_en: vcc5v0-host-en {
    681 			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
    682 		};
    683 	};
    684 };
    685 
    686 &pwm0 {
    687 	status = "okay";
    688 };
    689 
    690 &pwm1 {
    691 	status = "okay";
    692 };
    693 
    694 &pwm2 {
    695 	status = "okay";
    696 };
    697 
    698 &saradc {
    699 	vref-supply = <&vcca1v8_s3>;
    700 	status = "okay";
    701 };
    702 
    703 &sdio0 {
    704 	bus-width = <4>;
    705 	cap-sd-highspeed;
    706 	cap-sdio-irq;
    707 	disable-wp;
    708 	keep-power-in-suspend;
    709 	mmc-pwrseq = <&sdio_pwrseq>;
    710 	non-removable;
    711 	pinctrl-names = "default";
    712 	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
    713 	sd-uhs-sdr104;
    714 	status = "okay";
    715 };
    716 
    717 &sdmmc {
    718 	bus-width = <4>;
    719 	cap-sd-highspeed;
    720 	cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
    721 	disable-wp;
    722 	max-frequency = <150000000>;
    723 	pinctrl-names = "default";
    724 	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
    725 	vmmc-supply = <&vcc3v0_sd>;
    726 	vqmmc-supply = <&vcc_sdio>;
    727 	status = "okay";
    728 };
    729 
    730 &sdhci {
    731 	bus-width = <8>;
    732 	mmc-hs200-1_8v;
    733 	non-removable;
    734 	status = "okay";
    735 };
    736 
    737 &spdif {
    738 	pinctrl-0 = <&spdif_bus_1>;
    739 
    740 	spdif_p0: port {
    741 		spdif_p0_0: endpoint {
    742 			remote-endpoint = <&dit_p0_0>;
    743 		};
    744 	};
    745 };
    746 
    747 &spi1 {
    748 	status = "okay";
    749 
    750 	flash@0 {
    751 		compatible = "jedec,spi-nor";
    752 		reg = <0>;
    753 		spi-max-frequency = <10000000>;
    754 	};
    755 };
    756 
    757 &tcphy0 {
    758 	status = "okay";
    759 };
    760 
    761 &tcphy1 {
    762 	status = "okay";
    763 };
    764 
    765 &tsadc {
    766 	/* tshut mode 0:CRU 1:GPIO */
    767 	rockchip,hw-tshut-mode = <1>;
    768 	/* tshut polarity 0:LOW 1:HIGH */
    769 	rockchip,hw-tshut-polarity = <1>;
    770 	status = "okay";
    771 };
    772 
    773 &u2phy0 {
    774 	status = "okay";
    775 
    776 	u2phy0_otg: otg-port {
    777 		status = "okay";
    778 	};
    779 
    780 	u2phy0_host: host-port {
    781 		phy-supply = <&vcc5v0_host>;
    782 		status = "okay";
    783 	};
    784 };
    785 
    786 &u2phy1 {
    787 	status = "okay";
    788 
    789 	u2phy1_otg: otg-port {
    790 		status = "okay";
    791 	};
    792 
    793 	u2phy1_host: host-port {
    794 		phy-supply = <&vcc5v0_host>;
    795 		status = "okay";
    796 	};
    797 };
    798 
    799 &uart0 {
    800 	pinctrl-names = "default";
    801 	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
    802 	status = "okay";
    803 
    804 	bluetooth {
    805 		compatible = "brcm,bcm43438-bt";
    806 		clocks = <&rk808 1>;
    807 		clock-names = "lpo";
    808 		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
    809 		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
    810 		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
    811 		pinctrl-names = "default";
    812 		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
    813 		vbat-supply = <&vcc3v3_sys>;
    814 		vddio-supply = <&vcc_1v8>;
    815 	};
    816 };
    817 
    818 &uart2 {
    819 	status = "okay";
    820 };
    821 
    822 &usb_host0_ehci {
    823 	status = "okay";
    824 };
    825 
    826 &usb_host0_ohci {
    827 	status = "okay";
    828 };
    829 
    830 &usb_host1_ehci {
    831 	status = "okay";
    832 };
    833 
    834 &usb_host1_ohci {
    835 	status = "okay";
    836 };
    837 
    838 &usbdrd3_0 {
    839 	status = "okay";
    840 };
    841 
    842 &usbdrd_dwc3_0 {
    843 	status = "okay";
    844 	dr_mode = "host";
    845 };
    846 
    847 &usbdrd3_1 {
    848 	status = "okay";
    849 };
    850 
    851 &usbdrd_dwc3_1 {
    852 	status = "okay";
    853 	dr_mode = "host";
    854 };
    855 
    856 &vopb {
    857 	status = "okay";
    858 };
    859 
    860 &vopb_mmu {
    861 	status = "okay";
    862 };
    863 
    864 &vopl {
    865 	status = "okay";
    866 };
    867 
    868 &vopl_mmu {
    869 	status = "okay";
    870 };
    871