* [PATCH v5 01/19] clk: qcom: gcc-qcm2290: Keep the critical clocks always-on from probe
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-04 0:12 ` Dmitry Baryshkov
2026-07-02 18:31 ` [PATCH v5 02/19] dt-bindings: clock: qcom,qcm2290-dispcc: Add DSI1 PHY and sleep clocks Imran Shaik
` (17 subsequent siblings)
18 siblings, 1 reply; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Some GCC branch clocks are required to be kept always-on due to the
hardware requirements. Drop the modelling of those always-on QCM2290 GCC
clocks and use the latest .clk_cbcr convention to keep them enabled from
probe.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/gcc-qcm2290.c | 113 ++++++-----------------------------------
1 file changed, 15 insertions(+), 98 deletions(-)
diff --git a/drivers/clk/qcom/gcc-qcm2290.c b/drivers/clk/qcom/gcc-qcm2290.c
index 6684cab63ae1160848631d1f8cd3c9cb691ff4ec..c6de8d368ec4c69d38f59a8efaed6d66ab14a5b8 100644
--- a/drivers/clk/qcom/gcc-qcm2290.c
+++ b/drivers/clk/qcom/gcc-qcm2290.c
@@ -1397,36 +1397,6 @@ static struct clk_branch gcc_cam_throttle_rt_clk = {
},
};
-static struct clk_branch gcc_camera_ahb_clk = {
- .halt_reg = 0x17008,
- .halt_check = BRANCH_HALT_DELAY,
- .hwcg_reg = 0x17008,
- .hwcg_bit = 1,
- .clkr = {
- .enable_reg = 0x17008,
- .enable_mask = BIT(0),
- .hw.init = &(struct clk_init_data){
- .name = "gcc_camera_ahb_clk",
- .flags = CLK_IS_CRITICAL,
- .ops = &clk_branch2_ops,
- },
- },
-};
-
-static struct clk_branch gcc_camera_xo_clk = {
- .halt_reg = 0x17028,
- .halt_check = BRANCH_HALT,
- .clkr = {
- .enable_reg = 0x17028,
- .enable_mask = BIT(0),
- .hw.init = &(struct clk_init_data){
- .name = "gcc_camera_xo_clk",
- .flags = CLK_IS_CRITICAL,
- .ops = &clk_branch2_ops,
- },
- },
-};
-
static struct clk_branch gcc_camss_axi_clk = {
.halt_reg = 0x58044,
.halt_check = BRANCH_HALT,
@@ -1825,22 +1795,6 @@ static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
},
};
-static struct clk_branch gcc_disp_ahb_clk = {
- .halt_reg = 0x1700c,
- .halt_check = BRANCH_HALT,
- .hwcg_reg = 0x1700c,
- .hwcg_bit = 1,
- .clkr = {
- .enable_reg = 0x1700c,
- .enable_mask = BIT(0),
- .hw.init = &(struct clk_init_data){
- .name = "gcc_disp_ahb_clk",
- .flags = CLK_IS_CRITICAL,
- .ops = &clk_branch2_ops,
- },
- },
-};
-
static struct clk_regmap_div gcc_disp_gpll0_clk_src = {
.reg = 0x17058,
.shift = 0,
@@ -1899,20 +1853,6 @@ static struct clk_branch gcc_disp_throttle_core_clk = {
},
};
-static struct clk_branch gcc_disp_xo_clk = {
- .halt_reg = 0x1702c,
- .halt_check = BRANCH_HALT,
- .clkr = {
- .enable_reg = 0x1702c,
- .enable_mask = BIT(0),
- .hw.init = &(struct clk_init_data){
- .name = "gcc_disp_xo_clk",
- .flags = CLK_IS_CRITICAL,
- .ops = &clk_branch2_ops,
- },
- },
-};
-
static struct clk_branch gcc_gp1_clk = {
.halt_reg = 0x4d000,
.halt_check = BRANCH_HALT,
@@ -1964,22 +1904,6 @@ static struct clk_branch gcc_gp3_clk = {
},
};
-static struct clk_branch gcc_gpu_cfg_ahb_clk = {
- .halt_reg = 0x36004,
- .halt_check = BRANCH_HALT,
- .hwcg_reg = 0x36004,
- .hwcg_bit = 1,
- .clkr = {
- .enable_reg = 0x36004,
- .enable_mask = BIT(0),
- .hw.init = &(struct clk_init_data){
- .name = "gcc_gpu_cfg_ahb_clk",
- .flags = CLK_IS_CRITICAL,
- .ops = &clk_branch2_ops,
- },
- },
-};
-
static struct clk_branch gcc_gpu_gpll0_clk_src = {
.halt_check = BRANCH_HALT_DELAY,
.clkr = {
@@ -2439,22 +2363,6 @@ static struct clk_branch gcc_sdcc2_apps_clk = {
},
};
-static struct clk_branch gcc_sys_noc_cpuss_ahb_clk = {
- .halt_reg = 0x2b06c,
- .halt_check = BRANCH_HALT_VOTED,
- .hwcg_reg = 0x2b06c,
- .hwcg_bit = 1,
- .clkr = {
- .enable_reg = 0x79004,
- .enable_mask = BIT(0),
- .hw.init = &(struct clk_init_data){
- .name = "gcc_sys_noc_cpuss_ahb_clk",
- .flags = CLK_IS_CRITICAL,
- .ops = &clk_branch2_ops,
- },
- },
-};
-
static struct clk_branch gcc_sys_noc_usb3_prim_axi_clk = {
.halt_reg = 0x1a080,
.halt_check = BRANCH_HALT,
@@ -2775,8 +2683,6 @@ static struct clk_regmap *gcc_qcm2290_clocks[] = {
[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
[GCC_CAM_THROTTLE_NRT_CLK] = &gcc_cam_throttle_nrt_clk.clkr,
[GCC_CAM_THROTTLE_RT_CLK] = &gcc_cam_throttle_rt_clk.clkr,
- [GCC_CAMERA_AHB_CLK] = &gcc_camera_ahb_clk.clkr,
- [GCC_CAMERA_XO_CLK] = &gcc_camera_xo_clk.clkr,
[GCC_CAMSS_AXI_CLK] = &gcc_camss_axi_clk.clkr,
[GCC_CAMSS_AXI_CLK_SRC] = &gcc_camss_axi_clk_src.clkr,
[GCC_CAMSS_CAMNOC_ATB_CLK] = &gcc_camss_camnoc_atb_clk.clkr,
@@ -2817,19 +2723,16 @@ static struct clk_regmap *gcc_qcm2290_clocks[] = {
[GCC_CAMSS_TOP_AHB_CLK] = &gcc_camss_top_ahb_clk.clkr,
[GCC_CAMSS_TOP_AHB_CLK_SRC] = &gcc_camss_top_ahb_clk_src.clkr,
[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
- [GCC_DISP_AHB_CLK] = &gcc_disp_ahb_clk.clkr,
[GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr,
[GCC_DISP_GPLL0_DIV_CLK_SRC] = &gcc_disp_gpll0_div_clk_src.clkr,
[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
[GCC_DISP_THROTTLE_CORE_CLK] = &gcc_disp_throttle_core_clk.clkr,
- [GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr,
[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
- [GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr,
[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
[GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr,
@@ -2870,7 +2773,6 @@ static struct clk_regmap *gcc_qcm2290_clocks[] = {
[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
- [GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr,
[GCC_SYS_NOC_USB3_PRIM_AXI_CLK] = &gcc_sys_noc_usb3_prim_axi_clk.clkr,
[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
@@ -2943,6 +2845,15 @@ static struct gdsc *gcc_qcm2290_gdscs[] = {
[HLOS1_VOTE_MM_SNOC_MMU_TBU_NRT_GDSC] = &hlos1_vote_mm_snoc_mmu_tbu_nrt_gdsc,
};
+static const u32 gcc_qcm2290_critical_cbcrs[] = {
+ 0x17008, /* GCC_CAMERA_AHB_CLK */
+ 0x17028, /* GCC_CAMERA_XO_CLK */
+ 0x1700c, /* GCC_DISP_AHB_CLK */
+ 0x1702c, /* GCC_DISP_XO_CLK */
+ 0x36004, /* GCC_GPU_CFG_AHB_CLK */
+ 0x79004, /* GCC_SYS_NOC_CPUSS_AHB_CLK */
+};
+
static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
@@ -2960,6 +2871,11 @@ static const struct regmap_config gcc_qcm2290_regmap_config = {
.fast_io = true,
};
+static const struct qcom_cc_driver_data gcc_qcm2290_driver_data = {
+ .clk_cbcrs = gcc_qcm2290_critical_cbcrs,
+ .num_clk_cbcrs = ARRAY_SIZE(gcc_qcm2290_critical_cbcrs),
+};
+
static const struct qcom_cc_desc gcc_qcm2290_desc = {
.config = &gcc_qcm2290_regmap_config,
.clks = gcc_qcm2290_clocks,
@@ -2968,6 +2884,7 @@ static const struct qcom_cc_desc gcc_qcm2290_desc = {
.num_resets = ARRAY_SIZE(gcc_qcm2290_resets),
.gdscs = gcc_qcm2290_gdscs,
.num_gdscs = ARRAY_SIZE(gcc_qcm2290_gdscs),
+ .driver_data = &gcc_qcm2290_driver_data,
};
static const struct of_device_id gcc_qcm2290_match_table[] = {
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 01/19] clk: qcom: gcc-qcm2290: Keep the critical clocks always-on from probe
2026-07-02 18:31 ` [PATCH v5 01/19] clk: qcom: gcc-qcm2290: Keep the critical clocks always-on from probe Imran Shaik
@ 2026-07-04 0:12 ` Dmitry Baryshkov
0 siblings, 0 replies; 44+ messages in thread
From: Dmitry Baryshkov @ 2026-07-04 0:12 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:23AM +0530, Imran Shaik wrote:
> Some GCC branch clocks are required to be kept always-on due to the
> hardware requirements. Drop the modelling of those always-on QCM2290 GCC
> clocks and use the latest .clk_cbcr convention to keep them enabled from
> probe.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> drivers/clk/qcom/gcc-qcm2290.c | 113 ++++++-----------------------------------
> 1 file changed, 15 insertions(+), 98 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 02/19] dt-bindings: clock: qcom,qcm2290-dispcc: Add DSI1 PHY and sleep clocks
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
2026-07-02 18:31 ` [PATCH v5 01/19] clk: qcom: gcc-qcm2290: Keep the critical clocks always-on from probe Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 6:13 ` Krzysztof Kozlowski
2026-07-02 18:31 ` [PATCH v5 03/19] dt-bindings: clock: qcom,qcm2290-dispcc: Add missing power-domains property Imran Shaik
` (16 subsequent siblings)
18 siblings, 1 reply; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Update the QCM2290 DISPCC binding to document additional clock inputs
supported by the hardware, including DSI1 PHY byte/pixel clocks and the
sleep clock, alongside the existing clock list. These external clock inputs
were missing, so update the binding to correctly represent the hardware.
This change breaks the ABI, although the existing clock inputs ordering is
unchanged.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
.../bindings/clock/qcom,qcm2290-dispcc.yaml | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml b/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml
index 4a533b45eec2d8e7b866c3436bfe6f80fcd714fb..24f2cce033f6e109b65a79553fba5295eb9adf3a 100644
--- a/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml
@@ -25,8 +25,11 @@ properties:
- description: Board active-only XO source
- description: GPLL0 source from GCC
- description: GPLL0 div source from GCC
- - description: Byte clock from DSI PHY
- - description: Pixel clock from DSI PHY
+ - description: Byte clock from DSI PHY0
+ - description: Pixel clock from DSI PHY0
+ - description: Byte clock from DSI PHY1
+ - description: Pixel clock from DSI PHY1
+ - description: Board sleep clock
clock-names:
items:
@@ -36,6 +39,9 @@ properties:
- const: gcc_disp_gpll0_div_clk_src
- const: dsi0_phy_pll_out_byteclk
- const: dsi0_phy_pll_out_dsiclk
+ - const: dsi1_phy_pll_out_byteclk
+ - const: dsi1_phy_pll_out_dsiclk
+ - const: sleep_clk
required:
- compatible
@@ -61,13 +67,19 @@ examples:
<&gcc GCC_DISP_GPLL0_CLK_SRC>,
<&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
<&dsi0_phy 0>,
- <&dsi0_phy 1>;
+ <&dsi0_phy 1>,
+ <&dsi1_phy 0>,
+ <&dsi1_phy 1>,
+ <&sleep_clk>;
clock-names = "bi_tcxo",
"bi_tcxo_ao",
"gcc_disp_gpll0_clk_src",
"gcc_disp_gpll0_div_clk_src",
"dsi0_phy_pll_out_byteclk",
- "dsi0_phy_pll_out_dsiclk";
+ "dsi0_phy_pll_out_dsiclk",
+ "dsi1_phy_pll_out_byteclk",
+ "dsi1_phy_pll_out_dsiclk",
+ "sleep_clk";
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 02/19] dt-bindings: clock: qcom,qcm2290-dispcc: Add DSI1 PHY and sleep clocks
2026-07-02 18:31 ` [PATCH v5 02/19] dt-bindings: clock: qcom,qcm2290-dispcc: Add DSI1 PHY and sleep clocks Imran Shaik
@ 2026-07-03 6:13 ` Krzysztof Kozlowski
0 siblings, 0 replies; 44+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-03 6:13 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:24AM +0530, Imran Shaik wrote:
> Update the QCM2290 DISPCC binding to document additional clock inputs
> supported by the hardware, including DSI1 PHY byte/pixel clocks and the
> sleep clock, alongside the existing clock list. These external clock inputs
> were missing, so update the binding to correctly represent the hardware.
This sentence repeats the first one.
I asked at v5: you need to provide reasons. I understand the clocks were
missing and what does that mean? If everything was working fine, while
the clocks is missing, there is no need to change the ABI, right?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 03/19] dt-bindings: clock: qcom,qcm2290-dispcc: Add missing power-domains property
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
2026-07-02 18:31 ` [PATCH v5 01/19] clk: qcom: gcc-qcm2290: Keep the critical clocks always-on from probe Imran Shaik
2026-07-02 18:31 ` [PATCH v5 02/19] dt-bindings: clock: qcom,qcm2290-dispcc: Add DSI1 PHY and sleep clocks Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 6:15 ` Krzysztof Kozlowski
2026-07-02 18:31 ` [PATCH v5 04/19] dt-bindings: clock: qcom: Add Qualcomm Shikra Display clock controller Imran Shaik
` (15 subsequent siblings)
18 siblings, 1 reply; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Add the missing power-domains property to associate DISPCC with RPMPD_CX.
This is to ensure the genpd performance state votes on the GDSC to get
propagated to the CX rail and to avoid the rail under-voltage conditions.
This change breaks ABI, as the power-domains property is maked as required.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml b/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml
index 24f2cce033f6e109b65a79553fba5295eb9adf3a..fe49d7fcbd4985adf340945c4b907758abf7ea10 100644
--- a/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml
@@ -43,10 +43,15 @@ properties:
- const: dsi1_phy_pll_out_dsiclk
- const: sleep_clk
+ power-domains:
+ items:
+ - description: CX domain
+
required:
- compatible
- clocks
- clock-names
+ - power-domains
- '#power-domain-cells'
allOf:
@@ -59,6 +64,7 @@ examples:
#include <dt-bindings/clock/qcom,dispcc-qcm2290.h>
#include <dt-bindings/clock/qcom,gcc-qcm2290.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
+ #include <dt-bindings/power/qcom-rpmpd.h>
clock-controller@5f00000 {
compatible = "qcom,qcm2290-dispcc";
reg = <0x5f00000 0x20000>;
@@ -80,6 +86,7 @@ examples:
"dsi1_phy_pll_out_byteclk",
"dsi1_phy_pll_out_dsiclk",
"sleep_clk";
+ power-domains = <&rpmpd RPMPD_VDDCX>;
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 03/19] dt-bindings: clock: qcom,qcm2290-dispcc: Add missing power-domains property
2026-07-02 18:31 ` [PATCH v5 03/19] dt-bindings: clock: qcom,qcm2290-dispcc: Add missing power-domains property Imran Shaik
@ 2026-07-03 6:15 ` Krzysztof Kozlowski
0 siblings, 0 replies; 44+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-03 6:15 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:25AM +0530, Imran Shaik wrote:
> Add the missing power-domains property to associate DISPCC with RPMPD_CX.
> This is to ensure the genpd performance state votes on the GDSC to get
> propagated to the CX rail and to avoid the rail under-voltage conditions.
> This change breaks ABI, as the power-domains property is maked as required.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml | 7 +++++++
> 1 file changed, 7 insertions(+)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 04/19] dt-bindings: clock: qcom: Add Qualcomm Shikra Display clock controller
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (2 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 03/19] dt-bindings: clock: qcom,qcm2290-dispcc: Add missing power-domains property Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 6:14 ` Krzysztof Kozlowski
2026-07-02 18:31 ` [PATCH v5 05/19] dt-bindings: clock: qcom: Add Qualcomm Shikra GPU " Imran Shaik
` (14 subsequent siblings)
18 siblings, 1 reply; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
The Qualcomm Shikra Display clock controller has clocks same as QCM2290.
Hence, add support to use the QCM2290 DISPCC compatible as fallback for
Shikra DISPCC.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml b/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml
index fe49d7fcbd4985adf340945c4b907758abf7ea10..54d56bac66d8b40d1457f2cd1797b19cc9133686 100644
--- a/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml
@@ -17,7 +17,13 @@ description: |
properties:
compatible:
- const: qcom,qcm2290-dispcc
+ oneOf:
+ - items:
+ - enum:
+ - qcom,shikra-dispcc
+ - const: qcom,qcm2290-dispcc
+ - enum:
+ - qcom,qcm2290-dispcc
clocks:
items:
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 04/19] dt-bindings: clock: qcom: Add Qualcomm Shikra Display clock controller
2026-07-02 18:31 ` [PATCH v5 04/19] dt-bindings: clock: qcom: Add Qualcomm Shikra Display clock controller Imran Shaik
@ 2026-07-03 6:14 ` Krzysztof Kozlowski
0 siblings, 0 replies; 44+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-03 6:14 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:26AM +0530, Imran Shaik wrote:
> The Qualcomm Shikra Display clock controller has clocks same as QCM2290.
> Hence, add support to use the QCM2290 DISPCC compatible as fallback for
> Shikra DISPCC.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/clock/qcom,qcm2290-dispcc.yaml | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 05/19] dt-bindings: clock: qcom: Add Qualcomm Shikra GPU clock controller
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (3 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 04/19] dt-bindings: clock: qcom: Add Qualcomm Shikra Display clock controller Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 6:14 ` Krzysztof Kozlowski
2026-07-02 18:31 ` [PATCH v5 06/19] clk: qcom: dispcc-qcm2290: Move to the latest common qcom_cc_probe() model Imran Shaik
` (13 subsequent siblings)
18 siblings, 1 reply; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
The Qualcomm Shikra GPU clock controller is similar to QCM2290 GPUCC
hardware block, with same set of clocks and minor other differences.
Hence reuse the QCM2290 header file for Shikra and document the
Qualcomm Shikra GPUCC compatible.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
Documentation/devicetree/bindings/clock/qcom,qcm2290-gpucc.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/clock/qcom,qcm2290-gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,qcm2290-gpucc.yaml
index bedbdabef67286afb6ce0a1ac53d1a9a15a01a92..ad2386190346cc10f53763e7c3b9fcb35fca8ed5 100644
--- a/Documentation/devicetree/bindings/clock/qcom,qcm2290-gpucc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,qcm2290-gpucc.yaml
@@ -18,7 +18,9 @@ description: |
properties:
compatible:
- const: qcom,qcm2290-gpucc
+ enum:
+ - qcom,qcm2290-gpucc
+ - qcom,shikra-gpucc
reg:
maxItems: 1
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 05/19] dt-bindings: clock: qcom: Add Qualcomm Shikra GPU clock controller
2026-07-02 18:31 ` [PATCH v5 05/19] dt-bindings: clock: qcom: Add Qualcomm Shikra GPU " Imran Shaik
@ 2026-07-03 6:14 ` Krzysztof Kozlowski
0 siblings, 0 replies; 44+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-03 6:14 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:27AM +0530, Imran Shaik wrote:
> The Qualcomm Shikra GPU clock controller is similar to QCM2290 GPUCC
> hardware block, with same set of clocks and minor other differences.
> Hence reuse the QCM2290 header file for Shikra and document the
> Qualcomm Shikra GPUCC compatible.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/clock/qcom,qcm2290-gpucc.yaml | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 06/19] clk: qcom: dispcc-qcm2290: Move to the latest common qcom_cc_probe() model
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (4 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 05/19] dt-bindings: clock: qcom: Add Qualcomm Shikra GPU " Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 7:13 ` Konrad Dybcio
2026-07-02 18:31 ` [PATCH v5 07/19] clk: qcom: dispcc-qcm2290: Switch to DT index based clk lookup Imran Shaik
` (12 subsequent siblings)
18 siblings, 1 reply; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik, Konrad Dybcio,
Dmitry Baryshkov
Update the QCM2290 DISPCC driver to use the qcom_cc_probe() model by moving
the critical clocks handling and PLL configurations from probe to the
driver_data to align with the latest convention.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/dispcc-qcm2290.c | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/drivers/clk/qcom/dispcc-qcm2290.c b/drivers/clk/qcom/dispcc-qcm2290.c
index 4d6aad280ae178426bb70528fcd9699627359ef2..50a0705128a37073a077b560d0c9e57544d54348 100644
--- a/drivers/clk/qcom/dispcc-qcm2290.c
+++ b/drivers/clk/qcom/dispcc-qcm2290.c
@@ -2,6 +2,7 @@
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2021, Linaro Ltd.
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
*/
#include <linux/clk-provider.h>
@@ -48,6 +49,7 @@ static const struct alpha_pll_config disp_cc_pll0_config = {
static struct clk_alpha_pll disp_cc_pll0 = {
.offset = 0x0,
+ .config = &disp_cc_pll0_config,
.vco_table = spark_vco,
.num_vco = ARRAY_SIZE(spark_vco),
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
@@ -482,6 +484,14 @@ static struct clk_regmap *disp_cc_qcm2290_clocks[] = {
[DISP_CC_SLEEP_CLK_SRC] = &disp_cc_sleep_clk_src.clkr,
};
+static struct clk_alpha_pll *disp_cc_qcm2290_plls[] = {
+ &disp_cc_pll0,
+};
+
+static const u32 disp_cc_qcm2290_critical_cbcrs[] = {
+ 0x604c, /* DISP_CC_XO_CLK */
+};
+
static const struct regmap_config disp_cc_qcm2290_regmap_config = {
.reg_bits = 32,
.reg_stride = 4,
@@ -490,6 +500,13 @@ static const struct regmap_config disp_cc_qcm2290_regmap_config = {
.fast_io = true,
};
+static const struct qcom_cc_driver_data disp_cc_qcm2290_driver_data = {
+ .alpha_plls = disp_cc_qcm2290_plls,
+ .num_alpha_plls = ARRAY_SIZE(disp_cc_qcm2290_plls),
+ .clk_cbcrs = disp_cc_qcm2290_critical_cbcrs,
+ .num_clk_cbcrs = ARRAY_SIZE(disp_cc_qcm2290_critical_cbcrs),
+};
+
static const struct qcom_cc_desc disp_cc_qcm2290_desc = {
.config = &disp_cc_qcm2290_regmap_config,
.clks = disp_cc_qcm2290_clocks,
@@ -498,6 +515,7 @@ static const struct qcom_cc_desc disp_cc_qcm2290_desc = {
.num_gdscs = ARRAY_SIZE(disp_cc_qcm2290_gdscs),
.resets = disp_cc_qcm2290_resets,
.num_resets = ARRAY_SIZE(disp_cc_qcm2290_resets),
+ .driver_data = &disp_cc_qcm2290_driver_data,
};
static const struct of_device_id disp_cc_qcm2290_match_table[] = {
@@ -508,25 +526,7 @@ MODULE_DEVICE_TABLE(of, disp_cc_qcm2290_match_table);
static int disp_cc_qcm2290_probe(struct platform_device *pdev)
{
- struct regmap *regmap;
- int ret;
-
- regmap = qcom_cc_map(pdev, &disp_cc_qcm2290_desc);
- if (IS_ERR(regmap))
- return PTR_ERR(regmap);
-
- clk_alpha_pll_configure(&disp_cc_pll0, regmap, &disp_cc_pll0_config);
-
- /* Keep some clocks always-on */
- qcom_branch_set_clk_en(regmap, 0x604c); /* DISP_CC_XO_CLK */
-
- ret = qcom_cc_really_probe(&pdev->dev, &disp_cc_qcm2290_desc, regmap);
- if (ret) {
- dev_err(&pdev->dev, "Failed to register DISP CC clocks\n");
- return ret;
- }
-
- return ret;
+ return qcom_cc_probe(pdev, &disp_cc_qcm2290_desc);
}
static struct platform_driver disp_cc_qcm2290_driver = {
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 06/19] clk: qcom: dispcc-qcm2290: Move to the latest common qcom_cc_probe() model
2026-07-02 18:31 ` [PATCH v5 06/19] clk: qcom: dispcc-qcm2290: Move to the latest common qcom_cc_probe() model Imran Shaik
@ 2026-07-03 7:13 ` Konrad Dybcio
0 siblings, 0 replies; 44+ messages in thread
From: Konrad Dybcio @ 2026-07-03 7:13 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Dmitry Baryshkov
On 7/2/26 8:31 PM, Imran Shaik wrote:
> Update the QCM2290 DISPCC driver to use the qcom_cc_probe() model by moving
> the critical clocks handling and PLL configurations from probe to the
> driver_data to align with the latest convention.
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
[...]
> static const struct qcom_cc_desc disp_cc_qcm2290_desc = {
> .config = &disp_cc_qcm2290_regmap_config,
> .clks = disp_cc_qcm2290_clocks,
> @@ -498,6 +515,7 @@ static const struct qcom_cc_desc disp_cc_qcm2290_desc = {
> .num_gdscs = ARRAY_SIZE(disp_cc_qcm2290_gdscs),
> .resets = disp_cc_qcm2290_resets,
> .num_resets = ARRAY_SIZE(disp_cc_qcm2290_resets),
> + .driver_data = &disp_cc_qcm2290_driver_data,
> };
Now that this clock controller takes a power domain, this needs use_rpm
= true, or there will be a permanent 'enable' vote
Konrad
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 07/19] clk: qcom: dispcc-qcm2290: Switch to DT index based clk lookup
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (5 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 06/19] clk: qcom: dispcc-qcm2290: Move to the latest common qcom_cc_probe() model Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 7:15 ` Konrad Dybcio
2026-07-04 0:17 ` Dmitry Baryshkov
2026-07-02 18:31 ` [PATCH v5 08/19] clk: qcom: dispcc-qcm2290: Set HW_CTRL_TRIGGER flag for GDSC Imran Shaik
` (11 subsequent siblings)
18 siblings, 2 replies; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Update the QCM2290 DISPCC driver to use the DT index based parent clock
lookup to align with the latest convention. While updating the parent data,
fix the MDSS MDP clock source parent to use gcc_disp_gpll0_div_clk_src
instead of gcc_disp_gpll0_clk_src. This parent is currently unused by the
frequency tables, but should be corrected to match the hardware clock plan.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/dispcc-qcm2290.c | 36 ++++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)
diff --git a/drivers/clk/qcom/dispcc-qcm2290.c b/drivers/clk/qcom/dispcc-qcm2290.c
index 50a0705128a37073a077b560d0c9e57544d54348..6f8c21f05ba4536d45c2a609d152f871cb875bbb 100644
--- a/drivers/clk/qcom/dispcc-qcm2290.c
+++ b/drivers/clk/qcom/dispcc-qcm2290.c
@@ -23,6 +23,18 @@
#include "gdsc.h"
#include "reset.h"
+enum {
+ DT_BI_TCXO,
+ DT_BI_TCXO_AO,
+ DT_GPLL0,
+ DT_GPLL0_OUT_DIV,
+ DT_DSI0_PHY_PLL_OUT_BYTECLK,
+ DT_DSI0_PHY_PLL_OUT_DSICLK,
+ DT_DSI1_PHY_PLL_OUT_BYTECLK,
+ DT_DSI1_PHY_PLL_OUT_DSICLK,
+ DT_SLEEP_CLK,
+};
+
enum {
P_BI_TCXO,
P_BI_TCXO_AO,
@@ -57,7 +69,7 @@ static struct clk_alpha_pll disp_cc_pll0 = {
.hw.init = &(struct clk_init_data){
.name = "disp_cc_pll0",
.parent_data = &(const struct clk_parent_data){
- .fw_name = "bi_tcxo",
+ .index = DT_BI_TCXO,
},
.num_parents = 1,
.ops = &clk_alpha_pll_ops,
@@ -71,8 +83,8 @@ static const struct parent_map disp_cc_parent_map_0[] = {
};
static const struct clk_parent_data disp_cc_parent_data_0[] = {
- { .fw_name = "bi_tcxo" },
- { .fw_name = "dsi0_phy_pll_out_byteclk" },
+ { .index = DT_BI_TCXO },
+ { .index = DT_DSI0_PHY_PLL_OUT_BYTECLK },
};
static const struct parent_map disp_cc_parent_map_1[] = {
@@ -80,7 +92,7 @@ static const struct parent_map disp_cc_parent_map_1[] = {
};
static const struct clk_parent_data disp_cc_parent_data_1[] = {
- { .fw_name = "bi_tcxo" },
+ { .index = DT_BI_TCXO },
};
static const struct parent_map disp_cc_parent_map_2[] = {
@@ -89,20 +101,20 @@ static const struct parent_map disp_cc_parent_map_2[] = {
};
static const struct clk_parent_data disp_cc_parent_data_2[] = {
- { .fw_name = "bi_tcxo_ao" },
- { .fw_name = "gcc_disp_gpll0_div_clk_src" },
+ { .index = DT_BI_TCXO_AO },
+ { .index = DT_GPLL0_OUT_DIV },
};
static const struct parent_map disp_cc_parent_map_3[] = {
{ P_BI_TCXO, 0 },
{ P_DISP_CC_PLL0_OUT_MAIN, 1 },
- { P_GPLL0_OUT_MAIN, 4 },
+ { P_GPLL0_OUT_DIV, 4 },
};
static const struct clk_parent_data disp_cc_parent_data_3[] = {
- { .fw_name = "bi_tcxo" },
+ { .index = DT_BI_TCXO },
{ .hw = &disp_cc_pll0.clkr.hw },
- { .fw_name = "gcc_disp_gpll0_clk_src" },
+ { .index = DT_GPLL0_OUT_DIV },
};
static const struct parent_map disp_cc_parent_map_4[] = {
@@ -111,8 +123,8 @@ static const struct parent_map disp_cc_parent_map_4[] = {
};
static const struct clk_parent_data disp_cc_parent_data_4[] = {
- { .fw_name = "bi_tcxo" },
- { .fw_name = "dsi0_phy_pll_out_dsiclk" },
+ { .index = DT_BI_TCXO },
+ { .index = DT_DSI0_PHY_PLL_OUT_DSICLK },
};
static const struct parent_map disp_cc_parent_map_5[] = {
@@ -120,7 +132,7 @@ static const struct parent_map disp_cc_parent_map_5[] = {
};
static const struct clk_parent_data disp_cc_parent_data_5[] = {
- { .fw_name = "sleep_clk" },
+ { .index = DT_SLEEP_CLK },
};
static struct clk_rcg2 disp_cc_mdss_byte0_clk_src = {
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 07/19] clk: qcom: dispcc-qcm2290: Switch to DT index based clk lookup
2026-07-02 18:31 ` [PATCH v5 07/19] clk: qcom: dispcc-qcm2290: Switch to DT index based clk lookup Imran Shaik
@ 2026-07-03 7:15 ` Konrad Dybcio
2026-07-04 0:17 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Konrad Dybcio @ 2026-07-03 7:15 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel
On 7/2/26 8:31 PM, Imran Shaik wrote:
> Update the QCM2290 DISPCC driver to use the DT index based parent clock
> lookup to align with the latest convention. While updating the parent data,
> fix the MDSS MDP clock source parent to use gcc_disp_gpll0_div_clk_src
> instead of gcc_disp_gpll0_clk_src. This parent is currently unused by the
> frequency tables, but should be corrected to match the hardware clock plan.
That change is invalid according to the agatti clock docs -
DISP_CC_MDSS_MDP_CLK_SRC RCG leg 4 takes GPLL0_OUT_MAIN as
an input
Konrad
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: [PATCH v5 07/19] clk: qcom: dispcc-qcm2290: Switch to DT index based clk lookup
2026-07-02 18:31 ` [PATCH v5 07/19] clk: qcom: dispcc-qcm2290: Switch to DT index based clk lookup Imran Shaik
2026-07-03 7:15 ` Konrad Dybcio
@ 2026-07-04 0:17 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Dmitry Baryshkov @ 2026-07-04 0:17 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:29AM +0530, Imran Shaik wrote:
> Update the QCM2290 DISPCC driver to use the DT index based parent clock
> lookup to align with the latest convention.
Why? Missing the reason for a change.
> While updating the parent data,
> fix the MDSS MDP clock source parent to use gcc_disp_gpll0_div_clk_src
> instead of gcc_disp_gpll0_clk_src. This parent is currently unused by the
> frequency tables, but should be corrected to match the hardware clock plan.
This sounds like a fix. Please never mix the refactoring and meaningful
changes in the same patch. Also, I believe, Konrad suggested that the
change in invalid.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> drivers/clk/qcom/dispcc-qcm2290.c | 36 ++++++++++++++++++++++++------------
> 1 file changed, 24 insertions(+), 12 deletions(-)
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 08/19] clk: qcom: dispcc-qcm2290: Set HW_CTRL_TRIGGER flag for GDSC
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (6 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 07/19] clk: qcom: dispcc-qcm2290: Switch to DT index based clk lookup Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 7:24 ` Konrad Dybcio
2026-07-02 18:31 ` [PATCH v5 09/19] clk: qcom: qcm2290: Set POLL_CFG_GDSCR flag for DISPCC and GPUCC GDSCs Imran Shaik
` (10 subsequent siblings)
18 siblings, 1 reply; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Set HW_CTRL_TRIGGER flag for the MDSS GDSC to provide dynamic control to
switch the GDSC HW and SW modes at runtime.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/dispcc-qcm2290.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/clk/qcom/dispcc-qcm2290.c b/drivers/clk/qcom/dispcc-qcm2290.c
index 6f8c21f05ba4536d45c2a609d152f871cb875bbb..89a6cdd26217381cd44a515766363cf94d0aaeeb 100644
--- a/drivers/clk/qcom/dispcc-qcm2290.c
+++ b/drivers/clk/qcom/dispcc-qcm2290.c
@@ -467,7 +467,7 @@ static struct gdsc mdss_gdsc = {
.name = "mdss_gdsc",
},
.pwrsts = PWRSTS_OFF_ON,
- .flags = HW_CTRL,
+ .flags = HW_CTRL_TRIGGER,
};
static struct gdsc *disp_cc_qcm2290_gdscs[] = {
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 08/19] clk: qcom: dispcc-qcm2290: Set HW_CTRL_TRIGGER flag for GDSC
2026-07-02 18:31 ` [PATCH v5 08/19] clk: qcom: dispcc-qcm2290: Set HW_CTRL_TRIGGER flag for GDSC Imran Shaik
@ 2026-07-03 7:24 ` Konrad Dybcio
0 siblings, 0 replies; 44+ messages in thread
From: Konrad Dybcio @ 2026-07-03 7:24 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel
On 7/2/26 8:31 PM, Imran Shaik wrote:
> Set HW_CTRL_TRIGGER flag for the MDSS GDSC to provide dynamic control to
> switch the GDSC HW and SW modes at runtime.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> drivers/clk/qcom/dispcc-qcm2290.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clk/qcom/dispcc-qcm2290.c b/drivers/clk/qcom/dispcc-qcm2290.c
> index 6f8c21f05ba4536d45c2a609d152f871cb875bbb..89a6cdd26217381cd44a515766363cf94d0aaeeb 100644
> --- a/drivers/clk/qcom/dispcc-qcm2290.c
> +++ b/drivers/clk/qcom/dispcc-qcm2290.c
> @@ -467,7 +467,7 @@ static struct gdsc mdss_gdsc = {
> .name = "mdss_gdsc",
> },
> .pwrsts = PWRSTS_OFF_ON,
> - .flags = HW_CTRL,
> + .flags = HW_CTRL_TRIGGER,
No other dispcc driver sets this (other than kaanapali). Downstream uses
this for when DISP RSC (which agatti doesn't have [1]) is supposed to
idle
Konrad
[1] (well maybe it does but there's no RPMH so essentially it's not there)
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 09/19] clk: qcom: qcm2290: Set POLL_CFG_GDSCR flag for DISPCC and GPUCC GDSCs
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (7 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 08/19] clk: qcom: dispcc-qcm2290: Set HW_CTRL_TRIGGER flag for GDSC Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 7:28 ` Konrad Dybcio
2026-07-04 0:18 ` Dmitry Baryshkov
2026-07-02 18:31 ` [PATCH v5 10/19] clk: qcom: qcm2290: Add RETAIN_FF_ENABLE " Imran Shaik
` (9 subsequent siblings)
18 siblings, 2 replies; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
On some targets, the GDSCR status bit may not reflect the actual state of
the GDSC, instead the power on/off bits in CFG_GDSCR must be polled to
determine the GDSC state correctly. Set POLL_CFG_GDSCR flag for the QCM2290
MDSS GDSC and GPUCC GX GDSC to ensure the correct GDSC status. This is not
applicable for GPUCC CX GDSC, which relies on gds_hw_ctrl status.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/dispcc-qcm2290.c | 2 +-
drivers/clk/qcom/gpucc-qcm2290.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/qcom/dispcc-qcm2290.c b/drivers/clk/qcom/dispcc-qcm2290.c
index 89a6cdd26217381cd44a515766363cf94d0aaeeb..6ee074555099ab72106cfae7c21adbd1b4a0fdac 100644
--- a/drivers/clk/qcom/dispcc-qcm2290.c
+++ b/drivers/clk/qcom/dispcc-qcm2290.c
@@ -467,7 +467,7 @@ static struct gdsc mdss_gdsc = {
.name = "mdss_gdsc",
},
.pwrsts = PWRSTS_OFF_ON,
- .flags = HW_CTRL_TRIGGER,
+ .flags = HW_CTRL_TRIGGER | POLL_CFG_GDSCR,
};
static struct gdsc *disp_cc_qcm2290_gdscs[] = {
diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2290.c
index 66dea9d2a0e519dfc64d977ef107b5c875da3869..3b130f69bb93898ce49654f2366851a7c1c94524 100644
--- a/drivers/clk/qcom/gpucc-qcm2290.c
+++ b/drivers/clk/qcom/gpucc-qcm2290.c
@@ -313,7 +313,7 @@ static struct gdsc gpu_gx_gdsc = {
},
.parent = &gpu_cx_gdsc.pd,
.pwrsts = PWRSTS_OFF_ON,
- .flags = CLAMP_IO | AON_RESET | SW_RESET,
+ .flags = POLL_CFG_GDSCR | CLAMP_IO | AON_RESET | SW_RESET,
};
static struct clk_regmap *gpu_cc_qcm2290_clocks[] = {
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 09/19] clk: qcom: qcm2290: Set POLL_CFG_GDSCR flag for DISPCC and GPUCC GDSCs
2026-07-02 18:31 ` [PATCH v5 09/19] clk: qcom: qcm2290: Set POLL_CFG_GDSCR flag for DISPCC and GPUCC GDSCs Imran Shaik
@ 2026-07-03 7:28 ` Konrad Dybcio
2026-07-04 0:18 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Konrad Dybcio @ 2026-07-03 7:28 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel
On 7/2/26 8:31 PM, Imran Shaik wrote:
> On some targets, the GDSCR status bit may not reflect the actual state of
> the GDSC, instead the power on/off bits in CFG_GDSCR must be polled to
> determine the GDSC state correctly. Set POLL_CFG_GDSCR flag for the QCM2290
> MDSS GDSC and GPUCC GX GDSC to ensure the correct GDSC status. This is not
> applicable for GPUCC CX GDSC, which relies on gds_hw_ctrl status.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
Downstream doesn't set that, but at worst this should be a NOP..
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: [PATCH v5 09/19] clk: qcom: qcm2290: Set POLL_CFG_GDSCR flag for DISPCC and GPUCC GDSCs
2026-07-02 18:31 ` [PATCH v5 09/19] clk: qcom: qcm2290: Set POLL_CFG_GDSCR flag for DISPCC and GPUCC GDSCs Imran Shaik
2026-07-03 7:28 ` Konrad Dybcio
@ 2026-07-04 0:18 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Dmitry Baryshkov @ 2026-07-04 0:18 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:31AM +0530, Imran Shaik wrote:
> On some targets, the GDSCR status bit may not reflect the actual state of
Which targets? This is all about Agatti.
> the GDSC, instead the power on/off bits in CFG_GDSCR must be polled to
> determine the GDSC state correctly. Set POLL_CFG_GDSCR flag for the QCM2290
> MDSS GDSC and GPUCC GX GDSC to ensure the correct GDSC status. This is not
> applicable for GPUCC CX GDSC, which relies on gds_hw_ctrl status.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> drivers/clk/qcom/dispcc-qcm2290.c | 2 +-
> drivers/clk/qcom/gpucc-qcm2290.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clk/qcom/dispcc-qcm2290.c b/drivers/clk/qcom/dispcc-qcm2290.c
> index 89a6cdd26217381cd44a515766363cf94d0aaeeb..6ee074555099ab72106cfae7c21adbd1b4a0fdac 100644
> --- a/drivers/clk/qcom/dispcc-qcm2290.c
> +++ b/drivers/clk/qcom/dispcc-qcm2290.c
> @@ -467,7 +467,7 @@ static struct gdsc mdss_gdsc = {
> .name = "mdss_gdsc",
> },
> .pwrsts = PWRSTS_OFF_ON,
> - .flags = HW_CTRL_TRIGGER,
> + .flags = HW_CTRL_TRIGGER | POLL_CFG_GDSCR,
> };
>
> static struct gdsc *disp_cc_qcm2290_gdscs[] = {
> diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2290.c
> index 66dea9d2a0e519dfc64d977ef107b5c875da3869..3b130f69bb93898ce49654f2366851a7c1c94524 100644
> --- a/drivers/clk/qcom/gpucc-qcm2290.c
> +++ b/drivers/clk/qcom/gpucc-qcm2290.c
> @@ -313,7 +313,7 @@ static struct gdsc gpu_gx_gdsc = {
> },
> .parent = &gpu_cx_gdsc.pd,
> .pwrsts = PWRSTS_OFF_ON,
> - .flags = CLAMP_IO | AON_RESET | SW_RESET,
> + .flags = POLL_CFG_GDSCR | CLAMP_IO | AON_RESET | SW_RESET,
> };
>
> static struct clk_regmap *gpu_cc_qcm2290_clocks[] = {
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 10/19] clk: qcom: qcm2290: Add RETAIN_FF_ENABLE flag for DISPCC and GPUCC GDSCs
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (8 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 09/19] clk: qcom: qcm2290: Set POLL_CFG_GDSCR flag for DISPCC and GPUCC GDSCs Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-04 0:19 ` Dmitry Baryshkov
2026-07-02 18:31 ` [PATCH v5 11/19] clk: qcom: qcm2290: Update DISPCC and GPUCC GDSC *wait_val values Imran Shaik
` (8 subsequent siblings)
18 siblings, 1 reply; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Add RETAIN_FF_ENABLE flag for DISPCC and GPUCC GDSCs on QCM2290 to retain
the register context across GDSC power collapse.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/dispcc-qcm2290.c | 2 +-
drivers/clk/qcom/gpucc-qcm2290.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/clk/qcom/dispcc-qcm2290.c b/drivers/clk/qcom/dispcc-qcm2290.c
index 6ee074555099ab72106cfae7c21adbd1b4a0fdac..af5527f6a6aed94d372f5c54fa353ad4160549fe 100644
--- a/drivers/clk/qcom/dispcc-qcm2290.c
+++ b/drivers/clk/qcom/dispcc-qcm2290.c
@@ -467,7 +467,7 @@ static struct gdsc mdss_gdsc = {
.name = "mdss_gdsc",
},
.pwrsts = PWRSTS_OFF_ON,
- .flags = HW_CTRL_TRIGGER | POLL_CFG_GDSCR,
+ .flags = HW_CTRL_TRIGGER | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
};
static struct gdsc *disp_cc_qcm2290_gdscs[] = {
diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2290.c
index 3b130f69bb93898ce49654f2366851a7c1c94524..8d397cadc86aaa1666e27c8c4185b9b3de13cf94 100644
--- a/drivers/clk/qcom/gpucc-qcm2290.c
+++ b/drivers/clk/qcom/gpucc-qcm2290.c
@@ -300,7 +300,7 @@ static struct gdsc gpu_cx_gdsc = {
.name = "gpu_cx_gdsc",
},
.pwrsts = PWRSTS_OFF_ON,
- .flags = VOTABLE,
+ .flags = RETAIN_FF_ENABLE | VOTABLE,
};
static struct gdsc gpu_gx_gdsc = {
@@ -313,7 +313,7 @@ static struct gdsc gpu_gx_gdsc = {
},
.parent = &gpu_cx_gdsc.pd,
.pwrsts = PWRSTS_OFF_ON,
- .flags = POLL_CFG_GDSCR | CLAMP_IO | AON_RESET | SW_RESET,
+ .flags = RETAIN_FF_ENABLE | POLL_CFG_GDSCR | CLAMP_IO | AON_RESET | SW_RESET,
};
static struct clk_regmap *gpu_cc_qcm2290_clocks[] = {
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 10/19] clk: qcom: qcm2290: Add RETAIN_FF_ENABLE flag for DISPCC and GPUCC GDSCs
2026-07-02 18:31 ` [PATCH v5 10/19] clk: qcom: qcm2290: Add RETAIN_FF_ENABLE " Imran Shaik
@ 2026-07-04 0:19 ` Dmitry Baryshkov
0 siblings, 0 replies; 44+ messages in thread
From: Dmitry Baryshkov @ 2026-07-04 0:19 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:32AM +0530, Imran Shaik wrote:
> Add RETAIN_FF_ENABLE flag for DISPCC and GPUCC GDSCs on QCM2290 to retain
> the register context across GDSC power collapse.
Fixes? cc:stable?
Also, while we are at it, move all fixes to the top of the series.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> drivers/clk/qcom/dispcc-qcm2290.c | 2 +-
> drivers/clk/qcom/gpucc-qcm2290.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 11/19] clk: qcom: qcm2290: Update DISPCC and GPUCC GDSC *wait_val values
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (9 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 10/19] clk: qcom: qcm2290: Add RETAIN_FF_ENABLE " Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 7:19 ` Konrad Dybcio
2026-07-02 18:31 ` [PATCH v5 12/19] clk: qcom: gpucc-qcm2290: Drop pm_clk handling Imran Shaik
` (7 subsequent siblings)
18 siblings, 1 reply; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Update the QCM2290 DISPCC and GPUCC GDSC wait_val fields to match the
hardware default values. Incorrect settings can cause the GDSC FSM to
stuck, leading to power on/off failures.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/dispcc-qcm2290.c | 3 +++
drivers/clk/qcom/gpucc-qcm2290.c | 6 ++++++
2 files changed, 9 insertions(+)
diff --git a/drivers/clk/qcom/dispcc-qcm2290.c b/drivers/clk/qcom/dispcc-qcm2290.c
index af5527f6a6aed94d372f5c54fa353ad4160549fe..39960cb5c26a9f7372ebafd14033bda697575416 100644
--- a/drivers/clk/qcom/dispcc-qcm2290.c
+++ b/drivers/clk/qcom/dispcc-qcm2290.c
@@ -463,6 +463,9 @@ static const struct qcom_reset_map disp_cc_qcm2290_resets[] = {
static struct gdsc mdss_gdsc = {
.gdscr = 0x3000,
+ .en_rest_wait_val = 0x2,
+ .en_few_wait_val = 0x2,
+ .clk_dis_wait_val = 0xf,
.pd = {
.name = "mdss_gdsc",
},
diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2290.c
index 8d397cadc86aaa1666e27c8c4185b9b3de13cf94..4e97a02d942ad23af561ec6ce1ba0a6f61bf5a69 100644
--- a/drivers/clk/qcom/gpucc-qcm2290.c
+++ b/drivers/clk/qcom/gpucc-qcm2290.c
@@ -296,6 +296,9 @@ static struct clk_branch gpu_cc_hlos1_vote_gpu_smmu_clk = {
static struct gdsc gpu_cx_gdsc = {
.gdscr = 0x106c,
.gds_hw_ctrl = 0x1540,
+ .en_rest_wait_val = 0x2,
+ .en_few_wait_val = 0x2,
+ .clk_dis_wait_val = 0x2,
.pd = {
.name = "gpu_cx_gdsc",
},
@@ -308,6 +311,9 @@ static struct gdsc gpu_gx_gdsc = {
.clamp_io_ctrl = 0x1508,
.resets = (unsigned int []){ GPU_GX_BCR },
.reset_count = 1,
+ .en_rest_wait_val = 0x2,
+ .en_few_wait_val = 0x2,
+ .clk_dis_wait_val = 0x2,
.pd = {
.name = "gpu_gx_gdsc",
},
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 11/19] clk: qcom: qcm2290: Update DISPCC and GPUCC GDSC *wait_val values
2026-07-02 18:31 ` [PATCH v5 11/19] clk: qcom: qcm2290: Update DISPCC and GPUCC GDSC *wait_val values Imran Shaik
@ 2026-07-03 7:19 ` Konrad Dybcio
2026-07-04 0:19 ` Dmitry Baryshkov
0 siblings, 1 reply; 44+ messages in thread
From: Konrad Dybcio @ 2026-07-03 7:19 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel
On 7/2/26 8:31 PM, Imran Shaik wrote:
> Update the QCM2290 DISPCC and GPUCC GDSC wait_val fields to match the
> hardware default values. Incorrect settings can cause the GDSC FSM to
> stuck, leading to power on/off failures.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
Fixes: cc517ea3333f ("clk: qcom: Add display clock controller driver for QCM2290")
Fixes: 8cab033628b1 ("clk: qcom: Add QCM2290 GPU clock controller driver")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 44+ messages in thread* Re: [PATCH v5 11/19] clk: qcom: qcm2290: Update DISPCC and GPUCC GDSC *wait_val values
2026-07-03 7:19 ` Konrad Dybcio
@ 2026-07-04 0:19 ` Dmitry Baryshkov
0 siblings, 0 replies; 44+ messages in thread
From: Dmitry Baryshkov @ 2026-07-04 0:19 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov, Ajit Pandey,
Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 09:19:30AM +0200, Konrad Dybcio wrote:
> On 7/2/26 8:31 PM, Imran Shaik wrote:
> > Update the QCM2290 DISPCC and GPUCC GDSC wait_val fields to match the
> > hardware default values. Incorrect settings can cause the GDSC FSM to
> > stuck, leading to power on/off failures.
> >
> > Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> > ---
>
> Fixes: cc517ea3333f ("clk: qcom: Add display clock controller driver for QCM2290")
> Fixes: 8cab033628b1 ("clk: qcom: Add QCM2290 GPU clock controller driver")
With these tags in place:
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>
> Konrad
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 12/19] clk: qcom: gpucc-qcm2290: Drop pm_clk handling
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (10 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 11/19] clk: qcom: qcm2290: Update DISPCC and GPUCC GDSC *wait_val values Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 7:29 ` Konrad Dybcio
2026-07-04 0:19 ` Dmitry Baryshkov
2026-07-02 18:31 ` [PATCH v5 13/19] clk: qcom: gpucc-qcm2290: Move to the latest common qcom_cc_probe() model Imran Shaik
` (6 subsequent siblings)
18 siblings, 2 replies; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Drop the pm_clk handling from QCM2290 GPUCC driver as the required GCC AHB
clocks are kept always enabled by the GCC driver during probe.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/gpucc-qcm2290.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2290.c
index 4e97a02d942ad23af561ec6ce1ba0a6f61bf5a69..f14b4620090efea139316ad833e034536caa5199 100644
--- a/drivers/clk/qcom/gpucc-qcm2290.c
+++ b/drivers/clk/qcom/gpucc-qcm2290.c
@@ -7,7 +7,6 @@
#include <linux/clk-provider.h>
#include <linux/module.h>
#include <linux/platform_device.h>
-#include <linux/pm_clock.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
@@ -385,16 +384,6 @@ static int gpu_cc_qcm2290_probe(struct platform_device *pdev)
if (ret)
return ret;
- ret = devm_pm_clk_create(&pdev->dev);
- if (ret)
- return ret;
-
- ret = pm_clk_add(&pdev->dev, NULL);
- if (ret < 0) {
- dev_err(&pdev->dev, "failed to acquire ahb clock\n");
- return ret;
- }
-
ret = pm_runtime_resume_and_get(&pdev->dev);
if (ret)
return ret;
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 12/19] clk: qcom: gpucc-qcm2290: Drop pm_clk handling
2026-07-02 18:31 ` [PATCH v5 12/19] clk: qcom: gpucc-qcm2290: Drop pm_clk handling Imran Shaik
@ 2026-07-03 7:29 ` Konrad Dybcio
2026-07-04 0:19 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Konrad Dybcio @ 2026-07-03 7:29 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel
On 7/2/26 8:31 PM, Imran Shaik wrote:
> Drop the pm_clk handling from QCM2290 GPUCC driver as the required GCC AHB
> clocks are kept always enabled by the GCC driver during probe.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: [PATCH v5 12/19] clk: qcom: gpucc-qcm2290: Drop pm_clk handling
2026-07-02 18:31 ` [PATCH v5 12/19] clk: qcom: gpucc-qcm2290: Drop pm_clk handling Imran Shaik
2026-07-03 7:29 ` Konrad Dybcio
@ 2026-07-04 0:19 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Dmitry Baryshkov @ 2026-07-04 0:19 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:34AM +0530, Imran Shaik wrote:
> Drop the pm_clk handling from QCM2290 GPUCC driver as the required GCC AHB
> clocks are kept always enabled by the GCC driver during probe.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> drivers/clk/qcom/gpucc-qcm2290.c | 11 -----------
> 1 file changed, 11 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 13/19] clk: qcom: gpucc-qcm2290: Move to the latest common qcom_cc_probe() model
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (11 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 12/19] clk: qcom: gpucc-qcm2290: Drop pm_clk handling Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 7:11 ` Konrad Dybcio
2026-07-04 0:20 ` Dmitry Baryshkov
2026-07-02 18:31 ` [PATCH v5 14/19] clk: qcom: gpucc-qcm2290: Keep the critical clocks always-on from probe Imran Shaik
` (5 subsequent siblings)
18 siblings, 2 replies; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Update the QCM2290 GPUCC driver to use the qcom_cc_probe() model by moving
the critical clocks handling and PLL configurations from probe to the
driver_data to align with the latest convention.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/gpucc-qcm2290.c | 50 ++++++++++++++++------------------------
1 file changed, 20 insertions(+), 30 deletions(-)
diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2290.c
index f14b4620090efea139316ad833e034536caa5199..b19e8910931d85ceda079c2745eba37e18112955 100644
--- a/drivers/clk/qcom/gpucc-qcm2290.c
+++ b/drivers/clk/qcom/gpucc-qcm2290.c
@@ -2,12 +2,12 @@
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2024, Linaro Limited
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
*/
#include <linux/clk-provider.h>
#include <linux/module.h>
#include <linux/platform_device.h>
-#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <dt-bindings/clock/qcom,qcm2290-gpucc.h>
@@ -19,6 +19,7 @@
#include "clk-regmap-divider.h"
#include "clk-regmap-mux.h"
#include "clk-regmap-phy-mux.h"
+#include "common.h"
#include "gdsc.h"
#include "reset.h"
@@ -55,6 +56,7 @@ static const struct alpha_pll_config gpu_cc_pll0_config = {
static struct clk_alpha_pll gpu_cc_pll0 = {
.offset = 0x0,
+ .config = &gpu_cc_pll0_config,
.vco_table = huayra_vco,
.num_vco = ARRAY_SIZE(huayra_vco),
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_HUAYRA_2290],
@@ -346,6 +348,14 @@ static struct gdsc *gpu_cc_qcm2290_gdscs[] = {
[GPU_GX_GDSC] = &gpu_gx_gdsc,
};
+static struct clk_alpha_pll *gpu_cc_qcm2290_plls[] = {
+ &gpu_cc_pll0,
+};
+
+static const u32 gpu_cc_qcm2290_critical_cbcrs[] = {
+ 0x1060, /* GPU_CC_GX_CXO_CLK */
+};
+
static const struct regmap_config gpu_cc_qcm2290_regmap_config = {
.reg_bits = 32,
.reg_stride = 4,
@@ -354,6 +364,12 @@ static const struct regmap_config gpu_cc_qcm2290_regmap_config = {
.fast_io = true,
};
+static const struct qcom_cc_driver_data gpu_cc_qcm2290_driver_data = {
+ .alpha_plls = gpu_cc_qcm2290_plls,
+ .num_alpha_plls = ARRAY_SIZE(gpu_cc_qcm2290_plls),
+ .clk_cbcrs = gpu_cc_qcm2290_critical_cbcrs,
+ .num_clk_cbcrs = ARRAY_SIZE(gpu_cc_qcm2290_critical_cbcrs),
+};
static const struct qcom_cc_desc gpu_cc_qcm2290_desc = {
.config = &gpu_cc_qcm2290_regmap_config,
@@ -363,6 +379,8 @@ static const struct qcom_cc_desc gpu_cc_qcm2290_desc = {
.num_resets = ARRAY_SIZE(gpu_cc_qcm2290_resets),
.gdscs = gpu_cc_qcm2290_gdscs,
.num_gdscs = ARRAY_SIZE(gpu_cc_qcm2290_gdscs),
+ .use_rpm = true,
+ .driver_data = &gpu_cc_qcm2290_driver_data,
};
static const struct of_device_id gpu_cc_qcm2290_match_table[] = {
@@ -373,35 +391,7 @@ MODULE_DEVICE_TABLE(of, gpu_cc_qcm2290_match_table);
static int gpu_cc_qcm2290_probe(struct platform_device *pdev)
{
- struct regmap *regmap;
- int ret;
-
- regmap = qcom_cc_map(pdev, &gpu_cc_qcm2290_desc);
- if (IS_ERR(regmap))
- return PTR_ERR(regmap);
-
- ret = devm_pm_runtime_enable(&pdev->dev);
- if (ret)
- return ret;
-
- ret = pm_runtime_resume_and_get(&pdev->dev);
- if (ret)
- return ret;
-
- clk_huayra_2290_pll_configure(&gpu_cc_pll0, regmap, &gpu_cc_pll0_config);
-
- regmap_update_bits(regmap, 0x1060, BIT(0), BIT(0)); /* GPU_CC_GX_CXO_CLK */
-
- ret = qcom_cc_really_probe(&pdev->dev, &gpu_cc_qcm2290_desc, regmap);
- if (ret) {
- dev_err(&pdev->dev, "Failed to register display clock controller\n");
- goto out_pm_runtime_put;
- }
-
-out_pm_runtime_put:
- pm_runtime_put_sync(&pdev->dev);
-
- return 0;
+ return qcom_cc_probe(pdev, &gpu_cc_qcm2290_desc);
}
static struct platform_driver gpu_cc_qcm2290_driver = {
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 13/19] clk: qcom: gpucc-qcm2290: Move to the latest common qcom_cc_probe() model
2026-07-02 18:31 ` [PATCH v5 13/19] clk: qcom: gpucc-qcm2290: Move to the latest common qcom_cc_probe() model Imran Shaik
@ 2026-07-03 7:11 ` Konrad Dybcio
2026-07-04 0:20 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Konrad Dybcio @ 2026-07-03 7:11 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel
On 7/2/26 8:31 PM, Imran Shaik wrote:
> Update the QCM2290 GPUCC driver to use the qcom_cc_probe() model by moving
> the critical clocks handling and PLL configurations from probe to the
> driver_data to align with the latest convention.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: [PATCH v5 13/19] clk: qcom: gpucc-qcm2290: Move to the latest common qcom_cc_probe() model
2026-07-02 18:31 ` [PATCH v5 13/19] clk: qcom: gpucc-qcm2290: Move to the latest common qcom_cc_probe() model Imran Shaik
2026-07-03 7:11 ` Konrad Dybcio
@ 2026-07-04 0:20 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Dmitry Baryshkov @ 2026-07-04 0:20 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:35AM +0530, Imran Shaik wrote:
> Update the QCM2290 GPUCC driver to use the qcom_cc_probe() model by moving
> the critical clocks handling and PLL configurations from probe to the
> driver_data to align with the latest convention.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> drivers/clk/qcom/gpucc-qcm2290.c | 50 ++++++++++++++++------------------------
> 1 file changed, 20 insertions(+), 30 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 14/19] clk: qcom: gpucc-qcm2290: Keep the critical clocks always-on from probe
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (12 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 13/19] clk: qcom: gpucc-qcm2290: Move to the latest common qcom_cc_probe() model Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 7:30 ` Konrad Dybcio
2026-07-04 0:21 ` Dmitry Baryshkov
2026-07-02 18:31 ` [PATCH v5 15/19] clk: qcom: gpucc-qcm2290: Park RCG's clk source at XO during disable Imran Shaik
` (4 subsequent siblings)
18 siblings, 2 replies; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Drop modelling of gpu_cc_ahb_clk and keep it always enabled from probe
similar to other critical clocks, since marking it as CLK_IS_CRITICAL
causes the clock framework to invoke clk_pm_runtime_get() during prepare,
which prevents the associated power domains from collapsing.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/gpucc-qcm2290.c | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2290.c
index b19e8910931d85ceda079c2745eba37e18112955..78797b77d7c7ba053201064ace3963cf2bd5281f 100644
--- a/drivers/clk/qcom/gpucc-qcm2290.c
+++ b/drivers/clk/qcom/gpucc-qcm2290.c
@@ -148,20 +148,6 @@ static struct clk_rcg2 gpu_cc_gx_gfx3d_clk_src = {
},
};
-static struct clk_branch gpu_cc_ahb_clk = {
- .halt_reg = 0x1078,
- .halt_check = BRANCH_HALT_DELAY,
- .clkr = {
- .enable_reg = 0x1078,
- .enable_mask = BIT(0),
- .hw.init = &(struct clk_init_data){
- .name = "gpu_cc_ahb_clk",
- .flags = CLK_IS_CRITICAL,
- .ops = &clk_branch2_ops,
- },
- },
-};
-
static struct clk_branch gpu_cc_crc_ahb_clk = {
.halt_reg = 0x107c,
.halt_check = BRANCH_HALT_DELAY,
@@ -324,7 +310,6 @@ static struct gdsc gpu_gx_gdsc = {
};
static struct clk_regmap *gpu_cc_qcm2290_clocks[] = {
- [GPU_CC_AHB_CLK] = &gpu_cc_ahb_clk.clkr,
[GPU_CC_CRC_AHB_CLK] = &gpu_cc_crc_ahb_clk.clkr,
[GPU_CC_CX_GFX3D_CLK] = &gpu_cc_cx_gfx3d_clk.clkr,
[GPU_CC_CX_GMU_CLK] = &gpu_cc_cx_gmu_clk.clkr,
@@ -353,6 +338,7 @@ static struct clk_alpha_pll *gpu_cc_qcm2290_plls[] = {
};
static const u32 gpu_cc_qcm2290_critical_cbcrs[] = {
+ 0x1078, /* GPU_CC_AHB_CLK */
0x1060, /* GPU_CC_GX_CXO_CLK */
};
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 14/19] clk: qcom: gpucc-qcm2290: Keep the critical clocks always-on from probe
2026-07-02 18:31 ` [PATCH v5 14/19] clk: qcom: gpucc-qcm2290: Keep the critical clocks always-on from probe Imran Shaik
@ 2026-07-03 7:30 ` Konrad Dybcio
2026-07-04 0:21 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Konrad Dybcio @ 2026-07-03 7:30 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel
On 7/2/26 8:31 PM, Imran Shaik wrote:
> Drop modelling of gpu_cc_ahb_clk and keep it always enabled from probe
> similar to other critical clocks, since marking it as CLK_IS_CRITICAL
> causes the clock framework to invoke clk_pm_runtime_get() during prepare,
> which prevents the associated power domains from collapsing.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
Fixes: 8cab033628b1 ("clk: qcom: Add QCM2290 GPU clock controller driver")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 44+ messages in thread* Re: [PATCH v5 14/19] clk: qcom: gpucc-qcm2290: Keep the critical clocks always-on from probe
2026-07-02 18:31 ` [PATCH v5 14/19] clk: qcom: gpucc-qcm2290: Keep the critical clocks always-on from probe Imran Shaik
2026-07-03 7:30 ` Konrad Dybcio
@ 2026-07-04 0:21 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Dmitry Baryshkov @ 2026-07-04 0:21 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:36AM +0530, Imran Shaik wrote:
> Drop modelling of gpu_cc_ahb_clk and keep it always enabled from probe
> similar to other critical clocks, since marking it as CLK_IS_CRITICAL
> causes the clock framework to invoke clk_pm_runtime_get() during prepare,
> which prevents the associated power domains from collapsing.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> drivers/clk/qcom/gpucc-qcm2290.c | 16 +---------------
> 1 file changed, 1 insertion(+), 15 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 15/19] clk: qcom: gpucc-qcm2290: Park RCG's clk source at XO during disable
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (13 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 14/19] clk: qcom: gpucc-qcm2290: Keep the critical clocks always-on from probe Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 7:42 ` Konrad Dybcio
2026-07-04 0:23 ` Dmitry Baryshkov
2026-07-02 18:31 ` [PATCH v5 16/19] clk: qcom: Add support for Qualcomm GPU Clock Controller on Shikra Imran Shaik
` (3 subsequent siblings)
18 siblings, 2 replies; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
The RCG's clk src has to be parked at XO while disabling as per the
HW recommendation, hence use clk_rcg2_shared_ops to achieve the same.
Fixes: 8cab033628b1 ("clk: qcom: Add QCM2290 GPU clock controller driver")
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/gpucc-qcm2290.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2290.c
index 78797b77d7c7ba053201064ace3963cf2bd5281f..fc33d82bcfb6843307d002d67674253f0174cb4a 100644
--- a/drivers/clk/qcom/gpucc-qcm2290.c
+++ b/drivers/clk/qcom/gpucc-qcm2290.c
@@ -144,7 +144,7 @@ static struct clk_rcg2 gpu_cc_gx_gfx3d_clk_src = {
.parent_data = gpu_cc_parent_data_1,
.num_parents = ARRAY_SIZE(gpu_cc_parent_data_1),
.flags = CLK_SET_RATE_PARENT,
- .ops = &clk_rcg2_ops,
+ .ops = &clk_rcg2_shared_ops,
},
};
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 15/19] clk: qcom: gpucc-qcm2290: Park RCG's clk source at XO during disable
2026-07-02 18:31 ` [PATCH v5 15/19] clk: qcom: gpucc-qcm2290: Park RCG's clk source at XO during disable Imran Shaik
@ 2026-07-03 7:42 ` Konrad Dybcio
2026-07-04 0:23 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Konrad Dybcio @ 2026-07-03 7:42 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel
On 7/2/26 8:31 PM, Imran Shaik wrote:
> The RCG's clk src has to be parked at XO while disabling as per the
> HW recommendation, hence use clk_rcg2_shared_ops to achieve the same.
"HW team's" >
> Fixes: 8cab033628b1 ("clk: qcom: Add QCM2290 GPU clock controller driver")
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
on a note, also not something downstream does, but hopefully
this is right
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 44+ messages in thread* Re: [PATCH v5 15/19] clk: qcom: gpucc-qcm2290: Park RCG's clk source at XO during disable
2026-07-02 18:31 ` [PATCH v5 15/19] clk: qcom: gpucc-qcm2290: Park RCG's clk source at XO during disable Imran Shaik
2026-07-03 7:42 ` Konrad Dybcio
@ 2026-07-04 0:23 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Dmitry Baryshkov @ 2026-07-04 0:23 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:37AM +0530, Imran Shaik wrote:
> The RCG's clk src has to be parked at XO while disabling as per the
> HW recommendation, hence use clk_rcg2_shared_ops to achieve the same.
>
> Fixes: 8cab033628b1 ("clk: qcom: Add QCM2290 GPU clock controller driver")
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
As a reminder, fixes should come before all other patches.
> ---
> drivers/clk/qcom/gpucc-qcm2290.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2290.c
> index 78797b77d7c7ba053201064ace3963cf2bd5281f..fc33d82bcfb6843307d002d67674253f0174cb4a 100644
> --- a/drivers/clk/qcom/gpucc-qcm2290.c
> +++ b/drivers/clk/qcom/gpucc-qcm2290.c
> @@ -144,7 +144,7 @@ static struct clk_rcg2 gpu_cc_gx_gfx3d_clk_src = {
> .parent_data = gpu_cc_parent_data_1,
> .num_parents = ARRAY_SIZE(gpu_cc_parent_data_1),
> .flags = CLK_SET_RATE_PARENT,
> - .ops = &clk_rcg2_ops,
> + .ops = &clk_rcg2_shared_ops,
> },
> };
>
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 16/19] clk: qcom: Add support for Qualcomm GPU Clock Controller on Shikra
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (14 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 15/19] clk: qcom: gpucc-qcm2290: Park RCG's clk source at XO during disable Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-02 18:31 ` [PATCH v5 17/19] arm64: dts: qcom: agatti: Add DSI1 PHY and sleep clocks to DISPCC node Imran Shaik
` (2 subsequent siblings)
18 siblings, 0 replies; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik, Konrad Dybcio,
Dmitry Baryshkov
The Qualcomm Shikra GPU clock controller is similar to QCM2290 GPUCC
hardware block, with minor differences. Hence add support for Shikra
GPUCC by extending the QCM2290 GPUCC driver.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
drivers/clk/qcom/gpucc-qcm2290.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2290.c
index fc33d82bcfb6843307d002d67674253f0174cb4a..ece567c533e88527451eecfbcd52a52bd05a8ad3 100644
--- a/drivers/clk/qcom/gpucc-qcm2290.c
+++ b/drivers/clk/qcom/gpucc-qcm2290.c
@@ -133,6 +133,17 @@ static const struct freq_tbl ftbl_gpu_cc_gx_gfx3d_clk_src[] = {
{ }
};
+static const struct freq_tbl ftbl_gpu_cc_gx_gfx3d_clk_src_shikra[] = {
+ F(355200000, P_GPU_CC_PLL0_OUT_AUX, 2, 0, 0),
+ F(537600000, P_GPU_CC_PLL0_OUT_AUX, 2, 0, 0),
+ F(672000000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0),
+ F(844800000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0),
+ F(921600000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0),
+ F(1017600000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0),
+ F(1142400000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0),
+ { }
+};
+
static struct clk_rcg2 gpu_cc_gx_gfx3d_clk_src = {
.cmd_rcgr = 0x101c,
.mnd_width = 0,
@@ -371,12 +382,16 @@ static const struct qcom_cc_desc gpu_cc_qcm2290_desc = {
static const struct of_device_id gpu_cc_qcm2290_match_table[] = {
{ .compatible = "qcom,qcm2290-gpucc" },
+ { .compatible = "qcom,shikra-gpucc" },
{ }
};
MODULE_DEVICE_TABLE(of, gpu_cc_qcm2290_match_table);
static int gpu_cc_qcm2290_probe(struct platform_device *pdev)
{
+ if (device_is_compatible(&pdev->dev, "qcom,shikra-gpucc"))
+ gpu_cc_gx_gfx3d_clk_src.freq_tbl = ftbl_gpu_cc_gx_gfx3d_clk_src_shikra;
+
return qcom_cc_probe(pdev, &gpu_cc_qcm2290_desc);
}
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* [PATCH v5 17/19] arm64: dts: qcom: agatti: Add DSI1 PHY and sleep clocks to DISPCC node
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (15 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 16/19] clk: qcom: Add support for Qualcomm GPU Clock Controller on Shikra Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-02 18:31 ` [PATCH v5 18/19] arm64: dts: qcom: agatti: Add missing CX power domain to DISPCC Imran Shaik
2026-07-02 18:31 ` [PATCH v5 19/19] arm64: dts: qcom: shikra: Add support for DISPCC/GPUCC nodes Imran Shaik
18 siblings, 0 replies; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik, Dmitry Baryshkov
Update the DISPCC node on QCM2290 (Agatti) to align with the latest DT
bindings changes, which adds support for the DSI1 PHY and sleep clocks.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/agatti.dtsi | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/agatti.dtsi b/arch/arm64/boot/dts/qcom/agatti.dtsi
index f0b6ae9b81528a848a75f6884f1b27137d780f07..f1d93f86d0a62a813f76580362e850ab847e51eb 100644
--- a/arch/arm64/boot/dts/qcom/agatti.dtsi
+++ b/arch/arm64/boot/dts/qcom/agatti.dtsi
@@ -2190,13 +2190,19 @@ dispcc: clock-controller@5f00000 {
<&gcc GCC_DISP_GPLL0_CLK_SRC>,
<&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
<&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
- <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>;
+ <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>,
+ <0>,
+ <0>,
+ <&sleep_clk>;
clock-names = "bi_tcxo",
"bi_tcxo_ao",
"gcc_disp_gpll0_clk_src",
"gcc_disp_gpll0_div_clk_src",
"dsi0_phy_pll_out_byteclk",
- "dsi0_phy_pll_out_dsiclk";
+ "dsi0_phy_pll_out_dsiclk",
+ "dsi1_phy_pll_out_byteclk",
+ "dsi1_phy_pll_out_dsiclk",
+ "sleep_clk";
#power-domain-cells = <1>;
#clock-cells = <1>;
#reset-cells = <1>;
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* [PATCH v5 18/19] arm64: dts: qcom: agatti: Add missing CX power domain to DISPCC
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (16 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 17/19] arm64: dts: qcom: agatti: Add DSI1 PHY and sleep clocks to DISPCC node Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
2026-07-03 7:09 ` Konrad Dybcio
2026-07-04 0:24 ` Dmitry Baryshkov
2026-07-02 18:31 ` [PATCH v5 19/19] arm64: dts: qcom: shikra: Add support for DISPCC/GPUCC nodes Imran Shaik
18 siblings, 2 replies; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik
Add the missing power-domains property to associate DISPCC with CX rail.
This is to ensure the genpd performance state votes on GDSC the to get
propagated to the CX rail and to avoid the rail under-voltage conditions.
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/agatti.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/qcom/agatti.dtsi b/arch/arm64/boot/dts/qcom/agatti.dtsi
index f1d93f86d0a62a813f76580362e850ab847e51eb..2e8a8ca9b9d5f40fa102862b5a93dbd1996de8be 100644
--- a/arch/arm64/boot/dts/qcom/agatti.dtsi
+++ b/arch/arm64/boot/dts/qcom/agatti.dtsi
@@ -2203,6 +2203,7 @@ dispcc: clock-controller@5f00000 {
"dsi1_phy_pll_out_byteclk",
"dsi1_phy_pll_out_dsiclk",
"sleep_clk";
+ power-domains = <&rpmpd QCM2290_VDDCX>;
#power-domain-cells = <1>;
#clock-cells = <1>;
#reset-cells = <1>;
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread* Re: [PATCH v5 18/19] arm64: dts: qcom: agatti: Add missing CX power domain to DISPCC
2026-07-02 18:31 ` [PATCH v5 18/19] arm64: dts: qcom: agatti: Add missing CX power domain to DISPCC Imran Shaik
@ 2026-07-03 7:09 ` Konrad Dybcio
2026-07-04 0:24 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Konrad Dybcio @ 2026-07-03 7:09 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Loic Poulain, Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel
On 7/2/26 8:31 PM, Imran Shaik wrote:
> Add the missing power-domains property to associate DISPCC with CX rail.
> This is to ensure the genpd performance state votes on GDSC the to get
> propagated to the CX rail and to avoid the rail under-voltage conditions.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
Fixes: a2b32096709d ("arm64: dts: qcom: qcm2290: Add display nodes")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 44+ messages in thread* Re: [PATCH v5 18/19] arm64: dts: qcom: agatti: Add missing CX power domain to DISPCC
2026-07-02 18:31 ` [PATCH v5 18/19] arm64: dts: qcom: agatti: Add missing CX power domain to DISPCC Imran Shaik
2026-07-03 7:09 ` Konrad Dybcio
@ 2026-07-04 0:24 ` Dmitry Baryshkov
1 sibling, 0 replies; 44+ messages in thread
From: Dmitry Baryshkov @ 2026-07-04 0:24 UTC (permalink / raw)
To: Imran Shaik
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov, Ajit Pandey, Taniya Das,
Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree,
linux-kernel
On Fri, Jul 03, 2026 at 12:01:40AM +0530, Imran Shaik wrote:
> Add the missing power-domains property to associate DISPCC with CX rail.
> This is to ensure the genpd performance state votes on GDSC the to get
> propagated to the CX rail and to avoid the rail under-voltage conditions.
>
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/agatti.dtsi | 1 +
> 1 file changed, 1 insertion(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH v5 19/19] arm64: dts: qcom: shikra: Add support for DISPCC/GPUCC nodes
2026-07-02 18:31 [PATCH v5 00/19] clk: qcom: Add DISPCC and GPUCC support for the Qualcomm Shikra SoC Imran Shaik
` (17 preceding siblings ...)
2026-07-02 18:31 ` [PATCH v5 18/19] arm64: dts: qcom: agatti: Add missing CX power domain to DISPCC Imran Shaik
@ 2026-07-02 18:31 ` Imran Shaik
18 siblings, 0 replies; 44+ messages in thread
From: Imran Shaik @ 2026-07-02 18:31 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Loic Poulain,
Brian Masney, Dmitry Baryshkov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, linux-arm-msm, linux-clk,
devicetree, linux-kernel, Imran Shaik, Dmitry Baryshkov
Add support for Display clock controller and GPU clock controller nodes
on Qualcomm Shikra SoCs.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra.dtsi | 42 ++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
index a4334d99c1f35ee851ca8266ec37d4a200a07ee5..39aa3a47564c55a3029763fe92cf485d2569a000 100644
--- a/arch/arm64/boot/dts/qcom/shikra.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
@@ -3,6 +3,8 @@
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
*/
+#include <dt-bindings/clock/qcom,dispcc-qcm2290.h>
+#include <dt-bindings/clock/qcom,qcm2290-gpucc.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/clock/qcom,shikra-gcc.h>
#include <dt-bindings/interconnect/qcom,icc.h>
@@ -640,6 +642,46 @@ &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
};
};
+ gpucc: clock-controller@5990000 {
+ compatible = "qcom,shikra-gpucc";
+ reg = <0x0 0x05990000 0x0 0x9000>;
+ clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
+ <&rpmcc RPM_SMD_XO_CLK_SRC>,
+ <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+ <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+ power-domains = <&rpmpd RPMPD_VDDCX>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ #power-domain-cells = <1>;
+ };
+
+ dispcc: clock-controller@5f00000 {
+ compatible = "qcom,shikra-dispcc", "qcom,qcm2290-dispcc";
+ reg = <0x0 0x05f00000 0x0 0x20000>;
+ clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
+ <&rpmcc RPM_SMD_XO_A_CLK_SRC>,
+ <&gcc GCC_DISP_GPLL0_CLK_SRC>,
+ <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
+ <0>,
+ <0>,
+ <0>,
+ <0>,
+ <&sleep_clk>;
+ clock-names = "bi_tcxo",
+ "bi_tcxo_ao",
+ "gcc_disp_gpll0_clk_src",
+ "gcc_disp_gpll0_div_clk_src",
+ "dsi0_phy_pll_out_byteclk",
+ "dsi0_phy_pll_out_dsiclk",
+ "dsi1_phy_pll_out_byteclk",
+ "dsi1_phy_pll_out_dsiclk",
+ "sleep_clk";
+ power-domains = <&rpmpd RPMPD_VDDCX>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ #power-domain-cells = <1>;
+ };
+
sram@c11e000 {
compatible = "qcom,shikra-imem", "mmio-sram";
reg = <0x0 0x0c11e000 0x0 0x1000>;
--
2.34.1
^ permalink raw reply related [flat|nested] 44+ messages in thread