Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c38a4f1a authored by Siddhartha Agrawal's avatar Siddhartha Agrawal Committed by Chandan Uddaraju
Browse files

ARM: dts: msm: add support for nt35950 novatek panel



Add dtsi entries for nt35950 DDIC with 4k panel
configuration. This panel supports FHD<->UHD switching.

Change-Id: I6047a95d12e22ac97c52492a60f78ec45e232dd4
Signed-off-by: default avatarChandan Uddaraju <chandanu@codeaurora.org>
Signed-off-by: default avatarSiddhartha Agrawal <agrawals@codeaurora.org>
parent 2abff001
Loading
Loading
Loading
Loading
+171 −0
Original line number Diff line number Diff line
/* Copyright (c) 2015, 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_nt35950_4k_cmd_0: qcom,mdss_dsi_nt35950_4k_cmd_0 {
		qcom,mdss-dsi-panel-name = "NT35950 4K dual 0 cmd mode dsi panel";
		qcom,mdss-dsi-panel-controller = <&mdss_dsi0>;
		qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
		qcom,mdss-dsi-panel-destination = "display_1";
		qcom,mdss-dsi-virtual-channel-id = <0>;
		qcom,mdss-dsi-stream = <0>;
		qcom,mdss-dsi-bpp = <24>;
		qcom,mdss-dsi-underflow-color = <0xff>;
		qcom,mdss-dsi-border-color = <0>;
		qcom,mdss-dsi-off-command = [05 01 00 00 0A 00 01 28
				05 01 00 00 96 00 01 10];
		qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
		qcom,mdss-dsi-h-sync-pulse = <1>;
		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-dma-trigger = "trigger_sw";
		qcom,mdss-dsi-mdp-trigger = "none";
		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-te-pin-select = <1>;
		qcom,mdss-dsi-wr-mem-start = <0x2c>;
		qcom,mdss-dsi-wr-mem-continue = <0x3c>;
		qcom,mdss-dsi-te-dcs-command = <1>;
		qcom,mdss-dsi-te-check-enable;
		qcom,mdss-dsi-te-using-te-pin;
		qcom,mdss-dsi-tx-eot-append;
		qcom,mdss-dsi-lp11-init;
		qcom,mdss-dsi-bl-min-level = <1>;
		qcom,mdss-dsi-bl-max-level = <4095>;
		qcom,mdss-brightness-max-level = <4095>;
		qcom,mdss-dsi-reset-sequence = <0 10>, <1 10>, <0 20>, <1 20>;
		qcom,mdss-pan-physical-width-dimension = <68>;
		qcom,mdss-pan-physical-height-dimension = <121>;
		qcom,dynamic-mode-switch-enabled;
		qcom,dynamic-mode-switch-type = "dynamic-resolution-switch-immediate";
		qcom,mdss-dsi-h-sync-skew = <0>;
		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-display-timings {
			1080p {
				qcom,mdss-dsi-panel-clockrate = <897040000>;
				qcom,mdss-dsi-timing-default;
				qcom,mdss-dsi-panel-width = <540>;
				qcom,mdss-dsi-panel-height = <1920>;
				qcom,mdss-dsi-h-back-porch = <8>;
				qcom,mdss-dsi-h-pulse-width = <8>;
				qcom,mdss-dsi-h-front-porch = <20>;
				qcom,mdss-dsi-v-back-porch = <8>;
				qcom,mdss-dsi-v-pulse-width = <8>;
				qcom,mdss-dsi-v-front-porch = <2390>;
				qcom,mdss-dsi-panel-framerate = <60>;
				qcom,mdss-dsi-panel-timings = [E6 38 26 00 68 66 32 3C 2C 03 04 00 ];
				qcom,mdss-dsi-t-clk-post = <0x02>;
				qcom,mdss-dsi-t-clk-pre = <0x2B>;
				qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 90 00
					39 01 00 00 00 00 06 F0 55 AA 52 08 07
					15 01 00 00 00 00 02 EF 01
					39 01 00 00 00 00 06 F0 55 AA 52 08 00
					15 01 00 00 00 00 02 B4 01
					39 01 00 00 00 00 10 BD 00 B4 0C 0C 00 01 68 09 09 01 0E 0C 0C 00 D5
					39 01 00 00 00 00 05 FF AA 55 A5 80
					15 01 00 00 00 00 02 6F 18
					15 01 00 00 00 00 02 F7 06
					15 01 00 00 00 00 02 58 01
					15 01 00 00 00 00 02 35 00
					39 01 00 00 00 00 03 44 00 00
					39 01 00 00 00 00 06 f0 55 aa 52 08 00
					15 01 00 00 00 00 02 C9 01
					05 01 00 00 96 00 01 11
					05 01 00 00 96 00 01 29];

				qcom,mdss-dsi-on-command-state = "dsi_lp_mode";

				qcom,mdss-dsi-timing-switch-command = [
					15 00 00 00 00 00 02 90 00
					15 01 00 00 00 00 02 58 01
					];
				qcom,mdss-dsi-timing-switch-command-state =
					"dsi_lp_mode";

				qcom,mdss-tear-check-sync-init-val = <3840>;
				qcom,mdss-tear-check-start-pos = <3840>;
				qcom,mdss-tear-check-rd-ptr-trigger-intr = <3841>;
			};

			4k {
				qcom,mdss-dsi-panel-width = <1080>;
				qcom,mdss-dsi-panel-height = <3840>;
				qcom,mdss-dsi-h-back-porch = <8>;
				qcom,mdss-dsi-h-pulse-width = <8>;
				qcom,mdss-dsi-h-front-porch = <8>;
				qcom,mdss-dsi-v-back-porch = <8>;
				qcom,mdss-dsi-v-pulse-width = <8>;
				qcom,mdss-dsi-v-front-porch = <8>;
				qcom,mdss-dsi-panel-framerate = <60>;
				qcom,mdss-dsi-panel-timings = [E6 38 26 00 68 66 32 3C 2C 03 04 00 ];
				qcom,mdss-dsi-t-clk-post = <0x02>;
				qcom,mdss-dsi-t-clk-pre = <0x2B>;
				qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 90 02
					39 01 00 00 00 00 06 F0 55 AA 52 08 07
					15 01 00 00 00 00 02 EF 01
					39 01 00 00 00 00 06 F0 55 AA 52 08 00
					15 01 00 00 00 00 02 B4 01
					39 01 00 00 00 00 10 BD 00 B4 0C 0C 00 01 68 09 09 01 0E 0C 0C 00 D5
					39 01 00 00 00 00 05 FF AA 55 A5 80
					15 01 00 00 00 00 02 6F 18
					15 01 00 00 00 00 02 F7 06
					15 01 00 00 00 00 02 35 00
					39 01 00 00 00 00 03 44 00 00
					39 01 00 00 00 00 06 f0 55 aa 52 08 00
					15 01 00 00 00 00 02 c9 01
					05 01 00 00 96 00 01 11
					05 01 00 00 96 00 01 29];
				qcom,mdss-dsi-on-command-state = "dsi_lp_mode";

				qcom,mdss-dsi-timing-switch-command = [
					15 00 00 00 00 00 02 90 02
					15 01 00 00 00 00 02 58 00
					];
				qcom,mdss-dsi-timing-switch-command-state =
					"dsi_lp_mode";

				qcom,mdss-dsi-fbc-enable;
				qcom,mdss-dsi-fbc-ver2-mode;
				qcom,mdss-dsi-fbc-bpp = <8>;
				qcom,mdss-dsi-fbc-packing = <1>;
				qcom,mdss-dsi-fbc-2d-pred-mode;
				qcom,mdss-dsi-fbc-slice-height = <4>;
				qcom,mdss-dsi-fbc-quant-error;
				qcom,mdss-dsi-fbc-bias = <2>;
				qcom,mdss-dsi-fbc-vlc-mode;
				qcom,mdss-dsi-fbc-bflc-mode;
				qcom,mdss-dsi-fbc-lossy-mode-idx = <3>;
				qcom,mdss-dsi-fbc-pat-mode;
				qcom,mdss-dsi-fbc-budget-ctrl = <5>;
				qcom,mdss-dsi-fbc-block-budget = <59>;
				qcom,mdss-dsi-fbc-h-line-budget = <675>;
				qcom,mdss-dsi-fbc-lossless-threshold = <0x200>;
				qcom,mdss-dsi-fbc-lossy-threshold = <192>;
				qcom,mdss-dsi-fbc-rgb-threshold = <4>;
				qcom,mdss-dsi-fbc-max-pred-err = <3>;
				qcom,mdss-dsi-panel-clockrate = <897040000>;

				qcom,mdss-tear-check-sync-init-val = <3840>;
				qcom,mdss-tear-check-start-pos = <3840>;
				qcom,mdss-tear-check-rd-ptr-trigger-intr = <3841>;
			};
		};
	};

};
+173 −0
Original line number Diff line number Diff line
/* Copyright (c) 2015, 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_nt35950_4k_cmd_1: qcom,mdss_dsi_nt35950_4k_cmd_1 {
		qcom,mdss-dsi-panel-name = "NT35950 4K dual 1 cmd mode dsi panel";
		qcom,mdss-dsi-panel-controller = <&mdss_dsi1>;
		qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
		qcom,mdss-dsi-panel-destination = "display_2";
		qcom,mdss-dsi-virtual-channel-id = <0>;
		qcom,mdss-dsi-stream = <0>;
		qcom,mdss-dsi-bpp = <24>;
		qcom,mdss-dsi-underflow-color = <0xff>;
		qcom,mdss-dsi-border-color = <0>;
		qcom,mdss-dsi-off-command = [05 01 00 00 0A 00 01 28
				05 01 00 00 96 00 01 10];
		qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
		qcom,mdss-dsi-h-sync-pulse = <1>;
		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-dma-trigger = "trigger_sw";
		qcom,mdss-dsi-mdp-trigger = "none";
		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-te-pin-select = <1>;
		qcom,mdss-dsi-wr-mem-start = <0x2c>;
		qcom,mdss-dsi-wr-mem-continue = <0x3c>;
		qcom,mdss-dsi-te-dcs-command = <1>;
		qcom,mdss-dsi-te-check-enable;
		qcom,mdss-dsi-te-using-te-pin;
		qcom,mdss-dsi-tx-eot-append;
		qcom,mdss-dsi-lp11-init;
		qcom,mdss-dsi-bl-min-level = <1>;
		qcom,mdss-dsi-bl-max-level = <4095>;
		qcom,mdss-brightness-max-level = <4095>;
		qcom,mdss-dsi-reset-sequence = <0 10>, <1 10>, <0 20>, <1 20>;
		qcom,mdss-pan-physical-width-dimension = <68>;
		qcom,mdss-pan-physical-height-dimension = <121>;
		qcom,dynamic-mode-switch-enabled;
		qcom,dynamic-mode-switch-type = "dynamic-resolution-switch-immediate";
		qcom,mdss-dsi-h-sync-skew = <0>;
		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-display-timings {
			1080p {
				qcom,mdss-dsi-panel-clockrate = <897040000>;
				qcom,mdss-dsi-timing-default;
				qcom,mdss-dsi-panel-width = <540>;
				qcom,mdss-dsi-panel-height = <1920>;

				qcom,mdss-dsi-h-back-porch = <8>;
				qcom,mdss-dsi-h-pulse-width = <8>;
				qcom,mdss-dsi-h-front-porch = <20>;
				qcom,mdss-dsi-v-back-porch = <8>;
				qcom,mdss-dsi-v-pulse-width = <8>;
				qcom,mdss-dsi-v-front-porch = <2390>;
				qcom,mdss-dsi-panel-framerate = <60>;
				qcom,mdss-dsi-panel-timings = [E6 38 26 00 68 66 32 3C 2C 03 04 00 ];
				qcom,mdss-dsi-t-clk-post = <0x02>;
				qcom,mdss-dsi-t-clk-pre = <0x2B>;
				qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 90 00
					39 01 00 00 00 00 06 F0 55 AA 52 08 07
					15 01 00 00 00 00 02 EF 01
					39 01 00 00 00 00 06 F0 55 AA 52 08 00
					15 01 00 00 00 00 02 B4 01
					39 01 00 00 00 00 10 BD 00 B4 0C 0C 00 01 68 09 09 01 0E 0C 0C 00 D5
					39 01 00 00 00 00 05 FF AA 55 A5 80
					15 01 00 00 00 00 02 6F 18
					15 01 00 00 00 00 02 F7 06
					15 01 00 00 00 00 02 58 01
					15 01 00 00 00 00 02 35 00
					39 01 00 00 00 00 03 44 00 00
					39 01 00 00 00 00 06 f0 55 aa 52 08 00
					15 01 00 00 00 00 02 C9 01
					05 01 00 00 96 00 01 11
					05 01 00 00 96 00 01 29];

				qcom,mdss-dsi-on-command-state = "dsi_lp_mode";

				qcom,mdss-dsi-timing-switch-command = [
					15 00 00 00 00 00 02 90 00
					15 01 00 00 00 00 02 58 01
					];
				qcom,mdss-dsi-timing-switch-command-state =
					"dsi_lp_mode";

				qcom,mdss-tear-check-sync-init-val = <3840>;
				qcom,mdss-tear-check-start-pos = <3840>;
				qcom,mdss-tear-check-rd-ptr-trigger-intr = <3841>;
			};

			4k {
				qcom,mdss-dsi-panel-width = <1080>;
				qcom,mdss-dsi-panel-height = <3840>;
				qcom,mdss-dsi-h-back-porch = <8>;
				qcom,mdss-dsi-h-pulse-width = <8>;
				qcom,mdss-dsi-h-front-porch = <8>;
				qcom,mdss-dsi-v-back-porch = <8>;
				qcom,mdss-dsi-v-pulse-width = <8>;
				qcom,mdss-dsi-v-front-porch = <8>;
				qcom,mdss-dsi-panel-framerate = <60>;
				qcom,mdss-dsi-panel-timings = [E6 38 26 00 68 66 32 3C 2C 03 04 00 ];
				qcom,mdss-dsi-t-clk-post = <0x02>;
				qcom,mdss-dsi-t-clk-pre = <0x2B>;
				qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 90 02
					39 01 00 00 00 00 06 F0 55 AA 52 08 07
					15 01 00 00 00 00 02 EF 01
					39 01 00 00 00 00 06 F0 55 AA 52 08 00
					15 01 00 00 00 00 02 B4 01
					39 01 00 00 00 00 10 BD 00 B4 0C 0C 00 01 68 09 09 01 0E 0C 0C 00 D5
					39 01 00 00 00 00 05 FF AA 55 A5 80
					15 01 00 00 00 00 02 6F 18
					15 01 00 00 00 00 02 F7 06
					15 01 00 00 00 00 02 35 00
					39 01 00 00 00 00 03 44 00 00
					39 01 00 00 00 00 06 f0 55 aa 52 08 00
					15 01 00 00 00 00 02 c9 01
					05 01 00 00 96 00 01 11
					05 01 00 00 96 00 01 29];
				qcom,mdss-dsi-on-command-state = "dsi_lp_mode";

				qcom,mdss-dsi-timing-switch-command = [
					15 00 00 00 00 00 02 90 02
					15 01 00 00 00 00 02 58 00
					];
				qcom,mdss-dsi-timing-switch-command-state =
					"dsi_lp_mode";

				qcom,mdss-dsi-fbc-enable;
				qcom,mdss-dsi-fbc-ver2-mode;
				qcom,mdss-dsi-fbc-bpp = <8>;
				qcom,mdss-dsi-fbc-packing = <1>;
				qcom,mdss-dsi-fbc-2d-pred-mode;
				qcom,mdss-dsi-fbc-slice-height = <4>;
				qcom,mdss-dsi-fbc-quant-error;
				qcom,mdss-dsi-fbc-bias = <2>;
				qcom,mdss-dsi-fbc-vlc-mode;
				qcom,mdss-dsi-fbc-bflc-mode;
				qcom,mdss-dsi-fbc-lossy-mode-idx = <3>;
				qcom,mdss-dsi-fbc-pat-mode;
				qcom,mdss-dsi-fbc-budget-ctrl = <5>;
				qcom,mdss-dsi-fbc-block-budget = <59>;
				qcom,mdss-dsi-fbc-h-line-budget = <675>;
				qcom,mdss-dsi-fbc-lossless-threshold = <0x200>;
				qcom,mdss-dsi-fbc-lossy-threshold = <192>;
				qcom,mdss-dsi-fbc-rgb-threshold = <4>;
				qcom,mdss-dsi-fbc-max-pred-err = <3>;
				qcom,mdss-dsi-panel-clockrate = <897040000>;

				qcom,mdss-tear-check-sync-init-val = <3840>;
				qcom,mdss-tear-check-start-pos = <3840>;
				qcom,mdss-tear-check-rd-ptr-trigger-intr = <3841>;
			};
		};

	};

};
+13 −0
Original line number Diff line number Diff line
@@ -291,6 +291,8 @@
#include "dsi-panel-jdi-dualmipi1-video.dtsi"
#include "dsi-panel-jdi-dualmipi0-cmd.dtsi"
#include "dsi-panel-jdi-dualmipi1-cmd.dtsi"
#include "dsi-panel-nt35950-4k-dualmipi0-cmd.dtsi"
#include "dsi-panel-nt35950-4k-dualmipi1-cmd.dtsi"
#include "dsi-panel-nt35597-wqxga-video.dtsi"
#include "dsi-panel-nt35597-wqxga-cmd.dtsi"
#include "dsi-panel-jdi-1080p-video.dtsi"
@@ -362,6 +364,17 @@
	qcom,mdss-dsi-min-refresh-rate = <30>;
};

&dsi_dual_nt35950_4k_cmd_0 {
	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,dcs-cmd-by-left;
};

&dsi_dual_nt35950_4k_cmd_1 {
	qcom,dcs-cmd-by-left;
};

&dsi_dual_jdi_video_0 {
	pwms = <&pmi8994_pwm_4 0 0>;
	pwm-names = "backlight";