[PATCH v3 10/12] arm: dts: rockchip: sync rk3288 DT boards from Linux

Kever Yang kever.yang at rock-chips.com
Mon Mar 28 14:50:07 CEST 2022


On 2022/3/4 07:52, Johan Jonker wrote:
> Sync rk3288 DT boards that have support both in
> Linux 5.17 as in U-boot.
>
> Signed-off-by: Johan Jonker <jbx6244 at gmail.com>

Reviewed-by: Kever Yang <kever.yang at rock-chips.com>

Thanks,
- Kever
> ---
>
> Change V3:
>    update
>    change reg size
>    delete more files
>
> Changed V2:
>    update
>    change led labels
> ---
>   arch/arm/dts/rk3288-firefly-u-boot.dtsi |   4 +-
>   arch/arm/dts/rk3288-firefly.dts         |  17 +-
>   arch/arm/dts/rk3288-firefly.dtsi        | 161 +++++--
>   arch/arm/dts/rk3288-miqi-u-boot.dtsi    |   2 +-
>   arch/arm/dts/rk3288-miqi.dts            | 431 ++++++++++++++++++-
>   arch/arm/dts/rk3288-miqi.dtsi           | 418 ------------------
>   arch/arm/dts/rk3288-phycore-rdk.dts     | 109 +++--
>   arch/arm/dts/rk3288-phycore-som.dtsi    | 111 +----
>   arch/arm/dts/rk3288-popmetal.dts        | 505 +++++++++++++++++++++-
>   arch/arm/dts/rk3288-popmetal.dtsi       | 545 ------------------------
>   arch/arm/dts/rk3288-rock2-som.dtsi      |  91 ++--
>   arch/arm/dts/rk3288-rock2-square.dts    | 215 +++++++---
>   arch/arm/dts/rk3288-tinker-s.dts        |   9 +-
>   arch/arm/dts/rk3288-tinker.dts          |  30 +-
>   arch/arm/dts/rk3288-tinker.dtsi         | 405 +++++++++---------
>   15 files changed, 1554 insertions(+), 1499 deletions(-)
>   delete mode 100644 arch/arm/dts/rk3288-miqi.dtsi
>   delete mode 100644 arch/arm/dts/rk3288-popmetal.dtsi
>
> diff --git a/arch/arm/dts/rk3288-firefly-u-boot.dtsi b/arch/arm/dts/rk3288-firefly-u-boot.dtsi
> index cc84d7c4..c43d3281 100644
> --- a/arch/arm/dts/rk3288-firefly-u-boot.dtsi
> +++ b/arch/arm/dts/rk3288-firefly-u-boot.dtsi
> @@ -14,11 +14,11 @@
>   	leds {
>   		u-boot,dm-pre-reloc;
>   
> -		work {
> +		work_led: led-0 {
>   			u-boot,dm-pre-reloc;
>   		};
>   
> -		power {
> +		power_led: led-1 {
>   			u-boot,dm-pre-reloc;
>   		};
>   	};
> diff --git a/arch/arm/dts/rk3288-firefly.dts b/arch/arm/dts/rk3288-firefly.dts
> index 72982efd..313459da 100644
> --- a/arch/arm/dts/rk3288-firefly.dts
> +++ b/arch/arm/dts/rk3288-firefly.dts
> @@ -1,4 +1,4 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
>    * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd at gmail.com>
>    */
> @@ -9,31 +9,22 @@
>   / {
>   	model = "Firefly-RK3288";
>   	compatible = "firefly,firefly-rk3288", "rockchip,rk3288";
> -
> -	chosen {
> -		stdout-path = &uart2;
> -	};
>   };
>   
>   &ir {
> -	gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
> +	gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>;
>   };
>   
>   &pinctrl {
>   	act8846 {
>   		pmic_vsel: pmic-vsel {
> -			rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_output_low>;
> +			rockchip,pins = <7 RK_PB6 RK_FUNC_GPIO &pcfg_output_low>;
>   		};
>   	};
>   
>   	ir {
>   		ir_int: ir-int {
> -			rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -	};
> -	usb_host {
> -		host_vbus_drv: host-vbus-drv {
> -			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <7 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   };
> diff --git a/arch/arm/dts/rk3288-firefly.dtsi b/arch/arm/dts/rk3288-firefly.dtsi
> index 1117d391..96d768ac 100644
> --- a/arch/arm/dts/rk3288-firefly.dtsi
> +++ b/arch/arm/dts/rk3288-firefly.dtsi
> @@ -1,15 +1,38 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
>    * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd at gmail.com>
>    */
>   
> +#include <dt-bindings/input/input.h>
>   #include "rk3288.dtsi"
>   
>   / {
> -	memory {
> +	memory at 0 {
> +		device_type = "memory";
>   		reg = <0 0x80000000>;
>   	};
>   
> +	adc-keys {
> +		compatible = "adc-keys";
> +		io-channels = <&saradc 1>;
> +		io-channel-names = "buttons";
> +		keyup-threshold-microvolt = <1800000>;
> +
> +		button-recovery {
> +			label = "Recovery";
> +			linux,code = <KEY_VENDOR>;
> +			press-threshold-microvolt = <0>;
> +		};
> +	};
> +
> +	dovdd_1v8: dovdd-1v8-regulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "dovdd_1v8";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		vin-supply = <&vcc28_dvp>;
> +	};
> +
>   	ext_gmac: external-gmac-clock {
>   		compatible = "fixed-clock";
>   		#clock-cells = <0>;
> @@ -26,11 +49,11 @@
>   	keys: gpio-keys {
>   		compatible = "gpio-keys";
>   
> -		button at 0 {
> -			gpio-key,wakeup = <1>;
> -			gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
> +		power {
> +			wakeup-source;
> +			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
>   			label = "GPIO Power";
> -			linux,code = <116>;
> +			linux,code = <KEY_POWER>;
>   			pinctrl-names = "default";
>   			pinctrl-0 = <&pwr_key>;
>   		};
> @@ -39,24 +62,24 @@
>   	leds {
>   		compatible = "gpio-leds";
>   
> -		work {
> -			gpios = <&gpio8 1 GPIO_ACTIVE_LOW>;
> +		work_led: led-0 {
> +			gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
>   			label = "firefly:blue:user";
>   			linux,default-trigger = "rc-feedback";
>   			pinctrl-names = "default";
> -			pinctrl-0 = <&work_led>;
> +			pinctrl-0 = <&work_led_pin>;
>   		};
>   
> -		power {
> -			gpios = <&gpio8 2 GPIO_ACTIVE_LOW>;
> +		power_led: led-1 {
> +			gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>;
>   			label = "firefly:green:power";
>   			linux,default-trigger = "default-on";
>   			pinctrl-names = "default";
> -			pinctrl-0 = <&power_led>;
> +			pinctrl-0 = <&power_led_pin>;
>   		};
>   	};
>   
> -	vcc_sys: vsys-regulator {
> +	vbat_wl: vcc_sys: vsys-regulator {
>   		compatible = "regulator-fixed";
>   		regulator-name = "vcc_sys";
>   		regulator-min-microvolt = <5000000>;
> @@ -67,7 +90,7 @@
>   
>   	vcc_sd: sdmmc-regulator {
>   		compatible = "regulator-fixed";
> -		gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
> +		gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&sdmmc_pwr>;
>   		regulator-name = "vcc_sd";
> @@ -98,7 +121,7 @@
>   	vcc_host_5v: usb-host-regulator {
>   		compatible = "regulator-fixed";
>   		enable-active-high;
> -		gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> +		gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&host_vbus_drv>;
>   		regulator-name = "vcc_host_5v";
> @@ -111,7 +134,7 @@
>   	vcc_otg_5v: usb-otg-regulator {
>   		compatible = "regulator-fixed";
>   		enable-active-high;
> -		gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
> +		gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&otg_vbus_drv>;
>   		regulator-name = "vcc_otg_5v";
> @@ -120,6 +143,23 @@
>   		regulator-always-on;
>   		vin-supply = <&vcc_5v>;
>   	};
> +
> +	/*
> +	 * A TT8142 creates both dovdd_1v8 and vcc28_dvp, controlled
> +	 * by the dvp_pwr pin.
> +	 */
> +	vcc28_dvp: vcc28-dvp-regulator {
> +		compatible = "regulator-fixed";
> +		enable-active-high;
> +		gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&dvp_pwr>;
> +		regulator-name = "vcc28_dvp";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		regulator-always-on;
> +		vin-supply = <&vcc_io>;
> +	};
>   };
>   
>   &cpu0 {
> @@ -127,12 +167,10 @@
>   };
>   
>   &emmc {
> -	broken-cd;
>   	bus-width = <8>;
>   	cap-mmc-highspeed;
>   	disable-wp;
>   	non-removable;
> -	num-slots = <1>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
>   	vmmc-supply = <&vcc_io>;
> @@ -150,12 +188,17 @@
>   	phy-mode = "rgmii";
>   	snps,reset-active-low;
>   	snps,reset-delays-us = <0 10000 1000000>;
> -	snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
> +	snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
>   	tx_delay = <0x30>;
>   	rx_delay = <0x10>;
>   	status = "okay";
>   };
>   
> +&gpu {
> +	mali-supply = <&vdd_gpu>;
> +	status = "okay";
> +};
> +
>   &hdmi {
>   	ddc-i2c-bus = <&i2c5>;
>   	status = "okay";
> @@ -174,6 +217,8 @@
>   		regulator-max-microvolt = <1350000>;
>   		regulator-always-on;
>   		regulator-boot-on;
> +		regulator-enable-ramp-delay = <300>;
> +		regulator-ramp-delay = <8000>;
>   		vin-supply = <&vcc_sys>;
>   	};
>   
> @@ -195,7 +240,7 @@
>   		clock-frequency = <32768>;
>   		clock-output-names = "xin32k";
>   		interrupt-parent = <&gpio7>;
> -		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
> +		interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&rtc_int>;
>   	};
> @@ -207,6 +252,14 @@
>   		pinctrl-0 = <&pmic_vsel>, <&pwr_hold>;
>   		system-power-controller;
>   
> +		vp1-supply = <&vcc_sys>;
> +		vp2-supply = <&vcc_sys>;
> +		vp3-supply = <&vcc_sys>;
> +		vp4-supply = <&vcc_sys>;
> +		inl1-supply = <&vcc_sys>;
> +		inl2-supply = <&vcc_sys>;
> +		inl3-supply = <&vcc_20>;
> +
>   		regulators {
>   			vcc_ddr: REG1 {
>   				regulator-name = "vcc_ddr";
> @@ -275,7 +328,7 @@
>   				regulator-always-on;
>   			};
>   
> -			vcc_18: REG11 {
> +			vccio_wl: vcc_18: REG11 {
>   				regulator-name = "vcc_18";
>   				regulator-min-microvolt = <1800000>;
>   				regulator-max-microvolt = <1800000>;
> @@ -308,6 +361,21 @@
>   	status = "okay";
>   };
>   
> +&io_domains {
> +	status = "okay";
> +
> +	audio-supply = <&vcca_33>;
> +	bb-supply = <&vcc_io>;
> +	dvp-supply = <&dovdd_1v8>;
> +	flash0-supply = <&vcc_flash>;
> +	flash1-supply = <&vcc_lan>;
> +	gpio30-supply = <&vcc_io>;
> +	gpio1830-supply = <&vcc_io>;
> +	lcdc-supply = <&vcc_io>;
> +	sdcard-supply = <&vccio_sd>;
> +	wifi-supply = <&vccio_wl>;
> +};
> +
>   &pinctrl {
>   	pcfg_output_high: pcfg-output-high {
>   		output-high;
> @@ -324,43 +392,49 @@
>   
>   	act8846 {
>   		pwr_hold: pwr-hold {
> -			rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_output_high>;
> +			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_output_high>;
> +		};
> +	};
> +
> +	dvp {
> +		dvp_pwr: dvp-pwr {
> +			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	gmac {
>   		phy_int: phy-int {
> -			rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   
>   		phy_pmeb: phy-pmeb {
> -			rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   
>   		phy_rst: phy-rst {
> -			rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
> +			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
>   		};
>   	};
>   
>   	hym8563 {
>   		rtc_int: rtc-int {
> -			rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <7 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	keys {
>   		pwr_key: pwr-key {
> -			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	leds {
> -		power_led: power-led {
> -			rockchip,pins = <8 2 RK_FUNC_GPIO &pcfg_pull_none>;
> +		power_led_pin: power-led-pin {
> +			rockchip,pins = <8 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   
> -		work_led: work-led {
> -			rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_none>;
> +		work_led_pin: work-led-pin {
> +			rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
> @@ -391,17 +465,17 @@
>   
>   	usb_host {
>   		host_vbus_drv: host-vbus-drv {
> -			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   
>   		usbhub_rst: usbhub-rst {
> -			rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_output_high>;
> +			rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_output_high>;
>   		};
>   	};
>   
>   	usb_otg {
>   		otg_vbus_drv: otg-vbus-drv {
> -			rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   };
> @@ -412,15 +486,14 @@
>   };
>   
>   &sdio0 {
> -	broken-cd;
>   	bus-width = <4>;
>   	disable-wp;
>   	non-removable;
> -	num-slots = <1>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>;
> -	vmmc-supply = <&vcc_18>;
> -	status = "disabled";
> +	vmmc-supply = <&vbat_wl>;
> +	vqmmc-supply = <&vccio_wl>;
> +	status = "okay";
>   };
>   
>   &sdmmc {
> @@ -429,10 +502,10 @@
>   	cap-sd-highspeed;
>   	card-detect-delay = <200>;
>   	disable-wp;
> -	num-slots = <1>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
>   	vmmc-supply = <&vcc_sd>;
> +	vqmmc-supply = <&vccio_sd>;
>   	status = "okay";
>   };
>   
> @@ -442,6 +515,12 @@
>   	status = "okay";
>   };
>   
> +&tsadc {
> +	rockchip,hw-tshut-mode = <0>;
> +	rockchip,hw-tshut-polarity = <0>;
> +	status = "okay";
> +};
> +
>   &uart0 {
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
> @@ -460,6 +539,10 @@
>   	status = "okay";
>   };
>   
> +&usbphy {
> +	status = "okay";
> +};
> +
>   &usb_host1 {
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&usbhub_rst>;
> diff --git a/arch/arm/dts/rk3288-miqi-u-boot.dtsi b/arch/arm/dts/rk3288-miqi-u-boot.dtsi
> index 2a74fdd1..f2611aaa 100644
> --- a/arch/arm/dts/rk3288-miqi-u-boot.dtsi
> +++ b/arch/arm/dts/rk3288-miqi-u-boot.dtsi
> @@ -8,7 +8,7 @@
>   	leds {
>   		u-boot,dm-pre-reloc;
>   
> -		work {
> +		work_led: led-0 {
>   			u-boot,dm-pre-reloc;
>   		};
>   	};
> diff --git a/arch/arm/dts/rk3288-miqi.dts b/arch/arm/dts/rk3288-miqi.dts
> index 4a2f249e..713f55e1 100644
> --- a/arch/arm/dts/rk3288-miqi.dts
> +++ b/arch/arm/dts/rk3288-miqi.dts
> @@ -1,10 +1,11 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
> - * (C) Copyright 2016 Rockchip Electronics Co., Ltd
> + * Copyright (c) 2016 Heiko Stuebner <heiko at sntech.de>
>    */
>   
>   /dts-v1/;
> -#include "rk3288-miqi.dtsi"
> +#include <dt-bindings/input/input.h>
> +#include "rk3288.dtsi"
>   
>   / {
>   	model = "mqmaker MiQi";
> @@ -13,4 +14,428 @@
>   	chosen {
>   		stdout-path = "serial2:115200n8";
>   	};
> +
> +	memory at 0 {
> +		device_type = "memory";
> +		reg = <0x0 0x0 0x0 0x80000000>;
> +	};
> +
> +	ext_gmac: external-gmac-clock {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +		clock-frequency = <125000000>;
> +		clock-output-names = "ext_gmac";
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		work_led: led-0 {
> +			gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
> +			label = "miqi:green:user";
> +			linux,default-trigger = "timer";
> +		};
> +	};
> +
> +	vcc_flash: flash-regulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vcc_flash";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		vin-supply = <&vcc_io>;
> +	};
> +
> +	vcc_host: usb-host-regulator {
> +		compatible = "regulator-fixed";
> +		enable-active-high;
> +		gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&host_vbus_drv>;
> +		regulator-name = "vcc_host";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		regulator-always-on;
> +		vin-supply = <&vcc_sys>;
> +	};
> +
> +	vcc_sd: sdmmc-regulator {
> +		compatible = "regulator-fixed";
> +		gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&sdmmc_pwr>;
> +		regulator-name = "vcc_sd";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		startup-delay-us = <100000>;
> +		vin-supply = <&vcc_io>;
> +	};
> +
> +	vcc_sys: vsys-regulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vcc_sys";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};
> +};
> +
> +&cpu0 {
> +	cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu1 {
> +	cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu2 {
> +	cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu3 {
> +	cpu-supply = <&vdd_cpu>;
> +};
> +
> +&emmc {
> +	bus-width = <8>;
> +	cap-mmc-highspeed;
> +	non-removable;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
> +	vmmc-supply = <&vcc_io>;
> +	vqmmc-supply = <&vcc_flash>;
> +	status = "okay";
> +};
> +
> +&gmac {
> +	assigned-clocks = <&cru SCLK_MAC>;
> +	assigned-clock-parents = <&ext_gmac>;
> +	clock_in_out = "input";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
> +	phy-supply = <&vcc_lan>;
> +	phy-mode = "rgmii";
> +	snps,reset-active-low;
> +	snps,reset-delays-us = <0 10000 1000000>;
> +	snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
> +	tx_delay = <0x30>;
> +	rx_delay = <0x10>;
> +	status = "okay";
> +};
> +
> +&gpu {
> +	mali-supply = <&vdd_gpu>;
> +	status = "okay";
> +};
> +
> +&hdmi {
> +	ddc-i2c-bus = <&i2c5>;
> +	status = "okay";
> +};
> +
> +&i2c0 {
> +	clock-frequency = <400000>;
> +	status = "okay";
> +
> +	vdd_cpu: syr827 at 40 {
> +		compatible = "silergy,syr827";
> +		fcs,suspend-voltage-selector = <1>;
> +		reg = <0x40>;
> +		regulator-name = "vdd_cpu";
> +		regulator-min-microvolt = <850000>;
> +		regulator-max-microvolt = <1350000>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +		regulator-enable-ramp-delay = <300>;
> +		regulator-ramp-delay = <8000>;
> +		vin-supply = <&vcc_sys>;
> +	};
> +
> +	vdd_gpu: syr828 at 41 {
> +		compatible = "silergy,syr828";
> +		fcs,suspend-voltage-selector = <1>;
> +		reg = <0x41>;
> +		regulator-name = "vdd_gpu";
> +		regulator-min-microvolt = <850000>;
> +		regulator-max-microvolt = <1350000>;
> +		regulator-always-on;
> +		vin-supply = <&vcc_sys>;
> +	};
> +
> +	hym8563: hym8563 at 51 {
> +		compatible = "haoyu,hym8563";
> +		reg = <0x51>;
> +		#clock-cells = <0>;
> +		clock-frequency = <32768>;
> +		clock-output-names = "xin32k";
> +	};
> +
> +	act8846: act8846 at 5a {
> +		compatible = "active-semi,act8846";
> +		reg = <0x5a>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pmic_vsel>;
> +		system-power-controller;
> +
> +		vp1-supply = <&vcc_sys>;
> +		vp2-supply = <&vcc_sys>;
> +		vp3-supply = <&vcc_sys>;
> +		vp4-supply = <&vcc_sys>;
> +		inl1-supply = <&vcc_sys>;
> +		inl2-supply = <&vcc_sys>;
> +		inl3-supply = <&vcc_20>;
> +
> +		regulators {
> +			vcc_ddr: REG1 {
> +				regulator-name = "vcc_ddr";
> +				regulator-always-on;
> +			};
> +
> +			vcc_io: REG2 {
> +				regulator-name = "vcc_io";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			vdd_log: REG3 {
> +				regulator-name = "vdd_log";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			vcc_20: REG4 {
> +				regulator-name = "vcc_20";
> +				regulator-min-microvolt = <2000000>;
> +				regulator-max-microvolt = <2000000>;
> +				regulator-always-on;
> +			};
> +
> +			vccio_sd: REG5 {
> +				regulator-name = "vccio_sd";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			vdd10_lcd: REG6 {
> +				regulator-name = "vdd10_lcd";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +			};
> +
> +			vcca_18: REG7 {
> +				regulator-name = "vcca_18";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vcca_33: REG8 {
> +				regulator-name = "vcca_33";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vcc_lan: REG9 {
> +				regulator-name = "vcc_lan";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vdd_10: REG10 {
> +				regulator-name = "vdd_10";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +			};
> +
> +			vcc_18: REG11 {
> +				regulator-name = "vcc_18";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			vcc18_lcd: REG12 {
> +				regulator-name = "vcc18_lcd";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +		};
> +	};
> +};
> +
> +&i2c1 {
> +	status = "okay";
> +};
> +
> +&i2c2 {
> +	status = "okay";
> +};
> +
> +&i2c4 {
> +	status = "okay";
> +};
> +
> +&i2c5 {
> +	status = "okay";
> +};
> +
> +&io_domains {
> +	status = "okay";
> +
> +	audio-supply = <&vcca_33>;
> +	flash0-supply = <&vcc_flash>;
> +	flash1-supply = <&vcc_lan>;
> +	gpio30-supply = <&vcc_io>;
> +	gpio1830-supply = <&vcc_io>;
> +	lcdc-supply = <&vcc_io>;
> +	sdcard-supply = <&vccio_sd>;
> +	wifi-supply = <&vcc_18>;
> +};
> +
> +&pinctrl {
> +	pcfg_output_high: pcfg-output-high {
> +		output-high;
> +	};
> +
> +	pcfg_output_low: pcfg-output-low {
> +		output-low;
> +	};
> +
> +	pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
> +		bias-pull-up;
> +		drive-strength = <12>;
> +	};
> +
> +	act8846 {
> +		pmic_int: pmic-int {
> +			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +
> +		pmic_sleep: pmic-sleep {
> +			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_output_low>;
> +		};
> +
> +		pmic_vsel: pmic-vsel {
> +			rockchip,pins = <7 RK_PA1 RK_FUNC_GPIO &pcfg_output_low>;
> +		};
> +	};
> +
> +	gmac {
> +		phy_int: phy-int {
> +			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +
> +		phy_pmeb: phy-pmeb {
> +			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +
> +		phy_rst: phy-rst {
> +			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
> +		};
> +	};
> +
> +	sdmmc {
> +		/*
> +		 * Default drive strength isn't enough to achieve even
> +		 * high-speed mode on firefly board so bump up to 12ma.
> +		 */
> +		sdmmc_bus4: sdmmc-bus4 {
> +			rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>,
> +					<6 RK_PC1 1 &pcfg_pull_up_drv_12ma>,
> +					<6 RK_PC2 1 &pcfg_pull_up_drv_12ma>,
> +					<6 RK_PC3 1 &pcfg_pull_up_drv_12ma>;
> +		};
> +
> +		sdmmc_clk: sdmmc-clk {
> +			rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>;
> +		};
> +
> +		sdmmc_cmd: sdmmc-cmd {
> +			rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>;
> +		};
> +
> +		sdmmc_pwr: sdmmc-pwr {
> +			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	usb_host {
> +		host_vbus_drv: host-vbus-drv {
> +			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +};
> +
> +&saradc {
> +	vref-supply = <&vcc_18>;
> +	status = "okay";
> +};
> +
> +&sdmmc {
> +	bus-width = <4>;
> +	cap-mmc-highspeed;
> +	cap-sd-highspeed;
> +	card-detect-delay = <200>;
> +	disable-wp;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
> +	vmmc-supply = <&vcc_sd>;
> +	vqmmc-supply = <&vccio_sd>;
> +	status = "okay";
> +};
> +
> +&tsadc {
> +	rockchip,hw-tshut-mode = <0>;
> +	rockchip,hw-tshut-polarity = <0>;
> +	status = "okay";
> +};
> +
> +&uart2 {
> +	status = "okay";
> +};
> +
> +&uart3 {
> +	status = "okay";
> +};
> +
> +&usbphy {
> +	status = "okay";
> +};
> +
> +&usb_host1 {
> +	status = "okay";
> +};
> +
> +&usb_otg {
> +	/*
> +	 * The otg controller is the only system power source,
> +	 * so needs to always stay in device mode.
> +	 */
> +	dr_mode = "peripheral";
> +	status = "okay";
> +};
> +
> +&vopb {
> +	status = "okay";
> +};
> +
> +&vopb_mmu {
> +	status = "okay";
> +};
> +
> +&vopl {
> +	status = "okay";
> +};
> +
> +&vopl_mmu {
> +	status = "okay";
> +};
> +
> +&wdt {
> +	status = "okay";
>   };
> diff --git a/arch/arm/dts/rk3288-miqi.dtsi b/arch/arm/dts/rk3288-miqi.dtsi
> deleted file mode 100644
> index b1c286c9..00000000
> --- a/arch/arm/dts/rk3288-miqi.dtsi
> +++ /dev/null
> @@ -1,418 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> -/*
> - * Copyright (c) 2016 Heiko Stuebner <heiko at sntech.de>
> - */
> -
> -#include "rk3288.dtsi"
> -
> -/ {
> -	memory {
> -		device_type = "memory";
> -		reg = <0 0x80000000>;
> -	};
> -
> -	ext_gmac: external-gmac-clock {
> -		compatible = "fixed-clock";
> -		#clock-cells = <0>;
> -		clock-frequency = <125000000>;
> -		clock-output-names = "ext_gmac";
> -	};
> -
> -	leds {
> -		compatible = "gpio-leds";
> -
> -		work {
> -			gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
> -			label = "miqi:green:user";
> -			linux,default-trigger = "default-on";
> -			pinctrl-names = "default";
> -			pinctrl-0 = <&led_ctl>;
> -		};
> -	};
> -
> -	vcc_flash: flash-regulator {
> -		compatible = "regulator-fixed";
> -		regulator-name = "vcc_flash";
> -		regulator-min-microvolt = <1800000>;
> -		regulator-max-microvolt = <1800000>;
> -		vin-supply = <&vcc_io>;
> -	};
> -
> -	vcc_host: usb-host-regulator {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&host_vbus_drv>;
> -		regulator-name = "vcc_host";
> -		regulator-min-microvolt = <5000000>;
> -		regulator-max-microvolt = <5000000>;
> -		regulator-always-on;
> -		vin-supply = <&vcc_sys>;
> -	};
> -
> -	vcc_sd: sdmmc-regulator {
> -		compatible = "regulator-fixed";
> -		gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&sdmmc_pwr>;
> -		regulator-name = "vcc_sd";
> -		regulator-min-microvolt = <3300000>;
> -		regulator-max-microvolt = <3300000>;
> -		startup-delay-us = <100000>;
> -		vin-supply = <&vcc_io>;
> -	};
> -
> -	vcc_sys: vsys-regulator {
> -		compatible = "regulator-fixed";
> -		regulator-name = "vcc_sys";
> -		regulator-min-microvolt = <5000000>;
> -		regulator-max-microvolt = <5000000>;
> -		regulator-always-on;
> -		regulator-boot-on;
> -	};
> -};
> -
> -&cpu0 {
> -	cpu0-supply = <&vdd_cpu>;
> -};
> -
> -&emmc {
> -	bus-width = <8>;
> -	cap-mmc-highspeed;
> -	disable-wp;
> -	non-removable;
> -	num-slots = <1>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
> -	vmmc-supply = <&vcc_io>;
> -	vqmmc-supply = <&vcc_flash>;
> -	status = "okay";
> -};
> -
> -&gmac {
> -	assigned-clocks = <&cru SCLK_MAC>;
> -	assigned-clock-parents = <&ext_gmac>;
> -	clock_in_out = "input";
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
> -	phy-supply = <&vcc_lan>;
> -	phy-mode = "rgmii";
> -	snps,reset-active-low;
> -	snps,reset-delays-us = <0 10000 1000000>;
> -	snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
> -	tx_delay = <0x30>;
> -	rx_delay = <0x10>;
> -	status = "okay";
> -};
> -
> -&hdmi {
> -	ddc-i2c-bus = <&i2c5>;
> -	status = "okay";
> -};
> -
> -&i2c0 {
> -	clock-frequency = <400000>;
> -	status = "okay";
> -
> -	vdd_cpu: syr827 at 40 {
> -		compatible = "silergy,syr827";
> -		fcs,suspend-voltage-selector = <1>;
> -		reg = <0x40>;
> -		regulator-name = "vdd_cpu";
> -		regulator-min-microvolt = <850000>;
> -		regulator-max-microvolt = <1350000>;
> -		regulator-always-on;
> -		regulator-boot-on;
> -		regulator-enable-ramp-delay = <300>;
> -		regulator-ramp-delay = <8000>;
> -		vin-supply = <&vcc_sys>;
> -	};
> -
> -	vdd_gpu: syr828 at 41 {
> -		compatible = "silergy,syr828";
> -		fcs,suspend-voltage-selector = <1>;
> -		reg = <0x41>;
> -		regulator-name = "vdd_gpu";
> -		regulator-min-microvolt = <850000>;
> -		regulator-max-microvolt = <1350000>;
> -		regulator-always-on;
> -		vin-supply = <&vcc_sys>;
> -	};
> -
> -	hym8563: hym8563 at 51 {
> -		compatible = "haoyu,hym8563";
> -		reg = <0x51>;
> -		#clock-cells = <0>;
> -		clock-frequency = <32768>;
> -		clock-output-names = "xin32k";
> -	};
> -
> -	act8846: act8846 at 5a {
> -		compatible = "active-semi,act8846";
> -		reg = <0x5a>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&pmic_vsel>;
> -		system-power-controller;
> -
> -		vp1-supply = <&vcc_sys>;
> -		vp2-supply = <&vcc_sys>;
> -		vp3-supply = <&vcc_sys>;
> -		vp4-supply = <&vcc_sys>;
> -		inl1-supply = <&vcc_sys>;
> -		inl2-supply = <&vcc_sys>;
> -		inl3-supply = <&vcc_20>;
> -
> -		regulators {
> -			vcc_ddr: REG1 {
> -				regulator-name = "vcc_ddr";
> -				regulator-always-on;
> -			};
> -
> -			vcc_io: REG2 {
> -				regulator-name = "vcc_io";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-always-on;
> -			};
> -
> -			vdd_log: REG3 {
> -				regulator-name = "vdd_log";
> -				regulator-min-microvolt = <1100000>;
> -				regulator-max-microvolt = <1100000>;
> -				regulator-always-on;
> -			};
> -
> -			vcc_20: REG4 {
> -				regulator-name = "vcc_20";
> -				regulator-min-microvolt = <2000000>;
> -				regulator-max-microvolt = <2000000>;
> -				regulator-always-on;
> -			};
> -
> -			vccio_sd: REG5 {
> -				regulator-name = "vccio_sd";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-always-on;
> -			};
> -
> -			vdd10_lcd: REG6 {
> -				regulator-name = "vdd10_lcd";
> -				regulator-min-microvolt = <1000000>;
> -				regulator-max-microvolt = <1000000>;
> -				regulator-always-on;
> -			};
> -
> -			vcca_18: REG7 {
> -				regulator-name = "vcca_18";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -			};
> -
> -			vcca_33: REG8 {
> -				regulator-name = "vcca_33";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -			};
> -
> -			vcc_lan: REG9 {
> -				regulator-name = "vcc_lan";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -			};
> -
> -			vdd_10: REG10 {
> -				regulator-name = "vdd_10";
> -				regulator-min-microvolt = <1000000>;
> -				regulator-max-microvolt = <1000000>;
> -				regulator-always-on;
> -			};
> -
> -			vcc_18: REG11 {
> -				regulator-name = "vcc_18";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -			};
> -
> -			vcc18_lcd: REG12 {
> -				regulator-name = "vcc18_lcd";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -			};
> -		};
> -	};
> -};
> -
> -&i2c1 {
> -	status = "okay";
> -};
> -
> -&i2c2 {
> -	status = "okay";
> -};
> -
> -&i2c4 {
> -	status = "okay";
> -};
> -
> -&i2c5 {
> -	status = "okay";
> -};
> -
> -&io_domains {
> -	status = "okay";
> -
> -	audio-supply = <&vcca_33>;
> -	flash0-supply = <&vcc_flash>;
> -	flash1-supply = <&vcc_lan>;
> -	gpio30-supply = <&vcc_io>;
> -	gpio1830-supply = <&vcc_io>;
> -	lcdc-supply = <&vcc_io>;
> -	sdcard-supply = <&vccio_sd>;
> -	wifi-supply = <&vcc_18>;
> -};
> -
> -&pinctrl {
> -	pcfg_output_high: pcfg-output-high {
> -		output-high;
> -	};
> -
> -	pcfg_output_low: pcfg-output-low {
> -		output-low;
> -	};
> -
> -	pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
> -		bias-pull-up;
> -		drive-strength = <12>;
> -	};
> -
> -	act8846 {
> -		pmic_int: pmic-int {
> -			rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -
> -		pmic_sleep: pmic-sleep {
> -			rockchip,pins = <0 0 RK_FUNC_GPIO &pcfg_output_low>;
> -		};
> -
> -		pmic_vsel: pmic-vsel {
> -			rockchip,pins = <7 1 RK_FUNC_GPIO &pcfg_output_low>;
> -		};
> -	};
> -
> -	gmac {
> -		phy_int: phy-int {
> -			rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -
> -		phy_pmeb: phy-pmeb {
> -			rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -
> -		phy_rst: phy-rst {
> -			rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
> -		};
> -	};
> -
> -	leds {
> -		led_ctl: led-ctl {
> -			rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	sdmmc {
> -		/*
> -		 * Default drive strength isn't enough to achieve even
> -		 * high-speed mode on firefly board so bump up to 12ma.
> -		 */
> -		sdmmc_bus4: sdmmc-bus4 {
> -			rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> -					<6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> -					<6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> -					<6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
> -		};
> -
> -		sdmmc_clk: sdmmc-clk {
> -			rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
> -		};
> -
> -		sdmmc_cmd: sdmmc-cmd {
> -			rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
> -		};
> -
> -		sdmmc_pwr: sdmmc-pwr {
> -			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	usb_host {
> -		host_vbus_drv: host-vbus-drv {
> -			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -};
> -
> -&saradc {
> -	vref-supply = <&vcc_18>;
> -	status = "okay";
> -};
> -
> -&sdmmc {
> -	bus-width = <4>;
> -	cap-mmc-highspeed;
> -	cap-sd-highspeed;
> -	card-detect-delay = <200>;
> -	disable-wp;
> -	num-slots = <1>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
> -	vmmc-supply = <&vcc_sd>;
> -	vqmmc-supply = <&vccio_sd>;
> -	status = "okay";
> -};
> -
> -&tsadc {
> -	rockchip,hw-tshut-mode = <0>;
> -	rockchip,hw-tshut-polarity = <0>;
> -	status = "okay";
> -};
> -
> -&uart2 {
> -	status = "okay";
> -};
> -
> -&uart3 {
> -	status = "okay";
> -};
> -
> -&usbphy {
> -	status = "okay";
> -};
> -
> -&usb_host1 {
> -	vbus-supply = <&vcc_host>;
> -	status = "okay";
> -};
> -
> -&vopb {
> -	status = "okay";
> -};
> -
> -&vopb_mmu {
> -	status = "okay";
> -};
> -
> -&vopl {
> -	status = "okay";
> -};
> -
> -&vopl_mmu {
> -	status = "okay";
> -};
> -
> -&wdt {
> -	status = "okay";
> -};
> diff --git a/arch/arm/dts/rk3288-phycore-rdk.dts b/arch/arm/dts/rk3288-phycore-rdk.dts
> index ebea8e67..1e33859d 100644
> --- a/arch/arm/dts/rk3288-phycore-rdk.dts
> +++ b/arch/arm/dts/rk3288-phycore-rdk.dts
> @@ -1,60 +1,20 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
>    * Device tree file for Phytec PCM-947 carrier board
>    * Copyright (C) 2017 PHYTEC Messtechnik GmbH
>    * Author: Wadim Egorov <w.egorov at phytec.de>
> - *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>    */
>   
>   /dts-v1/;
>   
>   #include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/leds-pca9532.h>
>   #include "rk3288-phycore-som.dtsi"
>   
>   / {
>   	model = "Phytec RK3288 PCM-947";
>   	compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";
>   
> -	chosen {
> -		stdout-path = &uart2;
> -	};
> -
>   	user_buttons: user-buttons {
>   		compatible = "gpio-keys";
>   		pinctrl-names = "default";
> @@ -155,6 +115,36 @@
>   
>   &i2c4 {
>   	status = "okay";
> +
> +	/* PCA9533 - 4-bit LED dimmer */
> +	leddim: leddimmer at 62 {
> +		compatible = "nxp,pca9533";
> +		reg = <0x62>;
> +
> +		led1 {
> +			label = "red:user1";
> +			linux,default-trigger = "none";
> +			type = <PCA9532_TYPE_LED>;
> +		};
> +
> +		led2 {
> +			label = "green:user2";
> +			linux,default-trigger = "none";
> +			type = <PCA9532_TYPE_LED>;
> +		};
> +
> +		led3 {
> +			label = "blue:user3";
> +			linux,default-trigger = "none";
> +			type = <PCA9532_TYPE_LED>;
> +		};
> +
> +		led4 {
> +			label = "red:user4";
> +			linux,default-trigger = "none";
> +			type = <PCA9532_TYPE_LED>;
> +		};
> +	};
>   };
>   
>   &i2c5 {
> @@ -170,15 +160,15 @@
>   	buttons {
>   		user_button_pins: user-button-pins {
>   			/* button 1 */
> -			rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_pull_up>,
> +			rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
>   			/* button 2 */
> -					<8 0 RK_FUNC_GPIO &pcfg_pull_up>;
> +					<8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	rv4162 {
>   		i2c_rtc_int: i2c-rtc-int {
> -			rockchip,pins = <5 10 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <5 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
> @@ -188,44 +178,44 @@
>   		 * high-speed mode on pcm-947 board so bump up to 12 mA.
>   		 */
>   		sdmmc_bus4: sdmmc-bus4 {
> -			rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> -					<6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> -					<6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> -					<6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
> +			rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>,
> +					<6 RK_PC1 1 &pcfg_pull_up_drv_12ma>,
> +					<6 RK_PC2 1 &pcfg_pull_up_drv_12ma>,
> +					<6 RK_PC3 1 &pcfg_pull_up_drv_12ma>;
>   		};
>   
>   		sdmmc_clk: sdmmc-clk {
> -			rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
> +			rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>;
>   		};
>   
>   		sdmmc_cmd: sdmmc-cmd {
> -			rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
> +			rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>;
>   		};
>   
>   		sdmmc_pwr: sdmmc-pwr {
> -			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	touchscreen {
>   		ts_irq_pin: ts-irq-pin {
> -			rockchip,pins = <5 15 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <5 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	usb_host {
>   		host0_vbus_drv: host0-vbus-drv {
> -			rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   
>   		host1_vbus_drv: host1-vbus-drv {
> -			rockchip,pins = <2 0 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	usb_otg {
>   		otg_vbus_drv: otg-vbus-drv {
> -			rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   };
> @@ -236,10 +226,13 @@
>   	cap-sd-highspeed;
>   	card-detect-delay = <200>;
>   	disable-wp;
> -	num-slots = <1>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> -	vmmc-supply = <&vdd_io_sd>;
> +	sd-uhs-sdr12;
> +	sd-uhs-sdr25;
> +	sd-uhs-sdr50;
> +	sd-uhs-sdr104;
> +	vmmc-supply = <&vdd_sd>;
>   	vqmmc-supply = <&vdd_io_sd>;
>   	status = "okay";
>   };
> diff --git a/arch/arm/dts/rk3288-phycore-som.dtsi b/arch/arm/dts/rk3288-phycore-som.dtsi
> index 8ac695c8..b4894e9f 100644
> --- a/arch/arm/dts/rk3288-phycore-som.dtsi
> +++ b/arch/arm/dts/rk3288-phycore-som.dtsi
> @@ -1,45 +1,8 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
>    * Device tree file for Phytec phyCORE-RK3288 SoM
>    * Copyright (C) 2017 PHYTEC Messtechnik GmbH
>    * Author: Wadim Egorov <w.egorov at phytec.de>
> - *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>    */
>   
>   #include <dt-bindings/net/ti-dp83867.h>
> @@ -61,7 +24,6 @@
>   	aliases {
>   		rtc0 = &i2c_rtc;
>   		rtc1 = &rk818;
> -		eeprom0 = &i2c_eeprom_id;
>   	};
>   
>   	ext_gmac: external-gmac-clock {
> @@ -74,9 +36,9 @@
>   	leds: user-leds {
>   		compatible = "gpio-leds";
>   		pinctrl-names = "default";
> -		pinctrl-0 = <&user_led>;
> +		pinctrl-0 = <&user_led_pin>;
>   
> -		user {
> +		user_led: led-0 {
>   			label = "green_led";
>   			gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
>   			linux,default-trigger = "heartbeat";
> @@ -111,33 +73,12 @@
>   	};
>   };
>   
> -&cpu0 {
> -	cpu0-supply = <&vdd_cpu>;
> -	operating-points = <
> -		/* KHz    uV */
> -		1800000	1400000
> -		1608000	1350000
> -		1512000 1300000
> -		1416000 1200000
> -		1200000 1100000
> -		1008000 1050000
> -		 816000 1000000
> -		 696000  950000
> -		 600000  900000
> -		 408000  900000
> -		 312000  900000
> -		 216000  900000
> -		 126000  900000
> -	>;
> -};
> -
>   &emmc {
>   	status = "okay";
>   	bus-width = <8>;
>   	cap-mmc-highspeed;
>   	disable-wp;
>   	non-removable;
> -	num-slots = <1>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
>   	vmmc-supply = <&vdd_3v3_io>;
> @@ -173,6 +114,7 @@
>   			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
>   			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
>   			enet-phy-lane-no-swap;
> +			ti,clk-output-sel = <DP83867_CLK_O_SEL_CHN_A_TCLK>;
>   		};
>   	};
>   };
> @@ -200,7 +142,6 @@
>   	clock-frequency = <400000>;
>   
>   	rk818: pmic at 1c {
> -		status = "okay";
>   		compatible = "rockchip,rk818";
>   		reg = <0x1c>;
>   		interrupt-parent = <&gpio0>;
> @@ -359,11 +300,10 @@
>   				regulator-name = "vdd_io_sd";
>   				regulator-always-on;
>   				regulator-boot-on;
> -				regulator-min-microvolt = <3300000>;
> +				regulator-min-microvolt = <1800000>;
>   				regulator-max-microvolt = <3300000>;
>   				regulator-state-mem {
> -					regulator-on-in-suspend;
> -					regulator-suspend-microvolt = <3300000>;
> +					regulator-off-in-suspend;
>   				};
>   			};
>   		};
> @@ -376,13 +316,6 @@
>   		pagesize = <32>;
>   	};
>   
> -	/* M24C32-D Identification page */
> -	i2c_eeprom_id: eeprom at 58 {
> -		compatible = "atmel,24c32";
> -		reg = <0x58>;
> -		pagesize = <32>;
> -	};
> -
>   	vdd_cpu: regulator at 60 {
>   		compatible = "fcs,fan53555";
>   		reg = <0x60>;
> @@ -409,49 +342,49 @@
>   		 * We also have external pulls, so disable the internal ones.
>   		 */
>   		emmc_clk: emmc-clk {
> -			rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_12ma>;
> +			rockchip,pins = <3 RK_PC2 2 &pcfg_pull_none_12ma>;
>   		};
>   
>   		emmc_cmd: emmc-cmd {
> -			rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_12ma>;
> +			rockchip,pins = <3 RK_PC0 2 &pcfg_pull_none_12ma>;
>   		};
>   
>   		emmc_bus8: emmc-bus8 {
> -			rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_12ma>,
> -					<3 1 RK_FUNC_2 &pcfg_pull_none_12ma>,
> -					<3 2 RK_FUNC_2 &pcfg_pull_none_12ma>,
> -					<3 3 RK_FUNC_2 &pcfg_pull_none_12ma>,
> -					<3 4 RK_FUNC_2 &pcfg_pull_none_12ma>,
> -					<3 5 RK_FUNC_2 &pcfg_pull_none_12ma>,
> -					<3 6 RK_FUNC_2 &pcfg_pull_none_12ma>,
> -					<3 7 RK_FUNC_2 &pcfg_pull_none_12ma>;
> +			rockchip,pins = <3 RK_PA0 2 &pcfg_pull_none_12ma>,
> +					<3 RK_PA1 2 &pcfg_pull_none_12ma>,
> +					<3 RK_PA2 2 &pcfg_pull_none_12ma>,
> +					<3 RK_PA3 2 &pcfg_pull_none_12ma>,
> +					<3 RK_PA4 2 &pcfg_pull_none_12ma>,
> +					<3 RK_PA5 2 &pcfg_pull_none_12ma>,
> +					<3 RK_PA6 2 &pcfg_pull_none_12ma>,
> +					<3 RK_PA7 2 &pcfg_pull_none_12ma>;
>   		};
>   	};
>   
>   	gmac {
>   		phy_int: phy-int {
> -			rockchip,pins = <4 2 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   
>   		phy_rst: phy-rst {
> -			rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
> +			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
>   		};
>   	};
>   
>   	leds {
> -		user_led: user-led {
> -			rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_output_high>;
> +		user_led_pin: user-led-pin {
> +			rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_output_high>;
>   		};
>   	};
>   
>   	pmic {
>   		pmic_int: pmic-int {
> -			rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   
>   		/* Pin for switching state between sleep and non-sleep state */
>   		pmic_sleep: pmic-sleep {
> -			rockchip,pins = <RK_GPIO0 0 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   };
> diff --git a/arch/arm/dts/rk3288-popmetal.dts b/arch/arm/dts/rk3288-popmetal.dts
> index 736dc51e..8c7376d6 100644
> --- a/arch/arm/dts/rk3288-popmetal.dts
> +++ b/arch/arm/dts/rk3288-popmetal.dts
> @@ -1,20 +1,513 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
> - * (C) Copyright 2016 Rockchip Electronics Co., Ltd
> + * Copyright (c) 2014, 2015 Andy Yan <andy.yan at rock-chips.com>
>    */
>   
>   /dts-v1/;
> -#include "rk3288-popmetal.dtsi"
> +#include <dt-bindings/input/input.h>
> +#include "rk3288.dtsi"
>   
>   / {
>   	model = "PopMetal-RK3288";
>   	compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
>   
> -	chosen {
> -		stdout-path = &uart2;
> +	memory at 0 {
> +		device_type = "memory";
> +		reg = <0x0 0x0 0x0 0x80000000>;
>   	};
> +
> +	ext_gmac: external-gmac-clock {
> +		compatible = "fixed-clock";
> +		clock-frequency = <125000000>;
> +		clock-output-names = "ext_gmac";
> +		#clock-cells = <0>;
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +		autorepeat;
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pwrbtn>;
> +
> +		power {
> +			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_POWER>;
> +			label = "GPIO Key Power";
> +			linux,input-type = <1>;
> +			wakeup-source;
> +			debounce-interval = <100>;
> +		};
> +	};
> +
> +	ir: ir-receiver {
> +		compatible = "gpio-ir-receiver";
> +		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&ir_int>;
> +	};
> +
> +	vcc_flash: flash-regulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vcc_flash";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		vin-supply = <&vcc_io>;
> +	};
> +
> +	vcc_sd: sdmmc-regulator {
> +		compatible = "regulator-fixed";
> +		gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&sdmmc_pwr>;
> +		regulator-name = "vcc_sd";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		startup-delay-us = <100000>;
> +		vin-supply = <&vcc_io>;
> +	};
> +
> +	vcc_sys: vsys-regulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vcc_sys";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};
> +
> +	/*
> +	 * A PT5128 creates both dovdd_1v8 and vcc28_dvp, controlled
> +	 * by the dvp_pwr pin.
> +	 */
> +	vcc18_dvp: vcc18-dvp-regulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vcc18-dvp";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		vin-supply = <&vcc28_dvp>;
> +	};
> +
> +	vcc28_dvp: vcc28-dvp-regulator {
> +		compatible = "regulator-fixed";
> +		enable-active-high;
> +		gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&dvp_pwr>;
> +		regulator-name = "vcc28_dvp";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		regulator-always-on;
> +		vin-supply = <&vcc_io>;
> +	};
> +};
> +
> +&cpu0 {
> +	cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu1 {
> +	cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu2 {
> +	cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu3 {
> +	cpu-supply = <&vdd_cpu>;
> +};
> +
> +&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_pwr &emmc_bus8>;
> +	vmmc-supply = <&vcc_io>;
> +	vqmmc-supply = <&vcc_flash>;
> +	status = "okay";
> +};
> +
> +&sdmmc {
> +	bus-width = <4>;
> +	cap-mmc-highspeed;
> +	cap-sd-highspeed;
> +	card-detect-delay = <200>;
> +	disable-wp;                     /* wp not hooked up */
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> +	sd-uhs-sdr12;
> +	sd-uhs-sdr25;
> +	sd-uhs-sdr50;
> +	sd-uhs-sdr104;
> +	vmmc-supply = <&vcc_sd>;
> +	vqmmc-supply = <&vccio_sd>;
> +	status = "okay";
> +};
> +
> +&gmac {
> +	phy-supply = <&vcc_lan>;
> +	phy-mode = "rgmii";
> +	clock_in_out = "input";
> +	snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
> +	snps,reset-active-low;
> +	snps,reset-delays-us = <0 10000 1000000>;
> +	assigned-clocks = <&cru SCLK_MAC>;
> +	assigned-clock-parents = <&ext_gmac>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&rgmii_pins>;
> +	tx_delay = <0x30>;
> +	rx_delay = <0x10>;
> +	status = "okay";
> +};
> +
> +&hdmi {
> +	ddc-i2c-bus = <&i2c5>;
> +	status = "okay";
> +};
> +
> +&i2c0 {
> +	status = "okay";
> +	clock-frequency = <400000>;
> +
> +	rk808: pmic at 1b {
> +		compatible = "rockchip,rk808";
> +		reg = <0x1b>;
> +		interrupt-parent = <&gpio0>;
> +		interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pmic_int &global_pwroff>;
> +		rockchip,system-power-controller;
> +		wakeup-source;
> +		#clock-cells = <1>;
> +		clock-output-names = "xin32k", "rk808-clkout2";
> +
> +		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 = <&vcc_18>;
> +		vcc9-supply = <&vcc_io>;
> +		vcc10-supply = <&vcc_io>;
> +		vcc11-supply = <&vcc_sys>;
> +		vcc12-supply = <&vcc_io>;
> +		vddio-supply = <&vcc_io>;
> +
> +		regulators {
> +			vdd_cpu: DCDC_REG1 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-min-microvolt = <750000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-name = "vdd_arm";
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
> +			};
> +
> +			vdd_gpu: DCDC_REG2 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-min-microvolt = <850000>;
> +				regulator-max-microvolt = <1250000>;
> +				regulator-name = "vdd_gpu";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <1000000>;
> +				};
> +			};
> +
> +			vcc_ddr: DCDC_REG3 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-name = "vcc_ddr";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +				};
> +			};
> +
> +			vcc_io: DCDC_REG4 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-name = "vcc_io";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <3300000>;
> +				};
> +			};
> +
> +			vcc_lan: LDO_REG1 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-name = "vcc_lan";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <3300000>;
> +				};
> +			};
> +
> +			vccio_sd: LDO_REG2 {
> +				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;
> +				};
> +			};
> +
> +			vdd_10: LDO_REG3 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-name = "vdd_10";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <1000000>;
> +				};
> +			};
> +
> +			vcc18_lcd: LDO_REG4 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-name = "vcc18_lcd";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <1800000>;
> +				};
> +			};
> +
> +			ldo5: LDO_REG5 {
> +				regulator-always-on;
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-name = "ldo5";
> +			};
> +
> +			vdd10_lcd: LDO_REG6 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-name = "vdd10_lcd";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <1000000>;
> +				};
> +			};
> +
> +			vcc_18: LDO_REG7 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-name = "vcc_18";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <1800000>;
> +				};
> +			};
> +
> +			vcca_33: LDO_REG8 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-name = "vcca_33";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <3300000>;
> +				};
> +			};
> +
> +			vccio_wl: SWITCH_REG1 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-name = "vccio_wl";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +				};
> +			};
> +
> +			vcc_lcd: SWITCH_REG2 {
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-name = "vcc_lcd";
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +				};
> +			};
> +		};
> +	};
> +};
> +
> +&i2c1 {
> +	status = "okay";
> +	clock-frequency = <400000>;
> +
> +	ak8963: ak8963 at d {
> +		compatible = "asahi-kasei,ak8975";
> +		reg = <0x0d>;
> +		interrupt-parent = <&gpio8>;
> +		interrupts = <RK_PA1 IRQ_TYPE_EDGE_RISING>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&comp_int>;
> +		vdd-supply = <&vcc_io>;
> +		vid-supply = <&vcc_io>;
> +	};
> +
> +	l3g4200d: l3g4200d at 69 {
> +		compatible = "st,l3g4200d-gyro";
> +		st,drdy-int-pin = <2>;
> +		reg = <0x69>;
> +		vdd-supply = <&vcc_io>;
> +		vddio-supply = <&vcc_io>;
> +	};
> +
> +	mma8452: mma8452 at 1d {
> +		compatible = "fsl,mma8452";
> +		reg = <0x1d>;
> +		interrupt-parent = <&gpio8>;
> +		interrupts = <RK_PA0 IRQ_TYPE_EDGE_RISING>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&gsensor_int>;
> +	};
> +};
> +
> +&i2c2 {
> +	status = "okay";
> +};
> +
> +&i2c3 {
> +	status = "okay";
> +};
> +
> +&i2c4 {
> +	status = "okay";
> +};
> +
> +&i2c5 {
> +	status = "okay";
> +};
> +
> +&io_domains {
> +	status = "okay";
> +
> +	audio-supply = <&vcca_33>;
> +	bb-supply = <&vcc_io>;
> +	dvp-supply = <&vcc18_dvp>;
> +	flash0-supply = <&vcc_flash>;
> +	flash1-supply = <&vcc_lan>;
> +	gpio30-supply = <&vcc_io>;
> +	gpio1830-supply = <&vcc_io>;
> +	lcdc-supply = <&vcc_io>;
> +	sdcard-supply = <&vccio_sd>;
> +	wifi-supply = <&vccio_wl>;
> +};
> +
> +&pinctrl {
> +	ak8963 {
> +		comp_int: comp-int {
> +			rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +
> +	buttons {
> +		pwrbtn: pwrbtn {
> +			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +
> +	dvp {
> +		dvp_pwr: dvp-pwr {
> +			rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	ir {
> +		ir_int: ir-int {
> +			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +
> +	mma8452 {
> +		gsensor_int: gsensor-int {
> +			rockchip,pins = <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +
> +	pmic {
> +		pmic_int: pmic-int {
> +			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +
> +	sdmmc {
> +		sdmmc_pwr: sdmmc-pwr {
> +			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +};
> +
> +&tsadc {
> +	rockchip,hw-tshut-mode = <0>;
> +	rockchip,hw-tshut-polarity = <0>;
> +	status = "okay";
> +};
> +
> +&vopb {
> +	status = "okay";
> +};
> +
> +&vopb_mmu {
> +	status = "okay";
> +};
> +
> +&vopl {
> +	status = "okay";
> +};
> +
> +&vopl_mmu {
> +	status = "okay";
> +};
> +
> +&uart0 {
> +	status = "okay";
> +};
> +
> +&uart1 {
> +	status = "okay";
> +};
> +
> +&uart2 {
> +	status = "okay";
> +};
> +
> +&uart3 {
> +	status = "okay";
> +};
> +
> +&uart4 {
> +	status = "okay";
> +};
> +
> +&usbphy {
> +	status = "okay";
>   };
>   
> -&pwm1 {
> +&usb_otg {
>   	status = "okay";
>   };
> diff --git a/arch/arm/dts/rk3288-popmetal.dtsi b/arch/arm/dts/rk3288-popmetal.dtsi
> deleted file mode 100644
> index bcd8fded..00000000
> --- a/arch/arm/dts/rk3288-popmetal.dtsi
> +++ /dev/null
> @@ -1,545 +0,0 @@
> -/*
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *  Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
> - */
> -
> -#include "rk3288.dtsi"
> -
> -/ {
> -	memory{
> -		device_type = "memory";
> -		reg = <0 0x80000000>;
> -	};
> -
> -	ext_gmac: external-gmac-clock {
> -		compatible = "fixed-clock";
> -		clock-frequency = <125000000>;
> -		clock-output-names = "ext_gmac";
> -		#clock-cells = <0>;
> -	};
> -
> -	gpio-keys {
> -		compatible = "gpio-keys";
> -		autorepeat;
> -
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&pwrbtn>;
> -
> -		power {
> -			gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
> -			label = "GPIO Key Power";
> -			linux,input-type = <1>;
> -			wakeup-source;
> -			debounce-interval = <100>;
> -		};
> -	};
> -
> -	ir: ir-receiver {
> -		compatible = "gpio-ir-receiver";
> -		gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&ir_int>;
> -	};
> -
> -	vcc_flash: flash-regulator {
> -		compatible = "regulator-fixed";
> -		regulator-name = "vcc_flash";
> -		regulator-min-microvolt = <1800000>;
> -		regulator-max-microvolt = <1800000>;
> -		vin-supply = <&vcc_io>;
> -	};
> -
> -	vcc_sd: sdmmc-regulator {
> -		compatible = "regulator-fixed";
> -		gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&sdmmc_pwr>;
> -		regulator-name = "vcc_sd";
> -		regulator-min-microvolt = <3300000>;
> -		regulator-max-microvolt = <3300000>;
> -		startup-delay-us = <100000>;
> -		vin-supply = <&vcc_io>;
> -	};
> -
> -	vcc_sys: vsys-regulator {
> -		compatible = "regulator-fixed";
> -		regulator-name = "vcc_sys";
> -		regulator-min-microvolt = <5000000>;
> -		regulator-max-microvolt = <5000000>;
> -		regulator-always-on;
> -		regulator-boot-on;
> -	};
> -
> -	/*
> -	 * A PT5128 creates both dovdd_1v8 and vcc28_dvp, controlled
> -	 * by the dvp_pwr pin.
> -	 */
> -	vcc18_dvp: vcc18-dvp-regulator {
> -		compatible = "regulator-fixed";
> -		regulator-name = "vcc18-dvp";
> -		regulator-min-microvolt = <1800000>;
> -		regulator-max-microvolt = <1800000>;
> -		vin-supply = <&vcc28_dvp>;
> -	};
> -
> -	vcc28_dvp: vcc28-dvp-regulator {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio0 17 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&dvp_pwr>;
> -		regulator-name = "vcc28_dvp";
> -		regulator-min-microvolt = <2800000>;
> -		regulator-max-microvolt = <2800000>;
> -		regulator-always-on;
> -		vin-supply = <&vcc_io>;
> -	};
> -
> -	vcc5v0_host: usb-host-regulator {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio0 14 GPIO_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;
> -	};
> -};
> -
> -&cpu0 {
> -	cpu0-supply = <&vdd_cpu>;
> -};
> -
> -&emmc {
> -	bus-width = <8>;
> -	cap-mmc-highspeed;
> -	disable-wp;
> -	non-removable;
> -	num-slots = <1>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
> -	vmmc-supply = <&vcc_io>;
> -	vqmmc-supply = <&vcc_flash>;
> -	status = "okay";
> -};
> -
> -&sdmmc {
> -	bus-width = <4>;
> -	cap-mmc-highspeed;
> -	cap-sd-highspeed;
> -	card-detect-delay = <200>;
> -	disable-wp;
> -	num-slots = <1>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> -	vmmc-supply = <&vcc_sd>;
> -	vqmmc-supply = <&vccio_sd>;
> -	status = "okay";
> -};
> -
> -&gmac {
> -	phy-supply = <&vcc_lan>;
> -	phy-mode = "rgmii";
> -	clock_in_out = "input";
> -	snps,reset-gpio = <&gpio4 7 0>;
> -	snps,reset-active-low;
> -	snps,reset-delays-us = <0 10000 1000000>;
> -	assigned-clocks = <&cru SCLK_MAC>;
> -	assigned-clock-parents = <&ext_gmac>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&rgmii_pins>;
> -	tx_delay = <0x30>;
> -	rx_delay = <0x10>;
> -	status = "okay";
> -};
> -
> -&hdmi {
> -	ddc-i2c-bus = <&i2c5>;
> -	status = "okay";
> -};
> -
> -&i2c0 {
> -	status = "okay";
> -	clock-frequency = <400000>;
> -
> -	rk808: pmic at 1b {
> -		compatible = "rockchip,rk808";
> -		reg = <0x1b>;
> -		interrupt-parent = <&gpio0>;
> -		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&pmic_int &global_pwroff>;
> -		rockchip,system-power-controller;
> -		wakeup-source;
> -		#clock-cells = <1>;
> -		clock-output-names = "xin32k", "rk808-clkout2";
> -
> -		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 = <&vcc_18>;
> -		vcc9-supply = <&vcc_io>;
> -		vcc10-supply = <&vcc_io>;
> -		vcc11-supply = <&vcc_sys>;
> -		vcc12-supply = <&vcc_io>;
> -		vddio-supply = <&vcc_io>;
> -
> -		regulators {
> -			vdd_cpu: DCDC_REG1 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <750000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-name = "vdd_arm";
> -				regulator-state-mem {
> -					regulator-off-in-suspend;
> -				};
> -			};
> -
> -			vdd_gpu: DCDC_REG2 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <850000>;
> -				regulator-max-microvolt = <1250000>;
> -				regulator-name = "vdd_gpu";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -					regulator-suspend-microvolt = <1000000>;
> -				};
> -			};
> -
> -			vcc_ddr: DCDC_REG3 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-name = "vcc_ddr";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -				};
> -			};
> -
> -			vcc_io: DCDC_REG4 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-name = "vcc_io";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -					regulator-suspend-microvolt = <3300000>;
> -				};
> -			};
> -
> -			vcc_lan: LDO_REG1 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-name = "vcc_lan";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -					regulator-suspend-microvolt = <3300000>;
> -				};
> -			};
> -
> -			vccio_sd: LDO_REG2 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-name = "vccio_sd";
> -				regulator-state-mem {
> -					regulator-off-in-suspend;
> -				};
> -			};
> -
> -			vdd_10: LDO_REG3 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <1000000>;
> -				regulator-max-microvolt = <1000000>;
> -				regulator-name = "vdd_10";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -					regulator-suspend-microvolt = <1000000>;
> -				};
> -			};
> -
> -			vcc18_lcd: LDO_REG4 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-name = "vcc18_lcd";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -					regulator-suspend-microvolt = <1800000>;
> -				};
> -			};
> -
> -			ldo5: LDO_REG5 {
> -				regulator-always-on;
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-name = "ldo5";
> -			};
> -
> -			vdd10_lcd: LDO_REG6 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <1000000>;
> -				regulator-max-microvolt = <1000000>;
> -				regulator-name = "vdd10_lcd";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -					regulator-suspend-microvolt = <1000000>;
> -				};
> -			};
> -
> -			vcc_18: LDO_REG7 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-name = "vcc_18";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -					regulator-suspend-microvolt = <1800000>;
> -				};
> -			};
> -
> -			vcca_33: LDO_REG8 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-name = "vcca_33";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -					regulator-suspend-microvolt = <3300000>;
> -				};
> -			};
> -
> -			vccio_wl: SWITCH_REG1 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-name = "vccio_wl";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -				};
> -			};
> -
> -			vcc_lcd: SWITCH_REG2 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-name = "vcc_lcd";
> -				regulator-state-mem {
> -					regulator-on-in-suspend;
> -				};
> -			};
> -		};
> -	};
> -};
> -
> -&i2c1 {
> -	status = "okay";
> -	clock-frequency = <400000>;
> -
> -	ak8963: ak8963 at 0d {
> -		compatible = "asahi-kasei,ak8975";
> -		reg = <0x0d>;
> -		interrupt-parent = <&gpio8>;
> -		interrupts = <1 IRQ_TYPE_EDGE_RISING>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&comp_int>;
> -	};
> -
> -	l3g4200d: l3g4200d at 68 {
> -		compatible = "st,l3g4200d-gyro";
> -		st,drdy-int-pin = <2>;
> -		reg = <0x6b>;
> -	};
> -
> -	mma8452: mma8452 at 1d {
> -		compatible = "fsl,mma8452";
> -		reg = <0x1d>;
> -		interrupt-parent = <&gpio8>;
> -		interrupts = <0 IRQ_TYPE_EDGE_RISING>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&gsensor_int>;
> -	};
> -};
> -
> -&i2c2 {
> -	status = "okay";
> -};
> -
> -&i2c3 {
> -	status = "okay";
> -};
> -
> -&i2c4 {
> -	status = "okay";
> -};
> -
> -&i2c5 {
> -	status = "okay";
> -};
> -
> -&io_domains {
> -	status = "okay";
> -	audio-supply = <&vcca_33>;
> -	bb-supply = <&vcc_io>;
> -	dvp-supply = <&vcc18_dvp>;
> -	flash0-supply = <&vcc_flash>;
> -	flash1-supply = <&vcc_lan>;
> -	gpio30-supply = <&vcc_io>;
> -	gpio1830-supply = <&vcc_io>;
> -	lcdc-supply = <&vcc_io>;
> -	sdcard-supply = <&vccio_sd>;
> -	wifi-supply = <&vccio_wl>;
> -};
> -
> -&pinctrl {
> -	ak8963 {
> -		comp_int: comp-int {
> -			rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -	};
> -
> -	buttons {
> -		pwrbtn: pwrbtn {
> -			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -	};
> -
> -	dvp {
> -		dvp_pwr: dvp-pwr {
> -			rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	ir {
> -		ir_int: ir-int {
> -			rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -	};
> -
> -	mma8452 {
> -		gsensor_int: gsensor-int {
> -			rockchip,pins = <8 0 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -	};
> -
> -	pmic {
> -		pmic_int: pmic-int {
> -			rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -	};
> -
> -	sdmmc {
> -		sdmmc_pwr: sdmmc-pwr {
> -			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	usb_host {
> -		host_vbus_drv: host-vbus-drv {
> -			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -};
> -
> -&saradc {
> -	status = "okay";
> -};
> -
> -&tsadc {
> -	rockchip,hw-tshut-mode = <0>;
> -	rockchip,hw-tshut-polarity = <0>;
> -	status = "okay";
> -};
> -
> -&vopb {
> -	status = "okay";
> -};
> -
> -&vopb_mmu {
> -	status = "okay";
> -};
> -
> -&vopl {
> -	status = "okay";
> -};
> -
> -&vopl_mmu {
> -	status = "okay";
> -};
> -
> -&uart0 {
> -	status = "okay";
> -};
> -
> -&uart1 {
> -	status = "okay";
> -};
> -
> -&uart2 {
> -	status = "okay";
> -};
> -
> -&uart3 {
> -	status = "okay";
> -};
> -
> -&uart4 {
> -	status = "okay";
> -};
> -
> -&usb_host1 {
> -	vbus-supply = <&vcc5v0_host>;
> -	status = "okay";
> -};
> -
> -&usbphy {
> -	status = "okay";
> -};
> diff --git a/arch/arm/dts/rk3288-rock2-som.dtsi b/arch/arm/dts/rk3288-rock2-som.dtsi
> index 1ece66f3..61698d3f 100644
> --- a/arch/arm/dts/rk3288-rock2-som.dtsi
> +++ b/arch/arm/dts/rk3288-rock2-som.dtsi
> @@ -1,48 +1,10 @@
> -/*
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
> - */
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   
>   #include <dt-bindings/pwm/pwm.h>
>   #include "rk3288.dtsi"
>   
>   / {
> -	memory {
> +	memory at 0 {
>   		reg = <0x0 0x80000000>;
>   		device_type = "memory";
>   	};
> @@ -51,7 +13,7 @@
>   		compatible = "mmc-pwrseq-emmc";
>   		pinctrl-0 = <&emmc_reset>;
>   		pinctrl-names = "default";
> -		reset-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
> +		reset-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
>   	};
>   
>   	ext_gmac: external-gmac-clock {
> @@ -61,6 +23,15 @@
>   		clock-output-names = "ext_gmac";
>   	};
>   
> +	vcc_flash: flash-regulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vcc_flash";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		startup-delay-us = <150>;
> +		vin-supply = <&vcc_io>;
> +	};
> +
>   	vcc_sys: vsys-regulator {
>   		compatible = "regulator-fixed";
>   		regulator-name = "vcc_sys";
> @@ -80,11 +51,11 @@
>   	cap-mmc-highspeed;
>   	disable-wp;
>   	non-removable;
> -	num-slots = <1>;
>   	mmc-pwrseq = <&emmc_pwrseq>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
>   	vmmc-supply = <&vcc_io>;
> +	vqmmc-supply = <&vcc_flash>;
>   	status = "okay";
>   };
>   
> @@ -96,13 +67,18 @@
>   	phy-supply = <&vccio_pmu>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&rgmii_pins &phy_rst>;
> -	snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
> +	snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
>   	snps,reset-active-low;
>   	snps,reset-delays-us = <0 10000 30000>;
>   	rx_delay = <0x10>;
>   	tx_delay = <0x30>;
>   };
>   
> +&gpu {
> +	mali-supply = <&vdd_gpu>;
> +	status = "okay";
> +};
> +
>   &i2c0 {
>   	status = "okay";
>   
> @@ -126,7 +102,7 @@
>   				regulator-always-on;
>   			};
>   
> -			vcc_io: REG2 {
> +			vcc_io: vccio_codec: REG2 {
>   				regulator-name = "VCC_IO";
>   				regulator-min-microvolt = <3300000>;
>   				regulator-max-microvolt = <3300000>;
> @@ -233,24 +209,43 @@
>   	};
>   };
>   
> +&io_domains {
> +	status = "okay";
> +
> +	audio-supply = <&vcc_io>;
> +	bb-supply = <&vcc_io>;
> +	dvp-supply = <&vcc_18>;
> +	flash0-supply = <&vcc_flash>;
> +	flash1-supply = <&vccio_pmu>;
> +	gpio30-supply = <&vccio_pmu>;
> +	gpio1830-supply = <&vcc_io>;
> +	lcdc-supply = <&vcc_io>;
> +	sdcard-supply = <&vccio_sd>;
> +	wifi-supply = <&vcc_18>;
> +};
> +
>   &pinctrl {
>   	pcfg_output_high: pcfg-output-high {
>   		output-high;
>   	};
>   
>   	emmc {
> -			emmc_reset: emmc-reset {
> -				rockchip,pins = <3 9 RK_FUNC_GPIO &pcfg_pull_none>;
> -			};
> +		emmc_reset: emmc-reset {
> +			rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
>   	};
>   
>   	gmac {
>   		phy_rst: phy-rst {
> -			rockchip,pins = <4 8 RK_FUNC_GPIO  &pcfg_output_high>;
> +			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
>   		};
>   	};
>   };
>   
> +&saradc {
> +	vref-supply = <&vcc_18>;
> +};
> +
>   &tsadc {
>   	rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
>   	rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
> diff --git a/arch/arm/dts/rk3288-rock2-square.dts b/arch/arm/dts/rk3288-rock2-square.dts
> index 41676696..c4d1d142 100644
> --- a/arch/arm/dts/rk3288-rock2-square.dts
> +++ b/arch/arm/dts/rk3288-rock2-square.dts
> @@ -1,44 +1,7 @@
> -/*
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
> - */
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   
>   /dts-v1/;
> +#include <dt-bindings/input/input.h>
>   #include "rk3288-rock2-som.dtsi"
>   
>   / {
> @@ -49,9 +12,51 @@
>   		stdout-path = "serial2:115200n8";
>   	};
>   
> +	adc-keys {
> +		compatible = "adc-keys";
> +		io-channels = <&saradc 1>;
> +		io-channel-names = "buttons";
> +		keyup-threshold-microvolt = <1800000>;
> +
> +		button-recovery {
> +			label = "Recovery";
> +			linux,code = <KEY_VENDOR>;
> +			press-threshold-microvolt = <0>;
> +		};
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +
> +		power {
> +			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
> +			label = "GPIO Power";
> +			linux,code = <KEY_POWER>;
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&pwr_key>;
> +			wakeup-source;
> +		};
> +	};
> +
> +	gpio-leds {
> +		compatible = "gpio-leds";
> +
> +		heartbeat_led: led-0 {
> +			gpios = <&gpio7 RK_PB7 GPIO_ACTIVE_LOW>;
> +			label = "rock2:green:state1";
> +			linux,default-trigger = "heartbeat";
> +		};
> +
> +		mmc_led: led-1 {
> +			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_LOW>;
> +			label = "rock2:blue:state2";
> +			linux,default-trigger = "mmc0";
> +		};
> +	};
> +
>   	ir: ir-receiver {
>   		compatible = "gpio-ir-receiver";
> -		gpios = <&gpio8 1 GPIO_ACTIVE_LOW>;
> +		gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&ir_int>;
>   	};
> @@ -65,27 +70,56 @@
>   		};
>   	};
>   
> +	sata_pwr: sata-prw-regulator {
> +		compatible = "regulator-fixed";
> +		enable-active-high;
> +		gpio = <&gpio0 13 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&sata_pwr_en>;
> +		/* Always turn on the 5V sata power connector */
> +		regulator-always-on;
> +		regulator-name = "sata_pwr";
> +	};
> +
>   	spdif_out: spdif-out {
>   		compatible = "linux,spdif-dit";
>   		#sound-dai-cells = <0>;
>   	};
>   
> +	sound-i2s {
> +		compatible = "rockchip,rk3288-hdmi-analog";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&phone_ctl>, <&hp_det>;
> +		rockchip,audio-codec = <&es8388>;
> +		rockchip,hp-det-gpios = <&gpio7 7 GPIO_ACTIVE_HIGH>;
> +		rockchip,hp-en-gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>;
> +		rockchip,i2s-controller = <&i2s>;
> +		rockchip,model = "I2S";
> +		rockchip,routing = "Analog", "LOUT2",
> +				   "Analog", "ROUT2";
> +	};
> +
> +	sdio_pwrseq: sdio-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		clocks = <&hym8563>;
> +		clock-names = "ext_clock";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&wifi_enable>;
> +		reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
> +	};
> +
>   	vcc_usb_host: vcc-host-regulator {
>   		compatible = "regulator-fixed";
>   		enable-active-high;
> -		gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> +		gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&host_vbus_drv>;
> -		/* Always on as the rockchip usb phy doesn't have a vbus-supply
> -		 * property
> -		 */
> -		regulator-always-on;
>   		regulator-name = "vcc_host";
>   	};
>   
>   	vcc_sd: sdmmc-regulator {
>   		compatible = "regulator-fixed";
> -		gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
> +		gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&sdmmc_pwr>;
>   		regulator-name = "vcc_sd";
> @@ -95,13 +129,25 @@
>   	};
>   };
>   
> +&sdio0 {
> +	bus-width = <4>;
> +	cap-sd-highspeed;
> +	cap-sdio-irq;
> +	mmc-pwrseq = <&sdio_pwrseq>;
> +	non-removable;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk &sdio0_int>;
> +	vmmc-supply = <&vcc_io>;
> +	vqmmc-supply = <&vcc_18>;
> +	status = "okay";
> +};
> +
>   &sdmmc {
>   	bus-width = <4>;
>   	cap-mmc-highspeed;
>   	cap-sd-highspeed;
>   	card-detect-delay = <200>;
>   	disable-wp;	/* wp not hooked up */
> -	num-slots = <1>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
>   	vmmc-supply = <&vcc_sd>;
> @@ -119,63 +165,124 @@
>   };
>   
>   &i2c0 {
> -	hym8563 at 51 {
> +	hym8563: hym8563 at 51 {
>   		compatible = "haoyu,hym8563";
>   		reg = <0x51>;
>   		#clock-cells = <0>;
>   		clock-frequency = <32768>;
>   		clock-output-names = "xin32k";
>   		interrupt-parent = <&gpio0>;
> -		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
> +		interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&pmic_int>;
>   
>   	};
>   };
>   
> +&i2c2 {
> +	status = "okay";
> +
> +	es8388: es8388 at 10 {
> +		compatible = "everest,es8388", "everest,es8328";
> +		reg = <0x10>;
> +		AVDD-supply = <&vccio_codec>;
> +		DVDD-supply = <&vccio_codec>;
> +		HPVDD-supply = <&vccio_codec>;
> +		PVDD-supply = <&vccio_codec>;
> +		clocks = <&cru SCLK_I2S0_OUT>;
> +	};
> +};
> +
>   &i2c5 {
>   	status = "okay";
>   };
>   
> +&i2s {
> +	status = "okay";
> +};
> +
>   &pinctrl {
>   	ir {
>   		ir_int: ir-int {
> -			rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +
> +	keys {
> +		pwr_key: pwr-key {
> +			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	pmic {
>   		pmic_int: pmic-int {
> -			rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +
> +	headphone {
> +		hp_det: hp-det {
> +			rockchip,pins = <7 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +
> +		phone_ctl: phone-ctl {
> +			rockchip,pins = <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	usb {
>   		host_vbus_drv: host-vbus-drv {
> -			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	sata {
> +		sata_pwr_en: sata-pwr-en {
> +			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	sdmmc {
>   		sdmmc_pwr: sdmmc-pwr {
> -			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	sdio {
> +		wifi_enable: wifi-enable {
> +			rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   };
>   
> +&saradc {
> +	status = "okay";
> +};
> +
>   &spdif {
>   	status = "okay";
>   };
>   
>   &uart2 {
>   	status = "okay";
> -	reg-shift = <2>;
>   };
>   
>   &usbphy {
>   	status = "okay";
>   };
>   
> +&usbphy1 {
> +	vbus-supply = <&vcc_usb_host>;
> +};
> +
>   &usb_host0_ehci {
>   	status = "okay";
>   };
> +
> +&usb_host1 {
> +	status = "okay";
> +};
> +
> +&usb_otg {
> +	status = "okay";
> +};
> diff --git a/arch/arm/dts/rk3288-tinker-s.dts b/arch/arm/dts/rk3288-tinker-s.dts
> index cc7ac5f8..970e1385 100644
> --- a/arch/arm/dts/rk3288-tinker-s.dts
> +++ b/arch/arm/dts/rk3288-tinker-s.dts
> @@ -10,10 +10,6 @@
>   / {
>   	model = "Rockchip RK3288 Asus Tinker Board S";
>   	compatible = "asus,rk3288-tinker-s", "rockchip,rk3288";
> -
> -	chosen {
> -		stdout-path = &uart2;
> -	};
>   };
>   
>   &emmc {
> @@ -27,3 +23,8 @@
>   	mmc-ddr-1_8v;
>   	status = "okay";
>   };
> +
> +&hdmi {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&hdmi_cec_c0>;
> +};
> diff --git a/arch/arm/dts/rk3288-tinker.dts b/arch/arm/dts/rk3288-tinker.dts
> index 8b1848c3..1e43527a 100644
> --- a/arch/arm/dts/rk3288-tinker.dts
> +++ b/arch/arm/dts/rk3288-tinker.dts
> @@ -1,33 +1,13 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
> - * (C) Copyright 2016 Rockchip Electronics Co., Ltd
> + * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
>    */
>   
>   /dts-v1/;
> +
>   #include "rk3288-tinker.dtsi"
>   
>   / {
> -	model = "Tinker-RK3288";
> -	compatible = "rockchip,rk3288-tinker", "rockchip,rk3288";
> -
> -	chosen {
> -		stdout-path = &uart2;
> -	};
> -};
> -
> -&pinctrl {
> -	usb {
> -		host_vbus_drv: host-vbus-drv {
> -			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -};
> -
> -&pwm1 {
> -	status = "okay";
> -};
> -
> -&usb_host1 {
> -	vbus-supply = <&vcc5v0_host>;
> -	status = "okay";
> +	model = "Rockchip RK3288 Asus Tinker Board";
> +	compatible = "asus,rk3288-tinker", "rockchip,rk3288";
>   };
> diff --git a/arch/arm/dts/rk3288-tinker.dtsi b/arch/arm/dts/rk3288-tinker.dtsi
> index 2f816af4..4fde8a75 100644
> --- a/arch/arm/dts/rk3288-tinker.dtsi
> +++ b/arch/arm/dts/rk3288-tinker.dtsi
> @@ -1,46 +1,17 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
> + * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
>    */
>   
>   #include "rk3288.dtsi"
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/clock/rockchip,rk808.h>
>   
>   / {
> +	chosen {
> +		stdout-path = "serial2:115200n8";
> +	};
> +
>   	memory {
>   		device_type = "memory";
>   		reg = <0x0 0x80000000>;
> @@ -48,23 +19,26 @@
>   
>   	ext_gmac: external-gmac-clock {
>   		compatible = "fixed-clock";
> +		#clock-cells = <0>;
>   		clock-frequency = <125000000>;
>   		clock-output-names = "ext_gmac";
> -		#clock-cells = <0>;
>   	};
>   
>   	gpio-keys {
>   		compatible = "gpio-keys";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
>   		autorepeat;
>   
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&pwrbtn>;
>   
>   		button at 0 {
> -			gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
> +			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_POWER>;
>   			label = "GPIO Key Power";
>   			linux,input-type = <1>;
> -			gpio-key,wakeup = <1>;
> +			wakeup-source;
>   			debounce-interval = <100>;
>   		};
>   	};
> @@ -72,14 +46,44 @@
>   	gpio-leds {
>   		compatible = "gpio-leds";
>   
> -		pwr-led {
> -			gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
> +		act_led: led-0 {
> +			gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "mmc0";
> +		};
> +
> +		heartbeat_led: led-1 {
> +			gpios = <&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "heartbeat";
> +		};
> +
> +		pwr_led: led-2 {
> +			gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
>   			linux,default-trigger = "default-on";
>   		};
> +	};
>   
> -		act-led {
> -			gpios=<&gpio2 3 GPIO_ACTIVE_LOW>;
> -			linux,default-trigger="mmc0";
> +	sdio_pwrseq: sdio-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		clocks = <&rk808 RK808_CLKOUT1>;
> +		clock-names = "ext_clock";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&wifi_enable>;
> +		reset-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_LOW>,
> +			<&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
> +	};
> +
> +	sound {
> +		compatible = "simple-audio-card";
> +		simple-audio-card,format = "i2s";
> +		simple-audio-card,name = "rockchip,tinker-codec";
> +		simple-audio-card,mclk-fs = <512>;
> +
> +		simple-audio-card,codec {
> +			sound-dai = <&hdmi>;
> +		};
> +
> +		simple-audio-card,cpu {
> +			sound-dai = <&i2s>;
>   		};
>   	};
>   
> @@ -92,11 +96,6 @@
>   		regulator-boot-on;
>   	};
>   
> -	/*
> -	 * NOTE: vcc_sd isn't hooked up on v1.0 boards where power comes from
> -	 * vcc_io directly.  Those boards won't be able to power cycle SD cards
> -	 * but it shouldn't hurt to toggle this pin there anyway.
> -	 */
>   	vcc_sd: sdmmc-regulator {
>   		compatible = "regulator-fixed";
>   		gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
> @@ -108,80 +107,66 @@
>   		startup-delay-us = <100000>;
>   		vin-supply = <&vcc_io>;
>   	};
> -
> -	vcc5v0_host: usb-host-regulator {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio0 14 GPIO_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;
> -	};
>   };
>   
>   &cpu0 {
>   	cpu0-supply = <&vdd_cpu>;
>   };
>   
> -&sdmmc {
> -	bus-width = <4>;
> -	cap-mmc-highspeed;
> -	cap-sd-highspeed;
> -	card-detect-delay = <200>;
> -	disable-wp;			/* wp not hooked up */
> -	num-slots = <1>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> -	status = "okay";
> -	supports-sd;
> -	vmmc-supply = <&vcc_sd>;
> -	vqmmc-supply = <&vccio_sd>;
> -};
> -
> -&gpu {
> -	mali-supply = <&vdd_gpu>;
> -	status = "okay";
> +&cpu_opp_table {
> +	opp-1704000000 {
> +		opp-hz = /bits/ 64 <1704000000>;
> +		opp-microvolt = <1350000>;
> +	};
> +	opp-1800000000 {
> +		opp-hz = /bits/ 64 <1800000000>;
> +		opp-microvolt = <1400000>;
> +	};
>   };
>   
>   &gmac {
> -	phy-supply = <&vcc33_lan>;
> -	phy-mode = "rgmii";
> -	clock_in_out = "input";
> -	snps,reset-gpio = <&gpio4 7 0>;
> -	snps,reset-active-low;
> -	snps,reset-delays-us = <0 10000 1000000>;
>   	assigned-clocks = <&cru SCLK_MAC>;
>   	assigned-clock-parents = <&ext_gmac>;
> +	clock_in_out = "input";
> +	phy-mode = "rgmii";
> +	phy-supply = <&vcc33_lan>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&rgmii_pins>;
> +	snps,reset-gpio = <&gpio4 7 0>;
> +	snps,reset-active-low;
> +	snps,reset-delays-us = <0 10000 1000000>;
>   	tx_delay = <0x30>;
>   	rx_delay = <0x10>;
>   	status = "okay";
>   };
>   
> +&gpu {
> +	mali-supply = <&vdd_gpu>;
> +	status = "okay";
> +};
> +
>   &hdmi {
>   	ddc-i2c-bus = <&i2c5>;
>   	status = "okay";
>   };
>   
>   &i2c0 {
> -	status = "okay";
>   	clock-frequency = <400000>;
> +	status = "okay";
>   
>   	rk808: pmic at 1b {
>   		compatible = "rockchip,rk808";
>   		reg = <0x1b>;
>   		interrupt-parent = <&gpio0>;
>   		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
> +		#clock-cells = <1>;
> +		clock-output-names = "xin32k", "rk808-clkout2";
> +		dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
> +				<&gpio0 12 GPIO_ACTIVE_HIGH>;
>   		pinctrl-names = "default";
> -		pinctrl-0 = <&pmic_int &global_pwroff>;
> +		pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>;
>   		rockchip,system-power-controller;
>   		wakeup-source;
> -		#clock-cells = <1>;
> -		clock-output-names = "xin32k", "rk808-clkout2";
>   
>   		vcc1-supply = <&vcc_sys>;
>   		vcc2-supply = <&vcc_sys>;
> @@ -189,20 +174,21 @@
>   		vcc4-supply = <&vcc_sys>;
>   		vcc6-supply = <&vcc_sys>;
>   		vcc7-supply = <&vcc_sys>;
> -		vcc8-supply = <&vcc_18>;
> +		vcc8-supply = <&vcc_io>;
>   		vcc9-supply = <&vcc_io>;
>   		vcc10-supply = <&vcc_io>;
>   		vcc11-supply = <&vcc_sys>;
>   		vcc12-supply = <&vcc_io>;
> -		vddio-supply = <&vcc18_ldo1>;
> +		vddio-supply = <&vcc_io>;
>   
>   		regulators {
>   			vdd_cpu: DCDC_REG1 {
>   				regulator-always-on;
>   				regulator-boot-on;
>   				regulator-min-microvolt = <750000>;
> -				regulator-max-microvolt = <1350000>;
> +				regulator-max-microvolt = <1400000>;
>   				regulator-name = "vdd_arm";
> +				regulator-ramp-delay = <6000>;
>   				regulator-state-mem {
>   					regulator-off-in-suspend;
>   				};
> @@ -214,6 +200,7 @@
>   				regulator-min-microvolt = <850000>;
>   				regulator-max-microvolt = <1250000>;
>   				regulator-name = "vdd_gpu";
> +				regulator-ramp-delay = <6000>;
>   				regulator-state-mem {
>   					regulator-on-in-suspend;
>   					regulator-suspend-microvolt = <1000000>;
> @@ -359,47 +346,149 @@
>   
>   &i2c2 {
>   	status = "okay";
> -	headset: nau8825 at 1a {
> -		compatible = "nuvoton,nau8825";
> -		#sound-dai-cells = <0>;
> -		reg = <0x1a>;
> -		interrupt-parent = <&gpio6>;
> -		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
> -		nuvoton,jkdet-enable = <1>;
> -		nuvoton,jkdet-pull-enable = <1>;
> -		nuvoton,jkdet-pull-up = <0>;
> -		nuvoton,jkdet-polarity = <1>;
> -		nuvoton,vref-impedance = <2>;
> -		nuvoton,micbias-voltage = <6>;
> -		nuvoton,sar-threshold-num = <4>;
> -		nuvoton,sar-threshold = <0xa 0x14 0x26 0x73>;
> -		nuvoton,sar-hysteresis = <0>;
> -		nuvoton,sar-voltage = <6>;
> -		nuvoton,sar-compare-time = <0>;
> -		nuvoton,sar-sampling-time = <0>;
> -		nuvoton,short-key-debounce = <3>;
> -		nuvoton,jack-insert-debounce = <7>;
> -		nuvoton,jack-eject-debounce = <7>;
> -		clock-names = "mclk";
> -		clocks = <&cru SCLK_I2S0_OUT>;
> -	};
>   };
>   
>   &i2c5 {
>   	status = "okay";
>   };
>   
> -&wdt {
> +&i2s {
> +	#sound-dai-cells = <0>;
>   	status = "okay";
>   };
>   
> +&io_domains {
> +	status = "okay";
> +
> +	sdcard-supply = <&vccio_sd>;
> +	wifi-supply = <&vcc_18>;
> +};
> +
> +&pinctrl {
> +	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
> +		drive-strength = <8>;
> +	};
> +
> +	pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
> +		bias-pull-up;
> +		drive-strength = <8>;
> +	};
> +
> +	backlight {
> +		bl_en: bl-en {
> +			rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	buttons {
> +		pwrbtn: pwrbtn {
> +			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +
> +	eth_phy {
> +		eth_phy_pwr: eth-phy-pwr {
> +			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	pmic {
> +		pmic_int: pmic-int {
> +			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +
> +		dvs_1: dvs-1 {
> +			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>;
> +		};
> +
> +		dvs_2: dvs-2 {
> +			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
> +		};
> +	};
> +
> +	sdmmc {
> +		sdmmc_bus4: sdmmc-bus4 {
> +			rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_8ma>,
> +					<6 RK_PC1 1 &pcfg_pull_up_drv_8ma>,
> +					<6 RK_PC2 1 &pcfg_pull_up_drv_8ma>,
> +					<6 RK_PC3 1 &pcfg_pull_up_drv_8ma>;
> +		};
> +
> +		sdmmc_clk: sdmmc-clk {
> +			rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_drv_8ma>;
> +		};
> +
> +		sdmmc_cmd: sdmmc-cmd {
> +			rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_8ma>;
> +		};
> +
> +		sdmmc_pwr: sdmmc-pwr {
> +			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	usb {
> +		host_vbus_drv: host-vbus-drv {
> +			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +
> +		pwr_3g: pwr-3g {
> +			rockchip,pins = <7 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	sdio {
> +		wifi_enable: wifi-enable {
> +			rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>,
> +					<4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +};
> +
>   &pwm0 {
>   	status = "okay";
>   };
>   
>   &saradc {
>   	vref-supply = <&vcc18_ldo1>;
> -	status ="okay";
> +	status = "okay";
> +};
> +
> +&sdmmc {
> +	bus-width = <4>;
> +	cap-mmc-highspeed;
> +	cap-sd-highspeed;
> +	broken-cd;
> +	disable-wp;			/* wp not hooked up */
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> +	status = "okay";
> +	vmmc-supply = <&vcc33_sd>;
> +	vqmmc-supply = <&vccio_sd>;
> +};
> +
> +&sdio0 {
> +	bus-width = <4>;
> +	cap-sd-highspeed;
> +	cap-sdio-irq;
> +	keep-power-in-suspend;
> +	max-frequency = <50000000>;
> +	mmc-pwrseq = <&sdio_pwrseq>;
> +	non-removable;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>;
> +	sd-uhs-sdr12;
> +	sd-uhs-sdr25;
> +	sd-uhs-sdr50;
> +	vmmc-supply = <&vcc_io>;
> +	vqmmc-supply = <&vcc_18>;
> +	status = "okay";
> +};
> +
> +&tsadc {
> +	rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
> +	rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
> +	status = "okay";
>   };
>   
>   &uart0 {
> @@ -422,12 +511,6 @@
>   	status = "okay";
>   };
>   
> -&tsadc {
> -	rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
> -	rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
> -	status = "okay";
> -};
> -
>   &usbphy {
>   	status = "okay";
>   };
> @@ -441,7 +524,7 @@
>   };
>   
>   &usb_otg {
> -	status= "okay";
> +	status = "okay";
>   };
>   
>   &vopb {
> @@ -460,72 +543,6 @@
>   	status = "okay";
>   };
>   
> -&pinctrl {
> -	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
> -		drive-strength = <8>;
> -	};
> -
> -	pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
> -		bias-pull-up;
> -		drive-strength = <8>;
> -	};
> -
> -	backlight {
> -		bl_en: bl-en {
> -			rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	buttons {
> -		pwrbtn: pwrbtn {
> -			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -	};
> -
> -	eth_phy {
> -		eth_phy_pwr: eth-phy-pwr {
> -			rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	pmic {
> -		pmic_int: pmic-int {
> -			rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -	};
> -
> -	sdmmc {
> -		/*
> -		 * Default drive strength isn't enough to achieve even
> -		 * high-speed mode on EVB board so bump up to 8ma.
> -		 */
> -		sdmmc_bus4: sdmmc-bus4 {
> -			rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
> -					<6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
> -					<6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
> -					<6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
> -		};
> -
> -		sdmmc_clk: sdmmc-clk {
> -			rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
> -		};
> -
> -		sdmmc_cmd: sdmmc-cmd {
> -			rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
> -		};
> -
> -		sdmmc_pwr: sdmmc-pwr {
> -			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	usb {
> -		host_vbus_drv: host-vbus-drv {
> -			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -
> -		pwr_3g: pwr-3g {
> -			rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> +&wdt {
> +	status = "okay";
>   };


More information about the U-Boot mailing list