1 /*
2  * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
3  * Copyright (c) 2002-2008 Atheros Communications, Inc.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  *
17  * $Id: ah_eeprom_v3.h,v 1.1.1.1 2008/12/11 04:46:25 alc Exp $
18  */
19 #ifndef _ATH_AH_EEPROM_V3_H_
20 #define _ATH_AH_EEPROM_V3_H_
21 
22 #include "ah_eeprom.h"
23 
24 /* EEPROM defines for Version 2 & 3 AR5211 chips */
25 #define   AR_EEPROM_RFSILENT  0x0f      /* RF Silent/Clock Run Enable */
26 #define   AR_EEPROM_MAC(i)    (0x1d+(i)) /* MAC address word */
27 #define   AR_EEPROM_MAGIC               0x3d      /* magic number */
28 #define   AR_EEPROM_PROTECT   0x3f      /* EEPROM protect bits */
29 #define   AR_EEPROM_PROTECT_PCIE        0x01      /* EEPROM protect bits for Condor/Swan*/
30 #define   AR_EEPROM_REG_DOMAIN          0xbf      /* current regulatory domain */
31 #define   AR_EEPROM_ATHEROS_BASE        0xc0      /* Base of Atheros-specific data */
32 #define   AR_EEPROM_ATHEROS(i)          (AR_EEPROM_ATHEROS_BASE+(i))
33 #define   AR_EEPROM_ATHEROS_MAX         (0x400-AR_EEPROM_ATHEROS_BASE)
34 #define   AR_EEPROM_VERSION   AR_EEPROM_ATHEROS(1)
35 
36 /* FLASH(EEPROM) Defines for AR531X chips */
37 #define AR_EEPROM_SIZE_LOWER    0x1b    /* size info -- lower */
38 #define AR_EEPROM_SIZE_UPPER    0x1c    /* size info -- upper */
39 #define AR_EEPROM_SIZE_UPPER_MASK 0xfff0
40 #define AR_EEPROM_SIZE_UPPER_SHIFT 4
41 #define   AR_EEPROM_SIZE_ENDLOC_SHIFT 12
42 #define AR_EEPROM_ATHEROS_MAX_LOC 0x400
43 #define AR_EEPROM_ATHEROS_MAX_OFF (AR_EEPROM_ATHEROS_MAX_LOC-AR_EEPROM_ATHEROS_BASE)
44 
45 /* regulatory capabilities offsets */
46 #define AR_EEPROM_REG_CAPABILITIES_OFFSET                   0xCA
47 #define AR_EEPROM_REG_CAPABILITIES_OFFSET_PRE4_0  0xCF /* prior to 4.0 */
48 
49 /* regulatory capabilities */
50 #define AR_EEPROM_EEREGCAP_EN_FCC_MIDBAND         0x0040
51 #define AR_EEPROM_EEREGCAP_EN_KK_U1_EVEN          0x0080
52 #define AR_EEPROM_EEREGCAP_EN_KK_U2               0x0100
53 #define AR_EEPROM_EEREGCAP_EN_KK_MIDBAND          0x0200
54 #define AR_EEPROM_EEREGCAP_EN_KK_U1_ODD           0x0400
55 #define AR_EEPROM_EEREGCAP_EN_KK_NEW_11A          0x0800
56 
57 /* regulatory capabilities prior to eeprom version 4.0 */
58 #define AR_EEPROM_EEREGCAP_EN_KK_U1_ODD_PRE4_0    0x4000
59 #define AR_EEPROM_EEREGCAP_EN_KK_NEW_11A_PRE4_0   0x8000
60 
61 /*
62  * AR2413 (includes AR5413)
63  */
64 #define AR_EEPROM_SERIAL_NUM_OFFSET     0xB0    /* EEPROM serial number */
65 #define AR_EEPROM_SERIAL_NUM_SIZE       12      /* EEPROM serial number size */
66 #define AR_EEPROM_CAPABILITIES_OFFSET   0xC9    /* EEPROM Location of capabilities */
67 
68 #define AR_EEPROM_EEPCAP_COMPRESS_DIS   0x0001
69 #define AR_EEPROM_EEPCAP_AES_DIS        0x0002
70 #define AR_EEPROM_EEPCAP_FASTFRAME_DIS  0x0004
71 #define AR_EEPROM_EEPCAP_BURST_DIS      0x0008
72 #define AR_EEPROM_EEPCAP_MAXQCU                   0x01F0
73 #define AR_EEPROM_EEPCAP_MAXQCU_S       4
74 #define AR_EEPROM_EEPCAP_HEAVY_CLIP_EN  0x0200
75 #define AR_EEPROM_EEPCAP_KC_ENTRIES     0xF000
76 #define AR_EEPROM_EEPCAP_KC_ENTRIES_S   12
77 
78 /* XXX used to index various EEPROM-derived data structures */
79 enum {
80           headerInfo11A       = 0,
81           headerInfo11B       = 1,
82           headerInfo11G       = 2,
83 };
84 
85 #define GROUPS_OFFSET3_2      0x100     /* groups offset for ver3.2 and earlier */
86 #define GROUPS_OFFSET3_3      0x150     /* groups offset for ver3.3 */
87 /* relative offset of GROUPi to GROUPS_OFFSET */
88 #define GROUP1_OFFSET                   0x0
89 #define GROUP2_OFFSET                   0x5
90 #define GROUP3_OFFSET                   0x37
91 #define GROUP4_OFFSET                   0x46
92 #define GROUP5_OFFSET                   0x55
93 #define GROUP6_OFFSET                   0x65
94 #define GROUP7_OFFSET                   0x69
95 #define GROUP8_OFFSET                   0x6f
96 
97 /* RF silent fields in EEPROM */
98 #define AR_EEPROM_RFSILENT_GPIO_SEL     0x001c
99 #define AR_EEPROM_RFSILENT_GPIO_SEL_S   2
100 #define AR_EEPROM_RFSILENT_POLARITY     0x0002
101 #define AR_EEPROM_RFSILENT_POLARITY_S   1
102 
103 /* Protect Bits RP is read protect, WP is write protect */
104 #define   AR_EEPROM_PROTECT_RP_0_31     0x0001
105 #define   AR_EEPROM_PROTECT_WP_0_31     0x0002
106 #define   AR_EEPROM_PROTECT_RP_32_63    0x0004
107 #define   AR_EEPROM_PROTECT_WP_32_63    0x0008
108 #define   AR_EEPROM_PROTECT_RP_64_127   0x0010
109 #define   AR_EEPROM_PROTECT_WP_64_127   0x0020
110 #define   AR_EEPROM_PROTECT_RP_128_191  0x0040
111 #define   AR_EEPROM_PROTECT_WP_128_191  0x0080
112 #define   AR_EEPROM_PROTECT_RP_192_207  0x0100
113 #define   AR_EEPROM_PROTECT_WP_192_207  0x0200
114 #define   AR_EEPROM_PROTECT_RP_208_223  0x0400
115 #define   AR_EEPROM_PROTECT_WP_208_223  0x0800
116 #define   AR_EEPROM_PROTECT_RP_224_239  0x1000
117 #define   AR_EEPROM_PROTECT_WP_224_239  0x2000
118 #define   AR_EEPROM_PROTECT_RP_240_255  0x4000
119 #define   AR_EEPROM_PROTECT_WP_240_255  0x8000
120 
121 #define   AR_EEPROM_MODAL_SPURS                   5
122 #define   AR_SPUR_5413_1                          1640      /* Freq 2464 */
123 #define   AR_SPUR_5413_2                          1200      /* Freq 2420 */
124 
125 /*
126  * EEPROM fixed point conversion scale factors.
127  * NB: if you change one be sure to keep the other in sync.
128  */
129 #define EEP_SCALE   100                 /* conversion scale to avoid fp arith */
130 #define EEP_DELTA   10                  /* SCALE/10, to avoid arith divide */
131 
132 #define PWR_MIN               0
133 #define PWR_MAX               3150                /* 31.5 * SCALE */
134 #define PWR_STEP    50                  /* 0.5 * SCALE */
135 /* Keep 2 above defines together */
136 
137 #define NUM_11A_EEPROM_CHANNELS         10
138 #define NUM_2_4_EEPROM_CHANNELS         3
139 #define NUM_PCDAC_VALUES      11
140 #define NUM_TEST_FREQUENCIES  8
141 #define NUM_EDGES             8
142 #define NUM_INTERCEPTS                  11
143 #define FREQ_MASK             0x7f
144 #define FREQ_MASK_3_3                   0xff      /* expanded in version 3.3 */
145 #define PCDAC_MASK            0x3f
146 #define POWER_MASK            0x3f
147 #define   NON_EDGE_FLAG_MASK  0x40
148 #define CHANNEL_POWER_INFO    8
149 #define OBDB_UNSET            0xffff
150 #define   CHANNEL_UNUSED                0xff
151 #define   SCALE_OC_DELTA(_x)  (((_x) * 2) / 10)
152 
153 /* Used during pcdac table construction */
154 #define PCDAC_START 1
155 #define PCDAC_STOP  63
156 #define PCDAC_STEP  1
157 #define PWR_TABLE_SIZE        64
158 #define   MAX_RATE_POWER      63
159 
160 /* Used during power/rate table construction */
161 #define NUM_CTLS    16
162 #define   NUM_CTLS_3_3        32                  /* expanded in version 3.3 */
163 #define   NUM_CTLS_MAX        NUM_CTLS_3_3
164 
165 typedef struct fullPcdacStruct {
166           uint16_t  channelValue;
167           uint16_t  pcdacMin;
168           uint16_t  pcdacMax;
169           uint16_t  numPcdacValues;
170           uint16_t  PcdacValues[64];
171           /* power is 32bit since in dest it is scaled */
172           int16_t             PwrValues[64];
173 } FULL_PCDAC_STRUCT;
174 
175 typedef struct dataPerChannel {
176           uint16_t  channelValue;
177           uint16_t  pcdacMin;
178           uint16_t  pcdacMax;
179           uint16_t  numPcdacValues;
180           uint16_t  PcdacValues[NUM_PCDAC_VALUES];
181           /* NB: power is 32bit since in dest it is scaled */
182           int16_t             PwrValues[NUM_PCDAC_VALUES];
183 } DATA_PER_CHANNEL;
184 
185 /* points to the appropriate pcdac structs in the above struct based on mode */
186 typedef struct pcdacsEeprom {
187           const uint16_t      *pChannelList;
188           uint16_t  numChannels;
189           const DATA_PER_CHANNEL *pDataPerChannel;
190 } PCDACS_EEPROM;
191 
192 typedef struct trgtPowerInfo {
193           uint16_t  twicePwr54;
194           uint16_t  twicePwr48;
195           uint16_t  twicePwr36;
196           uint16_t  twicePwr6_24;
197           uint16_t  testChannel;
198 } TRGT_POWER_INFO;
199 
200 typedef struct trgtPowerAllModes {
201           uint16_t  numTargetPwr_11a;
202           TRGT_POWER_INFO trgtPwr_11a[NUM_TEST_FREQUENCIES];
203           uint16_t  numTargetPwr_11g;
204           TRGT_POWER_INFO trgtPwr_11g[3];
205           uint16_t  numTargetPwr_11b;
206           TRGT_POWER_INFO trgtPwr_11b[2];
207 } TRGT_POWER_ALL_MODES;
208 
209 typedef struct cornerCalInfo {
210           uint16_t  gSel;
211           uint16_t  pd84;
212           uint16_t  pd90;
213           uint16_t  clip;
214 } CORNER_CAL_INFO;
215 
216 /*
217  * EEPROM version 4 definitions
218  */
219 #define NUM_XPD_PER_CHANNEL      4
220 #define NUM_POINTS_XPD0          4
221 #define NUM_POINTS_XPD3          3
222 #define IDEAL_10dB_INTERCEPT_2G  35
223 #define IDEAL_10dB_INTERCEPT_5G  55
224 
225 #define   TENX_OFDM_CCK_DELTA_INIT      15                  /* power 1.5 dbm */
226 #define   TENX_CH14_FILTER_CCK_DELTA_INIT         15                  /* power 1.5 dbm */
227 #define   CCK_OFDM_GAIN_DELTA           15
228 
229 #define NUM_TARGET_POWER_LOCATIONS_11B  4
230 #define NUM_TARGET_POWER_LOCATIONS_11G  6
231 
232 
233 typedef struct {
234           uint16_t  xpd_gain;
235           uint16_t  numPcdacs;
236           uint16_t  pcdac[NUM_POINTS_XPD0];
237           int16_t             pwr_t4[NUM_POINTS_XPD0];      /* or gainF */
238 } EXPN_DATA_PER_XPD_5112;
239 
240 typedef struct {
241           uint16_t  channelValue;
242           int16_t             maxPower_t4;
243           EXPN_DATA_PER_XPD_5112        pDataPerXPD[NUM_XPD_PER_CHANNEL];
244 } EXPN_DATA_PER_CHANNEL_5112;
245 
246 typedef struct {
247           uint16_t  *pChannels;
248           uint16_t  numChannels;
249           uint16_t  xpdMask;  /* mask of permitted xpd_gains */
250           EXPN_DATA_PER_CHANNEL_5112 *pDataPerChannel;
251 } EEPROM_POWER_EXPN_5112;
252 
253 typedef struct {
254           uint16_t  channelValue;
255           uint16_t  pcd1_xg0;
256           int16_t             pwr1_xg0;
257           uint16_t  pcd2_delta_xg0;
258           int16_t             pwr2_xg0;
259           uint16_t  pcd3_delta_xg0;
260           int16_t             pwr3_xg0;
261           uint16_t  pcd4_delta_xg0;
262           int16_t             pwr4_xg0;
263           int16_t             maxPower_t4;
264           int16_t             pwr1_xg3; /* pcdac = 20 */
265           int16_t             pwr2_xg3; /* pcdac = 35 */
266           int16_t             pwr3_xg3; /* pcdac = 63 */
267           /* XXX - Should be pwr1_xg2, etc to agree with documentation */
268 } EEPROM_DATA_PER_CHANNEL_5112;
269 
270 typedef struct {
271           uint16_t  pChannels[NUM_11A_EEPROM_CHANNELS];
272           uint16_t  numChannels;
273           uint16_t  xpdMask;  /* mask of permitted xpd_gains */
274           EEPROM_DATA_PER_CHANNEL_5112 pDataPerChannel[NUM_11A_EEPROM_CHANNELS];
275 } EEPROM_POWER_5112;
276 
277 /*
278  * EEPROM version 5 definitions (Griffin, et. al.).
279  */
280 #define NUM_2_4_EEPROM_CHANNELS_2413    4
281 #define NUM_11A_EEPROM_CHANNELS_2413    10
282 #define PWR_TABLE_SIZE_2413             128
283 
284 /* Used during pdadc construction */
285 #define   MAX_NUM_PDGAINS_PER_CHANNEL   4
286 #define   NUM_PDGAINS_PER_CHANNEL                 2
287 #define   NUM_POINTS_LAST_PDGAIN                  5
288 #define   NUM_POINTS_OTHER_PDGAINS      4
289 #define   XPD_GAIN1_GEN5                          3
290 #define   XPD_GAIN2_GEN5                          1
291 #define   MAX_PWR_RANGE_IN_HALF_DB      64
292 #define   PD_GAIN_BOUNDARY_STRETCH_IN_HALF_DB     4
293 
294 typedef struct {
295           uint16_t  pd_gain;
296           uint16_t  numVpd;
297           uint16_t  Vpd[NUM_POINTS_LAST_PDGAIN];
298           int16_t             pwr_t4[NUM_POINTS_LAST_PDGAIN];         /* or gainF */
299 } RAW_DATA_PER_PDGAIN_2413;
300 
301 typedef struct {
302           uint16_t  channelValue;
303           int16_t             maxPower_t4;
304           uint16_t  numPdGains;         /* # Pd Gains per channel */
305           RAW_DATA_PER_PDGAIN_2413 pDataPerPDGain[MAX_NUM_PDGAINS_PER_CHANNEL];
306 } RAW_DATA_PER_CHANNEL_2413;
307 
308 /* XXX: assumes NUM_11A_EEPROM_CHANNELS_2413 >= NUM_2_4_EEPROM_CHANNELS_2413 ??? */
309 typedef struct {
310           uint16_t  pChannels[NUM_11A_EEPROM_CHANNELS_2413];
311           uint16_t  numChannels;
312           uint16_t  xpd_mask; /* mask of permitted xpd_gains */
313           RAW_DATA_PER_CHANNEL_2413 pDataPerChannel[NUM_11A_EEPROM_CHANNELS_2413];
314 } RAW_DATA_STRUCT_2413;
315 
316 typedef struct {
317           uint16_t  channelValue;
318           uint16_t  numPdGains;
319           uint16_t  Vpd_I[MAX_NUM_PDGAINS_PER_CHANNEL];
320           int16_t             pwr_I[MAX_NUM_PDGAINS_PER_CHANNEL];
321           uint16_t  Vpd_delta[NUM_POINTS_LAST_PDGAIN]
322                                         [MAX_NUM_PDGAINS_PER_CHANNEL];
323           int16_t             pwr_delta_t2[NUM_POINTS_LAST_PDGAIN]
324                                         [MAX_NUM_PDGAINS_PER_CHANNEL];
325           int16_t             maxPower_t4;
326 } EEPROM_DATA_PER_CHANNEL_2413;
327 
328 typedef struct {
329           uint16_t  pChannels[NUM_11A_EEPROM_CHANNELS_2413];
330           uint16_t  numChannels;
331           uint16_t  xpd_mask; /* mask of permitted xpd_gains */
332           EEPROM_DATA_PER_CHANNEL_2413 pDataPerChannel[NUM_11A_EEPROM_CHANNELS_2413];
333 } EEPROM_DATA_STRUCT_2413;
334 
335 /*
336  * Information retrieved from EEPROM.
337  */
338 typedef struct {
339           uint16_t  ee_version;                   /* Version field */
340           uint16_t  ee_protect;                   /* EEPROM protect field */
341           uint16_t  ee_regdomain;                 /* Regulatory domain */
342 
343           /* General Device Parameters */
344           uint16_t  ee_turbo5Disable;
345           uint16_t  ee_turbo2Disable;
346           uint16_t  ee_rfKill;
347           uint16_t  ee_deviceType;
348           uint16_t  ee_turbo2WMaxPower5;
349           uint16_t  ee_turbo2WMaxPower2;
350           uint16_t  ee_xrTargetPower5;
351           uint16_t  ee_xrTargetPower2;
352           uint16_t  ee_Amode;
353           uint16_t  ee_regCap;
354           uint16_t  ee_Bmode;
355           uint16_t  ee_Gmode;
356           int8_t              ee_antennaGainMax[2];
357           uint16_t  ee_xtnd5GSupport;
358           uint8_t             ee_cckOfdmPwrDelta;
359           uint8_t             ee_exist32kHzCrystal;
360           uint16_t  ee_targetPowersStart;
361           uint16_t  ee_fixedBias5;
362           uint16_t  ee_fixedBias2;
363           uint16_t  ee_cckOfdmGainDelta;
364           uint16_t  ee_scaledCh14FilterCckDelta;
365           uint16_t  ee_eepMap;
366           uint16_t  ee_earStart;
367 
368           /* 5 GHz / 2.4 GHz CKK / 2.4 GHz OFDM common parameters */
369           uint16_t  ee_switchSettling[3];
370           uint16_t  ee_txrxAtten[3];
371           uint16_t  ee_txEndToXLNAOn[3];
372           uint16_t  ee_thresh62[3];
373           uint16_t  ee_txEndToXPAOff[3];
374           uint16_t  ee_txFrameToXPAOn[3];
375           int8_t              ee_adcDesiredSize[3];          /* 8-bit signed value */
376           int8_t              ee_pgaDesiredSize[3];          /* 8-bit signed value */
377           int16_t             ee_noiseFloorThresh[3];
378           uint16_t  ee_xlnaGain[3];
379           uint16_t  ee_xgain[3];
380           uint16_t  ee_xpd[3];
381           uint16_t  ee_antennaControl[11][3];
382           uint16_t  ee_falseDetectBackoff[3];
383           uint16_t  ee_gainI[3];
384           uint16_t  ee_rxtxMargin[3];
385 
386           /* new parameters added for the AR2413 */
387           HAL_BOOL  ee_disableXr5;
388           HAL_BOOL  ee_disableXr2;
389           uint16_t  ee_eepMap2PowerCalStart;
390           uint16_t  ee_capField;
391 
392           uint16_t  ee_switchSettlingTurbo[2];
393           uint16_t  ee_txrxAttenTurbo[2];
394           int8_t              ee_adcDesiredSizeTurbo[2];
395           int8_t              ee_pgaDesiredSizeTurbo[2];
396           uint16_t  ee_rxtxMarginTurbo[2];
397 
398           /* 5 GHz parameters */
399           uint16_t  ee_ob1;
400           uint16_t  ee_db1;
401           uint16_t  ee_ob2;
402           uint16_t  ee_db2;
403           uint16_t  ee_ob3;
404           uint16_t  ee_db3;
405           uint16_t  ee_ob4;
406           uint16_t  ee_db4;
407 
408           /* 2.4 GHz parameters */
409           uint16_t  ee_obFor24;
410           uint16_t  ee_dbFor24;
411           uint16_t  ee_obFor24g;
412           uint16_t  ee_dbFor24g;
413           uint16_t  ee_ob2GHz[2];
414           uint16_t  ee_db2GHz[2];
415           uint16_t  ee_numCtls;
416           uint16_t  ee_ctl[NUM_CTLS_MAX];
417           uint16_t  ee_iqCalI[2];
418           uint16_t  ee_iqCalQ[2];
419           uint16_t  ee_calPier11g[NUM_2_4_EEPROM_CHANNELS];
420           uint16_t  ee_calPier11b[NUM_2_4_EEPROM_CHANNELS];
421 
422           /* corner calibration information */
423           CORNER_CAL_INFO     ee_cornerCal;
424 
425           uint16_t  ee_opCap;
426 
427           /* 11a info */
428           uint16_t  ee_channels11a[NUM_11A_EEPROM_CHANNELS];
429           uint16_t  ee_numChannels11a;
430           DATA_PER_CHANNEL ee_dataPerChannel11a[NUM_11A_EEPROM_CHANNELS];
431 
432           uint16_t  ee_numChannels2_4;
433           uint16_t  ee_channels11g[NUM_2_4_EEPROM_CHANNELS];
434           uint16_t  ee_channels11b[NUM_2_4_EEPROM_CHANNELS];
435           uint16_t  ee_spurChans[AR_EEPROM_MODAL_SPURS][2];
436 
437           /* 11g info */
438           DATA_PER_CHANNEL ee_dataPerChannel11g[NUM_2_4_EEPROM_CHANNELS];
439 
440           /* 11b info */
441           DATA_PER_CHANNEL ee_dataPerChannel11b[NUM_2_4_EEPROM_CHANNELS];
442 
443           TRGT_POWER_ALL_MODES ee_tpow;
444 
445           RD_EDGES_POWER      ee_rdEdgesPower[NUM_EDGES*NUM_CTLS_MAX];
446 
447           union {
448                     EEPROM_POWER_EXPN_5112  eu_modePowerArray5112[3];
449                     RAW_DATA_STRUCT_2413          eu_rawDataset2413[3];
450           } ee_u;
451 } HAL_EEPROM;
452 
453 /* write-around defines */
454 #define   ee_numTargetPwr_11a ee_tpow.numTargetPwr_11a
455 #define   ee_trgtPwr_11a                ee_tpow.trgtPwr_11a
456 #define   ee_numTargetPwr_11g ee_tpow.numTargetPwr_11g
457 #define   ee_trgtPwr_11g                ee_tpow.trgtPwr_11g
458 #define   ee_numTargetPwr_11b ee_tpow.numTargetPwr_11b
459 #define   ee_trgtPwr_11b                ee_tpow.trgtPwr_11b
460 #define   ee_modePowerArray5112         ee_u.eu_modePowerArray5112
461 #define   ee_rawDataset2413   ee_u.eu_rawDataset2413
462 #endif /* _ATH_AH_EEPROM_V3_H_ */
463