blob: f6f2e343123e4d1b3e2d62e57a251657857e6f99 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*******************************************************************************
37 *
38 * Filename:
39 * ---------
40 * l1cal.h
41 *
42 * Project:
43 * --------
44 * Maui_Software
45 *
46 * Description:
47 * ------------
48 * The structure definition of L1 calibration data
49 *
50 * Author:
51 * -------
52 * -------
53 * -------
54 *
55 *==============================================================================
56 * HISTORY
57 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
58 *------------------------------------------------------------------------------
59 * removed!
60 * removed!
61 * removed!
62 *
63 * removed!
64 * removed!
65 * removed!
66 * removed!
67 *
68 * removed!
69 * removed!
70 *
71 * removed!
72 * removed!
73 * removed!
74 *
75 * removed!
76 * removed!
77 *
78 * removed!
79 * removed!
80 * removed!
81 * removed!
82 *
83 * removed!
84 * removed!
85 *
86 * removed!
87 * removed!
88 * removed!
89 *
90 * removed!
91 * removed!
92 *
93 * removed!
94 * removed!
95 *
96 * removed!
97 * removed!
98 * removed!
99 *
100 * removed!
101 * removed!
102 *
103 * removed!
104 * removed!
105 *
106 * removed!
107 * removed!
108 *
109 * removed!
110 * removed!
111 *
112 * removed!
113 * removed!
114 *
115 * removed!
116 * removed!
117 *
118 * removed!
119 * removed!
120 *
121 * removed!
122 * removed!
123 * removed!
124 *
125 * removed!
126 * removed!
127 * removed!
128 *
129 * removed!
130 * removed!
131 * removed!
132 *
133 * removed!
134 * removed!
135 *
136 * removed!
137 * removed!
138 * removed!
139 *
140 * removed!
141 * removed!
142 * removed!
143 *
144 * removed!
145 * removed!
146 * removed!
147 *
148 * removed!
149 * removed!
150 *
151 * removed!
152 * removed!
153 * removed!
154 *
155 * removed!
156 * removed!
157 *
158 * removed!
159 * removed!
160 *
161 * removed!
162 * removed!
163 *
164 * removed!
165 * removed!
166 * removed!
167 *
168 * removed!
169 * removed!
170 *
171 * removed!
172 * removed!
173 *
174 * removed!
175 * removed!
176 *
177 * removed!
178 * removed!
179 * removed!
180 * removed!
181 *
182 * removed!
183 * removed!
184 * removed!
185 *
186 * removed!
187 * removed!
188 * removed!
189 *
190 * removed!
191 * removed!
192 * removed!
193 *
194 * removed!
195 * removed!
196 * removed!
197 *
198 * removed!
199 * removed!
200 * removed!
201 *
202 * removed!
203 * removed!
204 * removed!
205 * removed!
206 *
207 * removed!
208 * removed!
209 * removed!
210 *
211 * removed!
212 * removed!
213 * removed!
214 *
215 * removed!
216 * removed!
217 * removed!
218 * removed!
219 *
220 * removed!
221 * removed!
222 *
223 * removed!
224 * removed!
225 * removed!
226 *
227 * removed!
228 * removed!
229 *
230 * removed!
231 * removed!
232 *
233 * removed!
234 * removed!
235 * removed!
236 *
237 * removed!
238 * removed!
239 * removed!
240 *
241 * removed!
242 * removed!
243 * removed!
244 *
245 * removed!
246 * removed!
247 * removed!
248 * removed!
249 *
250 * removed!
251 * removed!
252 * removed!
253 *
254 * removed!
255 * removed!
256 * removed!
257 * removed!
258 *
259 * removed!
260 * removed!
261 * removed!
262 *
263 * removed!
264 * removed!
265 * removed!
266 * removed!
267 *
268 * removed!
269 * removed!
270 * removed!
271 *
272 * removed!
273 * removed!
274 *
275 * removed!
276 * removed!
277 * removed!
278 * removed!
279 *
280 * removed!
281 * removed!
282 * removed!
283 * removed!
284 *
285 * removed!
286 * removed!
287 * removed!
288 *
289 * removed!
290 * removed!
291 * removed!
292 *
293 * removed!
294 * removed!
295 * removed!
296 * removed!
297 *
298 * removed!
299 * removed!
300 *
301 * removed!
302 * removed!
303 *
304 * removed!
305 * removed!
306 *
307 * removed!
308 * removed!
309 * removed!
310 * removed!
311 *
312 * removed!
313 * removed!
314 * removed!
315 *
316 * removed!
317 * removed!
318 * removed!
319 *
320 * removed!
321 * removed!
322 * removed!
323 *
324 * removed!
325 * removed!
326 * removed!
327 *
328 * removed!
329 * removed!
330 * removed!
331 *
332 * removed!
333 * removed!
334 * removed!
335 *
336 * removed!
337 * removed!
338 * removed!
339 *
340 * removed!
341 * removed!
342 * removed!
343 *
344 * removed!
345 * removed!
346 * removed!
347 *
348 * removed!
349 * removed!
350 * removed!
351 *
352 * removed!
353 * removed!
354 * removed!
355 *
356 * removed!
357 * removed!
358 * removed!
359 *
360 * removed!
361 * removed!
362 * removed!
363 *
364 * removed!
365 * removed!
366 * removed!
367 *
368 * removed!
369 * removed!
370 * removed!
371 *
372 * removed!
373 * removed!
374 * removed!
375 *
376 * removed!
377 * removed!
378 * removed!
379 *
380 * removed!
381 * removed!
382 *
383 * removed!
384 * removed!
385 * removed!
386 *
387 * removed!
388 * removed!
389 * removed!
390 *
391 * removed!
392 * removed!
393 *
394 * removed!
395 * removed!
396 * removed!
397 *
398 * removed!
399 * removed!
400 * removed!
401 *
402 * removed!
403 * removed!
404 * removed!
405 *
406 * removed!
407 * removed!
408 * removed!
409 *
410 * removed!
411 * removed!
412 * removed!
413 *
414 * removed!
415 * removed!
416 * removed!
417 *
418 * removed!
419 * removed!
420 * removed!
421 *
422 * removed!
423 * removed!
424 * removed!
425 *
426 * removed!
427 * removed!
428 * removed!
429 *
430 * removed!
431 * removed!
432 * removed!
433 *
434 * removed!
435 * removed!
436 * removed!
437 *
438 * removed!
439 * removed!
440 * removed!
441 *
442 * removed!
443 * removed!
444 * removed!
445 *
446 * removed!
447 * removed!
448 * removed!
449 *
450 * removed!
451 * removed!
452 * removed!
453 *
454 * removed!
455 * removed!
456 * removed!
457 *
458 * removed!
459 * removed!
460 * removed!
461 *
462 * removed!
463 * removed!
464 * removed!
465 *
466 * removed!
467 * removed!
468 * removed!
469 *
470 * removed!
471 * removed!
472 * removed!
473 * removed!
474 * removed!
475 * removed!
476 * removed!
477 * removed!
478 * removed!
479 * removed!
480 * removed!
481 * removed!
482 * removed!
483 * removed!
484 * removed!
485 *
486 * removed!
487 * removed!
488 * removed!
489 *
490 * removed!
491 * removed!
492 * removed!
493 *
494 * removed!
495 * removed!
496 * removed!
497 *
498 * removed!
499 * removed!
500 * removed!
501 *
502 * removed!
503 * removed!
504 * removed!
505 *
506 * removed!
507 * removed!
508 * removed!
509 *
510 * removed!
511 * removed!
512 * removed!
513 *
514 * removed!
515 * removed!
516 * removed!
517 * removed!
518 * removed!
519 * removed!
520 * removed!
521 * removed!
522 * removed!
523 * removed!
524 * removed!
525 * removed!
526 * removed!
527 * removed!
528 * removed!
529 * removed!
530 * removed!
531 * removed!
532 * removed!
533 * removed!
534 * removed!
535 * removed!
536 * removed!
537 * removed!
538 * removed!
539 *------------------------------------------------------------------------------
540 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
541 *==============================================================================
542 *******************************************************************************/
543#ifndef L1CAL_H
544#define L1CAL_H
545
546#include "kal_general_types.h"
547#include "l1_option.h"
548#include "l1_types_public.h"
549 #if MD_DRV_IS_2G_MIPI_SUPPORT
550#include "l1d_mipi_data_common.h"
551 #endif
552#include "l1d_rf_data_common.h"
553 #include "l1_public_defs.h"
554#if defined(__TAS_SUPPORT__)
555#include "l1_types_public.h"
556 #if (defined(__MD95__) || defined(__MD97__) || defined(__MD97P__))
557#include "l1d_rf_utas_typedef.h"
558 #else
559#include "l1d_rf_tas_typedef.h"
560 #endif
561#endif
562#if MD_DRV_IS_TX_POWER_OFFSET_SUPPORT
563#include "mmrf_cc_global.h"
564#endif
565
566#if IS_2G_DYNAMIC_ANTENNA_TUNING_SUPPORT //defined(__DYNAMIC_ANTENNA_TUNING__)
567#include "l1_types_public.h"
568#include "l1d_rf_dat_typedef.h"
569#endif//__DYNAMIC_ANTENNA_TUNING__
570/* ------------------------------------------------------------------------- */
571
572unsigned long L1D_RF_GetID( void );
573void L1D_RF_SetImmediateBSI( unsigned long bsidata );
574void L1D_RF_GetImmediateBSI( unsigned long bsi_addr, unsigned long *bsi_data );
575void L1D_RF_PowerOn( void );
576void L1D_RF_PowerOff( void );
577
578/* ------------------------------------------------------------------------- */
579
580typedef struct
581{
582 signed short status;
583 signed short tadc_dac;
584 signed short temperature;
585 signed short temp_idx;
586}L1D_TEMPINFO_T;
587void L1D_RF_GetTemperatureInfo(L1D_TEMPINFO_T* tempinfo);
588
589/* ------------------------------------------------------------------------- */
590
591/*
592This enum has been move to l1_public_defs.h for proper location
593#ifndef l1_types_public_h
594typedef enum
595{
596 FrequencyBand400,
597 FrequencyBand850,
598 FrequencyBand900,
599 FrequencyBand1800,
600 FrequencyBand1900,
601
602 FrequencyBandCount
603
604} FrequencyBand;
605#endif
606*/
607
608#define PLTABLE_SIZE (13)
609
610typedef struct
611{
612 short max_arfcn;
613 signed char gain_offset;
614
615} sAGCGAINOFFSET;
616
617typedef struct
618{
619 sAGCGAINOFFSET agcPathLoss[FrequencyBandCount][PLTABLE_SIZE];
620}l1cal_agcPathLoss_T;
621
622/* ------------------------------------------------------------------------- */
623
624#if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
625typedef enum
626{
627 L1D_LNA_HIGH_SENSITIVITY, //elna+g6
628 L1D_LNA_HIGH,
629 L1D_LNA_MIDDLE,
630 L1D_LNA_LOW,
631 L1D_LNA_LOW_MAXPIN, //elna_bypass+g1
632} L1D_LNA_TYPE_E;
633#endif
634
635#if IS_GSM_TX_DETECTOR_SUPPORT
636typedef enum
637{
638 L1D_TXD_DISABLE,
639 L1D_TXD_ENABLE,
640} L1D_TXD_E;
641#endif
642
643
644typedef struct
645{
646 signed char gain_offset_middle;
647 signed char gain_offset_middle_sawless;
648 signed char gain_offset_low;
649 signed char gain_offset_high_sensitivity; //elna+g6
650 signed char gain_offset_low_maxpin; //elna_bypass+g1
651} sLNAGAINOFFSET;
652
653typedef struct
654{
655 sLNAGAINOFFSET lnaPathLoss[FrequencyBandCount][PLTABLE_SIZE];
656} sLNAPATHLOSS_L1CAL;
657
658typedef sLNAPATHLOSS_L1CAL l1cal_lnaPathLoss_T;
659
660void L1D_RF_SetPathLossTable( int rf_band, void *table );
661#if defined(__RX_POWER_OFFSET_SUPPORT__)
662void L1D_RF_SetPathLoss_Offset_Table( int rf_band, void *table );
663void L1D_RF_GetPathLoss_Offset_Table( int rf_band, void *table );
664#endif
665
666void L1D_RF_SetLnaPathLossTable( sLNAPATHLOSS_L1CAL *table );
667#if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
668void L1D_RF_GetPathLossTable( int rf_band, void *table );
669#endif
670void L1D_RF_GetLnaPathLossTable( sLNAPATHLOSS_L1CAL *table );
671
672#if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
673void L1D_RF_SetPathLossTable_RXD( int rf_band, void *table );
674void L1D_RF_SetPathLoss_Offset_Table_RXD( int rf_band, void *table );
675void L1D_RF_SetLnaPathLossTable_RXD( sLNAPATHLOSS_L1CAL *table );
676
677void L1D_RF_GetPathLossTable_RXD( int rf_band, void *table );
678void L1D_RF_GetPathLoss_Offset_Table_RXD( int rf_band, void *table );
679void L1D_RF_GetLnaPathLossTable_RXD( sLNAPATHLOSS_L1CAL *table );
680#endif
681
682
683/* ------------------------------------------------------------------------- */
684/*****************************************************************************/
685/***************************RX Power Offset Begin*******************************/
686/*****************************************************************************/
687#if defined(__RX_POWER_OFFSET_SUPPORT__)
688typedef struct
689{
690 short max_arfcn;
691 signed char gain_offset;
692 #if defined(__MULTI_LNA_MODE_CALIBRATION_SUPPORT__)
693 signed char gain_offset_middle;
694 signed char gain_offset_low;
695 #endif
696} sAGCLNAGAINOFFSET;
697
698typedef struct
699{
700 sAGCLNAGAINOFFSET agcPathLoss[FrequencyBandCount][PLTABLE_SIZE];
701}l1cal_agclnaPathLoss_T;
702
703
704typedef struct
705{
706 sAGCLNAGAINOFFSET* agcPathLoss[FrequencyBandCount];
707 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
708 sAGCLNAGAINOFFSET* agcPathLoss_RXD[FrequencyBandCount];
709 #endif
710}sL1D_AGCLNA_Gain_Offset_Data;
711
712#endif/*__RX_POWER_OFFSET_SUPPORT__*/
713
714
715/*****************************************************************************/
716/***************************RX Power Offset End*********************************/
717/*****************************************************************************/
718
719#if defined(__ANT_RXPWR_OFFSET_SUPPORT__)
720typedef struct
721{
722 kal_int16 arfcn;
723 kal_int16 threshold;
724 kal_int16 offset;
725
726}sANTENNARXPWROFFSET_DATA;
727
728typedef struct
729{
730 kal_uint32 pcell_id;
731 sANTENNARXPWROFFSET_DATA arfcn_list[PLTABLE_SIZE];
732
733}sANTENNARXPWROFFSET_PLIST;
734
735typedef struct
736{
737 kal_bool is_enable;
738 sANTENNARXPWROFFSET_PLIST pcell_list[PLTABLE_SIZE];
739
740}sL1D_ANT_RxPWR_Offset_T;
741#endif
742
743/*****************************************************************************/
744
745#define PROFILE_NUM 16
746#define ARFCN_SECTION_NUM 12
747
748typedef struct
749{
750 unsigned char point[2][16];
751
752} sRAMPAREADATA;
753
754typedef struct
755{
756 signed short max_arfcn;
757 unsigned short mid_level;
758 unsigned short hi_weight;
759 unsigned short low_weight;
760
761} sARFCN_SECTION;
762
763typedef struct
764{
765 signed long lowest_power;
766 unsigned short power[16];
767 sRAMPAREADATA ramp[ PROFILE_NUM ];
768 sARFCN_SECTION arfcn_weight[ ARFCN_SECTION_NUM ];
769 #if IS_TELEMATICS_VOLT_TEMP_TX_COMPENSATION_SUPPORT
770 unsigned short battery_compensate[5/*volt*/][5/*temp*/];
771 #else
772 unsigned short battery_compensate[3/*volt*/][3/*temp*/];
773 #endif
774} sRAMPDATA;
775
776typedef struct
777{
778 sRAMPDATA rampData;
779}l1cal_rampTable_T;
780
781void L1D_RF_SetRampTable( int rf_band, void *table );
782#if MD_DRV_IS_TX_POWER_OFFSET_SUPPORT
783void L1D_RF_SetTxPowerOffsetData_GMSK( int rf_band, void *table );
784 #if MD_DRV_IS_EPSK_TX_SUPPORT
785void L1D_RF_SetTxPowerOffsetData_EPSK( int rf_band, void *table );
786 #endif
787#endif // IS_TX_POWER_OFFSET_SUPPORT
788#if MD_DRV_IS_NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT
789void L1D_RF_SetAdjustTPOData_GMSK( int rf_band, void *table );
790 #if MD_DRV_IS_EPSK_TX_SUPPORT
791void L1D_RF_SetAdjustTPOData_EPSK( int rf_band, void *table );
792 #endif
793#endif // __NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT__
794
795unsigned long L1D_RF_GetITC_PCL(void);
796
797#if MD_DRV_IS_EPSK_TX_SUPPORT
798void L1D_RF_SetRampTableEPSK( int rf_band, void *table );
799void L1D_RF_SetPAGainTable( int rf_band, void *table );
800#endif
801
802/* ------------------------------------------------------------------------- */
803
804typedef struct
805{
806#if IS_AFC_CAPABILITY_ENHANCEMENT_SUPPORT
807 kal_uint32 dacValue;
808#else
809 kal_uint16 dacValue;
810#endif /* IS_AFC_CAPABILITY_ENHANCEMENT_SUPPORT */
811 kal_int32 slopeInv;
812}l1cal_afcData_T;
813
814void L1D_RF_SetCrystalAFCData( void *table );
815void L1D_RF_SetCrystalCap( int cap_no );
816#if IS_AFC_CAPABILITY_ENHANCEMENT_SUPPORT
817void L1D_RF_SetCrystalDac( int32 dacValue );
818#else
819void L1D_RF_SetCrystalDac( short dacValue );
820#endif /* IS_AFC_CAPABILITY_ENHANCEMENT_SUPPORT */
821
822/* ------------------------------------------------------------------------- */
823
824typedef struct
825{
826 kal_int16 filter_coefficient[60];
827}l1spfc_T;
828
829/* ------------------------------------------------------------------------- */
830
831typedef struct
832{
833 unsigned char bbtx_common_mode_voltage;
834 unsigned char bbtx_gain;
835 unsigned char bbtx_calrcsel;
836 unsigned char bbtx_trimI; // need to set
837 unsigned char bbtx_trimQ; // need to set
838 unsigned char bbtx_dccoarseI; // need to set
839 unsigned char bbtx_dccoarseQ; // need to set
840 unsigned char bbtx_offsetI; // need to set
841 unsigned char bbtx_offsetQ; // need to set
842 unsigned char bbtx_isCalibrated; // need to set
843 #if IS_TELEMATICS_VOLT_TEMP_TX_COMPENSATION_SUPPORT
844 int apc_bat_voltage_threshold[4];
845 int apc_bat_temperature_threshold[4];
846 #else
847 int apc_bat_low_voltage;
848 int apc_bat_high_voltage;
849 int apc_bat_low_temperature;
850 int apc_bat_high_temperature;
851 #endif
852 int ap_update_volinfo_period;
853 unsigned char bbtx_common_mode_voltage_h;
854 unsigned char bbtx_gain_h;
855 unsigned char bbtx_calrcsel_h;
856 unsigned char bbtx_trimI_h;
857 unsigned char bbtx_trimQ_h;
858 unsigned char bbtx_dccoarseI_h;
859 unsigned char bbtx_dccoarseQ_h;
860 unsigned char bbtx_offsetI_h;
861 unsigned char bbtx_offsetQ_h;
862 unsigned char bbtx_phsel;
863 unsigned char bbtx_phsel_h;
864 unsigned char bbrx_gsm850_gsm900_swap;
865 unsigned char bbrx_dcs1800_pcs1900_swap;
866} sBBTXParameters;
867
868typedef struct
869{
870 sBBTXParameters BBTXParameters;
871}l1cal_txiq_T;
872
873
874typedef unsigned char sMIDRAMPDATA[16];
875
876
877void L1D_RF_SetInterSlotRampTable( int rf_band, void *table );
878
879#if MD_DRV_IS_EPSK_TX_SUPPORT
880void L1D_RF_EPSK_SetInterSlotRampTable( int rf_band, int _8G_mode, void *table );
881#endif
882
883/* ------------------------------------------------------------------------- */
884
885typedef struct
886{
887 kal_uint8 interRampData[16];
888}l1cal_interRampData_T;
889
890#define InterRampData_count 4
891/* ------------------------------------------------------------------------- */
892
893#if MD_DRV_IS_EPSK_TX_SUPPORT
894typedef struct
895{
896 kal_uint8 EPSK_interRampData[4][16];
897}l1cal_EPSK_interRampData_T;
898#endif
899
900/* ------------------------------------------------------------------------- */
901
902#if MD_DRV_IS_VCXO_LC_SUPPORT
903#define XO_SlopeArea_Num 33
904#else
905#define XO_SlopeArea_Num 4
906#endif
907
908typedef struct
909{
910 long min_freq;
911 short min_dac;
912// long inv_slope;
913} XO_SLOPE_AREA_DATA;
914
915typedef struct
916{
917 XO_SLOPE_AREA_DATA XO_SlopeAreaData[XO_SlopeArea_Num];
918}l1cal_crystalAfcData_T;
919
920typedef struct
921{
922 kal_int32 cap_id;
923}l1cal_crystalCapData_T;
924
925extern const XO_SLOPE_AREA_DATA XO_SlopeAreaData_RO[XO_SlopeArea_Num];
926
927
928/* ------------------------------------------------------------------------- */
929
930#if MD_DRV_IS_FHC_SUPPORT
931void L1D_RF_GetAFCDacTRxOffset( short *afcdactrxoffset );
932void L1D_RF_SetAFCDacTRxOffset( short *afcdactrxoffset );
933#endif
934
935/* ------------------------------------------------------------------------- */
936
937typedef struct
938{
939 unsigned long icorrection;
940 unsigned long qcorrection;
941} skyip2coef;
942
943typedef struct
944{
945 unsigned long ipol;
946 unsigned long qpol;
947} sky117ip2pol;
948
949typedef struct
950{
951 unsigned long acode;
952 unsigned long amcode;
953} mt6139ip2coef;
954
955typedef struct
956{
957 signed short w_re;
958 signed short w_im;
959} w_coef;
960
961typedef struct
962{
963 unsigned char map[16];
964} gain_rf_map;
965
966
967#define WCTABLE_SIZE 19
968typedef union
969{
970 struct
971 {
972 skyip2coef data[5/*band*/];
973 } skyip2; //for sky74045
974 struct
975 {
976 skyip2coef data[5/*band*/];
977 sky117ip2pol pol[5/*band*/];
978 } sky117ip2;
979 struct
980 {
981 mt6139ip2coef data[5/*band*/];
982 unsigned long rxamcalmode;
983 } mt6139ip2;
984 struct
985 {
986 unsigned char fixgain_enable;
987 } sky74137; //for sky74137
988 struct
989 { // borrowed for mpll_fh chip, should not have rf rx_coff
990 unsigned char fixed_mpll_clk;
991 unsigned short mpll_freq_idx;
992 unsigned char fixed_spll_clk;
993 unsigned short spll_freq_idx;
994 } mpll_fh;
995 struct
996 { // reserved for mpll_fh
997 unsigned char fixed_mpll_clk;
998 unsigned short mpll_freq_idx;
999 w_coef w_data[WCTABLE_SIZE];
1000 } mt6256_51rf;
1001 struct
1002 { // reserved for mpll_fh
1003 unsigned char fixed_mpll_clk;
1004 unsigned short mpll_freq_idx;
1005 unsigned short is_md2g_log_on;
1006 } md2g_log; // for chip support md2g logger
1007 struct
1008 { // reserved for mpll_fh
1009 unsigned char fixed_mpll_clk;
1010 unsigned short mpll_freq_idx;
1011 unsigned short is_md2g_log_on;
1012 gain_rf_map gain_rf_table[4/*band*/];
1013 } mt6162_gain_rf;
1014#if MD_DRV_IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
1015 //Fix AFC Enable Setting move to MMRF after UMOLY/TK6291.
1016#endif
1017} sRxip2;
1018
1019/*...................................*/
1020
1021typedef struct
1022{
1023 unsigned long word6_4_0;
1024 unsigned long word6_5_0;
1025 unsigned long word6_6_0;
1026 unsigned long word6_7_0;
1027 unsigned long bvmode;
1028 unsigned long c3mode;
1029 unsigned long wordC3;
1030} b5ptxcoef;
1031
1032typedef struct
1033{
1034 short pcl_index;
1035 unsigned char pa_vbias;
1036#if MD_DRV_IS_RF_MT6280RF || MD_DRV_IS_RF_MT6169 || MD_DRV_IS_RF_MT6166 || MD_DRV_IS_RF_MT6165 || MD_DRV_IS_RF_MT6176 || MD_DRV_IS_RF_MT6179 || MD_DRV_IS_RF_MT6177L || MD_DRV_IS_RF_TRINITYE1 || MD_DRV_IS_RF_TRINITYL || MD_DRV_IS_RF_MT6186 || MD_DRV_IS_RF_MT6186M || MD_DRV_IS_RF_MT6190T || MD_DRV_IS_RF_MT6177M
1037 unsigned short pa_gain;
1038#endif
1039} pa_vbias;
1040
1041typedef struct
1042{
1043 pa_vbias GSM850_pa_vbias[8];
1044 pa_vbias GSM900_pa_vbias[8];
1045 pa_vbias DCS1800_pa_vbias[8];
1046 pa_vbias PCS1900_pa_vbias[8];
1047} mt6140tx_pa_vbias;
1048
1049typedef struct
1050{
1051 pa_vbias GSM850_pa_vbias[8];
1052 pa_vbias GSM900_pa_vbias[8];
1053 pa_vbias DCS1800_pa_vbias[8];
1054 pa_vbias PCS1900_pa_vbias[8];
1055} mt6162tx_pa_vbias;
1056
1057typedef struct
1058{
1059 pa_vbias GSM850_pa_vbias[8];
1060 pa_vbias GSM900_pa_vbias[8];
1061 pa_vbias DCS1800_pa_vbias[8];
1062 pa_vbias PCS1900_pa_vbias[8];
1063} mt6256tx_pa_vbias;
1064
1065typedef struct
1066{
1067 pa_vbias GSM850_pa_vbias[16];
1068 pa_vbias GSM900_pa_vbias[16];
1069 pa_vbias DCS1800_pa_vbias[16];
1070 pa_vbias PCS1900_pa_vbias[16];
1071} orionRFtx_pa_vbias;
1072
1073typedef struct
1074{
1075 unsigned char REFDET_SLOPE_SKEW;
1076 unsigned char AM_FB_DAC;
1077} ad6546txcoef;
1078
1079typedef struct
1080{
1081 signed char MID_GAMA_THRESHOLD;
1082 signed char LOW_GAMA_THRESHOLD;
1083 signed char MID_DELTA_SLOPE_SKEW;
1084 signed char LOW_DELTA_SLOPE_SKEW;
1085 signed char MID_DELTA_APC_CAP;
1086 signed char LOW_DELTA_APC_CAP;
1087} ad6546tx_reg8_highband_delta;
1088
1089typedef union
1090{
1091#if MD_DRV_IS_RF_MT6280RF || MD_DRV_IS_RF_MT6169 || MD_DRV_IS_RF_MT6166 || MD_DRV_IS_RF_MT6165 || MD_DRV_IS_RF_MT6176 || MD_DRV_IS_RF_MT6179 || MD_DRV_IS_RF_MT6177L || MD_DRV_IS_RF_TRINITYE1 || MD_DRV_IS_RF_TRINITYL || MD_DRV_IS_RF_MT6186 || MD_DRV_IS_RF_MT6186M || MD_DRV_IS_RF_MT6190T || MD_DRV_IS_RF_MT6177M
1092 struct
1093 {
1094 orionRFtx_pa_vbias data;
1095 } mt6280tx; /* Reserve mt6280tx for META Backward Capability */
1096 struct
1097 {
1098 orionRFtx_pa_vbias data;
1099 } orionRFtx;
1100#else
1101 struct
1102 {
1103 b5ptxcoef data;
1104 } b5ptx;
1105 struct
1106 {
1107 mt6140tx_pa_vbias data;
1108 } mt6140tx;
1109 struct
1110 {
1111 unsigned char ref_temp;
1112 unsigned char LB_GMSK_TX_PGA_GC;
1113 unsigned char HB_GMSK_TX_PGA_GC;
1114 char isDCXO;
1115 } CMOSEDGEtx;
1116 struct
1117 {
1118 ad6546txcoef CalData[4];
1119 unsigned long Reg8_default[4];
1120 ad6546tx_reg8_highband_delta AMLoopDelta;
1121 } ad6546tx;
1122 struct
1123 {
1124 mt6162tx_pa_vbias data;
1125 } mt6162tx;
1126 struct
1127 {
1128 mt6256tx_pa_vbias data;
1129 } mt6256tx;
1130/* struct
1131 {
1132 unsigned long dummy;
1133 } sTXdummy;
1134 */
1135#endif
1136} sTxepsk;
1137
1138typedef struct
1139{
1140 sRxip2 rx;
1141 sTxepsk tx;
1142} sRFSpecialCoef;
1143
1144typedef struct
1145{
1146 sRFSpecialCoef RFSpecialCoef;
1147}l1cal_rfspecialcoef_T;
1148
1149typedef struct
1150{
1151 w_coef Wcoef_data[WCTABLE_SIZE];
1152}l1cal_wcoef_T;
1153
1154extern sRFSpecialCoef RFSpecialCoef;
1155
1156void L1D_RF_SetRFSpecialCoef( void *table );
1157
1158#if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
1159extern l1cal_wcoef_T RFSpecial_wcoef_rxd;
1160
1161void L1D_RF_SetWCoef_RXD( void *table );
1162
1163void L1D_RF_SetRASParameters( void *table );
1164#endif
1165/* ------------------------------------------------------------------------- */
1166
1167typedef struct
1168{
1169 signed char rollback_2t; /* Rollback (2t/F2I_Resolution) dB when 2 TX slots */
1170 signed char rollback_3t; /* Rollback (3t/F2I_Resolution) dB when 3 TX slots */
1171 signed char rollback_4t; /* Rollback (4t/F2I_Resolution) dB when 4 TX slots */
1172 signed char rollback_5t; /* Rollback (5t/F2I_Resolution) dB when 5 TX slots */
1173} sTX_POWER_ROLLBACK;
1174
1175typedef struct
1176{
1177 sTX_POWER_ROLLBACK rollback_data[FrequencyBandCount];
1178}l1cal_tx_power_rollback_T;
1179
1180#if MD_DRV_IS_GPRS
1181void L1D_RF_SetTxPowerRollbackData( int rf_band, void *table );
1182 #if MD_DRV_IS_EGPRS
1183void L1D_RF_SetTxPowerRollbackData_EPSK( int rf_band, void *table );
1184 #endif
1185#endif
1186
1187/* ------------------------------------------------------------------------- */
1188
1189typedef struct
1190{
1191 unsigned short data[16]; /* for closed-loop AUXADC/BSI TXPC */
1192} sTXPC_ADCDATA;
1193
1194typedef struct
1195{
1196 unsigned short data[8]; /* for closed-loop BSI TXPC */
1197} sTXPC_TEMPDATA;
1198
1199typedef struct
1200{
1201 char is_calibrated;
1202 sTXPC_ADCDATA adc[FrequencyBandCount];
1203 short temperature;
1204 sTXPC_TEMPDATA temp[FrequencyBandCount];
1205} sTXPC_L1CAL;
1206
1207typedef sTXPC_L1CAL l1cal_txpc_T;
1208
1209void L1D_RF_TXPC_SET_CAL( sTXPC_L1CAL *cal, int is_EPSK, int update_type );
1210void L1D_RF_TXPC_GET_L1_SETTING( sTXPC_L1CAL *buff, int is_EPSK );
1211
1212/* ------------------------------------------------------------------------- */
1213
1214typedef struct
1215{
1216 unsigned short data[8]; /* for temperature ADC */
1217} sTEMPERATURE_ADC_L1CAL;
1218
1219typedef sTEMPERATURE_ADC_L1CAL l1cal_temperatureADC_T;
1220
1221void L1D_RF_TXPC_Get_Temp_ADC( sTEMPERATURE_ADC_L1CAL *buff );
1222
1223/* ------------------------------------------------------------------------- */
1224/* API for meta DCS 2nd path TX power check */
1225void L1D_RF_Set_TX_Notch_Path( kal_uint8 notch_en );
1226/* ------------------------------------------------------------------------- */
1227
1228#if MD_DRV_IS_BPI_DATA_48_BIT_CHIP
1229typedef unsigned long long BPI_DATA_SIZE; /* unsigned 64 bits */
1230#elif MD_DRV_IS_BPI_DATA_32_BIT_CHIP
1231typedef signed long BPI_DATA_SIZE;
1232#else
1233typedef signed short BPI_DATA_SIZE;
1234#endif
1235
1236#if MD_DRV_IS_RF_TOOL_CUSTOMIZATION_SUPPORT_V2
1237typedef struct
1238{
1239 signed short P_SR0; /* BPI data sent at SR0 */
1240 signed short P_SR3; /* BPI data sent at SR3 */
1241 signed short P_ST0; /* BPI data sent at ST0 */
1242 signed short P_ST3; /* BPI data sent at ST3 */
1243}sRF_PDATA_OFFCHIP_ITEM;
1244
1245typedef struct
1246{
1247 sRF_PDATA_OFFCHIP_ITEM GSM850;
1248 sRF_PDATA_OFFCHIP_ITEM GSM;
1249 sRF_PDATA_OFFCHIP_ITEM DCS;
1250 sRF_PDATA_OFFCHIP_ITEM PCS;
1251}sRF_PDATA_OFFCHIP;
1252
1253#if (defined(__MD93__) || defined(__MD95__))
1254typedef struct
1255{
1256 BPI_DATA_SIZE xPDATA_GSM850_PR1;
1257 BPI_DATA_SIZE xPDATA_GSM850_PR2;
1258 BPI_DATA_SIZE xPDATA_GSM850_PR2B;
1259 BPI_DATA_SIZE xPDATA_GSM850_PR3;
1260 BPI_DATA_SIZE xPDATA_GSM850_PR3A;
1261 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
1262 BPI_DATA_SIZE xPDATA_GSM850_DIVERSITY_PR1;
1263 BPI_DATA_SIZE xPDATA_GSM850_DIVERSITY_PR2;
1264 BPI_DATA_SIZE xPDATA_GSM850_DIVERSITY_PR2B;
1265 BPI_DATA_SIZE xPDATA_GSM850_DIVERSITY_PR3;
1266 BPI_DATA_SIZE xPDATA_GSM850_DIVERSITY_PR3A;
1267 #endif
1268 BPI_DATA_SIZE xPDATA_GSM850_PT1;
1269 BPI_DATA_SIZE xPDATA_GSM850_PT2;
1270 BPI_DATA_SIZE xPDATA_GSM850_PT2B;
1271 BPI_DATA_SIZE xPDATA_GSM850_PT3;
1272 BPI_DATA_SIZE xPDATA_GSM850_PT3A;
1273 BPI_DATA_SIZE xPDATA_GSM_PR1;
1274 BPI_DATA_SIZE xPDATA_GSM_PR2;
1275 BPI_DATA_SIZE xPDATA_GSM_PR2B;
1276 BPI_DATA_SIZE xPDATA_GSM_PR3;
1277 BPI_DATA_SIZE xPDATA_GSM_PR3A;
1278 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
1279 BPI_DATA_SIZE xPDATA_GSM_DIVERSITY_PR1;
1280 BPI_DATA_SIZE xPDATA_GSM_DIVERSITY_PR2;
1281 BPI_DATA_SIZE xPDATA_GSM_DIVERSITY_PR2B;
1282 BPI_DATA_SIZE xPDATA_GSM_DIVERSITY_PR3;
1283 BPI_DATA_SIZE xPDATA_GSM_DIVERSITY_PR3A;
1284 #endif
1285 BPI_DATA_SIZE xPDATA_GSM_PT1;
1286 BPI_DATA_SIZE xPDATA_GSM_PT2;
1287 BPI_DATA_SIZE xPDATA_GSM_PT2B;
1288 BPI_DATA_SIZE xPDATA_GSM_PT3;
1289 BPI_DATA_SIZE xPDATA_GSM_PT3A;
1290 BPI_DATA_SIZE xPDATA_DCS_PR1;
1291 BPI_DATA_SIZE xPDATA_DCS_PR2;
1292 BPI_DATA_SIZE xPDATA_DCS_PR2B;
1293 BPI_DATA_SIZE xPDATA_DCS_PR3;
1294 BPI_DATA_SIZE xPDATA_DCS_PR3A;
1295 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
1296 BPI_DATA_SIZE xPDATA_DCS_DIVERSITY_PR1;
1297 BPI_DATA_SIZE xPDATA_DCS_DIVERSITY_PR2;
1298 BPI_DATA_SIZE xPDATA_DCS_DIVERSITY_PR2B;
1299 BPI_DATA_SIZE xPDATA_DCS_DIVERSITY_PR3;
1300 BPI_DATA_SIZE xPDATA_DCS_DIVERSITY_PR3A;
1301 #endif
1302 BPI_DATA_SIZE xPDATA_DCS_PT1;
1303 BPI_DATA_SIZE xPDATA_DCS_PT2;
1304 BPI_DATA_SIZE xPDATA_DCS_PT2B;
1305 BPI_DATA_SIZE xPDATA_DCS_PT3;
1306 BPI_DATA_SIZE xPDATA_DCS_PT3A;
1307 BPI_DATA_SIZE xPDATA_PCS_PR1;
1308 BPI_DATA_SIZE xPDATA_PCS_PR2;
1309 BPI_DATA_SIZE xPDATA_PCS_PR2B;
1310 BPI_DATA_SIZE xPDATA_PCS_PR3;
1311 BPI_DATA_SIZE xPDATA_PCS_PR3A;
1312 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
1313 BPI_DATA_SIZE xPDATA_PCS_DIVERSITY_PR1;
1314 BPI_DATA_SIZE xPDATA_PCS_DIVERSITY_PR2;
1315 BPI_DATA_SIZE xPDATA_PCS_DIVERSITY_PR2B;
1316 BPI_DATA_SIZE xPDATA_PCS_DIVERSITY_PR3;
1317 BPI_DATA_SIZE xPDATA_PCS_DIVERSITY_PR3A;
1318 #endif
1319 BPI_DATA_SIZE xPDATA_PCS_PT1;
1320 BPI_DATA_SIZE xPDATA_PCS_PT2;
1321 BPI_DATA_SIZE xPDATA_PCS_PT2B;
1322 BPI_DATA_SIZE xPDATA_PCS_PT3;
1323 BPI_DATA_SIZE xPDATA_PCS_PT3A;
1324 BPI_DATA_SIZE xPDATA_GSM850_PR2M1;
1325 BPI_DATA_SIZE xPDATA_GSM850_PR2M2;
1326 BPI_DATA_SIZE xPDATA_GSM850_PR2M3;
1327 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
1328 BPI_DATA_SIZE xPDATA_GSM850_DIVERSITY_PR2M1;
1329 BPI_DATA_SIZE xPDATA_GSM850_DIVERSITY_PR2M2;
1330 BPI_DATA_SIZE xPDATA_GSM850_DIVERSITY_PR2M3;
1331 #endif
1332 BPI_DATA_SIZE xPDATA_GSM850_PT2M1_G8;
1333 BPI_DATA_SIZE xPDATA_GSM850_PT2M2_G8;
1334 BPI_DATA_SIZE xPDATA_GSM850_PT2M3_G8;
1335 BPI_DATA_SIZE xPDATA_GSM850_PT2M1_8G;
1336 BPI_DATA_SIZE xPDATA_GSM850_PT2M2_8G;
1337 BPI_DATA_SIZE xPDATA_GSM850_PT2M3_8G;
1338 BPI_DATA_SIZE xPDATA_GSM_PR2M1;
1339 BPI_DATA_SIZE xPDATA_GSM_PR2M2;
1340 BPI_DATA_SIZE xPDATA_GSM_PR2M3;
1341 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
1342 BPI_DATA_SIZE xPDATA_GSM_DIVERSITY_PR2M1;
1343 BPI_DATA_SIZE xPDATA_GSM_DIVERSITY_PR2M2;
1344 BPI_DATA_SIZE xPDATA_GSM_DIVERSITY_PR2M3;
1345 #endif
1346 BPI_DATA_SIZE xPDATA_GSM_PT2M1_G8;
1347 BPI_DATA_SIZE xPDATA_GSM_PT2M2_G8;
1348 BPI_DATA_SIZE xPDATA_GSM_PT2M3_G8;
1349 BPI_DATA_SIZE xPDATA_GSM_PT2M1_8G;
1350 BPI_DATA_SIZE xPDATA_GSM_PT2M2_8G;
1351 BPI_DATA_SIZE xPDATA_GSM_PT2M3_8G;
1352 BPI_DATA_SIZE xPDATA_DCS_PR2M1;
1353 BPI_DATA_SIZE xPDATA_DCS_PR2M2;
1354 BPI_DATA_SIZE xPDATA_DCS_PR2M3;
1355 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
1356 BPI_DATA_SIZE xPDATA_DCS_DIVERSITY_PR2M1;
1357 BPI_DATA_SIZE xPDATA_DCS_DIVERSITY_PR2M2;
1358 BPI_DATA_SIZE xPDATA_DCS_DIVERSITY_PR2M3;
1359 #endif
1360 BPI_DATA_SIZE xPDATA_DCS_PT2M1_G8;
1361 BPI_DATA_SIZE xPDATA_DCS_PT2M2_G8;
1362 BPI_DATA_SIZE xPDATA_DCS_PT2M3_G8;
1363 BPI_DATA_SIZE xPDATA_DCS_PT2M1_8G;
1364 BPI_DATA_SIZE xPDATA_DCS_PT2M2_8G;
1365 BPI_DATA_SIZE xPDATA_DCS_PT2M3_8G;
1366 BPI_DATA_SIZE xPDATA_PCS_PR2M1;
1367 BPI_DATA_SIZE xPDATA_PCS_PR2M2;
1368 BPI_DATA_SIZE xPDATA_PCS_PR2M3;
1369 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
1370 BPI_DATA_SIZE xPDATA_PCS_DIVERSITY_PR2M1;
1371 BPI_DATA_SIZE xPDATA_PCS_DIVERSITY_PR2M2;
1372 BPI_DATA_SIZE xPDATA_PCS_DIVERSITY_PR2M3;
1373 #endif
1374 BPI_DATA_SIZE xPDATA_PCS_PT2M1_G8;
1375 BPI_DATA_SIZE xPDATA_PCS_PT2M2_G8;
1376 BPI_DATA_SIZE xPDATA_PCS_PT2M3_G8;
1377 BPI_DATA_SIZE xPDATA_PCS_PT2M1_8G;
1378 BPI_DATA_SIZE xPDATA_PCS_PT2M2_8G;
1379 BPI_DATA_SIZE xPDATA_PCS_PT2M3_8G;
1380 BPI_DATA_SIZE xPDATA_INIT;
1381 BPI_DATA_SIZE xPDATA_IDLE;
1382 BPI_DATA_SIZE xPDATA_GMSK;
1383 BPI_DATA_SIZE xPDATA_8PSK;
1384 sRF_PDATA_OFFCHIP xPDATA_OFFCHIP;
1385}sRF_BPI_VARIABLE;
1386#endif
1387/*...................................*/
1388
1389typedef struct
1390{
1391 signed short xQB_RX_FENA_2_FSYNC;
1392 signed short xQB_RX_FSYNC_2_FENA;
1393 signed short xQB_TX_FENA_2_FSYNC;
1394 signed short xQB_TX_FSYNC_2_FENA;
1395 signed short xQB_SR0; //OH
1396 signed short xQB_SR1;
1397 signed short xQB_SR2;
1398 signed short xQB_SR3;
1399 signed short xQB_SR2M;
1400 #if defined(__MD97__)
1401 #else
1402 signed short xQB_PR1;
1403 signed short xQB_PR2;
1404 signed short xQB_PR2B;
1405 signed short xQB_PR3;
1406 signed short xQB_PR3A;
1407 signed short xQB_PR2M1;
1408 signed short xQB_PR2M2;
1409 #endif
1410 signed short xQB_ST0; //OH
1411 signed short xQB_ST1;
1412 signed short xQB_ST2;
1413 signed short xQB_ST2B;
1414 signed short xQB_ST3;
1415 signed short xQB_ST2M_G8;
1416 signed short xQB_ST2M_8G;
1417 #if defined(__MD97__)
1418 #else
1419 signed short xQB_PT1;
1420 signed short xQB_PT2;
1421 signed short xQB_PT2B;
1422 signed short xQB_PT3;
1423 signed short xQB_PT3A;
1424 signed short xQB_PT2M1_G8;
1425 signed short xQB_PT2M2_G8;
1426 signed short xQB_PT2M3_G8;
1427 signed short xQB_PT2M1_8G;
1428 signed short xQB_PT2M2_8G;
1429 signed short xQB_PT2M3_8G;
1430 #endif
1431 signed short xQB_APCON;
1432 signed short xQB_APCMID;
1433 signed short xQB_APCOFF;
1434 signed short xQB_APCDACON; //OH
1435 signed short xQR_BOFF_2_IDLE;
1436} sRF_TIMING_VARIABLE;
1437
1438/*...................................*/
1439
1440typedef struct
1441{
1442 int xBAT_VOLTAGE_SAMPLE_PERIOD;
1443 int xBAT_VOLTAGE_AVERAGE_COUNT;
1444 int xBAT_TEMPERATURE_SAMPLE_PERIOD;
1445 int xBAT_TEMPERATURE_AVERAGE_COUNT;
1446 //int xBAT_LOW_VOLTAGE;
1447 //int xBAT_HIGH_VOLTAGE;
1448 //int xBAT_LOW_TEMPERATURE;
1449 //int xBAT_HIGH_TEMPERATURE;
1450 int xRF_TEMPERATURE_SAMPLE_PERIOD; //OH
1451 int xRF_TEMPERATURE_AVERAGE_COUNT; //OH
1452} sRF_APC_COMPENSATE_VARIABLE;
1453
1454/*...................................*/
1455
1456typedef struct
1457{
1458 signed short txios_highpcl_850_GMSK;
1459 signed short txios_highpcl_900_GMSK;
1460 signed short txios_highpcl_DCS_GMSK;
1461 signed short txios_highpcl_PCS_GMSK;
1462 signed short txios_highpcl_850_EPSK;
1463 signed short txios_highpcl_900_EPSK;
1464 signed short txios_highpcl_DCS_EPSK;
1465 signed short txios_highpcl_PCS_EPSK;
1466 signed short txios_lowpcl_850_GMSK;
1467 signed short txios_lowpcl_900_GMSK;
1468 signed short txios_lowpcl_DCS_GMSK;
1469 signed short txios_lowpcl_PCS_GMSK;
1470 signed short txios_lowpcl_850_EPSK;
1471 signed short txios_lowpcl_900_EPSK;
1472 signed short txios_lowpcl_DCS_EPSK;
1473 signed short txios_lowpcl_PCS_EPSK;
1474
1475}sRF_PCL_VARIABLE;
1476
1477/*...................................*/
1478
1479typedef struct
1480{
1481 signed short lbmod_gc_highpcl_850_GMSK;
1482 signed short lbmod_gc_highpcl_900_GMSK;
1483 signed short lbmod_gc_highpcl_DCS_GMSK;
1484 signed short lbmod_gc_highpcl_PCS_GMSK;
1485 signed short lbmod_gc_highpcl_850_EPSK;
1486 signed short lbmod_gc_highpcl_900_EPSK;
1487 signed short lbmod_gc_highpcl_DCS_EPSK;
1488 signed short lbmod_gc_highpcl_PCS_EPSK;
1489 signed short lbmod_gc_lowpcl_850_GMSK;
1490 signed short lbmod_gc_lowpcl_900_GMSK;
1491 signed short lbmod_gc_lowpcl_DCS_GMSK;
1492 signed short lbmod_gc_lowpcl_PCS_GMSK;
1493 signed short lbmod_gc_lowpcl_850_EPSK;
1494 signed short lbmod_gc_lowpcl_900_EPSK;
1495 signed short lbmod_gc_lowpcl_DCS_EPSK;
1496 signed short lbmod_gc_lowpcl_PCS_EPSK;
1497}sRF_LBMOD_GC_VARIABLE;
1498
1499/*...................................*/
1500
1501typedef struct
1502{
1503 signed short hbmod_gc_highpcl_850_GMSK;
1504 signed short hbmod_gc_highpcl_900_GMSK;
1505 signed short hbmod_gc_highpcl_DCS_GMSK;
1506 signed short hbmod_gc_highpcl_PCS_GMSK;
1507 signed short hbmod_gc_highpcl_850_EPSK;
1508 signed short hbmod_gc_highpcl_900_EPSK;
1509 signed short hbmod_gc_highpcl_DCS_EPSK;
1510 signed short hbmod_gc_highpcl_PCS_EPSK;
1511 signed short hbmod_gc_lowpcl_850_GMSK;
1512 signed short hbmod_gc_lowpcl_900_GMSK;
1513 signed short hbmod_gc_lowpcl_DCS_GMSK;
1514 signed short hbmod_gc_lowpcl_PCS_GMSK;
1515 signed short hbmod_gc_lowpcl_850_EPSK;
1516 signed short hbmod_gc_lowpcl_900_EPSK;
1517 signed short hbmod_gc_lowpcl_DCS_EPSK;
1518 signed short hbmod_gc_lowpcl_PCS_EPSK;
1519
1520}sRF_HBMOD_GC_VARIABLE;
1521
1522/*...................................*/
1523
1524typedef struct
1525{
1526 signed short txitc_highpcl_850_GMSK;
1527 signed short txitc_highpcl_900_GMSK;
1528 signed short txitc_highpcl_DCS_GMSK;
1529 signed short txitc_highpcl_PCS_GMSK;
1530 signed short txitc_highpcl_850_EPSK;
1531 signed short txitc_highpcl_900_EPSK;
1532 signed short txitc_highpcl_DCS_EPSK;
1533 signed short txitc_highpcl_PCS_EPSK;
1534 signed short txitc_lowpcl_850_GMSK;
1535 signed short txitc_lowpcl_900_GMSK;
1536 signed short txitc_lowpcl_DCS_GMSK;
1537 signed short txitc_lowpcl_PCS_GMSK;
1538 signed short txitc_lowpcl_850_EPSK;
1539 signed short txitc_lowpcl_900_EPSK;
1540 signed short txitc_lowpcl_DCS_EPSK;
1541 signed short txitc_lowpcl_PCS_EPSK;
1542}sRF_ITC_PCL_VARIABLE;
1543
1544/*...................................*/
1545
1546typedef struct
1547{
1548 signed char xCLOSED_LOOP_TXPC_TYPE; //OH
1549 signed short xQB_TX_SAMPLE_OFFSET_GMSK; //OH
1550 signed short xQB_TX_SAMPLE_OFFSET_EPSK; //OH
1551 signed short xTXPC_EPSK_TP_SLOPE_LB; //OH
1552 signed short xTXPC_EPSK_TP_SLOPE_HB; //OH
1553} sRF_TX_POWERFEEDBACK_VARIABLE; //OH
1554
1555/*...................................*/
1556
1557typedef struct
1558{
1559 //int xXO_CapID;
1560 //signed short xafc_dac_default;
1561 //signed short xafc_inv_slope;
1562 signed char xEGSM_DISABLE;
1563 //unsigned char xGSM850_GSM900_SWAP;
1564 //unsigned char xDCS1800_PCS1900_SWAP;
1565 unsigned char xGSM_ERR_DET_ID; //OH
1566 signed short xTX_PROPAGATION_DELAY;
1567 signed short xTQ_EPSK_TX_DELAY;
1568 char xIS_RAMPPROFILE_ROLLBACK_ENABLE;
1569} sRF_OTHERS_VARIABLE;
1570
1571/*...................................*/
1572
1573typedef struct
1574{
1575 sTX_POWER_ROLLBACK GSM850_tx_power_rollback_gmsk;
1576 sTX_POWER_ROLLBACK GSM_tx_power_rollback_gmsk;
1577 sTX_POWER_ROLLBACK DCS_tx_power_rollback_gmsk;
1578 sTX_POWER_ROLLBACK PCS_tx_power_rollback_gmsk;
1579 sTX_POWER_ROLLBACK GSM850_tx_power_rollback_epsk;
1580 sTX_POWER_ROLLBACK GSM_tx_power_rollback_epsk;
1581 sTX_POWER_ROLLBACK DCS_tx_power_rollback_epsk;
1582 sTX_POWER_ROLLBACK PCS_tx_power_rollback_epsk;
1583}sRF_TX_POWER_ROLLBACK_VARIABLE;
1584
1585/*...................................*/
1586
1587#if IS_CHIP_MT6297_AND_LATTER_VERSION
1588#else
1589typedef struct
1590{
1591 //PRIMARARY
1592 GGE_IORX_E xGSM850_PATH_SEL;
1593 GGE_IORX_E xGSM_PATH_SEL;
1594 GGE_IORX_E xDCS_PATH_SEL;
1595 GGE_IORX_E xPCS_PATH_SEL;
1596
1597#if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
1598 //DIVERSITY
1599 GGE_IORX_E xGSM850_DIVERSITY_PATH_SEL;
1600 GGE_IORX_E xGSM_DIVERSITY_PATH_SEL;
1601 GGE_IORX_E xDCS_DIVERSITY_PATH_SEL;
1602 GGE_IORX_E xPCS_DIVERSITY_PATH_SEL;
1603#endif
1604}sRF_RX_BAND_VARIABLE;
1605#endif
1606/*...................................*/
1607
1608typedef struct
1609{
1610 unsigned char xAFC_PREDICTION_ON;
1611 unsigned short xAFC_PREDICTION_INTERVAL;
1612 unsigned char xAFC_PREDICTION_DECAYING_FACTOR;
1613}sRF_AFC_TRACKING_VARIABLE;
1614
1615/*...................................*/
1616
1617typedef struct
1618{
1619 unsigned char xCLK1_EN;
1620 unsigned char xCLK2_EN;
1621 unsigned char xCLK3_EN;
1622 unsigned char xCLK4_EN;
1623}sRF_CLK_BUFFER_VARIABLE;
1624
1625/*...................................*/
1626
1627#if IS_GSM_TX_DETECTOR_SUPPORT
1628typedef struct
1629{
1630 L1D_TXD_E TXD_ENABLE[FrequencyBandCount];
1631}sRF_TX_POWER_DETECT_VARIABLE;
1632#endif
1633
1634/*...................................*/
1635
1636typedef struct
1637{
1638 int start; // the special pattern of start position
1639 int version; // Struct Version ID
1640 int RF_Type; // RF type
1641 char is_data_update; // default is false, and will be changed as true after tool update
1642#if defined(__MD97__)
1643#else
1644 sRF_BPI_VARIABLE RF_BPI_Variable;
1645#endif
1646 sRF_TIMING_VARIABLE RF_Timing_Variable;
1647 sRF_APC_COMPENSATE_VARIABLE RF_APC_Compensate_Variable;
1648 sRF_PCL_VARIABLE RF_PCL_Varaible;
1649 sRF_LBMOD_GC_VARIABLE RF_Lbmod_GC_Variable;
1650 sRF_HBMOD_GC_VARIABLE RF_Hbmod_GC_Variable;
1651 sRF_ITC_PCL_VARIABLE RF_ITC_PCL_Variable;
1652 sRF_TX_POWERFEEDBACK_VARIABLE RF_TX_PowerFeedback_Variable;
1653 //sRF_TX_POWER_ROLLBACK_VARIABLE RF_TX_Power_Rollback_Variable;
1654#if IS_CHIP_MT6297_AND_LATTER_VERSION
1655#else
1656 sRF_RX_BAND_VARIABLE RF_RX_Band_Variable;
1657#endif
1658 sRF_OTHERS_VARIABLE RF_Others_Variable;
1659 sRF_AFC_TRACKING_VARIABLE RF_AFC_Tracking_Variable;
1660 sRF_CLK_BUFFER_VARIABLE RF_CLK_Buffer_Variable;
1661#if defined(__GSM_INCREASE_RACH_TX_POWER_SUPPORT__)
1662 int RACH_Tx_Offset[FrequencyBandCount - 1];//For RACH TX OFFSET
1663#endif
1664#if IS_GSM_TX_DETECTOR_SUPPORT
1665 sRF_TX_POWER_DETECT_VARIABLE RF_TX_PowerDetect_Variable;
1666#endif
1667 #if defined(__2G_FAST_TIMING_ADJUST_SUPPORT__)
1668 bool Fast_Timing_Control;
1669 #endif
1670 int end; // the special pattern of end1 position
1671}sL1D_RF_CUSTOM_INPUT_DATA;
1672
1673typedef sL1D_RF_CUSTOM_INPUT_DATA l1d_rf_custom_input_data_T;
1674
1675#endif
1676
1677void L1D_RF_CAPID_Update( void );
1678void L1D_RF_Custom_BBTXParameter_Update( void );
1679void L1D_RF_Custom_TX_Power_Rollback_Table_Update_GPRS( void );
1680void L1D_RF_Custom_TX_Power_Rollback_Table_Update_EGPRS( void );
1681
1682/* ------------------------------------------------------------------------- */
1683
1684typedef struct
1685{
1686 kal_int32 cload_freq_offset;
1687}l1cal_cload_freq_offset_T;
1688
1689#if MD_DRV_IS_32K_CRYSTAL_REMOVAL_SUPPORT
1690void L1D_RF_GetCLoadFreqOffset( int* buff );
1691#endif
1692/* ------------------------------------------------------------------------- */
1693
1694#if MD_DRV_IS_TX_GAIN_RF_CALIBRATION_SUPPORT
1695 #if MD_DRV_IS_RF_MT6165
1696#define TX_GAIN_STEP_NUM 13
1697 #else
1698#error "please define TX_GAIN_STEP_NUM for this RF"
1699 #endif
1700#else
1701#define TX_GAIN_STEP_NUM 13
1702#endif
1703
1704typedef struct
1705{
1706 kal_int16 gain_rf[FrequencyBandCount][TX_GAIN_STEP_NUM];
1707}l1cal_gainrf_T;
1708
1709typedef struct
1710{
1711 short data[TX_GAIN_STEP_NUM];
1712} sTXGAIN_RFDATA;
1713
1714
1715typedef enum
1716{
1717 EPSKTxGainNormalState,
1718 EPSKTxGainCalibrationState,
1719
1720} TXGainRFState;
1721
1722/* ------------------------------------------------------------------------- */
1723
1724#if MD_DRV_IS_2G_MIPI_SUPPORT
1725
1726typedef struct
1727{
1728 unsigned short mipi_data_st; //mipi data start index
1729 unsigned short mipi_data_sp; //mipi data stop index
1730} sGGE_MIPIDATA_STSP;
1731
1732typedef struct
1733{
1734 unsigned short mipi_elm_type; //mipi element type
1735 sGGE_MIPIDATA_STSP mipi_data_stsp; //mipi data table start index and end index
1736 unsigned short mipi_evt_type; //event type
1737 signed short mipi_evt_timing; //event timing
1738} sGGE_MIPIEVENT;
1739
1740typedef struct
1741{
1742 unsigned short mipi_elm_type; //mipi element type
1743 unsigned short mipi_port_sel; //port where data to send
1744 unsigned short mipi_data_seq; //data write sequence format
1745 unsigned long mipi_data; //mipi data
1746} sGGE_MIPIDATA;
1747
1748typedef struct
1749{
1750 signed short subband_arfcn; //subband arfcn
1751 unsigned short mipi_addr; //mipi address
1752 unsigned long mipi_data; //mipi data
1753} sGGE_MIPISUBDATA;
1754
1755typedef struct
1756{
1757 unsigned short mipi_elm_type; //mipi element type
1758 unsigned short mipi_port_sel; //port where data to send
1759 unsigned short mipi_data_seq; //data write sequence format
1760 unsigned short mipi_usid; //mipi usid
1761 sGGE_MIPISUBDATA mipi_subband_data[GGE_MIPI_SUBBAND_NUM]; //mipi subband data
1762} sGGE_MIPIDATA_SUBBAND;
1763
1764typedef struct
1765{
1766 unsigned long mipi_gmsk_data[GGE_MIPI_SUBBAND_PA_DATA_NUM][GGE_MIPI_SUBBAND_NUM]; //PA GMSK data
1767 unsigned long mipi_8psk_data[GGE_MIPI_SUBBAND_PA_DATA_NUM][GGE_MIPI_SUBBAND_NUM]; //PA 8PSK data
1768} sGGE_MIPIPADATA;
1769
1770typedef struct {
1771 sGGE_MIPIEVENT mipi_rxctrl_event[GGE_MIPI_RTX_EVENT_NUM];
1772 sGGE_MIPIDATA_SUBBAND mipi_rxctrl_data[GGE_MIPI_RTX_DATA_NUM];
1773}sGGE_MIPI_RXCTRL_TABLE;
1774
1775typedef struct {
1776 sGGE_MIPIEVENT mipi_txctrl_event[GGE_MIPI_RTX_EVENT_NUM];
1777 sGGE_MIPIDATA_SUBBAND mipi_txctrl_data[GGE_MIPI_RTX_DATA_NUM];
1778 sGGE_MIPIPADATA mipi_txctrl_pa_data;
1779}sGGE_MIPI_TXCTRL_TABLE;
1780
1781typedef struct {
1782 sGGE_MIPIEVENT mipi_txmidctrl_event[GGE_MIPI_TXMID_TYPE_NUM][GGE_MIPI_TXMID_EVENT_NUM];
1783 sGGE_MIPIDATA_SUBBAND mipi_txmidctrl_data[GGE_MIPI_TXMID_DATA_NUM];
1784}sGGE_MIPI_TXMIDCTRL_TABLE;
1785
1786typedef struct
1787{
1788 sGGE_MIPI_RXCTRL_TABLE mipi_rx_ctrl_table;
1789 sGGE_MIPI_TXCTRL_TABLE mipi_tx_ctrl_table;
1790 sGGE_MIPI_TXMIDCTRL_TABLE mipi_txmid_ctrl_table;
1791}sGGE_MIPI_CTRL_TABLE_BAND;
1792
1793 #if MD_DRV_IS_2G_TAS_SUPPORT
1794typedef struct {
1795 sGGE_MIPIEVENT tas_mipi_rtxctrl_event[L1D_TAS_FE_CAT_MAX_NUM*L1D_TAS_MAX_MIPI_EVNET_NUM];
1796 sGGE_MIPIDATA_SUBBAND tas_mipi_rtxctrl_data[L1D_TAS_FE_CAT_MAX_NUM*L1D_TAS_MAX_MIPI_DATA_NUM];
1797 }sGGE_TAS_MIPI_RTXCTRL_TABLE;
1798 #endif
1799
1800 #if defined(__DYNAMIC_ANTENNA_TUNING__)
1801typedef struct
1802{
1803 sGGE_MIPIEVENT dat_mipi_rtxctrl_event[L1D_DAT_FE_CAT_MAX_NUM*L1D_DAT_MAX_MIPI_EVNET_NUM];
1804 sGGE_MIPIDATA_SUBBAND dat_mipi_rtxctrl_data[L1D_DAT_FE_CAT_MAX_NUM*L1D_DAT_MAX_MIPI_DATA_NUM];
1805}sGGE_DAT_MIPI_RTXCTRL_TABLE;
1806
1807typedef sGGE_DAT_MIPI_RTXCTRL_TABLE l1cal_dat_mipi_ctrl_table_T;
1808 #endif//__DYNAMIC_ANTENNA_TUNING__
1809
1810typedef struct
1811{
1812 sGGE_MIPI_CTRL_TABLE_BAND* band400_mipi_table;
1813 sGGE_MIPI_CTRL_TABLE_BAND* band850_mipi_table;
1814 sGGE_MIPI_CTRL_TABLE_BAND* band900_mipi_table;
1815 sGGE_MIPI_CTRL_TABLE_BAND* band1800_mipi_table;
1816 sGGE_MIPI_CTRL_TABLE_BAND* band1900_mipi_table;
1817}sGGE_MIPI_CTRL_TABLE_SET;
1818
1819typedef sGGE_MIPI_CTRL_TABLE_BAND l1cal_mipi_ctrl_table_band_T;
1820
1821#endif
1822
1823typedef struct
1824{
1825 unsigned short l1d_drdi_status;
1826
1827 /* for Index debug */
1828 unsigned short l1d_combined_config_index;
1829 unsigned char l1d_first_config_index_base;
1830 unsigned char l1d_second_config_index_base;
1831 unsigned char l1d_third_config_index_base;
1832
1833 /* for GPIO debug */
1834 unsigned long l1d_gpio_get_pin_rpc_status;
1835 unsigned long l1d_gpio_combined_pin_value;
1836
1837 /* for ADC debug */
1838 signed long l1d_adc_get_ch_num_rpc_status;
1839 signed long l1d_adc_dcl_handle_status;
1840 signed long l1d_adc_cal_dcl_handle_status;
1841 unsigned long l1d_adc_get_ch_num;
1842 unsigned long l1d_adc_dac_read_result;
1843 unsigned long l1d_adc_volt_translate_result;
1844 unsigned char l1d_adc_volt_level;
1845
1846 /* for Barcode debug */
1847 unsigned char l1d_barcode_lid_read_status;
1848 unsigned char l1d_barcode_digit_read_result;
1849
1850 unsigned short l1d_custom_2grfparameters_lid_wr_status;
1851 unsigned short l1d_custom_gsm850_mipitable_lid_wr_status;
1852 unsigned short l1d_custom_gsm900_mipitable_lid_wr_status;
1853 unsigned short l1d_custom_dcs1800_mipitable_lid_wr_status;
1854 unsigned short l1d_custom_pcs1900_mipitable_lid_wr_status;
1855
1856 /* for Band support debug */
1857 unsigned char l1d_band_support_switch;
1858
1859 /* for PDATA debug */
1860 unsigned long l1d_custom_pdata_txport_debug[4][2];
1861
1862 signed long l1d_custom_pdata_gmsk_debug;
1863 signed long l1d_custom_pdata_8psk_debug;
1864 signed long l1d_custom_pdata_init_debug;
1865 signed long l1d_custom_pdata_idle_debug;
1866
1867#if defined (__RX_POWER_OFFSET_SUPPORT__)
1868 unsigned short l1d_custom_rxpoweroffset_lid_wr_status;
1869 unsigned short l1d_custom_2grf_rx_parameters_ext_lid_wr_status;
1870#endif/*__RX_POWER_OFFSET_SUPPORT__*/
1871}sl1CustomDRDIStautaDebugInfo;
1872
1873typedef struct
1874{
1875 unsigned char bandsupport_gsm850;
1876 unsigned char bandsupport_gsm900;
1877 unsigned char bandsupport_dcs1800;
1878 unsigned char bandsupport_pcs1900;
1879}sl1CustomBandSupport;
1880typedef sl1CustomDRDIStautaDebugInfo l1cal_l1CustomDRDIStautaDebugInfo_T;
1881
1882typedef sl1CustomBandSupport l1cal_l1CustomBandSupport_T;
1883extern sl1CustomDRDIStautaDebugInfo l1d_custom_drdi_status_debug_info;
1884
1885#if MD_DRV_IS_TX_POWER_OFFSET_SUPPORT || defined (__SAR_TX_POWER_BACKOFF_SUPPORT__)
1886
1887#define TPO_2G_TABLE_NUM (1)
1888#define L1D_TAS_ANT_NUM (4)
1889
1890#if defined (__SAR_TX_POWER_BACKOFF_SUPPORT__)
1891typedef enum
1892{
1893 GGE_SAR_RF_STATE_DEFAULT = 0, /* 0, apply default table (table 0) */
1894 GGE_SAR_RF_STATE_1,
1895 GGE_SAR_RF_STATE_2,
1896 GGE_SAR_RF_STATE_3,
1897 GGE_SAR_RF_STATE_4,
1898 GGE_SAR_RF_STATE_5,
1899 GGE_SAR_RF_STATE_6,
1900 GGE_SAR_RF_STATE_7,
1901 GGE_SAR_RF_STATE_8,
1902 GGE_SAR_RF_STATE_9,
1903 GGE_SAR_RF_STATE_10,
1904 GGE_SAR_RF_STATE_11,
1905 GGE_SAR_RF_STATE_12,
1906 GGE_SAR_RF_STATE_13,
1907 GGE_SAR_RF_STATE_14,
1908 GGE_SAR_RF_STATE_15,
1909 GGE_SAR_RF_STATE_16,
1910 GGE_SAR_RF_STATE_17,
1911 GGE_SAR_RF_STATE_18,
1912 GGE_SAR_RF_STATE_19,
1913 GGE_SAR_RF_STATE_20,
1914 GGE_SAR_RF_STATE_END = 21, /* >=21, apply default table (table 0) */
1915
1916} GGE_TPO_SAR_STATE_INDEX; /* SAR STATE INDEX from AP*/
1917#endif//__SAR_TX_POWER_BACKOFF_SUPPORT__
1918
1919 #if defined(__TX_POWER_OFFSET_SUPPORT__)&&(defined(__TAS_SUPPORT__))
1920
1921 #if (defined(__MD97__) || defined(__MD97P__))
1922 #define SAR_TPO_ANT_NUM MMRFD_MAX_ANT_SUPPORT_NUM
1923 #elif defined(__MD95__)
1924 #define SAR_TPO_ANT_NUM MMRFD_PHYSICAL_ANT_MAX_NUM
1925 #elif defined(__MD93__)
1926 #define SAR_TPO_ANT_NUM L1D_TAS_ANT_NUM //For TAS2.0, ANT0/ANT1/ANT2
1927 #endif
1928typedef struct
1929{
1930 unsigned short hi_weight;
1931 unsigned short low_weight;
1932}s_Weight_Power_Offset;
1933
1934typedef struct
1935{
1936 signed short max_arfcn;
1937 unsigned short mid_level;
1938 s_Weight_Power_Offset wt[SAR_TPO_ANT_NUM];
1939} sARFCN_SECTION_Power_Offset;
1940
1941typedef struct
1942{
1943 short power_offset[SAR_TPO_ANT_NUM][16]; /* unit:DAC */
1944 sARFCN_SECTION_Power_Offset arfcn_weight[ ARFCN_SECTION_NUM ];
1945} sTX_POWER_OFFSET_TABLE;
1946 #else
1947typedef struct
1948{
1949 short power_offset[16]; /* unit:DAC */
1950 sARFCN_SECTION arfcn_weight[ ARFCN_SECTION_NUM ];
1951} sTX_POWER_OFFSET_TABLE;
1952 #endif /* defined(__TX_POWER_OFFSET_SUPPORT__) && defined(__TAS_SUPPORT__) */
1953
1954typedef struct
1955{
1956 sTX_POWER_OFFSET_TABLE table[TPO_2G_TABLE_NUM];
1957} sTX_POWER_OFFSET;
1958
1959typedef sTX_POWER_OFFSET tx_power_offset_t;
1960
1961 #if defined(__SAR_TX_POWER_BACKOFF_SUPPORT__)
1962#define MOD_TYPE_COUNT (2)
1963#define TX_SLOT_COUNT (4)
1964 #if (defined(__MD97__) || defined(__MD97P__))
1965 #define SAR_TPB_ANT_NUM MMRFD_MAX_ANT_SUPPORT_NUM
1966 #elif defined(__MD95__)
1967 #define SAR_TPB_ANT_NUM MMRFD_PHYSICAL_ANT_MAX_NUM
1968 #elif defined(__MD93__)
1969 #define SAR_TPB_ANT_NUM L1D_TAS_ANT_NUM //For TAS2.0, ANT0/ANT1/ANT2
1970 #endif
1971typedef struct
1972{
1973 int power_decrement[FrequencyBandCount-1][SAR_TPB_ANT_NUM][MOD_TYPE_COUNT][TX_SLOT_COUNT];
1974} SAR_TX_BACKOFF_TABLE_Params;
1975
1976
1977typedef struct
1978{
1979 SAR_TX_BACKOFF_TABLE_Params SAR_RF_STATE[GGE_SAR_RF_STATE_END - 1];
1980} SAR_TX_BACKOFF_STATE_Params;
1981
1982typedef SAR_TX_BACKOFF_STATE_Params L1D_CUSTOM_SAR_TX_BACKOFF_DB_NVRAM_T;
1983
1984 #endif
1985#endif /* MD_DRV_IS_TX_POWER_OFFSET_SUPPORT || __SAR_TX_POWER_BACKOFF_SUPPORT__*/
1986/* ------------------------------------------------------------------------- */
1987
1988/* ------------------------------------------------------------------------- */
1989#if defined(__RX_POWER_OFFSET_SUPPORT__)
1990
1991typedef struct
1992{
1993 kal_uint16 RPO_enable; /* Enable Rx power offset */
1994 kal_uint16 RPO_meta_enable; /* The main purpose of "meta_Rx_power_offset_enable" is to disable power offset during calibration */
1995} sRX_POWER_OFFSET_SETTING;
1996
1997typedef struct
1998{
1999 sRX_POWER_OFFSET_SETTING rx_power_offset_setting;
2000} s2G_RF_RX_PARAMETER_EXT;
2001
2002typedef s2G_RF_RX_PARAMETER_EXT l1_2g_rf_rx_parameter_ext_t;
2003
2004#endif /* __RX_POWER_OFFSET_SUPPORT__ */
2005#if MD_DRV_IS_NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT
2006#define NSFT_ADJUST_TPO_TABLE_NUM (1)
2007
2008typedef struct
2009{
2010 short power_apcdac_offset[16]; /* unit:DAC */
2011 short power_dB_offset[16]; /* unit:0.125dB */
2012 sARFCN_SECTION arfcn_weight[ ARFCN_SECTION_NUM ];
2013} sNSFT_ADJUST_TPO_TABLE;
2014
2015typedef struct
2016{
2017 sNSFT_ADJUST_TPO_TABLE table[NSFT_ADJUST_TPO_TABLE_NUM];
2018} sNSFT_ADJUST_TPO;
2019
2020typedef sNSFT_ADJUST_TPO nsft_adjust_tpo_t;
2021
2022#endif /* MD_DRV_IS_NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT */
2023#if MD_DRV_IS_RF_MT6176 || MD_DRV_IS_RF_MT6179 || MD_DRV_IS_RF_MT6177L || MD_DRV_IS_RF_TRINITYE1 || MD_DRV_IS_RF_TRINITYL || MD_DRV_IS_RF_MT6186 || MD_DRV_IS_RF_MT6186M || MD_DRV_IS_RF_MT6190T || MD_DRV_IS_RF_MT6177M
2024typedef struct
2025{
2026 int version;
2027 unsigned short is_calibrated;
2028 unsigned short lf_fine[4];
2029 MMRFC_GSM_RESULT_PER_BAND_T g_result[4];
2030#if MD_DRV_IS_RF_TRINITYE1 || MD_DRV_IS_RF_TRINITYL || MD_DRV_IS_RF_MT6186 || MD_DRV_IS_RF_MT6186M || MD_DRV_IS_RF_MT6190T
2031 MMRFC_GSM_POC_PGA_BIAS_T gsm_tx_pga_bias[4];
2032#endif
2033} MMRFC_GSM_RESULT_T;
2034
2035typedef MMRFC_GSM_RESULT_T l1cal_mmrfc_result_T;
2036
2037void L1D_RF_RFCData_Init_Pcore(void);
2038void L1D_RF_Get_RFC_Result(MMRFC_GSM_RESULT_T *buff);
2039#endif
2040/* ------------------------------------------------------------------------- */
2041 /* TX gain table */
2042#if MD_DRV_IS_RF_TRINITYE1 || MD_DRV_IS_RF_TRINITYL || MD_DRV_IS_RF_MT6186 || MD_DRV_IS_RF_MT6186M || MD_DRV_IS_RF_MT6190T
2043typedef struct
2044{
2045 unsigned int slice_group;
2046 signed int gain_step;
2047 unsigned long cw_setting;
2048} L1D_TX_GAIN_SETTING_T;
2049
2050typedef struct
2051{
2052 L1D_TX_GAIN_SETTING_T lb_tx_gain_setting[MMRFC_GSM_TX_DNL_PGA_TOTAL_GAIN_STEPS]; /* LB TX gain setting */
2053 L1D_TX_GAIN_SETTING_T hb_tx_gain_setting[MMRFC_GSM_TX_DNL_PGA_TOTAL_GAIN_STEPS]; /* HB TX gain setting */
2054}L1D_TX_GAIN_TABLE_T;
2055
2056#endif
2057/* ------------------------------------------------------------------------- */
2058
2059#if defined(__TAS_SUPPORT__)
2060 #if (defined(__MD93__) || defined(__MD95__)) /*Not supported for Gen97*/
2061typedef struct
2062{
2063 #if MD_DRV_IS_2G_Gen95_UTAS_SUPPORT
2064 L1D_CUSTOM_TAS_SPLIT_CONFIG_T l1d_custom_tas_split_database[FrequencyBandCount];
2065 #else
2066 L1D_CUSTOM_TAS_FE_DATABASE_T l1d_custom_tas_fe_database;
2067 L1D_CUSTOM_TAS_FE_CAT_A_T* l1d_custom_tas_fe_cat_a_ptr;
2068 L1D_CUSTOM_TAS_FE_CAT_A_T l1d_custom_tas_fe_cat_a;
2069 #if MD_DRV_IS_2G_MIPI_SUPPORT
2070 sGGE_MIPIEVENT* l1d_tas_cat_a_mipi_event_ptr[L1D_TAS_MAX_CAT_A_CONFIG_NUM];
2071 sGGE_MIPIEVENT l1d_tas_cat_a_mipi_event[L1D_TAS_MAX_CAT_A_CONFIG_NUM][L1D_TAS_MAX_MIPI_EVNET_NUM];
2072 sGGE_MIPIDATA_SUBBAND* l1d_tas_cat_a_mipi_data_ptr[L1D_TAS_MAX_CAT_A_CONFIG_NUM];
2073 sGGE_MIPIDATA_SUBBAND l1d_tas_cat_a_mipi_data[L1D_TAS_MAX_CAT_A_CONFIG_NUM][L1D_TAS_MAX_MIPI_DATA_NUM];
2074 #endif
2075 L1D_CUSTOM_TAS_FE_CAT_B_T* l1d_custom_tas_fe_cat_b_ptr;
2076 L1D_CUSTOM_TAS_FE_CAT_B_T l1d_custom_tas_fe_cat_b;
2077 #if MD_DRV_IS_2G_MIPI_SUPPORT
2078 sGGE_MIPIEVENT* l1d_tas_cat_b_mipi_event_ptr[L1D_TAS_MAX_CAT_B_CONFIG_NUM];
2079 sGGE_MIPIEVENT l1d_tas_cat_b_mipi_event[L1D_TAS_MAX_CAT_B_CONFIG_NUM][L1D_TAS_MAX_MIPI_EVNET_NUM];
2080 sGGE_MIPIDATA_SUBBAND* l1d_tas_cat_b_mipi_data_ptr[L1D_TAS_MAX_CAT_B_CONFIG_NUM];
2081 sGGE_MIPIDATA_SUBBAND l1d_tas_cat_b_mipi_data[L1D_TAS_MAX_CAT_B_CONFIG_NUM][L1D_TAS_MAX_MIPI_DATA_NUM];
2082 #endif
2083 L1D_CUSTOM_TAS_FE_CAT_C_T* l1d_custom_tas_fe_cat_c_ptr;
2084 L1D_CUSTOM_TAS_FE_CAT_C_T l1d_custom_tas_fe_cat_c;
2085 #if MD_DRV_IS_2G_MIPI_SUPPORT
2086 sGGE_MIPIEVENT* l1d_tas_cat_c_mipi_event_ptr[L1D_TAS_MAX_CAT_C_CONFIG_NUM];
2087 sGGE_MIPIEVENT l1d_tas_cat_c_mipi_event[L1D_TAS_MAX_CAT_C_CONFIG_NUM][L1D_TAS_MAX_MIPI_EVNET_NUM];
2088 sGGE_MIPIDATA_SUBBAND* l1d_tas_cat_c_mipi_data_ptr[L1D_TAS_MAX_CAT_C_CONFIG_NUM];
2089 sGGE_MIPIDATA_SUBBAND l1d_tas_cat_c_mipi_data[L1D_TAS_MAX_CAT_C_CONFIG_NUM][L1D_TAS_MAX_MIPI_DATA_NUM];
2090 #endif
2091 #endif
2092}L1D_CUSTOM_TAS_FE_NVRAM_T;
2093
2094typedef struct
2095{
2096 #if MD_DRV_IS_2G_Gen95_UTAS_SUPPORT
2097 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_ENABLE[FrequencyBandCount];
2098 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE0_ENABLE[FrequencyBandCount];
2099 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE1_ENABLE[FrequencyBandCount];
2100 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE2_ENABLE[FrequencyBandCount];
2101 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE3_ENABLE[FrequencyBandCount];
2102 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE4_ENABLE[FrequencyBandCount];
2103 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE5_ENABLE[FrequencyBandCount];
2104 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE6_ENABLE[FrequencyBandCount];
2105 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE7_ENABLE[FrequencyBandCount];
2106 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE8_ENABLE[FrequencyBandCount];
2107 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE9_ENABLE[FrequencyBandCount];
2108 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE10_ENABLE[FrequencyBandCount];
2109 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE11_ENABLE[FrequencyBandCount];
2110 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE12_ENABLE[FrequencyBandCount];
2111 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE13_ENABLE[FrequencyBandCount];
2112 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE14_ENABLE[FrequencyBandCount];
2113 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE15_ENABLE[FrequencyBandCount];
2114 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE16_ENABLE[FrequencyBandCount];
2115 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE17_ENABLE[FrequencyBandCount];
2116 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE18_ENABLE[FrequencyBandCount];
2117 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE19_ENABLE[FrequencyBandCount];
2118 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE20_ENABLE[FrequencyBandCount];
2119 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE21_ENABLE[FrequencyBandCount];
2120 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE22_ENABLE[FrequencyBandCount];
2121 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE23_ENABLE[FrequencyBandCount];
2122 #else
2123 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_ENABLE[FrequencyBandCount];
2124 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE0_ENABLE[FrequencyBandCount];
2125 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE1_ENABLE[FrequencyBandCount];
2126 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE2_ENABLE[FrequencyBandCount];
2127 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
2128 L1D_CUSTOM_TAS_SWITCH_E L1_TAS_TST_STATE3_ENABLE[FrequencyBandCount];
2129 #endif /* __2G_RX_DIVERSITY_PATH_SUPPORT__ */
2130 #endif
2131}L1D_CUSTOM_TAS_TST_T;
2132 #endif
2133
2134 #if MD_DRV_IS_2G_TAS_INHERIT_4G_ANT
2135typedef struct
2136{
2137 LTE_Band inherit_lte_band;
2138}L1D_CUSTOM_TAS_INHERIT_LTE_BAND_T;
2139
2140typedef struct
2141{
2142 L1D_CUSTOM_TAS_INHERIT_LTE_BAND_T* l1_inherit_lte_ant_gsmBand_ptr;
2143 kal_uint32 inherit_lte_band_bitmap[L1D_TAS_INHERIT_LTE_BAND_BITMAP_NUM];
2144}L1D_CUSTOM_TAS_INHERIT_LTE_BAND_BITMAP_T;
2145
2146typedef struct
2147{
2148 L1D_CUSTOM_TAS_INHERIT_LTE_BAND_BITMAP_T inherit_lte_band_bitmap_table[FrequencyBandCount];
2149}L1D_CUSTOM_TAS_INHERIT_LTE_BAND_BITMAP_TABLE_T;
2150 #endif
2151#endif
2152
2153#if IS_2G_DYNAMIC_ANTENNA_TUNING_SUPPORT //defined(__DYNAMIC_ANTENNA_TUNING__)
2154typedef enum
2155{
2156 L1D_DAT_DISABLE,
2157 L1D_DAT_ENABLE,
2158}L1D_CUSTOM_DAT_SWITCH_E;
2159
2160typedef struct
2161{
2162 L1D_CUSTOM_DAT_SWITCH_E l1d_dat_enable;
2163}L1D_CUSTOM_DAT_DATABASE_T;
2164
2165#if MD_DRV_IS_2G_DAT_SUPPORT || MD_DRV_IS_2G_Gen95_UDAT_SUPPORT
2166typedef struct
2167{
2168 #if MD_DRV_IS_2G_Gen95_UDAT_SUPPORT
2169 L1D_CUSTOM_DAT_SPLIT_CONFIG_T l1d_custom_dat_split_database[FrequencyBandCount];
2170 #else
2171 L1D_CUSTOM_SB_DAT_FE_DATABASE_T l1d_dat_sb_fe_db[FrequencyBandCount];
2172 #endif
2173}L1D_CUSTOM_DAT_FE_DATABASE_T;
2174#endif
2175
2176typedef struct
2177{
2178 L1D_CUSTOM_DAT_SWITCH_E L1_DAT_ENABLE; /* 0: off 1: DAT force mode */
2179 #if MD_DRV_IS_2G_DAT_SUPPORT || MD_DRV_IS_2G_Gen95_UDAT_SUPPORT
2180 L1D_CUSTOM_DAT_FE_DATABASE_T l1d_custom_dat_fe_database;
2181 #endif
2182}L1D_CUSTOM_DAT_FE_ROUTE_NVRAM_T;
2183
2184
2185typedef struct
2186{
2187 L1D_CUSTOM_DAT_FE_CAT_A_T* l1d_custom_dat_fe_cat_a_ptr;
2188 L1D_CUSTOM_DAT_FE_CAT_A_T l1d_custom_dat_fe_cat_a;
2189 #if MD_DRV_IS_2G_MIPI_SUPPORT
2190 sGGE_MIPIEVENT* l1d_dat_cat_a_mipi_event_ptr[L1D_DAT_MAX_CAT_A_CONFIG_NUM];
2191 sGGE_MIPIEVENT l1d_dat_cat_a_mipi_event[L1D_DAT_MAX_CAT_A_CONFIG_NUM][L1D_DAT_MAX_MIPI_EVNET_NUM];
2192 sGGE_MIPIDATA_SUBBAND* l1d_dat_cat_a_mipi_data_ptr[L1D_DAT_MAX_CAT_A_CONFIG_NUM];
2193 sGGE_MIPIDATA_SUBBAND l1d_dat_cat_a_mipi_data[L1D_DAT_MAX_CAT_A_CONFIG_NUM][L1D_DAT_MAX_MIPI_DATA_NUM];
2194 #endif
2195}L1D_CUSTOM_DAT_FE_CAT_A_NVRAM_T;
2196
2197typedef struct
2198{
2199 L1D_CUSTOM_DAT_FE_CAT_B_T* l1d_custom_dat_fe_cat_b_ptr;
2200 L1D_CUSTOM_DAT_FE_CAT_B_T l1d_custom_dat_fe_cat_b;
2201 #if MD_DRV_IS_2G_MIPI_SUPPORT
2202 sGGE_MIPIEVENT* l1d_dat_cat_b_mipi_event_ptr[L1D_DAT_MAX_CAT_B_CONFIG_NUM];
2203 sGGE_MIPIEVENT l1d_dat_cat_b_mipi_event[L1D_DAT_MAX_CAT_B_CONFIG_NUM][L1D_DAT_MAX_MIPI_EVNET_NUM];
2204 sGGE_MIPIDATA_SUBBAND* l1d_dat_cat_b_mipi_data_ptr[L1D_DAT_MAX_CAT_B_CONFIG_NUM];
2205 sGGE_MIPIDATA_SUBBAND l1d_dat_cat_b_mipi_data[L1D_DAT_MAX_CAT_B_CONFIG_NUM][L1D_DAT_MAX_MIPI_DATA_NUM];
2206 #endif
2207}L1D_CUSTOM_DAT_FE_CAT_B_NVRAM_T;
2208
2209typedef L1D_CUSTOM_DAT_FE_ROUTE_NVRAM_T l1_dat_custom_fe_route_params_T;
2210 #if defined(__MD93__)
2211typedef L1D_CUSTOM_DAT_FE_CAT_A_NVRAM_T l1_dat_custom_fe_cata_params_T;
2212typedef L1D_CUSTOM_DAT_FE_CAT_B_NVRAM_T l1_dat_custom_fe_catb_params_T;
2213 #endif
2214#endif
2215/*------------------------------Start UMOLY DRDI struct define--------------------*/
2216
2217typedef struct
2218{
2219#if IS_TELEMATICS_VOLT_TEMP_TX_COMPENSATION_SUPPORT
2220 int BAT_VOLTAGE_THRESHOLD[4];
2221 int BAT_TEMPERATURE_THRESHOLD[4];
2222#else
2223 int BAT_LOW_VOLTAGE;
2224 int BAT_HIGH_VOLTAGE;
2225 int BAT_LOW_TEMPERATURE;
2226 int BAT_HIGH_TEMPERATURE;
2227#endif
2228 int AP_UPDATE_VOLTINFO_PERIOD;
2229}sTX_POWER_VOLTAGE_COMPENSATION;
2230
2231typedef struct
2232{
2233 /*capid*/
2234 long AFC_XO_CapID;
2235
2236}sCrystalParameter;
2237
2238#if MD_DRV_IS_32K_CRYSTAL_REMOVAL_SUPPORT
2239typedef struct
2240{
2241 /*cload freqoffset*/
2242 int CLoad_FreqOffset;
2243}sCloadParameter;
2244
2245typedef sCloadParameter l1cal_CloadParameter_T;
2246#endif
2247
2248
2249
2250#if MD_DRV_IS_2G_MIPI_SUPPORT
2251/*DRDI MIPI point define*/
2252typedef struct
2253{
2254 sGGE_MIPI_CTRL_TABLE_BAND* GGE_MIPI_CTRL_TABLE[FrequencyBandCount];
2255}sGGE_DRDI_MIPI_CTRL_TABLE;
2256#endif
2257
2258/*DRDI Calibration Data Struct define*/
2259
2260#if defined(__RX_POWER_OFFSET_SUPPORT__)
2261typedef struct
2262{
2263 s2G_RF_RX_PARAMETER_EXT* RX_Power_Offset_Setting;
2264 sL1D_AGCLNA_Gain_Offset_Data RX_Power_Offset_Table;
2265} sL1D_RX_POWER_OFFSET_DATA;
2266#endif /* __RX_POWER_OFFSET_SUPPORT__ */
2267
2268#if MD_DRV_IS_TX_POWER_OFFSET_SUPPORT
2269typedef struct
2270{
2271 sTX_POWER_OFFSET* Tx_Power_Offset_GMSK[FrequencyBandCount];
2272 #if MD_DRV_IS_EPSK_TX_SUPPORT
2273 sTX_POWER_OFFSET* Tx_Power_Offset_EPSK[FrequencyBandCount];
2274 #endif
2275} sL1D_TX_POWER_OFFSET_DATA;
2276#endif /*__TX_POWER_OFFSET_SUPPORT__ || __SAR_TX_POWER_BACKOFF_SUPPORT__*/
2277#if MD_DRV_IS_NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT
2278typedef struct
2279{
2280 sNSFT_ADJUST_TPO* Adjust_TPO_GMSK[FrequencyBandCount];
2281 #if MD_DRV_IS_EPSK_TX_SUPPORT
2282 #if defined(__EPSK_ADJUST_TPO_SUPPORT__)
2283 sNSFT_ADJUST_TPO* Adjust_TPO_EPSK[FrequencyBandCount];
2284 #endif//__EPSK_ADJUST_TPO_SUPPORT__
2285 #endif
2286} sL1D_ADJUST_TPO_DATA;
2287#endif /*MD_DRV_IS_NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT*/
2288
2289typedef struct
2290{
2291 sAGCGAINOFFSET* AGC_PATHLOSS_TABLE[FrequencyBandCount];
2292 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
2293 sAGCGAINOFFSET* AGC_PATHLOSS_RXD_TABLE[FrequencyBandCount];
2294 #endif
2295 sRAMPDATA* RampData[FrequencyBandCount];
2296#if MD_DRV_IS_EPSK_TX_SUPPORT
2297 sRAMPDATA* RampData_EPSK[FrequencyBandCount];
2298#endif
2299 sTX_POWER_VOLTAGE_COMPENSATION* tx_apc_voltage_compensation;
2300 sMIDRAMPDATA* InterRampData[FrequencyBandCount];
2301#if MD_DRV_IS_EPSK_TX_SUPPORT
2302 sMIDRAMPDATA** EPSK_InterRampData[FrequencyBandCount];
2303#endif
2304 sCrystalParameter* afc_crystal_data;
2305#if MD_DRV_IS_32K_CRYSTAL_REMOVAL_SUPPORT
2306 sCloadParameter* Cload_FreqOffset_Data;
2307#endif
2308#if MD_DRV_IS_GPRS
2309 sTX_POWER_ROLLBACK* tx_power_rollback_gmsk[FrequencyBandCount];
2310 #if MD_DRV_IS_EGPRS
2311 sTX_POWER_ROLLBACK* tx_power_rollback_epsk[FrequencyBandCount];
2312 #endif
2313#endif
2314#if MD_DRV_IS_TX_POWER_CONTROL_SUPPORT
2315 #if MD_DRV_IS_TXPC_CL_AUXADC_SUPPORT || IS_TXPC_CL_BSI_SUPPORT
2316 sTXPC_ADCDATA* TXADC_Data[FrequencyBandCount];
2317 sTXPC_TEMPDATA* TXTEMP_Data[FrequencyBandCount];
2318 #if MD_DRV_IS_EPSK_TX_SUPPORT
2319 sTXPC_ADCDATA* TXADC_Data_EPSK[FrequencyBandCount];
2320 sTXPC_TEMPDATA* TXTEMP_Data_EPSK[FrequencyBandCount];
2321 #endif
2322 #endif
2323#endif
2324 sLNAGAINOFFSET* LNA_PATHLOSS_TABLE[FrequencyBandCount];
2325#if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
2326 sLNAGAINOFFSET* LNA_PATHLOSS_RXD_TABLE[FrequencyBandCount];
2327#endif
2328 l1cal_afcData_T* afc_crystal_data_dac_slop;
2329 w_coef* w_coef_data;
2330#if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
2331 w_coef* w_coef_rxd_data;
2332#endif
2333 orionRFtx_pa_vbias* pa_data;
2334}sL1D_CAL_DATA;
2335
2336/*DRDI Front End data*/
2337typedef struct
2338{
2339 #if defined(__2G_RF_CUSTOM_TOOL_SUPPORT__)
2340 sL1D_RF_CUSTOM_INPUT_DATA* l1d_rf_custom_input_data;
2341 #endif
2342 #if defined(__TAS_SUPPORT__)
2343 L1D_CUSTOM_TAS_NVRAM_T* L1_TAS_Custom_NVRAM;
2344 #if (defined(__MD93__) || defined(__MD95__)) /*Not supported for Gen97*/
2345 L1D_CUSTOM_TAS_FE_NVRAM_T* L1_TAS_Custom_FE_NVRAM;
2346 L1D_CUSTOM_TAS_TST_T* L1_TAS_Custom_TST;
2347 #endif
2348 #if IS_2G_TAS_INHERIT_4G_ANT
2349 L1D_CUSTOM_TAS_INHERIT_LTE_BAND_BITMAP_TABLE_T* L1_TAS_Custom_InheritLteAntTable;
2350 #endif
2351 #endif
2352 #if IS_2G_DYNAMIC_ANTENNA_TUNING_SUPPORT //defined(__DYNAMIC_ANTENNA_TUNING__)
2353 L1D_CUSTOM_DAT_FE_ROUTE_NVRAM_T* L1_DAT_Custom_FE_ROUTE_NVRAM;
2354 #if defined(__MD93__)
2355 L1D_CUSTOM_DAT_FE_CAT_A_NVRAM_T* L1_DAT_Custom_FE_CAT_A_NVRAM;
2356 L1D_CUSTOM_DAT_FE_CAT_B_NVRAM_T* L1_DAT_Custom_FE_CAT_B_NVRAM;
2357 #endif
2358 #endif
2359 #if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
2360 L1D_CUSTOM_RAS_NVRAM_T* L1_RAS_Custom_NVRAM;
2361 #endif
2362 char dummy; //avoid build error
2363} sL1D_FRONT_END_DATA;
2364
2365typedef struct
2366{
2367 #if defined(__RX_POWER_OFFSET_SUPPORT__)
2368 sL1D_RX_POWER_OFFSET_DATA L1D_RX_Power_Offset_Data;
2369 #endif
2370 #if MD_DRV_IS_TX_POWER_OFFSET_SUPPORT
2371 sL1D_TX_POWER_OFFSET_DATA L1D_TX_Power_Offset_Data;
2372 #endif
2373 #if MD_DRV_IS_NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT
2374 sL1D_ADJUST_TPO_DATA adjust_tpo_data;
2375 #endif
2376 #if defined(__ANT_RXPWR_OFFSET_SUPPORT__)
2377 sL1D_ANT_RxPWR_Offset_T* L1D_ANT_RxPWR_Offset_NVRAM;
2378 #endif
2379 #if defined(__GSM_INDICATION_FOR_AP_CLOCK_HOPPING_SUPPORT__)
2380 L1D_RF_INTERFERENCE_ARFCN_INDICATION_T* L1_Custom_HW_CLK_NVRAM;
2381 #endif
2382 #if defined(__SAR_TX_POWER_BACKOFF_SUPPORT__)
2383 L1D_CUSTOM_SAR_TX_BACKOFF_DB_NVRAM_T* L1_Custom_SAR_TX_BACKOFF_DB_NVRAM;
2384 #endif
2385 char dummy; //avoid build error
2386}sL1D_CUSTOM_FEATURE_DATA;
2387
2388/*-----------------------------------End UMOLY DRDI Struct define-----------------------*/
2389#endif