.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
        .clkr.hw.init = &(struct clk_init_data){
                .name = "gpll0_out_even",
-               .parent_data = &(const struct clk_parent_data){
-                       .hw = &gpll0.clkr.hw,
+               .parent_hws = (const struct clk_hw*[]){
+                       &gpll0.clkr.hw,
                },
                .num_parents = 1,
                .ops = &clk_alpha_pll_postdiv_lucid_ops,
        .width = 4,
        .clkr.hw.init = &(struct clk_init_data) {
                .name = "gcc_cpuss_ahb_postdiv_clk_src",
-               .parent_data = &(const struct clk_parent_data){
-                       .hw = &gcc_cpuss_ahb_clk_src.clkr.hw,
+               .parent_hws = (const struct clk_hw*[]){
+                       &gcc_cpuss_ahb_clk_src.clkr.hw,
                },
                .num_parents = 1,
                .flags = CLK_SET_RATE_PARENT,
        .width = 2,
        .clkr.hw.init = &(struct clk_init_data) {
                .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
-               .parent_data = &(const struct clk_parent_data){
-                       .hw = &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
+               .parent_hws = (const struct clk_hw*[]){
+                       &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
                },
                .num_parents = 1,
                .flags = CLK_SET_RATE_PARENT,
        .width = 2,
        .clkr.hw.init = &(struct clk_init_data) {
                .name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
-               .parent_data = &(const struct clk_parent_data){
-                       .hw = &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
+               .parent_hws = (const struct clk_hw*[]){
+                       &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
                },
                .num_parents = 1,
                .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_aggre_ufs_card_axi_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_ufs_card_axi_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_ufs_card_axi_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_aggre_ufs_phy_axi_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_ufs_phy_axi_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_aggre_usb3_prim_axi_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_usb30_prim_master_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_aggre_usb3_sec_axi_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_usb30_sec_master_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_usb30_sec_master_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_cfg_noc_usb3_prim_axi_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_usb30_prim_master_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_cfg_noc_usb3_sec_axi_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_usb30_sec_master_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_usb30_sec_master_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(21),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_cpuss_ahb_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_cpuss_ahb_postdiv_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_cpuss_ahb_postdiv_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_gp1_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_gp1_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_gp1_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_gp2_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_gp2_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_gp2_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_gp3_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_gp3_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_gp3_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(15),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_gpu_gpll0_clk_src",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gpll0.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gpll0.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(16),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_gpu_gpll0_div_clk_src",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gpll0_out_even.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gpll0_out_even.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(18),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_npu_gpll0_clk_src",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gpll0.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gpll0.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(19),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_npu_gpll0_div_clk_src",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gpll0_out_even.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gpll0_out_even.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie0_phy_refgen_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_pcie_phy_refgen_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_pcie_phy_refgen_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie1_phy_refgen_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_pcie_phy_refgen_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_pcie_phy_refgen_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie2_phy_refgen_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_pcie_phy_refgen_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_pcie_phy_refgen_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(3),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_0_aux_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_pcie_0_aux_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_pcie_0_aux_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(29),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_1_aux_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_pcie_1_aux_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_pcie_1_aux_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(14),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_2_aux_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_pcie_2_aux_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_pcie_2_aux_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_phy_aux_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_pcie_0_aux_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_pcie_0_aux_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pdm2_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_pdm2_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_pdm2_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(10),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap0_s0_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(11),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap0_s1_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(12),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap0_s2_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(13),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap0_s3_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(14),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap0_s4_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(15),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap0_s5_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(16),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap0_s6_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(17),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap0_s7_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(22),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap1_s0_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(23),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap1_s1_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(24),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap1_s2_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(25),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap1_s3_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(26),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap1_s4_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(27),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap1_s5_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(4),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap2_s0_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(5),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap2_s1_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(6),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap2_s2_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(7),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap2_s3_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(8),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap2_s4_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(9),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qupv3_wrap2_s5_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_sdcc2_apps_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_sdcc2_apps_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_sdcc2_apps_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_sdcc4_apps_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_sdcc4_apps_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_sdcc4_apps_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_tsif_ref_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_tsif_ref_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_tsif_ref_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_ufs_card_axi_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_ufs_card_axi_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_ufs_card_axi_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_ufs_card_ice_core_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_ufs_card_ice_core_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_ufs_card_ice_core_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_ufs_card_phy_aux_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_ufs_card_unipro_core_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_ufs_phy_axi_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_ufs_phy_axi_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_ufs_phy_ice_core_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_ufs_phy_phy_aux_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_ufs_phy_unipro_core_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_usb30_prim_master_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_usb30_prim_master_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_usb30_sec_master_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_usb30_sec_master_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_usb30_sec_master_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_usb3_prim_phy_aux_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_usb3_prim_phy_com_aux_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_usb3_sec_phy_aux_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_usb3_sec_phy_com_aux_clk",
-                       .parent_data = &(const struct clk_parent_data){
-                               .hw = &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
+                       .parent_hws = (const struct clk_hw*[]){
+                               &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
                        },
                        .num_parents = 1,
                        .flags = CLK_SET_RATE_PARENT,