Lines Matching +full:msm8996 +full:- +full:cbf

1 // SPDX-License-Identifier: GPL-2.0
7 #include <linux/clk-provider.h>
8 #include <linux/interconnect-clk.h>
9 #include <linux/interconnect-provider.h>
15 #include <dt-bindings/interconnect/qcom,msm8996-cbf.h>
17 #include "clk-alpha-pll.h"
18 #include "clk-regmap.h"
112 regmap_read(clkr->regmap, mux->reg, &val); in clk_cbf_8996_mux_get_parent()
125 return regmap_update_bits(clkr->regmap, mux->reg, CBF_MUX_PARENT_MASK, val); in clk_cbf_8996_mux_set_parent()
133 if (req->rate < (DIV_THRESHOLD / cbf_pll_postdiv.div)) in clk_cbf_8996_mux_determine_rate()
134 return -EINVAL; in clk_cbf_8996_mux_determine_rate()
136 if (req->rate < DIV_THRESHOLD) in clk_cbf_8996_mux_determine_rate()
142 return -EINVAL; in clk_cbf_8996_mux_determine_rate()
144 req->best_parent_rate = clk_hw_round_rate(parent, req->rate); in clk_cbf_8996_mux_determine_rate()
145 req->best_parent_hw = parent; in clk_cbf_8996_mux_determine_rate()
184 if (cnd->old_rate > DIV_THRESHOLD && in cbf_clk_notifier_cb()
185 cnd->new_rate < DIV_THRESHOLD) in cbf_clk_notifier_cb()
190 if (cnd->new_rate < DIV_THRESHOLD && in cbf_clk_notifier_cb()
191 cnd->old_rate > DIV_THRESHOLD) in cbf_clk_notifier_cb()
226 struct device *dev = &pdev->dev; in qcom_msm8996_cbf_icc_register()
227 struct clk *clk = devm_clk_hw_get_clk(dev, cbf_hw, "cbf"); in qcom_msm8996_cbf_icc_register()
231 .name = "cbf", in qcom_msm8996_cbf_icc_register()
257 dev_warn(&pdev->dev, "CONFIG_INTERCONNECT is disabled, CBF clock is fixed\n"); in qcom_msm8996_cbf_icc_register()
269 struct device *dev = &pdev->dev; in qcom_msm8996_cbf_probe()
280 /* Select GPLL0 for 300MHz for the CBF clock */ in qcom_msm8996_cbf_probe()
286 /* Set the auto clock sel always-on source to GPLL0/2 (300MHz) */ in qcom_msm8996_cbf_probe()
296 /* Enable auto clock selection for CBF */ in qcom_msm8996_cbf_probe()
304 /* Switch CBF to use the primary PLL */ in qcom_msm8996_cbf_probe()
307 if (of_device_is_compatible(dev->of_node, "qcom,msm8996pro-cbf")) { in qcom_msm8996_cbf_probe()
341 { .compatible = "qcom,msm8996-cbf" },
342 { .compatible = "qcom,msm8996pro-cbf" },
351 .name = "qcom-msm8996-cbf",
370 MODULE_DESCRIPTION("QCOM MSM8996 CPU Bus Fabric Clock Driver");