|
|
@@ -1103,6 +1103,7 @@ static struct clk_branch gcc_camera_ahb_clk = {
|
|
|
.enable_mask = BIT(0),
|
|
|
.hw.init = &(struct clk_init_data){
|
|
|
.name = "gcc_camera_ahb_clk",
|
|
|
+ .flags = CLK_IS_CRITICAL,
|
|
|
.ops = &clk_branch2_ops,
|
|
|
},
|
|
|
},
|
|
|
@@ -1129,6 +1130,7 @@ static struct clk_branch gcc_camera_xo_clk = {
|
|
|
.enable_mask = BIT(0),
|
|
|
.hw.init = &(struct clk_init_data){
|
|
|
.name = "gcc_camera_xo_clk",
|
|
|
+ .flags = CLK_IS_CRITICAL,
|
|
|
.ops = &clk_branch2_ops,
|
|
|
},
|
|
|
},
|
|
|
@@ -1270,6 +1272,7 @@ static struct clk_branch gcc_disp_ahb_clk = {
|
|
|
.enable_mask = BIT(0),
|
|
|
.hw.init = &(struct clk_init_data){
|
|
|
.name = "gcc_disp_ahb_clk",
|
|
|
+ .flags = CLK_IS_CRITICAL,
|
|
|
.ops = &clk_branch2_ops,
|
|
|
},
|
|
|
},
|
|
|
@@ -1328,6 +1331,7 @@ static struct clk_branch gcc_disp_xo_clk = {
|
|
|
.enable_mask = BIT(0),
|
|
|
.hw.init = &(struct clk_init_data){
|
|
|
.name = "gcc_disp_xo_clk",
|
|
|
+ .flags = CLK_IS_CRITICAL,
|
|
|
.ops = &clk_branch2_ops,
|
|
|
},
|
|
|
},
|
|
|
@@ -1397,6 +1401,7 @@ static struct clk_branch gcc_gpu_cfg_ahb_clk = {
|
|
|
.enable_mask = BIT(0),
|
|
|
.hw.init = &(struct clk_init_data){
|
|
|
.name = "gcc_gpu_cfg_ahb_clk",
|
|
|
+ .flags = CLK_IS_CRITICAL,
|
|
|
.ops = &clk_branch2_ops,
|
|
|
},
|
|
|
},
|
|
|
@@ -2985,6 +2990,7 @@ static struct clk_branch gcc_video_ahb_clk = {
|
|
|
.enable_mask = BIT(0),
|
|
|
.hw.init = &(struct clk_init_data){
|
|
|
.name = "gcc_video_ahb_clk",
|
|
|
+ .flags = CLK_IS_CRITICAL,
|
|
|
.ops = &clk_branch2_ops,
|
|
|
},
|
|
|
},
|
|
|
@@ -3011,6 +3017,7 @@ static struct clk_branch gcc_video_xo_clk = {
|
|
|
.enable_mask = BIT(0),
|
|
|
.hw.init = &(struct clk_init_data){
|
|
|
.name = "gcc_video_xo_clk",
|
|
|
+ .flags = CLK_IS_CRITICAL,
|
|
|
.ops = &clk_branch2_ops,
|
|
|
},
|
|
|
},
|
|
|
@@ -3049,6 +3056,36 @@ static struct clk_branch gcc_vs_ctrl_clk = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
+static struct clk_branch gcc_cpuss_dvm_bus_clk = {
|
|
|
+ .halt_reg = 0x48190,
|
|
|
+ .halt_check = BRANCH_HALT,
|
|
|
+ .clkr = {
|
|
|
+ .enable_reg = 0x48190,
|
|
|
+ .enable_mask = BIT(0),
|
|
|
+ .hw.init = &(struct clk_init_data){
|
|
|
+ .name = "gcc_cpuss_dvm_bus_clk",
|
|
|
+ .flags = CLK_IS_CRITICAL,
|
|
|
+ .ops = &clk_branch2_ops,
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk_branch gcc_cpuss_gnoc_clk = {
|
|
|
+ .halt_reg = 0x48004,
|
|
|
+ .halt_check = BRANCH_HALT_VOTED,
|
|
|
+ .hwcg_reg = 0x48004,
|
|
|
+ .hwcg_bit = 1,
|
|
|
+ .clkr = {
|
|
|
+ .enable_reg = 0x52004,
|
|
|
+ .enable_mask = BIT(22),
|
|
|
+ .hw.init = &(struct clk_init_data){
|
|
|
+ .name = "gcc_cpuss_gnoc_clk",
|
|
|
+ .flags = CLK_IS_CRITICAL,
|
|
|
+ .ops = &clk_branch2_ops,
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
static struct gdsc pcie_0_gdsc = {
|
|
|
.gdscr = 0x6b004,
|
|
|
.pd = {
|
|
|
@@ -3344,6 +3381,8 @@ static struct clk_regmap *gcc_sdm845_clocks[] = {
|
|
|
[GPLL0] = &gpll0.clkr,
|
|
|
[GPLL0_OUT_EVEN] = &gpll0_out_even.clkr,
|
|
|
[GPLL4] = &gpll4.clkr,
|
|
|
+ [GCC_CPUSS_DVM_BUS_CLK] = &gcc_cpuss_dvm_bus_clk.clkr,
|
|
|
+ [GCC_CPUSS_GNOC_CLK] = &gcc_cpuss_gnoc_clk.clkr,
|
|
|
};
|
|
|
|
|
|
static const struct qcom_reset_map gcc_sdm845_resets[] = {
|
|
|
@@ -3433,10 +3472,6 @@ static int gcc_sdm845_probe(struct platform_device *pdev)
|
|
|
regmap_update_bits(regmap, 0x09ffc, 0x3, 0x3);
|
|
|
regmap_update_bits(regmap, 0x71028, 0x3, 0x3);
|
|
|
|
|
|
- /* Enable CPUSS clocks */
|
|
|
- regmap_update_bits(regmap, 0x48190, BIT(0), 0x1);
|
|
|
- regmap_update_bits(regmap, 0x52004, BIT(22), 0x1);
|
|
|
-
|
|
|
return qcom_cc_really_probe(pdev, &gcc_sdm845_desc, regmap);
|
|
|
}
|
|
|
|