diff --git a/drivers/clk/qcom/gcc-sdx75.c b/drivers/clk/qcom/gcc-sdx75.c index 97be0f47bd18..080e14e832f0 100644 --- a/drivers/clk/qcom/gcc-sdx75.c +++ b/drivers/clk/qcom/gcc-sdx75.c @@ -2905,7 +2905,20 @@ static const struct regmap_config gcc_sdx75_regmap_config = { .fast_io = true, }; +static const u32 gcc_sdx75_critical_cbcrs[] = { + 0x3e004, /* GCC_AHB_PCIE_LINK_CLK */ + 0x3e008, /* GCC_XO_PCIE_LINK_CLK */ +}; + +static const struct qcom_cc_driver_data gcc_sdx75_driver_data = { + .clk_cbcrs = gcc_sdx75_critical_cbcrs, + .num_clk_cbcrs = ARRAY_SIZE(gcc_sdx75_critical_cbcrs), + .dfs_rcgs = gcc_dfs_clocks, + .num_dfs_rcgs = ARRAY_SIZE(gcc_dfs_clocks), +}; + static const struct qcom_cc_desc gcc_sdx75_desc = { + .driver_data = &gcc_sdx75_driver_data, .config = &gcc_sdx75_regmap_config, .clks = gcc_sdx75_clocks, .num_clks = ARRAY_SIZE(gcc_sdx75_clocks), @@ -2924,23 +2937,7 @@ MODULE_DEVICE_TABLE(of, gcc_sdx75_match_table); static int gcc_sdx75_probe(struct platform_device *pdev) { - struct regmap *regmap; - int ret; - - regmap = qcom_cc_map(pdev, &gcc_sdx75_desc); - if (IS_ERR(regmap)) - return PTR_ERR(regmap); - - ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, - ARRAY_SIZE(gcc_dfs_clocks)); - if (ret) - return ret; - - /* Keep some clocks always-on */ - qcom_branch_set_clk_en(regmap, 0x3e004); /* GCC_AHB_PCIE_LINK_CLK */ - qcom_branch_set_clk_en(regmap, 0x3e008); /* GCC_XO_PCIE_LINK_CLK */ - - return qcom_cc_really_probe(&pdev->dev, &gcc_sdx75_desc, regmap); + return qcom_cc_probe(pdev, &gcc_sdx75_desc); } static struct platform_driver gcc_sdx75_driver = {