[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/l1/gl1/l1d_ext/m12191.c b/mcu/l1/gl1/l1d_ext/m12191.c
new file mode 100644
index 0000000..d1fd6f6
--- /dev/null
+++ b/mcu/l1/gl1/l1d_ext/m12191.c
@@ -0,0 +1,12477 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * m12191.c
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * Setup Synthesizer
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *------------------------------------------------------------------------------
+ * $Revision: 1.30 $
+ * $Modtime: Jul 29 2005 13:44:06 $
+ * $Log: //mtkvs01/vmdata/Maui_sw/archives/mcu/l1/l1d/m12191.c-arc $
+ *
+ * 12 17 2018 yw.lee
+ * [MOLY00372594] [2GL1D] CT2 gain update, OBB close MLNA, ELT trace
+ * .
+ *
+ * 10 01 2018 tim.tsai
+ * [MOLY00356374] [Gen97][GL1D] 2G RFD porting
+ * .[Vmoly] Or RF option MT6190T
+ *
+ * 09 20 2018 rick.lee
+ * [MOLY00346462] [GL1D][RF]merge UMOLYE patch back to VMOLY
+ *
+ * 09 10 2018 rick.lee
+ * [MOLY00346462] [GL1D][RF][Gen95] Trinity2L 2G porting
+ * .Trinity2L patch back to UMOLYE
+ *
+ * 08 06 2018 rick.lee
+ * [MOLY00340337] [GL1D][RFD][Gen95] TrinityL-E2 2G porting
+ * .TrinityLE2 Dev patch back to UMOLYE
+ *
+ * 08 02 2018 rick.lee
+ * [MOLY00340337][GL1D][RF] TrinityLE2 Dev patch back to UMOLYE
+ *
+ * 07 20 2018 rick.lee
+ * [MOLY00340337] [GL1D][RFD][Gen95] TrinityL-E2 2G porting
+ * [GL1D][RFD][Gen95] TrinityL-E2 2G RF porting
+ *
+ * 06 13 2018 yw.lee
+ * [MOLY00332889] [2GL1D][TrinityL] TPD control
+ * .
+ *
+ * 02 21 2018 tim.tsai
+ * [MOLY00305636] [Trinity][GL1D] 2G LNA port and if_sel and change float point to fix point
+ * .
+ *
+ * 12 26 2017 tim.tsai
+ * [MOLY00296149] [MT6295][GL1D] 2G Trinity L porting
+ * .
+ *
+ * 12 15 2017 tim.tsai
+ * [MOLY00293063] [TRINITY_DEV][L1D] 2G Trinity E1 2G RFD porting
+ * .
+ *
+ * 11 10 2017 tim.tsai
+ * [MOLY00288931] [MT6295][L1D] 2G TRINITY E1 RFD
+ * .
+ *
+ * 06 12 2017 tim.tsai
+ * [MOLY00256723] [UMOLYA][ZION][L1D] MT6177M 2G RF Driver
+ * .
+ *
+ * 01 06 2017 silvers.peng
+ * [MOLY00223254] [L1D]Bianco BB RF Driver check in 1st wave
+ * .
+ *
+ * 03 15 2016 yw.chen
+ * [MOLY00169087] [L1D] MT6179 2G RF Driver Modification
+ * .
+ *
+ * 03 10 2016 siyu.li
+ * [MOLY00168264] UMOLY 2G MIPI support three pa data
+ * .
+ *
+ * 01 20 2016 wiley.li
+ * [MOLY00150655] [L1D][Modify] KDCO patch to improve GMSK peak phase error
+ *
+ * .
+ *
+ * 09 10 2015 wiley.li
+ * [MOLY00141314] [L1D][Modify] Fix GL1D build warning & add API for Low pcl subband cal.
+ * .
+ *
+ * 07 10 2015 wiley.li
+ * [MOLY00127251] [L1D][Modify] Update 2G Driver(Update E3 CW & remove IF_state)
+ * .
+ *
+ * 04 09 2015 ola.lee
+ * [MOLY00091988] [L1D] Update MT6176 2G RF Driver
+ * Update 2G SRX_DOUBLER_EN Setting.
+ *
+ * 02 10 2015 ola.lee
+ * [MOLY00091988] [L1D] Update MT6176 2G RF Driver
+ * .
+ *
+ * 02 10 2015 yi-ying.lin
+ * [MOLY00095496] [L1D][Modify] TK6291 CC NVRAM and custom data modification L1D part
+ * .
+ *
+ * 02 02 2015 ola.lee
+ * [MOLY00091988] [L1D] Update MT6176 2G RF Driver
+ *
+ * 10 06 2014 ola.lee
+ * [MOLY00080299] [L1D] Check in 2G Fix AFC for MT6169
+ * .
+ *
+ * 10 28 2013 vend_sherman.chung
+ * [MOLY00043231] [MT6290] Add 2G MIPI Control table store at NVRAM feature
+ * .
+ *
+ * 10 24 2013 vend_sherman.chung
+ * [MOLY00043231] [MT6290] Add 2G MIPI Control table store at NVRAM feature
+ * .
+ *
+ * 10 02 2013 ola.lee
+ * [MOLY00039576] [MT6165] Merget MT6165 to MOLY for Dual Talk
+ * .
+ *
+ * 08 14 2013 yi-ying.lin
+ * [MOLY00028415] [82LTE.SMT.DEV] 6166/6169 2G calibration feature development
+ * .
+ *
+ * 07 17 2013 chunyen.wu
+ * [MOLY00030116] [L1D][Modify] MIPI load on MT6290
+ * .
+ *
+ * 04 15 2013 yuyang.hsiao
+ * [MOLY00016402] [L1D][Modify] Update MT6169 RF final parameter
+ * .
+ *
+ * 03 28 2013 yuyang.hsiao
+ * [MOLY00012979] [L1D][Modify] Add MT6169 RF Driver
+ * .
+ *
+ * 12 06 2012 sean.yang
+ * [MOLY00007140] [L1D][Modify] Modify the flow to set the RX settings for integer and non-integer channels on OthelloT
+ * .
+ *
+ * 03 29 2012 samuel.yang
+ * removed!
+ * .
+ *
+ * 03 15 2012 yuyang.hsiao
+ * removed!
+ * .
+ *
+ * 11 17 2011 chang-kuan.lin
+ * removed!
+ * .
+ *
+ * 10 21 2011 th.yeh
+ * removed!
+ * .
+ *
+ * 08 24 2011 victo.chen
+ * removed!
+ * .
+ *
+ * 07 21 2011 weining.chien
+ * removed!
+ * .
+ *
+ * 07 19 2011 victo.chen
+ * removed!
+ * .
+ *
+ * 06 18 2011 victo.chen
+ * removed!
+ * .
+ *
+ * 04 15 2011 weining.chien
+ * removed!
+ * .
+ *
+ * 04 14 2011 sean.yang
+ * removed!
+ * .
+ *
+ * 03 16 2011 victo.chen
+ * removed!
+ * .
+ *
+ * 03 11 2011 sean.yang
+ * removed!
+ * .
+ *
+ * 01 25 2011 victo.chen
+ * removed!
+ * .
+ *
+ * 01 16 2011 chuwei.lo
+ * removed!
+ * .
+ *
+ * 01 05 2011 chuwei.lo
+ * removed!
+ * .
+ *
+ * 01 04 2011 sean.yang
+ * removed!
+ * .
+ *
+ * 12 20 2010 sean.yang
+ * removed!
+ * .
+ *
+ * 12 15 2010 chang-kuan.lin
+ * removed!
+ * .
+ *
+ * 12 08 2010 chuwei.lo
+ * removed!
+ * .
+ *
+ * 11 24 2010 sean.yang
+ * removed!
+ * .
+ *
+ * 11 18 2010 max.weng
+ * removed!
+ * .
+ *
+ * 11 16 2010 victo.chen
+ * removed!
+ * .
+ *
+ * 11 12 2010 max.weng
+ * removed!
+ * .
+ *
+ * 11 10 2010 yr.chiang
+ * removed!
+ * .
+ *
+ * 11 09 2010 max.weng
+ * removed!
+ * .
+ *
+ * 09 05 2010 victo.chen
+ * removed!
+ * .
+ *
+ * 08 12 2010 victo.chen
+ * removed!
+ * .
+ *
+ * 08 07 2010 samuel.yang
+ * removed!
+ * .
+ *
+ * removed!
+ * removed!
+ * Merge MT6251 DVT branch back to MAUI
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * [L1D][Modify]Check in AD6546 RF Driver #if IS_RF_AD6546
+ *
+ * removed!
+ * removed!
+ * Remove compile warning of may be used before being set
+ *
+ * removed!
+ * removed!
+ * local variable f_vco is not used
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * < Triple850>
+ * RF chip gets GSM900 signal from GSm850 input pins to avoid getting GSM900 signal
+ *
+ * removed!
+ * removed!
+ * Add code to support GSM850 signal received through GSM900 path
+ *
+ * removed!
+ * removed!
+ * Add RF driver of IRFS3001
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * Rev 1.30 Jul 29 2005 14:01:24 mtk00773
+ * [L1D][Enhence] Support RF SKY74117
+ * Resolution for 12111: [L1D][Enhence] Support RF SKY74117
+ *
+ * Rev 1.29 Jul 08 2005 16:53:04 mtk00939
+ * [L1D][Modify]L1D add code for MT6139C and META related code
+ *
+ * Rev 1.28 May 17 2005 00:34:36 BM_Trunk
+ * Karlos:
+ * add copyright and disclaimer statement
+ *
+ * Rev 1.27 Jan 18 2005 00:38:08 BM
+ * append new line in W05.04
+ *
+ * Rev 1.26 Jul 30 2004 17:37:06 mtk00240
+ * L1D add code to support AERO1Plus RF chip
+ * Resolution for 6925: [L1D][Enhance] L1D add code to support AERO1Plus RF chip
+ *
+ * Rev 1.25 Jul 05 2004 15:49:42 mtk00773
+ * Add RF POLARIS1 setting
+ *
+ * Rev 1.24 May 21 2004 19:01:58 mtk00240
+ * Add code to support MT6129D
+ * Resolution for 5565: [L1D][Add Feature] Add code to support MT6129D
+ *
+ * Rev 1.23 Jan 27 2004 15:33:12 mtk00585
+ * [L1D][Add] L1D Add code for MT6129C RF Driver.
+ *
+ * Rev 1.22 Oct 23 2003 14:22:18 mtk00585
+ * [L1D][Add] L1D Add code for MT6129B RF Driver.
+ * Resolution for 3177: [L1D][Add] L1D Add code for MT6129B RF Driver.
+ *
+ * Rev 1.21 Jul 11 2003 17:41:30 mtk00489
+ * [L1D][Enhanced]L1D supports MT6129A
+ * Resolution for 2241: [L1D][Enhanced]L1D supports MT6129A
+ *
+ * Rev 1.20 May 16 2003 13:09:24 mtk00489
+ * [L1D][New Feature]L1D supports MT6119C
+ * Resolution for 1794: [L1D][New Feature]L1D supports MT6119C
+ *
+ * Rev 1.19 Mar 07 2003 18:47:32 mtk00474
+ * modify the coding error for decision tx arfcn value of MT6119
+ * Resolution for 1182: modify the coding error for decision tx arfcn value of MT6119
+ *
+ * Rev 1.18 14 Feb 2003 11:42:54 mtk00240
+ * L1D modify the synthesizer setting of Bright4 to support PCS band
+ * Resolution for 652: L1D modify the synthesizer setting of Bright4 to support PCS band
+ *
+ * Rev 1.17 Nov 11 2002 18:04:58 mtk00474
+ * Update MT6119 and AERO RF parameters
+ * Resolution for 557: Update MT6119 and AERO RF parameters
+ *
+ * Rev 1.16 01 Nov 2002 11:11:24 mtk00240
+ * L1D modify TX PLL evaulation for new MT6119 chip
+ * Resolution for 547: L1D modify TX PLL evaulation for new MT6119 chip
+ *
+ * Rev 1.15 22 Oct 2002 08:18:00 mtk00240
+ * L1D modified some control data of mt6119
+ * Resolution for 439: L1D add code to support MT6119 RF Module
+ *
+ * Rev 1.14 01 Oct 2002 09:41:12 mtk00240
+ * L1D modified GSM RX frequency evaluation of MT6119
+ * Resolution for 515: L1D modified GSM RX frequency evaluation of MT6119
+ *
+ * Rev 1.13 01 Sep 2002 15:35:30 mtk00240
+ * L1D fix the bug that max ARFCN of GSM is 1023 not 1024
+ * Resolution for 473: L1D fix the bug that max ARFCN of GSM is 1023 not 1024
+ *
+ * Rev 1.12 27 Aug 2002 12:04:22 admin
+ * change file header
+ *
+ * Rev 1.11 26 Aug 2002 14:34:14 admin
+ * remove modification notice
+ * add copyright statement.
+ *
+ * Rev 1.10 24 Aug 2002 14:10:46 mtk00240
+ * L1D add code to support AERO RF Module
+ * Resolution for 464: L1D add code to support AERO RF Module
+ *
+ * Rev 1.9 23 Jul 2002 15:49:12 mtk00240
+ * L1D add code to support MT6119 RF Module
+ * Resolution for 439: L1D add code to support MT6119 RF Module
+ *
+ * Rev 1.8 03 Jul 2002 21:43:48 mtk00240
+ * L1D extrract RF setting code to let customer setup new RF module more easily
+ * Resolution for 418: L1D extrract RF setting code to let customer setup new RF module more easily
+ *
+ * Rev 1.7 01 May 2002 22:45:58 mtk00240
+ * Extract GSM code from L1D
+ * Resolution for 384: Extract GSM code from L1D
+ *
+ * Rev 1.6 30 Mar 2002 13:04:16 mtk00240
+ * 1) Modify L1D code to support both Bright2 & Bright4 RF board
+ * 2) L1D add Audio interface to support Voice Memo & Melody
+ * 3) Add L1D code to support RAM-based chip
+ * Resolution for 341: Modify L1D code to support both Bright2 & Bright4 RF board
+ * Resolution for 342: L1D add Audio interface to support Voice Memo & Melody
+ * Resolution for 343: Add L1D code to support RAM-based chip
+ *
+ * Rev 1.5 03 Mar 2002 23:07:10 mtk00240
+ * L1D modified Tx synthesizer setting of DCS band
+ * Resolution for 306: L1D modified Tx synthesizer setting of DCS band
+ *
+ * Rev 1.4 17 Feb 2002 20:15:42 mtk00240
+ * Update L1D code for solving HandOver test item
+ * Resolution for 275: Update L1D code for solving HandOver test item
+ *
+ * Rev 1.3 03 Jan 2002 12:19:50 mtk00240
+ * Merge B.L1.20011225 to Main V1.XX
+ *
+ * Rev 1.2.1.0 Dec 25 2001 14:32:56 mtk00210
+ * Update for High resolution RSSI, multiband AFC,
+ * update L1C/L1D interface for CSD
+ *
+ * Rev 1.1 Dec 10 2001 16:43:56 mtk00240
+ * Add copyright header of MediaTek
+ *
+ *******************************************************************************/
+
+
+/*===============================================================================*/
+/* */
+/* void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN ) */
+/* void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN ) */
+/* */
+/*===============================================================================*/
+/* */
+/* arfcn : the request ARFCN number. */
+/* *rfN : returned RF N counter setting */
+/* *ifN : returned IF N counter setting */
+/* */
+/* ----------------------------------------------------------------------------- */
+/* */
+/* This program evaluates the PLL setting value by the request arfcn for Si4133. */
+/* If the PLL component is changed, this file shall be modified by vendor */
+/* */
+/* ----------------------------------------------------------------------------- */
+
+#include "l1d_cid.h"
+#include "m12190_l1core.h"
+
+/*================================================================================================*/
+
+#if IS_RF_BRIGHT2
+/*BRIGHT2*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*BRIGHT2*/ { long setting = 0;
+/*BRIGHT2*/
+/*BRIGHT2*/ switch(rf_band)
+/*BRIGHT2*/ {
+/*BRIGHT2*/ case FrequencyBand900 :
+/*BRIGHT2*/ {
+/*BRIGHT2*/ if( arfcn<=124 ) /* GSM( 0~ 124), */
+/*BRIGHT2*/ setting = (5800L<<4)|4;
+/*BRIGHT2*/ else /* GSM(975~1023), */
+/*BRIGHT2*/ setting = (4776L<<4)|4;
+/*BRIGHT2*/ break;
+/*BRIGHT2*/ }
+/*BRIGHT2*/ case FrequencyBand1800 :
+/*BRIGHT2*/ {
+/*BRIGHT2*/ setting = (7389L<<4)|3; /* DCS(512~ 885), */
+/*BRIGHT2*/ break;
+/*BRIGHT2*/ }
+/*BRIGHT2*/ default :
+/*BRIGHT2*/ {
+/*BRIGHT2*/ break;
+/*BRIGHT2*/ }
+/*BRIGHT2*/ }
+/*BRIGHT2*/ *rfN = setting + (arfcn<<4);
+/*BRIGHT2*/ *ifN = (2700L<<4) | 5;
+/*BRIGHT2*/ }
+/*BRIGHT2*/ /* =========================================================================== */
+/*BRIGHT2*/
+/*BRIGHT2*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*BRIGHT2*/ { long setting = 0;
+/*BRIGHT2*/
+/*BRIGHT2*/ switch(rf_band)
+/*BRIGHT2*/ {
+/*BRIGHT2*/ case FrequencyBand900 :
+/*BRIGHT2*/ {
+/*BRIGHT2*/ if( arfcn<=124 ) /* GSM( 0~ 124), */
+/*BRIGHT2*/ { setting = (5800L<<4)|4; }
+/*BRIGHT2*/ else /* GSM(975~1023), */
+/*BRIGHT2*/ { setting = (4776L<<4)|4; }
+/*BRIGHT2*/ *ifN = (2700L<<4)|5; /* 54M/200K */
+/*BRIGHT2*/ break;
+/*BRIGHT2*/ }
+/*BRIGHT2*/ case FrequencyBand1800 :
+/*BRIGHT2*/ {
+/*BRIGHT2*/ setting = (7389L<<4)|3; /* DCS(512~ 885), */
+/*BRIGHT2*/ *ifN = (2600L<<4)|5; /* 52M/200K */
+/*BRIGHT2*/ break;
+/*BRIGHT2*/ }
+/*BRIGHT2*/ default :
+/*BRIGHT2*/ { break;
+/*BRIGHT2*/ }
+/*BRIGHT2*/ }
+/*BRIGHT2*/ *rfN = setting + (arfcn<<4);
+/*BRIGHT2*/ }
+/*BRIGHT2*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_BRIGHT4
+/*BRIGHT4*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*BRIGHT4*/ {
+/*BRIGHT4*/ switch(rf_band)
+/*BRIGHT4*/ {
+/*BRIGHT4*/ case FrequencyBand900 :
+/*BRIGHT4*/ {
+/*BRIGHT4*/ if(arfcn<=50)
+/*BRIGHT4*/ { *rfN = 0x0490C9 + (arfcn<<6); } /* ARFCN : 1~ 50 */
+/*BRIGHT4*/ else if(arfcn<=124)
+/*BRIGHT4*/ { *rfN = 0x4490C9 + (arfcn<<6); } /* ARFCN : 51~ 124 */
+/*BRIGHT4*/ else
+/*BRIGHT4*/ { *rfN = 0x0390C9 + (arfcn<<6); } /* ARFCN : 975~1023 */
+/*BRIGHT4*/ break;
+/*BRIGHT4*/ }
+/*BRIGHT4*/ case FrequencyBand1800 :
+/*BRIGHT4*/ {
+/*BRIGHT4*/ *rfN = 0x042851 + (arfcn<<5); /* ARFCN : 512~ 885 */
+/*BRIGHT4*/ break;
+/*BRIGHT4*/ }
+/*BRIGHT4*/ case FrequencyBand1900 :
+/*BRIGHT4*/ {
+/*BRIGHT4*/ *rfN = 0x447679 + (arfcn<<5); /* ARFCN : 512~ 810 */
+/*BRIGHT4*/ break;
+/*BRIGHT4*/ }
+/*BRIGHT4*/ default :
+/*BRIGHT4*/ {
+/*BRIGHT4*/ break;
+/*BRIGHT4*/ }
+/*BRIGHT4*/ }
+/*BRIGHT4*/ *ifN = 0;
+/*BRIGHT4*/ }
+/*BRIGHT4*/ /* =========================================================================== */
+/*BRIGHT4*/
+/*BRIGHT4*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*BRIGHT4*/ {
+/*BRIGHT4*/ switch(rf_band)
+/*BRIGHT4*/ {
+/*BRIGHT4*/ case FrequencyBand900 :
+/*BRIGHT4*/ {
+/*BRIGHT4*/ if(arfcn<=10)
+/*BRIGHT4*/ { *rfN = 0xD4BF09 + (arfcn<<6); } /* ARFCN : 1~ 10 */
+/*BRIGHT4*/ else if(arfcn<=124)
+/*BRIGHT4*/ { *rfN = 0xC4BC89 + (arfcn<<6); } /* ARFCN : 11~ 124 */
+/*BRIGHT4*/ else
+/*BRIGHT4*/ { *rfN = 0xD3BF09 + (arfcn<<6); } /* ARFCN : 975~1023 */
+/*BRIGHT4*/ break;
+/*BRIGHT4*/ }
+/*BRIGHT4*/ case FrequencyBand1800 :
+/*BRIGHT4*/ {
+/*BRIGHT4*/ if(arfcn<=672)
+/*BRIGHT4*/ { *rfN = 0x841EF1 + (arfcn<<5); } /* ARFCN : 512~ 672 */
+/*BRIGHT4*/ else
+/*BRIGHT4*/ { *rfN = 0x942031 + (arfcn<<5); } /* ARFCN : 673~ 885 */
+/*BRIGHT4*/ break;
+/*BRIGHT4*/ }
+/*BRIGHT4*/ case FrequencyBand1900 :
+/*BRIGHT4*/ {
+/*BRIGHT4*/ *rfN = 0xC47679 + (arfcn<<5); /* ARFCN : 512~ 810 */
+/*BRIGHT4*/ break;
+/*BRIGHT4*/ }
+/*BRIGHT4*/ default :
+/*BRIGHT4*/ { break;
+/*BRIGHT4*/ }
+/*BRIGHT4*/ }
+/*BRIGHT4*/ *ifN = 0;
+/*BRIGHT4*/ }
+/*BRIGHT4*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_BRIGHT5P
+/*BRIGHT5P*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ switch(rf_band)
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ case FrequencyBand850 :
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ if(arfcn<=133)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-128) + 52)<<5) | (135<<11) | (0x080001) ); } /* ARFCN : 128~ 133 */
+/*BRIGHT5P*/ else if(arfcn<=165)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-134))<<5) | (136<<11) | (0x080001) ); } /* ARFCN : 134~ 165 */
+/*BRIGHT5P*/ else if(arfcn<=197)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-166))<<5) | (137<<11) | (0x080001) ); } /* ARFCN : 166~ 197 */
+/*BRIGHT5P*/ else if(arfcn<=229)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-198))<<5) | (138<<11) | (0x080001) ); } /* ARFCN : 198~ 229 */
+/*BRIGHT5P*/ else
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-230))<<5) | (139<<11) | (0x080001) ); } /* ARFCN : 230~ 251 */
+/*BRIGHT5P*/ break;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ case FrequencyBand900 :
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ if(arfcn<=28)
+/*BRIGHT5P*/ { *rfN = ( ((2*arfcn + 6)<<5) | (146<<11) | (0x080009) ); } /* ARFCN : 0~ 28 */
+/*BRIGHT5P*/ else if(arfcn<=60)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-29))<<5) | (147<<11) | (0x080009) ); } /* ARFCN : 29~ 60 */
+/*BRIGHT5P*/ else if(arfcn<=92)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-61))<<5) | (148<<11) | (0x080009) ); } /* ARFCN : 61~ 92 */
+/*BRIGHT5P*/ else if(arfcn<=124)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-93))<<5) | (149<<11) | (0x080009) ); } /* ARFCN : 93~ 124 */
+/*BRIGHT5P*/ else if(arfcn<=988)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-975)+36)<<5) | (144<<11) | (0x080009) ); } /* ARFCN : 975~ 988 */
+/*BRIGHT5P*/ else if(arfcn<=1020)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-989))<<5) | (145<<11) | (0x080009) ); } /* ARFCN : 989~ 1020 */
+/*BRIGHT5P*/ else
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-1021))<<5) | (146<<11) | (0x080009) ); } /* ARFCN : 1021~ 1023 */
+/*BRIGHT5P*/ break;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ case FrequencyBand1800 :
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ if(arfcn<=573)
+/*BRIGHT5P*/ { *rfN = ( (((arfcn-512) + 2)<<5) | (141<<11) | (0x080011) ); } /* ARFCN : 512~ 573 */
+/*BRIGHT5P*/ else if(arfcn<=637)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-574)<<5) | (142<<11) | (0x080011) ); } /* ARFCN : 574~ 637 */
+/*BRIGHT5P*/ else if(arfcn<=701)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-638)<<5) | (143<<11) | (0x080011) ); } /* ARFCN : 638~ 701 */
+/*BRIGHT5P*/ else if(arfcn<=765)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-702)<<5) | (144<<11) | (0x080011) ); } /* ARFCN : 702~ 765 */
+/*BRIGHT5P*/ else if(arfcn<=829)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-766)<<5) | (145<<11) | (0x080011) ); } /* ARFCN : 766~ 829 */
+/*BRIGHT5P*/ else
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-830)<<5) | (146<<11) | (0x080011) ); } /* ARFCN : 830~ 885 */
+/*BRIGHT5P*/ break;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ case FrequencyBand1900 :
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ if(arfcn<=524)
+/*BRIGHT5P*/ { *rfN = ( (((arfcn-512) + 51)<<5) | (150<<11) | (0x080019) ); } /* ARFCN : 512~ 524 */
+/*BRIGHT5P*/ else if(arfcn<=588)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-525)<<5) | (151<<11) | (0x080019) ); } /* ARFCN : 525~ 588 */
+/*BRIGHT5P*/ else if(arfcn<=652)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-589)<<5) | (152<<11) | (0x080019) ); } /* ARFCN : 589~ 652 */
+/*BRIGHT5P*/ else if(arfcn<=716)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-653)<<5) | (153<<11) | (0x080019) ); } /* ARFCN : 653~ 716 */
+/*BRIGHT5P*/ else if(arfcn<=780)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-717)<<5) | (154<<11) | (0x080019) ); } /* ARFCN : 717~ 780 */
+/*BRIGHT5P*/ else
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-781)<<5) | (155<<11) | (0x080019) ); } /* ARFCN : 781~ 810 */
+/*BRIGHT5P*/ break;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ default :
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ break;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ *ifN = 0;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ /* =========================================================================== */
+/*BRIGHT5P*/
+/*BRIGHT5P*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ switch(rf_band)
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ case FrequencyBand850 :
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ if(arfcn<=150)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-128) + 18)<<5) | (141<<11) | (0x000001) ); } /* ARFCN : 128~ 150 */
+/*BRIGHT5P*/ else if(arfcn<=182)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-151))<<5) | (142<<11) | (0x000001) ); } /* ARFCN : 151~ 182 */
+/*BRIGHT5P*/ else if(arfcn<=214)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-183))<<5) | (143<<11) | (0x000001) ); } /* ARFCN : 183~ 214 */
+/*BRIGHT5P*/ else if(arfcn<=246)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-215))<<5) | (144<<11) | (0x000001) ); } /* ARFCN : 215~ 246 */
+/*BRIGHT5P*/ else
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-247))<<5) | (145<<11) | (0x000001) ); } /* ARFCN : 247~ 251 */
+/*BRIGHT5P*/ break;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ case FrequencyBand900 :
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ if(arfcn<=3)
+/*BRIGHT5P*/ { *rfN = ( ((2*arfcn+56)<<5) | (151<<11) | (0x200009) ); } /* ARFCN : 0~ 3 */
+/*BRIGHT5P*/ else if(arfcn<=9)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-4))<<5) | (152<<11) | (0x200009) ); } /* ARFCN : 4~ 9 */
+/*BRIGHT5P*/ else if(arfcn<=13)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-10)+56)<<5) | (151<<11) | (0x000009) ); } /* ARFCN : 10~ 13 */
+/*BRIGHT5P*/ else if(arfcn<=45)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-14))<<5) | (152<<11) | (0x000009) ); } /* ARFCN : 14~ 45 */
+/*BRIGHT5P*/ else if(arfcn<=77)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-46))<<5) | (153<<11) | (0x000009) ); } /* ARFCN : 46~ 77 */
+/*BRIGHT5P*/ else if(arfcn<=109)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-78))<<5) | (154<<11) | (0x000009) ); } /* ARFCN : 78~ 109 */
+/*BRIGHT5P*/ else if(arfcn<=124)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-110))<<5) | (155<<11) | (0x000009) ); } /* ARFCN : 110~ 124 */
+/*BRIGHT5P*/ else if(arfcn<=995)
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-975)+22)<<5) | (150<<11) | (0x200009) ); } /* ARFCN : 975~ 995 */
+/*BRIGHT5P*/ else
+/*BRIGHT5P*/ { *rfN = ( ((2*(arfcn-996))<<5) | (151<<11) | (0x200009) ); } /* ARFCN : 996~1023 */
+/*BRIGHT5P*/ break;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ case FrequencyBand1800 :
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ if(arfcn<=520)
+/*BRIGHT5P*/ { *rfN = ( (((arfcn-512) + 55)<<5) | (139<<11) | (0x000011) ); } /* ARFCN : 512~ 520 */
+/*BRIGHT5P*/ else if(arfcn<=584)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-521)<<5) | (140<<11) | (0x000011) ); } /* ARFCN : 521~ 584 */
+/*BRIGHT5P*/ else if(arfcn<=648)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-585)<<5) | (141<<11) | (0x000011) ); } /* ARFCN : 585~ 648 */
+/*BRIGHT5P*/ else if(arfcn<=670)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-649)<<5) | (142<<11) | (0x000011) ); } /* ARFCN : 649~ 670 */
+/*BRIGHT5P*/ else if(arfcn<=702)
+/*BRIGHT5P*/ { *rfN = ( (((arfcn-671)+32)<<5) | (142<<11) | (0x200011) ); } /* ARFCN : 671~ 702 */
+/*BRIGHT5P*/ else if(arfcn<=766)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-703)<<5) | (143<<11) | (0x200011) ); } /* ARFCN : 703~ 766 */
+/*BRIGHT5P*/ else if(arfcn<=830)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-767)<<5) | (144<<11) | (0x200011) ); } /* ARFCN : 767~ 830 */
+/*BRIGHT5P*/ else
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-831)<<5) | (145<<11) | (0x200011) ); } /* ARFCN : 831~ 885 */
+/*BRIGHT5P*/ break;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ case FrequencyBand1900 :
+/*BRIGHT5P*/ {
+/*BRIGHT5P*/ if(arfcn<=524)
+/*BRIGHT5P*/ { *rfN = ( (((arfcn-512) + 51)<<5) | (150<<11) | (0x000019) ); } /* ARFCN : 512~ 524 */
+/*BRIGHT5P*/ else if(arfcn<=588)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-525)<<5) | (151<<11) | (0x000019) ); } /* ARFCN : 525~ 588 */
+/*BRIGHT5P*/ else if(arfcn<=652)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-589)<<5) | (152<<11) | (0x000019) ); } /* ARFCN : 589~ 652 */
+/*BRIGHT5P*/ else if(arfcn<=716)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-653)<<5) | (153<<11) | (0x000019) ); } /* ARFCN : 653~ 716 */
+/*BRIGHT5P*/ else if(arfcn<=780)
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-717)<<5) | (154<<11) | (0x000019) ); } /* ARFCN : 717~ 780 */
+/*BRIGHT5P*/ else
+/*BRIGHT5P*/ { *rfN = ( ((arfcn-781)<<5) | (155<<11) | (0x000019) ); } /* ARFCN : 781~ 810 */
+/*BRIGHT5P*/ break;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ default :
+/*BRIGHT5P*/ { break;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ *ifN = 0;
+/*BRIGHT5P*/ }
+/*BRIGHT5P*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_AERO
+/*AERO*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*AERO*/ {
+/*AERO*/ switch(rf_band)
+/*AERO*/ {
+/*AERO*/ case FrequencyBand900 :
+/*AERO*/ {
+/*AERO*/ if(arfcn<=124)
+/*AERO*/ { *rfN = 0x092160 + (arfcn<<7); } /* ARFCN : 1~ 124 */
+/*AERO*/ else
+/*AERO*/ { *rfN = 0x072160 + (arfcn<<7); } /* ARFCN : 975~1023 */
+/*AERO*/ break;
+/*AERO*/ }
+/*AERO*/ case FrequencyBand1800 :
+/*AERO*/ {
+/*AERO*/ *rfN = 0x50A0E0 + (arfcn<<7); /* ARFCN : 512~ 885 */
+/*AERO*/ break;
+/*AERO*/ }
+/*AERO*/ case FrequencyBand1900 :
+/*AERO*/ {
+/*AERO*/ *rfN = 0x91D960 + (arfcn<<7); /* ARFCN : 512~ 810 */
+/*AERO*/ break;
+/*AERO*/ }
+/*AERO*/ default :
+/*AERO*/ {
+/*AERO*/ break;
+/*AERO*/ }
+/*AERO*/ }
+/*AERO*/ *ifN = 0;
+/*AERO*/ }
+/*AERO*/ /* =========================================================================== */
+/*AERO*/
+/*AERO*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*AERO*/ {
+/*AERO*/ switch(rf_band)
+/*AERO*/ {
+/*AERO*/ case FrequencyBand900 :
+/*AERO*/ {
+/*AERO*/ if(arfcn<=49)
+/*AERO*/ {
+/*AERO*/ if(arfcn<=24) /* ARFCN : 0~ 24 */
+/*AERO*/ { *rfN = 0x064B63 + (arfcn<<6);
+/*AERO*/ *ifN = 0X73E5A4;
+/*AERO*/ }
+/*AERO*/ else /* ARFCN : 25~ 49 */
+/*AERO*/ { *rfN = 0x064663 + (arfcn<<6);
+/*AERO*/ *ifN = 0X73DBA4;
+/*AERO*/ }
+/*AERO*/ }
+/*AERO*/ else
+/*AERO*/ {
+/*AERO*/ if(arfcn<=124) /* ARFCN : 50~ 124 */
+/*AERO*/ { *rfN = 0x064B63 + (arfcn<<6);
+/*AERO*/ *ifN = 0X73E5A4;
+/*AERO*/ }
+/*AERO*/ else /* ARFCN : 975~1023 */
+/*AERO*/ { *rfN = 0x054B63 + (arfcn<<6);
+/*AERO*/ *ifN = 0X73E5A4;
+/*AERO*/ }
+/*AERO*/ }
+/*AERO*/ break;
+/*AERO*/ }
+/*AERO*/ case FrequencyBand1800 :
+/*AERO*/ {
+/*AERO*/ *rfN = 0x45FB23 + (arfcn<<6); /* ARFCN : 512~ 885 */
+/*AERO*/ *ifN = 0X63BDA4;
+/*AERO*/ break;
+/*AERO*/ }
+/*AERO*/ case FrequencyBand1900 :
+/*AERO*/ {
+/*AERO*/ *rfN = 0x867323 + (arfcn<<6); /* ARFCN : 512~ 810 */
+/*AERO*/ *ifN = 0X742BA4;
+/*AERO*/ break;
+/*AERO*/ }
+/*AERO*/ default :
+/*AERO*/ { break;
+/*AERO*/ }
+/*AERO*/ }
+/*AERO*/ }
+/*AERO*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_AERO1PLUS
+/*AERO1+*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*AERO1+*/ {
+/*AERO1+*/ switch(rf_band)
+/*AERO1+*/ {
+/*AERO1+*/ case FrequencyBand900 :
+/*AERO1+*/ {
+/*AERO1+*/ if(arfcn<=124)
+/*AERO1+*/ { *rfN = 0x092160 + (arfcn<<7); } /* ARFCN : 1~ 124 */
+/*AERO1+*/ else
+/*AERO1+*/ { *rfN = 0x072160 + (arfcn<<7); } /* ARFCN : 975~1023 */
+/*AERO1+*/ break;
+/*AERO1+*/ }
+/*AERO1+*/ case FrequencyBand1800 :
+/*AERO1+*/ {
+/*AERO1+*/ *rfN = 0x50A0E0 + (arfcn<<7); /* ARFCN : 512~ 885 */
+/*AERO1+*/ break;
+/*AERO1+*/ }
+/*AERO1+*/ case FrequencyBand1900 :
+/*AERO1+*/ {
+/*AERO1+*/ *rfN = 0x91D960 + (arfcn<<7); /* ARFCN : 512~ 810 */
+/*AERO1+*/ break;
+/*AERO1+*/ }
+/*AERO1+*/ default :
+/*AERO1+*/ {
+/*AERO1+*/ break;
+/*AERO1+*/ }
+/*AERO1+*/ }
+/*AERO1+*/ *ifN = 0;
+/*AERO1+*/ }
+/*AERO1+*/ /* =========================================================================== */
+/*AERO1+*/
+/*AERO1+*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*AERO1+*/ {
+/*AERO1+*/ switch(rf_band)
+/*AERO1+*/ {
+/*AERO1+*/ case FrequencyBand900 :
+/*AERO1+*/ {
+/*AERO1+*/ if(arfcn<=49)
+/*AERO1+*/ {
+/*AERO1+*/ if(arfcn<=24) /* ARFCN : 0~ 24 */
+/*AERO1+*/ { *rfN = 0x064B63 + (arfcn<<6);
+/*AERO1+*/ *ifN = 0X73E5A4;
+/*AERO1+*/ }
+/*AERO1+*/ else /* ARFCN : 25~ 49 */
+/*AERO1+*/ { *rfN = 0x064663 + (arfcn<<6);
+/*AERO1+*/ *ifN = 0X73DBA4;
+/*AERO1+*/ }
+/*AERO1+*/ }
+/*AERO1+*/ else
+/*AERO1+*/ {
+/*AERO1+*/ if(arfcn<=124) /* ARFCN : 50~ 124 */
+/*AERO1+*/ { *rfN = 0x064B63 + (arfcn<<6);
+/*AERO1+*/ *ifN = 0X73E5A4;
+/*AERO1+*/ }
+/*AERO1+*/ else /* ARFCN : 975~1023 */
+/*AERO1+*/ { *rfN = 0x054B63 + (arfcn<<6);
+/*AERO1+*/ *ifN = 0X73E5A4;
+/*AERO1+*/ }
+/*AERO1+*/ }
+/*AERO1+*/ break;
+/*AERO1+*/ }
+/*AERO1+*/ case FrequencyBand1800 :
+/*AERO1+*/ {
+/*AERO1+*/ *rfN = 0x45FB23 + (arfcn<<6); /* ARFCN : 512~ 885 */
+/*AERO1+*/ *ifN = 0X63BDA4;
+/*AERO1+*/ break;
+/*AERO1+*/ }
+/*AERO1+*/ case FrequencyBand1900 :
+/*AERO1+*/ {
+/*AERO1+*/ *rfN = 0x867323 + (arfcn<<6); /* ARFCN : 512~ 810 */
+/*AERO1+*/ *ifN = 0X742BA4;
+/*AERO1+*/ break;
+/*AERO1+*/ }
+/*AERO1+*/ default :
+/*AERO1+*/ { break;
+/*AERO1+*/ }
+/*AERO1+*/ }
+/*AERO1+*/ }
+/*AERO1+*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_POLARIS1
+/*RFMD*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*RFMD*/ {
+/*RFMD*/ int OFFS;
+/*RFMD*/ switch(rf_band)
+/*RFMD*/ {
+/*RFMD*/ case FrequencyBand900 :
+/*RFMD*/ {
+/*RFMD*/ if(arfcn<=124) /* ARFCN : 0~ 124 */
+/*RFMD*/ {
+/*RFMD*/ OFFS = 80*arfcn + 41160;
+/*RFMD*/ *rfN = 0x0C0000L | (OFFS);
+/*RFMD*/ }
+/*RFMD*/ else /* ARFCN : 975~1023 */
+/*RFMD*/ {
+/*RFMD*/ OFFS = 80*arfcn - 40760;
+/*RFMD*/ *rfN = 0x0C0000L + (OFFS);
+/*RFMD*/ }
+/*RFMD*/ break;
+/*RFMD*/ }
+/*RFMD*/ case FrequencyBand1800 : /* ARFCN : 512~ 885 */
+/*RFMD*/ {
+/*RFMD*/ OFFS = 40*arfcn + 7740;
+/*RFMD*/ *rfN = 0x0C0000L + (OFFS);
+/*RFMD*/ break;
+/*RFMD*/ }
+/*RFMD*/ case FrequencyBand1900 : /* ARFCN : 512~ 810 */
+/*RFMD*/ {
+/*RFMD*/ OFFS = 40*arfcn + 32740;
+/*RFMD*/ *rfN = 0x0C0000L + (OFFS);
+/*RFMD*/ break;
+/*RFMD*/ }
+/*RFMD*/ default :
+/*RFMD*/ {
+/*RFMD*/ break;
+/*RFMD*/ }
+/*RFMD*/ }
+/*RFMD*/ *ifN = 0;
+/*RFMD*/ }
+/*RFMD*/ /* =========================================================================== */
+/*RFMD*/
+/*RFMD*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*RFMD*/ {
+/*RFMD*/ int OFFS;
+/*RFMD*/ switch(rf_band)
+/*RFMD*/ {
+/*RFMD*/ case FrequencyBand900 :
+/*RFMD*/ {
+/*RFMD*/ if(arfcn<=124) /* ARFCN : 0~ 124 */
+/*RFMD*/ {
+/*RFMD*/ OFFS = 40*arfcn + 178000;
+/*RFMD*/ *rfN = 0x0C0000L | (OFFS);
+/*RFMD*/ }
+/*RFMD*/ else /* ARFCN : 975~1023 */
+/*RFMD*/ { OFFS = 40*arfcn + 137040;
+/*RFMD*/ *rfN = 0x0C0000L + (OFFS);
+/*RFMD*/ }
+/*RFMD*/ break;
+/*RFMD*/ }
+/*RFMD*/ case FrequencyBand1800 : /* ARFCN : 512~ 885 */
+/*RFMD*/ {
+/*RFMD*/ OFFS = 40*arfcn - 11240;
+/*RFMD*/ *rfN = 0x0C0000L + (OFFS);
+/*RFMD*/ break;
+/*RFMD*/
+/*RFMD*/ }
+/*RFMD*/ case FrequencyBand1900 : /* ARFCN : 512~ 810 */
+/*RFMD*/ {
+/*RFMD*/ OFFS = 40*arfcn + 16760;
+/*RFMD*/ *rfN = 0x0C0000L + (OFFS);
+/*RFMD*/ break;
+/*RFMD*/ }
+/*RFMD*/ default :
+/*RFMD*/ { break;
+/*RFMD*/ }
+/*RFMD*/ }
+/*RFMD*/ *ifN = 0;
+/*RFMD*/ }
+/*RFMD*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_SKY74117
+/*SKY74117*/ typedef struct
+/*SKY74117*/ { short arfcn;
+/*SKY74117*/ short Nint;
+/*SKY74117*/ int Fbase;
+/*SKY74117*/ int Fstep;
+/*SKY74117*/ short Inj_Div;
+/*SKY74117*/ } SKY74117_PLL_ELM;
+/*SKY74117*/
+/*SKY74117*/ const SKY74117_PLL_ELM SKY74117_RX_850[] =
+/*SKY74117*/ {
+/*SKY74117*/ { 128 , 96 , 3323179, 3097332 },
+/*SKY74117*/ { 137 , 97 , 0, 3097332 },
+/*SKY74117*/ { 181 , 98 , 64527, 3097332 },
+/*SKY74117*/ { 224 , 99 , 32263, 3097332 },
+/*SKY74117*/ };
+/*SKY74117*/ const SKY74117_PLL_ELM SKY74117_RX_900[] =
+/*SKY74117*/ {
+/*SKY74117*/ { 0 , 104, 1613193, 3097332 },
+/*SKY74117*/ { 27 , 105, 32263 , 3097332 },
+/*SKY74117*/ { 70 , 106, 0 , 3097332 },
+/*SKY74117*/ { 114 , 107, 64527 , 3097332 },
+/*SKY74117*/ { 975 , 103, 1064707, 3097332 },
+/*SKY74117*/ { 1008, 104, 64527 , 3097332 },
+/*SKY74117*/ };
+/*SKY74117*/ const SKY74117_PLL_ELM SKY74117_RX_1800[] =
+/*SKY74117*/ {
+/*SKY74117*/ { 512 , 100, 2710165, 1548666 },
+/*SKY74117*/ { 543 , 101, 16131 , 1548666 },
+/*SKY74117*/ { 630 , 102, 32263 , 1548666 },
+/*SKY74117*/ { 716 , 103, 0 , 1548666 },
+/*SKY74117*/ { 803 , 104, 16131 , 1548666 },
+/*SKY74117*/ };
+/*SKY74117*/ const SKY74117_PLL_ELM SKY74117_RX_1900[] =
+/*SKY74117*/ {
+/*SKY74117*/ { 512 , 107, 3597422, 1548666 },
+/*SKY74117*/ { 525 , 108, 32263 , 1548666 },
+/*SKY74117*/ { 611 , 109, 0 , 1548666 },
+/*SKY74117*/ { 698 , 110, 16131 , 1548666 },
+/*SKY74117*/ { 785 , 111, 32263 , 1548666 },
+/*SKY74117*/ };
+/*SKY74117*/ const SKY74117_PLL_ELM *const SKY74117_RXPLL_TBL[] =
+/*SKY74117*/ {
+/*SKY74117*/ 0, /* FrequencyBand400 (not support) */
+/*SKY74117*/ SKY74117_RX_850, /* FrequencyBand850 */
+/*SKY74117*/ SKY74117_RX_900, /* FrequencyBand900 */
+/*SKY74117*/ SKY74117_RX_1800, /* FrequencyBand1800 */
+/*SKY74117*/ SKY74117_RX_1900, /* FrequencyBand1900 */
+/*SKY74117*/ };
+/*SKY74117*/
+/*SKY74117*/ short SKY74117_RXPLL_TBL_SIZE[5] =
+/*SKY74117*/ {
+/*SKY74117*/ 0, /* FrequencyBand400 (not support) */
+/*SKY74117*/ sizeof(SKY74117_RX_850)/sizeof(SKY74117_PLL_ELM)-1, /* FrequencyBand850 */
+/*SKY74117*/ sizeof(SKY74117_RX_900)/sizeof(SKY74117_PLL_ELM)-1, /* FrequencyBand900 */
+/*SKY74117*/ sizeof(SKY74117_RX_1800)/sizeof(SKY74117_PLL_ELM)-1, /* FrequencyBand1800 */
+/*SKY74117*/ sizeof(SKY74117_RX_1900)/sizeof(SKY74117_PLL_ELM)-1, /* FrequencyBand1900 */
+/*SKY74117*/ };
+/*SKY74117*/
+/*SKY74117*/ const SKY74117_PLL_ELM SKY74117_TX_850[] =
+/*SKY74117*/ {
+/*SKY74117*/ { 128 , 83 , 1881444, 2831846, 1 },
+/*SKY74117*/ { 145 , 101, 3652493, 3417745, 3 },
+/*SKY74117*/ { 149 , 83 , 3739844, 2831846, 1 },
+/*SKY74117*/ { 152 , 102, 205821 , 3417745, 3 },
+/*SKY74117*/ { 157 , 84 , 253501 , 2831846, 1 },
+/*SKY74117*/ { 177 , 102, 2875935, 3417745, 3 },
+/*SKY74117*/ { 190 , 103, 70090 , 3417745, 3 },
+/*SKY74117*/ { 198 , 84 , 3881805, 2831846, 1 },
+/*SKY74117*/ { 200 , 103, 1138136, 3417745, 3 },
+/*SKY74117*/ { 209 , 85 , 660948 , 2831846, 1 },
+/*SKY74117*/ { 211 , 103, 2312986, 3417745, 3 },
+/*SKY74117*/ { 218 , 85 , 1457405, 2831846, 1 },
+/*SKY74117*/ { 221 , 103, 3381031, 3417745, 3 },
+/*SKY74117*/ { 227 , 85 , 2253862, 2831846, 1 },
+/*SKY74117*/ { 249 , 104, 2177255, 0 , 3 },
+/*SKY74117*/ { 250 , 86 , 94947 , 2831846, 1 },
+/*SKY74117*/ };
+/*SKY74117*/ const SKY74117_PLL_ELM SKY74117_TX_900[] =
+/*SKY74117*/ {
+/*SKY74117*/ { 0 , 109, 3421083, 3417745 , 3 },
+/*SKY74117*/ { 6 , 90 , 2167210, 2831846 , 1 },
+/*SKY74117*/ { 19 , 110, 1256066, 3417745 , 3 },
+/*SKY74117*/ { 25 , 90 , 3848619, 2831846 , 1 },
+/*SKY74117*/ { 29 , 110, 2324111, 3417745 , 3 },
+/*SKY74117*/ { 46 , 91 , 1512714, 2831846 , 1 },
+/*SKY74117*/ { 48 , 111, 159094 , 3417745 , 3 },
+/*SKY74117*/ { 64 , 91 , 3105628, 2831846 , 1 },
+/*SKY74117*/ { 75 , 111, 3042817, 3417745 , 3 },
+/*SKY74117*/ { 78 , 92 , 150257 , 2831846 , 1 },
+/*SKY74117*/ { 87 , 112, 130168 , 3417745 , 3 },
+/*SKY74117*/ { 104 , 92 , 2451132, 0 , 1 },
+/*SKY74117*/ { 105 , 112, 2052650, 3417745 , 3 },
+/*SKY74117*/ { 107 , 92 , 2716618, 2831846 , 1 },
+/*SKY74117*/ { 124 , 93 , 26732 , 75367399, 1 },
+/*SKY74117*/ { 975 , 108, 2381964, 3417745 , 3 },
+/*SKY74117*/ { 991 , 89 , 2910201, 2831846 , 1 },
+/*SKY74117*/ { 993 , 109, 110142 , 3417745 , 3 },
+/*SKY74117*/ { 1010, 90 , 397306 , 52330164, 1 },
+/*SKY74117*/ { 1011, 109, 2032624, 3417745 , 3 },
+/*SKY74117*/ { 1013, 90 , 662792 , 2831846 , 1 },
+/*SKY74117*/ { 1015, 109, 2459842, 3417745 , 3 },
+/*SKY74117*/ { 1019, 90 , 1193763, 57603258, 1 },
+/*SKY74117*/ { 1020, 109, 2993865, 3417745 , 3 },
+/*SKY74117*/ };
+/*SKY74117*/ const SKY74117_PLL_ELM SKY74117_TX_1800[] =
+/*SKY74117*/ {
+/*SKY74117*/ { 512, 90 , 3135374, 1479322 , 1 },
+/*SKY74117*/ { 516, 100, 277680 , 1624829 , 3 },
+/*SKY74117*/ { 546, 91 , 512851 , 1479322 , 1 },
+/*SKY74117*/ { 559, 100, 2461046, 1624829 , 3 },
+/*SKY74117*/ { 567, 91 , 1483656, 1479322 , 1 },
+/*SKY74117*/ { 576, 100, 3324237, 1624829 , 3 },
+/*SKY74117*/ { 591, 91 , 2593148, 1479322 , 1 },
+/*SKY74117*/ { 597, 101, 196227 , 1624829 , 3 },
+/*SKY74117*/ { 630, 92 , 201769 , 1479322 , 1 },
+/*SKY74117*/ { 641, 101, 2430369, 1624829 , 3 },
+/*SKY74117*/ { 674, 88 , 1750545, 1415923 , 0 },
+/*SKY74117*/ { 677, 102, 63998 , 1624829 , 3 },
+/*SKY74117*/ { 681, 92 , 2559440, 1479322 , 1 },
+/*SKY74117*/ { 691, 102, 774861 , 1624829 , 3 },
+/*SKY74117*/ { 696, 88 , 2723993, 1415923 , 0 },
+/*SKY74117*/ { 706, 102, 1536501, 1624829 , 3 },
+/*SKY74117*/ { 712, 92 , 3992534, 1479322 , 1 },
+/*SKY74117*/ { 714, 88 , 3520449, 1415923 , 0 },
+/*SKY74117*/ { 719, 93 , 121832 , 1479322 , 1 },
+/*SKY74117*/ { 723, 102, 2399691, 1624829 , 3 },
+/*SKY74117*/ { 756, 89 , 1184545, 1415923 , 0 },
+/*SKY74117*/ { 762, 103, 185649 , 1624829 , 3 },
+/*SKY74117*/ { 788, 93 , 3311622, 1479322 , 1 },
+/*SKY74117*/ { 806, 89 , 3396925, 1415923 , 0 },
+/*SKY74117*/ { 812, 94 , 226810 , 1479322 , 1 },
+/*SKY74117*/ { 821, 103, 3181429, 1624829 , 3 },
+/*SKY74117*/ { 824, 94 , 781556 , 1479322 , 1 },
+/*SKY74117*/ { 826, 103, 3435309, 1624829 , 3 },
+/*SKY74117*/ { 839, 94 , 1474988, 1479322 , 1 },
+/*SKY74117*/ { 844, 104, 154972 , 1624829 , 3 },
+/*SKY74117*/ { 876, 94 , 3185455, 1479322 , 1 },
+/*SKY74117*/ };
+/*SKY74117*/ const SKY74117_PLL_ELM SKY74117_TX_1900[] =
+/*SKY74117*/ {
+/*SKY74117*/ { 512 , 94 , 389931 , 0 , 0 },
+/*SKY74117*/ { 513 , 94 , 434179 , 1415923 , 0 },
+/*SKY74117*/ { 518 , 108, 2367956, 1624829 , 3 },
+/*SKY74117*/ { 522 , 98 , 2403418, 1479322 , 1 },
+/*SKY74117*/ { 558 , 109, 204690 , 1624829 , 3 },
+/*SKY74117*/ { 581 , 99 , 936615 , 1479322 , 1 },
+/*SKY74117*/ { 601 , 109, 2388055, 1624829 , 3 },
+/*SKY74117*/ { 614 , 99 , 2462167, 1479322 , 1 },
+/*SKY74117*/ { 645 , 110, 427893 , 1624829 , 3 },
+/*SKY74117*/ { 652 , 95 , 2390292, 1415923 , 0 },
+/*SKY74117*/ { 671 , 100, 902907 , 1479322 , 1 },
+/*SKY74117*/ { 683 , 110, 2357378, 1624829 , 3 },
+/*SKY74117*/ { 701 , 100, 2289772, 1479322 , 1 },
+/*SKY74117*/ { 719 , 96 , 1160577, 1415923 , 0 },
+/*SKY74117*/ { 728 , 100, 3537950, 1479322 , 1 },
+/*SKY74117*/ { 740 , 111, 1057303, 1624829 , 3 },
+/*SKY74117*/ { 746 , 101, 175765 , 1479322 , 1 },
+/*SKY74117*/ { 781 , 111, 3139116, 1624829 , 3 },
+/*SKY74117*/ { 796 , 101, 2487207, 1479322 , 1 },
+/*SKY74117*/ };
+/*SKY74117*/
+/*SKY74117*/ const SKY74117_PLL_ELM *const SKY74117_TXPLL_TBL[] =
+/*SKY74117*/ {
+/*SKY74117*/ 0, /* FrequencyBand400 (not support) */
+/*SKY74117*/ SKY74117_TX_850, /* FrequencyBand850 */
+/*SKY74117*/ SKY74117_TX_900, /* FrequencyBand900 */
+/*SKY74117*/ SKY74117_TX_1800, /* FrequencyBand1800 */
+/*SKY74117*/ SKY74117_TX_1900, /* FrequencyBand1900 */
+/*SKY74117*/ };
+/*SKY74117*/
+/*SKY74117*/ short SKY74117_TXPLL_TBL_SIZE[5] =
+/*SKY74117*/ {
+/*SKY74117*/ 0, /* FrequencyBand400 (not support) */
+/*SKY74117*/ sizeof(SKY74117_TX_850)/sizeof(SKY74117_PLL_ELM)-1, /* FrequencyBand850 */
+/*SKY74117*/ sizeof(SKY74117_TX_900)/sizeof(SKY74117_PLL_ELM)-1, /* FrequencyBand900 */
+/*SKY74117*/ sizeof(SKY74117_TX_1800)/sizeof(SKY74117_PLL_ELM)-1, /* FrequencyBand1800 */
+/*SKY74117*/ sizeof(SKY74117_TX_1900)/sizeof(SKY74117_PLL_ELM)-1, /* FrequencyBand1900 */
+/*SKY74117*/ };
+/*SKY74117*/
+/*SKY74117*/ short SKY74117_TXPLL_INJECTIN_TBL[5] =
+/*SKY74117*/ {
+/*SKY74117*/ 0, /* FrequencyBand400 (not support) */
+/*SKY74117*/ 90, /* FrequencyBand850 (not support) */
+/*SKY74117*/ 95, /* FrequencyBand900 (not support) */
+/*SKY74117*/ 98, /* FrequencyBand1800 (not support) */
+/*SKY74117*/ 105, /* FrequencyBand1900 (not support) */
+/*SKY74117*/ };
+/*SKY74117*/
+/*SKY74117*/ const unsigned long SDATA_TX_TABLE[5] =
+/*SKY74117*/ {
+/*SKY74117*/ 0L , /* FrequencyBand400 (not support) */
+/*SKY74117*/ 0x040004L , /* FrequencyBand850 */
+/*SKY74117*/ 0x050004L , /* FrequencyBand900 */
+/*SKY74117*/ 0x060004L , /* FrequencyBand1800 */
+/*SKY74117*/ 0x070004L , /* FrequencyBand1900 */
+/*SKY74117*/ };
+/*SKY74117*/ const unsigned long SDATA_TX_Div_TABLE[2] = { 0x100000, 0x200000 }; // 0: /8 1: /16
+/*SKY74117*/ const unsigned long SDATA_TX_Inj_TABLE[2] = { 0x000000, 0x080000 }; // 0: Low 1: High
+/*SKY74117*/ unsigned long SKY74117_TxCtrl = 0;
+/*SKY74117*/ unsigned long SKY74117_TxCtrl_Mask = 0;
+/*SKY74117*/
+/*SKY74117*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*SKY74117*/ { int Nfrac;
+/*SKY74117*/ const SKY74117_PLL_ELM* elmptr;
+/*SKY74117*/ int left, right, middle;
+/*SKY74117*/
+/*SKY74117*/ /*binary search*/
+/*SKY74117*/ elmptr = SKY74117_RXPLL_TBL[rf_band];
+/*SKY74117*/ left = 0; right = SKY74117_RXPLL_TBL_SIZE[rf_band];
+/*SKY74117*/ while (left <= right)
+/*SKY74117*/ { middle = (left + right)/2;
+/*SKY74117*/ if ( arfcn<(elmptr+middle)->arfcn )
+/*SKY74117*/ right = middle - 1;
+/*SKY74117*/ else
+/*SKY74117*/ left = middle + 1;
+/*SKY74117*/ }
+/*SKY74117*/ elmptr = (elmptr+left-1);
+/*SKY74117*/
+/*SKY74117*/ Nfrac = elmptr->Fbase + (((arfcn-elmptr->arfcn)*elmptr->Fstep)>>5);
+/*SKY74117*/ *rfN = (elmptr->Nint<<6) | 0xC40000;
+/*SKY74117*/ *ifN = (Nfrac<<2) | 3;
+/*SKY74117*/ // *rfN = elmptr->Nint;
+/*SKY74117*/ // *ifN = Nfrac;
+/*SKY74117*/ }
+/*SKY74117*/ /* =========================================================================== */
+/*SKY74117*/
+/*SKY74117*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*SKY74117*/ { int Nfrac;
+/*SKY74117*/ const SKY74117_PLL_ELM* elmptr;
+/*SKY74117*/ int left, right, middle;
+/*SKY74117*/ int div;
+/*SKY74117*/
+/*SKY74117*/ /*binary search*/
+/*SKY74117*/ elmptr = SKY74117_TXPLL_TBL[rf_band];
+/*SKY74117*/ left = 0; right = SKY74117_TXPLL_TBL_SIZE[rf_band];
+/*SKY74117*/ while (left <= right)
+/*SKY74117*/ { middle = (left + right)/2;
+/*SKY74117*/ if ( arfcn<(elmptr+middle)->arfcn )
+/*SKY74117*/ right = middle - 1;
+/*SKY74117*/ else
+/*SKY74117*/ left = middle + 1;
+/*SKY74117*/ }
+/*SKY74117*/ elmptr = (elmptr+left-1);
+/*SKY74117*/ Nfrac = elmptr->Fbase + (((arfcn-elmptr->arfcn)*elmptr->Fstep)>>5);
+/*SKY74117*/ *rfN = (elmptr->Nint<<6) | 0xC40000;
+/*SKY74117*/ *ifN = (Nfrac<<2) | 3;
+/*SKY74117*/ // *rfN = elmptr->Nint;
+/*SKY74117*/ // *ifN = Nfrac;
+/*SKY74117*/
+/*SKY74117*/ l1d_rf.next_inj = (elmptr->Inj_Div>>1)&0x01;
+/*SKY74117*/ div = (elmptr->Inj_Div>>0)&0x01;
+/*SKY74117*/ SKY74117_TxCtrl_Mask = SDATA_TX_Div_TABLE[div] | SDATA_TX_Inj_TABLE[l1d_rf.next_inj];
+/*SKY74117*/ SKY74117_TxCtrl = SDATA_TX_TABLE[rf_band] | SDATA_TX_Div_TABLE[div] | SDATA_TX_Inj_TABLE[l1d_rf.next_inj];
+/*SKY74117*/ }
+/*SKY74117*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_SKY74400
+/*SKY74400*/ typedef struct
+/*SKY74400*/ { short arfcn;
+/*SKY74400*/ short Nint;
+/*SKY74400*/ int Fbase;
+/*SKY74400*/ int Fstep;
+/*SKY74400*/ short Inj_Div;
+/*SKY74400*/ } SKY74400_PLL_ELM;
+/*SKY74400*/
+/*SKY74400*/ const SKY74400_PLL_ELM SKY74400_RX_850[] =
+/*SKY74400*/ {
+/*SKY74400*/ { 128 , 96 , 3323179, 3097332 },
+/*SKY74400*/ { 137 , 97 , 0, 3097332 },
+/*SKY74400*/ { 181 , 98 , 64527, 3097332 },
+/*SKY74400*/ { 224 , 99 , 32263, 3097332 },
+/*SKY74400*/ };
+/*SKY74400*/ const SKY74400_PLL_ELM SKY74400_RX_900[] =
+/*SKY74400*/ {
+/*SKY74400*/ { 0 , 104, 1613193, 3097332 },
+/*SKY74400*/ { 27 , 105, 32263 , 3097332 },
+/*SKY74400*/ { 70 , 106, 0 , 3097332 },
+/*SKY74400*/ { 114 , 107, 64527 , 3097332 },
+/*SKY74400*/ { 975 , 103, 1064707, 3097332 },
+/*SKY74400*/ { 1008, 104, 64527 , 3097332 },
+/*SKY74400*/ };
+/*SKY74400*/ const SKY74400_PLL_ELM SKY74400_RX_1800[] =
+/*SKY74400*/ {
+/*SKY74400*/ { 512 , 100, 2710165, 1548666 },
+/*SKY74400*/ { 543 , 101, 16131 , 1548666 },
+/*SKY74400*/ { 630 , 102, 32263 , 1548666 },
+/*SKY74400*/ { 716 , 103, 0 , 1548666 },
+/*SKY74400*/ { 803 , 104, 16131 , 1548666 },
+/*SKY74400*/ };
+/*SKY74400*/ const SKY74400_PLL_ELM SKY74400_RX_1900[] =
+/*SKY74400*/ {
+/*SKY74400*/ { 512 , 107, 3597422, 1548666 },
+/*SKY74400*/ { 525 , 108, 32263 , 1548666 },
+/*SKY74400*/ { 611 , 109, 0 , 1548666 },
+/*SKY74400*/ { 698 , 110, 16131 , 1548666 },
+/*SKY74400*/ { 785 , 111, 32263 , 1548666 },
+/*SKY74400*/ };
+/*SKY74400*/ const SKY74400_PLL_ELM *const SKY74400_RXPLL_TBL[] =
+/*SKY74400*/ {
+/*SKY74400*/ 0, /* FrequencyBand400 (not support) */
+/*SKY74400*/ SKY74400_RX_850, /* FrequencyBand850 */
+/*SKY74400*/ SKY74400_RX_900, /* FrequencyBand900 */
+/*SKY74400*/ SKY74400_RX_1800, /* FrequencyBand1800 */
+/*SKY74400*/ SKY74400_RX_1900, /* FrequencyBand1900 */
+/*SKY74400*/ };
+/*SKY74400*/
+/*SKY74400*/ short SKY74400_RXPLL_TBL_SIZE[5] =
+/*SKY74400*/ {
+/*SKY74400*/ 0, /* FrequencyBand400 (not support) */
+/*SKY74400*/ sizeof(SKY74400_RX_850)/sizeof(SKY74400_PLL_ELM)-1, /* FrequencyBand850 */
+/*SKY74400*/ sizeof(SKY74400_RX_900)/sizeof(SKY74400_PLL_ELM)-1, /* FrequencyBand900 */
+/*SKY74400*/ sizeof(SKY74400_RX_1800)/sizeof(SKY74400_PLL_ELM)-1, /* FrequencyBand1800 */
+/*SKY74400*/ sizeof(SKY74400_RX_1900)/sizeof(SKY74400_PLL_ELM)-1, /* FrequencyBand1900 */
+/*SKY74400*/ };
+/*SKY74400*/
+/*SKY74400*/ const SKY74400_PLL_ELM SKY74400_TX_850[] =
+/*SKY74400*/ {
+/*SKY74400*/ { 128 , 83 , 1881444, 2831846, 1 },
+/*SKY74400*/ { 145 , 101, 3652493, 3417745, 3 },
+/*SKY74400*/ { 149 , 83 , 3739844, 2831846, 1 },
+/*SKY74400*/ { 152 , 102, 205821 , 3417745, 3 },
+/*SKY74400*/ { 157 , 84 , 253501 , 2831846, 1 },
+/*SKY74400*/ { 177 , 102, 2875935, 3417745, 3 },
+/*SKY74400*/ { 190 , 103, 70090 , 3417745, 3 },
+/*SKY74400*/ { 198 , 84 , 3881805, 2831846, 1 },
+/*SKY74400*/ { 200 , 103, 1138136, 3417745, 3 },
+/*SKY74400*/ { 209 , 85 , 660948 , 2831846, 1 },
+/*SKY74400*/ { 211 , 103, 2312986, 3417745, 3 },
+/*SKY74400*/ { 218 , 85 , 1457405, 2831846, 1 },
+/*SKY74400*/ { 221 , 103, 3381031, 3417745, 3 },
+/*SKY74400*/ { 227 , 85 , 2253862, 2831846, 1 },
+/*SKY74400*/ { 249 , 104, 2177255, 0 , 3 },
+/*SKY74400*/ { 250 , 86 , 94947 , 2831846, 1 },
+/*SKY74400*/ };
+/*SKY74400*/ const SKY74400_PLL_ELM SKY74400_TX_900[] =
+/*SKY74400*/ {
+/*SKY74400*/ { 0 , 109, 3421083, 3417745 , 3 },
+/*SKY74400*/ { 6 , 90 , 2167210, 2831846 , 1 },
+/*SKY74400*/ { 19 , 110, 1256066, 3417745 , 3 },
+/*SKY74400*/ { 25 , 90 , 3848619, 2831846 , 1 },
+/*SKY74400*/ { 29 , 110, 2324111, 3417745 , 3 },
+/*SKY74400*/ { 46 , 91 , 1512714, 2831846 , 1 },
+/*SKY74400*/ { 48 , 111, 159094 , 3417745 , 3 },
+/*SKY74400*/ { 64 , 91 , 3105628, 2831846 , 1 },
+/*SKY74400*/ { 75 , 111, 3042817, 3417745 , 3 },
+/*SKY74400*/ { 78 , 92 , 150257 , 2831846 , 1 },
+/*SKY74400*/ { 87 , 112, 130168 , 3417745 , 3 },
+/*SKY74400*/ { 104 , 92 , 2451132, 0 , 1 },
+/*SKY74400*/ { 105 , 112, 2052650, 3417745 , 3 },
+/*SKY74400*/ { 107 , 92 , 2716618, 2831846 , 1 },
+/*SKY74400*/ { 124 , 93 , 26732 , 75367399, 1 },
+/*SKY74400*/ { 975 , 108, 2381964, 3417745 , 3 },
+/*SKY74400*/ { 991 , 89 , 2910201, 2831846 , 1 },
+/*SKY74400*/ { 993 , 109, 110142 , 3417745 , 3 },
+/*SKY74400*/ { 1010, 90 , 397306 , 52330164, 1 },
+/*SKY74400*/ { 1011, 109, 2032624, 3417745 , 3 },
+/*SKY74400*/ { 1013, 90 , 662792 , 2831846 , 1 },
+/*SKY74400*/ { 1015, 109, 2459842, 3417745 , 3 },
+/*SKY74400*/ { 1019, 90 , 1193763, 57603258, 1 },
+/*SKY74400*/ { 1020, 109, 2993865, 3417745 , 3 },
+/*SKY74400*/ };
+/*SKY74400*/ const SKY74400_PLL_ELM SKY74400_TX_1800[] =
+/*SKY74400*/ {
+/*SKY74400*/ { 512, 90 , 3135374, 1479322 , 1 },
+/*SKY74400*/ { 516, 100, 277680 , 1624829 , 3 },
+/*SKY74400*/ { 546, 91 , 512851 , 1479322 , 1 },
+/*SKY74400*/ { 559, 100, 2461046, 1624829 , 3 },
+/*SKY74400*/ { 567, 91 , 1483656, 1479322 , 1 },
+/*SKY74400*/ { 576, 100, 3324237, 1624829 , 3 },
+/*SKY74400*/ { 591, 91 , 2593148, 1479322 , 1 },
+/*SKY74400*/ { 597, 101, 196227 , 1624829 , 3 },
+/*SKY74400*/ { 630, 92 , 201769 , 1479322 , 1 },
+/*SKY74400*/ { 641, 101, 2430369, 1624829 , 3 },
+/*SKY74400*/ { 674, 88 , 1750545, 1415923 , 0 },
+/*SKY74400*/ { 677, 102, 63998 , 1624829 , 3 },
+/*SKY74400*/ { 681, 92 , 2559440, 1479322 , 1 },
+/*SKY74400*/ { 691, 102, 774861 , 1624829 , 3 },
+/*SKY74400*/ { 696, 88 , 2723993, 1415923 , 0 },
+/*SKY74400*/ { 706, 102, 1536501, 1624829 , 3 },
+/*SKY74400*/ { 712, 92 , 3992534, 1479322 , 1 },
+/*SKY74400*/ { 714, 88 , 3520449, 1415923 , 0 },
+/*SKY74400*/ { 719, 93 , 121832 , 1479322 , 1 },
+/*SKY74400*/ { 723, 102, 2399691, 1624829 , 3 },
+/*SKY74400*/ { 756, 89 , 1184545, 1415923 , 0 },
+/*SKY74400*/ { 762, 103, 185649 , 1624829 , 3 },
+/*SKY74400*/ { 788, 93 , 3311622, 1479322 , 1 },
+/*SKY74400*/ { 806, 89 , 3396925, 1415923 , 0 },
+/*SKY74400*/ { 812, 94 , 226810 , 1479322 , 1 },
+/*SKY74400*/ { 821, 103, 3181429, 1624829 , 3 },
+/*SKY74400*/ { 824, 94 , 781556 , 1479322 , 1 },
+/*SKY74400*/ { 826, 103, 3435309, 1624829 , 3 },
+/*SKY74400*/ { 839, 94 , 1474988, 1479322 , 1 },
+/*SKY74400*/ { 844, 104, 154972 , 1624829 , 3 },
+/*SKY74400*/ { 876, 94 , 3185455, 1479322 , 1 },
+/*SKY74400*/ };
+/*SKY74400*/ const SKY74400_PLL_ELM SKY74400_TX_1900[] =
+/*SKY74400*/ {
+/*SKY74400*/ { 512 , 94 , 389931 , 0 , 0 },
+/*SKY74400*/ { 513 , 94 , 434179 , 1415923 , 0 },
+/*SKY74400*/ { 518 , 108, 2367956, 1624829 , 3 },
+/*SKY74400*/ { 522 , 98 , 2403418, 1479322 , 1 },
+/*SKY74400*/ { 558 , 109, 204690 , 1624829 , 3 },
+/*SKY74400*/ { 581 , 99 , 936615 , 1479322 , 1 },
+/*SKY74400*/ { 601 , 109, 2388055, 1624829 , 3 },
+/*SKY74400*/ { 614 , 99 , 2462167, 1479322 , 1 },
+/*SKY74400*/ { 645 , 110, 427893 , 1624829 , 3 },
+/*SKY74400*/ { 652 , 95 , 2390292, 1415923 , 0 },
+/*SKY74400*/ { 671 , 100, 902907 , 1479322 , 1 },
+/*SKY74400*/ { 683 , 110, 2357378, 1624829 , 3 },
+/*SKY74400*/ { 701 , 100, 2289772, 1479322 , 1 },
+/*SKY74400*/ { 719 , 96 , 1160577, 1415923 , 0 },
+/*SKY74400*/ { 728 , 100, 3537950, 1479322 , 1 },
+/*SKY74400*/ { 740 , 111, 1057303, 1624829 , 3 },
+/*SKY74400*/ { 746 , 101, 175765 , 1479322 , 1 },
+/*SKY74400*/ { 781 , 111, 3139116, 1624829 , 3 },
+/*SKY74400*/ { 796 , 101, 2487207, 1479322 , 1 },
+/*SKY74400*/ };
+/*SKY74400*/
+/*SKY74400*/ const SKY74400_PLL_ELM *const SKY74400_TXPLL_TBL[] =
+/*SKY74400*/ {
+/*SKY74400*/ 0, /* FrequencyBand400 (not support) */
+/*SKY74400*/ SKY74400_TX_850, /* FrequencyBand850 */
+/*SKY74400*/ SKY74400_TX_900, /* FrequencyBand900 */
+/*SKY74400*/ SKY74400_TX_1800, /* FrequencyBand1800 */
+/*SKY74400*/ SKY74400_TX_1900, /* FrequencyBand1900 */
+/*SKY74400*/ };
+/*SKY74400*/
+/*SKY74400*/ short SKY74400_TXPLL_TBL_SIZE[5] =
+/*SKY74400*/ {
+/*SKY74400*/ 0, /* FrequencyBand400 (not support) */
+/*SKY74400*/ sizeof(SKY74400_TX_850)/sizeof(SKY74400_PLL_ELM)-1, /* FrequencyBand850 */
+/*SKY74400*/ sizeof(SKY74400_TX_900)/sizeof(SKY74400_PLL_ELM)-1, /* FrequencyBand900 */
+/*SKY74400*/ sizeof(SKY74400_TX_1800)/sizeof(SKY74400_PLL_ELM)-1, /* FrequencyBand1800 */
+/*SKY74400*/ sizeof(SKY74400_TX_1900)/sizeof(SKY74400_PLL_ELM)-1, /* FrequencyBand1900 */
+/*SKY74400*/ };
+/*SKY74400*/
+/*SKY74400*/ short SKY74400_TXPLL_INJECTIN_TBL[5] =
+/*SKY74400*/ {
+/*SKY74400*/ 0, /* FrequencyBand400 (not support) */
+/*SKY74400*/ 90, /* FrequencyBand850 (not support) */
+/*SKY74400*/ 95, /* FrequencyBand900 (not support) */
+/*SKY74400*/ 98, /* FrequencyBand1800 (not support) */
+/*SKY74400*/ 105, /* FrequencyBand1900 (not support) */
+/*SKY74400*/ };
+/*SKY74400*/
+/*SKY74400*/ const unsigned long SDATA_TX_TABLE[5] =
+/*SKY74400*/ {
+/*SKY74400*/ 0L , /* FrequencyBand400 (not support) */
+/*SKY74400*/ 0x040004L , /* FrequencyBand850 */
+/*SKY74400*/ 0x050004L , /* FrequencyBand900 */
+/*SKY74400*/ 0x060004L , /* FrequencyBand1800 */
+/*SKY74400*/ 0x070004L , /* FrequencyBand1900 */
+/*SKY74400*/ };
+/*SKY74400*/ const unsigned long SDATA_TX_Div_TABLE[2] = { 0x100000, 0x200000 }; // 0: /8 1: /16
+/*SKY74400*/ const unsigned long SDATA_TX_Inj_TABLE[2] = { 0x000000, 0x080000 }; // 0: Low 1: High
+/*SKY74400*/ unsigned long SKY74400_TxCtrl = 0;
+/*SKY74400*/ unsigned long SKY74400_TxCtrl_Mask = 0;
+/*SKY74400*/
+/*SKY74400*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*SKY74400*/ { int Nfrac;
+/*SKY74400*/ const SKY74400_PLL_ELM* elmptr;
+/*SKY74400*/ int left, right, middle;
+/*SKY74400*/
+/*SKY74400*/ /*binary search*/
+/*SKY74400*/ elmptr = SKY74400_RXPLL_TBL[rf_band];
+/*SKY74400*/ left = 0; right = SKY74400_RXPLL_TBL_SIZE[rf_band];
+/*SKY74400*/ while (left <= right)
+/*SKY74400*/ { middle = (left + right)/2;
+/*SKY74400*/ if ( arfcn<(elmptr+middle)->arfcn )
+/*SKY74400*/ right = middle - 1;
+/*SKY74400*/ else
+/*SKY74400*/ left = middle + 1;
+/*SKY74400*/ }
+/*SKY74400*/ elmptr = (elmptr+left-1);
+/*SKY74400*/
+/*SKY74400*/ Nfrac = elmptr->Fbase + (((arfcn-elmptr->arfcn)*elmptr->Fstep)>>5);
+/*SKY74400*/ *rfN = (elmptr->Nint<<6) | 0xC40000;
+/*SKY74400*/ *ifN = (Nfrac<<2) | 3;
+/*SKY74400*/ // *rfN = elmptr->Nint;
+/*SKY74400*/ // *ifN = Nfrac;
+/*SKY74400*/ }
+/*SKY74400*/ /* =========================================================================== */
+/*SKY74400*/
+/*SKY74400*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*SKY74400*/ { int Nfrac;
+/*SKY74400*/ const SKY74400_PLL_ELM* elmptr;
+/*SKY74400*/ int left, right, middle;
+/*SKY74400*/ int div;
+/*SKY74400*/
+/*SKY74400*/ /*binary search*/
+/*SKY74400*/ elmptr = SKY74400_TXPLL_TBL[rf_band];
+/*SKY74400*/ left = 0; right = SKY74400_TXPLL_TBL_SIZE[rf_band];
+/*SKY74400*/ while (left <= right)
+/*SKY74400*/ { middle = (left + right)/2;
+/*SKY74400*/ if ( arfcn<(elmptr+middle)->arfcn )
+/*SKY74400*/ right = middle - 1;
+/*SKY74400*/ else
+/*SKY74400*/ left = middle + 1;
+/*SKY74400*/ }
+/*SKY74400*/ elmptr = (elmptr+left-1);
+/*SKY74400*/ Nfrac = elmptr->Fbase + (((arfcn-elmptr->arfcn)*elmptr->Fstep)>>5);
+/*SKY74400*/ *rfN = (elmptr->Nint<<6) | 0xC40000;
+/*SKY74400*/ *ifN = (Nfrac<<2) | 3;
+/*SKY74400*/ // *rfN = elmptr->Nint;
+/*SKY74400*/ // *ifN = Nfrac;
+/*SKY74400*/
+/*SKY74400*/ l1d_rf.next_inj = (elmptr->Inj_Div>>1)&0x01;
+/*SKY74400*/ div = (elmptr->Inj_Div>>0)&0x01;
+/*SKY74400*/ SKY74400_TxCtrl_Mask = SDATA_TX_Div_TABLE[div] | SDATA_TX_Inj_TABLE[l1d_rf.next_inj];
+/*SKY74400*/ SKY74400_TxCtrl = SDATA_TX_TABLE[rf_band] | SDATA_TX_Div_TABLE[div] | SDATA_TX_Inj_TABLE[l1d_rf.next_inj];
+/*SKY74400*/ }
+/*SKY74400*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_MT6119
+/*MT6119*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6119*/ { int Nfrac;
+/*MT6119*/
+/*MT6119*/ switch(rf_band)
+/*MT6119*/ {
+/*MT6119*/ case FrequencyBand900 :
+/*MT6119*/ {
+/*MT6119*/ if(arfcn<=70)
+/*MT6119*/ { if(arfcn<=5) /* ARFCN : 0~5 */
+/*MT6119*/ { Nfrac = 80*(arfcn-0)+4760;
+/*MT6119*/ *rfN = (7L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 6~70 */
+/*MT6119*/ { Nfrac = 80*(arfcn-6)+40;
+/*MT6119*/ *rfN = (8L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { if(arfcn<=124) /* ARFCN : 71~124 */
+/*MT6119*/ { Nfrac = 80*(arfcn-71)+40;
+/*MT6119*/ *rfN = (9L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { Nfrac = 80*(arfcn-975)+840; /* ARFCN : 975~1023 */
+/*MT6119*/ *rfN = (7L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ break;
+/*MT6119*/ }
+/*MT6119*/ case FrequencyBand1800 :
+/*MT6119*/ {
+/*MT6119*/ if(arfcn<=716)
+/*MT6119*/ { if(arfcn<=586) /* ARFCN : 512~586 */
+/*MT6119*/ { Nfrac = 40*(arfcn-512)+2220;
+/*MT6119*/ *rfN = (5L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 587~716 */
+/*MT6119*/ { Nfrac = 40*(arfcn-587)+20;
+/*MT6119*/ *rfN = (6L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { if(arfcn<=846) /* ARFCN : 717~846 */
+/*MT6119*/ { Nfrac = 40*(arfcn-717)+20;
+/*MT6119*/ *rfN = (7L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 847~885 */
+/*MT6119*/ { Nfrac = 40*(arfcn-847)+20;
+/*MT6119*/ *rfN = (8L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ break;
+/*MT6119*/ }
+/*MT6119*/ case FrequencyBand1900 :
+/*MT6119*/ {
+/*MT6119*/ if(arfcn<=741)
+/*MT6119*/ { if(arfcn<=611) /* ARFCN : 512~611 */
+/*MT6119*/ { Nfrac = 40*(arfcn-512)+1220;
+/*MT6119*/ *rfN = (10L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 612~741 */
+/*MT6119*/ { Nfrac = 40*(arfcn-612)+20;
+/*MT6119*/ *rfN = (11L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { Nfrac = 40*(arfcn-742)+20; /* ARFCN : 742~810 */
+/*MT6119*/ *rfN = (12L<<16) | (Nfrac<<3) | 1;
+/*MT6119*/ }
+/*MT6119*/ break;
+/*MT6119*/ }
+/*MT6119*/ default :
+/*MT6119*/ {
+/*MT6119*/ break;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ *ifN = 0;
+/*MT6119*/ }
+/*MT6119*/ /* =========================================================================== */
+/*MT6119*/
+/*MT6119*/ char mt6119_d_flag = 0;
+/*MT6119*/
+/*MT6119*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6119*/ { int Nfrac;
+/*MT6119*/
+/*MT6119*/ switch(rf_band)
+/*MT6119*/ {
+/*MT6119*/ case FrequencyBand900 :
+/*MT6119*/ {
+/*MT6119*/ if(arfcn<=110)
+/*MT6119*/ { if(arfcn<=52)
+/*MT6119*/ { if(arfcn<=3) /* ARFCN : 0~3 */
+/*MT6119*/ { Nfrac = 88*(arfcn-0)+1600;
+/*MT6119*/ *rfN = (11L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 4~52 */
+/*MT6119*/ { Nfrac = 90*(arfcn-4)+460;
+/*MT6119*/ *rfN = (13L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { if(arfcn<=61) /* ARFCN : 53~61 */
+/*MT6119*/ { Nfrac = 88*(arfcn-53)+1064;
+/*MT6119*/ *rfN = (12L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 62~110 */
+/*MT6119*/ { Nfrac = 90*(arfcn-62)+480;
+/*MT6119*/ *rfN = (14L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { if(arfcn<=124)
+/*MT6119*/ { if(arfcn<=118) /* ARFCN : 111~118 */
+/*MT6119*/ { Nfrac = 88*(arfcn-111)+968;
+/*MT6119*/ *rfN = (13L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 119~124 */
+/*MT6119*/ { Nfrac = 90*(arfcn-119)+410;
+/*MT6119*/ *rfN = (15L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { if(arfcn<=1018) /* ARFCN : 975~1018 */
+/*MT6119*/ { Nfrac = 90*(arfcn-975)+890;
+/*MT6119*/ *rfN = (12L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 1019~1023 */
+/*MT6119*/ { Nfrac = 88*(arfcn-1019)+1160;
+/*MT6119*/ *rfN = (11L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ break;
+/*MT6119*/ }
+/*MT6119*/ case FrequencyBand1800 :
+/*MT6119*/ {
+/*MT6119*/ if(arfcn<=734)
+/*MT6119*/ { if(arfcn<=618)
+/*MT6119*/ { if(arfcn<=520) /* ARFCN : 512~520 */
+/*MT6119*/ { Nfrac = 44*(arfcn-512)+1844;
+/*MT6119*/ *rfN = (8L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 521~618 */
+/*MT6119*/ { Nfrac = 45*(arfcn-521)+400;
+/*MT6119*/ *rfN = (10L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { if(arfcn<=636) /* ARFCN : 619~636 */
+/*MT6119*/ { Nfrac = 44*(arfcn-619)+1352;
+/*MT6119*/ *rfN = (9L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 637~734 */
+/*MT6119*/ { Nfrac = 45*(arfcn-637)+420;
+/*MT6119*/ *rfN = (11L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { if(arfcn<=849)
+/*MT6119*/ { if(arfcn<=752) /* ARFCN : 735~752 */
+/*MT6119*/ { Nfrac = 44*(arfcn-735)+1256;
+/*MT6119*/ *rfN = (10L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 753~849 */
+/*MT6119*/ { Nfrac = 45*(arfcn-753)+440;
+/*MT6119*/ *rfN = (12L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 850~867 */
+/*MT6119*/ { if(arfcn<=867)
+/*MT6119*/ { Nfrac = 44*(arfcn-850)+1116;
+/*MT6119*/ *rfN = (11L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 868~885 */
+/*MT6119*/ { Nfrac = 45*(arfcn-868)+415;
+/*MT6119*/ *rfN = (13L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ break;
+/*MT6119*/ }
+/*MT6119*/ case FrequencyBand1900 :
+/*MT6119*/ {
+/*MT6119*/ if(arfcn<=727)
+/*MT6119*/ { if(arfcn<=612)
+/*MT6119*/ { if(arfcn<=514) /* ARFCN : 512~514 */
+/*MT6119*/ { Nfrac = 44*(arfcn-512)+1444;
+/*MT6119*/ *rfN = (14L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { Nfrac = 45*(arfcn-515)+430; /* ARFCN : 515~612 */
+/*MT6119*/ *rfN = (16L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { if(arfcn<=629) /* ARFCN : 613~629 */
+/*MT6119*/ { Nfrac = 44*(arfcn-613)+688;
+/*MT6119*/ *rfN = (15L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { Nfrac = 45*(arfcn-630)+405; /* ARFCN : 630~727 */
+/*MT6119*/ *rfN = (17L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ else
+/*MT6119*/ { if(arfcn<=745) /* ARFCN : 728~745 */
+/*MT6119*/ { Nfrac = 44*(arfcn-728)+548;
+/*MT6119*/ *rfN = (16L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 1;
+/*MT6119*/ }
+/*MT6119*/ else /* ARFCN : 746~810 */
+/*MT6119*/ { Nfrac = 45*(arfcn-746)+425;
+/*MT6119*/ *rfN = (18L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119*/ mt6119_d_flag = 0;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ break;
+/*MT6119*/ }
+/*MT6119*/ default :
+/*MT6119*/ {
+/*MT6119*/ break;
+/*MT6119*/ }
+/*MT6119*/ }
+/*MT6119*/ *ifN = 0;
+/*MT6119*/ }
+/*MT6119*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_MT6119C
+/*MT6119C*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6119C*/{ int Nfrac;
+/*MT6119C*/
+/*MT6119C*/ switch(rf_band)
+/*MT6119C*/ {
+/*MT6119C*/ case FrequencyBand900 :
+/*MT6119C*/ {
+/*MT6119C*/ if(arfcn<=70)
+/*MT6119C*/ { if(arfcn<=5) /* ARFCN : 0~5 */
+/*MT6119C*/ { Nfrac = 80*(arfcn-0)+4760;
+/*MT6119C*/ *rfN = (7L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 6~70 */
+/*MT6119C*/ { Nfrac = 80*(arfcn-6)+40;
+/*MT6119C*/ *rfN = (8L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { if(arfcn<=124) /* ARFCN : 71~124 */
+/*MT6119C*/ { Nfrac = 80*(arfcn-71)+40;
+/*MT6119C*/ *rfN = (9L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { Nfrac = 80*(arfcn-975)+840; /* ARFCN : 975~1023 */
+/*MT6119C*/ *rfN = (7L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ break;
+/*MT6119C*/ }
+/*MT6119C*/ case FrequencyBand1800 :
+/*MT6119C*/ {
+/*MT6119C*/ if(arfcn<=716)
+/*MT6119C*/ { if(arfcn<=586) /* ARFCN : 512~586 */
+/*MT6119C*/ { Nfrac = 40*(arfcn-512)+2220;
+/*MT6119C*/ *rfN = (5L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 587~716 */
+/*MT6119C*/ { Nfrac = 40*(arfcn-587)+20;
+/*MT6119C*/ *rfN = (6L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { if(arfcn<=846) /* ARFCN : 717~846 */
+/*MT6119C*/ { Nfrac = 40*(arfcn-717)+20;
+/*MT6119C*/ *rfN = (7L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 847~885 */
+/*MT6119C*/ { Nfrac = 40*(arfcn-847)+20;
+/*MT6119C*/ *rfN = (8L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ break;
+/*MT6119C*/ }
+/*MT6119C*/ case FrequencyBand1900 :
+/*MT6119C*/ {
+/*MT6119C*/ if(arfcn<=741)
+/*MT6119C*/ { if(arfcn<=611) /* ARFCN : 512~611 */
+/*MT6119C*/ { Nfrac = 40*(arfcn-512)+1220;
+/*MT6119C*/ *rfN = (10L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 612~741 */
+/*MT6119C*/ { Nfrac = 40*(arfcn-612)+20;
+/*MT6119C*/ *rfN = (11L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { Nfrac = 40*(arfcn-742)+20; /* ARFCN : 742~810 */
+/*MT6119C*/ *rfN = (12L<<16) | (Nfrac<<3) | 1;
+/*MT6119C*/ }
+/*MT6119C*/ break;
+/*MT6119C*/ }
+/*MT6119C*/ default :
+/*MT6119C*/ {
+/*MT6119C*/ break;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ *ifN = 0;
+/*MT6119C*/}
+/*MT6119C*//* =========================================================================== */
+/*MT6119C*/
+/*MT6119C*/char mt6119_d_flag = 0;
+/*MT6119C*/
+/*MT6119C*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6119C*/{ int Nfrac;
+/*MT6119C*/
+/*MT6119C*/ switch(rf_band)
+/*MT6119C*/ {
+/*MT6119C*/ case FrequencyBand900 :
+/*MT6119C*/ {
+/*MT6119C*/ if(arfcn<=104)
+/*MT6119C*/ { if(arfcn<=45)
+/*MT6119C*/ { if(arfcn<=36) /* ARFCN : 0~36 */
+/*MT6119C*/ { Nfrac = 88*(arfcn-0)+1600;
+/*MT6119C*/ *rfN = (11L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 37~45 */
+/*MT6119C*/ { Nfrac = 90*(arfcn-37)+3430;
+/*MT6119C*/ *rfN = (13L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 0;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { if(arfcn<=95) /* ARFCN : 46~95 */
+/*MT6119C*/ { Nfrac = 88*(arfcn-46)+448;
+/*MT6119C*/ *rfN = (12L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 96~104 */
+/*MT6119C*/ { Nfrac = 90*(arfcn-96)+3540;
+/*MT6119C*/ *rfN = (14L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 0;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { if(arfcn<=1001)
+/*MT6119C*/ { if(arfcn<=124) /* ARFCN : 105~124 */
+/*MT6119C*/ { Nfrac = 88*(arfcn-105)+440;
+/*MT6119C*/ *rfN = (13L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 975~1001 */
+/*MT6119C*/ { Nfrac = 88*(arfcn-975)+2488;
+/*MT6119C*/ *rfN = (10L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { if(arfcn<=1010) /* ARFCN : 1002~1010 */
+/*MT6119C*/ { Nfrac = 90*(arfcn-1002)+3320;
+/*MT6119C*/ *rfN = (12L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 0;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 1011~1023 */
+/*MT6119C*/ { Nfrac = 88*(arfcn-1011)+456;
+/*MT6119C*/ *rfN = (11L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ break;
+/*MT6119C*/ }
+/*MT6119C*/ case FrequencyBand1800 :
+/*MT6119C*/ {
+/*MT6119C*/ if(arfcn<=715)
+/*MT6119C*/ { if(arfcn<=597)
+/*MT6119C*/ { if(arfcn<=579) /* ARFCN : 512~579 */
+/*MT6119C*/ { Nfrac = 44*(arfcn-512)+1844;
+/*MT6119C*/ *rfN = (8L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 580~597 */
+/*MT6119C*/ { Nfrac = 45*(arfcn-580)+3055;
+/*MT6119C*/ *rfN = (10L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 0;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { if(arfcn<=697) /* ARFCN : 598~697 */
+/*MT6119C*/ { Nfrac = 44*(arfcn-598)+428;
+/*MT6119C*/ *rfN = (9L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 698~715 */
+/*MT6119C*/ { Nfrac = 45*(arfcn-698)+3165;
+/*MT6119C*/ *rfN = (11L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 0;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { if(arfcn<=833)
+/*MT6119C*/ { if(arfcn<=815) /* ARFCN : 716~815 */
+/*MT6119C*/ { Nfrac = 44*(arfcn-716)+420;
+/*MT6119C*/ *rfN = (10L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 816~833 */
+/*MT6119C*/ { Nfrac = 45*(arfcn-816)+3275;
+/*MT6119C*/ *rfN = (12L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 0;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 834~885 */
+/*MT6119C*/ { Nfrac = 44*(arfcn-834)+412;
+/*MT6119C*/ *rfN = (11L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ break;
+/*MT6119C*/ }
+/*MT6119C*/ case FrequencyBand1900 :
+/*MT6119C*/ {
+/*MT6119C*/ if(arfcn<=706)
+/*MT6119C*/ { if(arfcn<=606)
+/*MT6119C*/ { if(arfcn<=588) /* ARFCN : 512~588 */
+/*MT6119C*/ { Nfrac = 44*(arfcn-512)+1444;
+/*MT6119C*/ *rfN = (14L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { Nfrac = 45*(arfcn-589)+3760; /* ARFCN : 589~606 */
+/*MT6119C*/ *rfN = (16L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 0;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 607~706 */
+/*MT6119C*/ { Nfrac = 44*(arfcn-607)+424;
+/*MT6119C*/ *rfN = (15L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ else
+/*MT6119C*/ { if(arfcn<=724) /* ARFCN : 707~724 */
+/*MT6119C*/ { Nfrac = 45*(arfcn-707)+3870;
+/*MT6119C*/ *rfN = (17L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 0;
+/*MT6119C*/ }
+/*MT6119C*/ else /* ARFCN : 725~810 */
+/*MT6119C*/ { Nfrac = 44*(arfcn-725)+416;
+/*MT6119C*/ *rfN = (16L<<16) | (Nfrac<<3) | 0x400001L;
+/*MT6119C*/ mt6119_d_flag = 1;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ break;
+/*MT6119C*/ }
+/*MT6119C*/ default :
+/*MT6119C*/ {
+/*MT6119C*/ break;
+/*MT6119C*/ }
+/*MT6119C*/ }
+/*MT6119C*/ *ifN = 0;
+/*MT6119C*/}
+/*MT6119C*//* =========================================================================== */
+#endif
+
+#if IS_RF_MT6129A
+/*MT6129A*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6129A*/{ int Nfrac;
+/*MT6129A*/
+/*MT6129A*/ switch(rf_band)
+/*MT6129A*/ {
+/*MT6129A*/ case FrequencyBand900 :
+/*MT6129A*/ {
+/*MT6129A*/ if(arfcn<=70)
+/*MT6129A*/ { if(arfcn<=5) /* ARFCN : 0~5 */
+/*MT6129A*/ { Nfrac = 80*(arfcn-0)+4760;
+/*MT6129A*/ *rfN = (7L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 6~70 */
+/*MT6129A*/ { Nfrac = 80*(arfcn-6)+40;
+/*MT6129A*/ *rfN = (8L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { if(arfcn<=124) /* ARFCN : 71~124 */
+/*MT6129A*/ { Nfrac = 80*(arfcn-71)+40;
+/*MT6129A*/ *rfN = (9L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { Nfrac = 80*(arfcn-975)+840; /* ARFCN : 975~1023 */
+/*MT6129A*/ *rfN = (7L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ break;
+/*MT6129A*/ }
+/*MT6129A*/ case FrequencyBand1800 :
+/*MT6129A*/ {
+/*MT6129A*/ if(arfcn<=716)
+/*MT6129A*/ { if(arfcn<=586) /* ARFCN : 512~586 */
+/*MT6129A*/ { Nfrac = 40*(arfcn-512)+2220;
+/*MT6129A*/ *rfN = (5L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 587~716 */
+/*MT6129A*/ { Nfrac = 40*(arfcn-587)+20;
+/*MT6129A*/ *rfN = (6L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { if(arfcn<=846) /* ARFCN : 717~846 */
+/*MT6129A*/ { Nfrac = 40*(arfcn-717)+20;
+/*MT6129A*/ *rfN = (7L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 847~885 */
+/*MT6129A*/ { Nfrac = 40*(arfcn-847)+20;
+/*MT6129A*/ *rfN = (8L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ break;
+/*MT6129A*/ }
+/*MT6129A*/ case FrequencyBand1900 :
+/*MT6129A*/ {
+/*MT6129A*/ if(arfcn<=741)
+/*MT6129A*/ { if(arfcn<=611) /* ARFCN : 512~611 */
+/*MT6129A*/ { Nfrac = 40*(arfcn-512)+1220;
+/*MT6129A*/ *rfN = (10L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 612~741 */
+/*MT6129A*/ { Nfrac = 40*(arfcn-612)+20;
+/*MT6129A*/ *rfN = (11L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { Nfrac = 40*(arfcn-742)+20; /* ARFCN : 742~810 */
+/*MT6129A*/ *rfN = (12L<<17) | (Nfrac<<4) | 1;
+/*MT6129A*/ }
+/*MT6129A*/ break;
+/*MT6129A*/ }
+/*MT6129A*/ default :
+/*MT6129A*/ {
+/*MT6129A*/ break;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ *ifN = 0;
+/*MT6129A*/}
+/*MT6129A*//* =========================================================================== */
+/*MT6129A*/
+/*MT6129A*/char mt6119_d_flag = 0;
+/*MT6129A*/
+/*MT6129A*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6129A*/{ int Nfrac;
+/*MT6129A*/
+/*MT6129A*/ switch(rf_band)
+/*MT6129A*/ {
+/*MT6129A*/ case FrequencyBand900 :
+/*MT6129A*/ {
+/*MT6129A*/ if(arfcn<=104)
+/*MT6129A*/ { if(arfcn<=45)
+/*MT6129A*/ { if(arfcn<=36) /* ARFCN : 0~36 */
+/*MT6129A*/ { Nfrac = 88*(arfcn-0)+1600;
+/*MT6129A*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 37~45 */
+/*MT6129A*/ { Nfrac = 90*(arfcn-37)+3430;
+/*MT6129A*/ *rfN = (13L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 0;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { if(arfcn<=95) /* ARFCN : 46~95 */
+/*MT6129A*/ { Nfrac = 88*(arfcn-46)+448;
+/*MT6129A*/ *rfN = (12L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 96~104 */
+/*MT6129A*/ { Nfrac = 90*(arfcn-96)+3540;
+/*MT6129A*/ *rfN = (14L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 0;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { if(arfcn<=1001)
+/*MT6129A*/ { if(arfcn<=124) /* ARFCN : 105~124 */
+/*MT6129A*/ { Nfrac = 88*(arfcn-105)+440;
+/*MT6129A*/ *rfN = (13L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 975~1001 */
+/*MT6129A*/ { Nfrac = 88*(arfcn-975)+2488;
+/*MT6129A*/ *rfN = (10L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { if(arfcn<=1010) /* ARFCN : 1002~1010 */
+/*MT6129A*/ { Nfrac = 90*(arfcn-1002)+3320;
+/*MT6129A*/ *rfN = (12L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 0;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 1011~1023 */
+/*MT6129A*/ { Nfrac = 88*(arfcn-1011)+456;
+/*MT6129A*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ break;
+/*MT6129A*/ }
+/*MT6129A*/ case FrequencyBand1800 :
+/*MT6129A*/ {
+/*MT6129A*/ if(arfcn<=715)
+/*MT6129A*/ { if(arfcn<=597)
+/*MT6129A*/ { if(arfcn<=579) /* ARFCN : 512~579 */
+/*MT6129A*/ { Nfrac = 44*(arfcn-512)+1844;
+/*MT6129A*/ *rfN = (8L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 580~597 */
+/*MT6129A*/ { Nfrac = 45*(arfcn-580)+3055;
+/*MT6129A*/ *rfN = (10L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 0;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { if(arfcn<=697) /* ARFCN : 598~697 */
+/*MT6129A*/ { Nfrac = 44*(arfcn-598)+428;
+/*MT6129A*/ *rfN = (9L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 698~715 */
+/*MT6129A*/ { Nfrac = 45*(arfcn-698)+3165;
+/*MT6129A*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 0;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { if(arfcn<=833)
+/*MT6129A*/ { if(arfcn<=815) /* ARFCN : 716~815 */
+/*MT6129A*/ { Nfrac = 44*(arfcn-716)+420;
+/*MT6129A*/ *rfN = (10L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 816~833 */
+/*MT6129A*/ { Nfrac = 45*(arfcn-816)+3275;
+/*MT6129A*/ *rfN = (12L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 0;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 834~885 */
+/*MT6129A*/ { Nfrac = 44*(arfcn-834)+412;
+/*MT6129A*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ break;
+/*MT6129A*/ }
+/*MT6129A*/ case FrequencyBand1900 :
+/*MT6129A*/ {
+/*MT6129A*/ if(arfcn<=706)
+/*MT6129A*/ { if(arfcn<=606)
+/*MT6129A*/ { if(arfcn<=588) /* ARFCN : 512~588 */
+/*MT6129A*/ { Nfrac = 44*(arfcn-512)+1444;
+/*MT6129A*/ *rfN = (14L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { Nfrac = 45*(arfcn-589)+3760; /* ARFCN : 589~606 */
+/*MT6129A*/ *rfN = (16L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 0;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 607~706 */
+/*MT6129A*/ { Nfrac = 44*(arfcn-607)+424;
+/*MT6129A*/ *rfN = (15L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ else
+/*MT6129A*/ { if(arfcn<=724) /* ARFCN : 707~724 */
+/*MT6129A*/ { Nfrac = 45*(arfcn-707)+3870;
+/*MT6129A*/ *rfN = (17L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 0;
+/*MT6129A*/ }
+/*MT6129A*/ else /* ARFCN : 725~810 */
+/*MT6129A*/ { Nfrac = 44*(arfcn-725)+416;
+/*MT6129A*/ *rfN = (16L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129A*/ mt6119_d_flag = 1;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ break;
+/*MT6129A*/ }
+/*MT6129A*/ default :
+/*MT6129A*/ {
+/*MT6129A*/ break;
+/*MT6129A*/ }
+/*MT6129A*/ }
+/*MT6129A*/ *ifN = 0;
+/*MT6129A*/}
+/*MT6129A*//* =========================================================================== */
+#endif
+
+#if IS_RF_MT6129B
+/*MT6129B*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6129B*/{ int Nfrac;
+/*MT6129B*/
+/*MT6129B*/ switch(rf_band)
+/*MT6129B*/ {
+/*MT6129B*/ case FrequencyBand850 :
+/*MT6129B*/ {
+/*MT6129B*/ if(arfcn<=202)
+/*MT6129B*/ { if(arfcn<=137) /* ARFCN : 128~137 */
+/*MT6129B*/ { Nfrac = 80*(arfcn-128)+4440;
+/*MT6129B*/ *rfN = (2L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 138~202 */
+/*MT6129B*/ { Nfrac = 80*(arfcn-138)+40;
+/*MT6129B*/ *rfN = (3L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { /* ARFCN : 203~251 */
+/*MT6129B*/ Nfrac = 80*(arfcn-203)+40;
+/*MT6129B*/ *rfN = (4L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ break;
+/*MT6129B*/ }
+/*MT6129B*/ case FrequencyBand900 :
+/*MT6129B*/ {
+/*MT6129B*/ if(arfcn<=70)
+/*MT6129B*/ { if(arfcn<=5) /* ARFCN : 0~5 */
+/*MT6129B*/ { Nfrac = 80*(arfcn-0)+4760;
+/*MT6129B*/ *rfN = (7L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 6~70 */
+/*MT6129B*/ { Nfrac = 80*(arfcn-6)+40;
+/*MT6129B*/ *rfN = (8L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { if(arfcn<=124) /* ARFCN : 71~124 */
+/*MT6129B*/ { Nfrac = 80*(arfcn-71)+40;
+/*MT6129B*/ *rfN = (9L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { Nfrac = 80*(arfcn-975)+840; /* ARFCN : 975~1023 */
+/*MT6129B*/ *rfN = (7L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ break;
+/*MT6129B*/ }
+/*MT6129B*/ case FrequencyBand1800 :
+/*MT6129B*/ {
+/*MT6129B*/ if(arfcn<=716)
+/*MT6129B*/ { if(arfcn<=586) /* ARFCN : 512~586 */
+/*MT6129B*/ { Nfrac = 40*(arfcn-512)+2220;
+/*MT6129B*/ *rfN = (5L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 587~716 */
+/*MT6129B*/ { Nfrac = 40*(arfcn-587)+20;
+/*MT6129B*/ *rfN = (6L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { if(arfcn<=846) /* ARFCN : 717~846 */
+/*MT6129B*/ { Nfrac = 40*(arfcn-717)+20;
+/*MT6129B*/ *rfN = (7L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 847~885 */
+/*MT6129B*/ { Nfrac = 40*(arfcn-847)+20;
+/*MT6129B*/ *rfN = (8L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ break;
+/*MT6129B*/ }
+/*MT6129B*/ case FrequencyBand1900 :
+/*MT6129B*/ {
+/*MT6129B*/ if(arfcn<=741)
+/*MT6129B*/ { if(arfcn<=611) /* ARFCN : 512~611 */
+/*MT6129B*/ { Nfrac = 40*(arfcn-512)+1220;
+/*MT6129B*/ *rfN = (10L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 612~741 */
+/*MT6129B*/ { Nfrac = 40*(arfcn-612)+20;
+/*MT6129B*/ *rfN = (11L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { Nfrac = 40*(arfcn-742)+20; /* ARFCN : 742~810 */
+/*MT6129B*/ *rfN = (12L<<17) | (Nfrac<<4) | 1;
+/*MT6129B*/ }
+/*MT6129B*/ break;
+/*MT6129B*/ }
+/*MT6129B*/ default :
+/*MT6129B*/ {
+/*MT6129B*/ break;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ *ifN = 0;
+/*MT6129B*/}
+/*MT6129B*//* =========================================================================== */
+/*MT6129B*/
+/*MT6129B*/char mt6119_d_flag = 0;
+/*MT6129B*/
+/*MT6129B*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6129B*/{ int Nfrac;
+/*MT6129B*/
+/*MT6129B*/ switch(rf_band)
+/*MT6129B*/ {
+/*MT6129B*/ case FrequencyBand850 :
+/*MT6129B*/ {
+/*MT6129B*/ if(arfcn<=197)
+/*MT6129B*/ { if(arfcn<=147)
+/*MT6129B*/ { if(arfcn<=138)
+/*MT6129B*/ { /* ARFCN : 128~138 */
+/*MT6129B*/ Nfrac = 88*(arfcn-128)+3848;
+/*MT6129B*/ *rfN = (5L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { /* ARFCN : 139~147 */
+/*MT6129B*/ Nfrac = 90*(arfcn-139)+2680;
+/*MT6129B*/ *rfN = (7L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 0;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { /* ARFCN : 148~197 */
+/*MT6129B*/ Nfrac = 88*(arfcn-148)+408;
+/*MT6129B*/ *rfN = (6L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { if(arfcn<=206)
+/*MT6129B*/ { /* ARFCN : 198~206 */
+/*MT6129B*/ Nfrac = 90*(arfcn-198)+2790;
+/*MT6129B*/ *rfN = (8L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 0;
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { /* ARFCN : 207~251 */
+/*MT6129B*/ Nfrac = 88*(arfcn-207)+400;
+/*MT6129B*/ *rfN = (7L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ break;
+/*MT6129B*/ }
+/*MT6129B*/ case FrequencyBand900 :
+/*MT6129B*/ {
+/*MT6129B*/ if(arfcn<=104)
+/*MT6129B*/ { if(arfcn<=45)
+/*MT6129B*/ { if(arfcn<=36) /* ARFCN : 0~36 */
+/*MT6129B*/ { Nfrac = 88*(arfcn-0)+1600;
+/*MT6129B*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 37~45 */
+/*MT6129B*/ { Nfrac = 90*(arfcn-37)+3430;
+/*MT6129B*/ *rfN = (13L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 0;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { if(arfcn<=95) /* ARFCN : 46~95 */
+/*MT6129B*/ { Nfrac = 88*(arfcn-46)+448;
+/*MT6129B*/ *rfN = (12L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 96~104 */
+/*MT6129B*/ { Nfrac = 90*(arfcn-96)+3540;
+/*MT6129B*/ *rfN = (14L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 0;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { if(arfcn<=1001)
+/*MT6129B*/ { if(arfcn<=124) /* ARFCN : 105~124 */
+/*MT6129B*/ { Nfrac = 88*(arfcn-105)+440;
+/*MT6129B*/ *rfN = (13L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 975~1001 */
+/*MT6129B*/ { Nfrac = 88*(arfcn-975)+2488;
+/*MT6129B*/ *rfN = (10L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { if(arfcn<=1010) /* ARFCN : 1002~1010 */
+/*MT6129B*/ { Nfrac = 90*(arfcn-1002)+3320;
+/*MT6129B*/ *rfN = (12L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 0;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 1011~1023 */
+/*MT6129B*/ { Nfrac = 88*(arfcn-1011)+456;
+/*MT6129B*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ break;
+/*MT6129B*/ }
+/*MT6129B*/ case FrequencyBand1800 :
+/*MT6129B*/ {
+/*MT6129B*/ if(arfcn<=715)
+/*MT6129B*/ { if(arfcn<=597)
+/*MT6129B*/ { if(arfcn<=579) /* ARFCN : 512~579 */
+/*MT6129B*/ { Nfrac = 44*(arfcn-512)+1844;
+/*MT6129B*/ *rfN = (8L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 580~597 */
+/*MT6129B*/ { Nfrac = 45*(arfcn-580)+3055;
+/*MT6129B*/ *rfN = (10L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 0;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { if(arfcn<=697) /* ARFCN : 598~697 */
+/*MT6129B*/ { Nfrac = 44*(arfcn-598)+428;
+/*MT6129B*/ *rfN = (9L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 698~715 */
+/*MT6129B*/ { Nfrac = 45*(arfcn-698)+3165;
+/*MT6129B*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 0;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { if(arfcn<=833)
+/*MT6129B*/ { if(arfcn<=815) /* ARFCN : 716~815 */
+/*MT6129B*/ { Nfrac = 44*(arfcn-716)+420;
+/*MT6129B*/ *rfN = (10L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 816~833 */
+/*MT6129B*/ { Nfrac = 45*(arfcn-816)+3275;
+/*MT6129B*/ *rfN = (12L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 0;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 834~885 */
+/*MT6129B*/ { Nfrac = 44*(arfcn-834)+412;
+/*MT6129B*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ break;
+/*MT6129B*/ }
+/*MT6129B*/ case FrequencyBand1900 :
+/*MT6129B*/ {
+/*MT6129B*/ if(arfcn<=706)
+/*MT6129B*/ { if(arfcn<=606)
+/*MT6129B*/ { if(arfcn<=588) /* ARFCN : 512~588 */
+/*MT6129B*/ { Nfrac = 44*(arfcn-512)+1444;
+/*MT6129B*/ *rfN = (14L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { Nfrac = 45*(arfcn-589)+3760; /* ARFCN : 589~606 */
+/*MT6129B*/ *rfN = (16L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 0;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 607~706 */
+/*MT6129B*/ { Nfrac = 44*(arfcn-607)+424;
+/*MT6129B*/ *rfN = (15L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ else
+/*MT6129B*/ { if(arfcn<=724) /* ARFCN : 707~724 */
+/*MT6129B*/ { Nfrac = 45*(arfcn-707)+3870;
+/*MT6129B*/ *rfN = (17L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 0;
+/*MT6129B*/ }
+/*MT6129B*/ else /* ARFCN : 725~810 */
+/*MT6129B*/ { Nfrac = 44*(arfcn-725)+416;
+/*MT6129B*/ *rfN = (16L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129B*/ mt6119_d_flag = 1;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ break;
+/*MT6129B*/ }
+/*MT6129B*/ default :
+/*MT6129B*/ {
+/*MT6129B*/ break;
+/*MT6129B*/ }
+/*MT6129B*/ }
+/*MT6129B*/ *ifN = 0;
+/*MT6129B*/}
+/*MT6129B*//* =========================================================================== */
+#endif
+
+#if (IS_RF_MT6129C)||(IS_RF_MT6129D)
+/*MT6129C,D*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6129C,D*/{ int Nfrac;
+/*MT6129C,D*/
+/*MT6129C,D*/ switch(rf_band)
+/*MT6129C,D*/ {
+/*MT6129C,D*/ case FrequencyBand850 :
+/*MT6129C,D*/ {
+/*MT6129C,D*/ if(arfcn<=202)
+/*MT6129C,D*/ { if(arfcn<=137) /* ARFCN : 128~137 */
+/*MT6129C,D*/ { Nfrac = 80*(arfcn-128)+4440;
+/*MT6129C,D*/ *rfN = (2L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 138~202 */
+/*MT6129C,D*/ { Nfrac = 80*(arfcn-138)+40;
+/*MT6129C,D*/ *rfN = (3L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { /* ARFCN : 203~251 */
+/*MT6129C,D*/ Nfrac = 80*(arfcn-203)+40;
+/*MT6129C,D*/ *rfN = (4L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ break;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ case FrequencyBand900 :
+/*MT6129C,D*/ {
+/*MT6129C,D*/ if(arfcn<=70)
+/*MT6129C,D*/ { if(arfcn<=5) /* ARFCN : 0~5 */
+/*MT6129C,D*/ { Nfrac = 80*(arfcn-0)+4760;
+/*MT6129C,D*/ *rfN = (7L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 6~70 */
+/*MT6129C,D*/ { Nfrac = 80*(arfcn-6)+40;
+/*MT6129C,D*/ *rfN = (8L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { if(arfcn<=124) /* ARFCN : 71~124 */
+/*MT6129C,D*/ { Nfrac = 80*(arfcn-71)+40;
+/*MT6129C,D*/ *rfN = (9L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { Nfrac = 80*(arfcn-975)+840; /* ARFCN : 975~1023 */
+/*MT6129C,D*/ *rfN = (7L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ break;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ case FrequencyBand1800 :
+/*MT6129C,D*/ {
+/*MT6129C,D*/ if(arfcn<=716)
+/*MT6129C,D*/ { if(arfcn<=586) /* ARFCN : 512~586 */
+/*MT6129C,D*/ { Nfrac = 40*(arfcn-512)+2220;
+/*MT6129C,D*/ *rfN = (5L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 587~716 */
+/*MT6129C,D*/ { Nfrac = 40*(arfcn-587)+20;
+/*MT6129C,D*/ *rfN = (6L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { if(arfcn<=846) /* ARFCN : 717~846 */
+/*MT6129C,D*/ { Nfrac = 40*(arfcn-717)+20;
+/*MT6129C,D*/ *rfN = (7L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 847~885 */
+/*MT6129C,D*/ { Nfrac = 40*(arfcn-847)+20;
+/*MT6129C,D*/ *rfN = (8L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ break;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ case FrequencyBand1900 :
+/*MT6129C,D*/ {
+/*MT6129C,D*/ if(arfcn<=741)
+/*MT6129C,D*/ { if(arfcn<=611) /* ARFCN : 512~611 */
+/*MT6129C,D*/ { Nfrac = 40*(arfcn-512)+1220;
+/*MT6129C,D*/ *rfN = (10L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 612~741 */
+/*MT6129C,D*/ { Nfrac = 40*(arfcn-612)+20;
+/*MT6129C,D*/ *rfN = (11L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { Nfrac = 40*(arfcn-742)+20; /* ARFCN : 742~810 */
+/*MT6129C,D*/ *rfN = (12L<<17) | (Nfrac<<4) | 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ break;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ default :
+/*MT6129C,D*/ {
+/*MT6129C,D*/ break;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ *ifN = 0;
+/*MT6129C,D*/}
+/*MT6129C,D*//* =========================================================================== */
+/*MT6129C,D*/
+/*MT6129C,D*/char mt6119_d_flag = 0;
+/*MT6129C,D*/
+/*MT6129C,D*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6129C,D*/{ int Nfrac;
+/*MT6129C,D*/
+/*MT6129C,D*/ switch(rf_band)
+/*MT6129C,D*/ {
+/*MT6129C,D*/ case FrequencyBand850 :
+/*MT6129C,D*/ {
+/*MT6129C,D*/ if(arfcn<=197)
+/*MT6129C,D*/ { if(arfcn<=147)
+/*MT6129C,D*/ { if(arfcn<=138)
+/*MT6129C,D*/ { /* ARFCN : 128~138 */
+/*MT6129C,D*/ Nfrac = 88*(arfcn-128)+3848;
+/*MT6129C,D*/ *rfN = (5L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { /* ARFCN : 139~147 */
+/*MT6129C,D*/ Nfrac = 90*(arfcn-139)+2680;
+/*MT6129C,D*/ *rfN = (7L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 0;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { /* ARFCN : 148~197 */
+/*MT6129C,D*/ Nfrac = 88*(arfcn-148)+408;
+/*MT6129C,D*/ *rfN = (6L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { if(arfcn<=206)
+/*MT6129C,D*/ { /* ARFCN : 198~206 */
+/*MT6129C,D*/ Nfrac = 90*(arfcn-198)+2790;
+/*MT6129C,D*/ *rfN = (8L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 0;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { /* ARFCN : 207~251 */
+/*MT6129C,D*/ Nfrac = 88*(arfcn-207)+400;
+/*MT6129C,D*/ *rfN = (7L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ break;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ case FrequencyBand900 :
+/*MT6129C,D*/ {
+/*MT6129C,D*/ if(arfcn<=104)
+/*MT6129C,D*/ { if(arfcn<=45)
+/*MT6129C,D*/ { if(arfcn<=36) /* ARFCN : 0~36 */
+/*MT6129C,D*/ { Nfrac = 88*(arfcn-0)+1600;
+/*MT6129C,D*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 37~45 */
+/*MT6129C,D*/ { Nfrac = 90*(arfcn-37)+3430;
+/*MT6129C,D*/ *rfN = (13L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 0;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { if(arfcn<=95) /* ARFCN : 46~95 */
+/*MT6129C,D*/ { Nfrac = 88*(arfcn-46)+448;
+/*MT6129C,D*/ *rfN = (12L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 96~104 */
+/*MT6129C,D*/ { Nfrac = 90*(arfcn-96)+3540;
+/*MT6129C,D*/ *rfN = (14L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 0;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { if(arfcn<=1001)
+/*MT6129C,D*/ { if(arfcn<=124) /* ARFCN : 105~124 */
+/*MT6129C,D*/ { Nfrac = 88*(arfcn-105)+440;
+/*MT6129C,D*/ *rfN = (13L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 975~1001 */
+/*MT6129C,D*/ { Nfrac = 88*(arfcn-975)+2488;
+/*MT6129C,D*/ *rfN = (10L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { if(arfcn<=1010) /* ARFCN : 1002~1010 */
+/*MT6129C,D*/ { Nfrac = 90*(arfcn-1002)+3320;
+/*MT6129C,D*/ *rfN = (12L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 0;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 1011~1023 */
+/*MT6129C,D*/ { Nfrac = 88*(arfcn-1011)+456;
+/*MT6129C,D*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ break;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ case FrequencyBand1800 :
+/*MT6129C,D*/ {
+/*MT6129C,D*/ if(arfcn<=715)
+/*MT6129C,D*/ { if(arfcn<=597)
+/*MT6129C,D*/ { if(arfcn<=579) /* ARFCN : 512~579 */
+/*MT6129C,D*/ { Nfrac = 44*(arfcn-512)+1844;
+/*MT6129C,D*/ *rfN = (8L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 580~597 */
+/*MT6129C,D*/ { Nfrac = 45*(arfcn-580)+3055;
+/*MT6129C,D*/ *rfN = (10L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 0;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { if(arfcn<=697) /* ARFCN : 598~697 */
+/*MT6129C,D*/ { Nfrac = 44*(arfcn-598)+428;
+/*MT6129C,D*/ *rfN = (9L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 698~715 */
+/*MT6129C,D*/ { Nfrac = 45*(arfcn-698)+3165;
+/*MT6129C,D*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 0;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { if(arfcn<=833)
+/*MT6129C,D*/ { if(arfcn<=815) /* ARFCN : 716~815 */
+/*MT6129C,D*/ { Nfrac = 44*(arfcn-716)+420;
+/*MT6129C,D*/ *rfN = (10L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 816~833 */
+/*MT6129C,D*/ { Nfrac = 45*(arfcn-816)+3275;
+/*MT6129C,D*/ *rfN = (12L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 0;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 834~885 */
+/*MT6129C,D*/ { Nfrac = 44*(arfcn-834)+412;
+/*MT6129C,D*/ *rfN = (11L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ break;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ case FrequencyBand1900 :
+/*MT6129C,D*/ {
+/*MT6129C,D*/ if(arfcn<=706)
+/*MT6129C,D*/ { if(arfcn<=606)
+/*MT6129C,D*/ { if(arfcn<=588) /* ARFCN : 512~588 */
+/*MT6129C,D*/ { Nfrac = 44*(arfcn-512)+1444;
+/*MT6129C,D*/ *rfN = (14L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { Nfrac = 45*(arfcn-589)+3760; /* ARFCN : 589~606 */
+/*MT6129C,D*/ *rfN = (16L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 0;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 607~706 */
+/*MT6129C,D*/ { Nfrac = 44*(arfcn-607)+424;
+/*MT6129C,D*/ *rfN = (15L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else
+/*MT6129C,D*/ { if(arfcn<=724) /* ARFCN : 707~724 */
+/*MT6129C,D*/ { Nfrac = 45*(arfcn-707)+3870;
+/*MT6129C,D*/ *rfN = (17L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 0;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ else /* ARFCN : 725~810 */
+/*MT6129C,D*/ { Nfrac = 44*(arfcn-725)+416;
+/*MT6129C,D*/ *rfN = (16L<<17) | (Nfrac<<4) | 0x800001L;
+/*MT6129C,D*/ mt6119_d_flag = 1;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ break;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ default :
+/*MT6129C,D*/ {
+/*MT6129C,D*/ break;
+/*MT6129C,D*/ }
+/*MT6129C,D*/ }
+/*MT6129C,D*/ *ifN = 0;
+/*MT6129C,D*/}
+/*MT6129C,D*//* =========================================================================== */
+#endif
+
+#if (IS_RF_MT6139B)
+/*MT6139B*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6139B*/{
+/*MT6139B*/ switch(rf_band)
+/*MT6139B*/ {
+/*MT6139B*/ case FrequencyBand850 :
+/*MT6139B*/ {
+/*MT6139B*/ if(arfcn<=201)
+/*MT6139B*/ { if(arfcn<=136)
+/*MT6139B*/ { /* ARFCN : 128~136 */
+/*MT6139B*/ // Nfrac = (arfcn-128)<<1+112;
+/*MT6139B*/ // *rfN = (66L<<12) | (Nfrac<<4) | 0x00001L;
+/*MT6139B*/ *rfN = (66L<<12) | ((arfcn-72)<<5) | 0x000001L;
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 137~201 */
+/*MT6139B*/ *rfN = (67L<<12) | ((arfcn-137)<<5) | 0x000001L;
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 202~251 */
+/*MT6139B*/ *rfN = (68L<<12) | ((arfcn-202)<<5) | 0x000001L;
+/*MT6139B*/ }
+/*MT6139B*/
+/*MT6139B*/ break;
+/*MT6139B*/ }
+/*MT6139B*/ case FrequencyBand900 :
+/*MT6139B*/ {
+/*MT6139B*/ if(arfcn<=69)
+/*MT6139B*/ { if(arfcn<=4)
+/*MT6139B*/ { /* ARFCN : 0~4 */
+/*MT6139B*/ *rfN = (71L<<12) | ((arfcn+60)<<5) | 0x100001L;
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 5~69 */
+/*MT6139B*/ *rfN = (72L<<12) | ((arfcn-5)<<5) | 0x100001L;
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { if(arfcn<=124)
+/*MT6139B*/ { /* ARFCN : 70~124 */
+/*MT6139B*/ *rfN = (73L<<12) | ((arfcn-70)<<5) | 0x100001L;
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 975~1023 */
+/*MT6139B*/ *rfN = (71L<<12) | ((arfcn-964)<<5) | 0x100001L;
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/
+/*MT6139B*/ break;
+/*MT6139B*/ }
+/*MT6139B*/ case FrequencyBand1800 :
+/*MT6139B*/ {
+/*MT6139B*/ if(arfcn<=715)
+/*MT6139B*/ { if(arfcn<=585)
+/*MT6139B*/ { /* ARFCN : 512~585 */
+/*MT6139B*/ *rfN = (69L<<12) | ((arfcn-456)<<4) | 0x200001L;
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 586~715 */
+/*MT6139B*/ *rfN = (70L<<12) | ((arfcn-586)<<4) | 0x200001L;
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { if(arfcn<=845)
+/*MT6139B*/ { /* ARFCN : 716~845 */
+/*MT6139B*/ *rfN = (71L<<12) | ((arfcn-716)<<4) | 0x200001L;
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 846~885 */
+/*MT6139B*/ *rfN = (72L<<12) | ((arfcn-846)<<4) | 0x200001L;
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/
+/*MT6139B*/ break;
+/*MT6139B*/ }
+/*MT6139B*/ case FrequencyBand1900 :
+/*MT6139B*/ {
+/*MT6139B*/ if(arfcn<=740)
+/*MT6139B*/ { if(arfcn<=610)
+/*MT6139B*/ { /* ARFCN : 512~610 */
+/*MT6139B*/ *rfN = (74L<<12) | ((arfcn-481)<<4) | 0x300001L;
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 611~740 */
+/*MT6139B*/ *rfN = (75L<<12) | ((arfcn-611)<<4) | 0x300001L;
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ {
+/*MT6139B*/ /* ARFCN : 741~810 */
+/*MT6139B*/ *rfN = (76L<<12) | ((arfcn-741)<<4) | 0x300001L;
+/*MT6139B*/
+/*MT6139B*/ }
+/*MT6139B*/
+/*MT6139B*/ break;
+/*MT6139B*/ }
+/*MT6139B*/ default :
+/*MT6139B*/ {
+/*MT6139B*/ break;
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ *ifN = 0;
+/*MT6139B*/}
+/*MT6139B*//* =========================================================================== */
+/*MT6139B*/
+/*MT6139B*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6139B*/{
+/*MT6139B*/ switch(rf_band)
+/*MT6139B*/ {
+/*MT6139B*/ case FrequencyBand850 :
+/*MT6139B*/ {
+/*MT6139B*/ if(arfcn<=231)
+/*MT6139B*/ { if(arfcn<=166)
+/*MT6139B*/ { /* ARFCN : 128~166 */
+/*MT6139B*/ // Nfrac = (arfcn-128)<<1+52;
+/*MT6139B*/ // *rfN = (63L<<12) | (Nfrac<<4) | 0x80001L;
+/*MT6139B*/ *rfN = (63L<<12) | ((arfcn-102)<<5) | 0x080001L; /* 0x080001L; */
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 167~231 */
+/*MT6139B*/ *rfN = (64L<<12) | ((arfcn-167)<<5) | 0x080001L; /* 0x080001L; */
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 232~251 */
+/*MT6139B*/ *rfN = (65L<<12) | ((arfcn-232)<<5) | 0x080001L; /* 0x080001L; */
+/*MT6139B*/ }
+/*MT6139B*/
+/*MT6139B*/ break;
+/*MT6139B*/ }
+/*MT6139B*/ case FrequencyBand900 :
+/*MT6139B*/ {
+/*MT6139B*/ if(arfcn<=124)
+/*MT6139B*/ { if(arfcn<=99)
+/*MT6139B*/ { if(arfcn<=34)
+/*MT6139B*/ { /* ARFCN : 0~34 */
+/*MT6139B*/ *rfN = (68L<<12) | ((arfcn+30)<<5) | 0x180001L; /* 0x180001L; */
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 35~99 */
+/*MT6139B*/ *rfN = (69L<<12) | ((arfcn-35)<<5) | 0x180001L; /* 0x180001L; */
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 100~124 */
+/*MT6139B*/ *rfN = (70L<<12) | ((arfcn-100)<<5) | 0x180001L; /* 0x180001L; */
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { if(arfcn<=993)
+/*MT6139B*/ { /* ARFCN : 975~993 */
+/*MT6139B*/ *rfN = (67L<<12) | ((arfcn-929)<<5) | 0x180001L; /* 0x180001L; */
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 994~1023 */
+/*MT6139B*/ *rfN = (68L<<12) | ((arfcn-994)<<5) | 0x180001L; /* 0x080001L; */
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/
+/*MT6139B*/ break;
+/*MT6139B*/ }
+/*MT6139B*/ case FrequencyBand1800 :
+/*MT6139B*/ {
+/*MT6139B*/ if(arfcn<=670)
+/*MT6139B*/ { if(arfcn<=540)
+/*MT6139B*/ { /* ARFCN : 512~540 */
+/*MT6139B*/ *rfN = (65L<<12) | ((arfcn-411)<<4) | 0x200001L; /* 0x280001L; */
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 541~670 */
+/*MT6139B*/ *rfN = (66L<<12) | ((arfcn-541)<<4) | 0x200001L; /* 0x280001L; */
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { if(arfcn<=800)
+/*MT6139B*/ { /* ARFCN : 671~800 */
+/*MT6139B*/ *rfN = (67L<<12) | ((arfcn-671)<<4) | 0x200001L; /* 0x280001L; */
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 801~885 */
+/*MT6139B*/ *rfN = (68L<<12) | ((arfcn-801)<<4) | 0x200001L; /* 0x280001L; */
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/
+/*MT6139B*/ break;
+/*MT6139B*/ }
+/*MT6139B*/ case FrequencyBand1900 :
+/*MT6139B*/ {
+/*MT6139B*/ if(arfcn<=750)
+/*MT6139B*/ { if(arfcn<=620)
+/*MT6139B*/ { /* ARFCN : 512~620 */
+/*MT6139B*/ *rfN = (71L<<12) | ((arfcn-491)<<4) | 0x300001L; /* 0x380001L; */
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ { /* ARFCN : 621~750 */
+/*MT6139B*/ *rfN = (72L<<12) | ((arfcn-621)<<4) | 0x300001L; /* 0x380001L; */
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ else
+/*MT6139B*/ {
+/*MT6139B*/ /* ARFCN : 751~810 */
+/*MT6139B*/ *rfN = (73L<<12) | ((arfcn-751)<<4) | 0x300001L; /* 0x380001L; */
+/*MT6139B*/
+/*MT6139B*/ }
+/*MT6139B*/
+/*MT6139B*/ break;
+/*MT6139B*/ }
+/*MT6139B*/ default :
+/*MT6139B*/ {
+/*MT6139B*/ break;
+/*MT6139B*/ }
+/*MT6139B*/ }
+/*MT6139B*/ *ifN = 0;
+/*MT6139B*/}
+/*MT6139B*//* =========================================================================== */
+#endif
+
+#if IS_RF_MT6139C
+/*MT6139C*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6139C*/{
+/*MT6139C*/ switch(rf_band)
+/*MT6139C*/ {
+/*MT6139C*/ case FrequencyBand850 :
+/*MT6139C*/ {
+/*MT6139C*/ if(arfcn<=201)
+/*MT6139C*/ { if(arfcn<=136)
+/*MT6139C*/ { /* ARFCN : 128~136 */
+/*MT6139C*/ *rfN = (66L<<12) | ((arfcn-72)<<5) | 0x000001L;
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 137~201 */
+/*MT6139C*/ *rfN = (67L<<12) | ((arfcn-137)<<5) | 0x000001L;
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 202~251 */
+/*MT6139C*/ *rfN = (68L<<12) | ((arfcn-202)<<5) | 0x000001L;
+/*MT6139C*/ }
+/*MT6139C*/
+/*MT6139C*/ break;
+/*MT6139C*/ }
+/*MT6139C*/ case FrequencyBand900 :
+/*MT6139C*/ {
+/*MT6139C*/ if(arfcn<=69)
+/*MT6139C*/ { if(arfcn<=4)
+/*MT6139C*/ { /* ARFCN : 0~4 */
+/*MT6139C*/ *rfN = (71L<<12) | ((arfcn+60)<<5) | 0x100001L;
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 5~69 */
+/*MT6139C*/ *rfN = (72L<<12) | ((arfcn-5)<<5) | 0x100001L;
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { if(arfcn<=124)
+/*MT6139C*/ { /* ARFCN : 70~124 */
+/*MT6139C*/ *rfN = (73L<<12) | ((arfcn-70)<<5) | 0x100001L;
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 975~1023 */
+/*MT6139C*/ *rfN = (71L<<12) | ((arfcn-964)<<5) | 0x100001L;
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/
+/*MT6139C*/ break;
+/*MT6139C*/ }
+/*MT6139C*/ case FrequencyBand1800 :
+/*MT6139C*/ {
+/*MT6139C*/ if(arfcn<=715)
+/*MT6139C*/ { if(arfcn<=585)
+/*MT6139C*/ { /* ARFCN : 512~585 */
+/*MT6139C*/ *rfN = (69L<<12) | ((arfcn-456)<<4) | 0x200001L;
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 586~715 */
+/*MT6139C*/ *rfN = (70L<<12) | ((arfcn-586)<<4) | 0x200001L;
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { if(arfcn<=845)
+/*MT6139C*/ { /* ARFCN : 716~845 */
+/*MT6139C*/ *rfN = (71L<<12) | ((arfcn-716)<<4) | 0x200001L;
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 846~885 */
+/*MT6139C*/ *rfN = (72L<<12) | ((arfcn-846)<<4) | 0x200001L;
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/
+/*MT6139C*/ break;
+/*MT6139C*/ }
+/*MT6139C*/ case FrequencyBand1900 :
+/*MT6139C*/ {
+/*MT6139C*/ if(arfcn<=740)
+/*MT6139C*/ { if(arfcn<=610)
+/*MT6139C*/ { /* ARFCN : 512~610 */
+/*MT6139C*/ *rfN = (74L<<12) | ((arfcn-481)<<4) | 0x300001L;
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 611~740 */
+/*MT6139C*/ *rfN = (75L<<12) | ((arfcn-611)<<4) | 0x300001L;
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ {
+/*MT6139C*/ /* ARFCN : 741~810 */
+/*MT6139C*/ *rfN = (76L<<12) | ((arfcn-741)<<4) | 0x300001L;
+/*MT6139C*/
+/*MT6139C*/ }
+/*MT6139C*/
+/*MT6139C*/ break;
+/*MT6139C*/ }
+/*MT6139C*/ default :
+/*MT6139C*/ {
+/*MT6139C*/ break;
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ *ifN = 0;
+/*MT6139C*/}
+/*MT6139C*//* =========================================================================== */
+/*MT6139C*/
+/*MT6139C*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6139C*/{
+/*MT6139C*/ switch(rf_band)
+/*MT6139C*/ {
+/*MT6139C*/ case FrequencyBand850 :
+/*MT6139C*/ {
+/*MT6139C*/ if(arfcn<=231)
+/*MT6139C*/ { if(arfcn<=166)
+/*MT6139C*/ { /* ARFCN : 128~166 */
+/*MT6139C*/ *rfN = (63L<<12) | ((arfcn-102)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 167~231 */
+/*MT6139C*/ *rfN = (64L<<12) | ((arfcn-167)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 232~251 */
+/*MT6139C*/ *rfN = (65L<<12) | ((arfcn-232)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6139C*/ }
+/*MT6139C*/
+/*MT6139C*/ break;
+/*MT6139C*/ }
+/*MT6139C*/ case FrequencyBand900 :
+/*MT6139C*/ {
+/*MT6139C*/ if(arfcn<=124)
+/*MT6139C*/ { if(arfcn<=99)
+/*MT6139C*/ { if(arfcn<=34)
+/*MT6139C*/ { /* ARFCN : 0~34 */
+/*MT6139C*/ *rfN = (68L<<12) | ((arfcn+30)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 35~99 */
+/*MT6139C*/ *rfN = (69L<<12) | ((arfcn-35)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 100~124 */
+/*MT6139C*/ *rfN = (70L<<12) | ((arfcn-100)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { if(arfcn<=993)
+/*MT6139C*/ { /* ARFCN : 975~993 */
+/*MT6139C*/ *rfN = (67L<<12) | ((arfcn-929)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 994~1023 */
+/*MT6139C*/ *rfN = (68L<<12) | ((arfcn-994)<<5) | 0x580001L; /* 0x080001L; */
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/
+/*MT6139C*/ break;
+/*MT6139C*/ }
+/*MT6139C*/ case FrequencyBand1800 :
+/*MT6139C*/ {
+/*MT6139C*/ if(arfcn<=670)
+/*MT6139C*/ { if(arfcn<=540)
+/*MT6139C*/ { /* ARFCN : 512~540 */
+/*MT6139C*/ *rfN = (65L<<12) | ((arfcn-411)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 541~670 */
+/*MT6139C*/ *rfN = (66L<<12) | ((arfcn-541)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { if(arfcn<=800)
+/*MT6139C*/ { /* ARFCN : 671~800 */
+/*MT6139C*/ *rfN = (67L<<12) | ((arfcn-671)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 801~885 */
+/*MT6139C*/ *rfN = (68L<<12) | ((arfcn-801)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/
+/*MT6139C*/ break;
+/*MT6139C*/ }
+/*MT6139C*/ case FrequencyBand1900 :
+/*MT6139C*/ {
+/*MT6139C*/ if(arfcn<=750)
+/*MT6139C*/ { if(arfcn<=620)
+/*MT6139C*/ { /* ARFCN : 512~620 */
+/*MT6139C*/ *rfN = (71L<<12) | ((arfcn-491)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ { /* ARFCN : 621~750 */
+/*MT6139C*/ *rfN = (72L<<12) | ((arfcn-621)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ else
+/*MT6139C*/ {
+/*MT6139C*/ /* ARFCN : 751~810 */
+/*MT6139C*/ *rfN = (73L<<12) | ((arfcn-751)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6139C*/
+/*MT6139C*/ }
+/*MT6139C*/
+/*MT6139C*/ break;
+/*MT6139C*/ }
+/*MT6139C*/ default :
+/*MT6139C*/ {
+/*MT6139C*/ break;
+/*MT6139C*/ }
+/*MT6139C*/ }
+/*MT6139C*/ *ifN = 0;
+/*MT6139C*/}
+/*MT6139C*//* =========================================================================== */
+#endif
+
+#if IS_RF_MT6139E
+/*MT6139E*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6139E*/{
+/*MT6139E*/ switch(rf_band)
+/*MT6139E*/ {
+/*MT6139E*/ case FrequencyBand850 :
+/*MT6139E*/ {
+/*MT6139E*/ if(arfcn<=201)
+/*MT6139E*/ { if(arfcn<=136)
+/*MT6139E*/ { /* ARFCN : 128~136 */
+/*MT6139E*/ *rfN = (66L<<12) | ((arfcn-72)<<5) | 0x400001L;
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 137~201 */
+/*MT6139E*/ *rfN = (67L<<12) | ((arfcn-137)<<5) | 0x400001L;
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 202~251 */
+/*MT6139E*/ *rfN = (68L<<12) | ((arfcn-202)<<5) | 0x400001L;
+/*MT6139E*/ }
+/*MT6139E*/
+/*MT6139E*/ // Get GSM850 signal from GSM900 input pins if flag=1
+/*MT6139E*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *rfN |= 0x100000L;
+/*MT6139E*/ break;
+/*MT6139E*/ }
+/*MT6139E*/ case FrequencyBand900 :
+/*MT6139E*/ {
+/*MT6139E*/ if(arfcn<=69)
+/*MT6139E*/ { if(arfcn<=4)
+/*MT6139E*/ { /* ARFCN : 0~4 */
+/*MT6139E*/ *rfN = (71L<<12) | ((arfcn+60)<<5) | 0x100001L;
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 5~69 */
+/*MT6139E*/ *rfN = (72L<<12) | ((arfcn-5)<<5) | 0x100001L;
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { if(arfcn<=124)
+/*MT6139E*/ { /* ARFCN : 70~124 */
+/*MT6139E*/ *rfN = (73L<<12) | ((arfcn-70)<<5) | 0x100001L;
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 975~1023 */
+/*MT6139E*/ *rfN = (71L<<12) | ((arfcn-964)<<5) | 0x100001L;
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/
+/*MT6139E*/ // Get GSM900 signal from GSM850 input pins if flag=1
+/*MT6139E*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *rfN &= (~(0x100000L));
+/*MT6139E*/
+/*MT6139E*/ break;
+/*MT6139E*/ }
+/*MT6139E*/ case FrequencyBand1800 :
+/*MT6139E*/ {
+/*MT6139E*/ if(arfcn<=715)
+/*MT6139E*/ { if(arfcn<=585)
+/*MT6139E*/ { /* ARFCN : 512~585 */
+/*MT6139E*/ *rfN = (69L<<12) | ((arfcn-456)<<4) | 0x200001L;
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 586~715 */
+/*MT6139E*/ *rfN = (70L<<12) | ((arfcn-586)<<4) | 0x200001L;
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { if(arfcn<=845)
+/*MT6139E*/ { /* ARFCN : 716~845 */
+/*MT6139E*/ *rfN = (71L<<12) | ((arfcn-716)<<4) | 0x200001L;
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 846~885 */
+/*MT6139E*/ *rfN = (72L<<12) | ((arfcn-846)<<4) | 0x200001L;
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/
+/*MT6139E*/ // Get PCS1900 signal from DCS1800 input pins if flag=1
+/*MT6139E*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap ) *rfN |= 0x100000L;
+/*MT6139E*/ break;
+/*MT6139E*/ }
+/*MT6139E*/ case FrequencyBand1900 :
+/*MT6139E*/ {
+/*MT6139E*/ if(arfcn<=740)
+/*MT6139E*/ { if(arfcn<=610)
+/*MT6139E*/ { /* ARFCN : 512~610 */
+/*MT6139E*/ *rfN = (74L<<12) | ((arfcn-481)<<4) | 0x300001L;
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 611~740 */
+/*MT6139E*/ *rfN = (75L<<12) | ((arfcn-611)<<4) | 0x300001L;
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ {
+/*MT6139E*/ /* ARFCN : 741~810 */
+/*MT6139E*/ *rfN = (76L<<12) | ((arfcn-741)<<4) | 0x300001L;
+/*MT6139E*/
+/*MT6139E*/ }
+/*MT6139E*/
+/*MT6139E*/ // Get DCS1800 signal from PCS1900 input pins if flag=1
+/*MT6139E*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap) *rfN &= (~(0x100000L));
+/*MT6139E*/ break;
+/*MT6139E*/ }
+/*MT6139E*/ default :
+/*MT6139E*/ {
+/*MT6139E*/ break;
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ *ifN = 0;
+/*MT6139E*/}
+/*MT6139E*//* =========================================================================== */
+/*MT6139E*/
+/*MT6139E*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6139E*/{
+/*MT6139E*/ switch(rf_band)
+/*MT6139E*/ {
+/*MT6139E*/ case FrequencyBand850 :
+/*MT6139E*/ {
+/*MT6139E*/ if(arfcn<=231)
+/*MT6139E*/ { if(arfcn<=166)
+/*MT6139E*/ { /* ARFCN : 128~166 */
+/*MT6139E*/ *rfN = (63L<<12) | ((arfcn-102)<<5) | 0x080001L; /* 0x080001L; */
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 167~231 */
+/*MT6139E*/ *rfN = (64L<<12) | ((arfcn-167)<<5) | 0x080001L; /* 0x080001L; */
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 232~251 */
+/*MT6139E*/ *rfN = (65L<<12) | ((arfcn-232)<<5) | 0x080001L; /* 0x080001L; */
+/*MT6139E*/ }
+/*MT6139E*/
+/*MT6139E*/ break;
+/*MT6139E*/ }
+/*MT6139E*/ case FrequencyBand900 :
+/*MT6139E*/ {
+/*MT6139E*/ if(arfcn<=124)
+/*MT6139E*/ { if(arfcn<=99)
+/*MT6139E*/ { if(arfcn<=34)
+/*MT6139E*/ { /* ARFCN : 0~34 */
+/*MT6139E*/ *rfN = (68L<<12) | ((arfcn+30)<<5) | 0x180001L; /* 0x180001L; */
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 35~99 */
+/*MT6139E*/ *rfN = (69L<<12) | ((arfcn-35)<<5) | 0x180001L; /* 0x180001L; */
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 100~124 */
+/*MT6139E*/ *rfN = (70L<<12) | ((arfcn-100)<<5) | 0x180001L; /* 0x180001L; */
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { if(arfcn<=993)
+/*MT6139E*/ { /* ARFCN : 975~993 */
+/*MT6139E*/ *rfN = (67L<<12) | ((arfcn-929)<<5) | 0x180001L; /* 0x180001L; */
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 994~1023 */
+/*MT6139E*/ *rfN = (68L<<12) | ((arfcn-994)<<5) | 0x180001L; /* 0x080001L; */
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/
+/*MT6139E*/ break;
+/*MT6139E*/ }
+/*MT6139E*/ case FrequencyBand1800 :
+/*MT6139E*/ {
+/*MT6139E*/ if(arfcn<=670)
+/*MT6139E*/ { if(arfcn<=540)
+/*MT6139E*/ { /* ARFCN : 512~540 */
+/*MT6139E*/ *rfN = (65L<<12) | ((arfcn-411)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 541~670 */
+/*MT6139E*/ *rfN = (66L<<12) | ((arfcn-541)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { if(arfcn<=800)
+/*MT6139E*/ { /* ARFCN : 671~800 */
+/*MT6139E*/ *rfN = (67L<<12) | ((arfcn-671)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 801~885 */
+/*MT6139E*/ *rfN = (68L<<12) | ((arfcn-801)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/
+/*MT6139E*/ break;
+/*MT6139E*/ }
+/*MT6139E*/ case FrequencyBand1900 :
+/*MT6139E*/ {
+/*MT6139E*/ if(arfcn<=750)
+/*MT6139E*/ { if(arfcn<=620)
+/*MT6139E*/ { /* ARFCN : 512~620 */
+/*MT6139E*/ *rfN = (71L<<12) | ((arfcn-491)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ { /* ARFCN : 621~750 */
+/*MT6139E*/ *rfN = (72L<<12) | ((arfcn-621)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ else
+/*MT6139E*/ {
+/*MT6139E*/ /* ARFCN : 751~810 */
+/*MT6139E*/ *rfN = (73L<<12) | ((arfcn-751)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6139E*/
+/*MT6139E*/ }
+/*MT6139E*/
+/*MT6139E*/ break;
+/*MT6139E*/ }
+/*MT6139E*/ default :
+/*MT6139E*/ {
+/*MT6139E*/ break;
+/*MT6139E*/ }
+/*MT6139E*/ }
+/*MT6139E*/ *ifN = 0;
+/*MT6139E*/}
+/*MT6139E*//* =========================================================================== */
+#endif
+
+#if IS_RF_MT6140A
+/*MT6140A*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6140A*/{
+/*MT6140A*/ switch(rf_band)
+/*MT6140A*/ {
+/*MT6140A*/ case FrequencyBand850 :
+/*MT6140A*/ {
+/*MT6140A*/ if(arfcn<=201)
+/*MT6140A*/ { if(arfcn<=136)
+/*MT6140A*/ { /* ARFCN : 128~136 */
+/*MT6140A*/ *rfN = (66L<<12) | ((arfcn-72)<<5) | 0x000001L;
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 137~201 */
+/*MT6140A*/ *rfN = (67L<<12) | ((arfcn-137)<<5) | 0x000001L;
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 202~251 */
+/*MT6140A*/ *rfN = (68L<<12) | ((arfcn-202)<<5) | 0x000001L;
+/*MT6140A*/ }
+/*MT6140A*/
+/*MT6140A*/ break;
+/*MT6140A*/ }
+/*MT6140A*/ case FrequencyBand900 :
+/*MT6140A*/ {
+/*MT6140A*/ if(arfcn<=69)
+/*MT6140A*/ { if(arfcn<=4)
+/*MT6140A*/ { /* ARFCN : 0~4 */
+/*MT6140A*/ *rfN = (71L<<12) | ((arfcn+60)<<5) | 0x100001L;
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 5~69 */
+/*MT6140A*/ *rfN = (72L<<12) | ((arfcn-5)<<5) | 0x100001L;
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { if(arfcn<=124)
+/*MT6140A*/ { /* ARFCN : 70~124 */
+/*MT6140A*/ *rfN = (73L<<12) | ((arfcn-70)<<5) | 0x100001L;
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 975~1023 */
+/*MT6140A*/ *rfN = (71L<<12) | ((arfcn-964)<<5) | 0x100001L;
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/
+/*MT6140A*/ break;
+/*MT6140A*/ }
+/*MT6140A*/ case FrequencyBand1800 :
+/*MT6140A*/ {
+/*MT6140A*/ if(arfcn<=715)
+/*MT6140A*/ { if(arfcn<=585)
+/*MT6140A*/ { /* ARFCN : 512~585 */
+/*MT6140A*/ *rfN = (69L<<12) | ((arfcn-456)<<4) | 0x200001L;
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 586~715 */
+/*MT6140A*/ *rfN = (70L<<12) | ((arfcn-586)<<4) | 0x200001L;
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { if(arfcn<=845)
+/*MT6140A*/ { /* ARFCN : 716~845 */
+/*MT6140A*/ *rfN = (71L<<12) | ((arfcn-716)<<4) | 0x200001L;
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 846~885 */
+/*MT6140A*/ *rfN = (72L<<12) | ((arfcn-846)<<4) | 0x200001L;
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/
+/*MT6140A*/ break;
+/*MT6140A*/ }
+/*MT6140A*/ case FrequencyBand1900 :
+/*MT6140A*/ {
+/*MT6140A*/ if(arfcn<=740)
+/*MT6140A*/ { if(arfcn<=610)
+/*MT6140A*/ { /* ARFCN : 512~610 */
+/*MT6140A*/ *rfN = (74L<<12) | ((arfcn-481)<<4) | 0x300001L;
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 611~740 */
+/*MT6140A*/ *rfN = (75L<<12) | ((arfcn-611)<<4) | 0x300001L;
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ {
+/*MT6140A*/ /* ARFCN : 741~810 */
+/*MT6140A*/ *rfN = (76L<<12) | ((arfcn-741)<<4) | 0x300001L;
+/*MT6140A*/
+/*MT6140A*/ }
+/*MT6140A*/
+/*MT6140A*/ break;
+/*MT6140A*/ }
+/*MT6140A*/ default :
+/*MT6140A*/ {
+/*MT6140A*/ break;
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ *ifN = 0;
+/*MT6140A*/}
+/*MT6140A*//* =========================================================================== */
+/*MT6140A*/
+/*MT6140A*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6140A*/{
+/*MT6140A*/ switch(rf_band)
+/*MT6140A*/ {
+/*MT6140A*/ case FrequencyBand850 :
+/*MT6140A*/ {
+/*MT6140A*/ if(arfcn<=231)
+/*MT6140A*/ { if(arfcn<=166)
+/*MT6140A*/ { /* ARFCN : 128~166 */
+/*MT6140A*/ *rfN = (63L<<12) | ((arfcn-102)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 167~231 */
+/*MT6140A*/ *rfN = (64L<<12) | ((arfcn-167)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 232~251 */
+/*MT6140A*/ *rfN = (65L<<12) | ((arfcn-232)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140A*/ }
+/*MT6140A*/
+/*MT6140A*/ break;
+/*MT6140A*/ }
+/*MT6140A*/ case FrequencyBand900 :
+/*MT6140A*/ {
+/*MT6140A*/ if(arfcn<=124)
+/*MT6140A*/ { if(arfcn<=99)
+/*MT6140A*/ { if(arfcn<=34)
+/*MT6140A*/ { /* ARFCN : 0~34 */
+/*MT6140A*/ *rfN = (68L<<12) | ((arfcn+30)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 35~99 */
+/*MT6140A*/ *rfN = (69L<<12) | ((arfcn-35)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 100~124 */
+/*MT6140A*/ *rfN = (70L<<12) | ((arfcn-100)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { if(arfcn<=993)
+/*MT6140A*/ { /* ARFCN : 975~993 */
+/*MT6140A*/ *rfN = (67L<<12) | ((arfcn-929)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 994~1023 */
+/*MT6140A*/ *rfN = (68L<<12) | ((arfcn-994)<<5) | 0x580001L; /* 0x080001L; */
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/
+/*MT6140A*/ break;
+/*MT6140A*/ }
+/*MT6140A*/ case FrequencyBand1800 :
+/*MT6140A*/ {
+/*MT6140A*/ if(arfcn<=670)
+/*MT6140A*/ { if(arfcn<=540)
+/*MT6140A*/ { /* ARFCN : 512~540 */
+/*MT6140A*/ *rfN = (65L<<12) | ((arfcn-411)<<4) | 0x600001L; /* 0x280001L; */
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 541~670 */
+/*MT6140A*/ *rfN = (66L<<12) | ((arfcn-541)<<4) | 0x600001L; /* 0x280001L; */
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { if(arfcn<=800)
+/*MT6140A*/ { /* ARFCN : 671~800 */
+/*MT6140A*/ *rfN = (67L<<12) | ((arfcn-671)<<4) | 0x600001L; /* 0x280001L; */
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 801~885 */
+/*MT6140A*/ *rfN = (68L<<12) | ((arfcn-801)<<4) | 0x600001L; /* 0x280001L; */
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/
+/*MT6140A*/ break;
+/*MT6140A*/ }
+/*MT6140A*/ case FrequencyBand1900 :
+/*MT6140A*/ {
+/*MT6140A*/ if(arfcn<=750)
+/*MT6140A*/ { if(arfcn<=620)
+/*MT6140A*/ { /* ARFCN : 512~620 */
+/*MT6140A*/ *rfN = (71L<<12) | ((arfcn-491)<<4) | 0x700001L; /* 0x380001L; */
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ { /* ARFCN : 621~750 */
+/*MT6140A*/ *rfN = (72L<<12) | ((arfcn-621)<<4) | 0x700001L; /* 0x380001L; */
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ else
+/*MT6140A*/ {
+/*MT6140A*/ /* ARFCN : 751~810 */
+/*MT6140A*/ *rfN = (73L<<12) | ((arfcn-751)<<4) | 0x700001L; /* 0x380001L; */
+/*MT6140A*/
+/*MT6140A*/ }
+/*MT6140A*/
+/*MT6140A*/ break;
+/*MT6140A*/ }
+/*MT6140A*/ default :
+/*MT6140A*/ {
+/*MT6140A*/ break;
+/*MT6140A*/ }
+/*MT6140A*/ }
+/*MT6140A*/ *ifN = 0;
+/*MT6140A*/}
+/*MT6140A*//* =========================================================================== */
+#endif
+
+#if IS_RF_MT6140B
+/*MT6140B*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6140B*/{
+/*MT6140B*/ switch(rf_band)
+/*MT6140B*/ {
+/*MT6140B*/ case FrequencyBand850 :
+/*MT6140B*/ {
+/*MT6140B*/ if(arfcn<=201)
+/*MT6140B*/ { if(arfcn<=136)
+/*MT6140B*/ { /* ARFCN : 128~136 */
+/*MT6140B*/ *rfN = (66L<<12) | ((arfcn-72)<<5) | 0x000001L;
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 137~201 */
+/*MT6140B*/ *rfN = (67L<<12) | ((arfcn-137)<<5) | 0x000001L;
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 202~251 */
+/*MT6140B*/ *rfN = (68L<<12) | ((arfcn-202)<<5) | 0x000001L;
+/*MT6140B*/ }
+/*MT6140B*/
+/*MT6140B*/ break;
+/*MT6140B*/ }
+/*MT6140B*/ case FrequencyBand900 :
+/*MT6140B*/ {
+/*MT6140B*/ if(arfcn<=69)
+/*MT6140B*/ { if(arfcn<=4)
+/*MT6140B*/ { /* ARFCN : 0~4 */
+/*MT6140B*/ *rfN = (71L<<12) | ((arfcn+60)<<5) | 0x100001L;
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 5~69 */
+/*MT6140B*/ *rfN = (72L<<12) | ((arfcn-5)<<5) | 0x100001L;
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { if(arfcn<=124)
+/*MT6140B*/ { /* ARFCN : 70~124 */
+/*MT6140B*/ *rfN = (73L<<12) | ((arfcn-70)<<5) | 0x100001L;
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 975~1023 */
+/*MT6140B*/ *rfN = (71L<<12) | ((arfcn-964)<<5) | 0x100001L;
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/
+/*MT6140B*/ break;
+/*MT6140B*/ }
+/*MT6140B*/ case FrequencyBand1800 :
+/*MT6140B*/ {
+/*MT6140B*/ if(arfcn<=715)
+/*MT6140B*/ { if(arfcn<=585)
+/*MT6140B*/ { /* ARFCN : 512~585 */
+/*MT6140B*/ *rfN = (69L<<12) | ((arfcn-456)<<4) | 0x200001L;
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 586~715 */
+/*MT6140B*/ *rfN = (70L<<12) | ((arfcn-586)<<4) | 0x200001L;
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { if(arfcn<=845)
+/*MT6140B*/ { /* ARFCN : 716~845 */
+/*MT6140B*/ *rfN = (71L<<12) | ((arfcn-716)<<4) | 0x200001L;
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 846~885 */
+/*MT6140B*/ *rfN = (72L<<12) | ((arfcn-846)<<4) | 0x200001L;
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/
+/*MT6140B*/ break;
+/*MT6140B*/ }
+/*MT6140B*/ case FrequencyBand1900 :
+/*MT6140B*/ {
+/*MT6140B*/ if(arfcn<=740)
+/*MT6140B*/ { if(arfcn<=610)
+/*MT6140B*/ { /* ARFCN : 512~610 */
+/*MT6140B*/ *rfN = (74L<<12) | ((arfcn-481)<<4) | 0x300001L;
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 611~740 */
+/*MT6140B*/ *rfN = (75L<<12) | ((arfcn-611)<<4) | 0x300001L;
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ {
+/*MT6140B*/ /* ARFCN : 741~810 */
+/*MT6140B*/ *rfN = (76L<<12) | ((arfcn-741)<<4) | 0x300001L;
+/*MT6140B*/
+/*MT6140B*/ }
+/*MT6140B*/
+/*MT6140B*/ break;
+/*MT6140B*/ }
+/*MT6140B*/ default :
+/*MT6140B*/ {
+/*MT6140B*/ break;
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ *ifN = 0;
+/*MT6140B*/}
+/*MT6140B*//* =========================================================================== */
+/*MT6140B*/
+/*MT6140B*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6140B*/{
+/*MT6140B*/ switch(rf_band)
+/*MT6140B*/ {
+/*MT6140B*/ case FrequencyBand850 :
+/*MT6140B*/ {
+/*MT6140B*/ if(arfcn<=231)
+/*MT6140B*/ { if(arfcn<=166)
+/*MT6140B*/ { /* ARFCN : 128~166 */
+/*MT6140B*/ *rfN = (63L<<12) | ((arfcn-102)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 167~231 */
+/*MT6140B*/ *rfN = (64L<<12) | ((arfcn-167)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 232~251 */
+/*MT6140B*/ *rfN = (65L<<12) | ((arfcn-232)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140B*/ }
+/*MT6140B*/
+/*MT6140B*/ break;
+/*MT6140B*/ }
+/*MT6140B*/ case FrequencyBand900 :
+/*MT6140B*/ {
+/*MT6140B*/ if(arfcn<=124)
+/*MT6140B*/ { if(arfcn<=99)
+/*MT6140B*/ { if(arfcn<=34)
+/*MT6140B*/ { /* ARFCN : 0~34 */
+/*MT6140B*/ *rfN = (68L<<12) | ((arfcn+30)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 35~99 */
+/*MT6140B*/ *rfN = (69L<<12) | ((arfcn-35)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 100~124 */
+/*MT6140B*/ *rfN = (70L<<12) | ((arfcn-100)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { if(arfcn<=993)
+/*MT6140B*/ { /* ARFCN : 975~993 */
+/*MT6140B*/ *rfN = (67L<<12) | ((arfcn-929)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 994~1023 */
+/*MT6140B*/ *rfN = (68L<<12) | ((arfcn-994)<<5) | 0x580001L; /* 0x080001L; */
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/
+/*MT6140B*/ break;
+/*MT6140B*/ }
+/*MT6140B*/ case FrequencyBand1800 :
+/*MT6140B*/ {
+/*MT6140B*/ if(arfcn<=670)
+/*MT6140B*/ { if(arfcn<=540)
+/*MT6140B*/ { /* ARFCN : 512~540 */
+/*MT6140B*/ *rfN = (65L<<12) | ((arfcn-411)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 541~670 */
+/*MT6140B*/ *rfN = (66L<<12) | ((arfcn-541)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { if(arfcn<=800)
+/*MT6140B*/ { /* ARFCN : 671~800 */
+/*MT6140B*/ *rfN = (67L<<12) | ((arfcn-671)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 801~885 */
+/*MT6140B*/ *rfN = (68L<<12) | ((arfcn-801)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/
+/*MT6140B*/ break;
+/*MT6140B*/ }
+/*MT6140B*/ case FrequencyBand1900 :
+/*MT6140B*/ {
+/*MT6140B*/ if(arfcn<=750)
+/*MT6140B*/ { if(arfcn<=620)
+/*MT6140B*/ { /* ARFCN : 512~620 */
+/*MT6140B*/ *rfN = (71L<<12) | ((arfcn-491)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ { /* ARFCN : 621~750 */
+/*MT6140B*/ *rfN = (72L<<12) | ((arfcn-621)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ else
+/*MT6140B*/ {
+/*MT6140B*/ /* ARFCN : 751~810 */
+/*MT6140B*/ *rfN = (73L<<12) | ((arfcn-751)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6140B*/
+/*MT6140B*/ }
+/*MT6140B*/
+/*MT6140B*/ break;
+/*MT6140B*/ }
+/*MT6140B*/ default :
+/*MT6140B*/ {
+/*MT6140B*/ break;
+/*MT6140B*/ }
+/*MT6140B*/ }
+/*MT6140B*/ *ifN = 0;
+/*MT6140B*/}
+/*MT6140B*//* =========================================================================== */
+#endif
+
+#if IS_RF_MT6140C
+/*MT6140C*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6140C*/{
+/*MT6140C*/ switch(rf_band)
+/*MT6140C*/ {
+/*MT6140C*/ case FrequencyBand850 :
+/*MT6140C*/ {
+/*MT6140C*/ if(arfcn<=201)
+/*MT6140C*/ { if(arfcn<=136)
+/*MT6140C*/ { /* ARFCN : 128~136 */
+/*MT6140C*/ *rfN = (66L<<12) | ((arfcn-72)<<5) | 0x000001L;
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 137~201 */
+/*MT6140C*/ *rfN = (67L<<12) | ((arfcn-137)<<5) | 0x000001L;
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 202~251 */
+/*MT6140C*/ *rfN = (68L<<12) | ((arfcn-202)<<5) | 0x000001L;
+/*MT6140C*/ }
+/*MT6140C*/
+/*MT6140C*/ break;
+/*MT6140C*/ }
+/*MT6140C*/ case FrequencyBand900 :
+/*MT6140C*/ {
+/*MT6140C*/ if(arfcn<=69)
+/*MT6140C*/ { if(arfcn<=4)
+/*MT6140C*/ { /* ARFCN : 0~4 */
+/*MT6140C*/ *rfN = (71L<<12) | ((arfcn+60)<<5) | 0x100001L;
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 5~69 */
+/*MT6140C*/ *rfN = (72L<<12) | ((arfcn-5)<<5) | 0x100001L;
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { if(arfcn<=124)
+/*MT6140C*/ { /* ARFCN : 70~124 */
+/*MT6140C*/ *rfN = (73L<<12) | ((arfcn-70)<<5) | 0x100001L;
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 975~1023 */
+/*MT6140C*/ *rfN = (71L<<12) | ((arfcn-964)<<5) | 0x100001L;
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/
+/*MT6140C*/ break;
+/*MT6140C*/ }
+/*MT6140C*/ case FrequencyBand1800 :
+/*MT6140C*/ {
+/*MT6140C*/ if(arfcn<=715)
+/*MT6140C*/ { if(arfcn<=585)
+/*MT6140C*/ { /* ARFCN : 512~585 */
+/*MT6140C*/ *rfN = (69L<<12) | ((arfcn-456)<<4) | 0x200001L;
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 586~715 */
+/*MT6140C*/ *rfN = (70L<<12) | ((arfcn-586)<<4) | 0x200001L;
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { if(arfcn<=845)
+/*MT6140C*/ { /* ARFCN : 716~845 */
+/*MT6140C*/ *rfN = (71L<<12) | ((arfcn-716)<<4) | 0x200001L;
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 846~885 */
+/*MT6140C*/ *rfN = (72L<<12) | ((arfcn-846)<<4) | 0x200001L;
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/
+/*MT6140C*/ break;
+/*MT6140C*/ }
+/*MT6140C*/ case FrequencyBand1900 :
+/*MT6140C*/ {
+/*MT6140C*/ if(arfcn<=740)
+/*MT6140C*/ { if(arfcn<=610)
+/*MT6140C*/ { /* ARFCN : 512~610 */
+/*MT6140C*/ *rfN = (74L<<12) | ((arfcn-481)<<4) | 0x300001L;
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 611~740 */
+/*MT6140C*/ *rfN = (75L<<12) | ((arfcn-611)<<4) | 0x300001L;
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ {
+/*MT6140C*/ /* ARFCN : 741~810 */
+/*MT6140C*/ *rfN = (76L<<12) | ((arfcn-741)<<4) | 0x300001L;
+/*MT6140C*/
+/*MT6140C*/ }
+/*MT6140C*/
+/*MT6140C*/ break;
+/*MT6140C*/ }
+/*MT6140C*/ default :
+/*MT6140C*/ {
+/*MT6140C*/ break;
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ *ifN = 0;
+/*MT6140C*/}
+/*MT6140C*//* =========================================================================== */
+/*MT6140C*/
+/*MT6140C*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6140C*/{
+/*MT6140C*/ switch(rf_band)
+/*MT6140C*/ {
+/*MT6140C*/ case FrequencyBand850 :
+/*MT6140C*/ {
+/*MT6140C*/ if(arfcn<=231)
+/*MT6140C*/ { if(arfcn<=166)
+/*MT6140C*/ { /* ARFCN : 128~166 */
+/*MT6140C*/ *rfN = (63L<<12) | ((arfcn-102)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 167~231 */
+/*MT6140C*/ *rfN = (64L<<12) | ((arfcn-167)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 232~251 */
+/*MT6140C*/ *rfN = (65L<<12) | ((arfcn-232)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140C*/ }
+/*MT6140C*/
+/*MT6140C*/ break;
+/*MT6140C*/ }
+/*MT6140C*/ case FrequencyBand900 :
+/*MT6140C*/ {
+/*MT6140C*/ if(arfcn<=124)
+/*MT6140C*/ { if(arfcn<=99)
+/*MT6140C*/ { if(arfcn<=34)
+/*MT6140C*/ { /* ARFCN : 0~34 */
+/*MT6140C*/ *rfN = (68L<<12) | ((arfcn+30)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 35~99 */
+/*MT6140C*/ *rfN = (69L<<12) | ((arfcn-35)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 100~124 */
+/*MT6140C*/ *rfN = (70L<<12) | ((arfcn-100)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { if(arfcn<=993)
+/*MT6140C*/ { /* ARFCN : 975~993 */
+/*MT6140C*/ *rfN = (67L<<12) | ((arfcn-929)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 994~1023 */
+/*MT6140C*/ *rfN = (68L<<12) | ((arfcn-994)<<5) | 0x580001L; /* 0x080001L; */
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/
+/*MT6140C*/ break;
+/*MT6140C*/ }
+/*MT6140C*/ case FrequencyBand1800 :
+/*MT6140C*/ {
+/*MT6140C*/ if(arfcn<=670)
+/*MT6140C*/ { if(arfcn<=540)
+/*MT6140C*/ { /* ARFCN : 512~540 */
+/*MT6140C*/ *rfN = (65L<<12) | ((arfcn-411)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 541~670 */
+/*MT6140C*/ *rfN = (66L<<12) | ((arfcn-541)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { if(arfcn<=800)
+/*MT6140C*/ { /* ARFCN : 671~800 */
+/*MT6140C*/ *rfN = (67L<<12) | ((arfcn-671)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 801~885 */
+/*MT6140C*/ *rfN = (68L<<12) | ((arfcn-801)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/
+/*MT6140C*/ break;
+/*MT6140C*/ }
+/*MT6140C*/ case FrequencyBand1900 :
+/*MT6140C*/ {
+/*MT6140C*/ if(arfcn<=750)
+/*MT6140C*/ { if(arfcn<=620)
+/*MT6140C*/ { /* ARFCN : 512~620 */
+/*MT6140C*/ *rfN = (71L<<12) | ((arfcn-491)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ { /* ARFCN : 621~750 */
+/*MT6140C*/ *rfN = (72L<<12) | ((arfcn-621)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ else
+/*MT6140C*/ {
+/*MT6140C*/ /* ARFCN : 751~810 */
+/*MT6140C*/ *rfN = (73L<<12) | ((arfcn-751)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6140C*/
+/*MT6140C*/ }
+/*MT6140C*/
+/*MT6140C*/ break;
+/*MT6140C*/ }
+/*MT6140C*/ default :
+/*MT6140C*/ {
+/*MT6140C*/ break;
+/*MT6140C*/ }
+/*MT6140C*/ }
+/*MT6140C*/ *ifN = 0;
+/*MT6140C*/}
+/*MT6140C*//* =========================================================================== */
+#endif
+
+#if IS_RF_MT6140D
+/*MT6140D*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6140D*/{
+/*MT6140D*/ switch(rf_band)
+/*MT6140D*/ {
+/*MT6140D*/ case FrequencyBand850 :
+/*MT6140D*/ {
+/*MT6140D*/ if(arfcn<=201)
+/*MT6140D*/ { if(arfcn<=136)
+/*MT6140D*/ { /* ARFCN : 128~136 */
+/*MT6140D*/ *rfN = (66L<<12) | ((arfcn-72)<<5) | 0x000001L;
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 137~201 */
+/*MT6140D*/ *rfN = (67L<<12) | ((arfcn-137)<<5) | 0x000001L;
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 202~251 */
+/*MT6140D*/ *rfN = (68L<<12) | ((arfcn-202)<<5) | 0x000001L;
+/*MT6140D*/ }
+/*MT6140D*/
+/*MT6140D*/ // Get GSM850 signal from GSM900 input pins if flag=1
+/*MT6140D*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *rfN |= 0x100000L;
+/*MT6140D*/ break;
+/*MT6140D*/ }
+/*MT6140D*/ case FrequencyBand900 :
+/*MT6140D*/ {
+/*MT6140D*/ if(arfcn<=69)
+/*MT6140D*/ { if(arfcn<=4)
+/*MT6140D*/ { /* ARFCN : 0~4 */
+/*MT6140D*/ *rfN = (71L<<12) | ((arfcn+60)<<5) | 0x100001L;
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 5~69 */
+/*MT6140D*/ *rfN = (72L<<12) | ((arfcn-5)<<5) | 0x100001L;
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { if(arfcn<=124)
+/*MT6140D*/ { /* ARFCN : 70~124 */
+/*MT6140D*/ *rfN = (73L<<12) | ((arfcn-70)<<5) | 0x100001L;
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 975~1023 */
+/*MT6140D*/ *rfN = (71L<<12) | ((arfcn-964)<<5) | 0x100001L;
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/
+/*MT6140D*/ // Get GSM900 signal from GSM850 input pins if flag=1
+/*MT6140D*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *rfN &= (~(0x100000L));
+/*MT6140D*/ break;
+/*MT6140D*/ }
+/*MT6140D*/ case FrequencyBand1800 :
+/*MT6140D*/ {
+/*MT6140D*/ if(arfcn<=715)
+/*MT6140D*/ { if(arfcn<=585)
+/*MT6140D*/ { /* ARFCN : 512~585 */
+/*MT6140D*/ *rfN = (69L<<12) | ((arfcn-456)<<4) | 0x200001L;
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 586~715 */
+/*MT6140D*/ *rfN = (70L<<12) | ((arfcn-586)<<4) | 0x200001L;
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { if(arfcn<=845)
+/*MT6140D*/ { /* ARFCN : 716~845 */
+/*MT6140D*/ *rfN = (71L<<12) | ((arfcn-716)<<4) | 0x200001L;
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 846~885 */
+/*MT6140D*/ *rfN = (72L<<12) | ((arfcn-846)<<4) | 0x200001L;
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/
+/*MT6140D*/ // Get PCS1900 signal from DCS1800 input pins if flag=1
+/*MT6140D*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap ) *rfN |= 0x100000L;
+/*MT6140D*/ break;
+/*MT6140D*/ }
+/*MT6140D*/ case FrequencyBand1900 :
+/*MT6140D*/ {
+/*MT6140D*/ if(arfcn<=740)
+/*MT6140D*/ { if(arfcn<=610)
+/*MT6140D*/ { /* ARFCN : 512~610 */
+/*MT6140D*/ *rfN = (74L<<12) | ((arfcn-481)<<4) | 0x300001L;
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 611~740 */
+/*MT6140D*/ *rfN = (75L<<12) | ((arfcn-611)<<4) | 0x300001L;
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ {
+/*MT6140D*/ /* ARFCN : 741~810 */
+/*MT6140D*/ *rfN = (76L<<12) | ((arfcn-741)<<4) | 0x300001L;
+/*MT6140D*/
+/*MT6140D*/ }
+/*MT6140D*/
+/*MT6140D*/ // Get DCS1800 signal from PCS1900 input pins if flag=1
+/*MT6140D*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap) *rfN &= (~(0x100000L));
+/*MT6140D*/ break;
+/*MT6140D*/ }
+/*MT6140D*/ default :
+/*MT6140D*/ {
+/*MT6140D*/ break;
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ *ifN = 0;
+/*MT6140D*/}
+/*MT6140D*//* =========================================================================== */
+/*MT6140D*/
+/*MT6140D*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6140D*/{
+/*MT6140D*/ switch(rf_band)
+/*MT6140D*/ {
+/*MT6140D*/ case FrequencyBand850 :
+/*MT6140D*/ {
+/*MT6140D*/ if(arfcn<=231)
+/*MT6140D*/ { if(arfcn<=166)
+/*MT6140D*/ { /* ARFCN : 128~166 */
+/*MT6140D*/ *rfN = (63L<<12) | ((arfcn-102)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 167~231 */
+/*MT6140D*/ *rfN = (64L<<12) | ((arfcn-167)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 232~251 */
+/*MT6140D*/ *rfN = (65L<<12) | ((arfcn-232)<<5) | 0x480001L; /* 0x080001L; */
+/*MT6140D*/ }
+/*MT6140D*/
+/*MT6140D*/ break;
+/*MT6140D*/ }
+/*MT6140D*/ case FrequencyBand900 :
+/*MT6140D*/ {
+/*MT6140D*/ if(arfcn<=124)
+/*MT6140D*/ { if(arfcn<=99)
+/*MT6140D*/ { if(arfcn<=34)
+/*MT6140D*/ { /* ARFCN : 0~34 */
+/*MT6140D*/ *rfN = (68L<<12) | ((arfcn+30)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 35~99 */
+/*MT6140D*/ *rfN = (69L<<12) | ((arfcn-35)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 100~124 */
+/*MT6140D*/ *rfN = (70L<<12) | ((arfcn-100)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { if(arfcn<=993)
+/*MT6140D*/ { /* ARFCN : 975~993 */
+/*MT6140D*/ *rfN = (67L<<12) | ((arfcn-929)<<5) | 0x580001L; /* 0x180001L; */
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 994~1023 */
+/*MT6140D*/ *rfN = (68L<<12) | ((arfcn-994)<<5) | 0x580001L; /* 0x080001L; */
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/
+/*MT6140D*/ break;
+/*MT6140D*/ }
+/*MT6140D*/ case FrequencyBand1800 :
+/*MT6140D*/ {
+/*MT6140D*/ if(arfcn<=670)
+/*MT6140D*/ { if(arfcn<=540)
+/*MT6140D*/ { /* ARFCN : 512~540 */
+/*MT6140D*/ *rfN = (65L<<12) | ((arfcn-411)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 541~670 */
+/*MT6140D*/ *rfN = (66L<<12) | ((arfcn-541)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { if(arfcn<=800)
+/*MT6140D*/ { /* ARFCN : 671~800 */
+/*MT6140D*/ *rfN = (67L<<12) | ((arfcn-671)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 801~885 */
+/*MT6140D*/ *rfN = (68L<<12) | ((arfcn-801)<<4) | 0x680001L; /* 0x280001L; */
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/
+/*MT6140D*/ break;
+/*MT6140D*/ }
+/*MT6140D*/ case FrequencyBand1900 :
+/*MT6140D*/ {
+/*MT6140D*/ if(arfcn<=750)
+/*MT6140D*/ { if(arfcn<=620)
+/*MT6140D*/ { /* ARFCN : 512~620 */
+/*MT6140D*/ *rfN = (71L<<12) | ((arfcn-491)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ { /* ARFCN : 621~750 */
+/*MT6140D*/ *rfN = (72L<<12) | ((arfcn-621)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ else
+/*MT6140D*/ {
+/*MT6140D*/ /* ARFCN : 751~810 */
+/*MT6140D*/ *rfN = (73L<<12) | ((arfcn-751)<<4) | 0x780001L; /* 0x380001L; */
+/*MT6140D*/
+/*MT6140D*/ }
+/*MT6140D*/
+/*MT6140D*/ break;
+/*MT6140D*/ }
+/*MT6140D*/ default :
+/*MT6140D*/ {
+/*MT6140D*/ break;
+/*MT6140D*/ }
+/*MT6140D*/ }
+/*MT6140D*/ *ifN = 0;
+/*MT6140D*/}
+/*MT6140D*//* =========================================================================== */
+#endif
+
+#if IS_RF_CMOSEDGE
+/*CMOSEDGE*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*CMOSEDGE*/{ int Nfrac;
+/*CMOSEDGE*/ switch(rf_band)
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ case FrequencyBand850 :
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ if(arfcn<=201)
+/*CMOSEDGE*/ { if(arfcn<=169)
+/*CMOSEDGE*/ { if(arfcn<=136)
+/*CMOSEDGE*/ { /* ARFCN : 128~136 */
+/*CMOSEDGE*/ Nfrac = (arfcn-128)*258111+6065609;
+/*CMOSEDGE*/ *rfN = (133L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 137~169 */
+/*CMOSEDGE*/ Nfrac = (arfcn-137)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (134L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 170~201 */
+/*CMOSEDGE*/ Nfrac = (arfcn-170)*258111+129056;
+/*CMOSEDGE*/ *rfN = (135L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=234)
+/*CMOSEDGE*/ { /* ARFCN : 202~234 */
+/*CMOSEDGE*/ Nfrac = (arfcn-202)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (136L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 235~251 */
+/*CMOSEDGE*/ Nfrac = (arfcn-235)*258111+129056;
+/*CMOSEDGE*/ *rfN = (137L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ *ifN = (Nfrac>>10);
+/*CMOSEDGE*/
+/*CMOSEDGE*/ // Get GSM850 signal from GSM900 input pins if flag=1
+/*CMOSEDGE*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *ifN |=0x0010000L ;
+/*CMOSEDGE*/ break;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ case FrequencyBand900 :
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ if(arfcn<=124)
+/*CMOSEDGE*/ { if(arfcn<=69)
+/*CMOSEDGE*/ { if(arfcn<=37)
+/*CMOSEDGE*/ { if(arfcn<=4)
+/*CMOSEDGE*/ { /* ARFCN : 0~4 */
+/*CMOSEDGE*/ Nfrac = arfcn*258111+7098053;
+/*CMOSEDGE*/ *rfN = (143L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 5~37 */
+/*CMOSEDGE*/ Nfrac = (arfcn-5)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (144L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 38~69 */
+/*CMOSEDGE*/ Nfrac = (arfcn-38)*258111+129056;
+/*CMOSEDGE*/ *rfN = (145L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=102)
+/*CMOSEDGE*/ { /* ARFCN : 70~102 */
+/*CMOSEDGE*/ Nfrac = (arfcn-70)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (146L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 103~124 */
+/*CMOSEDGE*/ Nfrac = (arfcn-103)*258111+129056;
+/*CMOSEDGE*/ *rfN = (147L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=996)
+/*CMOSEDGE*/ { /* ARFCN : 975~996 */
+/*CMOSEDGE*/ Nfrac = (arfcn-975)*258111+2839221;
+/*CMOSEDGE*/ *rfN = (142L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 997~1023 */
+/*CMOSEDGE*/ Nfrac = (arfcn-997)*258111+129056;
+/*CMOSEDGE*/ *rfN = (143L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ *ifN = (Nfrac>>10) | 0x0010000L;
+/*CMOSEDGE*/
+/*CMOSEDGE*/ // Get GSM900 signal from GSM850 input pins if flag=1
+/*CMOSEDGE*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *ifN &= (~(0x0010000L));
+/*CMOSEDGE*/ break;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ case FrequencyBand1800 :
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ if(arfcn<=715)
+/*CMOSEDGE*/ { if(arfcn<=585)
+/*CMOSEDGE*/ { if(arfcn<=520)
+/*CMOSEDGE*/ { /* ARFCN : 512~520 */
+/*CMOSEDGE*/ Nfrac=((arfcn-512)&0x1) ? ((arfcn-513)>>1)*258111+7356164:((arfcn-512)>>1)*258111+7227108;
+/*CMOSEDGE*/ *rfN = (138L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 521~585 */
+/*CMOSEDGE*/ Nfrac=((arfcn-521)&0x1) ? ((arfcn-522)>>1)*258111+129056:((arfcn-521)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (139L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=650)
+/*CMOSEDGE*/ { /* ARFCN : 586~650 */
+/*CMOSEDGE*/ Nfrac=((arfcn-586)&0x1) ? ((arfcn-587)>>1)*258111+129056:((arfcn-586)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (140L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 651~715 */
+/*CMOSEDGE*/ Nfrac=((arfcn-651)&0x1) ? ((arfcn-652)>>1)*258111+129056:((arfcn-651)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (141L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=845)
+/*CMOSEDGE*/ { if(arfcn<=780)
+/*CMOSEDGE*/ { /* ARFCN : 716~780 */
+/*CMOSEDGE*/ Nfrac=((arfcn-716)&0x1) ? ((arfcn-717)>>1)*258111+129056:((arfcn-716)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (142L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 781~845 */
+/*CMOSEDGE*/ Nfrac=((arfcn-781)&0x1) ? ((arfcn-782)>>1)*258111+129056:((arfcn-781)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (143L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 846~885 */
+/*CMOSEDGE*/ Nfrac=((arfcn-846)&0x1) ? ((arfcn-847)>>1)*258111+129056:((arfcn-846)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (144L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ *ifN = (Nfrac>>10) | 0x0020000L;
+/*CMOSEDGE*/
+/*CMOSEDGE*/ // Get PCS1900 signal from DCS1800 input pins if flag=1
+/*CMOSEDGE*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap ) *ifN |=0x0010000L ;
+/*CMOSEDGE*/ break;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ case FrequencyBand1900 :
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ if(arfcn<=675)
+/*CMOSEDGE*/ { if(arfcn<=610)
+/*CMOSEDGE*/ { if(arfcn<=545)
+/*CMOSEDGE*/ { /* ARFCN : 512~545 */
+/*CMOSEDGE*/ Nfrac=((arfcn-512)&0x1) ? ((arfcn-513)>>1)*258111+4129776:((arfcn-512)>>1)*258111+4000721;
+/*CMOSEDGE*/ *rfN = (148L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 546~610 */
+/*CMOSEDGE*/ Nfrac=((arfcn-546)&0x1) ? ((arfcn-547)>>1)*258111+129056:((arfcn-546)>>1)*258111;;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (149L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 611~675 */
+/*CMOSEDGE*/ Nfrac=((arfcn-611)&0x1) ? ((arfcn-612)>>1)*258111+129056:((arfcn-611)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (150L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=805)
+/*CMOSEDGE*/ { if(arfcn<=740)
+/*CMOSEDGE*/ { /* ARFCN : 676~740 */
+/*CMOSEDGE*/ Nfrac=((arfcn-676)&0x1) ? ((arfcn-677)>>1)*258111+129056:((arfcn-676)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (151L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 741~805 */
+/*CMOSEDGE*/ Nfrac=((arfcn-741)&0x1) ? ((arfcn-742)>>1)*258111+129056:((arfcn-741)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (152L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 806~810 */
+/*CMOSEDGE*/ Nfrac=((arfcn-806)&0x1) ? ((arfcn-807)>>1)*258111+129056:((arfcn-806)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (153L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ *ifN = (Nfrac>>10) | 0x0030000L;
+/*CMOSEDGE*/
+/*CMOSEDGE*/ // Get DCS1800 signal from PCS1900 input pins if flag=1
+/*CMOSEDGE*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap) *ifN &= (~(0x0010000L));
+/*CMOSEDGE*/ break;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ default :
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ break;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/}
+/*CMOSEDGE*//* =========================================================================== */
+/*CMOSEDGE*/
+/*CMOSEDGE*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*CMOSEDGE*/{ int Nfrac;
+/*CMOSEDGE*/ switch(rf_band)
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ case FrequencyBand850 :
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ if(arfcn<=199)
+/*CMOSEDGE*/ { if(arfcn<=166)
+/*CMOSEDGE*/ { if(arfcn<=134)
+/*CMOSEDGE*/ { /* ARFCN : 128~134 */
+/*CMOSEDGE*/ Nfrac = (arfcn-128)*258111+6710886;
+/*CMOSEDGE*/ *rfN = (126L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 135~166 */
+/*CMOSEDGE*/ Nfrac = (arfcn-135)*258111+129056;
+/*CMOSEDGE*/ *rfN = (127L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 167~199 */
+/*CMOSEDGE*/ Nfrac = (arfcn-167)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (128L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=231)
+/*CMOSEDGE*/ { /* ARFCN : 200~231 */
+/*CMOSEDGE*/ Nfrac = (arfcn-200)*258111+129056;
+/*CMOSEDGE*/ *rfN = (129L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 232~251 */
+/*CMOSEDGE*/ Nfrac = (arfcn-232)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (130L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ *ifN = (Nfrac>>10) | 0x0040000L |(arfcn<<20);
+/*CMOSEDGE*/
+/*CMOSEDGE*/ break;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ case FrequencyBand900 :
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ if(arfcn<=124)
+/*CMOSEDGE*/ { if(arfcn<=67)
+/*CMOSEDGE*/ { if(arfcn<=34)
+/*CMOSEDGE*/ { if(arfcn<=2)
+/*CMOSEDGE*/ { /* ARFCN : 0~2 */
+/*CMOSEDGE*/ Nfrac =arfcn*258111+7743330;
+/*CMOSEDGE*/ *rfN = (136L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 3~34 */
+/*CMOSEDGE*/ Nfrac =(arfcn-3)*258111+129056;
+/*CMOSEDGE*/ *rfN = (137L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 35~67 */
+/*CMOSEDGE*/ Nfrac =(arfcn-35)*258111;
+/*CMOSEDGE*/ // if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (138L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=99)
+/*CMOSEDGE*/ { /* ARFCN : 68~99 */
+/*CMOSEDGE*/ Nfrac =(arfcn-68)*258111+129056;
+/*CMOSEDGE*/ *rfN = (139L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 100~124 */
+/*CMOSEDGE*/ Nfrac =(arfcn-100)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (140L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=993)
+/*CMOSEDGE*/ { /* ARFCN : 975~993 */
+/*CMOSEDGE*/ Nfrac = (arfcn-975)*258111+3484499;
+/*CMOSEDGE*/ *rfN = (135L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 994~1023 */
+/*CMOSEDGE*/ Nfrac = (arfcn-994)*258111;
+/*CMOSEDGE*/ // if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (136L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ *ifN = (Nfrac>>10) | 0x0050000L |(arfcn<<20);
+/*CMOSEDGE*/
+/*CMOSEDGE*/ break;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ case FrequencyBand1800 :
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ if(arfcn<=735)
+/*CMOSEDGE*/ { if(arfcn<=605)
+/*CMOSEDGE*/ { if(arfcn<=540)
+/*CMOSEDGE*/ { /* ARFCN : 512~540 */
+/*CMOSEDGE*/ Nfrac=((arfcn-512)&0x1) ? ((arfcn-513)>>1)*258111+4775054:((arfcn-512)>>1)*258111+4645998;
+/*CMOSEDGE*/ *rfN = (131L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 541~605 */
+/*CMOSEDGE*/ Nfrac=((arfcn-541)&0x1) ? ((arfcn-542)>>1)*258111+129056:((arfcn-541)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (132L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=670)
+/*CMOSEDGE*/ { /* ARFCN : 606~670 */
+/*CMOSEDGE*/ Nfrac=((arfcn-606)&0x1) ? ((arfcn-607)>>1)*258111+129056:((arfcn-606)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (133L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 671~735 */
+/*CMOSEDGE*/ Nfrac=((arfcn-671)&0x1) ? ((arfcn-672)>>1)*258111+129056:((arfcn-671)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (134L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=865)
+/*CMOSEDGE*/ { if(arfcn<=800)
+/*CMOSEDGE*/ { /* ARFCN : 736~800 */
+/*CMOSEDGE*/ Nfrac=((arfcn-736)&0x1) ? ((arfcn-737)>>1)*258111+129056:((arfcn-736)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (135L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 801~865 */
+/*CMOSEDGE*/ Nfrac=((arfcn-801)&0x1) ? ((arfcn-802)>>1)*258111+129056:((arfcn-801)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (136L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 866~885 */
+/*CMOSEDGE*/ Nfrac=((arfcn-866)&0x1) ? ((arfcn-867)>>1)*258111+129056:((arfcn-866)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (137L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ *ifN = (Nfrac>>10) | 0x0060000L |(arfcn<<20);
+/*CMOSEDGE*/
+/*CMOSEDGE*/ break;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ case FrequencyBand1900 :
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ if(arfcn<=685)
+/*CMOSEDGE*/ { if(arfcn<=620)
+/*CMOSEDGE*/ { if(arfcn<=555)
+/*CMOSEDGE*/ { /* ARFCN : 512~555 */
+/*CMOSEDGE*/ Nfrac=((arfcn-512)&0x1) ? ((arfcn-513)>>1)*258111+2839221:((arfcn-512)>>1)*258111+2710166;
+/*CMOSEDGE*/ *rfN = (142L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 556~620 */
+/*CMOSEDGE*/ Nfrac=((arfcn-556)&0x1) ? ((arfcn-557)>>1)*258111+129056:((arfcn-556)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (143L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 621~685 */
+/*CMOSEDGE*/ Nfrac=((arfcn-621)&0x1) ? ((arfcn-622)>>1)*258111+129056:((arfcn-621)>>1)*258111;
+/*CMOSEDGE*/ //if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (144L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { if(arfcn<=750)
+/*CMOSEDGE*/ { /* ARFCN : 686~750 */
+/*CMOSEDGE*/ Nfrac=((arfcn-686)&0x1) ? ((arfcn-687)>>1)*258111+129056:((arfcn-686)>>1)*258111;
+/*CMOSEDGE*/ // if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (145L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ else
+/*CMOSEDGE*/ { /* ARFCN : 751~810 */
+/*CMOSEDGE*/ Nfrac=((arfcn-751)&0x1) ? ((arfcn-752)>>1)*258111+129056:((arfcn-751)>>1)*258111;
+/*CMOSEDGE*/ // if (Nfrac==0) Nfrac=1;
+/*CMOSEDGE*/ *rfN = (146L<<10) | (Nfrac&0x3FF) | 0x0100000L;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ *ifN = (Nfrac>>10) | 0x0070000L |(arfcn<<20);
+/*CMOSEDGE*/
+/*CMOSEDGE*/ break;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ default :
+/*CMOSEDGE*/ {
+/*CMOSEDGE*/ break;
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/ }
+/*CMOSEDGE*/}
+/*CMOSEDGE*//* =========================================================================== */
+#endif
+
+#if IS_RF_MTKSOC1T
+/*MTKSOC1T*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MTKSOC1T*/{
+/*MTKSOC1T*/ int Nfrac, SDM_IFM = 1, OPLL_DIV4O5_DIV4 = 0;
+/*MTKSOC1T*/ long cw27 =0;
+/*MTKSOC1T*/ switch(rf_band)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ case FrequencyBand850 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=189)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=160)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=131)
+/*MTKSOC1T*/ { /* ARFCN : 128~131 */
+/*MTKSOC1T*/ Nfrac = (arfcn-128)*286790 + 7456540;
+/*MTKSOC1T*/ *rfN = (140L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 132~160 */
+/*MTKSOC1T*/ Nfrac = (arfcn-132)*286790 + 215093;
+/*MTKSOC1T*/ *rfN = (141L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 161~189 */
+/*MTKSOC1T*/ Nfrac = (arfcn-161)*286790 + 143395;
+/*MTKSOC1T*/ *rfN = (142L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=218)
+/*MTKSOC1T*/ { /* ARFCN : 190~218 */
+/*MTKSOC1T*/ Nfrac = (arfcn-190)*286790 + 71698;
+/*MTKSOC1T*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=248)
+/*MTKSOC1T*/ { /* ARFCN : 219~248 */
+/*MTKSOC1T*/ Nfrac = (arfcn-219)*286790;
+/*MTKSOC1T*/ *rfN = (144L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ if(arfcn == 219)
+/*MTKSOC1T*/ SDM_IFM = 0;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 249~251 */
+/*MTKSOC1T*/ Nfrac = (arfcn-249)*286790 + 215093;
+/*MTKSOC1T*/ *rfN = (145L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/ *ifN = (Nfrac>>10) | 0x0242000L; /* N_FRAC[22:10] | (CW2|OPLL_DIV4O5_DIV4|TRX|BAND|MODE(warm_up mode))*/
+/*MTKSOC1T*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=112)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=54)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=25)
+/*MTKSOC1T*/ { /* ARFCN : 0~25 */
+/*MTKSOC1T*/ Nfrac = (arfcn)*286790 + 1147160;
+/*MTKSOC1T*/ *rfN = (152L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 26~54 */
+/*MTKSOC1T*/ Nfrac = (arfcn-26)*286790 + 215093;
+/*MTKSOC1T*/ *rfN = (153L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=83)
+/*MTKSOC1T*/ { /* ARFCN : 55~83 */
+/*MTKSOC1T*/ Nfrac = (arfcn-55)*286790 + 143395;
+/*MTKSOC1T*/ *rfN = (154L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 84~112 */
+/*MTKSOC1T*/ Nfrac = (arfcn-84)*286790 + 71698;
+/*MTKSOC1T*/ *rfN = (155L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=990)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=124)
+/*MTKSOC1T*/ { /* ARFCN : 113~124 */
+/*MTKSOC1T*/ Nfrac = (arfcn-113)*286790;
+/*MTKSOC1T*/ *rfN = (156L<<10);
+/*MTKSOC1T*/
+/*MTKSOC1T*/ if(arfcn == 113)
+/*MTKSOC1T*/ SDM_IFM = 0;
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 975~990 */
+/*MTKSOC1T*/ Nfrac = (arfcn-975)*286790 + 3871665;
+/*MTKSOC1T*/ *rfN = (150L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=1019)
+/*MTKSOC1T*/ { /* ARFCN : 991~1019 */
+/*MTKSOC1T*/ Nfrac = (arfcn-991)*286790 + 71698;
+/*MTKSOC1T*/ *rfN = (151L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 1020~1023 */
+/*MTKSOC1T*/ Nfrac = (arfcn-1020)*286790;
+/*MTKSOC1T*/ *rfN = (152L<<10);
+/*MTKSOC1T*/
+/*MTKSOC1T*/ if(arfcn == 1020)
+/*MTKSOC1T*/ SDM_IFM = 0;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ *ifN = (Nfrac>>10) | 0x0252000L; /* N_FRAC[22:10] | (CW2|OPLL_DIV4O5_DIV4|TRX|BAND|MODE(warm_up mode))*/
+/*MTKSOC1T*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1800 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=670)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=603)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=547)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=541)
+/*MTKSOC1T*/ { /* ARFCN : 512~541 */
+/*MTKSOC1T*/ Nfrac = (arfcn-529)*135848 + 6316927;
+/*MTKSOC1T*/ *rfN = (138L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 0, 0, 519, 529, 540, 542);
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 542~547 */
+/*MTKSOC1T*/ Nfrac = (arfcn-542)*137659 + 6848546;
+/*MTKSOC1T*/ *rfN = (140L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ if(arfcn>=547)
+/*MTKSOC1T*/ Nfrac++;
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 548~603 */
+/*MTKSOC1T*/ Nfrac = (arfcn-581)*135848 + 4992410;
+/*MTKSOC1T*/ *rfN = (139L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 550, 560, 570, 581, 591, 601);
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=665)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=608)
+/*MTKSOC1T*/ { /* ARFCN : 604~608 */
+/*MTKSOC1T*/ Nfrac = (arfcn-604)*137659 + 6994809;
+/*MTKSOC1T*/ *rfN = (141L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 609~665 */
+/*MTKSOC1T*/ Nfrac = (arfcn-643)*135848 + 5026372;
+/*MTKSOC1T*/ *rfN = (140L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 612, 622, 632, 643, 653, 663);
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /* ARFCN : 666~670 */
+/*MTKSOC1T*/ Nfrac = (arfcn-666)*137659 + 7141071;
+/*MTKSOC1T*/ *rfN = (142L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ if(arfcn>=667)
+/*MTKSOC1T*/ Nfrac++;
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=788)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=732)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=726)
+/*MTKSOC1T*/ {/* ARFCN : 671~726 */
+/*MTKSOC1T*/ Nfrac = (arfcn-704)*135848 + 4924486;
+/*MTKSOC1T*/ *rfN = (141L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 673, 684, 694, 704, 715, 725);
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*ARFCN:727~732*/
+/*MTKSOC1T*/ Nfrac = (arfcn-727)*137659 + 7149675;
+/*MTKSOC1T*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ if(arfcn>=729)
+/*MTKSOC1T*/ Nfrac++;
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*ARFCN:733~788*/
+/*MTKSOC1T*/ Nfrac = (arfcn-766)*135848 + 4958448;
+/*MTKSOC1T*/ *rfN = (142L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 735, 745, 756, 766, 776, 786);
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=850)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=794)
+/*MTKSOC1T*/ {/*ARFCN:789~794*/
+/*MTKSOC1T*/ Nfrac = (arfcn-789)*137659 + 7295938;
+/*MTKSOC1T*/ *rfN = (144L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ if(arfcn>=792)
+/*MTKSOC1T*/ Nfrac++;
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*ARFCN:795~850*/
+/*MTKSOC1T*/ Nfrac = (arfcn-828)*135848 + 4992410;
+/*MTKSOC1T*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 797, 806, 817, 828, 838, 848);
+/*MTKSOC1T*/ /*End:*error compensation*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=855)
+/*MTKSOC1T*/ {/*ARFCN:851~855*/
+/*MTKSOC1T*/ Nfrac = (arfcn-851)*137659 + 7442201;
+/*MTKSOC1T*/ *rfN = (145L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ if(arfcn>=854)
+/*MTKSOC1T*/ Nfrac++;
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*ARFCN:856~885*/
+/*MTKSOC1T*/ Nfrac = (arfcn-869)*135848 + 2173566;
+/*MTKSOC1T*/ *rfN = (144L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ /*error compensation*/
+/*MTKSOC1T*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 0, 0, 859, 869, 879, 885);
+/*MTKSOC1T*/ /*End: error compensation*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ *ifN = (Nfrac>>10) | 0x0262000L | (OPLL_DIV4O5_DIV4<<19); /* N_FRAC[22:10] | (CW2|OPLL_DIV4O5_DIV4|TRX|BAND|MODE(warm_up mode))*/
+/*MTKSOC1T*/ *rfN |= ((Nfrac&0x3FF) | 0x01C0000L); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=676)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=546)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=540)
+/*MTKSOC1T*/ { /*ARFCN:512~540*/
+/*MTKSOC1T*/ Nfrac = (arfcn-512)*122910 + 4578398;
+/*MTKSOC1T*/ *rfN = (135L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /*ARFCN:541~546*/
+/*MTKSOC1T*/ Nfrac = (arfcn-541)*121464 + 3112515;
+/*MTKSOC1T*/ *rfN = (134L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=614)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=608)
+/*MTKSOC1T*/ { /*ARFCN:547~608*/
+/*MTKSOC1T*/ Nfrac = (arfcn-547)*122910 + 491640;
+/*MTKSOC1T*/ *rfN = (136L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /*ARFCN:609~614*/
+/*MTKSOC1T*/ Nfrac = (arfcn-609)*121464 + 2983460;
+/*MTKSOC1T*/ *rfN = (135L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /*ARFCN:615~676*/
+/*MTKSOC1T*/ Nfrac = (arfcn-615)*122910 + 460913;
+/*MTKSOC1T*/ *rfN = (137L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=744)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=682)
+/*MTKSOC1T*/ {/*ARFCN:677~682*/
+/*MTKSOC1T*/ Nfrac = (arfcn-677)*121464 + 2854404;
+/*MTKSOC1T*/ *rfN = (136L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /*ARFCN:683~744*/
+/*MTKSOC1T*/ Nfrac = (arfcn-683)*122910 + 430185;
+/*MTKSOC1T*/ *rfN = (138L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=750)
+/*MTKSOC1T*/ {/*ARFCN:745~750*/
+/*MTKSOC1T*/ Nfrac = (arfcn-745)*121464 + 2725349;
+/*MTKSOC1T*/ *rfN = (137L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ { /*ARFCN:751~810*/
+/*MTKSOC1T*/ Nfrac = (arfcn-751)*122910 + 399458;
+/*MTKSOC1T*/ *rfN = (139L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/ *ifN = (Nfrac>>10) | 0x0272000L | (OPLL_DIV4O5_DIV4<<19); /* N_FRAC[22:10] | (CW2|OPLL_DIV4O5_DIV4|TRX|BAND|MODE(warm_up mode))*/
+/*MTKSOC1T*/ *rfN |= ((Nfrac&0x3FF) | 0x0140000L); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ default :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ /*For CW27*/
+/*MTKSOC1T*/ L1D_RF_GetTX_SX_CAL_FBX_Setting(arfcn, rf_band, &cw27, MTKSOC1_SX_CAL_DMD_T, ((*ifN>>19) & 0x1) );
+/*MTKSOC1T*/ *ifN |= ( ( cw27 & 0x7F) << 25);
+/*MTKSOC1T*/ *rfN |= ( ((cw27>>7) & 0x3F) << 25);
+/*MTKSOC1T*/}
+/*MTKSOC1T*//* =============================================================== */
+/*MTKSOC1T*/
+/*MTKSOC1T*/void L1D_RF_Band1800_FrequecyFractionPartCompensation(int arfcn, int *Nfrac, short arfcn1, short arfcn2, short arfcn3, short arfcn4, short arfcn5, short arfcn6)
+/*MTKSOC1T*/{
+/*MTKSOC1T*/ if(arfcn<arfcn4)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<arfcn2)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<arfcn1)
+/*MTKSOC1T*/ *Nfrac+=4;
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ *Nfrac+=3;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<arfcn3)
+/*MTKSOC1T*/ *Nfrac+=2;
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ *Nfrac+=1;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else if (arfcn>=arfcn5)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<arfcn6)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ *Nfrac-=1;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ *Nfrac-=2;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/}
+/*MTKSOC1T*/
+/*MTKSOC1T*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MTKSOC1T*/{
+/*MTKSOC1T*/ int Nfrac, SDM_IFM = 1;
+/*MTKSOC1T*/ long cw27 = 0;
+/*MTKSOC1T*/ switch(rf_band)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ case FrequencyBand850 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=201)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=169)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=136)
+/*MTKSOC1T*/ {/*arfcn:128~136*/
+/*MTKSOC1T*/ Nfrac = (arfcn-128)*258111 + 6065609;
+/*MTKSOC1T*/ *rfN = (133L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:137~169*/
+/*MTKSOC1T*/ Nfrac = (arfcn-137)*258111;
+/*MTKSOC1T*/ *rfN = (134L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:170~201*/
+/*MTKSOC1T*/ Nfrac = (arfcn-170)*258111+129056;
+/*MTKSOC1T*/ *rfN = (135L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=234)
+/*MTKSOC1T*/ {/*arfcn:202~234*/
+/*MTKSOC1T*/ Nfrac = (arfcn-202)*258111;
+/*MTKSOC1T*/ *rfN = (136L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:235~251*/
+/*MTKSOC1T*/ Nfrac = (arfcn-235)*258111+129056;
+/*MTKSOC1T*/ *rfN = (137L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ *ifN = (Nfrac>>10)|0x0202000; /* CW2, TRX:0, BAND:0, MODE:1, N_RFC[22:10]*/
+/*MTKSOC1T*/ if(Nfrac==0) SDM_IFM = 0;
+/*MTKSOC1T*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ // Get GSM850 signal from GSM900 input pins if flag=1
+/*MTKSOC1T*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *ifN |=0x0010000L ;
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=102)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=37)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=4)
+/*MTKSOC1T*/ {/*arfcn:0~4*/
+/*MTKSOC1T*/ Nfrac = (arfcn)*258111+7098053;
+/*MTKSOC1T*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:5~37*/
+/*MTKSOC1T*/ Nfrac = (arfcn-5)*258111;
+/*MTKSOC1T*/ *rfN = (144L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=69)
+/*MTKSOC1T*/ {/*arfcn:38~69*/
+/*MTKSOC1T*/ Nfrac = (arfcn-38)*258111+129056;
+/*MTKSOC1T*/ *rfN = (145L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:70~102*/
+/*MTKSOC1T*/ Nfrac = (arfcn-70)*258111;
+/*MTKSOC1T*/ *rfN = (146L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=996)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=124)
+/*MTKSOC1T*/ {/*arfcn:103~124*/
+/*MTKSOC1T*/ Nfrac = (arfcn-103)*258111+129056;
+/*MTKSOC1T*/ *rfN = (147L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:975~996*/
+/*MTKSOC1T*/ Nfrac = (arfcn-975)*258111+2839221;
+/*MTKSOC1T*/ *rfN = (142L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:997~1023*/
+/*MTKSOC1T*/ Nfrac = (arfcn-997)*258111+129056;
+/*MTKSOC1T*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/ *ifN = (Nfrac>>10)|0x0212000; /* CW2, TRX:0, BAND:1, MODE:1, N_RFC[22:10]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ if(Nfrac==0) SDM_IFM = 0;
+/*MTKSOC1T*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ // Get GSM900 signal from GSM850 input pins if flag=1
+/*MTKSOC1T*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *ifN &= (~(0x0010000L));
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1800 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=715)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=585)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=520)
+/*MTKSOC1T*/ {/*arfcn:512~520*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 456);
+/*MTKSOC1T*/ *rfN = (138L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:521~585*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 521);
+/*MTKSOC1T*/ *rfN = (139L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=650)
+/*MTKSOC1T*/ {/*arfcn:586~650*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 586);
+/*MTKSOC1T*/ *rfN = (140L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:651~715*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 651);
+/*MTKSOC1T*/ *rfN = (141L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=845)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=780)
+/*MTKSOC1T*/ {/*arfcn:716~780*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 716);
+/*MTKSOC1T*/ *rfN = (142L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:781~845*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 781);
+/*MTKSOC1T*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:846~885*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 846);
+/*MTKSOC1T*/ *rfN = (144L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ *ifN = (Nfrac>>10)|0x0222000; /* CW2, TRX:0, BAND:2, MODE:1, N_RFC[22:10]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ if(Nfrac==0) SDM_IFM = 0;
+/*MTKSOC1T*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ // Get PCS1900 signal from DCS1800 input pins if flag=1
+/*MTKSOC1T*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap ) *ifN |=0x0010000L ;
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=675)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=610)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=545)
+/*MTKSOC1T*/ {/*arfcn:512~545*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 481);
+/*MTKSOC1T*/ *rfN = (148L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:546~610*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 546);
+/*MTKSOC1T*/ *rfN = (149L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:611~675*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 611);
+/*MTKSOC1T*/ *rfN = (150L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=805)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=740)
+/*MTKSOC1T*/ {/*arfcn:676~740*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 676);
+/*MTKSOC1T*/ *rfN = (151L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:741~805*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 741);
+/*MTKSOC1T*/ *rfN = (152L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {/*arfcn:806~810*/
+/*MTKSOC1T*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 806);
+/*MTKSOC1T*/ *rfN = (153L<<10); /* N_INT[7:0]*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/ *ifN = (Nfrac>>10)|0x0232000; /* CW2, TRX:0, BAND:2, MODE:1, N_RFC[22:10]*/
+/*MTKSOC1T*/
+/*MTKSOC1T*/ if(Nfrac==0) SDM_IFM = 0;
+/*MTKSOC1T*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1T*/ // Get DCS1800 signal from PCS1900 input pins if flag=1
+/*MTKSOC1T*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap) *ifN &= (~(0x0010000L));
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ default :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ L1D_RF_GetRX_SX_CAL_FBX_Setting(arfcn, rf_band, &cw27, MTKSOC1_SX_CAL_DMD_T);
+/*MTKSOC1T*/ *ifN |= ( ( cw27 & 0x7F) << 25);
+/*MTKSOC1T*/ *rfN |= ( ((cw27>>7) & 0x3F) << 25);
+/*MTKSOC1T*/}
+/*MTKSOC1T*//* =============================================================== */
+/*MTKSOC1T*/
+/*MTKSOC1T*/void L1D_RF_GetRxPLL_HB_FractionPart(int *Nfrac, int arfcn, int arfcn_base)
+/*MTKSOC1T*/{
+/*MTKSOC1T*/ int Diff_arfcn;
+/*MTKSOC1T*/
+/*MTKSOC1T*/ Diff_arfcn = arfcn - arfcn_base;
+/*MTKSOC1T*/ *Nfrac = (Diff_arfcn >>1) * 258111;
+/*MTKSOC1T*/ if(Diff_arfcn & 0x1) *Nfrac += 129056;
+/*MTKSOC1T*/}
+/*MTKSOC1T*/
+/*MTKSOC1T*//*output: CW27 */
+/*MTKSOC1T*/void L1D_RF_GetRX_SX_CAL_FBX_Setting(int arfcn, int rf_band, long *cw27, short sx_cal_dmd_t)
+/*MTKSOC1T*/{
+/*MTKSOC1T*/ int N_sx_cal_fbx = 0;
+/*MTKSOC1T*/ if( !MTKSOC1_SX_CALSBA )
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ *cw27 = 0;
+/*MTKSOC1T*/ return;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ if(sx_cal_dmd_t)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ switch(rf_band)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ case FrequencyBand850 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = 468 + arfcn;
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=124)
+/*MTKSOC1T*/ N_sx_cal_fbx = 925 + arfcn;
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ N_sx_cal_fbx = -99 + arfcn;
+/*MTKSOC1T*/
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1800 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = 251- ( (arfcn-512)>>1 )+ arfcn;
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = 564- ( (arfcn-511)>>1 )+ arfcn;
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ default:
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ switch(rf_band)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ case FrequencyBand850 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( 348+ 1+ arfcn - (arfcn-130 +5)/5 ); /* 1- 5/5 =0 */
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=124)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( 739+ 1+ arfcn -(arfcn-3+5)/5 ); /* 1- 5/5 =0 */
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( -275+ 1+ arfcn -(arfcn-977+5)/5 ); /* 1- 5/5 =0 */
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1800 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( 98+ arfcn- ( (arfcn-512)/5 )*3 - ( ( (arfcn-512)%5 )>>1 ) );
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( 348+ arfcn- ( (arfcn-512)/5 )*3 - ( ( (arfcn-512)%5 )>>1 ) );
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ default:
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ *cw27 = 0x1b00001L | (N_sx_cal_fbx<<2) | (sx_cal_dmd_t<<1); /*CW27 | sx_cal_fbx | sx_cal_dmd_t | sx_calsba*/
+/*MTKSOC1T*/}
+/*MTKSOC1T*/
+/*MTKSOC1T*//*output: CW27 */
+/*MTKSOC1T*/void L1D_RF_GetTX_SX_CAL_FBX_Setting(int arfcn, int rf_band, long *cw27, short sx_cal_dmd_t, short OPLL_DIV4O5_DIV4)
+/*MTKSOC1T*/{
+/*MTKSOC1T*/ int N_sx_cal_fbx = 0;
+/*MTKSOC1T*/ if(!MTKSOC1_SX_CALSBA)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ *cw27 = 0;
+/*MTKSOC1T*/ return;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ if(sx_cal_dmd_t)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ switch(rf_band)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ case FrequencyBand850 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( 702 -1 +arfcn +(arfcn-134 +9)/9 ); /* 1- 9/9 =0 */
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=124)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( 1195 -1 +arfcn +(arfcn-1+9)/9 ); /* 1- 9/9 =0 */
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( 166 -1 +arfcn +(arfcn-980+9)/9 ); /* 1- 9/9 =0 */
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1800 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(OPLL_DIV4O5_DIV4)
+/*MTKSOC1T*/ N_sx_cal_fbx = (int) ((arfcn-512+8551)*2*16-3000*15*5+30)/(15*4); //DIV16
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ N_sx_cal_fbx = (int) ((arfcn-512+8551)*2*20-3000*19*5+38)/(19*4); //DIV20
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(OPLL_DIV4O5_DIV4)
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( ( (arfcn-512+9251)*2*16 -3000*5*17 +34) /(4*17)); /* DIV16 (((Arfcn-512+1850.2*5)*2*16-3000*5*17+34)/(5*17*0.8)).*/
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( ( (arfcn-512+9251)*2*20 -3000*5*21 +42) /(4*21)); //DIV20 =INT(((A5-512+1850.2*5)*2*20-3000*5*21+42)/(5*21*0.8))
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ default:
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ switch(rf_band)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ case FrequencyBand850 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( 534+ 1+ arfcn - (arfcn-134 +9)/9 ); /* 1- 9/9 =0 */
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(arfcn<=124)
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( 955+ 1+ arfcn -(arfcn-1+9)/9 ); /* 1- 9/9 =0 */
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( -64+ 1+ arfcn -(arfcn-980+9)/9 ); /* 1- 9/9 =0 */
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1800 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(OPLL_DIV4O5_DIV4)
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( ((arfcn-512+8551)*2*16-3000*15*5+37) / (15*5) ); /* DIV16 ( (arfcn-512+1710.2*5)*2*16-3000*15*5+37) / (15*5) ) (arfcn-512+1710.2*5)*2 is RFVCO freq. 37 is for round. 16/15 is div16.*/
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( ((arfcn-512+8551)*2*20-3000*19*5+47) / (19*5)); //DIV20
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ case FrequencyBand1900 :
+/*MTKSOC1T*/ {
+/*MTKSOC1T*/ if(OPLL_DIV4O5_DIV4)
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( ( (arfcn-512+9251)*2*16 -3000*5*17 + 42)/ (5*17)); /* DIV16 INT(((A5-512+1850.2*5)*2*16+42)/(5*17)-3000).*/
+/*MTKSOC1T*/ else
+/*MTKSOC1T*/ N_sx_cal_fbx = (int)( ( (arfcn-512+9251)*2*20 -3000*5*21 + 52)/ (5*21) ); //DIV20
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ default:
+/*MTKSOC1T*/ break;
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/
+/*MTKSOC1T*/ }
+/*MTKSOC1T*/ *cw27 = 0x1b00001L | (N_sx_cal_fbx<<2) | (sx_cal_dmd_t<<1); /*CW27 | sx_cal_fbx | sx_cal_dmd_t | sx_calsba*/
+/*MTKSOC1T*/}
+#endif
+
+#if IS_RF_MTKSOC1
+/*MTKSOC1*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MTKSOC1*/{
+/*MTKSOC1*/ int Nfrac, SDM_IFM = 1, OPLL_DIV4O5_DIV4 = 0;
+/*MTKSOC1*/ switch(rf_band)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ case FrequencyBand850 :
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=189)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=160)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=131)
+/*MTKSOC1*/ { /* ARFCN : 128~131 */
+/*MTKSOC1*/ Nfrac = (arfcn-128)*286790 + 7456540;
+/*MTKSOC1*/ *rfN = (140L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 132~160 */
+/*MTKSOC1*/ Nfrac = (arfcn-132)*286790 + 215093;
+/*MTKSOC1*/ *rfN = (141L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 161~189 */
+/*MTKSOC1*/ Nfrac = (arfcn-161)*286790 + 143395;
+/*MTKSOC1*/ *rfN = (142L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=218)
+/*MTKSOC1*/ { /* ARFCN : 190~218 */
+/*MTKSOC1*/ Nfrac = (arfcn-190)*286790 + 71698;
+/*MTKSOC1*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=248)
+/*MTKSOC1*/ { /* ARFCN : 219~248 */
+/*MTKSOC1*/ Nfrac = (arfcn-219)*286790;
+/*MTKSOC1*/ *rfN = (144L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ if(arfcn == 219)
+/*MTKSOC1*/ SDM_IFM = 0;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 249~251 */
+/*MTKSOC1*/ Nfrac = (arfcn-249)*286790 + 215093;
+/*MTKSOC1*/ *rfN = (145L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/
+/*MTKSOC1*/ *ifN = (Nfrac>>10) | 0x0242000L; /* N_FRAC[22:10] | (CW2|OPLL_DIV4O5_DIV4|TRX|BAND|MODE(warm_up mode))*/
+/*MTKSOC1*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1*/
+/*MTKSOC1*/ break;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ case FrequencyBand900 :
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=112)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=54)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=25)
+/*MTKSOC1*/ { /* ARFCN : 0~25 */
+/*MTKSOC1*/ Nfrac = (arfcn)*286790 + 1147160;
+/*MTKSOC1*/ *rfN = (152L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 26~54 */
+/*MTKSOC1*/ Nfrac = (arfcn-26)*286790 + 215093;
+/*MTKSOC1*/ *rfN = (153L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=83)
+/*MTKSOC1*/ { /* ARFCN : 55~83 */
+/*MTKSOC1*/ Nfrac = (arfcn-55)*286790 + 143395;
+/*MTKSOC1*/ *rfN = (154L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 84~112 */
+/*MTKSOC1*/ Nfrac = (arfcn-84)*286790 + 71698;
+/*MTKSOC1*/ *rfN = (155L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=990)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=124)
+/*MTKSOC1*/ { /* ARFCN : 113~124 */
+/*MTKSOC1*/ Nfrac = (arfcn-113)*286790;
+/*MTKSOC1*/ *rfN = (156L<<10);
+/*MTKSOC1*/
+/*MTKSOC1*/ if(arfcn == 113)
+/*MTKSOC1*/ SDM_IFM = 0;
+/*MTKSOC1*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 975~990 */
+/*MTKSOC1*/ Nfrac = (arfcn-975)*286790 + 3871665;
+/*MTKSOC1*/ *rfN = (150L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=1019)
+/*MTKSOC1*/ { /* ARFCN : 991~1019 */
+/*MTKSOC1*/ Nfrac = (arfcn-991)*286790 + 71698;
+/*MTKSOC1*/ *rfN = (151L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 1020~1023 */
+/*MTKSOC1*/ Nfrac = (arfcn-1020)*286790;
+/*MTKSOC1*/ *rfN = (152L<<10);
+/*MTKSOC1*/
+/*MTKSOC1*/ if(arfcn == 1020)
+/*MTKSOC1*/ SDM_IFM = 0;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ *ifN = (Nfrac>>10) | 0x0252000L; /* N_FRAC[22:10] | (CW2|OPLL_DIV4O5_DIV4|TRX|BAND|MODE(warm_up mode))*/
+/*MTKSOC1*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1*/
+/*MTKSOC1*/ break;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ case FrequencyBand1800 :
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=670)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=603)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=547)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=541)
+/*MTKSOC1*/ { /* ARFCN : 512~541 */
+/*MTKSOC1*/ Nfrac = (arfcn-529)*135848 + 6316927;
+/*MTKSOC1*/ *rfN = (138L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 0, 0, 519, 529, 540, 542);
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 542~547 */
+/*MTKSOC1*/ Nfrac = (arfcn-542)*137659 + 6848546;
+/*MTKSOC1*/ *rfN = (140L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ if(arfcn>=547)
+/*MTKSOC1*/ Nfrac++;
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 548~603 */
+/*MTKSOC1*/ Nfrac = (arfcn-581)*135848 + 4992410;
+/*MTKSOC1*/ *rfN = (139L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 550, 560, 570, 581, 591, 601);
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=665)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=608)
+/*MTKSOC1*/ { /* ARFCN : 604~608 */
+/*MTKSOC1*/ Nfrac = (arfcn-604)*137659 + 6994809;
+/*MTKSOC1*/ *rfN = (141L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 609~665 */
+/*MTKSOC1*/ Nfrac = (arfcn-643)*135848 + 5026372;
+/*MTKSOC1*/ *rfN = (140L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 612, 622, 632, 643, 653, 663);
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /* ARFCN : 666~670 */
+/*MTKSOC1*/ Nfrac = (arfcn-666)*137659 + 7141071;
+/*MTKSOC1*/ *rfN = (142L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ if(arfcn>=667)
+/*MTKSOC1*/ Nfrac++;
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=788)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=732)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=726)
+/*MTKSOC1*/ {/* ARFCN : 671~726 */
+/*MTKSOC1*/ Nfrac = (arfcn-704)*135848 + 4924486;
+/*MTKSOC1*/ *rfN = (141L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 673, 684, 694, 704, 715, 725);
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*ARFCN:727~732*/
+/*MTKSOC1*/ Nfrac = (arfcn-727)*137659 + 7149675;
+/*MTKSOC1*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ if(arfcn>=729)
+/*MTKSOC1*/ Nfrac++;
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*ARFCN:733~788*/
+/*MTKSOC1*/ Nfrac = (arfcn-766)*135848 + 4958448;
+/*MTKSOC1*/ *rfN = (142L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 735, 745, 756, 766, 776, 786);
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=850)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=794)
+/*MTKSOC1*/ {/*ARFCN:789~794*/
+/*MTKSOC1*/ Nfrac = (arfcn-789)*137659 + 7295938;
+/*MTKSOC1*/ *rfN = (144L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ if(arfcn>=792)
+/*MTKSOC1*/ Nfrac++;
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*ARFCN:795~850*/
+/*MTKSOC1*/ Nfrac = (arfcn-828)*135848 + 4992410;
+/*MTKSOC1*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 797, 806, 817, 828, 838, 848);
+/*MTKSOC1*/ /*End:*error compensation*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=855)
+/*MTKSOC1*/ {/*ARFCN:851~855*/
+/*MTKSOC1*/ Nfrac = (arfcn-851)*137659 + 7442201;
+/*MTKSOC1*/ *rfN = (145L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ if(arfcn>=854)
+/*MTKSOC1*/ Nfrac++;
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*ARFCN:856~885*/
+/*MTKSOC1*/ Nfrac = (arfcn-869)*135848 + 2173566;
+/*MTKSOC1*/ *rfN = (144L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ /*error compensation*/
+/*MTKSOC1*/ L1D_RF_Band1800_FrequecyFractionPartCompensation(arfcn, &Nfrac, 0, 0, 859, 869, 879, 885);
+/*MTKSOC1*/ /*End: error compensation*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ *ifN = (Nfrac>>10) | 0x0262000L | (OPLL_DIV4O5_DIV4<<19); /* N_FRAC[22:10] | (CW2|OPLL_DIV4O5_DIV4|TRX|BAND|MODE(warm_up mode))*/
+/*MTKSOC1*/ *rfN |= ((Nfrac&0x3FF) | 0x01C0000L); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1*/ break;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ case FrequencyBand1900 :
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=676)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=546)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=540)
+/*MTKSOC1*/ { /*ARFCN:512~540*/
+/*MTKSOC1*/ Nfrac = (arfcn-512)*122910 + 4578398;
+/*MTKSOC1*/ *rfN = (135L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /*ARFCN:541~546*/
+/*MTKSOC1*/ Nfrac = (arfcn-541)*121464 + 3112515;
+/*MTKSOC1*/ *rfN = (134L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=614)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=608)
+/*MTKSOC1*/ { /*ARFCN:547~608*/
+/*MTKSOC1*/ Nfrac = (arfcn-547)*122910 + 491640;
+/*MTKSOC1*/ *rfN = (136L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /*ARFCN:609~614*/
+/*MTKSOC1*/ Nfrac = (arfcn-609)*121464 + 2983460;
+/*MTKSOC1*/ *rfN = (135L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /*ARFCN:615~676*/
+/*MTKSOC1*/ Nfrac = (arfcn-615)*122910 + 460913;
+/*MTKSOC1*/ *rfN = (137L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=744)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=682)
+/*MTKSOC1*/ {/*ARFCN:677~682*/
+/*MTKSOC1*/ Nfrac = (arfcn-677)*121464 + 2854404;
+/*MTKSOC1*/ *rfN = (136L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /*ARFCN:683~744*/
+/*MTKSOC1*/ Nfrac = (arfcn-683)*122910 + 430185;
+/*MTKSOC1*/ *rfN = (138L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=750)
+/*MTKSOC1*/ {/*ARFCN:745~750*/
+/*MTKSOC1*/ Nfrac = (arfcn-745)*121464 + 2725349;
+/*MTKSOC1*/ *rfN = (137L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ OPLL_DIV4O5_DIV4 = 1;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ { /*ARFCN:751~810*/
+/*MTKSOC1*/ Nfrac = (arfcn-751)*122910 + 399458;
+/*MTKSOC1*/ *rfN = (139L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/
+/*MTKSOC1*/ *ifN = (Nfrac>>10) | 0x0272000L | (OPLL_DIV4O5_DIV4<<19); /* N_FRAC[22:10] | (CW2|OPLL_DIV4O5_DIV4|TRX|BAND|MODE(warm_up mode))*/
+/*MTKSOC1*/ *rfN |= ((Nfrac&0x3FF) | 0x0140000L); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1*/ break;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ default :
+/*MTKSOC1*/ {
+/*MTKSOC1*/ break;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/}
+/*MTKSOC1*//* =============================================================== */
+/*MTKSOC1*/
+/*MTKSOC1*/void L1D_RF_Band1800_FrequecyFractionPartCompensation(int arfcn, int *Nfrac, short arfcn1, short arfcn2, short arfcn3, short arfcn4, short arfcn5, short arfcn6)
+/*MTKSOC1*/{
+/*MTKSOC1*/ if(arfcn<arfcn4)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<arfcn2)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<arfcn1)
+/*MTKSOC1*/ *Nfrac+=4;
+/*MTKSOC1*/ else
+/*MTKSOC1*/ *Nfrac+=3;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<arfcn3)
+/*MTKSOC1*/ *Nfrac+=2;
+/*MTKSOC1*/ else
+/*MTKSOC1*/ *Nfrac+=1;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else if (arfcn>=arfcn5)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<arfcn6)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ *Nfrac-=1;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ *Nfrac-=2;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/}
+/*MTKSOC1*/
+/*MTKSOC1*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MTKSOC1*/{
+/*MTKSOC1*/ int Nfrac, SDM_IFM = 1;
+/*MTKSOC1*/ switch(rf_band)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ case FrequencyBand850 :
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=201)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=169)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=136)
+/*MTKSOC1*/ {/*arfcn:128~136*/
+/*MTKSOC1*/ Nfrac = (arfcn-128)*258111 + 6065609;
+/*MTKSOC1*/ *rfN = (133L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:137~169*/
+/*MTKSOC1*/ Nfrac = (arfcn-137)*258111;
+/*MTKSOC1*/ *rfN = (134L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:170~201*/
+/*MTKSOC1*/ Nfrac = (arfcn-170)*258111+129056;
+/*MTKSOC1*/ *rfN = (135L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=234)
+/*MTKSOC1*/ {/*arfcn:202~234*/
+/*MTKSOC1*/ Nfrac = (arfcn-202)*258111;
+/*MTKSOC1*/ *rfN = (136L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:235~251*/
+/*MTKSOC1*/ Nfrac = (arfcn-235)*258111+129056;
+/*MTKSOC1*/ *rfN = (137L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ *ifN = (Nfrac>>10)|0x0202000; /* CW2, TRX:0, BAND:0, MODE:1, N_RFC[22:10]*/
+/*MTKSOC1*/ if(Nfrac==0) SDM_IFM = 0;
+/*MTKSOC1*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1*/
+/*MTKSOC1*/ // Get GSM850 signal from GSM900 input pins if flag=1
+/*MTKSOC1*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *ifN |=0x0010000L ;
+/*MTKSOC1*/ break;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ case FrequencyBand900 :
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=102)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=37)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=4)
+/*MTKSOC1*/ {/*arfcn:0~4*/
+/*MTKSOC1*/ Nfrac = (arfcn)*258111+7098053;
+/*MTKSOC1*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:5~37*/
+/*MTKSOC1*/ Nfrac = (arfcn-5)*258111;
+/*MTKSOC1*/ *rfN = (144L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=69)
+/*MTKSOC1*/ {/*arfcn:38~69*/
+/*MTKSOC1*/ Nfrac = (arfcn-38)*258111+129056;
+/*MTKSOC1*/ *rfN = (145L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:70~102*/
+/*MTKSOC1*/ Nfrac = (arfcn-70)*258111;
+/*MTKSOC1*/ *rfN = (146L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=996)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=124)
+/*MTKSOC1*/ {/*arfcn:103~124*/
+/*MTKSOC1*/ Nfrac = (arfcn-103)*258111+129056;
+/*MTKSOC1*/ *rfN = (147L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:975~996*/
+/*MTKSOC1*/ Nfrac = (arfcn-975)*258111+2839221;
+/*MTKSOC1*/ *rfN = (142L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:997~1023*/
+/*MTKSOC1*/ Nfrac = (arfcn-997)*258111+129056;
+/*MTKSOC1*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/
+/*MTKSOC1*/ *ifN = (Nfrac>>10)|0x0212000; /* CW2, TRX:0, BAND:1, MODE:1, N_RFC[22:10]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ if(Nfrac==0) SDM_IFM = 0;
+/*MTKSOC1*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1*/
+/*MTKSOC1*/ // Get GSM900 signal from GSM850 input pins if flag=1
+/*MTKSOC1*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *ifN &= (~(0x0010000L));
+/*MTKSOC1*/ break;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ case FrequencyBand1800 :
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=715)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=585)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=520)
+/*MTKSOC1*/ {/*arfcn:512~520*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 456);
+/*MTKSOC1*/ *rfN = (138L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:521~585*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 521);
+/*MTKSOC1*/ *rfN = (139L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=650)
+/*MTKSOC1*/ {/*arfcn:586~650*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 586);
+/*MTKSOC1*/ *rfN = (140L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:651~715*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 651);
+/*MTKSOC1*/ *rfN = (141L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=845)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=780)
+/*MTKSOC1*/ {/*arfcn:716~780*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 716);
+/*MTKSOC1*/ *rfN = (142L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:781~845*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 781);
+/*MTKSOC1*/ *rfN = (143L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:846~885*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 846);
+/*MTKSOC1*/ *rfN = (144L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/
+/*MTKSOC1*/
+/*MTKSOC1*/ *ifN = (Nfrac>>10)|0x0222000; /* CW2, TRX:0, BAND:2, MODE:1, N_RFC[22:10]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ if(Nfrac==0) SDM_IFM = 0;
+/*MTKSOC1*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1*/
+/*MTKSOC1*/ // Get PCS1900 signal from DCS1800 input pins if flag=1
+/*MTKSOC1*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap ) *ifN |=0x0010000L ;
+/*MTKSOC1*/ break;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ case FrequencyBand1900 :
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=675)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=610)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=545)
+/*MTKSOC1*/ {/*arfcn:512~545*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 481);
+/*MTKSOC1*/ *rfN = (148L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:546~610*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 546);
+/*MTKSOC1*/ *rfN = (149L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:611~675*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 611);
+/*MTKSOC1*/ *rfN = (150L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=805)
+/*MTKSOC1*/ {
+/*MTKSOC1*/ if(arfcn<=740)
+/*MTKSOC1*/ {/*arfcn:676~740*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 676);
+/*MTKSOC1*/ *rfN = (151L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:741~805*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 741);
+/*MTKSOC1*/ *rfN = (152L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/ else
+/*MTKSOC1*/ {/*arfcn:806~810*/
+/*MTKSOC1*/ L1D_RF_GetRxPLL_HB_FractionPart(&Nfrac, arfcn, 806);
+/*MTKSOC1*/ *rfN = (153L<<10); /* N_INT[7:0]*/
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/
+/*MTKSOC1*/ *ifN = (Nfrac>>10)|0x0232000; /* CW2, TRX:0, BAND:2, MODE:1, N_RFC[22:10]*/
+/*MTKSOC1*/
+/*MTKSOC1*/ if(Nfrac==0) SDM_IFM = 0;
+/*MTKSOC1*/ *rfN |= ((Nfrac&0x3FF) | 0x0180000L | (SDM_IFM<<18) ); /* N_INT[7:0] | N_FRAC[9:0] | (CW1|OPLL_HLSIDE)| SDM_IFM)*/
+/*MTKSOC1*/ // Get DCS1800 signal from PCS1900 input pins if flag=1
+/*MTKSOC1*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap) *ifN &= (~(0x0010000L));
+/*MTKSOC1*/ break;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ default :
+/*MTKSOC1*/ {
+/*MTKSOC1*/ break;
+/*MTKSOC1*/ }
+/*MTKSOC1*/ }
+/*MTKSOC1*/}
+/*MTKSOC1*//* =============================================================== */
+/*MTKSOC1*/
+/*MTKSOC1*/void L1D_RF_GetRxPLL_HB_FractionPart(int *Nfrac, int arfcn, int arfcn_base)
+/*MTKSOC1*/{
+/*MTKSOC1*/ int Diff_arfcn;
+/*MTKSOC1*/
+/*MTKSOC1*/ Diff_arfcn = arfcn - arfcn_base;
+/*MTKSOC1*/ *Nfrac = (Diff_arfcn >>1) * 258111;
+/*MTKSOC1*/ if(Diff_arfcn & 0x1) *Nfrac += 129056;
+/*MTKSOC1*/}
+/*MTKSOC1*//* =============================================================== */
+#endif
+
+#if IS_RF_MT6252RF
+/*MT6252RF*/
+/*MT6252RF*/ static void L1D_RF_GetRxPLLifNrfN( int rf_band, short K, long *ifN, long *rfN )
+/*MT6252RF*/ {
+/*MT6252RF*/ int Nfrac = 64527*K + ( ( 3*K + 2 ) >> 2 );
+/*MT6252RF*/
+/*MT6252RF*/ /* CW2, TRX:0, BAND:0, MODE:010, N_RFC[22:10]*/
+/*MT6252RF*/ *ifN = ( Nfrac >> 10) | 0x0204000L | ( ( rf_band - 1 ) << 16 );
+/*MT6252RF*/
+/*MT6252RF*/ *rfN |= ( ( Nfrac&0x3FF ) | 0x0100000L );
+/*MT6252RF*/ }
+/*MT6252RF*/ /* ============================================================================= */
+/*MT6252RF*/
+/*MT6252RF*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6252RF*/ {
+/*MT6252RF*/ short D = 0, K = 0;
+/*MT6252RF*/ int Nfrac, DFM_LGCP_IOSTPOL;
+/*MT6252RF*/ switch(rf_band)
+/*MT6252RF*/ {
+/*MT6252RF*/ case FrequencyBand850 :
+/*MT6252RF*/ {
+/*MT6252RF*/ D = arfcn - 128;
+/*MT6252RF*/ K = 104 + 4*D - 130*( ( 1653 + 63*D ) >> 11 );
+/*MT6252RF*/
+/*MT6252RF*/ // Nint = 126 + ( ( 1653 + 63*D ) >> 11 ); *rfN = Nint << 10;
+/*MT6252RF*/ *rfN = ( 126 << 10 ) + (long)( ( ( 1653 + 63*D ) >> 1 ) & 0xFC00 );
+/*MT6252RF*/ break;
+/*MT6252RF*/ }
+/*MT6252RF*/ case FrequencyBand900 :
+/*MT6252RF*/ {
+/*MT6252RF*/ D = ( arfcn > 974 ) ? ( arfcn - 1024 ) : arfcn;
+/*MT6252RF*/ K = 250 + 4*D - 130*( ( 3953 + 63*D ) >> 11 );
+/*MT6252RF*/
+/*MT6252RF*/ // Nint = 135 + ( ( 3953 + 63 D ) >> 11 ); *rfN = Nint << 10;
+/*MT6252RF*/ *rfN = ( 135 << 10 ) + (long)( ( ( 3953 + 63*D ) >> 1 ) & 0xFC00 );
+/*MT6252RF*/ break;
+/*MT6252RF*/ }
+/*MT6252RF*/ case FrequencyBand1800 :
+/*MT6252RF*/ {
+/*MT6252RF*/ D = arfcn - 512;
+/*MT6252RF*/ K = 72 + 2*D - 130*( ( 2300 + 63*D ) >> 12 );
+/*MT6252RF*/
+/*MT6252RF*/ // Nint = 131 + ( ( 2300 + 63*D ) >> 12 ); *rfN = Nint << 10;
+/*MT6252RF*/ *rfN = ( 131 << 10 ) + (long)( ( ( 2300 + 63*D ) >> 2 ) & 0xFC00 );
+/*MT6252RF*/ break;
+/*MT6252RF*/ }
+/*MT6252RF*/ case FrequencyBand1900 :
+/*MT6252RF*/ {
+/*MT6252RF*/ D = arfcn - 512;
+/*MT6252RF*/ K = 42 + 2*D - 130*( ( 1355 + 63*D ) >> 12 );
+/*MT6252RF*/
+/*MT6252RF*/ // Nint = 142 + ( ( 1355 + 63*D ) >> 12 ); *rfN = Nint << 10;
+/*MT6252RF*/ *rfN = ( 142 << 10 ) + (long)( ( ( 1355 + 63*D ) >> 2 ) & 0xFC00 );
+/*MT6252RF*/ break;
+/*MT6252RF*/ }
+/*MT6252RF*/ default :
+/*MT6252RF*/ {
+/*MT6252RF*/ break;
+/*MT6252RF*/ }
+/*MT6252RF*/ }
+/*MT6252RF*/ DFM_LGCP_IOSTPOL = (27 < K && K < 37) || (49 < K && K < 59) || (113 < K && K < 129) ? 1 : 0;
+/*MT6252RF*/ Nfrac = 64527*K + ( ( 3*K + 2 ) >> 2 );
+/*MT6252RF*/
+/*MT6252RF*/ /* CW2: [27:20] | [19:18] | [17:16] | [15:13] | [12:0] */
+/*MT6252RF*/ /* Address[7:0] | TRX[1:0] | BAND[1:0] | MODE[2:0](warm_up mode) | N_FRAC[22:10] */
+/*MT6252RF*/ *ifN = ( Nfrac >> 10 ) | 0x0244000L | ( ( rf_band - 1 ) << 16 );
+/*MT6252RF*/
+/*MT6252RF*/ /* CW1: [27:20] | [19] | [18] | [17:10] | [9:0] */
+/*MT6252RF*/ /* Address[7:0] | DFM_SDM_DI_EN | DFM_LGCP_IOSTPOL | N_INT[7:0] | N_FRAC[9:0] */
+/*MT6252RF*/ *rfN |= ( ( Nfrac & 0x3FF ) | 0x0180000L | DFM_LGCP_IOSTPOL << 18 );
+/*MT6252RF*/ }
+/*MT6252RF*/ /* ============================================================================= */
+/*MT6252RF*/
+/*MT6252RF*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6252RF*/ {
+/*MT6252RF*/ short D = 0, K = 0;
+/*MT6252RF*/ switch(rf_band)
+/*MT6252RF*/ {
+/*MT6252RF*/ case FrequencyBand850 :
+/*MT6252RF*/ {
+/*MT6252RF*/ D = arfcn - 128;
+/*MT6252RF*/ K = 94 + 4*D - 130*( ( 1496 + 63*D ) >> 11 );
+/*MT6252RF*/
+/*MT6252RF*/ // Nint = 133 + ( ( 1496 + 63*D ) >> 11); *rfN = Nint << 10;
+/*MT6252RF*/ *rfN = ( 133 << 10 ) + (long)( ( ( 1496 + 63*D ) >> 1 ) & 0xFC00 );
+/*MT6252RF*/ L1D_RF_GetRxPLLifNrfN( rf_band, K, ifN, rfN );
+/*MT6252RF*/
+/*MT6252RF*/ // Get GSM850 signal from GSM900 input pins if flag = 1
+/*MT6252RF*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *ifN |=0x0010000L ;
+/*MT6252RF*/ break;
+/*MT6252RF*/ }
+/*MT6252RF*/ case FrequencyBand900 :
+/*MT6252RF*/ {
+/*MT6252RF*/ D = ( arfcn > 974 ) ? ( arfcn - 1024 ) : arfcn;
+/*MT6252RF*/ K = 240 + 4*D - 130*( ( 3796 + 63*D ) >> 11 );
+/*MT6252RF*/
+/*MT6252RF*/ // Nint = 142 + ( ( 3796 + 63 D ) >> 11); *rfN = Nint << 10;
+/*MT6252RF*/ *rfN = ( 142 << 10 ) + (long)( ( ( 3796 + 63*D ) >> 1 ) & 0xFC00 );
+/*MT6252RF*/ L1D_RF_GetRxPLLifNrfN( rf_band, K, ifN, rfN );
+/*MT6252RF*/
+/*MT6252RF*/ // Get GSM900 signal from GSM850 input pins if flag = 1
+/*MT6252RF*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap ) *ifN &= (~(0x0010000L));
+/*MT6252RF*/ break;
+/*MT6252RF*/ }
+/*MT6252RF*/ case FrequencyBand1800 :
+/*MT6252RF*/ {
+/*MT6252RF*/ D = arfcn - 512;
+/*MT6252RF*/ K = 112 + 2*D - 130*( ( 3560 + 63*D ) >> 12 );
+/*MT6252RF*/
+/*MT6252RF*/ // Nint = 138 + ( (3560 + 63 D) >> 12); *rfN = Nint << 10;
+/*MT6252RF*/ *rfN = ( 138 << 10 ) + (long)( ( ( 3560 + 63*D ) >> 2 ) & 0xFC00 );
+/*MT6252RF*/ L1D_RF_GetRxPLLifNrfN( rf_band, K, ifN, rfN );
+/*MT6252RF*/
+/*MT6252RF*/ // Get PCS1900 signal from DCS1800 input pins if flag = 1
+/*MT6252RF*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap ) *ifN |=0x0010000L ;
+/*MT6252RF*/ break;
+/*MT6252RF*/ }
+/*MT6252RF*/ case FrequencyBand1900 :
+/*MT6252RF*/ {
+/*MT6252RF*/ D = arfcn - 512;
+/*MT6252RF*/ K = 62 + 2*D - 130*( ( 1985 + 63*D ) >> 12 );
+/*MT6252RF*/
+/*MT6252RF*/ // Nint = 148 + ( ( 1985 + 63*D ) >> 12); *rfN = Nint << 10;
+/*MT6252RF*/ *rfN = ( 148 << 10 ) + (long)( ( ( 1985 + 63*D ) >> 2 ) & 0xFC00 );
+/*MT6252RF*/ L1D_RF_GetRxPLLifNrfN( rf_band, K, ifN, rfN );
+/*MT6252RF*/
+/*MT6252RF*/ // Get DCS1800 signal from PCS1900 input pins if flag = 1
+/*MT6252RF*/ if( BBTXParameters.bbrx_dcs1800_pcs1900_swap) *ifN &= (~(0x0010000L));
+/*MT6252RF*/ break;
+/*MT6252RF*/ }
+/*MT6252RF*/ }
+/*MT6252RF*/ }
+/*MT6252RF*/ /* ============================================================================= */
+#endif
+
+#if IS_RF_MT6256RF || IS_RF_MT6251RF || IS_RF_MT6255RF
+ #if IS_MT6256_DCR_MODE || IS_MT6251_DCR_MODE
+/*MT6256RF*/ //For DCR backup mode
+/*MT6256RF*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6256RF*/ { long *if_sel = ifN+1;
+/*MT6256RF*/ unsigned short Nint =0, CH_freq =0;
+/*MT6256RF*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6256RF*/
+/*MT6256RF*/ *if_sel = 2;
+/*MT6256RF*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6256RF*/
+/*MT6256RF*/ if( rf_band < FrequencyBand1800 )
+/*MT6256RF*/ { VCO_freq = 4*CH_freq; }
+/*MT6256RF*/ else
+/*MT6256RF*/ { VCO_freq = 2*CH_freq; }
+/*MT6256RF*/
+/*MT6256RF*/ Nint = VCO_freq/DCXO_FREQ;
+/*MT6256RF*/ Nfrac = ( ( (VCO_freq - Nint*DCXO_FREQ)<<23 ) + DCXO_FREQ/2 )/DCXO_FREQ;
+/*MT6256RF*/
+/*MT6256RF*/ // CW2, TRX:0, BAND, MODE: standby, N_RFC[22:10]
+/*MT6256RF*/ *ifN = BSI_CW( 0x02, 0x04000|(Nfrac>>10)|((rf_band-1)<<16) );
+/*MT6256RF*/ // CW1, DFM_LG_COE, N_INT[7:0], N_FRAC[9:0]
+/*MT6256RF*/ *rfN = BSI_CW( 0x01, 0xC0000|(Nfrac&0x3FF)|(Nint<<10) );
+/*MT6256RF*/
+/*MT6256RF*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap || BBTXParameters.bbrx_dcs1800_pcs1900_swap )
+/*MT6256RF*/ {
+/*MT6256RF*/ switch( rf_band )
+/*MT6256RF*/ {
+/*MT6256RF*/ case FrequencyBand850 :
+/*MT6256RF*/ case FrequencyBand1800 :
+/*MT6256RF*/ { *ifN |= 0x0010000L;
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ case FrequencyBand900 :
+/*MT6256RF*/ case FrequencyBand1900 :
+/*MT6256RF*/ { *ifN &= (~(0x0010000L));
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ default:
+/*MT6256RF*/ { break;
+/*MT6256RF*/ }
+/*MT6256RF*/ }
+/*MT6256RF*/ }
+/*MT6256RF*/ }
+/*MT6256RF*/ /* =========================================================================== */
+ #else
+/*MT6256RF*/ //For DLIF mode
+/*MT6256RF*/ void L1D_RF_Cal_Synthesizer_Params( unsigned short* Nint, unsigned long* Nfrac, unsigned long VCO_freq )
+/*MT6256RF*/ {
+/*MT6256RF*/ *Nint = VCO_freq/(DCXO_FREQ*DLIF_SCALE);
+/*MT6256RF*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6256RF*/ *Nfrac = ( ( (VCO_freq - *Nint*DCXO_FREQ*DLIF_SCALE)<<15 ) + 195/2 )/195;
+/*MT6256RF*/ }
+/*MT6256RF*/ /* =========================================================================== */
+/*MT6256RF*/
+/*MT6256RF*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6256RF*/ {
+ #if IS_W_CANCELLATION_SUPPORT
+/*MT6256RF*/ if( L1D_CheckIfMetaMode() )
+/*MT6256RF*/ { return l1d_rf.if_state; }
+/*MT6256RF*/ else
+/*MT6256RF*/ { return 0; }
+ #else
+/*MT6256RF*/ return 0;
+ #endif
+/*MT6256RF*/ }
+/*MT6256RF*/ /* =========================================================================== */
+/*MT6256RF*/
+/*MT6256RF*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6256RF*/ { long *if_sel = ifN+1;
+/*MT6256RF*/ unsigned short Nint =0, CH_freq =0;
+/*MT6256RF*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6256RF*/ unsigned long frac_spurs_thd0=0, frac_spurs_thd1=0;
+/*MT6256RF*/ unsigned char IF_state=0; //IF_state=0:default, IF_state=1:+IF, IF_state=2:-IF
+/*MT6256RF*/
+/*MT6256RF*/ IF_state = L1D_RF_Cal_IF_Synth_State();
+/*MT6256RF*/
+/*MT6256RF*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6256RF*/
+/*MT6256RF*/ if( IF_state != 2 )
+/*MT6256RF*/ {
+/*MT6256RF*/ *if_sel = 0;
+/*MT6256RF*/ if( rf_band < FrequencyBand1800 )
+/*MT6256RF*/ {
+/*MT6256RF*/ VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6256RF*/ frac_spurs_thd0 = 193584;
+/*MT6256RF*/ frac_spurs_thd1 = 8195024;
+/*MT6256RF*/ }
+/*MT6256RF*/ else
+/*MT6256RF*/ {
+/*MT6256RF*/ VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6256RF*/ frac_spurs_thd0 = 96792;
+/*MT6256RF*/ frac_spurs_thd1 = 8291816;
+/*MT6256RF*/ }
+/*MT6256RF*/ L1D_RF_Cal_Synthesizer_Params( &Nint, &Nfrac, VCO_freq );
+/*MT6256RF*/ }
+/*MT6256RF*/
+/*MT6256RF*/ if( IF_state != 1 )
+/*MT6256RF*/ {
+/*MT6256RF*/ // check fractional spurs criterion (for run-time) or IRR state (for IRR calibration)
+/*MT6256RF*/ if( ( Nfrac < frac_spurs_thd0 ) || ( Nfrac > frac_spurs_thd1) || ( Nfrac < 4258832 && Nfrac > 4129776 ) || ( IF_state == 2 ) )
+/*MT6256RF*/ {
+/*MT6256RF*/ *if_sel = 1; //-170k
+/*MT6256RF*/ if( rf_band < FrequencyBand1800 )
+/*MT6256RF*/ { VCO_freq = 4*(CH_freq*DLIF_SCALE + DLIF); } //Low-side mixing
+/*MT6256RF*/ else
+/*MT6256RF*/ { VCO_freq = 2*(CH_freq*DLIF_SCALE + DLIF); } //Low-side mixing
+/*MT6256RF*/
+/*MT6256RF*/ L1D_RF_Cal_Synthesizer_Params( &Nint, &Nfrac, VCO_freq );
+/*MT6256RF*/ }
+/*MT6256RF*/ }
+/*MT6256RF*/
+ #if IS_OBB_DETECTION_SUPPORT
+/*MT6256RF*/ if( !L1D_CheckIfMetaMode() )
+/*MT6256RF*/ {
+/*MT6256RF*/ if( l1d_rf.if_change == -1 && arfcn == l1d_rf.obb_arfcn )
+/*MT6256RF*/ {
+/*MT6256RF*/ signed short if_sign = l1d_rf.if_change*(*if_sel*2-1);
+/*MT6256RF*/
+/*MT6256RF*/ *if_sel = if_sign > 0 ? 1 : 0;
+/*MT6256RF*/ if( rf_band < FrequencyBand1800 )
+/*MT6256RF*/ { VCO_freq = 4*(CH_freq*DLIF_SCALE + if_sign*DLIF); }
+/*MT6256RF*/ else
+/*MT6256RF*/ { VCO_freq = 2*(CH_freq*DLIF_SCALE + if_sign*DLIF); }
+/*MT6256RF*/
+/*MT6256RF*/ L1D_RF_Cal_Synthesizer_Params( &Nint, &Nfrac, VCO_freq );
+/*MT6256RF*/ }
+/*MT6256RF*/ }
+ #endif
+/*MT6256RF*/ // CW2, TRX:0, BAND, MODE: standby, N_RFC[22:10]
+/*MT6256RF*/ *ifN = BSI_CW( 0x02, 0x04000|(Nfrac>>10)|((rf_band-1)<<16) );
+/*MT6256RF*/ // CW1, DFM_LG_COE, N_INT[7:0], N_FRAC[9:0]
+/*MT6256RF*/ *rfN = BSI_CW( 0x01, 0xC0000|(Nfrac&0x3FF)|(Nint<<10) );
+/*MT6256RF*/
+/*MT6256RF*/ if( BBTXParameters.bbrx_gsm850_gsm900_swap || BBTXParameters.bbrx_dcs1800_pcs1900_swap )
+/*MT6256RF*/ {
+/*MT6256RF*/ switch( rf_band )
+/*MT6256RF*/ {
+/*MT6256RF*/ case FrequencyBand850 :
+/*MT6256RF*/ case FrequencyBand1800 :
+/*MT6256RF*/ { *ifN |= 0x0010000L;
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ case FrequencyBand900 :
+/*MT6256RF*/ case FrequencyBand1900 :
+/*MT6256RF*/ { *ifN &= (~(0x0010000L));
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ default:
+/*MT6256RF*/ { break;
+/*MT6256RF*/ }
+/*MT6256RF*/ }
+/*MT6256RF*/ }
+/*MT6256RF*/ }
+/*MT6256RF*/ /* =========================================================================== */
+ #endif
+/*MT6256RF*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6256RF*/ {
+/*MT6256RF*/ unsigned short Nint =0, CH_freq =0;
+/*MT6256RF*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6256RF*/
+/*MT6256RF*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_GetSData_ST2()
+/*MT6256RF*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6256RF*/
+/*MT6256RF*/ if( rf_band < FrequencyBand1800 )
+/*MT6256RF*/ { VCO_freq = 4*CH_freq; }
+/*MT6256RF*/ else
+/*MT6256RF*/ { VCO_freq = 2*CH_freq; }
+/*MT6256RF*/
+/*MT6256RF*/ Nint = VCO_freq/DCXO_FREQ;
+/*MT6256RF*/ Nfrac = ( ((VCO_freq-Nint*DCXO_FREQ)<<23) + DCXO_FREQ/2 )/DCXO_FREQ; //+DCXO_freq/2 is for rounding
+/*MT6256RF*/
+/*MT6256RF*/ // CW2, TRX:1, BAND, MODE: standby, N_RFC[22:10]
+/*MT6256RF*/ *ifN = BSI_CW( 0x02, 0x44000|(Nfrac>>10)|((rf_band-1)<<16) );
+/*MT6256RF*/ // CW1, DFM_LG_COE, N_INT[7:0], N_FRAC[9:0]
+/*MT6256RF*/ *rfN = BSI_CW( 0x01, 0xC0000|(Nfrac&0x3FF)|(Nint<<10) );
+ #if IS_CHIP_MT6256_S00 || IS_CHIP_MT6251_S00
+ /* Do nothing */
+ #elif IS_CHIP_MT6256 || IS_CHIP_MT6255
+/*MT6256RF*/ if( ( Nfrac>=225847 && Nfrac<=419430 ) || ( Nfrac>=1000180 && Nfrac<=1193763 ) ||
+/*MT6256RF*/ ( Nfrac>=1903568 && Nfrac<=2097152 ) || ( Nfrac>=3452234 && Nfrac<=3645818 ) ||
+/*MT6256RF*/ ( Nfrac>=4484678 && Nfrac<=4678262 ) || ( Nfrac>=5000900 && Nfrac<=5065428 ) ||
+/*MT6256RF*/ ( Nfrac>=5517122 && Nfrac<=5581650 ) || ( Nfrac>=7452955 && Nfrac<=7904649 )
+/*MT6256RF*/ )
+/*MT6256RF*/ { /*CW1, DFM_LG_COE = 0*/
+/*MT6256RF*/ *rfN &= ~(1<<19);
+/*MT6256RF*/ }
+ #elif IS_CHIP_MT6251
+/*MT6251RF*/ if( ( Nfrac>=1774513 && Nfrac<=2355264 ) || ( Nfrac>=2936012 && Nfrac<=3129597 ) ||
+/*MT6251RF*/ ( Nfrac>=3452235 && Nfrac<=3516763 ) || ( Nfrac>=3968457 && Nfrac<=4162041 ) ||
+/*MT6251RF*/ ( Nfrac>=6162401 && Nfrac<=6355983 ) || ( Nfrac>=6807678 && Nfrac<=7130316 ) ||
+/*MT6251RF*/ ( Nfrac>=7711067 && Nfrac<=8033705 ) )
+/*MT6251RF*/ { /*CW1, DFM_LG_COE = 0*/
+/*MT6251RF*/ *rfN &= ~(1<<19);
+/*MT6251RF*/ }
+ #endif
+/*MT6256RF*/ }
+/*MT6256RF*/ /* =========================================================================== */
+/*MT6256RF*/
+/*MT6256RF*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6256RF*/ {
+/*MT6256RF*/ unsigned short freq=4450+225;
+/*MT6256RF*/ switch( rf_band )
+/*MT6256RF*/ {
+/*MT6256RF*/ case FrequencyBand850 :
+/*MT6256RF*/ {
+/*MT6256RF*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ case FrequencyBand900 :
+/*MT6256RF*/ {
+/*MT6256RF*/ if( arfcn<=124 )
+/*MT6256RF*/ { freq=4450+arfcn+225; }
+/*MT6256RF*/ else
+/*MT6256RF*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ case FrequencyBand1800 :
+/*MT6256RF*/ {
+/*MT6256RF*/ freq=8551+(arfcn-512)+475;
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ case FrequencyBand1900 :
+/*MT6256RF*/ {
+/*MT6256RF*/ freq=9251+(arfcn-512)+400;
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ default :
+/*MT6256RF*/ {
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ }
+/*MT6256RF*/
+/*MT6256RF*/ return freq;
+/*MT6256RF*/ }
+/*MT6256RF*/ /* =========================================================================== */
+/*MT6256RF*/
+/*MT6256RF*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6256RF*/ {
+/*MT6256RF*/ unsigned short freq=4450;
+/*MT6256RF*/ switch( rf_band )
+/*MT6256RF*/ {
+/*MT6256RF*/ case FrequencyBand850 :
+/*MT6256RF*/ {
+/*MT6256RF*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ case FrequencyBand900 :
+/*MT6256RF*/ {
+/*MT6256RF*/ if( arfcn<=124 )
+/*MT6256RF*/ { freq=4450+arfcn; }
+/*MT6256RF*/ else
+/*MT6256RF*/ { freq=4450+(arfcn-1024); }
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ case FrequencyBand1800 :
+/*MT6256RF*/ {
+/*MT6256RF*/ freq=8551+(arfcn-512);
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ case FrequencyBand1900 :
+/*MT6256RF*/ {
+/*MT6256RF*/ freq=9251+(arfcn-512);
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ default :
+/*MT6256RF*/ {
+/*MT6256RF*/ break;
+/*MT6256RF*/ }
+/*MT6256RF*/ }
+/*MT6256RF*/
+/*MT6256RF*/ return freq;
+/*MT6256RF*/ }
+/*MT6256RF*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_SKY74045
+/*SKY74045*/
+/*SKY74045*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*SKY74045*/ { int Nfrac=0;
+/*SKY74045*/
+/*SKY74045*/ switch(rf_band)
+/*SKY74045*/ {
+/*SKY74045*/ case FrequencyBand850 :
+/*SKY74045*/ {
+/*SKY74045*/ if (arfcn <= 180)
+/*SKY74045*/ { if (arfcn <= 136) /* ARFCN : 128~136 */
+/*SKY74045*/ { Nfrac = 3323179 + 96792*(arfcn-128) - ((arfcn-128)>>2) ;
+/*SKY74045*/ *rfN = 0x008538 | (96L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 137~180 */
+/*SKY74045*/ { Nfrac = 96791*(arfcn-137) + ((arfcn-137)>>2) +3 ;
+/*SKY74045*/ *rfN = 0x008538 | (97L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { if (arfcn <= 223) /* ARFCN : 181~223 */
+/*SKY74045*/ { Nfrac = 64528 + 96792*(arfcn-181) - ((arfcn-181)>>2) -3 ;
+/*SKY74045*/ *rfN = 0x008538 | (98L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 224~251 */
+/*SKY74045*/ { Nfrac = 32264 + 96792*(arfcn-224) - ((arfcn-224)>>2) -2 ;
+/*SKY74045*/ *rfN = 0x008538 | (99L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ break;
+/*SKY74045*/ }
+/*SKY74045*/ case FrequencyBand900 :
+/*SKY74045*/ {
+/*SKY74045*/ if (arfcn <=113)
+/*SKY74045*/ { if (arfcn<=26) /* ARFCN : 0~26 */
+/*SKY74045*/ { Nfrac = 1613194 + 96792*arfcn - (arfcn>>2) - 2 ;
+/*SKY74045*/ *rfN = 0x008538 | (104L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else if (arfcn<=69) /* ARFCN : 27~69 */
+/*SKY74045*/ { Nfrac = 32264 + (96792*(arfcn-27)) - ((arfcn-27)>>2) - 3 ;
+/*SKY74045*/ *rfN = 0x008538 | (105L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 70~113 */
+/*SKY74045*/ { Nfrac = (96791*(arfcn-70)) + ((arfcn-70)>>1) + 3 ;
+/*SKY74045*/ *rfN = 0x008538 | (106L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { if (arfcn<=1007)
+/*SKY74045*/ { if (arfcn<=124) /* ARFCN : 114~124 */
+/*SKY74045*/ { Nfrac = 64528 + (96792*(arfcn-114)) - ((arfcn-114)>>2) ;
+/*SKY74045*/ *rfN = 0x008538 | (107L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 975~1007 */
+/*SKY74045*/ { Nfrac = 1064708 + (96792*(arfcn-975)) - ((arfcn-975)>>2) - 2 ;
+/*SKY74045*/ *rfN = 0x008538 | (103L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 1008~1023 */
+/*SKY74045*/ { Nfrac = 64528 + (96792*(arfcn-1008)) - ((arfcn-1008)>>2) - 2 ;
+/*SKY74045*/ *rfN = 0x008538 | (104L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ break;
+/*SKY74045*/ }
+/*SKY74045*/ case FrequencyBand1800 :
+/*SKY74045*/ {
+/*SKY74045*/ if (arfcn<=715)
+/*SKY74045*/ { if(arfcn<=542) /* ARFCN : 512~542 */
+/*SKY74045*/ { Nfrac = 2710166 + (48396*(arfcn-512)) - ((arfcn-512)>>2);
+/*SKY74045*/ *rfN = 0x008568 | (100L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else if (arfcn<=629) /* ARFCN : 543~629 */
+/*SKY74045*/ { Nfrac = 16132 + (48396*(arfcn-543)) - ((arfcn-543)>>2) +2 ;
+/*SKY74045*/ *rfN = 0x008568 | (101L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 630~715 */
+/*SKY74045*/ { Nfrac = 32264 + (48396*(arfcn-630)) - ((arfcn-630)>>2) +2 ;
+/*SKY74045*/ *rfN = 0x008568 | (102L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { if (arfcn<=802) /* ARFCN : 716~802 */
+/*SKY74045*/ { Nfrac = (48396*(arfcn-716)) - ((arfcn-716)>>2) +2 ;
+/*SKY74045*/ *rfN = 0x008568 | (103L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 803~885 */
+/*SKY74045*/ { Nfrac = 16132 + (48396*(arfcn-803)) - ((arfcn-803)>>2) +2 ;
+/*SKY74045*/ *rfN = 0x008568 | (104L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ break;
+/*SKY74045*/ }
+/*SKY74045*/ case FrequencyBand1900 :
+/*SKY74045*/ {
+/*SKY74045*/ if (arfcn<=697)
+/*SKY74045*/ { if(arfcn<=524) /* ARFCN : 512~524 */
+/*SKY74045*/ { Nfrac = 3597422 + (48396*(arfcn-512)) - ((arfcn-512)>>2) ;
+/*SKY74045*/ *rfN = 0x008568 | (107L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else if (arfcn<=610) /* ARFCN : 525~610 */
+/*SKY74045*/ { Nfrac = 32264 + (48396*(arfcn-525)) - ((arfcn-525)>>2) +2 ;
+/*SKY74045*/ *rfN = 0x008568 | (108L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 611~697 */
+/*SKY74045*/ { Nfrac = (48396*(arfcn-611)) - ((arfcn-611)>>2) +2 ;
+/*SKY74045*/ *rfN = 0x008568 | (109L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { if (arfcn<=784) /* ARFCN : 698~784 */
+/*SKY74045*/ { Nfrac = 16132 + (48396*(arfcn-698)) - ((arfcn-698)>>2) +2 ;
+/*SKY74045*/ *rfN = 0x008568 | (110L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 785~810 */
+/*SKY74045*/ { Nfrac = 32264 + (48396*(arfcn-785)) - ((arfcn-785)>>2) ;
+/*SKY74045*/ *rfN = 0x008568 | (111L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ break;
+/*SKY74045*/ }
+/*SKY74045*/ default :
+/*SKY74045*/ {
+/*SKY74045*/ break;
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ *ifN = 0x2 | (Nfrac<<2);
+/*SKY74045*/ }
+/*SKY74045*/ /* =========================================================================== */
+/*SKY74045*/
+/*SKY74045*/ char SKY_d_flag = 0;
+/*SKY74045*/ char SKY_TXCP = 0; //tx charge pump current choice
+/*SKY74045*/
+/*SKY74045*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*SKY74045*/ { int Nfrac=0;
+/*SKY74045*/
+/*SKY74045*/ switch(rf_band)
+/*SKY74045*/ {
+/*SKY74045*/ case FrequencyBand850 :
+/*SKY74045*/ {
+/*SKY74045*/ if (arfcn <= 186)
+/*SKY74045*/ { if (arfcn <= 147) /* ARFCN : 128~147 */
+/*SKY74045*/ { SKY_d_flag = 0x0; //D = 9
+/*SKY74045*/ Nfrac = 2044723 + 108891*(arfcn-128) - ((arfcn-128)>>2) -2 ;
+/*SKY74045*/ *rfN = 0x008538 | (103L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 148~186 */
+/*SKY74045*/ { if ( (arfcn ==166) || (arfcn ==168) )
+/*SKY74045*/ { SKY_d_flag = 0x2; //D = 10
+/*SKY74045*/ Nfrac = 591504 + (arfcn - 166)*107546 ;
+/*SKY74045*/ *rfN = 0x008538 | (103L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { SKY_d_flag = 0x0; //D = 9
+/*SKY74045*/ Nfrac = 28231 + 108891*(arfcn-148) - ((arfcn-148)>>2) -4 ;
+/*SKY74045*/ *rfN = 0x008538 | (104L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ {
+/*SKY74045*/ if (arfcn <= 224) /* ARFCN : 187~224 */
+/*SKY74045*/ { SKY_d_flag = 0x0; //D = 9
+/*SKY74045*/ Nfrac = 80660 + 108891*(arfcn-187) - ((arfcn-187)>>2) -4 ;
+/*SKY74045*/ *rfN = 0x008538 | (105L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 225~251 */
+/*SKY74045*/ { if ( (arfcn == 243) || (arfcn == 244) )
+/*SKY74045*/ { SKY_d_flag = 0x2; //D = 10
+/*SKY74045*/ Nfrac = 483958 + (arfcn - 243)*107546 ;
+/*SKY74045*/ *rfN = 0x008538 | (105L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { SKY_d_flag = 0x0; //D = 9
+/*SKY74045*/ Nfrac = 24198 + 108891*(arfcn-225) - ((arfcn-225)>>2) -3 ;
+/*SKY74045*/ *rfN = 0x008538 | (106L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ break;
+/*SKY74045*/ }
+/*SKY74045*/ case FrequencyBand900 :
+/*SKY74045*/ {
+/*SKY74045*/ if(arfcn<=99)
+/*SKY74045*/ { if(arfcn<=54)
+/*SKY74045*/ { if(arfcn<=34) /* ARFCN : 0~34 */
+/*SKY74045*/ { if (arfcn == 18)
+/*SKY74045*/ { SKY_d_flag = 0x2; //D = 10
+/*SKY74045*/ Nfrac = 268866;
+/*SKY74045*/ *rfN = 0x008538 | (111L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { SKY_d_flag = 0x0; //D = 9
+/*SKY74045*/ Nfrac = 120990 + (108891*arfcn) - (arfcn>>2) -4 ;
+/*SKY74045*/ *rfN = 0x008538 | (112L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 35~54 */
+/*SKY74045*/ { SKY_d_flag = 0x2; //D = 10
+/*SKY74045*/ Nfrac = 2097152 + (107546*(arfcn-35)) - ((arfcn-35)>>2) ;
+/*SKY74045*/ *rfN = 0x008538 | (111L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { if(arfcn<=90) /* ARFCN : 55~90 */
+/*SKY74045*/ { SKY_d_flag = 0x2; //D = 10
+/*SKY74045*/ Nfrac = 53773 + (107546*(arfcn-55)) - ((arfcn-55)>>2) ;
+/*SKY74045*/ *rfN = 0x008538 | (112L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 91~99 */
+/*SKY74045*/ { SKY_d_flag = 0x1; //D = 11
+/*SKY74045*/ Nfrac = 3236067 + (106471*(arfcn-91)) - ((arfcn-91)>>2) ;
+/*SKY74045*/ *rfN = 0x008538 | (111L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { if(arfcn<=984)
+/*SKY74045*/ { if(arfcn<=124) /* ARFCN : 100~124 */
+/*SKY74045*/ { SKY_d_flag = 0x1; //D = 11
+/*SKY74045*/ Nfrac = (106471*(arfcn-100)) - ((arfcn-100)>>2) ;
+/*SKY74045*/ *rfN = 0x008538 | (112L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 975~984 */
+/*SKY74045*/ { SKY_d_flag = 0x0; //D = 9
+/*SKY74045*/ Nfrac = 3173959 + (108891*(arfcn-975)) - ((arfcn-975)>>2) -1 ;
+/*SKY74045*/ *rfN = 0x008538 | (110L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { if (arfcn == 1023) /* ARFCN : 1023 */
+/*SKY74045*/ { SKY_d_flag = 0x0; //D = 9
+/*SKY74045*/ Nfrac = 12099;
+/*SKY74045*/ *rfN = 0x008538 | (112L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 985~1022 */
+/*SKY74045*/ { SKY_d_flag = 0x0; //D = 9
+/*SKY74045*/ Nfrac = 68561 + (108891*(arfcn-985)) - ((arfcn-985)>>2) -4 ;
+/*SKY74045*/ *rfN = 0x008538 | (111L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/
+/*SKY74045*/ /* choose tx cp current */
+/*SKY74045*/ if (arfcn<100)
+/*SKY74045*/ SKY_TXCP = 0;
+/*SKY74045*/ else
+/*SKY74045*/ SKY_TXCP = 1;
+/*SKY74045*/
+/*SKY74045*/ break;
+/*SKY74045*/ }
+/*SKY74045*/ case FrequencyBand1800 :
+/*SKY74045*/ {
+/*SKY74045*/ if (arfcn <= 740)
+/*SKY74045*/ {
+/*SKY74045*/ if(arfcn<=576) /* ARFCN : 512~576 */
+/*SKY74045*/ {
+/*SKY74045*/ if ( (arfcn == 534) || (arfcn == 538) )
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x2; //D = 14
+/*SKY74045*/ Nfrac = 77312 + (arfcn-534)*51135 ;
+/*SKY74045*/ *rfN = 0x008568 | (101L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x0; //D = 13
+/*SKY74045*/ Nfrac = 864540 + (51359*(arfcn-512)) - ((arfcn-512)>>2) +2 ;
+/*SKY74045*/ *rfN = 0x008568 | (101L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else if (arfcn <= 658) /* ARFCN : 577~658 */
+/*SKY74045*/ {
+/*SKY74045*/ if ( (arfcn == 618) || (arfcn == 620) )
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x2; //D = 14
+/*SKY74045*/ Nfrac = 178364 + (arfcn-618)*51135 ;
+/*SKY74045*/ *rfN = 0x008568 | (102L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x0; //D = 13
+/*SKY74045*/ Nfrac = 8560 + (51359*(arfcn-577)) - ((arfcn-577)>>2) +3 ;
+/*SKY74045*/ *rfN = 0x008568 | (102L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 659~740 */
+/*SKY74045*/ {
+/*SKY74045*/ if ( (arfcn == 697) || (arfcn == 699) || (arfcn == 702) )
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x2; //D = 14
+/*SKY74045*/ Nfrac = 23741 + (arfcn-697)*51135 ;
+/*SKY74045*/ *rfN = 0x008568 | (103L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x0; //D = 13
+/*SKY74045*/ Nfrac = 25679 + (51359*(arfcn-659)) - ((arfcn-659)>>2) +3 ;
+/*SKY74045*/ *rfN = 0x008568 | (103L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ {
+/*SKY74045*/ if (arfcn <= 821) /* ARFCN : 741~821 */
+/*SKY74045*/ {
+/*SKY74045*/ if ( (arfcn == 779) || (arfcn == 783) || (arfcn == 791) )
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x2; //D = 14
+/*SKY74045*/ Nfrac = 22524 + (arfcn-779)*51135 ;
+/*SKY74045*/ *rfN = 0x008568 | (104L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x0; //D = 13
+/*SKY74045*/ Nfrac = 42799 + (51359*(arfcn-741)) - ((arfcn-741)>>2) +3 ;
+/*SKY74045*/ *rfN = 0x008568 | (104L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 822~885 */
+/*SKY74045*/ {
+/*SKY74045*/ if (arfcn == 860)
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x2; //D = 14
+/*SKY74045*/ Nfrac = 4164475;
+/*SKY74045*/ *rfN = 0x008568 | (104L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else if ( (arfcn == 863) || (arfcn == 865) )
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x2; //D = 14
+/*SKY74045*/ Nfrac = 123577 + (arfcn-863)*51135 ;
+/*SKY74045*/ *rfN = 0x008568 | (105L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ {
+/*SKY74045*/ SKY_d_flag = 0x0; //D = 13
+/*SKY74045*/ Nfrac = 8560 + (51359*(arfcn-822)) - ((arfcn-822)>>2) +1 ;
+/*SKY74045*/ *rfN = 0x008568 | (105L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ /* choose tx cp current */
+/*SKY74045*/ if (arfcn<661)
+/*SKY74045*/ SKY_TXCP = 0;
+/*SKY74045*/ else
+/*SKY74045*/ SKY_TXCP = 1;
+/*SKY74045*/
+/*SKY74045*/ break;
+/*SKY74045*/ }
+/*SKY74045*/ case FrequencyBand1900 :
+/*SKY74045*/ {
+/*SKY74045*/ if(arfcn<=652)
+/*SKY74045*/ {
+/*SKY74045*/ if(arfcn<=570) /* ARFCN : 512~570 */
+/*SKY74045*/ {
+/*SKY74045*/ if ( (arfcn == 530) || (arfcn == 532) )
+/*SKY74045*/ { SKY_d_flag = 0x3; //D = 16
+/*SKY74045*/ Nfrac = 2977268 + (arfcn-530)*50776 ;
+/*SKY74045*/ *rfN = 0x008568 | (108L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { SKY_d_flag = 0x2; //D = 14
+/*SKY74045*/ Nfrac = 1192546 + (51135*(arfcn-512)) - ((arfcn-512)>>2) -1 ;
+/*SKY74045*/ *rfN = 0x008568 | (109L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 571~652 */
+/*SKY74045*/ {
+/*SKY74045*/ if ( (arfcn == 609) || (arfcn == 610) || (arfcn == 612) || (arfcn == 614) | (arfcn == 628))
+/*SKY74045*/ { SKY_d_flag = 0x3; //D = 16
+/*SKY74045*/ Nfrac = 2794263 + (arfcn-609)*50776 ;
+/*SKY74045*/ *rfN = 0x008568 | (109L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { SKY_d_flag = 0x2; //D = 14
+/*SKY74045*/ Nfrac = 15219 + (51135*(arfcn-571)) - ((arfcn-571)>>2) -2 ;
+/*SKY74045*/ *rfN = 0x008568 | (110L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ {
+/*SKY74045*/ if(arfcn<=734) /* ARFCN : 653~734 */
+/*SKY74045*/ {
+/*SKY74045*/ if ( (arfcn == 694) || (arfcn == 696) )
+/*SKY74045*/ { SKY_d_flag = 0x3; //D = 16
+/*SKY74045*/ Nfrac = 2915914 + (arfcn-694)*50776 ;
+/*SKY74045*/ *rfN = 0x008568 | (110L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { SKY_d_flag = 0x2; //D = 14
+/*SKY74045*/ Nfrac = 14001 + (51135*(arfcn-653)) - ((arfcn-653)>>2) -1 ;
+/*SKY74045*/ *rfN = 0x008568 | (111L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ else /* ARFCN : 735~810 */
+/*SKY74045*/ {
+/*SKY74045*/ if ( (arfcn == 773) || (arfcn == 774) || (arfcn == 776) || (arfcn == 778) )
+/*SKY74045*/ { SKY_d_flag = 0x3; //D = 16
+/*SKY74045*/ Nfrac = 2732909 + (arfcn-773)*50776 ;
+/*SKY74045*/ *rfN = 0x008568 | (111L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ else
+/*SKY74045*/ { SKY_d_flag = 0x2; //D = 14
+/*SKY74045*/ Nfrac = 12784 + (51135*(arfcn-735)) - ((arfcn-735)>>2) -2 ;
+/*SKY74045*/ *rfN = 0x008568 | (112L<<16);
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/
+/*SKY74045*/ /* choose tx cp current */
+/*SKY74045*/ if (arfcn<611)
+/*SKY74045*/ SKY_TXCP = 0;
+/*SKY74045*/ else
+/*SKY74045*/ SKY_TXCP = 1;
+/*SKY74045*/
+/*SKY74045*/ break;
+/*SKY74045*/ }
+/*SKY74045*/ default :
+/*SKY74045*/ {
+/*SKY74045*/ break;
+/*SKY74045*/ }
+/*SKY74045*/ }
+/*SKY74045*/ *ifN = 0x2 | (Nfrac<<2);
+/*SKY74045*/ }
+/*SKY74045*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_AERO2
+/*AERO2*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*AERO2*/ {
+/*AERO2*/ int BandInd = (~rf_band )& 0x01; /* 1:GSM/PCS, 0:GSM850/DCS */
+/*AERO2*/ *rfN = (BandInd<<16) | (arfcn<<6) | 0x00021L;
+/*AERO2*/ *ifN = 0;
+/*AERO2*/ }
+/*AERO2*/ /* =========================================================================== */
+/*AERO2*/
+/*AERO2*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*AERO2*/ {
+/*AERO2*/ int BandInd = (~rf_band )& 0x01; /* 1:GSM/PCS, 0:GSM850/DCS */
+/*AERO2*/ *rfN = (BandInd<<16) | (arfcn<<6) | 0x00021L;
+/*AERO2*/ *ifN = 0;
+/*AERO2*/ }
+/*AERO2*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_SKY74137
+/*SKY74137*/
+/*SKY74137*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*SKY74137*/ { int Nfrac=0;
+/*SKY74137*/
+/*SKY74137*/ switch(rf_band)
+/*SKY74137*/ {
+/*SKY74137*/ case FrequencyBand850 :
+/*SKY74137*/ {
+/*SKY74137*/ if (arfcn <= 201)
+/*SKY74137*/ { if (arfcn <= 158) /* ARFCN : 128~158 */
+/*SKY74137*/ { Nfrac = 1226027 + 96792*(arfcn-128) - ((arfcn-128)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (97L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 159~201 */
+/*SKY74137*/ { Nfrac = 32264 + 96791*(arfcn-159) + ((arfcn-159)>>1) +3 ;
+/*SKY74137*/ *rfN = 0xE20000 | (98L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else
+/*SKY74137*/ { if (arfcn <= 245) /* ARFCN : 202~245 */
+/*SKY74137*/ { Nfrac = 96792*(arfcn-202) - ((arfcn-202)>>1) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (99L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 246~251 */
+/*SKY74137*/ { Nfrac = 64528 + 96792*(arfcn-246) - ((arfcn-246)>>2) ;
+/*SKY74137*/ *rfN = 0xE20000 | (100L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ break;
+/*SKY74137*/ }
+/*SKY74137*/ case FrequencyBand900 :
+/*SKY74137*/ {
+/*SKY74137*/ if (arfcn<=91)
+/*SKY74137*/ { if (arfcn<=4) /* ARFCN : 0~4 */
+/*SKY74137*/ { Nfrac = 3710346 + 96792*arfcn - (arfcn>>2) ;
+/*SKY74137*/ *rfN = 0xE20000 | (104L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else if (arfcn<=48) /* ARFCN : 5~48 */
+/*SKY74137*/ { Nfrac = 0 + (96792*(arfcn-5)) - ((arfcn-5)>>1) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (105L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 49~91 */
+/*SKY74137*/ { Nfrac = 64528 + (96792*(arfcn-49)) - ((arfcn-49)>>2) -3 ;
+/*SKY74137*/ *rfN = 0xE20000 | (106L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else
+/*SKY74137*/ { if (arfcn<=985)
+/*SKY74137*/ { if (arfcn<=124) /* ARFCN : 92~124 */
+/*SKY74137*/ { Nfrac = 32264 + (96791*(arfcn-92)) + ((arfcn-92)>>1) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (107L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 975~985 */
+/*SKY74137*/ { Nfrac = 3161860 + (96792*(arfcn-975)) - ((arfcn-975)>>2) - 1 ;
+/*SKY74137*/ *rfN = 0xE20000 | (103L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 986~1023 */
+/*SKY74137*/ { Nfrac = 32264 + (96792*(arfcn-986)) - ((arfcn-986)>>2) - 2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (104L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ break;
+/*SKY74137*/ }
+/*SKY74137*/ case FrequencyBand1800 :
+/*SKY74137*/ {
+/*SKY74137*/ if (arfcn<=759)
+/*SKY74137*/ { if(arfcn<=585) /* ARFCN : 512~585 */
+/*SKY74137*/ { Nfrac = 613014 + (48396*(arfcn-512)) - ((arfcn-512)>>2) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (101L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else if (arfcn<=672) /* ARFCN : 586~672 */
+/*SKY74137*/ { Nfrac = (48396*(arfcn-586)) - ((arfcn-586)>>2) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (102L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 673~759 */
+/*SKY74137*/ { Nfrac = 16132 + (48396*(arfcn-673)) - ((arfcn-673)>>2) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (103L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else
+/*SKY74137*/ { if (arfcn<=845) /* ARFCN : 760~845 */
+/*SKY74137*/ { Nfrac = 32264 + (48396*(arfcn-760)) - ((arfcn-760)>>2) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (104L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 846~885 */
+/*SKY74137*/ { Nfrac = (48396*(arfcn-846)) - ((arfcn-846)>>2) +1 ;
+/*SKY74137*/ *rfN = 0xE20000 | (105L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ break;
+/*SKY74137*/ }
+/*SKY74137*/ case FrequencyBand1900 :
+/*SKY74137*/ {
+/*SKY74137*/ if (arfcn<=654)
+/*SKY74137*/ { if(arfcn<=567) /* ARFCN : 512~567 */
+/*SKY74137*/ { Nfrac = 1500270 + (48396*(arfcn-512)) - ((arfcn-512)>>2) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (108L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 568~654 */
+/*SKY74137*/ { Nfrac = 16132 + (48396*(arfcn-568)) - ((arfcn-568)>>2) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (109L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else
+/*SKY74137*/ { if (arfcn<=740) /* ARFCN : 655~740 */
+/*SKY74137*/ { Nfrac = 32264 + (48396*(arfcn-655)) - ((arfcn-655)>>2) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (110L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 741~810 */
+/*SKY74137*/ { Nfrac = (48396*(arfcn-741)) - ((arfcn-741)>>2) +2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (111L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ break;
+/*SKY74137*/ }
+/*SKY74137*/ default :
+/*SKY74137*/ {
+/*SKY74137*/ break;
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ *ifN = 0x3 | (Nfrac<<2);
+/*SKY74137*/ }
+/*SKY74137*/ /* =========================================================================== */
+/*SKY74137*/
+/*SKY74137*/ char SKY_TXCP = 0; //tx charge pump current choice
+/*SKY74137*/
+/*SKY74137*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*SKY74137*/ { int Nfrac=0;
+/*SKY74137*/
+/*SKY74137*/ switch(rf_band)
+/*SKY74137*/ {
+/*SKY74137*/ case FrequencyBand850 :
+/*SKY74137*/ {
+/*SKY74137*/ if (arfcn <= 185)
+/*SKY74137*/ { if (arfcn <= 146) /* ARFCN : 128~146 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 2147484 + 108407*(arfcn-128) - ((arfcn-128)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (103L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 147~185 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 12906 + 108407*(arfcn-147) - ((arfcn-147)>>2) -3 ;
+/*SKY74137*/ *rfN = 0xE20000 | (104L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else
+/*SKY74137*/ {
+/*SKY74137*/ if (arfcn <= 224) /* ARFCN : 186~224 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 46460 + 108407*(arfcn-186) - ((arfcn-186)>>2) -3 ;
+/*SKY74137*/ *rfN = 0xE20000 | (105L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 225~251 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 80014 + 108407*(arfcn-225) - ((arfcn-225)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (106L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/
+/*SKY74137*/ SKY_TXCP = 1;
+/*SKY74137*/
+/*SKY74137*/ break;
+/*SKY74137*/ }
+/*SKY74137*/ case FrequencyBand900 :
+/*SKY74137*/ {
+/*SKY74137*/ if(arfcn<=115)
+/*SKY74137*/ { if(arfcn<=76)
+/*SKY74137*/ { if(arfcn<=38) /* ARFCN : 0~38 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 64528 + (108407*arfcn) - (arfcn>>2) -3 ;
+/*SKY74137*/ *rfN = 0xE20000 | (112L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 39~76 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 98082 + (108407*(arfcn-39)) - ((arfcn-39)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (113L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 77~115 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 23230 + (108407*(arfcn-77)) - ((arfcn-77)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (114L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else
+/*SKY74137*/ { if(arfcn<=984)
+/*SKY74137*/ { if(arfcn<=124) /* ARFCN : 116~124 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 56784 + (108407*(arfcn-116)) - ((arfcn-116)>>2) ;
+/*SKY74137*/ *rfN = 0xE20000 | (115L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 975~984 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 3141211 + (108407*(arfcn-975)) - ((arfcn-975)>>2) -1 ;
+/*SKY74137*/ *rfN = 0xE20000 | (110L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 985~1023 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 30973 + (108407*(arfcn-985)) - ((arfcn-985)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (111L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/
+/*SKY74137*/ SKY_TXCP = 1;
+/*SKY74137*/
+/*SKY74137*/ break;
+/*SKY74137*/ }
+/*SKY74137*/ case FrequencyBand1800 :
+/*SKY74137*/ {
+/*SKY74137*/ if (arfcn <= 737)
+/*SKY74137*/ {
+/*SKY74137*/ if(arfcn<=655)
+/*SKY74137*/ { if(arfcn <= 573) /* ARFCN : 512~573 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 1049489 + (51135*(arfcn-512)) + ((arfcn-512)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (101L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 574~655 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 25568 + (51135*(arfcn-574)) + ((arfcn-574)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (102L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 656~737 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 24350 + (51135*(arfcn-656)) + ((arfcn-656)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (103L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else
+/*SKY74137*/ {
+/*SKY74137*/ if(arfcn <= 819) /* ARFCN : 738~819 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 23133 + (51135*(arfcn-738)) + ((arfcn-738)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (104L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 820~885 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 21915 + (51135*(arfcn-820)) + ((arfcn-820)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (105L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/
+/*SKY74137*/ SKY_TXCP = 3;
+/*SKY74137*/
+/*SKY74137*/ break;
+/*SKY74137*/ }
+/*SKY74137*/ case FrequencyBand1900 :
+/*SKY74137*/ {
+/*SKY74137*/ if (arfcn <= 693)
+/*SKY74137*/ {
+/*SKY74137*/ if(arfcn<=611)
+/*SKY74137*/ { if(arfcn <= 529) /* ARFCN : 512~529 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 3289698 + (51135*(arfcn-512)) + ((arfcn-512)>>2) ;
+/*SKY74137*/ *rfN = 0xE20000 | (109L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 530~611 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 15828 + (51135*(arfcn-530)) + ((arfcn-530)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (110L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 612~693 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 14610 + (51135*(arfcn-612)) + ((arfcn-612)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (111L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ else
+/*SKY74137*/ {
+/*SKY74137*/ if(arfcn <= 775) /* ARFCN : 694~775 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 13393 + (51135*(arfcn-694)) + ((arfcn-694)>>2) -2 ;
+/*SKY74137*/ *rfN = 0xE20000 | (112L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ else /* ARFCN : 820~885 */
+/*SKY74137*/ {
+/*SKY74137*/ Nfrac = 12175 + (51135*(arfcn-776)) + ((arfcn-776)>>2) ;
+/*SKY74137*/ *rfN = 0xE20000 | (113L<<6);
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/
+/*SKY74137*/ SKY_TXCP = 3;
+/*SKY74137*/
+/*SKY74137*/ break;
+/*SKY74137*/ }
+/*SKY74137*/ default :
+/*SKY74137*/ {
+/*SKY74137*/ break;
+/*SKY74137*/ }
+/*SKY74137*/ }
+/*SKY74137*/ *ifN = 0x3 | (Nfrac<<2);
+/*SKY74137*/ }
+/*SKY74137*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_GRF6201
+/*GRF6201*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*GRF6201*/{
+/*GRF6201*/ unsigned long PC;
+/*GRF6201*/ unsigned long SC;
+/*GRF6201*/ unsigned long MC;
+/*GRF6201*/
+/*GRF6201*/ switch(rf_band)
+/*GRF6201*/ {
+/*GRF6201*/ case FrequencyBand850:
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=201)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=169)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=136) /* ARFCN : 128~136 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 5;
+/*GRF6201*/ MC = (unsigned long)( 4065248 - (136-arfcn)*129055 - ((136-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 137~169 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 6;
+/*GRF6201*/ MC = (unsigned long)( 4129776 - (169-arfcn)*129055 - ((169-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 170~201 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 7;
+/*GRF6201*/ MC = (unsigned long)( 4065248 - (201-arfcn)*129055 - ((201-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=234) /* ARFCN : 202~234 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 0;
+/*GRF6201*/ MC = (unsigned long)( 4129776 - (234-arfcn)*129055 - ((234-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 235~251 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 1;
+/*GRF6201*/ MC = (unsigned long)( 2129416 - (251-arfcn)*129056 + ((251-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ *rfN = ((MC&0x3E0000L)<<1) | (PC<<13) | (SC<<10) | (0x00L<<8) | (0x02L<<6); /* MC/PC/SC/Band/Mode */
+/*GRF6201*/ *ifN = ((MC&0x1FFFFL)<<7 ) | 0x01L; /* MC/Addr */
+/*GRF6201*/
+/*GRF6201*/ break;
+/*GRF6201*/ }
+/*GRF6201*/ case FrequencyBand900:
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=102)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=37)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=4) /* ARFCN : 0~4 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 7;
+/*GRF6201*/ MC = (unsigned long)( 4065248 - (4-arfcn)*129055 - ((4-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 5~37 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 0;
+/*GRF6201*/ MC = (unsigned long)( 4129776 - (37-arfcn)*129055 - ((37-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=69) /* ARFCN : 38~69 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 1;
+/*GRF6201*/ MC = (unsigned long)( 4065248 - (69-arfcn)*129055 - ((69-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 70~102 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 2;
+/*GRF6201*/ MC = (unsigned long)( 4129776 - (102-arfcn)*129055 - ((102-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=124) /* ARFCN : 103~124 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 3;
+/*GRF6201*/ MC = (unsigned long)( 2774693 - (124-arfcn)*129055 - ((124-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=996) /* ARFCN : 975~996 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 6;
+/*GRF6201*/ MC = (unsigned long)( 4129776 - (996-arfcn)*129055 - ((996-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 997~1023 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 7;
+/*GRF6201*/ MC = (unsigned long)( 3419971 - (1023-arfcn)*129056 + ((1023-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ *rfN = ((MC&0x3E0000L)<<1) | (PC<<13) | (SC<<10) | (0x01L<<8) | (0x02L<<6); /* MC/PC/SC/Band/Mode */
+/*GRF6201*/ *ifN = ((MC&0x1FFFFL)<<7 ) | 0x01L; /* MC/Addr */
+/*GRF6201*/
+/*GRF6201*/ break;
+/*GRF6201*/ }
+/*GRF6201*/ case FrequencyBand1800:
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=715)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=585)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=520) /* ARFCN : 512~520 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 2;
+/*GRF6201*/ MC = (unsigned long)( 3807137 + (arfcn-515)*64528 - ((arfcn-515)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 521~585 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 3;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-552)*64528 - ((arfcn-552)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=650) /* ARFCN : 586~650 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 4;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-617)*64528 - ((arfcn-617)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 651~715 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 5;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-682)*64528 - ((arfcn-682)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=845)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=780) /* ARFCN : 716~780 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 6;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-747)*64528 - ((arfcn-747)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 781~845 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 7;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-812)*64528 - ((arfcn-812)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 846~885 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 0;
+/*GRF6201*/ MC = (unsigned long)( 1226027 + (arfcn-865)*64528 - ((arfcn-865)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ *rfN = ((MC&0x3E0000L)<<1) | (PC<<13) | (SC<<10) | (0x02L<<8) | (0x02L<<6); /* MC/PC/SC/Band/Mode */
+/*GRF6201*/ *ifN = ((MC&0x1FFFFL)<<7 ) | 0x01L; /* MC/Addr */
+/*GRF6201*/
+/*GRF6201*/ break;
+/*GRF6201*/ }
+/*GRF6201*/ case FrequencyBand1900:
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=675)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=610)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=545) /* ARFCN : 512~545 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 4;
+/*GRF6201*/ MC = (unsigned long)( 3032804 + (arfcn-528)*64528 - ((arfcn-528)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 546~610 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 5;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-577)*64528 - ((arfcn-577)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 611~675 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 6;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-642)*64528 - ((arfcn-642)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=805)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=740) /* ARFCN : 676~740 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 7;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-707)*64528 - ((arfcn-707)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 741~805 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 19;
+/*GRF6201*/ SC = 0;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-772)*64528 - ((arfcn-772)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 806~810 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 19;
+/*GRF6201*/ SC = 1;
+/*GRF6201*/ MC = (unsigned long)( 129055 + (arfcn-808)*64528 - ((arfcn-808)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ *rfN = ((MC&0x3E0000L)<<1) | (PC<<13) | (SC<<10) | (0x03L<<8) | (0x02L<<6); /* MC/PC/SC/Band/Mode */
+/*GRF6201*/ *ifN = ((MC&0x1FFFFL)<<7 ) | 0x01L; /* MC/Addr */
+/*GRF6201*/
+/*GRF6201*/ break;
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/}
+/*GRF6201*//* =========================================================================== */
+/*GRF6201*/
+/*GRF6201*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*GRF6201*/{
+/*GRF6201*/ unsigned long PC;
+/*GRF6201*/ unsigned long SC;
+/*GRF6201*/ unsigned long MC;
+/*GRF6201*/ unsigned long special_ch;
+/*GRF6201*/
+/*GRF6201*/ special_ch = 0;
+/*GRF6201*/ switch(rf_band)
+/*GRF6201*/ {
+/*GRF6201*/ case FrequencyBand850:
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=199)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=166)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=134) /* ARFCN : 128~134 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 15;
+/*GRF6201*/ SC = 6;
+/*GRF6201*/ MC = (unsigned long)( 4129776 - (134-arfcn)*129055 - ((134-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 135~166 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 15;
+/*GRF6201*/ SC = 7;
+/*GRF6201*/ MC = (unsigned long)( 4065248 - (166-arfcn)*129055 - ((166-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 167~199 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 0;
+/*GRF6201*/ MC = (unsigned long)( 4129776 - (199-arfcn)*129055 - ((199-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=231) /* ARFCN : 200~231 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 1;
+/*GRF6201*/ MC = (unsigned long)( 4065248 - (231-arfcn)*129055 - ((231-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 232~251 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 2;
+/*GRF6201*/ MC = (unsigned long)( 2452055 - (251-arfcn)*129056 + ((251-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ *rfN = ((MC&0x3E0000L)<<1) | (PC<<13) | (SC<<10) | (0x00L<<8) | (0x03L<<6); /* MC/PC/SC/Band/Mode */
+/*GRF6201*/ *ifN = ((MC&0x1FFFFL)<<7 ) | 0x01L | (0x00L<<24); /* MC/Addr/TxCurMag */
+/*GRF6201*/
+/*GRF6201*/ break;
+/*GRF6201*/ }
+/*GRF6201*/ case FrequencyBand900:
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=99)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=34)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=2) /* ARFCN : 0~2 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 0;
+/*GRF6201*/ MC = (unsigned long)( 4129776 - (2-arfcn)*129055 - ((2-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 3~34 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 1;
+/*GRF6201*/ MC = (unsigned long)( 4065248 - (34-arfcn)*129055 - ((34-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=67) /* ARFCN : 35~67 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 2;
+/*GRF6201*/ MC = (unsigned long)( 4129776 - (67-arfcn)*129055 - ((67-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 68~99 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 3;
+/*GRF6201*/ MC = (unsigned long)( 4065248 - (99-arfcn)*129055 - ((99-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=124) /* ARFCN : 100~124 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 4;
+/*GRF6201*/ MC = (unsigned long)( 3097332 - (124-arfcn)*129055 - ((124-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=993) /* ARFCN : 975~993 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 7;
+/*GRF6201*/ MC = (unsigned long)( 4065248 - (993-arfcn)*129055 - ((993-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 994~1023 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 0;
+/*GRF6201*/ MC = (unsigned long)( 3742610 - (1023-arfcn)*129056 + ((1023-arfcn)>>1) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ *rfN = ((MC&0x3E0000L)<<1) | (PC<<13) | (SC<<10) | (0x01L<<8) | (0x03L<<6); /* MC/PC/SC/Band/Mode */
+/*GRF6201*/ *ifN = ((MC&0x1FFFFL)<<7 ) | 0x01L | (0x00L<<24); /* MC/Addr/TxCurMag */
+/*GRF6201*/
+/*GRF6201*/ break;
+/*GRF6201*/ }
+/*GRF6201*/ case FrequencyBand1800:
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=735)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=605)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=540) /* ARFCN : 512~540 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 3;
+/*GRF6201*/ MC = (unsigned long)( 3290915 + (arfcn-527)*64528 - ((arfcn-527)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 541~605 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 4;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-572)*64528 - ((arfcn-572)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=670) /* ARFCN : 606~670 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 5;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-637)*64528 - ((arfcn-637)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 671~735 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 6;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-702)*64528 - ((arfcn-702)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=865)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=800) /* ARFCN : 736~800 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 16;
+/*GRF6201*/ SC = 7;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-767)*64528 - ((arfcn-767)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 801~865 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 0;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-832)*64528 - ((arfcn-832)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 866~885 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 1;
+/*GRF6201*/ MC = (unsigned long)( 451694 + (arfcn-873)*64528 - ((arfcn-873)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/
+/*GRF6201*/ /* Special channel */
+/*GRF6201*/ if ( ((arfcn>=553) && (arfcn<=562)) ||
+/*GRF6201*/ ((arfcn>=615) && (arfcn<=624)) ||
+/*GRF6201*/ ((arfcn>=677) && (arfcn<=686)) ||
+/*GRF6201*/ ((arfcn>=740) && (arfcn<=748)) ||
+/*GRF6201*/ ((arfcn>=802) && (arfcn<=811)) ||
+/*GRF6201*/ ((arfcn>=864) && (arfcn<=885)) )
+/*GRF6201*/ {
+/*GRF6201*/ special_ch = 0x01L;
+/*GRF6201*/ }
+/*GRF6201*/ *rfN = ((MC&0x3E0000L)<<1) | (PC<<13) | (SC<<10) | (0x02L<<8) | (0x03L<<6); /* MC/PC/SC/Band/Mode */
+/*GRF6201*/ *ifN = ((MC&0x1FFFFL)<<7 ) | (special_ch<<6) | 0x01L | (0x01L<<24) | (special_ch<<26); /* MC/REV0/Addr/TxCurMag/REV1 */
+/*GRF6201*/
+/*GRF6201*/ break;
+/*GRF6201*/ }
+/*GRF6201*/ case FrequencyBand1900:
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=685)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=620)
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=555) /* ARFCN : 512~555 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 6;
+/*GRF6201*/ MC = (unsigned long)( 2774693 + (arfcn-534)*64528 - ((arfcn-534)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 556~620 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 17;
+/*GRF6201*/ SC = 7;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-587)*64528 - ((arfcn-587)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 621~685 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 0;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-652)*64528 - ((arfcn-652)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/ else
+/*GRF6201*/ {
+/*GRF6201*/ if (arfcn<=750) /* ARFCN : 686~750 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 1;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-717)*64528 - ((arfcn-717)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ else /* ARFCN : 751~810 */
+/*GRF6201*/ {
+/*GRF6201*/ PC = 18;
+/*GRF6201*/ SC = 2;
+/*GRF6201*/ MC = (unsigned long)( 2000360 + (arfcn-782)*64528 - ((arfcn-782)>>2) );
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/
+/*GRF6201*/ /* Special channel */
+/*GRF6201*/ if ( ((arfcn>=538) && (arfcn<=547)) ||
+/*GRF6201*/ ((arfcn>=600) && (arfcn<=609)) ||
+/*GRF6201*/ ((arfcn>=663) && (arfcn<=671)) ||
+/*GRF6201*/ ((arfcn>=725) && (arfcn<=737)) ||
+/*GRF6201*/ ((arfcn>=787) && (arfcn<=796)) )
+/*GRF6201*/ {
+/*GRF6201*/ special_ch = 0x01L;
+/*GRF6201*/ }
+/*GRF6201*/ *rfN = ((MC&0x3E0000L)<<1) | (PC<<13) | (SC<<10) | (0x03L<<8) | (0x03L<<6); /* MC/PC/SC/Band/Mode */
+/*GRF6201*/ *ifN = ((MC&0x1FFFFL)<<7 ) | (special_ch<<6) | 0x01L | (0x01L<<24) | (special_ch<<26); /* MC/REV0/Addr/TxCurMag/REV1 */
+/*GRF6201*/
+/*GRF6201*/ break;
+/*GRF6201*/ }
+/*GRF6201*/ }
+/*GRF6201*/}
+/*GRF6201*//* =========================================================================== */
+#endif
+
+#if IS_RF_IRFS3001
+/*IRFS3001*/#define IRFS3001_MOD10( _in ) (( (_in*51)+76 ) >> 9);
+/*IRFS3001*/
+/*IRFS3001*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*IRFS3001*/{
+/*IRFS3001*/ unsigned short x1, x2;
+/*IRFS3001*/
+/*IRFS3001*/ switch(rf_band)
+/*IRFS3001*/ {
+/*IRFS3001*/ case FrequencyBand850 :
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn - 127) << 1; // x1 = (ARFCN-127)*2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+869) << 10 ) | ( (x1-x2*10) << 6 ) | 0x04;
+/*IRFS3001*/ break;
+/*IRFS3001*/ }
+/*IRFS3001*/ case FrequencyBand900 :
+/*IRFS3001*/ {
+/*IRFS3001*/ if( arfcn<125 )// ARFCN = 0~124
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = arfcn << 1; // x1 = ARFCN * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+935) << 10 ) | ( (x1-x2*10) << 6 ) | 0x04;
+/*IRFS3001*/ }
+/*IRFS3001*/ else // ARFCN = 975~1023
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn-974) << 1; // x1 = (ARFCN-974) * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+925) << 10 ) | ( (x1-x2*10) << 6 ) | 0x04;
+/*IRFS3001*/ }
+/*IRFS3001*/ break;
+/*IRFS3001*/ }
+/*IRFS3001*/ case FrequencyBand1800 :
+/*IRFS3001*/ {
+/*IRFS3001*/ if( arfcn<701 )// ARFCN = 512~700
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn-511) << 1; // x1 = (ARFCN-511) * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+1805) << 10 ) | ( (x1-x2*10) << 6 ) | 0x04;
+/*IRFS3001*/ }
+/*IRFS3001*/ else // ARFCN = 701~885
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn-701) << 1; // x1 = (ARFCN-701) * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+1843) << 10 ) | ( (x1-x2*10) << 6 ) | 0x04;
+/*IRFS3001*/ }
+/*IRFS3001*/ break;
+/*IRFS3001*/ }
+/*IRFS3001*/ case FrequencyBand1900 :
+/*IRFS3001*/ {
+/*IRFS3001*/ if( arfcn<661 )// ARFCN = 512~660
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn-511) << 1; // x1 = (ARFCN-511) * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+1930) << 10 ) | ( (x1-x2*10) << 6 ) | 0x04;
+/*IRFS3001*/ }
+/*IRFS3001*/ else // ARFCN = 661~810
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn-661) << 1; // x1 = (ARFCN-701) * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+1960) << 10 ) | ( (x1-x2*10) << 6 ) | 0x04;
+/*IRFS3001*/ }
+/*IRFS3001*/ break;
+/*IRFS3001*/ }
+/*IRFS3001*/ default :
+/*IRFS3001*/ {
+/*IRFS3001*/ break;
+/*IRFS3001*/ }
+/*IRFS3001*/ }
+/*IRFS3001*/
+/*IRFS3001*/ *ifN = 0;
+/*IRFS3001*/}
+/*IRFS3001*//* =========================================================================== */
+/*IRFS3001*/
+/*IRFS3001*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*IRFS3001*/{
+/*IRFS3001*/ unsigned short x1, x2;
+/*IRFS3001*/
+/*IRFS3001*/ switch(rf_band)
+/*IRFS3001*/ {
+/*IRFS3001*/ case FrequencyBand850 :
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn - 127) << 1; // x1 = (ARFCN-127)*2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+824) << 10 ) | ( (x1-x2*10) << 6 ) | 0x05;
+/*IRFS3001*/ break;
+/*IRFS3001*/ }
+/*IRFS3001*/ case FrequencyBand900 :
+/*IRFS3001*/ {
+/*IRFS3001*/ if( arfcn<125 )// ARFCN = 0~124
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = arfcn << 1; // x1 = ARFCN * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+890) << 10 ) | ( (x1-x2*10) << 6 ) | 0x05;
+/*IRFS3001*/ }
+/*IRFS3001*/ else // ARFCN = 975~1023
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn-974) << 1; // x1 = (ARFCN-974) * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+880) << 10 ) | ( (x1-x2*10) << 6 ) | 0x05;
+/*IRFS3001*/ }
+/*IRFS3001*/ break;
+/*IRFS3001*/ }
+/*IRFS3001*/ case FrequencyBand1800 :
+/*IRFS3001*/ {
+/*IRFS3001*/ if( arfcn<701 )// ARFCN = 512~700
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn-511) << 1; // x1 = (ARFCN-511) * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+1710) << 10 ) | ( (x1-x2*10) << 6 ) | 0x05;
+/*IRFS3001*/ }
+/*IRFS3001*/ else // ARFCN = 701~885
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn-701) << 1; // x1 = (ARFCN-701) * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+1748) << 10 ) | ( (x1-x2*10) << 6 ) | 0x05;
+/*IRFS3001*/ }
+/*IRFS3001*/ break;
+/*IRFS3001*/ }
+/*IRFS3001*/ case FrequencyBand1900 :
+/*IRFS3001*/ {
+/*IRFS3001*/ if( arfcn<661 )// ARFCN = 512~660
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn-511) << 1; // x1 = (ARFCN-511) * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+1850) << 10 ) | ( (x1-x2*10) << 6 ) | 0x05;
+/*IRFS3001*/ }
+/*IRFS3001*/ else // ARFCN = 661~810
+/*IRFS3001*/ {
+/*IRFS3001*/ x1 = (arfcn-661) << 1; // x1 = (ARFCN-701) * 2
+/*IRFS3001*/ x2 = IRFS3001_MOD10( x1 ); // x2 = x1 mod 10
+/*IRFS3001*/ *rfN = ( (x2+1880) << 10 ) | ( (x1-x2*10) << 6 ) | 0x05;
+/*IRFS3001*/ }
+/*IRFS3001*/ break;
+/*IRFS3001*/ }
+/*IRFS3001*/ default :
+/*IRFS3001*/ {
+/*IRFS3001*/ break;
+/*IRFS3001*/ }
+/*IRFS3001*/ }
+/*IRFS3001*/
+/*IRFS3001*/ *ifN = 0;
+/*IRFS3001*/}
+/*IRFS3001*//* =========================================================================== */
+#endif
+
+#if IS_RF_AD6548
+/*AD6548*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*AD6548*/{
+/*AD6548*/ switch(rf_band)
+/*AD6548*/ {
+/*AD6548*/ case FrequencyBand850 :
+/*AD6548*/ {
+/*AD6548*/ if(arfcn<=201)
+/*AD6548*/ { if(arfcn<=158)
+/*AD6548*/ { /* ARFCN : 128~158 */
+/*AD6548*/ *rfN = (((arfcn-128)*24 + 304)<<13) | 0x1206L /*(36L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 159~201 */
+/*AD6548*/ *rfN = (((arfcn-159)*24 + 8)<<13) | 0x1286L /*(37L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=245)
+/*AD6548*/ { /* ARFCN : 202~245 */
+/*AD6548*/ *rfN = (((arfcn-202)*24 )<<13) | 0x1306L /*(38L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 246~251 */
+/*AD6548*/ *rfN = (((arfcn-246)*24+16)<<13) | 0x1386L /*(39L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ break;
+/*AD6548*/ }
+/*AD6548*/ case FrequencyBand900 :
+/*AD6548*/ {
+/*AD6548*/ if(arfcn<=48)
+/*AD6548*/ { if(arfcn<=4)
+/*AD6548*/ { /* ARFCN : 0~4 */
+/*AD6548*/ *rfN = (((arfcn)*24+920 )<<13) | 0x1586L /*(43L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 5~48 */
+/*AD6548*/ *rfN = (((arfcn-5)*24 )<<13) | 0x1606L /*(44L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=124)
+/*AD6548*/ { if(arfcn<=91)
+/*AD6548*/ { /* ARFCN : 49~91 */
+/*AD6548*/ *rfN = (((arfcn-49)*24+16)<<13) | 0x1686L /*(45L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 92~124 */
+/*AD6548*/ *rfN = (((arfcn-92)*24+8 )<<13) | 0x1706L /*(46L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=985)
+/*AD6548*/ { /* ARFCN : 975~985 */
+/*AD6548*/ *rfN = (((arfcn-975)*24+784)<<13) | 0x1506L /*(42L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 986~1023 */
+/*AD6548*/ *rfN = (((arfcn-986)*24+8 )<<13) | 0x1586L /*(43L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ break;
+/*AD6548*/ }
+/*AD6548*/ case FrequencyBand1800 :
+/*AD6548*/ {
+/*AD6548*/ if(arfcn<=672)
+/*AD6548*/ { if(arfcn<=585)
+/*AD6548*/ { /* ARFCN : 512~585 */
+/*AD6548*/ *rfN = (((arfcn-512)*12+152)<<13) | 0x1406L /*(40L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 586~672 */
+/*AD6548*/ *rfN = (((arfcn-586)*12)<<13) | 0x1486L /*(41L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=759)
+/*AD6548*/ { /* ARFCN : 673~759 */
+/*AD6548*/ *rfN = (((arfcn-673)*12+4)<<13) | 0x1506L /*(42L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=845)
+/*AD6548*/ { /* ARFCN : 760~845 */
+/*AD6548*/ *rfN = (((arfcn-760)*12+8)<<13) | 0x1586L /*(43L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 846~885 */
+/*AD6548*/ *rfN = (((arfcn-846)*12)<<13) | 0x1606L /*(44L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ break;
+/*AD6548*/ }
+/*AD6548*/ case FrequencyBand1900 :
+/*AD6548*/ {
+/*AD6548*/ if(arfcn<=654)
+/*AD6548*/ { if(arfcn<=567)
+/*AD6548*/ { /* ARFCN : 512~567 */
+/*AD6548*/ *rfN = (((arfcn-512)*12+372)<<13) | 0x1786L /*(47L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 568~654 */
+/*AD6548*/ *rfN = (((arfcn-568)*12+4)<<13) | 0x1806L /*(48L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=740)
+/*AD6548*/ { /* ARFCN : 655~740 */
+/*AD6548*/ *rfN = (((arfcn-655)*12+8)<<13) | 0x1886L /*(49L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 741~810 */
+/*AD6548*/ *rfN = (((arfcn-741)*12)<<13) | 0x1906L /*(50L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ break;
+/*AD6548*/ }
+/*AD6548*/ default :
+/*AD6548*/ {
+/*AD6548*/ break;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ *ifN = 0;
+/*AD6548*/}
+/*AD6548*//* ========================================================================== */
+/*AD6548*/
+/*AD6548*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*AD6548*/{
+/*AD6548*/ switch(rf_band)
+/*AD6548*/ {
+/*AD6548*/ case FrequencyBand850 :
+/*AD6548*/ {
+/*AD6548*/ if(arfcn<=185)
+/*AD6548*/ { if(arfcn<=143)
+/*AD6548*/ { /* ARFCN : 128~143 */
+/*AD6548*/ *rfN = (((arfcn-128)*28+728)<<13) | 0x1106L /*(34L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 144~185 */
+/*AD6548*/ *rfN = (((arfcn-144)*28+6)<<13) | 0x1186L /*(35L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=227)
+/*AD6548*/ { /* ARFCN : 186~227 */
+/*AD6548*/ *rfN = (((arfcn-186)*28+12)<<13) | 0x1206L /*(36L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 228~251 */
+/*AD6548*/ *rfN = (((arfcn-228)*28+18)<<13) | 0x1286L /*(37L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ break;
+/*AD6548*/ }
+/*AD6548*/ case FrequencyBand900 :
+/*AD6548*/ {
+/*AD6548*/ if(arfcn<=62)
+/*AD6548*/ { if(arfcn<=21)
+/*AD6548*/ { /* ARFCN : 0~21 */
+/*AD6548*/ *rfN = (((arfcn)*28+580)<<13) | 0x1506L /*(42L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 22~62 */
+/*AD6548*/ *rfN = (((arfcn-22)*28+26)<<13) | 0x1586L /*(43L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=124)
+/*AD6548*/ { if(arfcn<=104)
+/*AD6548*/ { /* ARFCN : 63~104 */
+/*AD6548*/ *rfN = (((arfcn-63)*28+4)<<13) | 0x1606L /*(44L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 105~124 */
+/*AD6548*/ *rfN = (((arfcn-105)*28+10)<<13) | 0x1686L /*(45L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=1003)
+/*AD6548*/ { /* ARFCN : 975~1003 */
+/*AD6548*/ *rfN = (((arfcn-975)*28+378)<<13) | 0x1486L /*(41L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 1004~1023 */
+/*AD6548*/ *rfN = (((arfcn-1004)*28+20)<<13) | 0x1506L /*(42L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ break;
+/*AD6548*/ }
+/*AD6548*/ case FrequencyBand1800 :
+/*AD6548*/ {
+/*AD6548*/ if(arfcn<=694)
+/*AD6548*/ { if(arfcn<=605)
+/*AD6548*/ { if(arfcn<=517)
+/*AD6548*/ { /* ARFCN : 512~517 */
+/*AD6548*/ *rfN = (((arfcn-512)*14+1154)<<13) | 0x1006L /*(32L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 518~605 */
+/*AD6548*/ *rfN = (((arfcn-518)*14+3)<<13) | 0x1086L /*(33L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 606~694 */
+/*AD6548*/ *rfN = (((arfcn-606)*14)<<13) | 0x1106L /*(34L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=782)
+/*AD6548*/ { /* ARFCN : 695~782 */
+/*AD6548*/ *rfN = (((arfcn-695)*14+11)<<13) | 0x1186L /*(35L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=870)
+/*AD6548*/ { /* ARFCN : 783~870 */
+/*AD6548*/ *rfN = (((arfcn-783)*14+8)<<13) | 0x1206L /*(36L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 871~885 */
+/*AD6548*/ *rfN = (((arfcn-871)*14+5)<<13) | 0x1286L /*(37L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ break;
+/*AD6548*/ }
+/*AD6548*/ case FrequencyBand1900 :
+/*AD6548*/ {
+/*AD6548*/ if(arfcn<=699)
+/*AD6548*/ { if(arfcn<=611)
+/*AD6548*/ { if(arfcn<=523)
+/*AD6548*/ { /* ARFCN : 512~523 */
+/*AD6548*/ *rfN = (((arfcn-512)*14+1074)<<13) | 0x1406L /*(40L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 524~611 */
+/*AD6548*/ *rfN = (((arfcn-524)*14+7)<<13) | 0x1486L /*(41L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 612~699 */
+/*AD6548*/ *rfN = (((arfcn-612)*14+4)<<13) | 0x1506L /*(42L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { if(arfcn<=788)
+/*AD6548*/ { /* ARFCN : 700~788 */
+/*AD6548*/ *rfN = (((arfcn-700)*14+1)<<13) | 0x1586L /*(43L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ else
+/*AD6548*/ { /* ARFCN : 789~810 */
+/*AD6548*/ *rfN = (((arfcn-789)*14+12)<<13) | 0x1606L /*(44L<<7|0x06L)*/;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ break;
+/*AD6548*/ }
+/*AD6548*/ default :
+/*AD6548*/ {
+/*AD6548*/ break;
+/*AD6548*/ }
+/*AD6548*/ }
+/*AD6548*/ *ifN = 0;
+/*AD6548*/}
+/*AD6548*//* ========================================================================== */
+#endif
+
+#if IS_RF_AD6546
+/*AD6546*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*AD6546*/{
+/*AD6546*/ switch(rf_band)
+/*AD6546*/ {
+/*AD6546*/ case FrequencyBand850 :
+/*AD6546*/ {
+/*AD6546*/ if(arfcn<=201)
+/*AD6546*/ { if(arfcn<=158)
+/*AD6546*/ { /* ARFCN : 128~158 */
+/*AD6546*/ *rfN = (((arfcn-128)*24 + 304)<<13) | 0x1206L /*(36L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 159~201 */
+/*AD6546*/ *rfN = (((arfcn-159)*24 + 8)<<13) | 0x1286L /*(37L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=245)
+/*AD6546*/ { /* ARFCN : 202~245 */
+/*AD6546*/ *rfN = (((arfcn-202)*24 )<<13) | 0x1306L /*(38L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 246~251 */
+/*AD6546*/ *rfN = (((arfcn-246)*24+16)<<13) | 0x1386L /*(39L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ break;
+/*AD6546*/ }
+/*AD6546*/ case FrequencyBand900 :
+/*AD6546*/ {
+/*AD6546*/ if(arfcn<=48)
+/*AD6546*/ { if(arfcn<=4)
+/*AD6546*/ { /* ARFCN : 0~4 */
+/*AD6546*/ *rfN = (((arfcn)*24+920 )<<13) | 0x1586L /*(43L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 5~48 */
+/*AD6546*/ *rfN = (((arfcn-5)*24 )<<13) | 0x1606L /*(44L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=124)
+/*AD6546*/ { if(arfcn<=91)
+/*AD6546*/ { /* ARFCN : 49~91 */
+/*AD6546*/ *rfN = (((arfcn-49)*24+16)<<13) | 0x1686L /*(45L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 92~124 */
+/*AD6546*/ *rfN = (((arfcn-92)*24+8 )<<13) | 0x1706L /*(46L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=985)
+/*AD6546*/ { /* ARFCN : 975~985 */
+/*AD6546*/ *rfN = (((arfcn-975)*24+784)<<13) | 0x1506L /*(42L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 986~1023 */
+/*AD6546*/ *rfN = (((arfcn-986)*24+8 )<<13) | 0x1586L /*(43L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ break;
+/*AD6546*/ }
+/*AD6546*/ case FrequencyBand1800 :
+/*AD6546*/ {
+/*AD6546*/ if(arfcn<=672)
+/*AD6546*/ { if(arfcn<=585)
+/*AD6546*/ { /* ARFCN : 512~585 */
+/*AD6546*/ *rfN = (((arfcn-512)*12+152)<<13) | 0x1406L /*(40L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 586~672 */
+/*AD6546*/ *rfN = (((arfcn-586)*12)<<13) | 0x1486L /*(41L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=759)
+/*AD6546*/ { /* ARFCN : 673~759 */
+/*AD6546*/ *rfN = (((arfcn-673)*12+4)<<13) | 0x1506L /*(42L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=845)
+/*AD6546*/ { /* ARFCN : 760~845 */
+/*AD6546*/ *rfN = (((arfcn-760)*12+8)<<13) | 0x1586L /*(43L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 846~885 */
+/*AD6546*/ *rfN = (((arfcn-846)*12)<<13) | 0x1606L /*(44L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ break;
+/*AD6546*/ }
+/*AD6546*/ case FrequencyBand1900 :
+/*AD6546*/ {
+/*AD6546*/ if(arfcn<=654)
+/*AD6546*/ { if(arfcn<=567)
+/*AD6546*/ { /* ARFCN : 512~567 */
+/*AD6546*/ *rfN = (((arfcn-512)*12+372)<<13) | 0x1786L /*(47L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 568~654 */
+/*AD6546*/ *rfN = (((arfcn-568)*12+4)<<13) | 0x1806L /*(48L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=740)
+/*AD6546*/ { /* ARFCN : 655~740 */
+/*AD6546*/ *rfN = (((arfcn-655)*12+8)<<13) | 0x1886L /*(49L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 741~810 */
+/*AD6546*/ *rfN = (((arfcn-741)*12)<<13) | 0x1906L /*(50L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ break;
+/*AD6546*/ }
+/*AD6546*/ default :
+/*AD6546*/ {
+/*AD6546*/ break;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ *ifN = 0;
+/*AD6546*/}
+/*AD6546*//* ========================================================================== */
+/*AD6546*/
+/*AD6546*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*AD6546*/{
+/*AD6546*/ switch(rf_band)
+/*AD6546*/ {
+/*AD6546*/ case FrequencyBand850 :
+/*AD6546*/ {
+/*AD6546*/ if(arfcn<=185)
+/*AD6546*/ { if(arfcn<=143)
+/*AD6546*/ { /* ARFCN : 128~143 */
+/*AD6546*/ *rfN = (((arfcn-128)*28+728)<<13) | 0x1106L /*(34L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 144~185 */
+/*AD6546*/ *rfN = (((arfcn-144)*28+6)<<13) | 0x1186L /*(35L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=227)
+/*AD6546*/ { /* ARFCN : 186~227 */
+/*AD6546*/ *rfN = (((arfcn-186)*28+12)<<13) | 0x1206L /*(36L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 228~251 */
+/*AD6546*/ *rfN = (((arfcn-228)*28+18)<<13) | 0x1286L /*(37L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ break;
+/*AD6546*/ }
+/*AD6546*/ case FrequencyBand900 :
+/*AD6546*/ {
+/*AD6546*/ if(arfcn<=62)
+/*AD6546*/ { if(arfcn<=21)
+/*AD6546*/ { /* ARFCN : 0~21 */
+/*AD6546*/ *rfN = (((arfcn)*28+580)<<13) | 0x1506L /*(42L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 22~62 */
+/*AD6546*/ *rfN = (((arfcn-22)*28+26)<<13) | 0x1586L /*(43L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=124)
+/*AD6546*/ { if(arfcn<=104)
+/*AD6546*/ { /* ARFCN : 63~104 */
+/*AD6546*/ *rfN = (((arfcn-63)*28+4)<<13) | 0x1606L /*(44L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 105~124 */
+/*AD6546*/ *rfN = (((arfcn-105)*28+10)<<13) | 0x1686L /*(45L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=1003)
+/*AD6546*/ { /* ARFCN : 975~1003 */
+/*AD6546*/ *rfN = (((arfcn-975)*28+378)<<13) | 0x1486L /*(41L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 1004~1023 */
+/*AD6546*/ *rfN = (((arfcn-1004)*28+20)<<13) | 0x1506L /*(42L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ break;
+/*AD6546*/ }
+/*AD6546*/ case FrequencyBand1800 :
+/*AD6546*/ {
+/*AD6546*/ if(arfcn<=694)
+/*AD6546*/ { if(arfcn<=605)
+/*AD6546*/ { if(arfcn<=517)
+/*AD6546*/ { /* ARFCN : 512~517 */
+/*AD6546*/ *rfN = (((arfcn-512)*14+1154)<<13) | 0x1006L /*(32L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 518~605 */
+/*AD6546*/ *rfN = (((arfcn-518)*14+3)<<13) | 0x1086L /*(33L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 606~694 */
+/*AD6546*/ *rfN = (((arfcn-606)*14)<<13) | 0x1106L /*(34L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=782)
+/*AD6546*/ { /* ARFCN : 695~782 */
+/*AD6546*/ *rfN = (((arfcn-695)*14+11)<<13) | 0x1186L /*(35L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=870)
+/*AD6546*/ { /* ARFCN : 783~870 */
+/*AD6546*/ *rfN = (((arfcn-783)*14+8)<<13) | 0x1206L /*(36L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 871~885 */
+/*AD6546*/ *rfN = (((arfcn-871)*14+5)<<13) | 0x1286L /*(37L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ break;
+/*AD6546*/ }
+/*AD6546*/ case FrequencyBand1900 :
+/*AD6546*/ {
+/*AD6546*/ if(arfcn<=699)
+/*AD6546*/ { if(arfcn<=611)
+/*AD6546*/ { if(arfcn<=523)
+/*AD6546*/ { /* ARFCN : 512~523 */
+/*AD6546*/ *rfN = (((arfcn-512)*14+1074)<<13) | 0x1406L /*(40L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 524~611 */
+/*AD6546*/ *rfN = (((arfcn-524)*14+7)<<13) | 0x1486L /*(41L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 612~699 */
+/*AD6546*/ *rfN = (((arfcn-612)*14+4)<<13) | 0x1506L /*(42L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { if(arfcn<=788)
+/*AD6546*/ { /* ARFCN : 700~788 */
+/*AD6546*/ *rfN = (((arfcn-700)*14+1)<<13) | 0x1586L /*(43L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ else
+/*AD6546*/ { /* ARFCN : 789~810 */
+/*AD6546*/ *rfN = (((arfcn-789)*14+12)<<13) | 0x1606L /*(44L<<7|0x06L)*/;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ break;
+/*AD6546*/ }
+/*AD6546*/ default :
+/*AD6546*/ {
+/*AD6546*/ break;
+/*AD6546*/ }
+/*AD6546*/ }
+/*AD6546*/ *ifN = 0;
+/*AD6546*/}
+/*AD6546*//* ========================================================================== */
+#endif
+
+#if IS_RF_MT6162
+/*MT6162*/unsigned long TX_N_FRAC_THRESHOLD_LB = 7356163; /* 7356163/2^23 = 0.876922965 */
+/*MT6162*/unsigned long TX_N_FRAC_THRESHOLD_HB = 7485219; /* 7485219/2^23 = 0.892307639 */
+/*MT6162*/ short AFC_TRx_Offset_Threshold_LB = 30; /* the offset range in LB is -30Hz ~ +30Hz*/
+/*MT6162*/ short AFC_TRx_Offset_Threshold_HB = 60; /* the offset range in HB is -60Hz ~ +60Hz*/
+/*MT6162*/extern short AFC_TRx_Offset[5];
+/*MT6162*/
+/*MT6162*//* rfN : 0x61, SRX_FREQ=>SRX_B[5:0],SRX_A[0] and SRX_FRAC[11:0] */
+/*MT6162*/void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6162*/{
+/*MT6162*/ int channelFrequency = 0;
+/*MT6162*/ int synthesizerFrequency = 0;
+/*MT6162*/ int N_INT;
+/*MT6162*/ int N_FRAC;
+/*MT6162*/
+/*MT6162*/ switch(rf_band)
+/*MT6162*/ {
+/*MT6162*/ case FrequencyBand850 :
+/*MT6162*/ { channelFrequency = 8242+2*(arfcn-128)+450; /* 824.2+0.2*(arfcn-128)+45 */
+/*MT6162*/ synthesizerFrequency = 4*channelFrequency;
+/*MT6162*/
+/*MT6162*/ if(arfcn<=201)
+/*MT6162*/ { if(arfcn<=136)
+/*MT6162*/ { /* ARFCN : 128~136 */
+/*MT6162*/ *rfN = ((arfcn-128)*32+1792) | (66<<12);
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 137~201 */
+/*MT6162*/ *rfN = ((arfcn-137)*32) | (67<<12);
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 202~251 */
+/*MT6162*/ *rfN = ((arfcn-202)*32) | (68<<12);
+/*MT6162*/ }
+/*MT6162*/ break;
+/*MT6162*/ }
+/*MT6162*/ case FrequencyBand900 :
+/*MT6162*/ {
+/*MT6162*/ if(arfcn<=124)
+/*MT6162*/ { channelFrequency = 8900+2*(arfcn)+450; /* 890+0.2*(arfcn)+45 */
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { channelFrequency = 8900+2*(arfcn-1024)+450; /* 890+0.2*(arfcn-1024)+45 */
+/*MT6162*/ }
+/*MT6162*/ synthesizerFrequency = 4*channelFrequency;
+/*MT6162*/
+/*MT6162*/ if(arfcn<=124)
+/*MT6162*/ { if(arfcn<=69)
+/*MT6162*/ { if(arfcn<=4)
+/*MT6162*/ { /* ARFCN : 0~4 */
+/*MT6162*/ *rfN = ((arfcn)*32+1920) | (71<<12);
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 5~69 */
+/*MT6162*/ *rfN = ((arfcn-5)*32) | (72<<12);
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 70~124 */
+/*MT6162*/ *rfN = ((arfcn-70)*32) | (73<<12);
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 975~1023 */
+/*MT6162*/ *rfN = ((arfcn-975)*32+352) | (71<<12);
+/*MT6162*/ }
+/*MT6162*/ break;
+/*MT6162*/ }
+/*MT6162*/ case FrequencyBand1800 :
+/*MT6162*/ {
+/*MT6162*/ channelFrequency = 17102+2*(arfcn-512)+950; /* 1710.2+0.2*(arfcn-512)+95 */
+/*MT6162*/ synthesizerFrequency = 2*channelFrequency;
+/*MT6162*/
+/*MT6162*/ if(arfcn<=715)
+/*MT6162*/ { if(arfcn<=585)
+/*MT6162*/ { /* ARFCN : 512~585 */
+/*MT6162*/ *rfN = ((arfcn-512)*16+896) | (69<<12);
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 586~715 */
+/*MT6162*/ *rfN = ((arfcn-586)*16) | (70<<12);
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { if(arfcn<=845)
+/*MT6162*/ { /* ARFCN : 716~845 */
+/*MT6162*/ *rfN = ((arfcn-716)*16) | (71<<12);
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 846~885 */
+/*MT6162*/ *rfN = ((arfcn-846)*16) | (72<<12);
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ break;
+/*MT6162*/ }
+/*MT6162*/ case FrequencyBand1900 :
+/*MT6162*/ {
+/*MT6162*/ channelFrequency = 18502+2*(arfcn-512)+800; /* 1850.2+0.2*(arfcn-512)+80 */
+/*MT6162*/ synthesizerFrequency = 2*channelFrequency;
+/*MT6162*/
+/*MT6162*/ if(arfcn<=740)
+/*MT6162*/ { if(arfcn<=610)
+/*MT6162*/ { /* ARFCN : 512~610 */
+/*MT6162*/ *rfN = ((arfcn-512)*16+496) | (74<<12);
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 611~740 */
+/*MT6162*/ *rfN = ((arfcn-611)*16) | (75<<12);
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 741~810 */
+/*MT6162*/ *rfN = ((arfcn-741)*16) | (76<<12);
+/*MT6162*/ }
+/*MT6162*/ break;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ N_INT = synthesizerFrequency/520;
+/*MT6162*/ N_FRAC = ((synthesizerFrequency-520*N_INT)*2080) / 520;
+/*MT6162*/ *rfN = (N_FRAC&0xFFF) | ((N_INT&0x7F)<<12);
+/*MT6162*/}
+/*MT6162*//* ========================================================================== */
+/*MT6162*/
+/*MT6162*//* rfN : 0x01, CW1=>N_INT[7:0] and N_FRAC[ 9: 0] */
+/*MT6162*//* irN : 0x02, CW2=> N_FRAC[22:10] */
+/*MT6162*/void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6162*/{
+/*MT6162*/ int channelFrequency = 0;
+/*MT6162*/ int synthesizerFrequency = 0;
+/*MT6162*/ int N_INT;
+/*MT6162*/ int N_FRAC;
+/*MT6162*/ int TRx_Offset_value;
+/*MT6162*/
+/*MT6162*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_SetTxGainWrite()
+/*MT6162*/
+/*MT6162*/ switch(rf_band)
+/*MT6162*/ {
+/*MT6162*/ case FrequencyBand850 :
+/*MT6162*/ {
+/*MT6162*/ channelFrequency = 8242+2*(arfcn-128); /* 824.2+0.2*(arfcn-128) */
+/*MT6162*/ synthesizerFrequency = 4*channelFrequency;
+/*MT6162*/
+/*MT6162*/ if(arfcn<=199)
+/*MT6162*/ { if(arfcn<=166)
+/*MT6162*/ { if(arfcn<=134)
+/*MT6162*/ { /* ARFCN : 128~134 */
+/*MT6162*/ *rfN = (((arfcn-128)*258111+6710886)&0x3FF) | (126<<10);
+/*MT6162*/ *ifN = (((arfcn-128)*258111+6710886)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 135~166 */
+/*MT6162*/ *rfN = (((arfcn-135)*258111+129055)&0x3FF) | (127<<10);
+/*MT6162*/ *ifN = (((arfcn-135)*258111+129055)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 167~199 */
+/*MT6162*/ *rfN = (((arfcn-167)*258111)&0x3FF) | (128<<10);
+/*MT6162*/ *ifN = (((arfcn-167)*258111)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { if(arfcn<=231)
+/*MT6162*/ { /* ARFCN : 200~231 */
+/*MT6162*/ *rfN = (((arfcn-200)*258111+129055)&0x3FF) | (129<<10);
+/*MT6162*/ *ifN = (((arfcn-200)*258111+129055)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 232~251 */
+/*MT6162*/ *rfN = (((arfcn-232)*258111)&0x3FF) | (130<<10);
+/*MT6162*/ *ifN = (((arfcn-232)*258111)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ break;
+/*MT6162*/ }
+/*MT6162*/ case FrequencyBand900 :
+/*MT6162*/ { if(arfcn<=124)
+/*MT6162*/ { channelFrequency = 8900+2*(arfcn); /* 890+0.2*(arfcn) */
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { channelFrequency = 8900+2*(arfcn-1024); /* 890+0.2*(arfcn-1024) */
+/*MT6162*/ }
+/*MT6162*/ synthesizerFrequency = 4*channelFrequency;
+/*MT6162*/
+/*MT6162*/ if(arfcn<=124)
+/*MT6162*/ { if(arfcn<=67)
+/*MT6162*/ { if(arfcn<=34)
+/*MT6162*/ { if(arfcn<=2)
+/*MT6162*/ { /* ARFCN : 0~2 */
+/*MT6162*/ *rfN = (((arfcn-0)*258111+7743330)&0x3FF) | (136<<10);
+/*MT6162*/ *ifN = (((arfcn-0)*258111+7743330)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 3~34 */
+/*MT6162*/ *rfN = (((arfcn-3)*258111+129055)&0x3FF) | (137<<10);
+/*MT6162*/ *ifN = (((arfcn-3)*258111+129055)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 35~67 */
+/*MT6162*/ *rfN = (((arfcn-35)*258111)&0x3FF) | (138<<10);
+/*MT6162*/ *ifN = (((arfcn-35)*258111)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { if(arfcn<=99)
+/*MT6162*/ { /* ARFCN : 68~99 */
+/*MT6162*/ *rfN = (((arfcn-68)*258111+129055)&0x3FF) | (139<<10);
+/*MT6162*/ *ifN = (((arfcn-68)*258111+129055)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 100~124 */
+/*MT6162*/ *rfN = (((arfcn-100)*258111)&0x3FF) | (140<<10);
+/*MT6162*/ *ifN = (((arfcn-100)*258111)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { if(arfcn<=993)
+/*MT6162*/ { /* ARFCN : 975~993 */
+/*MT6162*/ *rfN = (((arfcn-975)*258111+3484498)&0x3FF) | (135<<10);
+/*MT6162*/ *ifN = (((arfcn-975)*258111+3484498)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 994~1023 */
+/*MT6162*/ *rfN = (((arfcn-994)*258111)&0x3FF) | (136<<10);
+/*MT6162*/ *ifN = (((arfcn-994)*258111)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ break;
+/*MT6162*/ }
+/*MT6162*/ case FrequencyBand1800 :
+/*MT6162*/ {
+/*MT6162*/ channelFrequency = 17102+2*(arfcn-512); /* 1710.2+0.2*(arfcn-512) */
+/*MT6162*/ synthesizerFrequency = 2*channelFrequency;
+/*MT6162*/
+/*MT6162*/ if(arfcn<=735)
+/*MT6162*/ { if(arfcn<=670)
+/*MT6162*/ { if(arfcn<=605)
+/*MT6162*/ { if(arfcn<=540)
+/*MT6162*/ { /* ARFCN : 512~540 */
+/*MT6162*/ *rfN = (((arfcn-512)*129055+4645998+(arfcn-512)/2)&0x3FF) | (131<<10);
+/*MT6162*/ *ifN = (((arfcn-512)*129055+4645998+(arfcn-512)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 541~605 */
+/*MT6162*/ *rfN = (((arfcn-541)*129055+(arfcn-541)/2)&0x3FF) | (132<<10);
+/*MT6162*/ *ifN = (((arfcn-541)*129055+(arfcn-541)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 606~670 */
+/*MT6162*/ *rfN = (((arfcn-606)*129055+(arfcn-606)/2)&0x3FF) | (133<<10);
+/*MT6162*/ *ifN = (((arfcn-606)*129055+(arfcn-606)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 671~735 */
+/*MT6162*/ *rfN = (((arfcn-671)*129055+(arfcn-671)/2)&0x3FF) | (134<<10);
+/*MT6162*/ *ifN = (((arfcn-671)*129055+(arfcn-671)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { if(arfcn<=865)
+/*MT6162*/ { if(arfcn<=800)
+/*MT6162*/ { /* ARFCN : 736~800 */
+/*MT6162*/ *rfN = (((arfcn-736)*129055+(arfcn-736)/2)&0x3FF) | (135<<10);
+/*MT6162*/ *ifN = (((arfcn-736)*129055+(arfcn-736)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 801~865 */
+/*MT6162*/ *rfN = (((arfcn-801)*129055+(arfcn-801)/2)&0x3FF) | (136<<10);
+/*MT6162*/ *ifN = (((arfcn-801)*129055+(arfcn-801)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 866~885 */
+/*MT6162*/ *rfN = (((arfcn-866)*129055+(arfcn-866)/2)&0x3FF) | (137<<10);
+/*MT6162*/ *ifN = (((arfcn-866)*129055+(arfcn-866)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ break;
+/*MT6162*/ }
+/*MT6162*/ case FrequencyBand1900 :
+/*MT6162*/ {
+/*MT6162*/ channelFrequency = 18502+2*(arfcn-512); /* 1850.2+0.2*(arfcn-512) */
+/*MT6162*/ synthesizerFrequency = 2*channelFrequency;
+/*MT6162*/
+/*MT6162*/ if(arfcn<=685)
+/*MT6162*/ { if(arfcn<=620)
+/*MT6162*/ { if(arfcn<=555)
+/*MT6162*/ { /* ARFCN : 512~555 */
+/*MT6162*/ *rfN = (((arfcn-512)*129056+2710165-(arfcn-512)/2)&0x3FF) | (142<<10);
+/*MT6162*/ *ifN = (((arfcn-512)*129056+2710165-(arfcn-512)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 556~620 */
+/*MT6162*/ *rfN = (((arfcn-556)*129055+(arfcn-556)/2)&0x3FF) | (143<<10);
+/*MT6162*/ *ifN = (((arfcn-556)*129055+(arfcn-556)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 621~685 */
+/*MT6162*/ *rfN = (((arfcn-621)*129055+(arfcn-621)/2)&0x3FF) | (144<<10);
+/*MT6162*/ *ifN = (((arfcn-621)*129055+(arfcn-621)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { if(arfcn<=750)
+/*MT6162*/ { /* ARFCN : 686~750 */
+/*MT6162*/ *rfN = (((arfcn-686)*129055+(arfcn-686)/2)&0x3FF) | (145<<10);
+/*MT6162*/ *ifN = (((arfcn-686)*129055+(arfcn-686)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { /* ARFCN : 751~810 */
+/*MT6162*/ *rfN = (((arfcn-751)*129055+(arfcn-751)/2)&0x3FF) | (146<<10);
+/*MT6162*/ *ifN = (((arfcn-751)*129055+(arfcn-751)/2)>>10)&0x1FFF;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ break;
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ N_INT = synthesizerFrequency/260;
+/*MT6162*/ N_FRAC = ((synthesizerFrequency-260*N_INT)<<21) / 65; /* ((synthesizerFrequency-260*N_INT)<<23) / 260 */
+/*MT6162*/
+/*MT6162*/ if( L1D_RF_Get6162Version() == 1 )
+/*MT6162*/ { /* for OH E1, do nothing */ }
+/*MT6162*/ else
+/*MT6162*/ { /* for OH E2 */
+/*MT6162*/ l1d_rf2.is_integer = (N_FRAC == 0) ? 1 : 0;
+/*MT6162*/ if( rf_band <= FrequencyBand900 )
+/*MT6162*/ { l1d_rf2.is_isotpol = (N_FRAC > TX_N_FRAC_THRESHOLD_LB) ? 1 : 0; }
+/*MT6162*/ else
+/*MT6162*/ { l1d_rf2.is_isotpol = (N_FRAC > TX_N_FRAC_THRESHOLD_HB) ? 1 : 0; }
+/*MT6162*/ }
+/*MT6162*/
+/*MT6162*/ if( rf_band <= FrequencyBand900 )
+/*MT6162*/ {
+/*MT6162*/ if( AFC_TRx_Offset[rf_band] > AFC_TRx_Offset_Threshold_LB )
+/*MT6162*/ { TRx_Offset_value = (int)((AFC_TRx_Offset_Threshold_LB*258111)/200000); }
+/*MT6162*/ else if( AFC_TRx_Offset[rf_band] < (-AFC_TRx_Offset_Threshold_LB) )
+/*MT6162*/ { TRx_Offset_value = (int)(((-AFC_TRx_Offset_Threshold_LB)*258111)/200000); }
+/*MT6162*/ else
+/*MT6162*/ { TRx_Offset_value = (int)((AFC_TRx_Offset[rf_band]*258111)/200000); }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ {
+/*MT6162*/ if( AFC_TRx_Offset[rf_band] > AFC_TRx_Offset_Threshold_HB )
+/*MT6162*/ { TRx_Offset_value = (int)((AFC_TRx_Offset_Threshold_HB*129055)/200000); }
+/*MT6162*/ else if( AFC_TRx_Offset[rf_band] < (-AFC_TRx_Offset_Threshold_HB) )
+/*MT6162*/ { TRx_Offset_value = (int)(((-AFC_TRx_Offset_Threshold_HB)*129055)/200000); }
+/*MT6162*/ else
+/*MT6162*/ { TRx_Offset_value = (int)((AFC_TRx_Offset[rf_band]*129055)/200000); }
+/*MT6162*/ }
+/*MT6162*/
+/*MT6162*/ if( N_FRAC == 0 )
+/*MT6162*/ {
+/*MT6162*/ if( TRx_Offset_value >= 0 )
+/*MT6162*/ { N_FRAC += TRx_Offset_value; }
+/*MT6162*/ else
+/*MT6162*/ {
+/*MT6162*/ N_INT -= 1;
+/*MT6162*/ N_FRAC = 8388608+TRx_Offset_value; /* 2^23 = 8388608 */
+/*MT6162*/ }
+/*MT6162*/ }
+/*MT6162*/ else
+/*MT6162*/ { N_FRAC += TRx_Offset_value; }
+/*MT6162*/
+/*MT6162*/ *rfN = (N_FRAC&0x3FF) | ((N_INT&0xFF)<<10);
+/*MT6162*/ *ifN = (N_FRAC>>10)&0x1FFF;
+/*MT6162*/}
+/*MT6162*//* ========================================================================== */
+#endif
+
+#if IS_RF_MT6163
+/*MT6163*/ /* rfN : 0x01, CW1=>N_INT[7:0] and N_FRAC[ 9: 0] */
+/*MT6163*/ /* irN : 0x02, CW2=> N_FRAC[22:10] */
+/*MT6163*/
+/*MT6163*/ #define TX_NEAR_INT_N_FRAC_MIN 167772
+/*MT6163*/ #define TX_NEAR_INT_N_FRAC_MAX 754974
+/*MT6163*/ #define N_FRAC_DIFF_200KHZ_LB 258111 /* LB N_FRAC difference of neighboring ARFCN (200KHz) */
+/*MT6163*/ #define N_FRAC_DIFF_200KHZ_HB 129055 /* HB N_FRAC difference of neighboring ARFCN (200KHz) */
+/*MT6163*/ #define N_FRAC_MIN 0
+/*MT6163*/ #define N_FRAC_MAX 8388608 /* 2^23 */
+/*MT6163*/ #define AFC_TRX_OFFSET_BOUND_LB 30 /* offset range in LB is -30Hz ~ +30Hz */
+/*MT6163*/ #define AFC_TRX_OFFSET_BOUND_HB 60 /* offset range in HB is -60Hz ~ +60Hz */
+/*MT6163*/ #define CW2_DFM_SDM_IFM_ON_SET (0x1<<13)
+/*MT6163*/
+/*MT6163*/ extern short AFC_TRx_Offset[FrequencyBandCount];
+/*MT6163*/
+/*MT6163*/ static void L1D_RF_ComputeTxPLLFreq( char is_Rx, int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6163*/ {
+/*MT6163*/ int channelFrequency = 0;
+/*MT6163*/ int synthesizerFrequency = 0;
+/*MT6163*/ int N_INT, N_FRAC, frac_diff;
+/*MT6163*/ short trx_offset_bound;
+/*MT6163*/ char int_mask = 0x1<<is_Rx; /* bit1: RX, bit0: TX */
+/*MT6163*/ unsigned long sdm = 0;
+/*MT6163*/
+/*MT6163*/ if( is_Rx )
+/*MT6163*/ { /* Add freq offset of RX/TX at the same ARFCN */
+/*MT6163*/ switch( rf_band )
+/*MT6163*/ {
+/*MT6163*/ case FrequencyBand850:
+/*MT6163*/ case FrequencyBand900:
+/*MT6163*/ {
+/*MT6163*/ channelFrequency = 450; /* 45 MHz */
+/*MT6163*/ break;
+/*MT6163*/ }
+/*MT6163*/ case FrequencyBand1800:
+/*MT6163*/ {
+/*MT6163*/ channelFrequency = 950; /* 95 MHz */
+/*MT6163*/ break;
+/*MT6163*/ }
+/*MT6163*/ case FrequencyBand1900:
+/*MT6163*/ {
+/*MT6163*/ channelFrequency = 800; /* 80 MHz */
+/*MT6163*/ break;
+/*MT6163*/ }
+/*MT6163*/ }
+/*MT6163*/ }
+/*MT6163*/
+/*MT6163*/ switch( rf_band )
+/*MT6163*/ {
+/*MT6163*/ case FrequencyBand850:
+/*MT6163*/ {
+/*MT6163*/ channelFrequency += (8242 + 2*(arfcn-128)); /* 824.2 + 0.2*(arfcn-128) */
+/*MT6163*/ synthesizerFrequency = 4*channelFrequency;
+/*MT6163*/ break;
+/*MT6163*/ }
+/*MT6163*/ case FrequencyBand900:
+/*MT6163*/ {
+/*MT6163*/ if(arfcn<=124)
+/*MT6163*/ { channelFrequency += (8900 + 2*(arfcn)); } /* 890.0 + 0.2*(arfcn) */
+/*MT6163*/ else
+/*MT6163*/ { channelFrequency += (8900 + 2*(arfcn-1024)); } /* 890.0 + 0.2*(arfcn-1024) */
+/*MT6163*/ synthesizerFrequency = 4*channelFrequency;
+/*MT6163*/ break;
+/*MT6163*/ }
+/*MT6163*/ case FrequencyBand1800:
+/*MT6163*/ {
+/*MT6163*/ channelFrequency += (17102 + 2*(arfcn-512)); /* 1710.2 + 0.2*(arfcn-512) */
+/*MT6163*/ synthesizerFrequency = 2*channelFrequency;
+/*MT6163*/ break;
+/*MT6163*/ }
+/*MT6163*/ case FrequencyBand1900:
+/*MT6163*/ {
+/*MT6163*/ channelFrequency += (18502 + 2*(arfcn-512)); /* 1850.2 + 0.2*(arfcn-512) */
+/*MT6163*/ synthesizerFrequency = 2*channelFrequency;
+/*MT6163*/ break;
+/*MT6163*/ }
+/*MT6163*/ }
+/*MT6163*/
+/*MT6163*/ N_INT = synthesizerFrequency/260;
+/*MT6163*/ N_FRAC = ((synthesizerFrequency - 260*N_INT)<<21) / 65; /* ((synthesizerFrequency-260*N_INT)<<23) / 260 */
+/*MT6163*/
+/*MT6163*/ /* add TRX offset */
+/*MT6163*/ if( is_Rx )
+/*MT6163*/ { /* do nothing for RX */ }
+/*MT6163*/ else
+/*MT6163*/ {
+/*MT6163*/ if( rf_band <= FrequencyBand900 )
+/*MT6163*/ {
+/*MT6163*/ trx_offset_bound = AFC_TRX_OFFSET_BOUND_LB;
+/*MT6163*/ frac_diff = N_FRAC_DIFF_200KHZ_LB;
+/*MT6163*/ }
+/*MT6163*/ else
+/*MT6163*/ {
+/*MT6163*/ trx_offset_bound = AFC_TRX_OFFSET_BOUND_HB;
+/*MT6163*/ frac_diff = N_FRAC_DIFF_200KHZ_HB;
+/*MT6163*/ }
+/*MT6163*/
+/*MT6163*/ if( AFC_TRx_Offset[rf_band] > trx_offset_bound )
+/*MT6163*/ { AFC_TRx_Offset[rf_band] = trx_offset_bound; }
+/*MT6163*/ else if( AFC_TRx_Offset[rf_band] < (-1)*trx_offset_bound )
+/*MT6163*/ { AFC_TRx_Offset[rf_band] = (-1)*trx_offset_bound; }
+/*MT6163*/
+/*MT6163*/ N_FRAC += (int)(AFC_TRx_Offset[rf_band]*frac_diff/200000);
+/*MT6163*/
+/*MT6163*/ if( N_FRAC >= N_FRAC_MAX )
+/*MT6163*/ {
+/*MT6163*/ N_FRAC -= N_FRAC_MAX;
+/*MT6163*/ N_INT++;
+/*MT6163*/ }
+/*MT6163*/ else if( N_FRAC < N_FRAC_MIN )
+/*MT6163*/ {
+/*MT6163*/ N_FRAC += N_FRAC_MAX;
+/*MT6163*/ N_INT--;
+/*MT6163*/ }
+/*MT6163*/ }
+/*MT6163*/
+/*MT6163*/ /* integer channel check */
+/*MT6163*/ if( N_FRAC == 0 )
+/*MT6163*/ { l1d_rf2.is_integer |= int_mask; } /* integer */
+/*MT6163*/ else
+/*MT6163*/ { l1d_rf2.is_integer &= ~int_mask; } /* not integer */
+/*MT6163*/
+/*MT6163*/ /* near-integer channel check */
+/*MT6163*/ if( is_Rx )
+/*MT6163*/ { sdm = (l1d_rf2.is_integer&0x2) ? 0 : CW2_DFM_SDM_IFM_ON_SET; } /* turn off for integer channels */
+/*MT6163*/ else
+/*MT6163*/ { l1d_rf2.is_isotpol = (N_FRAC>TX_NEAR_INT_N_FRAC_MIN && N_FRAC<TX_NEAR_INT_N_FRAC_MAX) ? 1 : 0; }
+/*MT6163*/
+/*MT6163*/ *rfN = (N_FRAC&0x3FF) | ((N_INT&0xFF)<<10);
+/*MT6163*/ *ifN = (sdm)|((N_FRAC>>10)&0x1FFF);
+/*MT6163*/ }
+/*MT6163*/ /* ========================================================================== */
+/*MT6163*/
+/*MT6163*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6163*/ {
+/*MT6163*/ L1D_RF_ComputeTxPLLFreq( 1/*RX*/, rf_band, arfcn, rfN, ifN );
+/*MT6163*/ }
+/*MT6163*/ /* ========================================================================== */
+/*MT6163*/
+/*MT6163*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6163*/ {
+/*MT6163*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_SetTxGainWrite()
+/*MT6163*/ L1D_RF_ComputeTxPLLFreq( 0/*TX*/, rf_band, arfcn, rfN, ifN );
+/*MT6163*/ }
+/*MT6163*/ /* ========================================================================== */
+#endif
+
+#if IS_RF_MT6280RF
+/*MT6280RF*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6280RF*/ { long *if_sel = ifN+1;
+/*MT6280RF*/ unsigned short Nint =0, CH_freq =0;
+/*MT6280RF*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6280RF*/
+/*MT6280RF*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6280RF*/
+/*MT6280RF*/ *if_sel = 0;
+/*MT6280RF*/ if( rf_band < FrequencyBand1800 )
+/*MT6280RF*/ VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF);
+/*MT6280RF*/ else
+/*MT6280RF*/ VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF);
+/*MT6280RF*/
+/*MT6280RF*/ Nint = VCO_freq/(RX_DCXO_FREQ*DLIF_SCALE);
+/*MT6280RF*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6280RF*/ Nfrac = ( (((VCO_freq-Nint*RX_DCXO_FREQ*DLIF_SCALE)*2080)<<3) + (195)/2 )/195;
+/*MT6280RF*/
+/*MT6280RF*/ /* CW99, N_INT[6:0], N_RFC[23:11] */
+/*MT6280RF*/ *rfN = BSI_CW( 0x63, ((Nint &0x7F)<<13) | (Nfrac>>11) );
+/*MT6280RF*/ /* CW100, N_FRAC[10:0], DITHER_MASK[4:0] */
+/*MT6280RF*/ *ifN = BSI_CW( 0x64, ((Nfrac&0x7FF)<<9) | 0x10 );
+/*MT6280RF*/
+/*MT6280RF*/ }
+/*MT6280RF*/ /* =========================================================================== */
+/*MT6280RF*/
+/*MT6280RF*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6280RF*/ {
+/*MT6280RF*/ unsigned short Nint =0, CH_freq =0;
+/*MT6280RF*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6280RF*/ unsigned short DAoffset=0;
+/*MT6280RF*/
+/*MT6280RF*/
+/*MT6280RF*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6280RF*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6280RF*/
+/*MT6280RF*/ if( rf_band < FrequencyBand1800 )
+/*MT6280RF*/ VCO_freq = 4*CH_freq;
+/*MT6280RF*/ else
+/*MT6280RF*/ VCO_freq = 2*CH_freq;
+/*MT6280RF*/
+/*MT6280RF*/ Nint = VCO_freq/TX_DCXO_FREQ;
+/*MT6280RF*/ Nfrac = ( ((VCO_freq-Nint*TX_DCXO_FREQ)<<23) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6280RF*/
+/*MT6280RF*/ DAoffset = L1D_RF_GetTxDAoffsetSetting( Nint );
+/*MT6280RF*/
+/*MT6280RF*/ /* CW95, N_INT[7:0], N_RFC[22:11] */
+/*MT6280RF*/ *rfN = BSI_CW( 0x5F, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6280RF*/ /* CW96, N_FRAC[10:0], DA_OFFSET[7:0], DI_EN */
+/*MT6280RF*/ *ifN = BSI_CW( 0x60, ((Nfrac&0x7FF)<<9) | ((DAoffset&0xFF)<<1) | 0x1);
+/*MT6280RF*/
+/*MT6280RF*/ }
+/*MT6280RF*/ /* =========================================================================== */
+/*MT6280RF*/
+/*MT6280RF*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6280RF*/ {
+/*MT6280RF*/ unsigned short freq=4450+225;
+/*MT6280RF*/ switch( rf_band )
+/*MT6280RF*/ {
+/*MT6280RF*/ case FrequencyBand850 :
+/*MT6280RF*/ {
+/*MT6280RF*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6280RF*/ break;
+/*MT6280RF*/ }
+/*MT6280RF*/ case FrequencyBand900 :
+/*MT6280RF*/ {
+/*MT6280RF*/ if( arfcn<=124 )
+/*MT6280RF*/ { freq=4450+arfcn+225; }
+/*MT6280RF*/ else
+/*MT6280RF*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6280RF*/ break;
+/*MT6280RF*/ }
+/*MT6280RF*/ case FrequencyBand1800 :
+/*MT6280RF*/ {
+/*MT6280RF*/ freq=8551+(arfcn-512)+475;
+/*MT6280RF*/ break;
+/*MT6280RF*/ }
+/*MT6280RF*/ case FrequencyBand1900 :
+/*MT6280RF*/ {
+/*MT6280RF*/ freq=9251+(arfcn-512)+400;
+/*MT6280RF*/ break;
+/*MT6280RF*/ }
+/*MT6280RF*/ default :
+/*MT6280RF*/ {
+/*MT6280RF*/ break;
+/*MT6280RF*/ }
+/*MT6280RF*/ }
+/*MT6280RF*/
+/*MT6280RF*/ return freq;
+/*MT6280RF*/ }
+/*MT6280RF*/ /* =========================================================================== */
+/*MT6280RF*/
+/*MT6280RF*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6280RF*/ {
+/*MT6280RF*/ unsigned short freq=4450;
+/*MT6280RF*/ switch( rf_band )
+/*MT6280RF*/ {
+/*MT6280RF*/ case FrequencyBand850 :
+/*MT6280RF*/ {
+/*MT6280RF*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6280RF*/ break;
+/*MT6280RF*/ }
+/*MT6280RF*/ case FrequencyBand900 :
+/*MT6280RF*/ {
+/*MT6280RF*/ if( arfcn<=124 )
+/*MT6280RF*/ { freq=4450+arfcn; }
+/*MT6280RF*/ else
+/*MT6280RF*/ { freq=4450+(arfcn-1024); }
+/*MT6280RF*/ break;
+/*MT6280RF*/ }
+/*MT6280RF*/ case FrequencyBand1800 :
+/*MT6280RF*/ {
+/*MT6280RF*/ freq=8551+(arfcn-512);
+/*MT6280RF*/ break;
+/*MT6280RF*/ }
+/*MT6280RF*/ case FrequencyBand1900 :
+/*MT6280RF*/ {
+/*MT6280RF*/ freq=9251+(arfcn-512);
+/*MT6280RF*/ break;
+/*MT6280RF*/ }
+/*MT6280RF*/ default :
+/*MT6280RF*/ {
+/*MT6280RF*/ break;
+/*MT6280RF*/ }
+/*MT6280RF*/ }
+/*MT6280RF*/
+/*MT6280RF*/ return freq;
+/*MT6280RF*/ }
+/*MT6280RF*/ /* =========================================================================== */
+/*MT6280RF*/
+/*MT6280RF*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6280RF*/ {
+/*MT6280RF*/ char segment_tx=3, LUT_num_tx=8, offset_tx=13; // LUT method related parameters
+/*MT6280RF*/ unsigned short TXDCO_LUT[8]={1865, 1424, 1067, 774, 534, 331, 160, 13}; // TXDCO LUT
+/*MT6280RF*/ short idx, x_axis, code_type; // code_type value for SCA calibration (code_type > 0)
+/*MT6280RF*/
+/*MT6280RF*/ /* STX DCO SCA Typical Code LUT */
+/*MT6280RF*/ idx = (Nint>>segment_tx)-((short)offset_tx);
+/*MT6280RF*/ if(idx<0)
+/*MT6280RF*/ idx = 0;
+/*MT6280RF*/ else if(idx>(LUT_num_tx-2))
+/*MT6280RF*/ idx = LUT_num_tx-2;
+/*MT6280RF*/
+/*MT6280RF*/ x_axis = ((Nint-((Nint>>segment_tx)<<segment_tx))<<3)+((short)(Nfrac>>20));
+/*MT6280RF*/ code_type = TXDCO_LUT[idx]+ ((x_axis*(TXDCO_LUT[idx+1]-TXDCO_LUT[idx]))>>(segment_tx+3));
+/*MT6280RF*/ code_type <<= 1;
+/*MT6280RF*/
+/*MT6280RF*/ return code_type;
+/*MT6280RF*/ }
+/*MT6280RF*/ /* =========================================================================== */
+/*MT6280RF*/
+/*MT6280RF*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6280RF*/ {
+/*MT6280RF*/ unsigned short DEM_Chunk_L1;
+/*MT6280RF*/ unsigned short OUT_G, OUT_E;
+/*MT6280RF*/ char segment_dem=4, LUT_num_dem=4, offset_dem=7; // LUT method related parameters
+/*MT6280RF*/ unsigned short DEM_chunk_G_LUT[4]={15, 10, 7, 5}; // DEM chunk GMSK LUT
+/*MT6280RF*/ unsigned short DEM_chunk_E_LUT[4]={69, 46, 33, 24}; // DEM chunk EPSK LUT
+/*MT6280RF*/ short idx;
+/*MT6280RF*/
+/*MT6280RF*/ /* STX DEM CHUNK LUT */
+/*MT6280RF*/ idx = (Nint>>segment_dem)-((short)offset_dem);
+/*MT6280RF*/ if(idx<0)
+/*MT6280RF*/ idx = 0;
+/*MT6280RF*/ else if(idx>(LUT_num_dem-2))
+/*MT6280RF*/ idx = LUT_num_dem-2;
+/*MT6280RF*/
+/*MT6280RF*/ OUT_G = DEM_chunk_G_LUT[idx]+(((Nint-((Nint>>segment_dem)<<segment_dem))*(DEM_chunk_G_LUT[idx+1]-DEM_chunk_G_LUT[idx]))>>(segment_dem));
+/*MT6280RF*/ OUT_E = DEM_chunk_E_LUT[idx]+(((Nint-((Nint>>segment_dem)<<segment_dem))*(DEM_chunk_E_LUT[idx+1]-DEM_chunk_E_LUT[idx]))>>(segment_dem));
+/*MT6280RF*/
+/*MT6280RF*/ if( ( (l1d_rf.tx_mod_type2)^(l1d_rf.tx_mod_type2<<1) ) & 0xE ) // IS_MIXED_MULTISLOT
+/*MT6280RF*/ {
+/*MT6280RF*/ if( rf_band < FrequencyBand1800 )
+/*MT6280RF*/ DEM_Chunk_L1 = ((OUT_E+OUT_G+5)>40) ? (OUT_E+OUT_G+5) : 40;
+/*MT6280RF*/ else
+/*MT6280RF*/ DEM_Chunk_L1 = 40;
+/*MT6280RF*/ }
+/*MT6280RF*/ else
+/*MT6280RF*/ {
+/*MT6280RF*/ if( (l1d_rf.tx_mod_type2 != 0) && (rf_band < FrequencyBand1800) )
+/*MT6280RF*/ DEM_Chunk_L1 = ((2*OUT_E+6)>40) ? (2*OUT_E+6) : 40;
+/*MT6280RF*/ else
+/*MT6280RF*/ DEM_Chunk_L1 = 40;
+/*MT6280RF*/ }
+/*MT6280RF*/ return DEM_Chunk_L1;
+/*MT6280RF*/ }
+/*MT6280RF*/ /* =========================================================================== */
+/*MT6280RF*/
+/*MT6280RF*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6280RF*/ {
+/*MT6280RF*/ unsigned short Nint =0, CH_freq =0;
+/*MT6280RF*/ unsigned long Nfrac=0, DCO4G_freq=0;
+/*MT6280RF*/
+/*MT6280RF*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6280RF*/
+/*MT6280RF*/ if( rf_band < FrequencyBand1800 )
+/*MT6280RF*/ DCO4G_freq = 4*CH_freq;
+/*MT6280RF*/ else
+/*MT6280RF*/ DCO4G_freq = 2*CH_freq;
+/*MT6280RF*/
+/*MT6280RF*/ Nint = ( (DCO4G_freq<<15) - 64*DCO4G_freq + 64*TX_DCXO_FREQ*92 ) / (TX_DCXO_FREQ<<15);
+/*MT6280RF*/ Nfrac = ( ( ( (DCO4G_freq<<15) - 64*DCO4G_freq + 64*TX_DCXO_FREQ*92 - ((Nint*TX_DCXO_FREQ)<<15) )<<8 ) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6280RF*/
+/*MT6280RF*/ /* CW97, N_INT1[7:0], N_RFC1[22:11] */
+/*MT6280RF*/ *rfN = BSI_CW( 0x61, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6280RF*/ /* CW98, N_FRAC1[10:0], NOFFSET_REV[3:0], STX_DCO_SCAK_NOFFSET[2:0], STX_MMD_SDM_DI_LS[1:0] */
+/*MT6280RF*/ *ifN = BSI_CW( 0x62, ((Nfrac&0x7FF)<<9) | 0x00);
+/*MT6280RF*/
+/*MT6280RF*/ }
+/*MT6280RF*/ /* =========================================================================== */
+/*MT6280RF*/
+/*MT6280RF*/ unsigned short L1D_RF_GetTxDAoffsetSetting(unsigned short Nint)
+/*MT6280RF*/ {
+/*MT6280RF*/ return (Nint - 10);
+/*MT6280RF*/ }
+#endif
+
+#if IS_RF_MT6169
+/*MT6169*/ //For DLIF mode
+/*MT6169*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6169*/ {
+ #if IS_W_CANCELLATION_SUPPORT
+/*MT6169*/ if( L1D_CheckIfMetaMode() )
+/*MT6169*/ { return l1d_rf.if_state; }
+/*MT6169*/ else
+/*MT6169*/ { return 0; }
+ #else
+/*MT6169*/ return 0;
+ #endif
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6169*/ { long *if_sel = ifN+1;
+/*MT6169*/ unsigned short Nint =0, CH_freq =0;
+/*MT6169*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6169*/ unsigned short Nint_spur =0;
+/*MT6169*/ unsigned long Nfrac_spur=0;
+/*MT6169*/ unsigned long frac_spurs_thd0=0, frac_spurs_thd1=0;
+/*MT6169*/ unsigned long frac_spurs_mid_thd0=4129776, frac_spurs_mid_thd1=4258832;
+/*MT6169*/ long freqOffset=0;
+/*MT6169*/
+/*MT6169*/ unsigned short RG_RXREP_EN = 1;
+/*MT6169*/ unsigned short RG_SRX_REF_SEL = (SDATA_CW117[rf_band]&0x3);
+/*MT6169*/ unsigned short RG_SRX_KVCO_SEL[5] = { 0, 2, 2, 2, 2};
+/*MT6169*/ unsigned short RG_SRX_LF_R2[5] = { 0, 24, 20, 21, 18};
+/*MT6169*/ unsigned short FREF_SRX[3] = {26, 13, 52};
+/*MT6169*/ unsigned short multiplier[3] = {15, 16, 14};
+/*MT6169*/ unsigned char IF_state=0; //IF_state=0:default, IF_state=1:+IF, IF_state=2:-IF
+/*MT6169*/
+/*MT6169*/ IF_state = L1D_RF_Cal_IF_Synth_State();
+/*MT6169*/
+/*MT6169*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6169*/
+/*MT6169*/ if( IF_state != 2 )
+/*MT6169*/ {
+/*MT6169*/ *if_sel = 0;
+/*MT6169*/ if( rf_band < FrequencyBand1800 )
+/*MT6169*/ {
+/*MT6169*/ VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6169*/ frac_spurs_thd0 = 193584;
+/*MT6169*/ frac_spurs_thd1 = 8195024;
+/*MT6169*/ }
+/*MT6169*/ else
+/*MT6169*/ {
+/*MT6169*/ VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6169*/ frac_spurs_thd0 = 96792;
+/*MT6169*/ frac_spurs_thd1 = 8291816;
+/*MT6169*/ }
+/*MT6169*/ }
+/*MT6169*/
+/*MT6169*/ Nint = VCO_freq/(FREF_SRX[RG_SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE);
+/*MT6169*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6169*/ Nfrac = ( ((VCO_freq-Nint*FREF_SRX[RG_SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE)<<multiplier[RG_SRX_REF_SEL]) + (195)/2 )/195;
+/*MT6169*/
+/*MT6169*/ Nint_spur = VCO_freq/(FREF_SRX[0]*SYNTH_SCALE*DLIF_SCALE);
+/*MT6169*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6169*/ Nfrac_spur = ( ((VCO_freq-Nint_spur*FREF_SRX[0]*SYNTH_SCALE*DLIF_SCALE)<<multiplier[0]) + (195)/2 )/195;
+/*MT6169*/
+/*MT6169*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6169*/ extern long L1D_DualLoopAFC_CalculateFreqOffset();
+/*MT6169*/ freqOffset = (long)L1D_DualLoopAFC_CalculateFreqOffset(); // Check current freqOffset from activer rat
+/*MT6169*/ if( (l1d_rf.is_lock_dcxo) && (freqOffset > SRX_SPUR_SEL_CRITERION) )
+/*MT6169*/ { /* 26MHz is faster, Spur freq will move to lower frequency */
+/*MT6169*/ frac_spurs_thd0 += ( (rf_band<FrequencyBand1800) ? SRX_SPUR_LB_OFFSET : SRX_SPUR_HB_OFFSET );
+/*MT6169*/ frac_spurs_thd1 += ( (rf_band<FrequencyBand1800) ? SRX_SPUR_LB_OFFSET : SRX_SPUR_HB_OFFSET );
+/*MT6169*/ frac_spurs_mid_thd0 += ( (rf_band<FrequencyBand1800) ? SRX_MID_SPUR_LB_OFFSET : SRX_MID_SPUR_HB_OFFSET-2 ); // Adjust srx spur range at HB to guratee spur channel far from spur when 26MHz drift
+/*MT6169*/ frac_spurs_mid_thd1 += ( (rf_band<FrequencyBand1800) ? SRX_MID_SPUR_LB_OFFSET : SRX_MID_SPUR_HB_OFFSET );
+/*MT6169*/ }
+/*MT6169*/ else if( (l1d_rf.is_lock_dcxo) && (freqOffset < -SRX_SPUR_SEL_CRITERION) )
+/*MT6169*/ { /* 26MHz is slower, Spur freq will move to higher frequency */
+/*MT6169*/ frac_spurs_thd0 -= ( (rf_band<FrequencyBand1800) ? SRX_SPUR_LB_OFFSET : SRX_SPUR_HB_OFFSET );
+/*MT6169*/ frac_spurs_thd1 -= ( (rf_band<FrequencyBand1800) ? SRX_SPUR_LB_OFFSET : SRX_SPUR_HB_OFFSET );
+/*MT6169*/ frac_spurs_mid_thd0 -= ( (rf_band<FrequencyBand1800) ? SRX_MID_SPUR_LB_OFFSET : SRX_MID_SPUR_HB_OFFSET );
+/*MT6169*/ frac_spurs_mid_thd1 -= ( (rf_band<FrequencyBand1800) ? SRX_MID_SPUR_LB_OFFSET : SRX_MID_SPUR_HB_OFFSET );
+/*MT6169*/ }
+/*MT6169*/ #endif
+/*MT6169*/
+/*MT6169*/ if( IF_state != 1 )
+/*MT6169*/ {
+/*MT6169*/ // check fractional spurs criterion (for run-time) or IRR state (for IRR calibration)
+/*MT6169*/ if( ( Nfrac_spur < frac_spurs_thd0 ) || ( Nfrac_spur > frac_spurs_thd1 ) || ( Nfrac_spur < frac_spurs_mid_thd1 && Nfrac_spur > frac_spurs_mid_thd0 ) || ( IF_state == 2 ) )
+/*MT6169*/ {
+/*MT6169*/ *if_sel = 1; //-170k
+/*MT6169*/ if( rf_band < FrequencyBand1800 )
+/*MT6169*/ { VCO_freq = 4*(CH_freq*DLIF_SCALE + DLIF); } //Low-side mixing
+/*MT6169*/ else
+/*MT6169*/ { VCO_freq = 2*(CH_freq*DLIF_SCALE + DLIF); } //Low-side mixing
+/*MT6169*/
+/*MT6169*/ Nint = VCO_freq/(FREF_SRX[RG_SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE);
+/*MT6169*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6169*/ Nfrac = ( ((VCO_freq-Nint*FREF_SRX[RG_SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE)<<multiplier[RG_SRX_REF_SEL]) + (195)/2 )/195;
+/*MT6169*/ }
+/*MT6169*/ }
+/*MT6169*/
+/*MT6169*/ /* CW115, N_INT[8:0], N_RFC[22:20], RG_RXREP_EN, RG_SRX_KVCO_SEL[1:0], RG_SRX_LF_R2[4:0] */
+/*MT6169*/ *rfN = BSI_CW( 0x73, ((Nint &0x1FF)<<11) | (((Nfrac>>20)&0x7)<<8) | ((RG_RXREP_EN&0x1)<<7) | ((RG_SRX_KVCO_SEL[rf_band]&0x3)<<5) | (RG_SRX_LF_R2[rf_band]&0x1F) );
+/*MT6169*/ /* CW116, N_FRAC[19:0] */
+/*MT6169*/ *ifN = BSI_CW( 0x74, (Nfrac&0xFFFFF) );
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ void L1D_RF_SplitRxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6169*/ {
+/*MT6169*/ *Nint = (rfN&(0x1FF<<11))>>11;
+/*MT6169*/ *Nfrac = ( ((rfN>>8)&0x7)<<20 ) | (ifN&0xFFFFF);
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ void L1D_RF_AdjustRxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6169*/ {
+/*MT6169*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 0 );
+/*MT6169*/
+/*MT6169*/ /* CW223, SRX_NINT[8:0], SRX_NRFC[22:12] */
+/*MT6169*/ *rfN = BSI_CW( 0x73, ((Nint &0x1FF)<<11) | (((Nfrac>>20)&0x7)<<8) | ((*rfN)&0xFF) );
+/*MT6169*/ /* CW224, SRX_NFRAC[11:0],SRX_REF_DOUBLER_EN,SRX_CAL_DISABLE,SRX_VCO_CFG[2:0],TALL_TRG_M,SRX_SDM_FRAC_MODE,SRX_RELOCK */
+/*MT6169*/ *ifN = BSI_CW( 0x74, (Nfrac&0xFFFFF));
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6169*/ {
+/*MT6169*/ unsigned short Nint =0, CH_freq =0;
+/*MT6169*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6169*/
+/*MT6169*/ unsigned short DA_OFFSET_26M = 10;
+/*MT6169*/ unsigned short MMD_SDM_DI_EN = 0; //keep POR = 0
+/*MT6169*/
+/*MT6169*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6169*/ #if IS_MIPI_SUPPORT
+/*MT6169*/ l1d_mipi.tx_arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6169*/ #endif
+/*MT6169*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6169*/
+/*MT6169*/ if( rf_band < FrequencyBand1800 )
+/*MT6169*/ VCO_freq = 4*CH_freq;
+/*MT6169*/ else
+/*MT6169*/ VCO_freq = 2*CH_freq;
+/*MT6169*/
+/*MT6169*/ Nint = VCO_freq/TX_DCXO_FREQ;
+/*MT6169*/ Nfrac = ( ((VCO_freq-Nint*TX_DCXO_FREQ)<<23) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6169*/
+/*MT6169*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6169*/ if( l1d_rf.is_lock_dcxo )
+/*MT6169*/ { /* SW dithering after L1D_RF_AdjustTxPLLSetting() */ }
+/*MT6169*/ else
+/*MT6169*/ #endif
+/*MT6169*/ { /* Apply SW dithering no matter it is integer channel or not */
+/*MT6169*/ Nfrac = ( (Nfrac&0x1) == 0 ) ? Nfrac+1 : Nfrac; //always let LSB[0]=1
+/*MT6169*/ }
+/*MT6169*/
+/*MT6169*/ /* CW169, N_INT[7:0], N_RFC[22:11] */
+/*MT6169*/ *rfN = BSI_CW( 0xA9, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6169*/ /* CW170, N_FRAC[10:0], DA_OFFSET[7:0], DI_EN */
+/*MT6169*/ *ifN = BSI_CW( 0xAA, ((Nfrac&0x7FF)<<9) | ((DA_OFFSET_26M&0xFF)<<1) | (MMD_SDM_DI_EN&0x1) );
+/*MT6169*/
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ void L1D_RF_SplitTxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6169*/ {
+/*MT6169*/ *Nint = (rfN&(0xFF<<12))>>12;
+/*MT6169*/ *Nfrac = ( (rfN&0xFFF)<<11 ) | ( (ifN&(0x7FF<<9))>>9 );
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ void L1D_RF_AdjustTxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6169*/ {
+/*MT6169*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 1 );
+/*MT6169*/
+/*MT6169*/ /* Apply SW dithering no matter it is integer channel or not */
+/*MT6169*/ Nfrac = ( (Nfrac&0x1) == 0 ) ? Nfrac+1 : Nfrac; //always let LSB[0]=1
+/*MT6169*/
+/*MT6169*/ /* CW169, N_INT[7:0], N_RFC[22:11] */
+/*MT6169*/ *rfN = BSI_CW( 0xA9, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6169*/ /* CW170, N_FRAC[10:0], DA_OFFSET[7:0], DI_EN */
+/*MT6169*/ *ifN = BSI_CW( 0xAA, ((Nfrac&0x7FF)<<9) |((*ifN)&0x1FF));
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ void L1D_RF_CompensateSXSetting( unsigned short *Nint, unsigned long *Nfrac, signed long NfracOffset, unsigned char is_TX)
+/*MT6169*/ {
+/*MT6169*/ signed long Max_Nfrac=0;
+/*MT6169*/ if( is_TX )
+/*MT6169*/ { Max_Nfrac = STX_MAX_NFRAC; }
+/*MT6169*/ else
+/*MT6169*/ { Max_Nfrac = SRX_MAX_NFRAC; }
+/*MT6169*/
+/*MT6169*/ //Calculate new Nfrac and Nint
+/*MT6169*/ *Nfrac += (NfracOffset + Max_Nfrac);
+/*MT6169*/ if( *Nfrac < Max_Nfrac )
+/*MT6169*/ { (*Nint)--;
+/*MT6169*/ }
+/*MT6169*/ else if( *Nfrac >= (Max_Nfrac<<1) )
+/*MT6169*/ { (*Nint)++;
+/*MT6169*/ *Nfrac = *Nfrac - (Max_Nfrac<<1);
+/*MT6169*/ }
+/*MT6169*/ else
+/*MT6169*/ { *Nfrac-= Max_Nfrac;
+/*MT6169*/ }
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6169*/ {
+/*MT6169*/ unsigned short freq=4450+225;
+/*MT6169*/ switch( rf_band )
+/*MT6169*/ {
+/*MT6169*/ case FrequencyBand850 :
+/*MT6169*/ {
+/*MT6169*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6169*/ break;
+/*MT6169*/ }
+/*MT6169*/ case FrequencyBand900 :
+/*MT6169*/ {
+/*MT6169*/ if( arfcn<=124 )
+/*MT6169*/ { freq=4450+arfcn+225; }
+/*MT6169*/ else
+/*MT6169*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6169*/ break;
+/*MT6169*/ }
+/*MT6169*/ case FrequencyBand1800 :
+/*MT6169*/ {
+/*MT6169*/ freq=8551+(arfcn-512)+475;
+/*MT6169*/ break;
+/*MT6169*/ }
+/*MT6169*/ case FrequencyBand1900 :
+/*MT6169*/ {
+/*MT6169*/ freq=9251+(arfcn-512)+400;
+/*MT6169*/ break;
+/*MT6169*/ }
+/*MT6169*/ default :
+/*MT6169*/ {
+/*MT6169*/ break;
+/*MT6169*/ }
+/*MT6169*/ }
+/*MT6169*/
+/*MT6169*/ return freq;
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6169*/ {
+/*MT6169*/ unsigned short freq=4450;
+/*MT6169*/ switch( rf_band )
+/*MT6169*/ {
+/*MT6169*/ case FrequencyBand850 :
+/*MT6169*/ {
+/*MT6169*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6169*/ break;
+/*MT6169*/ }
+/*MT6169*/ case FrequencyBand900 :
+/*MT6169*/ {
+/*MT6169*/ if( arfcn<=124 )
+/*MT6169*/ { freq=4450+arfcn; }
+/*MT6169*/ else
+/*MT6169*/ { freq=4450+(arfcn-1024); }
+/*MT6169*/ break;
+/*MT6169*/ }
+/*MT6169*/ case FrequencyBand1800 :
+/*MT6169*/ {
+/*MT6169*/ freq=8551+(arfcn-512);
+/*MT6169*/ break;
+/*MT6169*/ }
+/*MT6169*/ case FrequencyBand1900 :
+/*MT6169*/ {
+/*MT6169*/ freq=9251+(arfcn-512);
+/*MT6169*/ break;
+/*MT6169*/ }
+/*MT6169*/ default :
+/*MT6169*/ {
+/*MT6169*/ break;
+/*MT6169*/ }
+/*MT6169*/ }
+/*MT6169*/
+/*MT6169*/ return freq;
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6169*/ {
+/*MT6169*/ char segment_tx=3, LUT_num_tx=6, offset_tx=15; // LUT method related parameters
+/*MT6169*/ signed short TXDCO_LUT[6]={2786, 1986, 1337, 792, 316, -68}; // TXDCO LUT
+/*MT6169*/ short idx, x_axis, code_type; // code_type value for SCA calibration (code_type > 0)
+/*MT6169*/
+/*MT6169*/ /* STX DCO SCA Typical Code LUT */
+/*MT6169*/ idx = (Nint>>segment_tx)-((short)offset_tx);
+/*MT6169*/ if(idx<0)
+/*MT6169*/ idx = 0;
+/*MT6169*/ else if(idx>(LUT_num_tx-2))
+/*MT6169*/ idx = LUT_num_tx-2;
+/*MT6169*/
+/*MT6169*/ x_axis = ((Nint-((Nint>>segment_tx)<<segment_tx))<<3)+((short)(Nfrac>>20));
+/*MT6169*/ code_type = TXDCO_LUT[idx]+ ((x_axis*(TXDCO_LUT[idx+1]-TXDCO_LUT[idx]))>>(segment_tx+3));
+/*MT6169*/
+/*MT6169*/ return code_type;
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6169*/ {
+/*MT6169*/ unsigned short DEM_Chunk_L1;
+/*MT6169*/ unsigned short OUT_G, OUT_E;
+/*MT6169*/ char segment_dem=4, LUT_num_dem=4, offset_dem=7; // LUT method related parameters
+/*MT6169*/ unsigned short DEM_chunk_G_LUT[4]={15, 10, 7, 5}; // DEM chunk GMSK LUT
+/*MT6169*/ unsigned short DEM_chunk_E_LUT[4]={69, 46, 33, 24}; // DEM chunk EPSK LUT
+/*MT6169*/ short idx;
+/*MT6169*/
+/*MT6169*/ /* STX DEM CHUNK LUT */
+/*MT6169*/ idx = (Nint>>segment_dem)-((short)offset_dem);
+/*MT6169*/ if(idx<0)
+/*MT6169*/ idx = 0;
+/*MT6169*/ else if(idx>(LUT_num_dem-2))
+/*MT6169*/ idx = LUT_num_dem-2;
+/*MT6169*/
+/*MT6169*/ OUT_G = DEM_chunk_G_LUT[idx]+(((Nint-((Nint>>segment_dem)<<segment_dem))*(DEM_chunk_G_LUT[idx+1]-DEM_chunk_G_LUT[idx]))>>(segment_dem));
+/*MT6169*/ OUT_E = DEM_chunk_E_LUT[idx]+(((Nint-((Nint>>segment_dem)<<segment_dem))*(DEM_chunk_E_LUT[idx+1]-DEM_chunk_E_LUT[idx]))>>(segment_dem));
+/*MT6169*/
+/*MT6169*/ if( ( (l1d_rf.tx_mod_type2)^(l1d_rf.tx_mod_type2<<1) ) & 0xE ) // IS_MIXED_MULTISLOT
+/*MT6169*/ {
+/*MT6169*/ if( rf_band < FrequencyBand1800 )
+/*MT6169*/ DEM_Chunk_L1 = ((OUT_E+OUT_G+5)>40) ? (OUT_E+OUT_G+5) : 40;
+/*MT6169*/ else
+/*MT6169*/ DEM_Chunk_L1 = 40;
+/*MT6169*/ }
+/*MT6169*/ else
+/*MT6169*/ {
+/*MT6169*/ if( (l1d_rf.tx_mod_type2 != 0) && (rf_band < FrequencyBand1800) )
+/*MT6169*/ DEM_Chunk_L1 = ((2*OUT_E+6)>40) ? (2*OUT_E+6) : 40;
+/*MT6169*/ else
+/*MT6169*/ DEM_Chunk_L1 = 40;
+/*MT6169*/ }
+/*MT6169*/ return DEM_Chunk_L1;
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+/*MT6169*/
+/*MT6169*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6169*/ {
+/*MT6169*/ unsigned short Nint =0, CH_freq =0;
+/*MT6169*/ unsigned long Nfrac=0, DCO4G_freq=0;
+/*MT6169*/ unsigned short KDCO_NCAL = (POR_CW176&(0x3<<6))>>6;
+/*MT6169*/ unsigned short NCAL[4] = {64, 96, 16, 32};
+/*MT6169*/
+/*MT6169*/ unsigned short DCO_SCAK_NOFFSET = 0; //keep POR = 0
+/*MT6169*/ unsigned short MMD_SDM_DI_LS = 0; //keep POR = 0
+/*MT6169*/ signed long Nfrac1Offset = 0;
+/*MT6169*/
+/*MT6169*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6169*/
+/*MT6169*/ if( rf_band < FrequencyBand1800 )
+/*MT6169*/ DCO4G_freq = 4*CH_freq;
+/*MT6169*/ else
+/*MT6169*/ DCO4G_freq = 2*CH_freq;
+/*MT6169*/
+/*MT6169*/ Nint = ( (DCO4G_freq<<15) - NCAL[KDCO_NCAL]*DCO4G_freq + NCAL[KDCO_NCAL]*TX_DCXO_FREQ*92 ) / (TX_DCXO_FREQ<<15);
+/*MT6169*/ Nfrac = ( ( ( (DCO4G_freq<<15) - NCAL[KDCO_NCAL]*DCO4G_freq + NCAL[KDCO_NCAL]*TX_DCXO_FREQ*92 - ((Nint*TX_DCXO_FREQ)<<15) )<<8 ) )/TX_DCXO_FREQ; //floor
+/*MT6169*/
+/*MT6169*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6169*/ if( l1d_rf.is_lock_dcxo )
+/*MT6169*/ { Nfrac1Offset = l1d_rf.tx_nfracoffset - ((((signed long)NCAL[KDCO_NCAL])*l1d_rf.tx_nfracoffset)>>15);
+/*MT6169*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, Nfrac1Offset, 1 );
+/*MT6169*/ }
+/*MT6169*/ #endif
+/*MT6169*/
+/*MT6169*/ /* CW171, N_INT1[7:0], N_RFC1[22:11] */
+/*MT6169*/ *rfN = BSI_CW( 0x61, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6169*/ /* CW172, N_FRAC1[10:0], NOFFSET_REV[3:0], STX_DCO_SCAK_NOFFSET[2:0], STX_MMD_SDM_DI_LS[1:0] */
+/*MT6169*/ *ifN = BSI_CW( 0x62, ((Nfrac&0x7FF)<<9) | ((DCO_SCAK_NOFFSET&0xF)<<2) |(MMD_SDM_DI_LS&0x3) );
+/*MT6169*/
+/*MT6169*/ }
+/*MT6169*/ /* =========================================================================== */
+#endif
+
+#if IS_RF_MT6166
+/*MT6166*/ //For DLIF mode
+/*MT6166*/ void L1D_RF_Cal_Synthesizer_Params( unsigned short* Nint, unsigned long* Nfrac, unsigned long VCO_freq )
+/*MT6166*/ {
+/*MT6166*/ *Nint = VCO_freq/(RX_DCXO_FREQ*DLIF_SCALE);
+/*MT6166*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6166*/ *Nfrac = ( ((VCO_freq-*Nint*RX_DCXO_FREQ*DLIF_SCALE)<<15) + (195)/2 )/195;
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6166*/ {
+/*MT6166*/ #if IS_W_CANCELLATION_SUPPORT
+/*MT6166*/ if( L1D_CheckIfMetaMode() )
+/*MT6166*/ { return l1d_rf.if_state; }
+/*MT6166*/ else
+/*MT6166*/ { return 0; }
+/*MT6166*/ #else
+/*MT6166*/ return 0;
+/*MT6166*/ #endif
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6166*/ { long *if_sel = ifN+1;
+/*MT6166*/ unsigned short Nint =0, CH_freq =0;
+/*MT6166*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6166*/ unsigned long frac_spurs_thd0=0, frac_spurs_thd1=0;
+/*MT6166*/ unsigned char IF_state=0; //IF_state=0:default, IF_state=1:+IF, IF_state=2:-IF
+/*MT6166*/
+/*MT6166*/ IF_state = L1D_RF_Cal_IF_Synth_State();
+/*MT6166*/
+/*MT6166*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6166*/
+/*MT6166*/ if( IF_state != 2 )
+/*MT6166*/ {
+/*MT6166*/ *if_sel = 0;
+/*MT6166*/ l1d_rf.if_sel_Nif_wc = 0;
+/*MT6166*/ if( rf_band < FrequencyBand1800 )
+/*MT6166*/ {
+/*MT6166*/ VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6166*/ frac_spurs_thd0 = 193584;
+/*MT6166*/ frac_spurs_thd1 = 8195024;
+/*MT6166*/ }
+/*MT6166*/ else
+/*MT6166*/ {
+/*MT6166*/ VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6166*/ frac_spurs_thd0 = 96792;
+/*MT6166*/ frac_spurs_thd1 = 8291816;
+/*MT6166*/ }
+/*MT6166*/ L1D_RF_Cal_Synthesizer_Params( &Nint, &Nfrac, VCO_freq );
+/*MT6166*/ }
+/*MT6166*/
+/*MT6166*/ if( IF_state != 1 )
+/*MT6166*/ {
+/*MT6166*/ // use +IF channel instead of -IF for IRR calibration
+/*MT6166*/ if( ( Nfrac < frac_spurs_thd0 ) || ( Nfrac > frac_spurs_thd1) || ( Nfrac < 4258832 && Nfrac > 4129776 ) || ( IF_state == 2 ) )
+/*MT6166*/ {
+/*MT6166*/ *if_sel = 0;
+/*MT6166*/ l1d_rf.if_sel_Nif_wc = 1;
+/*MT6166*/ if( rf_band < FrequencyBand1800 )
+/*MT6166*/ { VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF); } //Low-side mixing
+/*MT6166*/ else
+/*MT6166*/ { VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF); } //Low-side mixing
+/*MT6166*/
+/*MT6166*/ L1D_RF_Cal_Synthesizer_Params( &Nint, &Nfrac, VCO_freq );
+/*MT6166*/ }
+/*MT6166*/
+/*MT6166*/ }
+/*MT6166*/
+/*MT6166*/ #if IS_OBB_DETECTION_SUPPORT
+/*MT6166*/ if( !L1D_CheckIfMetaMode() )
+/*MT6166*/ {
+/*MT6166*/ if( l1d_rf.if_change == -1 && arfcn == l1d_rf.obb_arfcn )
+/*MT6166*/ {
+/*MT6166*/ signed short if_sign = l1d_rf.if_change*(*if_sel*2-1);
+/*MT6166*/
+/*MT6166*/ *if_sel = if_sign > 0 ? 1 : 0;
+/*MT6166*/ if( rf_band < FrequencyBand1800 )
+/*MT6166*/ { VCO_freq = 4*(CH_freq*DLIF_SCALE + if_sign*DLIF); }
+/*MT6166*/ else
+/*MT6166*/ { VCO_freq = 2*(CH_freq*DLIF_SCALE + if_sign*DLIF); }
+/*MT6166*/
+/*MT6166*/ L1D_RF_Cal_Synthesizer_Params( &Nint, &Nfrac, VCO_freq );
+/*MT6166*/ }
+/*MT6166*/ }
+/*MT6166*/ #endif
+/*MT6166*/
+/*MT6166*/ /* CW223, SRX_NINT[8:0], SRX_NRFC[22:12] */
+/*MT6166*/ *rfN = BSI_CW( 0xDF, ((Nint &0x1FF)<<11) | ((Nfrac>>12)&0x7FF) );
+/*MT6166*/ /* CW224, SRX_NFRAC[11:0],SRX_REF_DOUBLER_EN,SRX_CAL_DISABLE,SRX_VCO_CFG[2:0],TALL_TRG_M,SRX_SDM_FRAC_MODE,SRX_RELOCK */
+/*MT6166*/ *ifN = BSI_CW( 0xE0, ((Nfrac&0xFFF)<<8) | SRX_REF_DOUBLER_EN | SRX_VCO_CFG | (POR_CW224&0x47) );
+/*MT6166*/
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ void L1D_RF_SplitRxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6166*/ {
+/*MT6166*/ *Nint = (rfN&(0x1FF<<11))>>11;
+/*MT6166*/ *Nfrac = ( (rfN&0x7FF)<<12 ) | ( (ifN&(0xFFF<<8))>>8 );
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ void L1D_RF_AdjustRxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6166*/ {
+/*MT6166*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 0 );
+/*MT6166*/
+/*MT6166*/ /* CW223, SRX_NINT[8:0], SRX_NRFC[22:12] */
+/*MT6166*/ *rfN = BSI_CW( 0xDF, ((Nint &0x1FF)<<11) | ((Nfrac>>12)&0x7FF) );
+/*MT6166*/ /* CW224, SRX_NFRAC[11:0],SRX_REF_DOUBLER_EN,SRX_CAL_DISABLE,SRX_VCO_CFG[2:0],TALL_TRG_M,SRX_SDM_FRAC_MODE,SRX_RELOCK */
+/*MT6166*/ *ifN = BSI_CW( 0xE0, ((Nfrac&0xFFF)<<8) | ((*ifN)&0xFF));
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6166*/ {
+/*MT6166*/ unsigned short Nint =0, CH_freq =0;
+/*MT6166*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6166*/ unsigned short DAoffset=0;
+/*MT6166*/
+/*MT6166*/
+/*MT6166*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6166*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6166*/
+/*MT6166*/ if( rf_band < FrequencyBand1800 )
+/*MT6166*/ VCO_freq = 4*CH_freq;
+/*MT6166*/ else
+/*MT6166*/ VCO_freq = 2*CH_freq;
+/*MT6166*/
+/*MT6166*/ Nint = VCO_freq/TX_DCXO_FREQ;
+/*MT6166*/ Nfrac = ( ((VCO_freq-Nint*TX_DCXO_FREQ)<<23) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6166*/
+/*MT6166*/ DAoffset = 10;//L1D_RF_GetTxDAoffsetSetting( Nint );
+/*MT6166*/
+/*MT6166*/ /* CW96, N_INT[7:0], N_RFC[22:11] */
+/*MT6166*/ *rfN = BSI_CW( 0x60, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6166*/ /* CW97, N_FRAC[10:0], DA_OFFSET[4:0], DI_EN */
+/*MT6166*/ *ifN = BSI_CW( 0x61, ((Nfrac&0x7FF)<<9) | ((DAoffset&0x1F)<<4) | 0x1);
+/*MT6166*/
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ void L1D_RF_SplitTxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6166*/ {
+/*MT6166*/ *Nint = (rfN&(0xFF<<12))>>12;
+/*MT6166*/ *Nfrac = ( (rfN&0xFFF)<<11 ) | ( (ifN&(0x7FF<<9))>>9 );
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ void L1D_RF_AdjustTxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6166*/ {
+/*MT6166*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 1 );
+/*MT6166*/
+/*MT6166*/ /* CW96, N_INT[7:0], N_RFC[22:11] */
+/*MT6166*/ *rfN = BSI_CW( 0x60, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6166*/ /* CW97, N_FRAC[10:0], DA_OFFSET[4:0], DI_EN */
+/*MT6166*/ *ifN = BSI_CW( 0x61, ((Nfrac&0x7FF)<<9) |((*ifN)&0x1FF));
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ void L1D_RF_CompensateSXSetting( unsigned short *Nint, unsigned long *Nfrac, signed long NfracOffset, unsigned char is_TX)
+/*MT6166*/ {
+/*MT6166*/ signed long Max_Nfrac=0;
+/*MT6166*/ if( is_TX )
+/*MT6166*/ { Max_Nfrac = STX_MAX_NFRAC; }
+/*MT6166*/ else
+/*MT6166*/ { Max_Nfrac = SRX_MAX_NFRAC; }
+/*MT6166*/
+/*MT6166*/ //Calculate new Nfrac and Nint
+/*MT6166*/ *Nfrac += (NfracOffset + Max_Nfrac);
+/*MT6166*/ if( *Nfrac < Max_Nfrac )
+/*MT6166*/ { (*Nint)--;
+/*MT6166*/ }
+/*MT6166*/ else if( *Nfrac >= (Max_Nfrac<<1) )
+/*MT6166*/ { (*Nint)++;
+/*MT6166*/ *Nfrac = *Nfrac - (Max_Nfrac<<1);
+/*MT6166*/ }
+/*MT6166*/ else
+/*MT6166*/ { *Nfrac-= Max_Nfrac;
+/*MT6166*/ }
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6166*/ {
+/*MT6166*/ unsigned short freq=4450+225;
+/*MT6166*/ switch( rf_band )
+/*MT6166*/ {
+/*MT6166*/ case FrequencyBand850 :
+/*MT6166*/ {
+/*MT6166*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6166*/ break;
+/*MT6166*/ }
+/*MT6166*/ case FrequencyBand900 :
+/*MT6166*/ {
+/*MT6166*/ if( arfcn<=124 )
+/*MT6166*/ { freq=4450+arfcn+225; }
+/*MT6166*/ else
+/*MT6166*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6166*/ break;
+/*MT6166*/ }
+/*MT6166*/ case FrequencyBand1800 :
+/*MT6166*/ {
+/*MT6166*/ freq=8551+(arfcn-512)+475;
+/*MT6166*/ break;
+/*MT6166*/ }
+/*MT6166*/ case FrequencyBand1900 :
+/*MT6166*/ {
+/*MT6166*/ freq=9251+(arfcn-512)+400;
+/*MT6166*/ break;
+/*MT6166*/ }
+/*MT6166*/ default :
+/*MT6166*/ {
+/*MT6166*/ break;
+/*MT6166*/ }
+/*MT6166*/ }
+/*MT6166*/
+/*MT6166*/ return freq;
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6166*/ {
+/*MT6166*/ unsigned short freq=4450;
+/*MT6166*/ switch( rf_band )
+/*MT6166*/ {
+/*MT6166*/ case FrequencyBand850 :
+/*MT6166*/ {
+/*MT6166*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6166*/ break;
+/*MT6166*/ }
+/*MT6166*/ case FrequencyBand900 :
+/*MT6166*/ {
+/*MT6166*/ if( arfcn<=124 )
+/*MT6166*/ { freq=4450+arfcn; }
+/*MT6166*/ else
+/*MT6166*/ { freq=4450+(arfcn-1024); }
+/*MT6166*/ break;
+/*MT6166*/ }
+/*MT6166*/ case FrequencyBand1800 :
+/*MT6166*/ {
+/*MT6166*/ freq=8551+(arfcn-512);
+/*MT6166*/ break;
+/*MT6166*/ }
+/*MT6166*/ case FrequencyBand1900 :
+/*MT6166*/ {
+/*MT6166*/ freq=9251+(arfcn-512);
+/*MT6166*/ break;
+/*MT6166*/ }
+/*MT6166*/ default :
+/*MT6166*/ {
+/*MT6166*/ break;
+/*MT6166*/ }
+/*MT6166*/ }
+/*MT6166*/
+/*MT6166*/ return freq;
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6166*/ {
+/*MT6166*/ char segment_tx=3, LUT_num_tx=6, offset_tx=15; // LUT method related parameters
+/*MT6166*/ signed short TXDCO_LUT[6]={1566, 1169, 840, 565, 331, -40}; // TXDCO LUT
+/*MT6166*/ short idx, x_axis, code_type; // code_type value for SCA calibration (code_type > 0)
+/*MT6166*/
+/*MT6166*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6166*/ if( l1d_rf.is_lock_dcxo )
+/*MT6166*/ { L1D_RF_CompensateSXSetting( &Nint, &Nfrac, -l1d_rf.tx_nfracoffset, 1 ); }
+/*MT6166*/ #endif
+/*MT6166*/
+/*MT6166*/ /* STX DCO SCA Typical Code LUT */
+/*MT6166*/ idx = (Nint>>segment_tx)-((short)offset_tx);
+/*MT6166*/ if(idx<0)
+/*MT6166*/ idx = 0;
+/*MT6166*/ else if(idx>(LUT_num_tx-2))
+/*MT6166*/ idx = LUT_num_tx-2;
+/*MT6166*/
+/*MT6166*/ x_axis = ((Nint-((Nint>>segment_tx)<<segment_tx))<<3)+((short)(Nfrac>>20));
+/*MT6166*/ code_type = TXDCO_LUT[idx]+ ((x_axis*(TXDCO_LUT[idx+1]-TXDCO_LUT[idx]))>>(segment_tx+3));
+/*MT6166*/ code_type <<= 1;
+/*MT6166*/
+/*MT6166*/ return code_type;
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6166*/ {
+/*MT6166*/ unsigned short DEM_Chunk_L1;
+/*MT6166*/ unsigned short OUT_G, OUT_E;
+/*MT6166*/ char segment_dem=4, LUT_num_dem=4, offset_dem=7; // LUT method related parameters
+/*MT6166*/ signed short DEM_chunk_G_LUT[4]={15, 10, 7, 5}; // DEM chunk GMSK LUT
+/*MT6166*/ signed short DEM_chunk_E_LUT[4]={69, 46, 33, 24}; // DEM chunk EPSK LUT
+/*MT6166*/ short idx;
+/*MT6166*/
+/*MT6166*/ /* STX DEM CHUNK LUT */
+/*MT6166*/ idx = (Nint>>segment_dem)-((short)offset_dem);
+/*MT6166*/ if(idx<0)
+/*MT6166*/ idx = 0;
+/*MT6166*/ else if(idx>(LUT_num_dem-2))
+/*MT6166*/ idx = LUT_num_dem-2;
+/*MT6166*/
+/*MT6166*/ OUT_G = DEM_chunk_G_LUT[idx]+(((Nint-((Nint>>segment_dem)<<segment_dem))*(DEM_chunk_G_LUT[idx+1]-DEM_chunk_G_LUT[idx]))>>(segment_dem));
+/*MT6166*/ OUT_E = DEM_chunk_E_LUT[idx]+(((Nint-((Nint>>segment_dem)<<segment_dem))*(DEM_chunk_E_LUT[idx+1]-DEM_chunk_E_LUT[idx]))>>(segment_dem));
+/*MT6166*/
+/*MT6166*/ if( ( (l1d_rf.tx_mod_type2)^(l1d_rf.tx_mod_type2<<1) ) & 0xE ) // IS_MIXED_MULTISLOT
+/*MT6166*/ {
+/*MT6166*/ if( rf_band < FrequencyBand1800 )
+/*MT6166*/ DEM_Chunk_L1 = ((OUT_E+OUT_G+5)>40) ? (OUT_E+OUT_G+5) : 40;
+/*MT6166*/ else
+/*MT6166*/ DEM_Chunk_L1 = 40;
+/*MT6166*/ }
+/*MT6166*/ else
+/*MT6166*/ {
+/*MT6166*/ if( (l1d_rf.tx_mod_type2 != 0) && (rf_band < FrequencyBand1800) )
+/*MT6166*/ DEM_Chunk_L1 = ((2*OUT_E+6)>40) ? (2*OUT_E+6) : 40;
+/*MT6166*/ else
+/*MT6166*/ DEM_Chunk_L1 = 40;
+/*MT6166*/ }
+/*MT6166*/ return DEM_Chunk_L1;
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+/*MT6166*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6166*/ {
+/*MT6166*/ unsigned short Nint =0, CH_freq =0;
+/*MT6166*/ unsigned long Nfrac=0, DCO4G_freq=0;
+/*MT6166*/
+/*MT6166*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6166*/
+/*MT6166*/ if( rf_band < FrequencyBand1800 )
+/*MT6166*/ DCO4G_freq = 4*CH_freq;
+/*MT6166*/ else
+/*MT6166*/ DCO4G_freq = 2*CH_freq;
+/*MT6166*/
+/*MT6166*/ Nint = ( (DCO4G_freq<<15) - 64*DCO4G_freq + 64*TX_DCXO_FREQ*92 ) / (TX_DCXO_FREQ<<15);
+/*MT6166*/ Nfrac = ( ( ( (DCO4G_freq<<15) - 64*DCO4G_freq + 64*TX_DCXO_FREQ*92 - ((Nint*TX_DCXO_FREQ)<<15) )<<8 ) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6166*/
+/*MT6166*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6166*/ if( l1d_rf.is_lock_dcxo )
+/*MT6166*/ { L1D_RF_CompensateSXSetting( &Nint, &Nfrac, l1d_rf.tx_nfracoffset, 1 ); }
+/*MT6166*/ #endif
+/*MT6166*/
+/*MT6166*/ /* CW98, N_INT1[7:0], N_RFC1[22:11] */
+/*MT6166*/ *rfN = BSI_CW( 0x62, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6166*/ /* CW99, N_FRAC1[10:0], NOFFSET_REV[3:0], STX_DCO_SCAK_NOFFSET[2:0], STX_MMD_SDM_DI_LS[1:0] */
+/*MT6166*/ *ifN = BSI_CW( 0x63, ((Nfrac&0x7FF)<<9) | (POR_CW99&0x1FF) );
+/*MT6166*/
+/*MT6166*/ }
+/*MT6166*/ /* =========================================================================== */
+/*MT6166*/
+#endif
+
+#if IS_RF_MT6165
+/*MT6165*/ //For DLIF mode
+/*MT6165*/ void L1D_RF_Cal_Synthesizer_Params( unsigned short* Nint, unsigned long* Nfrac, unsigned long VCO_freq )
+/*MT6165*/ {
+/*MT6165*/ *Nint = VCO_freq/(RX_DCXO_FREQ*DLIF_SCALE);
+/*MT6165*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6165*/ *Nfrac = ( ((VCO_freq-*Nint*RX_DCXO_FREQ*DLIF_SCALE)<<15) + (195)/2 )/195;
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6165*/ {
+/*MT6165*/ #if IS_W_CANCELLATION_SUPPORT
+/*MT6165*/ if( L1D_CheckIfMetaMode() )
+/*MT6165*/ { return l1d_rf.if_state; }
+/*MT6165*/ else
+/*MT6165*/ { return 0; }
+/*MT6165*/ #else
+/*MT6165*/ return 0;
+/*MT6165*/ #endif
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6165*/ { long *if_sel = ifN+1;
+/*MT6165*/ unsigned short Nint =0, CH_freq =0;
+/*MT6165*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6165*/ unsigned long frac_spurs_thd0=0, frac_spurs_thd1=0;
+/*MT6165*/ unsigned char IF_state=0; //IF_state=0:default, IF_state=1:+IF, IF_state=2:-IF
+/*MT6165*/
+/*MT6165*/ IF_state = L1D_RF_Cal_IF_Synth_State();
+/*MT6165*/
+/*MT6165*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6165*/
+/*MT6165*/ if( IF_state != 2 )
+/*MT6165*/ {
+/*MT6165*/ *if_sel = 0;
+/*MT6165*/ #if IS_W_CANCELLATION_SUPPORT
+/*MT6165*/ l1d_rf.if_sel_Nif_wc = 0;
+/*MT6165*/ #endif
+/*MT6165*/ if( rf_band < FrequencyBand1800 )
+/*MT6165*/ {
+/*MT6165*/ VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6165*/ frac_spurs_thd0 = 193584;
+/*MT6165*/ frac_spurs_thd1 = 8195024;
+/*MT6165*/ }
+/*MT6165*/ else
+/*MT6165*/ {
+/*MT6165*/ VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6165*/ frac_spurs_thd0 = 96792;
+/*MT6165*/ frac_spurs_thd1 = 8291816;
+/*MT6165*/ }
+/*MT6165*/ L1D_RF_Cal_Synthesizer_Params( &Nint, &Nfrac, VCO_freq );
+/*MT6165*/ }
+/*MT6165*/
+/*MT6165*/ if( IF_state != 1 )
+/*MT6165*/ {
+/*MT6165*/ // use +IF channel instead of -IF for IRR calibration
+/*MT6165*/ if( ( Nfrac < frac_spurs_thd0 ) || ( Nfrac > frac_spurs_thd1) || ( Nfrac < 4258832 && Nfrac > 4129776 ) || ( IF_state == 2 ) )
+/*MT6165*/ {
+/*MT6165*/ *if_sel = 0;
+/*MT6165*/ #if IS_W_CANCELLATION_SUPPORT
+/*MT6165*/ l1d_rf.if_sel_Nif_wc = 1;
+/*MT6165*/ #endif
+/*MT6165*/ if( rf_band < FrequencyBand1800 )
+/*MT6165*/ { VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF); } //use High-side mixing instead of Low-side for MT6165
+/*MT6165*/ else
+/*MT6165*/ { VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF); } //use High-side mixing instead of Low-side for MT6165
+/*MT6165*/
+/*MT6165*/ L1D_RF_Cal_Synthesizer_Params( &Nint, &Nfrac, VCO_freq );
+/*MT6165*/ }
+/*MT6165*/
+/*MT6165*/ }
+/*MT6165*/
+/*MT6165*/ #if IS_OBB_DETECTION_SUPPORT
+/*MT6165*/ if( !L1D_CheckIfMetaMode() )
+/*MT6165*/ {
+/*MT6165*/ if( l1d_rf.if_change == -1 && arfcn == l1d_rf.obb_arfcn )
+/*MT6165*/ {
+/*MT6165*/ signed short if_sign = l1d_rf.if_change*(*if_sel*2-1);
+/*MT6165*/
+/*MT6165*/ *if_sel = if_sign > 0 ? 1 : 0;
+/*MT6165*/ if( rf_band < FrequencyBand1800 )
+/*MT6165*/ { VCO_freq = 4*(CH_freq*DLIF_SCALE + if_sign*DLIF); }
+/*MT6165*/ else
+/*MT6165*/ { VCO_freq = 2*(CH_freq*DLIF_SCALE + if_sign*DLIF); }
+/*MT6165*/
+/*MT6165*/ L1D_RF_Cal_Synthesizer_Params( &Nint, &Nfrac, VCO_freq );
+/*MT6165*/ }
+/*MT6165*/ }
+/*MT6165*/ #endif
+/*MT6165*/
+/*MT6165*/ /* CW181, SRX_NINT[7:0], SRX_NRFC[22:11] */
+/*MT6165*/ *rfN = BSI_CW( 0xB5, ((Nint &0xFF)<<12) | ((Nfrac>>11)&0xFFF) );
+/*MT6165*/ /* CW182, SRX_NFRAC[10:0], DA_OFFSET[7:0], DI_EN */
+/*MT6165*/ *ifN = BSI_CW( 0xB6, ((Nfrac&0x7FF)<<9) | (POR_CW182&0x1) ); // Keep DA_OFFSET=0x0 and setup at L1D_RF_SetSData_SR1()
+/*MT6165*/
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ void L1D_RF_SplitRxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6165*/ {
+/*MT6165*/ *Nint = (rfN&(0xFF<<12))>>12;
+/*MT6165*/ *Nfrac = ( (rfN&0xFFF)<<11 ) | ( (ifN&(0x7FF<<9))>>9 );
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ void L1D_RF_AdjustRxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6165*/ {
+/*MT6165*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 0 );
+/*MT6165*/
+/*MT6165*/ /* CW181, SRX_NINT[7:0], SRX_NRFC[22:11] */
+/*MT6165*/ *rfN = BSI_CW( 0xB5, ((Nint &0xFF)<<12) | ((Nfrac>>11)&0xFFF) );
+/*MT6165*/ /* CW182, SRX_NFRAC[10:0], DA_OFFSET[7:0], DI_EN */
+/*MT6165*/ *ifN = BSI_CW( 0xB6, ((Nfrac&0x7FF)<<9) | ((*ifN)&0x1FF) );
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6165*/ {
+/*MT6165*/ unsigned short Nint =0, CH_freq =0;
+/*MT6165*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6165*/
+/*MT6165*/
+/*MT6165*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6165*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6165*/
+/*MT6165*/ if( rf_band < FrequencyBand1800 )
+/*MT6165*/ VCO_freq = 4*CH_freq;
+/*MT6165*/ else
+/*MT6165*/ VCO_freq = 2*CH_freq;
+/*MT6165*/
+/*MT6165*/ Nint = VCO_freq/TX_DCXO_FREQ;
+/*MT6165*/ Nfrac = ( ((VCO_freq-Nint*TX_DCXO_FREQ)<<23) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6165*/
+/*MT6165*/ /* CW181, SRX_NINT[7:0], SRX_NRFC[22:11] */
+/*MT6165*/ *rfN = BSI_CW( 0xB5, ((Nint &0xFF)<<12) | ((Nfrac>>11)&0xFFF) );
+/*MT6165*/ /* CW182, SRX_NFRAC[10:0], DA_OFFSET[7:0], DI_EN */
+/*MT6165*/ *ifN = BSI_CW( 0xB6, ((Nfrac&0x7FF)<<9) | (POR_CW182&0x1) ); // Keep DA_OFFSET=0x0 and setup at L1D_RF_SetSData_ST1()
+/*MT6165*/
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ void L1D_RF_SplitTxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6165*/ {
+/*MT6165*/ *Nint = (rfN&(0xFF<<12))>>12;
+/*MT6165*/ *Nfrac = ( (rfN&0xFFF)<<11 ) | ( (ifN&(0x7FF<<9))>>9 );
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ void L1D_RF_AdjustTxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6165*/ {
+/*MT6165*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 1 );
+/*MT6165*/
+/*MT6165*/ /* CW181, SRX_NINT[7:0], SRX_NRFC[22:11] */
+/*MT6165*/ *rfN = BSI_CW( 0xB5, ((Nint &0xFF)<<12) | ((Nfrac>>11)&0xFFF) );
+/*MT6165*/ /* CW182, SRX_NFRAC[10:0], DA_OFFSET[7:0], DI_EN */
+/*MT6165*/ *ifN = BSI_CW( 0xB6, ((Nfrac&0x7FF)<<9) | ((*ifN)&0x1FF) );
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ void L1D_RF_CompensateSXSetting( unsigned short *Nint, unsigned long *Nfrac, signed long NfracOffset, unsigned char is_TX)
+/*MT6165*/ {
+/*MT6165*/ signed long Max_Nfrac=0;
+/*MT6165*/ if( is_TX )
+/*MT6165*/ { Max_Nfrac = STX_MAX_NFRAC; }
+/*MT6165*/ else
+/*MT6165*/ { Max_Nfrac = SRX_MAX_NFRAC; }
+/*MT6165*/
+/*MT6165*/ //Calculate new Nfrac and Nint
+/*MT6165*/ *Nfrac += (NfracOffset + Max_Nfrac);
+/*MT6165*/ if( *Nfrac < Max_Nfrac )
+/*MT6165*/ { (*Nint)--;
+/*MT6165*/ }
+/*MT6165*/ else if( *Nfrac >= (Max_Nfrac<<1) )
+/*MT6165*/ { (*Nint)++;
+/*MT6165*/ *Nfrac = *Nfrac - (Max_Nfrac<<1);
+/*MT6165*/ }
+/*MT6165*/ else
+/*MT6165*/ { *Nfrac-= Max_Nfrac;
+/*MT6165*/ }
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6165*/ {
+/*MT6165*/ unsigned short freq=4450+225;
+/*MT6165*/ switch( rf_band )
+/*MT6165*/ {
+/*MT6165*/ case FrequencyBand850 :
+/*MT6165*/ {
+/*MT6165*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6165*/ break;
+/*MT6165*/ }
+/*MT6165*/ case FrequencyBand900 :
+/*MT6165*/ {
+/*MT6165*/ if( arfcn<=124 )
+/*MT6165*/ { freq=4450+arfcn+225; }
+/*MT6165*/ else
+/*MT6165*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6165*/ break;
+/*MT6165*/ }
+/*MT6165*/ case FrequencyBand1800 :
+/*MT6165*/ {
+/*MT6165*/ freq=8551+(arfcn-512)+475;
+/*MT6165*/ break;
+/*MT6165*/ }
+/*MT6165*/ case FrequencyBand1900 :
+/*MT6165*/ {
+/*MT6165*/ freq=9251+(arfcn-512)+400;
+/*MT6165*/ break;
+/*MT6165*/ }
+/*MT6165*/ default :
+/*MT6165*/ {
+/*MT6165*/ break;
+/*MT6165*/ }
+/*MT6165*/ }
+/*MT6165*/
+/*MT6165*/ return freq;
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6165*/ {
+/*MT6165*/ unsigned short freq=4450;
+/*MT6165*/ switch( rf_band )
+/*MT6165*/ {
+/*MT6165*/ case FrequencyBand850 :
+/*MT6165*/ {
+/*MT6165*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6165*/ break;
+/*MT6165*/ }
+/*MT6165*/ case FrequencyBand900 :
+/*MT6165*/ {
+/*MT6165*/ if( arfcn<=124 )
+/*MT6165*/ { freq=4450+arfcn; }
+/*MT6165*/ else
+/*MT6165*/ { freq=4450+(arfcn-1024); }
+/*MT6165*/ break;
+/*MT6165*/ }
+/*MT6165*/ case FrequencyBand1800 :
+/*MT6165*/ {
+/*MT6165*/ freq=8551+(arfcn-512);
+/*MT6165*/ break;
+/*MT6165*/ }
+/*MT6165*/ case FrequencyBand1900 :
+/*MT6165*/ {
+/*MT6165*/ freq=9251+(arfcn-512);
+/*MT6165*/ break;
+/*MT6165*/ }
+/*MT6165*/ default :
+/*MT6165*/ {
+/*MT6165*/ break;
+/*MT6165*/ }
+/*MT6165*/ }
+/*MT6165*/
+/*MT6165*/ return freq;
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ unsigned short L1D_RF_GetSxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6165*/ {
+/*MT6165*/ char segment=3, LUT_num=11, offset=15; // LUT method related parameters
+/*MT6165*/ signed short TXDCO_LUT[11]={1625, 1307, 1040, 818, 628, 467, 328, 208, 102, 11, -30}; // SXDCO LUT
+/*MT6165*/ short idx, x_axis, code_type; // code_type value for SCA calibration (code_type > 0)
+/*MT6165*/
+/*MT6165*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6165*/ if( l1d_rf.is_lock_dcxo )
+/*MT6165*/ { L1D_RF_CompensateSXSetting( &Nint, &Nfrac, -l1d_rf.tx_nfracoffset, 1 ); }
+/*MT6165*/ #endif
+/*MT6165*/
+/*MT6165*/ /* STX DCO SCA Typical Code LUT */
+/*MT6165*/ idx = (Nint>>segment)-((short)offset);
+/*MT6165*/ if(idx<0)
+/*MT6165*/ idx = 0;
+/*MT6165*/ else if(idx>(LUT_num-2))
+/*MT6165*/ idx = LUT_num-2;
+/*MT6165*/
+/*MT6165*/ x_axis = ((Nint-((Nint>>segment)<<segment))<<3)+((short)(Nfrac>>20));
+/*MT6165*/ code_type = TXDCO_LUT[idx]+ ((x_axis*(TXDCO_LUT[idx+1]-TXDCO_LUT[idx]))>>(segment+3));
+/*MT6165*/ code_type <<= 1;
+/*MT6165*/
+/*MT6165*/ return code_type;
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6165*/ {
+/*MT6165*/ unsigned short DEM_Chunk_L1;
+/*MT6165*/ unsigned short OUT_G, OUT_E;
+/*MT6165*/ char segment_dem=4, LUT_num_dem=4, offset_dem=7; // LUT method related parameters
+/*MT6165*/ signed short DEM_chunk_G_LUT[4]={15, 10, 7, 5}; // DEM chunk GMSK LUT
+/*MT6165*/ signed short DEM_chunk_E_LUT[4]={69, 46, 33, 24}; // DEM chunk EPSK LUT
+/*MT6165*/ short idx;
+/*MT6165*/
+/*MT6165*/ /* STX DEM CHUNK LUT */
+/*MT6165*/ idx = (Nint>>segment_dem)-((short)offset_dem);
+/*MT6165*/ if(idx<0)
+/*MT6165*/ idx = 0;
+/*MT6165*/ else if(idx>(LUT_num_dem-2))
+/*MT6165*/ idx = LUT_num_dem-2;
+/*MT6165*/
+/*MT6165*/ OUT_G = DEM_chunk_G_LUT[idx]+(((Nint-((Nint>>segment_dem)<<segment_dem))*(DEM_chunk_G_LUT[idx+1]-DEM_chunk_G_LUT[idx]))>>(segment_dem));
+/*MT6165*/ OUT_E = DEM_chunk_E_LUT[idx]+(((Nint-((Nint>>segment_dem)<<segment_dem))*(DEM_chunk_E_LUT[idx+1]-DEM_chunk_E_LUT[idx]))>>(segment_dem));
+/*MT6165*/
+/*MT6165*/ if( ( (l1d_rf.tx_mod_type2)^(l1d_rf.tx_mod_type2<<1) ) & 0xE ) // IS_MIXED_MULTISLOT
+/*MT6165*/ {
+/*MT6165*/ if( rf_band < FrequencyBand1800 )
+/*MT6165*/ DEM_Chunk_L1 = ((OUT_E+OUT_G+5)>40) ? (OUT_E+OUT_G+5) : 40;
+/*MT6165*/ else
+/*MT6165*/ DEM_Chunk_L1 = 40;
+/*MT6165*/ }
+/*MT6165*/ else
+/*MT6165*/ {
+/*MT6165*/ if( (l1d_rf.tx_mod_type2 != 0) && (rf_band < FrequencyBand1800) )
+/*MT6165*/ DEM_Chunk_L1 = ((2*OUT_E+6)>40) ? (2*OUT_E+6) : 40;
+/*MT6165*/ else
+/*MT6165*/ DEM_Chunk_L1 = 40;
+/*MT6165*/ }
+/*MT6165*/ return DEM_Chunk_L1;
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6165*/ {
+/*MT6165*/ unsigned short Nint =0, CH_freq =0;
+/*MT6165*/ unsigned long Nfrac=0, DCO4G_freq=0, NCal=64;
+/*MT6165*/ signed long Nfrac1Offset=0;
+/*MT6165*/ unsigned short KDCO_NCAL_LUT[4]={64, 96, 16, 32};
+/*MT6165*/
+/*MT6165*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6165*/ NCal = KDCO_NCAL_LUT[((POR_CW188>>6)&0x3)];
+/*MT6165*/
+/*MT6165*/ if( rf_band < FrequencyBand1800 )
+/*MT6165*/ DCO4G_freq = 4*CH_freq;
+/*MT6165*/ else
+/*MT6165*/ DCO4G_freq = 2*CH_freq;
+/*MT6165*/
+/*MT6165*/ Nint = ( (DCO4G_freq<<15) - NCal*DCO4G_freq + NCal*TX_DCXO_FREQ*92 ) / (TX_DCXO_FREQ<<15);
+/*MT6165*/ Nfrac = ( ( ( (DCO4G_freq<<15) - NCal*DCO4G_freq + NCal*TX_DCXO_FREQ*92 - ((Nint*TX_DCXO_FREQ)<<15) )<<8 ) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6165*/
+/*MT6165*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6165*/ if( l1d_rf.is_lock_dcxo )
+/*MT6165*/ { Nfrac1Offset = l1d_rf.tx_nfracoffset - ((((signed long)NCal)*l1d_rf.tx_nfracoffset)>>15);
+/*MT6165*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, Nfrac1Offset, 1 );
+/*MT6165*/ }
+/*MT6165*/ #endif
+/*MT6165*/
+/*MT6165*/ /* CW183, N_INT1[7:0], N_FRFC1[22:11] */
+/*MT6165*/ *rfN = BSI_CW( 0xB7, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6165*/ /* CW184, N_FRAC1[10:0], NOFFSET_REV[2:0], STX_DCO_SCAK_NOFFSET[3:0], STX_MMD_SDM_DI_LS[1:0] */
+/*MT6165*/ *ifN = BSI_CW( 0xB8, ((Nfrac&0x7FF)<<9) | (POR_CW184&0x1FF) );
+/*MT6165*/ (void) Nfrac1Offset;
+/*MT6165*/
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ unsigned short L1D_RF_GetSxDAoffsetSetting(unsigned long rfn)
+/*MT6165*/ {
+/*MT6165*/ unsigned short Nint = ((rfn>>12)&0xFF);
+/*MT6165*/ unsigned long Nfrac_round = ((rfn>>11)&0x1); // Check if (Nfrac*2^23)>0.5 by Nfrac[22]
+/*MT6165*/ return (Nint+Nfrac_round-10);
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+/*MT6165*/ unsigned short L1D_RF_GetSCAKNoffsetSetting(unsigned short Nint)
+/*MT6165*/ {
+/*MT6165*/ unsigned short SCAK_NOFFSET;
+/*MT6165*/ if( Nint<100 )
+/*MT6165*/ { SCAK_NOFFSET = 0; }
+/*MT6165*/ else if( Nint>227)
+/*MT6165*/ { SCAK_NOFFSET = 127; }
+/*MT6165*/ else
+/*MT6165*/ { SCAK_NOFFSET = Nint-100; }
+/*MT6165*/
+/*MT6165*/ return (SCAK_NOFFSET>>3);
+/*MT6165*/ }
+/*MT6165*/ /* =========================================================================== */
+/*MT6165*/
+#endif
+
+#if IS_RF_MT6176
+/*MT6176*/ //For DLIF mode
+/*MT6176*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6176*/ {
+ #if IS_W_CANCELLATION_SUPPORT
+/*MT6176*/ if( L1D_CheckIfMetaMode() )
+/*MT6176*/ { return l1d_rf.if_state; }
+/*MT6176*/ else
+/*MT6176*/ { return 0; }
+ #else
+/*MT6176*/ return 0;
+ #endif
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6176*/ { long *if_sel = ifN+1;
+/*MT6176*/ unsigned short Nint =0, CH_freq =0;
+/*MT6176*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6176*/ unsigned char SRX_REF_SEL=1, SRX_CAL_EN=1, SRX_CAL_IMM=0, SRX_VCO1_SEL=1, SRX_VCO_CFG=5;
+/*MT6176*/ unsigned short FREF_SRX[2] = {26, 52};
+/*MT6176*/ unsigned short multiplier[2] = {15, 14};
+/*MT6176*/
+/*MT6176*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6176*/
+/*MT6176*/ {
+/*MT6176*/ *if_sel = 0;
+/*MT6176*/ if( rf_band < FrequencyBand1800 )
+/*MT6176*/ {
+/*MT6176*/ VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6176*/ }
+/*MT6176*/ else
+/*MT6176*/ {
+/*MT6176*/ VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6176*/ }
+/*MT6176*/ }
+/*MT6176*/
+/*MT6176*/ Nint = VCO_freq/(FREF_SRX[SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE);
+/*MT6176*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6176*/ Nfrac = ( ((VCO_freq-Nint*FREF_SRX[SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE)<<multiplier[SRX_REF_SEL]) + (195)/2 )/195;
+/*MT6176*/
+/*MT6176*/
+/*MT6176*/ /* CW130, N_INT[8:0], N_FRFC[22:12] */
+/*MT6176*/ *rfN = BSI_CW( 0x082, (((Nint&0x1FF)<<11)|((Nfrac>>12)&0x7FF)) );
+/*MT6176*/ /* CW131, N_FRAC[11:0], REF_DOUBLER_EN, SRX_CAL_EN, SRX_CAL_IMM, SRX_VCO_SEL, SRX_VCO_CFG */
+/*MT6176*/ *ifN = BSI_CW( 0x083, ((Nfrac&0xFFF)<<8)|((SRX_REF_SEL&0x1)<<7)|((SRX_CAL_EN&0x1)<<5)|((SRX_CAL_IMM&0x1)<<4)|((SRX_VCO1_SEL&0x1)<<3)|(SRX_VCO_CFG&0x7));
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ void L1D_RF_SplitRxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6176*/ {
+/*MT6176*/ *Nint = ((rfN>>11)&0x1FF);
+/*MT6176*/ *Nfrac = ((rfN&0x7FF)<<12)|((ifN>>8)&0xFFF);
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ void L1D_RF_AdjustRxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6176*/ {
+/*MT6176*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 0 );
+/*MT6176*/
+/*MT6176*/ /* CW130, N_INT[8:0], N_FRFC[22:12] */
+/*MT6176*/ *rfN = BSI_CW( 0x082, (((Nint&0x1FF)<<11)|((Nfrac>>12)&0x7FF)) );
+/*MT6176*/ /* CW131, N_FRAC[11:0], REF_DOUBLER_EN, SRX_CAL_EN, SRX_CAL_IMM, SRX_VCO_SEL, SRX_VCO_CFG */
+/*MT6176*/ *ifN = BSI_CW( 0x083, ((Nfrac&0xFFF)<<8)|(*ifN&0xFF));
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6176*/ {
+/*MT6176*/ unsigned short Nint =0, CH_freq =0;
+/*MT6176*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6176*/ unsigned short MMD_SDM_DI_EN = 0; //keep POR = 0
+/*MT6176*/
+/*MT6176*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6176*/ #if IS_MIPI_SUPPORT
+/*MT6176*/ l1d_mipi.tx_arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6176*/ #endif
+/*MT6176*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6176*/
+/*MT6176*/ if( rf_band < FrequencyBand1800 )
+/*MT6176*/ VCO_freq = 4*CH_freq;
+/*MT6176*/ else
+/*MT6176*/ VCO_freq = 2*CH_freq;
+/*MT6176*/
+/*MT6176*/ Nint = VCO_freq/TX_DCXO_FREQ;
+/*MT6176*/ Nfrac = ( ((VCO_freq-Nint*TX_DCXO_FREQ)<<23) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6176*/
+/*MT6176*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6176*/ if( l1d_rf.is_lock_dcxo )
+/*MT6176*/ { /* SW dithering after L1D_RF_AdjustTxPLLSetting() */ }
+/*MT6176*/ else
+/*MT6176*/ #endif
+/*MT6176*/ { /* Apply SW dithering no matter it is integer channel or not */
+/*MT6176*/ Nfrac = ( (Nfrac&0x1) == 0 ) ? Nfrac+1 : Nfrac; //always let LSB[0]=1
+/*MT6176*/ }
+/*MT6176*/
+/*MT6176*/ /* CW549, N_INT[7:0], N_RFC[22:11] */
+/*MT6176*/ *rfN = BSI_CW( 0x225, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6176*/ /* CW550, N_FRAC[10:0], DI_EN */
+/*MT6176*/ *ifN = BSI_CW( 0x226, ((Nfrac&0x7FF)<<9) | (MMD_SDM_DI_EN&0x1) );
+/*MT6176*/
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ void L1D_RF_SplitTxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6176*/ {
+/*MT6176*/ *Nint = (rfN&(0xFF<<12))>>12;
+/*MT6176*/ *Nfrac = ( (rfN&0xFFF)<<11 ) | ( (ifN&(0x7FF<<9))>>9 );
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ void L1D_RF_AdjustTxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6176*/ {
+/*MT6176*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 1 );
+/*MT6176*/
+/*MT6176*/ /* Apply SW dithering no matter it is integer channel or not */
+/*MT6176*/ Nfrac = ( (Nfrac&0x1) == 0 ) ? Nfrac+1 : Nfrac; //always let LSB[0]=1
+/*MT6176*/
+/*MT6176*/ /* CW549, N_INT[7:0], N_RFC[22:11] */
+/*MT6176*/ *rfN = BSI_CW( 0x225, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6176*/ /* CW550, N_FRAC[10:0], DI_EN */
+/*MT6176*/ *ifN = BSI_CW( 0x226, ((Nfrac&0x7FF)<<9) |((*ifN)&0x1FF));
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ void L1D_RF_CompensateSXSetting( unsigned short *Nint, unsigned long *Nfrac, signed long NfracOffset, unsigned char is_TX)
+/*MT6176*/ {
+/*MT6176*/ signed long Max_Nfrac=0;
+/*MT6176*/ if( is_TX )
+/*MT6176*/ { Max_Nfrac = STX_MAX_NFRAC; }
+/*MT6176*/ else
+/*MT6176*/ { Max_Nfrac = SRX_MAX_NFRAC; }
+/*MT6176*/
+/*MT6176*/ //Calculate new Nfrac and Nint
+/*MT6176*/ *Nfrac += (NfracOffset + Max_Nfrac);
+/*MT6176*/ if( *Nfrac < Max_Nfrac )
+/*MT6176*/ { (*Nint)--;
+/*MT6176*/ }
+/*MT6176*/ else if( *Nfrac >= (Max_Nfrac<<1) )
+/*MT6176*/ { (*Nint)++;
+/*MT6176*/ *Nfrac = *Nfrac - (Max_Nfrac<<1);
+/*MT6176*/ }
+/*MT6176*/ else
+/*MT6176*/ { *Nfrac-= Max_Nfrac;
+/*MT6176*/ }
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6176*/ {
+/*MT6176*/ unsigned short freq=4450+225;
+/*MT6176*/ switch( rf_band )
+/*MT6176*/ {
+/*MT6176*/ case FrequencyBand850 :
+/*MT6176*/ {
+/*MT6176*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6176*/ break;
+/*MT6176*/ }
+/*MT6176*/ case FrequencyBand900 :
+/*MT6176*/ {
+/*MT6176*/ if( arfcn<=124 )
+/*MT6176*/ { freq=4450+arfcn+225; }
+/*MT6176*/ else
+/*MT6176*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6176*/ break;
+/*MT6176*/ }
+/*MT6176*/ case FrequencyBand1800 :
+/*MT6176*/ {
+/*MT6176*/ freq=8551+(arfcn-512)+475;
+/*MT6176*/ break;
+/*MT6176*/ }
+/*MT6176*/ case FrequencyBand1900 :
+/*MT6176*/ {
+/*MT6176*/ freq=9251+(arfcn-512)+400;
+/*MT6176*/ break;
+/*MT6176*/ }
+/*MT6176*/ default :
+/*MT6176*/ {
+/*MT6176*/ break;
+/*MT6176*/ }
+/*MT6176*/ }
+/*MT6176*/
+/*MT6176*/ return freq;
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6176*/ {
+/*MT6176*/ unsigned short freq=4450;
+/*MT6176*/ switch( rf_band )
+/*MT6176*/ {
+/*MT6176*/ case FrequencyBand850 :
+/*MT6176*/ {
+/*MT6176*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6176*/ break;
+/*MT6176*/ }
+/*MT6176*/ case FrequencyBand900 :
+/*MT6176*/ {
+/*MT6176*/ if( arfcn<=124 )
+/*MT6176*/ { freq=4450+arfcn; }
+/*MT6176*/ else
+/*MT6176*/ { freq=4450+(arfcn-1024); }
+/*MT6176*/ break;
+/*MT6176*/ }
+/*MT6176*/ case FrequencyBand1800 :
+/*MT6176*/ {
+/*MT6176*/ freq=8551+(arfcn-512);
+/*MT6176*/ break;
+/*MT6176*/ }
+/*MT6176*/ case FrequencyBand1900 :
+/*MT6176*/ {
+/*MT6176*/ freq=9251+(arfcn-512);
+/*MT6176*/ break;
+/*MT6176*/ }
+/*MT6176*/ default :
+/*MT6176*/ {
+/*MT6176*/ break;
+/*MT6176*/ }
+/*MT6176*/ }
+/*MT6176*/
+/*MT6176*/ return freq;
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6176*/ {
+/*MT6176*/ char segment_tx=3, LUT_num_tx=8, offset_tx=14; // LUT method related parameters
+/*MT6176*/ signed short TXDCO_LUT[8]={4830, 3611, 2617, 1796, 1110, 530, 37, -386}; // TXDCO LUT
+/*MT6176*/ short idx, x_axis, code_type; // code_type value for SCA calibration (code_type > 0)
+/*MT6176*/
+/*MT6176*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6176*/ if( l1d_rf.is_lock_dcxo )
+/*MT6176*/ { L1D_RF_CompensateSXSetting( &Nint, &Nfrac, -l1d_rf.tx_nfracoffset, 1 ); }
+/*MT6176*/ #endif
+/*MT6176*/
+/*MT6176*/ /* STX DCO SCA Typical Code LUT */
+/*MT6176*/ idx = (Nint>>segment_tx)-((short)offset_tx);
+/*MT6176*/ if(idx<0)
+/*MT6176*/ { idx = 0; }
+/*MT6176*/ else if(idx>(LUT_num_tx-2))
+/*MT6176*/ { idx = LUT_num_tx-2; }
+/*MT6176*/
+/*MT6176*/ x_axis = ((Nint-((Nint>>segment_tx)<<segment_tx))<<3)+((short)(Nfrac>>20));
+/*MT6176*/ code_type = TXDCO_LUT[idx]+ ((x_axis*(TXDCO_LUT[idx+1]-TXDCO_LUT[idx]))>>(segment_tx+3));
+/*MT6176*/
+/*MT6176*/ return code_type;
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+/*MT6176*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6176*/ {
+/*MT6176*/ unsigned short Nint =0, CH_freq =0;
+/*MT6176*/ unsigned long Nfrac=0, DCO4G_freq=0;
+/*MT6176*/ unsigned short KDCO_NCAL = 0x1;//(POR_CW559&(0x3<<9))>>9;
+/*MT6176*/ unsigned short NCAL[4] = {12, 24, 16, 32};
+/*MT6176*/
+/*MT6176*/ unsigned short DCO_SCAK_NOFFSET = 0; //keep POR = 0
+/*MT6176*/ unsigned short MMD_SDM_DI_LS = 0; //keep POR = 0
+/*MT6176*/ signed long Nfrac1Offset = 0;
+/*MT6176*/
+/*MT6176*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6176*/
+/*MT6176*/ if( rf_band < FrequencyBand1800 )
+/*MT6176*/ DCO4G_freq = 4*CH_freq;
+/*MT6176*/ else
+/*MT6176*/ DCO4G_freq = 2*CH_freq;
+/*MT6176*/
+/*MT6176*/ Nint = ( (DCO4G_freq<<15) - NCAL[KDCO_NCAL]*DCO4G_freq + NCAL[KDCO_NCAL]*TX_DCXO_FREQ*92 ) / (TX_DCXO_FREQ<<15);
+/*MT6176*/ Nfrac = ( ( ( (DCO4G_freq<<15) - NCAL[KDCO_NCAL]*DCO4G_freq + NCAL[KDCO_NCAL]*TX_DCXO_FREQ*92 - ((Nint*TX_DCXO_FREQ)<<15) )<<8 ) )/TX_DCXO_FREQ; //floor
+/*MT6176*/
+/*MT6176*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6176*/ if( l1d_rf.is_lock_dcxo )
+/*MT6176*/ { Nfrac1Offset = l1d_rf.tx_nfracoffset - ((((signed long)NCAL[KDCO_NCAL])*l1d_rf.tx_nfracoffset)>>15);
+/*MT6176*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, Nfrac1Offset, 1 );
+/*MT6176*/ }
+/*MT6176*/ #endif
+/*MT6176*/
+/*MT6176*/ /* CW551, N_INT1[7:0], N_RFC1[22:11] */
+/*MT6176*/ *rfN = BSI_CW( 0x227, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6176*/ /* CW552, N_FRAC1[10:0], NOFFSET_REV[3:0], STX_DCO_SCAK_NOFFSET[2:0], STX_MMD_SDM_DI_LS[1:0] */
+/*MT6176*/ *ifN = BSI_CW( 0x228, ((Nfrac&0x7FF)<<9) | ((DCO_SCAK_NOFFSET&0xF)<<2) |(MMD_SDM_DI_LS&0x3) );
+/*MT6176*/
+/*MT6176*/ }
+/*MT6176*/
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6176*/ {
+/*MT6176*/ return 0;
+/*MT6176*/ }
+/*MT6176*/ /* =========================================================================== */
+/*MT6176*/
+#endif
+
+#if IS_RF_MT6179
+/*MT6179*/ //For DLIF mode
+/*MT6179*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6179*/ {
+ #if IS_W_CANCELLATION_SUPPORT
+/*MT6179*/ if( L1D_CheckIfMetaMode() )
+/*MT6179*/ { return l1d_rf.if_state; }
+/*MT6179*/ else
+/*MT6179*/ { return 0; }
+ #else
+/*MT6179*/ return 0;
+ #endif
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6179*/ { long *if_sel = ifN+1;
+/*MT6179*/ unsigned short Nint =0, CH_freq =0;
+/*MT6179*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6179*/ unsigned char SRX_REF_SEL=1, SRX_VCO_INDSW_ON = 0, SRX_CAL_EN=1, SRX_CAL_IMM=0, SRX_VCO1_SEL=1, SRX_VCO_CFG=3;
+/*MT6179*/ unsigned short FREF_SRX[2] = {26, 52};
+/*MT6179*/ unsigned short multiplier[2] = {15, 14};
+/*MT6179*/
+/*MT6179*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6179*/
+/*MT6179*/ {
+/*MT6179*/ *if_sel = 0;
+/*MT6179*/ if( rf_band < FrequencyBand1800 )
+/*MT6179*/ {
+/*MT6179*/ VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6179*/ }
+/*MT6179*/ else
+/*MT6179*/ {
+/*MT6179*/ VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6179*/ }
+/*MT6179*/ }
+/*MT6179*/
+/*MT6179*/ Nint = VCO_freq/(FREF_SRX[SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE);
+/*MT6179*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6179*/ Nfrac = ( ((VCO_freq-Nint*FREF_SRX[SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE)<<multiplier[SRX_REF_SEL]) + (195)/2 )/195;
+/*MT6179*/
+/*MT6179*/
+/*MT6179*/ /* CW130, N_INT[8:0], N_FRFC[22:12] */
+/*MT6179*/ *rfN = BSI_CW( 0x082, (((Nint&0x1FF)<<11)|((Nfrac>>12)&0x7FF)) );
+/*MT6179*/ /* CW131, N_FRAC[11:0], REF_DOUBLER_EN, SRX_CAL_EN, SRX_CAL_IMM, SRX_VCO_SEL, SRX_VCO_CFG */
+/*MT6179*/ *ifN = BSI_CW( 0x083, ((Nfrac&0xFFF)<<8)|((SRX_REF_SEL&0x1)<<7)|((SRX_VCO_INDSW_ON&0x1)<<6)| ((SRX_CAL_EN&0x1)<<5)|((SRX_CAL_IMM&0x1)<<4)|((SRX_VCO1_SEL&0x1)<<3)|(SRX_VCO_CFG&0x7));
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ void L1D_RF_SplitRxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6179*/ {
+/*MT6179*/ *Nint = ((rfN>>11)&0x1FF);
+/*MT6179*/ *Nfrac = ((rfN&0x7FF)<<12)|((ifN>>8)&0xFFF);
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ void L1D_RF_AdjustRxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6179*/ {
+/*MT6179*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 0 );
+/*MT6179*/
+/*MT6179*/ /* CW130, N_INT[8:0], N_FRFC[22:12] */
+/*MT6179*/ *rfN = BSI_CW( 0x082, (((Nint&0x1FF)<<11)|((Nfrac>>12)&0x7FF)) );
+/*MT6179*/ /* CW131, N_FRAC[11:0], REF_DOUBLER_EN, SRX_CAL_EN, SRX_CAL_IMM, SRX_VCO_SEL, SRX_VCO_CFG */
+/*MT6179*/ *ifN = BSI_CW( 0x083, ((Nfrac&0xFFF)<<8)|(*ifN&0xFF));
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6179*/ {
+/*MT6179*/ unsigned short Nint =0, CH_freq =0;
+/*MT6179*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6179*/ unsigned short MMD_SDM_DI_EN = 0; //keep POR = 0
+/*MT6179*/
+/*MT6179*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6179*/ #if IS_MIPI_SUPPORT
+/*MT6179*/ l1d_mipi.tx_arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6179*/ #endif
+/*MT6179*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6179*/
+/*MT6179*/ if( rf_band < FrequencyBand1800 )
+/*MT6179*/ VCO_freq = 4*CH_freq;
+/*MT6179*/ else
+/*MT6179*/ VCO_freq = 2*CH_freq;
+/*MT6179*/
+/*MT6179*/ Nint = VCO_freq/TX_DCXO_FREQ;
+/*MT6179*/ Nfrac = ( ((VCO_freq-Nint*TX_DCXO_FREQ)<<23) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6179*/
+/*MT6179*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6179*/ if( l1d_rf.is_lock_dcxo )
+/*MT6179*/ { /* SW dithering after L1D_RF_AdjustTxPLLSetting() */ }
+/*MT6179*/ else
+/*MT6179*/ #endif
+/*MT6179*/ { /* Apply SW dithering no matter it is integer channel or not */
+/*MT6179*/ Nfrac = ( (Nfrac&0x1) == 0 ) ? Nfrac+1 : Nfrac; //always let LSB[0]=1
+/*MT6179*/ }
+/*MT6179*/
+/*MT6179*/ /* CW549, N_INT[7:0], N_RFC[22:11] */
+/*MT6179*/ *rfN = BSI_CW( 0x225, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6179*/ /* CW550, N_FRAC[10:0], DI_EN */
+/*MT6179*/ *ifN = BSI_CW( 0x226, ((Nfrac&0x7FF)<<9) | (MMD_SDM_DI_EN&0x1) );
+/*MT6179*/
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ void L1D_RF_SplitTxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6179*/ {
+/*MT6179*/ *Nint = (rfN&(0xFF<<12))>>12;
+/*MT6179*/ *Nfrac = ( (rfN&0xFFF)<<11 ) | ( (ifN&(0x7FF<<9))>>9 );
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ void L1D_RF_AdjustTxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6179*/ {
+/*MT6179*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 1 );
+/*MT6179*/
+/*MT6179*/ /* Apply SW dithering no matter it is integer channel or not */
+/*MT6179*/ Nfrac = ( (Nfrac&0x1) == 0 ) ? Nfrac+1 : Nfrac; //always let LSB[0]=1
+/*MT6179*/
+/*MT6179*/ /* CW549, N_INT[7:0], N_RFC[22:11] */
+/*MT6179*/ *rfN = BSI_CW( 0x225, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6179*/ /* CW550, N_FRAC[10:0], DI_EN */
+/*MT6179*/ *ifN = BSI_CW( 0x226, ((Nfrac&0x7FF)<<9) |((*ifN)&0x1FF));
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ void L1D_RF_CompensateSXSetting( unsigned short *Nint, unsigned long *Nfrac, signed long NfracOffset, unsigned char is_TX)
+/*MT6179*/ {
+/*MT6179*/ signed long Max_Nfrac=0;
+/*MT6179*/ if( is_TX )
+/*MT6179*/ { Max_Nfrac = STX_MAX_NFRAC; }
+/*MT6179*/ else
+/*MT6179*/ { Max_Nfrac = SRX_MAX_NFRAC; }
+/*MT6179*/
+/*MT6179*/ //Calculate new Nfrac and Nint
+/*MT6179*/ *Nfrac += (NfracOffset + Max_Nfrac);
+/*MT6179*/ if( *Nfrac < Max_Nfrac )
+/*MT6179*/ { (*Nint)--;
+/*MT6179*/ }
+/*MT6179*/ else if( *Nfrac >= (Max_Nfrac<<1) )
+/*MT6179*/ { (*Nint)++;
+/*MT6179*/ *Nfrac = *Nfrac - (Max_Nfrac<<1);
+/*MT6179*/ }
+/*MT6179*/ else
+/*MT6179*/ { *Nfrac-= Max_Nfrac;
+/*MT6179*/ }
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6179*/ {
+/*MT6179*/ unsigned short freq=4450+225;
+/*MT6179*/ switch( rf_band )
+/*MT6179*/ {
+/*MT6179*/ case FrequencyBand850 :
+/*MT6179*/ {
+/*MT6179*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6179*/ break;
+/*MT6179*/ }
+/*MT6179*/ case FrequencyBand900 :
+/*MT6179*/ {
+/*MT6179*/ if( arfcn<=124 )
+/*MT6179*/ { freq=4450+arfcn+225; }
+/*MT6179*/ else
+/*MT6179*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6179*/ break;
+/*MT6179*/ }
+/*MT6179*/ case FrequencyBand1800 :
+/*MT6179*/ {
+/*MT6179*/ freq=8551+(arfcn-512)+475;
+/*MT6179*/ break;
+/*MT6179*/ }
+/*MT6179*/ case FrequencyBand1900 :
+/*MT6179*/ {
+/*MT6179*/ freq=9251+(arfcn-512)+400;
+/*MT6179*/ break;
+/*MT6179*/ }
+/*MT6179*/ default :
+/*MT6179*/ {
+/*MT6179*/ break;
+/*MT6179*/ }
+/*MT6179*/ }
+/*MT6179*/
+/*MT6179*/ return freq;
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6179*/ {
+/*MT6179*/ unsigned short freq=4450;
+/*MT6179*/ switch( rf_band )
+/*MT6179*/ {
+/*MT6179*/ case FrequencyBand850 :
+/*MT6179*/ {
+/*MT6179*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6179*/ break;
+/*MT6179*/ }
+/*MT6179*/ case FrequencyBand900 :
+/*MT6179*/ {
+/*MT6179*/ if( arfcn<=124 )
+/*MT6179*/ { freq=4450+arfcn; }
+/*MT6179*/ else
+/*MT6179*/ { freq=4450+(arfcn-1024); }
+/*MT6179*/ break;
+/*MT6179*/ }
+/*MT6179*/ case FrequencyBand1800 :
+/*MT6179*/ {
+/*MT6179*/ freq=8551+(arfcn-512);
+/*MT6179*/ break;
+/*MT6179*/ }
+/*MT6179*/ case FrequencyBand1900 :
+/*MT6179*/ {
+/*MT6179*/ freq=9251+(arfcn-512);
+/*MT6179*/ break;
+/*MT6179*/ }
+/*MT6179*/ default :
+/*MT6179*/ {
+/*MT6179*/ break;
+/*MT6179*/ }
+/*MT6179*/ }
+/*MT6179*/
+/*MT6179*/ return freq;
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6179*/ {
+/*MT6179*/ char segment_tx=3, LUT_num_tx=8, offset_tx=14; // LUT method related parameters
+/*MT6179*/ signed short TXDCO_LUT[8]={4948, 3695, 2671, 1823, 1114, 514, 2, -438}; // TXDCO LUT
+/*MT6179*/ short idx, x_axis, code_type; // code_type value for SCA calibration (code_type > 0)
+/*MT6179*/
+/*MT6179*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6179*/ if( l1d_rf.is_lock_dcxo )
+/*MT6179*/ { L1D_RF_CompensateSXSetting( &Nint, &Nfrac, -l1d_rf.tx_nfracoffset, 1 ); }
+/*MT6179*/ #endif
+/*MT6179*/
+/*MT6179*/ /* STX DCO SCA Typical Code LUT */
+/*MT6179*/ idx = (Nint>>segment_tx)-((short)offset_tx);
+/*MT6179*/ if(idx<0)
+/*MT6179*/ { idx = 0; }
+/*MT6179*/ else if(idx>(LUT_num_tx-2))
+/*MT6179*/ { idx = LUT_num_tx-2; }
+/*MT6179*/
+/*MT6179*/ x_axis = ((Nint-((Nint>>segment_tx)<<segment_tx))<<3)+((short)(Nfrac>>20));
+/*MT6179*/ code_type = TXDCO_LUT[idx]+ ((x_axis*(TXDCO_LUT[idx+1]-TXDCO_LUT[idx]))>>(segment_tx+3));
+/*MT6179*/
+/*MT6179*/ return code_type;
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+/*MT6179*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6179*/ {
+/*MT6179*/ unsigned short Nint =0, CH_freq =0;
+/*MT6179*/ unsigned long Nfrac=0, DCO4G_freq=0;
+/*MT6179*/ unsigned short KDCO_NCAL = 0x1;//(POR_CW559&(0x3<<9))>>9;
+/*MT6179*/ unsigned short NCAL[4] = {12, 24, 16, 32};
+/*MT6179*/
+/*MT6179*/ unsigned short DCO_SCAK_NOFFSET = 0; //keep POR = 0
+/*MT6179*/ unsigned short MMD_SDM_DI_LS = 0; //keep POR = 0
+/*MT6179*/ signed long Nfrac1Offset = 0;
+/*MT6179*/
+/*MT6179*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6179*/
+/*MT6179*/ if( rf_band < FrequencyBand1800 )
+/*MT6179*/ DCO4G_freq = 4*CH_freq;
+/*MT6179*/ else
+/*MT6179*/ DCO4G_freq = 2*CH_freq;
+/*MT6179*/
+/*MT6179*/ Nint = ( (DCO4G_freq<<15) - NCAL[KDCO_NCAL]*DCO4G_freq + NCAL[KDCO_NCAL]*TX_DCXO_FREQ*92 ) / (TX_DCXO_FREQ<<15);
+/*MT6179*/ Nfrac = ( ( ( (DCO4G_freq<<15) - NCAL[KDCO_NCAL]*DCO4G_freq + NCAL[KDCO_NCAL]*TX_DCXO_FREQ*92 - ((Nint*TX_DCXO_FREQ)<<15) )<<8 ) )/TX_DCXO_FREQ; //floor
+/*MT6179*/
+/*MT6179*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6179*/ if( l1d_rf.is_lock_dcxo )
+/*MT6179*/ { Nfrac1Offset = l1d_rf.tx_nfracoffset - ((((signed long)NCAL[KDCO_NCAL])*l1d_rf.tx_nfracoffset)>>15);
+/*MT6179*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, Nfrac1Offset, 1 );
+/*MT6179*/ }
+/*MT6179*/ #endif
+/*MT6179*/
+/*MT6179*/ /* CW551, N_INT1[7:0], N_RFC1[22:11] */
+/*MT6179*/ *rfN = BSI_CW( 0x227, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6179*/ /* CW552, N_FRAC1[10:0], NOFFSET_REV[3:0], STX_DCO_SCAK_NOFFSET[3:0], STX_MMD_SDM_DI_LS[1:0] */
+/*MT6179*/ *ifN = BSI_CW( 0x228, ((Nfrac&0x7FF)<<9) | ((DCO_SCAK_NOFFSET&0xF)<<2) |(MMD_SDM_DI_LS&0x3) );
+/*MT6179*/
+/*MT6179*/ }
+/*MT6179*/
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6179*/ {
+/*MT6179*/ return 0;
+/*MT6179*/ }
+/*MT6179*/ /* =========================================================================== */
+/*MT6179*/
+#endif
+
+#if IS_RF_MT6177L
+/*MT6177L*/ //For DLIF mode
+/*MT6177L*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6177L*/ {
+ #if IS_W_CANCELLATION_SUPPORT
+/*MT6177L*/ if( L1D_CheckIfMetaMode() )
+/*MT6177L*/ { return l1d_rf.if_state; }
+/*MT6177L*/ else
+/*MT6177L*/ { return 0; }
+ #else
+/*MT6177L*/ return 0;
+ #endif
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6177L*/ { long *if_sel = ifN+1;
+/*MT6177L*/ unsigned short Nint =0, CH_freq =0;
+/*MT6177L*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6177L*/ unsigned char SRX_REF_SEL=1, SRX_VCO_INDSW_ON = 0, SRX_CAL_EN=1, SRX_CAL_IMM=0, SRX_VCO1_SEL=1, SRX_VCO_CFG=3;
+/*MT6177L*/ unsigned short FREF_SRX[2] = {26, 52};
+/*MT6177L*/ unsigned short multiplier[2] = {15, 14};
+/*MT6177L*/
+/*MT6177L*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6177L*/
+/*MT6177L*/ {
+/*MT6177L*/ *if_sel = 0;
+/*MT6177L*/ if( rf_band < FrequencyBand1800 )
+/*MT6177L*/ {
+/*MT6177L*/ VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6177L*/ }
+/*MT6177L*/ else
+/*MT6177L*/ {
+/*MT6177L*/ VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6177L*/ }
+/*MT6177L*/ }
+/*MT6177L*/
+/*MT6177L*/ Nint = VCO_freq/(FREF_SRX[SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE);
+/*MT6177L*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6177L*/ Nfrac = ( ((VCO_freq-Nint*FREF_SRX[SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE)<<multiplier[SRX_REF_SEL]) + (195)/2 )/195;
+/*MT6177L*/
+/*MT6177L*/
+/*MT6177L*/ /* CW130, N_INT[8:0], N_FRFC[22:12] */
+/*MT6177L*/ *rfN = BSI_CW( 0x082, (((Nint&0x1FF)<<11)|((Nfrac>>12)&0x7FF)) );
+/*MT6177L*/ /* CW131, N_FRAC[11:0], REF_DOUBLER_EN, SRX_CAL_EN, SRX_CAL_IMM, SRX_VCO_SEL, SRX_VCO_CFG */
+/*MT6177L*/ *ifN = BSI_CW( 0x083, ((Nfrac&0xFFF)<<8)|((SRX_REF_SEL&0x1)<<7)|((SRX_VCO_INDSW_ON&0x1)<<6)| ((SRX_CAL_EN&0x1)<<5)|((SRX_CAL_IMM&0x1)<<4)|((SRX_VCO1_SEL&0x1)<<3)|(SRX_VCO_CFG&0x7));
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ void L1D_RF_SplitRxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6177L*/ {
+/*MT6177L*/ *Nint = ((rfN>>11)&0x1FF);
+/*MT6177L*/ *Nfrac = ((rfN&0x7FF)<<12)|((ifN>>8)&0xFFF);
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ void L1D_RF_AdjustRxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6177L*/ {
+/*MT6177L*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 0 );
+/*MT6177L*/
+/*MT6177L*/ /* CW130, N_INT[8:0], N_FRFC[22:12] */
+/*MT6177L*/ *rfN = BSI_CW( 0x082, (((Nint&0x1FF)<<11)|((Nfrac>>12)&0x7FF)) );
+/*MT6177L*/ /* CW131, N_FRAC[11:0], REF_DOUBLER_EN, SRX_CAL_EN, SRX_CAL_IMM, SRX_VCO_SEL, SRX_VCO_CFG */
+/*MT6177L*/ *ifN = BSI_CW( 0x083, ((Nfrac&0xFFF)<<8)|(*ifN&0xFF));
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6177L*/ {
+/*MT6177L*/ unsigned short Nint =0, CH_freq =0;
+/*MT6177L*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6177L*/ unsigned short MMD_SDM_DI_EN = 0; //keep POR = 0
+/*MT6177L*/
+/*MT6177L*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6177L*/ #if IS_MIPI_SUPPORT
+/*MT6177L*/ l1d_mipi.tx_arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6177L*/ #endif
+/*MT6177L*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6177L*/
+/*MT6177L*/ if( rf_band < FrequencyBand1800 )
+/*MT6177L*/ VCO_freq = 4*CH_freq;
+/*MT6177L*/ else
+/*MT6177L*/ VCO_freq = 2*CH_freq;
+/*MT6177L*/
+/*MT6177L*/ Nint = VCO_freq/TX_DCXO_FREQ;
+/*MT6177L*/ Nfrac = ( ((VCO_freq-Nint*TX_DCXO_FREQ)<<23) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6177L*/
+/*MT6177L*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6177L*/ if( l1d_rf.is_lock_dcxo )
+/*MT6177L*/ { /* SW dithering after L1D_RF_AdjustTxPLLSetting() */ }
+/*MT6177L*/ else
+/*MT6177L*/ #endif
+/*MT6177L*/ { /* Apply SW dithering no matter it is integer channel or not */
+/*MT6177L*/ Nfrac = ( (Nfrac&0x1) == 0 ) ? Nfrac+1 : Nfrac; //always let LSB[0]=1
+/*MT6177L*/ }
+/*MT6177L*/
+/*MT6177L*/ /* CW549, N_INT[7:0], N_RFC[22:11] */
+/*MT6177L*/ *rfN = BSI_CW( 0x225, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6177L*/ /* CW550, N_FRAC[10:0], DI_EN */
+/*MT6177L*/ *ifN = BSI_CW( 0x226, ((Nfrac&0x7FF)<<9) | (MMD_SDM_DI_EN&0x1) );
+/*MT6177L*/
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ void L1D_RF_SplitTxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6177L*/ {
+/*MT6177L*/ *Nint = (rfN&(0xFF<<12))>>12;
+/*MT6177L*/ *Nfrac = ( (rfN&0xFFF)<<11 ) | ( (ifN&(0x7FF<<9))>>9 );
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ void L1D_RF_AdjustTxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6177L*/ {
+/*MT6177L*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 1 );
+/*MT6177L*/
+/*MT6177L*/ /* Apply SW dithering no matter it is integer channel or not */
+/*MT6177L*/ Nfrac = ( (Nfrac&0x1) == 0 ) ? Nfrac+1 : Nfrac; //always let LSB[0]=1
+/*MT6177L*/
+/*MT6177L*/ /* CW549, N_INT[7:0], N_RFC[22:11] */
+/*MT6177L*/ *rfN = BSI_CW( 0x225, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6177L*/ /* CW550, N_FRAC[10:0], DI_EN */
+/*MT6177L*/ *ifN = BSI_CW( 0x226, ((Nfrac&0x7FF)<<9) |((*ifN)&0x1FF));
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ void L1D_RF_CompensateSXSetting( unsigned short *Nint, unsigned long *Nfrac, signed long NfracOffset, unsigned char is_TX)
+/*MT6177L*/ {
+/*MT6177L*/ signed long Max_Nfrac=0;
+/*MT6177L*/ if( is_TX )
+/*MT6177L*/ { Max_Nfrac = STX_MAX_NFRAC; }
+/*MT6177L*/ else
+/*MT6177L*/ { Max_Nfrac = SRX_MAX_NFRAC; }
+/*MT6177L*/
+/*MT6177L*/ //Calculate new Nfrac and Nint
+/*MT6177L*/ *Nfrac += (NfracOffset + Max_Nfrac);
+/*MT6177L*/ if( *Nfrac < Max_Nfrac )
+/*MT6177L*/ { (*Nint)--;
+/*MT6177L*/ }
+/*MT6177L*/ else if( *Nfrac >= (Max_Nfrac<<1) )
+/*MT6177L*/ { (*Nint)++;
+/*MT6177L*/ *Nfrac = *Nfrac - (Max_Nfrac<<1);
+/*MT6177L*/ }
+/*MT6177L*/ else
+/*MT6177L*/ { *Nfrac-= Max_Nfrac;
+/*MT6177L*/ }
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6177L*/ {
+/*MT6177L*/ unsigned short freq=4450+225;
+/*MT6177L*/ switch( rf_band )
+/*MT6177L*/ {
+/*MT6177L*/ case FrequencyBand850 :
+/*MT6177L*/ {
+/*MT6177L*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6177L*/ break;
+/*MT6177L*/ }
+/*MT6177L*/ case FrequencyBand900 :
+/*MT6177L*/ {
+/*MT6177L*/ if( arfcn<=124 )
+/*MT6177L*/ { freq=4450+arfcn+225; }
+/*MT6177L*/ else
+/*MT6177L*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6177L*/ break;
+/*MT6177L*/ }
+/*MT6177L*/ case FrequencyBand1800 :
+/*MT6177L*/ {
+/*MT6177L*/ freq=8551+(arfcn-512)+475;
+/*MT6177L*/ break;
+/*MT6177L*/ }
+/*MT6177L*/ case FrequencyBand1900 :
+/*MT6177L*/ {
+/*MT6177L*/ freq=9251+(arfcn-512)+400;
+/*MT6177L*/ break;
+/*MT6177L*/ }
+/*MT6177L*/ default :
+/*MT6177L*/ {
+/*MT6177L*/ break;
+/*MT6177L*/ }
+/*MT6177L*/ }
+/*MT6177L*/
+/*MT6177L*/ return freq;
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6177L*/ {
+/*MT6177L*/ unsigned short freq=4450;
+/*MT6177L*/ switch( rf_band )
+/*MT6177L*/ {
+/*MT6177L*/ case FrequencyBand850 :
+/*MT6177L*/ {
+/*MT6177L*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6177L*/ break;
+/*MT6177L*/ }
+/*MT6177L*/ case FrequencyBand900 :
+/*MT6177L*/ {
+/*MT6177L*/ if( arfcn<=124 )
+/*MT6177L*/ { freq=4450+arfcn; }
+/*MT6177L*/ else
+/*MT6177L*/ { freq=4450+(arfcn-1024); }
+/*MT6177L*/ break;
+/*MT6177L*/ }
+/*MT6177L*/ case FrequencyBand1800 :
+/*MT6177L*/ {
+/*MT6177L*/ freq=8551+(arfcn-512);
+/*MT6177L*/ break;
+/*MT6177L*/ }
+/*MT6177L*/ case FrequencyBand1900 :
+/*MT6177L*/ {
+/*MT6177L*/ freq=9251+(arfcn-512);
+/*MT6177L*/ break;
+/*MT6177L*/ }
+/*MT6177L*/ default :
+/*MT6177L*/ {
+/*MT6177L*/ break;
+/*MT6177L*/ }
+/*MT6177L*/ }
+/*MT6177L*/
+/*MT6177L*/ return freq;
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6177L*/ {
+/*MT6177L*/ char segment_tx=3, LUT_num_tx=8, offset_tx=14; // LUT method related parameters
+/*MT6177L*/ signed short TXDCO_LUT[8]={4948, 3695, 2671, 1823, 1114, 514, 2, -438}; // TXDCO LUT
+/*MT6177L*/ short idx, x_axis, code_type; // code_type value for SCA calibration (code_type > 0)
+/*MT6177L*/
+/*MT6177L*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6177L*/ if( l1d_rf.is_lock_dcxo )
+/*MT6177L*/ { L1D_RF_CompensateSXSetting( &Nint, &Nfrac, -l1d_rf.tx_nfracoffset, 1 ); }
+/*MT6177L*/ #endif
+/*MT6177L*/
+/*MT6177L*/ /* STX DCO SCA Typical Code LUT */
+/*MT6177L*/ idx = (Nint>>segment_tx)-((short)offset_tx);
+/*MT6177L*/ if(idx<0)
+/*MT6177L*/ { idx = 0; }
+/*MT6177L*/ else if(idx>(LUT_num_tx-2))
+/*MT6177L*/ { idx = LUT_num_tx-2; }
+/*MT6177L*/
+/*MT6177L*/ x_axis = ((Nint-((Nint>>segment_tx)<<segment_tx))<<3)+((short)(Nfrac>>20));
+/*MT6177L*/ code_type = TXDCO_LUT[idx]+ ((x_axis*(TXDCO_LUT[idx+1]-TXDCO_LUT[idx]))>>(segment_tx+3));
+/*MT6177L*/
+/*MT6177L*/ return code_type;
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+/*MT6177L*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6177L*/ {
+/*MT6177L*/ unsigned short Nint =0, CH_freq =0;
+/*MT6177L*/ unsigned long Nfrac=0, DCO4G_freq=0;
+/*MT6177L*/ unsigned short KDCO_NCAL = 0x1;//(POR_CW559&(0x3<<9))>>9;
+/*MT6177L*/ unsigned short NCAL[4] = {12, 24, 16, 32};
+/*MT6177L*/
+/*MT6177L*/ unsigned short DCO_SCAK_NOFFSET = 0; //keep POR = 0
+/*MT6177L*/ unsigned short MMD_SDM_DI_LS = 0; //keep POR = 0
+/*MT6177L*/ signed long Nfrac1Offset = 0;
+/*MT6177L*/
+/*MT6177L*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6177L*/
+/*MT6177L*/ if( rf_band < FrequencyBand1800 )
+/*MT6177L*/ DCO4G_freq = 4*CH_freq;
+/*MT6177L*/ else
+/*MT6177L*/ DCO4G_freq = 2*CH_freq;
+/*MT6177L*/
+/*MT6177L*/ Nint = ( (DCO4G_freq<<15) - NCAL[KDCO_NCAL]*DCO4G_freq + NCAL[KDCO_NCAL]*TX_DCXO_FREQ*92 ) / (TX_DCXO_FREQ<<15);
+/*MT6177L*/ Nfrac = ( ( ( (DCO4G_freq<<15) - NCAL[KDCO_NCAL]*DCO4G_freq + NCAL[KDCO_NCAL]*TX_DCXO_FREQ*92 - ((Nint*TX_DCXO_FREQ)<<15) )<<8 ) )/TX_DCXO_FREQ; //floor
+/*MT6177L*/
+/*MT6177L*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6177L*/ if( l1d_rf.is_lock_dcxo )
+/*MT6177L*/ { Nfrac1Offset = l1d_rf.tx_nfracoffset - ((((signed long)NCAL[KDCO_NCAL])*l1d_rf.tx_nfracoffset)>>15);
+/*MT6177L*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, Nfrac1Offset, 1 );
+/*MT6177L*/ }
+/*MT6177L*/ #endif
+/*MT6177L*/
+/*MT6177L*/ /* CW551, N_INT1[7:0], N_RFC1[22:11] */
+/*MT6177L*/ *rfN = BSI_CW( 0x227, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6177L*/ /* CW552, N_FRAC1[10:0], NOFFSET_REV[3:0], STX_DCO_SCAK_NOFFSET[3:0], STX_MMD_SDM_DI_LS[1:0] */
+/*MT6177L*/ *ifN = BSI_CW( 0x228, ((Nfrac&0x7FF)<<9) | ((DCO_SCAK_NOFFSET&0xF)<<2) |(MMD_SDM_DI_LS&0x3) );
+/*MT6177L*/
+/*MT6177L*/ }
+/*MT6177L*/
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6177L*/ {
+/*MT6177L*/ return 0;
+/*MT6177L*/ }
+/*MT6177L*/ /* =========================================================================== */
+/*MT6177L*/
+#endif
+
+#if IS_RF_MT6177M
+/*MT6173*/ //For DLIF mode
+/*MT6173*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6173*/ {
+ #if IS_W_CANCELLATION_SUPPORT
+/*MT6173*/ if( L1D_CheckIfMetaMode() )
+/*MT6173*/ { return l1d_rf.if_state; }
+/*MT6173*/ else
+/*MT6173*/ { return 0; }
+ #else
+/*MT6173*/ return 0;
+ #endif
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6173*/ { long *if_sel = ifN+1;
+/*MT6173*/ unsigned short Nint =0, CH_freq =0;
+/*MT6173*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6173*/ unsigned char SRX_REF_SEL=1, SRX_VCO_INDSW_ON = 0, SRX_CAL_EN=1, SRX_CAL_IMM=0, SRX_VCO1_SEL=1, SRX_VCO_CFG=5;
+/*MT6173*/ unsigned short FREF_SRX[2] = {26, 52};
+/*MT6173*/ unsigned short multiplier[2] = {15, 14};
+/*MT6173*/
+/*MT6173*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6173*/
+/*MT6173*/ {
+/*MT6173*/ *if_sel = 0;
+/*MT6173*/ if( rf_band < FrequencyBand1800 )
+/*MT6173*/ {
+/*MT6173*/ VCO_freq = 4*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6173*/ }
+/*MT6173*/ else
+/*MT6173*/ {
+/*MT6173*/ VCO_freq = 2*(CH_freq*DLIF_SCALE - DLIF); //High-side mixing
+/*MT6173*/ }
+/*MT6173*/ }
+/*MT6173*/
+/*MT6173*/ Nint = VCO_freq/(FREF_SRX[SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE);
+/*MT6173*/ //+195/2 is for rounding, 195=13*3*5, 5 is SYNTH_SCALE, 13 and 3 are related to DLIF
+/*MT6173*/ Nfrac = ( ((VCO_freq-Nint*FREF_SRX[SRX_REF_SEL]*SYNTH_SCALE*DLIF_SCALE)<<multiplier[SRX_REF_SEL]) + (195)/2 )/195;
+/*MT6173*/
+/*MT6173*/
+/*MT6173*/ /* CW130, N_INT[8:0], N_FRFC[22:12] */
+/*MT6173*/ *rfN = BSI_CW( 0x082, (((Nint&0x1FF)<<11)|((Nfrac>>12)&0x7FF)) );
+/*MT6173*/ /* CW131, N_FRAC[11:0], REF_DOUBLER_EN, SRX_CAL_EN, SRX_CAL_IMM, SRX_VCO_SEL, SRX_VCO_CFG */
+/*MT6173*/ *ifN = BSI_CW( 0x083, ((Nfrac&0xFFF)<<8)|((SRX_REF_SEL&0x1)<<7)|((SRX_VCO_INDSW_ON&0x1)<<6)| ((SRX_CAL_EN&0x1)<<5)|((SRX_CAL_IMM&0x1)<<4)|((SRX_VCO1_SEL&0x1)<<3)|(SRX_VCO_CFG&0x7));
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ void L1D_RF_SplitRxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6173*/ {
+/*MT6173*/ *Nint = ((rfN>>11)&0x1FF);
+/*MT6173*/ *Nfrac = ((rfN&0x7FF)<<12)|((ifN>>8)&0xFFF);
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ void L1D_RF_AdjustRxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6173*/ {
+/*MT6173*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 0 );
+/*MT6173*/
+/*MT6173*/ /* CW130, N_INT[8:0], N_FRFC[22:12] */
+/*MT6173*/ *rfN = BSI_CW( 0x082, (((Nint&0x1FF)<<11)|((Nfrac>>12)&0x7FF)) );
+/*MT6173*/ /* CW131, N_FRAC[11:0], REF_DOUBLER_EN, SRX_CAL_EN, SRX_CAL_IMM, SRX_VCO_SEL, SRX_VCO_CFG */
+/*MT6173*/ *ifN = BSI_CW( 0x083, ((Nfrac&0xFFF)<<8)|(*ifN&0xFF));
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6173*/ {
+/*MT6173*/ unsigned short Nint =0, CH_freq =0;
+/*MT6173*/ unsigned long Nfrac=0, VCO_freq=0;
+/*MT6173*/ unsigned short MMD_SDM_DI_EN = 0; //keep POR = 0
+/*MT6173*/
+/*MT6173*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6173*/ #if IS_MIPI_SUPPORT
+/*MT6173*/ l1d_mipi.tx_arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6173*/ #endif
+/*MT6173*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6173*/
+/*MT6173*/ if( rf_band < FrequencyBand1800 )
+/*MT6173*/ VCO_freq = 4*CH_freq;
+/*MT6173*/ else
+/*MT6173*/ VCO_freq = 2*CH_freq;
+/*MT6173*/
+/*MT6173*/ Nint = VCO_freq/TX_DCXO_FREQ;
+/*MT6173*/ Nfrac = ( ((VCO_freq-Nint*TX_DCXO_FREQ)<<23) + TX_DCXO_FREQ/2 )/TX_DCXO_FREQ; //+TX_DCXO_FREQ/2 is for rounding
+/*MT6173*/
+/*MT6173*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6173*/ if( l1d_rf.is_lock_dcxo )
+/*MT6173*/ { /* SW dithering after L1D_RF_AdjustTxPLLSetting() */ }
+/*MT6173*/ else
+/*MT6173*/ #endif
+/*MT6173*/ { /* Apply SW dithering no matter it is integer channel or not */
+/*MT6173*/ Nfrac = ( (Nfrac&0x1) == 0 ) ? Nfrac+1 : Nfrac; //always let LSB[0]=1
+/*MT6173*/ }
+/*MT6173*/
+/*MT6173*/ /* CW549, N_INT[7:0], N_RFC[22:11] */
+/*MT6173*/ *rfN = BSI_CW( 0x225, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6173*/ /* CW550, N_FRAC[10:0], DI_EN */
+/*MT6173*/ *ifN = BSI_CW( 0x226, ((Nfrac&0x7FF)<<9) | (MMD_SDM_DI_EN&0x1) );
+/*MT6173*/
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ void L1D_RF_SplitTxPLLSetting(unsigned long rfN, unsigned long ifN, unsigned short *Nint, unsigned long *Nfrac)
+/*MT6173*/ {
+/*MT6173*/ *Nint = (rfN&(0xFF<<12))>>12;
+/*MT6173*/ *Nfrac = ( (rfN&0xFFF)<<11 ) | ( (ifN&(0x7FF<<9))>>9 );
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ void L1D_RF_AdjustTxPLLSetting(unsigned short Nint, unsigned long Nfrac, signed long NfracOffset, unsigned long *rfN, unsigned long *ifN )
+/*MT6173*/ {
+/*MT6173*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, NfracOffset, 1 );
+/*MT6173*/
+/*MT6173*/ /* Apply SW dithering no matter it is integer channel or not */
+/*MT6173*/ Nfrac = ( (Nfrac&0x1) == 0 ) ? Nfrac+1 : Nfrac; //always let LSB[0]=1
+/*MT6173*/
+/*MT6173*/ /* CW549, N_INT[7:0], N_RFC[22:11] */
+/*MT6173*/ *rfN = BSI_CW( 0x225, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6173*/ /* CW550, N_FRAC[10:0], DI_EN */
+/*MT6173*/ *ifN = BSI_CW( 0x226, ((Nfrac&0x7FF)<<9) |((*ifN)&0x1FF));
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ void L1D_RF_CompensateSXSetting( unsigned short *Nint, unsigned long *Nfrac, signed long NfracOffset, unsigned char is_TX)
+/*MT6173*/ {
+/*MT6173*/ signed long Max_Nfrac=0;
+/*MT6173*/ if( is_TX )
+/*MT6173*/ { Max_Nfrac = STX_MAX_NFRAC; }
+/*MT6173*/ else
+/*MT6173*/ { Max_Nfrac = SRX_MAX_NFRAC; }
+/*MT6173*/
+/*MT6173*/ //Calculate new Nfrac and Nint
+/*MT6173*/ *Nfrac += (NfracOffset + Max_Nfrac);
+/*MT6173*/ if( *Nfrac < Max_Nfrac )
+/*MT6173*/ { (*Nint)--;
+/*MT6173*/ }
+/*MT6173*/ else if( *Nfrac >= (Max_Nfrac<<1) )
+/*MT6173*/ { (*Nint)++;
+/*MT6173*/ *Nfrac = *Nfrac - (Max_Nfrac<<1);
+/*MT6173*/ }
+/*MT6173*/ else
+/*MT6173*/ { *Nfrac-= Max_Nfrac;
+/*MT6173*/ }
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6173*/ {
+/*MT6173*/ unsigned short freq=4450+225;
+/*MT6173*/ switch( rf_band )
+/*MT6173*/ {
+/*MT6173*/ case FrequencyBand850 :
+/*MT6173*/ {
+/*MT6173*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6173*/ break;
+/*MT6173*/ }
+/*MT6173*/ case FrequencyBand900 :
+/*MT6173*/ {
+/*MT6173*/ if( arfcn<=124 )
+/*MT6173*/ { freq=4450+arfcn+225; }
+/*MT6173*/ else
+/*MT6173*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6173*/ break;
+/*MT6173*/ }
+/*MT6173*/ case FrequencyBand1800 :
+/*MT6173*/ {
+/*MT6173*/ freq=8551+(arfcn-512)+475;
+/*MT6173*/ break;
+/*MT6173*/ }
+/*MT6173*/ case FrequencyBand1900 :
+/*MT6173*/ {
+/*MT6173*/ freq=9251+(arfcn-512)+400;
+/*MT6173*/ break;
+/*MT6173*/ }
+/*MT6173*/ default :
+/*MT6173*/ {
+/*MT6173*/ break;
+/*MT6173*/ }
+/*MT6173*/ }
+/*MT6173*/
+/*MT6173*/ return freq;
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6173*/ {
+/*MT6173*/ unsigned short freq=4450;
+/*MT6173*/ switch( rf_band )
+/*MT6173*/ {
+/*MT6173*/ case FrequencyBand850 :
+/*MT6173*/ {
+/*MT6173*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6173*/ break;
+/*MT6173*/ }
+/*MT6173*/ case FrequencyBand900 :
+/*MT6173*/ {
+/*MT6173*/ if( arfcn<=124 )
+/*MT6173*/ { freq=4450+arfcn; }
+/*MT6173*/ else
+/*MT6173*/ { freq=4450+(arfcn-1024); }
+/*MT6173*/ break;
+/*MT6173*/ }
+/*MT6173*/ case FrequencyBand1800 :
+/*MT6173*/ {
+/*MT6173*/ freq=8551+(arfcn-512);
+/*MT6173*/ break;
+/*MT6173*/ }
+/*MT6173*/ case FrequencyBand1900 :
+/*MT6173*/ {
+/*MT6173*/ freq=9251+(arfcn-512);
+/*MT6173*/ break;
+/*MT6173*/ }
+/*MT6173*/ default :
+/*MT6173*/ {
+/*MT6173*/ break;
+/*MT6173*/ }
+/*MT6173*/ }
+/*MT6173*/
+/*MT6173*/ return freq;
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6173*/ {
+/*MT6173*/ char segment_tx=3, LUT_num_tx=7, offset_tx=14; // LUT method related parameters
+/*MT6173*/ signed short TXDCO_LUT[7]={5058, 3703, 2596, 1679, 911, 263, -290}; // TXDCO LUT
+/*MT6173*/ short idx, x_axis, code_type; // code_type value for SCA calibration (code_type > 0)
+/*MT6173*/
+/*MT6173*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6173*/ if( l1d_rf.is_lock_dcxo )
+/*MT6173*/ { L1D_RF_CompensateSXSetting( &Nint, &Nfrac, -l1d_rf.tx_nfracoffset, 1 ); }
+/*MT6173*/ #endif
+/*MT6173*/
+/*MT6173*/ /* STX DCO SCA Typical Code LUT */
+/*MT6173*/ idx = (Nint>>segment_tx)-((short)offset_tx);
+/*MT6173*/ if(idx<0)
+/*MT6173*/ { idx = 0; }
+/*MT6173*/ else if(idx>(LUT_num_tx-2))
+/*MT6173*/ { idx = LUT_num_tx-2; }
+/*MT6173*/
+/*MT6173*/ x_axis = ((Nint-((Nint>>segment_tx)<<segment_tx))<<3)+((short)(Nfrac>>20));
+/*MT6173*/ code_type = TXDCO_LUT[idx]+ ((x_axis*(TXDCO_LUT[idx+1]-TXDCO_LUT[idx]))>>(segment_tx+3));
+/*MT6173*/
+/*MT6173*/ return code_type;
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+/*MT6173*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6173*/ {
+/*MT6173*/ unsigned short Nint =0, CH_freq =0;
+/*MT6173*/ unsigned long Nfrac=0, DCO4G_freq=0;
+/*MT6173*/ unsigned short KDCO_NCAL = 0x1;//(POR_CW559&(0x3<<9))>>9;
+/*MT6173*/ unsigned short NCAL[4] = {12, 24, 16, 32};
+/*MT6173*/
+/*MT6173*/ unsigned short DCO_SCAK_NOFFSET = 0; //keep POR = 0
+/*MT6173*/ unsigned short MMD_SDM_DI_LS = 0; //keep POR = 0
+/*MT6173*/ signed long Nfrac1Offset = 0;
+/*MT6173*/
+/*MT6173*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6173*/
+/*MT6173*/ if( rf_band < FrequencyBand1800 )
+/*MT6173*/ DCO4G_freq = 4*CH_freq;
+/*MT6173*/ else
+/*MT6173*/ DCO4G_freq = 2*CH_freq;
+/*MT6173*/
+/*MT6173*/ Nint = ( (DCO4G_freq<<15) - NCAL[KDCO_NCAL]*DCO4G_freq + NCAL[KDCO_NCAL]*TX_DCXO_FREQ*92 ) / (TX_DCXO_FREQ<<15);
+/*MT6173*/ Nfrac = ( ( ( (DCO4G_freq<<15) - NCAL[KDCO_NCAL]*DCO4G_freq + NCAL[KDCO_NCAL]*TX_DCXO_FREQ*92 - ((Nint*TX_DCXO_FREQ)<<15) )<<8 ) )/TX_DCXO_FREQ; //floor
+/*MT6173*/
+/*MT6173*/ #if IS_DUAL_LOOP_AFC_CONTROL_SUPPORT
+/*MT6173*/ if( l1d_rf.is_lock_dcxo )
+/*MT6173*/ { Nfrac1Offset = l1d_rf.tx_nfracoffset - ((((signed long)NCAL[KDCO_NCAL])*l1d_rf.tx_nfracoffset)>>15);
+/*MT6173*/ L1D_RF_CompensateSXSetting( &Nint, &Nfrac, Nfrac1Offset, 1 );
+/*MT6173*/ }
+/*MT6173*/ #endif
+/*MT6173*/
+/*MT6173*/ /* CW551, N_INT1[7:0], N_RFC1[22:11] */
+/*MT6173*/ *rfN = BSI_CW( 0x227, ((Nint &0xFF)<<12) | (Nfrac>>11) );
+/*MT6173*/ /* CW552, N_FRAC1[10:0], NOFFSET_REV[3:0], STX_DCO_SCAK_NOFFSET[3:0], STX_MMD_SDM_DI_LS[1:0] */
+/*MT6173*/ *ifN = BSI_CW( 0x228, ((Nfrac&0x7FF)<<9) | ((DCO_SCAK_NOFFSET&0xF)<<2) |(MMD_SDM_DI_LS&0x3) );
+/*MT6173*/
+/*MT6173*/ }
+/*MT6173*/
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6173*/ {
+/*MT6173*/ return 0;
+/*MT6173*/ }
+/*MT6173*/ /* =========================================================================== */
+/*MT6173*/
+#endif
+
+#if IS_RF_TRINITYE1
+/*TRINITYE1*/ //For DLIF mode
+/*TRINITYE1*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*TRINITYE1*/ {
+ #if IS_W_CANCELLATION_SUPPORT
+/*TRINITYE1*/ if( L1D_CheckIfMetaMode() )
+/*TRINITYE1*/ { return l1d_rf.if_state; }
+/*TRINITYE1*/ else
+/*TRINITYE1*/ { return 0; }
+ #else
+/*TRINITYE1*/ return 0;
+ #endif
+/*TRINITYE1*/ }
+/*TRINITYE1*/ /* =========================================================================== */
+/*TRINITYE1*/
+/*TRINITYE1*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, unsigned long *freq_hsb, unsigned long *freq_lsb )
+/*TRINITYE1*/ { unsigned long *if_sel = freq_lsb+1; //This will point to global if_sel
+/*TRINITYE1*/ unsigned short CH_freq =0;
+/*TRINITYE1*/ int64 FLO_scale_freq=0;
+/*TRINITYE1*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*TRINITYE1*/ FLO_scale_freq = (((int64)CH_freq)*SET_FLO_UNIT)<<L1D_FLO_SCALE_NUM; // FLO_scale_freq = FLO * (5*200000)* (2^11) (Hz), (2^11) is scale
+/*TRINITYE1*/ *freq_hsb = (unsigned long)GET_FREQ_HSB(FLO_scale_freq);
+/*TRINITYE1*/ *freq_lsb = (unsigned long)GET_FREQ_LSB(FLO_scale_freq);
+/*TRINITYE1*/
+/*TRINITYE1*/ /* Switch +- DLIF */
+/*TRINITYE1*/ *if_sel = 0;
+/*TRINITYE1*/ l1d_rf.obb_if_sign = -1;
+/*TRINITYE1*/ #if IS_OBB_DETECTION_SUPPORT
+/*TRINITYE1*/ if( !L1D_CheckIfMetaMode() )
+/*TRINITYE1*/ {
+/*TRINITYE1*/ if( l1d_rf.if_change == -1 && arfcn == l1d_rf.obb_arfcn )
+/*TRINITYE1*/ {
+/*TRINITYE1*/ signed short if_sign = l1d_rf.if_change*(*if_sel*2-1);
+/*TRINITYE1*/ *if_sel = if_sign > 0 ? 1 : 0;
+/*TRINITYE1*/ l1d_rf.obb_if_sign = if_sign > 0 ? 1 : -1;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ }
+/*TRINITYE1*/ #endif
+/*TRINITYE1*/ }
+/*TRINITYE1*/ /* =========================================================================== */
+/*TRINITYE1*/
+/*TRINITYE1*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, unsigned long *freq_hsb, unsigned long *freq_lsb )
+/*TRINITYE1*/ {
+/*TRINITYE1*/ unsigned short CH_freq =0;
+/*TRINITYE1*/ int64 FLO_scale_freq=0;
+/*TRINITYE1*/
+/*TRINITYE1*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*TRINITYE1*/ #if IS_MIPI_SUPPORT
+/*TRINITYE1*/ l1d_mipi.tx_arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*TRINITYE1*/ #endif
+/*TRINITYE1*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*TRINITYE1*/ FLO_scale_freq = (((int64)CH_freq)*SET_FLO_UNIT)<<L1D_FLO_SCALE_NUM; // FLO_scale_freq = FLO * (5*200000)* (2^11) (Hz), (2^11) is scale
+/*TRINITYE1*/ *freq_hsb = (unsigned long)GET_FREQ_HSB(FLO_scale_freq);
+/*TRINITYE1*/ *freq_lsb = (unsigned long)GET_FREQ_LSB(FLO_scale_freq);
+/*TRINITYE1*/ }
+/*TRINITYE1*/ /* =========================================================================== */
+/*TRINITYE1*/
+/*TRINITYE1*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*TRINITYE1*/ {
+/*TRINITYE1*/ unsigned short freq=4450+225;
+/*TRINITYE1*/ switch( rf_band )
+/*TRINITYE1*/ {
+/*TRINITYE1*/ case FrequencyBand850 :
+/*TRINITYE1*/ {
+/*TRINITYE1*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*TRINITYE1*/ break;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ case FrequencyBand900 :
+/*TRINITYE1*/ {
+/*TRINITYE1*/ if( arfcn<=124 )
+/*TRINITYE1*/ { freq=4450+arfcn+225; }
+/*TRINITYE1*/ else
+/*TRINITYE1*/ { freq=4450+(arfcn-1024)+225; }
+/*TRINITYE1*/ break;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ case FrequencyBand1800 :
+/*TRINITYE1*/ {
+/*TRINITYE1*/ freq=8551+(arfcn-512)+475;
+/*TRINITYE1*/ break;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ case FrequencyBand1900 :
+/*TRINITYE1*/ {
+/*TRINITYE1*/ freq=9251+(arfcn-512)+400;
+/*TRINITYE1*/ break;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ default :
+/*TRINITYE1*/ {
+/*TRINITYE1*/ break;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ }
+/*TRINITYE1*/
+/*TRINITYE1*/ return freq;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ /* =========================================================================== */
+/*TRINITYE1*/
+/*TRINITYE1*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*TRINITYE1*/ {
+/*TRINITYE1*/ unsigned short freq=4450;
+/*TRINITYE1*/ switch( rf_band )
+/*TRINITYE1*/ {
+/*TRINITYE1*/ case FrequencyBand850 :
+/*TRINITYE1*/ {
+/*TRINITYE1*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*TRINITYE1*/ break;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ case FrequencyBand900 :
+/*TRINITYE1*/ {
+/*TRINITYE1*/ if( arfcn<=124 )
+/*TRINITYE1*/ { freq=4450+arfcn; }
+/*TRINITYE1*/ else
+/*TRINITYE1*/ { freq=4450+(arfcn-1024); }
+/*TRINITYE1*/ break;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ case FrequencyBand1800 :
+/*TRINITYE1*/ {
+/*TRINITYE1*/ freq=8551+(arfcn-512);
+/*TRINITYE1*/ break;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ case FrequencyBand1900 :
+/*TRINITYE1*/ {
+/*TRINITYE1*/ freq=9251+(arfcn-512);
+/*TRINITYE1*/ break;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ default :
+/*TRINITYE1*/ {
+/*TRINITYE1*/ break;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ }
+/*TRINITYE1*/
+/*TRINITYE1*/ return freq;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ /* =========================================================================== */
+/*TRINITYE1*/
+/*TRINITYE1*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*TRINITYE1*/ {
+/*TRINITYE1*/ return 0;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ /* =========================================================================== */
+/*TRINITYE1*/
+/*TRINITYE1*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*TRINITYE1*/ {
+/*TRINITYE1*/
+/*TRINITYE1*/ *rfN = 0;
+/*TRINITYE1*/ *ifN = 0;
+/*TRINITYE1*/ }
+/*TRINITYE1*/
+/*TRINITYE1*/ /* =========================================================================== */
+/*TRINITYE1*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*TRINITYE1*/ {
+/*TRINITYE1*/ return 0;
+/*TRINITYE1*/ }
+/*TRINITYE1*/ /* =========================================================================== */
+/*TRINITYE1*/
+#endif
+
+#if IS_RF_TRINITYL
+/*TRINITYL*/ //For DLIF mode
+/*TRINITYL*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*TRINITYL*/ {
+ #if IS_W_CANCELLATION_SUPPORT
+/*TRINITYL*/ if( L1D_CheckIfMetaMode() )
+/*TRINITYL*/ { return l1d_rf.if_state; }
+/*TRINITYL*/ else
+/*TRINITYL*/ { return 0; }
+ #else
+/*TRINITYL*/ return 0;
+ #endif
+/*TRINITYL*/ }
+/*TRINITYL*/ /* =========================================================================== */
+/*TRINITYL*/
+/*TRINITYL*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, unsigned long *freq_hsb, unsigned long *freq_lsb )
+/*TRINITYL*/ {
+/*TRINITYL*/ unsigned short CH_freq =0;
+/*TRINITYL*/ int64 FLO_scale_freq=0;
+/*TRINITYL*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*TRINITYL*/ FLO_scale_freq = (((int64)CH_freq)*SET_FLO_UNIT)<<L1D_FLO_SCALE_NUM; // FLO_scale_freq = FLO * (5*200000)* (2^11) (Hz), (2^11) is scale
+/*TRINITYL*/ *freq_hsb = (unsigned long)GET_FREQ_HSB(FLO_scale_freq);
+/*TRINITYL*/ *freq_lsb = (unsigned long)GET_FREQ_LSB(FLO_scale_freq);
+/*TRINITYL*/
+/*TRINITYL*/ /* Switch +- DLIF */
+/*TRINITYL*/ l1d_rf.obb_if_sign = -1;
+/*TRINITYL*/ }
+/*TRINITYL*/ /* =========================================================================== */
+/*TRINITYL*/
+/*TRINITYL*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, unsigned long *freq_hsb, unsigned long *freq_lsb )
+/*TRINITYL*/ {
+/*TRINITYL*/ unsigned short CH_freq =0;
+/*TRINITYL*/ int64 FLO_scale_freq=0;
+/*TRINITYL*/
+/*TRINITYL*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*TRINITYL*/ #if IS_MIPI_SUPPORT
+/*TRINITYL*/ l1d_mipi.tx_arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*TRINITYL*/ #endif
+/*TRINITYL*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*TRINITYL*/ FLO_scale_freq = (((int64)CH_freq)*SET_FLO_UNIT)<<L1D_FLO_SCALE_NUM; // FLO_scale_freq = FLO * (5*200000)* (2^11) (Hz), (2^11) is scale
+/*TRINITYL*/ *freq_hsb = (unsigned long)GET_FREQ_HSB(FLO_scale_freq);
+/*TRINITYL*/ *freq_lsb = (unsigned long)GET_FREQ_LSB(FLO_scale_freq);
+/*TRINITYL*/ }
+/*TRINITYL*/ /* =========================================================================== */
+/*TRINITYL*/
+/*TRINITYL*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*TRINITYL*/ {
+/*TRINITYL*/ unsigned short freq=4450+225;
+/*TRINITYL*/ switch( rf_band )
+/*TRINITYL*/ {
+/*TRINITYL*/ case FrequencyBand850 :
+/*TRINITYL*/ {
+/*TRINITYL*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*TRINITYL*/ break;
+/*TRINITYL*/ }
+/*TRINITYL*/ case FrequencyBand900 :
+/*TRINITYL*/ {
+/*TRINITYL*/ if( arfcn<=124 )
+/*TRINITYL*/ { freq=4450+arfcn+225; }
+/*TRINITYL*/ else
+/*TRINITYL*/ { freq=4450+(arfcn-1024)+225; }
+/*TRINITYL*/ break;
+/*TRINITYL*/ }
+/*TRINITYL*/ case FrequencyBand1800 :
+/*TRINITYL*/ {
+/*TRINITYL*/ freq=8551+(arfcn-512)+475;
+/*TRINITYL*/ break;
+/*TRINITYL*/ }
+/*TRINITYL*/ case FrequencyBand1900 :
+/*TRINITYL*/ {
+/*TRINITYL*/ freq=9251+(arfcn-512)+400;
+/*TRINITYL*/ break;
+/*TRINITYL*/ }
+/*TRINITYL*/ default :
+/*TRINITYL*/ {
+/*TRINITYL*/ break;
+/*TRINITYL*/ }
+/*TRINITYL*/ }
+/*TRINITYL*/
+/*TRINITYL*/ return freq;
+/*TRINITYL*/ }
+/*TRINITYL*/ /* =========================================================================== */
+/*TRINITYL*/
+/*TRINITYL*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*TRINITYL*/ {
+/*TRINITYL*/ unsigned short freq=4450;
+/*TRINITYL*/ switch( rf_band )
+/*TRINITYL*/ {
+/*TRINITYL*/ case FrequencyBand850 :
+/*TRINITYL*/ {
+/*TRINITYL*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*TRINITYL*/ break;
+/*TRINITYL*/ }
+/*TRINITYL*/ case FrequencyBand900 :
+/*TRINITYL*/ {
+/*TRINITYL*/ if( arfcn<=124 )
+/*TRINITYL*/ { freq=4450+arfcn; }
+/*TRINITYL*/ else
+/*TRINITYL*/ { freq=4450+(arfcn-1024); }
+/*TRINITYL*/ break;
+/*TRINITYL*/ }
+/*TRINITYL*/ case FrequencyBand1800 :
+/*TRINITYL*/ {
+/*TRINITYL*/ freq=8551+(arfcn-512);
+/*TRINITYL*/ break;
+/*TRINITYL*/ }
+/*TRINITYL*/ case FrequencyBand1900 :
+/*TRINITYL*/ {
+/*TRINITYL*/ freq=9251+(arfcn-512);
+/*TRINITYL*/ break;
+/*TRINITYL*/ }
+/*TRINITYL*/ default :
+/*TRINITYL*/ {
+/*TRINITYL*/ break;
+/*TRINITYL*/ }
+/*TRINITYL*/ }
+/*TRINITYL*/
+/*TRINITYL*/ return freq;
+/*TRINITYL*/ }
+/*TRINITYL*/ /* =========================================================================== */
+/*TRINITYL*/
+/*TRINITYL*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*TRINITYL*/ {
+/*TRINITYL*/ return 0;
+/*TRINITYL*/ }
+/*TRINITYL*/ /* =========================================================================== */
+/*TRINITYL*/
+/*TRINITYL*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*TRINITYL*/ {
+/*TRINITYL*/
+/*TRINITYL*/ *rfN = 0;
+/*TRINITYL*/ *ifN = 0;
+/*TRINITYL*/ }
+/*TRINITYL*/
+/*TRINITYL*/ /* =========================================================================== */
+/*TRINITYL*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*TRINITYL*/ {
+/*TRINITYL*/ return 0;
+/*TRINITYL*/ }
+/*TRINITYL*/ /* =========================================================================== */
+/*TRINITYL*/
+#endif
+
+#if IS_RF_MT6186
+/*MT6186*/ //For DLIF mode
+/*MT6186*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6186*/ {
+ #if IS_W_CANCELLATION_SUPPORT
+/*MT6186*/ if( L1D_CheckIfMetaMode() )
+/*MT6186*/ { return l1d_rf.if_state; }
+/*MT6186*/ else
+/*MT6186*/ { return 0; }
+ #else
+/*MT6186*/ return 0;
+ #endif
+/*MT6186*/ }
+/*MT6186*/ /* =========================================================================== */
+/*MT6186*/
+/*MT6186*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, unsigned long *freq_hsb, unsigned long *freq_lsb )
+/*MT6186*/ {
+/*MT6186*/ unsigned short CH_freq =0;
+/*MT6186*/ int64 FLO_scale_freq=0;
+/*MT6186*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6186*/ FLO_scale_freq = (((int64)CH_freq)*SET_FLO_UNIT)<<L1D_FLO_SCALE_NUM; // FLO_scale_freq = FLO * (5*200000)* (2^11) (Hz), (2^11) is scale
+/*MT6186*/ *freq_hsb = (unsigned long)GET_FREQ_HSB(FLO_scale_freq);
+/*MT6186*/ *freq_lsb = (unsigned long)GET_FREQ_LSB(FLO_scale_freq);
+/*MT6186*/
+/*MT6186*/ /* Switch +- DLIF */
+/*MT6186*/ l1d_rf.obb_if_sign = -1;
+/*MT6186*/ }
+/*MT6186*/ /* =========================================================================== */
+/*MT6186*/
+/*MT6186*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, unsigned long *freq_hsb, unsigned long *freq_lsb )
+/*MT6186*/ {
+/*MT6186*/ unsigned short CH_freq =0;
+/*MT6186*/ int64 FLO_scale_freq=0;
+/*MT6186*/
+/*MT6186*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6186*/ #if IS_MIPI_SUPPORT
+/*MT6186*/ l1d_mipi.tx_arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6186*/ #endif
+/*MT6186*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6186*/ FLO_scale_freq = (((int64)CH_freq)*SET_FLO_UNIT)<<L1D_FLO_SCALE_NUM; // FLO_scale_freq = FLO * (5*200000)* (2^11) (Hz), (2^11) is scale
+/*MT6186*/ *freq_hsb = (unsigned long)GET_FREQ_HSB(FLO_scale_freq);
+/*MT6186*/ *freq_lsb = (unsigned long)GET_FREQ_LSB(FLO_scale_freq);
+/*MT6186*/ }
+/*MT6186*/ /* =========================================================================== */
+/*MT6186*/
+/*MT6186*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6186*/ {
+/*MT6186*/ unsigned short freq=4450+225;
+/*MT6186*/ switch( rf_band )
+/*MT6186*/ {
+/*MT6186*/ case FrequencyBand850 :
+/*MT6186*/ {
+/*MT6186*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6186*/ break;
+/*MT6186*/ }
+/*MT6186*/ case FrequencyBand900 :
+/*MT6186*/ {
+/*MT6186*/ if( arfcn<=124 )
+/*MT6186*/ { freq=4450+arfcn+225; }
+/*MT6186*/ else
+/*MT6186*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6186*/ break;
+/*MT6186*/ }
+/*MT6186*/ case FrequencyBand1800 :
+/*MT6186*/ {
+/*MT6186*/ freq=8551+(arfcn-512)+475;
+/*MT6186*/ break;
+/*MT6186*/ }
+/*MT6186*/ case FrequencyBand1900 :
+/*MT6186*/ {
+/*MT6186*/ freq=9251+(arfcn-512)+400;
+/*MT6186*/ break;
+/*MT6186*/ }
+/*MT6186*/ default :
+/*MT6186*/ {
+/*MT6186*/ break;
+/*MT6186*/ }
+/*MT6186*/ }
+/*MT6186*/
+/*MT6186*/ return freq;
+/*MT6186*/ }
+/*MT6186*/ /* =========================================================================== */
+/*MT6186*/
+/*MT6186*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6186*/ {
+/*MT6186*/ unsigned short freq=4450;
+/*MT6186*/ switch( rf_band )
+/*MT6186*/ {
+/*MT6186*/ case FrequencyBand850 :
+/*MT6186*/ {
+/*MT6186*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6186*/ break;
+/*MT6186*/ }
+/*MT6186*/ case FrequencyBand900 :
+/*MT6186*/ {
+/*MT6186*/ if( arfcn<=124 )
+/*MT6186*/ { freq=4450+arfcn; }
+/*MT6186*/ else
+/*MT6186*/ { freq=4450+(arfcn-1024); }
+/*MT6186*/ break;
+/*MT6186*/ }
+/*MT6186*/ case FrequencyBand1800 :
+/*MT6186*/ {
+/*MT6186*/ freq=8551+(arfcn-512);
+/*MT6186*/ break;
+/*MT6186*/ }
+/*MT6186*/ case FrequencyBand1900 :
+/*MT6186*/ {
+/*MT6186*/ freq=9251+(arfcn-512);
+/*MT6186*/ break;
+/*MT6186*/ }
+/*MT6186*/ default :
+/*MT6186*/ {
+/*MT6186*/ break;
+/*MT6186*/ }
+/*MT6186*/ }
+/*MT6186*/
+/*MT6186*/ return freq;
+/*MT6186*/ }
+/*MT6186*/ /* =========================================================================== */
+/*MT6186*/
+/*MT6186*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6186*/ {
+/*MT6186*/ return 0;
+/*MT6186*/ }
+/*MT6186*/ /* =========================================================================== */
+/*MT6186*/
+/*MT6186*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6186*/ {
+/*MT6186*/
+/*MT6186*/ *rfN = 0;
+/*MT6186*/ *ifN = 0;
+/*MT6186*/ }
+/*MT6186*/
+/*MT6186*/ /* =========================================================================== */
+/*MT6186*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6186*/ {
+/*MT6186*/ return 0;
+/*MT6186*/ }
+/*MT6186*/ /* =========================================================================== */
+/*MT6186*/
+#endif
+
+#if IS_RF_MT6186M
+/*MT6186M*/ //For DLIF mode
+/*MT6186M*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6186M*/ {
+ #if IS_W_CANCELLATION_SUPPORT
+/*MT6186M*/ if( L1D_CheckIfMetaMode() )
+/*MT6186M*/ { return l1d_rf.if_state; }
+/*MT6186M*/ else
+/*MT6186M*/ { return 0; }
+ #else
+/*MT6186M*/ return 0;
+ #endif
+/*MT6186M*/ }
+/*MT6186M*/ /* =========================================================================== */
+/*MT6186M*/
+/*MT6186M*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, unsigned long *freq_hsb, unsigned long *freq_lsb )
+/*MT6186M*/ {
+/*MT6186M*/ unsigned short CH_freq =0;
+/*MT6186M*/ int64 FLO_scale_freq=0;
+/*MT6186M*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6186M*/ FLO_scale_freq = (((int64)CH_freq)*SET_FLO_UNIT)<<L1D_FLO_SCALE_NUM; // FLO_scale_freq = FLO * (5*200000)* (2^11) (Hz), (2^11) is scale
+/*MT6186M*/ *freq_hsb = (unsigned long)GET_FREQ_HSB(FLO_scale_freq);
+/*MT6186M*/ *freq_lsb = (unsigned long)GET_FREQ_LSB(FLO_scale_freq);
+/*MT6186M*/
+/*MT6186M*/ /* Switch +- DLIF */
+/*MT6186M*/ l1d_rf.obb_if_sign = -1;
+/*MT6186M*/ }
+/*MT6186M*/ /* =========================================================================== */
+/*MT6186M*/
+/*MT6186M*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, unsigned long *freq_hsb, unsigned long *freq_lsb )
+/*MT6186M*/ {
+/*MT6186M*/ unsigned short CH_freq =0;
+/*MT6186M*/ int64 FLO_scale_freq=0;
+/*MT6186M*/
+/*MT6186M*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6186M*/ #if IS_MIPI_SUPPORT
+/*MT6186M*/ l1d_mipi.tx_arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6186M*/ #endif
+/*MT6186M*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6186M*/ FLO_scale_freq = (((int64)CH_freq)*SET_FLO_UNIT)<<L1D_FLO_SCALE_NUM; // FLO_scale_freq = FLO * (5*200000)* (2^11) (Hz), (2^11) is scale
+/*MT6186M*/ *freq_hsb = (unsigned long)GET_FREQ_HSB(FLO_scale_freq);
+/*MT6186M*/ *freq_lsb = (unsigned long)GET_FREQ_LSB(FLO_scale_freq);
+/*MT6186M*/ }
+/*MT6186M*/ /* =========================================================================== */
+/*MT6186M*/
+/*MT6186M*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6186M*/ {
+/*MT6186M*/ unsigned short freq=4450+225;
+/*MT6186M*/ switch( rf_band )
+/*MT6186M*/ {
+/*MT6186M*/ case FrequencyBand850 :
+/*MT6186M*/ {
+/*MT6186M*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6186M*/ break;
+/*MT6186M*/ }
+/*MT6186M*/ case FrequencyBand900 :
+/*MT6186M*/ {
+/*MT6186M*/ if( arfcn<=124 )
+/*MT6186M*/ { freq=4450+arfcn+225; }
+/*MT6186M*/ else
+/*MT6186M*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6186M*/ break;
+/*MT6186M*/ }
+/*MT6186M*/ case FrequencyBand1800 :
+/*MT6186M*/ {
+/*MT6186M*/ freq=8551+(arfcn-512)+475;
+/*MT6186M*/ break;
+/*MT6186M*/ }
+/*MT6186M*/ case FrequencyBand1900 :
+/*MT6186M*/ {
+/*MT6186M*/ freq=9251+(arfcn-512)+400;
+/*MT6186M*/ break;
+/*MT6186M*/ }
+/*MT6186M*/ default :
+/*MT6186M*/ {
+/*MT6186M*/ break;
+/*MT6186M*/ }
+/*MT6186M*/ }
+/*MT6186M*/
+/*MT6186M*/ return freq;
+/*MT6186M*/ }
+/*MT6186M*/ /* =========================================================================== */
+/*MT6186M*/
+/*MT6186M*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6186M*/ {
+/*MT6186M*/ unsigned short freq=4450;
+/*MT6186M*/ switch( rf_band )
+/*MT6186M*/ {
+/*MT6186M*/ case FrequencyBand850 :
+/*MT6186M*/ {
+/*MT6186M*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6186M*/ break;
+/*MT6186M*/ }
+/*MT6186M*/ case FrequencyBand900 :
+/*MT6186M*/ {
+/*MT6186M*/ if( arfcn<=124 )
+/*MT6186M*/ { freq=4450+arfcn; }
+/*MT6186M*/ else
+/*MT6186M*/ { freq=4450+(arfcn-1024); }
+/*MT6186M*/ break;
+/*MT6186M*/ }
+/*MT6186M*/ case FrequencyBand1800 :
+/*MT6186M*/ {
+/*MT6186M*/ freq=8551+(arfcn-512);
+/*MT6186M*/ break;
+/*MT6186M*/ }
+/*MT6186M*/ case FrequencyBand1900 :
+/*MT6186M*/ {
+/*MT6186M*/ freq=9251+(arfcn-512);
+/*MT6186M*/ break;
+/*MT6186M*/ }
+/*MT6186M*/ default :
+/*MT6186M*/ {
+/*MT6186M*/ break;
+/*MT6186M*/ }
+/*MT6186M*/ }
+/*MT6186M*/
+/*MT6186M*/ return freq;
+/*MT6186M*/ }
+/*MT6186M*/ /* =========================================================================== */
+/*MT6186M*/
+/*MT6186M*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6186M*/ {
+/*MT6186M*/ return 0;
+/*MT6186M*/ }
+/*MT6186M*/ /* =========================================================================== */
+/*MT6186M*/
+/*MT6186M*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6186M*/ {
+/*MT6186M*/
+/*MT6186M*/ *rfN = 0;
+/*MT6186M*/ *ifN = 0;
+/*MT6186M*/ }
+/*MT6186M*/
+/*MT6186M*/ /* =========================================================================== */
+/*MT6186M*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6186M*/ {
+/*MT6186M*/ return 0;
+/*MT6186M*/ }
+/*MT6186M*/ /* =========================================================================== */
+/*MT6186M*/
+#endif
+
+#if IS_RF_MT6190T
+/*MT6190T*/ //For DLIF mode
+/*MT6190T*/ char L1D_RF_Cal_IF_Synth_State( void )
+/*MT6190T*/ {
+/*MT6190T*/ #if IS_W_CANCELLATION_SUPPORT
+/*MT6190T*/ if( L1D_CheckIfMetaMode() )
+/*MT6190T*/ { return l1d_rf.if_state; }
+/*MT6190T*/ else
+/*MT6190T*/ { return 0; }
+/*MT6190T*/ #else
+/*MT6190T*/ return 0;
+/*MT6190T*/ #endif
+/*MT6190T*/ }
+/*MT6190T*/ /* =========================================================================== */
+/*MT6190T*/
+/*MT6190T*/ void L1D_RF_GetRxPLLSetting( int rf_band, int arfcn, unsigned long *freq_hsb, unsigned long *freq_lsb )
+/*MT6190T*/ {
+/*MT6190T*/ unsigned short CH_freq =0;
+/*MT6190T*/ int64 FLO_scale_freq=0;
+/*MT6190T*/ CH_freq = L1D_RF_ARFCN_CH_to_RxFreq( rf_band, arfcn );
+/*MT6190T*/ FLO_scale_freq = (((int64)CH_freq)*SET_FLO_UNIT)<<L1D_FLO_SCALE_NUM; // FLO_scale_freq = FLO * (5*200000)* (2^11) (Hz), (2^11) is scale
+/*MT6190T*/ *freq_hsb = (unsigned long)GET_FREQ_HSB(FLO_scale_freq);
+/*MT6190T*/ *freq_lsb = (unsigned long)GET_FREQ_LSB(FLO_scale_freq);
+/*MT6190T*/
+/*MT6190T*/ /* Switch +- DLIF */
+/*MT6190T*/ l1d_rf.obb_if_sign = -1;
+/*MT6190T*/ }
+/*MT6190T*/ /* =========================================================================== */
+/*MT6190T*/
+/*MT6190T*/ void L1D_RF_GetTxPLLSetting( int rf_band, int arfcn, unsigned long *freq_hsb, unsigned long *freq_lsb )
+/*MT6190T*/ {
+/*MT6190T*/ unsigned short CH_freq =0;
+/*MT6190T*/ int64 FLO_scale_freq=0;
+/*MT6190T*/
+/*MT6190T*/ l1d_rf2.arfcn = arfcn; //for L1D_RF_TxGainSetting
+/*MT6190T*/ CH_freq = L1D_RF_ARFCN_CH_to_TxFreq( rf_band, arfcn );
+/*MT6190T*/ FLO_scale_freq = (((int64)CH_freq)*SET_FLO_UNIT)<<L1D_FLO_SCALE_NUM; // FLO_scale_freq = FLO * (5*200000)* (2^11) (Hz), (2^11) is scale
+/*MT6190T*/ *freq_hsb = (unsigned long)GET_FREQ_HSB(FLO_scale_freq);
+/*MT6190T*/ *freq_lsb = (unsigned long)GET_FREQ_LSB(FLO_scale_freq);
+/*MT6190T*/ }
+/*MT6190T*/ /* =========================================================================== */
+/*MT6190T*/
+/*MT6190T*/ unsigned short L1D_RF_ARFCN_CH_to_RxFreq( int rf_band, int arfcn )
+/*MT6190T*/ {
+/*MT6190T*/ unsigned short freq=4450+225;
+/*MT6190T*/ switch( rf_band )
+/*MT6190T*/ {
+/*MT6190T*/ case FrequencyBand850 :
+/*MT6190T*/ {
+/*MT6190T*/ freq=4121+(arfcn-128)+225; //freq = f_ch*SYNTH_SCALE
+/*MT6190T*/ break;
+/*MT6190T*/ }
+/*MT6190T*/ case FrequencyBand900 :
+/*MT6190T*/ {
+/*MT6190T*/ if( arfcn<=124 )
+/*MT6190T*/ { freq=4450+arfcn+225; }
+/*MT6190T*/ else
+/*MT6190T*/ { freq=4450+(arfcn-1024)+225; }
+/*MT6190T*/ break;
+/*MT6190T*/ }
+/*MT6190T*/ case FrequencyBand1800 :
+/*MT6190T*/ {
+/*MT6190T*/ freq=8551+(arfcn-512)+475;
+/*MT6190T*/ break;
+/*MT6190T*/ }
+/*MT6190T*/ case FrequencyBand1900 :
+/*MT6190T*/ {
+/*MT6190T*/ freq=9251+(arfcn-512)+400;
+/*MT6190T*/ break;
+/*MT6190T*/ }
+/*MT6190T*/ default :
+/*MT6190T*/ {
+/*MT6190T*/ break;
+/*MT6190T*/ }
+/*MT6190T*/ }
+/*MT6190T*/
+/*MT6190T*/ return freq;
+/*MT6190T*/ }
+/*MT6190T*/ /* =========================================================================== */
+/*MT6190T*/
+/*MT6190T*/ unsigned short L1D_RF_ARFCN_CH_to_TxFreq( int rf_band, int arfcn )
+/*MT6190T*/ {
+/*MT6190T*/ unsigned short freq=4450;
+/*MT6190T*/ switch( rf_band )
+/*MT6190T*/ {
+/*MT6190T*/ case FrequencyBand850 :
+/*MT6190T*/ {
+/*MT6190T*/ freq=4121+(arfcn-128); //freq = f_ch*SYNTH_SCALE
+/*MT6190T*/ break;
+/*MT6190T*/ }
+/*MT6190T*/ case FrequencyBand900 :
+/*MT6190T*/ {
+/*MT6190T*/ if( arfcn<=124 )
+/*MT6190T*/ { freq=4450+arfcn; }
+/*MT6190T*/ else
+/*MT6190T*/ { freq=4450+(arfcn-1024); }
+/*MT6190T*/ break;
+/*MT6190T*/ }
+/*MT6190T*/ case FrequencyBand1800 :
+/*MT6190T*/ {
+/*MT6190T*/ freq=8551+(arfcn-512);
+/*MT6190T*/ break;
+/*MT6190T*/ }
+/*MT6190T*/ case FrequencyBand1900 :
+/*MT6190T*/ {
+/*MT6190T*/ freq=9251+(arfcn-512);
+/*MT6190T*/ break;
+/*MT6190T*/ }
+/*MT6190T*/ default :
+/*MT6190T*/ {
+/*MT6190T*/ break;
+/*MT6190T*/ }
+/*MT6190T*/ }
+/*MT6190T*/
+/*MT6190T*/ return freq;
+/*MT6190T*/ }
+/*MT6190T*/ /* =========================================================================== */
+/*MT6190T*/
+/*MT6190T*/ unsigned short L1D_RF_GetTxDCOSCACodeTypeSetting(unsigned short Nint, unsigned long Nfrac)
+/*MT6190T*/ {
+/*MT6190T*/ return 0;
+/*MT6190T*/ }
+/*MT6190T*/ /* =========================================================================== */
+/*MT6190T*/
+/*MT6190T*/ void L1D_RF_GetTxKDCOCAL2ndSetting(int rf_band, int arfcn, long *rfN, long *ifN )
+/*MT6190T*/ {
+/*MT6190T*/
+/*MT6190T*/ *rfN = 0;
+/*MT6190T*/ *ifN = 0;
+/*MT6190T*/ }
+/*MT6190T*/
+/*MT6190T*/ /* =========================================================================== */
+/*MT6190T*/ unsigned short L1D_RF_GetTxDEMChunkSetting(int rf_band, unsigned short Nint)
+/*MT6190T*/ {
+/*MT6190T*/ return 0;
+/*MT6190T*/ }
+/*MT6190T*/ /* =========================================================================== */
+/*MT6190T*/
+#endif
+
+
+
+
+