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