#ifndef _ATH_AH_EEPROM_H_
#define _ATH_AH_EEPROM_H_
#define AR_EEPROM_VER1 0x1000
#define AR_EEPROM_VER3 0x3000
#define AR_EEPROM_VER3_1 0x3001
#define AR_EEPROM_VER3_2 0x3002
#define AR_EEPROM_VER3_3 0x3003
#define AR_EEPROM_VER3_4 0x3004
#define AR_EEPROM_VER4 0x4000
#define AR_EEPROM_VER4_0 0x4000
#define AR_EEPROM_VER4_1 0x4001
#define AR_EEPROM_VER4_2 0x4002
#define AR_EEPROM_VER4_3 0x4003
#define AR_EEPROM_VER4_6 0x4006
#define AR_EEPROM_VER4_7 0x3007
#define AR_EEPROM_VER4_9 0x4009
#define AR_EEPROM_VER5 0x5000
#define AR_EEPROM_VER5_0 0x5000
#define AR_EEPROM_VER5_1 0x5001
#define AR_EEPROM_VER5_3 0x5003
#define AR_EEPROM_VER5_4 0x5004
#define AR_EEPROM_VER14 0xE000
#define AR_EEPROM_VER14_1 0xE001
#define AR_EEPROM_VER14_2 0xE002
#define AR_EEPROM_VER14_3 0xE003
#define AR_EEPROM_VER14_7 0xE007
#define AR_EEPROM_VER14_9 0xE009
#define AR_EEPROM_VER14_16 0xE010
#define AR_EEPROM_VER14_17 0xE011
#define AR_EEPROM_VER14_19 0xE013
enum {
AR_EEP_RFKILL,
AR_EEP_AMODE,
AR_EEP_BMODE,
AR_EEP_GMODE,
AR_EEP_TURBO5DISABLE,
AR_EEP_TURBO2DISABLE,
AR_EEP_ISTALON,
AR_EEP_32KHZCRYSTAL,
AR_EEP_MACADDR,
AR_EEP_COMPRESS,
AR_EEP_FASTFRAME,
AR_EEP_AES,
AR_EEP_BURST,
AR_EEP_MAXQCU,
AR_EEP_KCENTRIES,
AR_EEP_NFTHRESH_5,
AR_EEP_NFTHRESH_2,
AR_EEP_REGDMN_0,
AR_EEP_REGDMN_1,
AR_EEP_OPCAP,
AR_EEP_OPMODE,
AR_EEP_RFSILENT,
AR_EEP_OB_5,
AR_EEP_DB_5,
AR_EEP_OB_2,
AR_EEP_DB_2,
AR_EEP_TXMASK,
AR_EEP_RXMASK,
AR_EEP_RXGAIN_TYPE,
AR_EEP_TXGAIN_TYPE,
AR_EEP_DAC_HPWR_5G,
AR_EEP_OL_PWRCTRL,
AR_EEP_FSTCLK_5G,
AR_EEP_ANTGAINMAX_5,
AR_EEP_ANTGAINMAX_2,
AR_EEP_WRITEPROTECT,
AR_EEP_PWR_TABLE_OFFSET,
AR_EEP_PWDCLKIND,
AR_EEP_TEMPSENSE_SLOPE,
AR_EEP_TEMPSENSE_SLOPE_PAL_ON,
AR_EEP_FRAC_N_5G,
AR_EEP_DRIVE_STRENGTH,
AR_EEP_PAPRD_ENABLED,
};
typedef struct {
uint16_t rdEdge;
uint16_t twice_rdEdgePower;
HAL_BOOL flag;
} RD_EDGES_POWER;
#define SD_NO_CTL 0xf0
#define NO_CTL 0xff
#define CTL_MODE_M 0x0f
#define CTL_11A 0
#define CTL_11B 1
#define CTL_11G 2
#define CTL_TURBO 3
#define CTL_108G 4
#define CTL_2GHT20 5
#define CTL_5GHT20 6
#define CTL_2GHT40 7
#define CTL_5GHT40 8
#define HAL_REG_DMN_MASK 0xf0
#define HAL_REGDMN_FCC 0x10
#define HAL_REGDMN_MKK 0x40
#define HAL_REGDMN_ETSI 0x30
#define is_reg_dmn_fcc(reg_dmn) \
(((reg_dmn & HAL_REG_DMN_MASK) == HAL_REGDMN_FCC) ? 1 : 0)
#define is_reg_dmn_etsi(reg_dmn) \
(((reg_dmn & HAL_REG_DMN_MASK) == HAL_REGDMN_ETSI) ? 1 : 0)
#define is_reg_dmn_mkk(reg_dmn) \
(((reg_dmn & HAL_REG_DMN_MASK) == HAL_REGDMN_MKK) ? 1 : 0)
#define AR_EEPROM_EEREGCAP_EN_FCC_MIDBAND 0x0040
#define AR_EEPROM_EEREGCAP_EN_KK_U1_EVEN 0x0080
#define AR_EEPROM_EEREGCAP_EN_KK_U2 0x0100
#define AR_EEPROM_EEREGCAP_EN_KK_MIDBAND 0x0200
#define AR_EEPROM_EEREGCAP_EN_KK_U1_ODD 0x0400
#define AR_EEPROM_EEREGCAP_EN_KK_NEW_11A 0x0800
#define AR_EEPROM_EEREGCAP_EN_KK_U1_ODD_PRE4_0 0x4000
#define AR_EEPROM_EEREGCAP_EN_KK_NEW_11A_PRE4_0 0x8000
#define AR_NO_SPUR 0x8000
#define MAX_RATE_POWER 63
HAL_STATUS ath_hal_v1EepromAttach(struct ath_hal *ah);
HAL_STATUS ath_hal_legacyEepromAttach(struct ath_hal *ah);
HAL_STATUS ath_hal_v14EepromAttach(struct ath_hal *ah);
HAL_STATUS ath_hal_v4kEepromAttach(struct ath_hal *ah);
HAL_STATUS ath_hal_9287EepromAttach(struct ath_hal *ah);
#endif