},
 };
 
-static const struct freq_tbl ftbl_nss_port5_rx_clk_src[] = {
-       F(19200000, P_XO, 1, 0, 0),
-       F(25000000, P_UNIPHY1_RX, 12.5, 0, 0),
-       F(25000000, P_UNIPHY0_RX, 5, 0, 0),
-       F(78125000, P_UNIPHY1_RX, 4, 0, 0),
-       F(125000000, P_UNIPHY1_RX, 2.5, 0, 0),
-       F(125000000, P_UNIPHY0_RX, 1, 0, 0),
-       F(156250000, P_UNIPHY1_RX, 2, 0, 0),
-       F(312500000, P_UNIPHY1_RX, 1, 0, 0),
+static const struct freq_conf ftbl_nss_port5_rx_clk_src_25[] = {
+       C(P_UNIPHY1_RX, 12.5, 0, 0),
+       C(P_UNIPHY0_RX, 5, 0, 0),
+};
+
+static const struct freq_conf ftbl_nss_port5_rx_clk_src_125[] = {
+       C(P_UNIPHY1_RX, 2.5, 0, 0),
+       C(P_UNIPHY0_RX, 1, 0, 0),
+};
+
+static const struct freq_multi_tbl ftbl_nss_port5_rx_clk_src[] = {
+       FMS(19200000, P_XO, 1, 0, 0),
+       FM(25000000, ftbl_nss_port5_rx_clk_src_25),
+       FMS(78125000, P_UNIPHY1_RX, 4, 0, 0),
+       FM(125000000, ftbl_nss_port5_rx_clk_src_125),
+       FMS(156250000, P_UNIPHY1_RX, 2, 0, 0),
+       FMS(312500000, P_UNIPHY1_RX, 1, 0, 0),
        { }
 };
 
 
 static struct clk_rcg2 nss_port5_rx_clk_src = {
        .cmd_rcgr = 0x68060,
-       .freq_tbl = ftbl_nss_port5_rx_clk_src,
+       .freq_multi_tbl = ftbl_nss_port5_rx_clk_src,
        .hid_width = 5,
        .parent_map = gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias_map,
        .clkr.hw.init = &(struct clk_init_data){
                .name = "nss_port5_rx_clk_src",
                .parent_data = gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias,
                .num_parents = ARRAY_SIZE(gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias),
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_fm_ops,
        },
 };
 
        },
 };
 
-static const struct freq_tbl ftbl_nss_port5_tx_clk_src[] = {
-       F(19200000, P_XO, 1, 0, 0),
-       F(25000000, P_UNIPHY1_TX, 12.5, 0, 0),
-       F(25000000, P_UNIPHY0_TX, 5, 0, 0),
-       F(78125000, P_UNIPHY1_TX, 4, 0, 0),
-       F(125000000, P_UNIPHY1_TX, 2.5, 0, 0),
-       F(125000000, P_UNIPHY0_TX, 1, 0, 0),
-       F(156250000, P_UNIPHY1_TX, 2, 0, 0),
-       F(312500000, P_UNIPHY1_TX, 1, 0, 0),
+static const struct freq_conf ftbl_nss_port5_tx_clk_src_25[] = {
+       C(P_UNIPHY1_TX, 12.5, 0, 0),
+       C(P_UNIPHY0_TX, 5, 0, 0),
+};
+
+static const struct freq_conf ftbl_nss_port5_tx_clk_src_125[] = {
+       C(P_UNIPHY1_TX, 2.5, 0, 0),
+       C(P_UNIPHY0_TX, 1, 0, 0),
+};
+
+static const struct freq_multi_tbl ftbl_nss_port5_tx_clk_src[] = {
+       FMS(19200000, P_XO, 1, 0, 0),
+       FM(25000000, ftbl_nss_port5_tx_clk_src_25),
+       FMS(78125000, P_UNIPHY1_TX, 4, 0, 0),
+       FM(125000000, ftbl_nss_port5_tx_clk_src_125),
+       FMS(156250000, P_UNIPHY1_TX, 2, 0, 0),
+       FMS(312500000, P_UNIPHY1_TX, 1, 0, 0),
        { }
 };
 
 
 static struct clk_rcg2 nss_port5_tx_clk_src = {
        .cmd_rcgr = 0x68068,
-       .freq_tbl = ftbl_nss_port5_tx_clk_src,
+       .freq_multi_tbl = ftbl_nss_port5_tx_clk_src,
        .hid_width = 5,
        .parent_map = gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias_map,
        .clkr.hw.init = &(struct clk_init_data){
                .name = "nss_port5_tx_clk_src",
                .parent_data = gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias,
                .num_parents = ARRAY_SIZE(gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias),
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_fm_ops,
        },
 };
 
        },
 };
 
-static const struct freq_tbl ftbl_nss_port6_rx_clk_src[] = {
-       F(19200000, P_XO, 1, 0, 0),
-       F(25000000, P_UNIPHY2_RX, 5, 0, 0),
-       F(25000000, P_UNIPHY2_RX, 12.5, 0, 0),
-       F(78125000, P_UNIPHY2_RX, 4, 0, 0),
-       F(125000000, P_UNIPHY2_RX, 1, 0, 0),
-       F(125000000, P_UNIPHY2_RX, 2.5, 0, 0),
-       F(156250000, P_UNIPHY2_RX, 2, 0, 0),
-       F(312500000, P_UNIPHY2_RX, 1, 0, 0),
+static const struct freq_conf ftbl_nss_port6_rx_clk_src_25[] = {
+       C(P_UNIPHY2_RX, 5, 0, 0),
+       C(P_UNIPHY2_RX, 12.5, 0, 0),
+};
+
+static const struct freq_conf ftbl_nss_port6_rx_clk_src_125[] = {
+       C(P_UNIPHY2_RX, 1, 0, 0),
+       C(P_UNIPHY2_RX, 2.5, 0, 0),
+};
+
+static const struct freq_multi_tbl ftbl_nss_port6_rx_clk_src[] = {
+       FMS(19200000, P_XO, 1, 0, 0),
+       FM(25000000, ftbl_nss_port6_rx_clk_src_25),
+       FMS(78125000, P_UNIPHY2_RX, 4, 0, 0),
+       FM(125000000, ftbl_nss_port6_rx_clk_src_125),
+       FMS(156250000, P_UNIPHY2_RX, 2, 0, 0),
+       FMS(312500000, P_UNIPHY2_RX, 1, 0, 0),
        { }
 };
 
 
 static struct clk_rcg2 nss_port6_rx_clk_src = {
        .cmd_rcgr = 0x68070,
-       .freq_tbl = ftbl_nss_port6_rx_clk_src,
+       .freq_multi_tbl = ftbl_nss_port6_rx_clk_src,
        .hid_width = 5,
        .parent_map = gcc_xo_uniphy2_rx_tx_ubi32_bias_map,
        .clkr.hw.init = &(struct clk_init_data){
                .name = "nss_port6_rx_clk_src",
                .parent_data = gcc_xo_uniphy2_rx_tx_ubi32_bias,
                .num_parents = ARRAY_SIZE(gcc_xo_uniphy2_rx_tx_ubi32_bias),
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_fm_ops,
        },
 };
 
        },
 };
 
-static const struct freq_tbl ftbl_nss_port6_tx_clk_src[] = {
-       F(19200000, P_XO, 1, 0, 0),
-       F(25000000, P_UNIPHY2_TX, 5, 0, 0),
-       F(25000000, P_UNIPHY2_TX, 12.5, 0, 0),
-       F(78125000, P_UNIPHY2_TX, 4, 0, 0),
-       F(125000000, P_UNIPHY2_TX, 1, 0, 0),
-       F(125000000, P_UNIPHY2_TX, 2.5, 0, 0),
-       F(156250000, P_UNIPHY2_TX, 2, 0, 0),
-       F(312500000, P_UNIPHY2_TX, 1, 0, 0),
+static const struct freq_conf ftbl_nss_port6_tx_clk_src_25[] = {
+       C(P_UNIPHY2_TX, 5, 0, 0),
+       C(P_UNIPHY2_TX, 12.5, 0, 0),
+};
+
+static const struct freq_conf ftbl_nss_port6_tx_clk_src_125[] = {
+       C(P_UNIPHY2_TX, 1, 0, 0),
+       C(P_UNIPHY2_TX, 2.5, 0, 0),
+};
+
+static const struct freq_multi_tbl ftbl_nss_port6_tx_clk_src[] = {
+       FMS(19200000, P_XO, 1, 0, 0),
+       FM(25000000, ftbl_nss_port6_tx_clk_src_25),
+       FMS(78125000, P_UNIPHY1_RX, 4, 0, 0),
+       FM(125000000, ftbl_nss_port6_tx_clk_src_125),
+       FMS(156250000, P_UNIPHY1_RX, 2, 0, 0),
+       FMS(312500000, P_UNIPHY1_RX, 1, 0, 0),
        { }
 };
 
 
 static struct clk_rcg2 nss_port6_tx_clk_src = {
        .cmd_rcgr = 0x68078,
-       .freq_tbl = ftbl_nss_port6_tx_clk_src,
+       .freq_multi_tbl = ftbl_nss_port6_tx_clk_src,
        .hid_width = 5,
        .parent_map = gcc_xo_uniphy2_tx_rx_ubi32_bias_map,
        .clkr.hw.init = &(struct clk_init_data){
                .name = "nss_port6_tx_clk_src",
                .parent_data = gcc_xo_uniphy2_tx_rx_ubi32_bias,
                .num_parents = ARRAY_SIZE(gcc_xo_uniphy2_tx_rx_ubi32_bias),
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_fm_ops,
        },
 };