linux/drivers/clk/qcom
Robert Marko 43a56cbf2a clk: qcom: apss-ipq6018: fix apcs_alias0_clk_src
While working on IPQ8074 APSS driver it was discovered that IPQ6018 and
IPQ8074 use almost the same PLL and APSS clocks, however APSS driver is
currently broken.

More precisely apcs_alias0_clk_src is broken, it was added as regmap_mux
clock.
However after debugging why it was always stuck at 800Mhz, it was figured
out that its not regmap_mux compatible at all.
It is a simple mux but it uses RCG2 register layout and control bits, so
utilize the new clk_rcg2_mux_closest_ops to correctly drive it while not
having to provide a dummy frequency table.

While we are here, use ARRAY_SIZE for number of parents.

Tested on IPQ6018-CP01-C1 reference board and multiple IPQ8074 boards.

Fixes: 5e77b4ef1b ("clk: qcom: Add ipq6018 apss clock controller")
Signed-off-by: Robert Marko <robimarko@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20220818220628.339366-2-robimarko@gmail.com
2022-09-26 21:40:10 -05: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: convert to use parent_data rather than parent_names 2022-09-13 16:49:15 -05: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-ipq6018.c clk: qcom: apss-ipq6018: fix apcs_alias0_clk_src 2022-09-26 21:40:10 -05:00
apss-ipq-pll.c clk: qcom: apss-ipq-pll: Add missing MODULE_DEVICE_TABLE 2021-04-09 11:20:53 -07:00
camcc-sc7180.c clk: qcom: camcc-sc7180: use parent_hws instead of parent_data 2022-02-10 18:33:30 -06:00
camcc-sc7280.c clk: qcom: camcc: Add camera clock controller driver for SC7280 2021-10-13 15:32:29 -07:00
camcc-sdm845.c clk: qcom: camcc-sdm845: Fix topology around titan_top power domain 2022-06-30 18:34:54 -05:00
camcc-sm8250.c clk: qcom: camcc-sm8250: Fix topology around titan_top power domain 2022-06-30 18:34:55 -05:00
camcc-sm8450.c clk: qcom: add camera clock controller driver for SM8450 SoC 2022-07-06 15:20:59 -05:00
clk-alpha-pll.c clk: qcom: clk-alpha-pll: add Rivian EVO PLL configuration interfaces 2022-07-06 15:20:59 -05:00
clk-alpha-pll.h clk: qcom: clk-alpha-pll: add Rivian EVO PLL configuration interfaces 2022-07-06 15:20:59 -05: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: cpu-8996: use constant mask for pmux 2022-09-26 11:12:45 -05:00
clk-hfpll.c clk: qcom: clk-hfpll: use poll_timeout macro 2022-06-27 15:41:37 -05: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: clk-krait: add apq/ipq8064 errata workaround 2022-06-27 15:41:37 -05:00
clk-krait.h clk: qcom: clk-krait: add apq/ipq8064 errata workaround 2022-06-27 15:41:37 -05: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-rcg2.c clk: qcom: clk-rcg2: add rcg2 mux ops 2022-09-26 21:40:10 -05:00
clk-rcg.c clk: qcom: clk-rcg: add clk_rcg_floor_ops ops 2022-03-08 16:19:31 -06:00
clk-rcg.h clk: qcom: clk-rcg2: add rcg2 mux ops 2022-09-26 21:40:10 -05: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 Revert "clk: qcom: regmap-mux: add pipe clk implementation" 2022-05-23 12:26:13 -05:00
clk-regmap-mux.h Revert "clk: qcom: regmap-mux: add pipe clk implementation" 2022-05-23 12:26:13 -05:00
clk-regmap-phy-mux.c clk: qcom: regmap: add PHY clock source implementation 2022-06-25 21:36:07 -05:00
clk-regmap-phy-mux.h clk: qcom: regmap: add PHY clock source implementation 2022-06-25 21:36:07 -05: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: convert to parent_data API 2022-07-18 19:13:27 -05:00
clk-rpmh.c clk: qcom: clk-rpmh: Remove redundant if statement 2022-09-13 21:54:13 -05:00
clk-smd-rpm.c clk: qcom: smd-rpm: Add clocks for MSM8909 2022-09-13 22:07:25 -05: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: regmap-mux: fix parent clock lookup 2021-12-02 15:07:34 -08:00
common.h clk: qcom: regmap-mux: fix parent clock lookup 2021-12-02 15:07:34 -08:00
dispcc-qcm2290.c clk: qcom: Add display clock controller driver for QCM2290 2022-02-10 17:56:10 -06:00
dispcc-sc7180.c clk: qcom: dispcc: Update the transition delay for MDSS GDSC 2022-02-24 16:22:11 -08:00
dispcc-sc7280.c clk: qcom: dispcc: Update the transition delay for MDSS GDSC 2022-02-24 16:22:11 -08:00
dispcc-sdm845.c clk: qcom: dispcc-sdm845: get rid of the test clock 2021-04-07 17:22:53 -07:00
dispcc-sm6125.c clk: qcom: Add display clock controller driver for SM6125 2022-03-09 08:53:30 -06:00
dispcc-sm6350.c clk: qcom: Add display clock controller driver for SM6350 2022-03-08 16:16:47 -06:00
dispcc-sm8250.c clk: qcom: Drop mmcx gdsc supply for dispcc and videocc 2022-07-18 16:35:03 -05:00
gcc-apq8084.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-ipq806x.c clk: qcom: gcc-ipq806x: add CryptoEngine resets 2022-03-08 16:19:31 -06: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: dont disable gcc_sleep_clk_src 2022-06-30 18:24:54 -05: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 clk: qcom: gcc-msm8660: use parent_hws/_data instead of parent_names 2022-09-13 16:44:54 -05:00
gcc-msm8909.c clk: qcom: gcc-msm8909: Increase delay for USB PHY reset 2022-09-13 22:07:25 -05:00
gcc-msm8916.c clk: qcom: gcc-msm8916: use parent_hws/_data instead of parent_names 2022-08-29 15:42:54 -05:00
gcc-msm8939.c clk: qcom: gcc-msm8939: Add missing USB HS system clock frequencies 2022-07-18 18:55:31 -05:00
gcc-msm8953.c clk: qcom: Remove redundant .owner 2021-10-07 18:24:40 -07:00
gcc-msm8960.c clk: qcom: gcc-msm8960: use parent_hws/_data instead of parent_names 2022-09-13 21:58:34 -05: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-msm8976.c clk: qcom: gcc-msm8976: Add modem reset 2022-05-05 22:22:27 -05:00
gcc-msm8994.c clk: qcom: gcc-msm8994: use parent_hws for gpll0/4 2022-07-18 21:40:36 -05:00
gcc-msm8996.c clk: qcom: gcc-msm8996: start getting rid of xo clk 2022-02-10 18:33:31 -06:00
gcc-msm8998.c clk: qcom: gcc-msm8998: add SSC-related clocks 2022-04-19 12:05:14 -05: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-sc7280: use new clk_regmap_phy_mux_ops for PCIe pipe clocks 2022-06-25 21:36:08 -05: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-sc8280xp.c clk: gcc-sc8280xp: keep USB power-domains always-on 2022-08-18 14:12:03 -05:00
gcc-sdm660.c clk: qcom: gcc-sdm660: Use floor ops for SDCC1 clock 2022-08-29 15:55:57 -05:00
gcc-sdm845.c clk: qcom: gcc-sdm845: add sdm670 global clock data 2022-09-13 21:20:34 -05:00
gcc-sdx55.c clk: qcom: gcc-sdx55: use parent_hws where possible 2021-04-07 17:22:54 -07:00
gcc-sdx65.c clk: qcom: Add SDX65 GCC support 2021-12-16 13:17:22 -06:00
gcc-sm6115.c clk: qcom: gcc-sm6115: Fix offset for hlos1_vote_turing_mmu_tbu0_gdsc 2021-10-13 10:43:39 -07:00
gcc-sm6125.c clk: qcom: sm6125-gcc: fix typos in comments 2022-03-15 15:48:38 -07:00
gcc-sm6350.c clk: qcom: gcc-sm6350: Drop extra semicolon 2022-06-27 15:11:48 -05:00
gcc-sm8150.c clk: qcom: gcc: Add emac GDSC support for SM8150 2022-03-09 08:53:29 -06: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: explicitly include clk-provider.h 2021-12-20 23:14:50 -06:00
gcc-sm8450.c clk: qcom: gcc-sm8450: use new clk_regmap_phy_mux_ops for PCIe pipe clocks 2022-06-25 21:36:08 -05:00
gdsc.c clk: qcom: gdsc: Bump parent usage count when GDSC is found enabled 2022-07-18 16:35:48 -05:00
gdsc.h clk: qcom: gdsc: add support for collapse-vote registers 2022-06-25 22:38:02 -05: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: use parent_hws instead of parent_data 2022-02-10 18:33:30 -06:00
gpucc-sdm845.c clk: qcom: gpucc-sdm845: get rid of the test clock 2021-04-07 17:22:53 -07:00
gpucc-sm6350.c clk: qcom: Add GPU clock controller driver for SM6350 2022-03-08 16:16:47 -06: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
gpucc-sm8350.c clk: qcom: fix build error initializer element is not constant 2022-07-16 21:35:55 -05:00
hfpll.c clk: qcom: hfpll: use clk_parent_data to specify the parent 2019-12-18 22:07:52 -08:00
Kconfig clk: qcom: Add driver for MSM8909 GCC 2022-09-13 22:07:25 -05:00
kpss-xcc.c clk: qcom: Declare mux table as const u32[] 2022-02-25 16:41:39 -08:00
krait-cc.c clk: qcom: clk-krait: add apq/ipq8064 errata workaround 2022-06-27 15:41:37 -05:00
lcc-ipq806x.c clk: qcom: lcc-ipq806x: use ARRAY_SIZE for num_parents 2022-09-26 11:18:56 -05:00
lcc-mdm9615.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
lcc-msm8960.c clk: qcom: lcc-msm8960: use parent_hws/_data instead of parent_names 2022-09-13 21:58:34 -05: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
lpassaudiocc-sc7280.c clk: qcom: lpass: Add support for resets & external mclk for SC7280 2022-09-13 09:48:30 -05:00
lpasscc-sc7280.c clk: qcom: lpass: Handle the regmap overlap of lpasscc and lpass_aon 2022-09-13 09:48:30 -05:00
lpasscc-sdm845.c clk: qcom: lpasscc-sdm845: explicitly include clk-provider.h 2021-12-20 23:14:50 -06:00
lpasscorecc-sc7180.c clk: qcom: use devm_pm_runtime_enable and devm_pm_clk_create 2021-08-26 11:28:11 -07:00
lpasscorecc-sc7280.c clk: qcom: lpass: Add support for resets & external mclk for SC7280 2022-09-13 09:48:30 -05:00
Makefile clk: qcom: Add driver for MSM8909 GCC 2022-09-13 22:07:25 -05:00
mmcc-apq8084.c clk: qcom: mmcc-apq8084: explicitly include clk-provider.h 2021-12-20 23:14:50 -06:00
mmcc-msm8960.c clk: qcom: mmcc-msm8960: use parent_hws/_data instead of parent_names 2022-09-13 21:58:35 -05:00
mmcc-msm8974.c clk: qcom: Add MSM8226 Multimedia Clock Controller support 2022-02-10 18:36:08 -06: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: use parent_hws/_data instead of parent_names 2022-06-25 15:18:15 -05: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: Add hw_ctrl flag to venus_core0_gdsc 2021-10-13 15:20:24 -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: q6sstop-qcs404: explicitly include clk-provider.h 2021-12-20 23:14:50 -06:00
reset.c clk: qcom: reset: Allow specifying custom reset delay 2022-09-13 22:07:25 -05:00
reset.h clk: qcom: reset: Allow specifying custom reset delay 2022-09-13 22:07:25 -05:00
turingcc-qcs404.c clk: qcom: turingcc-qcs404: explicitly include clk-provider.h 2021-12-20 23:14:50 -06:00
videocc-sc7180.c clk: qcom: videocc-sc7180: use parent_hws instead of parent_data 2022-02-10 18:33:31 -06: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: Drop mmcx gdsc supply for dispcc and videocc 2022-07-18 16:35:03 -05:00