* [PATCH 0/5] clk: qcom: Introduce initial clock controllers for Maili SoC
@ 2026-06-18 17:21 Taniya Das
2026-06-18 17:21 ` [PATCH 1/5] dt-bindings: clock: qcom-rpmhcc: Add RPMH clock controller for Maili Taniya Das
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Taniya Das @ 2026-06-18 17:21 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Taniya Das,
Vivek Aknurwar
Cc: Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm,
linux-clk, devicetree, linux-kernel
Introduce the initial set of clock controller bindings and driver
support for the upcoming Qualcomm Maili SoC.
Maili is a new mobile SoC from Qualcomm. It is a derivative of the
Hawi SoC and shares most of its clock topology. Where the hardware is
identical, Maili reuses the existing Hawi drivers via fallback
compatible strings. Where Maili diverges — specifically in the Global
Clock Controller (GCC), which carries an additional QUPv3 wrapper
(WRAP5) — the Hawi GCC driver is extended to handle both SoCs.
The series covers the following clock controllers:
- RPMH clock controller: identical to Hawi; uses qcom,hawi-rpmh-clk
as fallback.
- TCSR clock controller: identical to Hawi; uses qcom,hawi-tcsrcc
as fallback.
- Global Clock Controller (GCC): extends the Hawi GCC driver with
eight additional QUPV3 WRAP5 clocks present only on Maili.
- CPUCP mailbox controller: software-compatible with X1E80100; uses
qcom,x1e80100-cpucp-mbox as fallback.
The devicetree for Maili will be upstreamed later.
---
Taniya Das (5):
dt-bindings: clock: qcom-rpmhcc: Add RPMH clock controller for Maili
dt-bindings: clock: qcom: Add Maili TCSR clock controller
dt-bindings: clock: qcom: Add Maili global clock controller
clk: qcom: gcc-hawi: Add support for global clock controller on Maili
dt-bindings: mailbox: qcom: Document Maili CPUCP mailbox controller
.../devicetree/bindings/clock/qcom,hawi-gcc.yaml | 4 +-
.../devicetree/bindings/clock/qcom,rpmhcc.yaml | 65 +++----
.../bindings/clock/qcom,sm8550-tcsr.yaml | 34 ++--
.../bindings/mailbox/qcom,cpucp-mbox.yaml | 1 +
drivers/clk/qcom/gcc-hawi.c | 200 +++++++++++++++++++++
include/dt-bindings/clock/qcom,hawi-gcc.h | 10 ++
6 files changed, 269 insertions(+), 45 deletions(-)
---
base-commit: 4fa3f5fabb30bf00d7475d5a33459ea83d639bf9
change-id: 20260617-maili_initial_clock-c7e2b4530d80
Best regards,
--
Taniya Das <taniya.das@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH 1/5] dt-bindings: clock: qcom-rpmhcc: Add RPMH clock controller for Maili 2026-06-18 17:21 [PATCH 0/5] clk: qcom: Introduce initial clock controllers for Maili SoC Taniya Das @ 2026-06-18 17:21 ` Taniya Das 2026-06-22 13:51 ` Krzysztof Kozlowski 2026-06-18 17:21 ` [PATCH 2/5] dt-bindings: clock: qcom: Add Maili TCSR clock controller Taniya Das ` (3 subsequent siblings) 4 siblings, 1 reply; 12+ messages in thread From: Taniya Das @ 2026-06-18 17:21 UTC (permalink / raw) To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Taniya Das, Vivek Aknurwar Cc: Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree, linux-kernel Document the RPMH clock controller for the Qualcomm Maili SoC. Maili SoC is a derivative of the Hawi SoC and the rpmh clock controller is identical to that of Hawi. Therefore Maili uses the fallback compatible to reuse the Hawi rpmhcc driver. Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com> --- .../devicetree/bindings/clock/qcom,rpmhcc.yaml | 65 ++++++++++++---------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/Documentation/devicetree/bindings/clock/qcom,rpmhcc.yaml b/Documentation/devicetree/bindings/clock/qcom,rpmhcc.yaml index d344b33860429527246484560823074f52a9159d..2b446aca5207c9cc2922635b0539f2d2f926ea0a 100644 --- a/Documentation/devicetree/bindings/clock/qcom,rpmhcc.yaml +++ b/Documentation/devicetree/bindings/clock/qcom,rpmhcc.yaml @@ -16,36 +16,41 @@ description: | properties: compatible: - enum: - - qcom,eliza-rpmh-clk - - qcom,glymur-rpmh-clk - - qcom,hawi-rpmh-clk - - qcom,kaanapali-rpmh-clk - - qcom,milos-rpmh-clk - - qcom,nord-rpmh-clk - - qcom,qcs615-rpmh-clk - - qcom,qdu1000-rpmh-clk - - qcom,sa8775p-rpmh-clk - - qcom,sar2130p-rpmh-clk - - qcom,sc7180-rpmh-clk - - qcom,sc7280-rpmh-clk - - qcom,sc8180x-rpmh-clk - - qcom,sc8280xp-rpmh-clk - - qcom,sdm670-rpmh-clk - - qcom,sdm845-rpmh-clk - - qcom,sdx55-rpmh-clk - - qcom,sdx65-rpmh-clk - - qcom,sdx75-rpmh-clk - - qcom,sm4450-rpmh-clk - - qcom,sm6350-rpmh-clk - - qcom,sm8150-rpmh-clk - - qcom,sm8250-rpmh-clk - - qcom,sm8350-rpmh-clk - - qcom,sm8450-rpmh-clk - - qcom,sm8550-rpmh-clk - - qcom,sm8650-rpmh-clk - - qcom,sm8750-rpmh-clk - - qcom,x1e80100-rpmh-clk + oneOf: + - enum: + - qcom,eliza-rpmh-clk + - qcom,glymur-rpmh-clk + - qcom,hawi-rpmh-clk + - qcom,kaanapali-rpmh-clk + - qcom,milos-rpmh-clk + - qcom,nord-rpmh-clk + - qcom,qcs615-rpmh-clk + - qcom,qdu1000-rpmh-clk + - qcom,sa8775p-rpmh-clk + - qcom,sar2130p-rpmh-clk + - qcom,sc7180-rpmh-clk + - qcom,sc7280-rpmh-clk + - qcom,sc8180x-rpmh-clk + - qcom,sc8280xp-rpmh-clk + - qcom,sdm670-rpmh-clk + - qcom,sdm845-rpmh-clk + - qcom,sdx55-rpmh-clk + - qcom,sdx65-rpmh-clk + - qcom,sdx75-rpmh-clk + - qcom,sm4450-rpmh-clk + - qcom,sm6350-rpmh-clk + - qcom,sm8150-rpmh-clk + - qcom,sm8250-rpmh-clk + - qcom,sm8350-rpmh-clk + - qcom,sm8450-rpmh-clk + - qcom,sm8550-rpmh-clk + - qcom,sm8650-rpmh-clk + - qcom,sm8750-rpmh-clk + - qcom,x1e80100-rpmh-clk + - items: + - enum: + - qcom,maili-rpmh-clk + - const: qcom,hawi-rpmh-clk clocks: maxItems: 1 -- 2.34.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/5] dt-bindings: clock: qcom-rpmhcc: Add RPMH clock controller for Maili 2026-06-18 17:21 ` [PATCH 1/5] dt-bindings: clock: qcom-rpmhcc: Add RPMH clock controller for Maili Taniya Das @ 2026-06-22 13:51 ` Krzysztof Kozlowski 0 siblings, 0 replies; 12+ messages in thread From: Krzysztof Kozlowski @ 2026-06-22 13:51 UTC (permalink / raw) To: Taniya Das Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vivek Aknurwar, Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree, linux-kernel On Thu, Jun 18, 2026 at 10:51:16PM +0530, Taniya Das wrote: > Document the RPMH clock controller for the Qualcomm Maili SoC. > > Maili SoC is a derivative of the Hawi SoC and the rpmh clock controller > is identical to that of Hawi. Therefore Maili uses the fallback > compatible to reuse the Hawi rpmhcc driver. > > Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com> > --- > .../devicetree/bindings/clock/qcom,rpmhcc.yaml | 65 ++++++++++++---------- > 1 file changed, 35 insertions(+), 30 deletions(-) Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/5] dt-bindings: clock: qcom: Add Maili TCSR clock controller 2026-06-18 17:21 [PATCH 0/5] clk: qcom: Introduce initial clock controllers for Maili SoC Taniya Das 2026-06-18 17:21 ` [PATCH 1/5] dt-bindings: clock: qcom-rpmhcc: Add RPMH clock controller for Maili Taniya Das @ 2026-06-18 17:21 ` Taniya Das 2026-06-22 13:56 ` Krzysztof Kozlowski 2026-06-18 17:21 ` [PATCH 3/5] dt-bindings: clock: qcom: Add Maili global " Taniya Das ` (2 subsequent siblings) 4 siblings, 1 reply; 12+ messages in thread From: Taniya Das @ 2026-06-18 17:21 UTC (permalink / raw) To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Taniya Das, Vivek Aknurwar Cc: Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree, linux-kernel Add bindings documentation for TCSR clock controller on the Qualcomm Maili SoC. Maili is a derivative of the Hawi SoC and the tcsr clock controller is identical to that of Hawi. Therefore Maili uses the fallback compatible to reuse the Hawi tcsrcc driver. Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com> --- .../bindings/clock/qcom,sm8550-tcsr.yaml | 34 +++++++++++++--------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml index 08824f84897358f2f7eac58e282a507c0489b5bd..15bdf055db3c012ea98217a0e7ca729ef41071a3 100644 --- a/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml +++ b/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml @@ -25,20 +25,26 @@ description: | properties: compatible: - items: - - enum: - - qcom,eliza-tcsr - - qcom,glymur-tcsr - - qcom,hawi-tcsrcc - - qcom,kaanapali-tcsr - - qcom,milos-tcsr - - qcom,nord-tcsrcc - - qcom,sar2130p-tcsr - - qcom,sm8550-tcsr - - qcom,sm8650-tcsr - - qcom,sm8750-tcsr - - qcom,x1e80100-tcsr - - const: syscon + oneOf: + - items: + - enum: + - qcom,eliza-tcsr + - qcom,glymur-tcsr + - qcom,hawi-tcsrcc + - qcom,kaanapali-tcsr + - qcom,milos-tcsr + - qcom,nord-tcsrcc + - qcom,sar2130p-tcsr + - qcom,sm8550-tcsr + - qcom,sm8650-tcsr + - qcom,sm8750-tcsr + - qcom,x1e80100-tcsr + - const: syscon + - items: + - enum: + - qcom,maili-tcsrcc + - const: qcom,hawi-tcsrcc + - const: syscon clocks: items: -- 2.34.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/5] dt-bindings: clock: qcom: Add Maili TCSR clock controller 2026-06-18 17:21 ` [PATCH 2/5] dt-bindings: clock: qcom: Add Maili TCSR clock controller Taniya Das @ 2026-06-22 13:56 ` Krzysztof Kozlowski 0 siblings, 0 replies; 12+ messages in thread From: Krzysztof Kozlowski @ 2026-06-22 13:56 UTC (permalink / raw) To: Taniya Das Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vivek Aknurwar, Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree, linux-kernel On Thu, Jun 18, 2026 at 10:51:17PM +0530, Taniya Das wrote: > Add bindings documentation for TCSR clock controller on the > Qualcomm Maili SoC. > > Maili is a derivative of the Hawi SoC and the tcsr clock controller > is identical to that of Hawi. Therefore Maili uses the fallback > compatible to reuse the Hawi tcsrcc driver. > > Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com> > --- > .../bindings/clock/qcom,sm8550-tcsr.yaml | 34 +++++++++++++--------- > 1 file changed, 20 insertions(+), 14 deletions(-) Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/5] dt-bindings: clock: qcom: Add Maili global clock controller 2026-06-18 17:21 [PATCH 0/5] clk: qcom: Introduce initial clock controllers for Maili SoC Taniya Das 2026-06-18 17:21 ` [PATCH 1/5] dt-bindings: clock: qcom-rpmhcc: Add RPMH clock controller for Maili Taniya Das 2026-06-18 17:21 ` [PATCH 2/5] dt-bindings: clock: qcom: Add Maili TCSR clock controller Taniya Das @ 2026-06-18 17:21 ` Taniya Das 2026-06-18 17:28 ` sashiko-bot 2026-06-22 13:58 ` Krzysztof Kozlowski 2026-06-18 17:21 ` [PATCH 4/5] clk: qcom: gcc-hawi: Add support for global clock controller on Maili Taniya Das 2026-06-18 17:21 ` [PATCH 5/5] dt-bindings: mailbox: qcom: Document Maili CPUCP mailbox controller Taniya Das 4 siblings, 2 replies; 12+ messages in thread From: Taniya Das @ 2026-06-18 17:21 UTC (permalink / raw) To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Taniya Das, Vivek Aknurwar Cc: Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree, linux-kernel Add device tree bindings for the global clock controller on the Qualcomm Maili SoC by extending the Qualcomm Hawi GCC bindings since Maili is identical to Hawi and has few additional clocks. Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com> --- Documentation/devicetree/bindings/clock/qcom,hawi-gcc.yaml | 4 +++- include/dt-bindings/clock/qcom,hawi-gcc.h | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/clock/qcom,hawi-gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,hawi-gcc.yaml index 4f428c0f7286e83683a65cbe60b2cfeff67f5b8b..f0e8c6144697100588d68bc7c4f1d9822dba4cc2 100644 --- a/Documentation/devicetree/bindings/clock/qcom,hawi-gcc.yaml +++ b/Documentation/devicetree/bindings/clock/qcom,hawi-gcc.yaml @@ -17,7 +17,9 @@ description: | properties: compatible: - const: qcom,hawi-gcc + enum: + - qcom,hawi-gcc + - qcom,maili-gcc clocks: items: diff --git a/include/dt-bindings/clock/qcom,hawi-gcc.h b/include/dt-bindings/clock/qcom,hawi-gcc.h index 6cd7fa0884f535efce90b60997662ca90cfb9b7e..9e0e382af3112b980997f0c7e223720517f12b02 100644 --- a/include/dt-bindings/clock/qcom,hawi-gcc.h +++ b/include/dt-bindings/clock/qcom,hawi-gcc.h @@ -196,6 +196,16 @@ #define GCC_VIDEO_AXI0C_CLK 186 #define GCC_VIDEO_XO_CLK 187 +/* Maili has below additional clocks on top of Hawi */ +#define GCC_QUPV3_WRAP5_CORE_2X_CLK 188 +#define GCC_QUPV3_WRAP5_CORE_CLK 189 +#define GCC_QUPV3_WRAP5_QSPI_REF_CLK 190 +#define GCC_QUPV3_WRAP5_QSPI_REF_CLK_SRC 191 +#define GCC_QUPV3_WRAP5_S0_CLK 192 +#define GCC_QUPV3_WRAP5_S0_CLK_SRC 193 +#define GCC_QUPV3_WRAP_5_M_AHB_CLK 194 +#define GCC_QUPV3_WRAP_5_S_AHB_CLK 195 + /* GCC power domains */ #define GCC_PCIE_0_GDSC 0 #define GCC_PCIE_0_PHY_GDSC 1 -- 2.34.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] dt-bindings: clock: qcom: Add Maili global clock controller 2026-06-18 17:21 ` [PATCH 3/5] dt-bindings: clock: qcom: Add Maili global " Taniya Das @ 2026-06-18 17:28 ` sashiko-bot 2026-06-22 13:58 ` Krzysztof Kozlowski 1 sibling, 0 replies; 12+ messages in thread From: sashiko-bot @ 2026-06-18 17:28 UTC (permalink / raw) To: Taniya Das; +Cc: robh, devicetree, conor+dt Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] The dt-bindings header is missing the Block Control Reset (BCR) macro for the newly added QUPV3_WRAP5. -- commit 9b94fa834ca764c84f27ddbfa19843cbf9fd8f24 Author: Taniya Das <taniya.das@oss.qualcomm.com> dt-bindings: clock: qcom: Add Maili global clock controller This commit adds device tree bindings for the global clock controller on the Qualcomm Maili SoC. It extends the existing Hawi GCC bindings by adding a few additional clocks specific to Maili. > diff --git a/include/dt-bindings/clock/qcom,hawi-gcc.h b/include/dt-bindings/clock/qcom,hawi-gcc.h > index 6cd7fa0884f53..9e0e382af3112 100644 > --- a/include/dt-bindings/clock/qcom,hawi-gcc.h > +++ b/include/dt-bindings/clock/qcom,hawi-gcc.h [ ... ] > @@ -196,6 +196,16 @@ > #define GCC_VIDEO_AXI0C_CLK 186 > #define GCC_VIDEO_XO_CLK 187 > > +/* Maili has below additional clocks on top of Hawi */ > +#define GCC_QUPV3_WRAP5_CORE_2X_CLK 188 > +#define GCC_QUPV3_WRAP5_CORE_CLK 189 > +#define GCC_QUPV3_WRAP5_QSPI_REF_CLK 190 > +#define GCC_QUPV3_WRAP5_QSPI_REF_CLK_SRC 191 > +#define GCC_QUPV3_WRAP5_S0_CLK 192 > +#define GCC_QUPV3_WRAP5_S0_CLK_SRC 193 > +#define GCC_QUPV3_WRAP_5_M_AHB_CLK 194 > +#define GCC_QUPV3_WRAP_5_S_AHB_CLK 195 [Severity: Medium] Does this hardware block also require a Block Control Reset macro? Qualcomm GCC architectures typically provide a corresponding BCR macro for every QUPv3 wrapper block (like GCC_QUPV3_WRAPPER_1_BCR) so the serial engine drivers can reset the hardware. Since this patch adds the clocks for QUPV3_WRAP5, should there also be a GCC_QUPV3_WRAPPER_5_BCR added to the reset section of this header? Without this definition, the device tree might not be able to specify the reset for wrapper 5, which could prevent dependent drivers from properly recovering the hardware. > + > /* GCC power domains */ > #define GCC_PCIE_0_GDSC 0 > #define GCC_PCIE_0_PHY_GDSC 1 -- Sashiko AI review · https://sashiko.dev/#/patchset/20260618-maili_initial_clock-v1-0-d6ede0352113@oss.qualcomm.com?part=3 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] dt-bindings: clock: qcom: Add Maili global clock controller 2026-06-18 17:21 ` [PATCH 3/5] dt-bindings: clock: qcom: Add Maili global " Taniya Das 2026-06-18 17:28 ` sashiko-bot @ 2026-06-22 13:58 ` Krzysztof Kozlowski 1 sibling, 0 replies; 12+ messages in thread From: Krzysztof Kozlowski @ 2026-06-22 13:58 UTC (permalink / raw) To: Taniya Das Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vivek Aknurwar, Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree, linux-kernel On Thu, Jun 18, 2026 at 10:51:18PM +0530, Taniya Das wrote: > clocks: > items: > diff --git a/include/dt-bindings/clock/qcom,hawi-gcc.h b/include/dt-bindings/clock/qcom,hawi-gcc.h > index 6cd7fa0884f535efce90b60997662ca90cfb9b7e..9e0e382af3112b980997f0c7e223720517f12b02 100644 > --- a/include/dt-bindings/clock/qcom,hawi-gcc.h > +++ b/include/dt-bindings/clock/qcom,hawi-gcc.h > @@ -196,6 +196,16 @@ > #define GCC_VIDEO_AXI0C_CLK 186 > #define GCC_VIDEO_XO_CLK 187 > > +/* Maili has below additional clocks on top of Hawi */ > +#define GCC_QUPV3_WRAP5_CORE_2X_CLK 188 > +#define GCC_QUPV3_WRAP5_CORE_CLK 189 > +#define GCC_QUPV3_WRAP5_QSPI_REF_CLK 190 > +#define GCC_QUPV3_WRAP5_QSPI_REF_CLK_SRC 191 > +#define GCC_QUPV3_WRAP5_S0_CLK 192 > +#define GCC_QUPV3_WRAP5_S0_CLK_SRC 193 > +#define GCC_QUPV3_WRAP_5_M_AHB_CLK 194 > +#define GCC_QUPV3_WRAP_5_S_AHB_CLK 195 I think this should be moved to its own header which will include the qcom,hawi-gcc.h. We already do it for include/dt-bindings/clock/qcom,sm8650-videocc.h. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 4/5] clk: qcom: gcc-hawi: Add support for global clock controller on Maili 2026-06-18 17:21 [PATCH 0/5] clk: qcom: Introduce initial clock controllers for Maili SoC Taniya Das ` (2 preceding siblings ...) 2026-06-18 17:21 ` [PATCH 3/5] dt-bindings: clock: qcom: Add Maili global " Taniya Das @ 2026-06-18 17:21 ` Taniya Das 2026-06-22 14:00 ` Konrad Dybcio 2026-06-18 17:21 ` [PATCH 5/5] dt-bindings: mailbox: qcom: Document Maili CPUCP mailbox controller Taniya Das 4 siblings, 1 reply; 12+ messages in thread From: Taniya Das @ 2026-06-18 17:21 UTC (permalink / raw) To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Taniya Das, Vivek Aknurwar Cc: Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree, linux-kernel Add support for the global clock controller (GCC) on the Qualcomm Maili SoC by extending the Hawi global clock controller since Maili is identical to Hawi and has few additional clocks. Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com> --- drivers/clk/qcom/gcc-hawi.c | 200 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) diff --git a/drivers/clk/qcom/gcc-hawi.c b/drivers/clk/qcom/gcc-hawi.c index 6dd07c772c29bfeab37f620a3c97ace4aebb9acb..22597defa8280568af074e2bf3847dbba93e8dce 100644 --- a/drivers/clk/qcom/gcc-hawi.c +++ b/drivers/clk/qcom/gcc-hawi.c @@ -1115,6 +1115,31 @@ static struct clk_rcg2 gcc_qupv3_wrap4_s4_clk_src = { .clkr.hw.init = &gcc_qupv3_wrap4_s4_clk_src_init, }; +static const struct freq_tbl ftbl_gcc_qupv3_wrap5_qspi_ref_clk_src[] = { + F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0), + F(196078431, P_GCC_GPLL0_OUT_EVEN, 1, 100, 153), + F(300000000, P_GCC_GPLL0_OUT_EVEN, 1, 0, 0), + { } +}; + +static struct clk_init_data gcc_qupv3_wrap5_qspi_ref_clk_src_init = { + .name = "gcc_qupv3_wrap5_qspi_ref_clk_src", + .parent_data = gcc_parent_data_1, + .num_parents = ARRAY_SIZE(gcc_parent_data_1), + .flags = CLK_SET_RATE_PARENT, + .ops = &clk_rcg2_shared_no_init_park_ops, +}; + +static struct clk_rcg2 gcc_qupv3_wrap5_qspi_ref_clk_src = { + .cmd_rcgr = 0xad024, + .mnd_width = 16, + .hid_width = 5, + .parent_map = gcc_parent_map_1, + .freq_tbl = ftbl_gcc_qupv3_wrap5_qspi_ref_clk_src, + .hw_clk_ctrl = true, + .clkr.hw.init = &gcc_qupv3_wrap5_qspi_ref_clk_src_init, +}; + static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = { F(400000, P_BI_TCXO, 12, 1, 4), F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0), @@ -1282,6 +1307,21 @@ static struct clk_rcg2 gcc_usb30_prim_master_clk_src = { }, }; +static struct clk_regmap_div gcc_qupv3_wrap5_s0_clk_src = { + .reg = 0xad018, + .shift = 0, + .width = 4, + .clkr.hw.init = &(const struct clk_init_data) { + .name = "gcc_qupv3_wrap5_s0_clk_src", + .parent_hws = (const struct clk_hw*[]) { + &gcc_qupv3_wrap5_qspi_ref_clk_src.clkr.hw, + }, + .num_parents = 1, + .flags = CLK_SET_RATE_PARENT, + .ops = &clk_regmap_div_ro_ops, + }, +}; + static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = { .cmd_rcgr = 0x3904c, .mnd_width = 0, @@ -2740,6 +2780,68 @@ static struct clk_branch gcc_qupv3_wrap4_s4_clk = { }, }; +static struct clk_branch gcc_qupv3_wrap5_core_2x_clk = { + .halt_reg = 0x236bc, + .halt_check = BRANCH_HALT_VOTED, + .clkr = { + .enable_reg = 0x52020, + .enable_mask = BIT(16), + .hw.init = &(const struct clk_init_data) { + .name = "gcc_qupv3_wrap5_core_2x_clk", + .ops = &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_qupv3_wrap5_core_clk = { + .halt_reg = 0x236a8, + .halt_check = BRANCH_HALT_VOTED, + .clkr = { + .enable_reg = 0x52020, + .enable_mask = BIT(15), + .hw.init = &(const struct clk_init_data) { + .name = "gcc_qupv3_wrap5_core_clk", + .ops = &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_qupv3_wrap5_qspi_ref_clk = { + .halt_reg = 0xad01c, + .halt_check = BRANCH_HALT_VOTED, + .clkr = { + .enable_reg = 0x52020, + .enable_mask = BIT(18), + .hw.init = &(const struct clk_init_data) { + .name = "gcc_qupv3_wrap5_qspi_ref_clk", + .parent_hws = (const struct clk_hw*[]) { + &gcc_qupv3_wrap5_qspi_ref_clk_src.clkr.hw, + }, + .num_parents = 1, + .flags = CLK_SET_RATE_PARENT, + .ops = &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_qupv3_wrap5_s0_clk = { + .halt_reg = 0xad004, + .halt_check = BRANCH_HALT_VOTED, + .clkr = { + .enable_reg = 0x52020, + .enable_mask = BIT(17), + .hw.init = &(const struct clk_init_data) { + .name = "gcc_qupv3_wrap5_s0_clk", + .parent_hws = (const struct clk_hw*[]) { + &gcc_qupv3_wrap5_s0_clk_src.clkr.hw, + }, + .num_parents = 1, + .flags = CLK_SET_RATE_PARENT, + .ops = &clk_branch2_ops, + }, + }, +}; + static struct clk_branch gcc_qupv3_wrap_1_m_axi_clk = { .halt_reg = 0x23140, .halt_check = BRANCH_HALT_VOTED, @@ -2860,6 +2962,36 @@ static struct clk_branch gcc_qupv3_wrap_4_s_ahb_clk = { }, }; +static struct clk_branch gcc_qupv3_wrap_5_m_ahb_clk = { + .halt_reg = 0x236a0, + .halt_check = BRANCH_HALT_VOTED, + .hwcg_reg = 0x236a0, + .hwcg_bit = 1, + .clkr = { + .enable_reg = 0x52020, + .enable_mask = BIT(13), + .hw.init = &(const struct clk_init_data) { + .name = "gcc_qupv3_wrap_5_m_ahb_clk", + .ops = &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_qupv3_wrap_5_s_ahb_clk = { + .halt_reg = 0x236a4, + .halt_check = BRANCH_HALT_VOTED, + .hwcg_reg = 0x236a4, + .hwcg_bit = 1, + .clkr = { + .enable_reg = 0x52020, + .enable_mask = BIT(14), + .hw.init = &(const struct clk_init_data) { + .name = "gcc_qupv3_wrap_5_s_ahb_clk", + .ops = &clk_branch2_ops, + }, + }, +}; + static struct clk_branch gcc_sdcc2_ahb_clk = { .halt_reg = 0x14014, .halt_check = BRANCH_HALT, @@ -3485,6 +3617,11 @@ static struct clk_regmap *gcc_hawi_clocks[] = { [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr, [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr, [GCC_VIDEO_AXI0C_CLK] = &gcc_video_axi0c_clk.clkr, + /* + * Maili-only clocks: NULL here to size the array to the highest Maili + * clock index. + */ + [GCC_QUPV3_WRAP_5_S_AHB_CLK] = NULL, }; static struct gdsc *gcc_hawi_gdscs[] = { @@ -3588,6 +3725,34 @@ static const struct clk_rcg_dfs_data gcc_hawi_dfs_clocks[] = { DEFINE_RCG_DFS(gcc_qupv3_wrap4_s4_clk_src), }; +static const struct clk_rcg_dfs_data gcc_maili_dfs_clocks[] = { + DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_ref_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap3_qspi_ref_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap3_s0_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap3_s2_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap3_s3_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap3_s4_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap3_s5_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap4_s0_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap4_s1_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap4_s2_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap4_s3_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap4_s4_clk_src), + DEFINE_RCG_DFS(gcc_qupv3_wrap5_qspi_ref_clk_src), +}; + static const struct regmap_config gcc_hawi_regmap_config = { .reg_bits = 32, .reg_stride = 4, @@ -3622,14 +3787,49 @@ static const struct qcom_cc_desc gcc_hawi_desc = { .driver_data = &gcc_hawi_driver_data, }; +static const struct qcom_cc_driver_data gcc_maili_driver_data = { + .clk_cbcrs = gcc_hawi_critical_cbcrs, + .num_clk_cbcrs = ARRAY_SIZE(gcc_hawi_critical_cbcrs), + .dfs_rcgs = gcc_maili_dfs_clocks, + .num_dfs_rcgs = ARRAY_SIZE(gcc_maili_dfs_clocks), + .clk_regs_configure = clk_hawi_regs_configure, +}; + +static const struct qcom_cc_desc gcc_maili_desc = { + .config = &gcc_hawi_regmap_config, + .clks = gcc_hawi_clocks, + .num_clks = ARRAY_SIZE(gcc_hawi_clocks), + .resets = gcc_hawi_resets, + .num_resets = ARRAY_SIZE(gcc_hawi_resets), + .gdscs = gcc_hawi_gdscs, + .num_gdscs = ARRAY_SIZE(gcc_hawi_gdscs), + .use_rpm = true, + .driver_data = &gcc_maili_driver_data, +}; + static const struct of_device_id gcc_hawi_match_table[] = { { .compatible = "qcom,hawi-gcc" }, + { .compatible = "qcom,maili-gcc" }, { } }; MODULE_DEVICE_TABLE(of, gcc_hawi_match_table); static int gcc_hawi_probe(struct platform_device *pdev) { + if (of_device_is_compatible(pdev->dev.of_node, "qcom,maili-gcc")) { + gcc_hawi_clocks[GCC_QUPV3_WRAP5_CORE_2X_CLK] = &gcc_qupv3_wrap5_core_2x_clk.clkr; + gcc_hawi_clocks[GCC_QUPV3_WRAP5_CORE_CLK] = &gcc_qupv3_wrap5_core_clk.clkr; + gcc_hawi_clocks[GCC_QUPV3_WRAP5_QSPI_REF_CLK] = &gcc_qupv3_wrap5_qspi_ref_clk.clkr; + gcc_hawi_clocks[GCC_QUPV3_WRAP5_QSPI_REF_CLK_SRC] = + &gcc_qupv3_wrap5_qspi_ref_clk_src.clkr; + gcc_hawi_clocks[GCC_QUPV3_WRAP5_S0_CLK] = &gcc_qupv3_wrap5_s0_clk.clkr; + gcc_hawi_clocks[GCC_QUPV3_WRAP5_S0_CLK_SRC] = &gcc_qupv3_wrap5_s0_clk_src.clkr; + gcc_hawi_clocks[GCC_QUPV3_WRAP_5_M_AHB_CLK] = &gcc_qupv3_wrap_5_m_ahb_clk.clkr; + gcc_hawi_clocks[GCC_QUPV3_WRAP_5_S_AHB_CLK] = &gcc_qupv3_wrap_5_s_ahb_clk.clkr; + + return qcom_cc_probe(pdev, &gcc_maili_desc); + } + return qcom_cc_probe(pdev, &gcc_hawi_desc); } -- 2.34.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] clk: qcom: gcc-hawi: Add support for global clock controller on Maili 2026-06-18 17:21 ` [PATCH 4/5] clk: qcom: gcc-hawi: Add support for global clock controller on Maili Taniya Das @ 2026-06-22 14:00 ` Konrad Dybcio 0 siblings, 0 replies; 12+ messages in thread From: Konrad Dybcio @ 2026-06-22 14:00 UTC (permalink / raw) To: Taniya Das, Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vivek Aknurwar Cc: Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree, linux-kernel On 6/18/26 7:21 PM, Taniya Das wrote: > Add support for the global clock controller (GCC) on the Qualcomm Maili > SoC by extending the Hawi global clock controller since Maili is identical > to Hawi and has few additional clocks. > > Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com> > --- [...] > @@ -3485,6 +3617,11 @@ static struct clk_regmap *gcc_hawi_clocks[] = { > [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr, > [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr, > [GCC_VIDEO_AXI0C_CLK] = &gcc_video_axi0c_clk.clkr, > + /* > + * Maili-only clocks: NULL here to size the array to the highest Maili > + * clock index. > + */ > + [GCC_QUPV3_WRAP_5_S_AHB_CLK] = NULL, we have: --- common.c qcom_cc_really_probe(): ... cc->rclks = rclks; // desc->clks cc->num_rclks = num_clks; // desc->num_clks ... -> devm_of_clk_add_hw_provider(dev, qcom_cc_clk_hw_get, cc); and qcom_cc_clk_hw_get() has: if (idx >= cc->num_rclks) { pr_err("%s: invalid index %u\n", __func__, idx); return ERR_PTR(-EINVAL); } so I think this should be unnecessary Besides, is that new set of clocks actually unique to Maili, or is it bound to a QSPI usecase on the specific QUP? Konrad ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 5/5] dt-bindings: mailbox: qcom: Document Maili CPUCP mailbox controller 2026-06-18 17:21 [PATCH 0/5] clk: qcom: Introduce initial clock controllers for Maili SoC Taniya Das ` (3 preceding siblings ...) 2026-06-18 17:21 ` [PATCH 4/5] clk: qcom: gcc-hawi: Add support for global clock controller on Maili Taniya Das @ 2026-06-18 17:21 ` Taniya Das 2026-06-22 13:59 ` Krzysztof Kozlowski 4 siblings, 1 reply; 12+ messages in thread From: Taniya Das @ 2026-06-18 17:21 UTC (permalink / raw) To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Taniya Das, Vivek Aknurwar Cc: Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree, linux-kernel Document the CPU Control Processor (CPUCP) mailbox controller for the Qualcomm Maili SoC. It is software compatible with the X1E80100 CPUCP mailbox controller and uses it as a fallback compatible string. Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com> --- Documentation/devicetree/bindings/mailbox/qcom,cpucp-mbox.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/mailbox/qcom,cpucp-mbox.yaml b/Documentation/devicetree/bindings/mailbox/qcom,cpucp-mbox.yaml index 03359479d926a623c467f1b8ba857d787366d411..2185920e1b5d2154a23b67905106f35e0b71eee9 100644 --- a/Documentation/devicetree/bindings/mailbox/qcom,cpucp-mbox.yaml +++ b/Documentation/devicetree/bindings/mailbox/qcom,cpucp-mbox.yaml @@ -21,6 +21,7 @@ properties: - qcom,glymur-cpucp-mbox - qcom,hawi-cpucp-mbox - qcom,kaanapali-cpucp-mbox + - qcom,maili-cpucp-mbox - qcom,nord-cpucp-mbox - qcom,sm8750-cpucp-mbox - const: qcom,x1e80100-cpucp-mbox -- 2.34.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 5/5] dt-bindings: mailbox: qcom: Document Maili CPUCP mailbox controller 2026-06-18 17:21 ` [PATCH 5/5] dt-bindings: mailbox: qcom: Document Maili CPUCP mailbox controller Taniya Das @ 2026-06-22 13:59 ` Krzysztof Kozlowski 0 siblings, 0 replies; 12+ messages in thread From: Krzysztof Kozlowski @ 2026-06-22 13:59 UTC (permalink / raw) To: Taniya Das Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Brian Masney, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vivek Aknurwar, Ajit Pandey, Imran Shaik, Jagadeesh Kona, linux-arm-msm, linux-clk, devicetree, linux-kernel On Thu, Jun 18, 2026 at 10:51:20PM +0530, Taniya Das wrote: > Document the CPU Control Processor (CPUCP) mailbox controller for the > Qualcomm Maili SoC. It is software compatible with the X1E80100 CPUCP > mailbox controller and uses it as a fallback compatible string. > > Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com> > --- > Documentation/devicetree/bindings/mailbox/qcom,cpucp-mbox.yaml | 1 + > 1 file changed, 1 insertion(+) Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-06-22 14:00 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-18 17:21 [PATCH 0/5] clk: qcom: Introduce initial clock controllers for Maili SoC Taniya Das 2026-06-18 17:21 ` [PATCH 1/5] dt-bindings: clock: qcom-rpmhcc: Add RPMH clock controller for Maili Taniya Das 2026-06-22 13:51 ` Krzysztof Kozlowski 2026-06-18 17:21 ` [PATCH 2/5] dt-bindings: clock: qcom: Add Maili TCSR clock controller Taniya Das 2026-06-22 13:56 ` Krzysztof Kozlowski 2026-06-18 17:21 ` [PATCH 3/5] dt-bindings: clock: qcom: Add Maili global " Taniya Das 2026-06-18 17:28 ` sashiko-bot 2026-06-22 13:58 ` Krzysztof Kozlowski 2026-06-18 17:21 ` [PATCH 4/5] clk: qcom: gcc-hawi: Add support for global clock controller on Maili Taniya Das 2026-06-22 14:00 ` Konrad Dybcio 2026-06-18 17:21 ` [PATCH 5/5] dt-bindings: mailbox: qcom: Document Maili CPUCP mailbox controller Taniya Das 2026-06-22 13:59 ` Krzysztof Kozlowski
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.