Lines Matching +full:hw +full:- +full:cal +full:- +full:b
1 // SPDX-License-Identifier: GPL-2.0
10 #include <linux/clk-provider.h>
23 #include <dt-bindings/phy/phy.h>
24 #include <dt-bindings/phy/phy-cadence.h>
293 struct clk_hw hw; member
301 container_of(_hw, struct cdns_sierra_pll_mux, hw)
323 struct clk_hw hw; member
330 container_of(_hw, struct cdns_sierra_derived_refclk, hw)
417 u32 offset = reg << ctx->reg_offset_shift; in cdns_regmap_write()
419 writew(val, ctx->base + offset); in cdns_regmap_write()
427 u32 offset = reg << ctx->reg_offset_shift; in cdns_regmap_read()
429 *val = readw(ctx->base + offset); in cdns_regmap_read()
544 struct cdns_sierra_phy *phy = dev_get_drvdata(gphy->dev.parent); in cdns_sierra_phy_init()
545 const struct cdns_sierra_data *init_data = phy->init_data; in cdns_sierra_phy_init()
547 enum cdns_sierra_phy_type phy_type = ins->phy_type; in cdns_sierra_phy_init()
549 enum cdns_sierra_ssc_mode ssc = ins->ssc_mode; in cdns_sierra_phy_init()
557 if (phy->autoconf || phy->already_configured || phy->nsubnodes > 1) in cdns_sierra_phy_init()
560 clk_set_rate(phy->input_clks[CMN_REFCLK_DIG_DIV], 25000000); in cdns_sierra_phy_init()
561 clk_set_rate(phy->input_clks[CMN_REFCLK1_DIG_DIV], 25000000); in cdns_sierra_phy_init()
564 pcs_cmn_vals = init_data->pcs_cmn_vals[phy_type][TYPE_NONE][ssc]; in cdns_sierra_phy_init()
566 reg_pairs = pcs_cmn_vals->reg_pairs; in cdns_sierra_phy_init()
567 num_regs = pcs_cmn_vals->num_regs; in cdns_sierra_phy_init()
568 regmap = phy->regmap_phy_pcs_common_cdb; in cdns_sierra_phy_init()
574 phy_pma_ln_vals = init_data->phy_pma_ln_vals[phy_type][TYPE_NONE][ssc]; in cdns_sierra_phy_init()
576 reg_pairs = phy_pma_ln_vals->reg_pairs; in cdns_sierra_phy_init()
577 num_regs = phy_pma_ln_vals->num_regs; in cdns_sierra_phy_init()
578 for (i = 0; i < ins->num_lanes; i++) { in cdns_sierra_phy_init()
579 regmap = phy->regmap_phy_pma_lane_cdb[i + ins->mlane]; in cdns_sierra_phy_init()
586 pma_cmn_vals = init_data->pma_cmn_vals[phy_type][TYPE_NONE][ssc]; in cdns_sierra_phy_init()
588 reg_pairs = pma_cmn_vals->reg_pairs; in cdns_sierra_phy_init()
589 num_regs = pma_cmn_vals->num_regs; in cdns_sierra_phy_init()
590 regmap = phy->regmap_common_cdb; in cdns_sierra_phy_init()
596 pma_ln_vals = init_data->pma_ln_vals[phy_type][TYPE_NONE][ssc]; in cdns_sierra_phy_init()
598 reg_pairs = pma_ln_vals->reg_pairs; in cdns_sierra_phy_init()
599 num_regs = pma_ln_vals->num_regs; in cdns_sierra_phy_init()
600 for (i = 0; i < ins->num_lanes; i++) { in cdns_sierra_phy_init()
601 regmap = phy->regmap_lane_cdb[i + ins->mlane]; in cdns_sierra_phy_init()
612 struct cdns_sierra_phy *sp = dev_get_drvdata(gphy->dev.parent); in cdns_sierra_phy_on()
614 struct device *dev = sp->dev; in cdns_sierra_phy_on()
618 if (sp->nsubnodes == 1) { in cdns_sierra_phy_on()
620 ret = reset_control_deassert(sp->phy_rst); in cdns_sierra_phy_on()
628 ret = reset_control_deassert(ins->lnk_rst); in cdns_sierra_phy_on()
634 if (ins->phy_type == TYPE_PCIE || ins->phy_type == TYPE_USB) { in cdns_sierra_phy_on()
635 ret = regmap_field_read_poll_timeout(sp->phy_iso_link_ctrl_1[ins->mlane], in cdns_sierra_phy_on()
647 ret = regmap_field_read_poll_timeout(sp->pma_cmn_ready, val, val, in cdns_sierra_phy_on()
654 ret = regmap_field_read_poll_timeout(sp->pllctrl_lock[ins->mlane], in cdns_sierra_phy_on()
666 return reset_control_assert(ins->lnk_rst); in cdns_sierra_phy_off()
671 struct cdns_sierra_phy *sp = dev_get_drvdata(gphy->dev.parent); in cdns_sierra_phy_reset()
673 reset_control_assert(sp->phy_rst); in cdns_sierra_phy_reset()
674 reset_control_deassert(sp->phy_rst); in cdns_sierra_phy_reset()
698 static u8 cdns_sierra_pll_mux_get_parent(struct clk_hw *hw) in cdns_sierra_pll_mux_get_parent() argument
700 struct cdns_sierra_pll_mux *mux = to_cdns_sierra_pll_mux(hw); in cdns_sierra_pll_mux_get_parent()
701 struct regmap_field *plllc1en_field = mux->plllc1en_field; in cdns_sierra_pll_mux_get_parent()
702 struct regmap_field *termen_field = mux->termen_field; in cdns_sierra_pll_mux_get_parent()
703 struct regmap_field *field = mux->pfdclk_sel_preg; in cdns_sierra_pll_mux_get_parent()
709 if (strstr(clk_hw_get_name(hw), clk_names[CDNS_SIERRA_PLL_CMNLC1])) { in cdns_sierra_pll_mux_get_parent()
710 index = clk_mux_val_to_index(hw, cdns_sierra_pll_mux_table[CMN_PLLLC1], 0, val); in cdns_sierra_pll_mux_get_parent()
716 index = clk_mux_val_to_index(hw, cdns_sierra_pll_mux_table[CMN_PLLLC], 0, val); in cdns_sierra_pll_mux_get_parent()
722 static int cdns_sierra_pll_mux_set_parent(struct clk_hw *hw, u8 index) in cdns_sierra_pll_mux_set_parent() argument
724 struct cdns_sierra_pll_mux *mux = to_cdns_sierra_pll_mux(hw); in cdns_sierra_pll_mux_set_parent()
725 struct regmap_field *plllc1en_field = mux->plllc1en_field; in cdns_sierra_pll_mux_set_parent()
726 struct regmap_field *termen_field = mux->termen_field; in cdns_sierra_pll_mux_set_parent()
727 struct regmap_field *field = mux->pfdclk_sel_preg; in cdns_sierra_pll_mux_set_parent()
737 if (strstr(clk_hw_get_name(hw), clk_names[CDNS_SIERRA_PLL_CMNLC1])) in cdns_sierra_pll_mux_set_parent()
760 struct device *dev = sp->dev; in cdns_sierra_pll_mux_register()
767 return -ENOMEM; in cdns_sierra_pll_mux_register()
771 init = &mux->clk_data; in cdns_sierra_pll_mux_register()
773 init->ops = &cdns_sierra_pll_mux_ops; in cdns_sierra_pll_mux_register()
774 init->flags = CLK_SET_RATE_NO_REPARENT; in cdns_sierra_pll_mux_register()
775 init->parent_data = pll_mux_parent_data[clk_index]; in cdns_sierra_pll_mux_register()
776 init->num_parents = SIERRA_NUM_CMN_PLLC_PARENTS; in cdns_sierra_pll_mux_register()
777 init->name = clk_name; in cdns_sierra_pll_mux_register()
779 mux->pfdclk_sel_preg = pfdclk1_sel_field; in cdns_sierra_pll_mux_register()
780 mux->plllc1en_field = plllc1en_field; in cdns_sierra_pll_mux_register()
781 mux->termen_field = termen_field; in cdns_sierra_pll_mux_register()
782 mux->hw.init = init; in cdns_sierra_pll_mux_register()
784 ret = devm_clk_hw_register(dev, &mux->hw); in cdns_sierra_pll_mux_register()
788 sp->clk_data.hws[clk_index] = &mux->hw; in cdns_sierra_pll_mux_register()
790 sp->pll_clks[clk_index] = devm_clk_hw_get_clk(dev, &mux->hw, in cdns_sierra_pll_mux_register()
801 struct device *dev = sp->dev; in cdns_sierra_phy_register_pll_mux()
806 pfdclk1_sel_field = sp->cmn_plllc_pfdclk1_sel_preg[i]; in cdns_sierra_phy_register_pll_mux()
807 plllc1en_field = sp->cmn_refrcv_refclk_plllc1en_preg[i]; in cdns_sierra_phy_register_pll_mux()
808 termen_field = sp->cmn_refrcv_refclk_termen_preg[i]; in cdns_sierra_phy_register_pll_mux()
821 static int cdns_sierra_derived_refclk_enable(struct clk_hw *hw) in cdns_sierra_derived_refclk_enable() argument
823 struct cdns_sierra_derived_refclk *derived_refclk = to_cdns_sierra_derived_refclk(hw); in cdns_sierra_derived_refclk_enable()
825 regmap_field_write(derived_refclk->cmn_plllc_clk1_en_preg, 0x1); in cdns_sierra_derived_refclk_enable()
828 regmap_field_write(derived_refclk->cmn_plllc_clk1outdiv_preg, 0x2E); in cdns_sierra_derived_refclk_enable()
833 static void cdns_sierra_derived_refclk_disable(struct clk_hw *hw) in cdns_sierra_derived_refclk_disable() argument
835 struct cdns_sierra_derived_refclk *derived_refclk = to_cdns_sierra_derived_refclk(hw); in cdns_sierra_derived_refclk_disable()
837 regmap_field_write(derived_refclk->cmn_plllc_clk1_en_preg, 0); in cdns_sierra_derived_refclk_disable()
840 static int cdns_sierra_derived_refclk_is_enabled(struct clk_hw *hw) in cdns_sierra_derived_refclk_is_enabled() argument
842 struct cdns_sierra_derived_refclk *derived_refclk = to_cdns_sierra_derived_refclk(hw); in cdns_sierra_derived_refclk_is_enabled()
845 regmap_field_read(derived_refclk->cmn_plllc_clk1_en_preg, &val); in cdns_sierra_derived_refclk_is_enabled()
859 struct device *dev = sp->dev; in cdns_sierra_derived_refclk_register()
868 return -ENOMEM; in cdns_sierra_derived_refclk_register()
873 init = &derived_refclk->clk_data; in cdns_sierra_derived_refclk_register()
875 init->ops = &cdns_sierra_derived_refclk_ops; in cdns_sierra_derived_refclk_register()
876 init->flags = 0; in cdns_sierra_derived_refclk_register()
877 init->name = clk_name; in cdns_sierra_derived_refclk_register()
879 regmap = sp->regmap_common_cdb; in cdns_sierra_derived_refclk_register()
886 derived_refclk->cmn_plllc_clk1outdiv_preg = field; in cdns_sierra_derived_refclk_register()
893 derived_refclk->cmn_plllc_clk1_en_preg = field; in cdns_sierra_derived_refclk_register()
895 derived_refclk->hw.init = init; in cdns_sierra_derived_refclk_register()
897 ret = devm_clk_hw_register(dev, &derived_refclk->hw); in cdns_sierra_derived_refclk_register()
901 sp->clk_data.hws[CDNS_SIERRA_DERIVED_REFCLK] = &derived_refclk->hw; in cdns_sierra_derived_refclk_register()
908 struct device *dev = sp->dev; in cdns_sierra_clk_unregister()
909 struct device_node *node = dev->of_node; in cdns_sierra_clk_unregister()
916 struct device *dev = sp->dev; in cdns_sierra_clk_register()
917 struct device_node *node = dev->of_node; in cdns_sierra_clk_register()
932 sp->clk_data.num = CDNS_SIERRA_OUTPUT_CLOCKS; in cdns_sierra_clk_register()
934 &sp->clk_data); in cdns_sierra_clk_register()
936 dev_err(dev, "Failed to add clock provider: %s\n", node->name); in cdns_sierra_clk_register()
946 if (of_property_read_u32(child, "reg", &inst->mlane)) in cdns_sierra_get_optional()
947 return -EINVAL; in cdns_sierra_get_optional()
949 if (of_property_read_u32(child, "cdns,num-lanes", &inst->num_lanes)) in cdns_sierra_get_optional()
950 return -EINVAL; in cdns_sierra_get_optional()
952 if (of_property_read_u32(child, "cdns,phy-type", &phy_type)) in cdns_sierra_get_optional()
953 return -EINVAL; in cdns_sierra_get_optional()
957 inst->phy_type = TYPE_PCIE; in cdns_sierra_get_optional()
960 inst->phy_type = TYPE_USB; in cdns_sierra_get_optional()
963 inst->phy_type = TYPE_SGMII; in cdns_sierra_get_optional()
966 inst->phy_type = TYPE_QSGMII; in cdns_sierra_get_optional()
969 return -EINVAL; in cdns_sierra_get_optional()
972 inst->ssc_mode = EXTERNAL_SSC; in cdns_sierra_get_optional()
973 of_property_read_u32(child, "cdns,ssc-mode", &inst->ssc_mode); in cdns_sierra_get_optional()
986 return ERR_PTR(-ENOMEM); in cdns_regmap_init()
988 ctx->dev = dev; in cdns_regmap_init()
989 ctx->base = base + block_offset; in cdns_regmap_init()
990 ctx->reg_offset_shift = reg_offset_shift; in cdns_regmap_init()
997 struct device *dev = sp->dev; in cdns_regfield_init()
1003 regmap = sp->regmap_common_cdb; in cdns_regfield_init()
1009 sp->macro_id_type = field; in cdns_regfield_init()
1018 sp->cmn_plllc_pfdclk1_sel_preg[i] = field; in cdns_regfield_init()
1026 sp->cmn_refrcv_refclk_plllc1en_preg[i] = field; in cdns_regfield_init()
1034 sp->cmn_refrcv_refclk_termen_preg[i] = field; in cdns_regfield_init()
1037 regmap = sp->regmap_phy_pcs_common_cdb; in cdns_regfield_init()
1043 sp->phy_pll_cfg_1 = field; in cdns_regfield_init()
1045 regmap = sp->regmap_phy_pma_common_cdb; in cdns_regfield_init()
1051 sp->pma_cmn_ready = field; in cdns_regfield_init()
1054 regmap = sp->regmap_lane_cdb[i]; in cdns_regfield_init()
1060 sp->pllctrl_lock[i] = field; in cdns_regfield_init()
1064 regmap = sp->regmap_phy_pcs_lane_cdb[i]; in cdns_regfield_init()
1070 sp->phy_iso_link_ctrl_1[i] = field; in cdns_regfield_init()
1080 struct device *dev = sp->dev; in cdns_regmap_init_blocks()
1095 sp->regmap_lane_cdb[i] = regmap; in cdns_regmap_init_blocks()
1105 sp->regmap_common_cdb = regmap; in cdns_regmap_init_blocks()
1114 sp->regmap_phy_pcs_common_cdb = regmap; in cdns_regmap_init_blocks()
1126 sp->regmap_phy_pcs_lane_cdb[i] = regmap; in cdns_regmap_init_blocks()
1136 sp->regmap_phy_pma_common_cdb = regmap; in cdns_regmap_init_blocks()
1148 sp->regmap_phy_pma_lane_cdb[i] = regmap; in cdns_regmap_init_blocks()
1166 sp->input_clks[CMN_REFCLK_DIG_DIV] = clk; in cdns_sierra_phy_get_clocks()
1174 sp->input_clks[CMN_REFCLK1_DIG_DIV] = clk; in cdns_sierra_phy_get_clocks()
1181 struct device *dev = sp->dev; in cdns_sierra_phy_clk()
1190 sp->input_clks[PHY_CLK] = clk; in cdns_sierra_phy_clk()
1192 ret = clk_prepare_enable(sp->input_clks[PHY_CLK]); in cdns_sierra_phy_clk()
1203 ret = clk_prepare_enable(sp->pll_clks[CDNS_SIERRA_PLL_CMNLC]); in cdns_sierra_phy_enable_clocks()
1207 ret = clk_prepare_enable(sp->pll_clks[CDNS_SIERRA_PLL_CMNLC1]); in cdns_sierra_phy_enable_clocks()
1214 clk_disable_unprepare(sp->pll_clks[CDNS_SIERRA_PLL_CMNLC]); in cdns_sierra_phy_enable_clocks()
1221 clk_disable_unprepare(sp->pll_clks[CDNS_SIERRA_PLL_CMNLC1]); in cdns_sierra_phy_disable_clocks()
1222 clk_disable_unprepare(sp->pll_clks[CDNS_SIERRA_PLL_CMNLC]); in cdns_sierra_phy_disable_clocks()
1223 if (!sp->already_configured) in cdns_sierra_phy_disable_clocks()
1224 clk_disable_unprepare(sp->input_clks[PHY_CLK]); in cdns_sierra_phy_disable_clocks()
1237 sp->phy_rst = rst; in cdns_sierra_phy_get_resets()
1244 sp->apb_rst = rst; in cdns_sierra_phy_get_resets()
1252 const struct cdns_sierra_data *init_data = sp->init_data; in cdns_sierra_phy_configure_multilink()
1263 if (sp->nsubnodes != 2) in cdns_sierra_phy_configure_multilink()
1264 return -EINVAL; in cdns_sierra_phy_configure_multilink()
1266 clk_set_rate(sp->input_clks[CMN_REFCLK_DIG_DIV], 25000000); in cdns_sierra_phy_configure_multilink()
1267 clk_set_rate(sp->input_clks[CMN_REFCLK1_DIG_DIV], 25000000); in cdns_sierra_phy_configure_multilink()
1270 regmap_field_write(sp->phy_pll_cfg_1, 0x1); in cdns_sierra_phy_configure_multilink()
1272 phy_t1 = sp->phys[0].phy_type; in cdns_sierra_phy_configure_multilink()
1273 phy_t2 = sp->phys[1].phy_type; in cdns_sierra_phy_configure_multilink()
1276 * PHY configuration for multi-link operation is done in two steps. in cdns_sierra_phy_configure_multilink()
1295 for (node = 0; node < sp->nsubnodes; node++) { in cdns_sierra_phy_configure_multilink()
1304 mlane = sp->phys[node].mlane; in cdns_sierra_phy_configure_multilink()
1305 ssc = sp->phys[node].ssc_mode; in cdns_sierra_phy_configure_multilink()
1306 num_lanes = sp->phys[node].num_lanes; in cdns_sierra_phy_configure_multilink()
1309 pcs_cmn_vals = init_data->pcs_cmn_vals[phy_t1][phy_t2][ssc]; in cdns_sierra_phy_configure_multilink()
1311 reg_pairs = pcs_cmn_vals->reg_pairs; in cdns_sierra_phy_configure_multilink()
1312 num_regs = pcs_cmn_vals->num_regs; in cdns_sierra_phy_configure_multilink()
1313 regmap = sp->regmap_phy_pcs_common_cdb; in cdns_sierra_phy_configure_multilink()
1319 phy_pma_ln_vals = init_data->phy_pma_ln_vals[phy_t1][phy_t2][ssc]; in cdns_sierra_phy_configure_multilink()
1321 reg_pairs = phy_pma_ln_vals->reg_pairs; in cdns_sierra_phy_configure_multilink()
1322 num_regs = phy_pma_ln_vals->num_regs; in cdns_sierra_phy_configure_multilink()
1324 regmap = sp->regmap_phy_pma_lane_cdb[i + mlane]; in cdns_sierra_phy_configure_multilink()
1331 pma_cmn_vals = init_data->pma_cmn_vals[phy_t1][phy_t2][ssc]; in cdns_sierra_phy_configure_multilink()
1333 reg_pairs = pma_cmn_vals->reg_pairs; in cdns_sierra_phy_configure_multilink()
1334 num_regs = pma_cmn_vals->num_regs; in cdns_sierra_phy_configure_multilink()
1335 regmap = sp->regmap_common_cdb; in cdns_sierra_phy_configure_multilink()
1341 pma_ln_vals = init_data->pma_ln_vals[phy_t1][phy_t2][ssc]; in cdns_sierra_phy_configure_multilink()
1343 reg_pairs = pma_ln_vals->reg_pairs; in cdns_sierra_phy_configure_multilink()
1344 num_regs = pma_ln_vals->num_regs; in cdns_sierra_phy_configure_multilink()
1346 regmap = sp->regmap_lane_cdb[i + mlane]; in cdns_sierra_phy_configure_multilink()
1353 reset_control_deassert(sp->phys[node].lnk_rst); in cdns_sierra_phy_configure_multilink()
1357 ret = reset_control_deassert(sp->phy_rst); in cdns_sierra_phy_configure_multilink()
1368 struct device *dev = &pdev->dev; in cdns_sierra_phy_probe()
1373 struct device_node *dn = dev->of_node; in cdns_sierra_phy_probe()
1376 return -ENODEV; in cdns_sierra_phy_probe()
1381 return -EINVAL; in cdns_sierra_phy_probe()
1387 return -ENOMEM; in cdns_sierra_phy_probe()
1389 sp->dev = dev; in cdns_sierra_phy_probe()
1390 sp->init_data = data; in cdns_sierra_phy_probe()
1398 ret = cdns_regmap_init_blocks(sp, base, data->block_offset_shift, in cdns_sierra_phy_probe()
1399 data->reg_offset_shift); in cdns_sierra_phy_probe()
1421 regmap_field_read(sp->pma_cmn_ready, &sp->already_configured); in cdns_sierra_phy_probe()
1423 if (!sp->already_configured) { in cdns_sierra_phy_probe()
1433 reset_control_deassert(sp->apb_rst); in cdns_sierra_phy_probe()
1437 regmap_field_read(sp->macro_id_type, &id_value); in cdns_sierra_phy_probe()
1438 if (sp->init_data->id_value != id_value) { in cdns_sierra_phy_probe()
1439 ret = -EINVAL; in cdns_sierra_phy_probe()
1443 sp->autoconf = of_property_read_bool(dn, "cdns,autoconf"); in cdns_sierra_phy_probe()
1452 sp->phys[node].lnk_rst = in cdns_sierra_phy_probe()
1455 if (IS_ERR(sp->phys[node].lnk_rst)) { in cdns_sierra_phy_probe()
1457 child->full_name); in cdns_sierra_phy_probe()
1458 ret = PTR_ERR(sp->phys[node].lnk_rst); in cdns_sierra_phy_probe()
1462 if (!sp->autoconf) { in cdns_sierra_phy_probe()
1463 ret = cdns_sierra_get_optional(&sp->phys[node], child); in cdns_sierra_phy_probe()
1466 child->name); in cdns_sierra_phy_probe()
1467 reset_control_put(sp->phys[node].lnk_rst); in cdns_sierra_phy_probe()
1472 sp->num_lanes += sp->phys[node].num_lanes; in cdns_sierra_phy_probe()
1474 if (!sp->already_configured) in cdns_sierra_phy_probe()
1480 reset_control_put(sp->phys[node].lnk_rst); in cdns_sierra_phy_probe()
1483 sp->phys[node].phy = gphy; in cdns_sierra_phy_probe()
1484 phy_set_drvdata(gphy, &sp->phys[node]); in cdns_sierra_phy_probe()
1488 sp->nsubnodes = node; in cdns_sierra_phy_probe()
1490 if (sp->num_lanes > SIERRA_MAX_LANES) { in cdns_sierra_phy_probe()
1491 ret = -EINVAL; in cdns_sierra_phy_probe()
1497 if (!sp->already_configured && !sp->autoconf && sp->nsubnodes > 1) { in cdns_sierra_phy_probe()
1513 while (--node >= 0) in cdns_sierra_phy_probe()
1514 reset_control_put(sp->phys[node].lnk_rst); in cdns_sierra_phy_probe()
1516 if (!sp->already_configured) in cdns_sierra_phy_probe()
1517 reset_control_assert(sp->apb_rst); in cdns_sierra_phy_probe()
1530 reset_control_assert(phy->phy_rst); in cdns_sierra_phy_remove()
1531 reset_control_assert(phy->apb_rst); in cdns_sierra_phy_remove()
1532 pm_runtime_disable(&pdev->dev); in cdns_sierra_phy_remove()
1539 for (i = 0; i < phy->nsubnodes; i++) { in cdns_sierra_phy_remove()
1540 reset_control_assert(phy->phys[i].lnk_rst); in cdns_sierra_phy_remove()
1541 reset_control_put(phy->phys[i].lnk_rst); in cdns_sierra_phy_remove()
1547 /* USB refclk 100MHz, 20b, SuperSpeed opt2, ext ssc, PLL LC1, multilink */
1558 /* USB refclk 100MHz, 20b, SuperSpeed opt2, int ssc, PLL LC1, multilink */
1753 /* QSGMII refclk 100MHz, 20b, opt1, No BW cal, no ssc, PLL LC1 */
2901 .compatible = "cdns,sierra-phy-t0",
2905 .compatible = "ti,sierra-phy-t0",
2916 .name = "cdns-sierra-phy",