Modify the lcd driver for rhode: 1.Modify settings related to LCD Swire pulse in kernel stage; 2.Modify the delay after kernel stage LCD sleep out; 3.Modify the LCD refresh rate in the kernel phase; Change-Id: I8d608ecba60ece709bb18f0dc40e111ad594e558 Signed-off-by: huaqin79 <huaqin79@motorola.com> Reviewed-on: https://gerrit.mot.com/2166797 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Hua Tan <tanhua1@motorola.com> Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com> Submit-Approved: Jira Key
375 lines
13 KiB
Devicetree
375 lines
13 KiB
Devicetree
/* Copyright (c) 2019-2020, 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 {
|
|
mot_csot_nt37701_655_1080x2400_dsc_cmd_v0: qcom,mdss_dsi_mot_csot_nt37701_655_1080x2400_dsc_cmd_v0 {
|
|
compatible = "qcom,mdss-dsi-panel";
|
|
qcom,mdss-dsi-panel-name = "mipi_mot_cmd_csot_1080p_dsc_655";
|
|
qcom,mdss-dsi-panel-supplier = "csot";
|
|
qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
|
|
qcom,mdss-dsi-virtual-channel-id = <0>;
|
|
qcom,mdss-dsi-stream = <0>;
|
|
qcom,mdss-pan-physical-width-dimension = <68>;
|
|
qcom,mdss-pan-physical-height-dimension = <152>;
|
|
qcom,mdss-dsi-bpp = <30>;
|
|
qcom,mdss-dsi-underflow-color = <0xff>;
|
|
qcom,mdss-dsi-border-color = <0>;
|
|
qcom,mdss-dsi-panel-param-verision = <121201>;
|
|
qcom,mdss-dsi-panel-param-num = <5>;
|
|
|
|
qcom,dsi-ctrl-num = <0>;
|
|
qcom,dsi-phy-num = <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-dma-trigger = "trigger_sw";
|
|
qcom,mdss-dsi-mdp-trigger = "none";
|
|
qcom,mdss-dsi-reset-sequence = <0 11>, <1 1>, <0 1>, <1 11>;
|
|
qcom,mdss-dsi-lp11-init;
|
|
qcom,mdss-dsi-tx-eot-append;
|
|
qcom,mdss-dsi-te-pin-select = <1>;
|
|
qcom,mdss-dsi-te-dcs-command = <1>;
|
|
|
|
qcom,mdss-dsi-te-using-te-pin;
|
|
|
|
qcom,bklt-dcs-2bytes-enabled;
|
|
qcom,mdss-dsi-bl-min-level = <3>;
|
|
qcom,mdss-dsi-bl-max-level = <4095>;
|
|
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
|
|
|
|
/*qcom,mdss-dsi-panel-hdr-enabled;
|
|
qcom,mdss-dsi-panel-hdr-color-primaries = <14500 15500 32000
|
|
17000 15500 30000 8000 3000>;
|
|
qcom,mdss-dsi-panel-peak-brightness = <4200000>;
|
|
|
|
qcom,mdss-dsi-panel-blackness-level = <3230>;*/
|
|
|
|
qcom,mdss-dsi-hbm-on-command = [
|
|
39 01 00 00 00 00 03 51 0F FF];
|
|
qcom,mdss-dsi-hbm-off-command = [
|
|
39 01 00 00 00 00 03 51 07 FF];
|
|
|
|
qcom,mdss-dsi-hbm-fod;
|
|
qcom,mdss-dsi-hbm-fod-on-command = [
|
|
39 01 00 00 00 00 03 51 0F FF];
|
|
|
|
//qcom,mdss-dsi-acl-on-command = [
|
|
// 39 01 00 00 00 00 06 F0 55 AA 52 08 00
|
|
// 15 00 00 00 00 00 02 B0 0C
|
|
// 15 01 00 00 00 00 02 55 05];
|
|
//qcom,mdss-dsi-acl-off-command = [
|
|
// 15 01 00 00 00 00 02 55 00];
|
|
|
|
qcom,mdss-dsi-dc-off-command = [
|
|
39 00 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 00 00 00 00 00 02 B2 18
|
|
15 00 00 00 00 00 02 6F 0F
|
|
39 00 00 00 00 00 09 B2 60 50 65 E9 85 E9 2F FF
|
|
39 00 00 00 00 00 0D B3 00 01 01 59 01 59 02 1A 02 1A 03 0A
|
|
15 00 00 00 00 00 02 6F 0C
|
|
39 00 00 00 00 00 0D B3 03 0A 04 00 04 00 05 E9 05 E9 05 EA
|
|
15 00 00 00 00 00 02 6F 18
|
|
39 00 00 00 00 00 0D B3 05 EA 09 08 09 08 0D BB 0D BB 0F FF
|
|
15 01 00 00 00 00 02 58 00];
|
|
qcom,mdss-dsi-dc-off-command-state = "dsi_lp_mode";
|
|
|
|
qcom,mdss-dsi-dc-on-command = [
|
|
39 00 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 00 00 00 00 00 02 B2 98
|
|
15 00 00 00 00 00 02 6F 0F
|
|
39 00 00 00 00 00 09 B2 60 50 60 00 80 00 2F FF
|
|
39 00 00 00 00 00 0D B3 00 00 00 00 00 00 00 00 00 00 00 00
|
|
15 00 00 00 00 00 02 6F 0C
|
|
39 00 00 00 00 00 0D B3 00 00 00 00 00 00 00 00 00 00 00 00
|
|
15 00 00 00 00 00 02 6F 18
|
|
39 00 00 00 00 00 0D B3 05 EA 09 08 09 08 0D BB 0D BB 0F FF
|
|
15 01 00 00 00 00 02 58 01];
|
|
qcom,mdss-dsi-dc-on-command-state = "dsi_lp_mode";
|
|
|
|
qcom,mdss-dsi-display-timings {
|
|
timing@0{
|
|
qcom,mdss-dsi-cmd-mode;
|
|
qcom,mdss-dsi-panel-framerate = <48>;
|
|
qcom,mdss-dsi-panel-width = <1080>;
|
|
qcom,mdss-dsi-panel-height = <2400>;
|
|
qcom,mdss-dsi-h-front-porch = <32>;
|
|
qcom,mdss-dsi-h-back-porch = <32>;
|
|
qcom,mdss-dsi-h-pulse-width = <16>;
|
|
qcom,mdss-dsi-h-sync-skew = <0>;
|
|
qcom,mdss-dsi-h-sync-pulse = <0>;
|
|
qcom,mdss-dsi-v-back-porch = <4>;
|
|
qcom,mdss-dsi-v-front-porch = <12>;
|
|
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-panel-jitter = <0x20 0xa>; /* 90fps +/- 2 */
|
|
qcom,mdss-dsi-timing-switch-command = [
|
|
15 01 00 00 14 00 02 2F 08 //08:49Hz 03:60Hz 07:90Hz 02:120Hz 04:144Hz
|
|
];
|
|
|
|
qcom,mdss-dsi-on-command = [
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 01 00 00 00 00 02 6F 06
|
|
39 01 00 00 00 00 04 B5 4B 22 4F //swire pulse
|
|
|
|
39 00 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 00 00 00 00 00 02 B2 18
|
|
15 00 00 00 00 00 02 6F 0F
|
|
39 00 00 00 00 00 09 B2 60 50 65 E9 85 E9 2F FF
|
|
39 00 00 00 00 00 0D B3 00 01 01 59 01 59 02 1A 02 1A 03 0A
|
|
15 00 00 00 00 00 02 6F 0C
|
|
39 00 00 00 00 00 0D B3 03 0A 04 00 04 00 05 E9 05 E9 05 EA
|
|
15 00 00 00 00 00 02 6F 18
|
|
39 00 00 00 00 00 0D B3 05 EA 09 08 09 08 0D BB 0D BB 0F FF
|
|
15 01 00 00 00 00 02 58 00 //DC code
|
|
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 01 00 00 00 00 02 6F 1C
|
|
39 01 00 00 00 00 06 C0 03 14 25 A9 78
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 04
|
|
15 01 00 00 00 00 02 CB 06
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 01
|
|
39 01 00 00 00 00 03 CD 05 71
|
|
|
|
39 01 00 00 00 00 05 FF AA 55 A5 80
|
|
15 01 00 00 00 00 02 6F 1D
|
|
15 01 00 00 00 00 02 F2 05 //Corner&Hole page0
|
|
|
|
39 01 00 00 00 00 05 3B 00 10 00 20
|
|
|
|
15 01 00 00 00 00 02 03 01
|
|
15 01 00 00 00 00 02 90 01
|
|
39 01 00 00 00 00 13 91 AB 28 00 0C C2 00 03 1C 01 7E 00 0F 08 BB 04 3D 10 F0
|
|
15 01 00 00 00 00 02 2C 00 //dsc config 10bit
|
|
|
|
39 01 00 00 00 00 03 51 00 00
|
|
15 01 00 00 00 00 02 53 20
|
|
15 01 00 00 00 00 02 35 00 //te enable
|
|
|
|
39 01 00 00 00 00 05 2A 00 00 04 37
|
|
39 01 00 00 00 00 05 2B 00 00 09 5F
|
|
|
|
15 01 00 00 00 00 02 2F 08 //08:49Hz 03:60Hz 07:90Hz 02:120Hz 04:144Hz
|
|
|
|
05 01 00 00 78 00 01 11
|
|
05 01 00 00 00 00 01 29]; /* display on */
|
|
qcom,mdss-dsi-off-command = [
|
|
05 01 00 00 00 00 01 28 /* display_off */
|
|
05 01 00 00 78 00 01 10]; /* enter sleep mode */
|
|
|
|
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
|
|
qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
|
|
qcom,mdss-dsi-timing-switch-command-state =
|
|
"dsi_lp_mode";
|
|
qcom,compression-mode = "dsc";
|
|
/* Why QCOM doesn't use this, even it used 2 encoder
|
|
* as for that dsi_sw43404_amoled_cmd, for ex */
|
|
/* qcom,mdss-dsc-encoders = <2>; */
|
|
qcom,mdss-dsc-version = <0x11>;
|
|
qcom,mdss-dsc-slice-height = <12>;
|
|
qcom,mdss-dsc-slice-width = <1080>;
|
|
qcom,mdss-dsc-slice-per-pkt = <1>;
|
|
qcom,mdss-dsc-bit-per-component = <8>;
|
|
qcom,mdss-dsc-bit-per-pixel = <8>;
|
|
qcom,mdss-dsc-block-prediction-enable;
|
|
};
|
|
timing@1{
|
|
qcom,mdss-dsi-cmd-mode;
|
|
qcom,mdss-dsi-panel-framerate = <60>;
|
|
qcom,mdss-dsi-panel-width = <1080>;
|
|
qcom,mdss-dsi-panel-height = <2400>;
|
|
qcom,mdss-dsi-h-front-porch = <32>;
|
|
qcom,mdss-dsi-h-back-porch = <32>;
|
|
qcom,mdss-dsi-h-pulse-width = <16>;
|
|
qcom,mdss-dsi-h-sync-skew = <0>;
|
|
qcom,mdss-dsi-h-sync-pulse = <0>;
|
|
qcom,mdss-dsi-v-back-porch = <4>;
|
|
qcom,mdss-dsi-v-front-porch = <12>;
|
|
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-panel-jitter = <0x20 0xa>; /* 90fps +/- 2 */
|
|
qcom,mdss-dsi-timing-switch-command = [
|
|
15 01 00 00 10 00 02 2F 03 //08:49Hz 03:60Hz 07:90Hz 02:120Hz 04:144Hz
|
|
];
|
|
|
|
qcom,mdss-dsi-on-command = [
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 01 00 00 00 00 02 6F 06
|
|
39 01 00 00 00 00 04 B5 4B 22 4F //swire pulse
|
|
|
|
39 00 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 00 00 00 00 00 02 B2 18
|
|
15 00 00 00 00 00 02 6F 0F
|
|
39 00 00 00 00 00 09 B2 60 50 65 E9 85 E9 2F FF
|
|
39 00 00 00 00 00 0D B3 00 01 01 59 01 59 02 1A 02 1A 03 0A
|
|
15 00 00 00 00 00 02 6F 0C
|
|
39 00 00 00 00 00 0D B3 03 0A 04 00 04 00 05 E9 05 E9 05 EA
|
|
15 00 00 00 00 00 02 6F 18
|
|
39 00 00 00 00 00 0D B3 05 EA 09 08 09 08 0D BB 0D BB 0F FF
|
|
15 01 00 00 00 00 02 58 00 //DC code
|
|
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 01 00 00 00 00 02 6F 1C
|
|
39 01 00 00 00 00 06 C0 03 14 25 A9 78
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 04
|
|
15 01 00 00 00 00 02 CB 06
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 01
|
|
39 01 00 00 00 00 03 CD 05 71
|
|
|
|
39 01 00 00 00 00 05 FF AA 55 A5 80
|
|
15 01 00 00 00 00 02 6F 1D
|
|
15 01 00 00 00 00 02 F2 05 //Corner&Hole page0
|
|
|
|
39 01 00 00 00 00 05 3B 00 10 00 20
|
|
|
|
|
|
15 01 00 00 00 00 02 03 01
|
|
15 01 00 00 00 00 02 90 01
|
|
39 01 00 00 00 00 13 91 AB 28 00 0C C2 00 03 1C 01 7E 00 0F 08 BB 04 3D 10 F0
|
|
15 01 00 00 00 00 02 2C 00 //dsc config 10bit
|
|
|
|
39 01 00 00 00 00 03 51 00 00
|
|
15 01 00 00 00 00 02 53 20
|
|
15 01 00 00 00 00 02 35 00 //te enable
|
|
|
|
39 01 00 00 00 00 05 2A 00 00 04 37
|
|
39 01 00 00 00 00 05 2B 00 00 09 5F
|
|
|
|
15 01 00 00 00 00 02 2F 03 //08:49Hz 03:60Hz 07:90Hz 02:120Hz 04:144Hz
|
|
|
|
05 01 00 00 78 00 01 11
|
|
05 01 00 00 00 00 01 29]; /* display on */
|
|
qcom,mdss-dsi-off-command = [
|
|
05 01 00 00 00 00 01 28 /* display_off */
|
|
05 01 00 00 78 00 01 10]; /* enter sleep mode */
|
|
|
|
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
|
|
qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
|
|
qcom,mdss-dsi-timing-switch-command-state =
|
|
"dsi_lp_mode";
|
|
qcom,compression-mode = "dsc";
|
|
/* Why QCOM doesn't use this, even it used 2 encoder
|
|
* as for that dsi_sw43404_amoled_cmd, for ex */
|
|
/* qcom,mdss-dsc-encoders = <2>; */
|
|
qcom,mdss-dsc-version = <0x11>;
|
|
qcom,mdss-dsc-slice-height = <12>;
|
|
qcom,mdss-dsc-slice-width = <1080>;
|
|
qcom,mdss-dsc-slice-per-pkt = <1>;
|
|
qcom,mdss-dsc-bit-per-component = <8>;
|
|
qcom,mdss-dsc-bit-per-pixel = <8>;
|
|
qcom,mdss-dsc-block-prediction-enable;
|
|
};
|
|
timing@2{
|
|
qcom,mdss-dsi-cmd-mode;
|
|
qcom,mdss-dsi-panel-framerate = <90>;
|
|
qcom,mdss-dsi-panel-width = <1080>;
|
|
qcom,mdss-dsi-panel-height = <2400>;
|
|
qcom,mdss-dsi-h-front-porch = <32>;
|
|
qcom,mdss-dsi-h-back-porch = <32>;
|
|
qcom,mdss-dsi-h-pulse-width = <16>;
|
|
qcom,mdss-dsi-h-sync-skew = <0>;
|
|
qcom,mdss-dsi-h-sync-pulse = <0>;
|
|
qcom,mdss-dsi-v-back-porch = <4>;
|
|
qcom,mdss-dsi-v-front-porch = <12>;
|
|
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-panel-jitter = <0x20 0xa>; /* 90fps +/- 2 */
|
|
qcom,mdss-dsi-timing-switch-command = [
|
|
15 01 00 00 0b 00 02 2F 07 //08:49Hz 03:60Hz 07:90Hz 02:120Hz 04:144Hz
|
|
];
|
|
|
|
qcom,mdss-dsi-on-command = [
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 01 00 00 00 00 02 6F 06
|
|
39 01 00 00 00 00 04 B5 4B 22 4F //swire pulse
|
|
|
|
39 00 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 00 00 00 00 00 02 B2 18
|
|
15 00 00 00 00 00 02 6F 0F
|
|
39 00 00 00 00 00 09 B2 60 50 65 E9 85 E9 2F FF
|
|
39 00 00 00 00 00 0D B3 00 01 01 59 01 59 02 1A 02 1A 03 0A
|
|
15 00 00 00 00 00 02 6F 0C
|
|
39 00 00 00 00 00 0D B3 03 0A 04 00 04 00 05 E9 05 E9 05 EA
|
|
15 00 00 00 00 00 02 6F 18
|
|
39 00 00 00 00 00 0D B3 05 EA 09 08 09 08 0D BB 0D BB 0F FF
|
|
15 01 00 00 00 00 02 58 00 //DC code
|
|
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 00
|
|
15 01 00 00 00 00 02 6F 1C
|
|
39 01 00 00 00 00 06 C0 03 14 25 A9 78
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 04
|
|
15 01 00 00 00 00 02 CB 06
|
|
39 01 00 00 00 00 06 F0 55 AA 52 08 01
|
|
39 01 00 00 00 00 03 CD 05 71
|
|
|
|
39 01 00 00 00 00 05 FF AA 55 A5 80
|
|
15 01 00 00 00 00 02 6F 1D
|
|
15 01 00 00 00 00 02 F2 05 //Corner&Hole page0
|
|
|
|
39 01 00 00 00 00 05 3B 00 10 00 20
|
|
|
|
15 01 00 00 00 00 02 03 01
|
|
15 01 00 00 00 00 02 90 01
|
|
39 01 00 00 00 00 13 91 AB 28 00 0C C2 00 03 1C 01 7E 00 0F 08 BB 04 3D 10 F0
|
|
15 01 00 00 00 00 02 2C 00 //dsc config 10bit
|
|
|
|
39 01 00 00 00 00 03 51 00 00
|
|
15 01 00 00 00 00 02 53 20
|
|
15 01 00 00 00 00 02 35 00 //te enable
|
|
|
|
39 01 00 00 00 00 05 2A 00 00 04 37
|
|
39 01 00 00 00 00 05 2B 00 00 09 5F
|
|
|
|
15 01 00 00 00 00 02 2F 07 //08:49Hz 03:60Hz 07:90Hz 02:120Hz 04:144Hz
|
|
|
|
05 01 00 00 78 00 01 11
|
|
05 01 00 00 00 00 01 29]; /* display on */
|
|
qcom,mdss-dsi-off-command = [
|
|
05 01 00 00 00 00 01 28 /* display_off */
|
|
05 01 00 00 78 00 01 10]; /* enter sleep mode */
|
|
|
|
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
|
|
qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
|
|
qcom,mdss-dsi-timing-switch-command-state =
|
|
"dsi_lp_mode";
|
|
qcom,compression-mode = "dsc";
|
|
/* Why QCOM doesn't use this, even it used 2 encoder
|
|
* as for that dsi_sw43404_amoled_cmd, for ex */
|
|
/* qcom,mdss-dsc-encoders = <2>; */
|
|
qcom,mdss-dsc-version = <0x11>;
|
|
qcom,mdss-dsc-slice-height = <12>;
|
|
qcom,mdss-dsc-slice-width = <1080>;
|
|
qcom,mdss-dsc-slice-per-pkt = <1>;
|
|
qcom,mdss-dsc-bit-per-component = <8>;
|
|
qcom,mdss-dsc-bit-per-pixel = <8>;
|
|
qcom,mdss-dsc-block-prediction-enable;
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|