osmocom-bb/src/target/firmware/include/rf/txcal.h

50 lines
2.0 KiB
C

/*
* RF Tx calibration structures matching those used by official
* TI/FreeCalypso firmwares; these structures appear in the flash file
* system (FFS) of FCDEV3B and GTA0x devices and in the factory data
* block on the Pirelli DP-L10 phone.
*/
#define RF_TX_CHAN_CAL_TABLE_SIZE 4 /*!< channel calibration table size */
#define RF_TX_NUM_SUB_BANDS 8 /*!< number of sub-bands in channel calibration table */
#define RF_TX_LEVELS_TABLE_SIZE 32 /*!< level table size */
#define RF_TX_RAMP_SIZE 16 /*!< number of ramp definitions */
/* APC of Tx Power (pcm-file "rf/tx/level.gsm|dcs") */
struct txcal_tx_level {
uint16_t apc; /*!< 0..31 */
uint8_t ramp_index; /*!< 0..RF_TX_RAMP_SIZE */
uint8_t chan_cal_index; /*!< 0..RF_TX_CHAN_CAL_TABLE_SIZE */
};
/* Power ramp definition structure */
struct txcal_ramp_def {
uint8_t ramp_up[16]; /*!< Ramp-up profile */
uint8_t ramp_down[16]; /*!< Ramp-down profile */
};
/* Tx channel calibration structure */
struct txcal_chan_cal {
uint16_t arfcn_limit;
int16_t chan_cal;
};
extern struct txcal_tx_level rf_tx_levels_850[RF_TX_LEVELS_TABLE_SIZE];
extern struct txcal_tx_level rf_tx_levels_900[RF_TX_LEVELS_TABLE_SIZE];
extern struct txcal_tx_level rf_tx_levels_1800[RF_TX_LEVELS_TABLE_SIZE];
extern struct txcal_tx_level rf_tx_levels_1900[RF_TX_LEVELS_TABLE_SIZE];
extern struct txcal_ramp_def rf_tx_ramps_850[RF_TX_RAMP_SIZE];
extern struct txcal_ramp_def rf_tx_ramps_900[RF_TX_RAMP_SIZE];
extern struct txcal_ramp_def rf_tx_ramps_1800[RF_TX_RAMP_SIZE];
extern struct txcal_ramp_def rf_tx_ramps_1900[RF_TX_RAMP_SIZE];
extern struct txcal_chan_cal rf_tx_chan_cal_850[RF_TX_CHAN_CAL_TABLE_SIZE]
[RF_TX_NUM_SUB_BANDS];
extern struct txcal_chan_cal rf_tx_chan_cal_900[RF_TX_CHAN_CAL_TABLE_SIZE]
[RF_TX_NUM_SUB_BANDS];
extern struct txcal_chan_cal rf_tx_chan_cal_1800[RF_TX_CHAN_CAL_TABLE_SIZE]
[RF_TX_NUM_SUB_BANDS];
extern struct txcal_chan_cal rf_tx_chan_cal_1900[RF_TX_CHAN_CAL_TABLE_SIZE]
[RF_TX_NUM_SUB_BANDS];