clk: qcom: Introduce clocks drivers for SM8650 This patchset introduces the following SM8650 Clock drivers: - GCC: Global Clock Controller - DISPCC: Display Clock Controller - TCSR Clock Controller - GPUCC: GPU Clock Controller driver - rpmh clocks Dependencies: None For convenience, a regularly refreshed linux-next based git tree containing all the SM8650 related work is available at: https://git.codelinaro.org/neil.armstrong/linux/-/tree/topic/sm8650/upstream/integ To: Andy Gross <agross@kernel.org> To: Bjorn Andersson <andersson@kernel.org> To: Konrad Dybcio <konrad.dybcio@linaro.org> To: Michael Turquette <mturquette@baylibre.com> To: Stephen Boyd <sboyd@kernel.org> To: Rob Herring <robh+dt@kernel.org> To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> To: Conor Dooley <conor+dt@kernel.org> To: Philipp Zabel <p.zabel@pengutronix.de> To: Taniya Das <quic_tdas@quicinc.com> Cc: linux-arm-msm@vger.kernel.org Cc: linux-clk@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> --- Changes in v3: - Use sm8550 tcsr bindings instead of a new one - split GCC driver in 2 to pass the mailinig lists 100k chars limit, no code change - collected review tags - Link to v2: https://lore.kernel.org/r/20231030-topic-sm8650-upstream-clocks-v2-0-144333e086a2@linaro.org Changes in v2: - Fix Copyright headers - Fix include in all c files - Use "select GCC" instead of "depends on GCC" - GCC: - remove UBWCP clocks until we know how to use them - switch to clk_rcg2_shared_ops when needed - use RETAIN_FF_ENABLE and/or VOTABLE GDSC flasgs when needed - add GDSC collapse_ctrl/mask when needed - fix "Keep the critical clock always-On" comments - TCRSCC: use qcom_cc_probe() - DISPCC: fix runtime_pm_sync on error - rpmh: expand comment on clk3a - Link to v1: https://lore.kernel.org/r/20231025-topic-sm8650-upstream-clocks-v1-0-c89b59594caf@linaro.org --- Neil Armstrong (11): dt-bindings: clock: qcom: document the SM8650 TCSR Clock Controller dt-bindings: clock: qcom: document the SM8650 General Clock Controller dt-bindings: clock: qcom: document the SM8650 Display Clock Controller dt-bindings: clock: qcom: document the SM8650 GPU Clock Controller dt-bindings: clock: qcom-rpmhcc: document the SM8650 RPMH Clock Controller clk: qcom: add the SM8650 Global Clock Controller driver, part 1 clk: qcom: add the SM8650 Global Clock Controller driver, part 2 clk: qcom: add the SM8650 TCSR Clock Controller driver clk: qcom: add the SM8650 Display Clock Controller driver clk: qcom: add the SM8650 GPU Clock Controller driver clk: qcom: rpmh: add clocks for SM8650 .../devicetree/bindings/clock/qcom,rpmhcc.yaml | 1 + .../bindings/clock/qcom,sm8450-gpucc.yaml | 2 + .../bindings/clock/qcom,sm8550-tcsr.yaml | 8 +- .../bindings/clock/qcom,sm8650-dispcc.yaml | 106 + .../devicetree/bindings/clock/qcom,sm8650-gcc.yaml | 65 + drivers/clk/qcom/Kconfig | 35 + drivers/clk/qcom/Makefile | 4 + drivers/clk/qcom/clk-rpmh.c | 34 + drivers/clk/qcom/dispcc-sm8650.c | 1810 +++++++++ drivers/clk/qcom/gcc-sm8650.c | 3849 ++++++++++++++++++++ drivers/clk/qcom/gpucc-sm8650.c | 661 ++++ drivers/clk/qcom/tcsrcc-sm8650.c | 182 + include/dt-bindings/clock/qcom,sm8650-dispcc.h | 102 + include/dt-bindings/clock/qcom,sm8650-gcc.h | 254 ++ include/dt-bindings/clock/qcom,sm8650-gpucc.h | 43 + include/dt-bindings/clock/qcom,sm8650-tcsr.h | 18 + include/dt-bindings/reset/qcom,sm8650-gpucc.h | 20 + 17 files changed, 7192 insertions(+), 2 deletions(-) --- base-commit: fe1998aa935b44ef873193c0772c43bce74f17dc change-id: 20231016-topic-sm8650-upstream-clocks-3c09f464b7d4 Best regards,