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

Abel Vesa posted 48 patches 1 week, 1 day ago
There is a newer version of this series
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 00/48] clk: qcom: Use common probe data for always-on clocks
Posted by Abel Vesa 1 week, 1 day 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>
---
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: e6e35979777d646fe3c7c94dca7dd32fb25d45f4
change-id: 20260916-clk-qcom-rework-legacy-always-on-clocks-8be60886f844
prerequisite-change-id: 20260916-clk-qcom-gcc-qcs615-fix-cpuss-gnoc-offset-272641a49214:v1
prerequisite-patch-id: eb58e7f69eb18fb6f7d490e8094d8a3f2c0d0b2f

Best regards,
--  
Abel Vesa <abel.vesa@oss.qualcomm.com>
Re: [PATCH 00/48] clk: qcom: Use common probe data for always-on clocks
Posted by Konrad Dybcio 6 days, 19 hours ago
On 9/16/26 12:28 PM, Abel Vesa wrote:
> 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>
> ---

I left a couple comments as replies, but let's have them be additive
touch-ups on top of this so as not to resend 48 patches

for this series:

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad