Commit 3e4d1795 authored by Taniya Das's avatar Taniya Das Committed by Bjorn Andersson

clk: qcom: camcc-sc7180: Add parent dependency to all camera GDSCs

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: 15d09e83 ("clk: qcom: camcc: Add camera clock controller driver for SC7180")
Signed-off-by: default avatarTaniya Das <quic_tdas@quicinc.com>
Acked-by: default avatarStephen Boyd <sboyd@kernel.org>
Reviewed-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230501142932.13049-1-quic_tdas@quicinc.com
parent 853c064b
...@@ -1480,12 +1480,21 @@ static struct clk_branch cam_cc_sys_tmr_clk = { ...@@ -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 = { static struct gdsc bps_gdsc = {
.gdscr = 0x6004, .gdscr = 0x6004,
.pd = { .pd = {
.name = "bps_gdsc", .name = "bps_gdsc",
}, },
.pwrsts = PWRSTS_OFF_ON, .pwrsts = PWRSTS_OFF_ON,
.parent = &titan_top_gdsc.pd,
.flags = HW_CTRL, .flags = HW_CTRL,
}; };
...@@ -1495,6 +1504,7 @@ static struct gdsc ife_0_gdsc = { ...@@ -1495,6 +1504,7 @@ static struct gdsc ife_0_gdsc = {
.name = "ife_0_gdsc", .name = "ife_0_gdsc",
}, },
.pwrsts = PWRSTS_OFF_ON, .pwrsts = PWRSTS_OFF_ON,
.parent = &titan_top_gdsc.pd,
}; };
static struct gdsc ife_1_gdsc = { static struct gdsc ife_1_gdsc = {
...@@ -1503,6 +1513,7 @@ static struct gdsc ife_1_gdsc = { ...@@ -1503,6 +1513,7 @@ static struct gdsc ife_1_gdsc = {
.name = "ife_1_gdsc", .name = "ife_1_gdsc",
}, },
.pwrsts = PWRSTS_OFF_ON, .pwrsts = PWRSTS_OFF_ON,
.parent = &titan_top_gdsc.pd,
}; };
static struct gdsc ipe_0_gdsc = { static struct gdsc ipe_0_gdsc = {
...@@ -1512,15 +1523,9 @@ static struct gdsc ipe_0_gdsc = { ...@@ -1512,15 +1523,9 @@ static struct gdsc ipe_0_gdsc = {
}, },
.pwrsts = PWRSTS_OFF_ON, .pwrsts = PWRSTS_OFF_ON,
.flags = HW_CTRL, .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[] = { static struct clk_hw *cam_cc_sc7180_hws[] = {
[CAM_CC_PLL2_OUT_EARLY] = &cam_cc_pll2_out_early.hw, [CAM_CC_PLL2_OUT_EARLY] = &cam_cc_pll2_out_early.hw,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment