On Tue, Jan 13, 2026 at 09:52:13AM +0530, Balaji Selvanathan wrote:
> 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(+)

Acked-by: Sumit Garg <[email protected]>

-Sumit

> 
> 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