diff --git a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover-common.dtsi b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover-common.dtsi index 0b4909448e5f99..e9c9f44ff464f2 100644 --- a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover-common.dtsi @@ -152,7 +152,7 @@ }; &mmcc { - status = "disabled"; // TODO: enable this when panel works + status = "okay"; // TODO: enable this when panel works }; &mmss_smmu { diff --git a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover-plus.dts b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover-plus.dts index 989d8d066dd385..2dd452e94758b1 100644 --- a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover-plus.dts +++ b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover-plus.dts @@ -142,6 +142,30 @@ }; &simplefb { + /* + * Prevent unused clocks and power domains from being disabled. It's + * needed to keep bootloader-enabled display stack (and therefore + * framebuffer) working. + */ + assigned-clocks = <&mmcc MDSS_MDP_CLK>, /* from mdp */ + <&mmcc MDSS_VSYNC_CLK>; + assigned-clock-rates = <300000000>, + <19200000>; + clocks = <&mmcc MDSS_AHB_CLK>, /* from mdss & mdp */ + <&mmcc MDSS_AXI_CLK>, + <&mmcc MDSS_VSYNC_CLK>, + <&mmcc MDSS_MDP_CLK>, + <&mmcc BYTE0_CLK_SRC>, /* from mdss_dsi0 */ + <&mmcc PCLK0_CLK_SRC>, + <&mmcc MDSS_BYTE0_CLK>, + <&mmcc MDSS_BYTE0_INTF_CLK>, + <&mmcc MNOC_AHB_CLK>, + <&mmcc MISC_AHB_CLK>, + <&mmcc MDSS_PCLK0_CLK>, + <&mmcc MDSS_ESC0_CLK>; + + power-domains = <&rpmpd SDM660_VDDCX>, <&mmcc MDSS_GDSC>; + /* Let simledrm framebuffer to know panel physical size to allow userspace to do proper DPI scaling */ panel = <&fb_panel>; diff --git a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover.dts b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover.dts index d37d7e33b8f79c..eadb21d21827e1 100644 --- a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover.dts +++ b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-clover.dts @@ -31,6 +31,41 @@ }; }; +&simplefb { + /* + * Prevent unused clocks and power domains from being disabled. It's + * needed to keep bootloader-enabled display stack (and therefore + * framebuffer) working. + */ + assigned-clocks = <&mmcc MDSS_MDP_CLK>, /* from mdp */ + <&mmcc MDSS_VSYNC_CLK>; + assigned-clock-rates = <300000000>, + <19200000>; + clocks = <&mmcc MDSS_AHB_CLK>, /* from mdss & mdp */ + <&mmcc MDSS_AXI_CLK>, + <&mmcc MDSS_VSYNC_CLK>, + <&mmcc MDSS_MDP_CLK>, + <&mmcc BYTE0_CLK_SRC>, /* from mdss_dsi0 */ + <&mmcc PCLK0_CLK_SRC>, + <&mmcc MDSS_BYTE0_CLK>, + <&mmcc MDSS_BYTE0_INTF_CLK>, + <&mmcc MNOC_AHB_CLK>, + <&mmcc MISC_AHB_CLK>, + <&mmcc MDSS_PCLK0_CLK>, + <&mmcc MDSS_ESC0_CLK>; + + power-domains = <&rpmpd SDM660_VDDCX>, <&mmcc MDSS_GDSC>; + + /* Let simledrm framebuffer to know panel physical size to + allow userspace to do proper DPI scaling */ + panel = <&fb_panel>; + + fb_panel: fb-panel { + width-mm = <107>; + height-mm = <172>; + }; +}; + &tlmm { ts_int_active: ts-int-active { pins = "gpio67";