Files
android_kernel_samsung_sm87…/qcom/opensource/display-devicetree/display/sun-sde-display.dtsi
2025-08-12 22:13:00 +02:00

323 lines
8.2 KiB
Plaintext

// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include "sun-sde.dtsi"
#include "sun-sde-display-common.dtsi"
#include <dt-bindings/clock/qcom,dispcc-sun.h>
&pm8550_gpios {
display_panel_avdd_default: display_panel_avdd_default {
pins = "gpio11";
function = "normal";
input-disable;
output-enable;
bias-disable;
power-source = <1>;
qcom,drive-strength = <3>;
};
};
&soc {
sde_wb1: qcom,wb-display@1 {
compatible = "qcom,wb-display";
cell-index = <0>;
label = "wb_display1";
clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>;
clock-names = "mdp_core_clk";
};
sde_wb2: qcom,wb-display@2 {
compatible = "qcom,wb-display";
cell-index = <1>;
label = "wb_display2";
clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>;
clock-names = "mdp_core_clk";
};
display_panel_avdd: display_gpio_regulator@1 {
compatible = "qti-regulator-fixed";
regulator-name = "display_panel_avdd";
regulator-min-microvolt = <5500000>;
regulator-max-microvolt = <5500000>;
regulator-enable-ramp-delay = <233>;
gpio = <&pm8550_gpios 11 0>;
enable-active-high;
regulator-boot-on;
proxy-supply = <&display_panel_avdd>;
qcom,proxy-consumer-enable;
pinctrl-names = "default";
};
disp_rdump_memory: disp_rdump_region@0xd5500000 {
reg = <0xfc800000 0x00800000>;
label = "disp_rdump_region";
};
};
&reserved_memory {
splash_memory: splash_region {
reg = <0x0 0xfc800000 0x0 0x02b00000>;
label = "cont_splash_region";
};
/*
* Demura memory regions are to be commented out if
* feature not in use.
*/
/*
demura_memory_0: demura_region_0 {
reg = <0x0 0x0 0x0 0x0>;
label = "demura hfc region 0";
};
demura_memory_1: demura_region_1 {
reg = <0x0 0x0 0x0 0x0>;
label = "demura hfc region 1";
};
*/
};
&sde_dsi {
clocks = <&mdss_dsi_phy0 0>,
<&mdss_dsi_phy0 1>,
<&mdss_dsi_phy1 0>,
<&mdss_dsi_phy1 1>,
/*
* Currently the dsi clock handles are under the dsi
* controller DT node. As soon as the controller probe
* finishes, the dispcc sync state can get called before
* the dsi_display probe potentially disturbing the clock
* votes for cont_splash use case. Hence we are no longer
* protected by the component model in this case against the
* disp cc sync state getting triggered after the dsi_ctrl
* probe. To protect against this incorrect sync state trigger
* add this dummy MDP clk vote handle to the dsi_display
* DT node. Since the dsi_display driver does not parse
* MDP clock nodes, no actual vote shall be added and this
* change is done just to satisfy sync state requirements.
*/
<&dispcc DISP_CC_MDSS_MDP_CLK>,
/*
* The esync clk RCG is only necessary here to set its parent
* to the pll dsi clk, which also needs to be available at the
* point that its known whether the clock will be used. After
* updating the parent, this clock handle is no longer needed.
*/
<&dispcc DISP_CC_ESYNC0_CLK_SRC>;
clock-names = "pll_byte_clk0", "pll_dsi_clk0",
"pll_byte_clk1", "pll_dsi_clk1",
"mdp_core_clk", "esync_clk_rcg";
vddio-supply = <&L12B>;
vci-supply = <&L13B>;
vdd-supply = <&L11B>;
tvdd-supply = <&L4B>;
};
&sde_dsi1 {
clocks = <&mdss_dsi_phy0 0>,
<&mdss_dsi_phy0 1>,
<&mdss_dsi_phy1 0>,
<&mdss_dsi_phy1 1>,
/*
* Currently the dsi clock handles are under the dsi
* controller DT node. As soon as the controller probe
* finishes, the dispcc sync state can get called before
* the dsi_display probe potentially disturbing the clock
* votes for cont_splash use case. Hence we are no longer
* protected by the component model in this case against the
* disp cc sync state getting triggered after the dsi_ctrl
* probe. To protect against this incorrect sync state trigger
* add this dummy MDP clk vote handle to the dsi_display
* DT node. Since the dsi_display driver does not parse
* MDP clock nodes, no actual vote shall be added and this
* change is done just to satisfy sync state requirements.
*/
<&dispcc DISP_CC_MDSS_MDP_CLK>,
/*
* The esync clk RCG is only necessary here to set its parent
* to the pll dsi clk, which also needs to be available at the
* point that its known whether the clock will be used. After
* updating the parent, this clock handle is no longer needed.
*/
<&dispcc DISP_CC_ESYNC1_CLK_SRC>;
clock-names = "pll_byte_clk0", "pll_dsi_clk0",
"pll_byte_clk1", "pll_dsi_clk1",
"mdp_core_clk", "esync_clk_rcg";
vddio-supply = <&L12B>;
vci-supply = <&L13B>;
vdd-supply = <&L11B>;
tvdd-supply = <&L4B>;
};
&mdss_mdp {
connectors = <&sde_dsi &sde_dsi1 &smmu_sde_unsec &smmu_sde_sec &sde_wb1 &sde_wb2
&sde_dp &sde_cesta>;
};
&dsi_vtdr6130_amoled_cmd {
qcom,ulps-enabled;
qcom,mdss-dsi-display-timings {
timing@0 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <540 40 40 40 1080 40>;
};
timing@1 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <540 40 40 40 1080 40>;
};
timing@2 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <540 40 40 40 1080 40>;
};
timing@3 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <540 40 40 40 1080 40>;
};
};
};
&dsi_vtdr6130_amoled_qsync_144hz_cmd {
qcom,ulps-enabled;
};
&dsi_nt37801_amoled_cmd {
qcom,mdss-dsi-display-timings {
timing@0 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 40 720 40 1440 40>;
};
timing@1 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 40 720 40 1440 40>;
};
timing@2 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 40 720 40 1440 40>;
};
timing@3 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 40 720 40 1440 40>;
};
timing@4 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 40 720 40 1440 40>;
};
};
};
&dsi_nt37801_amoled_cmd_cphy {
qcom,mdss-dsi-display-timings {
timing@0 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 40 720 40 1440 40>;
};
timing@1 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 40 720 40 1440 40>;
};
timing@2 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 40 720 40 1440 40>;
};
};
};
&dsi_nt37801_amoled_fhd_plus_cmd {
qcom,mdss-dsi-display-timings {
timing@0 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <540 40 540 40 1080 40>;
};
timing@1 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <540 40 540 40 1080 40>;
};
timing@2 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <540 40 540 40 1080 40>;
};
timing@3 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <540 40 540 40 1080 40>;
};
timing@4 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <540 40 540 40 1080 40>;
};
};
};
&dsi_nt37801_amoled_cmd_spr {
qcom,mdss-dsi-display-timings {
timing@0 {
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 40 720 40 1440 40>;
};
};
};
&dsi_sharp_4k_dsc_cmd {
qcom,ulps-enabled;
};
&dsi_sim_cmd {
qcom,ulps-enabled;
qcom,mdss-dsi-display-timings {
timing@0 { /* WQHD 60FPS cmd vid mode*/
qcom,panel-roi-alignment = <720 40 720 40 720 40>;
qcom,partial-update-enabled = "single_roi";
};
timing@2 { /* FHD 60FPS cmd mode*/
qcom,panel-roi-alignment = <540 20 540 20 540 20>;
qcom,partial-update-enabled = "single_roi";
};
timing@3 { /* HD 60FPS cmd mode*/
qcom,panel-roi-alignment = <360 40 360 40 360 40>;
qcom,partial-update-enabled = "single_roi";
};
};
};
&dsi_sim_dsc_375_cmd {
qcom,ulps-enabled;
};
&dsi_sim_dsc_10b_cmd {
qcom,ulps-enabled;
};
&dsi_dual_sim_cmd {
qcom,ulps-enabled;
};
&dsi_dual_sim_dsc_375_cmd {
qcom,ulps-enabled;
};
&dsi_sim_sec_hd_cmd {
qcom,ulps-enabled;
qcom,mdss-dsi-display-timings {
timing@0 {
qcom,panel-roi-alignment = <720 40 720 40 720 40>;
qcom,partial-update-enabled = "single_roi";
};
};
};