// SPDX-License-Identifier: GPL-2.0-only

/dts-v1/;

#include "msm8916-pm8916.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
	model = "Asus Zenfone 2 Laser";
	compatible = "asus,z00l", "qcom,msm8916";
	chassis-type = "handset";

	aliases {
		serial0 = &blsp1_uart2;
	};

	chosen {
		stdout-path = "serial0";
	};

	gpio-keys {
		compatible = "gpio-keys";

		pinctrl-names = "default";
		pinctrl-0 = <&gpio_keys_default>;

		label = "GPIO Buttons";

		button-volume-up {
			label = "Volume Up";
			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
			debounce-interval = <15>;
		};

		button-volume-down {
			label = "Volume Down";
			gpios = <&msmgpio 117 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEDOWN>;
			debounce-interval = <15>;
		};
	};

	reg_sd_vmmc: regulator-sdcard-vmmc {
		compatible = "regulator-fixed";
		regulator-name = "sdcard-vmmc";
		regulator-min-microvolt = <2950000>;
		regulator-max-microvolt = <2950000>;

		gpio = <&msmgpio 87 GPIO_ACTIVE_HIGH>;
		enable-active-high;

		startup-delay-us = <200>;

		pinctrl-names = "default";
		pinctrl-0 = <&sd_vmmc_en_default>;
	};

	usb_id: usb-id {
		compatible = "linux,extcon-usb-gpio";
		id-gpios = <&msmgpio 110 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb_id_default>;
	};
};

&blsp_i2c2 {
	status = "okay";

	magnetometer@c {
		compatible = "asahi-kasei,ak09911";
		reg = <0x0c>;

		vdd-supply = <&pm8916_l8>;
		vid-supply = <&pm8916_l6>;

		reset-gpios = <&msmgpio 112 GPIO_ACTIVE_LOW>;

		pinctrl-names = "default";
		pinctrl-0 = <&mag_reset_default>;
	};

	imu@68 {
		compatible = "invensense,mpu6515";
		reg = <0x68>;

		interrupt-parent = <&msmgpio>;
		interrupts = <36 IRQ_TYPE_EDGE_RISING>;

		vdd-supply = <&pm8916_l17>;
		vddio-supply = <&pm8916_l6>;

		pinctrl-names = "default";
		pinctrl-0 = <&imu_default>;

		mount-matrix = "1",  "0", "0",
			       "0", "-1", "0",
			       "0",  "0", "1";
	};
};

&blsp_i2c5 {
	status = "okay";

	touchscreen@38 {
		compatible = "edt,edt-ft5306";
		reg = <0x38>;

		interrupt-parent = <&msmgpio>;
		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;

		reset-gpios = <&msmgpio 12 GPIO_ACTIVE_LOW>;

		vcc-supply = <&pm8916_l11>;
		iovcc-supply = <&pm8916_l6>;

		touchscreen-size-x = <720>;
		touchscreen-size-y = <1280>;

		pinctrl-names = "default";
		pinctrl-0 = <&touchscreen_default>;
	};
};

&blsp1_uart2 {
	status = "okay";
};

&pronto {
	status = "okay";
};

&sdhc_1 {
	status = "okay";

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
};

&sdhc_2 {
	status = "okay";
	vmmc-supply = <&reg_sd_vmmc>;

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
	cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
};

&usb {
	status = "okay";
	extcon = <&usb_id>, <&usb_id>;
};

&usb_hs_phy {
	extcon = <&usb_id>;
};

&smd_rpm_regulators {
	vdd_l1_l2_l3-supply = <&pm8916_s3>;
	vdd_l4_l5_l6-supply = <&pm8916_s4>;
	vdd_l7-supply = <&pm8916_s4>;

	s3 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1300000>;
	};

	s4 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2100000>;
	};

	l1 {
		regulator-min-microvolt = <1225000>;
		regulator-max-microvolt = <1225000>;
	};

	l2 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
	};

	l4 {
		regulator-min-microvolt = <2050000>;
		regulator-max-microvolt = <2050000>;
	};

	l5 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	l6 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	l7 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	l8 {
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2900000>;
	};

	l9 {
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	l10 {
		regulator-min-microvolt = <2700000>;
		regulator-max-microvolt = <2800000>;
	};

	l11 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2950000>;
		regulator-allow-set-load;
		regulator-system-load = <200000>;
	};

	l12 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2950000>;
	};

	l13 {
		regulator-min-microvolt = <3075000>;
		regulator-max-microvolt = <3075000>;
	};

	l14 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	l15 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	l16 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	l17 {
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2850000>;
	};

	l18 {
		regulator-min-microvolt = <2700000>;
		regulator-max-microvolt = <2700000>;
	};
};

&msmgpio {
	gpio_keys_default: gpio-keys-default {
		pins = "gpio107", "gpio117";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-up;
	};

	imu_default: imu-default {
		pins = "gpio36";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	mag_reset_default: mag-reset-default {
		pins = "gpio112";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	sd_vmmc_en_default: sd-vmmc-en-default {
		pins = "gpio87";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	touchscreen_default: touchscreen-default {
		pins = "gpio13";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-up;

		reset {
			pins = "gpio12";
			function = "gpio";

			drive-strength = <2>;
			bias-disable;
		};
	};

	usb_id_default: usb-id-default {
		pins = "gpio110";
		function = "gpio";

		drive-strength = <8>;
		bias-pull-up;
	};
};
