// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Google Veyron Pinky Rev 2 board device tree source
 *
 * Copyright 2015 Google, Inc
 */

/dts-v1/;
#include "rk3288-veyron-chromebook.dtsi"
#include "cros-ec-sbs.dtsi"

/ {
	model = "Google Pinky";
	compatible = "google,veyron-pinky-rev2", "google,veyron-pinky",
		     "google,veyron", "rockchip,rk3288";

	/delete-node/backlight-regulator;
	/delete-node/panel-regulator;
	/delete-node/emmc-pwrseq;
	/delete-node/vcc18-lcd;
};

&backlight {
	/delete-property/power-supply;
};

&emmc {
	/*
	 * Use a pullup instead of a drive since the output is 3.3V and
	 * really should be 1.8V (oops).  The external pulldown will help
	 * bring the voltage down if we only drive with a pullup here.
	 * Therefore disable the powerseq (and actual reset) for pinky.
	 */
	/delete-property/mmc-pwrseq;
	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8 &emmc_reset>;
};

&edp {
	/delete-property/pinctrl-names;
	/delete-property/pinctrl-0;

	force-hpd;
};

&lid_switch {
	pinctrl-0 = <&pwr_key_h &ap_lid_int_l>;

	power {
		gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
	};
};

/* Touchpad connector */
&i2c3 {
	status = "okay";

	clock-frequency = <400000>;
	i2c-scl-falling-time-ns = <50>;
	i2c-scl-rising-time-ns = <300>;
};

&panel {
	power-supply = <&vcc33_lcd>;
};

&pinctrl {
	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
	>;

	/delete-node/ lcd;

	backlight {
		/delete-node/ bl_pwr_en;
	};

	buttons {
		pwr_key_h: pwr-key-h {
			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	emmc {
		emmc_reset: emmc-reset {
			rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	sdmmc {
		sdmmc_wp_pin: sdmmc-wp-pin {
			rockchip,pins = <7 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
};

&rk808 {
	regulators {
		vcc18_lcd: SWITCH_REG2 {
			regulator-always-on;
			regulator-boot-on;
			regulator-name = "vcc18_lcd";
			regulator-state-mem {
				regulator-off-in-suspend;
			};
		};
	};
};

&sdmmc {
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_pin
		     &sdmmc_wp_pin &sdmmc_bus4>;
	wp-gpios = <&gpio7 RK_PB2 GPIO_ACTIVE_HIGH>;
};

&tsadc {
	/* Some connection is flaky making the tsadc hang the system */
	status = "disabled";
};
