xref: /rk3399_rockchip-uboot/arch/powerpc/cpu/mpc85xx/t4240_serdes.c (revision 6b29a395b62965eef6b5065d3a526a8588a92038)
19e758758SYork Sun /*
29e758758SYork Sun  * Copyright 2012 Freescale Semiconductor, Inc.
39e758758SYork Sun  *
41a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
59e758758SYork Sun  */
69e758758SYork Sun 
79e758758SYork Sun #include <common.h>
89e758758SYork Sun #include <asm/fsl_serdes.h>
99e758758SYork Sun #include <asm/processor.h>
109e758758SYork Sun #include <asm/io.h>
119e758758SYork Sun #include "fsl_corenet2_serdes.h"
129e758758SYork Sun 
139e758758SYork Sun struct serdes_config {
149e758758SYork Sun 	u32 protocol;
159e758758SYork Sun 	u8 lanes[SRDS_MAX_LANES];
169e758758SYork Sun };
179e758758SYork Sun 
1826bc57daSYork Sun #ifdef CONFIG_ARCH_T4240
19924859acSYork Sun static const struct serdes_config serdes1_cfg_tbl[] = {
209e758758SYork Sun 	/* SerDes 1 */
219e758758SYork Sun 	{1, {XAUI_FM1_MAC9, XAUI_FM1_MAC9,
229e758758SYork Sun 		XAUI_FM1_MAC9, XAUI_FM1_MAC9,
239e758758SYork Sun 		XAUI_FM1_MAC10, XAUI_FM1_MAC10,
249e758758SYork Sun 		XAUI_FM1_MAC10, XAUI_FM1_MAC10}},
259e758758SYork Sun 	{2, {HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
269e758758SYork Sun 		HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
279e758758SYork Sun 		HIGIG_FM1_MAC10, HIGIG_FM1_MAC10,
289e758758SYork Sun 		HIGIG_FM1_MAC10, HIGIG_FM1_MAC10}},
299e758758SYork Sun 	{4, {HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
309e758758SYork Sun 		HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
319e758758SYork Sun 		HIGIG_FM1_MAC10, HIGIG_FM1_MAC10,
329e758758SYork Sun 		HIGIG_FM1_MAC10, HIGIG_FM1_MAC10}},
3394752f60SShaohui Xie 	{27, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
3494752f60SShaohui Xie 		SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
3594752f60SShaohui Xie 		SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
3694752f60SShaohui Xie 		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
379e758758SYork Sun 	{28, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
389e758758SYork Sun 		SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
399e758758SYork Sun 		SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
409e758758SYork Sun 		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4}},
4194752f60SShaohui Xie 	{35, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
4294752f60SShaohui Xie 		SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
4394752f60SShaohui Xie 		SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
4494752f60SShaohui Xie 		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
459e758758SYork Sun 	{36, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
469e758758SYork Sun 		SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
479e758758SYork Sun 		SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
489e758758SYork Sun 		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4}},
4994752f60SShaohui Xie 	{37, {NONE, NONE, QSGMII_FM1_B, NONE,
5094752f60SShaohui Xie 		NONE, NONE, QSGMII_FM1_A, NONE} },
519e758758SYork Sun 	{38, {NONE, NONE, QSGMII_FM1_B, NONE,
529e758758SYork Sun 		NONE, NONE, QSGMII_FM1_A, NONE}},
5394752f60SShaohui Xie 	{39, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
5494752f60SShaohui Xie 		SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
5594752f60SShaohui Xie 		NONE, NONE, QSGMII_FM1_A, NONE} },
569e758758SYork Sun 	{40, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
579e758758SYork Sun 		SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
589e758758SYork Sun 		NONE, NONE, QSGMII_FM1_A, NONE}},
5994752f60SShaohui Xie 	{45, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
6094752f60SShaohui Xie 		SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
6194752f60SShaohui Xie 		NONE, NONE, QSGMII_FM1_A, NONE} },
629e758758SYork Sun 	{46, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
639e758758SYork Sun 		SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
649e758758SYork Sun 		NONE, NONE, QSGMII_FM1_A, NONE}},
6594752f60SShaohui Xie 	{47, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
6694752f60SShaohui Xie 		SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
6794752f60SShaohui Xie 		NONE, NONE, QSGMII_FM1_A, NONE} },
689e758758SYork Sun 	{48, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
699e758758SYork Sun 		SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
709e758758SYork Sun 		NONE, NONE, QSGMII_FM1_A, NONE}},
719e758758SYork Sun 	{}
729e758758SYork Sun };
73924859acSYork Sun static const struct serdes_config serdes2_cfg_tbl[] = {
749e758758SYork Sun 	/* SerDes 2 */
759e758758SYork Sun 	{1, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
769e758758SYork Sun 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
779e758758SYork Sun 		XAUI_FM2_MAC10, XAUI_FM2_MAC10,
789e758758SYork Sun 		XAUI_FM2_MAC10, XAUI_FM2_MAC10}},
799e758758SYork Sun 	{2, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
809e758758SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
819e758758SYork Sun 		HIGIG_FM2_MAC10, HIGIG_FM2_MAC10,
829e758758SYork Sun 		HIGIG_FM2_MAC10, HIGIG_FM2_MAC10}},
839e758758SYork Sun 	{4, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
849e758758SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
859e758758SYork Sun 		HIGIG_FM2_MAC10, HIGIG_FM2_MAC10,
869e758758SYork Sun 		HIGIG_FM2_MAC10, HIGIG_FM2_MAC10}},
8794752f60SShaohui Xie 	{6, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
8894752f60SShaohui Xie 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
8994752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
9094752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
919e758758SYork Sun 	{7, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
929e758758SYork Sun 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
939e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
949e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
9594752f60SShaohui Xie 	{12, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
9694752f60SShaohui Xie 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
9794752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
9894752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
999e758758SYork Sun 	{13, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
1009e758758SYork Sun 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
1019e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
1029e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
1039e758758SYork Sun 	{14, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
1049e758758SYork Sun 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
1059e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
1069e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
10794752f60SShaohui Xie 	{15, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
10894752f60SShaohui Xie 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
10994752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
11094752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
1119e758758SYork Sun 	{16, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1129e758758SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1139e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
1149e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
11594752f60SShaohui Xie 	{21, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
11694752f60SShaohui Xie 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
11794752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
11894752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
1199e758758SYork Sun 	{22, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1209e758758SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1219e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
1229e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
1239e758758SYork Sun 	{23, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1249e758758SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1259e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
1269e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
12794752f60SShaohui Xie 	{24, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
12894752f60SShaohui Xie 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
12994752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
13094752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
1319e758758SYork Sun 	{25, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1329e758758SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1339e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
1349e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
1359e758758SYork Sun 	{26, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1369e758758SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1379e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
1389e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
13994752f60SShaohui Xie 	{27, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
14094752f60SShaohui Xie 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
14194752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
14294752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
1439e758758SYork Sun 	{28, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
1449e758758SYork Sun 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
1459e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
1469e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
14794752f60SShaohui Xie 	{35, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
14894752f60SShaohui Xie 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
14994752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
15094752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
1519e758758SYork Sun 	{36, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
1529e758758SYork Sun 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
1539e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
1549e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
15594752f60SShaohui Xie 	{37, {NONE, NONE, QSGMII_FM2_B, NONE,
15694752f60SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
1579e758758SYork Sun 	{38, {NONE, NONE, QSGMII_FM2_B, NONE,
1581c68d01eSShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
15994752f60SShaohui Xie 	{39, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
16094752f60SShaohui Xie 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
16194752f60SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
1629e758758SYork Sun 	{40, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
1639e758758SYork Sun 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
1641c68d01eSShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
16594752f60SShaohui Xie 	{45, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
16694752f60SShaohui Xie 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
16794752f60SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
1689e758758SYork Sun 	{46, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
1699e758758SYork Sun 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
1701c68d01eSShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
17194752f60SShaohui Xie 	{47, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
17294752f60SShaohui Xie 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
17394752f60SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
1749e758758SYork Sun 	{48, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
1759e758758SYork Sun 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
1761c68d01eSShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
17794752f60SShaohui Xie 	{49, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
17894752f60SShaohui Xie 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
17994752f60SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
1809e758758SYork Sun 	{50, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
1819e758758SYork Sun 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
1821c68d01eSShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
18394752f60SShaohui Xie 	{51, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
18494752f60SShaohui Xie 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
18594752f60SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
1869e758758SYork Sun 	{52, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1879e758758SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1881c68d01eSShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
18994752f60SShaohui Xie 	{53, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
19094752f60SShaohui Xie 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
19194752f60SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
1929e758758SYork Sun 	{54, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1939e758758SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
1941c68d01eSShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
19594752f60SShaohui Xie 	{55, {XFI_FM1_MAC9, XFI_FM1_MAC10,
19694752f60SShaohui Xie 		XFI_FM2_MAC10, XFI_FM2_MAC9,
19794752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
19894752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
1999e758758SYork Sun 	{56, {XFI_FM1_MAC9, XFI_FM1_MAC10,
2009e758758SYork Sun 		XFI_FM2_MAC10, XFI_FM2_MAC9,
2019e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
2029e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
2039e758758SYork Sun 	{57, {XFI_FM1_MAC9, XFI_FM1_MAC10,
2049e758758SYork Sun 		XFI_FM2_MAC10, XFI_FM2_MAC9,
2059e758758SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
2069e758758SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
2079e758758SYork Sun 	{}
2089e758758SYork Sun };
209924859acSYork Sun static const struct serdes_config serdes3_cfg_tbl[] = {
2109e758758SYork Sun 	/* SerDes 3 */
21194752f60SShaohui Xie 	{1, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1} },
2129e758758SYork Sun 	{2, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1}},
21394752f60SShaohui Xie 	{3, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE2, PCIE2, PCIE2, PCIE2} },
2149e758758SYork Sun 	{4, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE2, PCIE2, PCIE2, PCIE2}},
21594752f60SShaohui Xie 	{5, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1} },
2169e758758SYork Sun 	{6, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1}},
2174bf7f908SShaohui Xie 	{7, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1} },
2184bf7f908SShaohui Xie 	{8, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1} },
2199e758758SYork Sun 	{9, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
2209e758758SYork Sun 		INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN}},
2219e758758SYork Sun 	{10, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
2229e758758SYork Sun 		INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN}},
22394752f60SShaohui Xie 	{11, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
22494752f60SShaohui Xie 		PCIE2, PCIE2, PCIE2, PCIE2} },
2259e758758SYork Sun 	{12, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
2269e758758SYork Sun 		PCIE2, PCIE2, PCIE2, PCIE2}},
22794752f60SShaohui Xie 	{13, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
22894752f60SShaohui Xie 		PCIE2, PCIE2, PCIE2, PCIE2} },
2299e758758SYork Sun 	{14, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
2309e758758SYork Sun 		PCIE2, PCIE2, PCIE2, PCIE2}},
23194752f60SShaohui Xie 	{15, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
23294752f60SShaohui Xie 		SRIO1, SRIO1, SRIO1, SRIO1} },
2339e758758SYork Sun 	{16, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
2349e758758SYork Sun 		SRIO1, SRIO1, SRIO1, SRIO1}},
2359e758758SYork Sun 	{17, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
2369e758758SYork Sun 		SRIO1, SRIO1, SRIO1, SRIO1}},
23794752f60SShaohui Xie 	{18, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
23894752f60SShaohui Xie 		SRIO1, SRIO1, SRIO1, SRIO1} },
2399e758758SYork Sun 	{19, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
2409e758758SYork Sun 		SRIO1, SRIO1, SRIO1, SRIO1}},
2419e758758SYork Sun 	{20, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
2429e758758SYork Sun 		SRIO1, SRIO1, SRIO1, SRIO1}},
2439e758758SYork Sun 	{}
2449e758758SYork Sun };
245924859acSYork Sun static const struct serdes_config serdes4_cfg_tbl[] = {
2469e758758SYork Sun 	/* SerDes 4 */
24794752f60SShaohui Xie 	{1, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3} },
2489e758758SYork Sun 	{2, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3}},
24994752f60SShaohui Xie 	{3, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, PCIE4, PCIE4} },
2509e758758SYork Sun 	{4, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, PCIE4, PCIE4}},
25194752f60SShaohui Xie 	{5, {PCIE3, PCIE3, PCIE3, PCIE3, SRIO2, SRIO2, SRIO2, SRIO2} },
2529e758758SYork Sun 	{6, {PCIE3, PCIE3, PCIE3, PCIE3, SRIO2, SRIO2, SRIO2, SRIO2}},
25394752f60SShaohui Xie 	{7, {PCIE3, PCIE3, PCIE3, PCIE3, SRIO2, SRIO2, SRIO2, SRIO2} },
2549e758758SYork Sun 	{8, {PCIE3, PCIE3, PCIE3, PCIE3, SRIO2, SRIO2, SRIO2, SRIO2}},
25594752f60SShaohui Xie 	{9, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, SATA1, SATA2} },
256f9772444SRoy Zang 	{10, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, SATA1, SATA2} },
25794752f60SShaohui Xie 	{11, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SATA1, SATA2} },
258f9772444SRoy Zang 	{12, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SATA1, SATA2} },
25994752f60SShaohui Xie 	{13, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SRIO2, SRIO2} },
2609e758758SYork Sun 	{14, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SRIO2, SRIO2}},
26194752f60SShaohui Xie 	{15, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SRIO2, SRIO2} },
2629e758758SYork Sun 	{16, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SRIO2, SRIO2}},
2639e758758SYork Sun 	{18, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, AURORA, AURORA}},
2649e758758SYork Sun 	{}
2659e758758SYork Sun };
266*cdb72c52SYork Sun #elif defined(CONFIG_ARCH_T4160)
267b6240846SYork Sun static const struct serdes_config serdes1_cfg_tbl[] = {
268b6240846SYork Sun 	/* SerDes 1 */
2694bf7f908SShaohui Xie 	{1, {NONE, NONE, NONE, NONE,
270b6240846SYork Sun 		XAUI_FM1_MAC10, XAUI_FM1_MAC10,
271b6240846SYork Sun 		XAUI_FM1_MAC10, XAUI_FM1_MAC10} },
2724bf7f908SShaohui Xie 	{2, {NONE, NONE, NONE, NONE,
273b6240846SYork Sun 		HIGIG_FM1_MAC10, HIGIG_FM1_MAC10,
274b6240846SYork Sun 		HIGIG_FM1_MAC10, HIGIG_FM1_MAC10} },
2754bf7f908SShaohui Xie 	{4, {NONE, NONE, NONE, NONE,
276b6240846SYork Sun 		HIGIG_FM1_MAC10, HIGIG_FM1_MAC10,
277b6240846SYork Sun 		HIGIG_FM1_MAC10, HIGIG_FM1_MAC10} },
2784bf7f908SShaohui Xie 	{27, {NONE, NONE, NONE, NONE,
27994752f60SShaohui Xie 		SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
28094752f60SShaohui Xie 		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
2814bf7f908SShaohui Xie 	{28, {NONE, NONE, NONE, NONE,
282b6240846SYork Sun 		SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
283b6240846SYork Sun 		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
2844bf7f908SShaohui Xie 	{35, {NONE, NONE, NONE, NONE,
28594752f60SShaohui Xie 		SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
28694752f60SShaohui Xie 		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
2874bf7f908SShaohui Xie 	{36, {NONE, NONE, NONE, NONE,
288b6240846SYork Sun 		SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
289b6240846SYork Sun 		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
2904bf7f908SShaohui Xie 	{37, {NONE, NONE, NONE, NONE,
29194752f60SShaohui Xie 		NONE, NONE, QSGMII_FM1_A, NONE} },
2924bf7f908SShaohui Xie 	{38, {NONE, NONE, NONE, NONE,
293b6240846SYork Sun 		NONE, NONE, QSGMII_FM1_A, NONE} },
294b6240846SYork Sun 	{}
295b6240846SYork Sun };
296b6240846SYork Sun static const struct serdes_config serdes2_cfg_tbl[] = {
297b6240846SYork Sun 	/* SerDes 2 */
29894752f60SShaohui Xie 	{6, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
29994752f60SShaohui Xie 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
30094752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
30194752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
302b6240846SYork Sun 	{7, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
303b6240846SYork Sun 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
304b6240846SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
305b6240846SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
30694752f60SShaohui Xie 	{12, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
30794752f60SShaohui Xie 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
30894752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
30994752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
310b6240846SYork Sun 	{13, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
311b6240846SYork Sun 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
312b6240846SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
313b6240846SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
31494752f60SShaohui Xie 	{15, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
31594752f60SShaohui Xie 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
31694752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
31794752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
318b6240846SYork Sun 	{16, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
319b6240846SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
320b6240846SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
321b6240846SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
32294752f60SShaohui Xie 	{21, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
32394752f60SShaohui Xie 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
32494752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
32594752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
326b6240846SYork Sun 	{22, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
327b6240846SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
328b6240846SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
329b6240846SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
33094752f60SShaohui Xie 	{24, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
33194752f60SShaohui Xie 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
33294752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
33394752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
334b6240846SYork Sun 	{25, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
335b6240846SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
336b6240846SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
337b6240846SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
338b6240846SYork Sun 	{26, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
339b6240846SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
340b6240846SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
341b6240846SYork Sun 		NONE, NONE} },
34294752f60SShaohui Xie 	{27, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
34394752f60SShaohui Xie 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
34494752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
34594752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
346b6240846SYork Sun 	{28, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
347b6240846SYork Sun 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
348b6240846SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
349b6240846SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
35094752f60SShaohui Xie 	{35, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
35194752f60SShaohui Xie 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
35294752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
35394752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
354b6240846SYork Sun 	{36, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
355b6240846SYork Sun 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
356b6240846SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
357b6240846SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
35894752f60SShaohui Xie 	{37, {NONE, NONE, QSGMII_FM2_B, NONE,
3594bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
360b6240846SYork Sun 	{38, {NONE, NONE, QSGMII_FM2_B, NONE,
3614bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
36294752f60SShaohui Xie 	{39, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
36394752f60SShaohui Xie 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
3644bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
365b6240846SYork Sun 	{40, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
366b6240846SYork Sun 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
3674bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
36894752f60SShaohui Xie 	{45, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
36994752f60SShaohui Xie 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
3704bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
371b6240846SYork Sun 	{46, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
372b6240846SYork Sun 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
3734bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
37494752f60SShaohui Xie 	{47, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
37594752f60SShaohui Xie 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
3764bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
377b6240846SYork Sun 	{48, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
378b6240846SYork Sun 		SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
3794bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
38094752f60SShaohui Xie 	{49, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
38194752f60SShaohui Xie 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
3824bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
383b6240846SYork Sun 	{50, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
384b6240846SYork Sun 		XAUI_FM2_MAC9, XAUI_FM2_MAC9,
3854bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
38694752f60SShaohui Xie 	{51, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
38794752f60SShaohui Xie 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
3884bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
389b6240846SYork Sun 	{52, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
390b6240846SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
3914bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
39294752f60SShaohui Xie 	{53, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
39394752f60SShaohui Xie 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
3944bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
395b6240846SYork Sun 	{54, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
396b6240846SYork Sun 		HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
3974bf7f908SShaohui Xie 		NONE, NONE, QSGMII_FM2_A, NONE} },
39894752f60SShaohui Xie 	{55, {NONE, XFI_FM1_MAC10,
39994752f60SShaohui Xie 		XFI_FM2_MAC10, NONE,
40094752f60SShaohui Xie 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
40194752f60SShaohui Xie 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
402b6240846SYork Sun 	{56, {NONE, XFI_FM1_MAC10,
403b6240846SYork Sun 		XFI_FM2_MAC10, NONE,
404b6240846SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
405b6240846SYork Sun 		SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
406b6240846SYork Sun 	{57, {NONE, XFI_FM1_MAC10,
407b6240846SYork Sun 		XFI_FM2_MAC10, NONE,
408b6240846SYork Sun 		SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
409b6240846SYork Sun 		NONE, NONE} },
410b6240846SYork Sun 	{}
411b6240846SYork Sun };
412b6240846SYork Sun static const struct serdes_config serdes3_cfg_tbl[] = {
413b6240846SYork Sun 	/* SerDes 3 */
41494752f60SShaohui Xie 	{1, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1} },
415b6240846SYork Sun 	{2, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1} },
41694752f60SShaohui Xie 	{3, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE2, PCIE2, PCIE2, PCIE2} },
417b6240846SYork Sun 	{4, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE2, PCIE2, PCIE2, PCIE2} },
41894752f60SShaohui Xie 	{5, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1} },
419b6240846SYork Sun 	{6, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1} },
4204bf7f908SShaohui Xie 	{7, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1} },
4214bf7f908SShaohui Xie 	{8, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1} },
422b6240846SYork Sun 	{9, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
423b6240846SYork Sun 		INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN} },
424b6240846SYork Sun 	{10, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
425b6240846SYork Sun 		INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN} },
4264bf7f908SShaohui Xie 	{11, {NONE, NONE, NONE, NONE,
42794752f60SShaohui Xie 		PCIE2, PCIE2, PCIE2, PCIE2} },
4284bf7f908SShaohui Xie 	{12, {NONE, NONE, NONE, NONE,
429b6240846SYork Sun 		PCIE2, PCIE2, PCIE2, PCIE2} },
43094752f60SShaohui Xie 	{13, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
43194752f60SShaohui Xie 		PCIE2, PCIE2, PCIE2, PCIE2} },
432b6240846SYork Sun 	{14, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
433b6240846SYork Sun 		PCIE2, PCIE2, PCIE2, PCIE2} },
4344bf7f908SShaohui Xie 	{15, {NONE, NONE, NONE, NONE,
43594752f60SShaohui Xie 		SRIO1, SRIO1, SRIO1, SRIO1} },
4364bf7f908SShaohui Xie 	{16, {NONE, NONE, NONE, NONE,
437b6240846SYork Sun 		SRIO1, SRIO1, SRIO1, SRIO1} },
4384bf7f908SShaohui Xie 	{17, {NONE, NONE, NONE, NONE,
439b6240846SYork Sun 		SRIO1, SRIO1, SRIO1, SRIO1} },
44094752f60SShaohui Xie 	{18, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
44194752f60SShaohui Xie 		SRIO1, SRIO1, SRIO1, SRIO1} },
442b6240846SYork Sun 	{19, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
443b6240846SYork Sun 		SRIO1, SRIO1, SRIO1, SRIO1} },
444b6240846SYork Sun 	{20, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
4454bf7f908SShaohui Xie 		SRIO1, SRIO1, SRIO1, SRIO1} },
446b6240846SYork Sun 	{}
447b6240846SYork Sun };
448b6240846SYork Sun static const struct serdes_config serdes4_cfg_tbl[] = {
449b6240846SYork Sun 	/* SerDes 4 */
4504bf7f908SShaohui Xie 	{3, {NONE, NONE, NONE, NONE, PCIE4, PCIE4, PCIE4, PCIE4} },
4514bf7f908SShaohui Xie 	{4, {NONE, NONE, NONE, NONE, PCIE4, PCIE4, PCIE4, PCIE4} },
4524bf7f908SShaohui Xie 	{5, {NONE, NONE, NONE, NONE, SRIO2, SRIO2, SRIO2, SRIO2} },
4534bf7f908SShaohui Xie 	{6, {NONE, NONE, NONE, NONE, SRIO2, SRIO2, SRIO2, SRIO2} },
4544bf7f908SShaohui Xie 	{7, {NONE, NONE, NONE, NONE, SRIO2, SRIO2, SRIO2, SRIO2} },
4554bf7f908SShaohui Xie 	{8, {NONE, NONE, NONE, NONE, SRIO2, SRIO2, SRIO2, SRIO2} },
4564bf7f908SShaohui Xie 	{9, {NONE, NONE, NONE, NONE, PCIE4, PCIE4, SATA1, SATA2} },
4574bf7f908SShaohui Xie 	{10, {NONE, NONE, NONE, NONE, PCIE4, PCIE4, SATA1, SATA2} },
4584bf7f908SShaohui Xie 	{11, {NONE, NONE, NONE, NONE, AURORA, AURORA, SATA1, SATA2} },
4594bf7f908SShaohui Xie 	{12, {NONE, NONE, NONE, NONE, AURORA, AURORA, SATA1, SATA2} },
4604bf7f908SShaohui Xie 	{13, {NONE, NONE, NONE, NONE, AURORA, AURORA, SRIO2, SRIO2} },
4614bf7f908SShaohui Xie 	{14, {NONE, NONE, NONE, NONE, AURORA, AURORA, SRIO2, SRIO2} },
4624bf7f908SShaohui Xie 	{15, {NONE, NONE, NONE, NONE, AURORA, AURORA, SRIO2, SRIO2} },
4634bf7f908SShaohui Xie 	{16, {NONE, NONE, NONE, NONE, AURORA, AURORA, SRIO2, SRIO2} },
4644bf7f908SShaohui Xie 	{18, {NONE, NONE, NONE, NONE, AURORA, AURORA, AURORA, AURORA} },
465b6240846SYork Sun 	{}
466b6240846SYork Sun }
467b6240846SYork Sun ;
468b6240846SYork Sun #else
469b6240846SYork Sun #error "Need to define SerDes protocol"
470b6240846SYork Sun #endif
471924859acSYork Sun static const struct serdes_config *serdes_cfg_tbl[] = {
4729e758758SYork Sun 	serdes1_cfg_tbl,
4739e758758SYork Sun 	serdes2_cfg_tbl,
4749e758758SYork Sun 	serdes3_cfg_tbl,
4759e758758SYork Sun 	serdes4_cfg_tbl,
4769e758758SYork Sun };
4779e758758SYork Sun 
serdes_get_prtcl(int serdes,int cfg,int lane)4789e758758SYork Sun enum srds_prtcl serdes_get_prtcl(int serdes, int cfg, int lane)
4799e758758SYork Sun {
480924859acSYork Sun 	const struct serdes_config *ptr;
4819e758758SYork Sun 
4829e758758SYork Sun 	if (serdes >= ARRAY_SIZE(serdes_cfg_tbl))
4839e758758SYork Sun 		return 0;
4849e758758SYork Sun 
4859e758758SYork Sun 	ptr = serdes_cfg_tbl[serdes];
4869e758758SYork Sun 	while (ptr->protocol) {
4879e758758SYork Sun 		if (ptr->protocol == cfg)
4889e758758SYork Sun 			return ptr->lanes[lane];
4899e758758SYork Sun 		ptr++;
4909e758758SYork Sun 	}
4919e758758SYork Sun 	return 0;
4929e758758SYork Sun }
4939e758758SYork Sun 
is_serdes_prtcl_valid(int serdes,u32 prtcl)4949e758758SYork Sun int is_serdes_prtcl_valid(int serdes, u32 prtcl)
4959e758758SYork Sun {
4969e758758SYork Sun 	int i;
497924859acSYork Sun 	const struct serdes_config *ptr;
4989e758758SYork Sun 
4999e758758SYork Sun 	if (serdes >= ARRAY_SIZE(serdes_cfg_tbl))
5009e758758SYork Sun 		return 0;
5019e758758SYork Sun 
5029e758758SYork Sun 	ptr = serdes_cfg_tbl[serdes];
5039e758758SYork Sun 	while (ptr->protocol) {
5049e758758SYork Sun 		if (ptr->protocol == prtcl)
5059e758758SYork Sun 			break;
5069e758758SYork Sun 		ptr++;
5079e758758SYork Sun 	}
5089e758758SYork Sun 
5099e758758SYork Sun 	if (!ptr->protocol)
5109e758758SYork Sun 		return 0;
5119e758758SYork Sun 
5129e758758SYork Sun 	for (i = 0; i < SRDS_MAX_LANES; i++) {
5139e758758SYork Sun 		if (ptr->lanes[i] != NONE)
5149e758758SYork Sun 			return 1;
5159e758758SYork Sun 	}
5169e758758SYork Sun 
5179e758758SYork Sun 	return 0;
5189e758758SYork Sun }
519