/* Copyright (c) 2013-2014, 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.
 */

&mdss_mdp {
	dsi_dual_jdi_video_0: qcom,dsi_jdi_qhd_video_0 {
		qcom,mdss-dsi-panel-name = "Dual 0 video mode dsi panel";
		qcom,mdss-dsi-panel-controller = <&mdss_dsi0>;
		qcom,mdss-dsi-panel-type = "dsi_video_mode";
		qcom,mdss-dsi-panel-destination = "display_1";
		qcom,mdss-dsi-panel-framerate = <60>;
		qcom,mdss-dsi-virtual-channel-id = <0>;
		qcom,mdss-dsi-stream = <0>;
		qcom,mdss-dsi-panel-width = <1280>;
		qcom,mdss-dsi-panel-height = <1440>;
		qcom,mdss-dsi-h-front-porch = <120>;
		qcom,mdss-dsi-h-back-porch = <44>;
		qcom,mdss-dsi-h-pulse-width = <16>;
		qcom,mdss-dsi-h-sync-skew = <0>;
		qcom,mdss-dsi-v-back-porch = <4>;
		qcom,mdss-dsi-v-front-porch = <8>;
		qcom,mdss-dsi-v-pulse-width = <4>;
		qcom,mdss-dsi-h-left-border = <0>;
		qcom,mdss-dsi-h-right-border = <0>;
		qcom,mdss-dsi-v-top-border = <0>;
		qcom,mdss-dsi-v-bottom-border = <0>;
		qcom,mdss-dsi-bpp = <24>;
		qcom,mdss-dsi-underflow-color = <0xff>;
		qcom,mdss-dsi-border-color = <0>;
		qcom,mdss-dsi-h-sync-pulse = <0>;
		qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
		qcom,mdss-dsi-bllp-eof-power-mode;
		qcom,mdss-dsi-bllp-power-mode;
		qcom,mdss-dsi-panel-broadcast-mode;
		qcom,mdss-dsi-lane-0-state;
		qcom,mdss-dsi-lane-1-state;
		qcom,mdss-dsi-lane-2-state;
		qcom,mdss-dsi-lane-3-state;
		qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03
									04 00];
		qcom,mdss-dsi-t-clk-post = <0x03>;
		qcom,mdss-dsi-t-clk-pre = <0x27>;
		qcom,mdss-dsi-bl-max-level = <4095>;
		qcom,mdss-dsi-dma-trigger = "trigger_sw";
		qcom,mdss-dsi-mdp-trigger = "none";
		qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
		qcom,mdss-dsi-on-command = [05 01 00 00 0a 00 01 00
						/* Soft reset, wait 10ms */
					15 01 00 00 0a 00 02 3a 77
						/* Set Pixel format (24 bpp) */
					39 01 00 00 0a 00 05 2a 00 00 04 ff
						/* Set Column address */
					39 01 00 00 0a 00 05 2b 00 00 05 9f
						/* Set page address */
					15 01 00 00 0a 00 02 35 00
						/* Set tear on */
					39 01 00 00 0a 00 03 44 00 00
						/* Set tear scan line */
					15 01 00 00 0a 00 02 51 ff
						/* write display brightness */
					15 01 00 00 0a 00 02 53 24
						/* write control brightness */
					15 01 00 00 0a 00 02 55 00
						/* CABC brightness */
					05 01 00 00 78 00 01 11
					/* exit sleep mode, wait 120ms */
					23 01 00 00 0a 00 02 b0 00
						/* MCAP */
					29 01 00 00 0a 00 02 b3 14
						/* Interface setting */
					29 01 00 00 0a 00 14 ce 7d 40 48 56 67
					78 88 98 a7 b5 c3 d1 de e9 f2 fa ff 04
					00    /* Backlight control 4 */
					23 01 00 00 0a 00 02 b0 03
						/* MCAP */
					05 01 00 00 10 00 01 29];
					/* Set display on, wait 16ms */
		qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
		qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00
					05 01 00 00 78 00 02 10 00];
		qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
		qcom,mdss-dsi-reset-sequence = <1 20>, <0 200>, <1 20>;
	};
};
