clk: qcom: camcc-sc7180: Add parent dependency to all camera GDSCs
authorTaniya Das <quic_tdas@quicinc.com>
Mon, 1 May 2023 14:29:32 +0000 (19:59 +0530)
committerBjorn Andersson <andersson@kernel.org>
Thu, 25 May 2023 02:33:55 +0000 (19:33 -0700)
Camera titan top GDSC is a parent supply to all other camera GDSCs. Titan
top GDSC is required to be enabled before enabling any other camera GDSCs
and it should be disabled only after all other camera GDSCs are disabled.
Ensure this behavior by marking titan top GDSC as parent of all other
camera GDSCs.

Fixes: 15d09e830bbc ("clk: qcom: camcc: Add camera clock controller driver for SC7180")
Signed-off-by: Taniya Das <quic_tdas@quicinc.com>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230501142932.13049-1-quic_tdas@quicinc.com
drivers/clk/qcom/camcc-sc7180.c

index e2b4804695f37c227ac710f51c7e7cc0feaef42f..8a4ba7a19ed124ad51b8cc9a134fb6c0f00fcd88 100644 (file)
@@ -1480,12 +1480,21 @@ static struct clk_branch cam_cc_sys_tmr_clk = {
        },
 };
 
+static struct gdsc titan_top_gdsc = {
+       .gdscr = 0xb134,
+       .pd = {
+               .name = "titan_top_gdsc",
+       },
+       .pwrsts = PWRSTS_OFF_ON,
+};
+
 static struct gdsc bps_gdsc = {
        .gdscr = 0x6004,
        .pd = {
                .name = "bps_gdsc",
        },
        .pwrsts = PWRSTS_OFF_ON,
+       .parent = &titan_top_gdsc.pd,
        .flags = HW_CTRL,
 };
 
@@ -1495,6 +1504,7 @@ static struct gdsc ife_0_gdsc = {
                .name = "ife_0_gdsc",
        },
        .pwrsts = PWRSTS_OFF_ON,
+       .parent = &titan_top_gdsc.pd,
 };
 
 static struct gdsc ife_1_gdsc = {
@@ -1503,6 +1513,7 @@ static struct gdsc ife_1_gdsc = {
                .name = "ife_1_gdsc",
        },
        .pwrsts = PWRSTS_OFF_ON,
+       .parent = &titan_top_gdsc.pd,
 };
 
 static struct gdsc ipe_0_gdsc = {
@@ -1512,15 +1523,9 @@ static struct gdsc ipe_0_gdsc = {
        },
        .pwrsts = PWRSTS_OFF_ON,
        .flags = HW_CTRL,
+       .parent = &titan_top_gdsc.pd,
 };
 
-static struct gdsc titan_top_gdsc = {
-       .gdscr = 0xb134,
-       .pd = {
-               .name = "titan_top_gdsc",
-       },
-       .pwrsts = PWRSTS_OFF_ON,
-};
 
 static struct clk_hw *cam_cc_sc7180_hws[] = {
        [CAM_CC_PLL2_OUT_EARLY] = &cam_cc_pll2_out_early.hw,