/* Additional sequence for different HS Gears */
        const struct qmp_phy_cfg_tbls tbls_hs_overlay[NUM_OVERLAY];
 
-       /* clock ids to be requested */
-       const char * const *clk_list;
-       int num_clks;
        /* regulators to be requested */
        const char * const *vreg_list;
        int num_vregs;
        void __iomem *rx2;
 
        struct clk_bulk_data *clks;
+       int num_clks;
        struct regulator_bulk_data *vregs;
        struct reset_control *ufs_reset;
 
        readl(base + offset);
 }
 
-/* list of clocks required by phy */
-static const char * const msm8996_ufs_phy_clk_l[] = {
-       "ref",
-};
-
-/* the primary usb3 phy on sm8250 doesn't have a ref clock */
-static const char * const sm8450_ufs_phy_clk_l[] = {
-       "qref", "ref", "ref_aux",
-};
-
-static const char * const sdm845_ufs_phy_clk_l[] = {
-       "ref", "ref_aux",
-};
-
 /* list of regulators */
 static const char * const qmp_phy_vreg_l[] = {
        "vdda-phy", "vdda-pll",
                .rx_num         = ARRAY_SIZE(msm8996_ufsphy_rx),
        },
 
-       .clk_list               = msm8996_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(msm8996_ufs_phy_clk_l),
-
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
 
                .pcs_num        = ARRAY_SIZE(sm8350_ufsphy_g4_pcs),
                .max_gear       = UFS_HS_G4,
        },
-       .clk_list               = sm8450_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sm8450_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v5_regs_layout,
                .pcs_num        = ARRAY_SIZE(sm8150_ufsphy_hs_g4_pcs),
                .max_gear       = UFS_HS_G4,
        },
-       .clk_list               = sm8450_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sm8450_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v4_regs_layout,
                .pcs_num        = ARRAY_SIZE(sm8350_ufsphy_g4_pcs),
                .max_gear       = UFS_HS_G4,
        },
-       .clk_list               = sdm845_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sdm845_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v5_regs_layout,
                .serdes         = sdm845_ufsphy_hs_b_serdes,
                .serdes_num     = ARRAY_SIZE(sdm845_ufsphy_hs_b_serdes),
        },
-       .clk_list               = sdm845_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sdm845_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v3_regs_layout,
                .serdes         = sm6115_ufsphy_hs_b_serdes,
                .serdes_num     = ARRAY_SIZE(sm6115_ufsphy_hs_b_serdes),
        },
-       .clk_list               = sdm845_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sdm845_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v2_regs_layout,
                .serdes         = sdm845_ufsphy_hs_b_serdes,
                .serdes_num     = ARRAY_SIZE(sdm845_ufsphy_hs_b_serdes),
        },
-       .clk_list               = sdm845_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sdm845_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v3_regs_layout,
                .pcs_num        = ARRAY_SIZE(sm8150_ufsphy_hs_g4_pcs),
                .max_gear       = UFS_HS_G4,
        },
-       .clk_list               = sdm845_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sdm845_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v4_regs_layout,
                .pcs_num        = ARRAY_SIZE(sm8150_ufsphy_hs_g4_pcs),
                .max_gear       = UFS_HS_G4,
        },
-       .clk_list               = sdm845_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sdm845_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v4_regs_layout,
                .pcs_num        = ARRAY_SIZE(sm8350_ufsphy_g4_pcs),
                .max_gear       = UFS_HS_G4,
        },
-       .clk_list               = sdm845_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sdm845_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v5_regs_layout,
                .pcs_num        = ARRAY_SIZE(sm8350_ufsphy_g4_pcs),
                .max_gear       = UFS_HS_G4,
        },
-       .clk_list               = sm8450_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sm8450_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v5_regs_layout,
                .pcs_num        = ARRAY_SIZE(sm8550_ufsphy_g5_pcs),
                .max_gear       = UFS_HS_G5,
        },
-       .clk_list               = sdm845_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sdm845_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v6_regs_layout,
                .pcs            = sm8650_ufsphy_pcs,
                .pcs_num        = ARRAY_SIZE(sm8650_ufsphy_pcs),
        },
-       .clk_list               = sdm845_ufs_phy_clk_l,
-       .num_clks               = ARRAY_SIZE(sdm845_ufs_phy_clk_l),
        .vreg_list              = qmp_phy_vreg_l,
        .num_vregs              = ARRAY_SIZE(qmp_phy_vreg_l),
        .regs                   = ufsphy_v6_regs_layout,
                return ret;
        }
 
-       ret = clk_bulk_prepare_enable(cfg->num_clks, qmp->clks);
+       ret = clk_bulk_prepare_enable(qmp->num_clks, qmp->clks);
        if (ret)
                goto err_disable_regulators;
 
 
        reset_control_assert(qmp->ufs_reset);
 
-       clk_bulk_disable_unprepare(cfg->num_clks, qmp->clks);
+       clk_bulk_disable_unprepare(qmp->num_clks, qmp->clks);
 
        regulator_bulk_disable(cfg->num_vregs, qmp->vregs);
 
 
 static int qmp_ufs_clk_init(struct qmp_ufs *qmp)
 {
-       const struct qmp_phy_cfg *cfg = qmp->cfg;
        struct device *dev = qmp->dev;
-       int num = cfg->num_clks;
-       int i;
 
-       qmp->clks = devm_kcalloc(dev, num, sizeof(*qmp->clks), GFP_KERNEL);
-       if (!qmp->clks)
-               return -ENOMEM;
+       qmp->num_clks = devm_clk_bulk_get_all(dev, &qmp->clks);
+       if (qmp->num_clks < 0)
+               return qmp->num_clks;
 
-       for (i = 0; i < num; i++)
-               qmp->clks[i].id = cfg->clk_list[i];
-
-       return devm_clk_bulk_get(dev, num, qmp->clks);
+       return 0;
 }
 
 static void qmp_ufs_clk_release_provider(void *res)