view L1/cust1/l1_rf61.c @ 33:6a2b09d3b1b4

disable L1_DYN_DSP_DWNLD and AMR by default
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 15 Oct 2016 04:23:58 +0000
parents 75a11d740a02
children
line wrap: on
line source

/************* Revision Controle System Header *************
 *                  GSM Layer 1 software
 *
 *        Filename l1_rf61.c
 *        Version  1.0
 *        Date     June 12th, 2005
 *
 ************* Revision Controle System Header *************/

T_RF rf =
{
  RF_LOCOSTO,          //RF revision
  RF_HW_BAND_SUPPORT,   // radio_band_support E-GSM/DCS + PCS

  { //RX structure
    { //AGC structure
      140,  // low_agc_noise_thr;
      110,  // high_agc_sat_thr;
        0,  // low_agc;
       23,  // high_agc;
      //IL2AGC tables
      {  // below is: il2agc_pwr[121];
          //           il2agc_max[121];
          //           il2agc_av[121];
          // il2agc_pwr
          // Note this is shared between PCN and EGSM.
          0,          /*  EGSM_MAX  IL=0 */
          0,          /*  EGSM_MAX  IL=-1 */
          0,          /*  EGSM_MAX  IL=-2 */
          0,          /*  EGSM_MAX  IL=-3 */
          0,          /*  EGSM_MAX  IL=-4 */
          0,          /*  EGSM_MAX  IL=-5 */
          0,          /*  EGSM_MAX  IL=-6 */
          0,          /*  EGSM_MAX  IL=-7 */
          0,          /*  EGSM_MAX  IL=-8 */
          0,          /*  EGSM_MAX  IL=-9 */
          0,          /*  EGSM_MAX  IL=-10 */
          0,          /*  EGSM_MAX  IL=-11 */
          0,          /*  EGSM_MAX  IL=-12 */
          0,          /*  EGSM_MAX  IL=-13 */
          0,          /*  EGSM_MAX  IL=-14 */
          0,          /*  EGSM_MAX  IL=-15 */
          0,          /*  EGSM_MAX  IL=-16 */
          0,          /*  EGSM_MAX  IL=-17 */
          0,          /*  EGSM_MAX  IL=-18 */
          0,          /*  EGSM_MAX  IL=-19 */
          0,          /*  EGSM_MAX  IL=-20 */
          0,          /*  EGSM_MAX  IL=-21 */
          0,          /*  EGSM_MAX  IL=-22 */
          0,          /*  EGSM_MAX  IL=-23 */
          0,          /*  EGSM_MAX  IL=-24 */
          0,          /*  EGSM_MAX  IL=-25 */
          0,          /*  EGSM_MAX  IL=-26 */
          0,          /*  EGSM_MAX  IL=-27 */
          0,          /*  EGSM_MAX  IL=-28 */
          0,          /*  EGSM_MAX  IL=-29 */
          0,          /*  EGSM_MAX  IL=-30 */
          0,          /*  EGSM_MAX  IL=-31 */
          0,          /*  EGSM_MAX  IL=-32 */
          0,          /*  EGSM_MAX  IL=-33 */
          0,          /*  EGSM_MAX  IL=-34 */
          0,          /*  EGSM_MAX  IL=-35 */
          0,          /*  EGSM_MAX  IL=-36 */
          0,          /*  EGSM_MAX  IL=-37 */
          0,          /*  EGSM_MAX  IL=-38 */
          0,          /*  EGSM_MAX  IL=-39 */
          0,          /*  EGSM_MAX  IL=-40 */
          0,          /*  EGSM_MAX  IL=-41 */
          0,          /*  EGSM_MAX  IL=-42 */
          5,          /*  EGSM_MAX  IL=-43 */
          5,          /*  EGSM_MAX  IL=-44 */
          0,          /*  EGSM_MAX  IL=-45 */
          0,          /*  EGSM_MAX  IL=-46 */
          0,          /*  EGSM_MAX  IL=-47 */
          0,          /*  EGSM_MAX  IL=-48 */
          0,          /*  EGSM_MAX  IL=-49 */
          0,          /*  EGSM_MAX  IL=-50 */
          0,          /*  EGSM_MAX  IL=-51 */
          0,          /*  EGSM_MAX  IL=-52 */
          0,          /*  EGSM_MAX  IL=-53 */
          0,          /*  EGSM_MAX  IL=-54 */
          0,          /*  EGSM_MAX  IL=-55 */
          0,          /*  EGSM_MAX  IL=-56 */
          0,          /*  EGSM_MAX  IL=-57 */
          0,          /*  EGSM_MAX  IL=-58 */
          0,          /*  EGSM_MAX  IL=-59 */
          0,          /*  EGSM_MAX  IL=-60 */
          0,          /*  EGSM_MAX  IL=-61 */
          0,          /*  EGSM_MAX  IL=-62 */
          0,          /*  EGSM_MAX  IL=-63 */
          0,          /*  EGSM_MAX  IL=-64 */
          0,          /*  EGSM_MAX  IL=-65 */
          0,          /*  EGSM_MAX  IL=-66 */
          0,          /*  EGSM_MAX  IL=-67 */
          0,          /*  EGSM_MAX  IL=-68 */
          0,          /*  EGSM_MAX  IL=-69 */
          0,          /*  EGSM_MAX  IL=-70 */
          0,          /*  EGSM_MAX  IL=-71 */
          0,          /*  EGSM_MAX  IL=-72 */
          0,          /*  EGSM_MAX  IL=-73 */
          0,          /*  EGSM_MAX  IL=-74 */
          5,          /*  EGSM_MAX  IL=-75 */
          5,          /*  EGSM_MAX  IL=-76 */
          8,          /*  EGSM_MAX  IL=-77 */
          8,          /*  EGSM_MAX  IL=-78 */
          11,          /*  EGSM_MAX  IL=-79 */
          11,          /*  EGSM_MAX  IL=-80 */
          11,          /*  EGSM_MAX  IL=-81 */
          11,          /*  EGSM_MAX  IL=-82 */
          11,          /*  EGSM_MAX  IL=-83 */
          11,          /*  EGSM_MAX  IL=-84 */
          14,          /*  EGSM_MAX  IL=-85 */
          14,          /*  EGSM_MAX  IL=-86 */
          14,          /*  EGSM_MAX  IL=-87 */
          14,          /*  EGSM_MAX  IL=-88 */
          14,          /*  EGSM_MAX  IL=-89 */
          14,          /*  EGSM_MAX  IL=-90 */
          14,          /*  EGSM_MAX  IL=-91 */
          14,          /*  EGSM_MAX  IL=-92 */
          14,          /*  EGSM_MAX  IL=-93 */
          14,          /*  EGSM_MAX  IL=-94 */
          17,          /*  EGSM_MAX  IL=-95 */
          17,          /*  EGSM_MAX  IL=-96 */
          20,          /*  EGSM_MAX  IL=-97 */
          20,          /*  EGSM_MAX  IL=-98 */
          20,          /*  EGSM_MAX  IL=-99 */
          20,          /*  EGSM_MAX  IL=-100 */
          23,          /*  EGSM_MAX  IL=-101 */
          23,          /*  EGSM_MAX  IL=-102 */
          23,          /*  EGSM_MAX  IL=-103 */
          23,          /*  EGSM_MAX  IL=-104 */
          23,          /*  EGSM_MAX  IL=-105 */
          23,          /*  EGSM_MAX  IL=-106 */
          23,          /*  EGSM_MAX  IL=-107 */
          23,          /*  EGSM_MAX  IL=-108 */
          23,          /*  EGSM_MAX  IL=-109 */
          23,          /*  EGSM_MAX  IL=-110 */
          23,          /*  EGSM_MAX  IL=-111 */
          23,          /*  EGSM_MAX  IL=-112 */
          23,          /*  EGSM_MAX  IL=-113 */
          23,          /*  EGSM_MAX  IL=-114 */
          23,          /*  EGSM_MAX  IL=-115 */
          23,          /*  EGSM_MAX  IL=-116 */
          23,          /*  EGSM_MAX  IL=-117 */
          23,          /*  EGSM_MAX  IL=-118 */
          23,          /*  EGSM_MAX  IL=-119 */
          23           /*  EGSM_MAX  IL=-120 */
      },
      { // il2agc_max
          // Note this is shared between PCN and EGSM.
          0,          /*  EGSM_MAX  IL=0 */
          0,          /*  EGSM_MAX  IL=-1 */
          0,          /*  EGSM_MAX  IL=-2 */
          0,          /*  EGSM_MAX  IL=-3 */
          0,          /*  EGSM_MAX  IL=-4 */
          0,          /*  EGSM_MAX  IL=-5 */
          0,          /*  EGSM_MAX  IL=-6 */
          0,          /*  EGSM_MAX  IL=-7 */
          0,          /*  EGSM_MAX  IL=-8 */
          0,          /*  EGSM_MAX  IL=-9 */
          0,          /*  EGSM_MAX  IL=-10 */
          0,          /*  EGSM_MAX  IL=-11 */
          0,          /*  EGSM_MAX  IL=-12 */
          0,          /*  EGSM_MAX  IL=-13 */
          0,          /*  EGSM_MAX  IL=-14 */
          0,          /*  EGSM_MAX  IL=-15 */
          0,          /*  EGSM_MAX  IL=-16 */
          0,          /*  EGSM_MAX  IL=-17 */
          0,          /*  EGSM_MAX  IL=-18 */
          0,          /*  EGSM_MAX  IL=-19 */
          0,          /*  EGSM_MAX  IL=-20 */
          0,          /*  EGSM_MAX  IL=-21 */
          0,          /*  EGSM_MAX  IL=-22 */
          0,          /*  EGSM_MAX  IL=-23 */
          0,          /*  EGSM_MAX  IL=-24 */
          0,          /*  EGSM_MAX  IL=-25 */
          0,          /*  EGSM_MAX  IL=-26 */
          0,          /*  EGSM_MAX  IL=-27 */
          0,          /*  EGSM_MAX  IL=-28 */
          0,          /*  EGSM_MAX  IL=-29 */
          0,          /*  EGSM_MAX  IL=-30 */
          0,          /*  EGSM_MAX  IL=-31 */
          0,          /*  EGSM_MAX  IL=-32 */
          0,          /*  EGSM_MAX  IL=-33 */
          0,          /*  EGSM_MAX  IL=-34 */
          0,          /*  EGSM_MAX  IL=-35 */
          0,          /*  EGSM_MAX  IL=-36 */
          0,          /*  EGSM_MAX  IL=-37 */
          0,          /*  EGSM_MAX  IL=-38 */
          0,          /*  EGSM_MAX  IL=-39 */
          0,          /*  EGSM_MAX  IL=-40 */
          0,          /*  EGSM_MAX  IL=-41 */
          0,          /*  EGSM_MAX  IL=-42 */
          5,          /*  EGSM_MAX  IL=-43 */
          5,          /*  EGSM_MAX  IL=-44 */
          0,          /*  EGSM_MAX  IL=-45 */
          0,          /*  EGSM_MAX  IL=-46 */
          0,          /*  EGSM_MAX  IL=-47 */
          0,          /*  EGSM_MAX  IL=-48 */
          0,          /*  EGSM_MAX  IL=-49 */
          0,          /*  EGSM_MAX  IL=-50 */
          0,          /*  EGSM_MAX  IL=-51 */
          0,          /*  EGSM_MAX  IL=-52 */
          0,          /*  EGSM_MAX  IL=-53 */
          0,          /*  EGSM_MAX  IL=-54 */
          0,          /*  EGSM_MAX  IL=-55 */
          0,          /*  EGSM_MAX  IL=-56 */
          0,          /*  EGSM_MAX  IL=-57 */
          0,          /*  EGSM_MAX  IL=-58 */
          0,          /*  EGSM_MAX  IL=-59 */
          0,          /*  EGSM_MAX  IL=-60 */
          0,          /*  EGSM_MAX  IL=-61 */
          0,          /*  EGSM_MAX  IL=-62 */
          0,          /*  EGSM_MAX  IL=-63 */
          0,          /*  EGSM_MAX  IL=-64 */
          0,          /*  EGSM_MAX  IL=-65 */
          0,          /*  EGSM_MAX  IL=-66 */
          0,          /*  EGSM_MAX  IL=-67 */
          0,          /*  EGSM_MAX  IL=-68 */
          0,          /*  EGSM_MAX  IL=-69 */
          0,          /*  EGSM_MAX  IL=-70 */
          0,          /*  EGSM_MAX  IL=-71 */
          0,          /*  EGSM_MAX  IL=-72 */
          0,          /*  EGSM_MAX  IL=-73 */
          0,          /*  EGSM_MAX  IL=-74 */
          5,          /*  EGSM_MAX  IL=-75 */
          5,          /*  EGSM_MAX  IL=-76 */
          8,          /*  EGSM_MAX  IL=-77 */
          8,          /*  EGSM_MAX  IL=-78 */
          11,          /*  EGSM_MAX  IL=-79 */
          11,          /*  EGSM_MAX  IL=-80 */
          11,          /*  EGSM_MAX  IL=-81 */
          11,          /*  EGSM_MAX  IL=-82 */
          11,          /*  EGSM_MAX  IL=-83 */
          11,          /*  EGSM_MAX  IL=-84 */
          14,          /*  EGSM_MAX  IL=-85 */
          14,          /*  EGSM_MAX  IL=-86 */
          14,          /*  EGSM_MAX  IL=-87 */
          14,          /*  EGSM_MAX  IL=-88 */
          14,          /*  EGSM_MAX  IL=-89 */
          14,          /*  EGSM_MAX  IL=-90 */
          14,          /*  EGSM_MAX  IL=-91 */
          14,          /*  EGSM_MAX  IL=-92 */
          14,          /*  EGSM_MAX  IL=-93 */
          14,          /*  EGSM_MAX  IL=-94 */
          17,          /*  EGSM_MAX  IL=-95 */
          17,          /*  EGSM_MAX  IL=-96 */
          20,          /*  EGSM_MAX  IL=-97 */
          20,          /*  EGSM_MAX  IL=-98 */
          20,          /*  EGSM_MAX  IL=-99 */
          20,          /*  EGSM_MAX  IL=-100 */
          23,          /*  EGSM_MAX  IL=-101 */
          23,          /*  EGSM_MAX  IL=-102 */
          23,          /*  EGSM_MAX  IL=-103 */
          23,          /*  EGSM_MAX  IL=-104 */
          23,          /*  EGSM_MAX  IL=-105 */
          23,          /*  EGSM_MAX  IL=-106 */
          23,          /*  EGSM_MAX  IL=-107 */
          23,          /*  EGSM_MAX  IL=-108 */
          23,          /*  EGSM_MAX  IL=-109 */
          23,          /*  EGSM_MAX  IL=-110 */
          23,          /*  EGSM_MAX  IL=-111 */
          23,          /*  EGSM_MAX  IL=-112 */
          23,          /*  EGSM_MAX  IL=-113 */
          23,          /*  EGSM_MAX  IL=-114 */
          23,          /*  EGSM_MAX  IL=-115 */
          23,          /*  EGSM_MAX  IL=-116 */
          23,          /*  EGSM_MAX  IL=-117 */
          23,          /*  EGSM_MAX  IL=-118 */
          23,          /*  EGSM_MAX  IL=-119 */
          23           /*  EGSM_MAX  IL=-120 */
        },
        { // il2agc_av
          // Note this is shared between PCN and EGSM.
          0,          /*  EGSM_MAX  IL=0 */
          0,          /*  EGSM_MAX  IL=-1 */
          0,          /*  EGSM_MAX  IL=-2 */
          0,          /*  EGSM_MAX  IL=-3 */
          0,          /*  EGSM_MAX  IL=-4 */
          0,          /*  EGSM_MAX  IL=-5 */
          0,          /*  EGSM_MAX  IL=-6 */
          0,          /*  EGSM_MAX  IL=-7 */
          0,          /*  EGSM_MAX  IL=-8 */
          0,          /*  EGSM_MAX  IL=-9 */
          0,          /*  EGSM_MAX  IL=-10 */
          0,          /*  EGSM_MAX  IL=-11 */
          0,          /*  EGSM_MAX  IL=-12 */
          0,          /*  EGSM_MAX  IL=-13 */
          0,          /*  EGSM_MAX  IL=-14 */
          0,          /*  EGSM_MAX  IL=-15 */
          0,          /*  EGSM_MAX  IL=-16 */
          0,          /*  EGSM_MAX  IL=-17 */
          0,          /*  EGSM_MAX  IL=-18 */
          0,          /*  EGSM_MAX  IL=-19 */
          0,          /*  EGSM_MAX  IL=-20 */
          0,          /*  EGSM_MAX  IL=-21 */
          0,          /*  EGSM_MAX  IL=-22 */
          0,          /*  EGSM_MAX  IL=-23 */
          0,          /*  EGSM_MAX  IL=-24 */
          0,          /*  EGSM_MAX  IL=-25 */
          0,          /*  EGSM_MAX  IL=-26 */
          0,          /*  EGSM_MAX  IL=-27 */
          0,          /*  EGSM_MAX  IL=-28 */
          0,          /*  EGSM_MAX  IL=-29 */
          0,          /*  EGSM_MAX  IL=-30 */
          0,          /*  EGSM_MAX  IL=-31 */
          0,          /*  EGSM_MAX  IL=-32 */
          0,          /*  EGSM_MAX  IL=-33 */
          0,          /*  EGSM_MAX  IL=-34 */
          0,          /*  EGSM_MAX  IL=-35 */
          0,          /*  EGSM_MAX  IL=-36 */
          0,          /*  EGSM_MAX  IL=-37 */
          0,          /*  EGSM_MAX  IL=-38 */
          0,          /*  EGSM_MAX  IL=-39 */
          0,          /*  EGSM_MAX  IL=-40 */
          0,          /*  EGSM_MAX  IL=-41 */
          0,          /*  EGSM_MAX  IL=-42 */
          5,          /*  EGSM_MAX  IL=-43 */
          5,          /*  EGSM_MAX  IL=-44 */
          0,          /*  EGSM_MAX  IL=-45 */
          0,          /*  EGSM_MAX  IL=-46 */
          0,          /*  EGSM_MAX  IL=-47 */
          0,          /*  EGSM_MAX  IL=-48 */
          0,          /*  EGSM_MAX  IL=-49 */
          0,          /*  EGSM_MAX  IL=-50 */
          0,          /*  EGSM_MAX  IL=-51 */
          0,          /*  EGSM_MAX  IL=-52 */
          0,          /*  EGSM_MAX  IL=-53 */
          0,          /*  EGSM_MAX  IL=-54 */
          0,          /*  EGSM_MAX  IL=-55 */
          0,          /*  EGSM_MAX  IL=-56 */
          0,          /*  EGSM_MAX  IL=-57 */
          0,          /*  EGSM_MAX  IL=-58 */
          0,          /*  EGSM_MAX  IL=-59 */
          0,          /*  EGSM_MAX  IL=-60 */
          0,          /*  EGSM_MAX  IL=-61 */
          0,          /*  EGSM_MAX  IL=-62 */
          0,          /*  EGSM_MAX  IL=-63 */
          0,          /*  EGSM_MAX  IL=-64 */
          0,          /*  EGSM_MAX  IL=-65 */
          0,          /*  EGSM_MAX  IL=-66 */
          0,          /*  EGSM_MAX  IL=-67 */
          0,          /*  EGSM_MAX  IL=-68 */
          0,          /*  EGSM_MAX  IL=-69 */
          0,          /*  EGSM_MAX  IL=-70 */
          0,          /*  EGSM_MAX  IL=-71 */
          0,          /*  EGSM_MAX  IL=-72 */
          0,          /*  EGSM_MAX  IL=-73 */
          0,          /*  EGSM_MAX  IL=-74 */
          5,          /*  EGSM_MAX  IL=-75 */
          5,          /*  EGSM_MAX  IL=-76 */
          8,          /*  EGSM_MAX  IL=-77 */
          8,          /*  EGSM_MAX  IL=-78 */
          11,          /*  EGSM_MAX  IL=-79 */
          11,          /*  EGSM_MAX  IL=-80 */
          11,          /*  EGSM_MAX  IL=-81 */
          11,          /*  EGSM_MAX  IL=-82 */
          11,          /*  EGSM_MAX  IL=-83 */
          11,          /*  EGSM_MAX  IL=-84 */
          14,          /*  EGSM_MAX  IL=-85 */
          14,          /*  EGSM_MAX  IL=-86 */
          14,          /*  EGSM_MAX  IL=-87 */
          14,          /*  EGSM_MAX  IL=-88 */
          14,          /*  EGSM_MAX  IL=-89 */
          14,          /*  EGSM_MAX  IL=-90 */
          14,          /*  EGSM_MAX  IL=-91 */
          14,          /*  EGSM_MAX  IL=-92 */
          14,          /*  EGSM_MAX  IL=-93 */
          14,          /*  EGSM_MAX  IL=-94 */
          17,          /*  EGSM_MAX  IL=-95 */
          17,          /*  EGSM_MAX  IL=-96 */
          20,          /*  EGSM_MAX  IL=-97 */
          20,          /*  EGSM_MAX  IL=-98 */
          20,          /*  EGSM_MAX  IL=-99 */
          20,          /*  EGSM_MAX  IL=-100 */
          23,          /*  EGSM_MAX  IL=-101 */
          23,          /*  EGSM_MAX  IL=-102 */
          23,          /*  EGSM_MAX  IL=-103 */
          23,          /*  EGSM_MAX  IL=-104 */
          23,          /*  EGSM_MAX  IL=-105 */
          23,          /*  EGSM_MAX  IL=-106 */
          23,          /*  EGSM_MAX  IL=-107 */
          23,          /*  EGSM_MAX  IL=-108 */
          23,          /*  EGSM_MAX  IL=-109 */
          23,          /*  EGSM_MAX  IL=-110 */
          23,          /*  EGSM_MAX  IL=-111 */
          23,          /*  EGSM_MAX  IL=-112 */
          23,          /*  EGSM_MAX  IL=-113 */
          23,          /*  EGSM_MAX  IL=-114 */
          23,          /*  EGSM_MAX  IL=-115 */
          23,          /*  EGSM_MAX  IL=-116 */
          23,          /*  EGSM_MAX  IL=-117 */
          23,          /*  EGSM_MAX  IL=-118 */
          23,          /*  EGSM_MAX  IL=-119 */
          23           /*  EGSM_MAX  IL=-120 */
      }
    },
  },
  {
    {0, 0},     // ramp up and down delays
    GUARD_BITS, // number of guard bits needed for ramp up
    PRG_TX      // propagation delay PRG_TX
  },
  { //AFC parameters
    EEPROM_AFC,
    C_Psi_sta_inv,     // (1/C_Psi_sta)
    C_Psi_st,          // C_Psi_sta * 0.8 F0.16
    C_Psi_st_32,       // F0.32
    C_Psi_st_inv       // (1/C_Psi_st)

#if (VCXO_ALGO==1)
     ,C_AFC_DAC_CENTER,      // VCXO startup parameter - best guess
      C_AFC_DAC_MIN,         // VCXO startup parameter - 15ppm
      C_AFC_DAC_MAX,         // VCXO startup parameter + 15ppm
      C_AFC_SNR_THR         // snr - Default threshold value
#endif
  }
};

#if (L1_FF_MULTIBAND == 0)
    T_RF_BAND rf_band[GSM_BANDS]; //uninitialised rf struct for bands
#else
    T_RF_BAND rf_band[RF_NB_SUPPORTED_BANDS];
#endif


const T_RF_BAND rf_900 =
{
  { //RX structure
     //T_RX_CAL_PARAMS rx_cal_params
    {
        229,      //g_magic
         54,      //lna_gain_max * 2
         40,      //lna_th_high
         44       //lna_th_low
    },
    { //T_RF_AGC_BAND   agc_bands[RF_RX_CAL_CHAN_SIZE];
     // Remark: ARFCN=0 (GSM-E) is maintained by 1st GSM subbband.
                     // upper_bound, agc_calib
      {  10,  0},    // sub-band1 up to arfcn =  10, Agc calibration = 0db
      {  30,  0},    // sub-band2 up to arfcn =  30, Agc calibration = 0db
      {  51,  0},    // sub-band3 up to arfcn =  51, Agc calibration = 0db
      {  71,  0},    // etc.
      {  90,  0},    //
      { 112,  0},    //
      { 124,  0},    //
      { 991,  0},    //
      { 992,  0},    //
      {1023,  0},    //
    },
    { //RX temperature compensation
      { -15 ,  0  },
      {  -5 ,  0  },
      {   6 ,  0  },
      {  16 ,  0  },
      {  25 ,  0  },
      {  35 ,  0  },
      {  45 ,  0  },
      {  56 ,  0  },
      {  66 ,  0  },
      {  75 ,  0  },
      { 100 ,  0  }
    }
  },
  { //TX structure
    {// gsm900 T_LEVEL_TX
      {457,  0, 0}, // 0
      {457,  0, 0}, // 1
      {457,  0, 0}, // 2
      {457,  0, 0}, // 3
      {457,  0, 0}, // 4
      {457,  0, 0}, // 5 Highest power
      {400,  1, 0}, // 6
      {325,  2, 0}, // 7
      {270,  3, 0}, // 8
      {220,  4, 0}, // 9
      {180,  5, 0}, // 10
      {155,  6, 0}, // 11
      {130,  7, 0}, // 12
      {110,  8, 0}, // 13
      { 95,  9, 0},  // 14
      { 80, 10, 0}, // 15
      { 70, 11, 0}, // 16
      { 62, 12, 0}, // 17
      { 55, 13, 0}, // 18
      { 50, 14, 0}, // 19 Lowest power
      { 50, 14, 0}, // 20
      { 50, 14, 0}, // 21
      { 50, 14, 0}, // 22
      { 50, 14, 0}, // 23
      { 50, 14, 0}, // 24
      { 50, 14, 0}, // 25
      { 50, 14, 0}, // 26
      { 50, 14, 0}, // 27
      { 50, 14, 0}, // 28
      { 50, 14, 0}, // 29
      { 50, 14, 0}, // 30
      { 50, 14, 0}, // 31
    },
    #if(REL99 && FF_PRF)// needs proper values from RF
    {// gsm900 levels_power_reduction
    	{457,  0,  0}, // for uplink 1 timeslot = no power reduction ie 0,0 dB
    	{457,  0,  0}, // for 2 uplink timeslot = reduction between 0,0 dB to 3,0 dB
    	{457,  0,  0}, // for 3 uplink timeslot = reduction between 1,8 dB to 4,8 dB
    	{457,  0,  0}, // for 4 uplink timselot = reduction between 3,0 dB to 6,0 dB
	},
    #endif
    {// Channel Calibration Tables
      {// arfcn, tx_chan_cal
        {   20, 128 }, // Calibration Table 0
        {  100, 128 },
        {  124, 128 },
        {  586, 128 },
        {  661, 128 },
        {  736, 128 },
        {  885, 128 },
        { 1023, 128 }
        },
      {// arfcn, tx_chan_cal
        {   40, 128 }, // Calibration Table 1
        {   80, 128 },
        {  124, 128 },
        {  586, 128 },
        {  661, 128 },
        {  736, 128 },
        {  885, 128 },
        { 1023, 128 }
      },
      {// arfcn, tx_chan_cal
        {   40, 128 }, // Calibration Table 2
        {   80, 128 },
        {  124, 128 },
        {  586, 128 },
        {  661, 128 },
        {  736, 128 },
        {  885, 128 },
        { 1023, 128 }
        },
      {// arfcn, tx_chan_cal
        {   40, 128 }, // Calibration Table 3
        {   80, 128 },
        {  124, 128 },
        {  586, 128 },
        {  661, 128 },
        {  736, 128 },
        {  885, 128 },
        { 1023, 128 }
      }
    },
    { // GSM Power Ramp Values
     {
      {// Ramp-Up      #0 profile - Power Level 5
        0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #0 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #1 profile - Power Level 6
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #1 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #2 profile - Power Level 7
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #2 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #3 profile - Power Level 8
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #3 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #4 profile - Power Level 9
        0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #4 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #5 profile - Power Level 10
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #5 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #6 profile - Power Level 11
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #6 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #7 profile - Power Level 12
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #7 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #8 profile - Power Level 13
        0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #8 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #9 profile - Power Level 14
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #9 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #10 profile - Power Level 15
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #10 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #11 profile - Power Level 16
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #11 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #12 profile - Power Level 17
        0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #12 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #13 profile - Power Level 18
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #13 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #14 profile - Power Level 19
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #14 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #15 profile - Power Level 19
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #15 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
    },
    { //TX temperature compensation
      #if (ORDER2_TX_TEMP_CAL==1)
      { -11,  0,  0,  0 },
      {  +9,  0,  0,  0 },
      { +39,  0,  0,  0 },
      { +59,  0,  0,  0 },
      { 127,  0,  0,  0 }
      #else
      { -11,  0 },
      {  +9,  0 },
      { +39,  0 },
      { +59,  0 },
      { 127,  0 }
      #endif
    },
  },
  //IQ swap
  SWAP_IQ_GSM,
};

const T_RF_BAND rf_1800 =
{
  { //RX structure
    { //T_RX_CAL_PARAMS rx_cal_params
      229,      //g_magic
       54,      //lna gain * 2
       40,      //lna_th_high
       44       //lna_th_low
    },
    { //T_RF_AGC_BAND   agc_bands[RF_RX_CAL_CHAN_SIZE];
     /*--------------*/
     /*-- DCS band --*/
     /*--------------*/
      { 548,  0},     //
      { 622,  0},     //
      { 680,  0},     //
      { 745,  0},     //
      { 812,  0},     //
      { 860,  0},     //
      { 885,  0},     //
      { 991,  0},     //
      { 992,  0},     //
      {1023,  0},     //
    },
    { //RX temperature compensation
      { -15 ,  0  },
      {  -5 ,  0  },
      {   6 ,  0  },
      {  16 ,  0  },
      {  25 ,  0  },
      {  35 ,  0  },
      {  45 ,  0  },
      {  56 ,  0  },
      {  66 ,  0  },
      {  75 ,  0  },
      { 100 ,  0  }
    }
  },
  { //TX structure
    {// dcs1800 T_LEVEL_TX
      {424, 0, 0}, // 0 Highest power
      {375, 1, 0}, // 1
      {310, 2, 0}, // 2
      {255, 3, 0}, // 3
      {210, 4, 0}, // 4
      {180, 5, 0}, // 5
      {152, 6, 0}, // 6
      {130, 7, 0}, // 7
      {112, 8, 0}, // 8
      {98, 9, 0}, // 9
      {85, 10, 0}, // 10
      {75, 11, 0}, // 11
      {66, 12, 0}, // 12
      {58, 13, 0}, // 13
      {52, 14, 0}, // 14
      {47, 15, 0}, // 15 Lowest power
      {47, 15, 0}, // 16
      {47, 15, 0}, // 17
      {47, 15, 0}, // 18
      {47, 15, 0}, // 19
      {47, 15, 0}, // 20
      {47, 15, 0}, // 21
      {47, 15, 0}, // 22
      {47, 15, 0}, // 23
      {47, 15, 0}, // 24
      {47, 15, 0}, // 25
      {47, 15, 0}, // 26
      {47, 15, 0}, // 27
      {47, 15, 0}, // 28
      {424, 0, 0}, // 29 Highest power
      {424, 0, 0}, // 30 Highest power
      {424, 0, 0}, // 31 Highest power
    },
    #if(REL99 && FF_PRF)// needs proper values from RF
    {// 1800 levels_power_reduction
    	{424,  0,  0}, // for uplink 1 timeslot = no power reduction ie 0,0 dB
    	{424,  0,  0}, // for 2 uplink timeslot = reduction between 0,0 dB to 3,0 dB
    	{424,  0,  0}, // for 3 uplink timeslot = reduction between 1,8 dB to 4,8 dB
    	{424,  0,  0}, // for 4 uplink timselot = reduction between 3,0 dB to 6,0 dB
	},
    #endif
    {// Channel Calibration Tables
      {// arfcn, tx_chan_cal
        {  554, 128 }, // Calibration Table 0
        {  722, 128 },
        {  746, 128 },
        {  774, 128 },
        {  808, 128 },
        {  851, 128 },
        {  870, 128 },
        {  885, 128 }
      },
      {
        {  554, 128 }, // Calibration Table 1
        {  722, 128 },
        {  746, 128 },
        {  774, 128 },
        {  808, 128 },
        {  851, 128 },
        {  870, 128 },
        {  885, 128 }
      },
      {// arfcn, tx_chan_cal
        {  554, 128 }, // Calibration Table 2
        {  722, 128 },
        {  746, 128 },
        {  774, 128 },
        {  808, 128 },
        {  851, 128 },
        {  870, 128 },
        {  885, 128 }
      },
      {// arfcn, tx_chan_cal
        {  554, 128 }, // Calibration Table 3
        {  722, 128 },
        {  746, 128 },
        {  774, 128 },
        {  808, 128 },
        {  851, 128 },
        {  870, 128 },
        {  885, 128 }
      }
    },
     { // DCS Power Ramp Values
      {
      {// Ramp-Up      #0 profile - Power Level 0
        0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #0 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #1 profile - Power Level 1
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #1 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #2 profile - Power Level 2
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #2 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #3 profile - Power Level 3
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #3 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #4 profile - Power Level 4
        0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #4 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #5 profile - Power Level 5
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #5 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #6 profile - Power Level 6
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #6 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #7 profile - Power Level 7
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #7 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #8 profile - Power Level 8
        0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #8 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #9 profile - Power Level 9
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #9 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #10 profile - Power Level 10
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #10 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #11 profile - Power Level 11
       0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #11 profile
       255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #12 profile - Power Level 12
        0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #12 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #13 profile - Power Level 13
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #13 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #14 profile - Power Level 14
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255

      },
      {// Ramp-Down    #14 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #15 profile - Power Level 15
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #15 profile
        255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
      },
     },
    },
    { //TX temperature compensation
      #if (ORDER2_TX_TEMP_CAL==1)
      { -11,  0,  0,  0 },
      {  +9,  0,  0,  0 },
      { +39,  0,  0,  0 },
      { +59,  0,  0,  0 },
      { 127,  0,  0,  0 }
      #else
      { -11,  0 },
      {  +9,  0 },
      { +39,  0 },
      { +59,  0 },
      { 127,  0 }
      #endif
    },
  },
  //IQ swap
  SWAP_IQ_DCS
};

//copy from gsm900
const T_RF_BAND rf_850 =
{
  { //RX structure
     //T_RX_CAL_PARAMS rx_cal_params
    {

        229,      //g_magic
         54,      //lna_gain_max * 2
         40,      //lna_th_high
         44       //lna_th_low
    },
    { //T_RF_AGC_BAND   agc_bands[RF_RX_CAL_CHAN_SIZE];
     // Remark: ARFCN=0 (GSM-E) is maintained by 1st GSM subbband.
                     // upper_bound, agc_calib
      {  10,  0},    // sub-band1 up to arfcn =  10, Agc calibration = 0db
      {  30,  0},    // sub-band2 up to arfcn =  30, Agc calibration = 0db
      {  51,  0},    // sub-band3 up to arfcn =  51, Agc calibration = 0db
      {  71,  0},    // etc.
      {  90,  0},    //
      { 112,  0},    //
      { 124,  0},    //
      { 991,  0},    //
      { 992,  0},    //
      {1023,  0},    //
    },
    { //RX temperature compensation
      { -15 ,  0  },
      {  -5 ,  0  },
      {   6 ,  0  },
      {  16 ,  0  },
      {  25 ,  0  },
      {  35 ,  0  },
      {  45 ,  0  },
      {  56 ,  0  },
      {  66 ,  0  },
      {  75 ,  0  },
      { 100 ,  0  }
    }
  },
  { //TX structure
    {// gsm850 T_LEVEL_TX
      {486, 0, 0}, // 0
      {486, 0, 0}, // 1
      {486, 0, 0}, // 2
      {486, 0, 0}, // 3
      {486, 0, 0}, // 4
      {486, 0, 0}, // 5 Highest power
      {400, 1, 0}, // 6
      {330, 2, 0}, // 7
      {270, 3, 0}, // 8
      {223, 4, 0}, // 9
      {186, 5, 0}, // 10
      {158, 6, 0}, // 11
      {133, 7, 0}, // 12
      {114, 8, 0}, // 13
      {97, 9, 0}, // 14
      {84, 10, 0}, // 15
      {73, 11, 0}, // 16
      {64, 12, 0}, // 17
      {57, 13, 0}, // 18
      {52, 14, 0}, // 19 Lowest power
      {52, 14, 0}, // 20
      {52, 14, 0}, // 21
      {52, 14, 0}, // 22
      {52, 14, 0}, // 23
      {52, 14, 0}, // 24
      {52, 14, 0}, // 25
      {52, 14, 0}, // 26
      {52, 14, 0}, // 27
      {52, 14, 0}, // 28
      {52, 14, 0}, // 29
      {52, 14, 0}, // 30
      {52, 14, 0}, // 31
    },
    #if(REL99 && FF_PRF)// needs proper values from RF
    {// gsm850 levels_power_reduction
    	{486,  0,  0}, // for uplink 1 timeslot = no power reduction ie 0,0 dB
    	{486,  0,  0}, // for 2 uplink timeslot = reduction between 0,0 dB to 3,0 dB
    	{486,  0,  0}, // for 3 uplink timeslot = reduction between 1,8 dB to 4,8 dB
    	{486,  0,  0}, // for 4 uplink timselot = reduction between 3,0 dB to 6,0 dB
	},
    #endif
    {// Channel Calibration Tables
      {// arfcn, tx_chan_cal
        {   40, 128 }, // Calibration Table 0
        {   80, 128 },
        {  124, 128 },
        {  586, 128 },
        {  661, 128 },
        {  736, 128 },
        {  885, 128 },
        { 1023, 128 }
        },
      {// arfcn, tx_chan_cal
        {  554, 130 }, // Calibration Table 1
        {  722, 128 },
        {  746, 129 },
        {  774, 131 },
        {  808, 132 },
        {  851, 134 },
        {  870, 138 },
        { 885, 140 }
      },
      {// arfcn, tx_chan_cal
        {   40, 128 }, // Calibration Table 2
        {   80, 128 },
        {  124, 128 },
        {  586, 128 },
        {  661, 128 },
        {  736, 128 },
        {  885, 128 },
        { 1023, 128 }
      },
      {// arfcn, tx_chan_cal
        {   40, 128 }, // Calibration Table 3
        {   80, 128 },
        {  124, 128 },
        {  586, 128 },
        {  661, 128 },
        {  736, 128 },
        {  885, 128 },
        { 1023, 128 }
      }
    },
    { // gsm850 Power Ramp Values
      {
        {// Ramp-Up      #0 profile - Power Level 5
          0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #0 profile
          255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #1 profile - Power Level 6
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #1 profile
          255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #2 profile - Power Level 7
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #2 profile
          255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #3 profile - Power Level 8
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #3 profile
          255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #4 profile - Power Level 9
          0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #4 profile
          255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #5 profile - Power Level 10
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #5 profile
          255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #6 profile - Power Level 11
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #6 profile
          255,251,238,218,191,160,127,95,64,37,
        17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #7 profile - Power Level 12
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #7 profile
          255,251,238,218,191,160,127,95,64,37,
          17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #8 profile - Power Level 13
          0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #8 profile
          255,251,238,218,191,160,127,95,64,37,
          17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #9 profile - Power Level 14
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #9 profile
          255,251,238,218,191,160,127,95,64,37,
          17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #10 profile - Power Level 15
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #10 profile
          255,251,238,218,191,160,127,95,64,37,
          17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #11 profile - Power Level 16
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #11 profile
          255,251,238,218,191,160,127,95,64,37,
          17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #12 profile - Power Level 17
          0,0,0,0,0,0,10,14,17,25,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #12 profile
          255,251,238,218,191,160,127,95,64,37,
          17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #13 profile - Power Level 18
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #13 profile
          255,251,238,218,191,160,127,95,64,37,
          17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #14 profile - Power Level 19
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #14 profile
          255,251,238,218,191,160,127,95,64,37,
          17,4,0,0,0,0,0,0,0,0
        },
      },
      {
        {// Ramp-Up      #15 profile - Power Level 19
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
        },
        {// Ramp-Down    #15 profile
          255,251,238,218,191,160,127,95,64,37,
          17,4,0,0,0,0,0,0,0,0
        },
      },
    },
    { //TX temperature compensation
      #if (ORDER2_TX_TEMP_CAL==1)
      { -11,  0,  0,  0 },
      {  +9,  0,  0,  0 },
      { +39,  0,  0,  0 },
      { +59,  0,  0,  0 },
      { 127,  0,  0,  0 }
      #else
      { -11,  0 },
      {  +9,  0 },
      { +39,  0 },
      { +59,  0 },
      { 127,  0 }
      #endif
    },
  },
  //IQ swap
  SWAP_IQ_GSM850,
};

//copy from dcs1800
const T_RF_BAND rf_1900 =
{
  { //RX structure
    { //T_RX_CAL_PARAMS rx_cal_params
      229,      //g_magic
       54,      //lna gain * 2
       40,      //lna_th_high
       44       //lna_th_low
    },
    { //T_RF_AGC_BAND   agc_bands[RF_RX_CAL_CHAN_SIZE];
     /*--------------*/
     /*-- PCS band --*/
     /*--------------*/
      { 548,  0},     //
      { 622,  0},     //
      { 680,  0},     //
      { 745,  0},     //
      { 812,  0},     //
      { 860,  0},     //
      { 885,  0},     //
      { 991,  0},    //
      { 992,  0},    //
      {1023,  0},    //
    },
    { //RX temperature compensation
      { -15 ,  0  },
      {  -5 ,  0  },
      {   6 ,  0  },
      {  16 ,  0  },
      {  25 ,  0  },
      {  35 ,  0  },
      {  45 ,  0  },
      {  56 ,  0  },
      {  66 ,  0  },
      {  75 ,  0  },
      { 100 ,  0  }
    }
  },
  { //TX structure
    {// pcs1900 T_LEVEL_TX
      {438, 0, 0}, // 0 Highest power
      {380, 1, 0}, // 1
      {310, 2, 0}, // 2
      {255, 3, 0}, // 3
      {213, 4, 0}, // 4
      {180, 5, 0}, // 5
      {152, 6, 0}, // 6
      {130, 7, 0}, // 7
      {112, 8, 0}, // 8
      {98, 9, 0}, // 9
      {87, 10, 0}, // 10
      {77, 11, 0}, // 11
      {68, 12, 0}, // 12
      {60, 13, 0}, // 13
      {53, 14, 0}, // 14
      {48, 15, 0}, // 15 Lowest power
      {48, 15, 0}, // 16
      {48, 15, 0}, // 17
      {48, 15, 0}, // 18
      {48, 15, 0}, // 19
      {48, 15, 0}, // 20
      {48, 15, 0}, // 21
      {48, 15, 0}, // 22
      {48, 15, 0}, // 23
      {48, 15, 0}, // 24
      {48, 15, 0}, // 25
      {48, 15, 0}, // 26
      {48, 15, 0}, // 27
      {48, 15, 0}, // 28
      {438, 0, 0}, // 29 Highest power
      {438, 0, 0}, // 30 Highest power
      {438, 0, 0}, // 31 Highest power
    },
    #if(REL99 && FF_PRF)// needs proper values from RF
    {// PCS1900 band levels_power_reduction
    	{438,  0,  0}, // for uplink 1 timeslot = no power reduction ie 0,0 dB
    	{438,  0,  0}, // for 2 uplink timeslot = reduction between 0,0 dB to 3,0 dB
    	{438,  0,  0}, // for 3 uplink timeslot = reduction between 1,8 dB to 4,8 dB
    	{438,  0,  0}, // for 4 uplink timselot = reduction between 3,0 dB to 6,0 dB
	},
    #endif
    {// Channel Calibration Tables
      {// arfcn, tx_chan_cal
        {  554, 128 }, // Calibration Table 0
        {  722, 128 },
        {  746, 128 },
        {  774, 128 },
        {  808, 128 },
        {  810, 128 },
        {  810, 128 },
        {  810, 128 }
      },
      {
        {  554, 128 }, // Calibration Table 1
        {  722, 128 },
        {  746, 128 },
        {  774, 128 },
        {  808, 128 },
        {  810, 128 },
        {  810, 128 },
        {  810, 128 }
      },
      {// arfcn, tx_chan_cal
        {  554, 128 }, // Calibration Table 2
        {  722, 128 },
        {  746, 128 },
        {  774, 128 },
        {  808, 128 },
        {  810, 128 },
        {  810, 128 },
        {  810, 128 }
      },
      {// arfcn, tx_chan_cal
        {  554, 128 }, // Calibration Table 3
        {  722, 128 },
        {  746, 128 },
        {  774, 128 },
        {  808, 128 },
        {  810, 128 },
        {  810, 128 },
        {  810, 128 }
      }
    },
    { // PCS Power Ramp Values
     {
      {// Ramp-Up      #0 profile - Power Level 0
          0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #0 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #1 profile - Power Level 1
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #1 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #2 profile - Power Level 2
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #2 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #3 profile - Power Level 3
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #3 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #4 profile - Power Level 4
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #4 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #5 profile - Power Level 5
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #5 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #6 profile - Power Level 6
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #6 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #7 profile - Power Level 7
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #7 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #8 profile - Power Level 8
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #8 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #9 profile - Power Level 9
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #9 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #10 profile - Power Level 10
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #10 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #11 profile - Power Level 11
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #11 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #12 profile - Power Level 12
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #12 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #13 profile - Power Level 13
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #13 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #14 profile - Power Level 14
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #14 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
     {
      {// Ramp-Up      #15 profile - Power Level 15
        0,0,0,0,0,0,10,14,21,29,
		37,64,95,127,160,191,218,238,251,255
      },
      {// Ramp-Down    #15 profile
        255,240,228,220,185,160,127,95,64,37,
        17,14,0,0,0,0,0,0,0,0
      },
     },
    },
    { //TX temperature compensation
      #if (ORDER2_TX_TEMP_CAL==1)
      { -11,  0,  0,  0 },
      {  +9,  0,  0,  0 },
      { +39,  0,  0,  0 },
      { +59,  0,  0,  0 },
      { 127,  0,  0,  0 }
      #else
      { -11,  0 },
      {  +9,  0 },
      { +39,  0 },
      { +59,  0 },
      { 127,  0 }
    #endif
    },
  },
  //IQ swap
  SWAP_IQ_PCS
};





UWORD16 drp_wrapper[DRP_WRAPPER_TABLE_SIZE]=
{
    C_APCCTRL2,
    C_APCDEL1,
    C_APCDEL2
    };



/*------------------------------------------*/
/*             Gain table                   */
/*  specified in the TRF6053 spec           */
/*     2 dB steps - LNA always ON           */
/*------------------------------------------*/
UWORD16 AGC_TABLE[AGC_TABLE_SIZE] =
{
   ABE_0_DB,
   ABE_0_DB,
   ABE_2_DB,
   ABE_2_DB,
   ABE_2_DB,
   ABE_5_DB,
   ABE_5_DB,
   ABE_5_DB,
   ABE_8_DB,
   ABE_8_DB,
   ABE_8_DB,
   ABE_11_DB,
   ABE_11_DB,
   ABE_11_DB,
   ABE_14_DB,
   ABE_14_DB,
   ABE_14_DB,
   ABE_17_DB,
   ABE_17_DB,
   ABE_17_DB,
   ABE_20_DB,
   ABE_20_DB,
   ABE_20_DB,
   ABE_23_DB
};

// structure for ADC conversion (4 Internal channel + 5 Ext channels max.)
T_ADC adc;

// MADC calibration structure
T_ADCCAL adc_cal=
{ // a: 0,..,8
  // b, 0,..,8
  // cal_a = 4*1750 is the Typical value 1.75 V ref voltage , divide by 4
  7000, 8750, 7000, 7000, 7000, 7000, 7000, 256, 7000,
     0,    0,    0,    0,    0,    0,   0,    0,    0
};

// table which converts ADC value into RF temperature
const T_TEMP temperature[TEMP_TABLE_SIZE] =
{
  7, -35,
  7, -34,
  8, -33,
  8, -32,
  9, -31,
  9, -30,
  10, -29,
  11, -28,
  11, -27,
  12, -26,
  13, -25,
  14, -24,
  14, -23,
  15, -22,
  16, -21,
  17, -20,
  18, -19,
  19, -18,
  21, -17,
  22, -16,
  23, -15,
  24, -14,
  26, -13,
  27, -12,
  29, -11,
  30, -10,
  32, -9,
  34, -8,
  36, -7,
  37, -6,
  39, -5,
  41, -4,
  44, -3,
  46, -2,
  48, -1,
  51, 0,
  53, 1,
  56, 2,
  59, 3,
  61, 4,
  64, 5,
  68, 6,
  71, 7,
  74, 8,
  78, 9,
  81, 10,
  85, 11,
  89, 12,
  93, 13,
  97, 14,
  101, 15,
  105, 16,
  110, 17,
  115, 18,
  119, 19,
  124, 20,
  130, 21,
  135, 22,
  140, 23,
  146, 24,
  152, 25,
  158, 26,
  164, 27,
  170, 28,
  176, 29,
  183, 30,
  190, 31,
  197, 32,
  204, 33,
  211, 34,
  219, 35,
  226, 36,
  234, 37,
  242, 38,
  250, 39,
  259, 40,
  267, 41,
  276, 42,
  285, 43,
  294, 44,
  303, 45,
  312, 46,
  322, 47,
  331, 48,
  341, 49,
  351, 50,
  361, 51,
  371, 52,
  382, 53,
  392, 54,
  403, 55,
  413, 56,
  424, 57,
  435, 58,
  446, 59,
  458, 60,
  469, 61,
  480, 62,
  492, 63,
  503, 64,
  515, 65,
  527, 66,
  539, 67,
  550, 68,
  562, 69,
  574, 70,
  586, 71,
  598, 72,
  611, 73,
  623, 74,
  635, 75,
  647, 76,
  659, 77,
  671, 78,
  683, 79,
  696, 80,
  708, 81,
  720, 82,
  732, 83,
  744, 84,
  756, 85,
  768, 86,
  780, 87,
  792, 88,
  804, 89,
  816, 90,
  827, 91,
  839, 92,
  851, 93,
  862, 94,
  873, 95
};


/*------------------------------------------*/
/* ABB Initialization words                 */
/*------------------------------------------*/
#if (ANLG_FAM == 11)
 UWORD8 abb[ABB_TABLE_SIZE] =
{
    C_VULGAIN,
    C_VDLGAIN,
    C_SIDETONE,
    C_CTRL1,
    C_CTRL2,
    C_CTRL3,
    C_CTRL4,
    C_CTRL5,
    C_CTRL6,
    C_POPAUTO,
    C_OUTEN1,
    C_OUTEN2,
    C_OUTEN3,
    C_AULGA,
    C_AURGA
};
#endif

#if (L1_FF_MULTIBAND == 0)
#else
/* The physical RF bands are enumerated in order of increasing frequencies */
/* The same order must be used in l1_rf61, l1_cust, and l1_const */
const T_MULTIBAND_RF multiband_rf[RF_NB_SUPPORTED_BANDS + 1] =
{
 /*power_class, tx_turning_point, max_txpwr, gsm_band_identifier, name*/
#if (GSM900_SUPPORTED == 1)
  { 4,           0,                19,        RF_GSM900,              "900"},
#endif /* if(GSM900_SUPPORTED == 1)*/
#if (GSM850_SUPPORTED == 1)
  { 4,          0,                19,        RF_GSM850,              "850"},
#endif /*if (GSM850_SUPPORTED == 1)*/
#if (DCS1800_SUPPORTED == 1)
  { 1,          28,               15,        RF_DCS1800,             "1800"},
#endif /*if (DCS1800_SUPPORTED == 1)*/
#if (PCS1900_SUPPORTED == 1)
  {1,           21,               15,        RF_PCS1900,             "1900"},
#endif /*if (PCS1900_SUPPORTED == 1)*/
} ;

/* Array for mapping from subband index into physical band index */
const WORD8 rf_subband2band[RF_NB_SUBBANDS] =
{
#if (GSM900_SUPPORTED == 1)
  RF_GSM900,
  RF_GSM900,
#endif
#if (GSM850_SUPPORTED == 1)
  RF_GSM850,
#endif
#if (DCS1800_SUPPORTED == 1)
  RF_DCS1800,
#endif
#if (PCS1900_SUPPORTED == 1)
  RF_PCS1900,
#endif
};

const T_MULTIBAND_CONVERT multiband_convert[RF_NB_SUBBANDS] =
{ /*first_rf_freq,   last_rf_freq,                  first_l1_freq,    l1freq2rffreq */
#if (GSM900_SUPPORTED == 1)
 { RF_FREQ_1ST_900L, RF_FREQ_1ST_900L+NB_CHAN_900L, L1_FREQ_1ST_900L, RF_FREQ_1ST_900L-L1_FREQ_1ST_900L},
 { RF_FREQ_1ST_900H, RF_FREQ_1ST_900H+NB_CHAN_900H, L1_FREQ_1ST_900H, RF_FREQ_1ST_900H-L1_FREQ_1ST_900H},
#endif
#if (GSM850_SUPPORTED == 1)
 { RF_FREQ_1ST_850, RF_FREQ_1ST_850+NB_CHAN_850, L1_FREQ_1ST_850,  RF_FREQ_1ST_850-L1_FREQ_1ST_850},
#endif
#if (DCS1800_SUPPORTED == 1)
 { RF_FREQ_1ST_1800, RF_FREQ_1ST_1800+NB_CHAN_1800, L1_FREQ_1ST_1800, RF_FREQ_1ST_1800-L1_FREQ_1ST_1800},
#endif
#if (PCS1900_SUPPORTED == 1)
 { RF_FREQ_1ST_1900, RF_FREQ_1ST_1900+NB_CHAN_1900, L1_FREQ_1ST_1900, RF_FREQ_1ST_1900-L1_FREQ_1ST_1900},
#endif
};

/*-------------------------------------------------------*/
/* rf_convert_l1freq_to_l1subband                        */
/*-------------------------------------------------------*/
/* Parameters : l1freq, the l1 radio_freq to convert     */
/*                                                       */
/* Return     : The l1 subband index l1freq belongs to   */
/*                                                       */
/* Functionality : compare l1freq with the band ranges,  */
/*      return the l1 band index where match is found     */
 /*-------------------------------------------------------*/
UWORD8 rf_convert_l1freq_to_l1subband(UWORD16 l1_freq)
{
  WORD32 subband_idx;
  for(subband_idx = RF_NB_SUBBANDS -1; subband_idx>=0; subband_idx--)
  {
    if(l1_freq >= multiband_convert[subband_idx].first_l1_freq)
      return ((UWORD8)subband_idx);
  }
  l1_multiband_error_handler(l1_freq);
  return 0;
}

/*-------------------------------------------------------*/
/* rf_convert_rffreq_to_l1subband                        */
/*-------------------------------------------------------*/
/* Parameters : rffreq, the physical rf freq channel     */
/*              number to convert                        */
/*                                                       */
/* Return     : The l1 subband index rf_freq belongs to  */
/*                                                       */
/* Functionality : compare rf_freq with the band ranges,  */
/*      return the l1 band index where match is found     */
 /*-------------------------------------------------------*/
UWORD8 rf_convert_rffreq_to_l1subband(UWORD16 rf_freq)
{
  WORD32 subband_idx;
  for(subband_idx = RF_NB_SUBBANDS -1; subband_idx>=0; subband_idx--)
  {
    if((rf_freq >= multiband_convert[subband_idx].first_rf_freq)&&
      (rf_freq < multiband_convert[subband_idx].last_rf_freq))
      return ((UWORD8)subband_idx);
  }
  l1_multiband_error_handler(rf_freq);
  return 0;
}

/*-------------------------------------------------------*/
/* rf_convert_l1freq_to_band_idx                         */
/*-------------------------------------------------------*/
/* Parameters : l1freq, the l1 radio_freq to convert     */
/*                                                       */
/* Return     : The physical index of the band of l1freq */
/*                                                       */
/* Functionality : compare l1freq with the band ranges,  */
/*      return the rf_band_index of the l1_band_index    */
/*      where match is found                             */
 /*-------------------------------------------------------*/
WORD8 rf_convert_l1freq_to_rf_band_idx(UWORD16 l1_freq)
{
  return rf_subband2band[rf_convert_l1freq_to_l1subband(l1_freq)];
}

/*-------------------------------------------------------*/
/* rf_convert_l1freq_to_rffreq                            */
/*-------------------------------------------------------*/
/* Parameters : l1freq, the l1 radio_freq to convert     */
/*                                                       */
 /* Return    : ARFCN, absolute radio frequency channel  */
/*             number and in *bandidx the band index     */
/* Functionality : identify band index and look up ARFCN */
/*-------------------------------------------------------*/
UWORD16 rf_convert_l1freq_to_rffreq(UWORD16 l1_freq )
{
  WORD32 subband_idx = rf_convert_l1freq_to_l1subband(l1_freq);
  return(l1_freq+multiband_convert[subband_idx].l1freq2rffreq);
}

/*-------------------------------------------------------*/
/* rf_convert_l1freq_to_arfcn_and_bandidx                */
/*-------------------------------------------------------*/
/* Parameters : l1freq, the l1 radio_freq to convert     */
/*                                                       */
 /* Return    : ARFCN, absolute radio frequency channel  */
/*             number and in *bandidx the RF band index  */
/* Functionality : identify band index and look up ARFCN */
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/* rf_convert_l1freq_to_rffreq_and_bandidx                */
/*-------------------------------------------------------*/
/* Parameters : l1freq, the l1 radio_freq to convert     */
/*                                                       */
 /* Return    : ARFCN, absolute radio frequency channel  */
/*             number and in *bandidx the band index     */
/* Functionality : identify band index and look up ARFCN */
/*-------------------------------------------------------*/
UWORD16 rf_convert_l1freq_to_rffreq_rfband(UWORD16 l1_freq, WORD8 *rf_band_index)
{
  WORD32 subband_idx = rf_convert_l1freq_to_l1subband(l1_freq);
  *rf_band_index = rf_subband2band[subband_idx];
  return(l1_freq+multiband_convert[subband_idx].l1freq2rffreq);
}

/*-------------------------------------------------------*/
/* rf_convert_l1freq_to_arfcn_and_bandidx                */
/*-------------------------------------------------------*/
/* Parameters : l1freq, the l1 radio_freq to convert     */
/*                                                       */
 /* Return    : ARFCN, absolute radio frequency channel  */
/*             number and in *bandidx the RF band index  */
/* Functionality : identify band index and look up ARFCN */
/*-------------------------------------------------------*/
UWORD16 rf_convert_l1freq_to_arfcn_rfband(UWORD16 l1_freq, WORD8 *rf_band_index)
{
  WORD32 subband_idx = rf_convert_l1freq_to_l1subband(l1_freq);
  *rf_band_index = rf_subband2band[subband_idx];
#if (PCS1900_SUPPORTED)
  if(RF_PCS1900 == rf_subband2band[subband_idx])
    return(l1_freq+multiband_convert[subband_idx].l1freq2rffreq-512);
  else
#endif
    return(l1_freq+multiband_convert[subband_idx].l1freq2rffreq);
}

UWORD16 rf_convert_rffreq_to_l1freq(UWORD16 rf_freq)
{
  WORD32 subband_idx = rf_convert_rffreq_to_l1subband(rf_freq);
  return(rf_freq - multiband_convert[subband_idx].l1freq2rffreq);
}

/*-------------------------------------------------------*/
/* rf_convert_rffreq_to_l1freq_rfband                    */
/*-------------------------------------------------------*/
/* Parameters : rffreq, the physical rf channel number   */
/*              to convert                               */
/*                                                       */
 /* Return    : l1freq, l1 internal frequency number     */
/*             and in *bandidx the RF band index         */
/* Functionality : identify band index and look up ARFCN */
/*-------------------------------------------------------*/
UWORD16 rf_convert_rffreq_to_l1freq_rfband(UWORD16 rf_freq, WORD8 *rf_band_index)
{
  WORD32 subband_idx = rf_convert_rffreq_to_l1subband(rf_freq);
  *rf_band_index = (WORD8)subband_idx;
  return(rf_freq - multiband_convert[subband_idx].l1freq2rffreq);
}

#if(PCS1900_SUPPORTED)
extern UWORD16 tm_std_band;
#endif
UWORD16 rf_convert_tmarfcn_to_l1freq(UWORD16 tm_arfcn, WORD8 *error_flag)
{
  *error_flag = 0;
#if(GSM900_SUPPORTED)
  if(NB_CHAN_900L> tm_arfcn)
    return (tm_arfcn + L1_FREQ_1ST_900L- RF_FREQ_1ST_900L);
  if((ARFCN_1ST_900H <= tm_arfcn)&&(ARFCN_1ST_900H + NB_CHAN_900H > tm_arfcn))
    return (tm_arfcn + L1_FREQ_1ST_900H- RF_FREQ_1ST_900H);
#endif
#if(GSM850_SUPPORTED)
  if((ARFCN_1ST_850 <= tm_arfcn)||(ARFCN_1ST_850+NB_CHAN_850 > tm_arfcn))
    return(tm_arfcn + L1_FREQ_1ST_850- RF_FREQ_1ST_850);
#endif
#if(PCS1900_SUPPORTED)
  if((RF_FREQ_1ST_1900<=tm_arfcn)&&((RF_FREQ_1ST_1900+NB_CHAN_1900)>tm_arfcn))
    return (tm_arfcn + L1_FREQ_1ST_1900 - RF_FREQ_1ST_1900); /* PCS RF_FREQ format */
  if(((3 == (tm_std_band & 0xff))||(8==(tm_std_band & 0xff))) &&
    (ARFCN_1ST_1900 <= tm_arfcn) && (ARFCN_1ST_1900+NB_CHAN_1900 > tm_arfcn))
    return(tm_arfcn+L1_FREQ_1ST_1900-ARFCN_1ST_1900); /* PCS Legacy compatible*/
  if((1000+ARFCN_1ST_1900 <= tm_arfcn)&&
    (1000+ARFCN_1ST_1900+NB_CHAN_1900 >= tm_arfcn))
    return(tm_arfcn+L1_FREQ_1ST_1900-ARFCN_1ST_1900-1000); /*ARFCN+1000 format*/
#endif
#if(DCS1800_SUPPORTED)
    if((ARFCN_1ST_1800 <= tm_arfcn)||(ARFCN_1ST_1800+NB_CHAN_1800 > tm_arfcn))
      return(tm_arfcn + L1_FREQ_1ST_1800- RF_FREQ_1ST_1800);
#endif
  *error_flag = 1;
  return (tm_arfcn);
}
#endif// if(L1_FF_MULTIBAND == 1)