/* Copyright (c) 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 "../../../../../../drivers/video/msm/mdss/samsung/S6E3FA7_AMS604NL01/dsi_panel_S6E8AA5X01_AMS561RA01_hd_octa_video.dtsi"
#include "../../../../../../drivers/video/msm/mdss/samsung/PBA_BOOTING/dsi_panel_PBA_BOOTING_fhd_video.dtsi"

/*
 * SOC Setting (TLMM Pin Control & SPI Setting)
 */

&soc {
	tlmm: pinctrl@1000000 {

/delete-node/ pmx_mdss;
		pmx_mdss: pmx_mdss {
			mdss_dsi_active: mdss_dsi_active {
				mux {
					pins = "gpio50", "gpio35", "gpio93"; /* rst and power */
					function = "gpio";
				};

				config {
					pins = "gpio50", "gpio35", "gpio93";
					drive-strength = <8>; /* 8 mA */
					bias-disable = <0>; /* no pull */
					output-high;
				};
			};

			mdss_dsi_suspend: mdss_dsi_suspend {
				mux {
					pins = "gpio50", "gpio35", "gpio93"; /* rst */
					function = "gpio";
				};

				config {
					pins = "gpio50", "gpio35", "gpio93";
					drive-strength = <2>; /* 2 mA */
					bias-pull-down; /* pull down */
				};
			};
		};

/delete-node/ pmx_mdss_te;
		pmx_mdss_te {
			mdss_te_active: mdss_te_active {
				mux {
					pins = "gpio24";
					function = "mdp_vsync";
				};
				config {
					pins = "gpio24";
					drive-strength = <2>; /* 8 mA */
					bias-pull-down; /* pull down*/
				};
			};

			mdss_te_suspend: mdss_te_suspend {
				mux {
					pins = "gpio24";
					function = "mdp_vsync";
				};
				config {
					pins = "gpio24";
					drive-strength = <2>; /* 2 mA */
					bias-pull-down; /* pull down */
				};
			};
		};

		mdss_disp_det_active: mdss_disp_det_active {
			mux {
				pins = "gpio45", "gpio97";
				function = "gpio";
			};
			config {
				pins = "gpio45", "gpio97";
				drive-strength = <2>; /* 8 mA */
				bias-disable = <0>; /* no pull */
				input-enable;
			};
		};

		mdss_disp_det_suspend: mdss_disp_det_suspend {
			mux {
				pins = "gpio45", "gpio97";
				function = "gpio";
			};
			config {
				pins = "gpio45", "gpio97";
				drive-strength = <2>; /* 2 mA */
				bias-disable = <0>; /* no pull */
			};
		};

	};
};

&ss_dsi_panel_S6E8AA5X01_AMS561RA01_HD {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <365>;

	samsung,panel-extra-power-gpio1 =<&tlmm 93 0>; /*vci & vdd3: 3.0V & 1.8V*/
	samsung,panel-extra-power-gpio2 =<&tlmm 35 0>; /*vddr: 1.5V*/

	samsung,esd-irq-gpio1 = <&tlmm 97 0>;
	samsung,esd-irq-gpio2 = <&tlmm 45 0>;
};

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

&mdss_dsi0 {
	qcom,dsi-pref-prim-pan = <&ss_dsi_panel_S6E8AA5X01_AMS561RA01_HD>;

	pinctrl-names = "mdss_default", "mdss_sleep";
	pinctrl-0 = <&mdss_dsi_active &mdss_te_active &mdss_disp_det_active>;
	pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend &mdss_disp_det_suspend>;

	qcom,platform-reset-gpio = <&tlmm 50 0>;
	qcom,platform-te-gpio = <&tlmm 24 0>;
};

&mdss_dsi1 {
	status = "disabled";
};

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