linux/drivers/clk/qcom
Jagadeesh Kona f7ccdaad61 clk: qcom: gdsc: Add set and get hwmode callbacks to switch GDSC mode
Some GDSC client drivers require the GDSC mode to be switched dynamically
to HW mode at runtime to gain the power benefits. Typically such client
drivers require the GDSC to be brought up in SW mode initially to enable
the required dependent clocks and configure the hardware to proper state.
Once initial hardware set up is done, they switch the GDSC to HW mode to
save power. At the end of usecase, they switch the GDSC back to SW mode
and disable the GDSC.

Introduce HW_CTRL_TRIGGER flag to register the set_hwmode_dev and
get_hwmode_dev callbacks for GDSC's whose respective client drivers
require the GDSC mode to be switched dynamically at runtime using
dev_pm_genpd_set_hwmode() API.

Signed-off-by: Jagadeesh Kona <quic_jkona@quicinc.com>
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Taniya Das <quic_tdas@quicinc.com>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20240624044809.17751-4-quic_jkona@quicinc.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2024-07-09 12:59:58 +02:00
..
a7-pll.c
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: Convert to platform remove callback returning void 2023-03-13 05:41:06 -07:00
apcs-msm8996.c clk: qcom: apcs-msm8986: Include bitfield.h for FIELD_PREP 2023-02-22 17:38:56 -08:00
apcs-sdx55.c clk: qcom: Convert to platform remove callback returning void 2023-03-13 05:41:06 -07:00
apss-ipq6018.c clk: qcom: apss-ipq6018: add the GPLL0 clock also as clock provider 2023-10-21 12:59:13 -07:00
apss-ipq-pll.c clk: qcom: apss-ipq-pll: fix PLL rate for IPQ5018 2024-05-07 21:10:17 -05:00
camcc-sc7180.c clk: qcom: camcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
camcc-sc7280.c clk: qcom: camcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
camcc-sc8280xp.c clk: qcom: camcc-sc8280xp: fix terminating of frequency table arrays 2024-03-02 12:40:37 -06:00
camcc-sdm845.c clk: qcom: camcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
camcc-sm6350.c clk: qcom: camcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06: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: camcc-sm8450: switch to parent_hws 2023-01-10 15:58:59 -06:00
camcc-sm8550.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
camcc-x1e80100.c clk: qcom: camcc-x1e80100: Fix missing DT_IFACE enum in x1e80100 camcc 2024-03-02 12:40:51 -06:00
clk-alpha-pll.c clk: qcom: clk-alpha-pll: fix rate setting for Stromer PLLs 2024-05-07 21:10:18 -05:00
clk-alpha-pll.h clk: qcom: apss-ipq-pll: move Huayra register map to 'clk_alpha_pll_regs' 2024-04-27 13:13:18 -05:00
clk-branch.c clk: qcom: branch: Add mem ops support for branch2 clocks 2023-12-07 08:47:05 -08:00
clk-branch.h clk: qcom: branch: Add a helper for setting the enable bit 2024-02-14 11:59:07 -06:00
clk-cbf-8996.c clk: qcom: clk-cbf-8996: use HUAYRA_APSS register map for cbf_pll 2024-04-27 13:13:18 -05:00
clk-cpu-8996.c clk: Annotate struct clk_hw_onecell_data with __counted_by 2023-08-22 13:51:26 -07:00
clk-hfpll.c clk: qcom: clk-hfpll: Configure l_val in init when required 2023-09-13 12:07:58 -07:00
clk-hfpll.h clk: qcom: clk-hfpll: Configure l_val in init when required 2023-09-13 12:07:58 -07:00
clk-krait.c clk: qcom: clk-krait: switch to .determine_rate 2023-03-13 16:38:24 -07:00
clk-krait.h clk: qcom: clk-krait: add apq/ipq8064 errata workaround 2022-06-27 15:41:37 -05:00
clk-pll.c
clk-pll.h
clk-rcg2.c clk: qcom: clk-rcg2: add support for rcg2 freq multi ops 2024-04-27 13:01:14 -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 support for rcg2 freq multi ops 2024-04-27 13:01:14 -05:00
clk-regmap-divider.c
clk-regmap-divider.h
clk-regmap-mux-div.c
clk-regmap-mux-div.h
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-regmap.h
clk-rpm.c clk: qcom: rpm: Remove an unused field in struct rpm_cc 2024-04-20 12:56:58 -05:00
clk-rpmh.c clk: qcom: rpmh: Add support for X1E80100 rpmh clocks 2023-12-07 20:21:13 -08:00
clk-smd-rpm.c clk: qcom: smd-rpm: Restore msm8976 num_clk 2024-04-02 22:49:07 -05:00
clk-spmi-pmic-div.c clk: qcom: clk-spmi-pmic-div: Annotate struct spmi_pmic_div_clk_cc with __counted_by 2023-08-22 13:51:54 -07:00
common.c clk: qcom: clk-rcg2: add support for rcg2 freq multi ops 2024-04-27 13:01:14 -05:00
common.h clk: qcom: clk-rcg2: add support for rcg2 freq multi ops 2024-04-27 13:01:14 -05:00
dispcc-qcm2290.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
dispcc-sc7180.c clk: qcom: dispcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
dispcc-sc7280.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
dispcc-sc8280xp.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
dispcc-sdm845.c clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times 2024-02-16 11:43:05 -06:00
dispcc-sm6115.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
dispcc-sm6125.c clk: qcom: dispcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
dispcc-sm6350.c clk: qcom: dispcc-sm6350: fix DisplayPort clocks 2024-04-27 13:14:56 -05:00
dispcc-sm6375.c clk: qcom: dispcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
dispcc-sm8250.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
dispcc-sm8450.c clk: qcom: dispcc-sm8450: fix DisplayPort clocks 2024-04-27 13:14:56 -05:00
dispcc-sm8550.c clk: qcom: dispcc-sm8550: fix DisplayPort clocks 2024-04-27 13:14:56 -05:00
dispcc-sm8650.c clk: qcom: dispcc-sm8650: fix DisplayPort clocks 2024-04-27 13:14:56 -05:00
dispcc-x1e80100.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
ecpricc-qdu1000.c clk: qcom: Add ECPRICC driver support for QDU1000 and QRU1000 2023-12-07 08:47:05 -08:00
gcc-apq8084.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-ipq806x.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-ipq4019.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
gcc-ipq5018.c clk: qcom: gcc-ipq5018: fix register offset for GCC_UBI0_AXI_ARES reset 2024-03-03 20:00:49 -08:00
gcc-ipq5332.c clk: qcom: ipq5332: drop the CLK_SET_RATE_PARENT flag from GPLL clocks 2023-10-21 12:59:13 -07:00
gcc-ipq6018.c clk: qcom: gcc-ipq6018: fix terminating of frequency table arrays 2024-03-02 12:40:20 -06:00
gcc-ipq8074.c clk: qcom: gcc-ipq8074: rework nss_port5/6 clock to multiple conf 2024-04-27 13:01:14 -05:00
gcc-ipq9574.c clk: qcom: gcc-ipq9574: fix terminating of frequency table arrays 2024-03-02 12:40:32 -06:00
gcc-mdm9607.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-mdm9615.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
gcc-msm8660.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-msm8909.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-msm8916.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-msm8917.c clk: qcom: fix module autoloading 2024-04-10 22:02:15 -05:00
gcc-msm8939.c clk: qcom: gcc-msm8939: Add missing CSI2 related clocks 2023-12-07 08:04:41 -08:00
gcc-msm8953.c clk: qcom: fix module autoloading 2024-04-10 22:02:15 -05:00
gcc-msm8960.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
gcc-msm8974.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
gcc-msm8976.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-msm8994.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-msm8996.c clk: qcom: gcc-msm8996: Remove RPM bus clocks 2023-09-19 20:02:31 -07:00
gcc-msm8998.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
gcc-qcm2290.c clk: qcom: gcc-qcm2290: Mark RCGs shared where applicable 2023-05-24 21:47:16 -07:00
gcc-qcs404.c clk: qcom: gcc-qcs404: fix duplicate initializer warning 2023-01-30 08:41:06 -06:00
gcc-qdu1000.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
gcc-sa8775p.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sc7180.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sc7280.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sc8180x.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sc8280xp.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sdm660.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-sdm845.c clk: qcom: gcc-sdm845: Add soft dependency on rpmhpd 2024-01-23 09:38:32 -06:00
gcc-sdx55.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sdx65.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sdx75.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm4450.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm6115.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-sm6125.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-sm6350.c clk: qcom: gcc-sm6350: Fix gcc_sdcc2_apps_clk_src 2023-08-04 08:54:29 -07:00
gcc-sm6375.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm7150.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm8150.c clk: qcom: gcc-sm8150: De-register gcc_cpuss_ahb_clk_src 2024-04-21 12:10:56 -05:00
gcc-sm8250.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm8350.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm8450.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm8550.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm8650.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-x1e80100.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gdsc.c clk: qcom: gdsc: Add set and get hwmode callbacks to switch GDSC mode 2024-07-09 12:59:58 +02:00
gdsc.h clk: qcom: gdsc: Add set and get hwmode callbacks to switch GDSC mode 2024-07-09 12:59:58 +02:00
gpucc-msm8998.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
gpucc-sa8775p.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sc7180.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sc7280.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gpucc-sc8280xp.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gpucc-sdm660.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gpucc-sdm845.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sm6115.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gpucc-sm6125.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gpucc-sm6350.c clk: qcom: gpucc-sm6350: Fix clock source names 2023-07-09 20:53:09 -07:00
gpucc-sm6375.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gpucc-sm8150.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sm8250.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sm8350.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sm8450.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gpucc-sm8550.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gpucc-sm8650.c clk: qcom: gpucc-sm8650: Add test_ctl parameters to PLL config 2023-12-19 14:12:41 -06:00
gpucc-x1e80100.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
hfpll.c clk: qcom: hfpll: Add QCS404-specific compatible 2024-04-23 14:14:47 -05:00
Kconfig clk: qcom: Fix SM_GPUCC_8650 dependencies 2024-05-07 21:10:17 -05:00
kpss-xcc.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
krait-cc.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
lcc-ipq806x.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
lcc-msm8960.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
lpass-gfm-sm8250.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
lpassaudiocc-sc7280.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
lpasscc-sc7280.c clk: qcom: lpasscc-sc7280: fix missing resume during probe 2023-07-18 07:58:50 -07:00
lpasscc-sc8280xp.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07: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 qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
lpasscorecc-sc7280.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
Makefile clk: qcom: drop the SC7180 Modem subsystem clock driver 2024-02-16 11:17:16 -06:00
mmcc-apq8084.c clk: qcom: mmcc-apq8084: fix terminating of frequency table arrays 2024-03-02 12:40:42 -06:00
mmcc-msm8960.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
mmcc-msm8974.c clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays 2024-03-02 12:40:46 -06:00
mmcc-msm8994.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
mmcc-msm8996.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
mmcc-msm8998.c clk: qcom: mmcc-msm8998: fix venus clock issue 2024-04-27 13:15:30 -05:00
mmcc-sdm660.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
q6sstop-qcs404.c clk: qcom: q6sstop-qcs404: fix missing resume during probe 2023-07-18 07:58:50 -07:00
reset.c clk: qcom: reset: Ensure write completion on reset de/assertion 2024-02-07 12:14:19 -06:00
reset.h clk: qcom: reset: Increase max reset delay 2024-02-06 14:53:26 -06:00
tcsrcc-sm8550.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
tcsrcc-sm8650.c clk: qcom: add the SM8650 TCSR Clock Controller driver 2023-12-07 08:11:29 -08:00
tcsrcc-x1e80100.c clk: qcom: Add TCSR clock driver for x1e80100 2024-02-06 11:13:19 -06:00
turingcc-qcs404.c clk: qcom: turingcc-qcs404: fix missing resume during probe 2023-07-18 07:58:50 -07:00
videocc-sc7180.c clk: qcom: videocc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
videocc-sc7280.c clk: qcom: videocc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
videocc-sdm845.c clk: qcom: videocc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
videocc-sm8150.c clk: qcom: videocc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
videocc-sm8250.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
videocc-sm8350.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
videocc-sm8450.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
videocc-sm8550.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00