[PATCH v2 00/48] clk: qcom: Use common probe data for always-on clocks

Abel Vesa posted 48 patches 16 hours ago
drivers/clk/qcom/camcc-sa8775p.c      | 36 ++++++++++++-----
drivers/clk/qcom/camcc-sc8280xp.c     | 13 ++++--
drivers/clk/qcom/camcc-sm7150.c       | 13 ++++--
drivers/clk/qcom/camcc-sm8150.c       | 13 ++++--
drivers/clk/qcom/dispcc-sc7280.c      | 13 ++++--
drivers/clk/qcom/dispcc-sc8280xp.c    | 18 ++++++---
drivers/clk/qcom/dispcc-sm4450.c      | 15 +++++--
drivers/clk/qcom/dispcc-sm6115.c      | 13 ++++--
drivers/clk/qcom/dispcc-sm7150.c      | 13 ++++--
drivers/clk/qcom/dispcc-sm8250.c      | 13 ++++--
drivers/clk/qcom/dispcc-sm8550.c      | 13 ++++--
drivers/clk/qcom/dispcc-sm8750.c      | 19 ++++++---
drivers/clk/qcom/dispcc-x1e80100.c    | 15 +++++--
drivers/clk/qcom/dispcc0-sa8775p.c    | 15 +++++--
drivers/clk/qcom/dispcc1-sa8775p.c    | 15 +++++--
drivers/clk/qcom/gcc-qcs615.c         | 57 +++++++++++++-------------
drivers/clk/qcom/gcc-qcs8300.c        | 51 +++++++++++------------
drivers/clk/qcom/gcc-sa8775p.c        | 55 ++++++++++++-------------
drivers/clk/qcom/gcc-sar2130p.c       | 45 +++++++++++----------
drivers/clk/qcom/gcc-sc7180.c         | 60 +++++++++++++--------------
drivers/clk/qcom/gcc-sc7280.c         | 54 +++++++++++++------------
drivers/clk/qcom/gcc-sc8280xp.c       | 35 +++++++++-------
drivers/clk/qcom/gcc-sdx55.c          | 31 ++++++++------
drivers/clk/qcom/gcc-sdx65.c          | 31 ++++++++------
drivers/clk/qcom/gcc-sdx75.c          | 31 +++++++-------
drivers/clk/qcom/gcc-sm4450.c         | 64 ++++++++++++++++-------------
drivers/clk/qcom/gcc-sm6375.c         | 46 +++++++++++----------
drivers/clk/qcom/gcc-sm7150.c         | 60 +++++++++++++--------------
drivers/clk/qcom/gcc-sm8250.c         | 57 +++++++++++++-------------
drivers/clk/qcom/gcc-sm8350.c         | 52 ++++++++++++------------
drivers/clk/qcom/gcc-sm8450.c         | 51 +++++++++++------------
drivers/clk/qcom/gcc-sm8550.c         | 57 +++++++++++++-------------
drivers/clk/qcom/gcc-sm8650.c         | 59 ++++++++++++++-------------
drivers/clk/qcom/gcc-sm8750.c         | 76 +++++++++++++++--------------------
drivers/clk/qcom/gcc-x1e80100.c       | 61 ++++++++++++++--------------
drivers/clk/qcom/gpucc-sar2130p.c     | 13 ++++--
drivers/clk/qcom/gpucc-sc7280.c       | 22 +++++++---
drivers/clk/qcom/gpucc-sc8280xp.c     | 15 +++++--
drivers/clk/qcom/gpucc-sm4450.c       | 17 +++++---
drivers/clk/qcom/gpucc-sm8550.c       | 15 +++++--
drivers/clk/qcom/gpucc-x1e80100.c     | 13 ++++--
drivers/clk/qcom/gpucc-x1p42100.c     | 17 +++++---
drivers/clk/qcom/lpasscorecc-sc7180.c | 31 +++++++++-----
drivers/clk/qcom/videocc-sa8775p.c    | 17 +++++---
drivers/clk/qcom/videocc-sm6350.c     | 13 ++++--
drivers/clk/qcom/videocc-sm7150.c     | 13 ++++--
drivers/clk/qcom/videocc-sm8250.c     | 15 +++++--
drivers/clk/qcom/videocc-sm8350.c     | 31 ++++++++++----
48 files changed, 873 insertions(+), 629 deletions(-)
[PATCH v2 00/48] clk: qcom: Use common probe data for always-on clocks
Posted by Abel Vesa 16 hours ago
Many Qualcomm clock controller drivers still enable always-on branches
with individual qcom_branch_set_clk_en() calls in their probe functions.
The common probe code already supports describing these register offsets
through the clk_cbcrs and num_clk_cbcrs fields of qcom_cc_driver_data.

Convert the remaining users of these direct calls to per-controller
critical_cbcrs arrays. This centralizes branch enable handling in the
common probe path and makes the always-on register lists easier to review
alongside the other controller data.

For GCC drivers, also describe DFS RCGs through the common driver data and
move auxiliary register programming into clk_regs_configure callbacks
where appropriate. Drivers whose initialization is fully covered by the
common path can then use qcom_cc_probe() directly. Keep device-specific
setup in the remaining probe functions, including the separate CBCR lists
needed by the SA8775P/QCS8300 camera and SM8350/SC8280XP video variants.

Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
---
Changes in v2:
- Rebased on next-20260923.
- Picked up Konrad's R-b tag for the entire series.
- Use the common alpha PLL configuration handling for GCC SM6375.
- Use regmap_set_bits() for the GPLL0 active-input configuration on SM8250.
- Link to v1: https://patch.msgid.link/20260916-clk-qcom-rework-legacy-always-on-clocks-v1-0-25a24e50f82a@oss.qualcomm.com

---
Abel Vesa (48):
      clk: qcom: camcc-sa8775p: Use common probe handling for always-on clocks
      clk: qcom: camcc-sc8280xp: Use common probe handling for always-on clocks
      clk: qcom: camcc-sm7150: Use common probe handling for always-on clocks
      clk: qcom: camcc-sm8150: Use common probe handling for always-on clocks
      clk: qcom: dispcc-sc7280: Use common probe handling for always-on clocks
      clk: qcom: dispcc-sc8280xp: Use common probe handling for always-on clocks
      clk: qcom: dispcc-sm4450: Use common probe handling for always-on clocks
      clk: qcom: dispcc-sm6115: Use common probe handling for always-on clocks
      clk: qcom: dispcc-sm7150: Use common probe handling for always-on clocks
      clk: qcom: dispcc-sm8250: Use common probe handling for always-on clocks
      clk: qcom: dispcc-sm8550: Use common probe handling for always-on clocks
      clk: qcom: dispcc-sm8750: Use common probe handling for always-on clocks
      clk: qcom: dispcc-x1e80100: Use common probe handling for always-on clocks
      clk: qcom: dispcc0-sa8775p: Use common probe handling for always-on clocks
      clk: qcom: dispcc1-sa8775p: Use common probe handling for always-on clocks
      clk: qcom: gcc-qcs615: Use common clock controller probe data
      clk: qcom: gcc-qcs8300: Use common clock controller probe data
      clk: qcom: gcc-sa8775p: Use common clock controller probe data
      clk: qcom: gcc-sar2130p: Use common clock controller probe data
      clk: qcom: gcc-sc7180: Use common clock controller probe data
      clk: qcom: gcc-sc7280: Use common clock controller probe data
      clk: qcom: gcc-sc8280xp: Use common clock controller probe data
      clk: qcom: gcc-sdx55: Use common clock controller probe data
      clk: qcom: gcc-sdx65: Use common clock controller probe data
      clk: qcom: gcc-sdx75: Use common clock controller probe data
      clk: qcom: gcc-sm4450: Use common clock controller probe data
      clk: qcom: gcc-sm6375: Use common clock controller probe data
      clk: qcom: gcc-sm7150: Use common clock controller probe data
      clk: qcom: gcc-sm8250: Use common clock controller probe data
      clk: qcom: gcc-sm8350: Use common clock controller probe data
      clk: qcom: gcc-sm8450: Use common clock controller probe data
      clk: qcom: gcc-sm8550: Use common clock controller probe data
      clk: qcom: gcc-sm8650: Use common clock controller probe data
      clk: qcom: gcc-sm8750: Use common clock controller probe data
      clk: qcom: gcc-x1e80100: Use common clock controller probe data
      clk: qcom: gpucc-sar2130p: Use common probe handling for always-on clocks
      clk: qcom: gpucc-sc7280: Use common probe handling for always-on clocks
      clk: qcom: gpucc-sc8280xp: Use common probe handling for always-on clocks
      clk: qcom: gpucc-sm4450: Use common probe handling for always-on clocks
      clk: qcom: gpucc-sm8550: Use common probe handling for always-on clocks
      clk: qcom: gpucc-x1e80100: Use common probe handling for always-on clocks
      clk: qcom: gpucc-x1p42100: Use common probe handling for always-on clocks
      clk: qcom: lpasscorecc-sc7180: Use common probe handling for always-on clocks
      clk: qcom: videocc-sa8775p: Use common probe handling for always-on clocks
      clk: qcom: videocc-sm6350: Use common probe handling for always-on clocks
      clk: qcom: videocc-sm7150: Use common probe handling for always-on clocks
      clk: qcom: videocc-sm8250: Use common probe handling for always-on clocks
      clk: qcom: videocc-sm8350: Use common probe handling for always-on clocks

 drivers/clk/qcom/camcc-sa8775p.c      | 36 ++++++++++++-----
 drivers/clk/qcom/camcc-sc8280xp.c     | 13 ++++--
 drivers/clk/qcom/camcc-sm7150.c       | 13 ++++--
 drivers/clk/qcom/camcc-sm8150.c       | 13 ++++--
 drivers/clk/qcom/dispcc-sc7280.c      | 13 ++++--
 drivers/clk/qcom/dispcc-sc8280xp.c    | 18 ++++++---
 drivers/clk/qcom/dispcc-sm4450.c      | 15 +++++--
 drivers/clk/qcom/dispcc-sm6115.c      | 13 ++++--
 drivers/clk/qcom/dispcc-sm7150.c      | 13 ++++--
 drivers/clk/qcom/dispcc-sm8250.c      | 13 ++++--
 drivers/clk/qcom/dispcc-sm8550.c      | 13 ++++--
 drivers/clk/qcom/dispcc-sm8750.c      | 19 ++++++---
 drivers/clk/qcom/dispcc-x1e80100.c    | 15 +++++--
 drivers/clk/qcom/dispcc0-sa8775p.c    | 15 +++++--
 drivers/clk/qcom/dispcc1-sa8775p.c    | 15 +++++--
 drivers/clk/qcom/gcc-qcs615.c         | 57 +++++++++++++-------------
 drivers/clk/qcom/gcc-qcs8300.c        | 51 +++++++++++------------
 drivers/clk/qcom/gcc-sa8775p.c        | 55 ++++++++++++-------------
 drivers/clk/qcom/gcc-sar2130p.c       | 45 +++++++++++----------
 drivers/clk/qcom/gcc-sc7180.c         | 60 +++++++++++++--------------
 drivers/clk/qcom/gcc-sc7280.c         | 54 +++++++++++++------------
 drivers/clk/qcom/gcc-sc8280xp.c       | 35 +++++++++-------
 drivers/clk/qcom/gcc-sdx55.c          | 31 ++++++++------
 drivers/clk/qcom/gcc-sdx65.c          | 31 ++++++++------
 drivers/clk/qcom/gcc-sdx75.c          | 31 +++++++-------
 drivers/clk/qcom/gcc-sm4450.c         | 64 ++++++++++++++++-------------
 drivers/clk/qcom/gcc-sm6375.c         | 46 +++++++++++----------
 drivers/clk/qcom/gcc-sm7150.c         | 60 +++++++++++++--------------
 drivers/clk/qcom/gcc-sm8250.c         | 57 +++++++++++++-------------
 drivers/clk/qcom/gcc-sm8350.c         | 52 ++++++++++++------------
 drivers/clk/qcom/gcc-sm8450.c         | 51 +++++++++++------------
 drivers/clk/qcom/gcc-sm8550.c         | 57 +++++++++++++-------------
 drivers/clk/qcom/gcc-sm8650.c         | 59 ++++++++++++++-------------
 drivers/clk/qcom/gcc-sm8750.c         | 76 +++++++++++++++--------------------
 drivers/clk/qcom/gcc-x1e80100.c       | 61 ++++++++++++++--------------
 drivers/clk/qcom/gpucc-sar2130p.c     | 13 ++++--
 drivers/clk/qcom/gpucc-sc7280.c       | 22 +++++++---
 drivers/clk/qcom/gpucc-sc8280xp.c     | 15 +++++--
 drivers/clk/qcom/gpucc-sm4450.c       | 17 +++++---
 drivers/clk/qcom/gpucc-sm8550.c       | 15 +++++--
 drivers/clk/qcom/gpucc-x1e80100.c     | 13 ++++--
 drivers/clk/qcom/gpucc-x1p42100.c     | 17 +++++---
 drivers/clk/qcom/lpasscorecc-sc7180.c | 31 +++++++++-----
 drivers/clk/qcom/videocc-sa8775p.c    | 17 +++++---
 drivers/clk/qcom/videocc-sm6350.c     | 13 ++++--
 drivers/clk/qcom/videocc-sm7150.c     | 13 ++++--
 drivers/clk/qcom/videocc-sm8250.c     | 15 +++++--
 drivers/clk/qcom/videocc-sm8350.c     | 31 ++++++++++----
 48 files changed, 873 insertions(+), 629 deletions(-)
---
base-commit: 4d7e75152b01862a4ec598435d79a81c4b254dd6
change-id: 20260916-clk-qcom-rework-legacy-always-on-clocks-8be60886f844
prerequisite-change-id: 20260916-clk-qcom-gcc-qcs615-fix-cpuss-gnoc-offset-272641a49214:v2
prerequisite-patch-id: eb58e7f69eb18fb6f7d490e8094d8a3f2c0d0b2f

Best regards,
--  
Abel Vesa <abel.vesa@oss.qualcomm.com>