[PATCH 2/3] clk: qcom: gcc-x1e80100: Add missing USB4 clocks/resets

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

Currently, some of the USB4 clocks/resets are described, but not all
of the back-end muxes are present. Configuring them properly is
necessary for proper operation of the hardware.

Add all the resets & muxes and wire up any unaccounted USB4 clock paths.

Fixes: 161b7c401f4b ("clk: qcom: Add Global Clock controller (GCC) driver for X1E80100")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 drivers/clk/qcom/gcc-x1e80100.c | 803 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 786 insertions(+), 17 deletions(-)

diff --git a/drivers/clk/qcom/gcc-x1e80100.c b/drivers/clk/qcom/gcc-x1e80100.c
index 301fc9fc32d8e6e1ddf59c1d3350d84f6c06e4b6..1f866fb4a53ad4cca51d586e92aa96acab58ef0b 100644
--- a/drivers/clk/qcom/gcc-x1e80100.c
+++ b/drivers/clk/qcom/gcc-x1e80100.c
@@ -32,6 +32,33 @@ enum {
 	DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE,
 	DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE,
 	DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE,
+	DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC,
+	DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC,
+	DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC,
+	DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC,
+	DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC,
+	DT_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC,
+	DT_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC,
+	DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
+	DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
+	DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
+	DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC,
+	DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC,
+	DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC,
+	DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC,
+	DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC,
+	DT_QUSB4PHY_0_GCC_USB4_RX0_CLK,
+	DT_QUSB4PHY_0_GCC_USB4_RX1_CLK,
+	DT_QUSB4PHY_1_GCC_USB4_RX0_CLK,
+	DT_QUSB4PHY_1_GCC_USB4_RX1_CLK,
+	DT_QUSB4PHY_2_GCC_USB4_RX0_CLK,
+	DT_QUSB4PHY_2_GCC_USB4_RX1_CLK,
+	DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK,
+	DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
+	DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
+	DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
+	DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK,
+	DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
 };
 
 enum {
@@ -42,10 +69,40 @@ enum {
 	P_GCC_GPLL7_OUT_MAIN,
 	P_GCC_GPLL8_OUT_MAIN,
 	P_GCC_GPLL9_OUT_MAIN,
+	P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC,
+	P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC,
+	P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC,
+	P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC,
+	P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC,
+	P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC,
+	P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC,
+	P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC,
+	P_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC,
+	P_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC,
+	P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
+	P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
+	P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
+	P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC,
+	P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC,
+	P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC,
+	P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC,
+	P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC,
+	P_QUSB4PHY_0_GCC_USB4_RX0_CLK,
+	P_QUSB4PHY_0_GCC_USB4_RX1_CLK,
+	P_QUSB4PHY_1_GCC_USB4_RX0_CLK,
+	P_QUSB4PHY_1_GCC_USB4_RX1_CLK,
+	P_QUSB4PHY_2_GCC_USB4_RX0_CLK,
+	P_QUSB4PHY_2_GCC_USB4_RX1_CLK,
 	P_SLEEP_CLK,
 	P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK,
 	P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK,
 	P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK,
+	P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK,
+	P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
+	P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
+	P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
+	P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK,
+	P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
 };
 
 static struct clk_alpha_pll gcc_gpll0 = {
@@ -320,6 +377,447 @@ static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
 	{ }
 };
 
+static const struct parent_map gcc_parent_map_13[] = {
+	{ P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC, 0 },
+	{ P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_13[] = {
+	{ .index = DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC },
+	{ .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_14[] = {
+	{ P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC, 0 },
+	{ P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_14[] = {
+	{ .index = DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC },
+	{ .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_15[] = {
+	{ P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
+	{ P_BI_TCXO, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_15[] = {
+	{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
+	{ .index = DT_BI_TCXO },
+};
+
+static const struct parent_map gcc_parent_map_16[] = {
+	{ P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
+	{ P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
+};
+
+static const struct clk_parent_data gcc_parent_data_16[] = {
+	{ .index = DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC },
+	{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_17[] = {
+	{ P_QUSB4PHY_0_GCC_USB4_RX0_CLK, 0 },
+	{ P_BI_TCXO, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_17[] = {
+	{ .index = DT_QUSB4PHY_0_GCC_USB4_RX0_CLK },
+	{ .index = DT_BI_TCXO },
+};
+
+static const struct parent_map gcc_parent_map_18[] = {
+	{ P_QUSB4PHY_0_GCC_USB4_RX1_CLK, 0 },
+	{ P_BI_TCXO, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_18[] = {
+	{ .index = DT_QUSB4PHY_0_GCC_USB4_RX1_CLK },
+	{ .index = DT_BI_TCXO },
+};
+
+static const struct parent_map gcc_parent_map_19[] = {
+	{ P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
+	{ P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_19[] = {
+	{ .index = DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC },
+	{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_20[] = {
+	{ P_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC, 0 },
+	{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_20[] = {
+	{ .index = DT_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC },
+	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_21[] = {
+	{ P_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC, 0 },
+	{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_21[] = {
+	{ .index = DT_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC },
+	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_22[] = {
+	{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
+	{ P_BI_TCXO, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_22[] = {
+	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
+	{ .index = DT_BI_TCXO },
+};
+
+static const struct parent_map gcc_parent_map_23[] = {
+	{ P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
+	{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
+};
+
+static const struct clk_parent_data gcc_parent_data_23[] = {
+	{ .index = DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC },
+	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_24[] = {
+	{ P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 },
+	{ P_BI_TCXO, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_24[] = {
+	{ .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK },
+	{ .index = DT_BI_TCXO },
+};
+
+static const struct parent_map gcc_parent_map_25[] = {
+	{ P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 },
+	{ P_BI_TCXO, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_25[] = {
+	{ .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK },
+	{ .index = DT_BI_TCXO },
+};
+
+static const struct parent_map gcc_parent_map_26[] = {
+	{ P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
+	{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_26[] = {
+	{ .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
+	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_27[] = {
+	{ P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC, 0 },
+	{ P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_27[] = {
+	{ .index = DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC },
+	{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_28[] = {
+	{ P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC, 0 },
+	{ P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_28[] = {
+	{ .index = DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC },
+	{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_29[] = {
+	{ P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
+	{ P_BI_TCXO, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_29[] = {
+	{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
+	{ .index = DT_BI_TCXO },
+};
+
+static const struct parent_map gcc_parent_map_30[] = {
+	{ P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
+	{ P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
+};
+
+static const struct clk_parent_data gcc_parent_data_30[] = {
+	{ .index = DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC },
+	{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
+};
+
+static const struct parent_map gcc_parent_map_31[] = {
+	{ P_QUSB4PHY_2_GCC_USB4_RX0_CLK, 0 },
+	{ P_BI_TCXO, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_31[] = {
+	{ .index = DT_QUSB4PHY_2_GCC_USB4_RX0_CLK },
+	{ .index = DT_BI_TCXO },
+};
+
+static const struct parent_map gcc_parent_map_32[] = {
+	{ P_QUSB4PHY_2_GCC_USB4_RX1_CLK, 0 },
+	{ P_BI_TCXO, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_32[] = {
+	{ .index = DT_QUSB4PHY_2_GCC_USB4_RX1_CLK },
+	{ .index = DT_BI_TCXO },
+};
+
+static const struct parent_map gcc_parent_map_33[] = {
+	{ P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
+	{ P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
+};
+
+static const struct clk_parent_data gcc_parent_data_33[] = {
+	{ .index = DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC },
+	{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_0_phy_dp0_clk_src = {
+	.reg = 0x9f06c,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_0_phy_dp0_clk_src",
+			.parent_data = gcc_parent_data_13,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_0_phy_dp1_clk_src = {
+	.reg = 0x9f114,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_0_phy_dp1_clk_src",
+			.parent_data = gcc_parent_data_14,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_0_phy_p2rr2p_pipe_clk_src = {
+	.reg = 0x9f0d4,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_0_phy_p2rr2p_pipe_clk_src",
+			.parent_data = gcc_parent_data_15,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_0_phy_pcie_pipe_mux_clk_src = {
+	.reg = 0x9f104,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_0_phy_pcie_pipe_mux_clk_src",
+			.parent_data = gcc_parent_data_16,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_0_phy_rx0_clk_src = {
+	.reg = 0x9f0ac,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_0_phy_rx0_clk_src",
+			.parent_data = gcc_parent_data_17,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_0_phy_rx1_clk_src = {
+	.reg = 0x9f0bc,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_0_phy_rx1_clk_src",
+			.parent_data = gcc_parent_data_18,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_0_phy_sys_clk_src = {
+	.reg = 0x9f0e4,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_0_phy_sys_clk_src",
+			.parent_data = gcc_parent_data_19,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_1_phy_dp0_clk_src = {
+	.reg = 0x2b06c,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_1_phy_dp0_clk_src",
+			.parent_data = gcc_parent_data_20,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_1_phy_dp1_clk_src = {
+	.reg = 0x2b114,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_1_phy_dp1_clk_src",
+			.parent_data = gcc_parent_data_21,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = {
+	.reg = 0x2b0d4,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_1_phy_p2rr2p_pipe_clk_src",
+			.parent_data = gcc_parent_data_22,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = {
+	.reg = 0x2b104,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_1_phy_pcie_pipe_mux_clk_src",
+			.parent_data = gcc_parent_data_23,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_1_phy_rx0_clk_src = {
+	.reg = 0x2b0ac,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_1_phy_rx0_clk_src",
+			.parent_data = gcc_parent_data_24,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_1_phy_rx1_clk_src = {
+	.reg = 0x2b0bc,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_1_phy_rx1_clk_src",
+			.parent_data = gcc_parent_data_25,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_1_phy_sys_clk_src = {
+	.reg = 0x2b0e4,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_1_phy_sys_clk_src",
+			.parent_data = gcc_parent_data_26,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_2_phy_dp0_clk_src = {
+	.reg = 0x1106c,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_2_phy_dp0_clk_src",
+			.parent_data = gcc_parent_data_27,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_2_phy_dp1_clk_src = {
+	.reg = 0x11114,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_2_phy_dp1_clk_src",
+			.parent_data = gcc_parent_data_28,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_2_phy_p2rr2p_pipe_clk_src = {
+	.reg = 0x110d4,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_2_phy_p2rr2p_pipe_clk_src",
+			.parent_data = gcc_parent_data_29,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_2_phy_pcie_pipe_mux_clk_src = {
+	.reg = 0x11104,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_2_phy_pcie_pipe_mux_clk_src",
+			.parent_data = gcc_parent_data_30,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_2_phy_rx0_clk_src = {
+	.reg = 0x110ac,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_2_phy_rx0_clk_src",
+			.parent_data = gcc_parent_data_31,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_2_phy_rx1_clk_src = {
+	.reg = 0x110bc,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_2_phy_rx1_clk_src",
+			.parent_data = gcc_parent_data_32,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
+static struct clk_regmap_phy_mux gcc_usb4_2_phy_sys_clk_src = {
+	.reg = 0x110e4,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb4_2_phy_sys_clk_src",
+			.parent_data = gcc_parent_data_33,
+			.ops = &clk_regmap_phy_mux_ops,
+		},
+	},
+};
+
 static struct clk_rcg2 gcc_gp1_clk_src = {
 	.cmd_rcgr = 0x64004,
 	.mnd_width = 16,
@@ -2790,6 +3288,11 @@ static struct clk_branch gcc_pcie_0_pipe_clk = {
 		.enable_mask = BIT(25),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_pcie_0_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -2879,6 +3382,11 @@ static struct clk_branch gcc_pcie_1_pipe_clk = {
 		.enable_mask = BIT(30),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_pcie_1_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -2968,6 +3476,11 @@ static struct clk_branch gcc_pcie_2_pipe_clk = {
 		.enable_mask = BIT(23),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_pcie_2_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5156,6 +5669,33 @@ static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
 	},
 };
 
+static const struct parent_map gcc_parent_map_34[] = {
+	{ P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 0 },
+	{ P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
+	{ P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC, 3 },
+};
+
+static const struct clk_parent_data gcc_parent_data_34[] = {
+	{ .hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw },
+	{ .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
+	{ .index = DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC },
+};
+
+static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = {
+	.reg = 0x39070,
+	.shift = 0,
+	.width = 2,
+	.parent_map = gcc_parent_map_34,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb34_prim_phy_pipe_clk_src",
+			.parent_data = gcc_parent_data_34,
+			.num_parents = ARRAY_SIZE(gcc_parent_data_34),
+			.ops = &clk_regmap_mux_closest_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
 	.halt_reg = 0x39068,
 	.halt_check = BRANCH_HALT_SKIP,
@@ -5167,7 +5707,7 @@ static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb3_prim_phy_pipe_clk",
 			.parent_hws = (const struct clk_hw*[]) {
-				&gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
+				&gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
 			},
 			.num_parents = 1,
 			.flags = CLK_SET_RATE_PARENT,
@@ -5227,6 +5767,33 @@ static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
 	},
 };
 
+static const struct parent_map gcc_parent_map_35[] = {
+	{ P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 0 },
+	{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
+	{ P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 3 },
+};
+
+static const struct clk_parent_data gcc_parent_data_35[] = {
+	{ .hw = &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw },
+	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
+	{ .index = DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC },
+};
+
+static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = {
+	.reg = 0xa1070,
+	.shift = 0,
+	.width = 2,
+	.parent_map = gcc_parent_map_35,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb34_sec_phy_pipe_clk_src",
+			.parent_data = gcc_parent_data_35,
+			.num_parents = ARRAY_SIZE(gcc_parent_data_35),
+			.ops = &clk_regmap_mux_closest_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
 	.halt_reg = 0xa1068,
 	.halt_check = BRANCH_HALT_SKIP,
@@ -5238,7 +5805,7 @@ static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb3_sec_phy_pipe_clk",
 			.parent_hws = (const struct clk_hw*[]) {
-				&gcc_usb3_sec_phy_pipe_clk_src.clkr.hw,
+				&gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
 			},
 			.num_parents = 1,
 			.flags = CLK_SET_RATE_PARENT,
@@ -5298,6 +5865,33 @@ static struct clk_regmap_mux gcc_usb3_tert_phy_pipe_clk_src = {
 	},
 };
 
+static const struct parent_map gcc_parent_map_36[] = {
+	{ P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC, 0 },
+	{ P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
+	{ P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC, 3 },
+};
+
+static const struct clk_parent_data gcc_parent_data_36[] = {
+	{ .hw = &gcc_usb3_tert_phy_pipe_clk_src.clkr.hw },
+	{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
+	{ .index = DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC },
+};
+
+static struct clk_regmap_mux gcc_usb34_tert_phy_pipe_clk_src = {
+	.reg = 0xa2070,
+	.shift = 0,
+	.width = 2,
+	.parent_map = gcc_parent_map_36,
+	.clkr = {
+		.hw.init = &(const struct clk_init_data) {
+			.name = "gcc_usb34_tert_phy_pipe_clk_src",
+			.parent_data = gcc_parent_data_36,
+			.num_parents = ARRAY_SIZE(gcc_parent_data_36),
+			.ops = &clk_regmap_mux_closest_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_usb3_tert_phy_pipe_clk = {
 	.halt_reg = 0xa2068,
 	.halt_check = BRANCH_HALT_SKIP,
@@ -5309,7 +5903,7 @@ static struct clk_branch gcc_usb3_tert_phy_pipe_clk = {
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb3_tert_phy_pipe_clk",
 			.parent_hws = (const struct clk_hw*[]) {
-				&gcc_usb3_tert_phy_pipe_clk_src.clkr.hw,
+				&gcc_usb34_tert_phy_pipe_clk_src.clkr.hw,
 			},
 			.num_parents = 1,
 			.flags = CLK_SET_RATE_PARENT,
@@ -5335,12 +5929,17 @@ static struct clk_branch gcc_usb4_0_cfg_ahb_clk = {
 
 static struct clk_branch gcc_usb4_0_dp0_clk = {
 	.halt_reg = 0x9f060,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x9f060,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_0_dp0_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_0_phy_dp0_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5348,12 +5947,17 @@ static struct clk_branch gcc_usb4_0_dp0_clk = {
 
 static struct clk_branch gcc_usb4_0_dp1_clk = {
 	.halt_reg = 0x9f108,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x9f108,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_0_dp1_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_0_phy_dp1_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5385,6 +5989,11 @@ static struct clk_branch gcc_usb4_0_phy_p2rr2p_pipe_clk = {
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_0_phy_p2rr2p_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5398,6 +6007,11 @@ static struct clk_branch gcc_usb4_0_phy_pcie_pipe_clk = {
 		.enable_mask = BIT(19),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_0_phy_pcie_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5405,12 +6019,17 @@ static struct clk_branch gcc_usb4_0_phy_pcie_pipe_clk = {
 
 static struct clk_branch gcc_usb4_0_phy_rx0_clk = {
 	.halt_reg = 0x9f0b0,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x9f0b0,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_0_phy_rx0_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_0_phy_rx0_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5418,12 +6037,17 @@ static struct clk_branch gcc_usb4_0_phy_rx0_clk = {
 
 static struct clk_branch gcc_usb4_0_phy_rx1_clk = {
 	.halt_reg = 0x9f0c0,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x9f0c0,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_0_phy_rx1_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_0_phy_rx1_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5439,6 +6063,11 @@ static struct clk_branch gcc_usb4_0_phy_usb_pipe_clk = {
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_0_phy_usb_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5470,6 +6099,11 @@ static struct clk_branch gcc_usb4_0_sys_clk = {
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_0_sys_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_0_phy_sys_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5512,12 +6146,17 @@ static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
 
 static struct clk_branch gcc_usb4_1_dp0_clk = {
 	.halt_reg = 0x2b060,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x2b060,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_1_dp0_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_1_phy_dp0_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5525,12 +6164,17 @@ static struct clk_branch gcc_usb4_1_dp0_clk = {
 
 static struct clk_branch gcc_usb4_1_dp1_clk = {
 	.halt_reg = 0x2b108,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x2b108,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_1_dp1_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_1_phy_dp1_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5562,6 +6206,11 @@ static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5575,6 +6224,11 @@ static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_1_phy_pcie_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5582,12 +6236,17 @@ static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
 
 static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
 	.halt_reg = 0x2b0b0,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x2b0b0,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_1_phy_rx0_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_1_phy_rx0_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5595,12 +6254,17 @@ static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
 
 static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
 	.halt_reg = 0x2b0c0,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x2b0c0,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_1_phy_rx1_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_1_phy_rx1_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5616,6 +6280,11 @@ static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_1_phy_usb_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5647,6 +6316,11 @@ static struct clk_branch gcc_usb4_1_sys_clk = {
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_1_sys_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_1_phy_sys_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5689,12 +6363,17 @@ static struct clk_branch gcc_usb4_2_cfg_ahb_clk = {
 
 static struct clk_branch gcc_usb4_2_dp0_clk = {
 	.halt_reg = 0x11060,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x11060,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_2_dp0_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_2_phy_dp0_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5702,12 +6381,17 @@ static struct clk_branch gcc_usb4_2_dp0_clk = {
 
 static struct clk_branch gcc_usb4_2_dp1_clk = {
 	.halt_reg = 0x11108,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x11108,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_2_dp1_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_2_phy_dp1_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5739,6 +6423,11 @@ static struct clk_branch gcc_usb4_2_phy_p2rr2p_pipe_clk = {
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_2_phy_p2rr2p_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5752,6 +6441,11 @@ static struct clk_branch gcc_usb4_2_phy_pcie_pipe_clk = {
 		.enable_mask = BIT(1),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_2_phy_pcie_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5759,12 +6453,17 @@ static struct clk_branch gcc_usb4_2_phy_pcie_pipe_clk = {
 
 static struct clk_branch gcc_usb4_2_phy_rx0_clk = {
 	.halt_reg = 0x110b0,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x110b0,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_2_phy_rx0_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_2_phy_rx0_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5772,12 +6471,17 @@ static struct clk_branch gcc_usb4_2_phy_rx0_clk = {
 
 static struct clk_branch gcc_usb4_2_phy_rx1_clk = {
 	.halt_reg = 0x110c0,
-	.halt_check = BRANCH_HALT,
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x110c0,
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_2_phy_rx1_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb4_2_phy_rx1_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -5793,6 +6497,11 @@ static struct clk_branch gcc_usb4_2_phy_usb_pipe_clk = {
 		.enable_mask = BIT(0),
 		.hw.init = &(const struct clk_init_data) {
 			.name = "gcc_usb4_2_phy_usb_pipe_clk",
+			.parent_hws = (const struct clk_hw*[]) {
+				&gcc_usb34_tert_phy_pipe_clk_src.clkr.hw,
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -6483,6 +7192,9 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = {
 	[GCC_USB30_TERT_MOCK_UTMI_CLK_SRC] = &gcc_usb30_tert_mock_utmi_clk_src.clkr,
 	[GCC_USB30_TERT_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr,
 	[GCC_USB30_TERT_SLEEP_CLK] = &gcc_usb30_tert_sleep_clk.clkr,
+	[GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr,
+	[GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr,
+	[GCC_USB34_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb34_tert_phy_pipe_clk_src.clkr,
 	[GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
 	[GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
 	[GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
@@ -6508,11 +7220,18 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = {
 	[GCC_USB4_0_DP1_CLK] = &gcc_usb4_0_dp1_clk.clkr,
 	[GCC_USB4_0_MASTER_CLK] = &gcc_usb4_0_master_clk.clkr,
 	[GCC_USB4_0_MASTER_CLK_SRC] = &gcc_usb4_0_master_clk_src.clkr,
+	[GCC_USB4_0_PHY_DP0_CLK_SRC] = &gcc_usb4_0_phy_dp0_clk_src.clkr,
+	[GCC_USB4_0_PHY_DP1_CLK_SRC] = &gcc_usb4_0_phy_dp1_clk_src.clkr,
 	[GCC_USB4_0_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_0_phy_p2rr2p_pipe_clk.clkr,
+	[GCC_USB4_0_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr,
 	[GCC_USB4_0_PHY_PCIE_PIPE_CLK] = &gcc_usb4_0_phy_pcie_pipe_clk.clkr,
 	[GCC_USB4_0_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_clk_src.clkr,
+	[GCC_USB4_0_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr,
 	[GCC_USB4_0_PHY_RX0_CLK] = &gcc_usb4_0_phy_rx0_clk.clkr,
+	[GCC_USB4_0_PHY_RX0_CLK_SRC] = &gcc_usb4_0_phy_rx0_clk_src.clkr,
 	[GCC_USB4_0_PHY_RX1_CLK] = &gcc_usb4_0_phy_rx1_clk.clkr,
+	[GCC_USB4_0_PHY_RX1_CLK_SRC] = &gcc_usb4_0_phy_rx1_clk_src.clkr,
+	[GCC_USB4_0_PHY_SYS_CLK_SRC] = &gcc_usb4_0_phy_sys_clk_src.clkr,
 	[GCC_USB4_0_PHY_USB_PIPE_CLK] = &gcc_usb4_0_phy_usb_pipe_clk.clkr,
 	[GCC_USB4_0_SB_IF_CLK] = &gcc_usb4_0_sb_if_clk.clkr,
 	[GCC_USB4_0_SB_IF_CLK_SRC] = &gcc_usb4_0_sb_if_clk_src.clkr,
@@ -6524,11 +7243,18 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = {
 	[GCC_USB4_1_DP1_CLK] = &gcc_usb4_1_dp1_clk.clkr,
 	[GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
 	[GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
+	[GCC_USB4_1_PHY_DP0_CLK_SRC] = &gcc_usb4_1_phy_dp0_clk_src.clkr,
+	[GCC_USB4_1_PHY_DP1_CLK_SRC] = &gcc_usb4_1_phy_dp1_clk_src.clkr,
 	[GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
+	[GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr,
 	[GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
 	[GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
+	[GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr,
 	[GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
+	[GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr,
 	[GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
+	[GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr,
+	[GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr,
 	[GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
 	[GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
 	[GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
@@ -6540,11 +7266,18 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = {
 	[GCC_USB4_2_DP1_CLK] = &gcc_usb4_2_dp1_clk.clkr,
 	[GCC_USB4_2_MASTER_CLK] = &gcc_usb4_2_master_clk.clkr,
 	[GCC_USB4_2_MASTER_CLK_SRC] = &gcc_usb4_2_master_clk_src.clkr,
+	[GCC_USB4_2_PHY_DP0_CLK_SRC] = &gcc_usb4_2_phy_dp0_clk_src.clkr,
+	[GCC_USB4_2_PHY_DP1_CLK_SRC] = &gcc_usb4_2_phy_dp1_clk_src.clkr,
 	[GCC_USB4_2_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_2_phy_p2rr2p_pipe_clk.clkr,
+	[GCC_USB4_2_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr,
 	[GCC_USB4_2_PHY_PCIE_PIPE_CLK] = &gcc_usb4_2_phy_pcie_pipe_clk.clkr,
 	[GCC_USB4_2_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_clk_src.clkr,
+	[GCC_USB4_2_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr,
 	[GCC_USB4_2_PHY_RX0_CLK] = &gcc_usb4_2_phy_rx0_clk.clkr,
+	[GCC_USB4_2_PHY_RX0_CLK_SRC] = &gcc_usb4_2_phy_rx0_clk_src.clkr,
 	[GCC_USB4_2_PHY_RX1_CLK] = &gcc_usb4_2_phy_rx1_clk.clkr,
+	[GCC_USB4_2_PHY_RX1_CLK_SRC] = &gcc_usb4_2_phy_rx1_clk_src.clkr,
+	[GCC_USB4_2_PHY_SYS_CLK_SRC] = &gcc_usb4_2_phy_sys_clk_src.clkr,
 	[GCC_USB4_2_PHY_USB_PIPE_CLK] = &gcc_usb4_2_phy_usb_pipe_clk.clkr,
 	[GCC_USB4_2_SB_IF_CLK] = &gcc_usb4_2_sb_if_clk.clkr,
 	[GCC_USB4_2_SB_IF_CLK_SRC] = &gcc_usb4_2_sb_if_clk_src.clkr,
@@ -6660,16 +7393,52 @@ static const struct qcom_reset_map gcc_x1e80100_resets[] = {
 	[GCC_USB3_UNIPHY_MP0_BCR] = { 0x19000 },
 	[GCC_USB3_UNIPHY_MP1_BCR] = { 0x54000 },
 	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
+	[GCC_USB4PHY_PHY_PRIM_BCR] = { 0x5000c },
 	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x2a004 },
+	[GCC_USB4PHY_PHY_SEC_BCR] = { 0x2a00c },
 	[GCC_USB3PHY_PHY_TERT_BCR] = { 0xa3004 },
+	[GCC_USB4PHY_PHY_TERT_BCR] = { 0xa300c },
 	[GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x19004 },
 	[GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x54004 },
 	[GCC_USB4_0_BCR] = { 0x9f000 },
 	[GCC_USB4_0_DP0_PHY_PRIM_BCR] = { 0x50010 },
-	[GCC_USB4_1_DP0_PHY_SEC_BCR] = { 0x2a010 },
-	[GCC_USB4_2_DP0_PHY_TERT_BCR] = { 0xa3010 },
+	[GCC_USB4_0_MISC_USB4_SYS_BCR] = { .reg = 0xad0f8, .bit = 0 },
+	[GCC_USB4_0_MISC_RX_CLK_0_BCR] = { .reg = 0xad0f8, .bit = 1 },
+	[GCC_USB4_0_MISC_RX_CLK_1_BCR] = { .reg = 0xad0f8, .bit = 2 },
+	[GCC_USB4_0_MISC_USB_PIPE_BCR] = { .reg = 0xad0f8, .bit = 3 },
+	[GCC_USB4_0_MISC_PCIE_PIPE_BCR] = { .reg = 0xad0f8, .bit = 4 },
+	[GCC_USB4_0_MISC_TMU_BCR] = { .reg = 0xad0f8, .bit = 5 },
+	[GCC_USB4_0_MISC_SB_IF_BCR] = { .reg = 0xad0f8, .bit = 6 },
+	[GCC_USB4_0_MISC_HIA_MSTR_BCR] = { .reg = 0xad0f8, .bit = 7 },
+	[GCC_USB4_0_MISC_AHB_BCR] = { .reg = 0xad0f8, .bit = 8 },
+	[GCC_USB4_0_MISC_DP0_MAX_PCLK_BCR] = { .reg = 0xad0f8, .bit = 9 },
+	[GCC_USB4_0_MISC_DP1_MAX_PCLK_BCR] = { .reg = 0xad0f8, .bit = 10 },
 	[GCC_USB4_1_BCR] = { 0x2b000 },
+	[GCC_USB4_1_DP0_PHY_SEC_BCR] = { 0x2a010 },
+	[GCC_USB4_1_MISC_USB4_SYS_BCR] = { .reg = 0xae0f8, .bit = 0 },
+	[GCC_USB4_1_MISC_RX_CLK_0_BCR] = { .reg = 0xae0f8, .bit = 1 },
+	[GCC_USB4_1_MISC_RX_CLK_1_BCR] = { .reg = 0xae0f8, .bit = 2 },
+	[GCC_USB4_1_MISC_USB_PIPE_BCR] = { .reg = 0xae0f8, .bit = 3 },
+	[GCC_USB4_1_MISC_PCIE_PIPE_BCR] = { .reg = 0xae0f8, .bit = 4 },
+	[GCC_USB4_1_MISC_TMU_BCR] = { .reg = 0xae0f8, .bit = 5 },
+	[GCC_USB4_1_MISC_SB_IF_BCR] = { .reg = 0xae0f8, .bit = 6 },
+	[GCC_USB4_1_MISC_HIA_MSTR_BCR] = { .reg = 0xae0f8, .bit = 7 },
+	[GCC_USB4_1_MISC_AHB_BCR] = { .reg = 0xae0f8, .bit = 8 },
+	[GCC_USB4_1_MISC_DP0_MAX_PCLK_BCR] = { .reg = 0xae0f8, .bit = 9 },
+	[GCC_USB4_1_MISC_DP1_MAX_PCLK_BCR] = { .reg = 0xae0f8, .bit = 10 },
 	[GCC_USB4_2_BCR] = { 0x11000 },
+	[GCC_USB4_2_DP0_PHY_TERT_BCR] = { 0xa3010 },
+	[GCC_USB4_2_MISC_USB4_SYS_BCR] = { .reg = 0xaf0f8, .bit = 0 },
+	[GCC_USB4_2_MISC_RX_CLK_0_BCR] = { .reg = 0xaf0f8, .bit = 1 },
+	[GCC_USB4_2_MISC_RX_CLK_1_BCR] = { .reg = 0xaf0f8, .bit = 2 },
+	[GCC_USB4_2_MISC_USB_PIPE_BCR] = { .reg = 0xaf0f8, .bit = 3 },
+	[GCC_USB4_2_MISC_PCIE_PIPE_BCR] = { .reg = 0xaf0f8, .bit = 4 },
+	[GCC_USB4_2_MISC_TMU_BCR] = { .reg = 0xaf0f8, .bit = 5 },
+	[GCC_USB4_2_MISC_SB_IF_BCR] = { .reg = 0xaf0f8, .bit = 6 },
+	[GCC_USB4_2_MISC_HIA_MSTR_BCR] = { .reg = 0xaf0f8, .bit = 7 },
+	[GCC_USB4_2_MISC_AHB_BCR] = { .reg = 0xaf0f8, .bit = 8 },
+	[GCC_USB4_2_MISC_DP0_MAX_PCLK_BCR] = { .reg = 0xaf0f8, .bit = 9 },
+	[GCC_USB4_2_MISC_DP1_MAX_PCLK_BCR] = { .reg = 0xaf0f8, .bit = 10 },
 	[GCC_USB_0_PHY_BCR] = { 0x50020 },
 	[GCC_USB_1_PHY_BCR] = { 0x2a020 },
 	[GCC_USB_2_PHY_BCR] = { 0xa3020 },

-- 
2.51.0
Re: [PATCH 2/3] clk: qcom: gcc-x1e80100: Add missing USB4 clocks/resets
Posted by kernel test robot 4 days, 8 hours ago
Hi Konrad,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 8e2755d7779a95dd61d8997ebce33ff8b1efd3fb]

url:    https://github.com/intel-lab-lkp/linux/commits/Konrad-Dybcio/dt-bindings-clock-qcom-x1e80100-gcc-Add-missing-USB4-clocks-resets/20250926-200520
base:   8e2755d7779a95dd61d8997ebce33ff8b1efd3fb
patch link:    https://lore.kernel.org/r/20250926-topic-hamoa_gcc_usb4-v1-2-25cad1700829%40oss.qualcomm.com
patch subject: [PATCH 2/3] clk: qcom: gcc-x1e80100: Add missing USB4 clocks/resets
config: riscv-randconfig-002-20250927 (https://download.01.org/0day-ci/archive/20250927/202509272140.wYFpHZfD-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250927/202509272140.wYFpHZfD-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509272140.wYFpHZfD-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/clk/qcom/gcc-x1e80100.c:580:32: warning: 'gcc_parent_map_33' defined but not used [-Wunused-const-variable=]
     580 | static const struct parent_map gcc_parent_map_33[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:570:32: warning: 'gcc_parent_map_32' defined but not used [-Wunused-const-variable=]
     570 | static const struct parent_map gcc_parent_map_32[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:560:32: warning: 'gcc_parent_map_31' defined but not used [-Wunused-const-variable=]
     560 | static const struct parent_map gcc_parent_map_31[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:550:32: warning: 'gcc_parent_map_30' defined but not used [-Wunused-const-variable=]
     550 | static const struct parent_map gcc_parent_map_30[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:540:32: warning: 'gcc_parent_map_29' defined but not used [-Wunused-const-variable=]
     540 | static const struct parent_map gcc_parent_map_29[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:530:32: warning: 'gcc_parent_map_28' defined but not used [-Wunused-const-variable=]
     530 | static const struct parent_map gcc_parent_map_28[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:520:32: warning: 'gcc_parent_map_27' defined but not used [-Wunused-const-variable=]
     520 | static const struct parent_map gcc_parent_map_27[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:510:32: warning: 'gcc_parent_map_26' defined but not used [-Wunused-const-variable=]
     510 | static const struct parent_map gcc_parent_map_26[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:500:32: warning: 'gcc_parent_map_25' defined but not used [-Wunused-const-variable=]
     500 | static const struct parent_map gcc_parent_map_25[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:490:32: warning: 'gcc_parent_map_24' defined but not used [-Wunused-const-variable=]
     490 | static const struct parent_map gcc_parent_map_24[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:480:32: warning: 'gcc_parent_map_23' defined but not used [-Wunused-const-variable=]
     480 | static const struct parent_map gcc_parent_map_23[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:470:32: warning: 'gcc_parent_map_22' defined but not used [-Wunused-const-variable=]
     470 | static const struct parent_map gcc_parent_map_22[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:460:32: warning: 'gcc_parent_map_21' defined but not used [-Wunused-const-variable=]
     460 | static const struct parent_map gcc_parent_map_21[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:450:32: warning: 'gcc_parent_map_20' defined but not used [-Wunused-const-variable=]
     450 | static const struct parent_map gcc_parent_map_20[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:440:32: warning: 'gcc_parent_map_19' defined but not used [-Wunused-const-variable=]
     440 | static const struct parent_map gcc_parent_map_19[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:430:32: warning: 'gcc_parent_map_18' defined but not used [-Wunused-const-variable=]
     430 | static const struct parent_map gcc_parent_map_18[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:420:32: warning: 'gcc_parent_map_17' defined but not used [-Wunused-const-variable=]
     420 | static const struct parent_map gcc_parent_map_17[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:410:32: warning: 'gcc_parent_map_16' defined but not used [-Wunused-const-variable=]
     410 | static const struct parent_map gcc_parent_map_16[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:400:32: warning: 'gcc_parent_map_15' defined but not used [-Wunused-const-variable=]
     400 | static const struct parent_map gcc_parent_map_15[] = {
         |                                ^~~~~~~~~~~~~~~~~
>> drivers/clk/qcom/gcc-x1e80100.c:390:32: warning: 'gcc_parent_map_14' defined but not used [-Wunused-const-variable=]
     390 | static const struct parent_map gcc_parent_map_14[] = {
         |                                ^~~~~~~~~~~~~~~~~
   drivers/clk/qcom/gcc-x1e80100.c:380:32: warning: 'gcc_parent_map_13' defined but not used [-Wunused-const-variable=]
     380 | static const struct parent_map gcc_parent_map_13[] = {
         |                                ^~~~~~~~~~~~~~~~~

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for ARCH_HAS_ELF_CORE_EFLAGS
   Depends on [n]: BINFMT_ELF [=n] && ELF_CORE [=y]
   Selected by [y]:
   - RISCV [=y]


vim +/gcc_parent_map_33 +580 drivers/clk/qcom/gcc-x1e80100.c

   389	
 > 390	static const struct parent_map gcc_parent_map_14[] = {
   391		{ P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC, 0 },
   392		{ P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
   393	};
   394	
   395	static const struct clk_parent_data gcc_parent_data_14[] = {
   396		{ .index = DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC },
   397		{ .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
   398	};
   399	
 > 400	static const struct parent_map gcc_parent_map_15[] = {
   401		{ P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
   402		{ P_BI_TCXO, 2 },
   403	};
   404	
   405	static const struct clk_parent_data gcc_parent_data_15[] = {
   406		{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
   407		{ .index = DT_BI_TCXO },
   408	};
   409	
 > 410	static const struct parent_map gcc_parent_map_16[] = {
   411		{ P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
   412		{ P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
   413	};
   414	
   415	static const struct clk_parent_data gcc_parent_data_16[] = {
   416		{ .index = DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC },
   417		{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
   418	};
   419	
 > 420	static const struct parent_map gcc_parent_map_17[] = {
   421		{ P_QUSB4PHY_0_GCC_USB4_RX0_CLK, 0 },
   422		{ P_BI_TCXO, 2 },
   423	};
   424	
   425	static const struct clk_parent_data gcc_parent_data_17[] = {
   426		{ .index = DT_QUSB4PHY_0_GCC_USB4_RX0_CLK },
   427		{ .index = DT_BI_TCXO },
   428	};
   429	
 > 430	static const struct parent_map gcc_parent_map_18[] = {
   431		{ P_QUSB4PHY_0_GCC_USB4_RX1_CLK, 0 },
   432		{ P_BI_TCXO, 2 },
   433	};
   434	
   435	static const struct clk_parent_data gcc_parent_data_18[] = {
   436		{ .index = DT_QUSB4PHY_0_GCC_USB4_RX1_CLK },
   437		{ .index = DT_BI_TCXO },
   438	};
   439	
 > 440	static const struct parent_map gcc_parent_map_19[] = {
   441		{ P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
   442		{ P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
   443	};
   444	
   445	static const struct clk_parent_data gcc_parent_data_19[] = {
   446		{ .index = DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC },
   447		{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
   448	};
   449	
 > 450	static const struct parent_map gcc_parent_map_20[] = {
   451		{ P_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC, 0 },
   452		{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
   453	};
   454	
   455	static const struct clk_parent_data gcc_parent_data_20[] = {
   456		{ .index = DT_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC },
   457		{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
   458	};
   459	
 > 460	static const struct parent_map gcc_parent_map_21[] = {
   461		{ P_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC, 0 },
   462		{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
   463	};
   464	
   465	static const struct clk_parent_data gcc_parent_data_21[] = {
   466		{ .index = DT_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC },
   467		{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
   468	};
   469	
 > 470	static const struct parent_map gcc_parent_map_22[] = {
   471		{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
   472		{ P_BI_TCXO, 2 },
   473	};
   474	
   475	static const struct clk_parent_data gcc_parent_data_22[] = {
   476		{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
   477		{ .index = DT_BI_TCXO },
   478	};
   479	
 > 480	static const struct parent_map gcc_parent_map_23[] = {
   481		{ P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
   482		{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
   483	};
   484	
   485	static const struct clk_parent_data gcc_parent_data_23[] = {
   486		{ .index = DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC },
   487		{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
   488	};
   489	
 > 490	static const struct parent_map gcc_parent_map_24[] = {
   491		{ P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 },
   492		{ P_BI_TCXO, 2 },
   493	};
   494	
   495	static const struct clk_parent_data gcc_parent_data_24[] = {
   496		{ .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK },
   497		{ .index = DT_BI_TCXO },
   498	};
   499	
 > 500	static const struct parent_map gcc_parent_map_25[] = {
   501		{ P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 },
   502		{ P_BI_TCXO, 2 },
   503	};
   504	
   505	static const struct clk_parent_data gcc_parent_data_25[] = {
   506		{ .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK },
   507		{ .index = DT_BI_TCXO },
   508	};
   509	
 > 510	static const struct parent_map gcc_parent_map_26[] = {
   511		{ P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
   512		{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
   513	};
   514	
   515	static const struct clk_parent_data gcc_parent_data_26[] = {
   516		{ .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
   517		{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
   518	};
   519	
 > 520	static const struct parent_map gcc_parent_map_27[] = {
   521		{ P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC, 0 },
   522		{ P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
   523	};
   524	
   525	static const struct clk_parent_data gcc_parent_data_27[] = {
   526		{ .index = DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC },
   527		{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
   528	};
   529	
 > 530	static const struct parent_map gcc_parent_map_28[] = {
   531		{ P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC, 0 },
   532		{ P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
   533	};
   534	
   535	static const struct clk_parent_data gcc_parent_data_28[] = {
   536		{ .index = DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC },
   537		{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
   538	};
   539	
 > 540	static const struct parent_map gcc_parent_map_29[] = {
   541		{ P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
   542		{ P_BI_TCXO, 2 },
   543	};
   544	
   545	static const struct clk_parent_data gcc_parent_data_29[] = {
   546		{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
   547		{ .index = DT_BI_TCXO },
   548	};
   549	
 > 550	static const struct parent_map gcc_parent_map_30[] = {
   551		{ P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
   552		{ P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
   553	};
   554	
   555	static const struct clk_parent_data gcc_parent_data_30[] = {
   556		{ .index = DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC },
   557		{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
   558	};
   559	
 > 560	static const struct parent_map gcc_parent_map_31[] = {
   561		{ P_QUSB4PHY_2_GCC_USB4_RX0_CLK, 0 },
   562		{ P_BI_TCXO, 2 },
   563	};
   564	
   565	static const struct clk_parent_data gcc_parent_data_31[] = {
   566		{ .index = DT_QUSB4PHY_2_GCC_USB4_RX0_CLK },
   567		{ .index = DT_BI_TCXO },
   568	};
   569	
 > 570	static const struct parent_map gcc_parent_map_32[] = {
   571		{ P_QUSB4PHY_2_GCC_USB4_RX1_CLK, 0 },
   572		{ P_BI_TCXO, 2 },
   573	};
   574	
   575	static const struct clk_parent_data gcc_parent_data_32[] = {
   576		{ .index = DT_QUSB4PHY_2_GCC_USB4_RX1_CLK },
   577		{ .index = DT_BI_TCXO },
   578	};
   579	
 > 580	static const struct parent_map gcc_parent_map_33[] = {
   581		{ P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
   582		{ P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
   583	};
   584	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Re: [PATCH 2/3] clk: qcom: gcc-x1e80100: 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>
> 
> Currently, some of the USB4 clocks/resets are described, but not all
> of the back-end muxes are present. Configuring them properly is
> necessary for proper operation of the hardware.
> 
> Add all the resets & muxes and wire up any unaccounted USB4 clock paths.
> 
> Fixes: 161b7c401f4b ("clk: qcom: Add Global Clock controller (GCC) driver for X1E80100")
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
>   drivers/clk/qcom/gcc-x1e80100.c | 803 +++++++++++++++++++++++++++++++++++++++-
>   1 file changed, 786 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/clk/qcom/gcc-x1e80100.c b/drivers/clk/qcom/gcc-x1e80100.c
> index 301fc9fc32d8e6e1ddf59c1d3350d84f6c06e4b6..1f866fb4a53ad4cca51d586e92aa96acab58ef0b 100644
> --- a/drivers/clk/qcom/gcc-x1e80100.c
> +++ b/drivers/clk/qcom/gcc-x1e80100.c
> @@ -32,6 +32,33 @@ enum {
>   	DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE,
>   	DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE,
>   	DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE,
> +	DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC,
> +	DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC,
> +	DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC,
> +	DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC,
> +	DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC,
> +	DT_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC,
> +	DT_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC,
> +	DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
> +	DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
> +	DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
> +	DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC,
> +	DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC,
> +	DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC,
> +	DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC,
> +	DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC,
> +	DT_QUSB4PHY_0_GCC_USB4_RX0_CLK,
> +	DT_QUSB4PHY_0_GCC_USB4_RX1_CLK,
> +	DT_QUSB4PHY_1_GCC_USB4_RX0_CLK,
> +	DT_QUSB4PHY_1_GCC_USB4_RX1_CLK,
> +	DT_QUSB4PHY_2_GCC_USB4_RX0_CLK,
> +	DT_QUSB4PHY_2_GCC_USB4_RX1_CLK,
> +	DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK,
> +	DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
> +	DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
> +	DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
> +	DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK,
> +	DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
>   };
>   
>   enum {
> @@ -42,10 +69,40 @@ enum {
>   	P_GCC_GPLL7_OUT_MAIN,
>   	P_GCC_GPLL8_OUT_MAIN,
>   	P_GCC_GPLL9_OUT_MAIN,
> +	P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC,
> +	P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC,
> +	P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC,
> +	P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC,
> +	P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC,
> +	P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC,
> +	P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC,
> +	P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC,
> +	P_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC,
> +	P_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC,
> +	P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
> +	P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
> +	P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
> +	P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC,
> +	P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC,
> +	P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC,
> +	P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC,
> +	P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC,
> +	P_QUSB4PHY_0_GCC_USB4_RX0_CLK,
> +	P_QUSB4PHY_0_GCC_USB4_RX1_CLK,
> +	P_QUSB4PHY_1_GCC_USB4_RX0_CLK,
> +	P_QUSB4PHY_1_GCC_USB4_RX1_CLK,
> +	P_QUSB4PHY_2_GCC_USB4_RX0_CLK,
> +	P_QUSB4PHY_2_GCC_USB4_RX1_CLK,
>   	P_SLEEP_CLK,
>   	P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK,
>   	P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK,
>   	P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK,
> +	P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK,
> +	P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
> +	P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
> +	P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
> +	P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK,
> +	P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
>   };
>   
>   static struct clk_alpha_pll gcc_gpll0 = {
> @@ -320,6 +377,447 @@ static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
>   	{ }
>   };
>   
> +static const struct parent_map gcc_parent_map_13[] = {
> +	{ P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC, 0 },
> +	{ P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_13[] = {
> +	{ .index = DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC },
> +	{ .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_14[] = {
> +	{ P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC, 0 },
> +	{ P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_14[] = {
> +	{ .index = DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC },
> +	{ .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_15[] = {
> +	{ P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
> +	{ P_BI_TCXO, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_15[] = {
> +	{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
> +	{ .index = DT_BI_TCXO },
> +};
> +
> +static const struct parent_map gcc_parent_map_16[] = {
> +	{ P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
> +	{ P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_16[] = {
> +	{ .index = DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC },
> +	{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_17[] = {
> +	{ P_QUSB4PHY_0_GCC_USB4_RX0_CLK, 0 },
> +	{ P_BI_TCXO, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_17[] = {
> +	{ .index = DT_QUSB4PHY_0_GCC_USB4_RX0_CLK },
> +	{ .index = DT_BI_TCXO },
> +};
> +
> +static const struct parent_map gcc_parent_map_18[] = {
> +	{ P_QUSB4PHY_0_GCC_USB4_RX1_CLK, 0 },
> +	{ P_BI_TCXO, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_18[] = {
> +	{ .index = DT_QUSB4PHY_0_GCC_USB4_RX1_CLK },
> +	{ .index = DT_BI_TCXO },
> +};
> +
> +static const struct parent_map gcc_parent_map_19[] = {
> +	{ P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
> +	{ P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_19[] = {
> +	{ .index = DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC },
> +	{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_20[] = {
> +	{ P_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC, 0 },
> +	{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_20[] = {
> +	{ .index = DT_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC },
> +	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_21[] = {
> +	{ P_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC, 0 },
> +	{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_21[] = {
> +	{ .index = DT_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC },
> +	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_22[] = {
> +	{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
> +	{ P_BI_TCXO, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_22[] = {
> +	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
> +	{ .index = DT_BI_TCXO },
> +};
> +
> +static const struct parent_map gcc_parent_map_23[] = {
> +	{ P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
> +	{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_23[] = {
> +	{ .index = DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC },
> +	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_24[] = {
> +	{ P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 },
> +	{ P_BI_TCXO, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_24[] = {
> +	{ .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK },
> +	{ .index = DT_BI_TCXO },
> +};
> +
> +static const struct parent_map gcc_parent_map_25[] = {
> +	{ P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 },
> +	{ P_BI_TCXO, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_25[] = {
> +	{ .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK },
> +	{ .index = DT_BI_TCXO },
> +};
> +
> +static const struct parent_map gcc_parent_map_26[] = {
> +	{ P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
> +	{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_26[] = {
> +	{ .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
> +	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_27[] = {
> +	{ P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC, 0 },
> +	{ P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_27[] = {
> +	{ .index = DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC },
> +	{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_28[] = {
> +	{ P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC, 0 },
> +	{ P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_28[] = {
> +	{ .index = DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC },
> +	{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_29[] = {
> +	{ P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
> +	{ P_BI_TCXO, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_29[] = {
> +	{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
> +	{ .index = DT_BI_TCXO },
> +};
> +
> +static const struct parent_map gcc_parent_map_30[] = {
> +	{ P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
> +	{ P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_30[] = {
> +	{ .index = DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC },
> +	{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
> +};
> +
> +static const struct parent_map gcc_parent_map_31[] = {
> +	{ P_QUSB4PHY_2_GCC_USB4_RX0_CLK, 0 },
> +	{ P_BI_TCXO, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_31[] = {
> +	{ .index = DT_QUSB4PHY_2_GCC_USB4_RX0_CLK },
> +	{ .index = DT_BI_TCXO },
> +};
> +
> +static const struct parent_map gcc_parent_map_32[] = {
> +	{ P_QUSB4PHY_2_GCC_USB4_RX1_CLK, 0 },
> +	{ P_BI_TCXO, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_32[] = {
> +	{ .index = DT_QUSB4PHY_2_GCC_USB4_RX1_CLK },
> +	{ .index = DT_BI_TCXO },
> +};
> +
> +static const struct parent_map gcc_parent_map_33[] = {
> +	{ P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
> +	{ P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_33[] = {
> +	{ .index = DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC },
> +	{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_0_phy_dp0_clk_src = {
> +	.reg = 0x9f06c,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_0_phy_dp0_clk_src",
> +			.parent_data = gcc_parent_data_13,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_0_phy_dp1_clk_src = {
> +	.reg = 0x9f114,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_0_phy_dp1_clk_src",
> +			.parent_data = gcc_parent_data_14,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_0_phy_p2rr2p_pipe_clk_src = {
> +	.reg = 0x9f0d4,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_0_phy_p2rr2p_pipe_clk_src",
> +			.parent_data = gcc_parent_data_15,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_0_phy_pcie_pipe_mux_clk_src = {
> +	.reg = 0x9f104,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_0_phy_pcie_pipe_mux_clk_src",
> +			.parent_data = gcc_parent_data_16,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_0_phy_rx0_clk_src = {
> +	.reg = 0x9f0ac,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_0_phy_rx0_clk_src",
> +			.parent_data = gcc_parent_data_17,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_0_phy_rx1_clk_src = {
> +	.reg = 0x9f0bc,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_0_phy_rx1_clk_src",
> +			.parent_data = gcc_parent_data_18,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_0_phy_sys_clk_src = {
> +	.reg = 0x9f0e4,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_0_phy_sys_clk_src",
> +			.parent_data = gcc_parent_data_19,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_1_phy_dp0_clk_src = {
> +	.reg = 0x2b06c,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_1_phy_dp0_clk_src",
> +			.parent_data = gcc_parent_data_20,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_1_phy_dp1_clk_src = {
> +	.reg = 0x2b114,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_1_phy_dp1_clk_src",
> +			.parent_data = gcc_parent_data_21,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = {
> +	.reg = 0x2b0d4,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_1_phy_p2rr2p_pipe_clk_src",
> +			.parent_data = gcc_parent_data_22,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = {
> +	.reg = 0x2b104,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_1_phy_pcie_pipe_mux_clk_src",
> +			.parent_data = gcc_parent_data_23,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_1_phy_rx0_clk_src = {
> +	.reg = 0x2b0ac,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_1_phy_rx0_clk_src",
> +			.parent_data = gcc_parent_data_24,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_1_phy_rx1_clk_src = {
> +	.reg = 0x2b0bc,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_1_phy_rx1_clk_src",
> +			.parent_data = gcc_parent_data_25,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_1_phy_sys_clk_src = {
> +	.reg = 0x2b0e4,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_1_phy_sys_clk_src",
> +			.parent_data = gcc_parent_data_26,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_2_phy_dp0_clk_src = {
> +	.reg = 0x1106c,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_2_phy_dp0_clk_src",
> +			.parent_data = gcc_parent_data_27,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_2_phy_dp1_clk_src = {
> +	.reg = 0x11114,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_2_phy_dp1_clk_src",
> +			.parent_data = gcc_parent_data_28,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_2_phy_p2rr2p_pipe_clk_src = {
> +	.reg = 0x110d4,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_2_phy_p2rr2p_pipe_clk_src",
> +			.parent_data = gcc_parent_data_29,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_2_phy_pcie_pipe_mux_clk_src = {
> +	.reg = 0x11104,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_2_phy_pcie_pipe_mux_clk_src",
> +			.parent_data = gcc_parent_data_30,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_2_phy_rx0_clk_src = {
> +	.reg = 0x110ac,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_2_phy_rx0_clk_src",
> +			.parent_data = gcc_parent_data_31,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_2_phy_rx1_clk_src = {
> +	.reg = 0x110bc,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_2_phy_rx1_clk_src",
> +			.parent_data = gcc_parent_data_32,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
> +static struct clk_regmap_phy_mux gcc_usb4_2_phy_sys_clk_src = {
> +	.reg = 0x110e4,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb4_2_phy_sys_clk_src",
> +			.parent_data = gcc_parent_data_33,
> +			.ops = &clk_regmap_phy_mux_ops,
> +		},
> +	},
> +};
> +
>   static struct clk_rcg2 gcc_gp1_clk_src = {
>   	.cmd_rcgr = 0x64004,
>   	.mnd_width = 16,
> @@ -2790,6 +3288,11 @@ static struct clk_branch gcc_pcie_0_pipe_clk = {
>   		.enable_mask = BIT(25),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_pcie_0_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -2879,6 +3382,11 @@ static struct clk_branch gcc_pcie_1_pipe_clk = {
>   		.enable_mask = BIT(30),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_pcie_1_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -2968,6 +3476,11 @@ static struct clk_branch gcc_pcie_2_pipe_clk = {
>   		.enable_mask = BIT(23),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_pcie_2_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5156,6 +5669,33 @@ static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
>   	},
>   };
>   
> +static const struct parent_map gcc_parent_map_34[] = {
> +	{ P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 0 },
> +	{ P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
> +	{ P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC, 3 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_34[] = {
> +	{ .hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw },
> +	{ .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
> +	{ .index = DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC },
> +};
> +
> +static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = {
> +	.reg = 0x39070,
> +	.shift = 0,
> +	.width = 2,
> +	.parent_map = gcc_parent_map_34,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb34_prim_phy_pipe_clk_src",
> +			.parent_data = gcc_parent_data_34,
> +			.num_parents = ARRAY_SIZE(gcc_parent_data_34),
> +			.ops = &clk_regmap_mux_closest_ops,
> +		},
> +	},
> +};
> +
>   static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
>   	.halt_reg = 0x39068,
>   	.halt_check = BRANCH_HALT_SKIP,
> @@ -5167,7 +5707,7 @@ static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb3_prim_phy_pipe_clk",
>   			.parent_hws = (const struct clk_hw*[]) {
> -				&gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
> +				&gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
>   			},
>   			.num_parents = 1,
>   			.flags = CLK_SET_RATE_PARENT,
> @@ -5227,6 +5767,33 @@ static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
>   	},
>   };
>   
> +static const struct parent_map gcc_parent_map_35[] = {
> +	{ P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 0 },
> +	{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
> +	{ P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 3 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_35[] = {
> +	{ .hw = &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw },
> +	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
> +	{ .index = DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC },
> +};
> +
> +static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = {
> +	.reg = 0xa1070,
> +	.shift = 0,
> +	.width = 2,
> +	.parent_map = gcc_parent_map_35,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb34_sec_phy_pipe_clk_src",
> +			.parent_data = gcc_parent_data_35,
> +			.num_parents = ARRAY_SIZE(gcc_parent_data_35),
> +			.ops = &clk_regmap_mux_closest_ops,
> +		},
> +	},
> +};
> +
>   static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
>   	.halt_reg = 0xa1068,
>   	.halt_check = BRANCH_HALT_SKIP,
> @@ -5238,7 +5805,7 @@ static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb3_sec_phy_pipe_clk",
>   			.parent_hws = (const struct clk_hw*[]) {
> -				&gcc_usb3_sec_phy_pipe_clk_src.clkr.hw,
> +				&gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
>   			},
>   			.num_parents = 1,
>   			.flags = CLK_SET_RATE_PARENT,
> @@ -5298,6 +5865,33 @@ static struct clk_regmap_mux gcc_usb3_tert_phy_pipe_clk_src = {
>   	},
>   };
>   
> +static const struct parent_map gcc_parent_map_36[] = {
> +	{ P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC, 0 },
> +	{ P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
> +	{ P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC, 3 },
> +};
> +
> +static const struct clk_parent_data gcc_parent_data_36[] = {
> +	{ .hw = &gcc_usb3_tert_phy_pipe_clk_src.clkr.hw },
> +	{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
> +	{ .index = DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC },
> +};
> +
> +static struct clk_regmap_mux gcc_usb34_tert_phy_pipe_clk_src = {
> +	.reg = 0xa2070,
> +	.shift = 0,
> +	.width = 2,
> +	.parent_map = gcc_parent_map_36,
> +	.clkr = {
> +		.hw.init = &(const struct clk_init_data) {
> +			.name = "gcc_usb34_tert_phy_pipe_clk_src",
> +			.parent_data = gcc_parent_data_36,
> +			.num_parents = ARRAY_SIZE(gcc_parent_data_36),
> +			.ops = &clk_regmap_mux_closest_ops,
> +		},
> +	},
> +};
> +
>   static struct clk_branch gcc_usb3_tert_phy_pipe_clk = {
>   	.halt_reg = 0xa2068,
>   	.halt_check = BRANCH_HALT_SKIP,
> @@ -5309,7 +5903,7 @@ static struct clk_branch gcc_usb3_tert_phy_pipe_clk = {
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb3_tert_phy_pipe_clk",
>   			.parent_hws = (const struct clk_hw*[]) {
> -				&gcc_usb3_tert_phy_pipe_clk_src.clkr.hw,
> +				&gcc_usb34_tert_phy_pipe_clk_src.clkr.hw,
>   			},
>   			.num_parents = 1,
>   			.flags = CLK_SET_RATE_PARENT,
> @@ -5335,12 +5929,17 @@ static struct clk_branch gcc_usb4_0_cfg_ahb_clk = {
>   
>   static struct clk_branch gcc_usb4_0_dp0_clk = {
>   	.halt_reg = 0x9f060,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x9f060,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_0_dp0_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_0_phy_dp0_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5348,12 +5947,17 @@ static struct clk_branch gcc_usb4_0_dp0_clk = {
>   
>   static struct clk_branch gcc_usb4_0_dp1_clk = {
>   	.halt_reg = 0x9f108,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x9f108,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_0_dp1_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_0_phy_dp1_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5385,6 +5989,11 @@ static struct clk_branch gcc_usb4_0_phy_p2rr2p_pipe_clk = {
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_0_phy_p2rr2p_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5398,6 +6007,11 @@ static struct clk_branch gcc_usb4_0_phy_pcie_pipe_clk = {
>   		.enable_mask = BIT(19),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_0_phy_pcie_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5405,12 +6019,17 @@ static struct clk_branch gcc_usb4_0_phy_pcie_pipe_clk = {
>   
>   static struct clk_branch gcc_usb4_0_phy_rx0_clk = {
>   	.halt_reg = 0x9f0b0,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x9f0b0,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_0_phy_rx0_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_0_phy_rx0_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5418,12 +6037,17 @@ static struct clk_branch gcc_usb4_0_phy_rx0_clk = {
>   
>   static struct clk_branch gcc_usb4_0_phy_rx1_clk = {
>   	.halt_reg = 0x9f0c0,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x9f0c0,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_0_phy_rx1_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_0_phy_rx1_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5439,6 +6063,11 @@ static struct clk_branch gcc_usb4_0_phy_usb_pipe_clk = {
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_0_phy_usb_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5470,6 +6099,11 @@ static struct clk_branch gcc_usb4_0_sys_clk = {
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_0_sys_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_0_phy_sys_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5512,12 +6146,17 @@ static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
>   
>   static struct clk_branch gcc_usb4_1_dp0_clk = {
>   	.halt_reg = 0x2b060,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x2b060,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_1_dp0_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_1_phy_dp0_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5525,12 +6164,17 @@ static struct clk_branch gcc_usb4_1_dp0_clk = {
>   
>   static struct clk_branch gcc_usb4_1_dp1_clk = {
>   	.halt_reg = 0x2b108,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x2b108,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_1_dp1_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_1_phy_dp1_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5562,6 +6206,11 @@ static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5575,6 +6224,11 @@ static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_1_phy_pcie_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5582,12 +6236,17 @@ static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
>   
>   static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
>   	.halt_reg = 0x2b0b0,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x2b0b0,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_1_phy_rx0_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_1_phy_rx0_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5595,12 +6254,17 @@ static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
>   
>   static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
>   	.halt_reg = 0x2b0c0,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x2b0c0,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_1_phy_rx1_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_1_phy_rx1_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5616,6 +6280,11 @@ static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_1_phy_usb_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5647,6 +6316,11 @@ static struct clk_branch gcc_usb4_1_sys_clk = {
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_1_sys_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_1_phy_sys_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5689,12 +6363,17 @@ static struct clk_branch gcc_usb4_2_cfg_ahb_clk = {
>   
>   static struct clk_branch gcc_usb4_2_dp0_clk = {
>   	.halt_reg = 0x11060,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x11060,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_2_dp0_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_2_phy_dp0_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5702,12 +6381,17 @@ static struct clk_branch gcc_usb4_2_dp0_clk = {
>   
>   static struct clk_branch gcc_usb4_2_dp1_clk = {
>   	.halt_reg = 0x11108,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x11108,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_2_dp1_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_2_phy_dp1_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5739,6 +6423,11 @@ static struct clk_branch gcc_usb4_2_phy_p2rr2p_pipe_clk = {
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_2_phy_p2rr2p_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5752,6 +6441,11 @@ static struct clk_branch gcc_usb4_2_phy_pcie_pipe_clk = {
>   		.enable_mask = BIT(1),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_2_phy_pcie_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5759,12 +6453,17 @@ static struct clk_branch gcc_usb4_2_phy_pcie_pipe_clk = {
>   
>   static struct clk_branch gcc_usb4_2_phy_rx0_clk = {
>   	.halt_reg = 0x110b0,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x110b0,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_2_phy_rx0_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_2_phy_rx0_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5772,12 +6471,17 @@ static struct clk_branch gcc_usb4_2_phy_rx0_clk = {
>   
>   static struct clk_branch gcc_usb4_2_phy_rx1_clk = {
>   	.halt_reg = 0x110c0,
> -	.halt_check = BRANCH_HALT,
> +	.halt_check = BRANCH_HALT_SKIP,
>   	.clkr = {
>   		.enable_reg = 0x110c0,
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_2_phy_rx1_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb4_2_phy_rx1_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -5793,6 +6497,11 @@ static struct clk_branch gcc_usb4_2_phy_usb_pipe_clk = {
>   		.enable_mask = BIT(0),
>   		.hw.init = &(const struct clk_init_data) {
>   			.name = "gcc_usb4_2_phy_usb_pipe_clk",
> +			.parent_hws = (const struct clk_hw*[]) {
> +				&gcc_usb34_tert_phy_pipe_clk_src.clkr.hw,
> +			},
> +			.num_parents = 1,
> +			.flags = CLK_SET_RATE_PARENT,
>   			.ops = &clk_branch2_ops,
>   		},
>   	},
> @@ -6483,6 +7192,9 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = {
>   	[GCC_USB30_TERT_MOCK_UTMI_CLK_SRC] = &gcc_usb30_tert_mock_utmi_clk_src.clkr,
>   	[GCC_USB30_TERT_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr,
>   	[GCC_USB30_TERT_SLEEP_CLK] = &gcc_usb30_tert_sleep_clk.clkr,
> +	[GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr,
> +	[GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr,
> +	[GCC_USB34_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb34_tert_phy_pipe_clk_src.clkr,
>   	[GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
>   	[GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
>   	[GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
> @@ -6508,11 +7220,18 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = {
>   	[GCC_USB4_0_DP1_CLK] = &gcc_usb4_0_dp1_clk.clkr,
>   	[GCC_USB4_0_MASTER_CLK] = &gcc_usb4_0_master_clk.clkr,
>   	[GCC_USB4_0_MASTER_CLK_SRC] = &gcc_usb4_0_master_clk_src.clkr,
> +	[GCC_USB4_0_PHY_DP0_CLK_SRC] = &gcc_usb4_0_phy_dp0_clk_src.clkr,
> +	[GCC_USB4_0_PHY_DP1_CLK_SRC] = &gcc_usb4_0_phy_dp1_clk_src.clkr,
>   	[GCC_USB4_0_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_0_phy_p2rr2p_pipe_clk.clkr,
> +	[GCC_USB4_0_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr,
>   	[GCC_USB4_0_PHY_PCIE_PIPE_CLK] = &gcc_usb4_0_phy_pcie_pipe_clk.clkr,
>   	[GCC_USB4_0_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_clk_src.clkr,
> +	[GCC_USB4_0_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr,
>   	[GCC_USB4_0_PHY_RX0_CLK] = &gcc_usb4_0_phy_rx0_clk.clkr,
> +	[GCC_USB4_0_PHY_RX0_CLK_SRC] = &gcc_usb4_0_phy_rx0_clk_src.clkr,
>   	[GCC_USB4_0_PHY_RX1_CLK] = &gcc_usb4_0_phy_rx1_clk.clkr,
> +	[GCC_USB4_0_PHY_RX1_CLK_SRC] = &gcc_usb4_0_phy_rx1_clk_src.clkr,
> +	[GCC_USB4_0_PHY_SYS_CLK_SRC] = &gcc_usb4_0_phy_sys_clk_src.clkr,
>   	[GCC_USB4_0_PHY_USB_PIPE_CLK] = &gcc_usb4_0_phy_usb_pipe_clk.clkr,
>   	[GCC_USB4_0_SB_IF_CLK] = &gcc_usb4_0_sb_if_clk.clkr,
>   	[GCC_USB4_0_SB_IF_CLK_SRC] = &gcc_usb4_0_sb_if_clk_src.clkr,
> @@ -6524,11 +7243,18 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = {
>   	[GCC_USB4_1_DP1_CLK] = &gcc_usb4_1_dp1_clk.clkr,
>   	[GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
>   	[GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
> +	[GCC_USB4_1_PHY_DP0_CLK_SRC] = &gcc_usb4_1_phy_dp0_clk_src.clkr,
> +	[GCC_USB4_1_PHY_DP1_CLK_SRC] = &gcc_usb4_1_phy_dp1_clk_src.clkr,
>   	[GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
> +	[GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr,
>   	[GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
>   	[GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
> +	[GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr,
>   	[GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
> +	[GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr,
>   	[GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
> +	[GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr,
> +	[GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr,
>   	[GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
>   	[GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
>   	[GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
> @@ -6540,11 +7266,18 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = {
>   	[GCC_USB4_2_DP1_CLK] = &gcc_usb4_2_dp1_clk.clkr,
>   	[GCC_USB4_2_MASTER_CLK] = &gcc_usb4_2_master_clk.clkr,
>   	[GCC_USB4_2_MASTER_CLK_SRC] = &gcc_usb4_2_master_clk_src.clkr,
> +	[GCC_USB4_2_PHY_DP0_CLK_SRC] = &gcc_usb4_2_phy_dp0_clk_src.clkr,
> +	[GCC_USB4_2_PHY_DP1_CLK_SRC] = &gcc_usb4_2_phy_dp1_clk_src.clkr,
>   	[GCC_USB4_2_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_2_phy_p2rr2p_pipe_clk.clkr,
> +	[GCC_USB4_2_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr,
>   	[GCC_USB4_2_PHY_PCIE_PIPE_CLK] = &gcc_usb4_2_phy_pcie_pipe_clk.clkr,
>   	[GCC_USB4_2_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_clk_src.clkr,
> +	[GCC_USB4_2_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr,
>   	[GCC_USB4_2_PHY_RX0_CLK] = &gcc_usb4_2_phy_rx0_clk.clkr,
> +	[GCC_USB4_2_PHY_RX0_CLK_SRC] = &gcc_usb4_2_phy_rx0_clk_src.clkr,
>   	[GCC_USB4_2_PHY_RX1_CLK] = &gcc_usb4_2_phy_rx1_clk.clkr,
> +	[GCC_USB4_2_PHY_RX1_CLK_SRC] = &gcc_usb4_2_phy_rx1_clk_src.clkr,
> +	[GCC_USB4_2_PHY_SYS_CLK_SRC] = &gcc_usb4_2_phy_sys_clk_src.clkr,
>   	[GCC_USB4_2_PHY_USB_PIPE_CLK] = &gcc_usb4_2_phy_usb_pipe_clk.clkr,
>   	[GCC_USB4_2_SB_IF_CLK] = &gcc_usb4_2_sb_if_clk.clkr,
>   	[GCC_USB4_2_SB_IF_CLK_SRC] = &gcc_usb4_2_sb_if_clk_src.clkr,
> @@ -6660,16 +7393,52 @@ static const struct qcom_reset_map gcc_x1e80100_resets[] = {
>   	[GCC_USB3_UNIPHY_MP0_BCR] = { 0x19000 },
>   	[GCC_USB3_UNIPHY_MP1_BCR] = { 0x54000 },
>   	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
> +	[GCC_USB4PHY_PHY_PRIM_BCR] = { 0x5000c },
>   	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x2a004 },
> +	[GCC_USB4PHY_PHY_SEC_BCR] = { 0x2a00c },
>   	[GCC_USB3PHY_PHY_TERT_BCR] = { 0xa3004 },
> +	[GCC_USB4PHY_PHY_TERT_BCR] = { 0xa300c },
>   	[GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x19004 },
>   	[GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x54004 },
>   	[GCC_USB4_0_BCR] = { 0x9f000 },
>   	[GCC_USB4_0_DP0_PHY_PRIM_BCR] = { 0x50010 },
> -	[GCC_USB4_1_DP0_PHY_SEC_BCR] = { 0x2a010 },
> -	[GCC_USB4_2_DP0_PHY_TERT_BCR] = { 0xa3010 },
> +	[GCC_USB4_0_MISC_USB4_SYS_BCR] = { .reg = 0xad0f8, .bit = 0 },
> +	[GCC_USB4_0_MISC_RX_CLK_0_BCR] = { .reg = 0xad0f8, .bit = 1 },
> +	[GCC_USB4_0_MISC_RX_CLK_1_BCR] = { .reg = 0xad0f8, .bit = 2 },
> +	[GCC_USB4_0_MISC_USB_PIPE_BCR] = { .reg = 0xad0f8, .bit = 3 },
> +	[GCC_USB4_0_MISC_PCIE_PIPE_BCR] = { .reg = 0xad0f8, .bit = 4 },
> +	[GCC_USB4_0_MISC_TMU_BCR] = { .reg = 0xad0f8, .bit = 5 },
> +	[GCC_USB4_0_MISC_SB_IF_BCR] = { .reg = 0xad0f8, .bit = 6 },
> +	[GCC_USB4_0_MISC_HIA_MSTR_BCR] = { .reg = 0xad0f8, .bit = 7 },
> +	[GCC_USB4_0_MISC_AHB_BCR] = { .reg = 0xad0f8, .bit = 8 },
> +	[GCC_USB4_0_MISC_DP0_MAX_PCLK_BCR] = { .reg = 0xad0f8, .bit = 9 },
> +	[GCC_USB4_0_MISC_DP1_MAX_PCLK_BCR] = { .reg = 0xad0f8, .bit = 10 },
>   	[GCC_USB4_1_BCR] = { 0x2b000 },
> +	[GCC_USB4_1_DP0_PHY_SEC_BCR] = { 0x2a010 },
> +	[GCC_USB4_1_MISC_USB4_SYS_BCR] = { .reg = 0xae0f8, .bit = 0 },
> +	[GCC_USB4_1_MISC_RX_CLK_0_BCR] = { .reg = 0xae0f8, .bit = 1 },
> +	[GCC_USB4_1_MISC_RX_CLK_1_BCR] = { .reg = 0xae0f8, .bit = 2 },
> +	[GCC_USB4_1_MISC_USB_PIPE_BCR] = { .reg = 0xae0f8, .bit = 3 },
> +	[GCC_USB4_1_MISC_PCIE_PIPE_BCR] = { .reg = 0xae0f8, .bit = 4 },
> +	[GCC_USB4_1_MISC_TMU_BCR] = { .reg = 0xae0f8, .bit = 5 },
> +	[GCC_USB4_1_MISC_SB_IF_BCR] = { .reg = 0xae0f8, .bit = 6 },
> +	[GCC_USB4_1_MISC_HIA_MSTR_BCR] = { .reg = 0xae0f8, .bit = 7 },
> +	[GCC_USB4_1_MISC_AHB_BCR] = { .reg = 0xae0f8, .bit = 8 },
> +	[GCC_USB4_1_MISC_DP0_MAX_PCLK_BCR] = { .reg = 0xae0f8, .bit = 9 },
> +	[GCC_USB4_1_MISC_DP1_MAX_PCLK_BCR] = { .reg = 0xae0f8, .bit = 10 },
>   	[GCC_USB4_2_BCR] = { 0x11000 },
> +	[GCC_USB4_2_DP0_PHY_TERT_BCR] = { 0xa3010 },
> +	[GCC_USB4_2_MISC_USB4_SYS_BCR] = { .reg = 0xaf0f8, .bit = 0 },
> +	[GCC_USB4_2_MISC_RX_CLK_0_BCR] = { .reg = 0xaf0f8, .bit = 1 },
> +	[GCC_USB4_2_MISC_RX_CLK_1_BCR] = { .reg = 0xaf0f8, .bit = 2 },
> +	[GCC_USB4_2_MISC_USB_PIPE_BCR] = { .reg = 0xaf0f8, .bit = 3 },
> +	[GCC_USB4_2_MISC_PCIE_PIPE_BCR] = { .reg = 0xaf0f8, .bit = 4 },
> +	[GCC_USB4_2_MISC_TMU_BCR] = { .reg = 0xaf0f8, .bit = 5 },
> +	[GCC_USB4_2_MISC_SB_IF_BCR] = { .reg = 0xaf0f8, .bit = 6 },
> +	[GCC_USB4_2_MISC_HIA_MSTR_BCR] = { .reg = 0xaf0f8, .bit = 7 },
> +	[GCC_USB4_2_MISC_AHB_BCR] = { .reg = 0xaf0f8, .bit = 8 },
> +	[GCC_USB4_2_MISC_DP0_MAX_PCLK_BCR] = { .reg = 0xaf0f8, .bit = 9 },
> +	[GCC_USB4_2_MISC_DP1_MAX_PCLK_BCR] = { .reg = 0xaf0f8, .bit = 10 },
>   	[GCC_USB_0_PHY_BCR] = { 0x50020 },
>   	[GCC_USB_1_PHY_BCR] = { 0x2a020 },
>   	[GCC_USB_2_PHY_BCR] = { 0xa3020 },
> 

LGTM

Reviewed-by: Bryan O'Donoghue <bod@kernel.org>