mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	Merge tag 'u-boot-rockchip-20240507' of https://source.denx.de/u-boot/custodians/u-boot-rockchip
CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/20628 - migrate to use OF_UPSTREAM for rv1108, rk3308, rk3328, rk356x, rk3588;
This commit is contained in:
		
						commit
						1c40dda60f
					
				@ -92,100 +92,12 @@ dtb-$(CONFIG_ROCKCHIP_RK3288) += \
 | 
			
		||||
	rk3288-veyron-speedy.dtb \
 | 
			
		||||
	rk3288-vyasa.dtb
 | 
			
		||||
 | 
			
		||||
dtb-$(CONFIG_ROCKCHIP_RK3308) += \
 | 
			
		||||
	rk3308-evb.dtb \
 | 
			
		||||
	rk3308-roc-cc.dtb \
 | 
			
		||||
	rk3308-rock-pi-s.dtb
 | 
			
		||||
 | 
			
		||||
dtb-$(CONFIG_ROCKCHIP_RK3328) += \
 | 
			
		||||
	rk3328-evb.dtb \
 | 
			
		||||
	rk3328-nanopi-r2c.dtb \
 | 
			
		||||
	rk3328-nanopi-r2c-plus.dtb \
 | 
			
		||||
	rk3328-nanopi-r2s.dtb \
 | 
			
		||||
	rk3328-orangepi-r1-plus.dtb \
 | 
			
		||||
	rk3328-orangepi-r1-plus-lts.dtb \
 | 
			
		||||
	rk3328-roc-cc.dtb \
 | 
			
		||||
	rk3328-rock64.dtb \
 | 
			
		||||
	rk3328-rock-pi-e.dtb
 | 
			
		||||
 | 
			
		||||
dtb-$(CONFIG_ROCKCHIP_RK3368) += \
 | 
			
		||||
	rk3368-lion-haikou.dtb \
 | 
			
		||||
	rk3368-sheep.dtb \
 | 
			
		||||
	rk3368-geekbox.dtb \
 | 
			
		||||
	rk3368-px5-evb.dtb \
 | 
			
		||||
 | 
			
		||||
dtb-$(CONFIG_ROCKCHIP_RK3399) += \
 | 
			
		||||
	rk3399-evb.dtb \
 | 
			
		||||
	rk3399-eaidk-610.dtb \
 | 
			
		||||
	rk3399-ficus.dtb \
 | 
			
		||||
	rk3399-firefly.dtb \
 | 
			
		||||
	rk3399-gru-bob.dtb \
 | 
			
		||||
	rk3399-gru-kevin.dtb \
 | 
			
		||||
	rk3399-khadas-edge.dtb \
 | 
			
		||||
	rk3399-khadas-edge-captain.dtb \
 | 
			
		||||
	rk3399-khadas-edge-v.dtb \
 | 
			
		||||
	rk3399-leez-p710.dtb \
 | 
			
		||||
	rk3399-nanopc-t4.dtb \
 | 
			
		||||
	rk3399-nanopi-m4.dtb \
 | 
			
		||||
	rk3399-nanopi-m4-2gb.dtb \
 | 
			
		||||
	rk3399-nanopi-m4b.dtb \
 | 
			
		||||
	rk3399-nanopi-neo4.dtb \
 | 
			
		||||
	rk3399-nanopi-r4s.dtb \
 | 
			
		||||
	rk3399-orangepi.dtb \
 | 
			
		||||
	rk3399-pinebook-pro.dtb \
 | 
			
		||||
	rk3399-pinephone-pro.dtb \
 | 
			
		||||
	rk3399-puma-haikou.dtb \
 | 
			
		||||
	rk3399-roc-pc.dtb \
 | 
			
		||||
	rk3399-roc-pc-mezzanine.dtb \
 | 
			
		||||
	rk3399-rock-4c-plus.dtb \
 | 
			
		||||
	rk3399-rock-4se.dtb \
 | 
			
		||||
	rk3399-rock-pi-4a.dtb \
 | 
			
		||||
	rk3399-rock-pi-4c.dtb \
 | 
			
		||||
	rk3399-rock960.dtb \
 | 
			
		||||
	rk3399-rockpro64.dtb \
 | 
			
		||||
	rk3399pro-rock-pi-n10.dtb
 | 
			
		||||
 | 
			
		||||
dtb-$(CONFIG_ROCKCHIP_RK3568) += \
 | 
			
		||||
	rk3566-anbernic-rgxx3.dtb \
 | 
			
		||||
	rk3566-pinetab2-v0.1.dtb \
 | 
			
		||||
	rk3566-pinetab2-v2.0.dtb \
 | 
			
		||||
	rk3566-quartz64-a.dtb \
 | 
			
		||||
	rk3566-quartz64-b.dtb \
 | 
			
		||||
	rk3566-radxa-cm3-io.dtb \
 | 
			
		||||
	rk3566-soquartz-blade.dtb \
 | 
			
		||||
	rk3566-soquartz-cm4.dtb \
 | 
			
		||||
	rk3566-soquartz-model-a.dtb \
 | 
			
		||||
	rk3568-bpi-r2-pro.dtb \
 | 
			
		||||
	rk3568-evb.dtb \
 | 
			
		||||
	rk3568-generic.dtb \
 | 
			
		||||
	rk3568-lubancat-2.dtb \
 | 
			
		||||
	rk3568-nanopi-r5c.dtb \
 | 
			
		||||
	rk3568-nanopi-r5s.dtb \
 | 
			
		||||
	rk3568-odroid-m1.dtb \
 | 
			
		||||
	rk3568-radxa-e25.dtb \
 | 
			
		||||
	rk3568-rock-3a.dtb
 | 
			
		||||
 | 
			
		||||
dtb-$(CONFIG_ROCKCHIP_RK3588) += \
 | 
			
		||||
	rk3588s-coolpi-4b.dtb \
 | 
			
		||||
	rk3588-coolpi-cm5-evb.dtb \
 | 
			
		||||
	rk3588-edgeble-neu6a-io.dtb \
 | 
			
		||||
	rk3588-edgeble-neu6b-io.dtb \
 | 
			
		||||
	rk3588-evb1-v10.dtb \
 | 
			
		||||
	rk3588-generic.dtb \
 | 
			
		||||
	rk3588-jaguar.dtb \
 | 
			
		||||
	rk3588-nanopc-t6.dtb \
 | 
			
		||||
	rk3588s-orangepi-5.dtb \
 | 
			
		||||
	rk3588-orangepi-5-plus.dtb \
 | 
			
		||||
	rk3588-quartzpro64.dtb \
 | 
			
		||||
	rk3588s-rock-5a.dtb \
 | 
			
		||||
	rk3588-rock-5b.dtb \
 | 
			
		||||
	rk3588-toybrick-x0.dtb \
 | 
			
		||||
	rk3588-turing-rk1.dtb
 | 
			
		||||
 | 
			
		||||
dtb-$(CONFIG_ROCKCHIP_RV1108) += \
 | 
			
		||||
	rv1108-elgin-r1.dtb \
 | 
			
		||||
	rv1108-evb.dtb
 | 
			
		||||
 | 
			
		||||
dtb-$(CONFIG_ROCKCHIP_RV1126) += \
 | 
			
		||||
	rv1126-edgeble-neu2-io.dtb
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -231,11 +231,43 @@
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	hym8563: rtc@51 {
 | 
			
		||||
		compatible = "haoyu,hym8563";
 | 
			
		||||
		reg = <0x51>;
 | 
			
		||||
		interrupt-parent = <&gpio5>;
 | 
			
		||||
		interrupts = <RK_PC3 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
		clock-output-names = "hym8563";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&hym8563_int>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c5 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	bb-supply = <&vcc_io>;
 | 
			
		||||
	flash0-supply = <&vccio_flash>;
 | 
			
		||||
	gpio1830-supply = <&vcc_18>;
 | 
			
		||||
	gpio30-supply = <&vcc_io>;
 | 
			
		||||
	sdcard-supply = <&vccio_sd>;
 | 
			
		||||
	wifi-supply = <&vcc_wl>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	hym8563 {
 | 
			
		||||
		hym8563_int: hym8563-int {
 | 
			
		||||
			rockchip,pins = <5 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
 | 
			
		||||
		drive-strength = <8>;
 | 
			
		||||
	};
 | 
			
		||||
@ -251,6 +283,12 @@
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdmmc {
 | 
			
		||||
		sdmmc_bus4: sdmmc-bus4 {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
@ -282,6 +320,16 @@
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio_pwrseq {
 | 
			
		||||
	/*
 | 
			
		||||
	 * On the module itself this is one of these (depending
 | 
			
		||||
	 * on the actual card populated):
 | 
			
		||||
	 * - SDIO_RESET_L_WL_REG_ON
 | 
			
		||||
	 * - PDN (power down when low)
 | 
			
		||||
	 */
 | 
			
		||||
	reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;	/* WIFI_REG_ON */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbphy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,230 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/input/input.h>
 | 
			
		||||
#include "rk3308.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Rockchip RK3308 EVB";
 | 
			
		||||
	compatible = "rockchip,rk3308-evb", "rockchip,rk3308";
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial4:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	adc-keys0 {
 | 
			
		||||
		compatible = "adc-keys";
 | 
			
		||||
		io-channels = <&saradc 0>;
 | 
			
		||||
		io-channel-names = "buttons";
 | 
			
		||||
		poll-interval = <100>;
 | 
			
		||||
		keyup-threshold-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
		button-func {
 | 
			
		||||
			linux,code = <KEY_FN>;
 | 
			
		||||
			label = "function";
 | 
			
		||||
			press-threshold-microvolt = <18000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	adc-keys1 {
 | 
			
		||||
		compatible = "adc-keys";
 | 
			
		||||
		io-channels = <&saradc 1>;
 | 
			
		||||
		io-channel-names = "buttons";
 | 
			
		||||
		poll-interval = <100>;
 | 
			
		||||
		keyup-threshold-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
		button-esc {
 | 
			
		||||
			linux,code = <KEY_MICMUTE>;
 | 
			
		||||
			label = "micmute";
 | 
			
		||||
			press-threshold-microvolt = <1130000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-home {
 | 
			
		||||
			linux,code = <KEY_MODE>;
 | 
			
		||||
			label = "mode";
 | 
			
		||||
			press-threshold-microvolt = <901000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-menu {
 | 
			
		||||
			linux,code = <KEY_PLAY>;
 | 
			
		||||
			label = "play";
 | 
			
		||||
			press-threshold-microvolt = <624000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-down {
 | 
			
		||||
			linux,code = <KEY_VOLUMEDOWN>;
 | 
			
		||||
			label = "volume down";
 | 
			
		||||
			press-threshold-microvolt = <300000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-up {
 | 
			
		||||
			linux,code = <KEY_VOLUMEUP>;
 | 
			
		||||
			label = "volume up";
 | 
			
		||||
			press-threshold-microvolt = <18000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		autorepeat;
 | 
			
		||||
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pwr_key>;
 | 
			
		||||
 | 
			
		||||
		key-power {
 | 
			
		||||
			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,code = <KEY_POWER>;
 | 
			
		||||
			label = "GPIO Key Power";
 | 
			
		||||
			debounce-interval = <100>;
 | 
			
		||||
			wakeup-source;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc12v_dcin: vcc12v-dcin {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc12v_dcin";
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vccio_sdio: vcc_1v8: vcc-1v8 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_1v8";
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_io>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_ddr: vcc-ddr {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_ddr";
 | 
			
		||||
		regulator-min-microvolt = <1500000>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_io: vcc-io {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_io";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vccio_flash: vccio-flash {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vccio_flash";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_io>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_host: vcc5v0-host {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&usb_drv>;
 | 
			
		||||
		regulator-name = "vbus_host";
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_core: vdd-core {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm0 0 5000 1>;
 | 
			
		||||
		regulator-name = "vdd_core";
 | 
			
		||||
		regulator-min-microvolt = <827000>;
 | 
			
		||||
		regulator-max-microvolt = <1340000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-settling-time-up-us = <250>;
 | 
			
		||||
		pwm-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-min-microvolt = <1050000>;
 | 
			
		||||
		regulator-max-microvolt = <1050000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_1v0: vdd-1v0 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_1v0";
 | 
			
		||||
		regulator-min-microvolt = <1000000>;
 | 
			
		||||
		regulator-max-microvolt = <1000000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_core>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	vref-supply = <&vcc_1v8>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rtc_32k>;
 | 
			
		||||
 | 
			
		||||
	buttons {
 | 
			
		||||
		pwr_key: pwr-key {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 0 &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb {
 | 
			
		||||
		usb_drv: usb-drv {
 | 
			
		||||
			rockchip,pins = <0 RK_PC5 0 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PA2 0 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pinctrl-0 = <&pwm0_pin_pull_down>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart4 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart4_xfer>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,190 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3308.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Firefly ROC-RK3308-CC board";
 | 
			
		||||
	compatible = "firefly,roc-rk3308-cc", "rockchip,rk3308";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdmmc;
 | 
			
		||||
		mmc1 = &emmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir-receiver {
 | 
			
		||||
		compatible = "gpio-ir-receiver";
 | 
			
		||||
		gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&ir_recv_pin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir_tx {
 | 
			
		||||
		compatible = "pwm-ir-tx";
 | 
			
		||||
		pwms = <&pwm5 0 25000 0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		power_led: led-0 {
 | 
			
		||||
			label = "firefly:red:power";
 | 
			
		||||
			linux,default-trigger = "ir-power-click";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led: led-1 {
 | 
			
		||||
			label = "firefly:blue:user";
 | 
			
		||||
			linux,default-trigger = "ir-user-click";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	typec_vcc5v: typec-vcc5v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "typec_vcc5v";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&typec_vcc5v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_io: vcc-io {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_io";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sdmmc: vcc-sdmmc {
 | 
			
		||||
		compatible = "regulator-gpio";
 | 
			
		||||
		regulator-name = "vcc_sdmmc";
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		states = <1800000 0x0>,
 | 
			
		||||
			 <3300000 0x1>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sd: vcc-sd {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio4 RK_PD6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		regulator-name = "vcc_sd";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_io>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_core: vdd-core {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm0 0 5000 1>;
 | 
			
		||||
		regulator-name = "vdd_core";
 | 
			
		||||
		regulator-min-microvolt = <827000>;
 | 
			
		||||
		regulator-max-microvolt = <1340000>;
 | 
			
		||||
		regulator-settling-time-up-us = <250>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		pwm-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-min-microvolt = <1050000>;
 | 
			
		||||
		regulator-max-microvolt = <1050000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_core>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc {
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rtc: rtc@51 {
 | 
			
		||||
		compatible = "nxp,pcf8563";
 | 
			
		||||
		reg = <0x51>;
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm5 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pinctrl-names = "active";
 | 
			
		||||
	pinctrl-0 = <&pwm5_pin_pull_down>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rtc_32k>;
 | 
			
		||||
 | 
			
		||||
	ir-receiver {
 | 
			
		||||
		ir_recv_pin: ir-recv-pin  {
 | 
			
		||||
			rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	buttons {
 | 
			
		||||
		pwr_key: pwr-key {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pinctrl-0 = <&pwm0_pin_pull_down>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	card-detect-delay = <300>;
 | 
			
		||||
	sd-uhs-sdr25;
 | 
			
		||||
	sd-uhs-sdr50;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc_sd>;
 | 
			
		||||
	vqmmc-supply = <&vcc_sdmmc>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,314 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Akash Gajjar <akash@openedev.com>
 | 
			
		||||
 * Copyright (c) 2019 Jagan Teki <jagan@openedev.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3308.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Radxa ROCK Pi S";
 | 
			
		||||
	compatible = "radxa,rockpis", "rockchip,rk3308";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac;
 | 
			
		||||
		mmc0 = &emmc;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial0:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&green_led_gio>, <&heartbeat_led_gpio>;
 | 
			
		||||
 | 
			
		||||
		green-led {
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			label = "rockpis:green:power";
 | 
			
		||||
			linux,default-trigger = "default-on";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		blue-led {
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			label = "rockpis:blue:user";
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_1v8: vcc-1v8 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_1v8";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc_io>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_io: vcc-io {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_io";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_ddr: vcc-ddr {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_ddr";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1500000>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_otg: vcc5v0-otg {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&otg_vbus_drv>;
 | 
			
		||||
		regulator-name = "vcc5v0_otg";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_core: vdd-core {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm0 0 5000 1>;
 | 
			
		||||
		pwm-supply = <&vcc5v0_sys>;
 | 
			
		||||
		regulator-name = "vdd_core";
 | 
			
		||||
		regulator-min-microvolt = <827000>;
 | 
			
		||||
		regulator-max-microvolt = <1340000>;
 | 
			
		||||
		regulator-settling-time-up-us = <250>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1050000>;
 | 
			
		||||
		regulator-max-microvolt = <1050000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_core>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	vmmc-supply = <&vcc_io>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	clock_in_out = "output";
 | 
			
		||||
	phy-supply = <&vcc_io>;
 | 
			
		||||
	snps,reset-gpio = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 50000 50000>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio0 {
 | 
			
		||||
	gpio-line-names =
 | 
			
		||||
		/* GPIO0_A0 - A7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO0_B0 - B7 */
 | 
			
		||||
		"", "", "", "header1-pin3 [GPIO0_B3]",
 | 
			
		||||
		"header1-pin5 [GPIO0_B4]", "", "",
 | 
			
		||||
		"header1-pin11 [GPIO0_B7]",
 | 
			
		||||
		/* GPIO0_C0 - C7 */
 | 
			
		||||
		"header1-pin13 [GPIO0_C0]",
 | 
			
		||||
		"header1-pin15 [GPIO0_C1]", "", "", "",
 | 
			
		||||
		"", "", "",
 | 
			
		||||
		/* GPIO0_D0 - D7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio1 {
 | 
			
		||||
	gpio-line-names =
 | 
			
		||||
		/* GPIO1_A0 - A7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO1_B0 - B7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO1_C0 - C7 */
 | 
			
		||||
		"", "", "", "", "", "", "header1-pin21 [GPIO1_C6]",
 | 
			
		||||
		"header1-pin19 [GPIO1_C7]",
 | 
			
		||||
		/* GPIO1_D0 - D7 */
 | 
			
		||||
		"header1-pin23 [GPIO1_D0]", "header1-pin24 [GPIO1_D1]",
 | 
			
		||||
		"", "", "", "", "", "";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio2 {
 | 
			
		||||
	gpio-line-names =
 | 
			
		||||
		/* GPIO2_A0 - A7 */
 | 
			
		||||
		"header1-pin10 [GPIO2_A0]", "header1-pin8 [GPIO2_A1]",
 | 
			
		||||
		"", "",
 | 
			
		||||
		"header1-pin7 [GPIO2_A4]", "header1-pin12 [GPIO2_A5]",
 | 
			
		||||
		"header2-pin46 [GPIO2_A6]", "header1-pin22 [GPIO1_A7]",
 | 
			
		||||
		/* GPIO2_B0 - B7 */
 | 
			
		||||
		"header2-pin45 [GPIO2_B0]", "header1-pin18 [GPIO2_B1]",
 | 
			
		||||
		"header1-pin16 [GPIO2_B2]", "header2-pin44 [GPIO2_B3]",
 | 
			
		||||
		"header2-pin43 [GPIO2_B4]", "header2-pin28 [GPIO2_B5]",
 | 
			
		||||
		"header2-pin30 [GPIO2_B6]", "header2-pin32 [GPIO2_B7]",
 | 
			
		||||
		/* GPIO2_C0 - C7 */
 | 
			
		||||
		"header2-pin34 [GPIO2_C0]", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO2_D0 - D7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio3 {
 | 
			
		||||
	gpio-line-names =
 | 
			
		||||
		/* GPIO3_A0 - A7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO3_B0 - B7 */
 | 
			
		||||
		"", "", "header2-pin42 [GPIO3_B2]",
 | 
			
		||||
		"header2-pin41 [GPIO3_B3]", "header2-pin40 [GPIO3_B4]",
 | 
			
		||||
		"header2-pin39 [GPIO3_B5]", "", "",
 | 
			
		||||
		/* GPIO3_C0 - C7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO3_D0 - D7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rtc_32k>;
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		green_led_gio: green-led-gpio {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		heartbeat_led_gpio: heartbeat-led-gpio {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb {
 | 
			
		||||
		otg_vbus_drv: otg-vbus-drv {
 | 
			
		||||
			rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wifi_host_wake: wifi-host-wake {
 | 
			
		||||
			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pinctrl-0 = <&pwm0_pin_pull_down>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio {
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	max-frequency = <1000000>;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_otg>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy_otg: otg-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_otg>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart4 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "realtek,rtl8723bs-bt";
 | 
			
		||||
		device-wake-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wake-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb20_otg {
 | 
			
		||||
	dr_mode = "peripheral";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&wdt {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,289 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3328.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Rockchip RK3328 EVB";
 | 
			
		||||
	compatible = "rockchip,rk3328-evb", "rockchip,rk3328";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac2phy;
 | 
			
		||||
		mmc0 = &sdmmc;
 | 
			
		||||
		mmc1 = &sdio;
 | 
			
		||||
		mmc2 = &emmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc_12v: dc-12v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "dc_12v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * On the module itself this is one of these (depending
 | 
			
		||||
		 * on the actual card populated):
 | 
			
		||||
		 * - SDIO_RESET_L_WL_REG_ON
 | 
			
		||||
		 * - PDN (power down when low)
 | 
			
		||||
		 */
 | 
			
		||||
		reset-gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sd: sdmmc-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 30 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sdmmc0m1_pin>;
 | 
			
		||||
		regulator-name = "vcc_sd";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_io>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: vcc-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_phy: vcc-phy-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_phy";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac2phy {
 | 
			
		||||
	phy-supply = <&vcc_phy>;
 | 
			
		||||
	clock_in_out = "output";
 | 
			
		||||
	assigned-clock-rate = <50000000>;
 | 
			
		||||
	assigned-clocks = <&cru SCLK_MAC2PHY>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk805: pmic@18 {
 | 
			
		||||
		compatible = "rockchip,rk805";
 | 
			
		||||
		reg = <0x18>;
 | 
			
		||||
		interrupt-parent = <&gpio2>;
 | 
			
		||||
		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk805-clkout2";
 | 
			
		||||
		gpio-controller;
 | 
			
		||||
		#gpio-cells = <2>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc_io>;
 | 
			
		||||
		vcc6-supply = <&vcc_io>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_logic: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_logic";
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_arm: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_arm";
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <950000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_io: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_io";
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_18: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc_18";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc18_emmc: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc18_emmc";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_10: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdd_10";
 | 
			
		||||
				regulator-min-microvolt = <1000000>;
 | 
			
		||||
				regulator-max-microvolt = <1000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
		rockchip,pins =
 | 
			
		||||
			<1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
 | 
			
		||||
	vmmc-supply = <&vcc_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb20_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,33 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2021 FriendlyElec Computer Tech. Co., Ltd.
 | 
			
		||||
 * (http://www.friendlyarm.com)
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2023 Tianling Shen <cnsztl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3328-nanopi-r2c.dts"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "FriendlyElec NanoPi R2C Plus";
 | 
			
		||||
	compatible = "friendlyarm,nanopi-r2c-plus", "rockchip,rk3328";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc1 = &emmc;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	mmc-ddr-1_8v;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
 | 
			
		||||
	vmmc-supply = <&vcc_io_33>;
 | 
			
		||||
	vqmmc-supply = <&vcc18_emmc>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,40 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2021 FriendlyElec Computer Tech. Co., Ltd.
 | 
			
		||||
 * (http://www.friendlyarm.com)
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2021-2023 Tianling Shen <cnsztl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3328-nanopi-r2s.dts"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "FriendlyElec NanoPi R2C";
 | 
			
		||||
	compatible = "friendlyarm,nanopi-r2c", "rockchip,rk3328";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac2io {
 | 
			
		||||
	phy-handle = <&yt8521s>;
 | 
			
		||||
	tx_delay = <0x22>;
 | 
			
		||||
	rx_delay = <0x12>;
 | 
			
		||||
 | 
			
		||||
	mdio {
 | 
			
		||||
		/delete-node/ ethernet-phy@1;
 | 
			
		||||
 | 
			
		||||
		yt8521s: ethernet-phy@3 {
 | 
			
		||||
			compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
			reg = <3>;
 | 
			
		||||
 | 
			
		||||
			motorcomm,clk-out-frequency-hz = <125000000>;
 | 
			
		||||
			motorcomm,keep-pll-enabled;
 | 
			
		||||
			motorcomm,auto-sleep-disabled;
 | 
			
		||||
 | 
			
		||||
			pinctrl-0 = <ð_phy_reset_pin>;
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			reset-assert-us = <10000>;
 | 
			
		||||
			reset-deassert-us = <50000>;
 | 
			
		||||
			reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -12,7 +12,7 @@
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio_vcc_pin {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb20_otg {
 | 
			
		||||
 | 
			
		||||
@ -1,410 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2020 David Bauer <mail@david-bauer.net>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/input/input.h>
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include "rk3328.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "FriendlyElec NanoPi R2S";
 | 
			
		||||
	compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac2io;
 | 
			
		||||
		ethernet1 = &rtl8153;
 | 
			
		||||
		mmc0 = &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac_clk: gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "gmac_clkin";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		pinctrl-0 = <&reset_button_pin>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		key-reset {
 | 
			
		||||
			label = "reset";
 | 
			
		||||
			gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,code = <KEY_RESTART>;
 | 
			
		||||
			debounce-interval = <50>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-0 = <&lan_led_pin>,  <&sys_led_pin>, <&wan_led_pin>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		lan_led: led-0 {
 | 
			
		||||
			gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			label = "nanopi-r2s:green:lan";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sys_led: led-1 {
 | 
			
		||||
			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			label = "nanopi-r2s:red:sys";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wan_led: led-2 {
 | 
			
		||||
			gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			label = "nanopi-r2s:green:wan";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_io_sdio: sdmmcio-regulator {
 | 
			
		||||
		compatible = "regulator-gpio";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-0 = <&sdio_vcc_pin>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		regulator-name = "vcc_io_sdio";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-settling-time-us = <5000>;
 | 
			
		||||
		regulator-type = "voltage";
 | 
			
		||||
		startup-delay-us = <2000>;
 | 
			
		||||
		states = <1800000 0x1>,
 | 
			
		||||
			 <3300000 0x0>;
 | 
			
		||||
		vin-supply = <&vcc_io_33>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sd: sdmmc-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-0 = <&sdmmc0m1_pin>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		regulator-name = "vcc_sd";
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_io_33>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_5v: vdd-5v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_5v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_5v_lan: vdd-5v-lan {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-0 = <&lan_vdd_pin>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		regulator-name = "vdd_5v_lan";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vdd_5v>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&display_subsystem {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac2io {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
 | 
			
		||||
	assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-handle = <&rtl8211e>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	phy-supply = <&vcc_io_33>;
 | 
			
		||||
	pinctrl-0 = <&rgmiim1_pins>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	rx_delay = <0x18>;
 | 
			
		||||
	snps,aal;
 | 
			
		||||
	tx_delay = <0x24>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	mdio {
 | 
			
		||||
		compatible = "snps,dwmac-mdio";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		rtl8211e: ethernet-phy@1 {
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			pinctrl-0 = <ð_phy_reset_pin>;
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			reset-assert-us = <10000>;
 | 
			
		||||
			reset-deassert-us = <50000>;
 | 
			
		||||
			reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk805: pmic@18 {
 | 
			
		||||
		compatible = "rockchip,rk805";
 | 
			
		||||
		reg = <0x18>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk805-clkout2";
 | 
			
		||||
		gpio-controller;
 | 
			
		||||
		#gpio-cells = <2>;
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vdd_5v>;
 | 
			
		||||
		vcc2-supply = <&vdd_5v>;
 | 
			
		||||
		vcc3-supply = <&vdd_5v>;
 | 
			
		||||
		vcc4-supply = <&vdd_5v>;
 | 
			
		||||
		vcc5-supply = <&vcc_io_33>;
 | 
			
		||||
		vcc6-supply = <&vdd_5v>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_log: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_log";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-ramp-delay = <12500>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_arm: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_arm";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-ramp-delay = <12500>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <950000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_io_33: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_io_33";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_18: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc_18";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc18_emmc: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc18_emmc";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_10: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdd_10";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1000000>;
 | 
			
		||||
				regulator-max-microvolt = <1000000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	pmuio-supply = <&vcc_io_33>;
 | 
			
		||||
	vccio1-supply = <&vcc_io_33>;
 | 
			
		||||
	vccio2-supply = <&vcc18_emmc>;
 | 
			
		||||
	vccio3-supply = <&vcc_io_sdio>;
 | 
			
		||||
	vccio4-supply = <&vcc_18>;
 | 
			
		||||
	vccio5-supply = <&vcc_io_33>;
 | 
			
		||||
	vccio6-supply = <&vcc_io_33>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	button {
 | 
			
		||||
		reset_button_pin: reset-button-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac2io {
 | 
			
		||||
		eth_phy_reset_pin: eth-phy-reset-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		lan_led_pin: lan-led-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sys_led_pin: sys-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wan_led_pin: wan-led-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	lan {
 | 
			
		||||
		lan_vdd_pin: lan-vdd-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sd {
 | 
			
		||||
		sdio_vcc_pin: sdio-vcc-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	sd-uhs-sdr12;
 | 
			
		||||
	sd-uhs-sdr25;
 | 
			
		||||
	sd-uhs-sdr50;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc_sd>;
 | 
			
		||||
	vqmmc-supply = <&vcc_io_sdio>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <0>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb20_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3 {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
	/* Second port is for USB 3.0 */
 | 
			
		||||
	rtl8153: device@2 {
 | 
			
		||||
		compatible = "usbbda,8153";
 | 
			
		||||
		reg = <2>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -8,9 +8,6 @@
 | 
			
		||||
#include "rk3328-sdram-lpddr3-666.dtsi"
 | 
			
		||||
 | 
			
		||||
&spi0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		bootph-pre-ram;
 | 
			
		||||
		bootph-some-ram;
 | 
			
		||||
@ -19,18 +16,22 @@
 | 
			
		||||
 | 
			
		||||
&spi0m2_clk {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0m2_cs0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0m2_rx {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0m2_tx {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb20_otg {
 | 
			
		||||
 | 
			
		||||
@ -1,42 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2016 Xunlong Software. Co., Ltd.
 | 
			
		||||
 * (http://www.orangepi.org)
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2021-2023 Tianling Shen <cnsztl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3328-orangepi-r1-plus.dts"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Xunlong Orange Pi R1 Plus LTS";
 | 
			
		||||
	compatible = "xunlong,orangepi-r1-plus-lts", "rockchip,rk3328";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac2io {
 | 
			
		||||
	phy-handle = <&yt8531c>;
 | 
			
		||||
	tx_delay = <0x19>;
 | 
			
		||||
	rx_delay = <0x05>;
 | 
			
		||||
 | 
			
		||||
	mdio {
 | 
			
		||||
		/delete-node/ ethernet-phy@1;
 | 
			
		||||
 | 
			
		||||
		yt8531c: ethernet-phy@0 {
 | 
			
		||||
			compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
			reg = <0>;
 | 
			
		||||
 | 
			
		||||
			motorcomm,auto-sleep-disabled;
 | 
			
		||||
			motorcomm,clk-out-frequency-hz = <125000000>;
 | 
			
		||||
			motorcomm,keep-pll-enabled;
 | 
			
		||||
			motorcomm,rx-clk-drv-microamp = <5020>;
 | 
			
		||||
			motorcomm,rx-data-drv-microamp = <5020>;
 | 
			
		||||
 | 
			
		||||
			pinctrl-0 = <ð_phy_reset_pin>;
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			reset-assert-us = <15000>;
 | 
			
		||||
			reset-deassert-us = <50000>;
 | 
			
		||||
			reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -8,9 +8,6 @@
 | 
			
		||||
#include "rk3328-sdram-ddr4-666.dtsi"
 | 
			
		||||
 | 
			
		||||
&spi0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		bootph-pre-ram;
 | 
			
		||||
		bootph-some-ram;
 | 
			
		||||
@ -19,18 +16,22 @@
 | 
			
		||||
 | 
			
		||||
&spi0m2_clk {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0m2_cs0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0m2_rx {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0m2_tx {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb20_otg {
 | 
			
		||||
 | 
			
		||||
@ -1,374 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Based on rk3328-nanopi-r2s.dts, which is:
 | 
			
		||||
 *   Copyright (c) 2020 David Bauer <mail@david-bauer.net>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/leds/common.h>
 | 
			
		||||
#include "rk3328.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Xunlong Orange Pi R1 Plus";
 | 
			
		||||
	compatible = "xunlong,orangepi-r1-plus", "rockchip,rk3328";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac2io;
 | 
			
		||||
		ethernet1 = &rtl8153;
 | 
			
		||||
		mmc0 = &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac_clk: gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "gmac_clkin";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		led-0 {
 | 
			
		||||
			function = LED_FUNCTION_LAN;
 | 
			
		||||
			color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
			gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		led-1 {
 | 
			
		||||
			function = LED_FUNCTION_STATUS;
 | 
			
		||||
			color = <LED_COLOR_ID_RED>;
 | 
			
		||||
			gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		led-2 {
 | 
			
		||||
			function = LED_FUNCTION_WAN;
 | 
			
		||||
			color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
			gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sd: sdmmc-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-0 = <&sdmmc0m1_pin>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		regulator-name = "vcc_sd";
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_io>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: vcc-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_5v_lan: vdd-5v-lan-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-0 = <&lan_vdd_pin>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		regulator-name = "vdd_5v_lan";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&display_subsystem {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac2io {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
 | 
			
		||||
	assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-handle = <&rtl8211e>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	phy-supply = <&vcc_io>;
 | 
			
		||||
	pinctrl-0 = <&rgmiim1_pins>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	snps,aal;
 | 
			
		||||
	rx_delay = <0x18>;
 | 
			
		||||
	tx_delay = <0x24>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	mdio {
 | 
			
		||||
		compatible = "snps,dwmac-mdio";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		rtl8211e: ethernet-phy@1 {
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			pinctrl-0 = <ð_phy_reset_pin>;
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			reset-assert-us = <10000>;
 | 
			
		||||
			reset-deassert-us = <50000>;
 | 
			
		||||
			reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk805: pmic@18 {
 | 
			
		||||
		compatible = "rockchip,rk805";
 | 
			
		||||
		reg = <0x18>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk805-clkout2";
 | 
			
		||||
		gpio-controller;
 | 
			
		||||
		#gpio-cells = <2>;
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc_io>;
 | 
			
		||||
		vcc6-supply = <&vcc_sys>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_log: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_log";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-ramp-delay = <12500>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_arm: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_arm";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-ramp-delay = <12500>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <950000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_io: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_io";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_18: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc_18";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc18_emmc: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc18_emmc";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_10: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdd_10";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1000000>;
 | 
			
		||||
				regulator-max-microvolt = <1000000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	pmuio-supply = <&vcc_io>;
 | 
			
		||||
	vccio1-supply = <&vcc_io>;
 | 
			
		||||
	vccio2-supply = <&vcc18_emmc>;
 | 
			
		||||
	vccio3-supply = <&vcc_io>;
 | 
			
		||||
	vccio4-supply = <&vcc_io>;
 | 
			
		||||
	vccio5-supply = <&vcc_io>;
 | 
			
		||||
	vccio6-supply = <&vcc_io>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	gmac2io {
 | 
			
		||||
		eth_phy_reset_pin: eth-phy-reset-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		lan_led_pin: lan-led-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sys_led_pin: sys-led-pin {
 | 
			
		||||
			rockchip,pins = <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wan_led_pin: wan-led-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	lan {
 | 
			
		||||
		lan_vdd_pin: lan-vdd-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	vmmc-supply = <&vcc_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		spi-max-frequency = <50000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <0>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb20_otg {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3 {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
	/* Second port is for USB 3.0 */
 | 
			
		||||
	rtl8153: device@2 {
 | 
			
		||||
		compatible = "usbbda,8153";
 | 
			
		||||
		reg = <2>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,384 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3328.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Firefly roc-rk3328-cc";
 | 
			
		||||
	compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac2io;
 | 
			
		||||
		mmc0 = &sdmmc;
 | 
			
		||||
		mmc1 = &emmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac_clkin: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "gmac_clkin";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc_12v: dc-12v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "dc_12v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sd: sdmmc-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sdmmc0m1_pin>;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-name = "vcc_sd";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_io>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sdio: sdmmcio-regulator {
 | 
			
		||||
		compatible = "regulator-gpio";
 | 
			
		||||
		gpios = <&grf_gpio 0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		states = <1800000 0x1>,
 | 
			
		||||
			 <3300000 0x0>;
 | 
			
		||||
		regulator-name = "vcc_sdio";
 | 
			
		||||
		regulator-type = "voltage";
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&usb20_host_drv>;
 | 
			
		||||
		regulator-name = "vcc_host1_5v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: vcc-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_phy: vcc-phy-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_phy";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		power_led: led-0 {
 | 
			
		||||
			label = "firefly:blue:power";
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			gpios = <&rk805 1 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led: led-1 {
 | 
			
		||||
			label = "firefly:yellow:user";
 | 
			
		||||
			linux,default-trigger = "mmc1";
 | 
			
		||||
			gpios = <&rk805 0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&analog_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&codec {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	mmc-ddr-1_8v;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
 | 
			
		||||
	vmmc-supply = <&vcc_io>;
 | 
			
		||||
	vqmmc-supply = <&vcc18_emmc>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac2io {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
 | 
			
		||||
	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc_phy>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmiim1_pins>;
 | 
			
		||||
	snps,aal;
 | 
			
		||||
	snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	snps,rxpbl = <0x4>;
 | 
			
		||||
	snps,txpbl = <0x4>;
 | 
			
		||||
	tx_delay = <0x24>;
 | 
			
		||||
	rx_delay = <0x18>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmiphy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk805: pmic@18 {
 | 
			
		||||
		compatible = "rockchip,rk805";
 | 
			
		||||
		reg = <0x18>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk805-clkout2";
 | 
			
		||||
		gpio-controller;
 | 
			
		||||
		#gpio-cells = <2>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc_io>;
 | 
			
		||||
		vcc6-supply = <&vcc_io>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_logic: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_logic";
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_arm: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_arm";
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <950000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_io: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_io";
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_18: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc_18";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc18_emmc: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc18_emmc";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_10: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdd_10";
 | 
			
		||||
				regulator-min-microvolt = <1000000>;
 | 
			
		||||
				regulator-max-microvolt = <1000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vccio1-supply = <&vcc_io>;
 | 
			
		||||
	vccio2-supply = <&vcc18_emmc>;
 | 
			
		||||
	vccio3-supply = <&vcc_sdio>;
 | 
			
		||||
	vccio4-supply = <&vcc_18>;
 | 
			
		||||
	vccio5-supply = <&vcc_io>;
 | 
			
		||||
	vccio6-supply = <&vcc_io>;
 | 
			
		||||
	pmuio-supply = <&vcc_io>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		usb20_host_drv: usb20-host-drv {
 | 
			
		||||
			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
 | 
			
		||||
	sd-uhs-sdr12;
 | 
			
		||||
	sd-uhs-sdr25;
 | 
			
		||||
	sd-uhs-sdr50;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc_sd>;
 | 
			
		||||
	vqmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb20_otg {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3 {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,445 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * (C) Copyright 2020 Chen-Yu Tsai <wens@csie.org>
 | 
			
		||||
 *
 | 
			
		||||
 * Based on ./rk3328-rock64.dts, which is
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2017 PINE64
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/input/input.h>
 | 
			
		||||
#include <dt-bindings/leds/common.h>
 | 
			
		||||
#include <dt-bindings/pinctrl/rockchip.h>
 | 
			
		||||
 | 
			
		||||
#include "rk3328.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Radxa ROCK Pi E";
 | 
			
		||||
	compatible = "radxa,rockpi-e", "rockchip,rk3328";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac2io;
 | 
			
		||||
		ethernet1 = &gmac2phy;
 | 
			
		||||
		mmc0 = &sdmmc;
 | 
			
		||||
		mmc1 = &emmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	adc-keys {
 | 
			
		||||
		compatible = "adc-keys";
 | 
			
		||||
		io-channels = <&saradc 0>;
 | 
			
		||||
		io-channel-names = "buttons";
 | 
			
		||||
		keyup-threshold-microvolt = <1750000>;
 | 
			
		||||
 | 
			
		||||
		/* This button is unpopulated out of the factory. */
 | 
			
		||||
		button-recovery {
 | 
			
		||||
			label = "Recovery";
 | 
			
		||||
			linux,code = <KEY_VENDOR>;
 | 
			
		||||
			press-threshold-microvolt = <10000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac_clkin: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "gmac_clkin";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-0 = <&led_pin>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		led-0 {
 | 
			
		||||
			color = <LED_COLOR_ID_BLUE>;
 | 
			
		||||
			gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sd: sdmmc-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sdmmc0m1_pin>;
 | 
			
		||||
		regulator-name = "vcc_sd";
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_io>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_host_5v: vcc-host-5v-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&usb30_host_drv>;
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		regulator-name = "vcc_host_5v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: vcc-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_wifi: vcc-wifi-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_en>;
 | 
			
		||||
		regulator-name = "vcc_wifi";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_io>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&analog_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&codec {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	mmc-ddr-1_8v;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
 | 
			
		||||
	vmmc-supply = <&vcc_io>;
 | 
			
		||||
	vqmmc-supply = <&vcc18_emmc>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac2io {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
 | 
			
		||||
	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-handle = <&rtl8211e>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	phy-supply = <&vcc_io>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmiim1_pins>;
 | 
			
		||||
	snps,aal;
 | 
			
		||||
	snps,rxpbl = <0x4>;
 | 
			
		||||
	snps,txpbl = <0x4>;
 | 
			
		||||
	tx_delay = <0x26>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	mdio {
 | 
			
		||||
		compatible = "snps,dwmac-mdio";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		rtl8211e: ethernet-phy@1 {
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			pinctrl-0 = <ð_phy_int_pin>, <ð_phy_reset_pin>;
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			interrupt-parent = <&gpio1>;
 | 
			
		||||
			interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
			reset-assert-us = <10000>;
 | 
			
		||||
			reset-deassert-us = <50000>;
 | 
			
		||||
			reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac2phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio0 {
 | 
			
		||||
	gpio-line-names =
 | 
			
		||||
		/* GPIO0_A0 - A7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO0_B0 - B7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO0_C0 - C7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO0_D0 - D7 */
 | 
			
		||||
		"", "", "", "pin-15 [GPIO0_D3]", "", "", "", "";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio1 {
 | 
			
		||||
	gpio-line-names =
 | 
			
		||||
		/* GPIO1_A0 - A7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO1_B0 - B7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO1_C0 - C7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO1_D0 - D7 */
 | 
			
		||||
		"", "", "", "", "pin-07 [GPIO1_D4]", "", "", "";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio2 {
 | 
			
		||||
	gpio-line-names =
 | 
			
		||||
		/* GPIO2_A0 - A7 */
 | 
			
		||||
		"pin-08 [GPIO2_A0]", "pin-10 [GPIO2_A1]", "pin-11 [GPIO2_A2]",
 | 
			
		||||
		"pin-13 [GPIO2-A3]", "pin-27 [GPIO2_A4]", "pin-28 [GPIO2_A5]",
 | 
			
		||||
		"pin-33 [GPIO2_A6]", "",
 | 
			
		||||
		/* GPIO2_B0 - B7 */
 | 
			
		||||
		"", "", "", "", "pin-26 [GPIO2_B4]", "", "", "pin-36 [GPIO2_B7]",
 | 
			
		||||
		/* GPIO2_C0 - C7 */
 | 
			
		||||
		"pin-32 [GPIO2_C0]", "pin-35 [GPIO2_C1]", "pin-12 [GPIO2_C2]",
 | 
			
		||||
		"pin-38 [GPIO2_C3]", "pin-29 [GPIO2_C4]", "pin-31 [GPIO2_C5]",
 | 
			
		||||
		"pin-37 [GPIO2_C6]", "pin-40 [GPIO2_C7]",
 | 
			
		||||
		/* GPIO2_D0 - D7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio3 {
 | 
			
		||||
	gpio-line-names =
 | 
			
		||||
		/* GPIO3_A0 - A7 */
 | 
			
		||||
		"pin-23 [GPIO3_A0]", "pin-19 [GPIO3_A1]", "pin-21 [GPIO3_A2]",
 | 
			
		||||
		"", "pin-03 [GPIO3_A4]", "", "pin-05 [GPIO3_A6]", "",
 | 
			
		||||
		/* GPIO3_B0 - B7 */
 | 
			
		||||
		"pin-24 [GPIO3_B0]", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO3_C0 - C7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "",
 | 
			
		||||
		/* GPIO3_D0 - D7 */
 | 
			
		||||
		"", "", "", "", "", "", "", "";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk805: pmic@18 {
 | 
			
		||||
		compatible = "rockchip,rk805";
 | 
			
		||||
		reg = <0x18>;
 | 
			
		||||
		interrupt-parent = <&gpio2>;
 | 
			
		||||
		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk805-clkout2";
 | 
			
		||||
		gpio-controller;
 | 
			
		||||
		#gpio-cells = <2>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc_io>;
 | 
			
		||||
		vcc6-supply = <&vcc_sys>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_log: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_log";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-ramp-delay = <12500>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_arm: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_arm";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-ramp-delay = <12500>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <950000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_io: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_io";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_18: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc_18";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc18_emmc: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc18_emmc";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_10: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdd_10";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1000000>;
 | 
			
		||||
				regulator-max-microvolt = <1000000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	pmuio-supply = <&vcc_io>;
 | 
			
		||||
	vccio1-supply = <&vcc_io>;
 | 
			
		||||
	vccio2-supply = <&vcc18_emmc>;
 | 
			
		||||
	vccio3-supply = <&vcc_io>;
 | 
			
		||||
	vccio4-supply = <&vcc_io>;
 | 
			
		||||
	vccio5-supply = <&vcc_io>;
 | 
			
		||||
	vccio6-supply = <&vcc_io>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	ephy {
 | 
			
		||||
		eth_phy_int_pin: eth-phy-int-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		eth_phy_reset_pin: eth-phy-reset-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		led_pin: led-pin {
 | 
			
		||||
			rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb3 {
 | 
			
		||||
		usb30_host_drv: usb30-host-drv {
 | 
			
		||||
			rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi {
 | 
			
		||||
		wifi_en: wifi-en {
 | 
			
		||||
			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
 | 
			
		||||
	vmmc-supply = <&vcc_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcc_18>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3 {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -30,9 +30,6 @@
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		bootph-pre-ram;
 | 
			
		||||
		bootph-some-ram;
 | 
			
		||||
@ -41,18 +38,22 @@
 | 
			
		||||
 | 
			
		||||
&spi0m2_clk {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0m2_cs0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0m2_rx {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0m2_tx {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb20_otg {
 | 
			
		||||
 | 
			
		||||
@ -1,394 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 PINE64
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3328.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Pine64 Rock64";
 | 
			
		||||
	compatible = "pine64,rock64", "rockchip,rk3328";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac2io;
 | 
			
		||||
		mmc0 = &sdmmc;
 | 
			
		||||
		mmc1 = &emmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac_clkin: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "gmac_clkin";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sd: sdmmc-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sdmmc0m1_pin>;
 | 
			
		||||
		regulator-name = "vcc_sd";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_io>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* Common enable line for all of the rails mentioned in the labels */
 | 
			
		||||
	vcc_host_5v: vcc_host1_5v: vcc_otg_5v: vcc-host-5v-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&usb20_host_drv>;
 | 
			
		||||
		regulator-name = "vcc_host_5v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: vcc-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir-receiver {
 | 
			
		||||
		compatible = "gpio-ir-receiver";
 | 
			
		||||
		gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-0 = <&ir_int>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		power_led: led-0 {
 | 
			
		||||
			gpios = <&rk805 1 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,default-trigger = "mmc0";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		standby_led: led-1 {
 | 
			
		||||
			gpios = <&rk805 0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	spdif_sound: spdif-sound {
 | 
			
		||||
		compatible = "simple-audio-card";
 | 
			
		||||
		simple-audio-card,name = "SPDIF";
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,cpu {
 | 
			
		||||
			sound-dai = <&spdif>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,codec {
 | 
			
		||||
			sound-dai = <&spdif_dit>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	spdif_dit: spdif-dit {
 | 
			
		||||
		compatible = "linux,spdif-dit";
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&analog_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&codec {
 | 
			
		||||
	mute-gpios = <&grf_gpio 0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_arm>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
 | 
			
		||||
	vmmc-supply = <&vcc_io>;
 | 
			
		||||
	vqmmc-supply = <&vcc18_emmc>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac2io {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
 | 
			
		||||
	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc_io>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmiim1_pins>;
 | 
			
		||||
	snps,force_thresh_dma_mode;
 | 
			
		||||
	snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x24>;
 | 
			
		||||
	rx_delay = <0x18>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmiphy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk805: pmic@18 {
 | 
			
		||||
		compatible = "rockchip,rk805";
 | 
			
		||||
		reg = <0x18>;
 | 
			
		||||
		interrupt-parent = <&gpio2>;
 | 
			
		||||
		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk805-clkout2";
 | 
			
		||||
		gpio-controller;
 | 
			
		||||
		#gpio-cells = <2>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc_io>;
 | 
			
		||||
		vcc6-supply = <&vcc_sys>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_logic: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_logic";
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-ramp-delay = <12500>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_arm: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_arm";
 | 
			
		||||
				regulator-min-microvolt = <712500>;
 | 
			
		||||
				regulator-max-microvolt = <1450000>;
 | 
			
		||||
				regulator-ramp-delay = <12500>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <950000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_io: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_io";
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_18: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc_18";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc18_emmc: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc18_emmc";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_10: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdd_10";
 | 
			
		||||
				regulator-min-microvolt = <1000000>;
 | 
			
		||||
				regulator-max-microvolt = <1000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vccio1-supply = <&vcc_io>;
 | 
			
		||||
	vccio2-supply = <&vcc18_emmc>;
 | 
			
		||||
	vccio3-supply = <&vcc_io>;
 | 
			
		||||
	vccio4-supply = <&vcc_18>;
 | 
			
		||||
	vccio5-supply = <&vcc_io>;
 | 
			
		||||
	vccio6-supply = <&vcc_io>;
 | 
			
		||||
	pmuio-supply = <&vcc_io>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	ir {
 | 
			
		||||
		ir_int: ir-int {
 | 
			
		||||
			rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		usb20_host_drv: usb20-host-drv {
 | 
			
		||||
			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
 | 
			
		||||
	vmmc-supply = <&vcc_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spdif {
 | 
			
		||||
	pinctrl-0 = <&spdifm0_tx>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
 | 
			
		||||
		/* maximum speed for Rockchip SPI */
 | 
			
		||||
		spi-max-frequency = <50000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <0>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy_host: host-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb20_otg {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3 {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -17,7 +17,6 @@
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dmc: dmc {
 | 
			
		||||
		bootph-all;
 | 
			
		||||
		compatible = "rockchip,rk3328-dmc";
 | 
			
		||||
		reg = <0x0 0xff400000 0x0 0x1000
 | 
			
		||||
		       0x0 0xff780000 0x0 0x3000
 | 
			
		||||
@ -25,6 +24,7 @@
 | 
			
		||||
		       0x0 0xff440000 0x0 0x1000
 | 
			
		||||
		       0x0 0xff720000 0x0 0x1000
 | 
			
		||||
		       0x0 0xff798000 0x0 0x1000>;
 | 
			
		||||
		bootph-all;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -42,14 +42,17 @@
 | 
			
		||||
 | 
			
		||||
&emmc_bus8 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_clk {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_cmd {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio0 {
 | 
			
		||||
@ -66,10 +69,12 @@
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_none_8ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_none_12ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_up {
 | 
			
		||||
@ -78,19 +83,21 @@
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_up_4ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_up_8ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_up_12ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
@ -103,18 +110,22 @@
 | 
			
		||||
 | 
			
		||||
&sdmmc0_bus4 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0_clk {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0_cmd {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0_dectn {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0m1_pin {
 | 
			
		||||
@ -127,7 +138,8 @@
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2m1_xfer {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
	bootph-pre-sram;
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -9,7 +9,6 @@
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,939 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2022 Fuzhou Rockchip Electronics Co., Ltd.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
#include <dt-bindings/pwm/pwm.h>
 | 
			
		||||
#include <dt-bindings/usb/pd.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "OPEN AI LAB EAIDK-610";
 | 
			
		||||
	compatible = "openailab,eaidk-610", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdio0;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
		mmc2 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	backlight: backlight {
 | 
			
		||||
		compatible = "pwm-backlight";
 | 
			
		||||
		pwms = <&pwm0 0 25000 0>;
 | 
			
		||||
		brightness-levels = <
 | 
			
		||||
			  0   1   2   3   4   5   6   7
 | 
			
		||||
			  8   9  10  11  12  13  14  15
 | 
			
		||||
			 16  17  18  19  20  21  22  23
 | 
			
		||||
			 24  25  26  27  28  29  30  31
 | 
			
		||||
			 32  33  34  35  36  37  38  39
 | 
			
		||||
			 40  41  42  43  44  45  46  47
 | 
			
		||||
			 48  49  50  51  52  53  54  55
 | 
			
		||||
			 56  57  58  59  60  61  62  63
 | 
			
		||||
			 64  65  66  67  68  69  70  71
 | 
			
		||||
			 72  73  74  75  76  77  78  79
 | 
			
		||||
			 80  81  82  83  84  85  86  87
 | 
			
		||||
			 88  89  90  91  92  93  94  95
 | 
			
		||||
			 96  97  98  99 100 101 102 103
 | 
			
		||||
			104 105 106 107 108 109 110 111
 | 
			
		||||
			112 113 114 115 116 117 118 119
 | 
			
		||||
			120 121 122 123 124 125 126 127
 | 
			
		||||
			128 129 130 131 132 133 134 135
 | 
			
		||||
			136 137 138 139 140 141 142 143
 | 
			
		||||
			144 145 146 147 148 149 150 151
 | 
			
		||||
			152 153 154 155 156 157 158 159
 | 
			
		||||
			160 161 162 163 164 165 166 167
 | 
			
		||||
			168 169 170 171 172 173 174 175
 | 
			
		||||
			176 177 178 179 180 181 182 183
 | 
			
		||||
			184 185 186 187 188 189 190 191
 | 
			
		||||
			192 193 194 195 196 197 198 199
 | 
			
		||||
			200 201 202 203 204 205 206 207
 | 
			
		||||
			208 209 210 211 212 213 214 215
 | 
			
		||||
			216 217 218 219 220 221 222 223
 | 
			
		||||
			224 225 226 227 228 229 230 231
 | 
			
		||||
			232 233 234 235 236 237 238 239
 | 
			
		||||
			240 241 242 243 244 245 246 247
 | 
			
		||||
			248 249 250 251 252 253 254 255>;
 | 
			
		||||
		default-brightness-level = <200>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc_12v: dc-12v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "dc_12v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		autorepeat;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pwrbtn>;
 | 
			
		||||
 | 
			
		||||
		key-power {
 | 
			
		||||
			debounce-interval = <100>;
 | 
			
		||||
			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "GPIO Key Power";
 | 
			
		||||
			linux,code = <KEY_POWER>;
 | 
			
		||||
			wakeup-source;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&work_led_pin>, <&user_led_pin>,
 | 
			
		||||
			    <&heartbeat_led_pin>, <&wlan_active_led_pin>,
 | 
			
		||||
			    <&bt_active_led_pin>;
 | 
			
		||||
 | 
			
		||||
		work_led: led-0 {
 | 
			
		||||
			label = "blue:work";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led: led-1 {
 | 
			
		||||
			label = "read:user";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		heartbeat_led: led-2 {
 | 
			
		||||
			label = "green:heartbeat";
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wlan_active_led: led-3 {
 | 
			
		||||
			label = "yellow:wlan";
 | 
			
		||||
			gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			linux,default-trigger = "phy0tx";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_active_led: led-4 {
 | 
			
		||||
			label = "blue:bt";
 | 
			
		||||
			gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			linux,default-trigger = "hci0-power";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rt5651-sound {
 | 
			
		||||
		compatible = "simple-audio-card";
 | 
			
		||||
		simple-audio-card,name = "realtek,rt5651-codec";
 | 
			
		||||
		simple-audio-card,format = "i2s";
 | 
			
		||||
		simple-audio-card,mclk-fs = <256>;
 | 
			
		||||
		simple-audio-card,widgets =
 | 
			
		||||
			"Microphone", "Mic Jack",
 | 
			
		||||
			"Headphone", "Headphone Jack";
 | 
			
		||||
		simple-audio-card,routing =
 | 
			
		||||
			"Mic Jack", "MICBIAS1",
 | 
			
		||||
			"IN1P", "Mic Jack",
 | 
			
		||||
			"Headphone Jack", "HPOL",
 | 
			
		||||
			"Headphone Jack", "HPOR";
 | 
			
		||||
		simple-audio-card,cpu {
 | 
			
		||||
			sound-dai = <&i2s1>;
 | 
			
		||||
		};
 | 
			
		||||
		simple-audio-card,codec {
 | 
			
		||||
			sound-dai = <&rt5651>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * On the module itself this is one of these (depending
 | 
			
		||||
		 * on the actual card populated):
 | 
			
		||||
		 * - SDIO_RESET_L_WL_REG_ON
 | 
			
		||||
		 * - PDN (power down when low)
 | 
			
		||||
		 */
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* switched by pmic_sleep */
 | 
			
		||||
	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc1v8_s3";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* For USB3.0 Port1/2 */
 | 
			
		||||
	vcc5v0_host1: vcc5v0-host1-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host1_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_host1";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* For USB2.0 Port1/2 */
 | 
			
		||||
	vcc5v0_host3: vcc5v0-host3-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host3_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_host3";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_typec: vcc5v0-typec-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_typec_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_typec";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <900000>;
 | 
			
		||||
		regulator-max-microvolt = <900000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc_lan>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk808-clkout2";
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_3v0>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc2v8_dvp: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc2v8_dvp";
 | 
			
		||||
				regulator-min-microvolt = <2800000>;
 | 
			
		||||
				regulator-max-microvolt = <2800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcc1v8_pmu";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sdio: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vcc_sdio";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca3v0_codec: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcca3v0_codec";
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_codec: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca1v8_codec";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: vcc_lan: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel1_pin>;
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel2_pin>;
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rt5651: audio-codec@1a {
 | 
			
		||||
		compatible = "rockchip,rt5651";
 | 
			
		||||
		reg = <0x1a>;
 | 
			
		||||
		clocks = <&cru SCLK_I2S_8CH_OUT>;
 | 
			
		||||
		clock-names = "mclk";
 | 
			
		||||
		hp-det-gpio = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		spk-con-gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <600>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <20>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	fusb0: typec-portc@22 {
 | 
			
		||||
		compatible = "fcs,fusb302";
 | 
			
		||||
		reg = <0x22>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&fusb0_int>;
 | 
			
		||||
		vbus-supply = <&vcc5v0_typec>;
 | 
			
		||||
 | 
			
		||||
		ports {
 | 
			
		||||
			#address-cells = <1>;
 | 
			
		||||
			#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
			port@0 {
 | 
			
		||||
				reg = <0>;
 | 
			
		||||
				usbc0_role_sw: endpoint@0 {
 | 
			
		||||
					remote-endpoint = <&dwc3_0_role_switch>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		connector {
 | 
			
		||||
			compatible = "usb-c-connector";
 | 
			
		||||
			data-role = "dual";
 | 
			
		||||
			label = "USB-C";
 | 
			
		||||
 | 
			
		||||
			ports {
 | 
			
		||||
				#address-cells = <1>;
 | 
			
		||||
				#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
				port@0 {
 | 
			
		||||
					reg = <0>;
 | 
			
		||||
 | 
			
		||||
					usbc_hs: endpoint {
 | 
			
		||||
						remote-endpoint = <&u2phy0_typec_hs>;
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
				port@1 {
 | 
			
		||||
					reg = <1>;
 | 
			
		||||
 | 
			
		||||
					usbc_ss: endpoint {
 | 
			
		||||
						remote-endpoint = <&tcphy0_typec_ss>;
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1 {
 | 
			
		||||
	rockchip,playback-channels = <2>;
 | 
			
		||||
	rockchip,capture-channels = <2>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	audio-supply = <&vcca1v8_codec>;
 | 
			
		||||
	bt656-supply = <&vcc_3v0>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>;
 | 
			
		||||
	sdmmc-supply = <&vcc_sdio>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	pmu1830-supply = <&vcc_3v0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	buttons {
 | 
			
		||||
		pwrbtn: pwrbtn {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	bt {
 | 
			
		||||
		bt_enable_h: bt-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fusb302x {
 | 
			
		||||
		fusb0_int: fusb0-int {
 | 
			
		||||
			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	lcd-panel {
 | 
			
		||||
		lcd_panel_reset: lcd-panel-reset {
 | 
			
		||||
			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		work_led_pin: work-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led_pin: user-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		heartbeat_led_pin: heartbeat-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wlan_active_led_pin: wlan-led-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_active_led_pin: bt-led-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel1_pin: vsel1-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel2_pin: vsel2-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rt5651 {
 | 
			
		||||
		rt5651_hpcon: rt5640-hpcon {
 | 
			
		||||
			rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb-typec {
 | 
			
		||||
		vcc5v0_typec_en: vcc5v0_typec_en {
 | 
			
		||||
			rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host3_en: vcc5v0-host3-en {
 | 
			
		||||
			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vcc5v0_host1_en: vcc5v0-host1-en {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi {
 | 
			
		||||
		wifi_host_wake_l: wifi-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca1v8_s3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	/* WiFi & BT combo module AMPAK AP6255 */
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	clock-frequency = <50000000>;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	brcmf: wifi@1 {
 | 
			
		||||
		compatible = "brcm,bcm4329-fmac";
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		interrupt-names = "host-wake";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_host_wake_l>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0_usb3 {
 | 
			
		||||
	orientation-switch;
 | 
			
		||||
	port {
 | 
			
		||||
		tcphy0_typec_ss: endpoint {
 | 
			
		||||
			remote-endpoint = <&usbc_ss>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	/* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	/* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy0_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy0_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host3>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	port {
 | 
			
		||||
		u2phy0_typec_hs: endpoint {
 | 
			
		||||
			remote-endpoint = <&usbc_hs>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host3>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm4345c5";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		max-speed = <1500000>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
 | 
			
		||||
		vbat-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	usb-role-switch;
 | 
			
		||||
 | 
			
		||||
	port {
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
		dwc3_0_role_switch: endpoint@0 {
 | 
			
		||||
			reg = <0>;
 | 
			
		||||
			remote-endpoint = <&usbc0_role_sw>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -9,16 +9,18 @@
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&rk808 {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
@ -37,16 +39,3 @@
 | 
			
		||||
&vdd_center {
 | 
			
		||||
	regulator-init-microvolt = <900000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,484 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/pwm/pwm.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Rockchip RK3399 Evaluation Board";
 | 
			
		||||
	compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	backlight: backlight {
 | 
			
		||||
		compatible = "pwm-backlight";
 | 
			
		||||
		brightness-levels = <
 | 
			
		||||
			  0   1   2   3   4   5   6   7
 | 
			
		||||
			  8   9  10  11  12  13  14  15
 | 
			
		||||
			 16  17  18  19  20  21  22  23
 | 
			
		||||
			 24  25  26  27  28  29  30  31
 | 
			
		||||
			 32  33  34  35  36  37  38  39
 | 
			
		||||
			 40  41  42  43  44  45  46  47
 | 
			
		||||
			 48  49  50  51  52  53  54  55
 | 
			
		||||
			 56  57  58  59  60  61  62  63
 | 
			
		||||
			 64  65  66  67  68  69  70  71
 | 
			
		||||
			 72  73  74  75  76  77  78  79
 | 
			
		||||
			 80  81  82  83  84  85  86  87
 | 
			
		||||
			 88  89  90  91  92  93  94  95
 | 
			
		||||
			 96  97  98  99 100 101 102 103
 | 
			
		||||
			104 105 106 107 108 109 110 111
 | 
			
		||||
			112 113 114 115 116 117 118 119
 | 
			
		||||
			120 121 122 123 124 125 126 127
 | 
			
		||||
			128 129 130 131 132 133 134 135
 | 
			
		||||
			136 137 138 139 140 141 142 143
 | 
			
		||||
			144 145 146 147 148 149 150 151
 | 
			
		||||
			152 153 154 155 156 157 158 159
 | 
			
		||||
			160 161 162 163 164 165 166 167
 | 
			
		||||
			168 169 170 171 172 173 174 175
 | 
			
		||||
			176 177 178 179 180 181 182 183
 | 
			
		||||
			184 185 186 187 188 189 190 191
 | 
			
		||||
			192 193 194 195 196 197 198 199
 | 
			
		||||
			200 201 202 203 204 205 206 207
 | 
			
		||||
			208 209 210 211 212 213 214 215
 | 
			
		||||
			216 217 218 219 220 221 222 223
 | 
			
		||||
			224 225 226 227 228 229 230 231
 | 
			
		||||
			232 233 234 235 236 237 238 239
 | 
			
		||||
			240 241 242 243 244 245 246 247
 | 
			
		||||
			248 249 250 251 252 253 254 255>;
 | 
			
		||||
		default-brightness-level = <200>;
 | 
			
		||||
		pwms = <&pwm0 0 25000 0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	edp_panel: edp-panel {
 | 
			
		||||
		compatible ="lg,lp079qx1-sp0v";
 | 
			
		||||
		backlight = <&backlight>;
 | 
			
		||||
		enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		power-supply = <&vcc3v3_s0>;
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			panel_in_edp: endpoint {
 | 
			
		||||
				remote-endpoint = <&edp_out_panel>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_center: vdd-center {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm3 0 25000 0>;
 | 
			
		||||
		regulator-name = "vdd_center";
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1400000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_host: vcc5v0-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_host";
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_phy: vcc-phy-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_phy";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_phy: vcc-phy-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_phy";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&edp {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	force-hpd;
 | 
			
		||||
 | 
			
		||||
	ports {
 | 
			
		||||
		edp_out: port@1 {
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			#address-cells = <1>;
 | 
			
		||||
			#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
			edp_out_panel: endpoint@0 {
 | 
			
		||||
				reg = <0>;
 | 
			
		||||
				remote-endpoint = <&panel_in_edp>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc_phy>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "rk808-clkout1", "rk808-clkout2";
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc1v8_pmu>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_log: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_log";
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v0_tp: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v0_tp";
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcc1v8_pmu";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sd: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vcc_sd";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca3v0_codec: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcca3v0_codec";
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_codec: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca1v8_codec";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm3 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs400-1_8v;
 | 
			
		||||
	mmc-hs400-enhanced-strobe;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_clkreqn_cpm>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host_en: vcc5v0-host-en {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -6,8 +6,12 @@
 | 
			
		||||
#include "rk3399-u-boot.dtsi"
 | 
			
		||||
#include "rk3399-sdram-ddr3-1600.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
&pcfg_pull_none_18ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_up_8ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,170 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2018 Collabora Ltd.
 | 
			
		||||
 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd.
 | 
			
		||||
 *
 | 
			
		||||
 * Schematics available at https://dl.vamrs.com/products/ficus/docs/hw
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-rock960.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "96boards RK3399 Ficus";
 | 
			
		||||
	compatible = "vamrs,ficus", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&user_led1_pin>, <&user_led2_pin>,
 | 
			
		||||
			    <&user_led3_pin>, <&user_led4_pin>,
 | 
			
		||||
			    <&wlan_led_pin>, <&bt_led_pin>;
 | 
			
		||||
 | 
			
		||||
		user_led1: led-1 {
 | 
			
		||||
			label = "red:user1";
 | 
			
		||||
			gpios = <&gpio4 25 0>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led2: led-2 {
 | 
			
		||||
			label = "red:user2";
 | 
			
		||||
			gpios = <&gpio4 26 0>;
 | 
			
		||||
			linux,default-trigger = "mmc0";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led3: led-3 {
 | 
			
		||||
			label = "red:user3";
 | 
			
		||||
			gpios = <&gpio4 30 0>;
 | 
			
		||||
			linux,default-trigger = "mmc1";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led4: led-4 {
 | 
			
		||||
			label = "red:user4";
 | 
			
		||||
			gpios = <&gpio1 0 0>;
 | 
			
		||||
			panic-indicator;
 | 
			
		||||
			linux,default-trigger = "none";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wlan_active_led: led-5 {
 | 
			
		||||
			label = "red:wlan";
 | 
			
		||||
			gpios = <&gpio1 1 0>;
 | 
			
		||||
			linux,default-trigger = "phy0tx";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_active_led: led-6 {
 | 
			
		||||
			label = "red:bt";
 | 
			
		||||
			gpios = <&gpio1 4 0>;
 | 
			
		||||
			linux,default-trigger = "hci0-power";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc3v3_sys>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	gmac {
 | 
			
		||||
		rgmii_sleep_pins: rgmii-sleep-pins {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie_drv: pcie-drv {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
			};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		host_vbus_drv: host-vbus-drv {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		user_led1_pin: user-led1-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led2_pin: user-led2-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led3_pin: user-led3-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led4_pin: user-led4-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wlan_led_pin: wlan-led-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_led_pin: bt-led-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	/* On both Low speed and High speed expansion */
 | 
			
		||||
	cs-gpios = <0>, <&gpio4 RK_PA6 0>, <&gpio4 RK_PA7 0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v3_pcie {
 | 
			
		||||
	gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc5v0_host {
 | 
			
		||||
	gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
@ -6,12 +6,6 @@
 | 
			
		||||
#include "rk3399-u-boot.dtsi"
 | 
			
		||||
#include "rk3399-sdram-ddr3-1600.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vdd_log {
 | 
			
		||||
	regulator-init-microvolt = <950000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,937 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
#include <dt-bindings/pwm/pwm.h>
 | 
			
		||||
#include <dt-bindings/usb/pd.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Firefly-RK3399 Board";
 | 
			
		||||
	compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdio0;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
		mmc2 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	backlight: backlight {
 | 
			
		||||
		compatible = "pwm-backlight";
 | 
			
		||||
		enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pwms = <&pwm0 0 25000 0>;
 | 
			
		||||
		brightness-levels = <
 | 
			
		||||
			  0   1   2   3   4   5   6   7
 | 
			
		||||
			  8   9  10  11  12  13  14  15
 | 
			
		||||
			 16  17  18  19  20  21  22  23
 | 
			
		||||
			 24  25  26  27  28  29  30  31
 | 
			
		||||
			 32  33  34  35  36  37  38  39
 | 
			
		||||
			 40  41  42  43  44  45  46  47
 | 
			
		||||
			 48  49  50  51  52  53  54  55
 | 
			
		||||
			 56  57  58  59  60  61  62  63
 | 
			
		||||
			 64  65  66  67  68  69  70  71
 | 
			
		||||
			 72  73  74  75  76  77  78  79
 | 
			
		||||
			 80  81  82  83  84  85  86  87
 | 
			
		||||
			 88  89  90  91  92  93  94  95
 | 
			
		||||
			 96  97  98  99 100 101 102 103
 | 
			
		||||
			104 105 106 107 108 109 110 111
 | 
			
		||||
			112 113 114 115 116 117 118 119
 | 
			
		||||
			120 121 122 123 124 125 126 127
 | 
			
		||||
			128 129 130 131 132 133 134 135
 | 
			
		||||
			136 137 138 139 140 141 142 143
 | 
			
		||||
			144 145 146 147 148 149 150 151
 | 
			
		||||
			152 153 154 155 156 157 158 159
 | 
			
		||||
			160 161 162 163 164 165 166 167
 | 
			
		||||
			168 169 170 171 172 173 174 175
 | 
			
		||||
			176 177 178 179 180 181 182 183
 | 
			
		||||
			184 185 186 187 188 189 190 191
 | 
			
		||||
			192 193 194 195 196 197 198 199
 | 
			
		||||
			200 201 202 203 204 205 206 207
 | 
			
		||||
			208 209 210 211 212 213 214 215
 | 
			
		||||
			216 217 218 219 220 221 222 223
 | 
			
		||||
			224 225 226 227 228 229 230 231
 | 
			
		||||
			232 233 234 235 236 237 238 239
 | 
			
		||||
			240 241 242 243 244 245 246 247
 | 
			
		||||
			248 249 250 251 252 253 254 255>;
 | 
			
		||||
		default-brightness-level = <200>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc_12v: dc-12v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "dc_12v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		autorepeat;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pwrbtn>;
 | 
			
		||||
 | 
			
		||||
		power {
 | 
			
		||||
			debounce-interval = <100>;
 | 
			
		||||
			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "GPIO Key Power";
 | 
			
		||||
			linux,code = <KEY_POWER>;
 | 
			
		||||
			wakeup-source;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir-receiver {
 | 
			
		||||
		compatible = "gpio-ir-receiver";
 | 
			
		||||
		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-0 = <&ir_int>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
 | 
			
		||||
 | 
			
		||||
		work_led: led-0 {
 | 
			
		||||
			label = "work";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		diy_led: led-1 {
 | 
			
		||||
			label = "diy";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rt5640-sound {
 | 
			
		||||
		compatible = "simple-audio-card";
 | 
			
		||||
		simple-audio-card,name = "rockchip,rt5640-codec";
 | 
			
		||||
		simple-audio-card,format = "i2s";
 | 
			
		||||
		simple-audio-card,mclk-fs = <256>;
 | 
			
		||||
		simple-audio-card,widgets =
 | 
			
		||||
			"Microphone", "Mic Jack",
 | 
			
		||||
			"Headphone", "Headphone Jack";
 | 
			
		||||
		simple-audio-card,routing =
 | 
			
		||||
			"Mic Jack", "MICBIAS1",
 | 
			
		||||
			"IN1P", "Mic Jack",
 | 
			
		||||
			"Headphone Jack", "HPOL",
 | 
			
		||||
			"Headphone Jack", "HPOR";
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,cpu {
 | 
			
		||||
			sound-dai = <&i2s1>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,codec {
 | 
			
		||||
			sound-dai = <&rt5640>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * On the module itself this is one of these (depending
 | 
			
		||||
		 * on the actual card populated):
 | 
			
		||||
		 * - SDIO_RESET_L_WL_REG_ON
 | 
			
		||||
		 * - PDN (power down when low)
 | 
			
		||||
		 */
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sound-dit {
 | 
			
		||||
		compatible = "audio-graph-card";
 | 
			
		||||
		label = "SPDIF";
 | 
			
		||||
		dais = <&spdif_p0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	spdif-dit {
 | 
			
		||||
		compatible = "linux,spdif-dit";
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			dit_p0_0: endpoint {
 | 
			
		||||
				remote-endpoint = <&spdif_p0_0>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* switched by pmic_sleep */
 | 
			
		||||
	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc1v8_s3";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_pcie: vcc3v3-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pcie_pwr_en>;
 | 
			
		||||
		regulator-name = "vcc3v3_pcie";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
 | 
			
		||||
	vcc5v0_host: vcc5v0-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_host";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_typec: vcc5v0-typec-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_typec_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_typec";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: vcc-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm2 0 25000 1>;
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <430000>;
 | 
			
		||||
		regulator-max-microvolt = <1400000>;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc_lan>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <168>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc1v8_pmu>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc2v8_dvp: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc2v8_dvp";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <2800000>;
 | 
			
		||||
				regulator-max-microvolt = <2800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcc1v8_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sdio: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vcc_sdio";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca3v0_codec: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcca3v0_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_codec: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca1v8_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: vcc_lan: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <0>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rt5640: rt5640@1c {
 | 
			
		||||
		compatible = "realtek,rt5640";
 | 
			
		||||
		reg = <0x1c>;
 | 
			
		||||
		clocks = <&cru SCLK_I2S_8CH_OUT>;
 | 
			
		||||
		clock-names = "mclk";
 | 
			
		||||
		realtek,in1-differential;
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&rt5640_hpcon>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <600>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <20>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	fusb0: typec-portc@22 {
 | 
			
		||||
		compatible = "fcs,fusb302";
 | 
			
		||||
		reg = <0x22>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&fusb0_int>;
 | 
			
		||||
		vbus-supply = <&vcc5v0_typec>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
 | 
			
		||||
		connector {
 | 
			
		||||
			compatible = "usb-c-connector";
 | 
			
		||||
			data-role = "host";
 | 
			
		||||
			label = "USB-C";
 | 
			
		||||
			op-sink-microwatt = <1000000>;
 | 
			
		||||
			power-role = "dual";
 | 
			
		||||
			sink-pdos =
 | 
			
		||||
				<PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
 | 
			
		||||
			source-pdos =
 | 
			
		||||
				<PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
 | 
			
		||||
			try-power-role = "sink";
 | 
			
		||||
 | 
			
		||||
			ports {
 | 
			
		||||
				#address-cells = <1>;
 | 
			
		||||
				#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
				port@0 {
 | 
			
		||||
					reg = <0>;
 | 
			
		||||
 | 
			
		||||
					usbc_hs: endpoint {
 | 
			
		||||
						remote-endpoint =
 | 
			
		||||
							<&u2phy0_typec_hs>;
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
				port@1 {
 | 
			
		||||
					reg = <1>;
 | 
			
		||||
 | 
			
		||||
					usbc_ss: endpoint {
 | 
			
		||||
						remote-endpoint =
 | 
			
		||||
							<&tcphy0_typec_ss>;
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	accelerometer@68 {
 | 
			
		||||
		compatible = "invensense,mpu6500";
 | 
			
		||||
		reg = <0x68>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PC6 IRQ_TYPE_EDGE_RISING>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0 {
 | 
			
		||||
	rockchip,playback-channels = <8>;
 | 
			
		||||
	rockchip,capture-channels = <8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1 {
 | 
			
		||||
	rockchip,playback-channels = <2>;
 | 
			
		||||
	rockchip,capture-channels = <2>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bt656-supply = <&vcc1v8_dvp>;
 | 
			
		||||
	audio-supply = <&vcca1v8_codec>;
 | 
			
		||||
	sdmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_clkreqn_cpm>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmu1830-supply = <&vcc_3v0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	buttons {
 | 
			
		||||
		pwrbtn: pwrbtn {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fusb302x {
 | 
			
		||||
		fusb0_int: fusb0-int {
 | 
			
		||||
			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir {
 | 
			
		||||
		ir_int: ir-int {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	lcd-panel {
 | 
			
		||||
		lcd_panel_reset: lcd-panel-reset {
 | 
			
		||||
			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		work_led_pin: work-led-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		diy_led_pin: diy-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie_pwr_en: pcie-pwr-en {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pcie_3g_drv: pcie-3g-drv {
 | 
			
		||||
			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel1_pin: vsel1-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel2_pin: vsel2-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rt5640 {
 | 
			
		||||
		rt5640_hpcon: rt5640-hpcon {
 | 
			
		||||
			rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb-typec {
 | 
			
		||||
		vcc5v0_typec_en: vcc5v0_typec_en {
 | 
			
		||||
			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host_en: vcc5v0-host-en {
 | 
			
		||||
			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi {
 | 
			
		||||
		wifi_host_wake_l: wifi-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca1v8_s3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	/* WiFi & BT combo module Ampak AP6356S */
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
 | 
			
		||||
	/* Power supply */
 | 
			
		||||
	vqmmc-supply = &vcc1v8_s3;	/* IO line */
 | 
			
		||||
	vmmc-supply = &vcc_sdio;	/* card's power */
 | 
			
		||||
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	brcmf: wifi@1 {
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
		compatible = "brcm,bcm4329-fmac";
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		interrupt-names = "host-wake";
 | 
			
		||||
		brcm,drive-strength = <5>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_host_wake_l>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs400-1_8v;
 | 
			
		||||
	mmc-hs400-enhanced-strobe;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spdif {
 | 
			
		||||
	pinctrl-0 = <&spdif_bus_1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	spdif_p0: port {
 | 
			
		||||
		spdif_p0_0: endpoint {
 | 
			
		||||
			remote-endpoint = <&dit_p0_0>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0_usb3 {
 | 
			
		||||
	port {
 | 
			
		||||
		tcphy0_typec_ss: endpoint {
 | 
			
		||||
			remote-endpoint = <&usbc_ss>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	/* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	/* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy0_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy0_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	port {
 | 
			
		||||
		u2phy0_typec_hs: endpoint {
 | 
			
		||||
			remote-endpoint = <&usbc_hs>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "otg";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,89 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Google Gru-Bob Rev 4+ board device tree source
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2018 Google, Inc
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-gru-chromebook.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Google Bob";
 | 
			
		||||
	compatible = "google,bob-rev13", "google,bob-rev12",
 | 
			
		||||
		     "google,bob-rev11", "google,bob-rev10",
 | 
			
		||||
		     "google,bob-rev9", "google,bob-rev8",
 | 
			
		||||
		     "google,bob-rev7", "google,bob-rev6",
 | 
			
		||||
		     "google,bob-rev5", "google,bob-rev4",
 | 
			
		||||
		     "google,bob", "google,gru", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	edp_panel: edp-panel {
 | 
			
		||||
		compatible = "boe,nv101wxmn51";
 | 
			
		||||
		backlight = <&backlight>;
 | 
			
		||||
		power-supply = <&pp3300_disp>;
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			panel_in_edp: endpoint {
 | 
			
		||||
				remote-endpoint = <&edp_out_panel>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ap_i2c_ts {
 | 
			
		||||
	touchscreen: touchscreen@10 {
 | 
			
		||||
		compatible = "elan,ekth3500";
 | 
			
		||||
		reg = <0x10>;
 | 
			
		||||
		interrupt-parent = <&gpio3>;
 | 
			
		||||
		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&touch_int_l &touch_reset_l>;
 | 
			
		||||
		reset-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ap_i2c_tp {
 | 
			
		||||
	trackpad: trackpad@15 {
 | 
			
		||||
		compatible = "elan,ekth3000";
 | 
			
		||||
		reg = <0x15>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&trackpad_int_l>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&backlight {
 | 
			
		||||
	pwms = <&cros_ec_pwm 0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_alert0 {
 | 
			
		||||
	temperature = <65000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_alert1 {
 | 
			
		||||
	temperature = <70000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	cr50@0 {
 | 
			
		||||
		compatible = "google,cr50";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <5 IRQ_TYPE_EDGE_RISING>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&h1_int_od_l>;
 | 
			
		||||
		spi-max-frequency = <800000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	tpm {
 | 
			
		||||
		h1_int_od_l: h1-int-od-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,400 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Google Gru-Chromebook shared properties
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2018 Google, Inc
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "rk3399-gru.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	pp900_ap: pp900-ap {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp900_ap";
 | 
			
		||||
 | 
			
		||||
		/* EC turns on w/ pp900_ap_en; always on for AP */
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <900000>;
 | 
			
		||||
		regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&ppvar_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp900_usb_en */
 | 
			
		||||
	pp900_usb: pp900-ap {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp900_pcie_en */
 | 
			
		||||
	pp900_pcie: pp900-ap {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pp3000: pp3000 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp3000";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pp3000_en>;
 | 
			
		||||
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3000000>;
 | 
			
		||||
		regulator-max-microvolt = <3000000>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&ppvar_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ppvar_centerlogic_pwm: ppvar-centerlogic-pwm {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		regulator-name = "ppvar_centerlogic_pwm";
 | 
			
		||||
 | 
			
		||||
		pwms = <&pwm3 0 3337 0>;
 | 
			
		||||
		pwm-supply = <&ppvar_sys>;
 | 
			
		||||
		pwm-dutycycle-range = <100 0>;
 | 
			
		||||
		pwm-dutycycle-unit = <100>;
 | 
			
		||||
 | 
			
		||||
		/* EC turns on w/ ppvar_centerlogic_en; always on for AP */
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <799434>;
 | 
			
		||||
		regulator-max-microvolt = <1049925>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ppvar_centerlogic: ppvar-centerlogic {
 | 
			
		||||
		compatible = "vctrl-regulator";
 | 
			
		||||
		regulator-name = "ppvar_centerlogic";
 | 
			
		||||
 | 
			
		||||
		regulator-min-microvolt = <799434>;
 | 
			
		||||
		regulator-max-microvolt = <1049925>;
 | 
			
		||||
 | 
			
		||||
		ctrl-supply = <&ppvar_centerlogic_pwm>;
 | 
			
		||||
		ctrl-voltage-range = <799434 1049925>;
 | 
			
		||||
 | 
			
		||||
		regulator-settling-time-up-us = <378>;
 | 
			
		||||
		min-slew-down-rate = <225>;
 | 
			
		||||
		ovp-threshold-percent = <16>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* Schematics call this PPVAR even though it's fixed */
 | 
			
		||||
	ppvar_logic: ppvar-logic {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "ppvar_logic";
 | 
			
		||||
 | 
			
		||||
		/* EC turns on w/ ppvar_logic_en; always on for AP */
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <900000>;
 | 
			
		||||
		regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&ppvar_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pp1800_audio: pp1800-audio {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp1800_audio";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pp1800_audio_en>;
 | 
			
		||||
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&pp1800>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* gpio is shared with pp3300_wifi_bt */
 | 
			
		||||
	pp1800_pcie: pp1800-pcie {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp1800_pcie";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wlan_module_pd_l>;
 | 
			
		||||
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * Need to wait 1ms + ramp-up time before we can power on WiFi.
 | 
			
		||||
		 * This has been approximated as 8ms total.
 | 
			
		||||
		 */
 | 
			
		||||
		regulator-enable-ramp-delay = <8000>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&pp1800>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* Always on; plain and simple */
 | 
			
		||||
	pp3000_ap: pp3000_emmc: pp3000 {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pp1500_ap_io: pp1500-ap-io {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp1500_ap_io";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pp1500_en>;
 | 
			
		||||
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1500000>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&pp1800>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pp3300_disp: pp3300-disp {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp3300_disp";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pp3300_disp_en>;
 | 
			
		||||
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
 | 
			
		||||
		startup-delay-us = <2000>;
 | 
			
		||||
		vin-supply = <&pp3300>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp3300_usb_en_l */
 | 
			
		||||
	pp3300_usb: pp3300 {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* gpio is shared with pp1800_pcie and pinctrl is set there */
 | 
			
		||||
	pp3300_wifi_bt: pp3300-wifi-bt {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp3300_wifi_bt";
 | 
			
		||||
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&pp3300>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * This is a bit of a hack. The WiFi module should be reset at least
 | 
			
		||||
	 * 1ms after its regulators have ramped up (max rampup time is ~7ms).
 | 
			
		||||
	 * With some stretching of the imagination, we can call the 1.8V
 | 
			
		||||
	 * regulator a supply.
 | 
			
		||||
	 */
 | 
			
		||||
	wlan_pd_n: wlan-pd-n {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "wlan_pd_n";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wlan_module_reset_l>;
 | 
			
		||||
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&pp1800_pcie>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	backlight: backlight {
 | 
			
		||||
		compatible = "pwm-backlight";
 | 
			
		||||
		enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		power-supply = <&pp3300_disp>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bl_en>;
 | 
			
		||||
		pwm-delay-us = <10000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio_keys: gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l>;
 | 
			
		||||
 | 
			
		||||
		wake_on_bt: wake-on-bt {
 | 
			
		||||
			label = "Wake-on-Bluetooth";
 | 
			
		||||
			gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,code = <KEY_WAKEUP>;
 | 
			
		||||
			wakeup-source;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_bigcpu {
 | 
			
		||||
	min-slew-down-rate = <225>;
 | 
			
		||||
	ovp-threshold-percent = <16>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_litcpu {
 | 
			
		||||
	min-slew-down-rate = <225>;
 | 
			
		||||
	ovp-threshold-percent = <16>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_gpu {
 | 
			
		||||
	min-slew-down-rate = <225>;
 | 
			
		||||
	ovp-threshold-percent = <16>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cdn_dp {
 | 
			
		||||
	extcon = <&usbc_extcon0>, <&usbc_extcon1>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&edp {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ports {
 | 
			
		||||
		edp_out: port@1 {
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			#address-cells = <1>;
 | 
			
		||||
			#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
			edp_out_panel: endpoint@0 {
 | 
			
		||||
				reg = <0>;
 | 
			
		||||
				remote-endpoint = <&panel_in_edp>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ap_i2c_mic: &i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	/* These are relatively safe rise/fall times */
 | 
			
		||||
	i2c-scl-falling-time-ns = <50>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
 | 
			
		||||
	headsetcodec: rt5514@57 {
 | 
			
		||||
		compatible = "realtek,rt5514";
 | 
			
		||||
		reg = <0x57>;
 | 
			
		||||
		realtek,dmic-init-delay-ms = <20>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ap_i2c_tp: &i2c5 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	/* These are relatively safe rise/fall times */
 | 
			
		||||
	i2c-scl-falling-time-ns = <50>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Note strange pullup enable.  Apparently this avoids leakage but
 | 
			
		||||
	 * still allows us to get nice 4.7K pullups for high speed i2c
 | 
			
		||||
	 * transfers.  Basically we want the pullup on whenever the ap is
 | 
			
		||||
	 * alive, so the "en" pin just gets set to output high.
 | 
			
		||||
	 */
 | 
			
		||||
	pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cros_ec {
 | 
			
		||||
	cros_ec_pwm: ec-pwm {
 | 
			
		||||
		compatible = "google,cros-ec-pwm";
 | 
			
		||||
		#pwm-cells = <1>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usbc_extcon1: extcon1 {
 | 
			
		||||
		compatible = "google,extcon-usbc-cros-ec";
 | 
			
		||||
		google,usb-port-id = <1>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sound {
 | 
			
		||||
	rockchip,codec = <&max98357a &headsetcodec
 | 
			
		||||
			  &codec &wacky_spi_audio &cdn_dp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi2 {
 | 
			
		||||
	wacky_spi_audio: spi2@0 {
 | 
			
		||||
		compatible = "realtek,rt5514";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&mic_int>;
 | 
			
		||||
		/* May run faster once verified. */
 | 
			
		||||
		spi-max-frequency = <10000000>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pci_rootport {
 | 
			
		||||
	mvl_wifi: wifi@0,0 {
 | 
			
		||||
		compatible = "pci1b4b,2b42";
 | 
			
		||||
		reg = <0x83010000 0x0 0x00000000 0x0 0x00100000
 | 
			
		||||
		       0x83010000 0x0 0x00100000 0x0 0x00100000>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wlan_host_wake_l>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	extcon = <&usbc_extcon1>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	extcon = <&usbc_extcon1>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	discrete-regulators {
 | 
			
		||||
		pp1500_en: pp1500-en {
 | 
			
		||||
			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO
 | 
			
		||||
					 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pp1800_audio_en: pp1800-audio-en {
 | 
			
		||||
			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO
 | 
			
		||||
					 &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pp3000_en: pp3000-en {
 | 
			
		||||
			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO
 | 
			
		||||
					 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pp3300_disp_en: pp3300-disp-en {
 | 
			
		||||
			rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO
 | 
			
		||||
					 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wlan_module_pd_l: wlan-module-pd-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO
 | 
			
		||||
					 &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&wifi {
 | 
			
		||||
	wifi_perst_l: wifi-perst-l {
 | 
			
		||||
		rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wlan_host_wake_l: wlan-host-wake-l {
 | 
			
		||||
		rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,327 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Google Gru-Kevin Rev 6+ board device tree source
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2016-2017 Google, Inc
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-gru-chromebook.dtsi"
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Kevin-specific things
 | 
			
		||||
 *
 | 
			
		||||
 * Things in this section should use names from Kevin schematic since no
 | 
			
		||||
 * equivalent exists in Gru schematic.  If referring to signals that exist
 | 
			
		||||
 * in Gru we use the Gru names, though.  Confusing enough for you?
 | 
			
		||||
 */
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Google Kevin";
 | 
			
		||||
	compatible = "google,kevin-rev15", "google,kevin-rev14",
 | 
			
		||||
		     "google,kevin-rev13", "google,kevin-rev12",
 | 
			
		||||
		     "google,kevin-rev11", "google,kevin-rev10",
 | 
			
		||||
		     "google,kevin-rev9", "google,kevin-rev8",
 | 
			
		||||
		     "google,kevin-rev7", "google,kevin-rev6",
 | 
			
		||||
		     "google,kevin", "google,gru", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	/* Power tree */
 | 
			
		||||
 | 
			
		||||
	p3_3v_dig: p3-3v-dig {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "p3.3v_dig";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&cpu3_pen_pwr_en>;
 | 
			
		||||
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		vin-supply = <&pp3300>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	edp_panel: edp-panel {
 | 
			
		||||
		compatible = "sharp,lq123p1jx31";
 | 
			
		||||
		backlight = <&backlight>;
 | 
			
		||||
		power-supply = <&pp3300_disp>;
 | 
			
		||||
 | 
			
		||||
		panel-timing {
 | 
			
		||||
			clock-frequency = <266666667>;
 | 
			
		||||
			hactive = <2400>;
 | 
			
		||||
			hfront-porch = <48>;
 | 
			
		||||
			hback-porch = <84>;
 | 
			
		||||
			hsync-len = <32>;
 | 
			
		||||
			hsync-active = <0>;
 | 
			
		||||
			vactive = <1600>;
 | 
			
		||||
			vfront-porch = <3>;
 | 
			
		||||
			vback-porch = <120>;
 | 
			
		||||
			vsync-len = <10>;
 | 
			
		||||
			vsync-active = <0>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			panel_in_edp: endpoint {
 | 
			
		||||
				remote-endpoint = <&edp_out_panel>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	thermistor_ppvar_bigcpu: thermistor-ppvar-bigcpu {
 | 
			
		||||
		compatible = "murata,ncp15wb473";
 | 
			
		||||
		pullup-uv = <1800000>;
 | 
			
		||||
		pullup-ohm = <25500>;
 | 
			
		||||
		pulldown-ohm = <0>;
 | 
			
		||||
		io-channels = <&saradc 2>;
 | 
			
		||||
		#thermal-sensor-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	thermistor_ppvar_litcpu: thermistor-ppvar-litcpu {
 | 
			
		||||
		compatible = "murata,ncp15wb473";
 | 
			
		||||
		pullup-uv = <1800000>;
 | 
			
		||||
		pullup-ohm = <25500>;
 | 
			
		||||
		pulldown-ohm = <0>;
 | 
			
		||||
		io-channels = <&saradc 3>;
 | 
			
		||||
		#thermal-sensor-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&backlight {
 | 
			
		||||
	pwms = <&cros_ec_pwm 1>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio_keys {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&bt_host_wake_l>, <&cpu1_pen_eject>;
 | 
			
		||||
 | 
			
		||||
	pen-insert {
 | 
			
		||||
		label = "Pen Insert";
 | 
			
		||||
		/* Insert = low, eject = high */
 | 
			
		||||
		gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		linux,code = <SW_PEN_INSERTED>;
 | 
			
		||||
		linux,input-type = <EV_SW>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&thermal_zones {
 | 
			
		||||
	bigcpu_reg_thermal: bigcpu-reg-thermal {
 | 
			
		||||
		polling-delay-passive = <100>; /* milliseconds */
 | 
			
		||||
		polling-delay = <1000>; /* milliseconds */
 | 
			
		||||
		thermal-sensors = <&thermistor_ppvar_bigcpu 0>;
 | 
			
		||||
		sustainable-power = <4000>;
 | 
			
		||||
 | 
			
		||||
		ppvar_bigcpu_trips: trips {
 | 
			
		||||
			ppvar_bigcpu_on: ppvar-bigcpu-on {
 | 
			
		||||
				temperature = <40000>;	/* millicelsius */
 | 
			
		||||
				hysteresis = <2000>;	/* millicelsius */
 | 
			
		||||
				type = "passive";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			ppvar_bigcpu_alert: ppvar-bigcpu-alert {
 | 
			
		||||
				temperature = <50000>;	/* millicelsius */
 | 
			
		||||
				hysteresis = <2000>;	/* millicelsius */
 | 
			
		||||
				type = "passive";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			ppvar_bigcpu_crit: ppvar-bigcpu-crit {
 | 
			
		||||
				temperature = <90000>;	/* millicelsius */
 | 
			
		||||
				hysteresis = <0>;	/* millicelsius */
 | 
			
		||||
				type = "critical";
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		cooling-maps {
 | 
			
		||||
			map0 {
 | 
			
		||||
				trip = <&ppvar_bigcpu_alert>;
 | 
			
		||||
				cooling-device =
 | 
			
		||||
					<&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
					<&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
					<&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
					<&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 | 
			
		||||
				contribution = <4096>;
 | 
			
		||||
			};
 | 
			
		||||
			map1 {
 | 
			
		||||
				trip = <&ppvar_bigcpu_alert>;
 | 
			
		||||
				cooling-device =
 | 
			
		||||
					<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
					<&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 | 
			
		||||
				contribution = <1024>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	litcpu_reg_thermal: litcpu-reg-thermal {
 | 
			
		||||
		polling-delay-passive = <100>; /* milliseconds */
 | 
			
		||||
		polling-delay = <1000>; /* milliseconds */
 | 
			
		||||
		thermal-sensors = <&thermistor_ppvar_litcpu 0>;
 | 
			
		||||
		sustainable-power = <4000>;
 | 
			
		||||
 | 
			
		||||
		ppvar_litcpu_trips: trips {
 | 
			
		||||
			ppvar_litcpu_on: ppvar-litcpu-on {
 | 
			
		||||
				temperature = <40000>;	/* millicelsius */
 | 
			
		||||
				hysteresis = <2000>;	/* millicelsius */
 | 
			
		||||
				type = "passive";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			ppvar_litcpu_alert: ppvar-litcpu-alert {
 | 
			
		||||
				temperature = <50000>;	/* millicelsius */
 | 
			
		||||
				hysteresis = <2000>;	/* millicelsius */
 | 
			
		||||
				type = "passive";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			ppvar_litcpu_crit: ppvar-litcpu-crit {
 | 
			
		||||
				temperature = <90000>;	/* millicelsius */
 | 
			
		||||
				hysteresis = <0>;	/* millicelsius */
 | 
			
		||||
				type = "critical";
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ap_i2c_tpm: &i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	/* These are relatively safe rise/fall times. */
 | 
			
		||||
	i2c-scl-falling-time-ns = <50>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
 | 
			
		||||
	tpm: tpm@20 {
 | 
			
		||||
		compatible = "infineon,slb9645tt";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		powered-while-suspended;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ap_i2c_dig: &i2c2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	/* These are relatively safe rise/fall times. */
 | 
			
		||||
	i2c-scl-falling-time-ns = <50>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
 | 
			
		||||
	digitizer: digitizer@9 {
 | 
			
		||||
		/* wacom,w9013 */
 | 
			
		||||
		compatible = "hid-over-i2c";
 | 
			
		||||
		reg = <0x9>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&cpu1_dig_irq_l &cpu1_dig_pdct_l>;
 | 
			
		||||
 | 
			
		||||
		vdd-supply = <&p3_3v_dig>;
 | 
			
		||||
		post-power-on-delay-ms = <100>;
 | 
			
		||||
 | 
			
		||||
		interrupt-parent = <&gpio2>;
 | 
			
		||||
		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
 | 
			
		||||
		hid-descr-addr = <0x1>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Adjustments to things in the gru baseboard */
 | 
			
		||||
 | 
			
		||||
&ap_i2c_tp {
 | 
			
		||||
	trackpad@4a {
 | 
			
		||||
		compatible = "atmel,maxtouch";
 | 
			
		||||
		reg = <0x4a>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&trackpad_int_l>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		linux,gpio-keymap = <KEY_RESERVED
 | 
			
		||||
				     KEY_RESERVED
 | 
			
		||||
				     KEY_RESERVED
 | 
			
		||||
				     BTN_LEFT>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ap_i2c_ts {
 | 
			
		||||
	touchscreen@4b {
 | 
			
		||||
		compatible = "atmel,maxtouch";
 | 
			
		||||
		reg = <0x4b>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&touch_int_l>;
 | 
			
		||||
		interrupt-parent = <&gpio3>;
 | 
			
		||||
		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_bigcpu_pwm {
 | 
			
		||||
	regulator-min-microvolt = <798674>;
 | 
			
		||||
	regulator-max-microvolt = <1302172>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_bigcpu {
 | 
			
		||||
	regulator-min-microvolt = <798674>;
 | 
			
		||||
	regulator-max-microvolt = <1302172>;
 | 
			
		||||
	ctrl-voltage-range = <798674 1302172>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_litcpu_pwm {
 | 
			
		||||
	regulator-min-microvolt = <799065>;
 | 
			
		||||
	regulator-max-microvolt = <1303738>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_litcpu {
 | 
			
		||||
	regulator-min-microvolt = <799065>;
 | 
			
		||||
	regulator-max-microvolt = <1303738>;
 | 
			
		||||
	ctrl-voltage-range = <799065 1303738>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_gpu_pwm {
 | 
			
		||||
	regulator-min-microvolt = <785782>;
 | 
			
		||||
	regulator-max-microvolt = <1217729>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_gpu {
 | 
			
		||||
	regulator-min-microvolt = <785782>;
 | 
			
		||||
	regulator-max-microvolt = <1217729>;
 | 
			
		||||
	ctrl-voltage-range = <785782 1217729>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_centerlogic_pwm {
 | 
			
		||||
	regulator-min-microvolt = <800069>;
 | 
			
		||||
	regulator-max-microvolt = <1049692>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ppvar_centerlogic {
 | 
			
		||||
	regulator-min-microvolt = <800069>;
 | 
			
		||||
	regulator-max-microvolt = <1049692>;
 | 
			
		||||
	ctrl-voltage-range = <800069 1049692>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	vref-supply = <&pp1800_ap_io>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mvl_wifi {
 | 
			
		||||
	marvell,wakeup-pin = <14>; /* GPIO_14 on Marvell */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	digitizer {
 | 
			
		||||
		/* Has external pullup */
 | 
			
		||||
		cpu1_dig_irq_l: cpu1-dig-irq-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		/* Has external pullup */
 | 
			
		||||
		cpu1_dig_pdct_l: cpu1-dig-pdct-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	discrete-regulators {
 | 
			
		||||
		cpu3_pen_pwr_en: cpu3-pen-pwr-en {
 | 
			
		||||
			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pen {
 | 
			
		||||
		cpu1_pen_eject: cpu1-pen-eject {
 | 
			
		||||
			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -54,12 +54,38 @@
 | 
			
		||||
	enable-gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	/delete-property/ bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	/delete-property/ bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc_bus4 {
 | 
			
		||||
	/delete-property/ bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc_cd {
 | 
			
		||||
	/delete-property/ bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc_clk {
 | 
			
		||||
	/delete-property/ bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc_cmd {
 | 
			
		||||
	/delete-property/ bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	spi_flash: flash@0 {
 | 
			
		||||
		bootph-all;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi5 {
 | 
			
		||||
	spi-activate-delay = <100>;
 | 
			
		||||
	spi-max-frequency = <3000000>;
 | 
			
		||||
	spi-deactivate-delay = <200>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi_flash {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,829 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Google Gru (and derivatives) board device tree source
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2016-2017 Google, Inc
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/input/input.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-op1-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdmmc;
 | 
			
		||||
		mmc1 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:115200n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Power Tree
 | 
			
		||||
	 *
 | 
			
		||||
	 * In general an attempt is made to include all rails called out by
 | 
			
		||||
	 * the schematic as long as those rails interact in some way with
 | 
			
		||||
	 * the AP.  AKA:
 | 
			
		||||
	 * - Rails that only connect to the EC (or devices that the EC talks to)
 | 
			
		||||
	 *   are not included.
 | 
			
		||||
	 * - Rails _are_ included if the rails go to the AP even if the AP
 | 
			
		||||
	 *   doesn't currently care about them / they are always on.  The idea
 | 
			
		||||
	 *   here is that it makes it easier to map to the schematic or extend
 | 
			
		||||
	 *   later.
 | 
			
		||||
	 *
 | 
			
		||||
	 * If two rails are substantially the same from the AP's point of
 | 
			
		||||
	 * view, though, we won't create a full fixed regulator.  We'll just
 | 
			
		||||
	 * put the child rail as an alias of the parent rail.  Sometimes rails
 | 
			
		||||
	 * look the same to the AP because one of these is true:
 | 
			
		||||
	 * - The EC controls the enable and the EC always enables a rail as
 | 
			
		||||
	 *   long as the AP is running.
 | 
			
		||||
	 * - The rails are actually connected to each other by a jumper and
 | 
			
		||||
	 *   the distinction is just there to add clarity/flexibility to the
 | 
			
		||||
	 *   schematic.
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	ppvar_sys: ppvar-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "ppvar_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pp1200_lpddr: pp1200-lpddr {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp1200_lpddr";
 | 
			
		||||
 | 
			
		||||
		/* EC turns on w/ lpddr_pwr_en; always on for AP */
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1200000>;
 | 
			
		||||
		regulator-max-microvolt = <1200000>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&ppvar_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pp1800: pp1800 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp1800";
 | 
			
		||||
 | 
			
		||||
		/* Always on when ppvar_sys shows power good */
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&ppvar_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pp3300: pp3300 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp3300";
 | 
			
		||||
 | 
			
		||||
		/* Always on; plain and simple */
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&ppvar_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pp5000: pp5000 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp5000";
 | 
			
		||||
 | 
			
		||||
		/* EC turns on w/ pp5000_en; always on for AP */
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&ppvar_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ppvar_bigcpu_pwm: ppvar-bigcpu-pwm {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		regulator-name = "ppvar_bigcpu_pwm";
 | 
			
		||||
 | 
			
		||||
		pwms = <&pwm1 0 3337 0>;
 | 
			
		||||
		pwm-supply = <&ppvar_sys>;
 | 
			
		||||
		pwm-dutycycle-range = <100 0>;
 | 
			
		||||
		pwm-dutycycle-unit = <100>;
 | 
			
		||||
 | 
			
		||||
		/* EC turns on w/ ap_core_en; always on for AP */
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <800107>;
 | 
			
		||||
		regulator-max-microvolt = <1302232>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ppvar_bigcpu: ppvar-bigcpu {
 | 
			
		||||
		compatible = "vctrl-regulator";
 | 
			
		||||
		regulator-name = "ppvar_bigcpu";
 | 
			
		||||
 | 
			
		||||
		regulator-min-microvolt = <800107>;
 | 
			
		||||
		regulator-max-microvolt = <1302232>;
 | 
			
		||||
 | 
			
		||||
		ctrl-supply = <&ppvar_bigcpu_pwm>;
 | 
			
		||||
		ctrl-voltage-range = <800107 1302232>;
 | 
			
		||||
 | 
			
		||||
		regulator-settling-time-up-us = <322>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ppvar_litcpu_pwm: ppvar-litcpu-pwm {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		regulator-name = "ppvar_litcpu_pwm";
 | 
			
		||||
 | 
			
		||||
		pwms = <&pwm2 0 3337 0>;
 | 
			
		||||
		pwm-supply = <&ppvar_sys>;
 | 
			
		||||
		pwm-dutycycle-range = <100 0>;
 | 
			
		||||
		pwm-dutycycle-unit = <100>;
 | 
			
		||||
 | 
			
		||||
		/* EC turns on w/ ap_core_en; always on for AP */
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <797743>;
 | 
			
		||||
		regulator-max-microvolt = <1307837>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ppvar_litcpu: ppvar-litcpu {
 | 
			
		||||
		compatible = "vctrl-regulator";
 | 
			
		||||
		regulator-name = "ppvar_litcpu";
 | 
			
		||||
 | 
			
		||||
		regulator-min-microvolt = <797743>;
 | 
			
		||||
		regulator-max-microvolt = <1307837>;
 | 
			
		||||
 | 
			
		||||
		ctrl-supply = <&ppvar_litcpu_pwm>;
 | 
			
		||||
		ctrl-voltage-range = <797743 1307837>;
 | 
			
		||||
 | 
			
		||||
		regulator-settling-time-up-us = <384>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ppvar_gpu_pwm: ppvar-gpu-pwm {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		regulator-name = "ppvar_gpu_pwm";
 | 
			
		||||
 | 
			
		||||
		pwms = <&pwm0 0 3337 0>;
 | 
			
		||||
		pwm-supply = <&ppvar_sys>;
 | 
			
		||||
		pwm-dutycycle-range = <100 0>;
 | 
			
		||||
		pwm-dutycycle-unit = <100>;
 | 
			
		||||
 | 
			
		||||
		/* EC turns on w/ ap_core_en; always on for AP */
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <786384>;
 | 
			
		||||
		regulator-max-microvolt = <1217747>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ppvar_gpu: ppvar-gpu {
 | 
			
		||||
		compatible = "vctrl-regulator";
 | 
			
		||||
		regulator-name = "ppvar_gpu";
 | 
			
		||||
 | 
			
		||||
		regulator-min-microvolt = <786384>;
 | 
			
		||||
		regulator-max-microvolt = <1217747>;
 | 
			
		||||
 | 
			
		||||
		ctrl-supply = <&ppvar_gpu_pwm>;
 | 
			
		||||
		ctrl-voltage-range = <786384 1217747>;
 | 
			
		||||
 | 
			
		||||
		regulator-settling-time-up-us = <390>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp900_ddrpll_en */
 | 
			
		||||
	pp900_ddrpll: pp900-ap {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp900_pll_en */
 | 
			
		||||
	pp900_pll: pp900-ap {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp900_pmu_en */
 | 
			
		||||
	pp900_pmu: pp900-ap {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp1800_s0_en_l */
 | 
			
		||||
	pp1800_ap_io: pp1800_emmc: pp1800_nfc: pp1800_s0: pp1800 {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp1800_avdd_en_l */
 | 
			
		||||
	pp1800_avdd: pp1800 {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp1800_lid_en_l */
 | 
			
		||||
	pp1800_lid: pp1800_mic: pp1800 {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ lpddr_pwr_en */
 | 
			
		||||
	pp1800_lpddr: pp1800 {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp1800_pmu_en_l */
 | 
			
		||||
	pp1800_pmu: pp1800 {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp1800_usb_en_l */
 | 
			
		||||
	pp1800_usb: pp1800 {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pp3000_sd_slot: pp3000-sd-slot {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pp3000_sd_slot";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sd_slot_pwr_en>;
 | 
			
		||||
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
 | 
			
		||||
		vin-supply = <&pp3000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Technically, this is a small abuse of 'regulator-gpio'; this
 | 
			
		||||
	 * regulator is a mux between pp1800 and pp3300. pp1800 and pp3300 are
 | 
			
		||||
	 * always on though, so it is sufficient to simply control the mux
 | 
			
		||||
	 * here.
 | 
			
		||||
	 */
 | 
			
		||||
	ppvar_sd_card_io: ppvar-sd-card-io {
 | 
			
		||||
		compatible = "regulator-gpio";
 | 
			
		||||
		regulator-name = "ppvar_sd_card_io";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sd_io_pwr_en &sd_pwr_1800_sel>;
 | 
			
		||||
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		enable-gpio = <&gpio2 2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		states = <1800000 0x1>,
 | 
			
		||||
			 <3000000 0x0>;
 | 
			
		||||
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <3000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ pp3300_trackpad_en_l */
 | 
			
		||||
	pp3300_trackpad: pp3300-trackpad {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* EC turns on w/ usb_a_en */
 | 
			
		||||
	pp5000_usb_a_vbus: pp5000 {
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ap_rtc_clk: ap-rtc-clk {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <32768>;
 | 
			
		||||
		clock-output-names = "xin32k";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	max98357a: max98357a {
 | 
			
		||||
		compatible = "maxim,max98357a";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sdmode_en>;
 | 
			
		||||
		sdmode-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		sdmode-delay = <2>;
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sound: sound {
 | 
			
		||||
		compatible = "rockchip,rk3399-gru-sound";
 | 
			
		||||
		rockchip,cpu = <&i2s0 &i2s2>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cdn_dp {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Set some suspend operating points to avoid OVP in suspend
 | 
			
		||||
 *
 | 
			
		||||
 * When we go into S3 ARM Trusted Firmware will transition our PWM regulators
 | 
			
		||||
 * from wherever they're at back to the "default" operating point (whatever
 | 
			
		||||
 * voltage we get when we set the PWM pins to "input").
 | 
			
		||||
 *
 | 
			
		||||
 * This quick transition under light load has the possibility to trigger the
 | 
			
		||||
 * regulator "over voltage protection" (OVP).
 | 
			
		||||
 *
 | 
			
		||||
 * To make extra certain that we don't hit this OVP at suspend time, we'll
 | 
			
		||||
 * transition to a voltage that's much closer to the default (~1.0 V) so that
 | 
			
		||||
 * there will not be a big jump.  Technically we only need to get within 200 mV
 | 
			
		||||
 * of the default voltage, but the speed here should be fast enough and we need
 | 
			
		||||
 * suspend/resume to be rock solid.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
&cluster0_opp {
 | 
			
		||||
	opp05 {
 | 
			
		||||
		opp-suspend;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cluster1_opp {
 | 
			
		||||
	opp06 {
 | 
			
		||||
		opp-suspend;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&ppvar_litcpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&ppvar_litcpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&ppvar_litcpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&ppvar_litcpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&ppvar_bigcpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&ppvar_bigcpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
&cru {
 | 
			
		||||
	assigned-clocks =
 | 
			
		||||
		<&cru PLL_GPLL>, <&cru PLL_CPLL>,
 | 
			
		||||
		<&cru PLL_NPLL>,
 | 
			
		||||
		<&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
 | 
			
		||||
		<&cru PCLK_PERIHP>,
 | 
			
		||||
		<&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
 | 
			
		||||
		<&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
 | 
			
		||||
		<&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
 | 
			
		||||
		<&cru ACLK_VIO>, <&cru ACLK_HDCP>,
 | 
			
		||||
		<&cru ACLK_GIC_PRE>,
 | 
			
		||||
		<&cru PCLK_DDR>;
 | 
			
		||||
	assigned-clock-rates =
 | 
			
		||||
		<600000000>, <800000000>,
 | 
			
		||||
		<1000000000>,
 | 
			
		||||
		<150000000>, <75000000>,
 | 
			
		||||
		<37500000>,
 | 
			
		||||
		<100000000>, <100000000>,
 | 
			
		||||
		<50000000>, <800000000>,
 | 
			
		||||
		<100000000>, <50000000>,
 | 
			
		||||
		<400000000>, <400000000>,
 | 
			
		||||
		<200000000>,
 | 
			
		||||
		<200000000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&ppvar_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ap_i2c_ts: &i2c3 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	/* These are relatively safe rise/fall times */
 | 
			
		||||
	i2c-scl-falling-time-ns = <50>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ap_i2c_audio: &i2c8 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	/* These are relatively safe rise/fall times */
 | 
			
		||||
	i2c-scl-falling-time-ns = <50>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
 | 
			
		||||
	codec: da7219@1a {
 | 
			
		||||
		compatible = "dlg,da7219";
 | 
			
		||||
		reg = <0x1a>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		clocks = <&cru SCLK_I2S_8CH_OUT>;
 | 
			
		||||
		clock-names = "mclk";
 | 
			
		||||
		dlg,micbias-lvl = <2600>;
 | 
			
		||||
		dlg,mic-amp-in-sel = "diff";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&headset_int_l>;
 | 
			
		||||
		VDD-supply = <&pp1800>;
 | 
			
		||||
		VDDMIC-supply = <&pp3300>;
 | 
			
		||||
		VDDIO-supply = <&pp1800>;
 | 
			
		||||
 | 
			
		||||
		da7219_aad {
 | 
			
		||||
			dlg,adc-1bit-rpt = <1>;
 | 
			
		||||
			dlg,btn-avg = <4>;
 | 
			
		||||
			dlg,btn-cfg = <50>;
 | 
			
		||||
			dlg,mic-det-thr = <500>;
 | 
			
		||||
			dlg,jack-ins-deb = <20>;
 | 
			
		||||
			dlg,jack-det-rate = "32ms_64ms";
 | 
			
		||||
			dlg,jack-rem-deb = <1>;
 | 
			
		||||
 | 
			
		||||
			dlg,a-d-btn-thr = <0xa>;
 | 
			
		||||
			dlg,d-b-btn-thr = <0x16>;
 | 
			
		||||
			dlg,b-c-btn-thr = <0x21>;
 | 
			
		||||
			dlg,c-mic-btn-thr = <0x3E>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	audio-supply = <&pp1800_audio>;		/* APIO5_VDD;  3d 4a */
 | 
			
		||||
	bt656-supply = <&pp1800_ap_io>;		/* APIO2_VDD;  2a 2b */
 | 
			
		||||
	gpio1830-supply = <&pp3000_ap>;		/* APIO4_VDD;  4c 4d */
 | 
			
		||||
	sdmmc-supply = <&ppvar_sd_card_io>;	/* SDMMC0_VDD; 4b    */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ep-gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_clkreqn_cpm>, <&wifi_perst_l>;
 | 
			
		||||
	vpcie3v3-supply = <&pp3300_wifi_bt>;
 | 
			
		||||
	vpcie1v8-supply = <&wlan_pd_n>; /* HACK: see &wlan_pd_n */
 | 
			
		||||
	vpcie0v9-supply = <&pp900_pcie>;
 | 
			
		||||
 | 
			
		||||
	pci_rootport: pcie@0,0 {
 | 
			
		||||
		reg = <0x83000000 0x0 0x00000000 0x0 0x00000000>;
 | 
			
		||||
		#address-cells = <3>;
 | 
			
		||||
		#size-cells = <2>;
 | 
			
		||||
		ranges;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	pmu1830-supply = <&pp1800_pmu>;		/* PMUIO2_VDD */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm3 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	/*
 | 
			
		||||
	 * Signal integrity isn't great at 200 MHz and 150 MHz (DDR) gives the
 | 
			
		||||
	 * same (or nearly the same) performance for all eMMC that are intended
 | 
			
		||||
	 * to be used.
 | 
			
		||||
	 */
 | 
			
		||||
	assigned-clock-rates = <150000000>;
 | 
			
		||||
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs400-1_8v;
 | 
			
		||||
	mmc-hs400-enhanced-strobe;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Note: configure "sdmmc_cd" as card detect even though it's actually
 | 
			
		||||
	 * hooked to ground.  Because we specified "cd-gpios" below dw_mmc
 | 
			
		||||
	 * should be ignoring card detect anyway.  Specifying the pin as
 | 
			
		||||
	 * sdmmc_cd means that even if you've got GRF_SOC_CON7[12] (force_jtag)
 | 
			
		||||
	 * turned on that the system will still make sure the port is
 | 
			
		||||
	 * configured as SDMMC and not JTAG.
 | 
			
		||||
	 */
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_cd_pin
 | 
			
		||||
		     &sdmmc_bus4>;
 | 
			
		||||
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	sd-uhs-sdr12;
 | 
			
		||||
	sd-uhs-sdr25;
 | 
			
		||||
	sd-uhs-sdr50;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&pp3000_sd_slot>;
 | 
			
		||||
	vqmmc-supply = <&ppvar_sd_card_io>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	pinctrl-names = "default", "sleep";
 | 
			
		||||
	pinctrl-1 = <&spi1_sleep>;
 | 
			
		||||
 | 
			
		||||
	spi_flash: spiflash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
 | 
			
		||||
		/* May run faster once verified. */
 | 
			
		||||
		spi-max-frequency = <10000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi5 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	cros_ec: ec@0 {
 | 
			
		||||
		compatible = "google,cros-ec-spi";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&ec_ap_int_l>;
 | 
			
		||||
		spi-max-frequency = <3000000>;
 | 
			
		||||
 | 
			
		||||
		i2c_tunnel: i2c-tunnel {
 | 
			
		||||
			compatible = "google,cros-ec-i2c-tunnel";
 | 
			
		||||
			google,remote-bus = <4>;
 | 
			
		||||
			#address-cells = <1>;
 | 
			
		||||
			#size-cells = <0>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		usbc_extcon0: extcon0 {
 | 
			
		||||
			compatible = "google,extcon-usbc-cros-ec";
 | 
			
		||||
			google,usb-port-id = <0>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	extcon = <&usbc_extcon0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	extcon = <&usbc_extcon0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#include <cros-ec-keyboard.dtsi>
 | 
			
		||||
#include <cros-ec-sbs.dtsi>
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	/*
 | 
			
		||||
	 * pinctrl settings for pins that have no real owners.
 | 
			
		||||
	 *
 | 
			
		||||
	 * At the moment settings are identical for S0 and S3, but if we later
 | 
			
		||||
	 * need to configure things differently for S3 we'll adjust here.
 | 
			
		||||
	 */
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <
 | 
			
		||||
		&ap_pwroff	/* AP will auto-assert this when in S3 */
 | 
			
		||||
		&clk_32k	/* This pin is always 32k on gru boards */
 | 
			
		||||
	>;
 | 
			
		||||
 | 
			
		||||
	pcfg_output_low: pcfg-output-low {
 | 
			
		||||
		output-low;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcfg_output_high: pcfg-output-high {
 | 
			
		||||
		output-high;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcfg_pull_none_8ma: pcfg-pull-none-8ma {
 | 
			
		||||
		bias-disable;
 | 
			
		||||
		drive-strength = <8>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	backlight-enable {
 | 
			
		||||
		bl_en: bl-en {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cros-ec {
 | 
			
		||||
		ec_ap_int_l: ec-ap-int-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	discrete-regulators {
 | 
			
		||||
		sd_io_pwr_en: sd-io-pwr-en {
 | 
			
		||||
			rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO
 | 
			
		||||
					 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sd_pwr_1800_sel: sd-pwr-1800-sel {
 | 
			
		||||
			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO
 | 
			
		||||
					 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sd_slot_pwr_en: sd-slot-pwr-en {
 | 
			
		||||
			rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO
 | 
			
		||||
					 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	codec {
 | 
			
		||||
		/* Has external pullup */
 | 
			
		||||
		headset_int_l: headset-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		mic_int: mic-int {
 | 
			
		||||
			rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	max98357a {
 | 
			
		||||
		sdmode_en: sdmode-en {
 | 
			
		||||
			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie_clkreqn_cpm: pci-clkreqn-cpm {
 | 
			
		||||
			/*
 | 
			
		||||
			 * Since our pcie doesn't support ClockPM(CPM), we want
 | 
			
		||||
			 * to hack this as gpio, so the EP could be able to
 | 
			
		||||
			 * de-assert it along and make ClockPM(CPM) work.
 | 
			
		||||
			 */
 | 
			
		||||
			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdmmc {
 | 
			
		||||
		/*
 | 
			
		||||
		 * We run sdmmc at max speed; bump up drive strength.
 | 
			
		||||
		 * We also have external pulls, so disable the internal ones.
 | 
			
		||||
		 */
 | 
			
		||||
		sdmmc_bus4: sdmmc-bus4 {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PB0 1 &pcfg_pull_none_8ma>,
 | 
			
		||||
				<4 RK_PB1 1 &pcfg_pull_none_8ma>,
 | 
			
		||||
				<4 RK_PB2 1 &pcfg_pull_none_8ma>,
 | 
			
		||||
				<4 RK_PB3 1 &pcfg_pull_none_8ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdmmc_clk: sdmmc-clk {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PB4 1 &pcfg_pull_none_8ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdmmc_cmd: sdmmc-cmd {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PB5 1 &pcfg_pull_none_8ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * In our case the official card detect is hooked to ground
 | 
			
		||||
		 * to avoid getting access to JTAG just by sticking something
 | 
			
		||||
		 * in the SD card slot (see the force_jtag bit in the TRM).
 | 
			
		||||
		 *
 | 
			
		||||
		 * We still configure it as card detect because it doesn't
 | 
			
		||||
		 * hurt and dw_mmc will ignore it.  We make sure to disable
 | 
			
		||||
		 * the pull though so we don't burn needless power.
 | 
			
		||||
		 */
 | 
			
		||||
		sdmmc_cd: sdmmc-cd {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PA7 1 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		/* This is where we actually hook up CD; has external pull */
 | 
			
		||||
		sdmmc_cd_pin: sdmmc-cd-pin {
 | 
			
		||||
			rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	spi1 {
 | 
			
		||||
		spi1_sleep: spi1-sleep {
 | 
			
		||||
			/*
 | 
			
		||||
			 * Pull down SPI1 CLK/CS/RX/TX during suspend, to
 | 
			
		||||
			 * prevent leakage.
 | 
			
		||||
			 */
 | 
			
		||||
			rockchip,pins = <1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_down>,
 | 
			
		||||
					<1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>,
 | 
			
		||||
					<1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_down>,
 | 
			
		||||
					<1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	touchscreen {
 | 
			
		||||
		touch_int_l: touch-int-l {
 | 
			
		||||
			rockchip,pins = <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		touch_reset_l: touch-reset-l {
 | 
			
		||||
			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	trackpad {
 | 
			
		||||
		ap_i2c_tp_pu_en: ap-i2c-tp-pu-en {
 | 
			
		||||
			rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_output_high>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		trackpad_int_l: trackpad-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi: wifi {
 | 
			
		||||
		wlan_module_reset_l: wlan-module-reset-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			/* Kevin has an external pull up, but Gru does not */
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	write-protect {
 | 
			
		||||
		ap_fw_wp: ap-fw-wp {
 | 
			
		||||
			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,27 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Shenzhen Wesion Technology Co., Ltd.
 | 
			
		||||
 * (https://www.khadas.com)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-khadas-edge.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Khadas Edge-Captain";
 | 
			
		||||
	compatible = "khadas,edge-captain", "rockchip,rk3399";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -6,10 +6,9 @@
 | 
			
		||||
#include "rk3399-u-boot.dtsi"
 | 
			
		||||
#include "rk3399-sdram-lpddr4-100.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
&spiflash {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vdd_log {
 | 
			
		||||
 | 
			
		||||
@ -1,27 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Shenzhen Wesion Technology Co., Ltd.
 | 
			
		||||
 * (https://www.khadas.com)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-khadas-edge.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Khadas Edge-V";
 | 
			
		||||
	compatible = "khadas,edge-v", "rockchip,rk3399";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,13 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Shenzhen Wesion Technology Co., Ltd.
 | 
			
		||||
 * (https://www.khadas.com)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-khadas-edge.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Khadas Edge";
 | 
			
		||||
	compatible = "khadas,edge", "rockchip,rk3399";
 | 
			
		||||
};
 | 
			
		||||
@ -1,837 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Shenzhen Wesion Technology Co., Ltd.
 | 
			
		||||
 * (https://www.khadas.com)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
#include <dt-bindings/pwm/pwm.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdio0;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
		mmc2 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * On the module itself this is one of these (depending
 | 
			
		||||
		 * on the actual card populated):
 | 
			
		||||
		 * - SDIO_RESET_L_WL_REG_ON
 | 
			
		||||
		 * - PDN (power down when low)
 | 
			
		||||
		 */
 | 
			
		||||
		reset-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* switched by pmic_sleep */
 | 
			
		||||
	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc1v8_s3";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_pcie: vcc3v3-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_pcie";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vsys_3v3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
 | 
			
		||||
	vcc5v0_host: vcc5v0-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_host";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vsys_5v0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm2 0 25000 1>;
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1400000>;
 | 
			
		||||
		vin-supply = <&vsys_3v3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vsys: vsys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vsys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vsys_3v3: vsys-3v3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vsys_3v3";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vsys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vsys_5v0: vsys-5v0 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vsys_5v0";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vsys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	adc-keys {
 | 
			
		||||
		compatible = "adc-keys";
 | 
			
		||||
		io-channels = <&saradc 1>;
 | 
			
		||||
		io-channel-names = "buttons";
 | 
			
		||||
		keyup-threshold-microvolt = <1800000>;
 | 
			
		||||
		poll-interval = <100>;
 | 
			
		||||
 | 
			
		||||
		recovery {
 | 
			
		||||
			label = "Recovery";
 | 
			
		||||
			linux,code = <KEY_VENDOR>;
 | 
			
		||||
			press-threshold-microvolt = <18000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		autorepeat;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pwrbtn>;
 | 
			
		||||
 | 
			
		||||
		power {
 | 
			
		||||
			debounce-interval = <100>;
 | 
			
		||||
			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "GPIO Key Power";
 | 
			
		||||
			linux,code = <KEY_POWER>;
 | 
			
		||||
			wakeup-source;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir-receiver {
 | 
			
		||||
		compatible = "gpio-ir-receiver";
 | 
			
		||||
		gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		linux,rc-map-name = "rc-khadas";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&ir_rx>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sys_led_pin>, <&user_led_pin>;
 | 
			
		||||
 | 
			
		||||
		sys_led: led-0 {
 | 
			
		||||
			label = "sys_led";
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led: led-1 {
 | 
			
		||||
			label = "user_led";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fan: pwm-fan {
 | 
			
		||||
		compatible = "pwm-fan";
 | 
			
		||||
		cooling-levels = <0 150 200 255>;
 | 
			
		||||
		#cooling-cells = <2>;
 | 
			
		||||
		fan-supply = <&vsys_5v0>;
 | 
			
		||||
		pwms = <&pwm0 0 40000 0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_thermal {
 | 
			
		||||
	trips {
 | 
			
		||||
		cpu_warm: cpu_warm {
 | 
			
		||||
			temperature = <55000>;
 | 
			
		||||
			hysteresis = <2000>;
 | 
			
		||||
			type = "active";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		cpu_hot: cpu_hot {
 | 
			
		||||
			temperature = <65000>;
 | 
			
		||||
			hysteresis = <2000>;
 | 
			
		||||
			type = "active";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cooling-maps {
 | 
			
		||||
		map2 {
 | 
			
		||||
			trip = <&cpu_warm>;
 | 
			
		||||
			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		map3 {
 | 
			
		||||
			trip = <&cpu_hot>;
 | 
			
		||||
			cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc_lan>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu_thermal {
 | 
			
		||||
	trips {
 | 
			
		||||
		gpu_warm: gpu_warm {
 | 
			
		||||
			temperature = <55000>;
 | 
			
		||||
			hysteresis = <2000>;
 | 
			
		||||
			type = "active";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpu_hot: gpu_hot {
 | 
			
		||||
			temperature = <65000>;
 | 
			
		||||
			hysteresis = <2000>;
 | 
			
		||||
			type = "active";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cooling-maps {
 | 
			
		||||
		map1 {
 | 
			
		||||
			trip = <&gpu_warm>;
 | 
			
		||||
			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		map2 {
 | 
			
		||||
			trip = <&gpu_hot>;
 | 
			
		||||
			cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <168>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PC6 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vsys_3v3>;
 | 
			
		||||
		vcc2-supply = <&vsys_3v3>;
 | 
			
		||||
		vcc3-supply = <&vsys_3v3>;
 | 
			
		||||
		vcc4-supply = <&vsys_3v3>;
 | 
			
		||||
		vcc6-supply = <&vsys_3v3>;
 | 
			
		||||
		vcc7-supply = <&vsys_3v3>;
 | 
			
		||||
		vcc8-supply = <&vsys_3v3>;
 | 
			
		||||
		vcc9-supply = <&vsys_3v3>;
 | 
			
		||||
		vcc10-supply = <&vsys_3v3>;
 | 
			
		||||
		vcc11-supply = <&vsys_3v3>;
 | 
			
		||||
		vcc12-supply = <&vsys_3v3>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_apio2: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc1v8_apio2";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_vldo2: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc_vldo2";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_pmupll: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcc1v8_pmupll";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_vldo5: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcc_vldo5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_codec: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcc1v8_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: vcc_lan: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&cpu_b_sleep>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vsys_3v3>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&gpu_sleep>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vsys_3v3>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c8 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <160>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <30>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0 {
 | 
			
		||||
	rockchip,playback-channels = <8>;
 | 
			
		||||
	rockchip,capture-channels = <8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1 {
 | 
			
		||||
	rockchip,playback-channels = <2>;
 | 
			
		||||
	rockchip,capture-channels = <2>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	bt656-supply = <&vcc1v8_apio2>;
 | 
			
		||||
	audio-supply = <&vcc1v8_codec>;
 | 
			
		||||
	sdmmc-supply = <&vccio_sd>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmu1830-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bt {
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_reg_on_h: bt-reg-on-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	buttons {
 | 
			
		||||
		pwrbtn: pwrbtn {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir {
 | 
			
		||||
		ir_rx: ir-rx {
 | 
			
		||||
		    rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		sys_led_pin: sys-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led_pin: user-led-pin {
 | 
			
		||||
			rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		cpu_b_sleep: cpu-b-sleep {
 | 
			
		||||
			rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpu_sleep: gpu-sleep {
 | 
			
		||||
			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host_en: vcc5v0-host-en {
 | 
			
		||||
			rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi {
 | 
			
		||||
		wifi_host_wake_l: wifi-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca1v8_s3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	/* WiFi & BT combo module Ampak AP6356S */
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vqmmc-supply = <&vcc1v8_s3>;
 | 
			
		||||
	vmmc-supply = <&vccio_sd>;
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	brcmf: wifi@1 {
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
		compatible = "brcm,bcm4329-fmac";
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		interrupt-names = "host-wake";
 | 
			
		||||
		brcm,drive-strength = <5>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_host_wake_l>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs400-1_8v;
 | 
			
		||||
	mmc-hs400-enhanced-strobe;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	spiflash: flash@0 {
 | 
			
		||||
		compatible = "winbond,w25q128fw", "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		spi-max-frequency = <104000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	/* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	/* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy0_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy0_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm43438-bt";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		max-speed = <4000000>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>;
 | 
			
		||||
		vbat-supply = <&vsys_3v3>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "otg";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -6,12 +6,6 @@
 | 
			
		||||
#include "rk3399-u-boot.dtsi"
 | 
			
		||||
#include "rk3399-sdram-lpddr4-100.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vdd_log {
 | 
			
		||||
	regulator-init-microvolt = <950000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,651 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Andy Yan <andy.yan@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
#include <dt-bindings/pwm/pwm.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Leez RK3399 P710";
 | 
			
		||||
	compatible = "leez,p710", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdio0;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
		mmc2 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_reg_on_h>;
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc5v_adp: dc5v-adp {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "dc5v_adapter";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_lan: vcc3v3-lan {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_lan";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vim-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_host0: vcc5v0_host1: vcc5v0-host {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_host";
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-min-microvolt = <5500000>;
 | 
			
		||||
		regulator-max-microvolt = <5500000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_host3: vcc5v0-host3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_host3";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host3_en>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc5v_adp>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm2 0 25000 1>;
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1400000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc3v3_lan>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c7>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <168>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_hdmi: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc1v8_hdmi";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_1v8: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcca_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca3v0_codec: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcca3v0_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc0v9_hdmi: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcc0v9_hdmi";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel1_pin>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel2_pin>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <600>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <20>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c7 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0 {
 | 
			
		||||
	rockchip,playback-channels = <8>;
 | 
			
		||||
	rockchip,capture-channels = <8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1 {
 | 
			
		||||
	rockchip,playback-channels = <2>;
 | 
			
		||||
	rockchip,capture-channels = <2>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bt656-supply = <&vcc1v8_dvp>;
 | 
			
		||||
	audio-supply = <&vcc_1v8>;
 | 
			
		||||
	sdmmc-supply = <&vccio_sd>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pmu1830-supply = <&vcc_3v0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bt {
 | 
			
		||||
		bt_reg_on_h: bt-reg-on-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel1_pin: vsel1-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel2_pin: vsel2-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host3_en: vcc5v0-host3-en {
 | 
			
		||||
			rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi {
 | 
			
		||||
		wifi_reg_on_h: wifi-reg-on-h {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wifi_host_wake_l: wifi-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vref-supply = <&vcc_1v8>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	clock-frequency = <50000000>;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	brcmf: wifi@1 {
 | 
			
		||||
		compatible = "brcm,bcm4329-fmac";
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		interrupt-names = "host-wake";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_host_wake_l>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs400-1_8v;
 | 
			
		||||
	mmc-hs400-enhanced-strobe;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cd &sdmmc_cmd &sdmmc_bus4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	/* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	/* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy0_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy0_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host0>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host1>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm43438-bt";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_reg_on_h>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "otg";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,137 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * FriendlyElec NanoPC-T4 board device tree source
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
 | 
			
		||||
 * (http://www.friendlyarm.com)
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2018 Collabora Ltd.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-nanopi4.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "FriendlyElec NanoPC-T4";
 | 
			
		||||
	compatible = "friendlyarm,nanopc-t4", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	vcc12v0_sys: vcc12v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-name = "vcc12v0_sys";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_host0: vcc5v0-host0 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-name = "vcc5v0_host0";
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	adc-keys {
 | 
			
		||||
		compatible = "adc-keys";
 | 
			
		||||
		io-channels = <&saradc 1>;
 | 
			
		||||
		io-channel-names = "buttons";
 | 
			
		||||
		keyup-threshold-microvolt = <1800000>;
 | 
			
		||||
		poll-interval = <100>;
 | 
			
		||||
 | 
			
		||||
		recovery {
 | 
			
		||||
			label = "Recovery";
 | 
			
		||||
			linux,code = <KEY_VENDOR>;
 | 
			
		||||
			press-threshold-microvolt = <18000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir-receiver {
 | 
			
		||||
		compatible = "gpio-ir-receiver";
 | 
			
		||||
		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&ir_rx>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fan: pwm-fan {
 | 
			
		||||
		compatible = "pwm-fan";
 | 
			
		||||
		/*
 | 
			
		||||
		 * With 20KHz PWM and an EVERCOOL EC4007H12SA fan, these levels
 | 
			
		||||
		 * work out to 0, ~1200, ~3000, and 5000RPM respectively.
 | 
			
		||||
		 */
 | 
			
		||||
		cooling-levels = <0 12 18 255>;
 | 
			
		||||
		#cooling-cells = <2>;
 | 
			
		||||
		fan-supply = <&vcc12v0_sys>;
 | 
			
		||||
		pwms = <&pwm1 0 50000 0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_thermal {
 | 
			
		||||
	trips {
 | 
			
		||||
		cpu_warm: cpu_warm {
 | 
			
		||||
			temperature = <55000>;
 | 
			
		||||
			hysteresis = <2000>;
 | 
			
		||||
			type = "active";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		cpu_hot: cpu_hot {
 | 
			
		||||
			temperature = <65000>;
 | 
			
		||||
			hysteresis = <2000>;
 | 
			
		||||
			type = "active";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cooling-maps {
 | 
			
		||||
		map2 {
 | 
			
		||||
			trip = <&cpu_warm>;
 | 
			
		||||
			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		map3 {
 | 
			
		||||
			trip = <&cpu_hot>;
 | 
			
		||||
			cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_sys>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	ir {
 | 
			
		||||
		ir_rx: ir-rx {
 | 
			
		||||
			/* external pullup to VCC3V3_SYS, despite being 1.8V :/ */
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	mmc-hs400-1_8v;
 | 
			
		||||
	mmc-hs400-enhanced-strobe;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_host0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_host0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc5v0_sys {
 | 
			
		||||
	vin-supply = <&vcc12v0_sys>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v3_sys {
 | 
			
		||||
	vin-supply = <&vcc12v0_sys>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vbus_typec {
 | 
			
		||||
	enable-active-high;
 | 
			
		||||
	gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
};
 | 
			
		||||
@ -10,57 +10,4 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-nanopi4.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "FriendlyElec NanoPi M4";
 | 
			
		||||
	compatible = "friendlyarm,nanopi-m4", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	vdd_5v: vdd-5v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_5v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_core: vcc5v0-core {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_core";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vdd_5v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb1: vcc5v0-usb1 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb1";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb2: vcc5v0-usb2 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb2";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v3_sys {
 | 
			
		||||
	vin-supply = <&vcc5v0_core>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb1>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb2>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vbus_typec {
 | 
			
		||||
	regulator-always-on;
 | 
			
		||||
	vin-supply = <&vdd_5v>;
 | 
			
		||||
};
 | 
			
		||||
#include "rk3399-nanopi-m4.dts"
 | 
			
		||||
 | 
			
		||||
@ -1,66 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * FriendlyElec NanoPi M4 board device tree source
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
 | 
			
		||||
 * (http://www.friendlyarm.com)
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2018 Collabora Ltd.
 | 
			
		||||
 * Copyright (c) 2019 Arm Ltd.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-nanopi4.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "FriendlyElec NanoPi M4";
 | 
			
		||||
	compatible = "friendlyarm,nanopi-m4", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	vdd_5v: vdd-5v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_5v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_core: vcc5v0-core {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_core";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vdd_5v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb1: vcc5v0-usb1 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb1";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb2: vcc5v0-usb2 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb2";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v3_sys {
 | 
			
		||||
	vin-supply = <&vcc5v0_core>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb1>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb2>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vbus_typec {
 | 
			
		||||
	regulator-always-on;
 | 
			
		||||
	vin-supply = <&vdd_5v>;
 | 
			
		||||
};
 | 
			
		||||
@ -1,52 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * FriendlyElec NanoPi M4B board device tree source
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2020 Chen-Yu Tsai <wens@csie.org>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-nanopi-m4.dts"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "FriendlyElec NanoPi M4B";
 | 
			
		||||
	compatible = "friendlyarm,nanopi-m4b", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	adc-keys {
 | 
			
		||||
		compatible = "adc-keys";
 | 
			
		||||
		io-channels = <&saradc 1>;
 | 
			
		||||
		io-channel-names = "buttons";
 | 
			
		||||
		keyup-threshold-microvolt = <1500000>;
 | 
			
		||||
		poll-interval = <100>;
 | 
			
		||||
 | 
			
		||||
		recovery {
 | 
			
		||||
			label = "Recovery";
 | 
			
		||||
			linux,code = <KEY_VENDOR>;
 | 
			
		||||
			press-threshold-microvolt = <18000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* No USB type-C PD power manager */
 | 
			
		||||
/delete-node/ &fusb0;
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb2>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_otg {
 | 
			
		||||
	phy-supply = <&vbus_typec>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb1>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vbus_typec {
 | 
			
		||||
	enable-active-high;
 | 
			
		||||
	gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
@ -1,50 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (C) 2019 Amarula Solutions B.V.
 | 
			
		||||
 * Author: Jagan Teki <jagan@amarulasolutions.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "rk3399-nanopi4.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "FriendlyARM NanoPi NEO4";
 | 
			
		||||
	compatible = "friendlyarm,nanopi-neo4", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	vdd_5v: vdd-5v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_5v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_core: vcc5v0-core {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_core";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vdd_5v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb1: vcc5v0-usb1 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb1";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v3_sys {
 | 
			
		||||
	vin-supply = <&vcc5v0_core>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb1>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vbus_typec {
 | 
			
		||||
	regulator-always-on;
 | 
			
		||||
	vin-supply = <&vdd_5v>;
 | 
			
		||||
};
 | 
			
		||||
@ -1,133 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * FriendlyElec NanoPC-T4 board device tree source
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2020 FriendlyElec Computer Tech. Co., Ltd.
 | 
			
		||||
 * (http://www.friendlyarm.com)
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2018 Collabora Ltd.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2020 Jensen Huang <jensenhuang@friendlyarm.com>
 | 
			
		||||
 * Copyright (c) 2020 Marty Jones <mj8263788@gmail.com>
 | 
			
		||||
 * Copyright (c) 2021 Tianling Shen <cnsztl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-nanopi4.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "FriendlyElec NanoPi R4S";
 | 
			
		||||
	compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	/delete-node/ display-subsystem;
 | 
			
		||||
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
 | 
			
		||||
 | 
			
		||||
		/delete-node/ led-0;
 | 
			
		||||
 | 
			
		||||
		lan_led: led-lan {
 | 
			
		||||
			gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			label = "green:lan";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sys_led: led-sys {
 | 
			
		||||
			gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			label = "red:power";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wan_led: led-wan {
 | 
			
		||||
			gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			label = "green:wan";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-keys {
 | 
			
		||||
		pinctrl-0 = <&reset_button_pin>;
 | 
			
		||||
 | 
			
		||||
		/delete-node/ power;
 | 
			
		||||
 | 
			
		||||
		reset {
 | 
			
		||||
			debounce-interval = <50>;
 | 
			
		||||
			gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "reset";
 | 
			
		||||
			linux,code = <KEY_RESTART>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_5v: vdd-5v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_5v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	max-link-speed = <1>;
 | 
			
		||||
	num-lanes = <1>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_sys>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		/delete-node/ status-led-pin;
 | 
			
		||||
 | 
			
		||||
		lan_led_pin: lan-led-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sys_led_pin: sys-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wan_led_pin: wan-led-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rockchip-key {
 | 
			
		||||
		/delete-node/ power-key;
 | 
			
		||||
 | 
			
		||||
		reset_button_pin: reset-button-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	phy-supply = <&vdd_5v>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_host {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v3_sys {
 | 
			
		||||
	vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
};
 | 
			
		||||
@ -5,12 +5,22 @@
 | 
			
		||||
 | 
			
		||||
#include "rk3399-u-boot.dtsi"
 | 
			
		||||
 | 
			
		||||
/{
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
&gpio0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_cd>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0_pwr_h {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v0_sd {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc_sdio {
 | 
			
		||||
	regulator-init-microvolt = <3000000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,761 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * RK3399-based FriendlyElec boards device tree source
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
 | 
			
		||||
 * (http://www.friendlyarm.com)
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2018 Collabora Ltd.
 | 
			
		||||
 * Copyright (c) 2019 Arm Ltd.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdio0;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
		mmc2 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		vin-supply = <&vdd_5v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* switched by pmic_sleep */
 | 
			
		||||
	vcc1v8_s3: vcc1v8-s3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		regulator-name = "vcc1v8_s3";
 | 
			
		||||
		vin-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v0_sd: vcc3v0-sd {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sdmmc0_pwr_h>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-min-microvolt = <3000000>;
 | 
			
		||||
		regulator-max-microvolt = <3000000>;
 | 
			
		||||
		regulator-name = "vcc3v0_sd";
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Really, this is supplied by vcc_1v8, and vcc1v8_s3 only
 | 
			
		||||
	 * drives the enable pin, but we can't quite model that.
 | 
			
		||||
	 */
 | 
			
		||||
	vcca0v9_s3: vcca0v9-s3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-min-microvolt = <900000>;
 | 
			
		||||
		regulator-max-microvolt = <900000>;
 | 
			
		||||
		regulator-name = "vcca0v9_s3";
 | 
			
		||||
		vin-supply = <&vcc1v8_s3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* As above, actually supplied by vcc3v3_sys */
 | 
			
		||||
	vcca1v8_s3: vcca1v8-s3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		regulator-name = "vcca1v8_s3";
 | 
			
		||||
		vin-supply = <&vcc1v8_s3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vbus_typec: vbus-typec {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		regulator-name = "vbus_typec";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		autorepeat;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&power_key>;
 | 
			
		||||
 | 
			
		||||
		power {
 | 
			
		||||
			debounce-interval = <100>;
 | 
			
		||||
			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "GPIO Key Power";
 | 
			
		||||
			linux,code = <KEY_POWER>;
 | 
			
		||||
			wakeup-source;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds: gpio-leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&status_led_pin>;
 | 
			
		||||
 | 
			
		||||
		status_led: led-0 {
 | 
			
		||||
			gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			label = "status_led";
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_reg_on_h>;
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>, <&phy_intb>, <&phy_rstb>;
 | 
			
		||||
	phy-handle = <&rtl8211e>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	phy-supply = <&vcc3v3_s3>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	mdio {
 | 
			
		||||
		compatible = "snps,dwmac-mdio";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		rtl8211e: ethernet-phy@1 {
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			interrupt-parent = <&gpio3>;
 | 
			
		||||
			interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
			reset-assert-us = <10000>;
 | 
			
		||||
			reset-deassert-us = <30000>;
 | 
			
		||||
			reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c7>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <160>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <30>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&cpu_b_sleep>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&gpu_sleep>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		clock-output-names = "xin32k", "rtc_clko_wifi";
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_3v0>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_cam: LDO_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcc1v8_cam";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v0_touch: LDO_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-name = "vcc3v0_touch";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_pmupll: LDO_REG3 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcc1v8_pmupll";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sdio: LDO_REG4 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-init-microvolt = <3000000>;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vcc_sdio";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca3v0_codec: LDO_REG5 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-name = "vcca3v0_codec";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_codec: LDO_REG7 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcca1v8_codec";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: SWITCH_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	clock-frequency = <200000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <150>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <30>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <160>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <30>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	fusb0: typec-portc@22 {
 | 
			
		||||
		compatible = "fcs,fusb302";
 | 
			
		||||
		reg = <0x22>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&fusb0_int>;
 | 
			
		||||
		vbus-supply = <&vbus_typec>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c7 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	bt656-supply = <&vcc_1v8>;
 | 
			
		||||
	audio-supply = <&vcca1v8_codec>;
 | 
			
		||||
	sdmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_PCIEPHY_REF100M>;
 | 
			
		||||
	assigned-clock-rates = <100000000>;
 | 
			
		||||
	assigned-clocks = <&cru SCLK_PCIEPHY_REF>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	num-lanes = <2>;
 | 
			
		||||
	vpcie0v9-supply = <&vcca0v9_s3>;
 | 
			
		||||
	vpcie1v8-supply = <&vcca1v8_s3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	fusb30x {
 | 
			
		||||
		fusb0_int: fusb0-int {
 | 
			
		||||
			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		status_led_pin: status-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac {
 | 
			
		||||
		phy_intb: phy-intb {
 | 
			
		||||
			rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		phy_rstb: phy-rstb {
 | 
			
		||||
			rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		cpu_b_sleep: cpu-b-sleep {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpu_sleep: gpu-sleep {
 | 
			
		||||
			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rockchip-key {
 | 
			
		||||
		power_key: power-key {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio {
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_reg_on_h: bt-reg-on-h {
 | 
			
		||||
			/* external pullup to VCC1V8_PMUPLL */
 | 
			
		||||
			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wifi_reg_on_h: wifi-reg_on-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdmmc {
 | 
			
		||||
		sdmmc0_det_l: sdmmc0-det-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdmmc0_pwr_h: sdmmc0-pwr-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmu1830-supply = <&vcc_3v0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	pinctrl-names = "active";
 | 
			
		||||
	pinctrl-0 = <&pwm2_pin_pull_down>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca1v8_s3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc0_det_l>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc3v0_sd>;
 | 
			
		||||
	vqmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	/* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	/* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm43438-bt";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		max-speed = <4000000>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>;
 | 
			
		||||
		vbat-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,141 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	cluster0_opp: opp-table0 {
 | 
			
		||||
		compatible = "operating-points-v2";
 | 
			
		||||
		opp-shared;
 | 
			
		||||
 | 
			
		||||
		opp00 {
 | 
			
		||||
			opp-hz = /bits/ 64 <408000000>;
 | 
			
		||||
			opp-microvolt = <800000>;
 | 
			
		||||
			clock-latency-ns = <40000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp01 {
 | 
			
		||||
			opp-hz = /bits/ 64 <600000000>;
 | 
			
		||||
			opp-microvolt = <825000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp02 {
 | 
			
		||||
			opp-hz = /bits/ 64 <816000000>;
 | 
			
		||||
			opp-microvolt = <850000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp03 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1008000000>;
 | 
			
		||||
			opp-microvolt = <900000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp04 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1200000000>;
 | 
			
		||||
			opp-microvolt = <975000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp05 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1416000000>;
 | 
			
		||||
			opp-microvolt = <1100000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp06 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1512000000>;
 | 
			
		||||
			opp-microvolt = <1150000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cluster1_opp: opp-table1 {
 | 
			
		||||
		compatible = "operating-points-v2";
 | 
			
		||||
		opp-shared;
 | 
			
		||||
 | 
			
		||||
		opp00 {
 | 
			
		||||
			opp-hz = /bits/ 64 <408000000>;
 | 
			
		||||
			opp-microvolt = <800000>;
 | 
			
		||||
			clock-latency-ns = <40000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp01 {
 | 
			
		||||
			opp-hz = /bits/ 64 <600000000>;
 | 
			
		||||
			opp-microvolt = <800000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp02 {
 | 
			
		||||
			opp-hz = /bits/ 64 <816000000>;
 | 
			
		||||
			opp-microvolt = <825000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp03 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1008000000>;
 | 
			
		||||
			opp-microvolt = <850000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp04 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1200000000>;
 | 
			
		||||
			opp-microvolt = <900000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp05 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1416000000>;
 | 
			
		||||
			opp-microvolt = <975000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp06 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1608000000>;
 | 
			
		||||
			opp-microvolt = <1050000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp07 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1800000000>;
 | 
			
		||||
			opp-microvolt = <1150000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp08 {
 | 
			
		||||
			opp-hz = /bits/ 64 <2016000000>;
 | 
			
		||||
			opp-microvolt = <1250000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpu_opp_table: opp-table2 {
 | 
			
		||||
		compatible = "operating-points-v2";
 | 
			
		||||
 | 
			
		||||
		opp00 {
 | 
			
		||||
			opp-hz = /bits/ 64 <200000000>;
 | 
			
		||||
			opp-microvolt = <800000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp01 {
 | 
			
		||||
			opp-hz = /bits/ 64 <297000000>;
 | 
			
		||||
			opp-microvolt = <800000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp02 {
 | 
			
		||||
			opp-hz = /bits/ 64 <400000000>;
 | 
			
		||||
			opp-microvolt = <825000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp03 {
 | 
			
		||||
			opp-hz = /bits/ 64 <500000000>;
 | 
			
		||||
			opp-microvolt = <850000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp04 {
 | 
			
		||||
			opp-hz = /bits/ 64 <600000000>;
 | 
			
		||||
			opp-microvolt = <925000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp05 {
 | 
			
		||||
			opp-hz = /bits/ 64 <800000000>;
 | 
			
		||||
			opp-microvolt = <1075000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	operating-points-v2 = <&cluster1_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	operating-points-v2 = <&cluster1_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	operating-points-v2 = <&gpu_opp_table>;
 | 
			
		||||
};
 | 
			
		||||
@ -1,133 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	cluster0_opp: opp-table0 {
 | 
			
		||||
		compatible = "operating-points-v2";
 | 
			
		||||
		opp-shared;
 | 
			
		||||
 | 
			
		||||
		opp00 {
 | 
			
		||||
			opp-hz = /bits/ 64 <408000000>;
 | 
			
		||||
			opp-microvolt = <825000 825000 1250000>;
 | 
			
		||||
			clock-latency-ns = <40000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp01 {
 | 
			
		||||
			opp-hz = /bits/ 64 <600000000>;
 | 
			
		||||
			opp-microvolt = <825000 825000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp02 {
 | 
			
		||||
			opp-hz = /bits/ 64 <816000000>;
 | 
			
		||||
			opp-microvolt = <850000 850000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp03 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1008000000>;
 | 
			
		||||
			opp-microvolt = <925000 925000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp04 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1200000000>;
 | 
			
		||||
			opp-microvolt = <1000000 1000000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp05 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1416000000>;
 | 
			
		||||
			opp-microvolt = <1125000 1125000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cluster1_opp: opp-table1 {
 | 
			
		||||
		compatible = "operating-points-v2";
 | 
			
		||||
		opp-shared;
 | 
			
		||||
 | 
			
		||||
		opp00 {
 | 
			
		||||
			opp-hz = /bits/ 64 <408000000>;
 | 
			
		||||
			opp-microvolt = <825000 825000 1250000>;
 | 
			
		||||
			clock-latency-ns = <40000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp01 {
 | 
			
		||||
			opp-hz = /bits/ 64 <600000000>;
 | 
			
		||||
			opp-microvolt = <825000 825000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp02 {
 | 
			
		||||
			opp-hz = /bits/ 64 <816000000>;
 | 
			
		||||
			opp-microvolt = <825000 825000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp03 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1008000000>;
 | 
			
		||||
			opp-microvolt = <875000 875000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp04 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1200000000>;
 | 
			
		||||
			opp-microvolt = <950000 950000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp05 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1416000000>;
 | 
			
		||||
			opp-microvolt = <1025000 1025000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp06 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1608000000>;
 | 
			
		||||
			opp-microvolt = <1100000 1100000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp07 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1800000000>;
 | 
			
		||||
			opp-microvolt = <1200000 1200000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpu_opp_table: opp-table2 {
 | 
			
		||||
		compatible = "operating-points-v2";
 | 
			
		||||
 | 
			
		||||
		opp00 {
 | 
			
		||||
			opp-hz = /bits/ 64 <200000000>;
 | 
			
		||||
			opp-microvolt = <825000 825000 1150000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp01 {
 | 
			
		||||
			opp-hz = /bits/ 64 <297000000>;
 | 
			
		||||
			opp-microvolt = <825000 825000 1150000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp02 {
 | 
			
		||||
			opp-hz = /bits/ 64 <400000000>;
 | 
			
		||||
			opp-microvolt = <825000 825000 1150000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp03 {
 | 
			
		||||
			opp-hz = /bits/ 64 <500000000>;
 | 
			
		||||
			opp-microvolt = <875000 875000 1150000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp04 {
 | 
			
		||||
			opp-hz = /bits/ 64 <600000000>;
 | 
			
		||||
			opp-microvolt = <925000 925000 1150000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp05 {
 | 
			
		||||
			opp-hz = /bits/ 64 <800000000>;
 | 
			
		||||
			opp-microvolt = <1100000 1100000 1150000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	operating-points-v2 = <&cluster1_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	operating-points-v2 = <&cluster1_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	operating-points-v2 = <&gpu_opp_table>;
 | 
			
		||||
};
 | 
			
		||||
@ -6,6 +6,18 @@
 | 
			
		||||
#include "rk3399-u-boot.dtsi"
 | 
			
		||||
#include "rk3399-sdram-ddr3-1333.dtsi"
 | 
			
		||||
 | 
			
		||||
&gpio0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0_pwr_h {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v0_sd {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vdd_log {
 | 
			
		||||
	regulator-init-microvolt = <950000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,894 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "dt-bindings/pwm/pwm.h"
 | 
			
		||||
#include "dt-bindings/input/input.h"
 | 
			
		||||
#include "dt-bindings/usb/pd.h"
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Orange Pi RK3399 Board";
 | 
			
		||||
	compatible = "rockchip,rk3399-orangepi", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdio0;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
		mmc2 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	adc-keys {
 | 
			
		||||
		compatible = "adc-keys";
 | 
			
		||||
		io-channels = <&saradc 1>;
 | 
			
		||||
		io-channel-names = "buttons";
 | 
			
		||||
		keyup-threshold-microvolt = <1800000>;
 | 
			
		||||
		poll-interval = <100>;
 | 
			
		||||
 | 
			
		||||
		button-up {
 | 
			
		||||
			label = "Volume Up";
 | 
			
		||||
			linux,code = <KEY_VOLUMEUP>;
 | 
			
		||||
			press-threshold-microvolt = <100000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-down {
 | 
			
		||||
			label = "Volume Down";
 | 
			
		||||
			linux,code = <KEY_VOLUMEDOWN>;
 | 
			
		||||
			press-threshold-microvolt = <300000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		back {
 | 
			
		||||
			label = "Back";
 | 
			
		||||
			linux,code = <KEY_BACK>;
 | 
			
		||||
			press-threshold-microvolt = <985000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		menu {
 | 
			
		||||
			label = "Menu";
 | 
			
		||||
			linux,code = <KEY_MENU>;
 | 
			
		||||
			press-threshold-microvolt = <1314000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc_12v: dc-12v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "dc_12v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	keys: gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		autorepeat;
 | 
			
		||||
 | 
			
		||||
		power {
 | 
			
		||||
			debounce-interval = <100>;
 | 
			
		||||
			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "GPIO Power";
 | 
			
		||||
			linux,code = <KEY_POWER>;
 | 
			
		||||
			linux,input-type = <1>;
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			pinctrl-0 = <&pwr_btn>;
 | 
			
		||||
			wakeup-source;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_reg_on_h>;
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* switched by pmic_sleep */
 | 
			
		||||
	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc1v8_s3";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v0_sd: vcc3v0-sd {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sdmmc0_pwr_h>;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-max-microvolt = <3000000>;
 | 
			
		||||
		regulator-min-microvolt = <3000000>;
 | 
			
		||||
		regulator-name = "vcc3v0_sd";
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_host: vcc5v0-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_host";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vbus_typec: vbus-typec-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_typec_en>;
 | 
			
		||||
		regulator-name = "vbus_typec";
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: vcc-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm2 0 25000 1>;
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1400000>;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc3v3_s3>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	phy-handle = <&rtl8211e>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>, <&phy_intb>, <&phy_rstb>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	mdio {
 | 
			
		||||
		compatible = "snps,dwmac-mdio";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		rtl8211e: ethernet-phy@1 {
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			interrupt-parent = <&gpio3>;
 | 
			
		||||
			interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
			reset-assert-us = <10000>;
 | 
			
		||||
			reset-deassert-us = <30000>;
 | 
			
		||||
			reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <168>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "rtc_clko_soc", "rtc_clko_wifi";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_3v0>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <700000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <700000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3400000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v0_tp: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v0_tp";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3400000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_pmupll: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcc1v8_pmupll";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <800000>;
 | 
			
		||||
				regulator-max-microvolt = <2500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sdio: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vcc_sdio";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3400000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca3v0_codec: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcca3v0_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3400000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <800000>;
 | 
			
		||||
				regulator-max-microvolt = <2500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_codec: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca1v8_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <800000>;
 | 
			
		||||
				regulator-max-microvolt = <2500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3400000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&cpu_b_sleep>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&gpu_sleep>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ak09911@c {
 | 
			
		||||
		compatible = "asahi-kasei,ak09911";
 | 
			
		||||
		reg = <0x0c>;
 | 
			
		||||
		vdd-supply = <&vcc3v3_s3>;
 | 
			
		||||
		vid-supply = <&vcc3v3_s3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	mpu6500@68 {
 | 
			
		||||
		compatible = "invensense,mpu6500";
 | 
			
		||||
		reg = <0x68>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PC6 IRQ_TYPE_EDGE_RISING>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&gsensor_int_l>;
 | 
			
		||||
		vddio-supply = <&vcc3v3_s3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	lsm6ds3@6a {
 | 
			
		||||
		compatible = "st,lsm6ds3";
 | 
			
		||||
		reg = <0x6a>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PD0 IRQ_TYPE_EDGE_RISING>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&gyr_int_l>;
 | 
			
		||||
		vdd-supply = <&vcc3v3_s3>;
 | 
			
		||||
		vddio-supply = <&vcc3v3_s3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cm32181@10 {
 | 
			
		||||
		compatible = "capella,cm32181";
 | 
			
		||||
		reg = <0x10>;
 | 
			
		||||
		interrupt-parent = <&gpio4>;
 | 
			
		||||
		interrupts = <RK_PD0 IRQ_TYPE_EDGE_RISING>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&light_int_l>;
 | 
			
		||||
		vdd-supply = <&vcc3v3_s3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fusb302@22 {
 | 
			
		||||
		compatible = "fcs,fusb302";
 | 
			
		||||
		reg = <0x22>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&chg_cc_int_l>;
 | 
			
		||||
		vbus-supply = <&vbus_typec>;
 | 
			
		||||
 | 
			
		||||
		typec_con: connector {
 | 
			
		||||
			compatible = "usb-c-connector";
 | 
			
		||||
			data-role = "host";
 | 
			
		||||
			label = "USB-C";
 | 
			
		||||
			op-sink-microwatt = <1000000>;
 | 
			
		||||
			power-role = "dual";
 | 
			
		||||
			sink-pdos =
 | 
			
		||||
				<PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
 | 
			
		||||
			source-pdos =
 | 
			
		||||
				<PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
 | 
			
		||||
			try-power-role = "sink";
 | 
			
		||||
 | 
			
		||||
			ports {
 | 
			
		||||
				#address-cells = <1>;
 | 
			
		||||
				#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
				port@0 {
 | 
			
		||||
					reg = <0>;
 | 
			
		||||
					typec_hs: endpoint {
 | 
			
		||||
						remote-endpoint = <&u2phy0_typec_hs>;
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
				port@1 {
 | 
			
		||||
					reg = <1>;
 | 
			
		||||
					typec_ss: endpoint {
 | 
			
		||||
						remote-endpoint = <&tcphy0_typec_ss>;
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
				port@2 {
 | 
			
		||||
					reg = <2>;
 | 
			
		||||
					typec_dp: endpoint {
 | 
			
		||||
						remote-endpoint = <&tcphy0_typec_dp>;
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	bt656-supply = <&vcc_3v0>;
 | 
			
		||||
	audio-supply = <&vcca1v8_codec>;
 | 
			
		||||
	sdmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pmu1830-supply = <&vcc_3v0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	buttons {
 | 
			
		||||
		pwr_btn: pwr-btn {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac {
 | 
			
		||||
		phy_intb: phy-intb {
 | 
			
		||||
			rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		phy_rstb: phy-rstb {
 | 
			
		||||
			rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		cpu_b_sleep: cpu-b-sleep {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpu_sleep: gpu-sleep {
 | 
			
		||||
			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sd {
 | 
			
		||||
		sdmmc0_pwr_h: sdmmc0-pwr-h {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host_en: vcc5v0-host-en {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vcc5v0_typec_en: vcc5v0-typec-en {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_reg_on_h: wifi-reg-on-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi {
 | 
			
		||||
		wifi_host_wake_l: wifi-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		bt_reg_on_h: bt-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	mpu6500 {
 | 
			
		||||
		gsensor_int_l: gsensor-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	lsm6ds3 {
 | 
			
		||||
		gyr_int_l: gyr-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cm32181 {
 | 
			
		||||
		light_int_l: light-int-l {
 | 
			
		||||
			rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fusb302 {
 | 
			
		||||
		chg_cc_int_l: chg-cc-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca1v8_s3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs400-1_8v;
 | 
			
		||||
	mmc-hs400-enhanced-strobe;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	clock-frequency = <50000000>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	max-frequency = <50000000>;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	brcmf: wifi@1 {
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
		compatible = "brcm,bcm4329-fmac";
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		interrupt-names = "host-wake";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_host_wake_l>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	clock-frequency = <150000000>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
 | 
			
		||||
	vmmc-supply = <&vcc3v0_sd>;
 | 
			
		||||
	vqmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0_dp {
 | 
			
		||||
	port {
 | 
			
		||||
		tcphy0_typec_dp: endpoint {
 | 
			
		||||
			remote-endpoint = <&typec_dp>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0_usb3 {
 | 
			
		||||
	port {
 | 
			
		||||
		tcphy0_typec_ss: endpoint {
 | 
			
		||||
			remote-endpoint = <&typec_ss>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy0_otg: otg-port {
 | 
			
		||||
		phy-supply = <&vbus_typec>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy0_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	port {
 | 
			
		||||
		u2phy0_typec_hs: endpoint {
 | 
			
		||||
			remote-endpoint = <&typec_hs>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm43438-bt";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_reg_on_h>;
 | 
			
		||||
		vbat-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -6,28 +6,33 @@
 | 
			
		||||
#include "rk3399-u-boot.dtsi"
 | 
			
		||||
#include "rk3399-sdram-lpddr4-100.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &spiflash, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&edp {
 | 
			
		||||
	rockchip,panel = <&edp_panel>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	max-frequency = <25000000>;
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	max-frequency = <20000000>;
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0_pwr_h_pin {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spiflash {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v0_sd {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vdd_log {
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -6,22 +6,22 @@
 | 
			
		||||
#include "rk3399-u-boot.dtsi"
 | 
			
		||||
#include "rk3399-sdram-lpddr4-100.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&rng {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	max-frequency = <25000000>;
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	max-frequency = <20000000>;
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		bootph-pre-ram;
 | 
			
		||||
		bootph-some-ram;
 | 
			
		||||
		spi-max-frequency = <10000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,474 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2020 Martijn Braam <martijn@brixit.nl>
 | 
			
		||||
 * Copyright (c) 2021 Kamil Trzciński <ayufan@ayufan.eu>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * PinePhone Pro datasheet:
 | 
			
		||||
 * https://files.pine64.org/doc/PinePhonePro/PinephonePro-Schematic-V1.0-20211127.pdf
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Pine64 PinePhonePro";
 | 
			
		||||
	compatible = "pine64,pinephone-pro", "rockchip,rk3399";
 | 
			
		||||
	chassis-type = "handset";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdio0;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
		mmc2 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:115200n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pwrbtn_pin>;
 | 
			
		||||
 | 
			
		||||
		key-power {
 | 
			
		||||
			debounce-interval = <20>;
 | 
			
		||||
			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "Power";
 | 
			
		||||
			linux,code = <KEY_POWER>;
 | 
			
		||||
			wakeup-source;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: vcc-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcca1v8_s3: vcc1v8-s3-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcca1v8_s3";
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc1v8_codec: vcc1v8-codec-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc1v8_codec_en>;
 | 
			
		||||
		regulator-name = "vcc1v8_codec";
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi_pwrseq: sdio-wifi-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk818 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h_pin>;
 | 
			
		||||
		/*
 | 
			
		||||
		 * Wait between power-on and SDIO access for CYP43455
 | 
			
		||||
		 * POR circuit.
 | 
			
		||||
		 */
 | 
			
		||||
		post-power-on-delay-ms = <110>;
 | 
			
		||||
		/*
 | 
			
		||||
		 * Wait between consecutive toggles for CYP43455 CBUCK
 | 
			
		||||
		 * regulator discharge.
 | 
			
		||||
		 */
 | 
			
		||||
		power-off-delay-us = <10000>;
 | 
			
		||||
 | 
			
		||||
		/* WL_REG_ON on module */
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <168>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk818: pmic@1c {
 | 
			
		||||
		compatible = "rockchip,rk818";
 | 
			
		||||
		reg = <0x1c>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_cpu_l: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <875000>;
 | 
			
		||||
				regulator-max-microvolt = <975000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_center: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <800000>;
 | 
			
		||||
				regulator-max-microvolt = <1000000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca3v0_codec: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcca3v0_codec";
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v0_touch: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v0_touch";
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_codec: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcca1v8_codec";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			rk818_pwr_on: LDO_REG4 {
 | 
			
		||||
				regulator-name = "rk818_pwr_on";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG9 {
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG {
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel1_pin>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <875000>;
 | 
			
		||||
		regulator-max-microvolt = <1150000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel2_pin>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <875000>;
 | 
			
		||||
		regulator-max-microvolt = <975000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cluster0_opp {
 | 
			
		||||
	opp04 {
 | 
			
		||||
		status = "disabled";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	opp05 {
 | 
			
		||||
		status = "disabled";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cluster1_opp {
 | 
			
		||||
	opp06 {
 | 
			
		||||
		opp-hz = /bits/ 64 <1500000000>;
 | 
			
		||||
		opp-microvolt = <1100000 1100000 1150000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	opp07 {
 | 
			
		||||
		status = "disabled";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	bt656-supply = <&vcc1v8_dvp>;
 | 
			
		||||
	audio-supply = <&vcca1v8_codec>;
 | 
			
		||||
	sdmmc-supply = <&vccio_sd>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmu1830-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	buttons {
 | 
			
		||||
		pwrbtn_pin: pwrbtn-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel1_pin: vsel1-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel2_pin: vsel2-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h_pin: wifi-enable-h-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sound {
 | 
			
		||||
		vcc1v8_codec_en: vcc1v8-codec-en {
 | 
			
		||||
			rockchip,pins = <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wireless-bluetooth {
 | 
			
		||||
		bt_wake_pin: bt-wake-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_pin: bt-host-wake-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_reset_pin: bt-reset-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&wifi_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
 | 
			
		||||
	vmmc-supply = <&vcc3v3_sys>;
 | 
			
		||||
	vqmmc-supply = <&vccio_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
	uart-has-rtscts;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm4345c5";
 | 
			
		||||
		clocks = <&rk818 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		max-speed = <1500000>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_pin &bt_wake_pin &bt_reset_pin>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		vbat-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -30,18 +30,6 @@
 | 
			
		||||
	aliases {
 | 
			
		||||
		spi5 = &spi5;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm2 0 25000 1>;
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1400000>;
 | 
			
		||||
		regulator-init-microvolt = <950000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&binman {
 | 
			
		||||
@ -88,25 +76,30 @@
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&norflash {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_none {
 | 
			
		||||
&uart0 {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
	clock-frequency = <24000000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_up {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
&uart0_cts {
 | 
			
		||||
	bootph-pre-sram;
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc_bus4 {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
&uart0_rts {
 | 
			
		||||
	bootph-pre-sram;
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc_clk {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
&uart0_xfer {
 | 
			
		||||
	bootph-pre-sram;
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc_cmd {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
&vdd_log {
 | 
			
		||||
	regulator-init-microvolt = <950000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,276 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-puma.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Theobroma Systems RK3399-Q7 SoM";
 | 
			
		||||
	compatible = "tsd,rk3399-puma-haikou", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial0:115200n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		pinctrl-0 = <&module_led_pin>, <&sd_card_led_pin>;
 | 
			
		||||
 | 
			
		||||
		sd_card_led: led-1 {
 | 
			
		||||
			label = "sd_card_led";
 | 
			
		||||
			gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			linux,default-trigger = "mmc0";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	i2s0-sound {
 | 
			
		||||
		compatible = "simple-audio-card";
 | 
			
		||||
		simple-audio-card,format = "i2s";
 | 
			
		||||
		simple-audio-card,name = "Haikou,I2S-codec";
 | 
			
		||||
		simple-audio-card,mclk-fs = <512>;
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,codec {
 | 
			
		||||
			clocks = <&sgtl5000_clk>;
 | 
			
		||||
			sound-dai = <&sgtl5000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,cpu {
 | 
			
		||||
			bitclock-master;
 | 
			
		||||
			frame-master;
 | 
			
		||||
			sound-dai = <&i2s0>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sgtl5000_clk: sgtl5000-oscillator  {
 | 
			
		||||
			compatible = "fixed-clock";
 | 
			
		||||
			#clock-cells = <0>;
 | 
			
		||||
			clock-frequency = <24576000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc_12v: dc-12v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "dc_12v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_baseboard: vcc3v3-baseboard {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_baseboard";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_baseboard: vcc5v0-baseboard {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_baseboard";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_otg: vcc5v0-otg-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&otg_vbus_drv>;
 | 
			
		||||
		regulator-name = "vcc5v0_otg";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdda_codec: vdda-codec {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdda_codec";
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_baseboard>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vddd_codec: vddd-codec {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vddd_codec";
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1600000>;
 | 
			
		||||
		regulator-max-microvolt = <1600000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_baseboard>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	sgtl5000: codec@a {
 | 
			
		||||
		compatible = "fsl,sgtl5000";
 | 
			
		||||
		reg = <0x0a>;
 | 
			
		||||
		clocks = <&sgtl5000_clk>;
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
		VDDA-supply = <&vdda_codec>;
 | 
			
		||||
		VDDIO-supply = <&vdda_codec>;
 | 
			
		||||
		VDDD-supply = <&vddd_codec>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c6 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_clkreqn_cpm>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&haikou_pin_hog>;
 | 
			
		||||
 | 
			
		||||
	hog {
 | 
			
		||||
		haikou_pin_hog: haikou-pin-hog {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
			  /* LID_BTN */
 | 
			
		||||
			  <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
			  /* BATLOW# */
 | 
			
		||||
			  <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
			  /* SLP_BTN# */
 | 
			
		||||
			  <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
			  /* BIOS_DISABLE# */
 | 
			
		||||
			  <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		sd_card_led_pin: sd-card-led-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
			  <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		otg_vbus_drv: otg-vbus-drv {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
			  <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <40000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
 | 
			
		||||
	vmmc-supply = <&vcc3v3_baseboard>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi5 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	dr_mode = "otg";
 | 
			
		||||
	extcon = <&extcon_usb3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_otg>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,517 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/pwm/pwm.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&module_led_pin>;
 | 
			
		||||
 | 
			
		||||
		module_led: led-0 {
 | 
			
		||||
			label = "module_led";
 | 
			
		||||
			gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			panic-indicator;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	extcon_usb3: extcon-usb3 {
 | 
			
		||||
		compatible = "linux,extcon-usb-gpio";
 | 
			
		||||
		id-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&usb3_id>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc1v2_phy: vcc1v2-phy {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc1v2_phy";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1200000>;
 | 
			
		||||
		regulator-max-microvolt = <1200000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_host: vcc5v0-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_host";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm2 0 25000 1>;
 | 
			
		||||
		pwm-supply = <&vcc5v0_sys>;
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1400000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	drive-impedance-ohm = <33>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc1v2_phy>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x10>;
 | 
			
		||||
	rx_delay = <0x10>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	i2c-scl-rising-time-ns = <168>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <4>;
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc1v8_pmu>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ldo1: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc_ldo1";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_hdmi: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc1v8_hdmi";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcc1v8_pmu";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sd: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vcc_sd";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ldo5: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcc_ldo5";
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ldo6: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_ldo6";
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc0v9_hdmi: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcc0v9_hdmi";
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_efuse: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_efuse";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@60 {
 | 
			
		||||
		compatible = "fcs,fan53555";
 | 
			
		||||
		reg = <0x60>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <600000>;
 | 
			
		||||
		regulator-max-microvolt = <1230000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c7 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	fan: fan@18 {
 | 
			
		||||
		compatible = "ti,amc6821";
 | 
			
		||||
		reg = <0x18>;
 | 
			
		||||
		#cooling-cells = <2>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rtc_twi: rtc@6f {
 | 
			
		||||
		compatible = "isil,isl1208";
 | 
			
		||||
		reg = <0x6f>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c8 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@60 {
 | 
			
		||||
		compatible = "fcs,fan53555";
 | 
			
		||||
		reg = <0x60>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <600000>;
 | 
			
		||||
		regulator-max-microvolt = <1230000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0 {
 | 
			
		||||
	pinctrl-0 = <&i2s0_2ch_bus>;
 | 
			
		||||
	rockchip,playback-channels = <2>;
 | 
			
		||||
	rockchip,capture-channels = <2>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * As Q7 does not specify neither a global nor a RX clock for I2S these
 | 
			
		||||
 * signals are not used. Furthermore I2S0_LRCK_RX is used as GPIO.
 | 
			
		||||
 * Therefore we have to redefine the i2s0_2ch_bus definition to prevent
 | 
			
		||||
 * conflicts.
 | 
			
		||||
 */
 | 
			
		||||
&i2s0_2ch_bus {
 | 
			
		||||
	rockchip,pins =
 | 
			
		||||
		<3 RK_PD0 1 &pcfg_pull_none>,
 | 
			
		||||
		<3 RK_PD2 1 &pcfg_pull_none>,
 | 
			
		||||
		<3 RK_PD3 1 &pcfg_pull_none>,
 | 
			
		||||
		<3 RK_PD7 1 &pcfg_pull_none>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	bt656-supply = <&vcc_1v8>;
 | 
			
		||||
	audio-supply = <&vcc_1v8>;
 | 
			
		||||
	sdmmc-supply = <&vcc_sd>;
 | 
			
		||||
	gpio1830-supply = <&vcc_1v8>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pmu1830-supply = <&vcc_1v8>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	i2c8 {
 | 
			
		||||
		i2c8_xfer_a: i2c8-xfer {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
			  <1 RK_PC4 1 &pcfg_pull_up>,
 | 
			
		||||
			  <1 RK_PC5 1 &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		module_led_pin: module-led-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
			  <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
			  <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host_en: vcc5v0-host-en {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
			  <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb3 {
 | 
			
		||||
		usb3_id: usb3-id {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
			  <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	/*
 | 
			
		||||
	 * Signal integrity isn't great at 200MHz but 100MHz has proven stable
 | 
			
		||||
	 * enough.
 | 
			
		||||
	 */
 | 
			
		||||
	max-frequency = <100000000>;
 | 
			
		||||
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs400-1_8v;
 | 
			
		||||
	mmc-hs400-enhanced-strobe;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	vqmmc-supply = <&vcc_sd>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	norflash: flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		spi-max-frequency = <50000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,111 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd
 | 
			
		||||
 * Copyright (c) 2019 Markus Reichl <m.reichl@fivetechno.de>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-roc-pc.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Firefly ROC-RK3399-PC Mezzanine Board";
 | 
			
		||||
	compatible = "firefly,roc-rk3399-pc-mezzanine", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc2 = &sdio0;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* MP8009 PoE PD */
 | 
			
		||||
	poe_12v: poe-12v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "poe_12v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_ngff: vcc3v3-ngff {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_ngff";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc3v3_ngff_en>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&sys_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_pcie: vcc3v3-pcie {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_pcie";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc3v3_pcie_en>;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&sys_12v>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sys_12v {
 | 
			
		||||
	vin-supply = <&poe_12v>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_perst>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie>;
 | 
			
		||||
	vpcie1v8-supply = <&vcc1v8_pmu>;
 | 
			
		||||
	vpcie0v9-supply = <&vcca_0v9>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	ngff {
 | 
			
		||||
		vcc3v3_ngff_en: vcc3v3-ngff-en {
 | 
			
		||||
			rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		vcc3v3_pcie_en: vcc3v3-pcie-en {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pcie_perst: pcie-perst {
 | 
			
		||||
			rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc3v3_ngff>;
 | 
			
		||||
	vqmmc-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -7,10 +7,6 @@
 | 
			
		||||
#include "rk3399-sdram-lpddr4-100.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &spi_flash, &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_hub_en: vcc_hub_en-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
@ -36,25 +32,38 @@
 | 
			
		||||
	vin-supply = <&vcc_vbus_typec0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio4 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	spi_flash: flash@0 {
 | 
			
		||||
		bootph-all;
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		bootph-pre-ram;
 | 
			
		||||
		bootph-some-ram;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vdd_log {
 | 
			
		||||
	regulator-min-microvolt = <430000>;
 | 
			
		||||
	regulator-init-microvolt = <950000>;
 | 
			
		||||
&vcc3v0_sd {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v0_sd_en {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc5v0_host {
 | 
			
		||||
	regulator-always-on;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc_sdio {
 | 
			
		||||
	regulator-always-on;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc_sys {
 | 
			
		||||
	regulator-always-on;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc_sdio {
 | 
			
		||||
	regulator-always-on;
 | 
			
		||||
&vdd_log {
 | 
			
		||||
	regulator-min-microvolt = <430000>;
 | 
			
		||||
	regulator-init-microvolt = <950000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-roc-pc.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Firefly ROC-RK3399-PC Board";
 | 
			
		||||
	compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
 | 
			
		||||
};
 | 
			
		||||
@ -1,843 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
#include <dt-bindings/pwm/pwm.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Firefly ROC-RK3399-PC Board";
 | 
			
		||||
	compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdmmc;
 | 
			
		||||
		mmc1 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	backlight: backlight {
 | 
			
		||||
		compatible = "pwm-backlight";
 | 
			
		||||
		pwms = <&pwm0 0 25000 0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	adc-keys {
 | 
			
		||||
		compatible = "adc-keys";
 | 
			
		||||
		io-channels = <&saradc 1>;
 | 
			
		||||
		io-channel-names = "buttons";
 | 
			
		||||
		keyup-threshold-microvolt = <1500000>;
 | 
			
		||||
		poll-interval = <100>;
 | 
			
		||||
 | 
			
		||||
		recovery {
 | 
			
		||||
			label = "Recovery";
 | 
			
		||||
			linux,code = <KEY_VENDOR>;
 | 
			
		||||
			press-threshold-microvolt = <18000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		autorepeat;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pwr_key_l>;
 | 
			
		||||
 | 
			
		||||
		power {
 | 
			
		||||
			debounce-interval = <100>;
 | 
			
		||||
			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "GPIO Key Power";
 | 
			
		||||
			linux,code = <KEY_POWER>;
 | 
			
		||||
			wakeup-source;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir-receiver {
 | 
			
		||||
		compatible = "gpio-ir-receiver";
 | 
			
		||||
		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&ir_int>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&work_led_pin>, <&diy_led_pin>, <&yellow_led_pin>;
 | 
			
		||||
 | 
			
		||||
		work_led: led-0 {
 | 
			
		||||
			label = "green:work";
 | 
			
		||||
			gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		diy_led: led-1 {
 | 
			
		||||
			label = "red:diy";
 | 
			
		||||
			gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			linux,default-trigger = "mmc2";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		yellow_led: led-2 {
 | 
			
		||||
			label = "yellow:yellow-led";
 | 
			
		||||
			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			linux,default-trigger = "mmc1";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * On the module itself this is one of these (depending
 | 
			
		||||
		 * on the actual card populated):
 | 
			
		||||
		 * - SDIO_RESET_L_WL_REG_ON
 | 
			
		||||
		 * - PDN (power down when low)
 | 
			
		||||
		 */
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_vbus_typec0: vcc-vbus-typec0 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_vbus_typec0";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sys_12v: sys-12v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "sys_12v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* switched by pmic_sleep */
 | 
			
		||||
	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc1v8_s3";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v0_sd: vcc3v0-sd {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PD6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc3v0_sd_en>;
 | 
			
		||||
		regulator-name = "vcc3v0_sd";
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3000000>;
 | 
			
		||||
		regulator-max-microvolt = <3000000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&sys_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcca_0v9: vcca-0v9 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcca_0v9";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <900000>;
 | 
			
		||||
		regulator-max-microvolt = <900000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
 | 
			
		||||
	vcc5v0_host: vcc5v0-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host_en &hub_rst>;
 | 
			
		||||
		regulator-name = "vcc5v0_host";
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_vbus_typec1: vcc-vbus-typec1 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc_vbus_typec1_en>;
 | 
			
		||||
		regulator-name = "vcc_vbus_typec1";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: vcc-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio2 RK_PA6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc_sys_en>;
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&sys_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm2 0 25000 1>;
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <450000>;
 | 
			
		||||
		regulator-max-microvolt = <1400000>;
 | 
			
		||||
		pwm-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc_lan>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <168>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc13-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc14-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_3v0>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_codec: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcca1v8_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_hdmi: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc1v8_hdmi";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcc1v8_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sdio: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vcc_sdio";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca3v0_codec: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcca3v0_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca0v9_hdmi: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca0v9_hdmi";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: vcc_lan: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel1_pin>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel2_pin>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <600>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <20>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	fusb1: usb-typec@22 {
 | 
			
		||||
		compatible = "fcs,fusb302";
 | 
			
		||||
		reg = <0x22>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&fusb1_int>;
 | 
			
		||||
		vbus-supply = <&vcc_vbus_typec1>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c7 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <600>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <20>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	fusb0: usb-typec@22 {
 | 
			
		||||
		compatible = "fcs,fusb302";
 | 
			
		||||
		reg = <0x22>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&fusb0_int>;
 | 
			
		||||
		vbus-supply = <&vcc_vbus_typec0>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	mp8859: regulator@66 {
 | 
			
		||||
		compatible = "mps,mp8859";
 | 
			
		||||
		reg = <0x66>;
 | 
			
		||||
		dc_12v: mp8859_dcdc {
 | 
			
		||||
			regulator-name = "dc_12v";
 | 
			
		||||
			regulator-min-microvolt = <12000000>;
 | 
			
		||||
			regulator-max-microvolt = <12000000>;
 | 
			
		||||
			regulator-always-on;
 | 
			
		||||
			regulator-boot-on;
 | 
			
		||||
			vin-supply = <&vcc_vbus_typec0>;
 | 
			
		||||
 | 
			
		||||
			regulator-state-mem {
 | 
			
		||||
				regulator-on-in-suspend;
 | 
			
		||||
				regulator-suspend-microvolt = <12000000>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0 {
 | 
			
		||||
	rockchip,playback-channels = <8>;
 | 
			
		||||
	rockchip,capture-channels = <8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1 {
 | 
			
		||||
	rockchip,playback-channels = <2>;
 | 
			
		||||
	rockchip,capture-channels = <2>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	audio-supply = <&vcca1v8_codec>;
 | 
			
		||||
	bt656-supply = <&vcc_3v0>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>;
 | 
			
		||||
	sdmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmu1830-supply = <&vcc_3v0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	buttons {
 | 
			
		||||
		pwr_key_l: pwr-key-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir {
 | 
			
		||||
		ir_int: ir-int {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	lcd-panel {
 | 
			
		||||
		lcd_panel_reset: lcd-panel-reset {
 | 
			
		||||
			rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		diy_led_pin: diy-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		work_led_pin: work-led-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		yellow_led_pin: yellow-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		vsel1_pin: vsel1-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel2_pin: vsel2-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdmmc {
 | 
			
		||||
		vcc3v0_sd_en: vcc3v0-sd-en {
 | 
			
		||||
			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host_en: vcc5v0-host-en {
 | 
			
		||||
			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vcc_sys_en: vcc-sys-en {
 | 
			
		||||
			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		hub_rst: hub-rst {
 | 
			
		||||
			rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_output_high>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb-typec {
 | 
			
		||||
		vcc_vbus_typec1_en: vcc-vbus-typec1-en {
 | 
			
		||||
			rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fusb30x {
 | 
			
		||||
		fusb0_int: fusb0-int {
 | 
			
		||||
			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		fusb1_int: fusb1-int {
 | 
			
		||||
			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca1v8_s3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc3v0_sd>;
 | 
			
		||||
	vqmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		spi-max-frequency = <10000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	/* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	/* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy0_otg: otg-port {
 | 
			
		||||
		phy-supply = <&vcc_vbus_typec0>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy0_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_otg: otg-port {
 | 
			
		||||
		phy-supply = <&vcc_vbus_typec1>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -3,3 +3,25 @@
 | 
			
		||||
 * Copyright (c) 2023 Radxa Limited
 | 
			
		||||
 */
 | 
			
		||||
#include "rk3399-rock-pi-4-u-boot.dtsi"
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_none_18ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_up_8ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		bootph-pre-ram;
 | 
			
		||||
		bootph-some-ram;
 | 
			
		||||
		spi-max-frequency = <10000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,708 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 * Copyright (c) 2019 Radxa Limited
 | 
			
		||||
 * Copyright (c) 2022 Amarula Solutions(India)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/leds/common.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-t-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Radxa ROCK 4C+";
 | 
			
		||||
	compatible = "radxa,rock-4c-plus", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdhci;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&user_led1 &user_led2>;
 | 
			
		||||
 | 
			
		||||
		/* USER_LED1 */
 | 
			
		||||
		led-0 {
 | 
			
		||||
			function = LED_FUNCTION_POWER;
 | 
			
		||||
			color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
			gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,default-trigger = "default-on";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		/* USER_LED2 */
 | 
			
		||||
		led-1 {
 | 
			
		||||
			function = LED_FUNCTION_STATUS;
 | 
			
		||||
			color = <LED_COLOR_ID_BLUE>;
 | 
			
		||||
			gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk809 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_3v3: vcc-3v3-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_3v3";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_phy1: vcc3v3-phy1-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_phy1";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_3v3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_host1: vcc5v0-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_host1";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_host0_s0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_typec: vcc5v0-typec-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_typec0_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_typec";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <950000>;
 | 
			
		||||
		regulator-max-microvolt = <950000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc3v3_phy1>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x2a>;
 | 
			
		||||
	rx_delay = <0x21>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	avdd-0v9-supply = <&vcc_0v9_s0>;
 | 
			
		||||
	avdd-1v8-supply = <&vcc_1v8_s0>;
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	i2c-scl-falling-time-ns = <30>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <180>;
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
 | 
			
		||||
	rk809: pmic@20 {
 | 
			
		||||
		compatible = "rockchip,rk809";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "rk808-clkout1", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc_buck5_s3>;
 | 
			
		||||
		vcc6-supply = <&vcc_buck5_s3>;
 | 
			
		||||
		vcc7-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_sys: DCDC_REG4 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vcc3v3_sys";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_buck5_s3: DCDC_REG5 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vcc_buck5_s3";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_0v9_s3: LDO_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-name = "vcc_0v9_s3";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8_s3: LDO_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcc_1v8_s3";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_0v9_s0: LDO_REG3 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-name = "vcc_0v9_s0";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8_s0: LDO_REG4 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcc_1v8_s0";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_mipi: LDO_REG5 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-name = "vcc_mipi";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5_s0: LDO_REG6 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-name = "vcc_1v5_s0";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0_s0: LDO_REG7 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-name = "vcc_3v0_s0";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sdio_s0: LDO_REG8 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vcc_sdio_s0";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_cam: LDO_REG9 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vcc_cam";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc5v0_host0_s0: SWITCH_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-name = "vcc5v0_host0_s0";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			lcd_3v3: SWITCH_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-name = "lcd_3v3";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-compatible = "fan53555-reg";
 | 
			
		||||
		pinctrl-0 = <&vsel1_gpio>;
 | 
			
		||||
		vsel-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-compatible = "fan53555-reg";
 | 
			
		||||
		pinctrl-0 = <&vsel2_gpio>;
 | 
			
		||||
		vsel-gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
		regulator-initial-mode = <1>; /* 1:force PWM 2:auto */
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	audio-supply = <&vcc_1v8_s0>;
 | 
			
		||||
	bt656-supply = <&vcc_3v0_s0>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0_s0>;
 | 
			
		||||
	sdmmc-supply = <&vcc_sdio_s0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bt {
 | 
			
		||||
		bt_enable_h: bt-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		user_led1: user-led1 {
 | 
			
		||||
			rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led2: user-led2 {
 | 
			
		||||
			rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel1_gpio: vsel1-gpio {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel2_gpio: vsel2-gpio {
 | 
			
		||||
			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdmmc {
 | 
			
		||||
		sdmmc_bus4: sdmmc-bus4 {
 | 
			
		||||
			rockchip,pins = <4 8 1 &pcfg_pull_up_8ma>,
 | 
			
		||||
					<4 9 1 &pcfg_pull_up_8ma>,
 | 
			
		||||
					<4 10 1 &pcfg_pull_up_8ma>,
 | 
			
		||||
					<4 11 1 &pcfg_pull_up_8ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdmmc_clk: sdmmc-clk {
 | 
			
		||||
			rockchip,pins = <4 12 1 &pcfg_pull_none_18ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdmmc_cmd: sdmmc-cmd {
 | 
			
		||||
			rockchip,pins = <4 13 1 &pcfg_pull_up_8ma>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb-typec {
 | 
			
		||||
		vcc5v0_typec0_en: vcc5v0-typec-en {
 | 
			
		||||
			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host_en: vcc5v0-host-en {
 | 
			
		||||
			rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wifi_host_wake_l: wifi-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmu1830-supply = <&vcc_3v0_s0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	vref-supply = <&vcc_1v8_s3>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	clock-frequency = <50000000>;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	brcmf: wifi@1 {
 | 
			
		||||
		compatible = "brcm,bcm4329-fmac";
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		interrupt-names = "host-wake";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_host_wake_l>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	card-detect-delay = <800>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	vqmmc-supply = <&vcc_sdio_s0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy0_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy0_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host1>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host1>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm4345c5";
 | 
			
		||||
		clocks = <&rk809 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		max-speed = <1500000>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
 | 
			
		||||
		vbat-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8_s3>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	extcon = <&u2phy0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -4,3 +4,15 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "rk3399-rock-pi-4-u-boot.dtsi"
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		bootph-pre-ram;
 | 
			
		||||
		bootph-some-ram;
 | 
			
		||||
		spi-max-frequency = <10000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,65 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Akash Gajjar <Akash_Gajjar@mentor.com>
 | 
			
		||||
 * Copyright (c) 2019 Pragnesh Patel <Pragnesh_Patel@mentor.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-rock-pi-4.dtsi"
 | 
			
		||||
#include "rk3399-t-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Radxa ROCK 4SE";
 | 
			
		||||
	compatible = "radxa,rock-4se", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc2 = &sdio0;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host_en: vcc5v0-host-en {
 | 
			
		||||
			rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	brcmf: wifi@1 {
 | 
			
		||||
		compatible = "brcm,bcm4329-fmac";
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		interrupt-names = "host-wake";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_host_wake_l>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm4345c5";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		max-speed = <1500000>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
 | 
			
		||||
		vbat-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc5v0_host {
 | 
			
		||||
	enable-active-high;
 | 
			
		||||
	gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&vcc5v0_host_en>;
 | 
			
		||||
};
 | 
			
		||||
@ -6,12 +6,6 @@
 | 
			
		||||
#include "rk3399-u-boot.dtsi"
 | 
			
		||||
#include "rk3399-sdram-lpddr4-100.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	mmc-ddr-1_8v;
 | 
			
		||||
 | 
			
		||||
@ -1,790 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Akash Gajjar <Akash_Gajjar@mentor.com>
 | 
			
		||||
 * Copyright (c) 2019 Pragnesh Patel <Pragnesh_Patel@mentor.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
#include <dt-bindings/leds/common.h>
 | 
			
		||||
#include <dt-bindings/pwm/pwm.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdhci;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&user_led2>;
 | 
			
		||||
 | 
			
		||||
		/* USER_LED2 */
 | 
			
		||||
		led-0 {
 | 
			
		||||
			function = LED_FUNCTION_STATUS;
 | 
			
		||||
			color = <LED_COLOR_ID_BLUE>;
 | 
			
		||||
			gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sound: sound {
 | 
			
		||||
		compatible = "audio-graph-card";
 | 
			
		||||
		label = "Analog";
 | 
			
		||||
		dais = <&i2s0_p0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sound-dit {
 | 
			
		||||
		compatible = "audio-graph-card";
 | 
			
		||||
		label = "SPDIF";
 | 
			
		||||
		dais = <&spdif_p0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	spdif-dit {
 | 
			
		||||
		compatible = "linux,spdif-dit";
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			dit_p0_0: endpoint {
 | 
			
		||||
				remote-endpoint = <&spdif_p0_0>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vbus_typec: vbus-typec-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_typec_en>;
 | 
			
		||||
		regulator-name = "vbus_typec";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc12v_dcin: dc-12v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc12v_dcin";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_lan: vcc3v3-lan-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_lan";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_pcie: vcc3v3-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pcie_pwr_en>;
 | 
			
		||||
		regulator-name = "vcc3v3_pcie";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_host: vcc5v0-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_host";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_0v9: vcc-0v9 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_0v9";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <900000>;
 | 
			
		||||
		regulator-max-microvolt = <900000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm2 0 25000 1>;
 | 
			
		||||
		pwm-supply = <&vcc5v0_sys>;
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1400000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc3v3_lan>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	avdd-0v9-supply = <&vcca0v9_hdmi>;
 | 
			
		||||
	avdd-1v8-supply = <&vcca1v8_hdmi>;
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <168>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_codec: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcca1v8_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_hdmi: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcca1v8_hdmi";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_1v8: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcca_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sdio: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vcc_sdio";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca3v0_codec: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcca3v0_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca0v9_hdmi: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca0v9_hdmi";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_cam: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc_cam";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_mipi: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc_mipi";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel1_pin>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel2_pin>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	es8316: codec@11 {
 | 
			
		||||
		compatible = "everest,es8316";
 | 
			
		||||
		reg = <0x11>;
 | 
			
		||||
		clocks = <&cru SCLK_I2S_8CH_OUT>;
 | 
			
		||||
		clock-names = "mclk";
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			es8316_p0_0: endpoint {
 | 
			
		||||
				remote-endpoint = <&i2s0_p0_0>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <600>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <20>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0 {
 | 
			
		||||
	pinctrl-0 = <&i2s0_2ch_bus>;
 | 
			
		||||
	rockchip,capture-channels = <2>;
 | 
			
		||||
	rockchip,playback-channels = <2>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	i2s0_p0: port {
 | 
			
		||||
		i2s0_p0_0: endpoint {
 | 
			
		||||
			dai-format = "i2s";
 | 
			
		||||
			mclk-fs = <256>;
 | 
			
		||||
			remote-endpoint = <&es8316_p0_0>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1 {
 | 
			
		||||
	rockchip,playback-channels = <2>;
 | 
			
		||||
	rockchip,capture-channels = <2>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	audio-supply = <&vcca1v8_codec>;
 | 
			
		||||
	bt656-supply = <&vcc_3v0>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>;
 | 
			
		||||
	sdmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	pinctrl-0 = <&pcie_clkreqnb_cpm>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	vpcie0v9-supply = <&vcc_0v9>;
 | 
			
		||||
	vpcie1v8-supply = <&vcc_1v8>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bt {
 | 
			
		||||
		bt_enable_h: bt-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	es8316 {
 | 
			
		||||
		hp_detect: hp-detect {
 | 
			
		||||
			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		hp_int: hp-int {
 | 
			
		||||
			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		user_led2: user-led2 {
 | 
			
		||||
			rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie_pwr_en: pcie-pwr-en {
 | 
			
		||||
			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel1_pin: vsel1-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel2_pin: vsel2-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio0 {
 | 
			
		||||
		sdio0_bus4: sdio0-bus4 {
 | 
			
		||||
			rockchip,pins = <2 RK_PC4 1 &pcfg_pull_up_20ma>,
 | 
			
		||||
					<2 RK_PC5 1 &pcfg_pull_up_20ma>,
 | 
			
		||||
					<2 RK_PC6 1 &pcfg_pull_up_20ma>,
 | 
			
		||||
					<2 RK_PC7 1 &pcfg_pull_up_20ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdio0_cmd: sdio0-cmd {
 | 
			
		||||
			rockchip,pins = <2 RK_PD0 1 &pcfg_pull_up_20ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdio0_clk: sdio0-clk {
 | 
			
		||||
			rockchip,pins = <2 RK_PD1 1 &pcfg_pull_none_20ma>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb-typec {
 | 
			
		||||
		vcc5v0_typec_en: vcc5v0-typec-en {
 | 
			
		||||
			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host_en: vcc5v0-host-en {
 | 
			
		||||
			rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wifi_host_wake_l: wifi-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmu1830-supply = <&vcc_3v0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vref-supply = <&vcc_1v8>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	clock-frequency = <50000000>;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cd &sdmmc_cmd &sdmmc_bus4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spdif {
 | 
			
		||||
 | 
			
		||||
	spdif_p0: port {
 | 
			
		||||
		spdif_p0_0: endpoint {
 | 
			
		||||
			remote-endpoint = <&dit_p0_0>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	/* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	/* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy0_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy0_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,24 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Akash Gajjar <Akash_Gajjar@mentor.com>
 | 
			
		||||
 * Copyright (c) 2019 Pragnesh Patel <Pragnesh_Patel@mentor.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-rock-pi-4.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Radxa ROCK Pi 4A";
 | 
			
		||||
	compatible = "radxa,rockpi4a", "radxa,rockpi4", "rockchip,rk3399";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		spi-max-frequency = <10000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -4,3 +4,10 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "rk3399-rock-pi-4-u-boot.dtsi"
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		bootph-pre-ram;
 | 
			
		||||
		bootph-some-ram;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,70 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 * Copyright (c) 2019 Radxa Limited
 | 
			
		||||
 * Copyright (c) 2019 Amarula Solutions(India)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-rock-pi-4.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Radxa ROCK Pi 4C";
 | 
			
		||||
	compatible = "radxa,rockpi4c", "radxa,rockpi4", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc2 = &sdio0;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&es8316 {
 | 
			
		||||
	pinctrl-0 = <&hp_detect &hp_int>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	interrupt-parent = <&gpio1>;
 | 
			
		||||
	interrupts = <RK_PA1 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	brcmf: wifi@1 {
 | 
			
		||||
		compatible = "brcm,bcm4329-fmac";
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		interrupt-names = "host-wake";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_host_wake_l>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sound {
 | 
			
		||||
	hp-det-gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm4345c5";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		max-speed = <1500000>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
 | 
			
		||||
		vbat-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc5v0_host {
 | 
			
		||||
	gpio = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc5v0_host_en {
 | 
			
		||||
	rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
};
 | 
			
		||||
@ -7,10 +7,6 @@
 | 
			
		||||
#include "rk3399-sdram-lpddr3-2GB-1600.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm2 0 25000 1>;
 | 
			
		||||
@ -22,5 +18,14 @@
 | 
			
		||||
		regulator-init-microvolt = <950000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_none_18ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_up_8ma {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,156 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2018 Linaro Ltd.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-rock960.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "96boards Rock960";
 | 
			
		||||
	compatible = "vamrs,rock960", "rockchip,rk3399";
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&user_led1_pin>, <&user_led2_pin>,
 | 
			
		||||
			    <&user_led3_pin>, <&user_led4_pin>,
 | 
			
		||||
			    <&wlan_led_pin>, <&bt_led_pin>;
 | 
			
		||||
 | 
			
		||||
		user_led1: led-1 {
 | 
			
		||||
			label = "green:user1";
 | 
			
		||||
			gpios = <&gpio4 RK_PC2 0>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led2: led-2 {
 | 
			
		||||
			label = "green:user2";
 | 
			
		||||
			gpios = <&gpio4 RK_PC6 0>;
 | 
			
		||||
			linux,default-trigger = "mmc0";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led3: led-3 {
 | 
			
		||||
			label = "green:user3";
 | 
			
		||||
			gpios = <&gpio4 RK_PD0 0>;
 | 
			
		||||
			linux,default-trigger = "mmc1";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led4: led-4 {
 | 
			
		||||
			label = "green:user4";
 | 
			
		||||
			gpios = <&gpio4 RK_PD4 0>;
 | 
			
		||||
			panic-indicator;
 | 
			
		||||
			linux,default-trigger = "none";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wlan_active_led: led-5 {
 | 
			
		||||
			label = "yellow:wlan";
 | 
			
		||||
			gpios = <&gpio4 RK_PD5 0>;
 | 
			
		||||
			linux,default-trigger = "phy0tx";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_active_led: led-6 {
 | 
			
		||||
			label = "blue:bt";
 | 
			
		||||
			gpios = <&gpio4 RK_PD6 0>;
 | 
			
		||||
			linux,default-trigger = "hci0-power";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_alert0 {
 | 
			
		||||
	temperature = <65000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_thermal {
 | 
			
		||||
	sustainable-power = <1550>;
 | 
			
		||||
 | 
			
		||||
	cooling-maps {
 | 
			
		||||
		map0 {
 | 
			
		||||
			trip = <&cpu_alert1>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	leds {
 | 
			
		||||
		user_led1_pin: user-led1-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led2_pin: user-led2-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led3_pin: user-led3-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		user_led4_pin: user-led4-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wlan_led_pin: wlan-led-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_led_pin: bt-led-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie_drv: pcie-drv {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
			};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		host_vbus_drv: host-vbus-drv {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0 {
 | 
			
		||||
	/* On Low speed expansion (LS-SPI0) */
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi4 {
 | 
			
		||||
	/* On High speed expansion (HS-SPI1) */
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	dr_mode = "otg";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v3_pcie {
 | 
			
		||||
	gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc5v0_host {
 | 
			
		||||
	gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
@ -1,670 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2018 Collabora Ltd.
 | 
			
		||||
 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd.
 | 
			
		||||
 * Copyright (c) 2018 Linaro Ltd.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdio0;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
		mmc2 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc12v_dcin: vcc12v-dcin {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc12v_dcin";
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc1v8_s0: vcc1v8-s0 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc1v8_s0";
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_pcie: vcc3v3-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pcie_drv>;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-name = "vcc3v3_pcie";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_host: vcc5v0-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&host_vbus_drv>;
 | 
			
		||||
		regulator-name = "vcc5v0_host";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_0v9: vcc-0v9 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_0v9";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-min-microvolt = <900000>;
 | 
			
		||||
		regulator-max-microvolt = <900000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <168>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk808-clkout2";
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_hdmi: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcca1v8_hdmi";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_1v8: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcca_1v8";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sd: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vcc_sd";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v0_sd: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcc3v0_sd";
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca0v9_hdmi: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca0v9_hdmi";
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
        status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	bt656-supply = <&vcc1v8_s0>; /* bt656_gpio2ab_ms */
 | 
			
		||||
	audio-supply = <&vcc1v8_s0>; /* audio_gpio3d4a_ms */
 | 
			
		||||
	sdmmc-supply = <&vcc_sd>; /* sdmmc_gpio4b_ms */
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>; /* gpio1833_gpio4cd_ms */
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_clkreqn_cpm>;
 | 
			
		||||
	vpcie0v9-supply = <&vcc_0v9>;
 | 
			
		||||
	vpcie1v8-supply = <&vcca_1v8>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmu1830-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bt {
 | 
			
		||||
		bt_enable_h: bt-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdmmc {
 | 
			
		||||
		sdmmc_bus1: sdmmc-bus1 {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PB0 1 &pcfg_pull_up_8ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdmmc_bus4: sdmmc-bus4 {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PB0 1 &pcfg_pull_up_8ma>,
 | 
			
		||||
				<4 RK_PB1 1 &pcfg_pull_up_8ma>,
 | 
			
		||||
				<4 RK_PB2 1 &pcfg_pull_up_8ma>,
 | 
			
		||||
				<4 RK_PB3 1 &pcfg_pull_up_8ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdmmc_clk: sdmmc-clk {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PB4 1 &pcfg_pull_none_18ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdmmc_cmd: sdmmc-cmd {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PB5 1 &pcfg_pull_up_8ma>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio0 {
 | 
			
		||||
		sdio0_bus4: sdio0-bus4 {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<2 RK_PC4 1 &pcfg_pull_up_20ma>,
 | 
			
		||||
				<2 RK_PC5 1 &pcfg_pull_up_20ma>,
 | 
			
		||||
				<2 RK_PC6 1 &pcfg_pull_up_20ma>,
 | 
			
		||||
				<2 RK_PC7 1 &pcfg_pull_up_20ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdio0_cmd: sdio0-cmd {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<2 RK_PD0 1 &pcfg_pull_up_20ma>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sdio0_clk: sdio0-clk {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<2 RK_PD1 1 &pcfg_pull_none_20ma>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel1_pin: vsel1-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel2_pin: vsel2-pin {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi {
 | 
			
		||||
		wifi_host_wake_l: wifi-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm3 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	clock-frequency = <50000000>;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	brcmf: wifi@1 {
 | 
			
		||||
		compatible = "brcm,bcm4329-fmac";
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		interrupt-names = "host-wake";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_host_wake_l>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs400-1_8v;
 | 
			
		||||
	mmc-hs400-enhanced-strobe;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	clock-frequency = <100000000>;
 | 
			
		||||
	max-frequency = <100000000>;
 | 
			
		||||
	cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vqmmc-supply = <&vcc_sd>;
 | 
			
		||||
	card-detect-delay = <800>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	rockchip,hw-tshut-temp = <110000>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm43438-bt";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -5,11 +5,8 @@
 | 
			
		||||
 | 
			
		||||
#include "rk3399-u-boot.dtsi"
 | 
			
		||||
#include "rk3399-sdram-lpddr4-100.dtsi"
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &spi_flash, &sdmmc, &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
        smbios {
 | 
			
		||||
                compatible = "u-boot,sysinfo-smbios";
 | 
			
		||||
                smbios {
 | 
			
		||||
@ -29,8 +26,10 @@
 | 
			
		||||
                        };
 | 
			
		||||
                };
 | 
			
		||||
        };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
&gpio0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
@ -38,12 +37,21 @@
 | 
			
		||||
	mmc-ddr-1_8v;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0_pwr_h {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	spi_flash: flash@0 {
 | 
			
		||||
		bootph-all;
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		bootph-pre-ram;
 | 
			
		||||
		bootph-some-ram;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v0_sd {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vdd_center {
 | 
			
		||||
	regulator-min-microvolt = <950000>;
 | 
			
		||||
	regulator-max-microvolt = <950000>;
 | 
			
		||||
 | 
			
		||||
@ -1,30 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
 | 
			
		||||
 * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar@mentor.com>
 | 
			
		||||
 * Copyright (c) 2019 Katsuhiro Suzuki <katsuhiro@katsuster.net>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399-rockpro64.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Pine64 RockPro64 v2.1";
 | 
			
		||||
	compatible = "pine64,rockpro64-v2.1", "pine64,rockpro64", "rockchip,rk3399";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	es8316: codec@11 {
 | 
			
		||||
		compatible = "everest,es8316";
 | 
			
		||||
		reg = <0x11>;
 | 
			
		||||
		clocks = <&cru SCLK_I2S_8CH_OUT>;
 | 
			
		||||
		clock-names = "mclk";
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			es8316_p0_0: endpoint {
 | 
			
		||||
				remote-endpoint = <&i2s1_p0_0>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,870 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
 | 
			
		||||
 * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar@mentor.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
#include <dt-bindings/pwm/pwm.h>
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdio0;
 | 
			
		||||
		mmc1 = &sdmmc;
 | 
			
		||||
		mmc2 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	clkin_gmac: external-gmac-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "clkin_gmac";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		autorepeat;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pwrbtn>;
 | 
			
		||||
 | 
			
		||||
		power {
 | 
			
		||||
			debounce-interval = <100>;
 | 
			
		||||
			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "GPIO Key Power";
 | 
			
		||||
			linux,code = <KEY_POWER>;
 | 
			
		||||
			wakeup-source;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir-receiver {
 | 
			
		||||
		compatible = "gpio-ir-receiver";
 | 
			
		||||
		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-0 = <&ir_int>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
 | 
			
		||||
 | 
			
		||||
		work_led: led-0 {
 | 
			
		||||
			label = "work";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		diy_led: led-1 {
 | 
			
		||||
			label = "diy";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fan: pwm-fan {
 | 
			
		||||
		compatible = "pwm-fan";
 | 
			
		||||
		#cooling-cells = <2>;
 | 
			
		||||
		fan-supply = <&vcc12v_dcin>;
 | 
			
		||||
		pwms = <&pwm1 0 50000 0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sound {
 | 
			
		||||
		compatible = "audio-graph-card";
 | 
			
		||||
		label = "Analog";
 | 
			
		||||
		dais = <&i2s1_p0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sound-dit {
 | 
			
		||||
		compatible = "audio-graph-card";
 | 
			
		||||
		label = "SPDIF";
 | 
			
		||||
		dais = <&spdif_p0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	spdif-dit {
 | 
			
		||||
		compatible = "linux,spdif-dit";
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			dit_p0_0: endpoint {
 | 
			
		||||
				remote-endpoint = <&spdif_p0_0>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc12v_dcin: vcc12v-dcin {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc12v_dcin";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* switched by pmic_sleep */
 | 
			
		||||
	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc1v8_s3";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* micro SD card power */
 | 
			
		||||
	vcc3v0_sd: vcc3v0-sd {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sdmmc0_pwr_h>;
 | 
			
		||||
		regulator-name = "vcc3v0_sd";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-min-microvolt = <3000000>;
 | 
			
		||||
		regulator-max-microvolt = <3000000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_pcie: vcc3v3-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pcie_pwr_en>;
 | 
			
		||||
		regulator-name = "vcc3v3_pcie";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
 | 
			
		||||
	vcc5v0_host: vcc5v0-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_host";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_usb>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_typec: vcc5v0-typec-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_typec_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_typec";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_usb>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb: vcc5v0-usb {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_log: vdd-log {
 | 
			
		||||
		compatible = "pwm-regulator";
 | 
			
		||||
		pwms = <&pwm2 0 25000 1>;
 | 
			
		||||
		regulator-name = "vdd_log";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1700000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_b>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	assigned-clock-parents = <&clkin_gmac>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc_lan>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii_pins>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	snps,reset-delays-us = <0 10000 50000>;
 | 
			
		||||
	tx_delay = <0x28>;
 | 
			
		||||
	rx_delay = <0x11>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <168>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <4>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk808: pmic@1b {
 | 
			
		||||
		compatible = "rockchip,rk808";
 | 
			
		||||
		reg = <0x1b>;
 | 
			
		||||
		interrupt-parent = <&gpio3>;
 | 
			
		||||
		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "xin32k", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc10-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc11-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc12-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcca_1v8>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_center: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_center";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v0_touch: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v0_touch";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_1v8: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcca_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_sdio: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vcc_sdio";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca3v0_codec: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vcca3v0_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1500000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_codec: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca1v8_codec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v0: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc_3v0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s3: vcc_lan: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc3v3_s3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_s0: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_s0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu_b: regulator@40 {
 | 
			
		||||
		compatible = "silergy,syr827";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel1_pin>;
 | 
			
		||||
		regulator-name = "vdd_cpu_b";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_gpu: regulator@41 {
 | 
			
		||||
		compatible = "silergy,syr828";
 | 
			
		||||
		reg = <0x41>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vsel2_pin>;
 | 
			
		||||
		regulator-name = "vdd_gpu";
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1500000>;
 | 
			
		||||
		regulator-ramp-delay = <1000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <300>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <600>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <20>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	fusb0: typec-portc@22 {
 | 
			
		||||
		compatible = "fcs,fusb302";
 | 
			
		||||
		reg = <0x22>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&fusb0_int>;
 | 
			
		||||
		vbus-supply = <&vcc5v0_typec>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0 {
 | 
			
		||||
	rockchip,playback-channels = <8>;
 | 
			
		||||
	rockchip,capture-channels = <8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1 {
 | 
			
		||||
	rockchip,playback-channels = <2>;
 | 
			
		||||
	rockchip,capture-channels = <2>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	i2s1_p0: port {
 | 
			
		||||
		i2s1_p0_0: endpoint {
 | 
			
		||||
			dai-format = "i2s";
 | 
			
		||||
			mclk-fs = <256>;
 | 
			
		||||
			remote-endpoint = <&es8316_p0_0>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bt656-supply = <&vcc1v8_dvp>;
 | 
			
		||||
	audio-supply = <&vcc_3v0>;
 | 
			
		||||
	sdmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	gpio1830-supply = <&vcc_3v0>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_perst>;
 | 
			
		||||
	vpcie12v-supply = <&vcc12v_dcin>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmu1830-supply = <&vcc_3v0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bt {
 | 
			
		||||
		bt_enable_h: bt-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	buttons {
 | 
			
		||||
		pwrbtn: pwrbtn {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fusb302x {
 | 
			
		||||
		fusb0_int: fusb0-int {
 | 
			
		||||
			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir {
 | 
			
		||||
		ir_int: ir-int {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		work_led_pin: work-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		diy_led_pin: diy-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie_perst: pcie-perst {
 | 
			
		||||
			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pcie_pwr_en: pcie-pwr-en {
 | 
			
		||||
			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel1_pin: vsel1-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vsel2_pin: vsel2-pin {
 | 
			
		||||
			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdcard {
 | 
			
		||||
		sdmmc0_pwr_h: sdmmc0-pwr-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb-typec {
 | 
			
		||||
		vcc5v0_typec_en: vcc5v0_typec_en {
 | 
			
		||||
			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_host_en: vcc5v0-host-en {
 | 
			
		||||
			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca1v8_s3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
 | 
			
		||||
	vmmc-supply = <&vcc3v0_sd>;
 | 
			
		||||
	vqmmc-supply = <&vcc_sdio>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spdif {
 | 
			
		||||
	pinctrl-0 = <&spdif_bus_1>;
 | 
			
		||||
 | 
			
		||||
	spdif_p0: port {
 | 
			
		||||
		spdif_p0_0: endpoint {
 | 
			
		||||
			remote-endpoint = <&dit_p0_0>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		spi-max-frequency = <10000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	/* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	/* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy0_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy0_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_otg: otg-port {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vcc5v0_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm43438-bt";
 | 
			
		||||
		clocks = <&rk808 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
 | 
			
		||||
		vbat-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,114 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 * Copyright (c) 2022 Radxa Limited
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	cluster0_opp: opp-table-0 {
 | 
			
		||||
		compatible = "operating-points-v2";
 | 
			
		||||
		opp-shared;
 | 
			
		||||
 | 
			
		||||
		opp00 {
 | 
			
		||||
			opp-hz = /bits/ 64 <408000000>;
 | 
			
		||||
			opp-microvolt = <875000 875000 1250000>;
 | 
			
		||||
			clock-latency-ns = <40000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp01 {
 | 
			
		||||
			opp-hz = /bits/ 64 <600000000>;
 | 
			
		||||
			opp-microvolt = <875000 875000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp02 {
 | 
			
		||||
			opp-hz = /bits/ 64 <816000000>;
 | 
			
		||||
			opp-microvolt = <900000 900000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp03 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1008000000>;
 | 
			
		||||
			opp-microvolt = <975000 975000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cluster1_opp: opp-table-1 {
 | 
			
		||||
		compatible = "operating-points-v2";
 | 
			
		||||
		opp-shared;
 | 
			
		||||
 | 
			
		||||
		opp00 {
 | 
			
		||||
			opp-hz = /bits/ 64 <408000000>;
 | 
			
		||||
			opp-microvolt = <875000 875000 1250000>;
 | 
			
		||||
			clock-latency-ns = <40000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp01 {
 | 
			
		||||
			opp-hz = /bits/ 64 <600000000>;
 | 
			
		||||
			opp-microvolt = <875000 875000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp02 {
 | 
			
		||||
			opp-hz = /bits/ 64 <816000000>;
 | 
			
		||||
			opp-microvolt = <875000 875000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp03 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1008000000>;
 | 
			
		||||
			opp-microvolt = <925000 925000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp04 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1200000000>;
 | 
			
		||||
			opp-microvolt = <1000000 1000000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp05 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1416000000>;
 | 
			
		||||
			opp-microvolt = <1075000 1075000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp06 {
 | 
			
		||||
			opp-hz = /bits/ 64 <1512000000>;
 | 
			
		||||
			opp-microvolt = <1150000 1150000 1250000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpu_opp_table: opp-table-2 {
 | 
			
		||||
		compatible = "operating-points-v2";
 | 
			
		||||
 | 
			
		||||
		opp00 {
 | 
			
		||||
			opp-hz = /bits/ 64 <200000000>;
 | 
			
		||||
			opp-microvolt = <875000 875000 1150000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp01 {
 | 
			
		||||
			opp-hz = /bits/ 64 <300000000>;
 | 
			
		||||
			opp-microvolt = <875000 875000 1150000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp02 {
 | 
			
		||||
			opp-hz = /bits/ 64 <400000000>;
 | 
			
		||||
			opp-microvolt = <875000 875000 1150000>;
 | 
			
		||||
		};
 | 
			
		||||
		opp03 {
 | 
			
		||||
			opp-hz = /bits/ 64 <600000000>;
 | 
			
		||||
			opp-microvolt = <975000 975000 1150000>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	operating-points-v2 = <&cluster0_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b0 {
 | 
			
		||||
	operating-points-v2 = <&cluster1_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_b1 {
 | 
			
		||||
	operating-points-v2 = <&cluster1_opp>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	operating-points-v2 = <&gpu_opp_table>;
 | 
			
		||||
};
 | 
			
		||||
@ -2,8 +2,6 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (C) 2019 Jagan Teki <jagan@amarulasolutions.com>
 | 
			
		||||
 */
 | 
			
		||||
#define USB_CLASS_HUB			9
 | 
			
		||||
 | 
			
		||||
#include "rockchip-u-boot.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
@ -14,50 +12,21 @@
 | 
			
		||||
		spi1 = &spi1;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cic: syscon@ff620000 {
 | 
			
		||||
		bootph-all;
 | 
			
		||||
		compatible = "rockchip,rk3399-cic", "syscon";
 | 
			
		||||
		reg = <0x0 0xff620000 0x0 0x100>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dfi: dfi@ff630000 {
 | 
			
		||||
		bootph-all;
 | 
			
		||||
		reg = <0x00 0xff630000 0x00 0x4000>;
 | 
			
		||||
		compatible = "rockchip,rk3399-dfi";
 | 
			
		||||
		rockchip,pmu = <&pmugrf>;
 | 
			
		||||
		clocks = <&cru PCLK_DDR_MON>;
 | 
			
		||||
		clock-names = "pclk_ddr_mon";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rng: rng@ff8b8000 {
 | 
			
		||||
		compatible = "rockchip,rk3399-crypto";
 | 
			
		||||
		reg = <0x0 0xff8b8000 0x0 0x1000>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dmc: dmc {
 | 
			
		||||
		bootph-all;
 | 
			
		||||
		compatible = "rockchip,rk3399-dmc";
 | 
			
		||||
		devfreq-events = <&dfi>;
 | 
			
		||||
		interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 0>;
 | 
			
		||||
		clocks = <&cru SCLK_DDRCLK>;
 | 
			
		||||
		clock-names = "dmc_clk";
 | 
			
		||||
		reg = <0x0 0xffa80000 0x0 0x0800
 | 
			
		||||
		       0x0 0xffa80800 0x0 0x1800
 | 
			
		||||
		       0x0 0xffa82000 0x0 0x2000
 | 
			
		||||
		       0x0 0xffa84000 0x0 0x1000
 | 
			
		||||
		       0x0 0xffa88000 0x0 0x0800
 | 
			
		||||
		       0x0 0xffa88800 0x0 0x1800
 | 
			
		||||
		       0x0 0xffa8a000 0x0 0x2000
 | 
			
		||||
		       0x0 0xffa8c000 0x0 0x1000>;
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmusgrf: syscon@ff330000 {
 | 
			
		||||
		bootph-all;
 | 
			
		||||
		compatible = "rockchip,rk3399-pmusgrf", "syscon";
 | 
			
		||||
		reg = <0x0 0xff330000 0x0 0xe3d4>;
 | 
			
		||||
		bootph-all;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cic: syscon@ff620000 {
 | 
			
		||||
		compatible = "rockchip,rk3399-cic", "syscon";
 | 
			
		||||
		reg = <0x0 0xff620000 0x0 0x100>;
 | 
			
		||||
		bootph-all;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_ROCKCHIP_SPI_IMAGE) && defined(CONFIG_HAS_ROM)
 | 
			
		||||
@ -89,14 +58,40 @@
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
&dfi {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&dmc {
 | 
			
		||||
	reg = <0x0 0xffa80000 0x0 0x0800
 | 
			
		||||
	       0x0 0xffa80800 0x0 0x1800
 | 
			
		||||
	       0x0 0xffa82000 0x0 0x2000
 | 
			
		||||
	       0x0 0xffa84000 0x0 0x1000
 | 
			
		||||
	       0x0 0xffa88000 0x0 0x0800
 | 
			
		||||
	       0x0 0xffa88800 0x0 0x1800
 | 
			
		||||
	       0x0 0xffa8a000 0x0 0x2000
 | 
			
		||||
	       0x0 0xffa8c000 0x0 0x1000>;
 | 
			
		||||
	bootph-all;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&grf {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_none {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcfg_pull_up {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
@ -105,47 +100,89 @@
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmugrf {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmucru {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	max-frequency = <200000000>;
 | 
			
		||||
&pmugrf {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
	u-boot,spl-fifo-mode;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
	max-frequency = <200000000>;
 | 
			
		||||
 | 
			
		||||
	/* mmc to sram can't do dma, prevent aborts transferring TF-A parts */
 | 
			
		||||
	u-boot,spl-fifo-mode;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1 {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
 | 
			
		||||
	/* mmc to sram can't do dma, prevent aborts transferring TF-A parts */
 | 
			
		||||
	u-boot,spl-fifo-mode;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
&sdmmc_bus4 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc_cd {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc_clk {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc_cmd {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1_clk {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1_cs0 {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1_rx {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi1_tx {
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
	clock-frequency = <24000000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2c_xfer {
 | 
			
		||||
	bootph-pre-sram;
 | 
			
		||||
	bootph-pre-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopb {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vopl {
 | 
			
		||||
	bootph-some-ram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&xin24m {
 | 
			
		||||
	bootph-all;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -5,9 +5,3 @@
 | 
			
		||||
 | 
			
		||||
#include "rk3399pro-u-boot.dtsi"
 | 
			
		||||
#include "rk3399-sdram-lpddr3-4GB-1600.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen {
 | 
			
		||||
		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 * Copyright (c) 2019 Radxa Limited
 | 
			
		||||
 * Copyright (c) 2019 Amarula Solutions(India)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
#include "rk3399-opp.dtsi"
 | 
			
		||||
#include <rockchip-radxa-dalang-carrier.dtsi>
 | 
			
		||||
#include "rk3399pro-vmarc-som.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Radxa ROCK Pi N10";
 | 
			
		||||
	compatible = "radxa,rockpi-n10", "vamrs,rk3399pro-vmarc-som",
 | 
			
		||||
		     "rockchip,rk3399pro";
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,467 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
 | 
			
		||||
 * Copyright (c) 2019 Vamrs Limited
 | 
			
		||||
 * Copyright (c) 2019 Amarula Solutions(India)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/pinctrl/rockchip.h>
 | 
			
		||||
#include <dt-bindings/pwm/pwm.h>
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdmmc;
 | 
			
		||||
		mmc1 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_pcie: vcc-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pcie_pwr>;
 | 
			
		||||
		regulator-name = "vcc3v3_pcie";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_l3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu_l>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&emmc_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_RMII_SRC>;
 | 
			
		||||
	phy-supply = <&vcc_lan>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c3>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&hdmi_cec>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <30>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <180>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk809: pmic@20 {
 | 
			
		||||
		compatible = "rockchip,rk809";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		interrupt-parent = <&gpio1>;
 | 
			
		||||
		interrupts = <RK_PC2 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "rk808-clkout1", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc_buck5>;
 | 
			
		||||
		vcc6-supply = <&vcc_buck5>;
 | 
			
		||||
		vcc7-supply = <&vcc5v0_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_log: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_log";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_cpu_l: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_cpu_l";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <750000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_sys: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc3v3_sys";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_buck5: DCDC_REG5 {
 | 
			
		||||
				regulator-name = "vcc_buck5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <2200000>;
 | 
			
		||||
				regulator-max-microvolt = <2200000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <2200000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_0v9: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcca_0v9";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_0v9: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vcc_0v9";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_1v8: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vcca_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1850000>;
 | 
			
		||||
				regulator-max-microvolt = <1850000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1850000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			/*
 | 
			
		||||
			 * As per BSP, but schematic not showing any regulator
 | 
			
		||||
			 * pin for LD05.
 | 
			
		||||
			 */
 | 
			
		||||
			vdd1v5_dvp: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vdd1v5_dvp";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v5: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc_1v5";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1500000>;
 | 
			
		||||
				regulator-max-microvolt = <1500000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_3v0: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vccio_3v0";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3000000>;
 | 
			
		||||
				regulator-max-microvolt = <3000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			/*
 | 
			
		||||
			 * As per BSP, but schematic not showing any regulator
 | 
			
		||||
			 * pin for LD09.
 | 
			
		||||
			 */
 | 
			
		||||
			vcc_sd: LDO_REG9 {
 | 
			
		||||
				regulator-name = "vcc_sd";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc5v0_usb2: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc5v0_usb2";
 | 
			
		||||
				regulator-min-microvolt = <5000000>;
 | 
			
		||||
				regulator-max-microvolt = <5000000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <5000000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_3v3: vcc_lan: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vccio_3v3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	i2c-scl-falling-time-ns = <30>;
 | 
			
		||||
	i2c-scl-rising-time-ns = <140>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c2 {
 | 
			
		||||
	clock-frequency = <400000>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	hym8563: hym8563@51 {
 | 
			
		||||
		compatible = "haoyu,hym8563";
 | 
			
		||||
		reg = <0x51>;
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
		clock-frequency = <32768>;
 | 
			
		||||
		clock-output-names = "hym8563";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&hym8563_int>;
 | 
			
		||||
		interrupt-parent = <&gpio4>;
 | 
			
		||||
		interrupts = <RK_PD6 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	i2c-scl-rising-time-ns = <450>;
 | 
			
		||||
	i2c-scl-falling-time-ns = <15>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	bt656-supply = <&vcca_1v8>;
 | 
			
		||||
	gpio1830-supply = <&vccio_3v0>;
 | 
			
		||||
	sdmmc-supply = <&vccio_sd>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	pinctrl-0 = <&pcie_clkreqnb_cpm>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	vpcie0v9-supply = <&vcca_0v9>;	/* VCC_0V9_S0 */
 | 
			
		||||
	vpcie1v8-supply = <&vcca_1v8>;	/* VCC_1V8_S0 */
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	hym8563 {
 | 
			
		||||
		hym8563_int: hym8563-int {
 | 
			
		||||
			rockchip,pins = <4 RK_PD6 0 &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie_pwr: pcie-pwr {
 | 
			
		||||
			rockchip,pins =	<4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <1 RK_PC2 0 &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vbus_host {
 | 
			
		||||
		usb1_en_oc: usb1-en-oc {
 | 
			
		||||
			rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vbus_typec {
 | 
			
		||||
		usb0_en_oc: usb0-en-oc {
 | 
			
		||||
			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pmu1830-supply = <&vcc_1v8>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs400-1_8v;
 | 
			
		||||
	mmc-hs400-enhanced-strobe;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc {
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tcphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&u2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy0_otg: otg-port {
 | 
			
		||||
		phy-supply = <&vbus_typec>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u2phy0_host: host-port {
 | 
			
		||||
		phy-supply = <&vbus_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
&u2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	u2phy1_host: host-port {
 | 
			
		||||
		phy-supply = <&vbus_host>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usbdrd_dwc3_0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vbus_host {
 | 
			
		||||
	enable-active-high;
 | 
			
		||||
	gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; /* USB1_EN_OC# */
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&usb1_en_oc>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vbus_typec {
 | 
			
		||||
	enable-active-high;
 | 
			
		||||
	gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; /* USB0_EN_OC# */
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&usb0_en_oc>;
 | 
			
		||||
};
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
// Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd.
 | 
			
		||||
 | 
			
		||||
#include "rk3399.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	compatible = "rockchip,rk3399pro";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Default to enabled since AP talk to NPU part over pcie */
 | 
			
		||||
&pcie_phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Default to enabled since AP talk to NPU part over pcie */
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	ep-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	num-lanes = <4>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_clkreqn_cpm>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,788 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/input/linux-event-codes.h>
 | 
			
		||||
#include <dt-bindings/leds/common.h>
 | 
			
		||||
#include <dt-bindings/pinctrl/rockchip.h>
 | 
			
		||||
#include <dt-bindings/soc/rockchip,vop2.h>
 | 
			
		||||
#include "rk3566.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	chosen: chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	adc-joystick {
 | 
			
		||||
		compatible = "adc-joystick";
 | 
			
		||||
		io-channels = <&adc_mux 0>,
 | 
			
		||||
			      <&adc_mux 1>,
 | 
			
		||||
			      <&adc_mux 2>,
 | 
			
		||||
			      <&adc_mux 3>;
 | 
			
		||||
		pinctrl-0 = <&joy_mux_en>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		poll-interval = <60>;
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		axis@0 {
 | 
			
		||||
			reg = <0>;
 | 
			
		||||
			abs-flat = <32>;
 | 
			
		||||
			abs-fuzz = <32>;
 | 
			
		||||
			abs-range = <1023 15>;
 | 
			
		||||
			linux,code = <ABS_X>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		axis@1 {
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			abs-flat = <32>;
 | 
			
		||||
			abs-fuzz = <32>;
 | 
			
		||||
			abs-range = <15 1023>;
 | 
			
		||||
			linux,code = <ABS_RX>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		axis@2 {
 | 
			
		||||
			reg = <2>;
 | 
			
		||||
			abs-flat = <32>;
 | 
			
		||||
			abs-fuzz = <32>;
 | 
			
		||||
			abs-range = <15 1023>;
 | 
			
		||||
			linux,code = <ABS_Y>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		axis@3 {
 | 
			
		||||
			reg = <3>;
 | 
			
		||||
			abs-flat = <32>;
 | 
			
		||||
			abs-fuzz = <32>;
 | 
			
		||||
			abs-range = <1023 15>;
 | 
			
		||||
			linux,code = <ABS_RY>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	adc_keys: adc-keys {
 | 
			
		||||
		compatible = "adc-keys";
 | 
			
		||||
		io-channels = <&saradc 0>;
 | 
			
		||||
		io-channel-names = "buttons";
 | 
			
		||||
		keyup-threshold-microvolt = <1800000>;
 | 
			
		||||
		poll-interval = <60>;
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * Button is mapped to F key in BSP kernel, but
 | 
			
		||||
		 * according to input guidelines it should be mode.
 | 
			
		||||
		 */
 | 
			
		||||
		button-mode {
 | 
			
		||||
			label = "MODE";
 | 
			
		||||
			linux,code = <BTN_MODE>;
 | 
			
		||||
			press-threshold-microvolt = <1750>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	adc_mux: adc-mux {
 | 
			
		||||
		compatible = "io-channel-mux";
 | 
			
		||||
		channels = "left_x", "right_x", "left_y", "right_y";
 | 
			
		||||
		#io-channel-cells = <1>;
 | 
			
		||||
		io-channels = <&saradc 3>;
 | 
			
		||||
		io-channel-names = "parent";
 | 
			
		||||
		mux-controls = <&gpio_mux>;
 | 
			
		||||
		settle-time-us = <100>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio_keys_control: gpio-keys-control {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		pinctrl-0 = <&btn_pins_ctrl>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		button-b {
 | 
			
		||||
			gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "SOUTH";
 | 
			
		||||
			linux,code = <BTN_SOUTH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-down {
 | 
			
		||||
			gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "DPAD-DOWN";
 | 
			
		||||
			linux,code = <BTN_DPAD_DOWN>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-l1 {
 | 
			
		||||
			gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "TL";
 | 
			
		||||
			linux,code = <BTN_TL>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-l2 {
 | 
			
		||||
			gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "TL2";
 | 
			
		||||
			linux,code = <BTN_TL2>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-select {
 | 
			
		||||
			gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "SELECT";
 | 
			
		||||
			linux,code = <BTN_SELECT>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-start {
 | 
			
		||||
			gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "START";
 | 
			
		||||
			linux,code = <BTN_START>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-thumbl {
 | 
			
		||||
			gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "THUMBL";
 | 
			
		||||
			linux,code = <BTN_THUMBL>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-thumbr {
 | 
			
		||||
			gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "THUMBR";
 | 
			
		||||
			linux,code = <BTN_THUMBR>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-up {
 | 
			
		||||
			gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "DPAD-UP";
 | 
			
		||||
			linux,code = <BTN_DPAD_UP>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-x {
 | 
			
		||||
			gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "NORTH";
 | 
			
		||||
			linux,code = <BTN_NORTH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio_keys_vol: gpio-keys-vol {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		autorepeat;
 | 
			
		||||
		pinctrl-0 = <&btn_pins_vol>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		button-vol-down {
 | 
			
		||||
			gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "VOLUMEDOWN";
 | 
			
		||||
			linux,code = <KEY_VOLUMEDOWN>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		button-vol-up {
 | 
			
		||||
			gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "VOLUMEUP";
 | 
			
		||||
			linux,code = <KEY_VOLUMEUP>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio_mux: mux-controller {
 | 
			
		||||
		compatible = "gpio-mux";
 | 
			
		||||
		mux-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>,
 | 
			
		||||
			    <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		#mux-control-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	hdmi-con {
 | 
			
		||||
		compatible = "hdmi-connector";
 | 
			
		||||
		ddc-i2c-bus = <&i2c5>;
 | 
			
		||||
		type = "c";
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			hdmi_con_in: endpoint {
 | 
			
		||||
				remote-endpoint = <&hdmi_out_con>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds: pwm-leds {
 | 
			
		||||
		compatible = "pwm-leds";
 | 
			
		||||
 | 
			
		||||
		green_led: led-0 {
 | 
			
		||||
			color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			function = LED_FUNCTION_POWER;
 | 
			
		||||
			max-brightness = <255>;
 | 
			
		||||
			pwms = <&pwm6 0 25000 0>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		amber_led: led-1 {
 | 
			
		||||
			color = <LED_COLOR_ID_AMBER>;
 | 
			
		||||
			function = LED_FUNCTION_CHARGING;
 | 
			
		||||
			max-brightness = <255>;
 | 
			
		||||
			pwms = <&pwm7 0 25000 0>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		red_led: led-2 {
 | 
			
		||||
			color = <LED_COLOR_ID_RED>;
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			function = LED_FUNCTION_STATUS;
 | 
			
		||||
			max-brightness = <255>;
 | 
			
		||||
			pwms = <&pwm0 0 25000 0>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk817 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		post-power-on-delay-ms = <200>;
 | 
			
		||||
		reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_lcd0_n: regulator-vcc3v3-lcd0 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		pinctrl-0 = <&vcc_lcd_h>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-name = "vcc3v3_lcd0_n";
 | 
			
		||||
		vin-supply = <&vcc_3v3>;
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: regulator-vcc-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3800000>;
 | 
			
		||||
		regulator-max-microvolt = <3800000>;
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_wifi: regulator-vcc-wifi {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-0 = <&vcc_wifi_h>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-name = "vcc_wifi";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vibrator: pwm-vibrator {
 | 
			
		||||
		compatible = "pwm-vibrator";
 | 
			
		||||
		pwm-names = "enable";
 | 
			
		||||
		pwms = <&pwm5 0 1000000000 0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	ddc-i2c-bus = <&i2c5>;
 | 
			
		||||
	pinctrl-0 = <&hdmitxm0_cec>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_in {
 | 
			
		||||
	hdmi_in_vp0: endpoint {
 | 
			
		||||
		remote-endpoint = <&vp0_out_hdmi>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_out {
 | 
			
		||||
	hdmi_out_con: endpoint {
 | 
			
		||||
		remote-endpoint = <&hdmi_con_in>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk817: pmic@20 {
 | 
			
		||||
		compatible = "rockchip,rk817";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		clock-output-names = "rk808-clkout1", "rk808-clkout2";
 | 
			
		||||
		clock-names = "mclk";
 | 
			
		||||
		clocks = <&cru I2S1_MCLKOUT_TX>;
 | 
			
		||||
		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
 | 
			
		||||
		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&i2s1m0_mclk>, <&pmic_int_l>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc_sys>;
 | 
			
		||||
		vcc9-supply = <&dcdc_boost>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_logic: DCDC_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vdd_logic";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_gpu: DCDC_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vdd_gpu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v3: DCDC_REG4 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vcc_3v3";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_pmu: LDO_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcca1v8_pmu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda_0v9: LDO_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-name = "vdda_0v9";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-name = "vdda0v9_pmu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_acodec: LDO_REG4 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vccio_acodec";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG5 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_pmu: LDO_REG6 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vcc3v3_pmu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: LDO_REG7 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG8 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc2v8_dvp: LDO_REG9 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <2800000>;
 | 
			
		||||
				regulator-max-microvolt = <2800000>;
 | 
			
		||||
				regulator-name = "vcc2v8_dvp";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			dcdc_boost: BOOST {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <4700000>;
 | 
			
		||||
				regulator-max-microvolt = <5400000>;
 | 
			
		||||
				regulator-name = "boost";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			otg_switch: OTG_SWITCH {
 | 
			
		||||
				regulator-name = "otg_switch";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdd_cpu: regulator@40 {
 | 
			
		||||
		compatible = "fcs,fan53555";
 | 
			
		||||
		reg = <0x40>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1390000>;
 | 
			
		||||
		regulator-name = "vdd_cpu";
 | 
			
		||||
		regulator-ramp-delay = <2300>;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	/* Unknown/unused device at 0x3c */
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c5 {
 | 
			
		||||
	pinctrl-0 = <&i2c5m1_xfer>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0_8ch {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1_8ch {
 | 
			
		||||
	pinctrl-0 = <&i2s1m0_sclktx
 | 
			
		||||
		     &i2s1m0_lrcktx
 | 
			
		||||
		     &i2s1m0_sdi0
 | 
			
		||||
		     &i2s1m0_sdo0>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	rockchip,trcm-sync-tx-only;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	gpio-btns {
 | 
			
		||||
		btn_pins_ctrl: btn-pins-ctrl {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
				<3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		btn_pins_vol: btn-pins-vol {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
			<3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
 | 
			
		||||
			<3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	joy-mux {
 | 
			
		||||
		joy_mux_en: joy-mux-en {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PB5 RK_FUNC_GPIO &pcfg_output_low>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3-lcd {
 | 
			
		||||
		vcc_lcd_h: vcc-lcd-h {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc-wifi {
 | 
			
		||||
		vcc_wifi_h: vcc-wifi-h {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pmuio1-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	pmuio2-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	vccio1-supply = <&vccio_acodec>;
 | 
			
		||||
	vccio3-supply = <&vccio_sd>;
 | 
			
		||||
	vccio4-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio5-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio6-supply = <&vcc1v8_dvp>;
 | 
			
		||||
	vccio7-supply = <&vcc_3v3>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm0 {
 | 
			
		||||
	pinctrl-0 = <&pwm0m1_pins>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm5 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm6 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm7 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc_3v3>;
 | 
			
		||||
	vqmmc-supply = <&vccio_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc1 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk &sdmmc1_det>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc_3v3>;
 | 
			
		||||
	vqmmc-supply = <&vcc1v8_dvp>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc2 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	vmmc-supply = <&vcc_wifi>;
 | 
			
		||||
	vqmmc-supply = <&vcca1v8_pmu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart1 {
 | 
			
		||||
	pinctrl-0 = <&uart1m1_xfer &uart1m1_ctsn &uart1m1_rtsn>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	uart-has-rtscts;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "realtek,rtl8821cs-bt", "realtek,rtl8723bs-bt";
 | 
			
		||||
		device-wake-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		enable-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wake-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Lack the schematics to verify, but port works as a peripheral
 | 
			
		||||
 * (and not a host or OTG port).
 | 
			
		||||
 */
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	dr_mode = "peripheral";
 | 
			
		||||
	phys = <&usb2phy0_otg>;
 | 
			
		||||
	phy-names = "usb2-phy";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_xhci {
 | 
			
		||||
	phy-names = "usb2-phy", "usb3-phy";
 | 
			
		||||
	phys = <&usb2phy1_host>, <&combphy1 PHY_TYPE_USB3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
 | 
			
		||||
	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vp0 {
 | 
			
		||||
	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
 | 
			
		||||
		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
 | 
			
		||||
		remote-endpoint = <&hdmi_in_vp0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,838 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/pinctrl/rockchip.h>
 | 
			
		||||
#include <dt-bindings/soc/rockchip,vop2.h>
 | 
			
		||||
#include "rk3566.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Pine64 RK3566 Quartz64-A Board";
 | 
			
		||||
	compatible = "pine64,quartz64-a", "rockchip,rk3566";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac1;
 | 
			
		||||
		mmc0 = &sdmmc0;
 | 
			
		||||
		mmc1 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen: chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac1_clkin: external-gmac1-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "gmac1_clkin";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fan: gpio_fan {
 | 
			
		||||
		compatible = "gpio-fan";
 | 
			
		||||
		gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		gpio-fan,speed-map =
 | 
			
		||||
				<   0 0>,
 | 
			
		||||
				<4500 1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&fan_en_h>;
 | 
			
		||||
		#cooling-cells = <2>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	hdmi-con {
 | 
			
		||||
		compatible = "hdmi-connector";
 | 
			
		||||
		type = "a";
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			hdmi_con_in: endpoint {
 | 
			
		||||
				remote-endpoint = <&hdmi_out_con>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led-work {
 | 
			
		||||
			label = "work-led";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			pinctrl-0 = <&work_led_enable_h>;
 | 
			
		||||
			retain-state-suspended;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		led-diy {
 | 
			
		||||
			label = "diy-led";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			pinctrl-0 = <&diy_led_enable_h>;
 | 
			
		||||
			retain-state-suspended;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rk817-sound {
 | 
			
		||||
		compatible = "simple-audio-card";
 | 
			
		||||
		simple-audio-card,format = "i2s";
 | 
			
		||||
		simple-audio-card,name = "Analog RK817";
 | 
			
		||||
		simple-audio-card,mclk-fs = <256>;
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,cpu {
 | 
			
		||||
			sound-dai = <&i2s1_8ch>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,codec {
 | 
			
		||||
			sound-dai = <&rk817>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk817 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
		post-power-on-delay-ms = <100>;
 | 
			
		||||
		power-off-delay-us = <5000000>;
 | 
			
		||||
		reset-gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	spdif_dit: spdif-dit {
 | 
			
		||||
		compatible = "linux,spdif-dit";
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	spdif_sound: spdif-sound {
 | 
			
		||||
		compatible = "simple-audio-card";
 | 
			
		||||
		simple-audio-card,name = "SPDIF";
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,cpu {
 | 
			
		||||
			sound-dai = <&spdif>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,codec {
 | 
			
		||||
			sound-dai = <&spdif_dit>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc12v_dcin: vcc12v_dcin {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc12v_dcin";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* vbus feeds the rk817 usb input.
 | 
			
		||||
	 * With no battery attached, also feeds vcc_bat+
 | 
			
		||||
	 * via ON/OFF_BAT jumper
 | 
			
		||||
	 */
 | 
			
		||||
	vbus: vbus {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vbus";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_pcie_p: vcc3v3-pcie-p-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pcie_enable_h>;
 | 
			
		||||
		regulator-name = "vcc3v3_pcie_p";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_3v3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb: vcc5v0_usb {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* all four ports are controlled by one gpio
 | 
			
		||||
	 * the host ports are sourced from vcc5v0_usb
 | 
			
		||||
	 * the otg port is sourced from vcc5v0_midu
 | 
			
		||||
	 */
 | 
			
		||||
	vcc5v0_usb20_host: vcc5v0_usb20_host {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_usb20_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_usb20_host";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_usb>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb20_otg: vcc5v0_usb20_otg {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		regulator-name = "vcc5v0_usb20_otg";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dcdc_boost>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sd: vcc3v3_sd {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc_sd_h>;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-name = "vcc3v3_sd";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_3v3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* sourced from vbus and vcc_bat+ via rk817 sw5 */
 | 
			
		||||
	vcc_sys: vcc_sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <4400000>;
 | 
			
		||||
		regulator-max-microvolt = <4400000>;
 | 
			
		||||
		vin-supply = <&vbus>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* sourced from vcc_sys, sdio module operates internally at 3.3v */
 | 
			
		||||
	vcc_wl: vcc_wl {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_wl";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu_thermal {
 | 
			
		||||
	trips {
 | 
			
		||||
		cpu_hot: cpu_hot {
 | 
			
		||||
			temperature = <55000>;
 | 
			
		||||
			hysteresis = <2000>;
 | 
			
		||||
			type = "active";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	cooling-maps {
 | 
			
		||||
		map1 {
 | 
			
		||||
			trip = <&cpu_hot>;
 | 
			
		||||
			cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac1 {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc_3v3>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&gmac1m0_miim
 | 
			
		||||
		     &gmac1m0_tx_bus2
 | 
			
		||||
		     &gmac1m0_rx_bus2
 | 
			
		||||
		     &gmac1m0_rgmii_clk
 | 
			
		||||
		     &gmac1m0_clkinout
 | 
			
		||||
		     &gmac1m0_rgmii_bus>;
 | 
			
		||||
	snps,reset-gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	/* Reset time is 20ms, 100ms for rtl8211f */
 | 
			
		||||
	snps,reset-delays-us = <0 20000 100000>;
 | 
			
		||||
	tx_delay = <0x30>;
 | 
			
		||||
	rx_delay = <0x10>;
 | 
			
		||||
	phy-handle = <&rgmii_phy1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	avdd-0v9-supply = <&vdda_0v9>;
 | 
			
		||||
	avdd-1v8-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_in {
 | 
			
		||||
	hdmi_in_vp0: endpoint {
 | 
			
		||||
		remote-endpoint = <&vp0_out_hdmi>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_out {
 | 
			
		||||
	hdmi_out_con: endpoint {
 | 
			
		||||
		remote-endpoint = <&hdmi_con_in>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vdd_cpu: regulator@1c {
 | 
			
		||||
		compatible = "tcs,tcs4525";
 | 
			
		||||
		reg = <0x1c>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_cpu";
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1150000>;
 | 
			
		||||
		regulator-ramp-delay = <2300>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rk817: pmic@20 {
 | 
			
		||||
		compatible = "rockchip,rk817";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
 | 
			
		||||
		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
 | 
			
		||||
		clock-names = "mclk";
 | 
			
		||||
		clocks = <&cru I2S1_MCLKOUT_TX>;
 | 
			
		||||
		clock-output-names = "rk808-clkout1", "rk808-clkout2";
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc_sys>;
 | 
			
		||||
		vcc9-supply = <&dcdc_boost>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_logic: DCDC_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vdd_logic";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_gpu: DCDC_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vdd_gpu";
 | 
			
		||||
					regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v3: DCDC_REG4 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vcc_3v3";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_pmu: LDO_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcca1v8_pmu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda_0v9: LDO_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-name = "vdda_0v9";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-name = "vdda0v9_pmu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_acodec: LDO_REG4 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vccio_acodec";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG5 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_pmu: LDO_REG6 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vcc3v3_pmu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: LDO_REG7 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG8 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc2v8_dvp: LDO_REG9 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <2800000>;
 | 
			
		||||
				regulator-max-microvolt = <2800000>;
 | 
			
		||||
				regulator-name = "vcc2v8_dvp";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			dcdc_boost: BOOST {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <5000000>;
 | 
			
		||||
				regulator-max-microvolt = <5000000>;
 | 
			
		||||
				regulator-name = "boost";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			otg_switch: OTG_SWITCH {
 | 
			
		||||
				regulator-name = "otg_switch";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* i2c3 is exposed on con40
 | 
			
		||||
 * pin 3 - i2c3_sda_m0, pullup to vcc_3v3
 | 
			
		||||
 * pin 5 - i2c3_scl_m0, pullup to vcc_3v3
 | 
			
		||||
 */
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0_8ch {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1_8ch {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&i2s1m0_sclktx
 | 
			
		||||
		     &i2s1m0_lrcktx
 | 
			
		||||
		     &i2s1m0_sdi0
 | 
			
		||||
		     &i2s1m0_sdo0>;
 | 
			
		||||
	rockchip,trcm-sync-tx-only;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio1 {
 | 
			
		||||
	rgmii_phy1: ethernet-phy@0 {
 | 
			
		||||
		compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie2x1 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_reset_h>;
 | 
			
		||||
	reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie_p>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bt {
 | 
			
		||||
		bt_enable_h: bt-enable-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	fan {
 | 
			
		||||
		fan_en_h: fan-en-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		work_led_enable_h: work-led-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		diy_led_enable_h: diy-led-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie_enable_h: pcie-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pcie_reset_h: pcie-reset-h {
 | 
			
		||||
			rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb2 {
 | 
			
		||||
		vcc5v0_usb20_host_en: vcc5v0-usb20-host-en {
 | 
			
		||||
			rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sd {
 | 
			
		||||
		vcc_sd_h: vcc-sd-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmuio1-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	pmuio2-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	vccio1-supply = <&vccio_acodec>;
 | 
			
		||||
	vccio2-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio3-supply = <&vccio_sd>;
 | 
			
		||||
	vccio4-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio5-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio6-supply = <&vcc1v8_dvp>;
 | 
			
		||||
	vccio7-supply = <&vcc_3v3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	vmmc-supply = <&vcc_3v3>;
 | 
			
		||||
	vqmmc-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc3v3_sd>;
 | 
			
		||||
	vqmmc-supply = <&vccio_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc1 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc_wl>;
 | 
			
		||||
	vqmmc-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sfc {
 | 
			
		||||
	pinctrl-0 = <&fspi_pins>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		spi-max-frequency = <24000000>;
 | 
			
		||||
		spi-rx-bus-width = <4>;
 | 
			
		||||
		spi-tx-bus-width = <1>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* spdif is exposed on con40 pin 18 */
 | 
			
		||||
&spdif {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* spi1 is exposed on con40
 | 
			
		||||
 * pin 11 - spi1_mosi_m1
 | 
			
		||||
 * pin 13 - spi1_miso_m1
 | 
			
		||||
 * pin 15 - spi1_clk_m1
 | 
			
		||||
 * pin 17 - spi1_cs0_m1
 | 
			
		||||
 */
 | 
			
		||||
&spi1 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&spi1m1_cs0 &spi1m1_pins>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	/* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	/* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
	rockchip,hw-tshut-polarity = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* uart0 is exposed on con40
 | 
			
		||||
 * pin 12 - uart0_tx
 | 
			
		||||
 * pin 14 - uart0_rx
 | 
			
		||||
 */
 | 
			
		||||
&uart0 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart0_xfer>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart1 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	uart-has-rtscts;
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm43438-bt";
 | 
			
		||||
		clocks = <&rk817 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		host-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
 | 
			
		||||
		vbat-supply = <&vcc_sys>;
 | 
			
		||||
		vddio-supply = <&vcca1v8_pmu>;
 | 
			
		||||
		max-speed = <3000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* uart2 is exposed on con40
 | 
			
		||||
 * pin 8 - uart2_tx_m0_debug
 | 
			
		||||
 * pin 10 - uart2_rx_m0_debug
 | 
			
		||||
 */
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* usb3 controller is muxed with sata1 */
 | 
			
		||||
&usb_host1_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb20_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb20_otg>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb20_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb20_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
 | 
			
		||||
	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vp0 {
 | 
			
		||||
	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
 | 
			
		||||
		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
 | 
			
		||||
		remote-endpoint = <&hdmi_in_vp0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,737 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/pinctrl/rockchip.h>
 | 
			
		||||
#include <dt-bindings/soc/rockchip,vop2.h>
 | 
			
		||||
#include "rk3566.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Pine64 RK3566 Quartz64-B Board";
 | 
			
		||||
	compatible = "pine64,quartz64-b", "rockchip,rk3566";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac1;
 | 
			
		||||
		mmc0 = &sdmmc0;
 | 
			
		||||
		mmc1 = &sdhci;
 | 
			
		||||
		mmc2 = &sdmmc1;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen: chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac1_clkin: external-gmac1-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "gmac1_clkin";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	hdmi-con {
 | 
			
		||||
		compatible = "hdmi-connector";
 | 
			
		||||
		type = "a";
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			hdmi_con_in: endpoint {
 | 
			
		||||
				remote-endpoint = <&hdmi_out_con>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led-user {
 | 
			
		||||
			label = "user-led";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			pinctrl-0 = <&user_led_enable_h>;
 | 
			
		||||
			retain-state-suspended;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sound {
 | 
			
		||||
		compatible = "simple-audio-card";
 | 
			
		||||
		simple-audio-card,format = "i2s";
 | 
			
		||||
		simple-audio-card,name = "Analog RK809";
 | 
			
		||||
		simple-audio-card,mclk-fs = <256>;
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,cpu {
 | 
			
		||||
			sound-dai = <&i2s1_8ch>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,codec {
 | 
			
		||||
			sound-dai = <&rk809>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk809 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		post-power-on-delay-ms = <100>;
 | 
			
		||||
		power-off-delay-us = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_pcie_p: vcc3v3-pcie-p-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pcie_enable_h>;
 | 
			
		||||
		regulator-name = "vcc3v3_pcie_p";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc_3v3>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_in: vcc5v0-in-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_in";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_in>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb30_host: vcc5v0-usb30-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb30_host";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_usb30_host_en_h>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb_otg";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_usb_otg_en_h>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac1 {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	phy-supply = <&vcc_3v3>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&gmac1m1_miim
 | 
			
		||||
		     &gmac1m1_tx_bus2
 | 
			
		||||
		     &gmac1m1_rx_bus2
 | 
			
		||||
		     &gmac1m1_rgmii_clk
 | 
			
		||||
		     &gmac1m1_clkinout
 | 
			
		||||
		     &gmac1m1_rgmii_bus>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	/* Reset time is 20ms, 100ms for rtl8211f, also works well here */
 | 
			
		||||
	snps,reset-delays-us = <0 20000 100000>;
 | 
			
		||||
	tx_delay = <0x4f>;
 | 
			
		||||
	rx_delay = <0x24>;
 | 
			
		||||
	phy-handle = <&rgmii_phy1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	avdd-0v9-supply = <&vdda0v9_image>;
 | 
			
		||||
	avdd-1v8-supply = <&vcca1v8_image>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_in {
 | 
			
		||||
	hdmi_in_vp0: endpoint {
 | 
			
		||||
		remote-endpoint = <&vp0_out_hdmi>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_out {
 | 
			
		||||
	hdmi_out_con: endpoint {
 | 
			
		||||
		remote-endpoint = <&hdmi_con_in>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vdd_cpu: regulator@1c {
 | 
			
		||||
		compatible = "tcs,tcs4525";
 | 
			
		||||
		reg = <0x1c>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_cpu";
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1150000>;
 | 
			
		||||
		regulator-ramp-delay = <2300>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rk809: pmic@20 {
 | 
			
		||||
		compatible = "rockchip,rk809";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
 | 
			
		||||
		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
 | 
			
		||||
		clock-names = "mclk";
 | 
			
		||||
		clocks = <&cru I2S1_MCLKOUT_TX>;
 | 
			
		||||
		clock-output-names = "rk808-clkout1", "rk808-clkout2";
 | 
			
		||||
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_log: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_log";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_gpu: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_gpu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_npu: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vdd_npu";
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG5 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_image: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vdda0v9_image";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda_0v9: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vdda_0v9";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdda0v9_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_acodec: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vccio_acodec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_pmu: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc3v3_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_1v8: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_pmu: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcca1v8_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_image: LDO_REG9 {
 | 
			
		||||
				regulator-name = "vcca1v8_image";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v3: SWITCH_REG1 {
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-name = "vcc_3v3";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_sd: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_sd";
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* i2c2_m1 exposed on csi port, pulled up to vcc_3v3 */
 | 
			
		||||
&i2c2 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&i2c2m1_xfer>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* i2c3_m1 exposed on dsi port, pulled up to vcc_3v3 */
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&i2c3m1_xfer>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c4_m0 is exposed on PI40, pulled up to vcc_3v3
 | 
			
		||||
 * pin 27 - i2c4_sda_m0
 | 
			
		||||
 * pin 28 - i2c4_scl_m0
 | 
			
		||||
 */
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c5_m0 is exposed on PI40
 | 
			
		||||
 * pin 29 - i2c5_scl_m0
 | 
			
		||||
 * pin 31 - i2c5_sda_m0
 | 
			
		||||
 */
 | 
			
		||||
&i2c5 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0_8ch {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1_8ch {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&i2s1m0_sclktx
 | 
			
		||||
		     &i2s1m0_lrcktx
 | 
			
		||||
		     &i2s1m0_sdi0
 | 
			
		||||
		     &i2s1m0_sdo0>;
 | 
			
		||||
	rockchip,trcm-sync-tx-only;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio1 {
 | 
			
		||||
	rgmii_phy1: ethernet-phy@1 {
 | 
			
		||||
		compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0x1>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie2x1 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_reset_h>;
 | 
			
		||||
	reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie_p>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bt {
 | 
			
		||||
		bt_enable_h: bt-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		user_led_enable_h: user-led-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie_enable_h: pcie-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pcie_reset_h: pcie-reset-h {
 | 
			
		||||
			rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int: pmic_int {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb {
 | 
			
		||||
		vcc5v0_usb30_host_en_h: vcc5v0-usb30-host-en_h {
 | 
			
		||||
			rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vcc5v0_usb_otg_en_h: vcc5v0-usb-otg-en_h {
 | 
			
		||||
			rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pmuio1-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	pmuio2-supply = <&vcca1v8_pmu>;
 | 
			
		||||
	vccio1-supply = <&vccio_acodec>;
 | 
			
		||||
	vccio2-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio3-supply = <&vccio_sd>;
 | 
			
		||||
	vccio4-supply = <&vcca1v8_pmu>;
 | 
			
		||||
	vccio5-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio6-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio7-supply = <&vcc_3v3>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	vmmc-supply = <&vcc_3v3>;
 | 
			
		||||
	vqmmc-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
 | 
			
		||||
	sd-uhs-sdr50;
 | 
			
		||||
	vmmc-supply = <&vcc3v3_sd>;
 | 
			
		||||
	vqmmc-supply = <&vccio_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc1 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
 | 
			
		||||
	vmmc-supply = <&vcc3v3_sys>;
 | 
			
		||||
	vqmmc-supply = <&vcca1v8_pmu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sfc {
 | 
			
		||||
	pinctrl-0 = <&fspi_pins>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		spi-max-frequency = <24000000>;
 | 
			
		||||
		spi-rx-bus-width = <4>;
 | 
			
		||||
		spi-tx-bus-width = <1>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart1 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	uart-has-rtscts;
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm4345c5";
 | 
			
		||||
		clocks = <&rk809 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
 | 
			
		||||
		vbat-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcca1v8_pmu>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * uart2_m0 is exposed on PI40
 | 
			
		||||
 * pin 8  - uart2_tx_m0
 | 
			
		||||
 * pin 10 - uart2_rx_m0
 | 
			
		||||
 */
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb30_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb_otg>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb30_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
 | 
			
		||||
	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vp0 {
 | 
			
		||||
	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
 | 
			
		||||
		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
 | 
			
		||||
		remote-endpoint = <&hdmi_in_vp0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,281 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2022 Radxa Limited
 | 
			
		||||
 * Copyright (c) 2022 Amarula Solutions(India)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/soc/rockchip,vop2.h>
 | 
			
		||||
#include "rk3566.dtsi"
 | 
			
		||||
#include "rk3566-radxa-cm3.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Radxa Compute Module 3(CM3) IO Board";
 | 
			
		||||
	compatible = "radxa,cm3-io", "radxa,cm3", "rockchip,rk3566";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac1;
 | 
			
		||||
		mmc1 = &sdmmc0;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen: chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac1_clkin: external-gmac1-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "gmac1_clkin";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	hdmi-con {
 | 
			
		||||
		compatible = "hdmi-connector";
 | 
			
		||||
		type = "a";
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			hdmi_con_in: endpoint {
 | 
			
		||||
				remote-endpoint = <&hdmi_out_con>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led-1 {
 | 
			
		||||
			gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
			function = LED_FUNCTION_ACTIVITY;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			pinctrl-0 = <&pi_nled_activity>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb30: vcc5v0-usb30-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb30";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_usb30_en_h>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcca1v8_image: vcca1v8-image-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcca1v8_image";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc_1v8_p>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vdda0v9_image: vdda0v9-image-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcca0v9_image";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <900000>;
 | 
			
		||||
		regulator-max-microvolt = <900000>;
 | 
			
		||||
		vin-supply = <&vdda_0v9>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac1 {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>;
 | 
			
		||||
	assigned-clock-rates = <0>, <125000000>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-handle = <&rgmii_phy1>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&gmac1m0_miim
 | 
			
		||||
		     &gmac1m0_tx_bus2
 | 
			
		||||
		     &gmac1m0_rx_bus2
 | 
			
		||||
		     &gmac1m0_rgmii_clk
 | 
			
		||||
		     &gmac1m0_rgmii_bus
 | 
			
		||||
		     &gmac1m0_clkinout>;
 | 
			
		||||
	snps,reset-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	/* Reset time is 20ms, 100ms for rtl8211f */
 | 
			
		||||
	snps,reset-delays-us = <0 20000 100000>;
 | 
			
		||||
	tx_delay = <0x46>;
 | 
			
		||||
	rx_delay = <0x2e>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	avdd-0v9-supply = <&vdda0v9_image>;
 | 
			
		||||
	avdd-1v8-supply = <&vcca1v8_image>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_in {
 | 
			
		||||
	hdmi_in_vp0: endpoint {
 | 
			
		||||
		remote-endpoint = <&vp0_out_hdmi>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_out {
 | 
			
		||||
	hdmi_out_con: endpoint {
 | 
			
		||||
		remote-endpoint = <&hdmi_con_in>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio1 {
 | 
			
		||||
	rgmii_phy1: ethernet-phy@0 {
 | 
			
		||||
		compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0x0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	gmac1 {
 | 
			
		||||
		gmac1m0_miim: gmac1m0-miim {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				/* gmac1_mdcm0 */
 | 
			
		||||
				<3 RK_PC4 3 &pcfg_pull_none_drv_level_15>,
 | 
			
		||||
				/* gmac1_mdiom0 */
 | 
			
		||||
				<3 RK_PC5 3 &pcfg_pull_none_drv_level_15>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gmac1m0_rx_bus2: gmac1m0-rx-bus2 {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				/* gmac1_rxd0m0 */
 | 
			
		||||
				<3 RK_PB1 3 &pcfg_pull_none_drv_level_15>,
 | 
			
		||||
				/* gmac1_rxd1m0 */
 | 
			
		||||
				<3 RK_PB2 3 &pcfg_pull_none_drv_level_15>,
 | 
			
		||||
				/* gmac1_rxdvcrsm0 */
 | 
			
		||||
				<3 RK_PB3 3 &pcfg_pull_none_drv_level_15>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gmac1m0_tx_bus2: gmac1m0-tx-bus2 {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				/* gmac1_txd0m0 */
 | 
			
		||||
				<3 RK_PB5 3 &pcfg_pull_none_drv_level_15>,
 | 
			
		||||
				/* gmac1_txd1m0 */
 | 
			
		||||
				<3 RK_PB6 3 &pcfg_pull_none_drv_level_15>,
 | 
			
		||||
				/* gmac1_txenm0 */
 | 
			
		||||
				<3 RK_PB7 3 &pcfg_pull_none_drv_level_15>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gmac1m0_rgmii_clk: gmac1m0-rgmii-clk {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				/* gmac1_rxclkm0 */
 | 
			
		||||
				<3 RK_PA7 3 &pcfg_pull_none_drv_level_15>,
 | 
			
		||||
				/* gmac1_txclkm0 */
 | 
			
		||||
				<3 RK_PA6 3 &pcfg_pull_none_drv_level_15>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gmac1m0_rgmii_bus: gmac1m0-rgmii-bus {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				/* gmac1_rxd2m0 */
 | 
			
		||||
				<3 RK_PA4 3 &pcfg_pull_none_drv_level_15>,
 | 
			
		||||
				/* gmac1_rxd3m0 */
 | 
			
		||||
				<3 RK_PA5 3 &pcfg_pull_none_drv_level_15>,
 | 
			
		||||
				/* gmac1_txd2m0 */
 | 
			
		||||
				<3 RK_PA2 3 &pcfg_pull_none_drv_level_15>,
 | 
			
		||||
				/* gmac1_txd3m0 */
 | 
			
		||||
				<3 RK_PA3 3 &pcfg_pull_none_drv_level_15>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gmac1m0_clkinout: gmac1m0-clkinout {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				/* gmac1_mclkinoutm0 */
 | 
			
		||||
				<3 RK_PC0 3 &pcfg_pull_none_drv_level_15>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		pi_nled_activity: pi-nled-activity {
 | 
			
		||||
			rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdcard {
 | 
			
		||||
		sdmmc_pwren: sdmmc-pwren {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb {
 | 
			
		||||
		vcc5v0_usb30_en_h: vcc5v0-host-en-h {
 | 
			
		||||
			rockchip,pins = <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	vqmmc-supply = <&vccio_sd>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_pwren>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb30>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
 | 
			
		||||
	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vp0 {
 | 
			
		||||
	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
 | 
			
		||||
		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
 | 
			
		||||
		remote-endpoint = <&hdmi_in_vp0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,425 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2022 Radxa Limited
 | 
			
		||||
 * Copyright (c) 2022 Amarula Solutions(India)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/leds/common.h>
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	compatible = "radxa,cm3", "rockchip,rk3566";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led-0 {
 | 
			
		||||
			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
			function = LED_FUNCTION_STATUS;
 | 
			
		||||
			linux,default-trigger = "timer";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			pinctrl-0 = <&user_led2>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sys: vcc-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_1v8: vcc-1v8-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_1v8";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc_1v8_p>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_3v3: vcc-3v3-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_3v3";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcca_1v8: vcca-1v8-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcca_1v8";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc_1v8_p>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: pwrseq-sdio {
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk817 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_reg_on_h>;
 | 
			
		||||
		reset-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu_npu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vdd_cpu: regulator@1c {
 | 
			
		||||
		compatible = "tcs,tcs4525";
 | 
			
		||||
		reg = <0x1c>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_cpu";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <712500>;
 | 
			
		||||
		regulator-max-microvolt = <1390000>;
 | 
			
		||||
		regulator-ramp-delay = <2300>;
 | 
			
		||||
		vin-supply = <&vcc_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rk817: pmic@20 {
 | 
			
		||||
		compatible = "rockchip,rk817";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "rk817-clkout1", "rk817-clkout2";
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc_sys>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_logic: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_logic";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_gpu_npu: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_gpu_npu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_sys: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vcc3v3_sys";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_pmu: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vcca1v8_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda_0v9: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vdda_0v9";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdda0v9_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_acodec: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vccio_acodec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_pmu: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc3v3_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8_p: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcc_1v8_p";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc1v8_dvp: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcc1v8_dvp";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc2v8_dvp: LDO_REG9 {
 | 
			
		||||
				regulator-name = "vcc2v8_dvp";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <2800000>;
 | 
			
		||||
				regulator-max-microvolt = <2800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		bt_host_wake_h: bt-host-wake-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_reg_on_h: bt-reg-on-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_host_h: bt-wake-host-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		user_led2: user-led2 {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi {
 | 
			
		||||
		wifi_reg_on_h: wifi-reg-on-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wifi_host_wake_h: wifi-host-wake-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmuio1-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	pmuio2-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio1-supply = <&vccio_acodec>;
 | 
			
		||||
	vccio2-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio3-supply = <&vccio_sd>;
 | 
			
		||||
	vccio4-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio5-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio6-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio7-supply = <&vcc_3v3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc1 {
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_clk &sdmmc1_cmd>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc_3v3>;
 | 
			
		||||
	vqmmc-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	wifi@1 {
 | 
			
		||||
		compatible = "brcm,bcm43455-fmac";
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
		interrupt-parent = <&gpio2>;
 | 
			
		||||
		interrupts = <RK_PC1 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		interrupt-names = "host-wake";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_host_wake_h>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	max-frequency = <200000000>;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
 | 
			
		||||
	vmmc-supply = <&vcc_3v3>;
 | 
			
		||||
	vqmmc-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart1 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart1m0_ctsn &uart1m0_rtsn &uart1m0_xfer>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm4345c5";
 | 
			
		||||
		clocks = <&rk817 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		reset-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_h &bt_reg_on_h &bt_wake_host_h>;
 | 
			
		||||
		vbat-supply = <&vcc_3v3>;
 | 
			
		||||
		vddio-supply = <&vcc_1v8>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,198 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/input/input.h>
 | 
			
		||||
#include <dt-bindings/leds/common.h>
 | 
			
		||||
#include <dt-bindings/pinctrl/rockchip.h>
 | 
			
		||||
 | 
			
		||||
#include "rk3566-soquartz.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "PINE64 RK3566 SOQuartz on Blade carrier board";
 | 
			
		||||
	compatible = "pine64,soquartz-blade", "pine64,soquartz", "rockchip,rk3566";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac1;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* labeled VCC3V0_SD in schematic to not conflict with PMIC regulator */
 | 
			
		||||
	vcc3v0_sd: vcc3v0-sd-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v0_sd";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* labeled VCC_SSD in schematic */
 | 
			
		||||
	vcc3v3_pcie_p: vcc3v3-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_pcie_p";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vbus>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v_dcin: vcc5v-dcin-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v_dcin";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy2 {
 | 
			
		||||
	phy-supply = <&vcc3v3_sys>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c1 is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 80 - SCL0 - i2c1_scl_m0, pullup to vcc3v3_pmu
 | 
			
		||||
 * pin 82 - SDA0 - i2c1_sda_m0, pullup to vcc3v3_pmu
 | 
			
		||||
 */
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c2 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 56 - GPIO3 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch
 | 
			
		||||
 * pin 58 - GPIO2 - i2c2_sda_m1, pullup to vcc_3v3
 | 
			
		||||
 */
 | 
			
		||||
&i2c2 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c3 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 35 - ID_SC(GPIO28) - i2c3_scl_m0, pullup to vcc_3v3
 | 
			
		||||
 * pin 36 - ID_SD(GPIO27) - i2c3_sda_m0, pullup to vcc_3v3
 | 
			
		||||
 */
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c4 is exposed on CM2 / Module1B - to PI40
 | 
			
		||||
 * pin 45 - GPIO24 - i2c4_scl_m1
 | 
			
		||||
 * pin 47 - GPIO23 - i2c4_sda_m1
 | 
			
		||||
 */
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2s1_8ch is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 24 - GPIO26 - i2s1_sdi1_m1
 | 
			
		||||
 * pin 25 - GPIO21 - i2s1_sdo0_m1
 | 
			
		||||
 * pin 26 - GPIO19 - i2s1_lrck_tx_m1
 | 
			
		||||
 * pin 27 - GPIO20 - i2s1_sdi0_m1
 | 
			
		||||
 * pin 29 - GPIO16 - i2s1_sdi3_m1
 | 
			
		||||
 * pin 30 - GPIO6  - i2s1_sdi2_m1
 | 
			
		||||
 * pin 40 - GPIO9  - i2s1_sdo1_m1, shared with spi3
 | 
			
		||||
 * pin 41 - GPIO25 - i2s1_sdo2_m1
 | 
			
		||||
 * pin 49 - GPIO18 - i2s1_sclk_tx_m1
 | 
			
		||||
 * pin 50 - GPIO17 - i2s1_mclk_m1
 | 
			
		||||
 * pin 56 - GPIO3  - i2s1_sdo3_m1, shared with i2c2
 | 
			
		||||
 */
 | 
			
		||||
&i2s1_8ch {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&led_diy {
 | 
			
		||||
	color = <LED_COLOR_ID_RED>;
 | 
			
		||||
	function = LED_FUNCTION_DISK_ACTIVITY;
 | 
			
		||||
	linux,default-trigger = "disk-activity";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&led_work {
 | 
			
		||||
	color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
	function = LED_FUNCTION_STATUS;
 | 
			
		||||
	linux,default-trigger = "heartbeat";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie2x1 {
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie_p>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&rgmii_phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * saradc is exposed on CM1 / Module1A - to J2
 | 
			
		||||
 * pin 94 - AIN1 - saradc_vin3
 | 
			
		||||
 * pin 96 - AIN0 - saradc_vin2
 | 
			
		||||
 */
 | 
			
		||||
&saradc {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	vmmc-supply = <&vcc3v0_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * spi3 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 37 - GPIO7  - spi3_cs1_m0
 | 
			
		||||
 * pin 38 - GPIO11 - spi3_clk_m0
 | 
			
		||||
 * pin 39 - GPIO8  - spi3_cs0_m0
 | 
			
		||||
 * pin 40 - GPIO9  - spi3_miso_m0, shared with i2s1_8ch
 | 
			
		||||
 * pin 44 - GPIO10 - spi3_mosi_m0
 | 
			
		||||
 */
 | 
			
		||||
&spi3 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * uart2 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 51 - GPIO15 - uart2_rx_m0
 | 
			
		||||
 * pin 55 - GPIO14 - uart2_tx_m0
 | 
			
		||||
 */
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * uart7 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 46 - GPIO22 - uart7_tx_m2
 | 
			
		||||
 * pin 47 - GPIO23 - uart7_rx_m2
 | 
			
		||||
 */
 | 
			
		||||
&uart7 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	phy-supply = <&vbus>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vbus {
 | 
			
		||||
	vin-supply = <&vcc5v_dcin>;
 | 
			
		||||
};
 | 
			
		||||
@ -1,196 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "rk3566-soquartz.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Pine64 RK3566 SoQuartz with CM4-IO Carrier Board";
 | 
			
		||||
	compatible = "pine64,soquartz-cm4io", "pine64,soquartz", "rockchip,rk3566";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac1;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* labeled +12v in schematic */
 | 
			
		||||
	vcc12v_dcin: vcc12v-dcin-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc12v_dcin";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* labeled +5v in schematic */
 | 
			
		||||
	vcc_5v: vcc-5v-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_5v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc_sd_pwr: vcc-sd-pwr-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc_sd_pwr";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* phy for pcie */
 | 
			
		||||
&combphy2 {
 | 
			
		||||
	phy-supply = <&vcc3v3_sys>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c1 is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 80 - SCL0 - i2c1_scl_m0, pullup to vcc3v3_pmu
 | 
			
		||||
 * pin 82 - SDA0 - i2c1_sda_m0, pullup to vcc3v3_pmu
 | 
			
		||||
 */
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * the rtc interrupt is tied to PMIC_PWRON,
 | 
			
		||||
	 * it will force reset the board if triggered.
 | 
			
		||||
	 */
 | 
			
		||||
	pcf85063: rtc@51 {
 | 
			
		||||
		compatible = "nxp,pcf85063";
 | 
			
		||||
		reg = <0x51>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c2 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 56 - GPIO3 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch
 | 
			
		||||
 * pin 58 - GPIO2 - i2c2_sda_m1, pullup to vcc_3v3
 | 
			
		||||
 */
 | 
			
		||||
&i2c2 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c3 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 35 - ID_SC(GPIO28) - i2c3_scl_m0, pullup to vcc_3v3
 | 
			
		||||
 * pin 36 - ID_SD(GPIO27) - i2c3_sda_m0, pullup to vcc_3v3
 | 
			
		||||
 */
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c4 is exposed on CM2 / Module1B - to PI40
 | 
			
		||||
 * pin 45 - GPIO24 - i2c4_scl_m1
 | 
			
		||||
 * pin 47 - GPIO23 - i2c4_sda_m1
 | 
			
		||||
 */
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2s1_8ch is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 24 - GPIO26 - i2s1_sdi1_m1
 | 
			
		||||
 * pin 25 - GPIO21 - i2s1_sdo0_m1
 | 
			
		||||
 * pin 26 - GPIO19 - i2s1_lrck_tx_m1
 | 
			
		||||
 * pin 27 - GPIO20 - i2s1_sdi0_m1
 | 
			
		||||
 * pin 29 - GPIO16 - i2s1_sdi3_m1
 | 
			
		||||
 * pin 30 - GPIO6  - i2s1_sdi2_m1
 | 
			
		||||
 * pin 40 - GPIO9  - i2s1_sdo1_m1, shared with spi3
 | 
			
		||||
 * pin 41 - GPIO25 - i2s1_sdo2_m1
 | 
			
		||||
 * pin 49 - GPIO18 - i2s1_sclk_tx_m1
 | 
			
		||||
 * pin 50 - GPIO17 - i2s1_mclk_m1
 | 
			
		||||
 * pin 56 - GPIO3  - i2s1_sdo3_m1, shared with i2c2
 | 
			
		||||
 */
 | 
			
		||||
&i2s1_8ch {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&led_diy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&led_work {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie2x1 {
 | 
			
		||||
	vpcie3v3-supply = <&vcc_3v3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&rgmii_phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * saradc is exposed on CM1 / Module1A - to J2
 | 
			
		||||
 * pin 94 - AIN1 - saradc_vin3
 | 
			
		||||
 * pin 96 - AIN0 - saradc_vin2
 | 
			
		||||
 */
 | 
			
		||||
&saradc {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	vmmc-supply = <&vcc_sd_pwr>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *  spi3 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 37 - GPIO7  - spi3_cs1_m0
 | 
			
		||||
 * pin 38 - GPIO11 - spi3_clk_m0
 | 
			
		||||
 * pin 39 - GPIO8  - spi3_cs0_m0
 | 
			
		||||
 * pin 40 - GPIO9  - spi3_miso_m0, shared with i2s1_8ch
 | 
			
		||||
 * pin 44 - GPIO10 - spi3_mosi_m0
 | 
			
		||||
 */
 | 
			
		||||
&spi3 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * uart2 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 51 - GPIO15 - uart2_rx_m0
 | 
			
		||||
 * pin 55 - GPIO14 - uart2_tx_m0
 | 
			
		||||
 */
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * uart7 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 46 - GPIO22 - uart7_tx_m2
 | 
			
		||||
 * pin 47 - GPIO23 - uart7_rx_m2
 | 
			
		||||
 */
 | 
			
		||||
&uart7 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	phy-supply = <&vcc_5v>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vbus {
 | 
			
		||||
	vin-supply = <&vcc_5v>;
 | 
			
		||||
};
 | 
			
		||||
@ -1,236 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "rk3566-soquartz.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "PINE64 RK3566 SOQuartz on Model A carrier board";
 | 
			
		||||
	compatible = "pine64,soquartz-model-a", "pine64,soquartz", "rockchip,rk3566";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac1;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* labeled DCIN_12V in schematic */
 | 
			
		||||
	vcc12v_dcin: vcc12v-dcin-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc12v_dcin";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb: vcc5v0-usb-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Labelled VCC3V0_SD in schematic to not conflict with PMIC
 | 
			
		||||
	 * regulator, it's 3.3v in actuality
 | 
			
		||||
	 */
 | 
			
		||||
	vcc3v0_sd: vcc3v0-sd-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v0_sd";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_pcie: vcc3v3-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_pcie";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc12v_pcie: vcc12v-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc12v_pcie";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
		vin-supply = <&vcc12v_dcin>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* phy for pcie */
 | 
			
		||||
&combphy2 {
 | 
			
		||||
	phy-supply = <&vcc3v3_sys>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c1 is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 80 - SCL0 - i2c1_scl_m0, pullup to vcc3v3_pmu
 | 
			
		||||
 * pin 82 - SDA0 - i2c1_sda_m0, pullup to vcc3v3_pmu
 | 
			
		||||
 */
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * the rtc interrupt is tied to PMIC_PWRON,
 | 
			
		||||
	 * it will force reset the board if triggered.
 | 
			
		||||
	 */
 | 
			
		||||
	pcf85063: rtc@51 {
 | 
			
		||||
		compatible = "nxp,pcf85063";
 | 
			
		||||
		reg = <0x51>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c2 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 56 - GPIO3 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch
 | 
			
		||||
 * pin 58 - GPIO2 - i2c2_sda_m1, pullup to vcc_3v3
 | 
			
		||||
 */
 | 
			
		||||
&i2c2 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c3 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 35 - ID_SC(GPIO28) - i2c3_scl_m0, pullup to vcc_3v3
 | 
			
		||||
 * pin 36 - ID_SD(GPIO27) - i2c3_sda_m0, pullup to vcc_3v3
 | 
			
		||||
 */
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c4 is exposed on CM2 / Module1B - to PI40
 | 
			
		||||
 * pin 45 - GPIO24 - i2c4_scl_m1
 | 
			
		||||
 * pin 47 - GPIO23 - i2c4_sda_m1
 | 
			
		||||
 */
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2s1_8ch is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 24 - GPIO26 - i2s1_sdi1_m1
 | 
			
		||||
 * pin 25 - GPIO21 - i2s1_sdo0_m1
 | 
			
		||||
 * pin 26 - GPIO19 - i2s1_lrck_tx_m1
 | 
			
		||||
 * pin 27 - GPIO20 - i2s1_sdi0_m1
 | 
			
		||||
 * pin 29 - GPIO16 - i2s1_sdi3_m1
 | 
			
		||||
 * pin 30 - GPIO6  - i2s1_sdi2_m1
 | 
			
		||||
 * pin 40 - GPIO9  - i2s1_sdo1_m1, shared with spi3
 | 
			
		||||
 * pin 41 - GPIO25 - i2s1_sdo2_m1
 | 
			
		||||
 * pin 49 - GPIO18 - i2s1_sclk_tx_m1
 | 
			
		||||
 * pin 50 - GPIO17 - i2s1_mclk_m1
 | 
			
		||||
 * pin 56 - GPIO3  - i2s1_sdo3_m1, shared with i2c2
 | 
			
		||||
 */
 | 
			
		||||
&i2s1_8ch {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&led_diy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&led_work {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie2x1 {
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&rgmii_phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&rgmii_phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * saradc is exposed on CM1 / Module1A - to J2
 | 
			
		||||
 * pin 94 - AIN1 - saradc_vin3
 | 
			
		||||
 * pin 96 - AIN0 - saradc_vin2
 | 
			
		||||
 */
 | 
			
		||||
&saradc {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * vmmc-supply is vcc3v3_sd on v1.0 and vcc3v0_sd on v1.1+
 | 
			
		||||
 * the soquartz SoM has SDMMC_PWR (CM1 pin 75) hardwired to vcc3v3_sys,
 | 
			
		||||
 * so we use vcc3v3_sd here to ensure the regulator is enabled on older boards.
 | 
			
		||||
 */
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	vmmc-supply = <&vcc3v3_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * spi3 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 37 - GPIO7  - spi3_cs1_m0
 | 
			
		||||
 * pin 38 - GPIO11 - spi3_clk_m0
 | 
			
		||||
 * pin 39 - GPIO8  - spi3_cs0_m0
 | 
			
		||||
 * pin 40 - GPIO9  - spi3_miso_m0, shared with i2s1_8ch
 | 
			
		||||
 * pin 44 - GPIO10 - spi3_mosi_m0
 | 
			
		||||
 */
 | 
			
		||||
&spi3 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * uart2 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 51 - GPIO15 - uart2_rx_m0
 | 
			
		||||
 * pin 55 - GPIO14 - uart2_tx_m0
 | 
			
		||||
 */
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * uart7 is exposed on CM1 / Module1A - to PI40
 | 
			
		||||
 * pin 46 - GPIO22 - uart7_tx_m2
 | 
			
		||||
 * pin 47 - GPIO23 - uart7_rx_m2
 | 
			
		||||
 */
 | 
			
		||||
&uart7 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vbus {
 | 
			
		||||
	vin-supply = <&vcc5v0_usb>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vcc3v3_sd {
 | 
			
		||||
	regulator-always-on;
 | 
			
		||||
	regulator-boot-on;
 | 
			
		||||
	regulator-min-microvolt = <3300000>;
 | 
			
		||||
	regulator-max-microvolt = <3300000>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@ -1,684 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/pinctrl/rockchip.h>
 | 
			
		||||
#include <dt-bindings/soc/rockchip,vop2.h>
 | 
			
		||||
#include "rk3566.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Pine64 RK3566 SoQuartz SOM";
 | 
			
		||||
	compatible = "pine64,soquartz", "rockchip,rk3566";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		mmc0 = &sdmmc0;
 | 
			
		||||
		mmc1 = &sdhci;
 | 
			
		||||
		mmc2 = &sdmmc1;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen: chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gmac1_clkin: external-gmac1-clock {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		clock-frequency = <125000000>;
 | 
			
		||||
		clock-output-names = "gmac1_clkin";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	hdmi-con {
 | 
			
		||||
		compatible = "hdmi-connector";
 | 
			
		||||
		type = "a";
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			hdmi_con_in: endpoint {
 | 
			
		||||
				remote-endpoint = <&hdmi_out_con>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led_diy: led-diy {
 | 
			
		||||
			label = "diy-led";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			pinctrl-0 = <&diy_led_enable_h>;
 | 
			
		||||
			retain-state-suspended;
 | 
			
		||||
			status = "disabled";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		led_work: led-work {
 | 
			
		||||
			label = "work-led";
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			pinctrl-0 = <&work_led_enable_h>;
 | 
			
		||||
			retain-state-suspended;
 | 
			
		||||
			status = "disabled";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
		clocks = <&rk809 1>;
 | 
			
		||||
		clock-names = "ext_clock";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&wifi_enable_h>;
 | 
			
		||||
		reset-gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vbus: vbus-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vbus";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* sourced from vbus, vbus is provided by the carrier board */
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vbus>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac1 {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-supply = <&vcc_3v3>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&gmac1m0_miim
 | 
			
		||||
		     &gmac1m0_tx_bus2
 | 
			
		||||
		     &gmac1m0_rx_bus2
 | 
			
		||||
		     &gmac1m0_rgmii_clk
 | 
			
		||||
		     &gmac1m0_clkinout
 | 
			
		||||
		     &gmac1m0_rgmii_bus>;
 | 
			
		||||
	snps,reset-gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	/* Reset time is 20ms, 100ms for rtl8211f, also works well here */
 | 
			
		||||
	snps,reset-delays-us = <0 20000 100000>;
 | 
			
		||||
	tx_delay = <0x30>;
 | 
			
		||||
	rx_delay = <0x10>;
 | 
			
		||||
	phy-handle = <&rgmii_phy1>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio0 {
 | 
			
		||||
	nextrst-hog {
 | 
			
		||||
		gpio-hog;
 | 
			
		||||
		/*
 | 
			
		||||
		 * GPIO_ACTIVE_LOW + output-low here means that the pin is set
 | 
			
		||||
		 * to high, because output-low decides the value pre-inversion.
 | 
			
		||||
		 */
 | 
			
		||||
		gpios = <RK_PA5 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		line-name = "nEXTRST";
 | 
			
		||||
		output-low;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	avdd-0v9-supply = <&vdda0v9_image>;
 | 
			
		||||
	avdd-1v8-supply = <&vcca1v8_image>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_in {
 | 
			
		||||
	hdmi_in_vp0: endpoint {
 | 
			
		||||
		remote-endpoint = <&vp0_out_hdmi>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_out {
 | 
			
		||||
	hdmi_out_con: endpoint {
 | 
			
		||||
		remote-endpoint = <&hdmi_con_in>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vdd_cpu: regulator@1c {
 | 
			
		||||
		compatible = "tcs,tcs4525";
 | 
			
		||||
		reg = <0x1c>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_cpu";
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1150000>;
 | 
			
		||||
		regulator-ramp-delay = <2300>;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rk809: pmic@20 {
 | 
			
		||||
		compatible = "rockchip,rk809";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-output-names = "rk808-clkout1", "rk808-clkout2";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int_l>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		vcc1-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_logic: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_logic";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_gpu: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_gpu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
					regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_npu: DCDC_REG4 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-name = "vdd_npu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG5 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_image: LDO_REG1 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-name = "vdda0v9_image";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda_0v9: LDO_REG2 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-name = "vdda_0v9";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
				regulator-name = "vdda0v9_pmu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_acodec: LDO_REG4 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vccio_acodec";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG5 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_pmu: LDO_REG6 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
				regulator-name = "vcc3v3_pmu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_1v8: LDO_REG7 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcca_1v8";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_pmu: LDO_REG8 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcca1v8_pmu";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_image: LDO_REG9 {
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
				regulator-name = "vcca1v8_image";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v3: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc_3v3";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_sd: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_sd";
 | 
			
		||||
				status = "disabled";
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c1 is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 80 - i2c1_scl_m0, pullup to vcc3v3_pmu
 | 
			
		||||
 * pin 82 - i2c1_sda_m0, pullup to vcc3v3_pmu
 | 
			
		||||
 */
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c2 is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 56 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch
 | 
			
		||||
 * pin 58 - i2c2_sda_m1, pullup to vcc_3v3
 | 
			
		||||
 */
 | 
			
		||||
&i2c2 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&i2c2m1_xfer>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c3 is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 35 - i2c3_scl_m0, pullup to vcc_3v3
 | 
			
		||||
 * pin 36 - i2c3_sda_m0, pullup to vcc_3v3
 | 
			
		||||
 */
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2c4 is exposed on CM2 / Module1B
 | 
			
		||||
 * pin 45 - i2c4_scl_m1
 | 
			
		||||
 * pin 47 - i2c4_sda_m1
 | 
			
		||||
 */
 | 
			
		||||
&i2c4 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&i2c4m1_xfer>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0_8ch {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * i2s1_8ch is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 24 - i2s1_sdi1_m1
 | 
			
		||||
 * pin 25 - i2s1_sdo0_m1
 | 
			
		||||
 * pin 26 - i2s1_lrck_tx_m1
 | 
			
		||||
 * pin 27 - i2s1_sdi0_m1
 | 
			
		||||
 * pin 29 - i2s1_sdi3_m1
 | 
			
		||||
 * pin 30 - i2s1_sdi2_m1
 | 
			
		||||
 * pin 40 - i2s1_sdo1_m1, shared with spi3
 | 
			
		||||
 * pin 41 - i2s1_sdo2_m1
 | 
			
		||||
 * pin 49 - i2s1_sclk_tx_m1
 | 
			
		||||
 * pin 50 - i2s1_mclk_m1
 | 
			
		||||
 * pin 56 - i2s1_sdo3_m1, shared with i2c2
 | 
			
		||||
 */
 | 
			
		||||
&i2s1_8ch {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&i2s1m1_sclktx &i2s1m1_sclkrx
 | 
			
		||||
		     &i2s1m1_lrcktx &i2s1m1_lrckrx
 | 
			
		||||
		     &i2s1m1_sdi0   &i2s1m1_sdi1
 | 
			
		||||
		     &i2s1m1_sdi2   &i2s1m1_sdi3
 | 
			
		||||
		     &i2s1m1_sdo0   &i2s1m1_sdo1
 | 
			
		||||
		     &i2s1m1_sdo2   &i2s1m1_sdo3>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio1 {
 | 
			
		||||
	rgmii_phy1: ethernet-phy@0 {
 | 
			
		||||
		compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		status = "disabled";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie2x1 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie_reset_h>;
 | 
			
		||||
	reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	bt {
 | 
			
		||||
		bt_enable_h: bt-enable-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_host_wake_l: bt-host-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		bt_wake_l: bt-wake-l {
 | 
			
		||||
			rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		work_led_enable_h: work-led-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		diy_led_enable_h: diy-led-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie_clkreq_h: pcie-clkreq-h {
 | 
			
		||||
			rockchip,pins = <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
		pcie_reset_h: pcie-reset-h {
 | 
			
		||||
			rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int_l: pmic-int-l {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	sdio-pwrseq {
 | 
			
		||||
		wifi_enable_h: wifi-enable-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmuio1-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	pmuio2-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	vccio1-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio2-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio3-supply = <&vccio_sd>;
 | 
			
		||||
	vccio4-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio5-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio6-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio7-supply = <&vcc_3v3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * saradc is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 94 - saradc_vin3
 | 
			
		||||
 * pin 96 - saradc_vin2
 | 
			
		||||
 */
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca_1v8>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	vmmc-supply = <&vcc_3v3>;
 | 
			
		||||
	vqmmc-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	broken-cd;
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
 | 
			
		||||
	vqmmc-supply = <&vccio_sd>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc1 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cap-sdio-irq;
 | 
			
		||||
	keep-power-in-suspend;
 | 
			
		||||
	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
 | 
			
		||||
	sd-uhs-sdr50;
 | 
			
		||||
	vmmc-supply = <&vcc3v3_sys>;
 | 
			
		||||
	vqmmc-supply = <&vcc_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * spi3 is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 37 - spi3_cs1_m0
 | 
			
		||||
 * pin 38 - spi3_clk_m0
 | 
			
		||||
 * pin 39 - spi3_cs0_m0
 | 
			
		||||
 * pin 40 - spi3_miso_m0, shared with i2s1_8ch
 | 
			
		||||
 * pin 44 - spi3_mosi_m0
 | 
			
		||||
 */
 | 
			
		||||
&spi3 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart1 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
 | 
			
		||||
	uart-has-rtscts;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	bluetooth {
 | 
			
		||||
		compatible = "brcm,bcm43438-bt";
 | 
			
		||||
		clocks = <&rk809 1>;
 | 
			
		||||
		clock-names = "lpo";
 | 
			
		||||
		device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
 | 
			
		||||
		vbat-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vddio-supply = <&vcca1v8_pmu>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * uart2 is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 51 - uart2_rx_m0
 | 
			
		||||
 * pin 55 - uart2_tx_m0
 | 
			
		||||
 */
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * uart7 is exposed on CM1 / Module1A
 | 
			
		||||
 * pin 46 - uart7_tx_m2
 | 
			
		||||
 * pin 47 - uart7_rx_m2
 | 
			
		||||
 */
 | 
			
		||||
&uart7 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart7m2_xfer>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* dwc3_otg is the only usb port available */
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
 | 
			
		||||
	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vp0 {
 | 
			
		||||
	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
 | 
			
		||||
		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
 | 
			
		||||
		remote-endpoint = <&hdmi_in_vp0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,35 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
 | 
			
		||||
#include "rk356x.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	compatible = "rockchip,rk3566";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pipegrf {
 | 
			
		||||
	compatible = "rockchip,rk3566-pipe-grf", "syscon";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&power {
 | 
			
		||||
	power-domain@RK3568_PD_PIPE {
 | 
			
		||||
		reg = <RK3568_PD_PIPE>;
 | 
			
		||||
		clocks = <&cru PCLK_PIPE>;
 | 
			
		||||
		pm_qos = <&qos_pcie2x1>,
 | 
			
		||||
			 <&qos_sata1>,
 | 
			
		||||
			 <&qos_sata2>,
 | 
			
		||||
			 <&qos_usb3_0>,
 | 
			
		||||
			 <&qos_usb3_1>;
 | 
			
		||||
		#power-domain-cells = <0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	phys = <&usb2phy0_otg>;
 | 
			
		||||
	phy-names = "usb2-phy";
 | 
			
		||||
	extcon = <&usb2phy0>;
 | 
			
		||||
	maximum-speed = "high-speed";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	compatible = "rockchip,rk3566-vop";
 | 
			
		||||
};
 | 
			
		||||
@ -1,852 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Frank Wunderlich <frank-w@public-files.de>
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/leds/common.h>
 | 
			
		||||
#include <dt-bindings/pinctrl/rockchip.h>
 | 
			
		||||
#include <dt-bindings/soc/rockchip,vop2.h>
 | 
			
		||||
#include "rk3568.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Bananapi-R2 Pro (RK3568) DDR4 Board";
 | 
			
		||||
	compatible = "rockchip,rk3568-bpi-r2pro", "rockchip,rk3568";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac0;
 | 
			
		||||
		ethernet1 = &gmac1;
 | 
			
		||||
		mmc0 = &sdmmc0;
 | 
			
		||||
		mmc1 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen: chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&blue_led_pin &green_led_pin>;
 | 
			
		||||
 | 
			
		||||
		blue_led: led-0 {
 | 
			
		||||
			color = <LED_COLOR_ID_BLUE>;
 | 
			
		||||
			default-state = "off";
 | 
			
		||||
			function = LED_FUNCTION_STATUS;
 | 
			
		||||
			gpios = <&gpio0 RK_PD6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		green_led: led-1 {
 | 
			
		||||
			color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			function = LED_FUNCTION_POWER;
 | 
			
		||||
			gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc_12v: dc-12v-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "dc_12v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	hdmi-con {
 | 
			
		||||
		compatible = "hdmi-connector";
 | 
			
		||||
		type = "a";
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			hdmi_con_in: endpoint {
 | 
			
		||||
				remote-endpoint = <&hdmi_out_con>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir-receiver {
 | 
			
		||||
		compatible = "gpio-ir-receiver";
 | 
			
		||||
		gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&ir_receiver_pin>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie30_avdd0v9: pcie30-avdd0v9-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pcie30_avdd0v9";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <900000>;
 | 
			
		||||
		regulator-max-microvolt = <900000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie30_avdd1v8: pcie30-avdd1v8-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "pcie30_avdd1v8";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <1800000>;
 | 
			
		||||
		regulator-max-microvolt = <1800000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* pi6c pcie clock generator feeds both ports */
 | 
			
		||||
	vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_pcie";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		startup-delay-us = <200000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* actually fed by vcc3v3_sys, dependent on pi6c clock generator */
 | 
			
		||||
	vcc3v3_minipcie: vcc3v3-minipcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_minipcie";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&minipcie_enable_h>;
 | 
			
		||||
		startup-delay-us = <50000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_pi6c_05>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/* actually fed by vcc3v3_sys, dependent on pi6c clock generator */
 | 
			
		||||
	vcc3v3_ngff: vcc3v3-ngff-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_ngff";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&ngffpcie_enable_h>;
 | 
			
		||||
		startup-delay-us = <50000>;
 | 
			
		||||
		vin-supply = <&vcc3v3_pi6c_05>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb: vcc5v0-usb-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb_host: vcc5v0-usb-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_usb_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_usb_host";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_usb>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_usb_otg_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_usb_otg";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_usb>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy0 {
 | 
			
		||||
	/* used for USB3 */
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy1 {
 | 
			
		||||
	/* used for USB3 */
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy2 {
 | 
			
		||||
	/* used for SATA */
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac0 {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>;
 | 
			
		||||
	clock_in_out = "input";
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&gmac0_miim
 | 
			
		||||
		     &gmac0_tx_bus2
 | 
			
		||||
		     &gmac0_rx_bus2
 | 
			
		||||
		     &gmac0_rgmii_clk
 | 
			
		||||
		     &gmac0_rgmii_bus>;
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	/* Reset time is 20ms, 100ms for rtl8211f */
 | 
			
		||||
	snps,reset-delays-us = <0 20000 100000>;
 | 
			
		||||
	tx_delay = <0x4f>;
 | 
			
		||||
	rx_delay = <0x0f>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	fixed-link {
 | 
			
		||||
		speed = <1000>;
 | 
			
		||||
		full-duplex;
 | 
			
		||||
		pause;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac1 {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
 | 
			
		||||
	clock_in_out = "output";
 | 
			
		||||
	phy-handle = <&rgmii_phy1>;
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&gmac1m1_miim
 | 
			
		||||
		     &gmac1m1_tx_bus2
 | 
			
		||||
		     &gmac1m1_rx_bus2
 | 
			
		||||
		     &gmac1m1_rgmii_clk
 | 
			
		||||
		     &gmac1m1_rgmii_bus>;
 | 
			
		||||
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	/* Reset time is 20ms, 100ms for rtl8211f */
 | 
			
		||||
	snps,reset-delays-us = <0 20000 100000>;
 | 
			
		||||
 | 
			
		||||
	tx_delay = <0x3c>;
 | 
			
		||||
	rx_delay = <0x2f>;
 | 
			
		||||
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	avdd-0v9-supply = <&vdda0v9_image>;
 | 
			
		||||
	avdd-1v8-supply = <&vcca1v8_image>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_in {
 | 
			
		||||
	hdmi_in_vp0: endpoint {
 | 
			
		||||
		remote-endpoint = <&vp0_out_hdmi>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_out {
 | 
			
		||||
	hdmi_out_con: endpoint {
 | 
			
		||||
		remote-endpoint = <&hdmi_con_in>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	rk809: pmic@20 {
 | 
			
		||||
		compatible = "rockchip,rk809";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		vcc1-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_logic: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_logic";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_gpu: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_gpu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_npu: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vdd_npu";
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG5 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_image: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vdda0v9_image";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda_0v9: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vdda_0v9";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdda0v9_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_acodec: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vccio_acodec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_pmu: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc3v3_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_1v8: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_pmu: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcca1v8_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_image: LDO_REG9 {
 | 
			
		||||
				regulator-name = "vcca1v8_image";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v3: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc_3v3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_sd: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_sd";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c3 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	hym8563: rtc@51 {
 | 
			
		||||
		compatible = "haoyu,hym8563";
 | 
			
		||||
		reg = <0x51>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PD3 IRQ_TYPE_EDGE_FALLING>;
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
		clock-output-names = "rtcic_32kout";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&hym8563_int>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c5 {
 | 
			
		||||
	/* pin 3 (SDA) + 4 (SCL) of header con2 */
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0_8ch {
 | 
			
		||||
	/* hdmi sound */
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio0 {
 | 
			
		||||
	#address-cells = <1>;
 | 
			
		||||
	#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
	switch@0 {
 | 
			
		||||
		compatible = "mediatek,mt7531";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
 | 
			
		||||
		ports {
 | 
			
		||||
			#address-cells = <1>;
 | 
			
		||||
			#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
			port@1 {
 | 
			
		||||
				reg = <1>;
 | 
			
		||||
				label = "lan0";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@2 {
 | 
			
		||||
				reg = <2>;
 | 
			
		||||
				label = "lan1";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@3 {
 | 
			
		||||
				reg = <3>;
 | 
			
		||||
				label = "lan2";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@4 {
 | 
			
		||||
				reg = <4>;
 | 
			
		||||
				label = "lan3";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@5 {
 | 
			
		||||
				reg = <5>;
 | 
			
		||||
				label = "cpu";
 | 
			
		||||
				ethernet = <&gmac0>;
 | 
			
		||||
				phy-mode = "rgmii";
 | 
			
		||||
 | 
			
		||||
				fixed-link {
 | 
			
		||||
					speed = <1000>;
 | 
			
		||||
					full-duplex;
 | 
			
		||||
					pause;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio1 {
 | 
			
		||||
	rgmii_phy1: ethernet-phy@0 {
 | 
			
		||||
		compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0x0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie30phy {
 | 
			
		||||
	data-lanes = <1 2>;
 | 
			
		||||
	phy-supply = <&vcc3v3_pi6c_05>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie3x1 {
 | 
			
		||||
	/* M.2 slot */
 | 
			
		||||
	num-lanes = <1>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&ngffpcie_reset_h>;
 | 
			
		||||
	reset-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_ngff>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie3x2 {
 | 
			
		||||
	/* mPCIe slot */
 | 
			
		||||
	num-lanes = <1>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&minipcie_reset_h>;
 | 
			
		||||
	reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_minipcie>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	leds {
 | 
			
		||||
		blue_led_pin: blue-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
		green_led_pin: green-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	hym8563 {
 | 
			
		||||
		hym8563_int: hym8563-int {
 | 
			
		||||
			rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ir-receiver {
 | 
			
		||||
		ir_receiver_pin: ir-receiver-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		minipcie_enable_h: minipcie-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		ngffpcie_enable_h: ngffpcie-enable-h {
 | 
			
		||||
			rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		minipcie_reset_h: minipcie-reset-h {
 | 
			
		||||
			rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		ngffpcie_reset_h: ngffpcie-reset-h {
 | 
			
		||||
			rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int: pmic_int {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb {
 | 
			
		||||
		vcc5v0_usb_host_en: vcc5v0_usb_host_en {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vcc5v0_usb_otg_en: vcc5v0_usb_otg_en {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmuio1-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	pmuio2-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	vccio1-supply = <&vccio_acodec>;
 | 
			
		||||
	vccio3-supply = <&vccio_sd>;
 | 
			
		||||
	vccio4-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio5-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio6-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio7-supply = <&vcc_3v3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm8 {
 | 
			
		||||
	/* fan 5v - gnd - pwm */
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm10 {
 | 
			
		||||
	/* pin 7 of header con2 */
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm11 {
 | 
			
		||||
	/* pin 15 of header con2 */
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm12 {
 | 
			
		||||
	/* pin 21 of header con2 */
 | 
			
		||||
	/* shared with uart9 + spi3 */
 | 
			
		||||
	pinctrl-0 = <&pwm12m1_pins>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm13 {
 | 
			
		||||
	/* pin 24 of header con2 */
 | 
			
		||||
	/* shared with uart9 */
 | 
			
		||||
	pinctrl-0 = <&pwm13m1_pins>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm14 {
 | 
			
		||||
	/* pin 23 of header con2 */
 | 
			
		||||
	/* shared with spi3 */
 | 
			
		||||
	pinctrl-0 = <&pwm14m1_pins>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm15 {
 | 
			
		||||
	/* pin 19 of header con2 */
 | 
			
		||||
	/* shared with spi3 */
 | 
			
		||||
	pinctrl-0 = <&pwm15m1_pins>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sata2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	max-frequency = <200000000>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc3v3_sd>;
 | 
			
		||||
	vqmmc-supply = <&vccio_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi3 {
 | 
			
		||||
	/* pin 19 (MO) + 21 (MI) + 23 (CK) of header con2 */
 | 
			
		||||
	/* shared with pwm12/14/15 and uart9 */
 | 
			
		||||
	pinctrl-0 = <&spi3m1_pins>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	/* pin 8 (TX) + 10 (RX) (RTS:16, CTS:18) of header con2 */
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	/* debug-uart */
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart7 {
 | 
			
		||||
	/* pin 11 (TX) + 13 (RX) of header con2 */
 | 
			
		||||
	pinctrl-0 = <&uart7m1_xfer>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart9 {
 | 
			
		||||
	/* pin 21 (TX) + 24 (RX) of header con2 */
 | 
			
		||||
	/* shared with pwm13 and pwm12/spi3 */
 | 
			
		||||
	pinctrl-0 = <&uart9m1_xfer>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb_otg>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1 {
 | 
			
		||||
	/* USB for PCIe/M2 */
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_otg {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
 | 
			
		||||
	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vp0 {
 | 
			
		||||
	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
 | 
			
		||||
		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
 | 
			
		||||
		remote-endpoint = <&hdmi_in_vp0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,689 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/leds/common.h>
 | 
			
		||||
#include <dt-bindings/pinctrl/rockchip.h>
 | 
			
		||||
#include <dt-bindings/soc/rockchip,vop2.h>
 | 
			
		||||
#include "rk3568.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Rockchip RK3568 EVB1 DDR4 V10 Board";
 | 
			
		||||
	compatible = "rockchip,rk3568-evb1-v10", "rockchip,rk3568";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac0;
 | 
			
		||||
		ethernet1 = &gmac1;
 | 
			
		||||
		mmc0 = &sdmmc0;
 | 
			
		||||
		mmc1 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen: chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc_12v: dc-12v {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "dc_12v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <12000000>;
 | 
			
		||||
		regulator-max-microvolt = <12000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	hdmi-con {
 | 
			
		||||
		compatible = "hdmi-connector";
 | 
			
		||||
		type = "a";
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			hdmi_con_in: endpoint {
 | 
			
		||||
				remote-endpoint = <&hdmi_out_con>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led_work: led-0 {
 | 
			
		||||
			gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			function = LED_FUNCTION_HEARTBEAT;
 | 
			
		||||
			color = <LED_COLOR_ID_BLUE>;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			pinctrl-0 = <&led_work_en>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rk809-sound {
 | 
			
		||||
		compatible = "simple-audio-card";
 | 
			
		||||
		simple-audio-card,format = "i2s";
 | 
			
		||||
		simple-audio-card,name = "Analog RK809";
 | 
			
		||||
		simple-audio-card,mclk-fs = <256>;
 | 
			
		||||
 | 
			
		||||
		simple-audio-card,cpu {
 | 
			
		||||
			sound-dai = <&i2s1_8ch>;
 | 
			
		||||
		};
 | 
			
		||||
		simple-audio-card,codec {
 | 
			
		||||
			sound-dai = <&rk809>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb: vcc5v0-usb {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_12v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb_host: vcc5v0-usb-host {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_usb_host_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_usb_host";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_usb>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb_otg: vcc5v0-usb-otg {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_usb_otg_en>;
 | 
			
		||||
		regulator-name = "vcc5v0_usb_otg";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_usb>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_lcd0_n: vcc3v3-lcd0-n {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_lcd0_n";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc3v3_lcd0_n_en>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_lcd1_n: vcc3v3-lcd1-n {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_lcd1_n";
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		vin-supply = <&vcc3v3_sys>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&vcc3v3_lcd1_n_en>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac0 {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>;
 | 
			
		||||
	assigned-clock-rates = <0>, <125000000>;
 | 
			
		||||
	clock_in_out = "output";
 | 
			
		||||
	phy-handle = <&rgmii_phy0>;
 | 
			
		||||
	phy-mode = "rgmii-id";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&gmac0_miim
 | 
			
		||||
		     &gmac0_tx_bus2
 | 
			
		||||
		     &gmac0_rx_bus2
 | 
			
		||||
		     &gmac0_rgmii_clk
 | 
			
		||||
		     &gmac0_rgmii_bus>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac1 {
 | 
			
		||||
	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;
 | 
			
		||||
	assigned-clock-rates = <0>, <125000000>;
 | 
			
		||||
	clock_in_out = "output";
 | 
			
		||||
	phy-handle = <&rgmii_phy1>;
 | 
			
		||||
	phy-mode = "rgmii-id";
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&gmac1m1_miim
 | 
			
		||||
		     &gmac1m1_tx_bus2
 | 
			
		||||
		     &gmac1m1_rx_bus2
 | 
			
		||||
		     &gmac1m1_rgmii_clk
 | 
			
		||||
		     &gmac1m1_rgmii_bus>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	avdd-0v9-supply = <&vdda0v9_image>;
 | 
			
		||||
	avdd-1v8-supply = <&vcca1v8_image>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_in {
 | 
			
		||||
	hdmi_in_vp0: endpoint {
 | 
			
		||||
		remote-endpoint = <&vp0_out_hdmi>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_out {
 | 
			
		||||
	hdmi_out_con: endpoint {
 | 
			
		||||
		remote-endpoint = <&hdmi_con_in>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vdd_cpu: regulator@1c {
 | 
			
		||||
		compatible = "tcs,tcs4525";
 | 
			
		||||
		reg = <0x1c>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_cpu";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1150000>;
 | 
			
		||||
		regulator-ramp-delay = <2300>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rk809: pmic@20 {
 | 
			
		||||
		compatible = "rockchip,rk809";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
 | 
			
		||||
		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-names = "mclk";
 | 
			
		||||
		clocks = <&cru I2S1_MCLKOUT_TX>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
		vcc1-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_logic: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_logic";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_gpu: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_gpu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_npu: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vdd_npu";
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG5 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_image: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vdda0v9_image";
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda_0v9: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vdda_0v9";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdda0v9_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_acodec: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vccio_acodec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_pmu: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc3v3_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_1v8: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_pmu: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcca1v8_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_image: LDO_REG9 {
 | 
			
		||||
				regulator-name = "vcca1v8_image";
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v3: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc_3v3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_sd: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_sd";
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		codec {
 | 
			
		||||
			mic-in-differential;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	touchscreen0: goodix@14 {
 | 
			
		||||
		compatible = "goodix,gt1151";
 | 
			
		||||
		reg = <0x14>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PB5 IRQ_TYPE_EDGE_FALLING>;
 | 
			
		||||
		AVDD28-supply = <&vcc3v3_lcd0_n>;
 | 
			
		||||
		irq-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&touch_int &touch_rst>;
 | 
			
		||||
		reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		VDDIO-supply = <&vcc3v3_lcd0_n>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s0_8ch {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1_8ch {
 | 
			
		||||
	rockchip,trcm-sync-tx-only;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio0 {
 | 
			
		||||
	rgmii_phy0: ethernet-phy@0 {
 | 
			
		||||
		compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0x0>;
 | 
			
		||||
		reset-assert-us = <20000>;
 | 
			
		||||
		reset-deassert-us = <100000>;
 | 
			
		||||
		reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio1 {
 | 
			
		||||
	rgmii_phy1: ethernet-phy@0 {
 | 
			
		||||
		compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0x0>;
 | 
			
		||||
		reset-assert-us = <20000>;
 | 
			
		||||
		reset-deassert-us = <100000>;
 | 
			
		||||
		reset-gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	display {
 | 
			
		||||
		vcc3v3_lcd0_n_en: vcc3v3_lcd0_n_en {
 | 
			
		||||
			rockchip,pins = <0 RK_PC7 0 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
		vcc3v3_lcd1_n_en: vcc3v3_lcd1_n_en {
 | 
			
		||||
			rockchip,pins = <0 RK_PC5 0 &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		led_work_en: led_work_en {
 | 
			
		||||
			rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int: pmic_int {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	touchscreen {
 | 
			
		||||
		touch_int: touch_int {
 | 
			
		||||
			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
		touch_rst: touch_rst {
 | 
			
		||||
			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb {
 | 
			
		||||
		vcc5v0_usb_host_en: vcc5v0_usb_host_en {
 | 
			
		||||
			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
		vcc5v0_usb_otg_en: vcc5v0_usb_otg_en {
 | 
			
		||||
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmuio1-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	pmuio2-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	vccio1-supply = <&vccio_acodec>;
 | 
			
		||||
	vccio2-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio3-supply = <&vccio_sd>;
 | 
			
		||||
	vccio4-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio5-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio6-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio7-supply = <&vcc_3v3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	max-frequency = <200000000>;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc3v3_sd>;
 | 
			
		||||
	vqmmc-supply = <&vccio_sd>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	extcon = <&usb2phy0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb_otg>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
 | 
			
		||||
	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vp0 {
 | 
			
		||||
	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
 | 
			
		||||
		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
 | 
			
		||||
		remote-endpoint = <&hdmi_in_vp0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,730 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
 | 
			
		||||
 * Copyright (c) 2022 EmbedFire <embedfire@embedfire.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/leds/common.h>
 | 
			
		||||
#include <dt-bindings/pinctrl/rockchip.h>
 | 
			
		||||
#include <dt-bindings/soc/rockchip,vop2.h>
 | 
			
		||||
#include "rk3568.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "EmbedFire LubanCat 2";
 | 
			
		||||
	compatible = "embedfire,lubancat-2", "rockchip,rk3568";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		ethernet0 = &gmac0;
 | 
			
		||||
		ethernet1 = &gmac1;
 | 
			
		||||
		mmc0 = &sdmmc0;
 | 
			
		||||
		mmc1 = &sdhci;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen: chosen {
 | 
			
		||||
		stdout-path = "serial2:1500000n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		user_led: user-led {
 | 
			
		||||
			label = "user_led";
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
			gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
			pinctrl-0 = <&user_led_pin>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	hdmi-con {
 | 
			
		||||
		compatible = "hdmi-connector";
 | 
			
		||||
		type = "a";
 | 
			
		||||
 | 
			
		||||
		port {
 | 
			
		||||
			hdmi_con_in: endpoint {
 | 
			
		||||
				remote-endpoint = <&hdmi_out_con>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc_5v: dc-5v-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "dc_5v";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_sys: vcc3v3-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc3v3_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_sys: vcc5v0-sys-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_sys";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		vin-supply = <&dc_5v>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_m2_pcie: vcc3v3-m2-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "m2_pcie_3v3";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-0 = <&vcc3v3_m2_pcie_en>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		startup-delay-us = <200000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc3v3_mini_pcie: vcc3v3-mini-pcie-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "minipcie_3v3";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		regulator-min-microvolt = <3300000>;
 | 
			
		||||
		regulator-max-microvolt = <3300000>;
 | 
			
		||||
		gpio = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-0 = <&vcc3v3_mini_pcie_en>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		startup-delay-us = <5000>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb20_host: vcc5v0-usb20-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb20_host";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_usb20_host_en>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_usb30_host: vcc5v0-usb30-host-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_usb30_host";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_usb30_host_en>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	vcc5v0_otg_vbus: vcc5v0-otg-vbus-regulator {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vcc5v0_otg_vbus";
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
		regulator-max-microvolt = <5000000>;
 | 
			
		||||
		gpio = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		pinctrl-0 = <&vcc5v0_otg_vbus_en>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&combphy2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu0 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu1 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu2 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&cpu3 {
 | 
			
		||||
	cpu-supply = <&vdd_cpu>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpu {
 | 
			
		||||
	mali-supply = <&vdd_gpu>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
	avdd-0v9-supply = <&vdda0v9_image>;
 | 
			
		||||
	avdd-1v8-supply = <&vcca1v8_image>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_in {
 | 
			
		||||
	hdmi_in_vp0: endpoint {
 | 
			
		||||
		remote-endpoint = <&vp0_out_hdmi>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_out {
 | 
			
		||||
	hdmi_out_con: endpoint {
 | 
			
		||||
		remote-endpoint = <&hdmi_con_in>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi_sound {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2c0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	vdd_cpu: regulator@1c {
 | 
			
		||||
		compatible = "tcs,tcs4525";
 | 
			
		||||
		reg = <0x1c>;
 | 
			
		||||
		fcs,suspend-voltage-selector = <1>;
 | 
			
		||||
		regulator-name = "vdd_cpu";
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-boot-on;
 | 
			
		||||
		regulator-min-microvolt = <800000>;
 | 
			
		||||
		regulator-max-microvolt = <1150000>;
 | 
			
		||||
		regulator-ramp-delay = <2300>;
 | 
			
		||||
		vin-supply = <&vcc5v0_sys>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rk809: pmic@20 {
 | 
			
		||||
		compatible = "rockchip,rk809";
 | 
			
		||||
		reg = <0x20>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
 | 
			
		||||
		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
 | 
			
		||||
		#clock-cells = <1>;
 | 
			
		||||
		clock-names = "mclk";
 | 
			
		||||
		clocks = <&cru I2S1_MCLKOUT_TX>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&pmic_int>;
 | 
			
		||||
		rockchip,system-power-controller;
 | 
			
		||||
		#sound-dai-cells = <0>;
 | 
			
		||||
		vcc1-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc2-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc3-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc4-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc5-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc6-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc7-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc8-supply = <&vcc3v3_sys>;
 | 
			
		||||
		vcc9-supply = <&vcc3v3_sys>;
 | 
			
		||||
		wakeup-source;
 | 
			
		||||
 | 
			
		||||
		regulators {
 | 
			
		||||
			vdd_logic: DCDC_REG1 {
 | 
			
		||||
				regulator-name = "vdd_logic";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_gpu: DCDC_REG2 {
 | 
			
		||||
				regulator-name = "vdd_gpu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_ddr: DCDC_REG3 {
 | 
			
		||||
				regulator-name = "vcc_ddr";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdd_npu: DCDC_REG4 {
 | 
			
		||||
				regulator-name = "vdd_npu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <500000>;
 | 
			
		||||
				regulator-max-microvolt = <1350000>;
 | 
			
		||||
				regulator-ramp-delay = <6001>;
 | 
			
		||||
				regulator-initial-mode = <0x2>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_1v8: DCDC_REG5 {
 | 
			
		||||
				regulator-name = "vcc_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_image: LDO_REG1 {
 | 
			
		||||
				regulator-name = "vdda0v9_image";
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda_0v9: LDO_REG2 {
 | 
			
		||||
				regulator-name = "vdda_0v9";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vdda0v9_pmu: LDO_REG3 {
 | 
			
		||||
				regulator-name = "vdda0v9_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <900000>;
 | 
			
		||||
				regulator-max-microvolt = <900000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <900000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_acodec: LDO_REG4 {
 | 
			
		||||
				regulator-name = "vccio_acodec";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vccio_sd: LDO_REG5 {
 | 
			
		||||
				regulator-name = "vccio_sd";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_pmu: LDO_REG6 {
 | 
			
		||||
				regulator-name = "vcc3v3_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <3300000>;
 | 
			
		||||
				regulator-max-microvolt = <3300000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <3300000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca_1v8: LDO_REG7 {
 | 
			
		||||
				regulator-name = "vcca_1v8";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_pmu: LDO_REG8 {
 | 
			
		||||
				regulator-name = "vcca1v8_pmu";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-on-in-suspend;
 | 
			
		||||
					regulator-suspend-microvolt = <1800000>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcca1v8_image: LDO_REG9 {
 | 
			
		||||
				regulator-name = "vcca1v8_image";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
				regulator-min-microvolt = <1800000>;
 | 
			
		||||
				regulator-max-microvolt = <1800000>;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc_3v3: SWITCH_REG1 {
 | 
			
		||||
				regulator-name = "vcc_3v3";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			vcc3v3_sd: SWITCH_REG2 {
 | 
			
		||||
				regulator-name = "vcc3v3_sd";
 | 
			
		||||
				regulator-always-on;
 | 
			
		||||
				regulator-boot-on;
 | 
			
		||||
 | 
			
		||||
				regulator-state-mem {
 | 
			
		||||
					regulator-off-in-suspend;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&i2s1_8ch {
 | 
			
		||||
	rockchip,trcm-sync-tx-only;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac0 {
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	clock_in_out = "output";
 | 
			
		||||
 | 
			
		||||
	snps,reset-gpio = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	/* Reset time is 20ms, 100ms for rtl8211f */
 | 
			
		||||
	snps,reset-delays-us = <0 20000 100000>;
 | 
			
		||||
 | 
			
		||||
	assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>;
 | 
			
		||||
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&gmac0_miim
 | 
			
		||||
		     &gmac0_tx_bus2
 | 
			
		||||
		     &gmac0_rx_bus2
 | 
			
		||||
		     &gmac0_rgmii_clk
 | 
			
		||||
		     &gmac0_rgmii_bus>;
 | 
			
		||||
 | 
			
		||||
	tx_delay = <0x22>;
 | 
			
		||||
	rx_delay = <0x0e>;
 | 
			
		||||
 | 
			
		||||
	phy-handle = <&rgmii_phy0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio0 {
 | 
			
		||||
	rgmii_phy0: phy@0 {
 | 
			
		||||
		compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0x0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gmac1 {
 | 
			
		||||
	phy-mode = "rgmii";
 | 
			
		||||
	clock_in_out = "output";
 | 
			
		||||
 | 
			
		||||
	snps,reset-gpio = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
	snps,reset-active-low;
 | 
			
		||||
	/* Reset time is 20ms, 100ms for rtl8211f */
 | 
			
		||||
	snps,reset-delays-us = <0 20000 100000>;
 | 
			
		||||
 | 
			
		||||
	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
 | 
			
		||||
	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
 | 
			
		||||
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&gmac1m1_miim
 | 
			
		||||
		     &gmac1m1_tx_bus2
 | 
			
		||||
		     &gmac1m1_rx_bus2
 | 
			
		||||
		     &gmac1m1_rgmii_clk
 | 
			
		||||
		     &gmac1m1_rgmii_bus>;
 | 
			
		||||
 | 
			
		||||
	tx_delay = <0x21>;
 | 
			
		||||
	rx_delay = <0x0e>;
 | 
			
		||||
 | 
			
		||||
	phy-handle = <&rgmii_phy1>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio1 {
 | 
			
		||||
	rgmii_phy1: phy@0 {
 | 
			
		||||
		compatible = "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0x0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gic {
 | 
			
		||||
	mbi-ranges = <94 31>, <229 31>, <289 31>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie30phy {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie3x2 {
 | 
			
		||||
	reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_m2_pcie>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie2x1 {
 | 
			
		||||
	reset-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	disable-gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_mini_pcie>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pmu_io_domains {
 | 
			
		||||
	pmuio2-supply = <&vcc3v3_pmu>;
 | 
			
		||||
	vccio1-supply = <&vccio_acodec>;
 | 
			
		||||
	vccio3-supply = <&vccio_sd>;
 | 
			
		||||
	vccio4-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio5-supply = <&vcc_3v3>;
 | 
			
		||||
	vccio6-supply = <&vcc_1v8>;
 | 
			
		||||
	vccio7-supply = <&vcc_3v3>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm8 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm9 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm10 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pwm14 {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi3 {
 | 
			
		||||
	pinctrl-0 = <&spi3m1_pins>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart2 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart3 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&uart3m1_xfer>;
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&saradc {
 | 
			
		||||
	vref-supply = <&vcca_1v8>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&tsadc {
 | 
			
		||||
	rockchip,hw-tshut-mode = <1>;
 | 
			
		||||
	rockchip,hw-tshut-polarity = <0>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdhci {
 | 
			
		||||
	assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>, <&cru CCLK_EMMC>;
 | 
			
		||||
	assigned-clock-rates = <200000000>, <24000000>, <200000000>;
 | 
			
		||||
	bus-width = <8>;
 | 
			
		||||
	max-frequency = <200000000>;
 | 
			
		||||
	mmc-hs200-1_8v;
 | 
			
		||||
	non-removable;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
 | 
			
		||||
	supports-emmc;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdmmc0 {
 | 
			
		||||
	max-frequency = <150000000>;
 | 
			
		||||
	no-sdio;
 | 
			
		||||
	no-mmc;
 | 
			
		||||
	bus-width = <4>;
 | 
			
		||||
	cap-mmc-highspeed;
 | 
			
		||||
	cap-sd-highspeed;
 | 
			
		||||
	disable-wp;
 | 
			
		||||
	sd-uhs-sdr104;
 | 
			
		||||
	vmmc-supply = <&vcc3v3_sd>;
 | 
			
		||||
	vqmmc-supply = <&vccio_sd>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* USB OTG/USB Host_1 USB 2.0 Comb */
 | 
			
		||||
&usb2phy0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_host {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb30_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy0_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_otg_vbus>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host0_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* USB Host_2/USB Host_3 USB 2.0 Comb */
 | 
			
		||||
&usb2phy1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_host {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb2phy1_otg {
 | 
			
		||||
	phy-supply = <&vcc5v0_usb20_host>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&usb_host1_ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* MULTI_PHY0 For SATA0, USB3.0 OTG Only USB2.0 */
 | 
			
		||||
&usb_host0_xhci {
 | 
			
		||||
	phys = <&usb2phy0_otg>;
 | 
			
		||||
	phy-names = "usb2-phy";
 | 
			
		||||
	extcon = <&usb2phy0>;
 | 
			
		||||
	maximum-speed = "high-speed";
 | 
			
		||||
	dr_mode = "host";
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sata0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* USB3.0 Host */
 | 
			
		||||
&usb_host1_xhci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop {
 | 
			
		||||
	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
 | 
			
		||||
	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vop_mmu {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&vp0 {
 | 
			
		||||
	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
 | 
			
		||||
		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
 | 
			
		||||
		remote-endpoint = <&hdmi_in_vp0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	leds {
 | 
			
		||||
		user_led_pin: user-status-led-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb {
 | 
			
		||||
		vcc5v0_usb20_host_en: vcc5v0-usb20-host-en {
 | 
			
		||||
			rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vcc5v0_usb30_host_en: vcc5v0-usb30-host-en {
 | 
			
		||||
			rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vcc5v0_otg_vbus_en: vcc5v0-otg-vbus-en {
 | 
			
		||||
			rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		vcc3v3_m2_pcie_en: vcc3v3-m2-pcie-en {
 | 
			
		||||
			rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		vcc3v3_mini_pcie_en: vcc3v3-mini-pcie-en {
 | 
			
		||||
			rockchip,pins = <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmic {
 | 
			
		||||
		pmic_int: pmic-int {
 | 
			
		||||
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@ -1,112 +0,0 @@
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd.
 | 
			
		||||
 * (http://www.friendlyelec.com)
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2023 Tianling Shen <cnsztl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include "rk3568-nanopi-r5s.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "FriendlyElec NanoPi R5C";
 | 
			
		||||
	compatible = "friendlyarm,nanopi-r5c", "rockchip,rk3568";
 | 
			
		||||
 | 
			
		||||
	gpio-keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&reset_button_pin>;
 | 
			
		||||
 | 
			
		||||
		button-reset {
 | 
			
		||||
			debounce-interval = <50>;
 | 
			
		||||
			gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			label = "reset";
 | 
			
		||||
			linux,code = <KEY_RESTART>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&lan_led_pin>, <&power_led_pin>, <&wan_led_pin>, <&wlan_led_pin>;
 | 
			
		||||
 | 
			
		||||
		led-lan {
 | 
			
		||||
			color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
			function = LED_FUNCTION_LAN;
 | 
			
		||||
			gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		power_led: led-power {
 | 
			
		||||
			color = <LED_COLOR_ID_RED>;
 | 
			
		||||
			function = LED_FUNCTION_POWER;
 | 
			
		||||
			linux,default-trigger = "heartbeat";
 | 
			
		||||
			gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		led-wan {
 | 
			
		||||
			color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
			function = LED_FUNCTION_WAN;
 | 
			
		||||
			gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		led-wlan {
 | 
			
		||||
			color = <LED_COLOR_ID_GREEN>;
 | 
			
		||||
			function = LED_FUNCTION_WLAN;
 | 
			
		||||
			gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie2x1 {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&pcie20_reset_pin>;
 | 
			
		||||
	reset-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie3x1 {
 | 
			
		||||
	num-lanes = <1>;
 | 
			
		||||
	reset-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie3x2 {
 | 
			
		||||
	num-lanes = <1>;
 | 
			
		||||
	reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	vpcie3v3-supply = <&vcc3v3_pcie>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		lan_led_pin: lan-led-pin {
 | 
			
		||||
			rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		power_led_pin: power-led-pin {
 | 
			
		||||
			rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wan_led_pin: wan-led-pin {
 | 
			
		||||
			rockchip,pins = <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		wlan_led_pin: wlan-led-pin {
 | 
			
		||||
			rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pcie {
 | 
			
		||||
		pcie20_reset_pin: pcie20-reset-pin {
 | 
			
		||||
			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	rockchip-key {
 | 
			
		||||
		reset_button_pin: reset-button-pin {
 | 
			
		||||
			rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user