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 #define MAX_LANE_NR 6 12*91f16700Schasinglulu 13*91f16700Schasinglulu static const struct xfi_params 14*91f16700Schasinglulu xfi_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = { 15*91f16700Schasinglulu /* AP0 */ 16*91f16700Schasinglulu { 17*91f16700Schasinglulu /* CP 0 */ 18*91f16700Schasinglulu { 19*91f16700Schasinglulu { 0 }, /* Comphy0 */ 20*91f16700Schasinglulu { 0 }, /* Comphy1 */ 21*91f16700Schasinglulu { .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf, 22*91f16700Schasinglulu .align90 = 0x5f, 23*91f16700Schasinglulu .g1_dfe_res = 0x2, .g1_amp = 0x1c, .g1_emph = 0xe, 24*91f16700Schasinglulu .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1, 25*91f16700Schasinglulu .g1_tx_emph_en = 0x1, .g1_tx_emph = 0x0, 26*91f16700Schasinglulu .g1_rx_selmuff = 0x1, .g1_rx_selmufi = 0x0, 27*91f16700Schasinglulu .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2, 28*91f16700Schasinglulu .valid = 0x1 }, /* Comphy2 */ 29*91f16700Schasinglulu { 0 }, /* Comphy3 */ 30*91f16700Schasinglulu { .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf, 31*91f16700Schasinglulu .align90 = 0x5f, 32*91f16700Schasinglulu .g1_dfe_res = 0x2, .g1_amp = 0x1c, .g1_emph = 0xe, 33*91f16700Schasinglulu .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1, 34*91f16700Schasinglulu .g1_tx_emph_en = 0x1, .g1_tx_emph = 0x0, 35*91f16700Schasinglulu .g1_rx_selmuff = 0x1, .g1_rx_selmufi = 0x0, 36*91f16700Schasinglulu .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2, 37*91f16700Schasinglulu .valid = 0x1 }, /* Comphy4 */ 38*91f16700Schasinglulu { 0 }, /* Comphy5 */ 39*91f16700Schasinglulu }, 40*91f16700Schasinglulu 41*91f16700Schasinglulu /* CP 1 */ 42*91f16700Schasinglulu { 43*91f16700Schasinglulu { 0 }, /* Comphy0 */ 44*91f16700Schasinglulu { 0 }, /* Comphy1 */ 45*91f16700Schasinglulu { .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf, 46*91f16700Schasinglulu .align90 = 0x5f, 47*91f16700Schasinglulu .g1_dfe_res = 0x2, .g1_amp = 0x1c, .g1_emph = 0xe, 48*91f16700Schasinglulu .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1, 49*91f16700Schasinglulu .g1_tx_emph_en = 0x1, .g1_tx_emph = 0x0, 50*91f16700Schasinglulu .g1_rx_selmuff = 0x1, .g1_rx_selmufi = 0x0, 51*91f16700Schasinglulu .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2, 52*91f16700Schasinglulu .valid = 0x1 }, /* Comphy2 */ 53*91f16700Schasinglulu { 0 }, /* Comphy3 */ 54*91f16700Schasinglulu { .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf, 55*91f16700Schasinglulu .align90 = 0x5f, 56*91f16700Schasinglulu .g1_dfe_res = 0x2, .g1_amp = 0x1c, .g1_emph = 0xe, 57*91f16700Schasinglulu .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1, 58*91f16700Schasinglulu .g1_tx_emph_en = 0x1, .g1_tx_emph = 0x0, 59*91f16700Schasinglulu .g1_rx_selmuff = 0x1, .g1_rx_selmufi = 0x0, 60*91f16700Schasinglulu .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2, 61*91f16700Schasinglulu .valid = 0x1 }, /* Comphy4 */ 62*91f16700Schasinglulu { 0 }, /* Comphy5 */ 63*91f16700Schasinglulu }, 64*91f16700Schasinglulu }, 65*91f16700Schasinglulu }; 66*91f16700Schasinglulu 67*91f16700Schasinglulu static const struct sata_params 68*91f16700Schasinglulu sata_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = { 69*91f16700Schasinglulu /* AP0 */ 70*91f16700Schasinglulu { 71*91f16700Schasinglulu /* CP 0 */ 72*91f16700Schasinglulu { 73*91f16700Schasinglulu { 0 }, /* Comphy0 */ 74*91f16700Schasinglulu { .g1_amp = 0x8, .g2_amp = 0xa, .g3_amp = 0x1e, 75*91f16700Schasinglulu .g1_emph = 0x1, .g2_emph = 0x2, .g3_emph = 0xe, 76*91f16700Schasinglulu .g1_emph_en = 0x1, .g2_emph_en = 0x1, 77*91f16700Schasinglulu .g3_emph_en = 0x1, 78*91f16700Schasinglulu .g1_tx_amp_adj = 0x1, .g2_tx_amp_adj = 0x1, 79*91f16700Schasinglulu .g3_tx_amp_adj = 0x1, 80*91f16700Schasinglulu .g1_tx_emph_en = 0x0, .g2_tx_emph_en = 0x0, 81*91f16700Schasinglulu .g3_tx_emph_en = 0x0, 82*91f16700Schasinglulu .g1_tx_emph = 0x1, .g2_tx_emph = 0x1, 83*91f16700Schasinglulu .g3_tx_emph = 0x1, 84*91f16700Schasinglulu .g3_dfe_res = 0x1, .g3_ffe_res_sel = 0x4, 85*91f16700Schasinglulu .g3_ffe_cap_sel = 0xf, 86*91f16700Schasinglulu .align90 = 0x61, 87*91f16700Schasinglulu .g1_rx_selmuff = 0x3, .g2_rx_selmuff = 0x3, 88*91f16700Schasinglulu .g3_rx_selmuff = 0x3, 89*91f16700Schasinglulu .g1_rx_selmufi = 0x0, .g2_rx_selmufi = 0x0, 90*91f16700Schasinglulu .g3_rx_selmufi = 0x3, 91*91f16700Schasinglulu .g1_rx_selmupf = 0x1, .g2_rx_selmupf = 0x1, 92*91f16700Schasinglulu .g3_rx_selmupf = 0x2, 93*91f16700Schasinglulu .g1_rx_selmupi = 0x0, .g2_rx_selmupi = 0x0, 94*91f16700Schasinglulu .g3_rx_selmupi = 0x2, 95*91f16700Schasinglulu .polarity_invert = COMPHY_POLARITY_NO_INVERT, 96*91f16700Schasinglulu .valid = 0x1 97*91f16700Schasinglulu }, /* Comphy1 */ 98*91f16700Schasinglulu { 0 }, /* Comphy2 */ 99*91f16700Schasinglulu { .g1_amp = 0x8, .g2_amp = 0xa, .g3_amp = 0x1e, 100*91f16700Schasinglulu .g1_emph = 0x1, .g2_emph = 0x2, .g3_emph = 0xe, 101*91f16700Schasinglulu .g1_emph_en = 0x1, .g2_emph_en = 0x1, 102*91f16700Schasinglulu .g3_emph_en = 0x1, 103*91f16700Schasinglulu .g1_tx_amp_adj = 0x1, .g2_tx_amp_adj = 0x1, 104*91f16700Schasinglulu .g3_tx_amp_adj = 0x1, 105*91f16700Schasinglulu .g1_tx_emph_en = 0x0, .g2_tx_emph_en = 0x0, 106*91f16700Schasinglulu .g3_tx_emph_en = 0x0, 107*91f16700Schasinglulu .g1_tx_emph = 0x1, .g2_tx_emph = 0x1, 108*91f16700Schasinglulu .g3_tx_emph = 0x1, 109*91f16700Schasinglulu .g3_dfe_res = 0x1, .g3_ffe_res_sel = 0x4, 110*91f16700Schasinglulu .g3_ffe_cap_sel = 0xf, 111*91f16700Schasinglulu .align90 = 0x61, 112*91f16700Schasinglulu .g1_rx_selmuff = 0x3, .g2_rx_selmuff = 0x3, 113*91f16700Schasinglulu .g3_rx_selmuff = 0x3, 114*91f16700Schasinglulu .g1_rx_selmufi = 0x0, .g2_rx_selmufi = 0x0, 115*91f16700Schasinglulu .g3_rx_selmufi = 0x3, 116*91f16700Schasinglulu .g1_rx_selmupf = 0x1, .g2_rx_selmupf = 0x1, 117*91f16700Schasinglulu .g3_rx_selmupf = 0x2, 118*91f16700Schasinglulu .g1_rx_selmupi = 0x0, .g2_rx_selmupi = 0x0, 119*91f16700Schasinglulu .g3_rx_selmupi = 0x2, 120*91f16700Schasinglulu .polarity_invert = COMPHY_POLARITY_NO_INVERT, 121*91f16700Schasinglulu .valid = 0x1 122*91f16700Schasinglulu }, /* Comphy3 */ 123*91f16700Schasinglulu { 0 }, /* Comphy4 */ 124*91f16700Schasinglulu { 0 }, /* Comphy5 */ 125*91f16700Schasinglulu }, 126*91f16700Schasinglulu 127*91f16700Schasinglulu /* CP 1 */ 128*91f16700Schasinglulu { 129*91f16700Schasinglulu { 0 }, /* Comphy0 */ 130*91f16700Schasinglulu { .g1_amp = 0x8, .g2_amp = 0xa, .g3_amp = 0x1e, 131*91f16700Schasinglulu .g1_emph = 0x1, .g2_emph = 0x2, .g3_emph = 0xe, 132*91f16700Schasinglulu .g1_emph_en = 0x1, .g2_emph_en = 0x1, 133*91f16700Schasinglulu .g3_emph_en = 0x1, 134*91f16700Schasinglulu .g1_tx_amp_adj = 0x1, .g2_tx_amp_adj = 0x1, 135*91f16700Schasinglulu .g3_tx_amp_adj = 0x1, 136*91f16700Schasinglulu .g1_tx_emph_en = 0x0, .g2_tx_emph_en = 0x0, 137*91f16700Schasinglulu .g3_tx_emph_en = 0x0, 138*91f16700Schasinglulu .g1_tx_emph = 0x1, .g2_tx_emph = 0x1, 139*91f16700Schasinglulu .g3_tx_emph = 0x1, 140*91f16700Schasinglulu .g3_dfe_res = 0x1, .g3_ffe_res_sel = 0x4, 141*91f16700Schasinglulu .g3_ffe_cap_sel = 0xf, 142*91f16700Schasinglulu .align90 = 0x61, 143*91f16700Schasinglulu .g1_rx_selmuff = 0x3, .g2_rx_selmuff = 0x3, 144*91f16700Schasinglulu .g3_rx_selmuff = 0x3, 145*91f16700Schasinglulu .g1_rx_selmufi = 0x0, .g2_rx_selmufi = 0x0, 146*91f16700Schasinglulu .g3_rx_selmufi = 0x3, 147*91f16700Schasinglulu .g1_rx_selmupf = 0x1, .g2_rx_selmupf = 0x1, 148*91f16700Schasinglulu .g3_rx_selmupf = 0x2, 149*91f16700Schasinglulu .g1_rx_selmupi = 0x0, .g2_rx_selmupi = 0x0, 150*91f16700Schasinglulu .g3_rx_selmupi = 0x2, 151*91f16700Schasinglulu .polarity_invert = COMPHY_POLARITY_NO_INVERT, 152*91f16700Schasinglulu .valid = 0x1 153*91f16700Schasinglulu }, /* Comphy1 */ 154*91f16700Schasinglulu { 0 }, /* Comphy2 */ 155*91f16700Schasinglulu { .g1_amp = 0x8, .g2_amp = 0xa, .g3_amp = 0x1e, 156*91f16700Schasinglulu .g1_emph = 0x1, .g2_emph = 0x2, .g3_emph = 0xe, 157*91f16700Schasinglulu .g1_emph_en = 0x1, .g2_emph_en = 0x1, 158*91f16700Schasinglulu .g3_emph_en = 0x1, 159*91f16700Schasinglulu .g1_tx_amp_adj = 0x1, .g2_tx_amp_adj = 0x1, 160*91f16700Schasinglulu .g3_tx_amp_adj = 0x1, 161*91f16700Schasinglulu .g1_tx_emph_en = 0x0, .g2_tx_emph_en = 0x0, 162*91f16700Schasinglulu .g3_tx_emph_en = 0x0, 163*91f16700Schasinglulu .g1_tx_emph = 0x1, .g2_tx_emph = 0x1, 164*91f16700Schasinglulu .g3_tx_emph = 0x1, 165*91f16700Schasinglulu .g3_dfe_res = 0x1, .g3_ffe_res_sel = 0x4, 166*91f16700Schasinglulu .g3_ffe_cap_sel = 0xf, 167*91f16700Schasinglulu .align90 = 0x61, 168*91f16700Schasinglulu .g1_rx_selmuff = 0x3, .g2_rx_selmuff = 0x3, 169*91f16700Schasinglulu .g3_rx_selmuff = 0x3, 170*91f16700Schasinglulu .g1_rx_selmufi = 0x0, .g2_rx_selmufi = 0x0, 171*91f16700Schasinglulu .g3_rx_selmufi = 0x3, 172*91f16700Schasinglulu .g1_rx_selmupf = 0x1, .g2_rx_selmupf = 0x1, 173*91f16700Schasinglulu .g3_rx_selmupf = 0x2, 174*91f16700Schasinglulu .g1_rx_selmupi = 0x0, .g2_rx_selmupi = 0x0, 175*91f16700Schasinglulu .g3_rx_selmupi = 0x2, 176*91f16700Schasinglulu .polarity_invert = COMPHY_POLARITY_NO_INVERT, 177*91f16700Schasinglulu .valid = 0x1 178*91f16700Schasinglulu }, /* Comphy3 */ 179*91f16700Schasinglulu { 0 }, /* Comphy4 */ 180*91f16700Schasinglulu { 0 }, /* Comphy5 */ 181*91f16700Schasinglulu 182*91f16700Schasinglulu }, 183*91f16700Schasinglulu }, 184*91f16700Schasinglulu }; 185*91f16700Schasinglulu 186*91f16700Schasinglulu static const struct usb_params 187*91f16700Schasinglulu usb_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = { 188*91f16700Schasinglulu [0 ... AP_NUM-1][0 ... CP_NUM-1][0 ... MAX_LANE_NR-1] = { 189*91f16700Schasinglulu .polarity_invert = COMPHY_POLARITY_NO_INVERT 190*91f16700Schasinglulu }, 191*91f16700Schasinglulu }; 192*91f16700Schasinglulu #endif /* PHY_PORTING_LAYER_H */ 193