1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (C) 2018 Marvell International Ltd. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu * https://spdx.org/licenses 6*91f16700Schasinglulu */ 7*91f16700Schasinglulu 8*91f16700Schasinglulu #ifndef __PHY_PORTING_LAYER_H 9*91f16700Schasinglulu #define __PHY_PORTING_LAYER_H 10*91f16700Schasinglulu 11*91f16700Schasinglulu 12*91f16700Schasinglulu #define MAX_LANE_NR 6 13*91f16700Schasinglulu #define XFI_PARAMS static const struct xfi_params 14*91f16700Schasinglulu 15*91f16700Schasinglulu 16*91f16700Schasinglulu XFI_PARAMS xfi_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = { 17*91f16700Schasinglulu /* AP0 */ 18*91f16700Schasinglulu { 19*91f16700Schasinglulu /* CP 0 */ 20*91f16700Schasinglulu { 21*91f16700Schasinglulu { 0 }, /* Comphy0 not relevant*/ 22*91f16700Schasinglulu { 0 }, /* Comphy1 not relevant*/ 23*91f16700Schasinglulu { .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf, 24*91f16700Schasinglulu .align90 = 0x5f, 25*91f16700Schasinglulu .g1_dfe_res = 0x2, .g1_amp = 0x1c, 26*91f16700Schasinglulu .g1_emph = 0xe, 27*91f16700Schasinglulu .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1, 28*91f16700Schasinglulu .g1_tx_emph_en = 0x1, 29*91f16700Schasinglulu .g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1, 30*91f16700Schasinglulu .g1_rx_selmufi = 0x0, 31*91f16700Schasinglulu .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2, 32*91f16700Schasinglulu .valid = 1 }, /* Comphy2 */ 33*91f16700Schasinglulu { 0 }, /* Comphy3 not relevant*/ 34*91f16700Schasinglulu { .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf, 35*91f16700Schasinglulu .align90 = 0x5f, 36*91f16700Schasinglulu .g1_dfe_res = 0x2, .g1_amp = 0x1c, 37*91f16700Schasinglulu .g1_emph = 0xe, 38*91f16700Schasinglulu .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1, 39*91f16700Schasinglulu .g1_tx_emph_en = 0x1, 40*91f16700Schasinglulu .g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1, 41*91f16700Schasinglulu .g1_rx_selmufi = 0x0, 42*91f16700Schasinglulu .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2, 43*91f16700Schasinglulu .valid = 1 }, /* Comphy4 */ 44*91f16700Schasinglulu { 0 }, /* Comphy5 not relevant*/ 45*91f16700Schasinglulu }, 46*91f16700Schasinglulu #if CP_NUM > 1 47*91f16700Schasinglulu /* CP 1 */ 48*91f16700Schasinglulu { 49*91f16700Schasinglulu { 0 }, /* Comphy0 not relevant*/ 50*91f16700Schasinglulu { 0 }, /* Comphy1 not relevant*/ 51*91f16700Schasinglulu { .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf, 52*91f16700Schasinglulu .align90 = 0x5f, 53*91f16700Schasinglulu .g1_dfe_res = 0x2, .g1_amp = 0x1c, 54*91f16700Schasinglulu .g1_emph = 0xe, 55*91f16700Schasinglulu .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1, 56*91f16700Schasinglulu .g1_tx_emph_en = 0x1, 57*91f16700Schasinglulu .g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1, 58*91f16700Schasinglulu .g1_rx_selmufi = 0x0, 59*91f16700Schasinglulu .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2, 60*91f16700Schasinglulu .valid = 1 }, /* Comphy2 */ 61*91f16700Schasinglulu { 0 }, /* Comphy3 not relevant*/ 62*91f16700Schasinglulu /* different from defaults */ 63*91f16700Schasinglulu { .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf, 64*91f16700Schasinglulu .align90 = 0x5f, 65*91f16700Schasinglulu .g1_dfe_res = 0x2, .g1_amp = 0xc, 66*91f16700Schasinglulu .g1_emph = 0x5, 67*91f16700Schasinglulu .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1, 68*91f16700Schasinglulu .g1_tx_emph_en = 0x1, 69*91f16700Schasinglulu .g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1, 70*91f16700Schasinglulu .g1_rx_selmufi = 0x0, 71*91f16700Schasinglulu .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2, 72*91f16700Schasinglulu .valid = 1}, /* Comphy4 */ 73*91f16700Schasinglulu { 0 }, /* Comphy5 not relevant*/ 74*91f16700Schasinglulu }, 75*91f16700Schasinglulu #if CP_NUM > 2 76*91f16700Schasinglulu /* CP 2 */ 77*91f16700Schasinglulu { 78*91f16700Schasinglulu { 0 }, /* Comphy0 not relevant*/ 79*91f16700Schasinglulu { 0 }, /* Comphy1 not relevant*/ 80*91f16700Schasinglulu { .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf, 81*91f16700Schasinglulu .align90 = 0x5f, 82*91f16700Schasinglulu .g1_dfe_res = 0x2, .g1_amp = 0x1c, 83*91f16700Schasinglulu .g1_emph = 0xe, 84*91f16700Schasinglulu .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1, 85*91f16700Schasinglulu .g1_tx_emph_en = 0x1, 86*91f16700Schasinglulu .g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1, 87*91f16700Schasinglulu .g1_rx_selmufi = 0x0, 88*91f16700Schasinglulu .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2, 89*91f16700Schasinglulu .valid = 1 }, /* Comphy2 */ 90*91f16700Schasinglulu { 0 }, /* Comphy3 not relevant*/ 91*91f16700Schasinglulu { .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf, 92*91f16700Schasinglulu .align90 = 0x5f, 93*91f16700Schasinglulu .g1_dfe_res = 0x2, .g1_amp = 0x1c, 94*91f16700Schasinglulu .g1_emph = 0xe, 95*91f16700Schasinglulu .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1, 96*91f16700Schasinglulu .g1_tx_emph_en = 0x1, 97*91f16700Schasinglulu .g1_tx_emph = 0x0, .g1_rx_selmuff = 0x1, 98*91f16700Schasinglulu .g1_rx_selmufi = 0x0, 99*91f16700Schasinglulu .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2, 100*91f16700Schasinglulu .valid = 1 }, /* Comphy4 */ 101*91f16700Schasinglulu { 0 }, /* Comphy5 not relevant*/ 102*91f16700Schasinglulu }, 103*91f16700Schasinglulu #endif 104*91f16700Schasinglulu #endif 105*91f16700Schasinglulu }, 106*91f16700Schasinglulu }; 107*91f16700Schasinglulu 108*91f16700Schasinglulu #define SATA_PARAMS static const struct sata_params 109*91f16700Schasinglulu SATA_PARAMS sata_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = { 110*91f16700Schasinglulu [0 ... AP_NUM-1][0 ... CP_NUM-1][0 ... MAX_LANE_NR-1] = { 111*91f16700Schasinglulu .g1_amp = 0x8, .g2_amp = 0xa, 112*91f16700Schasinglulu .g3_amp = 0x1e, 113*91f16700Schasinglulu .g1_emph = 0x1, .g2_emph = 0x2, 114*91f16700Schasinglulu .g3_emph = 0xe, 115*91f16700Schasinglulu .g1_emph_en = 0x1, .g2_emph_en = 0x1, 116*91f16700Schasinglulu .g3_emph_en = 0x1, 117*91f16700Schasinglulu .g1_tx_amp_adj = 0x1, .g2_tx_amp_adj = 0x1, 118*91f16700Schasinglulu .g3_tx_amp_adj = 0x1, 119*91f16700Schasinglulu .g1_tx_emph_en = 0x0, .g2_tx_emph_en = 0x0, 120*91f16700Schasinglulu .g3_tx_emph_en = 0x0, 121*91f16700Schasinglulu .g1_tx_emph = 0x1, .g2_tx_emph = 0x1, 122*91f16700Schasinglulu .g3_tx_emph = 0x1, 123*91f16700Schasinglulu .g3_dfe_res = 0x1, .g3_ffe_res_sel = 0x4, 124*91f16700Schasinglulu .g3_ffe_cap_sel = 0xf, 125*91f16700Schasinglulu .align90 = 0x61, 126*91f16700Schasinglulu .g1_rx_selmuff = 0x3, .g2_rx_selmuff = 0x3, 127*91f16700Schasinglulu .g3_rx_selmuff = 0x3, 128*91f16700Schasinglulu .g1_rx_selmufi = 0x0, .g2_rx_selmufi = 0x0, 129*91f16700Schasinglulu .g3_rx_selmufi = 0x3, 130*91f16700Schasinglulu .g1_rx_selmupf = 0x1, .g2_rx_selmupf = 0x1, 131*91f16700Schasinglulu .g3_rx_selmupf = 0x2, 132*91f16700Schasinglulu .g1_rx_selmupi = 0x0, .g2_rx_selmupi = 0x0, 133*91f16700Schasinglulu .g3_rx_selmupi = 0x2, 134*91f16700Schasinglulu .polarity_invert = COMPHY_POLARITY_NO_INVERT, 135*91f16700Schasinglulu .valid = 0x1 136*91f16700Schasinglulu }, 137*91f16700Schasinglulu }; 138*91f16700Schasinglulu 139*91f16700Schasinglulu static const struct usb_params 140*91f16700Schasinglulu usb_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = { 141*91f16700Schasinglulu [0 ... AP_NUM-1][0 ... CP_NUM-1][0 ... MAX_LANE_NR-1] = { 142*91f16700Schasinglulu .polarity_invert = COMPHY_POLARITY_NO_INVERT 143*91f16700Schasinglulu }, 144*91f16700Schasinglulu }; 145*91f16700Schasinglulu #endif /* __PHY_PORTING_LAYER_H */ 146