[PATCH 1/3] dt-bindings: clock: qcom,x1e80100-gcc: Add missing USB4 clocks/resets

Konrad Dybcio posted 3 patches 5 days, 10 hours ago
[PATCH 1/3] dt-bindings: clock: qcom,x1e80100-gcc: Add missing USB4 clocks/resets
Posted by Konrad Dybcio 5 days, 10 hours ago
From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Some of the USB4 muxes, RCGs and resets were not initially described.

Add indices for them to allow extending the driver.

Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 .../bindings/clock/qcom,x1e80100-gcc.yaml          | 62 ++++++++++++++++++++--
 include/dt-bindings/clock/qcom,x1e80100-gcc.h      | 61 +++++++++++++++++++++
 2 files changed, 119 insertions(+), 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/qcom,x1e80100-gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,x1e80100-gcc.yaml
index 68dde0720c711320aa0e7c74040cf3c4422dda72..1b15b507095455c93b1ba39404cafbb6f96be5a9 100644
--- a/Documentation/devicetree/bindings/clock/qcom,x1e80100-gcc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,x1e80100-gcc.yaml
@@ -32,9 +32,36 @@ properties:
       - description: PCIe 5 pipe clock
       - description: PCIe 6a pipe clock
       - description: PCIe 6b pipe clock
-      - description: USB QMP Phy 0 clock source
-      - description: USB QMP Phy 1 clock source
-      - description: USB QMP Phy 2 clock source
+      - description: USB4_0 QMPPHY clock source
+      - description: USB4_1 QMPPHY clock source
+      - description: USB4_2 QMPPHY clock source
+      - description: USB4_0 PHY DP0 GMUX clock source
+      - description: USB4_0 PHY DP1 GMUX clock source
+      - description: USB4_0 PHY PCIE PIPEGMUX clock source
+      - description: USB4_0 PHY PIPEGMUX clock source
+      - description: USB4_0 PHY SYS PCIE PIPEGMUX clock source
+      - description: USB4_1 PHY DP0 GMUX 2 clock source
+      - description: USB4_1 PHY DP1 GMUX 2 clock source
+      - description: USB4_1 PHY PCIE PIPEGMUX clock source
+      - description: USB4_1 PHY PIPEGMUX clock source
+      - description: USB4_1 PHY SYS PCIE PIPEGMUX clock source
+      - description: USB4_2 PHY DP0 GMUX 2 clock source
+      - description: USB4_2 PHY DP1 GMUX 2 clock source
+      - description: USB4_2 PHY PCIE PIPEGMUX clock source
+      - description: USB4_2 PHY PIPEGMUX clock source
+      - description: USB4_2 PHY SYS PCIE PIPEGMUX clock source
+      - description: USB4_0 PHY RX 0 clock source
+      - description: USB4_0 PHY RX 1 clock source
+      - description: USB4_1 PHY RX 0 clock source
+      - description: USB4_1 PHY RX 1 clock source
+      - description: USB4_2 PHY RX 0 clock source
+      - description: USB4_2 PHY RX 1 clock source
+      - description: USB4_0 PHY PCIE PIPE clock source
+      - description: USB4_0 PHY max PIPE clock source
+      - description: USB4_1 PHY PCIE PIPE clock source
+      - description: USB4_1 PHY max PIPE clock source
+      - description: USB4_2 PHY PCIE PIPE clock source
+      - description: USB4_2 PHY max PIPE clock source
 
   power-domains:
     description:
@@ -67,7 +94,34 @@ examples:
                <&pcie6b_phy>,
                <&usb_1_ss0_qmpphy 0>,
                <&usb_1_ss1_qmpphy 1>,
-               <&usb_1_ss2_qmpphy 2>;
+               <&usb_1_ss2_qmpphy 2>,
+               <&usb4_0_phy_dp0_gmux_clk>,
+               <&usb4_0_phy_dp1_gmux_clk>,
+               <&usb4_0_phy_pcie_pipegmux_clk>,
+               <&usb4_0_phy_pipegmux_clk>,
+               <&usb4_0_phy_sys_pcie_pipegmux_clk>,
+               <&usb4_1_phy_dp0_gmux_2_clk>,
+               <&usb4_1_phy_dp1_gmux_2_clk>,
+               <&usb4_1_phy_pcie_pipegmux_clk>,
+               <&usb4_1_phy_pipegmux_clk>,
+               <&usb4_1_phy_sys_pcie_pipegmux_clk>,
+               <&usb4_2_phy_dp0_gmux_2_clk>,
+               <&usb4_2_phy_dp1_gmux_2_clk>,
+               <&usb4_2_phy_pcie_pipegmux_clk>,
+               <&usb4_2_phy_pipegmux_clk>,
+               <&usb4_2_phy_sys_pcie_pipegmux_clk>,
+               <&usb4_0_phy_rx_0_clk>,
+               <&usb4_0_phy_rx_1_clk>,
+               <&usb4_1_phy_rx_0_clk>,
+               <&usb4_1_phy_rx_1_clk>,
+               <&usb4_2_phy_rx_0_clk>,
+               <&usb4_2_phy_rx_1_clk>,
+               <&usb4_0_phy_pcie_pipe_clk>,
+               <&usb4_0_phy_max_pipe_clk>,
+               <&usb4_1_phy_pcie_pipe_clk>,
+               <&usb4_1_phy_max_pipe_clk>,
+               <&usb4_2_phy_pcie_pipe_clk>,
+               <&usb4_2_phy_max_pipe_clk>;
       power-domains = <&rpmhpd RPMHPD_CX>;
       #clock-cells = <1>;
       #reset-cells = <1>;
diff --git a/include/dt-bindings/clock/qcom,x1e80100-gcc.h b/include/dt-bindings/clock/qcom,x1e80100-gcc.h
index 710c340f24a57d799ac04650fbe9d4ea0f294bde..62aa1242559270dd3bd31cd10322ee265468b8e4 100644
--- a/include/dt-bindings/clock/qcom,x1e80100-gcc.h
+++ b/include/dt-bindings/clock/qcom,x1e80100-gcc.h
@@ -363,6 +363,30 @@
 #define GCC_USB3_PRIM_PHY_PIPE_CLK_SRC				353
 #define GCC_USB3_SEC_PHY_PIPE_CLK_SRC				354
 #define GCC_USB3_TERT_PHY_PIPE_CLK_SRC				355
+#define GCC_USB34_PRIM_PHY_PIPE_CLK_SRC				356
+#define GCC_USB34_SEC_PHY_PIPE_CLK_SRC				357
+#define GCC_USB34_TERT_PHY_PIPE_CLK_SRC				358
+#define GCC_USB4_0_PHY_DP0_CLK_SRC				359
+#define GCC_USB4_0_PHY_DP1_CLK_SRC				360
+#define GCC_USB4_0_PHY_P2RR2P_PIPE_CLK_SRC			361
+#define GCC_USB4_0_PHY_PCIE_PIPE_MUX_CLK_SRC			362
+#define GCC_USB4_0_PHY_RX0_CLK_SRC				363
+#define GCC_USB4_0_PHY_RX1_CLK_SRC				364
+#define GCC_USB4_0_PHY_SYS_CLK_SRC				365
+#define GCC_USB4_1_PHY_DP0_CLK_SRC				366
+#define GCC_USB4_1_PHY_DP1_CLK_SRC				367
+#define GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC			368
+#define GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC			369
+#define GCC_USB4_1_PHY_RX0_CLK_SRC				370
+#define GCC_USB4_1_PHY_RX1_CLK_SRC				371
+#define GCC_USB4_1_PHY_SYS_CLK_SRC				372
+#define GCC_USB4_2_PHY_DP0_CLK_SRC				373
+#define GCC_USB4_2_PHY_DP1_CLK_SRC				374
+#define GCC_USB4_2_PHY_P2RR2P_PIPE_CLK_SRC			375
+#define GCC_USB4_2_PHY_PCIE_PIPE_MUX_CLK_SRC			376
+#define GCC_USB4_2_PHY_RX0_CLK_SRC				377
+#define GCC_USB4_2_PHY_RX1_CLK_SRC				378
+#define GCC_USB4_2_PHY_SYS_CLK_SRC				379
 
 /* GCC power domains */
 #define GCC_PCIE_0_TUNNEL_GDSC					0
@@ -484,4 +508,41 @@
 #define GCC_VIDEO_BCR						87
 #define GCC_VIDEO_AXI0_CLK_ARES					88
 #define GCC_VIDEO_AXI1_CLK_ARES					89
+#define GCC_USB4_0_MISC_USB4_SYS_BCR				90
+#define GCC_USB4_0_MISC_RX_CLK_0_BCR				91
+#define GCC_USB4_0_MISC_RX_CLK_1_BCR				92
+#define GCC_USB4_0_MISC_USB_PIPE_BCR				93
+#define GCC_USB4_0_MISC_PCIE_PIPE_BCR				94
+#define GCC_USB4_0_MISC_TMU_BCR					95
+#define GCC_USB4_0_MISC_SB_IF_BCR				96
+#define GCC_USB4_0_MISC_HIA_MSTR_BCR				97
+#define GCC_USB4_0_MISC_AHB_BCR					98
+#define GCC_USB4_0_MISC_DP0_MAX_PCLK_BCR			99
+#define GCC_USB4_0_MISC_DP1_MAX_PCLK_BCR			100
+#define GCC_USB4_1_MISC_USB4_SYS_BCR				101
+#define GCC_USB4_1_MISC_RX_CLK_0_BCR				102
+#define GCC_USB4_1_MISC_RX_CLK_1_BCR				103
+#define GCC_USB4_1_MISC_USB_PIPE_BCR				104
+#define GCC_USB4_1_MISC_PCIE_PIPE_BCR				105
+#define GCC_USB4_1_MISC_TMU_BCR					106
+#define GCC_USB4_1_MISC_SB_IF_BCR				107
+#define GCC_USB4_1_MISC_HIA_MSTR_BCR				108
+#define GCC_USB4_1_MISC_AHB_BCR					109
+#define GCC_USB4_1_MISC_DP0_MAX_PCLK_BCR			110
+#define GCC_USB4_1_MISC_DP1_MAX_PCLK_BCR			111
+#define GCC_USB4_2_MISC_USB4_SYS_BCR				112
+#define GCC_USB4_2_MISC_RX_CLK_0_BCR				113
+#define GCC_USB4_2_MISC_RX_CLK_1_BCR				114
+#define GCC_USB4_2_MISC_USB_PIPE_BCR				115
+#define GCC_USB4_2_MISC_PCIE_PIPE_BCR				116
+#define GCC_USB4_2_MISC_TMU_BCR					117
+#define GCC_USB4_2_MISC_SB_IF_BCR				118
+#define GCC_USB4_2_MISC_HIA_MSTR_BCR				119
+#define GCC_USB4_2_MISC_AHB_BCR					120
+#define GCC_USB4_2_MISC_DP0_MAX_PCLK_BCR			121
+#define GCC_USB4_2_MISC_DP1_MAX_PCLK_BCR			122
+#define GCC_USB4PHY_PHY_PRIM_BCR				123
+#define GCC_USB4PHY_PHY_SEC_BCR					124
+#define GCC_USB4PHY_PHY_TERT_BCR				125
+
 #endif

-- 
2.51.0
Re: [PATCH 1/3] dt-bindings: clock: qcom,x1e80100-gcc: Add missing USB4 clocks/resets
Posted by Bryan O'Donoghue 4 days, 11 hours ago
On 26/09/2025 13:03, Konrad Dybcio wrote:
> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> 
> Some of the USB4 muxes, RCGs and resets were not initially described.
> 
> Add indices for them to allow extending the driver.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
>   .../bindings/clock/qcom,x1e80100-gcc.yaml          | 62 ++++++++++++++++++++--
>   include/dt-bindings/clock/qcom,x1e80100-gcc.h      | 61 +++++++++++++++++++++
>   2 files changed, 119 insertions(+), 4 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/clock/qcom,x1e80100-gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,x1e80100-gcc.yaml
> index 68dde0720c711320aa0e7c74040cf3c4422dda72..1b15b507095455c93b1ba39404cafbb6f96be5a9 100644
> --- a/Documentation/devicetree/bindings/clock/qcom,x1e80100-gcc.yaml
> +++ b/Documentation/devicetree/bindings/clock/qcom,x1e80100-gcc.yaml
> @@ -32,9 +32,36 @@ properties:
>         - description: PCIe 5 pipe clock
>         - description: PCIe 6a pipe clock
>         - description: PCIe 6b pipe clock
> -      - description: USB QMP Phy 0 clock source
> -      - description: USB QMP Phy 1 clock source
> -      - description: USB QMP Phy 2 clock source
> +      - description: USB4_0 QMPPHY clock source
> +      - description: USB4_1 QMPPHY clock source
> +      - description: USB4_2 QMPPHY clock source
> +      - description: USB4_0 PHY DP0 GMUX clock source
> +      - description: USB4_0 PHY DP1 GMUX clock source
> +      - description: USB4_0 PHY PCIE PIPEGMUX clock source
> +      - description: USB4_0 PHY PIPEGMUX clock source
> +      - description: USB4_0 PHY SYS PCIE PIPEGMUX clock source
> +      - description: USB4_1 PHY DP0 GMUX 2 clock source
> +      - description: USB4_1 PHY DP1 GMUX 2 clock source
> +      - description: USB4_1 PHY PCIE PIPEGMUX clock source
> +      - description: USB4_1 PHY PIPEGMUX clock source
> +      - description: USB4_1 PHY SYS PCIE PIPEGMUX clock source
> +      - description: USB4_2 PHY DP0 GMUX 2 clock source
> +      - description: USB4_2 PHY DP1 GMUX 2 clock source
> +      - description: USB4_2 PHY PCIE PIPEGMUX clock source
> +      - description: USB4_2 PHY PIPEGMUX clock source
> +      - description: USB4_2 PHY SYS PCIE PIPEGMUX clock source
> +      - description: USB4_0 PHY RX 0 clock source
> +      - description: USB4_0 PHY RX 1 clock source
> +      - description: USB4_1 PHY RX 0 clock source
> +      - description: USB4_1 PHY RX 1 clock source
> +      - description: USB4_2 PHY RX 0 clock source
> +      - description: USB4_2 PHY RX 1 clock source
> +      - description: USB4_0 PHY PCIE PIPE clock source
> +      - description: USB4_0 PHY max PIPE clock source
> +      - description: USB4_1 PHY PCIE PIPE clock source
> +      - description: USB4_1 PHY max PIPE clock source
> +      - description: USB4_2 PHY PCIE PIPE clock source
> +      - description: USB4_2 PHY max PIPE clock source
>   
>     power-domains:
>       description:
> @@ -67,7 +94,34 @@ examples:
>                  <&pcie6b_phy>,
>                  <&usb_1_ss0_qmpphy 0>,
>                  <&usb_1_ss1_qmpphy 1>,
> -               <&usb_1_ss2_qmpphy 2>;
> +               <&usb_1_ss2_qmpphy 2>,
> +               <&usb4_0_phy_dp0_gmux_clk>,
> +               <&usb4_0_phy_dp1_gmux_clk>,
> +               <&usb4_0_phy_pcie_pipegmux_clk>,
> +               <&usb4_0_phy_pipegmux_clk>,
> +               <&usb4_0_phy_sys_pcie_pipegmux_clk>,
> +               <&usb4_1_phy_dp0_gmux_2_clk>,
> +               <&usb4_1_phy_dp1_gmux_2_clk>,
> +               <&usb4_1_phy_pcie_pipegmux_clk>,
> +               <&usb4_1_phy_pipegmux_clk>,
> +               <&usb4_1_phy_sys_pcie_pipegmux_clk>,
> +               <&usb4_2_phy_dp0_gmux_2_clk>,
> +               <&usb4_2_phy_dp1_gmux_2_clk>,
> +               <&usb4_2_phy_pcie_pipegmux_clk>,
> +               <&usb4_2_phy_pipegmux_clk>,
> +               <&usb4_2_phy_sys_pcie_pipegmux_clk>,
> +               <&usb4_0_phy_rx_0_clk>,
> +               <&usb4_0_phy_rx_1_clk>,
> +               <&usb4_1_phy_rx_0_clk>,
> +               <&usb4_1_phy_rx_1_clk>,
> +               <&usb4_2_phy_rx_0_clk>,
> +               <&usb4_2_phy_rx_1_clk>,
> +               <&usb4_0_phy_pcie_pipe_clk>,
> +               <&usb4_0_phy_max_pipe_clk>,
> +               <&usb4_1_phy_pcie_pipe_clk>,
> +               <&usb4_1_phy_max_pipe_clk>,
> +               <&usb4_2_phy_pcie_pipe_clk>,
> +               <&usb4_2_phy_max_pipe_clk>;
>         power-domains = <&rpmhpd RPMHPD_CX>;
>         #clock-cells = <1>;
>         #reset-cells = <1>;
> diff --git a/include/dt-bindings/clock/qcom,x1e80100-gcc.h b/include/dt-bindings/clock/qcom,x1e80100-gcc.h
> index 710c340f24a57d799ac04650fbe9d4ea0f294bde..62aa1242559270dd3bd31cd10322ee265468b8e4 100644
> --- a/include/dt-bindings/clock/qcom,x1e80100-gcc.h
> +++ b/include/dt-bindings/clock/qcom,x1e80100-gcc.h
> @@ -363,6 +363,30 @@
>   #define GCC_USB3_PRIM_PHY_PIPE_CLK_SRC				353
>   #define GCC_USB3_SEC_PHY_PIPE_CLK_SRC				354
>   #define GCC_USB3_TERT_PHY_PIPE_CLK_SRC				355
> +#define GCC_USB34_PRIM_PHY_PIPE_CLK_SRC				356
> +#define GCC_USB34_SEC_PHY_PIPE_CLK_SRC				357
> +#define GCC_USB34_TERT_PHY_PIPE_CLK_SRC				358
> +#define GCC_USB4_0_PHY_DP0_CLK_SRC				359
> +#define GCC_USB4_0_PHY_DP1_CLK_SRC				360
> +#define GCC_USB4_0_PHY_P2RR2P_PIPE_CLK_SRC			361
> +#define GCC_USB4_0_PHY_PCIE_PIPE_MUX_CLK_SRC			362
> +#define GCC_USB4_0_PHY_RX0_CLK_SRC				363
> +#define GCC_USB4_0_PHY_RX1_CLK_SRC				364
> +#define GCC_USB4_0_PHY_SYS_CLK_SRC				365
> +#define GCC_USB4_1_PHY_DP0_CLK_SRC				366
> +#define GCC_USB4_1_PHY_DP1_CLK_SRC				367
> +#define GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC			368
> +#define GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC			369
> +#define GCC_USB4_1_PHY_RX0_CLK_SRC				370
> +#define GCC_USB4_1_PHY_RX1_CLK_SRC				371
> +#define GCC_USB4_1_PHY_SYS_CLK_SRC				372
> +#define GCC_USB4_2_PHY_DP0_CLK_SRC				373
> +#define GCC_USB4_2_PHY_DP1_CLK_SRC				374
> +#define GCC_USB4_2_PHY_P2RR2P_PIPE_CLK_SRC			375
> +#define GCC_USB4_2_PHY_PCIE_PIPE_MUX_CLK_SRC			376
> +#define GCC_USB4_2_PHY_RX0_CLK_SRC				377
> +#define GCC_USB4_2_PHY_RX1_CLK_SRC				378
> +#define GCC_USB4_2_PHY_SYS_CLK_SRC				379
>   
>   /* GCC power domains */
>   #define GCC_PCIE_0_TUNNEL_GDSC					0
> @@ -484,4 +508,41 @@
>   #define GCC_VIDEO_BCR						87
>   #define GCC_VIDEO_AXI0_CLK_ARES					88
>   #define GCC_VIDEO_AXI1_CLK_ARES					89
> +#define GCC_USB4_0_MISC_USB4_SYS_BCR				90
> +#define GCC_USB4_0_MISC_RX_CLK_0_BCR				91
> +#define GCC_USB4_0_MISC_RX_CLK_1_BCR				92
> +#define GCC_USB4_0_MISC_USB_PIPE_BCR				93
> +#define GCC_USB4_0_MISC_PCIE_PIPE_BCR				94
> +#define GCC_USB4_0_MISC_TMU_BCR					95
> +#define GCC_USB4_0_MISC_SB_IF_BCR				96
> +#define GCC_USB4_0_MISC_HIA_MSTR_BCR				97
> +#define GCC_USB4_0_MISC_AHB_BCR					98
> +#define GCC_USB4_0_MISC_DP0_MAX_PCLK_BCR			99
> +#define GCC_USB4_0_MISC_DP1_MAX_PCLK_BCR			100
> +#define GCC_USB4_1_MISC_USB4_SYS_BCR				101
> +#define GCC_USB4_1_MISC_RX_CLK_0_BCR				102
> +#define GCC_USB4_1_MISC_RX_CLK_1_BCR				103
> +#define GCC_USB4_1_MISC_USB_PIPE_BCR				104
> +#define GCC_USB4_1_MISC_PCIE_PIPE_BCR				105
> +#define GCC_USB4_1_MISC_TMU_BCR					106
> +#define GCC_USB4_1_MISC_SB_IF_BCR				107
> +#define GCC_USB4_1_MISC_HIA_MSTR_BCR				108
> +#define GCC_USB4_1_MISC_AHB_BCR					109
> +#define GCC_USB4_1_MISC_DP0_MAX_PCLK_BCR			110
> +#define GCC_USB4_1_MISC_DP1_MAX_PCLK_BCR			111
> +#define GCC_USB4_2_MISC_USB4_SYS_BCR				112
> +#define GCC_USB4_2_MISC_RX_CLK_0_BCR				113
> +#define GCC_USB4_2_MISC_RX_CLK_1_BCR				114
> +#define GCC_USB4_2_MISC_USB_PIPE_BCR				115
> +#define GCC_USB4_2_MISC_PCIE_PIPE_BCR				116
> +#define GCC_USB4_2_MISC_TMU_BCR					117
> +#define GCC_USB4_2_MISC_SB_IF_BCR				118
> +#define GCC_USB4_2_MISC_HIA_MSTR_BCR				119
> +#define GCC_USB4_2_MISC_AHB_BCR					120
> +#define GCC_USB4_2_MISC_DP0_MAX_PCLK_BCR			121
> +#define GCC_USB4_2_MISC_DP1_MAX_PCLK_BCR			122
> +#define GCC_USB4PHY_PHY_PRIM_BCR				123
> +#define GCC_USB4PHY_PHY_SEC_BCR					124
> +#define GCC_USB4PHY_PHY_TERT_BCR				125
> +
>   #endif
> 
Reviewed-by: Bryan O'Donoghue <bod@kernel.org>