/* Copyright (c) 2015-2017, 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_lt8912_1080_vid: qcom,mdss_dsi_lt8912_1080p_video {
		qcom,mdss-dsi-panel-name = "lt8912 1080p video mode dsi panel";
		qcom,mdss-dsi-panel-type = "dsi_video_mode";
		qcom,mdss-dsi-panel-destination = "display_1";
		qcom,mdss-dsi-color-order = "rgb_swap_rgb";
		qcom,mdss-dsi-lane-map = "lane_map_0123";
		qcom,mdss-dsi-panel-framerate = <60>;
		qcom,mdss-dsi-virtual-channel-id = <0>;
		qcom,mdss-dsi-stream = <0>;
		qcom,mdss-dsi-panel-width = <1920>;
		qcom,mdss-dsi-panel-height = <1080>;
		qcom,mdss-dsi-h-front-porch = <88>;
		qcom,mdss-dsi-h-back-porch = <148>;
		qcom,mdss-dsi-h-pulse-width = <44>;
		qcom,mdss-dsi-h-sync-skew = <0>;
		qcom,mdss-dsi-v-back-porch = <36>;
		qcom,mdss-dsi-v-front-porch = <4>;
		qcom,mdss-dsi-v-pulse-width = <5>;
		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-on-command = [
			05 01 00 00 a0 00 02 11 00
			05 01 00 00 a0 00 02 29 00];
		qcom,mdss-dsi-off-command = [
			05 01 00 00 78 00 02 28 00
			05 01 00 00 78 00 02 10 00];
		qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
		qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
		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-lane-0-state;
		qcom,mdss-dsi-lane-1-state;
		qcom,mdss-dsi-panel-timings-phy-v2 = [
			23 1e 08 09 05 03 04 a0
			23 1e 08 09 05 03 04 a0
			23 1e 08 09 05 03 04 a0
			23 1e 08 09 05 03 04 a0
			23 1a 08 09 05 03 04 a0];
		qcom,mdss-dsi-panel-timings = [
				e6 38 26 00 68 6c 2a 3a 2c 03 04 00];
		qcom,mdss-dsi-t-clk-post = <0x02>;
		qcom,mdss-dsi-t-clk-pre = <0x2b>;
		qcom,mdss-dsi-dma-trigger = "trigger_sw";
		qcom,mdss-dsi-mdp-trigger = "none";
		qcom,mdss-dsi-reset-sequence = <1 20>, <0 2>, <1 20>;
		qcom,mdss-dsi-post-init-delay = <1>;
		qcom,mdss-dsi-force-clock-lane-hs;
	};
};
