From: Swathi Tamilselvan <[email protected]>

Add clock gate definitions and entries for QUP (Qualcomm Universal
Peripheral) serial engine clocks across all four wrappers on SA8775P.
This enables proper clock management for I2C, SPI, and UART
peripherals connected to the QUP blocks.

This resolves the "unknown clock ID 133" error for UART10 and
provides complete QUP clock infrastructure for the platform.

Signed-off-by: Swathi Tamilselvan <[email protected]>
Signed-off-by: Balaji Selvanathan <[email protected]>
---
 drivers/clk/qcom/clock-sa8775p.c | 54 ++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/drivers/clk/qcom/clock-sa8775p.c b/drivers/clk/qcom/clock-sa8775p.c
index 527cecf5c82..5a6fbd417ff 100644
--- a/drivers/clk/qcom/clock-sa8775p.c
+++ b/drivers/clk/qcom/clock-sa8775p.c
@@ -18,6 +18,31 @@
 #define USB30_PRIM_MOCK_UTMI_CLK_CMD_RCGR 0xf038
 #define USB30_PRIM_MASTER_CLK_CMD_RCGR 0xf020
 
+#define GCC_QUPV3_WRAP0_S0_CLK_ENA_BIT BIT(10)
+#define GCC_QUPV3_WRAP0_S1_CLK_ENA_BIT BIT(11)
+#define GCC_QUPV3_WRAP0_S2_CLK_ENA_BIT BIT(12)
+#define GCC_QUPV3_WRAP0_S3_CLK_ENA_BIT BIT(13)
+#define GCC_QUPV3_WRAP0_S4_CLK_ENA_BIT BIT(14)
+#define GCC_QUPV3_WRAP0_S5_CLK_ENA_BIT BIT(15)
+
+#define GCC_QUPV3_WRAP1_S0_CLK_ENA_BIT BIT(22)
+#define GCC_QUPV3_WRAP1_S1_CLK_ENA_BIT BIT(23)
+#define GCC_QUPV3_WRAP1_S2_CLK_ENA_BIT BIT(24)
+#define GCC_QUPV3_WRAP1_S3_CLK_ENA_BIT BIT(25)
+#define GCC_QUPV3_WRAP1_S4_CLK_ENA_BIT BIT(26)
+#define GCC_QUPV3_WRAP1_S5_CLK_ENA_BIT BIT(27)
+#define GCC_QUPV3_WRAP1_S6_CLK_ENA_BIT BIT(27)
+
+#define GCC_QUPV3_WRAP2_S0_CLK_ENA_BIT BIT(4)
+#define GCC_QUPV3_WRAP2_S1_CLK_ENA_BIT BIT(5)
+#define GCC_QUPV3_WRAP2_S2_CLK_ENA_BIT BIT(6)
+#define GCC_QUPV3_WRAP2_S3_CLK_ENA_BIT BIT(7)
+#define GCC_QUPV3_WRAP2_S4_CLK_ENA_BIT BIT(8)
+#define GCC_QUPV3_WRAP2_S5_CLK_ENA_BIT BIT(9)
+#define GCC_QUPV3_WRAP2_S6_CLK_ENA_BIT BIT(29)
+
+#define GCC_QUPV3_WRAP3_S0_CLK_ENA_BIT BIT(25)
+
 static ulong sa8775p_set_rate(struct clk *clk, ulong rate)
 {
        struct msm_clk_priv *priv = dev_get_priv(clk->dev);
@@ -50,6 +75,35 @@ static const struct gate_clk sa8775p_clks[] = {
        GATE_CLK(GCC_USB30_PRIM_MOCK_UTMI_CLK, 0x1b024, 1),
        GATE_CLK(GCC_USB3_PRIM_PHY_AUX_CLK, 0x1b05c, 1),
        GATE_CLK(GCC_USB3_PRIM_PHY_COM_AUX_CLK, 0x1b060, 1),
+
+       /* QUP Wrapper 0 clocks */
+       GATE_CLK(GCC_QUPV3_WRAP0_S0_CLK, 0x4b008, 
GCC_QUPV3_WRAP0_S0_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP0_S1_CLK, 0x4b008, 
GCC_QUPV3_WRAP0_S1_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP0_S2_CLK, 0x4b008, 
GCC_QUPV3_WRAP0_S2_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP0_S3_CLK, 0x4b008, 
GCC_QUPV3_WRAP0_S3_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP0_S4_CLK, 0x4b008, 
GCC_QUPV3_WRAP0_S4_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP0_S5_CLK, 0x4b008, 
GCC_QUPV3_WRAP0_S5_CLK_ENA_BIT),
+
+       /* QUP Wrapper 1 clocks (includes uart10) */
+       GATE_CLK(GCC_QUPV3_WRAP1_S0_CLK, 0x4b008, 
GCC_QUPV3_WRAP1_S0_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP1_S1_CLK, 0x4b008, 
GCC_QUPV3_WRAP1_S1_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP1_S2_CLK, 0x4b008, 
GCC_QUPV3_WRAP1_S2_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP1_S3_CLK, 0x4b008, 
GCC_QUPV3_WRAP1_S3_CLK_ENA_BIT),  /* uart10 */
+       GATE_CLK(GCC_QUPV3_WRAP1_S4_CLK, 0x4b008, 
GCC_QUPV3_WRAP1_S4_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP1_S5_CLK, 0x4b008, 
GCC_QUPV3_WRAP1_S5_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP1_S6_CLK, 0x4b018, 
GCC_QUPV3_WRAP1_S6_CLK_ENA_BIT),
+
+       /* QUP Wrapper 2 clocks */
+       GATE_CLK(GCC_QUPV3_WRAP2_S0_CLK, 0x4b010, 
GCC_QUPV3_WRAP2_S0_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP2_S1_CLK, 0x4b010, 
GCC_QUPV3_WRAP2_S1_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP2_S2_CLK, 0x4b010, 
GCC_QUPV3_WRAP2_S2_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP2_S3_CLK, 0x4b010, 
GCC_QUPV3_WRAP2_S3_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP2_S4_CLK, 0x4b010, 
GCC_QUPV3_WRAP2_S4_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP2_S5_CLK, 0x4b010, 
GCC_QUPV3_WRAP2_S5_CLK_ENA_BIT),
+       GATE_CLK(GCC_QUPV3_WRAP2_S6_CLK, 0x4b018, 
GCC_QUPV3_WRAP2_S6_CLK_ENA_BIT),
+
+       /* QUP Wrapper 3 clocks */
+       GATE_CLK(GCC_QUPV3_WRAP3_S0_CLK, 0x4b000, 
GCC_QUPV3_WRAP3_S0_CLK_ENA_BIT),
 };
 
 static int sa8775p_enable(struct clk *clk)
-- 
2.34.1

Reply via email to