[PATCH v3 11/12] arm: dts: rockchip: sync rk3288-veyron DT from Linux

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


On 2022/3/4 07:52, Johan Jonker wrote:
> Sync rk3288-veyron DT from Linux version 5.17.
>
> Signed-off-by: Johan Jonker <jbx6244 at gmail.com>

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

Thanks,
- Kever
> ---
>
> Changed V3:
>    update
>    change reg size
>
> Changed V2:
>    update
>    add label spi_flash veyron
> ---
>   arch/arm/dts/rk3288-veyron-analog-audio.dtsi  |  99 +++
>   .../dts/rk3288-veyron-broadcom-bluetooth.dtsi |  22 +
>   arch/arm/dts/rk3288-veyron-chromebook.dtsi    | 115 ++--
>   arch/arm/dts/rk3288-veyron-edp.dtsi           | 141 ++++
>   arch/arm/dts/rk3288-veyron-jerry.dts          | 506 +++++++++++---
>   arch/arm/dts/rk3288-veyron-mickey.dts         | 343 +++++++---
>   arch/arm/dts/rk3288-veyron-minnie.dts         | 441 +++++++-----
>   arch/arm/dts/rk3288-veyron-sdmmc.dtsi         |  89 +++
>   arch/arm/dts/rk3288-veyron-speedy.dts         | 303 ++++++--
>   arch/arm/dts/rk3288-veyron.dtsi               | 645 ++++++------------
>   10 files changed, 1799 insertions(+), 905 deletions(-)
>   create mode 100644 arch/arm/dts/rk3288-veyron-analog-audio.dtsi
>   create mode 100644 arch/arm/dts/rk3288-veyron-broadcom-bluetooth.dtsi
>   create mode 100644 arch/arm/dts/rk3288-veyron-edp.dtsi
>   create mode 100644 arch/arm/dts/rk3288-veyron-sdmmc.dtsi
>
> diff --git a/arch/arm/dts/rk3288-veyron-analog-audio.dtsi b/arch/arm/dts/rk3288-veyron-analog-audio.dtsi
> new file mode 100644
> index 00000000..51208d16
> --- /dev/null
> +++ b/arch/arm/dts/rk3288-veyron-analog-audio.dtsi
> @@ -0,0 +1,99 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Google Veyron (and derivatives) fragment for the  max98090 audio
> + * codec and analog headphone jack.
> + *
> + * Copyright 2016 Google, Inc
> + */
> +
> +/ {
> +	sound {
> +		compatible = "rockchip,rockchip-audio-max98090";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&mic_det>, <&hp_det>;
> +		rockchip,model = "VEYRON-I2S";
> +		rockchip,i2s-controller = <&i2s>;
> +		rockchip,audio-codec = <&max98090>;
> +		rockchip,hp-det-gpios = <&gpio6 RK_PA5 GPIO_ACTIVE_HIGH>;
> +		rockchip,mic-det-gpios = <&gpio6 RK_PB3 GPIO_ACTIVE_LOW>;
> +		rockchip,headset-codec = <&headsetcodec>;
> +		rockchip,hdmi-codec = <&hdmi>;
> +	};
> +};
> +
> +&i2c2 {
> +	max98090: max98090 at 10 {
> +		compatible = "maxim,max98090";
> +		reg = <0x10>;
> +		interrupt-parent = <&gpio6>;
> +		interrupts = <RK_PA7 IRQ_TYPE_EDGE_FALLING>;
> +		clock-names = "mclk";
> +		clocks = <&cru SCLK_I2S0_OUT>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&int_codec>;
> +	};
> +};
> +
> +&i2c4 {
> +	headsetcodec: ts3a227e at 3b {
> +		compatible = "ti,ts3a227e";
> +		reg = <0x3b>;
> +		interrupt-parent = <&gpio0>;
> +		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&ts3a227e_int_l>;
> +		ti,micbias = <7>;		/* MICBIAS = 2.8V */
> +	};
> +};
> +
> +&i2s {
> +	status = "okay";
> +};
> +
> +&io_domains {
> +	audio-supply = <&vcc18_codec>;
> +};
> +
> +&rk808 {
> +	vcc10-supply = <&vcc33_sys>;
> +
> +	regulators {
> +		vcc18_codec: LDO_REG6 {
> +			regulator-name = "vcc18_codec";
> +			regulator-always-on;
> +			regulator-boot-on;
> +			regulator-min-microvolt = <1800000>;
> +			regulator-max-microvolt = <1800000>;
> +			regulator-state-mem {
> +				regulator-off-in-suspend;
> +			};
> +		};
> +	};
> +};
> +
> +&pinctrl {
> +	codec {
> +		hp_det: hp-det {
> +			rockchip,pins = <6 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +
> +		/*
> +		 * HACK: We're going to _pull down_ this _active low_ interrupt
> +		 * so that it never fires.  We don't need this interrupt because
> +		 * we've got a ts3a227e chip but the driver requires it.
> +		 */
> +		int_codec: int-codec {
> +			rockchip,pins = <6 RK_PA7 RK_FUNC_GPIO &pcfg_pull_down>;
> +		};
> +
> +		mic_det: mic-det {
> +			rockchip,pins = <6 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +
> +	headset {
> +		ts3a227e_int_l: ts3a227e-int-l {
> +			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +};
> diff --git a/arch/arm/dts/rk3288-veyron-broadcom-bluetooth.dtsi b/arch/arm/dts/rk3288-veyron-broadcom-bluetooth.dtsi
> new file mode 100644
> index 00000000..a10d25ac
> --- /dev/null
> +++ b/arch/arm/dts/rk3288-veyron-broadcom-bluetooth.dtsi
> @@ -0,0 +1,22 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Google Veyron (and derivatives) fragment for the Broadcom 43450 bluetooth
> + * chip.
> + *
> + * Copyright 2019 Google, Inc
> + */
> +
> +&uart0 {
> +	bluetooth {
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&bt_host_wake_l>, <&bt_enable_l>,
> +			    <&bt_dev_wake>;
> +
> +		compatible = "brcm,bcm43540-bt";
> +		host-wakeup-gpios	= <&gpio4 RK_PD7 GPIO_ACTIVE_HIGH>;
> +		shutdown-gpios		= <&gpio4 RK_PD5 GPIO_ACTIVE_HIGH>;
> +		device-wakeup-gpios	= <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
> +		max-speed		= <3000000>;
> +		brcm,bt-pcm-int-params	= [01 02 00 01 01];
> +	};
> +};
> diff --git a/arch/arm/dts/rk3288-veyron-chromebook.dtsi b/arch/arm/dts/rk3288-veyron-chromebook.dtsi
> index 143eaae2..05112c25 100644
> --- a/arch/arm/dts/rk3288-veyron-chromebook.dtsi
> +++ b/arch/arm/dts/rk3288-veyron-chromebook.dtsi
> @@ -1,39 +1,45 @@
> -// SPDX-License-Identifier: GPL-2.0
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
>    * Google Veyron (and derivatives) board device tree source
> + * Chromebook specific parts
>    *
> - * Copyright 2014 Google, Inc
> + * Copyright 2015 Google, Inc
>    */
>   
>   #include <dt-bindings/clock/rockchip,rk808.h>
>   #include <dt-bindings/input/input.h>
>   #include "rk3288-veyron.dtsi"
> +#include "rk3288-veyron-analog-audio.dtsi"
> +#include "rk3288-veyron-edp.dtsi"
> +#include "rk3288-veyron-sdmmc.dtsi"
>   
>   / {
>   	aliases {
> +		/* Assign 20 so we don't get confused w/ builtin ones */
>   		i2c20 = &i2c_tunnel;
> -		video0 = &vopl;
> -		video1 = &vopb;
> -	};
> -
> -	gpio_keys: gpio-keys {
> -		pinctrl-0 = <&pwr_key_h &ap_lid_int_l>;
> -		lid {
> -			label = "Lid";
> -			gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
> -			linux,code = <0>; /* SW_LID */
> -			linux,input-type = <5>; /* EV_SW */
> -			debounce-interval = <1>;
> -			gpio-key,wakeup;
> -                };
>   	};
>   
>   	gpio-charger {
>   		compatible = "gpio-charger";
> -		gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
> +		charger-type = "mains";
> +		gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&ac_present_ap>;
> -		charger-type = "mains";
> +	};
> +
> +	lid_switch: lid-switch {
> +		compatible = "gpio-keys";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&ap_lid_int_l>;
> +
> +		lid {
> +			label = "Lid";
> +			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
> +			wakeup-source;
> +			linux,code = <SW_LID>;
> +			linux,input-type = <EV_SW>;
> +			debounce-interval = <1>;
> +		};
>   	};
>   
>   	/* A non-regulated voltage from power supply or battery */
> @@ -56,7 +62,7 @@
>   	vcc5_host1: vcc5-host1-regulator {
>   		compatible = "regulator-fixed";
>   		enable-active-high;
> -		gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
> +		gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&host1_pwr_en>;
>   		regulator-name = "vcc5_host1";
> @@ -68,7 +74,7 @@
>   	vcc5v_otg: vcc5v-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 = <&usbotg_pwren_h>;
>   		regulator-name = "vcc5_host2";
> @@ -78,34 +84,34 @@
>   };
>   
>   &rk808 {
> +	vcc11-supply = <&vcc_5v>;
> +
>   	regulators {
>   		vcc33_ccd: LDO_REG8 {
> +			regulator-name = "vcc33_ccd";
>   			regulator-always-on;
>   			regulator-boot-on;
>   			regulator-min-microvolt = <3300000>;
>   			regulator-max-microvolt = <3300000>;
> -			regulator-name = "vcc33_ccd";
> -			regulator-suspend-mem-disabled;
> +			regulator-state-mem {
> +				regulator-off-in-suspend;
> +			};
>   		};
>   	};
>   };
>   
>   &spi0 {
>   	status = "okay";
> -	spi-activate-delay = <100>;
> -	spi-max-frequency = <3000000>;
> -	spi-deactivate-delay = <200>;
>   
>   	cros_ec: ec at 0 {
>   		compatible = "google,cros-ec-spi";
> -		spi-max-frequency = <3000000>;
> +		reg = <0>;
> +		google,cros-ec-spi-pre-delay = <30>;
>   		interrupt-parent = <&gpio7>;
> -		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
> -		ec-interrupt = <&gpio7 7 GPIO_ACTIVE_LOW>;
> +		interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&ec_int>;
> -		reg = <0>;
> -		google,cros-ec-spi-pre-delay = <30>;
> +		spi-max-frequency = <3000000>;
>   
>   		i2c_tunnel: i2c-tunnel {
>   			compatible = "google,cros-ec-i2c-tunnel";
> @@ -118,86 +124,59 @@
>   
>   &i2c4 {
>   	trackpad at 15 {
> -		compatible = "elan,i2c_touchpad";
> +		compatible = "elan,ekth3000";
> +		reg = <0x15>;
>   		interrupt-parent = <&gpio7>;
> -		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
> +		interrupts = <RK_PA3 IRQ_TYPE_EDGE_FALLING>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&trackpad_int>;
> -		reg = <0x15>;
>   		vcc-supply = <&vcc33_io>;
>   		wakeup-source;
>   	};
>   };
>   
>   &pinctrl {
> -	pinctrl-0 = <
> -		/* Common for sleep and wake, but no owners */
> -		&ddr0_retention
> -		&ddrio_pwroff
> -		&global_pwroff
> -
> -		/* Wake only */
> -		&suspend_l_wake
> -		&bt_dev_wake_awake
> -	>;
> -	pinctrl-1 = <
> -		/* Common for sleep and wake, but no owners */
> -		&ddr0_retention
> -		&ddrio_pwroff
> -		&global_pwroff
> -
> -		/* Sleep only */
> -		&suspend_l_sleep
> -		&bt_dev_wake_sleep
> -	>;
> -
>   	buttons {
>   		ap_lid_int_l: ap-lid-int-l {
> -			rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	charger {
>   		ac_present_ap: ac-present-ap {
> -			rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	cros-ec {
>   		ec_int: ec-int {
> -			rockchip,pins = <7 7 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	sdmmc {
> -		sdmmc_wp_gpio: sdmmc-wp-gpio {
> -			rockchip,pins = <7 10 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <7 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	suspend {
>   		suspend_l_wake: suspend-l-wake {
> -			rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_output_low>;
> +			rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_output_low>;
>   		};
>   
>   		suspend_l_sleep: suspend-l-sleep {
> -			rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_output_high>;
> +			rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_output_high>;
>   		};
>   	};
>   
>   	trackpad {
>   		trackpad_int: trackpad-int {
> -			rockchip,pins = <7 3 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <7 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	usb-host {
>   		host1_pwr_en: host1-pwr-en {
> -			rockchip,pins = <0 11 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   
>   		usbotg_pwren_h: usbotg-pwren-h {
> -			rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   };
> diff --git a/arch/arm/dts/rk3288-veyron-edp.dtsi b/arch/arm/dts/rk3288-veyron-edp.dtsi
> new file mode 100644
> index 00000000..32c0f107
> --- /dev/null
> +++ b/arch/arm/dts/rk3288-veyron-edp.dtsi
> @@ -0,0 +1,141 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Google Veyron (and derivatives) fragment for the edp displays
> + *
> + * Copyright 2019 Google LLC
> + */
> +
> +/ {
> +	backlight_regulator: backlight-regulator {
> +		compatible = "regulator-fixed";
> +		enable-active-high;
> +		gpio = <&gpio2 RK_PB4 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&bl_pwr_en>;
> +		regulator-name = "backlight_regulator";
> +		vin-supply = <&vcc33_sys>;
> +		startup-delay-us = <15000>;
> +	};
> +
> +	panel_regulator: panel-regulator {
> +		compatible = "regulator-fixed";
> +		enable-active-high;
> +		gpio = <&gpio7 RK_PB6 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&lcd_enable_h>;
> +		regulator-name = "panel_regulator";
> +		vin-supply = <&vcc33_sys>;
> +	};
> +
> +	vcc18_lcd: vcc18-lcd {
> +		compatible = "regulator-fixed";
> +		enable-active-high;
> +		gpio = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&avdd_1v8_disp_en>;
> +		regulator-name = "vcc18_lcd";
> +		regulator-always-on;
> +		regulator-boot-on;
> +		vin-supply = <&vcc18_wl>;
> +	};
> +
> +	backlight: backlight {
> +		compatible = "pwm-backlight";
> +		brightness-levels = <0 255>;
> +		num-interpolated-steps = <255>;
> +		default-brightness-level = <128>;
> +		enable-gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&bl_en>;
> +		pwms = <&pwm0 0 1000000 0>;
> +		post-pwm-on-delay-ms = <10>;
> +		pwm-off-delay-ms = <10>;
> +		power-supply = <&backlight_regulator>;
> +	};
> +
> +	panel: panel {
> +		compatible = "innolux,n116bge";
> +		status = "okay";
> +		power-supply = <&panel_regulator>;
> +		backlight = <&backlight>;
> +
> +		panel-timing {
> +			clock-frequency = <74250000>;
> +			hactive = <1366>;
> +			hfront-porch = <136>;
> +			hback-porch = <60>;
> +			hsync-len = <30>;
> +			hsync-active = <0>;
> +			vactive = <768>;
> +			vfront-porch = <8>;
> +			vback-porch = <12>;
> +			vsync-len = <12>;
> +			vsync-active = <0>;
> +		};
> +
> +		ports {
> +			panel_in: port {
> +				panel_in_edp: endpoint {
> +					remote-endpoint = <&edp_out_panel>;
> +				};
> +			};
> +		};
> +	};
> +};
> +
> +&edp {
> +	status = "okay";
> +
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&edp_hpd>;
> +
> +	ports {
> +		edp_out: port at 1 {
> +			reg = <1>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			edp_out_panel: endpoint at 0 {
> +				reg = <0>;
> +				remote-endpoint = <&panel_in_edp>;
> +			};
> +		};
> +	};
> +};
> +
> +&edp_phy {
> +	status = "okay";
> +};
> +
> +&pwm0 {
> +	status = "okay";
> +};
> +
> +&vopl {
> +	status = "okay";
> +};
> +
> +&vopl_mmu {
> +	status = "okay";
> +};
> +
> +&pinctrl {
> +	backlight {
> +		bl_pwr_en: bl_pwr_en {
> +			rockchip,pins = <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +
> +		bl_en: bl-en {
> +			rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	lcd {
> +		lcd_enable_h: lcd-en {
> +			rockchip,pins = <7 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +
> +		avdd_1v8_disp_en: avdd-1v8-disp-en {
> +			rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +};
> diff --git a/arch/arm/dts/rk3288-veyron-jerry.dts b/arch/arm/dts/rk3288-veyron-jerry.dts
> index 40fee55c..2c916c50 100644
> --- a/arch/arm/dts/rk3288-veyron-jerry.dts
> +++ b/arch/arm/dts/rk3288-veyron-jerry.dts
> @@ -1,8 +1,8 @@
> -// SPDX-License-Identifier: GPL-2.0
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
>    * Google Veyron Jerry Rev 3+ board device tree source
>    *
> - * Copyright 2014 Google, Inc
> + * Copyright 2015 Google, Inc
>    */
>   
>   /dts-v1/;
> @@ -11,162 +11,454 @@
>   
>   / {
>   	model = "Google Jerry";
> -	compatible = "google,veyron-jerry-rev7", "google,veyron-jerry-rev6",
> +	compatible = "google,veyron-jerry-rev15", "google,veyron-jerry-rev14",
> +		     "google,veyron-jerry-rev13", "google,veyron-jerry-rev12",
> +		     "google,veyron-jerry-rev11", "google,veyron-jerry-rev10",
> +		     "google,veyron-jerry-rev7", "google,veyron-jerry-rev6",
>   		     "google,veyron-jerry-rev5", "google,veyron-jerry-rev4",
>   		     "google,veyron-jerry-rev3", "google,veyron-jerry",
>   		     "google,veyron", "rockchip,rk3288";
> -
> -        chosen {
> -                stdout-path = &uart2;
> -        };
> -
> -	panel_regulator: panel-regulator {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&lcd_enable_h>;
> -		regulator-name = "panel_regulator";
> -		vin-supply = <&vcc33_sys>;
> -	};
> -
> -	vcc18_lcd: vcc18-lcd {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&avdd_1v8_disp_en>;
> -		regulator-name = "vcc18_lcd";
> -		regulator-always-on;
> -		regulator-boot-on;
> -		vin-supply = <&vcc18_wl>;
> -	};
> -
> -	backlight_regulator: backlight-regulator {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&bl_pwr_en>;
> -		regulator-name = "backlight_regulator";
> -		vin-supply = <&vcc33_sys>;
> -		startup-delay-us = <15000>;
> -	};
> -
> -	sound {
> -		compatible = "rockchip,audio-max98090-jerry";
> -
> -		cpu {
> -			sound-dai = <&i2s 0>;
> -		};
> -
> -		codec {
> -			sound-dai = <&max98090 0>;
> -		};
> -	};
> -};
> -
> -&gpio_keys {
> -	power {
> -		gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
> -	};
> -};
> -
> -&backlight {
> -	power-supply = <&backlight_regulator>;
> -};
> -
> -&panel {
> -	power-supply= <&panel_regulator>;
>   };
>   
>   &rk808 {
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
> -	dvs-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>,
> -		    <&gpio7 15 GPIO_ACTIVE_HIGH>;
> +	dvs-gpios = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>,
> +		    <&gpio7 RK_PB7 GPIO_ACTIVE_HIGH>;
>   
>   	regulators {
>   		mic_vcc: LDO_REG2 {
> +			regulator-name = "mic_vcc";
>   			regulator-always-on;
>   			regulator-boot-on;
>   			regulator-min-microvolt = <1800000>;
>   			regulator-max-microvolt = <1800000>;
> -			regulator-name = "mic_vcc";
> -			regulator-suspend-mem-disabled;
> +			regulator-state-mem {
> +				regulator-off-in-suspend;
> +			};
>   		};
>   	};
>   };
>   
> +&sdio0 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	mwifiex: wifi at 1 {
> +		compatible = "marvell,sd8897";
> +		reg = <1>;
> +
> +		marvell,caldata-txpwrlimit-2g = /bits/ 8 <
> +0x01 0x00 0x06 0x00 0x08 0x02 0x89 0x01
> +0x24 0x00 0x67 0x09 0x14 0x01 0x00 0x0f 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c
> +0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c
> +0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01 0x24 0x00 0x67 0x09 0x14 0x02 0x00 0x0f
> +0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c 0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09
> +0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01
> +0x24 0x00 0x67 0x09 0x14 0x03 0x00 0x0f 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c
> +0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c
> +0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01 0x24 0x00 0x67 0x09 0x14 0x04 0x00 0x0f
> +0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c 0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09
> +0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01
> +0x24 0x00 0x67 0x09 0x14 0x05 0x00 0x0f 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c
> +0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c
> +0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01 0x24 0x00 0x67 0x09 0x14 0x06 0x00 0x0f
> +0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c 0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09
> +0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01
> +0x24 0x00 0x67 0x09 0x14 0x07 0x00 0x0f 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c
> +0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c
> +0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01 0x24 0x00 0x67 0x09 0x14 0x08 0x00 0x0f
> +0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c 0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09
> +0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01
> +0x24 0x00 0x67 0x09 0x14 0x09 0x00 0x0f 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c
> +0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c
> +0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01 0x24 0x00 0x67 0x09 0x14 0x0a 0x00 0x0f
> +0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c 0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09
> +0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01
> +0x24 0x00 0x67 0x09 0x14 0x0b 0x00 0x0f 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c
> +0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c
> +0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01 0x24 0x00 0x67 0x09 0x14 0x0c 0x00 0x0f
> +0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c 0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09
> +0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x89 0x01
> +0x24 0x00 0x67 0x09 0x14 0x0d 0x00 0x0f 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0c
> +0x05 0x0c 0x06 0x0c 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0c 0x0b 0x0c 0x0c 0x0c
> +0x0d 0x09 0x0e 0x09 0x0f 0x09>;
> +
> +		marvell,caldata-txpwrlimit-5g-sub0 = /bits/ 8 <
> +0x01 0x00 0x06 0x00 0xf0 0x01 0x89 0x01
> +0x3a 0x00 0x88 0x13 0x14 0x24 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a
> +0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09
> +0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05
> +0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00
> +0x88 0x13 0x14 0x28 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a
> +0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09 0x0e 0x09
> +0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x05
> +0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13
> +0x14 0x2c 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x09
> +0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09 0x0e 0x09 0x0f 0x09
> +0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x05 0x17 0x05
> +0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0x30
> +0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x09 0x08 0x09
> +0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x10 0x05
> +0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x05 0x17 0x05 0x18 0x05
> +0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0x34 0x01 0x0c
> +0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09
> +0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05
> +0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05
> +0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0x38 0x01 0x0c 0x02 0x0c
> +0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a
> +0x0b 0x0a 0x0c 0x0a 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05
> +0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05
> +0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0x3c 0x01 0x0c 0x02 0x0c 0x03 0x0c
> +0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a
> +0x0c 0x0a 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05
> +0x14 0x05 0x15 0x05 0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05
> +0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0x40 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a
> +0x05 0x0a 0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a
> +0x0d 0x09 0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05
> +0x15 0x05 0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05>;
> +
> +		marvell,caldata-txpwrlimit-5g-sub1 = /bits/ 8 <
> +0x01 0x00 0x06 0x00 0xaa 0x02 0x89 0x01
> +0x3a 0x00 0x88 0x13 0x14 0x64 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a
> +0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09
> +0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05
> +0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00
> +0x88 0x13 0x14 0x68 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a
> +0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09 0x0e 0x09
> +0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x05
> +0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13
> +0x14 0x6c 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x09
> +0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09 0x0e 0x09 0x0f 0x09
> +0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x05 0x17 0x05
> +0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0x70
> +0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x09 0x08 0x09
> +0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x10 0x05
> +0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x05 0x17 0x05 0x18 0x05
> +0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0x74 0x01 0x0c
> +0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09
> +0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05
> +0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05
> +0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0x78 0x01 0x0c 0x02 0x0c
> +0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a
> +0x0b 0x0a 0x0c 0x0a 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05
> +0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05
> +0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0x7c 0x01 0x0c 0x02 0x0c 0x03 0x0c
> +0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a
> +0x0c 0x0a 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05
> +0x14 0x05 0x15 0x05 0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05
> +0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0x80 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a
> +0x05 0x0a 0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a
> +0x0d 0x09 0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05
> +0x15 0x05 0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01
> +0x3a 0x00 0x88 0x13 0x14 0x84 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a
> +0x06 0x0a 0x07 0x09 0x08 0x09 0x09 0x09 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x09
> +0x0e 0x09 0x0f 0x09 0x10 0x05 0x11 0x05 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05
> +0x16 0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00
> +0x88 0x13 0x14 0x88 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a
> +0x07 0x08 0x08 0x08 0x09 0x08 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x08 0x0e 0x08
> +0x0f 0x08 0x10 0x04 0x11 0x04 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x04
> +0x17 0x04 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13
> +0x14 0x8c 0x01 0x0c 0x02 0x0c 0x03 0x0c 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x08
> +0x08 0x08 0x09 0x08 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x08 0x0e 0x08 0x0f 0x08
> +0x10 0x04 0x11 0x04 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x04 0x17 0x04
> +0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05>;
> +
> +		marvell,caldata-txpwrlimit-5g-sub2 = /bits/ 8 <
> +0x01 0x00 0x06 0x00 0x36 0x01 0x89 0x01
> +0x3a 0x00 0x88 0x13 0x14 0x95 0x01 0x0b 0x02 0x0b 0x03 0x0b 0x04 0x0a 0x05 0x0a
> +0x06 0x0a 0x07 0x08 0x08 0x08 0x09 0x08 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x08
> +0x0e 0x08 0x0f 0x08 0x10 0x04 0x11 0x04 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05
> +0x16 0x04 0x17 0x04 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00
> +0x88 0x13 0x14 0x99 0x01 0x0b 0x02 0x0b 0x03 0x0b 0x04 0x0a 0x05 0x0a 0x06 0x0a
> +0x07 0x08 0x08 0x08 0x09 0x08 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x08 0x0e 0x08
> +0x0f 0x08 0x10 0x04 0x11 0x04 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x04
> +0x17 0x04 0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13
> +0x14 0x9d 0x01 0x0b 0x02 0x0b 0x03 0x0b 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x08
> +0x08 0x08 0x09 0x08 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x08 0x0e 0x08 0x0f 0x08
> +0x10 0x04 0x11 0x04 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x04 0x17 0x04
> +0x18 0x05 0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0xa1
> +0x01 0x0b 0x02 0x0b 0x03 0x0b 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x08 0x08 0x08
> +0x09 0x08 0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x08 0x0e 0x08 0x0f 0x08 0x10 0x04
> +0x11 0x04 0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x04 0x17 0x04 0x18 0x05
> +0x19 0x05 0x1a 0x05 0x1b 0x05 0x89 0x01 0x3a 0x00 0x88 0x13 0x14 0xa5 0x01 0x0b
> +0x02 0x0b 0x03 0x0b 0x04 0x0a 0x05 0x0a 0x06 0x0a 0x07 0x08 0x08 0x08 0x09 0x08
> +0x0a 0x0a 0x0b 0x0a 0x0c 0x0a 0x0d 0x08 0x0e 0x08 0x0f 0x08 0x10 0x04 0x11 0x04
> +0x12 0x05 0x13 0x05 0x14 0x05 0x15 0x05 0x16 0x04 0x17 0x04 0x18 0x05 0x19 0x05
> +0x1a 0x05 0x1b 0x05>;
> +	};
> +};
> +
>   &sdmmc {
> +	disable-wp;
>   	pinctrl-names = "default";
> -	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio
> +	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_pin
>   			&sdmmc_bus4>;
> -	disable-wp;
>   };
>   
>   &vcc_5v {
>   	enable-active-high;
> -	gpio = <&gpio7 21 GPIO_ACTIVE_HIGH>;
> +	gpio = <&gpio7 RK_PC5 GPIO_ACTIVE_HIGH>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&drv_5v>;
>   };
>   
>   &vcc50_hdmi {
>   	enable-active-high;
> -	gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>;
> +	gpio = <&gpio5 RK_PC3 GPIO_ACTIVE_HIGH>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&vcc50_hdmi_en>;
>   };
>   
> -&edp {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&edp_hpd>;
> +&gpio0 {
> +	gpio-line-names = "PMIC_SLEEP_AP",
> +			  "DDRIO_PWROFF",
> +			  "DDRIO_RETEN",
> +			  "TS3A227E_INT_L",
> +			  "PMIC_INT_L",
> +			  "PWR_KEY_L",
> +			  "AP_LID_INT_L",
> +			  "EC_IN_RW",
> +
> +			  "AC_PRESENT_AP",
> +			  /*
> +			   * RECOVERY_SW_L is Chrome OS ABI.  Schematics call
> +			   * it REC_MODE_L.
> +			   */
> +			  "RECOVERY_SW_L",
> +			  "OTP_OUT",
> +			  "HOST1_PWR_EN",
> +			  "USBOTG_PWREN_H",
> +			  "AP_WARM_RESET_H",
> +			  "nFAULT2",
> +			  "I2C0_SDA_PMIC",
> +
> +			  "I2C0_SCL_PMIC",
> +			  "SUSPEND_L",
> +			  "USB_INT";
> +};
> +
> +&gpio2 {
> +	gpio-line-names = "CONFIG0",
> +			  "CONFIG1",
> +			  "CONFIG2",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "CONFIG3",
> +
> +			  "",
> +			  "EMMC_RST_L",
> +			  "",
> +			  "",
> +			  "BL_PWR_EN",
> +			  "AVDD_1V8_DISP_EN";
> +};
> +
> +&gpio3 {
> +	gpio-line-names = "FLASH0_D0",
> +			  "FLASH0_D1",
> +			  "FLASH0_D2",
> +			  "FLASH0_D3",
> +			  "FLASH0_D4",
> +			  "FLASH0_D5",
> +			  "FLASH0_D6",
> +			  "FLASH0_D7",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "FLASH0_CS2/EMMC_CMD",
> +			  "",
> +			  "FLASH0_DQS/EMMC_CLKO";
> +};
> +
> +&gpio4 {
> +	gpio-line-names = "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "UART0_RXD",
> +			  "UART0_TXD",
> +			  "UART0_CTS",
> +			  "UART0_RTS",
> +			  "SDIO0_D0",
> +			  "SDIO0_D1",
> +			  "SDIO0_D2",
> +			  "SDIO0_D3",
> +
> +			  "SDIO0_CMD",
> +			  "SDIO0_CLK",
> +			  "BT_DEV_WAKE",
> +			  "",
> +			  "WIFI_ENABLE_H",
> +			  "BT_ENABLE_L",
> +			  "WIFI_HOST_WAKE",
> +			  "BT_HOST_WAKE";
> +};
> +
> +&gpio5 {
> +	gpio-line-names = "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "SPI0_CLK",
> +			  "SPI0_CS0",
> +			  "SPI0_TXD",
> +			  "SPI0_RXD",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "VCC50_HDMI_EN";
> +};
> +
> +&gpio6 {
> +	gpio-line-names = "I2S0_SCLK",
> +			  "I2S0_LRCK_RX",
> +			  "I2S0_LRCK_TX",
> +			  "I2S0_SDI",
> +			  "I2S0_SDO0",
> +			  "HP_DET_H",
> +			  "",
> +			  "INT_CODEC",
> +
> +			  "I2S0_CLK",
> +			  "I2C2_SDA",
> +			  "I2C2_SCL",
> +			  "MICDET",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "SDMMC_D0",
> +			  "SDMMC_D1",
> +			  "SDMMC_D2",
> +			  "SDMMC_D3",
> +			  "SDMMC_CLK",
> +			  "SDMMC_CMD";
> +};
> +
> +&gpio7 {
> +	gpio-line-names = "LCDC_BL",
> +			  "PWM_LOG",
> +			  "BL_EN",
> +			  "TRACKPAD_INT",
> +			  "TPM_INT_H",
> +			  "SDMMC_DET_L",
> +			  /*
> +			   * AP_FLASH_WP_L is Chrome OS ABI.  Schematics call
> +			   * it FW_WP_AP.
> +			   */
> +			  "AP_FLASH_WP_L",
> +			  "EC_INT",
> +
> +			  "CPU_NMI",
> +			  "DVSOK",
> +			  "",
> +			  "EDP_HPD",
> +			  "DVS1",
> +			  "nFAULT1",
> +			  "LCD_EN",
> +			  "DVS2",
> +
> +			  "VCC5V_GOOD_H",
> +			  "I2C4_SDA_TP",
> +			  "I2C4_SCL_TP",
> +			  "I2C5_SDA_HDMI",
> +			  "I2C5_SCL_HDMI",
> +			  "5V_DRV",
> +			  "UART2_RXD",
> +			  "UART2_TXD";
> +};
> +
> +&gpio8 {
> +	gpio-line-names = "RAM_ID0",
> +			  "RAM_ID1",
> +			  "RAM_ID2",
> +			  "RAM_ID3",
> +			  "I2C1_SDA_TPM",
> +			  "I2C1_SCL_TPM",
> +			  "SPI2_CLK",
> +			  "SPI2_CS0",
> +
> +			  "SPI2_RXD",
> +			  "SPI2_TXD";
>   };
>   
>   &pinctrl {
> -	backlight {
> -		bl_pwr_en: bl_pwr_en {
> -			rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <
> +		/* Common for sleep and wake, but no owners */
> +		&ddr0_retention
> +		&ddrio_pwroff
> +		&global_pwroff
> +
> +		/* Wake only */
> +		&suspend_l_wake
> +		&bt_dev_wake_awake
> +	>;
> +	pinctrl-1 = <
> +		/* Common for sleep and wake, but no owners */
> +		&ddr0_retention
> +		&ddrio_pwroff
> +		&global_pwroff
> +
> +		/* Sleep only */
> +		&suspend_l_sleep
> +		&bt_dev_wake_sleep
> +	>;
>   
>   	buck-5v {
>   		drv_5v: drv-5v {
> -			rockchip,pins = <7 21 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	emmc {
> -		/* Make sure eMMC is not in reset */
> -		emmc_deassert_reset: emmc-deassert-reset {
> -			rockchip,pins = <2 9 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <7 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	hdmi {
>   		vcc50_hdmi_en: vcc50-hdmi-en {
> -			rockchip,pins = <5 19 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	lcd {
> -		lcd_enable_h: lcd-en {
> -			rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -
> -		avdd_1v8_disp_en: avdd-1v8-disp-en {
> -			rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <5 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	pmic {
>   		dvs_1: dvs-1 {
> -			rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>;
> +			rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
>   		};
>   
>   		dvs_2: dvs-2 {
> -			rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
> +			rockchip,pins = <7 RK_PB7 RK_FUNC_GPIO &pcfg_pull_down>;
>   		};
>   	};
>   };
> @@ -182,24 +474,18 @@
>   	pinctrl-0 = <&i2c4_xfer &trackpad_int>;
>   
>   	trackpad at 15 {
> -		compatible = "elan,i2c_touchpad";
> -		interrupt-parent = <&gpio7>;
> -		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
>   		/*
>   		 * Remove the inherited pinctrl settings to avoid clashing
>   		 * with bus-wide ones.
>   		 */
>   		/delete-property/pinctrl-names;
>   		/delete-property/pinctrl-0;
> -		reg = <0x15>;
> -		vcc-supply = <&vcc33_io>;
> -		wakeup-source;
>   	};
>   
>   	trackpad at 2c {
>   		compatible = "hid-over-i2c";
>   		interrupt-parent = <&gpio7>;
> -		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
> +		interrupts = <RK_PA3 IRQ_TYPE_EDGE_FALLING>;
>   		reg = <0x2c>;
>   		hid-descr-addr = <0x0020>;
>   		vcc-supply = <&vcc33_io>;
> diff --git a/arch/arm/dts/rk3288-veyron-mickey.dts b/arch/arm/dts/rk3288-veyron-mickey.dts
> index 0521d9e0..ffd1121d 100644
> --- a/arch/arm/dts/rk3288-veyron-mickey.dts
> +++ b/arch/arm/dts/rk3288-veyron-mickey.dts
> @@ -1,49 +1,13 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
>    * Google Veyron Mickey Rev 0 board device tree source
>    *
>    * Copyright 2015 Google, Inc
> - *
> - * 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 "rk3288-veyron-chromebook.dtsi"
> +#include "rk3288-veyron.dtsi"
> +#include "rk3288-veyron-broadcom-bluetooth.dtsi"
>   
>   / {
>   	model = "Google Mickey";
> @@ -65,6 +29,13 @@
>   		regulator-boot-on;
>   		vin-supply = <&vcc33_sys>;
>   	};
> +
> +	sound {
> +		compatible = "rockchip,rockchip-audio-max98090";
> +		rockchip,model = "VEYRON-HDMI";
> +		rockchip,hdmi-codec = <&hdmi>;
> +		rockchip,i2s-controller = <&i2s>;
> +	};
>   };
>   
>   &cpu_thermal {
> @@ -112,14 +83,18 @@
>   	cooling-maps {
>   		/*
>   		 * After 1st level, throttle the CPU down to as low as 1.4 GHz
> -		 * and don't let the GPU go faster than 400 MHz.  Note that we
> -		 * won't throttle the GPU lower than 400 MHz due to CPU
> -		 * heat--we'll let the GPU do the rest itself.
> +		 * and don't let the GPU go faster than 400 MHz.
>   		 */
>   		cpu_warm_limit_cpu {
>   			trip = <&cpu_alert_warm>;
> -			cooling-device =
> -				<&cpu0 THERMAL_NO_LIMIT 4>;
> +			cooling-device = <&cpu0 THERMAL_NO_LIMIT 4>,
> +					 <&cpu1 THERMAL_NO_LIMIT 4>,
> +					 <&cpu2 THERMAL_NO_LIMIT 4>,
> +					 <&cpu3 THERMAL_NO_LIMIT 4>;
> +		};
> +		cpu_warm_limit_gpu {
> +			trip = <&cpu_alert_warm>;
> +			cooling-device = <&gpu 1 1>;
>   		};
>   
>   		/*
> @@ -140,29 +115,100 @@
>   		 */
>   		cpu_almost_hot_limit_cpu {
>   			trip = <&cpu_alert_almost_hot>;
> -			cooling-device =
> -				<&cpu0 5 6>;
> +			cooling-device = <&cpu0 5 6>, <&cpu1 5 6>, <&cpu2 5 6>,
> +					 <&cpu3 5 6>;
>   		};
>   		cpu_hot_limit_cpu {
>   			trip = <&cpu_alert_hot>;
> -			cooling-device =
> -				<&cpu0 7 7>;
> +			cooling-device = <&cpu0 7 7>, <&cpu1 7 7>, <&cpu2 7 7>,
> +					 <&cpu3 7 7>;
>   		};
>   		cpu_hotter_limit_cpu {
>   			trip = <&cpu_alert_hotter>;
> -			cooling-device =
> -				<&cpu0 7 8>;
> +			cooling-device = <&cpu0 7 8>, <&cpu1 7 8>, <&cpu2 7 8>,
> +					 <&cpu3 7 8>;
>   		};
>   		cpu_very_hot_limit_cpu {
>   			trip = <&cpu_alert_very_hot>;
> -			cooling-device =
> -				<&cpu0 8 THERMAL_NO_LIMIT>;
> +			cooling-device = <&cpu0 8 THERMAL_NO_LIMIT>,
> +					 <&cpu1 8 THERMAL_NO_LIMIT>,
> +					 <&cpu2 8 THERMAL_NO_LIMIT>,
> +					 <&cpu3 8 THERMAL_NO_LIMIT>;
> +		};
> +
> +		/* At very hot, don't let GPU go over 300 MHz */
> +		cpu_very_hot_limit_gpu {
> +			trip = <&cpu_alert_very_hot>;
> +			cooling-device = <&gpu 2 2>;
>   		};
>   	};
>   };
>   
> -&emmc {
> -	/delete-property/mmc-hs200-1_8v;
> +&gpu_thermal {
> +	/delete-node/ trips;
> +	/delete-node/ cooling-maps;
> +
> +	trips {
> +		gpu_alert_warmish: gpu_alert_warmish {
> +			temperature = <60000>; /* millicelsius */
> +			hysteresis = <2000>; /* millicelsius */
> +			type = "passive";
> +		};
> +		gpu_alert_warm: gpu_alert_warm {
> +			temperature = <65000>; /* millicelsius */
> +			hysteresis = <2000>; /* millicelsius */
> +			type = "passive";
> +		};
> +		gpu_alert_hotter: gpu_alert_hotter {
> +			temperature = <84000>; /* millicelsius */
> +			hysteresis = <2000>; /* millicelsius */
> +			type = "passive";
> +		};
> +		gpu_alert_very_very_hot: gpu_alert_very_very_hot {
> +			temperature = <86000>; /* millicelsius */
> +			hysteresis = <2000>; /* millicelsius */
> +			type = "passive";
> +		};
> +		gpu_crit: gpu_crit {
> +			temperature = <90000>; /* millicelsius */
> +			hysteresis = <2000>; /* millicelsius */
> +			type = "critical";
> +		};
> +	};
> +
> +	cooling-maps {
> +		/* After 1st level throttle the GPU down to as low as 400 MHz */
> +		gpu_warmish_limit_gpu {
> +			trip = <&gpu_alert_warmish>;
> +			cooling-device = <&gpu THERMAL_NO_LIMIT 1>;
> +		};
> +
> +		/*
> +		 * Slightly after we throttle the GPU, we'll also make sure that
> +		 * the CPU can't go faster than 1.4 GHz.  Note that we won't
> +		 * throttle the CPU lower than 1.4 GHz due to GPU heat--we'll
> +		 * let the CPU do the rest itself.
> +		 */
> +		gpu_warm_limit_cpu {
> +			trip = <&gpu_alert_warm>;
> +			cooling-device = <&cpu0 4 4>,
> +					 <&cpu1 4 4>,
> +					 <&cpu2 4 4>,
> +					 <&cpu3 4 4>;
> +		};
> +
> +		/* When hot, GPU goes down to 300 MHz */
> +		gpu_hotter_limit_gpu {
> +			trip = <&gpu_alert_hotter>;
> +			cooling-device = <&gpu 2 2>;
> +		};
> +
> +		/* When really hot, don't let GPU go _above_ 300 MHz */
> +		gpu_very_very_hot_limit_gpu {
> +			trip = <&gpu_alert_very_very_hot>;
> +			cooling-device = <&gpu 2 THERMAL_NO_LIMIT>;
> +		};
> +	};
>   };
>   
>   &i2c2 {
> @@ -175,15 +221,13 @@
>   
>   &i2s {
>   	status = "okay";
> -	clock-names = "i2s_hclk", "i2s_clk", "i2s_clk_out";
> -	clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>, <&cru SCLK_I2S0_OUT>;
>   };
>   
>   &rk808 {
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
> -	dvs-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>,
> -		    <&gpio7 15 GPIO_ACTIVE_HIGH>;
> +	dvs-gpios = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>,
> +		    <&gpio7 RK_PB7 GPIO_ACTIVE_HIGH>;
>   
>   	/delete-property/ vcc6-supply;
>   	/delete-property/ vcc12-supply;
> @@ -216,40 +260,183 @@
>   	};
>   };
>   
> +&gpio0 {
> +	gpio-line-names = "PMIC_SLEEP_AP",
> +			  "",
> +			  "",
> +			  "",
> +			  "PMIC_INT_L",
> +			  "POWER_BUTTON_L",
> +			  "",
> +			  "",
> +
> +			  "",
> +			  /*
> +			   * RECOVERY_SW_L is Chrome OS ABI.  Schematics call
> +			   * it REC_MODE_L.
> +			   */
> +			  "RECOVERY_SW_L",
> +			  "OT_RESET",
> +			  "",
> +			  "",
> +			  "AP_WARM_RESET_H",
> +			  "",
> +			  "I2C0_SDA_PMIC",
> +
> +			  "I2C0_SCL_PMIC",
> +			  "",
> +			  "nFALUT";
> +};
> +
> +&gpio2 {
> +	gpio-line-names = "CONFIG0",
> +			  "CONFIG1",
> +			  "CONFIG2",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "CONFIG3",
> +
> +			  "",
> +			  "EMMC_RST_L";
> +};
> +
> +&gpio3 {
> +	gpio-line-names = "FLASH0_D0",
> +			  "FLASH0_D1",
> +			  "FLASH0_D2",
> +			  "FLASH0_D3",
> +			  "FLASH0_D4",
> +			  "FLASH0_D5",
> +			  "FLASH0_D6",
> +			  "FLASH0_D7",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "FLASH0_CS2/EMMC_CMD",
> +			  "",
> +			  "FLASH0_DQS/EMMC_CLKO";
> +};
> +
> +&gpio4 {
> +	gpio-line-names = "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "UART0_RXD",
> +			  "UART0_TXD",
> +			  "UART0_CTS_L",
> +			  "UART0_RTS_L",
> +			  "SDIO0_D0",
> +			  "SDIO0_D1",
> +			  "SDIO0_D2",
> +			  "SDIO0_D3",
> +
> +			  "SDIO0_CMD",
> +			  "SDIO0_CLK",
> +			  "BT_DEV_WAKE",
> +			  "",
> +			  "WIFI_ENABLE_H",
> +			  "BT_ENABLE_L",
> +			  "WIFI_HOST_WAKE",
> +			  "BT_HOST_WAKE";
> +};
> +
> +&gpio7 {
> +	gpio-line-names = "",
> +			  "PWM_LOG",
> +			  "",
> +			  "",
> +			  "TPM_INT_H",
> +			  "SDMMC_DET_L",
> +			  /*
> +			   * AP_FLASH_WP_L is Chrome OS ABI.  Schematics call
> +			   * it FW_WP_AP.
> +			   */
> +			  "AP_FLASH_WP_L",
> +			  "",
> +
> +			  "CPU_NMI",
> +			  "DVSOK",
> +			  "HDMI_WAKE",
> +			  "POWER_HDMI_ON",
> +			  "DVS1",
> +			  "",
> +			  "",
> +			  "DVS2",
> +
> +			  "HDMI_CEC",
> +			  "",
> +			  "",
> +			  "I2C5_SDA_HDMI",
> +			  "I2C5_SCL_HDMI",
> +			  "",
> +			  "UART2_RXD",
> +			  "UART2_TXD";
> +};
> +
> +&gpio8 {
> +	gpio-line-names = "RAM_ID0",
> +			  "RAM_ID1",
> +			  "RAM_ID2",
> +			  "RAM_ID3",
> +			  "I2C1_SDA_TPM",
> +			  "I2C1_SCL_TPM",
> +			  "SPI2_CLK",
> +			  "SPI2_CS0",
> +
> +			  "SPI2_RXD",
> +			  "SPI2_TXD";
> +};
> +
>   &pinctrl {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <
> +		/* Common for sleep and wake, but no owners */
> +		&ddr0_retention
> +		&ddrio_pwroff
> +		&global_pwroff
> +	>;
> +
>   	hdmi {
>   		power_hdmi_on: power-hdmi-on {
> -			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	pmic {
>   		dvs_1: dvs-1 {
> -			rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>;
> +			rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
>   		};
>   
>   		dvs_2: dvs-2 {
> -			rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
> +			rockchip,pins = <7 RK_PB7 RK_FUNC_GPIO &pcfg_pull_down>;
>   		};
>   	};
>   };
>   
> -&sdmmc {
> -	status = "disabled";
> -};
> -
> -&sdio0 {
> -	status = "disabled";
> -};
> -
> -&sdmmc {
> -	status = "disabled";
> -};
> -
> -&spi0 {
> -	status = "disabled";
> -};
> -
>   &usb_host0_ehci {
>   	status = "disabled";
>   };
> @@ -260,7 +447,7 @@
>   
>   &vcc50_hdmi {
>   	enable-active-high;
> -	gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
> +	gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_HIGH>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&power_hdmi_on>;
>   };
> diff --git a/arch/arm/dts/rk3288-veyron-minnie.dts b/arch/arm/dts/rk3288-veyron-minnie.dts
> index b56a3f4f..82fc6fba 100644
> --- a/arch/arm/dts/rk3288-veyron-minnie.dts
> +++ b/arch/arm/dts/rk3288-veyron-minnie.dts
> @@ -1,49 +1,13 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
>    * Google Veyron Minnie Rev 0+ board device tree source
>    *
>    * Copyright 2015 Google, Inc
> - *
> - * 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 "rk3288-veyron-chromebook.dtsi"
> +#include "rk3288-veyron-broadcom-bluetooth.dtsi"
>   
>   / {
>   	model = "Google Minnie";
> @@ -52,111 +16,31 @@
>   		     "google,veyron-minnie-rev0", "google,veyron-minnie",
>   		     "google,veyron", "rockchip,rk3288";
>   
> -	backlight_regulator: backlight-regulator {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&bl_pwr_en>;
> -		regulator-name = "backlight_regulator";
> -		vin-supply = <&vcc33_sys>;
> -		startup-delay-us = <15000>;
> -	};
> -
> -	panel_regulator: panel-regulator {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&lcd_enable_h>;
> -		regulator-name = "panel_regulator";
> -		startup-delay-us = <100000>;
> -		vin-supply = <&vcc33_sys>;
> -	};
> -
> -	vcc18_lcd: vcc18-lcd {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
> +	volume_buttons: volume-buttons {
> +		compatible = "gpio-keys";
>   		pinctrl-names = "default";
> -		pinctrl-0 = <&avdd_1v8_disp_en>;
> -		regulator-name = "vcc18_lcd";
> -		regulator-always-on;
> -		regulator-boot-on;
> -		vin-supply = <&vcc18_wl>;
> -	};
> -
> -	sound {
> -		compatible = "rockchip,audio-max98090-jerry";
> +		pinctrl-0 = <&volum_down_l &volum_up_l>;
>   
> -		cpu {
> -			sound-dai = <&i2s 0>;
> +		volum_down {
> +			label = "Volum_down";
> +			gpios = <&gpio5 RK_PB3 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEDOWN>;
> +			debounce-interval = <100>;
>   		};
>   
> -		codec {
> -			sound-dai = <&max98090 0>;
> +		volum_up {
> +			label = "Volum_up";
> +			gpios = <&gpio5 RK_PB2 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEUP>;
> +			debounce-interval = <100>;
>   		};
>   	};
>   };
>   
>   &backlight {
>   	/* Minnie panel PWM must be >= 1%, so start non-zero brightness at 3 */
> -	brightness-levels = <
> -			  0   3   4   5   6   7
> -			  8   9  10  11  12  13  14  15
> -			 16  17  18  19  20  21  22  23
> -			 24  25  26  27  28  29  30  31
> -			 32  33  34  35  36  37  38  39
> -			 40  41  42  43  44  45  46  47
> -			 48  49  50  51  52  53  54  55
> -			 56  57  58  59  60  61  62  63
> -			 64  65  66  67  68  69  70  71
> -			 72  73  74  75  76  77  78  79
> -			 80  81  82  83  84  85  86  87
> -			 88  89  90  91  92  93  94  95
> -			 96  97  98  99 100 101 102 103
> -			104 105 106 107 108 109 110 111
> -			112 113 114 115 116 117 118 119
> -			120 121 122 123 124 125 126 127
> -			128 129 130 131 132 133 134 135
> -			136 137 138 139 140 141 142 143
> -			144 145 146 147 148 149 150 151
> -			152 153 154 155 156 157 158 159
> -			160 161 162 163 164 165 166 167
> -			168 169 170 171 172 173 174 175
> -			176 177 178 179 180 181 182 183
> -			184 185 186 187 188 189 190 191
> -			192 193 194 195 196 197 198 199
> -			200 201 202 203 204 205 206 207
> -			208 209 210 211 212 213 214 215
> -			216 217 218 219 220 221 222 223
> -			224 225 226 227 228 229 230 231
> -			232 233 234 235 236 237 238 239
> -			240 241 242 243 244 245 246 247
> -			248 249 250 251 252 253 254 255>;
> -	power-supply = <&backlight_regulator>;
> -};
> -
> -&emmc {
> -	/delete-property/mmc-hs200-1_8v;
> -};
> -
> -&gpio_keys {
> -	pinctrl-0 = <&pwr_key_h &ap_lid_int_l &volum_down_l &volum_up_l>;
> -
> -	volum_down {
> -		label = "Volum_down";
> -		gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
> -		linux,code = <KEY_VOLUMEDOWN>;
> -		debounce-interval = <100>;
> -	};
> -
> -	volum_up {
> -		label = "Volum_up";
> -		gpios = <&gpio5 10 GPIO_ACTIVE_LOW>;
> -		linux,code = <KEY_VOLUMEUP>;
> -		debounce-interval = <100>;
> -	};
> +	brightness-levels = <3 255>;
> +	num-interpolated-steps = <252>;
>   };
>   
>   &i2c_tunnel {
> @@ -177,18 +61,31 @@
>   		compatible = "elan,ekth3500";
>   		reg = <0x10>;
>   		interrupt-parent = <&gpio2>;
> -		interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
> +		interrupts = <RK_PB6 IRQ_TYPE_EDGE_FALLING>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&touch_int &touch_rst>;
> -		reset-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
> +		reset-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_LOW>;
>   		vcc33-supply = <&vcc33_touch>;
>   		vccio-supply = <&vcc33_touch>;
>   	};
>   };
>   
>   &panel {
> -	compatible = "auo,b101ean01", "simple-panel";
> -	power-supply= <&panel_regulator>;
> +	compatible = "auo,b101ean01";
> +
> +	/delete-node/ panel-timing;
> +
> +	panel-timing {
> +		clock-frequency = <66666667>;
> +		hactive = <1280>;
> +		hfront-porch = <18>;
> +		hback-porch = <21>;
> +		hsync-len = <32>;
> +		vactive = <800>;
> +		vfront-porch = <4>;
> +		vback-porch = <8>;
> +		vsync-len = <18>;
> +	};
>   };
>   
>   &rk808 {
> @@ -217,86 +114,302 @@
>   &sdmmc {
>   	disable-wp;
>   	pinctrl-names = "default";
> -	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio
> +	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_pin
>   			&sdmmc_bus4>;
>   };
>   
>   &vcc_5v {
>   	enable-active-high;
> -	gpio = <&gpio7 21 GPIO_ACTIVE_HIGH>;
> +	gpio = <&gpio7 RK_PC5 GPIO_ACTIVE_HIGH>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&drv_5v>;
>   };
>   
>   &vcc50_hdmi {
>   	enable-active-high;
> -	gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>;
> +	gpio = <&gpio5 RK_PC3 GPIO_ACTIVE_HIGH>;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&vcc50_hdmi_en>;
>   };
>   
> +&gpio0 {
> +	gpio-line-names = "PMIC_SLEEP_AP",
> +			  "DDRIO_PWROFF",
> +			  "DDRIO_RETEN",
> +			  "TS3A227E_INT_L",
> +			  "PMIC_INT_L",
> +			  "PWR_KEY_L",
> +			  "AP_LID_INT_L",
> +			  "EC_IN_RW",
> +
> +			  "AC_PRESENT_AP",
> +			  /*
> +			   * RECOVERY_SW_L is Chrome OS ABI.  Schematics call
> +			   * it REC_MODE_L.
> +			   */
> +			  "RECOVERY_SW_L",
> +			  "OTP_OUT",
> +			  "HOST1_PWR_EN",
> +			  "USBOTG_PWREN_H",
> +			  "AP_WARM_RESET_H",
> +			  "nFALUT2",
> +			  "I2C0_SDA_PMIC",
> +
> +			  "I2C0_SCL_PMIC",
> +			  "SUSPEND_L",
> +			  "USB_INT";
> +};
> +
> +&gpio2 {
> +	gpio-line-names = "CONFIG0",
> +			  "CONFIG1",
> +			  "CONFIG2",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "CONFIG3",
> +
> +			  "PROCHOT#",
> +			  "EMMC_RST_L",
> +			  "",
> +			  "",
> +			  "BL_PWR_EN",
> +			  "AVDD_1V8_DISP_EN",
> +			  "TOUCH_INT",
> +			  "TOUCH_RST",
> +
> +			  "I2C3_SCL_TP",
> +			  "I2C3_SDA_TP";
> +};
> +
> +&gpio3 {
> +	gpio-line-names = "FLASH0_D0",
> +			  "FLASH0_D1",
> +			  "FLASH0_D2",
> +			  "FLASH0_D3",
> +			  "FLASH0_D4",
> +			  "FLASH0_D5",
> +			  "FLASH0_D6",
> +			  "FLASH0_D7",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "FLASH0_CS2/EMMC_CMD",
> +			  "",
> +			  "FLASH0_DQS/EMMC_CLKO";
> +};
> +
> +&gpio4 {
> +	gpio-line-names = "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "UART0_RXD",
> +			  "UART0_TXD",
> +			  "UART0_CTS",
> +			  "UART0_RTS",
> +			  "SDIO0_D0",
> +			  "SDIO0_D1",
> +			  "SDIO0_D2",
> +			  "SDIO0_D3",
> +
> +			  "SDIO0_CMD",
> +			  "SDIO0_CLK",
> +			  "dev_wake",
> +			  "",
> +			  "WIFI_ENABLE_H",
> +			  "BT_ENABLE_L",
> +			  "WIFI_HOST_WAKE",
> +			  "BT_HOST_WAKE";
> +};
> +
> +&gpio5 {
> +	gpio-line-names = "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "",
> +			  "",
> +			  "Volum_Up#",
> +			  "Volum_Down#",
> +			  "SPI0_CLK",
> +			  "SPI0_CS0",
> +			  "SPI0_TXD",
> +			  "SPI0_RXD",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "VCC50_HDMI_EN";
> +};
> +
> +&gpio6 {
> +	gpio-line-names = "I2S0_SCLK",
> +			  "I2S0_LRCK_RX",
> +			  "I2S0_LRCK_TX",
> +			  "I2S0_SDI",
> +			  "I2S0_SDO0",
> +			  "HP_DET_H",
> +			  "",
> +			  "INT_CODEC",
> +
> +			  "I2S0_CLK",
> +			  "I2C2_SDA",
> +			  "I2C2_SCL",
> +			  "MICDET",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "SDMMC_D0",
> +			  "SDMMC_D1",
> +			  "SDMMC_D2",
> +			  "SDMMC_D3",
> +			  "SDMMC_CLK",
> +			  "SDMMC_CMD";
> +};
> +
> +&gpio7 {
> +	gpio-line-names = "LCDC_BL",
> +			  "PWM_LOG",
> +			  "BL_EN",
> +			  "TRACKPAD_INT",
> +			  "TPM_INT_H",
> +			  "SDMMC_DET_L",
> +			  /*
> +			   * AP_FLASH_WP_L is Chrome OS ABI.  Schematics call
> +			   * it FW_WP_AP.
> +			   */
> +			  "AP_FLASH_WP_L",
> +			  "EC_INT",
> +
> +			  "CPU_NMI",
> +			  "DVS_OK",
> +			  "SDMMC_WP",
> +			  "EDP_HPD",
> +			  "DVS1",
> +			  "nFALUT1",
> +			  "LCD_EN",
> +			  "DVS2",
> +
> +			  "VCC5V_GOOD_H",
> +			  "I2C4_SDA_TP",
> +			  "I2C4_SCL_TP",
> +			  "I2C5_SDA_HDMI",
> +			  "I2C5_SCL_HDMI",
> +			  "5V_DRV",
> +			  "UART2_RXD",
> +			  "UART2_TXD";
> +};
> +
> +&gpio8 {
> +	gpio-line-names = "RAM_ID0",
> +			  "RAM_ID1",
> +			  "RAM_ID2",
> +			  "RAM_ID3",
> +			  "I2C1_SDA_TPM",
> +			  "I2C1_SCL_TPM",
> +			  "SPI2_CLK",
> +			  "SPI2_CS0",
> +
> +			  "SPI2_RXD",
> +			  "SPI2_TXD";
> +};
> +
>   &pinctrl {
> -	backlight {
> -		bl_pwr_en: bl_pwr_en {
> -			rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <
> +		/* Common for sleep and wake, but no owners */
> +		&ddr0_retention
> +		&ddrio_pwroff
> +		&global_pwroff
> +
> +		/* Wake only */
> +		&suspend_l_wake
> +	>;
> +	pinctrl-1 = <
> +		/* Common for sleep and wake, but no owners */
> +		&ddr0_retention
> +		&ddrio_pwroff
> +		&global_pwroff
> +
> +		/* Sleep only */
> +		&suspend_l_sleep
> +	>;
>   
>   	buck-5v {
>   		drv_5v: drv-5v {
> -			rockchip,pins = <7 21 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <7 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	buttons {
>   		volum_down_l: volum-down-l {
> -			rockchip,pins = <5 11 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <5 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   
>   		volum_up_l: volum-up-l {
> -			rockchip,pins = <5 10 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <5 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	hdmi {
>   		vcc50_hdmi_en: vcc50-hdmi-en {
> -			rockchip,pins = <5 19 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	lcd {
> -		lcd_enable_h: lcd-en {
> -			rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -
> -		avdd_1v8_disp_en: avdd-1v8-disp-en {
> -			rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <5 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	pmic {
>   		dvs_1: dvs-1 {
> -			rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>;
> +			rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
>   		};
>   
>   		dvs_2: dvs-2 {
> -			rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
> +			rockchip,pins = <7 RK_PB7 RK_FUNC_GPIO &pcfg_pull_down>;
>   		};
>   	};
>   
>   	prochot {
>   		gpio_prochot: gpio-prochot {
> -			rockchip,pins = <2 8 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	touchscreen {
>   		touch_int: touch-int {
> -			rockchip,pins = <2 14 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <2 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   
>   		touch_rst: touch-rst {
> -			rockchip,pins = <2 15 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   };
> diff --git a/arch/arm/dts/rk3288-veyron-sdmmc.dtsi b/arch/arm/dts/rk3288-veyron-sdmmc.dtsi
> new file mode 100644
> index 00000000..27fb06ce
> --- /dev/null
> +++ b/arch/arm/dts/rk3288-veyron-sdmmc.dtsi
> @@ -0,0 +1,89 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Google Veyron (and derivatives) fragment for sdmmc cards
> + *
> + * Copyright 2015 Google, Inc
> + */
> +
> +&io_domains {
> +	sdcard-supply = <&vccio_sd>;
> +};
> +
> +&pinctrl {
> +	sdmmc {
> +		/*
> +		 * We run sdmmc at max speed; bump up drive strength.
> +		 * We also have external pulls, so disable the internal ones.
> +		 */
> +		sdmmc_bus4: sdmmc-bus4 {
> +			rockchip,pins = <6 RK_PC0 1 &pcfg_pull_none_drv_8ma>,
> +					<6 RK_PC1 1 &pcfg_pull_none_drv_8ma>,
> +					<6 RK_PC2 1 &pcfg_pull_none_drv_8ma>,
> +					<6 RK_PC3 1 &pcfg_pull_none_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_none_drv_8ma>;
> +		};
> +
> +		/*
> +		 * Builtin CD line is hooked to ground to prevent JTAG at boot
> +		 * (and also to get the voltage rail correct).
> +		 * Configure gpio6_C6 as GPIO so dw_mmc builtin CD doesn't
> +		 * think there's a card inserted
> +		 */
> +		sdmmc_cd_disabled: sdmmc-cd-disabled {
> +			rockchip,pins = <6 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +
> +		/* This is where we actually hook up CD */
> +		sdmmc_cd_pin: sdmmc-cd-pin {
> +			rockchip,pins = <7 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +};
> +
> +&rk808 {
> +	vcc9-supply = <&vcc_5v>;
> +
> +	regulators {
> +		vccio_sd: LDO_REG4 {
> +			regulator-name = "vccio_sd";
> +			regulator-min-microvolt = <1800000>;
> +			regulator-max-microvolt = <3300000>;
> +			regulator-state-mem {
> +				regulator-off-in-suspend;
> +			};
> +		};
> +
> +		vcc33_sd: LDO_REG5 {
> +			regulator-name = "vcc33_sd";
> +			regulator-min-microvolt = <3300000>;
> +			regulator-max-microvolt = <3300000>;
> +			regulator-state-mem {
> +				regulator-off-in-suspend;
> +			};
> +		};
> +	};
> +};
> +
> +&sdmmc {
> +	status = "okay";
> +
> +	bus-width = <4>;
> +	cap-mmc-highspeed;
> +	cap-sd-highspeed;
> +	card-detect-delay = <200>;
> +	cd-gpios = <&gpio7 RK_PA5 GPIO_ACTIVE_LOW>;
> +	rockchip,default-sample-phase = <90>;
> +	sd-uhs-sdr12;
> +	sd-uhs-sdr25;
> +	sd-uhs-sdr50;
> +	sd-uhs-sdr104;
> +	vmmc-supply = <&vcc33_sd>;
> +	vqmmc-supply = <&vccio_sd>;
> +};
> diff --git a/arch/arm/dts/rk3288-veyron-speedy.dts b/arch/arm/dts/rk3288-veyron-speedy.dts
> index 58c1fe96..4a3ea934 100644
> --- a/arch/arm/dts/rk3288-veyron-speedy.dts
> +++ b/arch/arm/dts/rk3288-veyron-speedy.dts
> @@ -7,8 +7,8 @@
>   
>   /dts-v1/;
>   #include "rk3288-veyron-chromebook.dtsi"
> +#include "rk3288-veyron-broadcom-bluetooth.dtsi"
>   #include "cros-ec-sbs.dtsi"
> -#include "rk3288-veyron-speedy-u-boot.dtsi"
>   
>   / {
>   	model = "Google Speedy";
> @@ -17,44 +17,6 @@
>   		     "google,veyron-speedy-rev5", "google,veyron-speedy-rev4",
>   		     "google,veyron-speedy-rev3", "google,veyron-speedy-rev2",
>   		     "google,veyron-speedy", "google,veyron", "rockchip,rk3288";
> -
> -	panel_regulator: panel-regulator {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio7 RK_PB6 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&lcd_enable_h>;
> -		regulator-name = "panel_regulator";
> -		startup-delay-us = <100000>;
> -		vin-supply = <&vcc33_sys>;
> -	};
> -
> -	vcc18_lcd: vcc18-lcd {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&avdd_1v8_disp_en>;
> -		regulator-name = "vcc18_lcd";
> -		regulator-always-on;
> -		regulator-boot-on;
> -		vin-supply = <&vcc18_wl>;
> -	};
> -
> -	backlight_regulator: backlight-regulator {
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio2 RK_PB4 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&bl_pwr_en>;
> -		regulator-name = "backlight_regulator";
> -		vin-supply = <&vcc33_sys>;
> -		startup-delay-us = <15000>;
> -	};
> -};
> -
> -&backlight {
> -	power-supply = <&backlight_regulator>;
>   };
>   
>   &cpu_alert0 {
> @@ -65,6 +27,10 @@
>   	temperature = <70000>;
>   };
>   
> +&cpu_crit {
> +	temperature = <90000>;
> +};
> +
>   &edp {
>   	/delete-property/pinctrl-names;
>   	/delete-property/pinctrl-0;
> @@ -72,8 +38,12 @@
>   	force-hpd;
>   };
>   
> -&panel {
> -	power-supply = <&panel_regulator>;
> +&gpu_alert0 {
> +	temperature = <80000>;
> +};
> +
> +&gpu_crit {
> +	temperature = <90000>;
>   };
>   
>   &rk808 {
> @@ -84,7 +54,7 @@
>   &sdmmc {
>   	disable-wp;
>   	pinctrl-names = "default";
> -	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio
> +	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_pin
>   			&sdmmc_bus4>;
>   };
>   
> @@ -102,42 +72,253 @@
>   	pinctrl-0 = <&vcc50_hdmi_en>;
>   };
>   
> +&gpio0 {
> +	gpio-line-names = "PMIC_SLEEP_AP",
> +			  "DDRIO_PWROFF",
> +			  "DDRIO_RETEN",
> +			  "TS3A227E_INT_L",
> +			  "PMIC_INT_L",
> +			  "PWR_KEY_L",
> +			  "AP_LID_INT_L",
> +			  "EC_IN_RW",
> +
> +			  "AC_PRESENT_AP",
> +			  /*
> +			   * RECOVERY_SW_L is Chrome OS ABI.  Schematics call
> +			   * it REC_MODE_L.
> +			   */
> +			  "RECOVERY_SW_L",
> +			  "OTP_OUT",
> +			  "HOST1_PWR_EN",
> +			  "USBOTG_PWREN_H",
> +			  "AP_WARM_RESET_H",
> +			  "nFALUT2",
> +			  "I2C0_SDA_PMIC",
> +
> +			  "I2C0_SCL_PMIC",
> +			  "SUSPEND_L",
> +			  "USB_INT";
> +};
> +
> +&gpio2 {
> +	gpio-line-names = "CONFIG0",
> +			  "CONFIG1",
> +			  "CONFIG2",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "CONFIG3",
> +
> +			  "PWRLIMIT#_CPU",
> +			  "EMMC_RST_L",
> +			  "",
> +			  "",
> +			  "BL_PWR_EN",
> +			  "AVDD_1V8_DISP_EN";
> +};
> +
> +&gpio3 {
> +	gpio-line-names = "FLASH0_D0",
> +			  "FLASH0_D1",
> +			  "FLASH0_D2",
> +			  "FLASH0_D3",
> +			  "FLASH0_D4",
> +			  "FLASH0_D5",
> +			  "FLASH0_D6",
> +			  "FLASH0_D7",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "FLASH0_CS2/EMMC_CMD",
> +			  "",
> +			  "FLASH0_DQS/EMMC_CLKO";
> +};
> +
> +&gpio4 {
> +	gpio-line-names = "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "UART0_RXD",
> +			  "UART0_TXD",
> +			  "UART0_CTS",
> +			  "UART0_RTS",
> +			  "SDIO0_D0",
> +			  "SDIO0_D1",
> +			  "SDIO0_D2",
> +			  "SDIO0_D3",
> +
> +			  "SDIO0_CMD",
> +			  "SDIO0_CLK",
> +			  "BT_DEV_WAKE",
> +			  "",
> +			  "WIFI_ENABLE_H",
> +			  "BT_ENABLE_L",
> +			  "WIFI_HOST_WAKE",
> +			  "BT_HOST_WAKE";
> +};
> +
> +&gpio5 {
> +	gpio-line-names = "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +			  "SPI0_CLK",
> +			  "SPI0_CS0",
> +			  "SPI0_TXD",
> +			  "SPI0_RXD",
> +
> +			  "",
> +			  "",
> +			  "",
> +			  "VCC50_HDMI_EN";
> +};
> +
> +&gpio6 {
> +	gpio-line-names = "I2S0_SCLK",
> +			  "I2S0_LRCK_RX",
> +			  "I2S0_LRCK_TX",
> +			  "I2S0_SDI",
> +			  "I2S0_SDO0",
> +			  "HP_DET_H",
> +			  "ALS_INT",		/* not connected */
> +			  "INT_CODEC",
> +
> +			  "I2S0_CLK",
> +			  "I2C2_SDA",
> +			  "I2C2_SCL",
> +			  "MICDET",
> +			  "",
> +			  "",
> +			  "",
> +			  "",
> +
> +			  "SDMMC_D0",
> +			  "SDMMC_D1",
> +			  "SDMMC_D2",
> +			  "SDMMC_D3",
> +			  "SDMMC_CLK",
> +			  "SDMMC_CMD";
> +};
> +
> +&gpio7 {
> +	gpio-line-names = "LCDC_BL",
> +			  "PWM_LOG",
> +			  "BL_EN",
> +			  "TRACKPAD_INT",
> +			  "TPM_INT_H",
> +			  "SDMMC_DET_L",
> +			  /*
> +			   * AP_FLASH_WP_L is Chrome OS ABI.  Schematics call
> +			   * it FW_WP_AP.
> +			   */
> +			  "AP_FLASH_WP_L",
> +			  "EC_INT",
> +
> +			  "CPU_NMI",
> +			  "DVS_OK",
> +			  "",
> +			  "EDP_HOTPLUG",
> +			  "DVS1",
> +			  "nFALUT1",
> +			  "LCD_EN",
> +			  "DVS2",
> +
> +			  "VCC5V_GOOD_H",
> +			  "I2C4_SDA_TP",
> +			  "I2C4_SCL_TP",
> +			  "I2C5_SDA_HDMI",
> +			  "I2C5_SCL_HDMI",
> +			  "5V_DRV",
> +			  "UART2_RXD",
> +			  "UART2_TXD";
> +};
> +
> +&gpio8 {
> +	gpio-line-names = "RAM_ID0",
> +			  "RAM_ID1",
> +			  "RAM_ID2",
> +			  "RAM_ID3",
> +			  "I2C1_SDA_TPM",
> +			  "I2C1_SCL_TPM",
> +			  "SPI2_CLK",
> +			  "SPI2_CS0",
> +
> +			  "SPI2_RXD",
> +			  "SPI2_TXD";
> +};
> +
>   &pinctrl {
> -	backlight {
> -		bl_pwr_en: bl_pwr_en {
> -			rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <
> +		/* Common for sleep and wake, but no owners */
> +		&ddr0_retention
> +		&ddrio_pwroff
> +		&global_pwroff
> +
> +		/* Wake only */
> +		&suspend_l_wake
> +	>;
> +	pinctrl-1 = <
> +		/* Common for sleep and wake, but no owners */
> +		&ddr0_retention
> +		&ddrio_pwroff
> +		&global_pwroff
> +
> +		/* Sleep only */
> +		&suspend_l_sleep
> +	>;
>   
>   	buck-5v {
>   		drv_5v: drv-5v {
> -			rockchip,pins = <7 21 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <7 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	hdmi {
>   		vcc50_hdmi_en: vcc50-hdmi-en {
> -			rockchip,pins = <5 19 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	lcd {
> -		lcd_enable_h: lcd-en {
> -			rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -
> -		avdd_1v8_disp_en: avdd-1v8-disp-en {
> -			rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <5 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	pmic {
>   		dvs_1: dvs-1 {
> -			rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>;
> +			rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
>   		};
>   
>   		dvs_2: dvs-2 {
> -			rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
> +			rockchip,pins = <7 RK_PB7 RK_FUNC_GPIO &pcfg_pull_down>;
>   		};
>   	};
>   };
> diff --git a/arch/arm/dts/rk3288-veyron.dtsi b/arch/arm/dts/rk3288-veyron.dtsi
> index ac9e815e..2b7dc2c5 100644
> --- a/arch/arm/dts/rk3288-veyron.dtsi
> +++ b/arch/arm/dts/rk3288-veyron.dtsi
> @@ -1,8 +1,8 @@
> -// SPDX-License-Identifier: GPL-2.0
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>   /*
>    * Google Veyron (and derivatives) board device tree source
>    *
> - * Copyright 2014 Google, Inc
> + * Copyright 2015 Google, Inc
>    */
>   
>   #include <dt-bindings/clock/rockchip,rk808.h>
> @@ -10,150 +10,83 @@
>   #include "rk3288.dtsi"
>   
>   / {
> -	memory {
> -		reg = <0x0 0x80000000>;
> -	};
> -
>   	chosen {
> -		stdout-path = &uart2;
> +		stdout-path = "serial2:115200n8";
>   	};
>   
> -	firmware {
> -		chromeos {
> -			pinctrl-names = "default";
> -			pinctrl-0 = <&fw_wp_ap>;
> -			write-protect-gpio = <&gpio7 6 GPIO_ACTIVE_LOW>;
> -		};
> -	};
> -
> -	backlight: backlight {
> -		compatible = "pwm-backlight";
> -		brightness-levels = <
> -			  0   1   2   3   4   5   6   7
> -			  8   9  10  11  12  13  14  15
> -			 16  17  18  19  20  21  22  23
> -			 24  25  26  27  28  29  30  31
> -			 32  33  34  35  36  37  38  39
> -			 40  41  42  43  44  45  46  47
> -			 48  49  50  51  52  53  54  55
> -			 56  57  58  59  60  61  62  63
> -			 64  65  66  67  68  69  70  71
> -			 72  73  74  75  76  77  78  79
> -			 80  81  82  83  84  85  86  87
> -			 88  89  90  91  92  93  94  95
> -			 96  97  98  99 100 101 102 103
> -			104 105 106 107 108 109 110 111
> -			112 113 114 115 116 117 118 119
> -			120 121 122 123 124 125 126 127
> -			128 129 130 131 132 133 134 135
> -			136 137 138 139 140 141 142 143
> -			144 145 146 147 148 149 150 151
> -			152 153 154 155 156 157 158 159
> -			160 161 162 163 164 165 166 167
> -			168 169 170 171 172 173 174 175
> -			176 177 178 179 180 181 182 183
> -			184 185 186 187 188 189 190 191
> -			192 193 194 195 196 197 198 199
> -			200 201 202 203 204 205 206 207
> -			208 209 210 211 212 213 214 215
> -			216 217 218 219 220 221 222 223
> -			224 225 226 227 228 229 230 231
> -			232 233 234 235 236 237 238 239
> -			240 241 242 243 244 245 246 247
> -			248 249 250 251 252 253 254 255>;
> -		default-brightness-level = <128>;
> -		enable-gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
> -		backlight-boot-off;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&bl_en>;
> -		pwms = <&pwm0 0 1000000 0>;
> +	/*
> +	 * The default coreboot on veyron devices ignores memory at 0 nodes
> +	 * and would instead create another memory node.
> +	 */
> +	memory {
> +		device_type = "memory";
> +		reg = <0x0 0x80000000>;
>   	};
>   
> -	panel: panel {
> -		compatible ="cnm,n116bgeea2","simple-panel";
> -		status = "okay";
> -		power-supply = <&vcc33_lcd>;
> -		backlight = <&backlight>;
> -	};
>   
> -	gpio_keys: gpio-keys {
> +	power_button: power-button {
>   		compatible = "gpio-keys";
> -
>   		pinctrl-names = "default";
> -		pinctrl-0 = <&pwr_key_h>;
> +		pinctrl-0 = <&pwr_key_l>;
> +
>   		power {
>   			label = "Power";
> -			gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
> +			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
>   			linux,code = <KEY_POWER>;
>   			debounce-interval = <100>;
> -			gpio-key,wakeup;
> +			wakeup-source;
>   		};
>   	};
>   
>   	gpio-restart {
>   		compatible = "gpio-restart";
> -		gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
> +		gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&ap_warm_reset_h>;
> -		priority = /bits/ 8 <200>;
> +		priority = <200>;
>   	};
>   
>   	emmc_pwrseq: emmc-pwrseq {
>   		compatible = "mmc-pwrseq-emmc";
>   		pinctrl-0 = <&emmc_reset>;
>   		pinctrl-names = "default";
> -		reset-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
> +		reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
>   	};
>   
> -	sound {
> -		compatible = "rockchip,rockchip-audio-max98090";
> -		rockchip,model = "ROCKCHIP-I2S";
> -		rockchip,i2s-controller = <&i2s>;
> -		rockchip,audio-codec = <&max98090>;
> -		rockchip,hp-det-gpios = <&gpio6 5 GPIO_ACTIVE_HIGH>;
> -		rockchip,mic-det-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
> -		rockchip,headset-codec = <&headsetcodec>;
> +	sdio_pwrseq: sdio-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		clocks = <&rk808 RK808_CLKOUT1>;
> +		clock-names = "ext_clock";
>   		pinctrl-names = "default";
> -		pinctrl-0 = <&mic_det>, <&hp_det>;
> -	};
> -
> -	vdd_logic: pwm-regulator {
> -		compatible = "pwm-regulator";
> -		pwms = <&pwm1 0 2000 0>;
> -
> -		voltage-table = <1350000 0>,
> -				<1300000 10>,
> -				<1250000 20>,
> -				<1200000 31>,
> -				<1150000 41>,
> -				<1100000 52>,
> -				<1050000 62>,
> -				<1000000 72>,
> -				< 950000 83>;
> +		pinctrl-0 = <&wifi_enable_h>;
>   
> -		regulator-min-microvolt = <950000>;
> -		regulator-max-microvolt = <1350000>;
> -		regulator-name = "vdd_logic";
> -		regulator-ramp-delay = <4000>;
> +		/*
> +		 * Depending on the actual card populated GPIO4 D4
> +		 * correspond to one of these signals on the module:
> +		 *
> +		 * D4:
> +		 * - SDIO_RESET_L_WL_REG_ON
> +		 * - PDN (power down when low)
> +		 */
> +		reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
>   	};
>   
> -	vcc33_sys: vcc33-sys {
> +	vcc_5v: vcc-5v {
>   		compatible = "regulator-fixed";
> -		regulator-name = "vcc33_sys";
> +		regulator-name = "vcc_5v";
>   		regulator-always-on;
>   		regulator-boot-on;
> -		regulator-min-microvolt = <3300000>;
> -		regulator-max-microvolt = <3300000>;
> -		vin-supply = <&vccsys>;
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
>   	};
>   
> -	vcc_5v: vcc-5v {
> +	vcc33_sys: vcc33-sys {
>   		compatible = "regulator-fixed";
> -		regulator-name = "vcc_5v";
> +		regulator-name = "vcc33_sys";
>   		regulator-always-on;
>   		regulator-boot-on;
> -		regulator-min-microvolt = <5000000>;
> -		regulator-max-microvolt = <5000000>;
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
>   	};
>   
>   	vcc50_hdmi: vcc50-hdmi {
> @@ -164,39 +97,21 @@
>   		vin-supply = <&vcc_5v>;
>   	};
>   
> -	bt_regulator: bt-regulator {
> -		/*
> -		 * On the module itself this is one of these (depending
> -		 * on the actual card pouplated):
> -		 * - BT_I2S_WS_BT_RFDISABLE_L
> -		 * - No connect
> -		 */
> -
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&bt_enable_l>;
> -		regulator-name = "bt_regulator";
> -	};
> +	vdd_logic: vdd-logic {
> +		compatible = "pwm-regulator";
> +		regulator-name = "vdd_logic";
>   
> -	wifi_regulator: wifi-regulator {
> -		/*
> -		 * On the module itself this is one of these (depending
> -		 * on the actual card populated):
> -		 * - SDIO_RESET_L_WL_REG_ON
> -		 * - PDN (power down when low)
> -		 */
> +		pwms = <&pwm1 0 1994 0>;
> +		pwm-supply = <&vcc33_sys>;
>   
> -		compatible = "regulator-fixed";
> -		enable-active-high;
> -		gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&wifi_enable_h>;
> -		regulator-name = "wifi_regulator";
> +		pwm-dutycycle-range = <0x7b 0>;
> +		pwm-dutycycle-unit = <0x94>;
>   
> -		/* Faux input supply.  See bt_regulator description. */
> -		vin-supply = <&bt_regulator>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +		regulator-min-microvolt = <950000>;
> +		regulator-max-microvolt = <1350000>;
> +		regulator-ramp-delay = <4000>;
>   	};
>   };
>   
> @@ -204,71 +119,62 @@
>   	cpu0-supply = <&vdd_cpu>;
>   };
>   
> -&efuse {
> -	status = "okay";
> +&cpu_crit {
> +	temperature = <100000>;
> +};
> +
> +/* rk3288-c used in Veyron Chrome-devices has slightly changed OPPs */
> +&cpu_opp_table {
> +	/delete-node/ opp-312000000;
> +
> +	opp-1512000000 {
> +		opp-microvolt = <1250000>;
> +	};
> +	opp-1608000000 {
> +		opp-microvolt = <1300000>;
> +	};
> +	opp-1704000000 {
> +		opp-hz = /bits/ 64 <1704000000>;
> +		opp-microvolt = <1350000>;
> +	};
> +	opp-1800000000 {
> +		opp-hz = /bits/ 64 <1800000000>;
> +		opp-microvolt = <1400000>;
> +	};
>   };
>   
>   &emmc {
> -	broken-cd;
> +	status = "okay";
> +
>   	bus-width = <8>;
>   	cap-mmc-highspeed;
> +	rockchip,default-sample-phase = <158>;
> +	disable-wp;
>   	mmc-hs200-1_8v;
>   	mmc-pwrseq = <&emmc_pwrseq>;
> -	disable-wp;
>   	non-removable;
> -	num-slots = <1>;
>   	pinctrl-names = "default";
> -	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8 &emmc_pwr>;
> -	status = "okay";
> +	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
>   };
>   
> -&sdio0 {
> -	broken-cd;
> -	bus-width = <4>;
> -	cap-sd-highspeed;
> -	sd-uhs-sdr12;
> -	sd-uhs-sdr25;
> -	sd-uhs-sdr50;
> -	sd-uhs-sdr104;
> -	cap-sdio-irq;
> -	card-external-vcc-supply = <&wifi_regulator>;
> -	clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>, <&cru SCLK_SDIO0_DRV>,
> -		 <&cru SCLK_SDIO0_SAMPLE>, <&rk808 RK808_CLKOUT1>;
> -	clock-names = "biu", "ciu", "ciu_drv", "ciu_sample", "card_ext_clock";
> -	keep-power-in-suspend;
> -	non-removable;
> -	num-slots = <1>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
> +&gpu {
> +	mali-supply = <&vdd_gpu>;
>   	status = "okay";
> -	vmmc-supply = <&vcc33_sys>;
> -	vqmmc-supply = <&vcc18_wl>;
>   };
>   
> -&sdmmc {
> -	bus-width = <4>;
> -	cap-mmc-highspeed;
> -	cap-sd-highspeed;
> -	sd-uhs-sdr12;
> -	sd-uhs-sdr25;
> -	sd-uhs-sdr50;
> -	sd-uhs-sdr104;
> -	card-detect-delay = <200>;
> -	cd-gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
> -	num-slots = <1>;
> -	status = "okay";
> -	vmmc-supply = <&vcc33_sd>;
> -	vqmmc-supply = <&vccio_sd>;
> +&gpu_alert0 {
> +	temperature = <72500>;
>   };
>   
> -&spi2 {
> -	status = "okay";
> +&gpu_crit {
> +	temperature = <100000>;
> +};
>   
> -	spi_flash: spiflash at 0 {
> -		compatible = "spidev", "jedec,spi-nor";
> -		spi-max-frequency = <20000000>; /* Reduce for Dediprog em100 pro */
> -		reg = <0>;
> -	};
> +&hdmi {
> +	pinctrl-names = "default", "unwedge";
> +	pinctrl-0 = <&hdmi_ddc>;
> +	pinctrl-1 = <&hdmi_ddc_unwedge>;
> +	status = "okay";
>   };
>   
>   &i2c0 {
> @@ -280,12 +186,12 @@
>   
>   	rk808: pmic at 1b {
>   		compatible = "rockchip,rk808";
> +		reg = <0x1b>;
>   		clock-output-names = "xin32k", "wifibt_32kin";
>   		interrupt-parent = <&gpio0>;
> -		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
> +		interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&pmic_int_l>;
> -		reg = <0x1b>;
>   		rockchip,system-power-controller;
>   		wakeup-source;
>   		#clock-cells = <1>;
> @@ -297,39 +203,41 @@
>   		vcc6-supply = <&vcc_5v>;
>   		vcc7-supply = <&vcc33_sys>;
>   		vcc8-supply = <&vcc33_sys>;
> -		vcc9-supply = <&vcc_5v>;
> -		vcc10-supply = <&vcc33_sys>;
> -		vcc11-supply = <&vcc_5v>;
>   		vcc12-supply = <&vcc_18>;
> -
>   		vddio-supply = <&vcc33_io>;
>   
>   		regulators {
>   			vdd_cpu: DCDC_REG1 {
> +				regulator-name = "vdd_arm";
>   				regulator-always-on;
>   				regulator-boot-on;
>   				regulator-min-microvolt = <750000>;
>   				regulator-max-microvolt = <1450000>;
> -				regulator-name = "vdd_arm";
>   				regulator-ramp-delay = <6001>;
> -				regulator-suspend-mem-disabled;
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			vdd_gpu: DCDC_REG2 {
> +				regulator-name = "vdd_gpu";
>   				regulator-always-on;
>   				regulator-boot-on;
>   				regulator-min-microvolt = <800000>;
>   				regulator-max-microvolt = <1250000>;
> -				regulator-name = "vdd_gpu";
>   				regulator-ramp-delay = <6001>;
> -				regulator-suspend-mem-disabled;
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			vcc135_ddr: DCDC_REG3 {
> +				regulator-name = "vcc135_ddr";
>   				regulator-always-on;
>   				regulator-boot-on;
> -				regulator-name = "vcc135_ddr";
> -				regulator-suspend-mem-enabled;
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +				};
>   			};
>   
>   			/*
> @@ -340,12 +248,15 @@
>   			 * power measurement purposes).
>   			 */
>   			vcc18_wl: vcc18_flashio: vcc_18: DCDC_REG4 {
> +				regulator-name = "vcc_18";
>   				regulator-always-on;
>   				regulator-boot-on;
>   				regulator-min-microvolt = <1800000>;
>   				regulator-max-microvolt = <1800000>;
> -				regulator-name = "vcc_18";
> -				regulator-suspend-mem-microvolt = <1800000>;
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <1800000>;
> +				};
>   			};
>   
>   			/*
> @@ -356,60 +267,47 @@
>   			 * (such as danger) they're the same net.
>   			 */
>   			vcc33_io: LDO_REG1 {
> +				regulator-name = "vcc33_io";
>   				regulator-always-on;
>   				regulator-boot-on;
>   				regulator-min-microvolt = <3300000>;
>   				regulator-max-microvolt = <3300000>;
> -				regulator-name = "vcc33_io";
> -				regulator-suspend-mem-microvolt = <3300000>;
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <3300000>;
> +				};
>   			};
>   
>   			vdd_10: LDO_REG3 {
> +				regulator-name = "vdd_10";
>   				regulator-always-on;
>   				regulator-boot-on;
>   				regulator-min-microvolt = <1000000>;
>   				regulator-max-microvolt = <1000000>;
> -				regulator-name = "vdd_10";
> -				regulator-suspend-mem-microvolt = <1000000>;
> -			};
> -
> -			vccio_sd: LDO_REG4 {
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-name = "vccio_sd";
> -				regulator-suspend-mem-disabled;
> -			};
> -
> -			vcc33_sd: LDO_REG5 {
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-name = "vcc33_sd";
> -				regulator-suspend-mem-disabled;
> -			};
> -
> -			vcc18_codec: LDO_REG6 {
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-name = "vcc18_codec";
> -				regulator-suspend-mem-disabled;
> +				regulator-state-mem {
> +					regulator-on-in-suspend;
> +					regulator-suspend-microvolt = <1000000>;
> +				};
>   			};
>   
>   			vdd10_lcd_pwren_h: LDO_REG7 {
> +				regulator-name = "vdd10_lcd_pwren_h";
>   				regulator-always-on;
>   				regulator-boot-on;
>   				regulator-min-microvolt = <2500000>;
>   				regulator-max-microvolt = <2500000>;
> -				regulator-name = "vdd10_lcd_pwren_h";
> -				regulator-suspend-mem-disabled;
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			vcc33_lcd: SWITCH_REG1 {
> +				regulator-name = "vcc33_lcd";
>   				regulator-always-on;
>   				regulator-boot-on;
> -				regulator-name = "vcc33_lcd";
> -				regulator-suspend-mem-disabled;
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   		};
>   	};
> @@ -436,24 +334,6 @@
>   	clock-frequency = <100000>;
>   	i2c-scl-falling-time-ns = <50>;		/* 10ns measured */
>   	i2c-scl-rising-time-ns = <800>;		/* 600ns measured */
> -
> -	max98090: max98090 at 10 {
> -		compatible = "maxim,max98090";
> -		reg = <0x10>;
> -		#sound-dai-cells = <0>;
> -		interrupt-parent = <&gpio6>;
> -		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&int_codec>;
> -	};
> -};
> -
> -&i2c3 {
> -	status = "okay";
> -
> -	clock-frequency = <400000>;
> -	i2c-scl-falling-time-ns = <50>;
> -	i2c-scl-rising-time-ns = <300>;
>   };
>   
>   &i2c4 {
> @@ -462,56 +342,61 @@
>   	clock-frequency = <400000>;
>   	i2c-scl-falling-time-ns = <50>;		/* 11ns measured */
>   	i2c-scl-rising-time-ns = <300>;		/* 225ns measured */
> -
> -	headsetcodec: ts3a227e at 3b {
> -		compatible = "ti,ts3a227e";
> -		reg = <0x3b>;
> -		interrupt-parent = <&gpio0>;
> -		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&ts3a227e_int_l>;
> -		ti,micbias = <7>;		/* MICBIAS = 2.8V */
> -	};
> -};
> -
> -&i2c5 {
> -	status = "okay";
> -
> -	clock-frequency = <100000>;
> -	i2c-scl-falling-time-ns = <300>;
> -	i2c-scl-rising-time-ns = <1000>;
> -};
> -
> -&i2s {
> -	status = "okay";
> -	clock-names = "i2s_hclk", "i2s_clk", "i2s_clk_out";
> -	clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>, <&cru SCLK_I2S0_OUT>;
>   };
>   
>   &io_domains {
>   	status = "okay";
>   
> -	audio-supply = <&vcc18_codec>;
>   	bb-supply = <&vcc33_io>;
>   	dvp-supply = <&vcc_18>;
>   	flash0-supply = <&vcc18_flashio>;
>   	gpio1830-supply = <&vcc33_io>;
>   	gpio30-supply = <&vcc33_io>;
>   	lcdc-supply = <&vcc33_lcd>;
> -	sdcard-supply = <&vccio_sd>;
>   	wifi-supply = <&vcc18_wl>;
>   };
>   
> -&wdt {
> +&pwm1 {
> +	status = "okay";
> +};
> +
> +&sdio0 {
>   	status = "okay";
> +
> +	bus-width = <4>;
> +	cap-sd-highspeed;
> +	cap-sdio-irq;
> +	keep-power-in-suspend;
> +	mmc-pwrseq = <&sdio_pwrseq>;
> +	non-removable;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
> +	sd-uhs-sdr12;
> +	sd-uhs-sdr25;
> +	sd-uhs-sdr50;
> +	sd-uhs-sdr104;
> +	vmmc-supply = <&vcc33_sys>;
> +	vqmmc-supply = <&vcc18_wl>;
>   };
>   
> -&pwm0 {
> +&spi2 {
>   	status = "okay";
> +
> +	rx-sample-delay-ns = <12>;
> +
> +	spi_flash: flash at 0 {
> +		compatible = "jedec,spi-nor";
> +		spi-max-frequency = <50000000>;
> +		reg = <0>;
> +	};
>   };
>   
> -&pwm1 {
> +&tsadc {
>   	status = "okay";
> +
> +	rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
> +	rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
> +	rockchip,hw-tshut-temp = <125000>;
>   };
>   
>   &uart0 {
> @@ -520,9 +405,6 @@
>   	/* Pins don't include flow control by default; add that in */
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
> -	/* We need to go faster than 24MHz, so adjust clock parents / rates */
> -	assigned-clocks = <&cru SCLK_UART0>;
> -	assigned-clock-rates = <48000000>;
>   };
>   
>   &uart1 {
> @@ -531,67 +413,47 @@
>   
>   &uart2 {
>   	status = "okay";
> -	reg-shift = <2>;
>   };
>   
> -&vopb {
> +&usbphy {
>   	status = "okay";
>   };
>   
> -&vopb_mmu {
> +&usb_host0_ehci {
>   	status = "okay";
> -};
>   
> -&vopl {
> -	status = "okay";
> +	needs-reset-on-resume;
>   };
>   
> -&vopl_mmu {
> +&usb_host1 {
>   	status = "okay";
> +	snps,need-phy-for-wake;
>   };
>   
> -&edp {
> +&usb_otg {
>   	status = "okay";
> -	rockchip,panel = <&panel>;
> +
> +	assigned-clocks = <&cru SCLK_USBPHY480M_SRC>;
> +	assigned-clock-parents = <&usbphy0>;
> +	dr_mode = "host";
> +	snps,need-phy-for-wake;
>   };
>   
> -&hdmi {
> +&vopb {
>   	status = "okay";
>   };
>   
> -&gpu {
> +&vopb_mmu {
>   	status = "okay";
>   };
>   
> -&tsadc {
> -	tsadc-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
> -	tsadc-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
> +&wdt {
>   	status = "okay";
>   };
>   
>   &pinctrl {
> -	pinctrl-names = "default", "sleep";
> -	pinctrl-0 = <
> -		/* Common for sleep and wake, but no owners */
> -		&ddr0_retention
> -		&ddrio_pwroff
> -		&global_pwroff
> -
> -		/* Wake only */
> -		&bt_dev_wake_awake
> -	>;
> -	pinctrl-1 = <
> -		/* Common for sleep and wake, but no owners */
> -		&ddr0_retention
> -		&ddrio_pwroff
> -		&global_pwroff
> -
> -		/* Sleep only */
> -		&bt_dev_wake_sleep
> -	>;
> -
> -	/* Add this for sdmmc pins to SD card */
>   	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
> +		bias-disable;
>   		drive-strength = <8>;
>   	};
>   
> @@ -608,33 +470,15 @@
>   		output-low;
>   	};
>   
> -	backlight {
> -		bl_en: bl-en {
> -			rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
>   	buttons {
> -		pwr_key_h: pwr-key-h {
> -			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_none>;
> -		};
> -	};
> -
> -	codec {
> -		hp_det: hp-det {
> -			rockchip,pins = <6 5 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -		int_codec: int-codec {
> -			rockchip,pins = <6 7 RK_FUNC_GPIO &pcfg_pull_up>;
> -		};
> -		mic_det: mic-det {
> -			rockchip,pins = <6 11 RK_FUNC_GPIO &pcfg_pull_up>;
> +		pwr_key_l: pwr-key-l {
> +			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	emmc {
>   		emmc_reset: emmc-reset {
> -			rockchip,pins = <2 9 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   
>   		/*
> @@ -642,54 +486,59 @@
>   		 * We also have external pulls, so disable the internal ones.
>   		 */
>   		emmc_clk: emmc-clk {
> -			rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
> +			rockchip,pins = <3 RK_PC2 2 &pcfg_pull_none_drv_8ma>;
>   		};
>   
>   		emmc_cmd: emmc-cmd {
> -			rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
> +			rockchip,pins = <3 RK_PC0 2 &pcfg_pull_none_drv_8ma>;
>   		};
>   
>   		emmc_bus8: emmc-bus8 {
> -			rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
> -					<3 1 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
> -					<3 2 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
> -					<3 3 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
> -					<3 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
> -					<3 5 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
> -					<3 6 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
> -					<3 7 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
> -		};
> -	};
> -
> -	headset {
> -		ts3a227e_int_l: ts3a227e-int-l {
> -			rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_up>;
> +			rockchip,pins = <3 RK_PA0 2 &pcfg_pull_none_drv_8ma>,
> +					<3 RK_PA1 2 &pcfg_pull_none_drv_8ma>,
> +					<3 RK_PA2 2 &pcfg_pull_none_drv_8ma>,
> +					<3 RK_PA3 2 &pcfg_pull_none_drv_8ma>,
> +					<3 RK_PA4 2 &pcfg_pull_none_drv_8ma>,
> +					<3 RK_PA5 2 &pcfg_pull_none_drv_8ma>,
> +					<3 RK_PA6 2 &pcfg_pull_none_drv_8ma>,
> +					<3 RK_PA7 2 &pcfg_pull_none_drv_8ma>;
>   		};
>   	};
>   
>   	pmic {
>   		pmic_int_l: pmic-int-l {
> -			/*
> -			 * Causes jerry to hang when probing bus 0
> -			 * rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> -			 */
> +			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	reboot {
>   		ap_warm_reset_h: ap-warm-reset-h {
> -			rockchip,pins = <RK_GPIO0 13 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	recovery-switch {
> +		rec_mode_l: rec-mode-l {
> +			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
>   		};
>   	};
>   
>   	sdio0 {
>   		wifi_enable_h: wifienable-h {
> -			rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   
>   		/* NOTE: mislabelled on schematic; should be bt_enable_h */
>   		bt_enable_l: bt-enable-l {
> -			rockchip,pins = <4 29 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +
> +		bt_host_wake: bt-host-wake {
> +			rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_down>;
> +		};
> +
> +		bt_host_wake_l: bt-host-wake-l {
> +			rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   
>   		/*
> @@ -697,100 +546,48 @@
>   		 * We also have external pulls, so disable the internal ones.
>   		 */
>   		sdio0_bus4: sdio0-bus4 {
> -			rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
> -					<4 21 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
> -					<4 22 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
> -					<4 23 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
> +			rockchip,pins = <4 RK_PC4 1 &pcfg_pull_none_drv_8ma>,
> +					<4 RK_PC5 1 &pcfg_pull_none_drv_8ma>,
> +					<4 RK_PC6 1 &pcfg_pull_none_drv_8ma>,
> +					<4 RK_PC7 1 &pcfg_pull_none_drv_8ma>;
>   		};
>   
>   		sdio0_cmd: sdio0-cmd {
> -			rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
> +			rockchip,pins = <4 RK_PD0 1 &pcfg_pull_none_drv_8ma>;
>   		};
>   
>   		sdio0_clk: sdio0-clk {
> -			rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
> +			rockchip,pins = <4 RK_PD1 1 &pcfg_pull_none_drv_8ma>;
>   		};
>   
>   		/*
>   		 * These pins are only present on very new veyron boards; on
>   		 * older boards bt_dev_wake is simply always high.  Note that
> -		 * gpio4_26 is a NC on old veyron boards, so it doesn't hurt
> +		 * gpio4_D2 is a NC on old veyron boards, so it doesn't hurt
>   		 * to map this pin everywhere
>   		 */
>   		bt_dev_wake_sleep: bt-dev-wake-sleep {
> -			rockchip,pins = <4 26 RK_FUNC_GPIO &pcfg_output_low>;
> +			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_output_low>;
>   		};
>   
>   		bt_dev_wake_awake: bt-dev-wake-awake {
> -			rockchip,pins = <4 26 RK_FUNC_GPIO &pcfg_output_high>;
> -		};
> -	};
> -
> -	sdmmc {
> -		/*
> -		 * We run sdmmc at max speed; bump up drive strength.
> -		 * We also have external pulls, so disable the internal ones.
> -		 */
> -		sdmmc_bus4: sdmmc-bus4 {
> -			rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
> -					<6 17 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
> -					<6 18 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
> -					<6 19 RK_FUNC_1 &pcfg_pull_none_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_none_drv_8ma>;
> -		};
> -
> -		/*
> -		 * Builtin CD line is hooked to ground to prevent JTAG at boot
> -		 * (and also to get the voltage rail correct).  Make we
> -		 * configure gpio6_C6 as GPIO so dw_mmc builtin CD doesn't
> -		 * think there's a card inserted
> -		 */
> -		sdmmc_cd_disabled: sdmmc-cd-disabled {
> -			rockchip,pins = <6 22 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_output_high>;
>   		};
>   
> -		/* This is where we actually hook up CD */
> -		sdmmc_cd_gpio: sdmmc-cd-gpio {
> -			rockchip,pins = <7 5 RK_FUNC_GPIO &pcfg_pull_none>;
> +		bt_dev_wake: bt-dev-wake {
> +			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	tpm {
>   		tpm_int_h: tpm-int-h {
> -			rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <7 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   
>   	write-protect {
>   		fw_wp_ap: fw-wp-ap {
> -			rockchip,pins = <7 6 RK_FUNC_GPIO &pcfg_pull_none>;
> +			rockchip,pins = <7 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
>   		};
>   	};
>   };
> -
> -&usbphy {
> -	status = "okay";
> -};
> -
> -&usb_host0_ehci {
> -	status = "okay";
> -	needs-reset-on-resume;
> -};
> -
> -&usb_host1 {
> -	status = "okay";
> -};
> -
> -&usb_otg {
> -	dr_mode = "host";
> -	status = "okay";
> -	assigned-clocks = <&cru SCLK_USBPHY480M_SRC>;
> -	assigned-clock-parents = <&cru SCLK_OTGPHY0>;
> -};


More information about the U-Boot mailing list