@@ -1345,38 +1345,6 @@ static struct clk_branch gcc_sleep_clk_src = {
},
};
-static struct clk_branch gcc_xo_clk_src = {
- .halt_reg = 0x30018,
- .clkr = {
- .enable_reg = 0x30018,
- .enable_mask = BIT(1),
- .hw.init = &(struct clk_init_data) {
- .name = "gcc_xo_clk_src",
- .parent_data = gcc_xo_data,
- .num_parents = ARRAY_SIZE(gcc_xo_data),
- .flags = CLK_SET_RATE_PARENT,
- .ops = &clk_branch2_ops,
- },
- },
-};
-
-static struct clk_branch gcc_xo_clk = {
- .halt_reg = 0x30030,
- .clkr = {
- .enable_reg = 0x30030,
- .enable_mask = BIT(0),
- .hw.init = &(struct clk_init_data) {
- .name = "gcc_xo_clk",
- .parent_hws = (const struct clk_hw *[]) {
- &gcc_xo_clk_src.clkr.hw,
- },
- .num_parents = 1,
- .flags = CLK_SET_RATE_PARENT,
- .ops = &clk_branch2_ops,
- },
- },
-};
-
static struct clk_branch gcc_adss_pwm_clk = {
.halt_reg = 0x1f020,
.clkr = {
@@ -1584,11 +1552,7 @@ static struct clk_branch gcc_cmn_blk_sys_clk = {
.enable_mask = BIT(0),
.hw.init = &(struct clk_init_data) {
.name = "gcc_cmn_blk_sys_clk",
- .parent_hws = (const struct clk_hw *[]) {
- &gcc_xo_clk_src.clkr.hw,
- },
- .num_parents = 1,
- .flags = CLK_SET_RATE_PARENT,
+ .num_parents = 0,
.ops = &clk_branch2_ops,
},
},
@@ -2980,11 +2944,7 @@ static struct clk_branch gcc_uniphy_sys_clk = {
.enable_mask = BIT(0),
.hw.init = &(struct clk_init_data) {
.name = "gcc_uniphy_sys_clk",
- .parent_hws = (const struct clk_hw *[]) {
- &gcc_xo_clk_src.clkr.hw,
- },
- .num_parents = 1,
- .flags = CLK_SET_RATE_PARENT,
+ .num_parents = 0,
.ops = &clk_branch2_ops,
},
},
@@ -3504,8 +3464,6 @@ static struct clk_regmap *gcc_ipq5018_clks[] = {
[GCC_WCSS_DBG_IFC_NTS_BDG_CLK] = &gcc_wcss_dbg_ifc_nts_bdg_clk.clkr,
[GCC_WCSS_DBG_IFC_NTS_CLK] = &gcc_wcss_dbg_ifc_nts_clk.clkr,
[GCC_WCSS_ECAHB_CLK] = &gcc_wcss_ecahb_clk.clkr,
- [GCC_XO_CLK] = &gcc_xo_clk.clkr,
- [GCC_XO_CLK_SRC] = &gcc_xo_clk_src.clkr,
[GMAC0_RX_CLK_SRC] = &gmac0_rx_clk_src.clkr,
[GMAC0_RX_DIV_CLK_SRC] = &gmac0_rx_div_clk_src.clkr,
[GMAC0_TX_CLK_SRC] = &gmac0_tx_clk_src.clkr,
@@ -3696,6 +3654,10 @@ static int gcc_ipq5018_probe(struct platform_device *pdev)
if (IS_ERR(regmap))
return PTR_ERR(regmap);
+ /* Keep some clocks always-on */
+ qcom_branch_set_clk_en(regmap, 0x30018); /* GCC_XO_CLK_SRC */
+ qcom_branch_set_clk_en(regmap, 0x30030); /* GCC_XO_CLK */
+
clk_alpha_pll_configure(&ubi32_pll_main, regmap, &ubi32_pll_config);
return qcom_cc_really_probe(&pdev->dev, &ipq5018_desc, regmap);