📄 eeprom.h
字号:
#define AR5K_EEPROM_N_OBDB 4#define AR5K_EEPROM_OBDB_DIS 0xffff#define AR5K_EEPROM_CHANNEL_DIS 0xff#define AR5K_EEPROM_SCALE_OC_DELTA(_x) (((_x) * 2) / 10)#define AR5K_EEPROM_N_CTLS(_v) AR5K_EEPROM_OFF(_v, 16, 32)#define AR5K_EEPROM_MAX_CTLS 32#define AR5K_EEPROM_N_XPD_PER_CHANNEL 4#define AR5K_EEPROM_N_XPD0_POINTS 4#define AR5K_EEPROM_N_XPD3_POINTS 3#define AR5K_EEPROM_N_PD_GAINS 4#define AR5K_EEPROM_N_PD_POINTS 5#define AR5K_EEPROM_N_INTERCEPT_10_2GHZ 35#define AR5K_EEPROM_N_INTERCEPT_10_5GHZ 55#define AR5K_EEPROM_POWER_M 0x3f#define AR5K_EEPROM_POWER_MIN 0#define AR5K_EEPROM_POWER_MAX 3150#define AR5K_EEPROM_POWER_STEP 50#define AR5K_EEPROM_POWER_TABLE_SIZE 64#define AR5K_EEPROM_N_POWER_LOC_11B 4#define AR5K_EEPROM_N_POWER_LOC_11G 6#define AR5K_EEPROM_I_GAIN 10#define AR5K_EEPROM_CCK_OFDM_DELTA 15#define AR5K_EEPROM_N_IQ_CAL 2#if 0#define AR5K_EEPROM_READ(_o, _v) do { \ ret = ath5k_hw_eeprom_read(ah, (_o), &(_v)); \ if (ret) \ return ret; \} while (0)#endif#define AR5K_EEPROM_READ_HDR(_o, _v) \ AR5K_EEPROM_READ(_o, ah->ah_capabilities.cap_eeprom._v); \enum ath5k_ant_setting { AR5K_ANT_VARIABLE = 0, /* variable by programming */ AR5K_ANT_FIXED_A = 1, /* fixed to 11a frequencies */ AR5K_ANT_FIXED_B = 2, /* fixed to 11b frequencies */ AR5K_ANT_MAX = 3,};/* Per channel calibration data, used for power table setup */struct ath5k_chan_pcal_info_rf5111 { /* Power levels in half dbm units * for one power curve. */ int8_t pwr[AR5K_EEPROM_N_PWR_POINTS_5111]; /* PCDAC table steps * for the above values */ int8_t pcdac[AR5K_EEPROM_N_PWR_POINTS_5111]; /* Starting PCDAC step */ int8_t pcdac_min; /* Final PCDAC step */ int8_t pcdac_max;};struct ath5k_chan_pcal_info_rf5112 { /* Power levels in quarter dBm units * for lower (0) and higher (3) * level curves */ int8_t pwr_x0[AR5K_EEPROM_N_XPD0_POINTS]; int8_t pwr_x3[AR5K_EEPROM_N_XPD3_POINTS]; /* PCDAC table steps * for the above values */ u_int8_t pcdac_x0[AR5K_EEPROM_N_XPD0_POINTS]; u_int8_t pcdac_x3[AR5K_EEPROM_N_XPD3_POINTS];};struct ath5k_chan_pcal_info_rf2413 { /* Number of pd gain curves for * this channel */ int8_t pd_gains; /* Starting pwr/pddac values */ int8_t pwr_i[AR5K_EEPROM_N_PD_GAINS]; u_int8_t pddac_i[AR5K_EEPROM_N_PD_GAINS]; /* (pwr,pddac) points */ int8_t pwr[AR5K_EEPROM_N_PD_GAINS] [AR5K_EEPROM_N_PD_POINTS]; u_int8_t pddac[AR5K_EEPROM_N_PD_GAINS] [AR5K_EEPROM_N_PD_POINTS];};struct ath5k_chan_pcal_info { /* Frequency */ u_int16_t freq; /* Max available power */ int8_t max_pwr; struct ath5k_chan_pcal_info_rf5111 *rf5111_info; struct ath5k_chan_pcal_info_rf5112 *rf5112_info; struct ath5k_chan_pcal_info_rf2413 *rf2413_info;};/* Per rate calibration data for each mode, used for power table setup */struct ath5k_rate_pcal_info { u_int16_t freq; /* Frequency */ /* Power level for 6-24Mbit/s rates */ u_int16_t target_power_6to24; /* Power level for 36Mbit rate */ u_int16_t target_power_36; /* Power level for 48Mbit rate */ u_int16_t target_power_48; /* Power level for 54Mbit rate */ u_int16_t target_power_54;};/* EEPROM calibration data */struct ath5k_eeprom_info { /* Header information */ u_int16_t ee_magic; u_int16_t ee_protect; u_int16_t ee_regdomain; u_int16_t ee_version; u_int16_t ee_header; u_int16_t ee_ant_gain; u_int16_t ee_misc0; u_int16_t ee_misc1; u_int16_t ee_misc2; u_int16_t ee_misc3; u_int16_t ee_misc4; u_int16_t ee_misc5; u_int16_t ee_misc6; u_int16_t ee_cck_ofdm_gain_delta; u_int16_t ee_cck_ofdm_power_delta; u_int16_t ee_scaled_cck_delta; /* Used for tx thermal adjustment (eeprom_init, rfregs) */ u_int16_t ee_tx_clip; u_int16_t ee_pwd_84; u_int16_t ee_pwd_90; u_int16_t ee_gain_select; /* RF Calibration settings (reset, rfregs) */ u_int16_t ee_i_cal[AR5K_EEPROM_N_MODES]; u_int16_t ee_q_cal[AR5K_EEPROM_N_MODES]; u_int16_t ee_fixed_bias[AR5K_EEPROM_N_MODES]; u_int16_t ee_turbo_max_power[AR5K_EEPROM_N_MODES]; u_int16_t ee_xr_power[AR5K_EEPROM_N_MODES]; u_int16_t ee_switch_settling[AR5K_EEPROM_N_MODES]; u_int16_t ee_atn_tx_rx[AR5K_EEPROM_N_MODES]; u_int16_t ee_ant_control[AR5K_EEPROM_N_MODES][AR5K_EEPROM_N_PCDAC]; u_int16_t ee_ob[AR5K_EEPROM_N_MODES][AR5K_EEPROM_N_OBDB]; u_int16_t ee_db[AR5K_EEPROM_N_MODES][AR5K_EEPROM_N_OBDB]; u_int16_t ee_tx_end2xlna_enable[AR5K_EEPROM_N_MODES]; u_int16_t ee_tx_end2xpa_disable[AR5K_EEPROM_N_MODES]; u_int16_t ee_tx_frm2xpa_enable[AR5K_EEPROM_N_MODES]; u_int16_t ee_thr_62[AR5K_EEPROM_N_MODES]; u_int16_t ee_xlna_gain[AR5K_EEPROM_N_MODES]; u_int16_t ee_xpd[AR5K_EEPROM_N_MODES]; u_int16_t ee_x_gain[AR5K_EEPROM_N_MODES]; u_int16_t ee_i_gain[AR5K_EEPROM_N_MODES]; u_int16_t ee_margin_tx_rx[AR5K_EEPROM_N_MODES]; u_int16_t ee_switch_settling_turbo[AR5K_EEPROM_N_MODES]; u_int16_t ee_margin_tx_rx_turbo[AR5K_EEPROM_N_MODES]; u_int16_t ee_atn_tx_rx_turbo[AR5K_EEPROM_N_MODES]; /* Power calibration data */ u_int16_t ee_false_detect[AR5K_EEPROM_N_MODES]; u_int16_t ee_cal_piers_a; struct ath5k_chan_pcal_info ee_pwr_cal_a[AR5K_EEPROM_N_5GHZ_CHAN]; u_int16_t ee_cal_piers_b; struct ath5k_chan_pcal_info ee_pwr_cal_b[AR5K_EEPROM_N_2GHZ_CHAN]; u_int16_t ee_cal_piers_g; struct ath5k_chan_pcal_info ee_pwr_cal_g[AR5K_EEPROM_N_2GHZ_CHAN]; /* Per rate target power levels */ u_int16_t ee_rate_target_pwr_num_a; struct ath5k_rate_pcal_info ee_rate_tpwr_a[AR5K_EEPROM_N_5GHZ_CHAN]; u_int16_t ee_rate_target_pwr_num_b; struct ath5k_rate_pcal_info ee_rate_tpwr_b[AR5K_EEPROM_N_2GHZ_CHAN]; u_int16_t ee_rate_target_pwr_num_g; struct ath5k_rate_pcal_info ee_rate_tpwr_g[AR5K_EEPROM_N_2GHZ_CHAN]; /* Conformance test limits (Unused) */ u_int16_t ee_ctls; u_int16_t ee_ctl[AR5K_EEPROM_MAX_CTLS]; /* Noise Floor Calibration settings */ int16_t ee_noise_floor_thr[AR5K_EEPROM_N_MODES]; int8_t ee_adc_desired_size[AR5K_EEPROM_N_MODES]; int8_t ee_pga_desired_size[AR5K_EEPROM_N_MODES]; int8_t ee_adc_desired_size_turbo[AR5K_EEPROM_N_MODES]; int8_t ee_pga_desired_size_turbo[AR5K_EEPROM_N_MODES]; int8_t ee_pd_gain_overlap; u_int32_t ee_antenna[AR5K_EEPROM_N_MODES][AR5K_ANT_MAX];};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -