From 50b7c63cc8aaff978a2862a65cc9783af706342d Mon Sep 17 00:00:00 2001 From: Arian Date: Thu, 14 Mar 2024 15:31:48 +0100 Subject: [PATCH] display: Add support for POCO F5/Redmi Note 12 Turbo (marble|M16T) Change-Id: Idfd6fa59d41e7a89cf6630ae67f4ad8e21c03094 Signed-off-by: Jens Reidel --- qcom/display/Kbuild | 3 +- .../dsi-panel-m16t-36-02-0a-dsc-vid.dtsi | 303 ++++++++++++++++++ .../dsi-panel-m16t-36-0d-0b-dsc-vid.dtsi | 215 +++++++++++++ .../marble-sde-display-mtp-overlay.dts | 12 + .../display/marble-sde-display-mtp.dtsi | 192 +++++++++++ 5 files changed, 724 insertions(+), 1 deletion(-) create mode 100755 qcom/display/display/dsi-panel-m16t-36-02-0a-dsc-vid.dtsi create mode 100644 qcom/display/display/dsi-panel-m16t-36-0d-0b-dsc-vid.dtsi create mode 100644 qcom/display/display/marble-sde-display-mtp-overlay.dts create mode 100644 qcom/display/display/marble-sde-display-mtp.dtsi diff --git a/qcom/display/Kbuild b/qcom/display/Kbuild index 95e7f307..0ee05097 100644 --- a/qcom/display/Kbuild +++ b/qcom/display/Kbuild @@ -45,7 +45,8 @@ dtbo-$(CONFIG_ARCH_CAPE) += display/cape-sde.dtbo \ display/unicorn-sde-display-mtp-overlay.dtbo \ display/zizhan-sde-display-cape-mtp-overlay.dtbo \ display/mayfly-sde-display-mtp-overlay.dtbo \ - display/mondrian-sde-display-mtp-overlay.dtbo + display/mondrian-sde-display-mtp-overlay.dtbo \ + display/marble-sde-display-mtp-overlay.dtbo else dtbo-$(CONFIG_ARCH_CAPE) += display/trustedvm-cape-sde-display-qrd-overlay.dtbo \ display/trustedvm-cape-sde-display-cdp-overlay.dtbo \ diff --git a/qcom/display/display/dsi-panel-m16t-36-02-0a-dsc-vid.dtsi b/qcom/display/display/dsi-panel-m16t-36-02-0a-dsc-vid.dtsi new file mode 100755 index 00000000..783c3cb3 --- /dev/null +++ b/qcom/display/display/dsi-panel-m16t-36-02-0a-dsc-vid.dtsi @@ -0,0 +1,303 @@ +&mdss_mdp { + dsi_m16t_36_02_0a_dsc_vid: qcom,mdss_dsi_m16t_36_02_0a_dsc_vid { + qcom,mdss-dsi-panel-name = "xiaomi 36 02 0a video mode dsc dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-bpp = <30>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + + qcom,dsi-ctrl-num = <0>; + qcom,dsi-phy-num = <0>; + + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + 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 = <1 11>, <0 1>, <1 11>; + qcom,mdss-pan-physical-width-dimension = <695>; + qcom,mdss-pan-physical-height-dimension = <1545>; + + qcom,mdss-dsi-tx-eot-append; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-bl-inverted-dbv; + qcom,bl-update-flag = "delay_until_first_frame"; + // qcom,mdss-dsi-phy-voltage = <0x51>; + + 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-pan-enable-dynamic-fps; + qcom,mdss-dsi-pan-fps-update = + "dfps_immediate_porch_mode_vfp"; + qcom,dsi-supported-dfps-list = <60 120 90 30>; + + qcom,mdss-dsi-display-timings { + timing@0{ + qcom,mdss-dsi-video-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 = <48>; + qcom,mdss-dsi-h-back-porch = <64>; + qcom,mdss-dsi-h-pulse-width = <4>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <10>; + qcom,mdss-dsi-v-front-porch = <20>; + qcom,mdss-dsi-v-pulse-width = <2>; + qcom,mdss-dsi-h-sync-pulse = <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-on-command = [ + /*optimize*/ + 39 00 00 00 00 00 05 FF AA 55 A5 80 + 39 00 00 40 00 00 02 6F 14 + 39 00 00 40 00 00 02 F4 40 + /*Source Setting*/ + 39 00 00 00 00 00 05 FF AA 55 A5 80 + 39 00 00 40 00 00 02 6F 17 + 39 00 00 40 00 00 02 F4 02 + 39 00 00 40 00 00 05 FF AA 55 A5 81 + 39 00 00 40 00 00 02 6F 13 + 39 00 00 40 00 00 02 F9 01 + /*AOD Video Mode*/ + 39 00 00 40 00 00 02 17 03 + 39 00 00 40 00 00 02 71 00 + 39 00 00 40 00 00 09 8D 00 00 04 37 00 00 09 5F + /*Set video drop time*/ + 39 00 00 40 00 00 05 FF AA 55 A5 81 + 39 00 00 40 00 00 02 6F 3C + 39 00 00 40 00 00 02 F5 81 + /*CMD_P1 */ + 39 00 00 40 00 00 06 F0 55 AA 52 08 01 + 39 00 00 40 00 00 02 6F 03 + /* ELVDD_LVDET_OFF */ + 39 00 00 40 00 00 02 C7 07 + /* CMD_P0 */ + 39 00 00 40 00 00 06 F0 55 AA 52 08 00 + 39 00 00 40 00 00 04 B9 00 04 38 + 39 00 00 40 00 00 03 BD 09 60 + /* CASET/PASET Setting 1080X2400*/ + 39 00 00 40 00 00 05 2A 00 00 04 37 + 39 00 00 40 00 00 05 2B 00 00 09 5F + /* COMPRESSION_METHOD */ + 39 00 00 40 00 00 03 90 03 03 + /*pps setting*/ + 39 00 00 40 00 00 13 91 AB A8 00 14 D2 00 + 02 25 01 D5 00 07 05 7A 05 16 10 F0 + 39 00 00 40 00 00 13 93 AB A8 00 14 D2 00 + 02 25 01 D5 00 07 05 7A 05 16 10 F0 + 39 00 00 40 00 00 13 95 AB A8 00 14 D2 00 + 02 25 01 D5 00 07 05 7A 05 16 10 F0 + 39 00 00 40 00 00 13 97 AB A8 00 14 D2 00 + 02 25 01 D5 00 07 05 7A 05 16 10 F0 + /* BCTRL */ + 39 00 00 40 00 00 02 53 20 + /* VBP/VFP Mode */ + 39 00 00 40 00 00 05 3B 00 0C 00 14 + /* TE ON Setting */ + 39 00 00 40 00 00 02 35 00 + /* DBV */ + 39 00 00 40 00 00 07 51 00 00 00 00 00 00 + /*dimming setting*/ + 39 00 00 40 00 00 06 F0 55 AA 52 08 00 + 39 00 00 40 00 00 02 B2 08 + 39 00 00 40 00 00 02 6F 05 + 39 00 00 40 00 00 03 B2 04 04 + /* 120hz: 00; 90hz:01; 60hz:02 */ + 39 00 00 40 00 00 02 2F 00 + /* GIR off */ + 39 00 00 40 00 00 02 5F 01 + 39 00 00 40 00 00 02 26 00 + 39 00 00 40 00 00 06 F0 55 AA 52 08 00 + 39 00 00 40 00 00 02 6F 03 + 39 00 00 40 00 00 02 C0 20 + /* ESD CONFIG */ + 39 00 00 40 00 00 06 F0 55 AA 52 08 00 + 39 00 00 40 00 00 03 BE 47 00 + 39 00 00 40 00 00 02 6F 05 + 39 00 00 40 00 00 02 BE 18 + 39 00 00 40 00 00 02 6F 0F + 39 00 00 40 00 00 03 BE FB FB + /* round on */ + 39 00 00 40 00 00 06 F0 55 AA 52 08 07 + 39 00 00 40 00 00 02 C0 87 + /*IC may reload failed, force reload gamma again*/ + 39 00 00 40 00 00 06 F0 55 AA 52 08 01 + 39 00 00 40 00 00 02 E8 30 + 39 00 00 40 00 00 05 FF AA 55 A5 84 + 39 00 00 40 00 00 02 6F 21 + 39 00 00 40 00 00 07 F4 FF FF F9 FF FF FF + 39 00 00 40 00 00 02 6F 9C + 39 00 00 40 00 00 03 F4 FF C0 + /* Sleep Out */ + 39 00 00 00 78 00 02 11 00 + /* Display On */ + 39 00 00 00 00 00 02 29 00 + /* CMD_P1 */ + 39 00 00 00 00 00 06 F0 55 AA 52 08 01 + 39 00 00 40 00 00 02 6F 03 + 39 00 00 00 00 00 02 C7 47 + /* ESD Detection*/ + 39 00 00 00 00 00 06 F0 55 AA 52 08 00 + 39 00 00 00 00 00 03 BE 47 C5 + /* close page */ + 39 00 00 40 00 00 06 F0 55 AA 52 00 00 + 39 00 00 00 00 00 05 FF AA 55 A5 00 + ]; + qcom,mdss-dsi-off-command = [ + 39 00 00 00 14 00 02 28 00 + 39 00 00 00 78 00 02 10 00 + ]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + + qcom,mdss-dsi-nolp-command = [ + 39 00 00 00 00 00 07 51 00 00 00 00 00 00 + ]; + qcom,mdss-dsi-nolp-command-state = "dsi_hs_mode"; + + /* DSC CONFIG*/ + qcom,compression-mode = "dsc"; + qcom,mdss-dsc-version = <0x12>; + qcom,mdss-dsc-scr-version = <0x0>; + 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 = <10>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + }; + }; +}; + +&dsi_m16t_36_02_0a_dsc_vid { + mi,panel-id = <0x4D313654 0x00360200>; + + mi,max-brightness-clone = <16383>; + mi,normal-max-brightness-clone = <4095>; + mi,mdss-dsi-fac-bl-max-level = <2047>; + mi,mdss-fac-brightness-max-level = <2047>; + + mi,thermal-dimming-flag; + mi,panel-on-dimming-delay = <120>; + mi,dimming-need-update-speed; + mi,dimming-node = <0 200 450 800 4095>; + + /* AOD CONFIG*/ + mi,doze-hbm-dbv-level = <245>; + mi,doze-lbm-dbv-level = <20>; + + /* IRQ CHECK: IRQF_ONESHOT | IRQF_TRIGGER_LOW */ + mi,esd-err-irq-gpio = <&tlmm 116 0x2008>; + mi,panel-ignore-esd-in-aod; + + mi,ddic-round-corner-enabled; + + qcom,mdss-dsi-display-timings { + timing@0{ + + mi,mdss-dsi-hbm-on-command = [39 00 00 00 00 00 03 51 07 FF]; + mi,mdss-dsi-hbm-on-command-state = "dsi_hs_mode"; + mi,mdss-dsi-hbm-off-command = [39 00 00 00 00 00 03 51 07 FF]; + mi,mdss-dsi-hbm-off-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-flat-mode-on-command = [ + 39 00 00 00 00 00 02 5F 00 + 39 00 00 40 00 00 02 26 03 + 39 00 00 00 00 00 06 F0 55 AA 52 08 00 + 39 00 00 40 00 00 02 6F 03 + 39 00 00 00 00 00 02 C0 53 + 39 00 00 00 00 00 06 F0 55 AA 52 00 00 + ]; + mi,mdss-dsi-flat-mode-on-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-flat-mode-off-command = [ + 39 00 00 00 00 00 02 5F 01 + 39 00 00 40 00 00 02 26 00 + 39 00 00 00 00 00 06 F0 55 AA 52 08 00 + 39 00 00 40 00 00 02 6F 03 + 39 00 00 00 00 00 02 C0 20 + 39 00 00 00 00 00 06 F0 55 AA 52 00 00 + ]; + mi,mdss-dsi-flat-mode-off-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-aod-enter-command = [ + 39 00 00 00 00 00 02 39 00 + ]; + mi,mdss-dsi-aod-enter-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-aod-exit-command = [ + 39 00 00 40 00 00 02 38 00 + 39 00 00 00 00 00 07 51 00 00 00 00 00 00 + ]; + mi,mdss-dsi-aod-exit-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-doze-hbm-command = [ + 39 00 00 00 00 00 07 51 00 F5 07 FF 03 FF + ]; + mi,mdss-dsi-doze-hbm-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-doze-lbm-command = [ + 39 00 00 00 00 00 07 51 00 14 07 FF 01 FF + ]; + mi,mdss-dsi-doze-lbm-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-doze-hbm-nolp-command = [ + 39 00 00 00 00 00 07 51 00 00 00 00 00 00 + ]; + mi,mdss-dsi-doze-hbm-nolp-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-doze-lbm-nolp-command = [ + 39 00 00 00 00 00 07 51 00 00 00 00 00 00 + ]; + mi,mdss-dsi-doze-lbm-nolp-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-fps-120-gamma-command = [ + 39 00 00 00 00 00 02 2F 00 + ]; + mi,mdss-dsi-fps-120-gamma-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-fps-90-gamma-command = [ + 39 00 00 00 00 00 02 2F 01 + ]; + mi,mdss-dsi-fps-90-gamma-command-state = "dsi_hs_mode"; + + mi,mdss-dsi-fps-60-gamma-command = [ + 39 00 00 00 00 00 02 2F 02 + ]; + mi,mdss-dsi-fps-60-gamma-command-state = "dsi_hs_mode"; + + /* enable video trim*/ + mi,mdss-dsi-aod-enable-video-trim-command = [ + 39 00 00 40 00 00 06 F0 55 AA 52 08 01 + 39 00 00 40 00 00 02 EA 91 + 39 00 00 00 00 00 06 F0 55 AA 52 00 00 + ]; + mi,mdss-dsi-aod-enable-video-trim-command-state = "dsi_hs_mode"; + + /* disable video trim*/ + mi,mdss-dsi-aod-disable-video-trim-command = [ + 39 00 00 40 00 00 06 F0 55 AA 52 08 01 + 39 00 00 40 00 00 02 EA 11 + 39 00 00 00 00 00 06 F0 55 AA 52 00 00 + ]; + mi,mdss-dsi-aod-disable-video-trim-command-state = "dsi_hs_mode"; + + }; + }; +}; diff --git a/qcom/display/display/dsi-panel-m16t-36-0d-0b-dsc-vid.dtsi b/qcom/display/display/dsi-panel-m16t-36-0d-0b-dsc-vid.dtsi new file mode 100644 index 00000000..d36b1ba5 --- /dev/null +++ b/qcom/display/display/dsi-panel-m16t-36-0d-0b-dsc-vid.dtsi @@ -0,0 +1,215 @@ +&mdss_mdp { + dsi_m16t_36_0d_0b_dsc_vid: qcom,mdss_dsi_m16t_36_0d_0b_dsc_vid { + qcom,mdss-dsi-panel-name = "xiaomi 36 0d 0b video mode dsc dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-bpp = <30>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,dsi-ctrl-num = <0>; + qcom,dsi-phy-num = <0>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + 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 1>, <1 20>; + qcom,mdss-pan-physical-width-dimension = <695>; + qcom,mdss-pan-physical-height-dimension = <1545>; + qcom,mdss-dsi-tx-eot-append; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-bl-inverted-dbv; + qcom,bl-update-flag = "delay_until_first_frame"; + // qcom,mdss-dsi-phy-voltage = <0x51>; + 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-pan-enable-dynamic-fps; + qcom,mdss-dsi-pan-fps-update = + "dfps_immediate_porch_mode_vfp"; + qcom,dsi-supported-dfps-list = <60 120 90 30>; +qcom,mdss-dsi-display-timings { + timing@0{ + qcom,mdss-dsi-video-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 = <48>; + qcom,mdss-dsi-h-back-porch = <64>; + qcom,mdss-dsi-h-pulse-width = <4>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <12>; + qcom,mdss-dsi-v-front-porch = <16>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-sync-pulse = <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-on-command = [ + 39 00 00 40 00 00 03 F0 AA 10 + 39 00 00 40 00 00 17 D0 84 35 90 14 C0 00 29 2C 0B 00 32 00 2D 1E 00 32 00 00 05 05 0B 0B + /*Enable Compression*/ + 39 00 00 40 00 00 02 03 01 + /*TE ON*/ + 39 00 00 40 00 00 02 35 00 + /*BC ON*/ + 39 00 00 40 00 00 02 53 20 + /*DBV*/ + 39 00 00 40 00 00 03 51 00 00 + /*Demura on*/ + 39 00 00 40 00 00 02 59 09 + /*Video Mode*/ + 39 00 00 40 00 00 02 6F 01 + /*120hz*/ + 39 00 00 40 00 00 02 6C 02 + /*aod 5 nit*/ + 39 00 00 40 00 00 02 6D 00 + /*VESA setting 10 bit*/ + 39 00 00 40 00 00 5F 70 11 00 00 AB 30 80 + 09 60 04 38 00 0C 02 1C 02 1C 02 00 02 0E 00 20 + 01 1F 00 07 00 0C 08 BB 08 7A 18 00 10 F0 07 10 + 20 00 06 0F 0F 33 0E 1C 2A 38 46 54 62 69 70 77 + 79 7B 7D 7E 02 02 22 00 2A 40 2A BE 3A FC 3A FA + 3A F8 3B 38 3B 78 3B B6 4B B6 4B F4 4B F4 6C 34 + 84 74 00 00 00 00 00 00 + /*CMD3 Page1*/ + 39 00 00 40 00 00 03 FF 5A 81 + 39 00 00 40 00 00 02 65 03 + 39 00 00 40 00 00 02 F4 03 + /*CMD3 Page0*/ + 39 00 00 40 00 00 03 FF 5A 80 + 39 00 00 40 00 00 02 65 0A + 39 00 00 40 00 00 02 F9 A8 + 39 00 00 40 00 00 02 65 0E + 39 00 00 40 00 00 02 F9 B9 + 39 00 00 40 00 00 03 FF 5A 81 + 39 00 00 40 00 00 02 65 08 + 39 00 00 40 00 00 03 F6 51 44 + 39 00 00 40 00 00 03 F0 AA 00 + 39 00 00 00 00 00 03 FF 5A 00 + /* Sleep Out */ + 39 00 00 00 78 00 02 11 00 + /* Display On */ + 39 00 00 00 00 00 02 29 00 + ]; + qcom,mdss-dsi-off-command = [ + 39 00 00 00 14 00 02 28 00 + 39 00 00 00 78 00 02 10 00 + ]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + qcom,compression-mode = "dsc"; + qcom,mdss-dsc-config-by-manufacture-cmd; + qcom,mdss-dsc-version = <0x12>; + qcom,mdss-dsc-scr-version = <0x0>; + 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 = <10>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + }; + }; +}; +&dsi_m16t_36_0d_0b_dsc_vid { + mi,panel-id = <0x4D313654 0x00360201>; + mi,max-brightness-clone = <16383>; + mi,normal-max-brightness-clone = <4095>; + mi,mdss-dsi-fac-bl-max-level = <2047>; + mi,mdss-fac-brightness-max-level = <2047>; + mi,thermal-dimming-flag; + mi,panel-on-dimming-delay = <120>; + /* AOD CONFIG*/ + mi,doze-hbm-dbv-level = <245>; + mi,doze-lbm-dbv-level = <20>; + /* IRQ CHECK: IRQF_ONESHOT | IRQF_TRIGGER_LOW */ + mi,esd-err-irq-gpio = <&tlmm 116 0x2008>; + mi,panel-ignore-esd-in-aod; + qcom,mdss-dsi-display-timings { + timing@0{ + mi,mdss-dsi-bl-sync-on-command = [ + /* Swire Setting EN_DLY=0 */ + 39 00 00 40 00 00 03 F0 AA 10 + 39 00 00 40 00 00 03 D0 84 25 + 39 00 00 00 00 00 03 F0 AA 00 + ]; + mi,mdss-dsi-bl-sync-on-command-state = "dsi_lp_mode"; + mi,mdss-dsi-bl-sync-off-command = [ + /* Swire Setting EN_DLY=1 */ + 39 00 00 40 00 00 03 F0 AA 10 + 39 00 00 40 00 00 03 D0 84 35 + 39 00 00 00 00 00 03 F0 AA 00 + ]; + mi,mdss-dsi-bl-sync-off-command-state = "dsi_lp_mode"; + mi,flatmode-update-flag; + mi,mdss-dsi-flat-mode-on-command = [ + 39 00 00 00 00 00 02 5F 00 + 39 00 00 40 00 00 02 26 03 + 39 00 00 00 00 00 06 F0 55 AA 52 08 00 + 39 00 00 40 00 00 02 6F 03 + 39 00 00 00 00 00 02 C0 53 + 39 00 00 00 00 00 06 F0 55 AA 52 00 00 + ]; + mi,mdss-dsi-flat-mode-on-command-state = "dsi_hs_mode"; + mi,mdss-dsi-flat-mode-off-command = [ + 39 00 00 00 00 00 02 5F 01 + 39 00 00 40 00 00 02 26 00 + 39 00 00 00 00 00 06 F0 55 AA 52 08 00 + 39 00 00 40 00 00 02 6F 03 + 39 00 00 00 00 00 02 C0 20 + 39 00 00 00 00 00 06 F0 55 AA 52 00 00 + ]; + mi,mdss-dsi-flat-mode-off-command-state = "dsi_hs_mode"; + mi,mdss-dsi-aod-exit-command = [ + 05 00 00 00 21 00 01 38 + ]; + mi,mdss-dsi-aod-exit-command-state = "dsi_hs_mode"; + mi,mdss-dsi-doze-hbm-command = [ + 15 00 00 00 00 00 02 6D 01 + 05 00 00 00 00 00 01 39 + ]; + mi,mdss-dsi-doze-hbm-command-state = "dsi_hs_mode"; + mi,mdss-dsi-doze-lbm-command = [ + 15 00 00 00 00 00 02 6D 00 + 05 00 00 00 00 00 01 39 + ]; + mi,mdss-dsi-doze-lbm-command-state = "dsi_hs_mode"; + mi,mdss-dsi-doze-hbm-nolp-command = [ + 05 00 00 00 00 00 01 38 + ]; + mi,mdss-dsi-doze-hbm-nolp-command-state = "dsi_hs_mode"; + mi,mdss-dsi-doze-lbm-nolp-command = [ + 05 00 00 00 00 00 01 38 + ]; + mi,mdss-dsi-doze-lbm-nolp-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-nolp-command = [ + 05 00 00 00 00 00 01 38 + ]; + qcom,mdss-dsi-nolp-command-state = "dsi_hs_mode"; + mi,mdss-dsi-fps-120-gamma-command = [ + 39 00 00 00 00 00 02 6C 02 + ]; + mi,mdss-dsi-fps-120-gamma-command-state = "dsi_hs_mode"; + mi,mdss-dsi-fps-90-gamma-command = [ + 39 00 00 00 00 00 02 6C 01 + ]; + mi,mdss-dsi-fps-90-gamma-command-state = "dsi_hs_mode"; + mi,mdss-dsi-fps-60-gamma-command = [ + 39 00 00 00 00 00 02 6C 00 + ]; + mi,mdss-dsi-fps-60-gamma-command-state = "dsi_hs_mode"; + }; + }; +}; + + diff --git a/qcom/display/display/marble-sde-display-mtp-overlay.dts b/qcom/display/display/marble-sde-display-mtp-overlay.dts new file mode 100644 index 00000000..3760c43b --- /dev/null +++ b/qcom/display/display/marble-sde-display-mtp-overlay.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +#include "marble-sde-display-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. 7475 marble"; + compatible = "qcom,cape-mtp", "qcom,cape", "qcom,mtp"; + qcom,msm-id = <530 0x10000>, <531 0x10000>, <540 0x10000>, <591 0x10000>; + qcom,board-id = <0x10008 0>; + xiaomi,miboard-id = <0xF 0>; +}; diff --git a/qcom/display/display/marble-sde-display-mtp.dtsi b/qcom/display/display/marble-sde-display-mtp.dtsi new file mode 100644 index 00000000..7d7851ce --- /dev/null +++ b/qcom/display/display/marble-sde-display-mtp.dtsi @@ -0,0 +1,192 @@ +#include "cape-sde-display.dtsi" +#include "dsi-panel-m16t-36-02-0a-dsc-vid.dtsi" +#include "dsi-panel-m16t-36-0d-0b-dsc-vid.dtsi" + +&soc { + dsi_panel_pwr_supply_m16t: dsi_panel_pwr_supply_m16t { + #address-cells = <1>; + #size-cells = <0>; + qcom,panel-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <60700>; + qcom,supply-disable-load = <80>; + qcom,supply-post-on-sleep = <10>; + qcom,supply-post-off-sleep = <2>; + }; + qcom,panel-supply-entry@1 { + reg = <1>; + qcom,supply-name = "vddd"; + qcom,supply-min-voltage = <1200000>; + qcom,supply-max-voltage = <1200000>; + qcom,supply-enable-load = <60700>; + qcom,supply-disable-load = <80>; + qcom,supply-post-on-sleep = <0>; + qcom,supply-post-off-sleep = <2>; + }; + qcom,panel-supply-entry@2 { + reg = <2>; + qcom,supply-name = "vci"; + qcom,supply-min-voltage = <3000000>; + qcom,supply-max-voltage = <3000000>; + qcom,supply-enable-load = <10000>; + qcom,supply-disable-load = <0>; + qcom,supply-post-on-sleep = <10>; + qcom,supply-post-off-sleep = <2>; + }; + }; + + dsi_panel_pwr_supply_0b_m16t: dsi_panel_pwr_supply_0b_m16t { + #address-cells = <1>; + #size-cells = <0>; + qcom,panel-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <60700>; + qcom,supply-disable-load = <80>; + qcom,supply-post-on-sleep = <10>; + qcom,supply-post-off-sleep = <2>; + }; + qcom,panel-supply-entry@1 { + reg = <1>; + qcom,supply-name = "vci"; + qcom,supply-min-voltage = <3000000>; + qcom,supply-max-voltage = <3000000>; + qcom,supply-enable-load = <15000>; + qcom,supply-disable-load = <0>; + qcom,supply-post-on-sleep = <10>; + qcom,supply-post-off-sleep = <2>; + }; + qcom,panel-supply-entry@2 { + reg = <2>; + qcom,supply-name = "vddd"; + qcom,supply-min-voltage = <1250000>; + qcom,supply-max-voltage = <1250000>; + qcom,supply-enable-load = <200000>; + qcom,supply-disable-load = <80>; + qcom,supply-post-on-sleep = <0>; + qcom,supply-post-off-sleep = <2>; + }; + }; +}; + +&dsi_m16t_36_02_0a_dsc_vid { + qcom,mdss-dsi-panel-vsync-delay; + qcom,ulps-enabled; + qcom,dsi-select-clocks = "pll_byte_clk0", "pll_dsi_clk0"; + qcom,mdss-dsi-clk-strength = <0xFF>; + qcom,mdss-dsi-display-timings { + /* 60hz */ + timing@0{ + qcom,mdss-dsi-panel-phy-timings = [00 1D 07 07 17 22 07 + 07 08 02 04 00 19 0C]; + qcom,display-topology = <1 1 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + +&dsi_m16t_36_0d_0b_dsc_vid { + qcom,mdss-dsi-panel-vsync-delay; + qcom,ulps-enabled; + qcom,dsi-select-clocks = "pll_byte_clk0", "pll_dsi_clk0"; + qcom,mdss-dsi-clk-strength = <0xFF>; + qcom,mdss-dsi-display-timings { + /* 60hz */ + timing@0{ + qcom,mdss-dsi-panel-phy-timings = [00 1D 07 07 17 22 07 + 07 08 02 04 00 19 0C]; + qcom,display-topology = <1 1 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + +&dsi_m16t_36_02_0a_dsc_vid { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply_m16t>; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <4>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-brightness-max-level = <4095>; + qcom,mdss-brightness-init-level = <307>; + qcom,mdss-dsi-bl-inverted-dbv; + qcom,platform-reset-gpio = <&tlmm 0 0>; +}; + +&dsi_m16t_36_0d_0b_dsc_vid { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply_0b_m16t>; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <4>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-brightness-max-level = <4095>; + qcom,mdss-brightness-init-level = <307>; + qcom,mdss-dsi-bl-inverted-dbv; + qcom,platform-reset-gpio = <&tlmm 0 0>; +}; + +&L1D { + regulator-max-microvolt = <1250000>; +}; + +&dsi_r66451_amoled_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply_m16t>; + 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 0 0>; +}; + +&sde_dsi { + qcom,dsi-default-panel = <&dsi_r66451_amoled_video>; + vddio-supply = <&L12C>; + vddd-supply = <&L1D>; + vci-supply = <&L13C>; +}; + +&mdss_dsi0 { + mi,support-max-hs-timer; +}; + +&qupv3_se4_spi { + m16t-touch@0 { + panel = <&dsi_m16t_36_02_0a_dsc_vid &dsi_m16t_36_0d_0b_dsc_vid + &dsi_r66451_amoled_video>; + }; +}; + +&soc { + thermal-message { + board-sensor = "VIRTUAL-SENSOR0"; + }; + thermal_screen: thermal-screen { + panel = <&dsi_m16t_36_02_0a_dsc_vid &dsi_m16t_36_0d_0b_dsc_vid + &dsi_r66451_amoled_video>; + }; + charge_screen: charge-screen { + panel = <&dsi_m16t_36_02_0a_dsc_vid &dsi_m16t_36_0d_0b_dsc_vid + &dsi_r66451_amoled_video>; + }; + fingerprint_screen: fingerprint-screen { + panel = <&dsi_m16t_36_02_0a_dsc_vid &dsi_m16t_36_0d_0b_dsc_vid + &dsi_r66451_amoled_video>; + }; +}; + +&spmi_bus { + qcom,pm8350b@3 { + qcom,amoled-ecm@f900 { + display-panels = <&dsi_m16t_36_02_0a_dsc_vid &dsi_m16t_36_0d_0b_dsc_vid + &dsi_r66451_amoled_video>; + }; + }; +}; + +&mdss_mdp { + connectors = <&sde_dsi &smmu_sde_unsec &smmu_sde_sec &sde_wb &sde_rscc>; +};