OSDN Git Service

phy: cadence-torrent: Use key:value pair table for all settings
authorRoger Quadros <rogerq@kernel.org>
Tue, 30 May 2023 14:38:53 +0000 (16:38 +0200)
committerVinod Koul <vkoul@kernel.org>
Wed, 12 Jul 2023 16:57:40 +0000 (22:27 +0530)
Instead of a 3D matrix use a key:value pair table for link_cmn_vals,
xcvr_diag_vals, pcs_cmn_vals, phy_pma_cmn_vals, cmn_vals,
tx_ln_vals and rx_ln_vals. This makes it scaleable for multiple
reference clocks.

Wherever both CDNS and TI use the same settings, reuse the same data.

Introduce CLK_ANY and ANY_SSC enums which are used if the setting
is independent of clock rate or SSC type.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Swapnil Jakhade <sjakhade@cadence.com>
Link: https://lore.kernel.org/r/20230530143853.26571-3-sjakhade@cadence.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/cadence/phy-cadence-torrent.c

index 4b027e2..4795b44 100644 (file)
 #define MAX_NUM_LANES          4
 #define DEFAULT_MAX_BIT_RATE   8100 /* in Mbps */
 
-#define NUM_SSC_MODE           3
-#define NUM_REF_CLK            4
-#define NUM_PHY_TYPE           7
-
 #define POLL_TIMEOUT_US                5000
 #define PLL_LOCK_TIMEOUT       100000
 
@@ -307,15 +303,42 @@ enum cdns_torrent_ref_clk {
        CLK_19_2_MHZ,
        CLK_25_MHZ,
        CLK_100_MHZ,
-       CLK_156_25_MHZ
+       CLK_156_25_MHZ,
+       CLK_ANY,
 };
 
 enum cdns_torrent_ssc_mode {
        NO_SSC,
        EXTERNAL_SSC,
-       INTERNAL_SSC
+       INTERNAL_SSC,
+       ANY_SSC,
 };
 
+/* Unique key id for vals table entry
+ * REFCLK0_RATE | REFCLK1_RATE | LINK0_TYPE | LINK1_TYPE | SSC_TYPE
+ */
+#define REFCLK0_SHIFT  12
+#define REFCLK0_MASK   GENMASK(14, 12)
+#define REFCLK1_SHIFT  9
+#define REFCLK1_MASK   GENMASK(11, 9)
+#define LINK0_SHIFT    6
+#define LINK0_MASK     GENMASK(8, 6)
+#define LINK1_SHIFT    3
+#define LINK1_MASK     GENMASK(5, 3)
+#define SSC_SHIFT      0
+#define SSC_MASK       GENMASK(2, 0)
+
+#define CDNS_TORRENT_KEY(refclk0, refclk1, link0, link1, ssc) \
+                       ((((refclk0) << REFCLK0_SHIFT) & REFCLK0_MASK) | \
+                       (((refclk1) << REFCLK1_SHIFT) & REFCLK1_MASK) | \
+                       (((link0) << LINK0_SHIFT) & LINK0_MASK) | \
+                       (((link1) << LINK1_SHIFT) & LINK1_MASK) | \
+                       (((ssc) << SSC_SHIFT) & SSC_MASK))
+
+#define CDNS_TORRENT_KEY_ANYCLK(link0, link1) \
+                       CDNS_TORRENT_KEY(CLK_ANY, CLK_ANY, \
+                                        (link0), (link1), ANY_SSC)
+
 struct cdns_torrent_inst {
        struct phy *phy;
        u32 mlane;
@@ -402,23 +425,26 @@ struct cdns_torrent_vals {
        u32 num_regs;
 };
 
+struct cdns_torrent_vals_entry {
+       u32 key;
+       struct cdns_torrent_vals *vals;
+};
+
+struct cdns_torrent_vals_table {
+       struct cdns_torrent_vals_entry *entries;
+       u32 num_entries;
+};
+
 struct cdns_torrent_data {
        u8 block_offset_shift;
        u8 reg_offset_shift;
-       struct cdns_torrent_vals *link_cmn_vals[NUM_PHY_TYPE][NUM_PHY_TYPE]
-                                              [NUM_SSC_MODE];
-       struct cdns_torrent_vals *xcvr_diag_vals[NUM_PHY_TYPE][NUM_PHY_TYPE]
-                                               [NUM_SSC_MODE];
-       struct cdns_torrent_vals *pcs_cmn_vals[NUM_PHY_TYPE][NUM_PHY_TYPE]
-                                             [NUM_SSC_MODE];
-       struct cdns_torrent_vals *phy_pma_cmn_vals[NUM_PHY_TYPE][NUM_PHY_TYPE]
-                                                 [NUM_SSC_MODE];
-       struct cdns_torrent_vals *cmn_vals[NUM_REF_CLK][NUM_PHY_TYPE]
-                                         [NUM_PHY_TYPE][NUM_SSC_MODE];
-       struct cdns_torrent_vals *tx_ln_vals[NUM_REF_CLK][NUM_PHY_TYPE]
-                                           [NUM_PHY_TYPE][NUM_SSC_MODE];
-       struct cdns_torrent_vals *rx_ln_vals[NUM_REF_CLK][NUM_PHY_TYPE]
-                                           [NUM_PHY_TYPE][NUM_SSC_MODE];
+       struct cdns_torrent_vals_table link_cmn_vals_tbl;
+       struct cdns_torrent_vals_table xcvr_diag_vals_tbl;
+       struct cdns_torrent_vals_table pcs_cmn_vals_tbl;
+       struct cdns_torrent_vals_table phy_pma_cmn_vals_tbl;
+       struct cdns_torrent_vals_table cmn_vals_tbl;
+       struct cdns_torrent_vals_table tx_ln_vals_tbl;
+       struct cdns_torrent_vals_table rx_ln_vals_tbl;
 };
 
 struct cdns_regmap_cdb_context {
@@ -427,6 +453,24 @@ struct cdns_regmap_cdb_context {
        u8 reg_offset_shift;
 };
 
+static struct cdns_torrent_vals *cdns_torrent_get_tbl_vals(const struct cdns_torrent_vals_table *tbl,
+                                                          enum cdns_torrent_ref_clk refclk0,
+                                                          enum cdns_torrent_ref_clk refclk1,
+                                                          enum cdns_torrent_phy_type link0,
+                                                          enum cdns_torrent_phy_type link1,
+                                                          enum cdns_torrent_ssc_mode ssc)
+{
+       int i;
+       u32 key = CDNS_TORRENT_KEY(refclk0, refclk1, link0, link1, ssc);
+
+       for (i = 0; i < tbl->num_entries; i++) {
+               if (tbl->entries[i].key == key)
+                       return tbl->entries[i].vals;
+       }
+
+       return NULL;
+}
+
 static int cdns_regmap_write(void *context, unsigned int reg, unsigned int val)
 {
        struct cdns_regmap_cdb_context *ctx = context;
@@ -2277,7 +2321,10 @@ static int cdns_torrent_phy_init(struct phy *phy)
                ssc = NO_SSC;
 
        /* PHY configuration specific registers for single link */
-       link_cmn_vals = init_data->link_cmn_vals[phy_type][TYPE_NONE][ssc];
+       link_cmn_vals = cdns_torrent_get_tbl_vals(&init_data->link_cmn_vals_tbl,
+                                                 CLK_ANY, CLK_ANY,
+                                                 phy_type, TYPE_NONE,
+                                                 ANY_SSC);
        if (link_cmn_vals) {
                reg_pairs = link_cmn_vals->reg_pairs;
                num_regs = link_cmn_vals->num_regs;
@@ -2294,7 +2341,10 @@ static int cdns_torrent_phy_init(struct phy *phy)
                                     reg_pairs[i].val);
        }
 
-       xcvr_diag_vals = init_data->xcvr_diag_vals[phy_type][TYPE_NONE][ssc];
+       xcvr_diag_vals = cdns_torrent_get_tbl_vals(&init_data->xcvr_diag_vals_tbl,
+                                                  CLK_ANY, CLK_ANY,
+                                                  phy_type, TYPE_NONE,
+                                                  ANY_SSC);
        if (xcvr_diag_vals) {
                reg_pairs = xcvr_diag_vals->reg_pairs;
                num_regs = xcvr_diag_vals->num_regs;
@@ -2307,7 +2357,10 @@ static int cdns_torrent_phy_init(struct phy *phy)
        }
 
        /* PHY PCS common registers configurations */
-       pcs_cmn_vals = init_data->pcs_cmn_vals[phy_type][TYPE_NONE][ssc];
+       pcs_cmn_vals = cdns_torrent_get_tbl_vals(&init_data->pcs_cmn_vals_tbl,
+                                                CLK_ANY, CLK_ANY,
+                                                phy_type, TYPE_NONE,
+                                                ANY_SSC);
        if (pcs_cmn_vals) {
                reg_pairs = pcs_cmn_vals->reg_pairs;
                num_regs = pcs_cmn_vals->num_regs;
@@ -2318,7 +2371,10 @@ static int cdns_torrent_phy_init(struct phy *phy)
        }
 
        /* PHY PMA common registers configurations */
-       phy_pma_cmn_vals = init_data->phy_pma_cmn_vals[phy_type][TYPE_NONE][ssc];
+       phy_pma_cmn_vals = cdns_torrent_get_tbl_vals(&init_data->phy_pma_cmn_vals_tbl,
+                                                    CLK_ANY, CLK_ANY,
+                                                    phy_type, TYPE_NONE,
+                                                    ANY_SSC);
        if (phy_pma_cmn_vals) {
                reg_pairs = phy_pma_cmn_vals->reg_pairs;
                num_regs = phy_pma_cmn_vals->num_regs;
@@ -2329,7 +2385,10 @@ static int cdns_torrent_phy_init(struct phy *phy)
        }
 
        /* PMA common registers configurations */
-       cmn_vals = init_data->cmn_vals[ref_clk][phy_type][TYPE_NONE][ssc];
+       cmn_vals = cdns_torrent_get_tbl_vals(&init_data->cmn_vals_tbl,
+                                            ref_clk, ref_clk,
+                                            phy_type, TYPE_NONE,
+                                            ssc);
        if (cmn_vals) {
                reg_pairs = cmn_vals->reg_pairs;
                num_regs = cmn_vals->num_regs;
@@ -2340,7 +2399,10 @@ static int cdns_torrent_phy_init(struct phy *phy)
        }
 
        /* PMA TX lane registers configurations */
-       tx_ln_vals = init_data->tx_ln_vals[ref_clk][phy_type][TYPE_NONE][ssc];
+       tx_ln_vals = cdns_torrent_get_tbl_vals(&init_data->tx_ln_vals_tbl,
+                                              ref_clk, ref_clk,
+                                              phy_type, TYPE_NONE,
+                                              ssc);
        if (tx_ln_vals) {
                reg_pairs = tx_ln_vals->reg_pairs;
                num_regs = tx_ln_vals->num_regs;
@@ -2353,7 +2415,10 @@ static int cdns_torrent_phy_init(struct phy *phy)
        }
 
        /* PMA RX lane registers configurations */
-       rx_ln_vals = init_data->rx_ln_vals[ref_clk][phy_type][TYPE_NONE][ssc];
+       rx_ln_vals = cdns_torrent_get_tbl_vals(&init_data->rx_ln_vals_tbl,
+                                              ref_clk, ref_clk,
+                                              phy_type, TYPE_NONE,
+                                              ssc);
        if (rx_ln_vals) {
                reg_pairs = rx_ln_vals->reg_pairs;
                num_regs = rx_ln_vals->num_regs;
@@ -2442,7 +2507,9 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
                 * being configured, but these can be different for particular
                 * PHY type and are per lane.
                 */
-               link_cmn_vals = init_data->link_cmn_vals[phy_t1][phy_t2][ssc];
+               link_cmn_vals = cdns_torrent_get_tbl_vals(&init_data->link_cmn_vals_tbl,
+                                                         CLK_ANY, CLK_ANY,
+                                                         phy_t1, phy_t2, ANY_SSC);
                if (link_cmn_vals) {
                        reg_pairs = link_cmn_vals->reg_pairs;
                        num_regs = link_cmn_vals->num_regs;
@@ -2460,7 +2527,9 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
                                             reg_pairs[i].val);
                }
 
-               xcvr_diag_vals = init_data->xcvr_diag_vals[phy_t1][phy_t2][ssc];
+               xcvr_diag_vals = cdns_torrent_get_tbl_vals(&init_data->xcvr_diag_vals_tbl,
+                                                          CLK_ANY, CLK_ANY,
+                                                          phy_t1, phy_t2, ANY_SSC);
                if (xcvr_diag_vals) {
                        reg_pairs = xcvr_diag_vals->reg_pairs;
                        num_regs = xcvr_diag_vals->num_regs;
@@ -2473,7 +2542,9 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
                }
 
                /* PHY PCS common registers configurations */
-               pcs_cmn_vals = init_data->pcs_cmn_vals[phy_t1][phy_t2][ssc];
+               pcs_cmn_vals = cdns_torrent_get_tbl_vals(&init_data->pcs_cmn_vals_tbl,
+                                                        CLK_ANY, CLK_ANY,
+                                                        phy_t1, phy_t2, ANY_SSC);
                if (pcs_cmn_vals) {
                        reg_pairs = pcs_cmn_vals->reg_pairs;
                        num_regs = pcs_cmn_vals->num_regs;
@@ -2484,7 +2555,9 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
                }
 
                /* PMA common registers configurations */
-               cmn_vals = init_data->cmn_vals[ref_clk][phy_t1][phy_t2][ssc];
+               cmn_vals = cdns_torrent_get_tbl_vals(&init_data->cmn_vals_tbl,
+                                                    ref_clk, ref_clk,
+                                                    phy_t1, phy_t2, ssc);
                if (cmn_vals) {
                        reg_pairs = cmn_vals->reg_pairs;
                        num_regs = cmn_vals->num_regs;
@@ -2495,7 +2568,9 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
                }
 
                /* PMA TX lane registers configurations */
-               tx_ln_vals = init_data->tx_ln_vals[ref_clk][phy_t1][phy_t2][ssc];
+               tx_ln_vals = cdns_torrent_get_tbl_vals(&init_data->tx_ln_vals_tbl,
+                                                      ref_clk, ref_clk,
+                                                      phy_t1, phy_t2, ssc);
                if (tx_ln_vals) {
                        reg_pairs = tx_ln_vals->reg_pairs;
                        num_regs = tx_ln_vals->num_regs;
@@ -2508,7 +2583,9 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
                }
 
                /* PMA RX lane registers configurations */
-               rx_ln_vals = init_data->rx_ln_vals[ref_clk][phy_t1][phy_t2][ssc];
+               rx_ln_vals = cdns_torrent_get_tbl_vals(&init_data->rx_ln_vals_tbl,
+                                                      ref_clk, ref_clk,
+                                                      phy_t1, phy_t2, ssc);
                if (rx_ln_vals) {
                        reg_pairs = rx_ln_vals->reg_pairs;
                        num_regs = rx_ln_vals->num_regs;
@@ -4081,1169 +4158,401 @@ static struct cdns_torrent_vals pcie_100_no_ssc_rx_ln_vals = {
        .num_regs = ARRAY_SIZE(pcie_100_ext_no_ssc_rx_ln_regs),
 };
 
+static struct cdns_torrent_vals_entry link_cmn_vals_entries[] = {
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_DP, TYPE_NONE), &sl_dp_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_DP, TYPE_PCIE), &pcie_dp_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_DP, TYPE_USB), &usb_dp_link_cmn_vals},
+
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_PCIE, TYPE_NONE), NULL},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_PCIE, TYPE_SGMII), &pcie_sgmii_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_PCIE, TYPE_QSGMII), &pcie_sgmii_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_PCIE, TYPE_USB), &pcie_usb_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_PCIE, TYPE_DP), &pcie_dp_link_cmn_vals},
+
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_SGMII, TYPE_NONE), &sl_sgmii_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_SGMII, TYPE_PCIE), &pcie_sgmii_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_SGMII, TYPE_USB), &usb_sgmii_link_cmn_vals},
+
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_QSGMII, TYPE_NONE), &sl_sgmii_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_QSGMII, TYPE_PCIE), &pcie_sgmii_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_QSGMII, TYPE_USB), &usb_sgmii_link_cmn_vals},
+
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_NONE), &sl_usb_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_PCIE), &pcie_usb_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_SGMII), &usb_sgmii_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_QSGMII), &usb_sgmii_link_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_DP), &usb_dp_link_cmn_vals},
+
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USXGMII, TYPE_NONE), &sl_usxgmii_link_cmn_vals},
+};
+
+static struct cdns_torrent_vals_entry xcvr_diag_vals_entries[] = {
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_DP, TYPE_NONE), &sl_dp_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_DP, TYPE_PCIE), &dp_pcie_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_DP, TYPE_USB), &dp_usb_xcvr_diag_ln_vals},
+
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_PCIE, TYPE_NONE), NULL},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_PCIE, TYPE_SGMII), &pcie_sgmii_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_PCIE, TYPE_QSGMII), &pcie_sgmii_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_PCIE, TYPE_USB), &pcie_usb_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_PCIE, TYPE_DP), &pcie_dp_xcvr_diag_ln_vals},
+
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_SGMII, TYPE_NONE), &sl_sgmii_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_SGMII, TYPE_PCIE), &sgmii_pcie_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_SGMII, TYPE_USB), &sgmii_usb_xcvr_diag_ln_vals},
+
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_QSGMII, TYPE_NONE), &sl_sgmii_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_QSGMII, TYPE_PCIE), &sgmii_pcie_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_QSGMII, TYPE_USB), &sgmii_usb_xcvr_diag_ln_vals},
+
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_NONE), &sl_usb_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_PCIE), &usb_pcie_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_SGMII), &usb_sgmii_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_QSGMII), &usb_sgmii_xcvr_diag_ln_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_DP), &usb_dp_xcvr_diag_ln_vals},
+
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USXGMII, TYPE_NONE), &sl_usxgmii_xcvr_diag_ln_vals},
+};
+
+static struct cdns_torrent_vals_entry pcs_cmn_vals_entries[] = {
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_NONE), &usb_phy_pcs_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_PCIE), &usb_phy_pcs_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_SGMII), &usb_phy_pcs_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_QSGMII), &usb_phy_pcs_cmn_vals},
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USB, TYPE_DP), &usb_phy_pcs_cmn_vals},
+};
+
+static struct cdns_torrent_vals_entry cmn_vals_entries[] = {
+       {CDNS_TORRENT_KEY(CLK_19_2_MHZ, CLK_19_2_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_19_2_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_25_MHZ, CLK_25_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_25_no_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_PCIE, NO_SSC), &dp_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_USB, NO_SSC), &sl_dp_100_no_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, NO_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, EXTERNAL_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, INTERNAL_SSC), &sl_pcie_100_int_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, NO_SSC), &pcie_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, EXTERNAL_SSC), &pcie_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, INTERNAL_SSC), &pcie_100_int_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, NO_SSC), &pcie_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, EXTERNAL_SSC), &pcie_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, INTERNAL_SSC), &pcie_100_int_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, NO_SSC), &pcie_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, EXTERNAL_SSC), &pcie_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, INTERNAL_SSC), &pcie_100_int_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_DP, NO_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_NONE, NO_SSC), &sl_sgmii_100_no_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, NO_SSC), &sgmii_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, EXTERNAL_SSC), &sgmii_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, INTERNAL_SSC), &sgmii_100_int_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, NO_SSC), &sgmii_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, EXTERNAL_SSC), &sgmii_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, INTERNAL_SSC), &sgmii_100_no_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_NONE, NO_SSC), &sl_qsgmii_100_no_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, NO_SSC), &qsgmii_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, EXTERNAL_SSC), &qsgmii_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, INTERNAL_SSC), &qsgmii_100_int_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, NO_SSC), &qsgmii_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, EXTERNAL_SSC), &qsgmii_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, INTERNAL_SSC), &qsgmii_100_no_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, NO_SSC), &sl_usb_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, EXTERNAL_SSC), &sl_usb_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, INTERNAL_SSC), &sl_usb_100_int_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, NO_SSC), &usb_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, EXTERNAL_SSC), &usb_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, INTERNAL_SSC), &usb_100_int_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, NO_SSC), &sl_usb_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, EXTERNAL_SSC), &sl_usb_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, INTERNAL_SSC), &sl_usb_100_int_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, NO_SSC), &sl_usb_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, EXTERNAL_SSC), &sl_usb_100_no_ssc_cmn_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, INTERNAL_SSC), &sl_usb_100_int_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_DP, NO_SSC), &usb_100_no_ssc_cmn_vals},
+
+       {CDNS_TORRENT_KEY(CLK_156_25_MHZ, CLK_156_25_MHZ, TYPE_USXGMII, TYPE_NONE, NO_SSC), &sl_usxgmii_156_25_no_ssc_cmn_vals},
+};
+
+static struct cdns_torrent_vals_entry cdns_tx_ln_vals_entries[] = {
+       {CDNS_TORRENT_KEY(CLK_19_2_MHZ, CLK_19_2_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_19_2_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_25_MHZ, CLK_25_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_25_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_PCIE, NO_SSC), &dp_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_USB, NO_SSC), &dp_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, NO_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, EXTERNAL_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, INTERNAL_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, NO_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, EXTERNAL_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, INTERNAL_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, NO_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, EXTERNAL_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, INTERNAL_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, NO_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, EXTERNAL_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, INTERNAL_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_DP, NO_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_NONE, NO_SSC), &sgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, NO_SSC), &sgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, EXTERNAL_SSC), &sgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, INTERNAL_SSC), &sgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, NO_SSC), &sgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, EXTERNAL_SSC), &sgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, INTERNAL_SSC), &sgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_NONE, NO_SSC), &qsgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, NO_SSC), &qsgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, EXTERNAL_SSC), &qsgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, INTERNAL_SSC), &qsgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, NO_SSC), &qsgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, EXTERNAL_SSC), &qsgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, INTERNAL_SSC), &qsgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, NO_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, EXTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, INTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, NO_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, EXTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, INTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, NO_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, EXTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, INTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, NO_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, EXTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, INTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_DP, NO_SSC), &usb_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_156_25_MHZ, CLK_156_25_MHZ, TYPE_USXGMII, TYPE_NONE, NO_SSC), &usxgmii_156_25_no_ssc_tx_ln_vals},
+};
+
+static struct cdns_torrent_vals_entry cdns_rx_ln_vals_entries[] = {
+       {CDNS_TORRENT_KEY(CLK_19_2_MHZ, CLK_19_2_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_19_2_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_25_MHZ, CLK_25_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_25_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_PCIE, NO_SSC), &dp_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_USB, NO_SSC), &dp_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, NO_SSC), &pcie_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, EXTERNAL_SSC), &pcie_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, INTERNAL_SSC), &pcie_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, NO_SSC), &pcie_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, EXTERNAL_SSC), &pcie_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, INTERNAL_SSC), &pcie_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, NO_SSC), &pcie_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, EXTERNAL_SSC), &pcie_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, INTERNAL_SSC), &pcie_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, NO_SSC), &pcie_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, EXTERNAL_SSC), &pcie_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, INTERNAL_SSC), &pcie_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_DP, NO_SSC), &pcie_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_NONE, NO_SSC), &sgmii_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, NO_SSC), &sgmii_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, EXTERNAL_SSC), &sgmii_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, INTERNAL_SSC), &sgmii_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, NO_SSC), &sgmii_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, EXTERNAL_SSC), &sgmii_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, INTERNAL_SSC), &sgmii_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_NONE, NO_SSC), &qsgmii_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, NO_SSC), &qsgmii_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, EXTERNAL_SSC), &qsgmii_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, INTERNAL_SSC), &qsgmii_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, NO_SSC), &qsgmii_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, EXTERNAL_SSC), &qsgmii_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, INTERNAL_SSC), &qsgmii_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, NO_SSC), &usb_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, EXTERNAL_SSC), &usb_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, INTERNAL_SSC), &usb_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, NO_SSC), &usb_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, EXTERNAL_SSC), &usb_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, INTERNAL_SSC), &usb_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, NO_SSC), &usb_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, EXTERNAL_SSC), &usb_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, INTERNAL_SSC), &usb_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, NO_SSC), &usb_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, EXTERNAL_SSC), &usb_100_no_ssc_rx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, INTERNAL_SSC), &usb_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_DP, NO_SSC), &usb_100_no_ssc_rx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_156_25_MHZ, CLK_156_25_MHZ, TYPE_USXGMII, TYPE_NONE, NO_SSC), &usxgmii_156_25_no_ssc_rx_ln_vals},
+};
+
 static const struct cdns_torrent_data cdns_map_torrent = {
        .block_offset_shift = 0x2,
        .reg_offset_shift = 0x2,
-       .link_cmn_vals = {
-               [TYPE_DP] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_dp_link_cmn_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &pcie_dp_link_cmn_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &usb_dp_link_cmn_vals,
-                       },
-               },
-               [TYPE_PCIE] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = NULL,
-                               [EXTERNAL_SSC] = NULL,
-                               [INTERNAL_SSC] = NULL,
-                       },
-                       [TYPE_SGMII] = {
-                               [NO_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_QSGMII] = {
-                               [NO_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &pcie_usb_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_usb_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_usb_link_cmn_vals,
-                       },
-                       [TYPE_DP] = {
-                               [NO_SSC] = &pcie_dp_link_cmn_vals,
-                       },
-               },
-               [TYPE_SGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &usb_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                       },
-               },
-               [TYPE_QSGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &usb_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                       },
-               },
-               [TYPE_USB] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_usb_link_cmn_vals,
-                               [EXTERNAL_SSC] = &sl_usb_link_cmn_vals,
-                               [INTERNAL_SSC] = &sl_usb_link_cmn_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &pcie_usb_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_usb_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_usb_link_cmn_vals,
-                       },
-                       [TYPE_SGMII] = {
-                               [NO_SSC] = &usb_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_QSGMII] = {
-                               [NO_SSC] = &usb_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_DP] = {
-                               [NO_SSC] = &usb_dp_link_cmn_vals,
-                       },
-               },
-               [TYPE_USXGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_usxgmii_link_cmn_vals,
-                       },
-               },
-       },
-       .xcvr_diag_vals = {
-               [TYPE_DP] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_dp_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &dp_pcie_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &dp_usb_xcvr_diag_ln_vals,
-                       },
-               },
-               [TYPE_PCIE] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = NULL,
-                               [EXTERNAL_SSC] = NULL,
-                               [INTERNAL_SSC] = NULL,
-                       },
-                       [TYPE_SGMII] = {
-                               [NO_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_QSGMII] = {
-                               [NO_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &pcie_usb_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_DP] = {
-                               [NO_SSC] = &pcie_dp_xcvr_diag_ln_vals,
-                       },
-               },
-               [TYPE_SGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                       },
-               },
-               [TYPE_QSGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                       },
-               },
-               [TYPE_USB] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_usb_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &sl_usb_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &sl_usb_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &usb_pcie_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &usb_pcie_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &usb_pcie_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_SGMII] = {
-                               [NO_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_QSGMII] = {
-                               [NO_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_DP] = {
-                               [NO_SSC] = &usb_dp_xcvr_diag_ln_vals,
-                       },
-               },
-               [TYPE_USXGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_usxgmii_xcvr_diag_ln_vals,
-                       },
-               },
+       .link_cmn_vals_tbl = {
+               .entries = link_cmn_vals_entries,
+               .num_entries = ARRAY_SIZE(link_cmn_vals_entries),
        },
-       .pcs_cmn_vals = {
-               [TYPE_USB] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &usb_phy_pcs_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                               [INTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &usb_phy_pcs_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                               [INTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                       },
-                       [TYPE_SGMII] = {
-                               [NO_SSC] = &usb_phy_pcs_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                               [INTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                       },
-                       [TYPE_QSGMII] = {
-                               [NO_SSC] = &usb_phy_pcs_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                               [INTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                       },
-                       [TYPE_DP] = {
-                               [NO_SSC] = &usb_phy_pcs_cmn_vals,
-                       },
-               },
+       .xcvr_diag_vals_tbl = {
+               .entries = xcvr_diag_vals_entries,
+               .num_entries = ARRAY_SIZE(xcvr_diag_vals_entries),
        },
-       .phy_pma_cmn_vals = {
-               [TYPE_USXGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = NULL,
-                       },
-               },
+       .pcs_cmn_vals_tbl = {
+               .entries = pcs_cmn_vals_entries,
+               .num_entries = ARRAY_SIZE(pcs_cmn_vals_entries),
        },
-       .cmn_vals = {
-               [CLK_19_2_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_19_2_no_ssc_cmn_vals,
-                               },
-                       },
-               },
-               [CLK_25_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_25_no_ssc_cmn_vals,
-                               },
-                       },
-               },
-               [CLK_100_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_100_no_ssc_cmn_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &dp_100_no_ssc_cmn_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &sl_dp_100_no_ssc_cmn_vals,
-                               },
-                       },
-                       [TYPE_PCIE] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = NULL,
-                                       [EXTERNAL_SSC] = NULL,
-                                       [INTERNAL_SSC] = &sl_pcie_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &pcie_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &pcie_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &pcie_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = NULL,
-                               },
-                       },
-                       [TYPE_SGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_sgmii_100_no_ssc_cmn_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &sgmii_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &sgmii_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &sgmii_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &sgmii_100_no_ssc_cmn_vals,
-                               },
-                       },
-                       [TYPE_QSGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_qsgmii_100_no_ssc_cmn_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &qsgmii_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &qsgmii_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &qsgmii_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &qsgmii_100_no_ssc_cmn_vals,
-                               },
-                       },
-                       [TYPE_USB] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &sl_usb_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &usb_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &usb_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &sl_usb_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &sl_usb_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = &usb_100_no_ssc_cmn_vals,
-                               },
-                       },
-               },
-               [CLK_156_25_MHZ] = {
-                       [TYPE_USXGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_usxgmii_156_25_no_ssc_cmn_vals,
-                               },
-                       },
-               },
+       .cmn_vals_tbl = {
+               .entries = cmn_vals_entries,
+               .num_entries = ARRAY_SIZE(cmn_vals_entries),
        },
-       .tx_ln_vals = {
-               [CLK_19_2_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_19_2_no_ssc_tx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_25_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_25_no_ssc_tx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_100_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &dp_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &dp_100_no_ssc_tx_ln_vals,
-                               },
-                       },
-                       [TYPE_PCIE] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = NULL,
-                                       [EXTERNAL_SSC] = NULL,
-                                       [INTERNAL_SSC] = NULL,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = NULL,
-                                       [EXTERNAL_SSC] = NULL,
-                                       [INTERNAL_SSC] = NULL,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = NULL,
-                                       [EXTERNAL_SSC] = NULL,
-                                       [INTERNAL_SSC] = NULL,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = NULL,
-                                       [EXTERNAL_SSC] = NULL,
-                                       [INTERNAL_SSC] = NULL,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = NULL,
-                               },
-                       },
-                       [TYPE_SGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &sgmii_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &sgmii_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &sgmii_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &sgmii_100_no_ssc_tx_ln_vals,
-                               },
-                       },
-                       [TYPE_QSGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &qsgmii_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &qsgmii_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &qsgmii_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &qsgmii_100_no_ssc_tx_ln_vals,
-                               },
-                       },
-                       [TYPE_USB] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_156_25_MHZ] = {
-                       [TYPE_USXGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &usxgmii_156_25_no_ssc_tx_ln_vals,
-                               },
-                       },
-               },
+       .tx_ln_vals_tbl = {
+               .entries = cdns_tx_ln_vals_entries,
+               .num_entries = ARRAY_SIZE(cdns_tx_ln_vals_entries),
        },
-       .rx_ln_vals = {
-               [CLK_19_2_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_19_2_no_ssc_rx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_25_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_25_no_ssc_rx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_100_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &dp_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &dp_100_no_ssc_rx_ln_vals,
-                               },
-                       },
-                       [TYPE_PCIE] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                               },
-                       },
-                       [TYPE_SGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                               },
-                       },
-                       [TYPE_QSGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                               },
-                       },
-                       [TYPE_USB] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_156_25_MHZ] = {
-                       [TYPE_USXGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &usxgmii_156_25_no_ssc_rx_ln_vals,
-                               },
-                       },
-               },
+       .rx_ln_vals_tbl = {
+               .entries = cdns_rx_ln_vals_entries,
+               .num_entries = ARRAY_SIZE(cdns_rx_ln_vals_entries),
        },
 };
 
+static struct cdns_torrent_vals_entry j721e_phy_pma_cmn_vals_entries[] = {
+       {CDNS_TORRENT_KEY_ANYCLK(TYPE_USXGMII, TYPE_NONE), &ti_usxgmii_phy_pma_cmn_vals},
+};
+
+static struct cdns_torrent_vals_entry ti_tx_ln_vals_entries[] = {
+       {CDNS_TORRENT_KEY(CLK_19_2_MHZ, CLK_19_2_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_19_2_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_25_MHZ, CLK_25_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_25_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_NONE, NO_SSC), &sl_dp_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_PCIE, NO_SSC), &dp_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_DP, TYPE_USB, NO_SSC), &dp_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, NO_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, EXTERNAL_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_NONE, INTERNAL_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, NO_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, EXTERNAL_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_SGMII, INTERNAL_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, NO_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, EXTERNAL_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_QSGMII, INTERNAL_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, NO_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, EXTERNAL_SSC), NULL},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_USB, INTERNAL_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_PCIE, TYPE_DP, NO_SSC), NULL},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_NONE, NO_SSC), &ti_sgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, NO_SSC), &ti_sgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, EXTERNAL_SSC), &ti_sgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_PCIE, INTERNAL_SSC), &ti_sgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, NO_SSC), &ti_sgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, EXTERNAL_SSC), &ti_sgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_SGMII, TYPE_USB, INTERNAL_SSC), &ti_sgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_NONE, NO_SSC), &ti_qsgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, NO_SSC), &ti_qsgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, EXTERNAL_SSC), &ti_qsgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_PCIE, INTERNAL_SSC), &ti_qsgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, NO_SSC), &ti_qsgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, EXTERNAL_SSC), &ti_qsgmii_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_QSGMII, TYPE_USB, INTERNAL_SSC), &ti_qsgmii_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, NO_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, EXTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_NONE, INTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, NO_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, EXTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_PCIE, INTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, NO_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, EXTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_SGMII, INTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, NO_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, EXTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_QSGMII, INTERNAL_SSC), &usb_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_100_MHZ, CLK_100_MHZ, TYPE_USB, TYPE_DP, NO_SSC), &usb_100_no_ssc_tx_ln_vals},
+
+       {CDNS_TORRENT_KEY(CLK_156_25_MHZ, CLK_156_25_MHZ, TYPE_USXGMII, TYPE_NONE, NO_SSC), &usxgmii_156_25_no_ssc_tx_ln_vals},
+};
+
 static const struct cdns_torrent_data ti_j721e_map_torrent = {
        .block_offset_shift = 0x0,
        .reg_offset_shift = 0x1,
-       .link_cmn_vals = {
-               [TYPE_DP] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_dp_link_cmn_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &pcie_dp_link_cmn_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &usb_dp_link_cmn_vals,
-                       },
-               },
-               [TYPE_PCIE] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = NULL,
-                               [EXTERNAL_SSC] = NULL,
-                               [INTERNAL_SSC] = NULL,
-                       },
-                       [TYPE_SGMII] = {
-                               [NO_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_QSGMII] = {
-                               [NO_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &pcie_usb_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_usb_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_usb_link_cmn_vals,
-                       },
-                       [TYPE_DP] = {
-                               [NO_SSC] = &pcie_dp_link_cmn_vals,
-                       },
-               },
-               [TYPE_SGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &usb_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                       },
-               },
-               [TYPE_QSGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &usb_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                       },
-               },
-               [TYPE_USB] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_usb_link_cmn_vals,
-                               [EXTERNAL_SSC] = &sl_usb_link_cmn_vals,
-                               [INTERNAL_SSC] = &sl_usb_link_cmn_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &pcie_usb_link_cmn_vals,
-                               [EXTERNAL_SSC] = &pcie_usb_link_cmn_vals,
-                               [INTERNAL_SSC] = &pcie_usb_link_cmn_vals,
-                       },
-                       [TYPE_SGMII] = {
-                               [NO_SSC] = &usb_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_QSGMII] = {
-                               [NO_SSC] = &usb_sgmii_link_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
-                       },
-                       [TYPE_DP] = {
-                               [NO_SSC] = &usb_dp_link_cmn_vals,
-                       },
-               },
-               [TYPE_USXGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_usxgmii_link_cmn_vals,
-                       },
-               },
+       .link_cmn_vals_tbl = {
+               .entries = link_cmn_vals_entries,
+               .num_entries = ARRAY_SIZE(link_cmn_vals_entries),
        },
-       .xcvr_diag_vals = {
-               [TYPE_DP] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_dp_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &dp_pcie_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &dp_usb_xcvr_diag_ln_vals,
-                       },
-               },
-               [TYPE_PCIE] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = NULL,
-                               [EXTERNAL_SSC] = NULL,
-                               [INTERNAL_SSC] = NULL,
-                       },
-                       [TYPE_SGMII] = {
-                               [NO_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_QSGMII] = {
-                               [NO_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &pcie_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &pcie_usb_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_DP] = {
-                               [NO_SSC] = &pcie_dp_xcvr_diag_ln_vals,
-                       },
-               },
-               [TYPE_SGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                       },
-               },
-               [TYPE_QSGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &sgmii_pcie_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_USB] = {
-                               [NO_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &sgmii_usb_xcvr_diag_ln_vals,
-                       },
-               },
-               [TYPE_USB] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_usb_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &sl_usb_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &sl_usb_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &usb_pcie_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &usb_pcie_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &usb_pcie_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_SGMII] = {
-                               [NO_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_QSGMII] = {
-                               [NO_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                               [EXTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                               [INTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
-                       },
-                       [TYPE_DP] = {
-                               [NO_SSC] = &usb_dp_xcvr_diag_ln_vals,
-                       },
-               },
-               [TYPE_USXGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &sl_usxgmii_xcvr_diag_ln_vals,
-                       },
-               },
+       .xcvr_diag_vals_tbl = {
+               .entries = xcvr_diag_vals_entries,
+               .num_entries = ARRAY_SIZE(xcvr_diag_vals_entries),
        },
-       .pcs_cmn_vals = {
-               [TYPE_USB] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &usb_phy_pcs_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                               [INTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                       },
-                       [TYPE_PCIE] = {
-                               [NO_SSC] = &usb_phy_pcs_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                               [INTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                       },
-                       [TYPE_SGMII] = {
-                               [NO_SSC] = &usb_phy_pcs_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                               [INTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                       },
-                       [TYPE_QSGMII] = {
-                               [NO_SSC] = &usb_phy_pcs_cmn_vals,
-                               [EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                               [INTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
-                       },
-                       [TYPE_DP] = {
-                               [NO_SSC] = &usb_phy_pcs_cmn_vals,
-                       },
-               },
+       .pcs_cmn_vals_tbl = {
+               .entries = pcs_cmn_vals_entries,
+               .num_entries = ARRAY_SIZE(pcs_cmn_vals_entries),
        },
-       .phy_pma_cmn_vals = {
-               [TYPE_USXGMII] = {
-                       [TYPE_NONE] = {
-                               [NO_SSC] = &ti_usxgmii_phy_pma_cmn_vals,
-                       },
-               },
+       .phy_pma_cmn_vals_tbl = {
+               .entries = j721e_phy_pma_cmn_vals_entries,
+               .num_entries = ARRAY_SIZE(j721e_phy_pma_cmn_vals_entries),
        },
-       .cmn_vals = {
-               [CLK_19_2_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_19_2_no_ssc_cmn_vals,
-                               },
-                       },
-               },
-               [CLK_25_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_25_no_ssc_cmn_vals,
-                               },
-                       },
-               },
-               [CLK_100_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_100_no_ssc_cmn_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &dp_100_no_ssc_cmn_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &sl_dp_100_no_ssc_cmn_vals,
-                               },
-                       },
-                       [TYPE_PCIE] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = NULL,
-                                       [EXTERNAL_SSC] = NULL,
-                                       [INTERNAL_SSC] = &sl_pcie_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &pcie_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &pcie_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &pcie_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = NULL,
-                               },
-                       },
-                       [TYPE_SGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_sgmii_100_no_ssc_cmn_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &sgmii_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &sgmii_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &sgmii_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &sgmii_100_no_ssc_cmn_vals,
-                               },
-                       },
-                       [TYPE_QSGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_qsgmii_100_no_ssc_cmn_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &qsgmii_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &qsgmii_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &qsgmii_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &qsgmii_100_no_ssc_cmn_vals,
-                               },
-                       },
-                       [TYPE_USB] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &sl_usb_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &usb_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &usb_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &sl_usb_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [EXTERNAL_SSC] = &sl_usb_100_no_ssc_cmn_vals,
-                                       [INTERNAL_SSC] = &sl_usb_100_int_ssc_cmn_vals,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = &usb_100_no_ssc_cmn_vals,
-                               },
-                       },
-               },
-               [CLK_156_25_MHZ] = {
-                       [TYPE_USXGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_usxgmii_156_25_no_ssc_cmn_vals,
-                               },
-                       },
-               },
+       .cmn_vals_tbl = {
+               .entries = cmn_vals_entries,
+               .num_entries = ARRAY_SIZE(cmn_vals_entries),
        },
-       .tx_ln_vals = {
-               [CLK_19_2_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_19_2_no_ssc_tx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_25_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_25_no_ssc_tx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_100_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &dp_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &dp_100_no_ssc_tx_ln_vals,
-                               },
-                       },
-                       [TYPE_PCIE] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = NULL,
-                                       [EXTERNAL_SSC] = NULL,
-                                       [INTERNAL_SSC] = NULL,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = NULL,
-                                       [EXTERNAL_SSC] = NULL,
-                                       [INTERNAL_SSC] = NULL,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = NULL,
-                                       [EXTERNAL_SSC] = NULL,
-                                       [INTERNAL_SSC] = NULL,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = NULL,
-                                       [EXTERNAL_SSC] = NULL,
-                                       [INTERNAL_SSC] = NULL,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = NULL,
-                               },
-                       },
-                       [TYPE_SGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &ti_sgmii_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &ti_sgmii_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &ti_sgmii_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &ti_sgmii_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &ti_sgmii_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &ti_sgmii_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &ti_sgmii_100_no_ssc_tx_ln_vals,
-                               },
-                       },
-                       [TYPE_QSGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &ti_qsgmii_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &ti_qsgmii_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &ti_qsgmii_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &ti_qsgmii_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &ti_qsgmii_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &ti_qsgmii_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &ti_qsgmii_100_no_ssc_tx_ln_vals,
-                               },
-                       },
-                       [TYPE_USB] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_156_25_MHZ] = {
-                       [TYPE_USXGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &usxgmii_156_25_no_ssc_tx_ln_vals,
-                               },
-                       },
-               },
+       .tx_ln_vals_tbl = {
+               .entries = ti_tx_ln_vals_entries,
+               .num_entries = ARRAY_SIZE(ti_tx_ln_vals_entries),
        },
-       .rx_ln_vals = {
-               [CLK_19_2_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_19_2_no_ssc_rx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_25_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_25_no_ssc_rx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_100_MHZ] = {
-                       [TYPE_DP] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sl_dp_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &dp_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &dp_100_no_ssc_rx_ln_vals,
-                               },
-                       },
-                       [TYPE_PCIE] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
-                               },
-                       },
-                       [TYPE_SGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &sgmii_100_no_ssc_rx_ln_vals,
-                               },
-                       },
-                       [TYPE_QSGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_USB] = {
-                                       [NO_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &qsgmii_100_no_ssc_rx_ln_vals,
-                               },
-                       },
-                       [TYPE_USB] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_PCIE] = {
-                                       [NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_SGMII] = {
-                                       [NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_QSGMII] = {
-                                       [NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                                       [INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                               },
-                               [TYPE_DP] = {
-                                       [NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
-                               },
-                       },
-               },
-               [CLK_156_25_MHZ] = {
-                       [TYPE_USXGMII] = {
-                               [TYPE_NONE] = {
-                                       [NO_SSC] = &usxgmii_156_25_no_ssc_rx_ln_vals,
-                               },
-                       },
-               },
+       .rx_ln_vals_tbl = {
+               .entries = cdns_rx_ln_vals_entries,
+               .num_entries = ARRAY_SIZE(cdns_rx_ln_vals_entries),
        },
 };