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