xref: /rk3399_ARM-atf/plat/marvell/octeontx/otx2/t91/t9130/board/phy-porting-layer.h (revision eeb77da64684424ef275330e3e15d8350ecc1b07)
12c9d2636SGrzegorz Jaszczyk /*
22c9d2636SGrzegorz Jaszczyk  * Copyright (C) 2018 Marvell International Ltd.
32c9d2636SGrzegorz Jaszczyk  *
42c9d2636SGrzegorz Jaszczyk  * SPDX-License-Identifier:     BSD-3-Clause
52c9d2636SGrzegorz Jaszczyk  * https://spdx.org/licenses
62c9d2636SGrzegorz Jaszczyk  */
72c9d2636SGrzegorz Jaszczyk 
82c9d2636SGrzegorz Jaszczyk #ifndef __PHY_PORTING_LAYER_H
92c9d2636SGrzegorz Jaszczyk #define __PHY_PORTING_LAYER_H
102c9d2636SGrzegorz Jaszczyk 
112c9d2636SGrzegorz Jaszczyk 
122c9d2636SGrzegorz Jaszczyk #define MAX_LANE_NR		6
132c9d2636SGrzegorz Jaszczyk #define XFI_PARAMS static const struct xfi_params
142c9d2636SGrzegorz Jaszczyk 
152c9d2636SGrzegorz Jaszczyk 
162c9d2636SGrzegorz Jaszczyk XFI_PARAMS xfi_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = {
172c9d2636SGrzegorz Jaszczyk 	/* AP0 */
182c9d2636SGrzegorz Jaszczyk 	{
192c9d2636SGrzegorz Jaszczyk 		/* CP 0 */
202c9d2636SGrzegorz Jaszczyk 		{
212c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy0 not relevant*/
222c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy1 not relevant*/
232c9d2636SGrzegorz Jaszczyk 			{ .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf,
242c9d2636SGrzegorz Jaszczyk 					.align90 = 0x5f,
252c9d2636SGrzegorz Jaszczyk 				.g1_dfe_res = 0x2, .g1_amp = 0x1c,
262c9d2636SGrzegorz Jaszczyk 				.g1_emph = 0xe,
272c9d2636SGrzegorz Jaszczyk 				.g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1,
282c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph_en = 0x1,
292c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1,
302c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmufi = 0x0,
312c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2,
322c9d2636SGrzegorz Jaszczyk 				.valid = 1 }, /* Comphy2 */
332c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy3 not relevant*/
342c9d2636SGrzegorz Jaszczyk 			{ .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf,
352c9d2636SGrzegorz Jaszczyk 					.align90 = 0x5f,
362c9d2636SGrzegorz Jaszczyk 				.g1_dfe_res = 0x2, .g1_amp = 0x1c,
372c9d2636SGrzegorz Jaszczyk 				.g1_emph = 0xe,
382c9d2636SGrzegorz Jaszczyk 				.g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1,
392c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph_en = 0x1,
402c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1,
412c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmufi = 0x0,
422c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2,
432c9d2636SGrzegorz Jaszczyk 				.valid = 1 }, /* Comphy4 */
442c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy5 not relevant*/
452c9d2636SGrzegorz Jaszczyk 		},
462c9d2636SGrzegorz Jaszczyk #if CP_NUM > 1
472c9d2636SGrzegorz Jaszczyk 		/* CP 1 */
482c9d2636SGrzegorz Jaszczyk 		{
492c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy0 not relevant*/
502c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy1 not relevant*/
512c9d2636SGrzegorz Jaszczyk 			{ .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf,
522c9d2636SGrzegorz Jaszczyk 					.align90 = 0x5f,
532c9d2636SGrzegorz Jaszczyk 				.g1_dfe_res = 0x2, .g1_amp = 0x1c,
542c9d2636SGrzegorz Jaszczyk 				.g1_emph = 0xe,
552c9d2636SGrzegorz Jaszczyk 				.g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1,
562c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph_en = 0x1,
572c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1,
582c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmufi = 0x0,
592c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2,
602c9d2636SGrzegorz Jaszczyk 				.valid = 1 }, /* Comphy2 */
612c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy3 not relevant*/
622c9d2636SGrzegorz Jaszczyk 			/* different from defaults */
632c9d2636SGrzegorz Jaszczyk 			{ .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf,
642c9d2636SGrzegorz Jaszczyk 					.align90 = 0x5f,
652c9d2636SGrzegorz Jaszczyk 				.g1_dfe_res = 0x2, .g1_amp = 0xc,
662c9d2636SGrzegorz Jaszczyk 				.g1_emph = 0x5,
672c9d2636SGrzegorz Jaszczyk 				.g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1,
682c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph_en = 0x1,
692c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1,
702c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmufi = 0x0,
712c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2,
722c9d2636SGrzegorz Jaszczyk 				.valid = 1}, /* Comphy4 */
732c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy5 not relevant*/
742c9d2636SGrzegorz Jaszczyk 		},
752c9d2636SGrzegorz Jaszczyk #if CP_NUM > 2
762c9d2636SGrzegorz Jaszczyk 		/* CP 2 */
772c9d2636SGrzegorz Jaszczyk 		{
782c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy0 not relevant*/
792c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy1 not relevant*/
802c9d2636SGrzegorz Jaszczyk 			{ .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf,
812c9d2636SGrzegorz Jaszczyk 					.align90 = 0x5f,
822c9d2636SGrzegorz Jaszczyk 				.g1_dfe_res = 0x2, .g1_amp = 0x1c,
832c9d2636SGrzegorz Jaszczyk 				.g1_emph = 0xe,
842c9d2636SGrzegorz Jaszczyk 				.g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1,
852c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph_en = 0x1,
862c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1,
872c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmufi = 0x0,
882c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2,
892c9d2636SGrzegorz Jaszczyk 				.valid = 1 }, /* Comphy2 */
902c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy3 not relevant*/
912c9d2636SGrzegorz Jaszczyk 			{ .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf,
922c9d2636SGrzegorz Jaszczyk 					.align90 = 0x5f,
932c9d2636SGrzegorz Jaszczyk 				.g1_dfe_res = 0x2, .g1_amp = 0x1c,
942c9d2636SGrzegorz Jaszczyk 				.g1_emph = 0xe,
952c9d2636SGrzegorz Jaszczyk 				.g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1,
962c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph_en = 0x1,
972c9d2636SGrzegorz Jaszczyk 				.g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1,
982c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmufi = 0x0,
992c9d2636SGrzegorz Jaszczyk 				.g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2,
1002c9d2636SGrzegorz Jaszczyk 				.valid = 1 }, /* Comphy4 */
1012c9d2636SGrzegorz Jaszczyk 			{ 0 }, /* Comphy5 not relevant*/
1022c9d2636SGrzegorz Jaszczyk 		},
1032c9d2636SGrzegorz Jaszczyk #endif
1042c9d2636SGrzegorz Jaszczyk #endif
1052c9d2636SGrzegorz Jaszczyk 	},
1062c9d2636SGrzegorz Jaszczyk };
1072c9d2636SGrzegorz Jaszczyk 
1082c9d2636SGrzegorz Jaszczyk #define SATA_PARAMS static const struct sata_params
1092c9d2636SGrzegorz Jaszczyk SATA_PARAMS sata_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = {
1102c9d2636SGrzegorz Jaszczyk 	[0 ... AP_NUM-1][0 ... CP_NUM-1][0 ... MAX_LANE_NR-1] = {
1112c9d2636SGrzegorz Jaszczyk 		.g1_amp = 0x8, .g2_amp = 0xa,
1122c9d2636SGrzegorz Jaszczyk 		.g3_amp = 0x1e,
1132c9d2636SGrzegorz Jaszczyk 		.g1_emph = 0x1, .g2_emph = 0x2,
1142c9d2636SGrzegorz Jaszczyk 		.g3_emph = 0xe,
1152c9d2636SGrzegorz Jaszczyk 		.g1_emph_en = 0x1, .g2_emph_en = 0x1,
1162c9d2636SGrzegorz Jaszczyk 		.g3_emph_en = 0x1,
1172c9d2636SGrzegorz Jaszczyk 		.g1_tx_amp_adj = 0x1, .g2_tx_amp_adj = 0x1,
1182c9d2636SGrzegorz Jaszczyk 		.g3_tx_amp_adj = 0x1,
1192c9d2636SGrzegorz Jaszczyk 		.g1_tx_emph_en = 0x0, .g2_tx_emph_en = 0x0,
1202c9d2636SGrzegorz Jaszczyk 		.g3_tx_emph_en = 0x0,
1212c9d2636SGrzegorz Jaszczyk 		.g1_tx_emph = 0x1, .g2_tx_emph = 0x1,
1222c9d2636SGrzegorz Jaszczyk 		.g3_tx_emph = 0x1,
1232c9d2636SGrzegorz Jaszczyk 		.g3_dfe_res = 0x1, .g3_ffe_res_sel = 0x4,
1242c9d2636SGrzegorz Jaszczyk 		.g3_ffe_cap_sel = 0xf,
1252c9d2636SGrzegorz Jaszczyk 		.align90 = 0x61,
1262c9d2636SGrzegorz Jaszczyk 		.g1_rx_selmuff = 0x3, .g2_rx_selmuff = 0x3,
1272c9d2636SGrzegorz Jaszczyk 		.g3_rx_selmuff = 0x3,
1282c9d2636SGrzegorz Jaszczyk 		.g1_rx_selmufi = 0x0, .g2_rx_selmufi = 0x0,
1292c9d2636SGrzegorz Jaszczyk 		.g3_rx_selmufi = 0x3,
1302c9d2636SGrzegorz Jaszczyk 		.g1_rx_selmupf = 0x1, .g2_rx_selmupf = 0x1,
1312c9d2636SGrzegorz Jaszczyk 		.g3_rx_selmupf = 0x2,
1322c9d2636SGrzegorz Jaszczyk 		.g1_rx_selmupi = 0x0, .g2_rx_selmupi = 0x0,
1332c9d2636SGrzegorz Jaszczyk 		.g3_rx_selmupi = 0x2,
13438f6dacaSGrzegorz Jaszczyk 		.polarity_invert = COMPHY_POLARITY_NO_INVERT,
1352c9d2636SGrzegorz Jaszczyk 		.valid = 0x1
1362c9d2636SGrzegorz Jaszczyk 	},
1372c9d2636SGrzegorz Jaszczyk };
1382c9d2636SGrzegorz Jaszczyk 
139*ff9cfdc0SGrzegorz Jaszczyk static const struct usb_params
140*ff9cfdc0SGrzegorz Jaszczyk 	usb_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = {
141*ff9cfdc0SGrzegorz Jaszczyk 	[0 ... AP_NUM-1][0 ... CP_NUM-1][0 ... MAX_LANE_NR-1] = {
142*ff9cfdc0SGrzegorz Jaszczyk 		.polarity_invert = COMPHY_POLARITY_NO_INVERT
143*ff9cfdc0SGrzegorz Jaszczyk 	},
144*ff9cfdc0SGrzegorz Jaszczyk };
1452c9d2636SGrzegorz Jaszczyk #endif /* __PHY_PORTING_LAYER_H */
146