/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program 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.
 */

#include "msm8996-pinctrl.dtsi"
#include "msm8996-camera-sensor-cdp.dtsi"
#include "msm8996-wsa881x.dtsi"

/ {
	bluetooth: bt_qca6174 {
		compatible = "qca,qca6174";
		qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */
		qca,bt-vdd-core-supply = <&pm8994_s3>;
		qca,bt-vdd-pa-supply = <&rome_vreg>;
		qca,bt-vdd-io-supply = <&pm8994_s4>;
		qca,bt-vdd-xtal-supply = <&pm8994_l30>;
		qca,bt-vdd-core-voltage-level = <1300000 1800000>;
		qca,bt-vdd-io-voltage-level = <1800000 1800000>;
		qca,bt-vdd-xtal-voltage-level = <1800000 1800000>;
	};
};

&spi_eth_vreg {
	status = "ok";
};

&uartblsp2dm1 {
	status = "ok";
	pinctrl-names = "default";
	pinctrl-0 = <&uart_console_active>;
};

&ufs_ice {
	status = "ok";
};

&sdcc1_ice {
	status = "ok";
};

&ufsphy1 {
	status = "ok";
};

&ufs1 {
	status = "ok";
};

&sdhc_1 {
	vdd-supply = <&pm8994_l20>;
	qcom,vdd-voltage-level = <2950000 2950000>;
	qcom,vdd-current-level = <200 570000>;

	vdd-io-supply = <&pm8994_s4>;
	qcom,vdd-io-always-on;
	qcom,vdd-io-voltage-level = <1800000 1800000>;
	qcom,vdd-io-current-level = <110 325000>;

	pinctrl-names = "active", "sleep";
	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;

	qcom,clk-rates = <400000 20000000 25000000 50000000 96000000 192000000 384000000>;
	qcom,ice-clk-rates = <300000000 150000000>;
	qcom,nonremovable;
	qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";

	status = "ok";
};

&sdhc_2 {
	vdd-supply = <&pm8994_l21>;
	qcom,vdd-voltage-level = <2950000 2950000>;
	qcom,vdd-current-level = <200 800000>;

	vdd-io-supply = <&pm8994_l13>;
	qcom,vdd-io-voltage-level = <1800000 2950000>;
	qcom,vdd-io-current-level = <200 22000>;

	pinctrl-names = "active", "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>;

	qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>;
	qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";

	cd-gpios = <&tlmm 95 0x1>;

	status = "ok";
};

/* CoreSight */
&tpiu {
	pinctrl-names = "seta-pctrl", "setb-pctrl";
	pinctrl-0 = <&seta_1 &seta_2 &seta_3 &seta_4 &seta_5 &seta_6 &seta_7
		     &seta_8 &seta_9 &seta_10 &seta_11 &seta_12 &seta_13
		     &seta_14 &seta_15 &seta_16 &seta_17 &seta_18>;
	pinctrl-1 = <&setb_1 &setb_2 &setb_3 &setb_4 &setb_5 &setb_6 &setb_7
		     &setb_8 &setb_9 &setb_10 &setb_11 &setb_12 &setb_13
		     &setb_14 &setb_15 &setb_16 &setb_17 &setb_18>;
};

&pmi8994_charger {
	qcom,charging-disabled;
};

&pm8994_vadc {
	chan@5 {
		label = "vcoin";
		reg = <5>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <1>;
		qcom,calibration-type = "absolute";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <0>;
		qcom,fast-avg-setup = <0>;
	};

	chan@7 {
		label = "vph_pwr";
		reg = <7>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <1>;
		qcom,calibration-type = "absolute";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <0>;
		qcom,fast-avg-setup = <0>;
	};

	chan@73 {
		label = "msm_therm";
		reg = <0x73>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@74 {
		label = "emmc_therm";
		reg = <0x74>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@75 {
		label = "pa_therm0";
		reg = <0x75>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@77 {
		label = "pa_therm1";
		reg = <0x77>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@78 {
		label = "quiet_therm";
		reg = <0x78>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@7c {
		label = "xo_therm_buf";
		reg = <0x7c>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <4>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@7c {
		label = "xo_therm_buf";
		reg = <0x7c>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <4>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};
};

&pm8994_adc_tm {
	chan@73 {
		label = "msm_therm";
		reg = <0x73>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,btm-channel-number = <0x48>;
		qcom,thermal-node;
	};

	chan@74 {
		label = "emmc_therm";
		reg = <0x74>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,btm-channel-number = <0x68>;
		qcom,thermal-node;
	};

	chan@75 {
		label = "pa_therm0";
		reg = <0x75>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,btm-channel-number = <0x70>;
		qcom,thermal-node;
	};

	chan@77 {
		label = "pa_therm1";
		reg = <0x77>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,btm-channel-number = <0x78>;
		qcom,thermal-node;
	};

	chan@78 {
		label = "quiet_therm";
		reg = <0x78>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,btm-channel-number = <0x80>;
		qcom,thermal-node;
	};

	chan@7c {
		label = "xo_therm_buf";
		reg = <0x7c>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <4>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,btm-channel-number = <0x88>;
		qcom,thermal-node;
	};
};

&pmi8994_vadc {
	chan@0 {
		label = "usbin";
		reg = <0>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <4>;
		qcom,calibration-type = "absolute";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <0>;
		qcom,fast-avg-setup = <0>;
	};

	chan@1 {
		label = "dcin";
		reg = <1>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <4>;
		qcom,calibration-type = "absolute";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <0>;
		qcom,fast-avg-setup = <0>;
	};

	chan@43 {
		label = "usb_dp";
		reg = <0x43>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <1>;
		qcom,calibration-type = "absolute";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <0>;
		qcom,fast-avg-setup = <0>;
	};

	chan@44 {
		label = "usb_dm";
		reg = <0x44>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <1>;
		qcom,calibration-type = "absolute";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <0>;
		qcom,fast-avg-setup = <0>;
	};
};

#include "msm8996-sde-display.dtsi"
#include "msm8996-mdss-panels.dtsi"

&mdss_mdp {
	qcom,mdss-pref-prim-intf = "dsi";
};

&mdss_dsi {
	hw-config = "split_dsi";
};

&mdss_hdmi_tx {
	pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", "hdmi_cec_active",
				"hdmi_active", "hdmi_sleep";
	pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend
						&mdss_hdmi_cec_suspend>;
	pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active
						&mdss_hdmi_cec_suspend>;
	pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active
						&mdss_hdmi_ddc_suspend>;
	pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active
						&mdss_hdmi_cec_active>;
	pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend
						&mdss_hdmi_cec_suspend>;
};

&mdss_dsi0 {
	qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>;
	pinctrl-names = "mdss_default", "mdss_sleep";
	pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
	pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
	qcom,platform-reset-gpio = <&tlmm 8 0>;
	qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>;
};

&mdss_dsi1 {
	qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>;
	pinctrl-names = "mdss_default", "mdss_sleep";
	pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
	pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
	qcom,platform-reset-gpio = <&tlmm 8 0>;
	qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>;
};

&ibb_regulator {
	qcom,qpnp-ibb-discharge-resistor = <32>;
};

&labibb {
	status = "ok";
	qpnp,qpnp-labibb-mode = "lcd";
};

&dsi_tosh_720_vid {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,cont-splash-enabled;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>;
	qcom,platform-reset-gpio = <&tlmm 8 0>;
	qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>;
	qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>;
};

&dsi_truly_1080_vid {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_truly_1080_cmd {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,ulps-enabled;
	qcom,partial-update-enabled;
	qcom,panel-roi-alignment = <2 2 4 2 1080 2>;
};

&dsi_dual_sharp_video {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,platform-reset-gpio = <&tlmm 8 0>;
	qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>;
};

&dsi_dual_nt35597_video {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,platform-reset-gpio = <&tlmm 8 0>;
};

&dsi_dual_nt35597_cmd {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,partial-update-enabled;
	qcom,panel-roi-alignment = <720 128 720 128 1440 128>;
	qcom,panel-allow-phy-poweroff;
	qcom,platform-reset-gpio = <&tlmm 8 0>;
};

&dsi_nt35950_4k_dsc_cmd {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_sharp_4k_dsc_video {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_sharp_4k_dsc_cmd {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,partial-update-enabled;
	/* panel supports slice height of 8/16/32/48/3840 */
	qcom,panel-roi-alignment = <1080 32 1080 32 1080 32>;
};

&dsi_nt35597_dsc_video {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_nt35597_dsc_cmd {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,panel-allow-phy-poweroff;
};

&dsi_dual_sharp_1080_120hz_cmd {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_dual_jdi_video {
	pwms = <&pmi8994_pwm_4 0 0>;
	pwm-names = "backlight";
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
	qcom,mdss-dsi-bl-pwm-pmi;
	qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_dual_jdi_cmd {
	pwms = <&pmi8994_pwm_4 0 0>;
	pwm-names = "backlight";
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
	qcom,mdss-dsi-bl-pwm-pmi;
	qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,partial-update-enabled;
	qcom,panel-roi-alignment = <4 2 4 2 20 20>;
};

&dsi_dual_jdi_4k_nofbc_video {
	pwms = <&pmi8994_pwm_4 0 0>;
	pwm-names = "backlight";
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
	qcom,mdss-dsi-bl-pwm-pmi;
	qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_sharp_1080_cmd {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_jdi_1080p_video {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,cont-splash-enabled;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply_no_labibb>;
	qcom,platform-reset-gpio = <&tlmm 8 0>;
	qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>;
	qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>;
};

&pm8994_gpios {
	gpio@c700 { /* GPIO 8 - WLAN_EN */
		qcom,mode = <1>;		/* Digital output*/
		qcom,pull = <4>;		/* Pulldown 10uA */
		qcom,vin-sel = <2>;		/* VIN2 */
		qcom,src-sel = <0>;		/* GPIO */
		qcom,invert = <0>;		/* Invert */
		qcom,master-en = <1>;		/* Enable GPIO */
		status = "okay";
	};

	gpio@c800 { /* GPIO 9 - Rome 3.3V control */
		qcom,mode = <1>;		/* Digital output */
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,invert = <1>;		/* Output high */
		qcom,vin-sel = <0>;		/* VPH_PWR */
		qcom,src-sel = <0>;		/* Constant */
		qcom,out-strength = <1>;	/* High drive strength */
		qcom,master-en = <1>;		/* Enable GPIO */
		status = "okay";
	};

	gpio@c100 { /* GPIO 2 */
		qcom,mode = <0>;
		qcom,pull = <0>;
		qcom,vin-sel = <2>;
		qcom,src-sel = <0>;
		status = "okay";
	};

	gpio@c300 { /* GPIO 4 */
		qcom,mode = <0>;
		qcom,pull = <0>;
		qcom,vin-sel = <2>;
		qcom,src-sel = <0>;
		status = "okay";
	};

	gpio@c400 { /* GPIO 5 */
		qcom,mode = <0>;
		qcom,pull = <0>;
		qcom,vin-sel = <2>;
		qcom,src-sel = <0>;
		status = "okay";
	};

	gpio@cd00 { /* GPIO 14 - lcd_bklt_reg_en */
		qcom,mode = <1>;		/* DIGITAL OUT */
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,invert = <1>; 		/* output hight initially */
		qcom,vin-sel = <2>;		/* 1.8 */
		qcom,src-sel = <0>;		/* CONSTANT */
		qcom,out-strength = <1>;	/* Low drive strength */
		qcom,master-en = <1>;		/* ENABLE GPIO */
		status = "okay";
	};

	gpio@ce00 { /* GPIO 15 */
		qcom,mode = <1>;
		qcom,output-type = <0>;
		qcom,pull = <5>;
		qcom,vin-sel = <2>;
		qcom,out-strength = <1>;
		qcom,src-sel = <2>;
		qcom,master-en = <1>;
		status = "okay";
	};

	gpio@d100 { /* GPIO 18 - Rome sleep clock */
		qcom,mode = <1>;		/* Digital output */
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,invert = <0>;		/* Output low initially */
		qcom,vin-sel = <2>;		/* VIN 2 */
		qcom,src-sel = <3>;		/* Function 2 */
		qcom,out-strength = <2>;	/* Medium */
		qcom,master-en = <1>;		/* Enable GPIO */
		status = "okay";
	};

	gpio@d200 { /* GPIO 19 - Rome BT Reset */
		qcom,mode = <1>;		/* Digital output*/
		qcom,pull = <4>;		/* Pulldown 10uA */
		qcom,vin-sel = <2>;		/* VIN2 */
		qcom,src-sel = <0>;		/* GPIO */
		qcom,invert = <0>;		/* Invert */
		qcom,master-en = <1>;		/* Enable GPIO */
		status = "okay";
	};
};

&soc {
	i2c@75ba000 {
		synaptics@20 {
			compatible = "synaptics,dsx";
			reg = <0x20>;
			interrupt-parent = <&tlmm>;
			interrupts = <125 0x2008>;
			vdd-supply = <&pm8994_l14>;
			avdd-supply = <&pm8994_l22>;
			pinctrl-names = "pmx_ts_active", "pmx_ts_suspend";
			pinctrl-0 = <&ts_active>;
			pinctrl-1 = <&ts_suspend>;
			synaptics,display-coords = <0 0 1599 2559>;
			synaptics,panel-coords = <0 0 1599 2703>;
			synaptics,reset-gpio = <&tlmm 89 0x00>;
			synaptics,irq-gpio = <&tlmm 125 0x2008>;
			synaptics,disable-gpios;
			synaptics,fw-name = "PR1702898-s3528t_00350002.img";
		};
	};

	gen-vkeys {
		compatible = "qcom,gen-vkeys";
		label = "synaptics_dsx";
		qcom,disp-maxx = <1599>;
		qcom,disp-maxy = <2559>;
		qcom,panel-maxx = <1599>;
		qcom,panel-maxy = <2703>;
		qcom,key-codes = <158 139 102 217>;
	};

	gpio_keys {
		compatible = "gpio-keys";
		input-name = "gpio-keys";

		vol_up {
			label = "volume_up";
			gpios = <&pm8994_gpios 2 0x1>;
			linux,input-type = <1>;
			linux,code = <115>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};

		cam_snapshot {
			label = "cam_snapshot";
			gpios = <&pm8994_gpios 4 0x1>;
			linux,input-type = <1>;
			linux,code = <766>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};

		cam_focus {
			label = "cam_focus";
			gpios = <&pm8994_gpios 5 0x1>;
			linux,input-type = <1>;
			linux,code = <528>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};
	};

	sound-9335 {
		qcom,model = "msm8996-tasha-cdp-snd-card";
		qcom,hdmi-audio-rx;
		asoc-codec = <&stub_codec>, <&hdmi_audio>;
		asoc-codec-names = "msm-stub-codec.1", "msm-hdmi-audio-codec-rx";
		qcom,us-euro-gpios = <&pm8994_mpps 2 0>;
		qcom,wsa-max-devs = <2>;
		qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
				<&wsa881x_213>, <&wsa881x_214>;
		qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
					  "SpkrLeft", "SpkrRight";
	};
};

&pm8994_mpps {
	mpp@a100 { /* MPP 2 */
		qcom,mode = <1>;		/* Digital output */
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,vin-sel = <2>;		/* S4 1.8V */
		qcom,src-sel = <0>;		/* Constant */
		qcom,master-en = <1>;		/* Enable GPIO */
		status = "okay";
	};

	mpp@a300 { /* MPP 4 */
		/* HDMI_5v_vreg regulator enable */
		qcom,mode = <1>;		/* Digital output */
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,vin-sel = <2>;		/* S4 1.8V */
		qcom,src-sel = <0>;		/* Constant */
		qcom,master-en = <1>;		/* Enable GPIO */
		qcom,invert = <1>;
		status = "okay";
	};

	mpp@a400 { /* MPP 5 */
		qcom,mode = <1>;		/* Digital output */
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,vin-sel = <2>;		/* S4 1.8V */
		qcom,src-sel = <0>;		/* Constant */
		qcom,master-en = <1>;		/* Enable GPIO */
		status = "okay";
	};
};

&pmi8994_gpios {
	gpio@c700 {	/* GPIO 8, lcd_reg_en, 5V boost  */
		qcom,mode = <1>;
		qcom,vin-sel = <2>;
		qcom,src-sel = <0>;
		qcom,invert = <1>;   /* need invert = 0 */
		qcom,master-en = <1>;
		status = "okay";
	};

	gpio@c100 {	/* GPIO 2  SPKR_SD_N */
		qcom,mode = <1>;	/* DIGITAL OUT */
		qcom,pull = <5>;	/* No Pull */
		qcom,vin-sel = <2>;	/* 1.8 */
		qcom,src-sel = <0>;	/* CONSTANT */
		qcom,master-en = <1>;	/* ENABLE GPIO */
		status = "okay";
	};

	gpio@c200 {	/* GPIO 3 SPKR_SD_N */
		qcom,mode = <1>;	/* DIGITAL OUT */
		qcom,pull = <5>;	/* No Pull */
		qcom,vin-sel = <2>;	/* 1.8 */
		qcom,src-sel = <0>;	/* CONSTANT */
		qcom,master-en = <1>;	/* ENABLE GPIO */
		status = "okay";
	};
};

&pmi8994_pwm_4 {
	qcom,channel-owner = "lcd_bl";
	qcom,dtest-line = <4>;
	qcom,dtest-output = <1>;
	status = "okay";
};

&pmi8994_mpps {
	mpp@a000 { /* MPP 1 */
		qcom,mode = <1>;                /* Digital output */
		qcom,output-type = <0>;         /* CMOS logic */
		qcom,vin-sel = <2>;             /* S4 1.8V */
		qcom,src-sel = <7>;             /* DTEST4 */
		qcom,master-en = <1>;           /* Enable MPP */
		status = "okay";
	};
	mpp@a300 { /* MPP 4 */
		/* WLED FET */
		qcom,mode = <1>;        /* DIGITAL OUT */
		qcom,vin-sel = <0>;     /* VIN0 */
		qcom,master-en = <1>;
		status = "okay";
	};
};

&pmi8994_haptics {
	status = "okay";
};

&blsp1_uart2 {
	status = "ok";
};

&usb2s {
	status = "disabled";
	dwc3@7600000 {
		dr_mode = "host";
	};
};

&i2c_7 {
	silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/
		status = "ok";
		compatible = "silabs,si4705";
		reg = <0x11>;
		vdd-supply = <&pm8994_s4>;
		silabs,vdd-supply-voltage = <1800000 1800000>;
		va-supply = <&rome_vreg>;
		silabs,va-supply-voltage = <3300000 3300000>;
		pinctrl-names = "pmx_fm_active","pmx_fm_suspend";
		pinctrl-0 = <&fm_int_active &fm_status_int_active &fm_rst_active>;
		pinctrl-1 = <&fm_int_suspend &fm_status_int_suspend &fm_rst_suspend>;
		silabs,reset-gpio = <&tlmm 39 0>;
		silabs,int-gpio = <&tlmm 38 0>;
		silabs,status-gpio = <&tlmm 78 0>;
		#address-cells = <0>;
		interrupts = <0 1>;
		#interrupt-cells = <1>;
		interrupt-map-mask = <0xffffffff>;
		interrupt-map = <
			  0 &tlmm 38 2
			  1 &tlmm 78 1
		>;
		interrupt-names = "silabs_fm_int", "silabs_fm_status_int";
	};
};

&spi_0 {
	ethernet@2 {
		compatible = "micrel,ks8851";
		reg = <2>;
		interrupt-parent = <&tlmm>;
		interrupts = <11 0>;
		spi-max-frequency = <960000>;
		vdd-supply = <&spi_eth_vreg>;
		reset-gpios = <&tlmm 79 0>;
	};
};

&wil6210 {
	status = "ok";
};
