OpenCloudOS-Kernel/drivers/clk/qcom
Shawn Guo 36354c32bd clk: qcom: smd-rpm: Add .recalc_rate hook for clk_smd_rpm_branch_ops
As there is a `rate` field in clk_smd_rpm, clk_smd_rpm_recalc_rate() can
be used by branch clocks to report rate as well, rather than assuming
the rate is always same as parent clock.  This assumption doesn't hold
on platforms like QCM2290, where xo_board is 38.4MHz while bi_tcxo is
19.2MHz.

To get this work, XO buffered clocks need the following updates.

- Assign a correct rate rather than the fake one which is being used to
  generate binary value for clk_smd_rpm_req interface.

- Explicitly handle the clk_smd_rpm_req interface value for XO buffered
  clocks (.rpm_res_type being QCOM_SMD_RPM_CLK_BUF_A).

Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Link: https://lore.kernel.org/r/20210917030434.19859-2-shawn.guo@linaro.org
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
[sboyd@kernel.org: Do cpu_to_le32() again to keep sparse happy]
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
2021-10-13 15:20:22 -07:00
..
Kconfig clk: qcom: Add Global Clock Controller driver for QCM2290 2021-10-13 12:43:02 -07:00
Makefile clk: qcom: Add Global Clock Controller driver for QCM2290 2021-10-13 12:43:02 -07:00
a7-pll.c clk: qcom: a7-pll: Add missing MODULE_DEVICE_TABLE 2021-04-09 11:20:52 -07:00
a53-pll.c clk: qcom: a53-pll: Make use of the helper function devm_platform_ioremap_resource() 2021-09-14 14:39:14 -07:00
apcs-msm8916.c clk: qcom: a53pll/mux: Use unique clock name 2021-08-05 18:52:11 -07:00
apcs-sdx55.c clk: qcom: cleanup some dev_err_probe() calls 2021-06-01 16:34:02 -07:00
apss-ipq-pll.c clk: qcom: apss-ipq-pll: Add missing MODULE_DEVICE_TABLE 2021-04-09 11:20:53 -07:00
apss-ipq6018.c clk: qcom: Fix return value check in apss_ipq6018_probe() 2020-06-29 14:15:34 -07:00
camcc-sc7180.c clk: qcom: use devm_pm_runtime_enable and devm_pm_clk_create 2021-08-26 11:28:11 -07:00
camcc-sdm845.c clk: qcom: Add camera clock controller driver for SDM845 2018-08-30 18:27:06 -07:00
camcc-sm8250.c clk: qcom: Add camera clock controller driver for SM8250 2021-06-27 17:19:22 -07:00
clk-alpha-pll.c clk: qcom: clk-alpha-pll: fix CAL_L write in alpha_pll_fabia_prepare 2021-06-27 19:34:31 -07:00
clk-alpha-pll.h clk: qcom: clk-alpha-pll: add support for zonda pll 2021-06-27 17:12:55 -07:00
clk-branch.c clk: qcom: branch: Add AON clock ops 2019-04-11 13:34:21 -07:00
clk-branch.h clk: qcom: branch: Add AON clock ops 2019-04-11 13:34:21 -07:00
clk-cpu-8996.c clk: qcom: msm8996: Make symbol 'cpu_msm8996_clks' static 2020-07-20 17:40:18 -07:00
clk-hfpll.c clk: let init callback return an error code 2019-12-23 18:53:13 -08:00
clk-hfpll.h clk: qcom: Add support for High-Frequency PLLs (HFPLLs) 2018-10-17 13:14:37 -07:00
clk-krait.c clk: qcom: Add safe switch hook for krait mux clocks 2018-10-17 13:15:05 -07:00
clk-krait.h clk: qcom: Add safe switch hook for krait mux clocks 2018-10-17 13:15:05 -07:00
clk-pll.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-pll.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-rcg.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-rcg.h clk: qcom: rcg2: Stop hardcoding gfx3d pingpong parent numbers 2021-02-14 12:56:54 -08:00
clk-rcg2.c clk: qcom: clk-rcg2: Add support for duty-cycle for RCG 2021-05-25 20:36:21 -07:00
clk-regmap-divider.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-regmap-divider.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-regmap-mux-div.c clk: qcom: Add regmap mux-div clocks support 2018-01-02 10:00:24 -08:00
clk-regmap-mux-div.h clk: qcom: Use the correct style for SPDX License Identifier 2019-05-01 13:01:13 -07:00
clk-regmap-mux.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-regmap-mux.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-regmap.c clk: qcom: clk-regmap: Provide missing description for 'devm_clk_register_regmap()'s dev param 2021-02-10 19:42:51 -08:00
clk-regmap.h clk: define to_clk_regmap() as inline function 2020-10-28 16:34:44 -07:00
clk-rpm.c clk: qcom: clk-rpm: Remove a bunch of superfluous code 2021-02-11 11:56:06 -08:00
clk-rpmh.c clk: qcom: rpmh: Add support for RPMH clocks on SM6350 2021-08-28 21:01:21 -07:00
clk-smd-rpm.c clk: qcom: smd-rpm: Add .recalc_rate hook for clk_smd_rpm_branch_ops 2021-10-13 15:20:22 -07:00
clk-spmi-pmic-div.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
common.c clk: qcom: common: Make use of the helper function devm_platform_ioremap_resource() 2021-09-14 14:39:31 -07:00
common.h clk: qcom: define probe by index API as common API 2019-08-08 08:20:01 -07:00
dispcc-sc7180.c clk: qcom: dispcc-sc7180: use parent_hws where possible 2021-04-07 17:22:53 -07:00
dispcc-sc7280.c clk: qcom: Add display clock controller driver for SC7280 2021-07-20 13:46:32 -07:00
dispcc-sdm845.c clk: qcom: dispcc-sdm845: get rid of the test clock 2021-04-07 17:22:53 -07:00
dispcc-sm8250.c clk: qcom: dispcc-sm8250: Add additional parent clocks for DP 2021-07-27 11:30:16 -07:00
gcc-apq8084.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-ipq806x.c ipq806x: gcc: add support for child probe 2020-07-21 00:10:21 -07:00
gcc-ipq4019.c clk: qcom: gcc-ipq4019: Remove unused variable 'ret' 2021-02-11 11:56:05 -08:00
gcc-ipq6018.c clk: qcom: Add ipq6018 Global Clock Controller support 2020-01-09 12:42:55 -08:00
gcc-ipq8074.c clk: qcom: ipq8074: make pcie0_rchng_clk_src static 2020-09-22 11:34:33 -07:00
gcc-mdm9607.c clk/qcom: Remove unused variables 2021-06-27 17:04:48 -07:00
gcc-mdm9615.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-msm8660.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-msm8916.c clk: qcom: msm8916: Fix the address location of pll->config_reg 2020-04-21 19:45:18 -07:00
gcc-msm8939.c clk: qcom: gcc-msm8939: remove defined but not used variables 2020-09-22 11:50:23 -07:00
gcc-msm8953.c clk: qcom: Remove redundant .owner 2021-10-07 18:24:40 -07:00
gcc-msm8960.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-msm8974.c clk: qcom: gcc: Add support for Global Clock controller found on MSM8226 2021-06-27 17:00:50 -07:00
gcc-msm8994.c clk: qcom: gcc-msm8994: Add missing clocks, resets and GDSCs 2020-10-13 18:04:36 -07:00
gcc-msm8996.c clk: qcom: gcc-msm8996: Fix parent for CLKREF clocks 2020-01-06 08:55:28 -08:00
gcc-msm8998.c clk: qcom: gcc-msm8998: Remove transient global "xo" clock 2021-09-14 14:40:32 -07:00
gcc-qcm2290.c clk: qcom: Add Global Clock Controller driver for QCM2290 2021-10-13 12:43:02 -07:00
gcc-qcs404.c clk: qcom: gcc: limit GPLL0_AO_OUT operating frequency 2019-12-18 22:07:52 -08:00
gcc-sc7180.c clk: qcom: gcc-sc7180: use ARRAY_SIZE instead of specifying num_parents 2021-04-07 17:25:50 -07:00
gcc-sc7280.c clk: qcom: gcc: Remove CPUSS clocks control for SC7280 2021-10-07 20:38:13 -07:00
gcc-sc8180x.c clk: qcom: gcc-sc8180x: use ARRAY_SIZE instead of specifying num_parents 2021-04-07 17:25:52 -07:00
gcc-sdm660.c clk: qcom: gcc-sdm660: Use ARRAY_SIZE for num_parents 2021-09-14 14:09:47 -07:00
gcc-sdm845.c clk: qcom: gcc-sdm845: get rid of the test clock 2021-04-09 12:01:22 -07:00
gcc-sdx55.c clk: qcom: gcc-sdx55: use parent_hws where possible 2021-04-07 17:22:54 -07:00
gcc-sm6115.c clk: qcom: Add Global Clock controller (GCC) driver for SM6115 2021-08-28 20:54:21 -07:00
gcc-sm6125.c clk: qcom: Add SM6125 (TRINKET) GCC driver 2021-06-27 16:53:29 -07:00
gcc-sm6350.c clk: qcom: gcc-sm6350: Remove unused variable 2021-09-03 11:14:18 -07:00
gcc-sm8150.c clk: qcom: gcc-sm8150: use ARRAY_SIZE instead of specifying num_parents 2021-04-07 17:25:52 -07:00
gcc-sm8250.c clk: qcom: gcc-sm8250: use ARRAY_SIZE instead of specifying num_parents 2021-04-07 17:25:52 -07:00
gcc-sm8350.c clk: qcom: gcc-sm8350: use ARRAY_SIZE instead of specifying num_parents 2021-04-07 17:25:53 -07:00
gdsc.c clk: qcom: gdsc: Ensure regulator init state matches GDSC state 2021-08-05 18:19:04 -07:00
gdsc.h clk: qcom: gdsc: Implement NO_RET_PERIPH flag 2021-02-14 12:56:54 -08:00
gpucc-msm8998.c clk: qcom: gpucc-msm8998: Remove unnecessary fallbacks to global clocks 2021-09-14 14:40:33 -07:00
gpucc-sc7180.c clk: qcom: gpucc-sc7180: drop unused enum entries 2021-04-07 17:22:51 -07:00
gpucc-sc7280.c clk: qcom: Add graphics clock controller driver for SC7280 2021-07-20 13:46:32 -07:00
gpucc-sdm660.c clk: qcom: gpucc-sdm660: Remove fallback to global clock names 2021-09-14 14:09:48 -07:00
gpucc-sdm845.c clk: qcom: gpucc-sdm845: get rid of the test clock 2021-04-07 17:22:53 -07:00
gpucc-sm8150.c clk: qcom: gpucc-sm8150: Add SC8180x support 2021-08-05 18:50:43 -07:00
gpucc-sm8250.c clk: qcom: gpucc-sm8250: use parent_hws where possible 2021-04-07 17:22:54 -07:00
hfpll.c clk: qcom: hfpll: use clk_parent_data to specify the parent 2019-12-18 22:07:52 -08:00
kpss-xcc.c clk: qcom: kpss-xcc: Make use of the helper function devm_platform_ioremap_resource() 2021-09-14 14:39:44 -07:00
krait-cc.c clk: qcom: Add safe switch hook for krait mux clocks 2018-10-17 13:15:05 -07:00
lcc-ipq806x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
lcc-mdm9615.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
lcc-msm8960.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
lpass-gfm-sm8250.c clk: qcom: use devm_pm_runtime_enable and devm_pm_clk_create 2021-08-26 11:28:11 -07:00
lpasscc-sdm845.c clk: qcom: define probe by index API as common API 2019-08-08 08:20:01 -07:00
lpasscorecc-sc7180.c clk: qcom: use devm_pm_runtime_enable and devm_pm_clk_create 2021-08-26 11:28:11 -07:00
mmcc-apq8084.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
mmcc-msm8960.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
mmcc-msm8974.c clk: qcom: mmcc-msm8974: Remove unused static const tables 'mmcc_xo_mmpll0_1_2_gpll0{map}' 2021-02-11 11:56:06 -08:00
mmcc-msm8994.c clk: qcom: mmcc-msm8994: Add MSM8992 support 2021-08-26 11:58:17 -07:00
mmcc-msm8996.c clk: qcom: mmcc-msm8996: Migrate gfx3d clock to clk_rcg2_gfx3d 2021-02-14 12:56:54 -08:00
mmcc-msm8998.c clk: qcom: mmcc-msm8998: Remove unnecessary fallbacks to global clocks 2021-09-14 14:40:33 -07:00
mmcc-sdm660.c clk: qcom: mmcc-sdm660: Use ARRAY_SIZE for num_parents 2021-09-14 14:09:48 -07:00
mss-sc7180.c clk: qcom: use devm_pm_runtime_enable and devm_pm_clk_create 2021-08-26 11:28:11 -07:00
q6sstop-qcs404.c clk: qcom: use devm_pm_runtime_enable and devm_pm_clk_create 2021-08-26 11:28:11 -07:00
reset.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
reset.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
turingcc-qcs404.c clk: qcom: use devm_pm_runtime_enable and devm_pm_clk_create 2021-08-26 11:28:11 -07:00
videocc-sc7180.c clk: qcom: videocc-sc7180: drop unused enum entries 2021-04-07 17:22:52 -07:00
videocc-sc7280.c clk: qcom: Add video clock controller driver for SC7280 2021-07-20 13:46:32 -07:00
videocc-sdm845.c clk: qcom: videocc-sdm845: get rid of the test clock 2021-04-07 17:22:53 -07:00
videocc-sm8150.c clk: qcom: videocc-sm8150: use parent_hws where possible 2021-04-07 17:22:54 -07:00
videocc-sm8250.c clk: qcom: videocc-sm8250: use parent_hws where possible 2021-04-07 17:22:54 -07:00