// 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/emmc-pwrseq;
};

&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;
};

&gpio_keys {
	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>;
};

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

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

	sdmmc {
		sdmmc_wp_gpio: sdmmc-wp-gpio {
			rockchip,pins = <7 10 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_gpio
		     &sdmmc_wp_gpio &sdmmc_bus4>;
	wp-gpios = <&gpio7 RK_PB2 GPIO_ACTIVE_HIGH>;
};

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