1 /*
2  * Copyright (c) 2015, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  *
5  * Redistribution and use in source and binary forms, with or without modification,
6  * are permitted provided that the following conditions are met:
7  *
8  * o Redistributions of source code must retain the above copyright notice, this list
9  *   of conditions and the following disclaimer.
10  *
11  * o Redistributions in binary form must reproduce the above copyright notice, this
12  *   list of conditions and the following disclaimer in the documentation and/or
13  *   other materials provided with the distribution.
14  *
15  * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
16  *   contributors may be used to endorse or promote products derived from this
17  *   software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
23  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30 
31 #include "fsl_xcvr.h"
32 
33 /*******************************************************************************
34  * Definitions
35  ******************************************************************************/
36 
37 /*******************************************************************************
38  * Prototypes
39  ******************************************************************************/
40 
41 /*******************************************************************************
42  * Variables
43  ******************************************************************************/
44 
45 /*******************************************************************************
46  * Code
47  ******************************************************************************/
48 const xcvr_common_config_t xcvr_common_config =
49 {
50     /* XCVR_ANA configs */
51     .ana_sy_ctrl1.mask = XCVR_ANALOG_SY_CTRL_1_SY_LPF_FILT_CTRL_MASK,
52     .ana_sy_ctrl1.init = XCVR_ANALOG_SY_CTRL_1_SY_LPF_FILT_CTRL(3), /* PLL Analog Loop Filter */
53 
54 #define hpm_vcm_tx 0
55 #define hpm_vcm_cal 1
56 #define hpm_fdb_res_tx 0
57 #define hpm_fdb_res_cal 1
58 #define modulation_word_manual 0
59 #define mod_disable 0
60 #define hpm_mod_manual 0
61 #define hpm_mod_disable 0
62 #define hpm_sdm_out_manual 0
63 #define hpm_sdm_out_disable 0
64 #define channel_num 0
65 #define boc 0
66 #define bmr 1
67 #define zoc 0
68 #define ctune_ldf_lev 8
69 #define ftf_rx_thrsh 33
70 #define ftw_rx 0
71 #define ftf_tx_thrsh 6
72 #define ftw_tx 0
73 #define freq_count_go 0
74 #define freq_count_time 0
75 #define hpm_sdm_in_manual 0
76 #define hpm_sdm_out_invert 0
77 #define hpm_sdm_in_disable 0
78 #define hpm_lfsr_size 4
79 #define hpm_dth_scl 0
80 #define hpm_dth_en 1
81 #define hpm_integer_scale 0
82 #define hpm_integer_invert 0
83 #define hpm_cal_invert 1
84 #define hpm_mod_in_invert 1
85 #define hpm_cal_not_bumped 0
86 #define hpm_cal_count_scale 0
87 #define hp_cal_disable 0
88 #define hpm_cal_factor_manual 0
89 #define hpm_cal_array_size 1
90 #define hpm_cal_time 0
91 #define hpm_sdm_denom 256
92 #define hpm_count_adjust 0
93 #define pll_ld_manual 0
94 #define pll_ld_disable 0
95 #define lpm_sdm_inv 0
96 #define lpm_disable 0
97 #define lpm_dth_scl 8
98 #define lpm_d_ctrl 1
99 #define lpm_d_ovrd 1
100 #define lpm_scale 8
101 #define lpm_sdm_use_neg 0
102 #define hpm_array_bias 0
103 #define lpm_intg 38
104 #define sdm_map_disable 0
105 #define lpm_sdm_delay 4
106 #define hpm_sdm_delay 0
107 #define hpm_integer_delay 0
108 #define ctune_target_manual 0
109 #define ctune_target_disable 0
110 #define ctune_adjust 0
111 #define ctune_manual 0
112 #define ctune_disable 0
113 
114 /*-------------------------------------------------------------------------------------------------*/
115 
116     .pll_hpm_bump = XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_CAL(hpm_fdb_res_cal) |
117                     XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_TX(hpm_fdb_res_tx) |
118                     XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_CAL(hpm_vcm_cal) |
119                     XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_TX(hpm_vcm_tx),
120 
121 /*-------------------------------------------------------------------------------------------------*/
122 
123     .pll_mod_ctrl = XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_DISABLE(hpm_mod_disable) |
124                     XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_MANUAL(hpm_mod_manual) |
125                     XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_DISABLE(hpm_sdm_out_disable) |
126                     XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_MANUAL(hpm_sdm_out_manual) |
127                     XCVR_PLL_DIG_MOD_CTRL_MOD_DISABLE(mod_disable) |
128                     XCVR_PLL_DIG_MOD_CTRL_MODULATION_WORD_MANUAL(modulation_word_manual),
129 
130 /*-------------------------------------------------------------------------------------------------*/
131 
132     .pll_chan_map = XCVR_PLL_DIG_CHAN_MAP_BMR(bmr) |
133                     XCVR_PLL_DIG_CHAN_MAP_BOC(boc) |
134                     XCVR_PLL_DIG_CHAN_MAP_CHANNEL_NUM(channel_num)
135 #if !RADIO_IS_GEN_2P1
136                   | XCVR_PLL_DIG_CHAN_MAP_ZOC(zoc)
137 #endif /* !RADIO_IS_GEN_2P1 */
138     ,
139 
140 /*-------------------------------------------------------------------------------------------------*/
141 
142     .pll_lock_detect = XCVR_PLL_DIG_LOCK_DETECT_CTUNE_LDF_LEV(ctune_ldf_lev) |
143                        XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_GO(freq_count_go) |
144                        XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_TIME(freq_count_time) |
145                        XCVR_PLL_DIG_LOCK_DETECT_FTF_RX_THRSH(ftf_rx_thrsh) |
146                        XCVR_PLL_DIG_LOCK_DETECT_FTF_TX_THRSH(ftf_tx_thrsh) |
147                        XCVR_PLL_DIG_LOCK_DETECT_FTW_RX(ftw_rx) |
148                        XCVR_PLL_DIG_LOCK_DETECT_FTW_TX(ftw_tx),
149 
150 /*-------------------------------------------------------------------------------------------------*/
151 
152     .pll_hpm_ctrl = XCVR_PLL_DIG_HPM_CTRL_HPM_CAL_INVERT(hpm_cal_invert) |
153                     XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_EN(hpm_dth_en) |
154                     XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_SCL(hpm_dth_scl) |
155                     XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_INVERT(hpm_integer_invert) |
156                     XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_SCALE(hpm_integer_scale) |
157                     XCVR_PLL_DIG_HPM_CTRL_HPM_LFSR_SIZE(hpm_lfsr_size) |
158                     XCVR_PLL_DIG_HPM_CTRL_HPM_MOD_IN_INVERT(hpm_mod_in_invert) |
159                     XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_DISABLE(hpm_sdm_in_disable) |
160                     XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_MANUAL(hpm_sdm_in_manual) |
161                     XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_OUT_INVERT(hpm_sdm_out_invert),
162 /*-------------------------------------------------------------------------------------------------*/
163 #if !RADIO_IS_GEN_2P1
164     .pll_hpmcal_ctrl = XCVR_PLL_DIG_HPMCAL_CTRL_HP_CAL_DISABLE(hp_cal_disable) |
165                        XCVR_PLL_DIG_HPMCAL_CTRL_HPM_CAL_ARRAY_SIZE(hpm_cal_array_size) |
166                        XCVR_PLL_DIG_HPMCAL_CTRL_HPM_CAL_COUNT_SCALE(hpm_cal_count_scale) |
167                        XCVR_PLL_DIG_HPMCAL_CTRL_HPM_CAL_FACTOR_MANUAL(hpm_cal_factor_manual) |
168                        XCVR_PLL_DIG_HPMCAL_CTRL_HPM_CAL_NOT_BUMPED(hpm_cal_not_bumped) |
169                        XCVR_PLL_DIG_HPMCAL_CTRL_HPM_CAL_TIME(hpm_cal_time),
170 #endif /* !RADIO_IS_GEN_2P1 */
171 /*-------------------------------------------------------------------------------------------------*/
172     .pll_hpm_sdm_res = XCVR_PLL_DIG_HPM_SDM_RES_HPM_COUNT_ADJUST(hpm_count_adjust) |
173                        XCVR_PLL_DIG_HPM_SDM_RES_HPM_DENOM(hpm_sdm_denom),
174 /*-------------------------------------------------------------------------------------------------*/
175     .pll_lpm_ctrl = XCVR_PLL_DIG_LPM_CTRL_LPM_D_CTRL(lpm_d_ctrl) |
176                     XCVR_PLL_DIG_LPM_CTRL_LPM_D_OVRD(lpm_d_ovrd) |
177                     XCVR_PLL_DIG_LPM_CTRL_LPM_DISABLE(lpm_disable) |
178                     XCVR_PLL_DIG_LPM_CTRL_LPM_DTH_SCL(lpm_dth_scl) |
179                     XCVR_PLL_DIG_LPM_CTRL_LPM_SCALE(lpm_scale) |
180                     XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_INV(lpm_sdm_inv) |
181                     XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_USE_NEG(lpm_sdm_use_neg) |
182                     XCVR_PLL_DIG_LPM_CTRL_PLL_LD_DISABLE(pll_ld_disable) |
183                     XCVR_PLL_DIG_LPM_CTRL_PLL_LD_MANUAL(pll_ld_manual),
184 /*-------------------------------------------------------------------------------------------------*/
185     .pll_lpm_sdm_ctrl1 = XCVR_PLL_DIG_LPM_SDM_CTRL1_HPM_ARRAY_BIAS(hpm_array_bias) |
186                          XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG(lpm_intg) |
187                          XCVR_PLL_DIG_LPM_SDM_CTRL1_SDM_MAP_DISABLE(sdm_map_disable),
188 /*-------------------------------------------------------------------------------------------------*/
189     .pll_delay_match = XCVR_PLL_DIG_DELAY_MATCH_HPM_INTEGER_DELAY(hpm_integer_delay) |
190                        XCVR_PLL_DIG_DELAY_MATCH_HPM_SDM_DELAY(hpm_sdm_delay) |
191                        XCVR_PLL_DIG_DELAY_MATCH_LPM_SDM_DELAY(lpm_sdm_delay),
192 /*-------------------------------------------------------------------------------------------------*/
193     .pll_ctune_ctrl = XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_ADJUST(ctune_adjust) |
194                       XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_DISABLE(ctune_disable) |
195                       XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_MANUAL(ctune_manual) |
196                       XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_DISABLE(ctune_target_disable) |
197                       XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_MANUAL(ctune_target_manual),
198 /*-------------------------------------------------------------------------------------------------*/
199 
200     /* XCVR_RX_DIG configs */
201     /* NOTE: Clock specific settings are embedded in the mode dependent configs */
202     .rx_dig_ctrl_init = XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_NEGEDGE(0) |
203                         XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_BYPASS(0) |
204 #if !RADIO_IS_GEN_2P1
205                         XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_RAW_EN(0) |
206 #endif /* !RADIO_IS_GEN_2P1 */
207                         XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_POL(0) |
208                         XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_EN(1) |
209                         XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_EN(1) |
210                         XCVR_RX_DIG_RX_DIG_CTRL_RX_AGC_EN(1) |
211                         XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_EN(1) |
212                         XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_CAL_EN(1) |
213                         XCVR_RX_DIG_RX_DIG_CTRL_RX_IQ_SWAP(0) |
214                         XCVR_RX_DIG_RX_DIG_CTRL_RX_DMA_DTEST_EN(0) |
215                         XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HZD_CORR_DIS(1),
216 
217     .agc_ctrl_0_init = XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_EN(1) |
218                        XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_SRC(2) |
219                        XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_EN(1) |
220                        XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_PRE_OR_AA(0) |
221                        XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_EN(1) |
222                        XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_SRC(0) |
223                        XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_BBA_STEP_SZ(2) |
224                        XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_LNA_STEP_SZ(2) |
225                        XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_RSSI_THRESH(0xe7),
226 
227     .agc_ctrl_3_init = XCVR_RX_DIG_AGC_CTRL_3_AGC_UNFREEZE_TIME(21) |
228                        XCVR_RX_DIG_AGC_CTRL_3_AGC_PDET_LO_DLY(2) |
229                        XCVR_RX_DIG_AGC_CTRL_3_AGC_RSSI_DELT_H2S(20) |
230                        XCVR_RX_DIG_AGC_CTRL_3_AGC_H2S_STEP_SZ(6) |
231                        XCVR_RX_DIG_AGC_CTRL_3_AGC_UP_STEP_SZ(2),
232 
233     /* DCOC configs */
234     .dcoc_ctrl_0_init_26mhz = XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_DURATION(16) | /* Only the duration changes between 26MHz and 32MHz ref osc settings */
235 #if (RADIO_IS_GEN_2P1)
236                               XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_CHECK_EN(0) |
237 #endif /* (RADIO_IS_GEN_2P1) */
238                               XCVR_RX_DIG_DCOC_CTRL_0_TRACK_FROM_ZERO(0) |
239                               XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_EN(1) |
240                               XCVR_RX_DIG_DCOC_CTRL_0_TZA_CORR_POL(0) |
241                               XCVR_RX_DIG_DCOC_CTRL_0_BBA_CORR_POL(0) |
242                               XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_SRC(1),
243     .dcoc_ctrl_0_init_32mhz = XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_DURATION(20) | /* Only the duration changes between 26MHz and 32MHz ref osc settings */
244 #if (RADIO_IS_GEN_2P1)
245                               XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_CHECK_EN(0) |
246 #endif /* (RADIO_IS_GEN_2P1) */
247                               XCVR_RX_DIG_DCOC_CTRL_0_TRACK_FROM_ZERO(0) |
248                               XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_EN(1) |
249                               XCVR_RX_DIG_DCOC_CTRL_0_TZA_CORR_POL(0) |
250                               XCVR_RX_DIG_DCOC_CTRL_0_BBA_CORR_POL(0) |
251                               XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_SRC(1),
252 
253     .dcoc_ctrl_1_init = XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX(26),
254 
255     .dc_resid_ctrl_init = XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ITER_FREEZE(4) |
256                           XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ALPHA(1) |
257                           XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_EXT_DC_EN(1) |
258                           XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_MIN_AGC_IDX(26),
259 
260     .dcoc_cal_gain_init = XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN1(1) |
261                           XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN1(1) |
262                           XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN2(1) |
263                           XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN2(2) |
264                           XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN3(3) |
265                           XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN3(1) ,
266 
267     .dcoc_cal_rcp_init = XCVR_RX_DIG_DCOC_CAL_RCP_ALPHA_CALC_RECIP(1) |
268                          XCVR_RX_DIG_DCOC_CAL_RCP_DCOC_TMP_CALC_RECIP(711),
269 
270     .lna_gain_val_3_0 = XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_0(0x1DU) |
271                         XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_1(0x32U) |
272                         XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_2(0x09U) |
273                         XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_3(0x38U),
274 
275     .lna_gain_val_7_4 = XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_4(0x4FU) |
276                         XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_5(0x5BU) |
277                         XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_6(0x72U) |
278                         XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_7(0x8AU),
279     .lna_gain_val_8 = XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_8(0xA0U) |
280                       XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_9(0xB6U),
281 
282     .bba_res_tune_val_7_0 = XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_0(0x0) |
283                             XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_1(0x0) |
284                             XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_2(0x0) |
285                             XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_3(0x0) |
286                             XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_4(0x0) |
287                             XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_5(0x0) |
288                             XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_6(0x0) |
289                             XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_7(0xF),
290     .bba_res_tune_val_10_8 = XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_8(0x0) |
291                              XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_9(0x1) |
292                              XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_10(0x2),
293 
294     .lna_gain_lin_val_2_0_init = XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_0(0) |
295                                  XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_1(0) |
296                                  XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_2(1),
297 
298     .lna_gain_lin_val_5_3_init = XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_3(3) |
299                                  XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_4(5) |
300                                  XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_5(7),
301 
302     .lna_gain_lin_val_8_6_init = XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_6(14) |
303                                  XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_7(27) |
304                                  XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_8(50),
305 
306     .lna_gain_lin_val_9_init = XCVR_RX_DIG_LNA_GAIN_LIN_VAL_9_LNA_GAIN_LIN_VAL_9(91),
307 
308     .bba_res_tune_lin_val_3_0_init = XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_0(8) |
309                                      XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_1(11) |
310                                      XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_2(16) |
311                                      XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_3(22),
312 
313     .bba_res_tune_lin_val_7_4_init = XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_4(31) |
314                                      XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_5(44) |
315                                      XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_6(62) |
316                                      XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_7(42), /* Has 2 fractional bits unlike other BBA_RES_TUNE_LIN_VALs */
317 
318     .bba_res_tune_lin_val_10_8_init = XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_8(128) |
319                                       XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_9(188) |
320                                       XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_10(288),
321 
322     .dcoc_bba_step_init = XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP_RECIP(939) |
323                           XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP(279),
324 
325     .dcoc_tza_step_00_init = XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_GAIN_0(77) |
326                              XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_RCP_0(3404),
327     .dcoc_tza_step_01_init = XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_GAIN_1(108) |
328                              XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_RCP_1(2439),
329     .dcoc_tza_step_02_init = XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_GAIN_2(155) |
330                              XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_RCP_2(1691),
331     .dcoc_tza_step_03_init = XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_GAIN_3(220) |
332                              XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_RCP_3(1192),
333     .dcoc_tza_step_04_init = XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_GAIN_4(314) |
334                              XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_RCP_4(835),
335     .dcoc_tza_step_05_init = XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_GAIN_5(436) |
336                              XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_RCP_5(601),
337     .dcoc_tza_step_06_init = XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_GAIN_6(614) |
338                              XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_RCP_6(427),
339     .dcoc_tza_step_07_init = XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_GAIN_7(845) |
340                              XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_RCP_7(310),
341     .dcoc_tza_step_08_init = XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_GAIN_8(1256) |
342                              XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_RCP_8(209),
343     .dcoc_tza_step_09_init = XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_GAIN_9(1805) |
344                              XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_RCP_9(145),
345     .dcoc_tza_step_10_init = XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_GAIN_10(2653) |
346                              XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_RCP_10(99),
347 #if (RADIO_IS_GEN_2P1)
348     .dcoc_cal_fail_th_init = XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_BETA_F_TH(20) |
349                              XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_ALPHA_F_TH(10),
350     .dcoc_cal_pass_th_init = XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_BETA_P_TH(16) |
351                              XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_ALPHA_P_TH(2),
352 #endif /* (RADIO_IS_GEN_2P1) */
353     /* AGC Configs */
354     .agc_gain_tbl_03_00_init = XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_00(0) |
355                                XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_00(0) |
356                                XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_01(1) |
357                                XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_01(1) |
358                                XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_02(2) |
359                                XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_02(1) |
360                                XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_03(2) |
361                                XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_03(2),
362 
363     .agc_gain_tbl_07_04_init = XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_04(2) |
364                                XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_04(3) |
365                                XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_05(3) |
366                                XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_05(0) |
367                                XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_06(3) |
368                                XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_06(1) |
369                                XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_07(3) |
370                                XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_07(2),
371 
372     .agc_gain_tbl_11_08_init = XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_08(3) |
373                                XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_08(3) |
374                                XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_09(4) |
375                                XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_09(2) |
376                                XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_10(4) |
377                                XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_10(3) |
378                                XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_11(4) |
379                                XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_11(4),
380 
381     .agc_gain_tbl_15_12_init = XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_12(5) |
382                                XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_12(4) |
383                                XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_13(5) |
384                                XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_13(5) |
385                                XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_14(6) |
386                                XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_14(4) |
387                                XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_15(6) |
388                                XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_15(5),
389 
390     .agc_gain_tbl_19_16_init = XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_16(6) |
391                                XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_16(6) |
392                                XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_17(6) |
393                                XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_17(7) |
394                                XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_18(7) |
395                                XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_18(6) |
396                                XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_19(7) |
397                                XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_19(7),
398 
399     .agc_gain_tbl_23_20_init = XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_20(8) |
400                                XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_20(6) |
401                                XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_21(8) |
402                                XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_21(7) |
403                                XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_22(9) |
404                                XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_22(6) |
405                                XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_23(9) |
406                                XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_23(7),
407 
408     .agc_gain_tbl_26_24_init = XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_24(9) |
409                                XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_24(8) |
410                                XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_25(9) |
411                                XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_25(9) |
412                                XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_26(9) |
413                                XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_26(10),
414 
415     .rssi_ctrl_0_init = XCVR_RX_DIG_RSSI_CTRL_0_RSSI_USE_VALS(1) |
416                         XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_SRC(0) |
417                         XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_EN(1) |
418                         XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_CW_WEIGHT(0) |
419 #if !RADIO_IS_GEN_2P1
420                         XCVR_RX_DIG_RSSI_CTRL_0_RSSI_N_WINDOW_AVG(1) |
421 #else
422                         XCVR_RX_DIG_RSSI_CTRL_0_RSSI_N_WINDOW_NB(1) |
423 #endif /* !RADIO_IS_GEN_2P1 */
424                         XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_DELAY(4) |
425                         XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_WEIGHT(3) |
426                         XCVR_RX_DIG_RSSI_CTRL_0_RSSI_VLD_SETTLE(3) |
427                         XCVR_RX_DIG_RSSI_CTRL_0_RSSI_ADJ(0xE8) ,
428 
429     .cca_ed_lqi_ctrl_0_init = XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CORR_THRESH(0) |
430                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_CORR_CNTR_THRESH(0) |
431                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CNTR(0x1A) |
432                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_SNR_ADJ(0),
433 
434     .cca_ed_lqi_ctrl_1_init = XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_DELAY(0) |
435                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_FACTOR(0) |
436                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_WEIGHT(0x4) |
437                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_SENS(0x7) |
438                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_DIS(0) |
439 #if !RADIO_IS_GEN_2P1
440                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SEL_SNR_MODE(0) |
441 #endif /* !RADIO_IS_GEN_2P1 */
442                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MEAS_TRANS_TO_IDLE(0) |
443                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_CCA1_ED_EN_DIS(0) |
444                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MAN_MEAS_COMPLETE(0) |
445                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MAN_AA_MATCH(0) |
446                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_WEIGHT(0x5) |
447                               XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_BIAS(0x2),
448 
449     /* XCVR_TSM configs */
450     .tsm_ctrl = XCVR_TSM_CTRL_PA_RAMP_SEL(PA_RAMP_SEL) |
451                 XCVR_TSM_CTRL_DATA_PADDING_EN(DATA_PADDING_EN) |
452                 XCVR_TSM_CTRL_TSM_IRQ0_EN(0) |
453                 XCVR_TSM_CTRL_TSM_IRQ1_EN(0) |
454                 XCVR_TSM_CTRL_RAMP_DN_DELAY(0x4) |
455                 XCVR_TSM_CTRL_TX_ABORT_DIS(0) |
456                 XCVR_TSM_CTRL_RX_ABORT_DIS(0) |
457                 XCVR_TSM_CTRL_ABORT_ON_CTUNE(0) |
458                 XCVR_TSM_CTRL_ABORT_ON_CYCLE_SLIP(0) |
459                 XCVR_TSM_CTRL_ABORT_ON_FREQ_TARG(0) |
460                 XCVR_TSM_CTRL_BKPT(0xFF) ,
461 
462     .tsm_ovrd2_init = XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD(0) | XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD_EN_MASK,
463     .end_of_seq_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(END_OF_RX_WU_26MHZ) | B1(END_OF_TX_WD) | B0(END_OF_TX_WU),
464     .end_of_seq_init_32mhz = B3(END_OF_RX_WD) | B2(END_OF_RX_WU) | B1(END_OF_TX_WD) | B0(END_OF_TX_WU),
465 
466 #if !RADIO_IS_GEN_2P1
467     .lpps_ctrl_init = B3(102) | B2(40) | B1(0) | B0(0),
468 #endif /* !RADIO_IS_GEN_2P1 */
469 
470     .tsm_fast_ctrl2_init_26mhz = B3(102 + ADD_FOR_26MHZ) | B2(40 + ADD_FOR_26MHZ) | B1(66) | B0(8),
471     .tsm_fast_ctrl2_init_32mhz = B3(102) | B2(40) | B1(66) | B0(8),
472 
473     .pa_ramp_tbl_0_init = XCVR_TSM_PA_RAMP_TBL0_PA_RAMP0(PA_RAMP_0) | XCVR_TSM_PA_RAMP_TBL0_PA_RAMP1(PA_RAMP_1) |
474                           XCVR_TSM_PA_RAMP_TBL0_PA_RAMP2(PA_RAMP_2) | XCVR_TSM_PA_RAMP_TBL0_PA_RAMP3(PA_RAMP_3),
475     .pa_ramp_tbl_1_init = XCVR_TSM_PA_RAMP_TBL1_PA_RAMP4(PA_RAMP_4) | XCVR_TSM_PA_RAMP_TBL1_PA_RAMP5(PA_RAMP_5) |
476                           XCVR_TSM_PA_RAMP_TBL1_PA_RAMP6(PA_RAMP_6) | XCVR_TSM_PA_RAMP_TBL1_PA_RAMP7(PA_RAMP_7),
477 
478     .recycle_count_init_26mhz = B3(0) | B2(0x1C + ADD_FOR_26MHZ) | B1(0x06) | B0(0x66 + ADD_FOR_26MHZ),
479     .recycle_count_init_26mhz = B3(0) | B2(0x1C) | B1(0x06) | B0(0x66),
480 
481     .tsm_timing_00_init = B3(END_OF_RX_WD) | B2(0x00) | B1(END_OF_TX_WD) | B0(0x00), /* bb_ldo_hf_en */
482     .tsm_timing_01_init = B3(END_OF_RX_WD) | B2(0x00) | B1(END_OF_TX_WD) | B0(0x00), /* bb_ldo_adcdac_en */
483     .tsm_timing_02_init = B3(END_OF_RX_WD) | B2(0x00) | B1(0xFF) | B0(0xFF), /* bb_ldo_bba_en */
484     .tsm_timing_03_init = B3(END_OF_RX_WD) | B2(0x00) | B1(END_OF_TX_WD) | B0(0x00), /* bb_ldo_pd_en */
485     .tsm_timing_04_init = B3(END_OF_RX_WD) | B2(0x00) | B1(END_OF_TX_WD) | B0(0x00), /* bb_ldo_fdbk_en */
486     .tsm_timing_05_init = B3(END_OF_RX_WD) | B2(0x00) | B1(END_OF_TX_WD) | B0(0x00), /* bb_ldo_vcolo_en */
487     .tsm_timing_06_init = B3(END_OF_RX_WD) | B2(0x00) | B1(END_OF_TX_WD) | B0(0x00), /* bb_ldo_vtref_en */
488     .tsm_timing_07_init = B3(0x05) | B2(0x00) | B1(0x05) | B0(0x00), /* bb_ldo_fdbk_bleed_en */
489     .tsm_timing_08_init = B3(0x03) | B2(0x00) | B1(0x03) | B0(0x00), /* bb_ldo_vcolo_bleed_en */
490     .tsm_timing_09_init = B3(0x03) | B2(0x00) | B1(0x03) | B0(0x00), /* bb_ldo_vcolo_fastcharge_en */
491 
492     .tsm_timing_10_init = B3(END_OF_RX_WD) | B2(0x03 + AUX_PLL_DELAY) | B1(END_OF_TX_WD) | B0(0x03), /* bb_xtal_pll_ref_clk_en */
493     .tsm_timing_11_init = B3(0xFF) | B2(0xFF) | B1(END_OF_TX_WD) | B0(0x03), /* bb_xtal_dac_ref_clk_en */
494     .tsm_timing_12_init = B3(END_OF_RX_WD) | B2(0x03 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rxtx_auxpll_vco_ref_clk_en */
495     .tsm_timing_13_init = B3(0x18) | B2(0x00) | B1(0x4C) | B0(0x00), /* sy_vco_autotune_en */
496     .tsm_timing_14_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x31+ADD_FOR_26MHZ) | B1(END_OF_TX_WU + PD_CYCLE_SLIP_TX_LO_ADJ) | B0(0x63 + PD_CYCLE_SLIP_TX_HI_ADJ), /* sy_pd_cycle_slip_ld_ft_en */
497     .tsm_timing_14_init_32mhz = B3(END_OF_RX_WD) | B2(0x31 + AUX_PLL_DELAY) | B1(END_OF_TX_WU + PD_CYCLE_SLIP_TX_LO_ADJ) | B0(0x63 + PD_CYCLE_SLIP_TX_HI_ADJ),
498     .tsm_timing_15_init = B3(END_OF_RX_WD) | B2(0x03 + AUX_PLL_DELAY) | B1(END_OF_TX_WD) | B0(0x03), /* sy_vco_en */
499     .tsm_timing_16_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x1C + ADD_FOR_26MHZ) | B1(0xFF) | B0(0xFF), /* sy_lo_rx_buf_en */
500     .tsm_timing_16_init_32mhz = B3(END_OF_RX_WD) | B2(0x1C + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
501     .tsm_timing_17_init = B3(0xFF) | B2(0xFF) | B1(END_OF_TX_WD) | B0(0x55), /* sy_lo_tx_buf_en */
502     .tsm_timing_18_init = B3(END_OF_RX_WD) | B2(0x05 + AUX_PLL_DELAY) | B1(END_OF_TX_WD) | B0(0x05), /* sy_divn_en */
503     .tsm_timing_19_init = B3(0x18+AUX_PLL_DELAY) | B2(0x03 + AUX_PLL_DELAY) | B1(0x4C) | B0(0x03), /* sy_pd_filter_charge_en */
504 
505     .tsm_timing_20_init = B3(END_OF_RX_WD) | B2(0x03 + AUX_PLL_DELAY) | B1(END_OF_TX_WD) | B0(0x03), /* sy_pd_en */
506     .tsm_timing_21_init = B3(END_OF_RX_WD) | B2(0x04 + AUX_PLL_DELAY) | B1(END_OF_TX_WD) | B0(0x04), /* sy_lo_divn_en */
507     .tsm_timing_22_init = B3(END_OF_RX_WD) | B2(0x04 + AUX_PLL_DELAY) | B1(0xFF) |           B0(0xFF), /* sy_lo_rx_en */
508     .tsm_timing_23_init = B3(0xFF) | B2(0xFF) | B1(END_OF_TX_WD) | B0(0x04), /*sy_lo_tx_en  */
509     .tsm_timing_24_init = B3(0x18) | B2(0x00) | B1(0x4C) | B0(0x00), /* sy_divn_cal_en */
510     .tsm_timing_25_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x1D + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_lna_mixer_en */
511     .tsm_timing_25_init_32mhz = B3(END_OF_RX_WD) | B2(0x1D + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
512     .tsm_timing_26_init = B3(0xFF) | B2(0xFF) | B1(END_OF_TX_WD) | B0(0x58), /* tx_pa_en */
513     .tsm_timing_27_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x20 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_adc_i_q_en */
514     .tsm_timing_27_init_32mhz = B3(END_OF_RX_WD) | B2(0x20 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
515     .tsm_timing_28_init_26mhz = B3(0x21 + ADD_FOR_26MHZ) | B2(0x20 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_adc_reset_en */
516     .tsm_timing_28_init_32mhz = B3(0x21 + AUX_PLL_DELAY) | B2(0x20 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
517     .tsm_timing_29_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x1E + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_bba_i_q_en */
518     .tsm_timing_29_init_32mhz = B3(END_OF_RX_WD) | B2(0x1E + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
519 
520     .tsm_timing_30_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x20 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_bba_pdet_en */
521     .tsm_timing_30_init_32mhz = B3(END_OF_RX_WD) | B2(0x20 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
522     .tsm_timing_31_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x1F + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_bba_tza_dcoc_en */
523     .tsm_timing_31_init_32mhz = B3(END_OF_RX_WD) | B2(0x1F + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
524     .tsm_timing_32_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x1D + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_tza_i_q_en */
525     .tsm_timing_32_init_32mhz = B3(END_OF_RX_WD) | B2(0x1D + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
526     .tsm_timing_33_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x20 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_tza_pdet_en */
527     .tsm_timing_33_init_32mhz = B3(END_OF_RX_WD) | B2(0x20 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
528     .tsm_timing_34_init = B3(END_OF_RX_WD) | B2(0x07 + AUX_PLL_DELAY) | B1(END_OF_TX_WD) | B0(0x07), /* pll_dig_en */
529     .tsm_timing_35_init = B3(0xFF) | B2(0xFF) | B1(END_OF_TX_WD), /* tx_dig_en - Byte 0 comes from mode specific settings */
530     .tsm_timing_36_init_26mhz = B3(END_OF_RX_WD) | B2(0x66 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_dig_en */
531     .tsm_timing_36_init_32mhz = B3(END_OF_RX_WD) | B2(0x66 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
532     .tsm_timing_37_init_26mhz = B3(0x67 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B2(0x66 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_init */
533     .tsm_timing_37_init_32mhz = B3(0x67 + AUX_PLL_DELAY) | B2(0x66 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
534     .tsm_timing_38_init = B3(END_OF_RX_WD) | B2(0x0E + AUX_PLL_DELAY) | B1(END_OF_TX_WD) | B0(0x42), /* sigma_delta_en */
535     .tsm_timing_39_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x66 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rx_phy_en */
536     .tsm_timing_39_init_32mhz = B3(END_OF_RX_WD) | B2(0x66 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
537 
538     .tsm_timing_40_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x26 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* dcoc_en */
539     .tsm_timing_40_init_32mhz = B3(END_OF_RX_WD) | B2(0x26 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
540     .tsm_timing_41_init_26mhz = B3(0x27 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B2(0x26 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* dcoc_init */
541     .tsm_timing_41_init_32mhz = B3(0x27 + AUX_PLL_DELAY) | B2(0x26 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
542     .tsm_timing_51_init = B3(END_OF_RX_WD) | B2(0x03 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rxtx_auxpll_bias_en */
543     .tsm_timing_52_init_26mhz = B3(0x17 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B2(0x06 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rxtx_auxpll_fcal_en */
544     .tsm_timing_52_init_32mhz = B3(0x17 + AUX_PLL_DELAY) | B2(0x06 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
545     .tsm_timing_53_init = B3(END_OF_RX_WD) | B2(0x03 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rxtx_auxpll_lf_pd_en */
546     .tsm_timing_54_init_26mhz = B3(0x17 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B2(0x03 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rxtx_auxpll_pd_lf_filter_charge_en */
547     .tsm_timing_54_init_32mhz = B3(0x17 + AUX_PLL_DELAY) | B2(0x03 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
548     .tsm_timing_55_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x20 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rxtx_auxpll_adc_buf_en */
549     .tsm_timing_55_init_32mhz = B3(END_OF_RX_WD) | B2(0x20 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
550     .tsm_timing_56_init_26mhz = B3(END_OF_RX_WD_26MHZ) | B2(0x20 + ADD_FOR_26MHZ + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /* rxtx_auxpll_dig_buf_en */
551     .tsm_timing_56_init_32mhz = B3(END_OF_RX_WD) | B2(0x20 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF),
552     .tsm_timing_57_init = B3(0x1A + AUX_PLL_DELAY) | B2(0x03 + AUX_PLL_DELAY) | B1(0xFF) | B0(0xFF), /*rxtx_rccal_en  */
553     .tsm_timing_58_init = B3(0xFF) | B2(0xFF) | B1(END_OF_TX_WD) | B0(0x03), /* tx_hpm_dac_en */
554 
555 /* XCVR_TX_DIG configs */
556 #define radio_dft_mode 0
557 #define lfsr_length 4
558 #define lfsr_en 0
559 #define dft_clk_sel 4
560 #define tx_dft_en 0
561 #define soc_test_sel 0
562 #define tx_capture_pol 0
563 #define freq_word_adj 0
564 #define lrm 0
565 #define data_padding_pat_1 0x55
566 #define data_padding_pat_0 0xAA
567 #define gfsk_multiply_table_manual 0
568 #define gfsk_mi 1
569 #define gfsk_mld 0
570 #define gfsk_fld 0
571 #define gfsk_mod_index_scaling 0
572 #define tx_image_filter_ovrd_en 0
573 #define tx_image_filter_0_ovrd 0
574 #define tx_image_filter_1_ovrd 0
575 #define tx_image_filter_2_ovrd 0
576 #define gfsk_filter_coeff_manual2 0xC0630401
577 #define gfsk_filter_coeff_manual1 0xBB29960D
578 #define fsk_modulation_scale_0 0x1800
579 #define fsk_modulation_scale_1 0x0800
580 #define dft_mod_patternval 0
581 #define ctune_bist_go 0
582 #define ctune_bist_thrshld 0
583 #define pa_am_mod_freq 0
584 #define pa_am_mod_entries 0
585 #define pa_am_mod_en 0
586 #define syn_bist_go 0
587 #define syn_bist_all_channels 0
588 #define freq_count_threshold 0
589 #define hpm_inl_bist_go 0
590 #define hpm_dnl_bist_go 0
591 #define dft_max_ram_size 0
592 
593     .tx_ctrl = XCVR_TX_DIG_CTRL_RADIO_DFT_MODE(radio_dft_mode) |
594                XCVR_TX_DIG_CTRL_LFSR_LENGTH(lfsr_length) |
595                XCVR_TX_DIG_CTRL_LFSR_EN(lfsr_en) |
596                XCVR_TX_DIG_CTRL_DFT_CLK_SEL(dft_clk_sel) |
597                XCVR_TX_DIG_CTRL_TX_DFT_EN(tx_dft_en) |
598                XCVR_TX_DIG_CTRL_SOC_TEST_SEL(soc_test_sel) |
599                XCVR_TX_DIG_CTRL_TX_CAPTURE_POL(tx_capture_pol) |
600                XCVR_TX_DIG_CTRL_FREQ_WORD_ADJ(freq_word_adj),
601 /*-------------------------------------------------------------------------------------------------*/
602     .tx_data_padding = XCVR_TX_DIG_DATA_PADDING_LRM(lrm) |
603                        XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_1(data_padding_pat_1) |
604                        XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_0(data_padding_pat_0),
605 /*-------------------------------------------------------------------------------------------------*/
606     .tx_dft_pattern = XCVR_TX_DIG_DFT_PATTERN_DFT_MOD_PATTERN(dft_mod_patternval),
607 #if !RADIO_IS_GEN_2P1
608 /*-------------------------------------------------------------------------------------------------*/
609     .rf_dft_bist_1 = XCVR_TX_DIG_RF_DFT_BIST_1_CTUNE_BIST_GO(ctune_bist_go) |
610                      XCVR_TX_DIG_RF_DFT_BIST_1_CTUNE_BIST_THRSHLD(ctune_bist_thrshld) |
611                      XCVR_TX_DIG_RF_DFT_BIST_1_PA_AM_MOD_FREQ(pa_am_mod_freq) |
612                      XCVR_TX_DIG_RF_DFT_BIST_1_PA_AM_MOD_ENTRIES(pa_am_mod_entries) |
613                      XCVR_TX_DIG_RF_DFT_BIST_1_PA_AM_MOD_EN(pa_am_mod_en),
614 /*-------------------------------------------------------------------------------------------------*/
615     .rf_dft_bist_2 = XCVR_TX_DIG_RF_DFT_BIST_2_SYN_BIST_GO(syn_bist_go) |
616                      XCVR_TX_DIG_RF_DFT_BIST_2_SYN_BIST_ALL_CHANNELS(syn_bist_all_channels) |
617                      XCVR_TX_DIG_RF_DFT_BIST_2_FREQ_COUNT_THRESHOLD(freq_count_threshold) |
618                      XCVR_TX_DIG_RF_DFT_BIST_2_HPM_INL_BIST_GO(hpm_inl_bist_go) |
619                      XCVR_TX_DIG_RF_DFT_BIST_2_HPM_DNL_BIST_GO(hpm_dnl_bist_go) |
620                      XCVR_TX_DIG_RF_DFT_BIST_2_DFT_MAX_RAM_SIZE(dft_max_ram_size),
621 #endif /* !RADIO_IS_GEN_2P1 */
622 };
623 
624