/* Copyright (c) 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_djn_hx83112b_1080p_cmd: qcom,mdss_dsi_djn_hx83112b_1080p_cmd {
		qcom,mdss-dsi-panel-name =
				"djn hx83112b 1080p cmd mode dsi panel";
		qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
		qcom,mdss-dsi-panel-framerate = <60>;
		qcom,mdss-dsi-virtual-channel-id = <0>;
		qcom,mdss-dsi-stream = <0>;
		qcom,mdss-dsi-panel-width = <1080>;
		qcom,mdss-dsi-panel-height = <2160>;
		qcom,mdss-dsi-h-front-porch = <40>;
		qcom,mdss-dsi-h-back-porch = <12>;
		qcom,mdss-dsi-h-pulse-width = <4>;
		qcom,mdss-dsi-h-sync-skew = <0>;
		qcom,mdss-dsi-v-back-porch = <2>;
		qcom,mdss-dsi-v-front-porch = <32>;
		qcom,mdss-dsi-v-pulse-width = <2>;
		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-te-pin-select = <1>;
		qcom,mdss-dsi-te-dcs-command = <1>;
		qcom,mdss-dsi-te-check-enable;
		qcom,mdss-dsi-te-using-te-pin;
		qcom,mdss-tear-check-sync-init-val = <2160>;
		qcom,mdss-tear-check-sync-threshold-start = <4>;
		qcom,mdss-tear-check-sync-threshold-continue = <4>;
		qcom,mdss-tear-check-start-pos = <2160>;
		qcom,mdss-dsi-h-sync-pulse = <0>;
		qcom,mdss-dsi-traffic-mode = "burst_mode";
		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-lane-2-state;
		qcom,mdss-dsi-lane-3-state;
		qcom,mdss-dsi-hsa-power-mode;
		qcom,mdss-pan-physical-width-dimension=<65>;
		qcom,mdss-pan-physical-height-dimension=<128>;
		qcom,mdss-dsi-panel-timings = [e6 38 26 00 68 6e 2a
				3c 44 03 04 00];
		qcom,mdss-dsi-t-clk-post = <0x0d>;
		qcom,mdss-dsi-t-clk-pre = <0x2f>;
		qcom,mdss-dsi-bl-min-level = <1>;
		qcom,mdss-dsi-bl-max-level = <4095>;
		qcom,mdss-dsi-dma-trigger = "trigger_sw";
		qcom,mdss-dsi-mdp-trigger = "none";
		qcom,mdss-dsi-on-command = [39 01 00 00 00 00 04 B9 83 11 2B
			39 01 00 00 00 00 02 BD 01
			39 01 00 00 00 00 03 C2 08 70
			39 01 00 00 00 00 02 BD 03
			39 01 00 00 00 00 05 B2 04 38 08 70
			39 01 00 00 00 00 02 BD 00
			39 01 00 00 00 00 0B B1 F8 27 27 00 00 0B 0E 0B 0E 33
			39 01 00 00 00 00 03 D2 2D 2D
			39 01 00 00 00 00 0C B2 80 02 18 80 70 00 08 1C 08 11 05
			39 01 00 00 00 00 02 E9 D1
			39 01 00 00 00 00 03 B2 00 08
			39 01 00 00 00 00 02 E9 00
			39 01 00 00 00 00 02 BD 02
			39 01 00 00 00 00 03 B2 B5 0A
			39 01 00 00 00 00 02 BD 00
			39 01 00 00 00 00 09 DD 00 00 08 1C 08 34 34 88
			39 01 00 00 00 00 19 B4 65 6B 00 00 D0 D4 36 CF 06 CE 00 CE 00 00 00 07 00 2A 07 01 07 00 00 2A
			39 01 00 00 00 00 02 BD 03
			39 01 00 00 00 00 02 E9 C3
			39 01 00 00 00 00 04 B4 01 67 2A
			39 01 00 00 00 00 02 E9 00
			39 01 00 00 00 00 02 BD 00
			39 01 00 00 00 00 02 C1 01
			39 01 00 00 00 00 02 BD 01
			39 01 00 00 00 00 3A C1 FF FB F9 F6 F4 F1 EF EA E7 E5 E2 DF DD DA D8 D5 D2 CF CC C5 BE B7 B0 A8 A0 98 8E 85 7B 72 69 5E 53 48 3E 35 2B 22 17 0D 09 07 05 01 00 26 F0 86 25 6E B6 DD F3 D8 CC 9B 00
			39 01 00 00 00 00 02 BD 02
			39 01 00 00 00 00 3A C1 FF FB F9 F6 F4 F1 EF EA E7 E5 E2 DF DD DA D8 D5 D2 CF CC C5 BE B7 B0 A8 A0 98 8E 85 7B 72 69 5E 53 48 3E 35 2B 22 17 0D 09 07 05 01 00 26 F0 86 25 6E B6 DD F3 D8 CC 9B 00
			39 01 00 00 00 00 02 BD 03
			39 01 00 00 00 00 3A C1 FF FB F9 F6 F4 F1 EF EA E7 E5 E2 DF DD DA D8 D5 D2 CF CC C5 BE B7 B0 A8 A0 98 8E 85 7B 72 69 5E 53 48 3E 35 2B 22 17 0D 09 07 05 01 00 26 F0 86 25 6E B6 DD F3 D8 CC 9B 00
			39 01 00 00 00 00 02 BD 00
			39 01 00 00 00 00 02 C2 C8
			39 01 00 00 00 00 02 CC 08
			39 01 00 00 00 00 26 D3 81 00 00 00 00 01 00 04 00 01 13 40 04 09 09 0B 0B 32 10 08 00 08 32 10 08 00 08 32 10 08 00 08 00 00 0A 08 7B
			39 01 00 00 00 00 02 E9 C5
			39 01 00 00 00 00 02 C6 F7
			39 01 00 00 00 00 02 E9 00
			39 01 00 00 00 00 02 E9 D4
			39 01 00 00 00 00 02 C6 6E
			39 01 00 00 00 00 02 E9 00
			39 01 00 00 00 00 02 E9 EF
			39 01 00 00 00 00 02 D3 0C
			39 01 00 00 00 00 02 E9 00
			39 01 00 00 00 00 02 BD 01
			39 01 00 00 00 00 02 E9 C8
			39 01 00 00 00 00 02 D3 A1
			39 01 00 00 00 00 02 E9 00
			39 01 00 00 00 00 02 BD 00
			39 01 00 00 00 00 39 D5 18 18 19 18 18 20 18 18 18 10 10 18 18 00 00 18 18 01 01 18 18 28 28 18 18 18 18 18 2F 2F 30 30 31 31 35 35 36 36 37 37 18 18 18 18 18 18 18 18 FC FC 00 00 FC FC 00 00
			39 01 00 00 00 00 31 D6 18 18 19 18 18 20 19 18 18 10 10 18 18 00 00 18 18 01 01 18 18 28 28 18 18 18 18 18 2F 2F 30 30 31 31 35 35 36 36 37 37 18 18 18 18 18 18 18 18
			39 01 00 00 00 00 19 D8 AA AA AA AF EA AA AA AA AA AF EA AA AA AA AB AF EF AA AA AA AA AF EA AA
			39 01 00 00 00 00 02 BD 01
			39 01 00 00 00 00 0D D8 AA AA AB AF EA AA AA AA AE AF EA AA
			39 01 00 00 00 00 02 BD 02
			39 01 00 00 00 00 0D D8 AA AA AA AF EA AA AA AA AA AF EA AA
			39 01 00 00 00 00 02 BD 03
			39 01 00 00 00 00 19 D8 BA AA AA AF EA AA AA AA AA AF EA AA BA AA AA AF EA AA AA AA AA AF EA AA
			39 01 00 00 00 00 02 BD 00
			39 01 00 00 00 00 02 E9 E4
			39 01 00 00 00 00 03 E7 17 69
			39 01 00 00 00 00 02 E9 00
			39 01 00 00 00 00 1A E7 09 09 00 07 E8 00 26 00 07 00 00 E8 32 00 E9 0A 0A 00 00 00 01 01 00 12 04
			39 01 00 00 00 00 02 BD 01
			39 01 00 00 00 00 0A E7 02 00 01 20 01 18 08 A8 09
			39 01 00 00 00 00 02 BD 02
			39 01 00 00 00 00 04 E7 20 20 00
			39 01 00 00 00 00 02 BD 03
			39 01 00 00 00 00 07 E7 00 DC 11 70 00 20
			39 01 00 00 00 00 02 E9 C9
			39 01 00 00 00 00 07 E7 2A CE 02 70 01 04
			39 01 00 00 00 00 02 E9 00
			39 01 00 00 00 00 02 BD 00
			39 01 00 00 00 00 02 D1 27
			05 01 00 00 78 00 02 11 00
			05 01 00 00 14 00 02 29 00
			39 01 00 00 00 00 03 51 00 00
			39 01 00 00 00 00 02 53 24];
		qcom,mdss-dsi-off-command = [05 01 00 00 14 00 02 28 00
				 05 01 00 00 78 00 02 10 00];
		qcom,mdss-dsi-off-dstb-command = [
                                 39 01 00 00 00 00 04 B9 83 11 2A
				 39 01 00 00 00 00 02 BD 00
				 39 01 00 00 50 00 02 B1 09];
		qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
		qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
		qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
		qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>;
		qcom,mdss-dsi-tx-eot-append;
		qcom,mdss-dsi-lp11-init;
		qcom,mdss-dsi-post-init-delay = <1>;
	};
};
