From eb43ccdf8aec07e4a52cb57d78db69fbe0da4282 Mon Sep 17 00:00:00 2001 From: houdz1 Date: Wed, 17 Nov 2021 16:38:32 +0800 Subject: [PATCH] Rhodep: dts/panel: add csot panel Rhodep: csot + nt37701 + dsc + 10bits Change-Id: Ia2485132ec71d694872ba3f06f6cc51e7d0eafca Signed-off-by: houdz1 Reviewed-on: https://gerrit.mot.com/2119028 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Yeqing Wang Reviewed-by: Huosheng Liao Submit-Approved: Jira Key --- ...-nt37701-655-1080x2400-dsc-cmd-common.dtsi | 506 ++++++++++++++++++ 1 file changed, 506 insertions(+) create mode 100644 qcom/dsi-panel-mot-csot-nt37701-655-1080x2400-dsc-cmd-common.dtsi diff --git a/qcom/dsi-panel-mot-csot-nt37701-655-1080x2400-dsc-cmd-common.dtsi b/qcom/dsi-panel-mot-csot-nt37701-655-1080x2400-dsc-cmd-common.dtsi new file mode 100644 index 000000000000..16b0e576f2e1 --- /dev/null +++ b/qcom/dsi-panel-mot-csot-nt37701-655-1080x2400-dsc-cmd-common.dtsi @@ -0,0 +1,506 @@ +/* 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 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 15 27 38 49 00 + 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 3B 00 1A 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 C8 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 = <10>; + 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 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 15 27 38 49 00 + 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 3B 00 1A 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 6e 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 = <10>; + 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 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 15 27 38 49 00 + 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 3B 00 1A 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 56 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 = <10>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + timing@3{ + qcom,mdss-dsi-cmd-mode; + qcom,mdss-dsi-panel-framerate = <120>; + 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 08 00 02 2F 02 //08:49Hz 03:60Hz 07:90Hz 02:120Hz 04:144Hz + ]; + + qcom,mdss-dsi-on-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 //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 15 27 38 49 00 + 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 3B 00 1A 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 02 //08:49Hz 03:60Hz 07:90Hz 02:120Hz 04:144Hz + + 05 01 00 00 56 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 = <10>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + timing@4{ + qcom,mdss-dsi-cmd-mode; + qcom,mdss-dsi-panel-framerate = <144>; + 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 06 00 02 2F 04 //08:49Hz 03:60Hz 07:90Hz 02:120Hz 04:144Hz + ]; + + qcom,mdss-dsi-on-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 //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 15 27 38 49 00 + 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 3B 00 1A 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 04 //08:49Hz 03:60Hz 07:90Hz 02:120Hz 04:144Hz + + 05 01 00 00 56 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 = <10>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + }; + }; +};