Files
android_kernel_samsung_sm87…/display/sun-sde-display.dtsi
Lei Chen 60fb428708 ARM: dts: msm: add disp_cc vote for all components
Sync state will remove the disp_cc device vote once the device
driver probe is complete. It removes the DSI clock vote early
for continuous splash usecase because DSI driver takes its vote
in component binding instead of device driver probe.

It is better to keep disp_cc vote for components till respective
device probe complete and they register themselves to master
component. This change adds disp_cc vote for smmu_sde_unsec,
smmu_sde_sec, sde_wb1 and sde_wb2 devices to retain vote till
bind_all API is called.

Change-Id: Ie6e39cb53c4fdd93a1ce7d07a0fc99a250235902
Signed-off-by: Lei Chen <quic_chenlei@quicinc.com>
2024-08-15 23:21:44 -07:00

321 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";
};
};
};