From 58aab5f1ceb3d184298a7dfda35d7d15e214307e Mon Sep 17 00:00:00 2001 From: Yuan Zhao Date: Thu, 28 Jan 2021 11:58:47 +0800 Subject: [PATCH] ARM: dts: msm: add some more display modes for yupik qrd Add 144hz video, 120hz cmd, and video modes for qrd device. And also enable 120hz cmd dynamic fps switch, 144hz, and 120hz video dfps feature. Change-Id: I5a2e896cf0ad9c3ce8bfd8f4de421385ae98c15e --- ...el-r66451-dsc-fhd-plus-120hz-cmd-cphy.dtsi | 383 ++++++++++++++++++ ...-r66451-dsc-fhd-plus-120hz-video-cphy.dtsi | 121 ++++++ ...el-r66451-dsc-fhd-plus-144hz-cmd-cphy.dtsi | 1 - ...-r66451-dsc-fhd-plus-144hz-video-cphy.dtsi | 123 ++++++ ...nel-r66451-dsc-fhd-plus-90hz-cmd-cphy.dtsi | 1 - display/yupik-sde-display-common.dtsi | 61 +++ display/yupik-sde-display-qrd.dtsi | 30 ++ display/yupik-sde-display.dtsi | 27 ++ 8 files changed, 745 insertions(+), 2 deletions(-) create mode 100644 display/dsi-panel-r66451-dsc-fhd-plus-120hz-cmd-cphy.dtsi create mode 100644 display/dsi-panel-r66451-dsc-fhd-plus-120hz-video-cphy.dtsi create mode 100644 display/dsi-panel-r66451-dsc-fhd-plus-144hz-video-cphy.dtsi diff --git a/display/dsi-panel-r66451-dsc-fhd-plus-120hz-cmd-cphy.dtsi b/display/dsi-panel-r66451-dsc-fhd-plus-120hz-cmd-cphy.dtsi new file mode 100644 index 000000000000..ba037bc6840b --- /dev/null +++ b/display/dsi-panel-r66451-dsc-fhd-plus-120hz-cmd-cphy.dtsi @@ -0,0 +1,383 @@ +&mdss_mdp { + dsi_r66451_amoled_120hz_cmd_cphy: qcom,mdss_dsi_r66451_fhd_plus_120hz_cphy_cmd { + qcom,mdss-dsi-panel-name = + "r66451 amoled cmd mode dsi visionox panel with DSC"; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-physical-type = "oled"; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-border-color = <0>; + + qcom,dsi-ctrl-num = <0>; + qcom,dsi-phy-num = <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-lane-2-state; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,mdss-dsi-tx-eot-append; + qcom,mdss-dsi-rx-eot-ignore; + + 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,panel-cphy-mode; + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <2340>; + qcom,mdss-dsi-h-front-porch = <96>; + qcom,mdss-dsi-h-back-porch = <40>; + qcom,mdss-dsi-h-pulse-width = <32>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <25>; + qcom,mdss-dsi-v-pulse-width = <1>; + 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 = <0x4 0x1>; + + qcom,mdss-dsi-timing-switch-command = [ + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 1a c2 09 24 0c 00 00 + 0c 09 3c 00 09 3c 00 00 00 00 00 00 + 00 00 00 00 00 30 00 6c + ]; + + qcom,mdss-dsi-on-command = [ + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 0c c2 09 24 0c 00 00 + 0c 00 00 00 09 3c + 39 01 00 00 00 00 1a d7 00 b9 3c 00 40 + 04 00 a0 0a 00 40 00 00 00 00 00 00 + 19 3c 00 40 04 00 a0 0a + 39 01 00 00 00 00 02 b0 80 + 39 01 00 00 00 00 14 de 40 00 18 00 18 + 00 18 00 18 10 00 18 00 18 00 18 02 + 00 00 + 39 01 00 00 00 00 02 b0 04 + 39 01 00 00 00 00 03 e8 00 02 + 39 01 00 00 00 00 03 e4 00 08 + 39 01 00 00 00 00 03 b4 20 1c + 39 01 00 00 00 00 0d b6 6c 00 06 23 af + 13 1a 05 04 fa 05 20 + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 32 c4 00 00 00 00 00 + 00 00 00 10 00 00 02 00 00 00 29 00 + 01 00 00 00 00 00 00 00 00 00 00 00 + 22 00 00 00 00 11 00 00 0c 00 00 00 + 00 30 00 00 00 00 00 00 + 39 01 00 00 00 00 86 cf 64 0b 00 22 00 + cd 03 33 04 00 0b 77 01 01 01 02 02 + 03 03 04 04 04 04 05 00 00 00 3b 00 + 3b 01 64 01 64 01 64 01 64 01 64 01 + 64 03 ff 03 ff 03 ff 00 00 00 3b 00 + 3b 01 64 01 64 01 64 01 64 01 64 01 + 64 03 ff 03 ff 03 ff 01 62 01 62 01 + 62 01 62 01 62 01 62 01 62 01 62 01 + 62 01 62 01 62 01 62 19 19 19 19 19 + 19 19 19 19 19 19 19 00 00 00 43 00 + 43 01 98 01 98 06 61 06 61 0f f6 0f + f6 0f f6 0f f6 0f f6 19 + 39 01 00 00 00 00 09 d1 05 00 21 02 24 + 19 24 2d + 39 01 00 00 00 00 15 d3 49 00 00 01 1a + 15 00 15 07 0f 77 77 77 37 b2 11 00 + a0 3c 9a + 39 01 00 00 00 00 1a d7 00 b9 34 00 40 + 04 00 f0 0f 00 40 00 00 00 00 00 00 + 19 34 00 40 04 00 f0 0f + 39 01 00 00 00 00 34 d8 00 00 00 00 00 + 00 00 00 00 3a 00 3a 00 3a 00 3a 00 + 3a 05 00 00 00 00 00 00 00 00 00 0f + 00 0f 00 00 00 00 00 00 00 00 00 00 + 00 00 00 0f 00 2f 00 0f 00 20 + 39 01 00 00 00 00 2b df 50 42 58 81 2d + 00 00 00 00 00 00 6b 00 00 00 00 00 + 00 00 00 01 0f ff d4 0e 00 00 00 00 + 00 00 0f 53 18 00 0f 00 00 00 00 00 + 00 + 39 01 00 00 00 00 03 eb 8b 8b + 39 01 00 00 00 00 02 f7 01 + 39 01 00 00 00 00 02 b0 80 + 39 01 00 00 00 00 0a e4 34 b4 00 00 00 + 30 04 0c e2 + 39 01 00 00 00 00 02 e6 00 + 39 01 00 00 00 00 02 b0 04 + 39 01 00 00 00 00 03 df 50 40 + 39 01 00 00 00 00 06 f3 50 00 00 00 00 + 39 01 00 00 00 00 02 f2 11 + 39 01 00 00 00 00 06 f3 01 00 00 00 01 + 39 01 00 00 00 00 03 f4 00 02 + 39 01 00 00 00 00 02 f2 19 + 39 01 00 00 00 00 03 df 50 42 + 39 01 00 00 00 00 02 35 00 + 39 01 00 00 00 00 05 2a 00 00 04 37 + 39 01 00 00 00 00 05 2b 00 00 09 23 + 05 01 00 00 78 00 01 11 + 05 01 00 00 00 00 01 29 + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 1a c2 09 24 0c 00 00 + 0c 09 3c 00 09 3c 00 00 00 00 00 00 + 00 00 00 00 00 30 00 6c + ]; + + 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-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,compression-mode = "dsc"; + qcom,mdss-dsc-slice-height = <20>; + qcom,mdss-dsc-slice-width = <540>; + qcom,mdss-dsc-slice-per-pkt = <2>; + 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-panel-framerate = <90>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <2340>; + qcom,mdss-dsi-h-front-porch = <96>; + qcom,mdss-dsi-h-back-porch = <40>; + qcom,mdss-dsi-h-pulse-width = <32>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <25>; + qcom,mdss-dsi-v-pulse-width = <1>; + 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 = <0x4 0x1>; + + qcom,mdss-dsi-timing-switch-command = [ + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 1a c2 09 24 0c 00 00 + 0c 03 14 00 09 3c 00 00 00 00 00 00 + 00 00 00 00 00 30 00 6c + ]; + + qcom,mdss-dsi-on-command = [ + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 0c c2 09 24 0c 00 00 + 0c 00 00 00 09 3c + 39 01 00 00 00 00 1a d7 00 b9 3c 00 40 + 04 00 a0 0a 00 40 00 00 00 00 00 00 + 19 3c 00 40 04 00 a0 0a + 39 01 00 00 00 00 02 b0 80 + 39 01 00 00 00 00 14 de 40 00 18 00 18 + 00 18 00 18 10 00 18 00 18 00 18 02 + 00 00 + 39 01 00 00 00 00 02 b0 04 + 39 01 00 00 00 00 03 e8 00 02 + 39 01 00 00 00 00 03 e4 00 08 + 39 01 00 00 00 00 03 b4 20 1c + 39 01 00 00 00 00 0d b6 6c 00 06 23 af + 13 1a 05 04 fa 05 20 + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 32 c4 00 00 00 00 00 + 00 00 00 10 00 00 02 00 00 00 29 00 + 01 00 00 00 00 00 00 00 00 00 00 00 + 22 00 00 00 00 11 00 00 0c 00 00 00 + 00 30 00 00 00 00 00 00 + 39 01 00 00 00 00 86 cf 64 0b 00 22 00 + cd 03 33 04 00 0b 77 01 01 01 02 02 + 03 03 04 04 04 04 05 00 00 00 3b 00 + 3b 01 64 01 64 01 64 01 64 01 64 01 + 64 03 ff 03 ff 03 ff 00 00 00 3b 00 + 3b 01 64 01 64 01 64 01 64 01 64 01 + 64 03 ff 03 ff 03 ff 01 62 01 62 01 + 62 01 62 01 62 01 62 01 62 01 62 01 + 62 01 62 01 62 01 62 19 19 19 19 19 + 19 19 19 19 19 19 19 00 00 00 43 00 + 43 01 98 01 98 06 61 06 61 0f f6 0f + f6 0f f6 0f f6 0f f6 19 + 39 01 00 00 00 00 09 d1 05 00 21 02 24 + 19 24 2d + 39 01 00 00 00 00 15 d3 49 00 00 01 1a + 15 00 15 07 0f 77 77 77 37 b2 11 00 + a0 3c 9a + 39 01 00 00 00 00 1a d7 00 b9 34 00 40 + 04 00 f0 0f 00 40 00 00 00 00 00 00 + 19 34 00 40 04 00 f0 0f + 39 01 00 00 00 00 34 d8 00 00 00 00 00 + 00 00 00 00 3a 00 3a 00 3a 00 3a 00 + 3a 05 00 00 00 00 00 00 00 00 00 0f + 00 0f 00 00 00 00 00 00 00 00 00 00 + 00 00 00 0f 00 2f 00 0f 00 20 + 39 01 00 00 00 00 2b df 50 42 58 81 2d + 00 00 00 00 00 00 6b 00 00 00 00 00 + 00 00 00 01 0f ff d4 0e 00 00 00 00 + 00 00 0f 53 18 00 0f 00 00 00 00 00 + 00 + 39 01 00 00 00 00 03 eb 8b 8b + 39 01 00 00 00 00 02 f7 01 + 39 01 00 00 00 00 02 b0 80 + 39 01 00 00 00 00 0a e4 34 b4 00 00 00 + 30 04 0c e2 + 39 01 00 00 00 00 02 e6 00 + 39 01 00 00 00 00 02 b0 04 + 39 01 00 00 00 00 03 df 50 40 + 39 01 00 00 00 00 06 f3 50 00 00 00 00 + 39 01 00 00 00 00 02 f2 11 + 39 01 00 00 00 00 06 f3 01 00 00 00 01 + 39 01 00 00 00 00 03 f4 00 02 + 39 01 00 00 00 00 02 f2 19 + 39 01 00 00 00 00 03 df 50 42 + 39 01 00 00 00 00 02 35 00 + 39 01 00 00 00 00 05 2a 00 00 04 37 + 39 01 00 00 00 00 05 2b 00 00 09 23 + 05 01 00 00 78 00 01 11 + 05 01 00 00 00 00 01 29 + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 1a c2 09 24 0c 00 00 + 0c 03 14 00 09 3c 00 00 00 00 00 00 + 00 00 00 00 00 30 00 6c + ]; + + 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-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,compression-mode = "dsc"; + qcom,mdss-dsc-slice-height = <20>; + qcom,mdss-dsc-slice-width = <540>; + qcom,mdss-dsc-slice-per-pkt = <2>; + 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-panel-framerate = <120>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <2340>; + qcom,mdss-dsi-h-front-porch = <96>; + qcom,mdss-dsi-h-back-porch = <40>; + qcom,mdss-dsi-h-pulse-width = <32>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <25>; + qcom,mdss-dsi-v-pulse-width = <1>; + 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 = <0x4 0x1>; + + qcom,mdss-dsi-timing-switch-command = [ + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 1a c2 09 24 0c 00 00 + 0c 00 00 00 09 3c 00 00 00 00 00 00 + 00 00 00 00 00 30 00 6c + ]; + + qcom,mdss-dsi-on-command = [ + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 0c c2 09 24 0c 00 00 + 0c 00 00 00 09 3c + 39 01 00 00 00 00 1a d7 00 b9 3c 00 40 + 04 00 a0 0a 00 40 00 00 00 00 00 00 + 19 3c 00 40 04 00 a0 0a + 39 01 00 00 00 00 02 b0 80 + 39 01 00 00 00 00 14 de 40 00 18 00 18 + 00 18 00 18 10 00 18 00 18 00 18 02 + 00 00 + 39 01 00 00 00 00 02 b0 04 + 39 01 00 00 00 00 03 e8 00 02 + 39 01 00 00 00 00 03 e4 00 08 + 39 01 00 00 00 00 03 b4 20 1c + 39 01 00 00 00 00 0d b6 6c 00 06 23 af + 13 1a 05 04 fa 05 20 + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 32 c4 00 00 00 00 00 + 00 00 00 10 00 00 02 00 00 00 29 00 + 01 00 00 00 00 00 00 00 00 00 00 00 + 22 00 00 00 00 11 00 00 0c 00 00 00 + 00 30 00 00 00 00 00 00 + 39 01 00 00 00 00 86 cf 64 0b 00 22 00 + cd 03 33 04 00 0b 77 01 01 01 02 02 + 03 03 04 04 04 04 05 00 00 00 3b 00 + 3b 01 64 01 64 01 64 01 64 01 64 01 + 64 03 ff 03 ff 03 ff 00 00 00 3b 00 + 3b 01 64 01 64 01 64 01 64 01 64 01 + 64 03 ff 03 ff 03 ff 01 62 01 62 01 + 62 01 62 01 62 01 62 01 62 01 62 01 + 62 01 62 01 62 01 62 19 19 19 19 19 + 19 19 19 19 19 19 19 00 00 00 43 00 + 43 01 98 01 98 06 61 06 61 0f f6 0f + f6 0f f6 0f f6 0f f6 19 + 39 01 00 00 00 00 09 d1 05 00 21 02 24 + 19 24 2d + 39 01 00 00 00 00 15 d3 49 00 00 01 1a + 15 00 15 07 0f 77 77 77 37 b2 11 00 + a0 3c 9a + 39 01 00 00 00 00 1a d7 00 b9 34 00 40 + 04 00 f0 0f 00 40 00 00 00 00 00 00 + 19 34 00 40 04 00 f0 0f + 39 01 00 00 00 00 34 d8 00 00 00 00 00 + 00 00 00 00 3a 00 3a 00 3a 00 3a 00 + 3a 05 00 00 00 00 00 00 00 00 00 0f + 00 0f 00 00 00 00 00 00 00 00 00 00 + 00 00 00 0f 00 2f 00 0f 00 20 + 39 01 00 00 00 00 2b df 50 42 58 81 2d + 00 00 00 00 00 00 6b 00 00 00 00 00 + 00 00 00 01 0f ff d4 0e 00 00 00 00 + 00 00 0f 53 18 00 0f 00 00 00 00 00 + 00 + 39 01 00 00 00 00 03 eb 8b 8b + 39 01 00 00 00 00 02 f7 01 + 39 01 00 00 00 00 02 b0 80 + 39 01 00 00 00 00 0a e4 34 b4 00 00 00 + 30 04 0c e2 + 39 01 00 00 00 00 02 e6 00 + 39 01 00 00 00 00 02 b0 04 + 39 01 00 00 00 00 03 df 50 40 + 39 01 00 00 00 00 06 f3 50 00 00 00 00 + 39 01 00 00 00 00 02 f2 11 + 39 01 00 00 00 00 06 f3 01 00 00 00 01 + 39 01 00 00 00 00 03 f4 00 02 + 39 01 00 00 00 00 02 f2 19 + 39 01 00 00 00 00 03 df 50 42 + 39 01 00 00 00 00 02 35 00 + 39 01 00 00 00 00 05 2a 00 00 04 37 + 39 01 00 00 00 00 05 2b 00 00 09 23 + 05 01 00 00 78 00 01 11 + 05 01 00 00 00 00 01 29 + ]; + + 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-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,compression-mode = "dsc"; + qcom,mdss-dsc-slice-height = <20>; + qcom,mdss-dsc-slice-width = <540>; + qcom,mdss-dsc-slice-per-pkt = <2>; + qcom,mdss-dsc-bit-per-component = <8>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + }; + }; +}; diff --git a/display/dsi-panel-r66451-dsc-fhd-plus-120hz-video-cphy.dtsi b/display/dsi-panel-r66451-dsc-fhd-plus-120hz-video-cphy.dtsi new file mode 100644 index 000000000000..39e2b56a457a --- /dev/null +++ b/display/dsi-panel-r66451-dsc-fhd-plus-120hz-video-cphy.dtsi @@ -0,0 +1,121 @@ +&mdss_mdp { + dsi_r66451_amoled_120hz_video_cphy: qcom,mdss_dsi_r66451_fhd_plus_cphy_120hz_vid { + qcom,mdss-dsi-panel-name = + "r66451 amoled video mode dsi visionox panel with DSC"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-physical-type = "oled"; + qcom,dsi-ctrl-num = <0>; + qcom,dsi-phy-num = <0>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-border-color = <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-lane-2-state; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,adjust-timer-wakeup-ms = <1>; + qcom,panel-cphy-mode; + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-framerate = <120>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <2340>; + qcom,mdss-dsi-h-front-porch = <96>; + qcom,mdss-dsi-h-back-porch = <40>; + qcom,mdss-dsi-h-pulse-width = <32>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <25>; + qcom,mdss-dsi-v-pulse-width = <1>; + 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-on-command = [ + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 02 b3 01 + 39 01 00 00 00 00 02 b0 04 + 39 01 00 00 00 00 03 e8 00 02 + 39 01 00 00 00 00 03 e4 00 08 + 39 01 00 00 00 00 03 b4 20 1c + 39 01 00 00 00 00 0d b6 6c 00 06 23 af + 13 1a 05 04 fa 05 20 + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 32 c4 00 00 00 00 00 + 00 00 00 10 00 00 02 00 00 00 29 00 + 01 00 00 00 00 00 00 00 00 00 00 00 + 22 00 00 00 00 11 00 00 0c 00 00 00 + 00 30 00 00 00 00 00 00 + 39 01 00 00 00 00 86 cf 64 0b 00 22 00 + cd 03 33 04 00 0b 77 01 01 01 02 02 + 03 03 04 04 04 04 05 00 00 00 3b 00 + 3b 01 64 01 64 01 64 01 64 01 64 01 + 64 03 ff 03 ff 03 ff 00 00 00 3b 00 + 3b 01 64 01 64 01 64 01 64 01 64 01 + 64 03 ff 03 ff 03 ff 01 62 01 62 01 + 62 01 62 01 62 01 62 01 62 01 62 01 + 62 01 62 01 62 01 62 19 19 19 19 19 + 19 19 19 19 19 19 19 00 00 00 43 00 + 43 01 98 01 98 06 61 06 61 0f f6 0f + f6 0f f6 0f f6 0f f6 19 + 39 01 00 00 00 00 09 d1 05 00 21 02 24 + 19 24 2d + 39 01 00 00 00 00 15 d3 49 00 00 01 1a + 15 00 15 07 0f 77 77 77 37 b2 11 00 + a0 3c 9a + 39 01 00 00 00 00 1a d7 00 b9 34 00 40 + 04 00 f0 0f 00 40 00 00 00 00 00 00 + 19 34 00 40 04 00 f0 0f + 39 01 00 00 00 00 34 d8 00 00 00 00 00 + 00 00 00 00 3a 00 3a 00 3a 00 3a 00 + 3a 05 00 00 00 00 00 00 00 00 00 0f + 00 0f 00 00 00 00 00 00 00 00 00 00 + 00 00 00 0f 00 2f 00 0f 00 20 + 39 01 00 00 00 00 2b df 50 42 58 81 2d + 00 00 00 00 00 00 6b 00 00 00 00 00 + 00 00 00 01 0f ff d4 0e 00 00 00 00 + 00 00 0f 53 18 00 0f 00 00 00 00 00 + 00 + 39 01 00 00 00 00 03 eb 8b 8b + 39 01 00 00 00 00 02 f7 01 + 39 01 00 00 00 00 02 b0 80 + 39 01 00 00 00 00 0a e4 34 b4 00 00 00 + 30 04 0c e2 + 39 01 00 00 00 00 02 e6 00 + 39 01 00 00 00 00 02 b0 04 + 39 01 00 00 00 00 03 df 50 40 + 39 01 00 00 00 00 06 f3 50 00 00 00 00 + 39 01 00 00 00 00 02 f2 11 + 39 01 00 00 00 00 06 f3 01 00 00 00 01 + 39 01 00 00 00 00 03 f4 00 02 + 39 01 00 00 00 00 02 f2 19 + 39 01 00 00 00 00 03 df 50 42 + 39 01 00 00 00 00 05 2a 00 00 04 37 + 39 01 00 00 00 00 05 2b 00 00 09 23 + 05 01 00 00 78 00 01 11 + 05 01 00 00 00 00 01 29 + ]; + 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-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,compression-mode = "dsc"; + qcom,mdss-dsc-slice-height = <20>; + qcom,mdss-dsc-slice-width = <540>; + qcom,mdss-dsc-slice-per-pkt = <2>; + qcom,mdss-dsc-bit-per-component = <8>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + }; + }; +}; diff --git a/display/dsi-panel-r66451-dsc-fhd-plus-144hz-cmd-cphy.dtsi b/display/dsi-panel-r66451-dsc-fhd-plus-144hz-cmd-cphy.dtsi index 6ff943606cce..782f933515b7 100644 --- a/display/dsi-panel-r66451-dsc-fhd-plus-144hz-cmd-cphy.dtsi +++ b/display/dsi-panel-r66451-dsc-fhd-plus-144hz-cmd-cphy.dtsi @@ -107,7 +107,6 @@ 39 01 00 00 00 00 03 f4 00 02 39 01 00 00 00 00 02 f2 19 39 01 00 00 00 00 03 df 50 42 - 39 01 00 00 00 00 03 51 0f ff 39 01 00 00 00 00 02 35 00 39 01 00 00 00 00 05 2a 00 00 04 37 39 01 00 00 00 00 05 2b 00 00 09 23 diff --git a/display/dsi-panel-r66451-dsc-fhd-plus-144hz-video-cphy.dtsi b/display/dsi-panel-r66451-dsc-fhd-plus-144hz-video-cphy.dtsi new file mode 100644 index 000000000000..d72020ad1f71 --- /dev/null +++ b/display/dsi-panel-r66451-dsc-fhd-plus-144hz-video-cphy.dtsi @@ -0,0 +1,123 @@ +&mdss_mdp { + dsi_r66451_amoled_144hz_video_cphy: qcom,mdss_dsi_r66451_fhd_plus_cphy_144hz_vid { + qcom,mdss-dsi-panel-name = + "r66451 amoled video mode dsi visionox panel with DSC"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-physical-type = "oled"; + qcom,dsi-ctrl-num = <0>; + qcom,dsi-phy-num = <0>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-border-color = <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-lane-2-state; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,adjust-timer-wakeup-ms = <1>; + qcom,panel-cphy-mode; + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-framerate = <144>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <2340>; + qcom,mdss-dsi-h-front-porch = <96>; + qcom,mdss-dsi-h-back-porch = <40>; + qcom,mdss-dsi-h-pulse-width = <32>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <25>; + qcom,mdss-dsi-v-pulse-width = <1>; + 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-on-command = [ + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 02 b3 01 + 39 01 00 00 00 00 02 b0 04 + 39 01 00 00 00 00 03 e8 00 02 + 39 01 00 00 00 00 03 e4 00 08 + 39 01 00 00 00 00 03 b4 20 1c + 39 01 00 00 00 00 0d b6 6c 00 06 23 af + 13 1a 05 04 fa 05 20 + 39 01 00 00 00 00 02 b0 00 + 39 01 00 00 00 00 32 c4 00 00 00 00 00 + 00 00 00 10 00 00 02 00 00 00 29 00 + 01 00 00 00 00 00 00 00 00 00 00 00 + 22 00 00 00 00 11 00 00 0c 00 00 00 + 00 30 00 00 00 00 00 00 + 39 01 00 00 00 00 86 cf 64 0b 00 22 00 + cd 03 33 04 00 0b 77 01 01 01 02 02 + 03 03 04 04 04 04 05 00 00 00 3b 00 + 3b 01 64 01 64 01 64 01 64 01 64 01 + 64 03 ff 03 ff 03 ff 00 00 00 3b 00 + 3b 01 64 01 64 01 64 01 64 01 64 01 + 64 03 ff 03 ff 03 ff 01 62 01 62 01 + 62 01 62 01 62 01 62 01 62 01 62 01 + 62 01 62 01 62 01 62 19 19 19 19 19 + 19 19 19 19 19 19 19 00 00 00 43 00 + 43 01 98 01 98 06 61 06 61 0f f6 0f + f6 0f f6 0f f6 0f f6 19 + 39 01 00 00 00 00 0d d0 44 44 b2 28 00 + 28 5a 00 5a 03 0d 01 + 39 01 00 00 00 00 09 d1 05 00 21 02 24 + 19 24 2d + 39 01 00 00 00 00 15 d3 49 00 00 01 1a + 15 00 15 07 0f 77 77 77 37 b2 11 00 + a0 3c 9a + 39 01 00 00 00 00 1a d7 00 b9 34 00 40 + 04 00 f0 0f 00 40 00 00 00 00 00 00 + 19 34 00 40 04 00 f0 0f + 39 01 00 00 00 00 34 d8 00 00 00 00 00 + 00 00 00 00 30 00 30 00 30 00 30 00 + 30 05 00 00 00 00 00 00 00 00 00 0f + 00 0f 00 00 00 00 00 00 00 00 00 00 + 00 00 00 0f 00 2f 00 0f 00 20 + 39 01 00 00 00 00 2b df 50 42 58 81 2d + 00 00 00 00 00 00 6b 00 00 00 00 00 + 00 00 00 01 0f ff d4 0e 00 00 00 00 + 00 00 0f 53 18 00 0f 00 00 00 00 00 + 00 + 39 01 00 00 00 00 03 eb 8b 8b + 39 01 00 00 00 00 02 f7 01 + 39 01 00 00 00 00 02 b0 80 + 39 01 00 00 00 00 0a e4 34 b4 00 00 00 + 30 04 0c e2 + 39 01 00 00 00 00 02 e6 00 + 39 01 00 00 00 00 02 b0 04 + 39 01 00 00 00 00 03 df 50 40 + 39 01 00 00 00 00 06 f3 50 00 00 00 00 + 39 01 00 00 00 00 02 f2 11 + 39 01 00 00 00 00 06 f3 01 00 00 00 01 + 39 01 00 00 00 00 03 f4 00 02 + 39 01 00 00 00 00 02 f2 19 + 39 01 00 00 00 00 03 df 50 42 + 39 01 00 00 00 00 05 2a 00 00 04 37 + 39 01 00 00 00 00 05 2b 00 00 09 23 + 05 01 00 00 78 00 01 11 + 05 01 00 00 00 00 01 29 + ]; + 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-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,compression-mode = "dsc"; + qcom,mdss-dsc-slice-height = <20>; + qcom,mdss-dsc-slice-width = <540>; + qcom,mdss-dsc-slice-per-pkt = <2>; + qcom,mdss-dsc-bit-per-component = <8>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + }; + }; +}; diff --git a/display/dsi-panel-r66451-dsc-fhd-plus-90hz-cmd-cphy.dtsi b/display/dsi-panel-r66451-dsc-fhd-plus-90hz-cmd-cphy.dtsi index a9aa91546d5c..1f2857b7c0cd 100644 --- a/display/dsi-panel-r66451-dsc-fhd-plus-90hz-cmd-cphy.dtsi +++ b/display/dsi-panel-r66451-dsc-fhd-plus-90hz-cmd-cphy.dtsi @@ -83,7 +83,6 @@ 39 01 00 00 00 00 03 f4 00 02 39 01 00 00 00 00 02 f2 19 39 01 00 00 00 00 03 df 50 42 - 39 01 00 00 00 00 03 51 0f ff 39 01 00 00 00 00 02 35 00 39 01 00 00 00 00 05 2a 00 00 04 37 39 01 00 00 00 00 05 2b 00 00 09 23 diff --git a/display/yupik-sde-display-common.dtsi b/display/yupik-sde-display-common.dtsi index 65a61e861a67..d88190c5eac3 100644 --- a/display/yupik-sde-display-common.dtsi +++ b/display/yupik-sde-display-common.dtsi @@ -1,7 +1,10 @@ #include "dsi-panel-nt36672e-fhd-plus-144-video.dtsi" #include "dsi-panel-nt36672e-fhd-plus-60hz-video.dtsi" #include "dsi-panel-r66451-dsc-fhd-plus-90hz-cmd-cphy.dtsi" +#include "dsi-panel-r66451-dsc-fhd-plus-120hz-cmd-cphy.dtsi" +#include "dsi-panel-r66451-dsc-fhd-plus-120hz-video-cphy.dtsi" #include "dsi-panel-r66451-dsc-fhd-plus-144hz-cmd-cphy.dtsi" +#include "dsi-panel-r66451-dsc-fhd-plus-144hz-video-cphy.dtsi" #include &soc { @@ -160,6 +163,49 @@ }; }; +&dsi_r66451_amoled_120hz_cmd_cphy { + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0", + "cphy_byte_clk0", "cphy_pixel_clk0"; + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = [00 00 00 00 1d 13 03 + 19 02 02 04 00 00 00]; + qcom,display-topology = <1 1 1>; + qcom,default-topology-index = <0>; + }; + + timing@1 { + qcom,mdss-dsi-panel-phy-timings = [00 00 00 00 1e 17 04 + 19 03 02 04 00 00 00]; + qcom,display-topology = <1 1 1>; + qcom,default-topology-index = <0>; + }; + + timing@2 { + qcom,mdss-dsi-panel-phy-timings = [00 00 00 00 20 1b 05 + 19 06 02 04 00 00 00]; + qcom,display-topology = <1 1 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + +&dsi_r66451_amoled_120hz_video_cphy { + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0", + "cphy_byte_clk0", "cphy_pixel_clk0"; + qcom,dsi-supported-dfps-list = <120 90 60>; + qcom,mdss-dsi-pan-enable-dynamic-fps; + qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp"; + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = [00 00 00 00 20 1b 05 + 19 06 02 04 00 00 00]; + qcom,display-topology = <1 1 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + &dsi_r66451_amoled_144hz_cmd_cphy { qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0", "cphy_byte_clk0", "cphy_pixel_clk0"; @@ -173,3 +219,18 @@ }; }; +&dsi_r66451_amoled_144hz_video_cphy { + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0", + "cphy_byte_clk0", "cphy_pixel_clk0"; + qcom,dsi-supported-dfps-list = <144 120 90 60>; + qcom,mdss-dsi-pan-enable-dynamic-fps; + qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp"; + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = [00 00 00 00 1e 17 04 + 19 03 02 04 00 00 00]; + qcom,display-topology = <1 1 1>; + qcom,default-topology-index = <0>; + }; + }; +}; diff --git a/display/yupik-sde-display-qrd.dtsi b/display/yupik-sde-display-qrd.dtsi index e7a88a182bea..e8f03feb5565 100644 --- a/display/yupik-sde-display-qrd.dtsi +++ b/display/yupik-sde-display-qrd.dtsi @@ -26,6 +26,26 @@ qcom,platform-reset-gpio = <&tlmm 44 0>; }; +&dsi_r66451_amoled_120hz_cmd_cphy { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-brightness-max-level = <255>; + qcom,mdss-dsi-bl-inverted-dbv; + qcom,platform-reset-gpio = <&tlmm 44 0>; +}; + +&dsi_r66451_amoled_120hz_video_cphy { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-brightness-max-level = <255>; + qcom,mdss-dsi-bl-inverted-dbv; + qcom,platform-reset-gpio = <&tlmm 44 0>; +}; + &dsi_r66451_amoled_144hz_cmd_cphy { qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; @@ -36,6 +56,16 @@ qcom,platform-reset-gpio = <&tlmm 44 0>; }; +&dsi_r66451_amoled_144hz_video_cphy { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-brightness-max-level = <255>; + qcom,mdss-dsi-bl-inverted-dbv; + qcom,platform-reset-gpio = <&tlmm 44 0>; +}; + &sde_dsi { vddio-supply = <&L12C>; vdd-supply = <&L13C>; diff --git a/display/yupik-sde-display.dtsi b/display/yupik-sde-display.dtsi index 7359e3d9d407..f11298e93a81 100644 --- a/display/yupik-sde-display.dtsi +++ b/display/yupik-sde-display.dtsi @@ -68,6 +68,24 @@ qcom,mdss-dsi-panel-status-read-length = <1>; }; +&dsi_r66451_amoled_120hz_cmd_cphy { + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a]; + qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-status-value = <0x1c>; + qcom,mdss-dsi-panel-status-read-length = <1>; +}; + +&dsi_r66451_amoled_120hz_video_cphy { + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a]; + qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-status-value = <0x1c>; + qcom,mdss-dsi-panel-status-read-length = <1>; +}; + &dsi_r66451_amoled_144hz_cmd_cphy { qcom,esd-check-enabled; qcom,mdss-dsi-panel-status-check-mode = "reg_read"; @@ -76,3 +94,12 @@ qcom,mdss-dsi-panel-status-value = <0x1c>; qcom,mdss-dsi-panel-status-read-length = <1>; }; + +&dsi_r66451_amoled_144hz_video_cphy { + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a]; + qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-status-value = <0x1c>; + qcom,mdss-dsi-panel-status-read-length = <1>; +};