00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 struct ath5k_ini_rfbuffer {
00052 u8 rfb_bank;
00053 u16 rfb_ctrl_register;
00054 u32 rfb_mode_data[5];
00055 };
00056
00057
00058
00059
00060
00061
00062 struct ath5k_rfb_field {
00063 u8 len;
00064 u16 pos;
00065 u8 col;
00066 };
00067
00068
00069
00070
00071 struct ath5k_rf_reg {
00072 u8 bank;
00073 u8 index;
00074 struct ath5k_rfb_field field;
00075 };
00076
00077
00078
00079
00080
00081 enum ath5k_rf_regs_idx {
00082
00083 AR5K_RF_OB_2GHZ = 0,
00084 AR5K_RF_OB_5GHZ,
00085 AR5K_RF_DB_2GHZ,
00086 AR5K_RF_DB_5GHZ,
00087 AR5K_RF_FIXED_BIAS_A,
00088 AR5K_RF_FIXED_BIAS_B,
00089 AR5K_RF_PWD_XPD,
00090 AR5K_RF_XPD_SEL,
00091 AR5K_RF_XPD_GAIN,
00092 AR5K_RF_PD_GAIN_LO,
00093 AR5K_RF_PD_GAIN_HI,
00094 AR5K_RF_HIGH_VC_CP,
00095 AR5K_RF_MID_VC_CP,
00096 AR5K_RF_LOW_VC_CP,
00097 AR5K_RF_PUSH_UP,
00098 AR5K_RF_PAD2GND,
00099 AR5K_RF_XB2_LVL,
00100 AR5K_RF_XB5_LVL,
00101 AR5K_RF_PWD_ICLOBUF_2G,
00102 AR5K_RF_PWD_84,
00103 AR5K_RF_PWD_90,
00104 AR5K_RF_PWD_130,
00105 AR5K_RF_PWD_131,
00106 AR5K_RF_PWD_132,
00107 AR5K_RF_PWD_136,
00108 AR5K_RF_PWD_137,
00109 AR5K_RF_PWD_138,
00110 AR5K_RF_PWD_166,
00111 AR5K_RF_PWD_167,
00112 AR5K_RF_DERBY_CHAN_SEL_MODE,
00113
00114 AR5K_RF_GAIN_I,
00115 AR5K_RF_PLO_SEL,
00116 AR5K_RF_RFGAIN_SEL,
00117 AR5K_RF_RFGAIN_STEP,
00118 AR5K_RF_WAIT_S,
00119 AR5K_RF_WAIT_I,
00120 AR5K_RF_MAX_TIME,
00121 AR5K_RF_MIXVGA_OVR,
00122 AR5K_RF_MIXGAIN_OVR,
00123 AR5K_RF_MIXGAIN_STEP,
00124 AR5K_RF_PD_DELAY_A,
00125 AR5K_RF_PD_DELAY_B,
00126 AR5K_RF_PD_DELAY_XR,
00127 AR5K_RF_PD_PERIOD_A,
00128 AR5K_RF_PD_PERIOD_B,
00129 AR5K_RF_PD_PERIOD_XR,
00130 };
00131
00132
00133
00134
00135
00136
00137
00138 #define AR5K_RF5111_OB_2GHZ { 3, 119, 0 }
00139 #define AR5K_RF5111_DB_2GHZ { 3, 122, 0 }
00140
00141 #define AR5K_RF5111_OB_5GHZ { 3, 104, 0 }
00142 #define AR5K_RF5111_DB_5GHZ { 3, 107, 0 }
00143
00144 #define AR5K_RF5111_PWD_XPD { 1, 95, 0 }
00145 #define AR5K_RF5111_XPD_GAIN { 4, 96, 0 }
00146
00147
00148 #define AR5K_RF5111_PWD(_n) { 1, (135 - _n), 3 }
00149
00150
00151 #define AR5K_RF5111_GAIN_I { 6, 29, 0 }
00152 #define AR5K_RF5111_PLO_SEL { 1, 4, 0 }
00153 #define AR5K_RF5111_RFGAIN_SEL { 1, 36, 0 }
00154 #define AR5K_RF5111_RFGAIN_STEP { 6, 37, 0 }
00155
00156 #define AR5K_RF5111_WAIT_S { 5, 19, 0 }
00157 #define AR5K_RF5111_WAIT_I { 5, 24, 0 }
00158 #define AR5K_RF5111_MAX_TIME { 2, 49, 0 }
00159
00160 static const struct ath5k_rf_reg rf_regs_5111[] = {
00161 {6, AR5K_RF_OB_2GHZ, AR5K_RF5111_OB_2GHZ},
00162 {6, AR5K_RF_DB_2GHZ, AR5K_RF5111_DB_2GHZ},
00163 {6, AR5K_RF_OB_5GHZ, AR5K_RF5111_OB_5GHZ},
00164 {6, AR5K_RF_DB_5GHZ, AR5K_RF5111_DB_5GHZ},
00165 {6, AR5K_RF_PWD_XPD, AR5K_RF5111_PWD_XPD},
00166 {6, AR5K_RF_XPD_GAIN, AR5K_RF5111_XPD_GAIN},
00167 {6, AR5K_RF_PWD_84, AR5K_RF5111_PWD(84)},
00168 {6, AR5K_RF_PWD_90, AR5K_RF5111_PWD(90)},
00169 {7, AR5K_RF_GAIN_I, AR5K_RF5111_GAIN_I},
00170 {7, AR5K_RF_PLO_SEL, AR5K_RF5111_PLO_SEL},
00171 {7, AR5K_RF_RFGAIN_SEL, AR5K_RF5111_RFGAIN_SEL},
00172 {7, AR5K_RF_RFGAIN_STEP, AR5K_RF5111_RFGAIN_STEP},
00173 {7, AR5K_RF_WAIT_S, AR5K_RF5111_WAIT_S},
00174 {7, AR5K_RF_WAIT_I, AR5K_RF5111_WAIT_I},
00175 {7, AR5K_RF_MAX_TIME, AR5K_RF5111_MAX_TIME}
00176 };
00177
00178
00179 static const struct ath5k_ini_rfbuffer rfb_5111[] = {
00180 { 0, 0x989c,
00181
00182 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00183 { 0, 0x989c,
00184 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00185 { 0, 0x989c,
00186 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00187 { 0, 0x989c,
00188 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00189 { 0, 0x989c,
00190 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00191 { 0, 0x989c,
00192 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00193 { 0, 0x989c,
00194 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00195 { 0, 0x989c,
00196 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00197 { 0, 0x989c,
00198 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00199 { 0, 0x989c,
00200 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00201 { 0, 0x989c,
00202 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00203 { 0, 0x989c,
00204 { 0x00380000, 0x00380000, 0x00380000, 0x00380000, 0x00380000 } },
00205 { 0, 0x989c,
00206 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00207 { 0, 0x989c,
00208 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00209 { 0, 0x989c,
00210 { 0x00000000, 0x00000000, 0x000000c0, 0x00000080, 0x00000080 } },
00211 { 0, 0x989c,
00212 { 0x000400f9, 0x000400f9, 0x000400ff, 0x000400fd, 0x000400fd } },
00213 { 0, 0x98d4,
00214 { 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000004 } },
00215 { 1, 0x98d4,
00216 { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },
00217 { 2, 0x98d4,
00218 { 0x00000010, 0x00000014, 0x00000010, 0x00000010, 0x00000014 } },
00219 { 3, 0x98d8,
00220 { 0x00601068, 0x00601068, 0x00601068, 0x00601068, 0x00601068 } },
00221 { 6, 0x989c,
00222 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00223 { 6, 0x989c,
00224 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00225 { 6, 0x989c,
00226 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00227 { 6, 0x989c,
00228 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00229 { 6, 0x989c,
00230 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00231 { 6, 0x989c,
00232 { 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000 } },
00233 { 6, 0x989c,
00234 { 0x04000000, 0x04000000, 0x04000000, 0x04000000, 0x04000000 } },
00235 { 6, 0x989c,
00236 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00237 { 6, 0x989c,
00238 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00239 { 6, 0x989c,
00240 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00241 { 6, 0x989c,
00242 { 0x00000000, 0x00000000, 0x0a000000, 0x00000000, 0x00000000 } },
00243 { 6, 0x989c,
00244 { 0x003800c0, 0x00380080, 0x023800c0, 0x003800c0, 0x003800c0 } },
00245 { 6, 0x989c,
00246 { 0x00020006, 0x00020006, 0x00000006, 0x00020006, 0x00020006 } },
00247 { 6, 0x989c,
00248 { 0x00000089, 0x00000089, 0x00000089, 0x00000089, 0x00000089 } },
00249 { 6, 0x989c,
00250 { 0x000000a0, 0x000000a0, 0x000000a0, 0x000000a0, 0x000000a0 } },
00251 { 6, 0x989c,
00252 { 0x00040007, 0x00040007, 0x00040007, 0x00040007, 0x00040007 } },
00253 { 6, 0x98d4,
00254 { 0x0000001a, 0x0000001a, 0x0000001a, 0x0000001a, 0x0000001a } },
00255 { 7, 0x989c,
00256 { 0x00000040, 0x00000048, 0x00000040, 0x00000040, 0x00000040 } },
00257 { 7, 0x989c,
00258 { 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010 } },
00259 { 7, 0x989c,
00260 { 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000008 } },
00261 { 7, 0x989c,
00262 { 0x0000004f, 0x0000004f, 0x0000004f, 0x0000004f, 0x0000004f } },
00263 { 7, 0x989c,
00264 { 0x000000f1, 0x000000f1, 0x00000061, 0x000000f1, 0x000000f1 } },
00265 { 7, 0x989c,
00266 { 0x0000904f, 0x0000904f, 0x0000904c, 0x0000904f, 0x0000904f } },
00267 { 7, 0x989c,
00268 { 0x0000125a, 0x0000125a, 0x0000129a, 0x0000125a, 0x0000125a } },
00269 { 7, 0x98cc,
00270 { 0x0000000e, 0x0000000e, 0x0000000f, 0x0000000e, 0x0000000e } },
00271 };
00272
00273
00274
00275
00276
00277
00278
00279
00280 #define AR5K_RF5112X_GAIN_I { 6, 14, 0 }
00281 #define AR5K_RF5112X_MIXVGA_OVR { 1, 36, 0 }
00282 #define AR5K_RF5112X_MIXGAIN_OVR { 2, 37, 0 }
00283 #define AR5K_RF5112X_MIXGAIN_STEP { 4, 32, 0 }
00284 #define AR5K_RF5112X_PD_DELAY_A { 4, 58, 0 }
00285 #define AR5K_RF5112X_PD_DELAY_B { 4, 62, 0 }
00286 #define AR5K_RF5112X_PD_DELAY_XR { 4, 66, 0 }
00287 #define AR5K_RF5112X_PD_PERIOD_A { 4, 70, 0 }
00288 #define AR5K_RF5112X_PD_PERIOD_B { 4, 74, 0 }
00289 #define AR5K_RF5112X_PD_PERIOD_XR { 4, 78, 0 }
00290
00291
00292
00293
00294 #define AR5K_RF5112_OB_2GHZ { 3, 269, 0 }
00295 #define AR5K_RF5112_DB_2GHZ { 3, 272, 0 }
00296
00297 #define AR5K_RF5112_OB_5GHZ { 3, 261, 0 }
00298 #define AR5K_RF5112_DB_5GHZ { 3, 264, 0 }
00299
00300 #define AR5K_RF5112_FIXED_BIAS_A { 1, 260, 0 }
00301 #define AR5K_RF5112_FIXED_BIAS_B { 1, 259, 0 }
00302
00303 #define AR5K_RF5112_XPD_SEL { 1, 284, 0 }
00304 #define AR5K_RF5112_XPD_GAIN { 2, 252, 0 }
00305
00306
00307 #define AR5K_RF5112_PWD(_n) { 1, (302 - _n), 3 }
00308
00309 static const struct ath5k_rf_reg rf_regs_5112[] = {
00310 {6, AR5K_RF_OB_2GHZ, AR5K_RF5112_OB_2GHZ},
00311 {6, AR5K_RF_DB_2GHZ, AR5K_RF5112_DB_2GHZ},
00312 {6, AR5K_RF_OB_5GHZ, AR5K_RF5112_OB_5GHZ},
00313 {6, AR5K_RF_DB_5GHZ, AR5K_RF5112_DB_5GHZ},
00314 {6, AR5K_RF_FIXED_BIAS_A, AR5K_RF5112_FIXED_BIAS_A},
00315 {6, AR5K_RF_FIXED_BIAS_B, AR5K_RF5112_FIXED_BIAS_B},
00316 {6, AR5K_RF_XPD_SEL, AR5K_RF5112_XPD_SEL},
00317 {6, AR5K_RF_XPD_GAIN, AR5K_RF5112_XPD_GAIN},
00318 {6, AR5K_RF_PWD_130, AR5K_RF5112_PWD(130)},
00319 {6, AR5K_RF_PWD_131, AR5K_RF5112_PWD(131)},
00320 {6, AR5K_RF_PWD_132, AR5K_RF5112_PWD(132)},
00321 {6, AR5K_RF_PWD_136, AR5K_RF5112_PWD(136)},
00322 {6, AR5K_RF_PWD_137, AR5K_RF5112_PWD(137)},
00323 {6, AR5K_RF_PWD_138, AR5K_RF5112_PWD(138)},
00324 {7, AR5K_RF_GAIN_I, AR5K_RF5112X_GAIN_I},
00325 {7, AR5K_RF_MIXVGA_OVR, AR5K_RF5112X_MIXVGA_OVR},
00326 {7, AR5K_RF_MIXGAIN_OVR, AR5K_RF5112X_MIXGAIN_OVR},
00327 {7, AR5K_RF_MIXGAIN_STEP, AR5K_RF5112X_MIXGAIN_STEP},
00328 {7, AR5K_RF_PD_DELAY_A, AR5K_RF5112X_PD_DELAY_A},
00329 {7, AR5K_RF_PD_DELAY_B, AR5K_RF5112X_PD_DELAY_B},
00330 {7, AR5K_RF_PD_DELAY_XR, AR5K_RF5112X_PD_DELAY_XR},
00331 {7, AR5K_RF_PD_PERIOD_A, AR5K_RF5112X_PD_PERIOD_A},
00332 {7, AR5K_RF_PD_PERIOD_B, AR5K_RF5112X_PD_PERIOD_B},
00333 {7, AR5K_RF_PD_PERIOD_XR, AR5K_RF5112X_PD_PERIOD_XR},
00334 };
00335
00336
00337 static const struct ath5k_ini_rfbuffer rfb_5112[] = {
00338 { 1, 0x98d4,
00339
00340 { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },
00341 { 2, 0x98d0,
00342 { 0x03060408, 0x03070408, 0x03060408, 0x03060408, 0x03070408 } },
00343 { 3, 0x98dc,
00344 { 0x00a0c0c0, 0x00a0c0c0, 0x00e0c0c0, 0x00e0c0c0, 0x00e0c0c0 } },
00345 { 6, 0x989c,
00346 { 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000 } },
00347 { 6, 0x989c,
00348 { 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000 } },
00349 { 6, 0x989c,
00350 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00351 { 6, 0x989c,
00352 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00353 { 6, 0x989c,
00354 { 0x00660000, 0x00660000, 0x00660000, 0x00660000, 0x00660000 } },
00355 { 6, 0x989c,
00356 { 0x00db0000, 0x00db0000, 0x00db0000, 0x00db0000, 0x00db0000 } },
00357 { 6, 0x989c,
00358 { 0x00f10000, 0x00f10000, 0x00f10000, 0x00f10000, 0x00f10000 } },
00359 { 6, 0x989c,
00360 { 0x00120000, 0x00120000, 0x00120000, 0x00120000, 0x00120000 } },
00361 { 6, 0x989c,
00362 { 0x00120000, 0x00120000, 0x00120000, 0x00120000, 0x00120000 } },
00363 { 6, 0x989c,
00364 { 0x00730000, 0x00730000, 0x00730000, 0x00730000, 0x00730000 } },
00365 { 6, 0x989c,
00366 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00367 { 6, 0x989c,
00368 { 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000 } },
00369 { 6, 0x989c,
00370 { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } },
00371 { 6, 0x989c,
00372 { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } },
00373 { 6, 0x989c,
00374 { 0x008b0000, 0x008b0000, 0x008b0000, 0x008b0000, 0x008b0000 } },
00375 { 6, 0x989c,
00376 { 0x00600000, 0x00600000, 0x00600000, 0x00600000, 0x00600000 } },
00377 { 6, 0x989c,
00378 { 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000 } },
00379 { 6, 0x989c,
00380 { 0x00840000, 0x00840000, 0x00840000, 0x00840000, 0x00840000 } },
00381 { 6, 0x989c,
00382 { 0x00640000, 0x00640000, 0x00640000, 0x00640000, 0x00640000 } },
00383 { 6, 0x989c,
00384 { 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000 } },
00385 { 6, 0x989c,
00386 { 0x00240000, 0x00240000, 0x00240000, 0x00240000, 0x00240000 } },
00387 { 6, 0x989c,
00388 { 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000 } },
00389 { 6, 0x989c,
00390 { 0x00110000, 0x00110000, 0x00110000, 0x00110000, 0x00110000 } },
00391 { 6, 0x989c,
00392 { 0x00110000, 0x00110000, 0x00110000, 0x00110000, 0x00110000 } },
00393 { 6, 0x989c,
00394 { 0x00510000, 0x00510000, 0x00510000, 0x00510000, 0x00510000 } },
00395 { 6, 0x989c,
00396 { 0x1c040000, 0x1c040000, 0x1c040000, 0x1c040000, 0x1c040000 } },
00397 { 6, 0x989c,
00398 { 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000 } },
00399 { 6, 0x989c,
00400 { 0x00a10000, 0x00a10000, 0x00a10000, 0x00a10000, 0x00a10000 } },
00401 { 6, 0x989c,
00402 { 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000 } },
00403 { 6, 0x989c,
00404 { 0x03090000, 0x03090000, 0x03090000, 0x03090000, 0x03090000 } },
00405 { 6, 0x989c,
00406 { 0x06000000, 0x06000000, 0x06000000, 0x06000000, 0x06000000 } },
00407 { 6, 0x989c,
00408 { 0x000000b0, 0x000000b0, 0x000000a8, 0x000000a8, 0x000000a8 } },
00409 { 6, 0x989c,
00410 { 0x0000002e, 0x0000002e, 0x0000002e, 0x0000002e, 0x0000002e } },
00411 { 6, 0x989c,
00412 { 0x006c4a41, 0x006c4a41, 0x006c4af1, 0x006c4a61, 0x006c4a61 } },
00413 { 6, 0x989c,
00414 { 0x0050892a, 0x0050892a, 0x0050892b, 0x0050892b, 0x0050892b } },
00415 { 6, 0x989c,
00416 { 0x00842400, 0x00842400, 0x00842400, 0x00842400, 0x00842400 } },
00417 { 6, 0x989c,
00418 { 0x00c69200, 0x00c69200, 0x00c69200, 0x00c69200, 0x00c69200 } },
00419 { 6, 0x98d0,
00420 { 0x0002000c, 0x0002000c, 0x0002000c, 0x0002000c, 0x0002000c } },
00421 { 7, 0x989c,
00422 { 0x00000094, 0x00000094, 0x00000094, 0x00000094, 0x00000094 } },
00423 { 7, 0x989c,
00424 { 0x00000091, 0x00000091, 0x00000091, 0x00000091, 0x00000091 } },
00425 { 7, 0x989c,
00426 { 0x0000000a, 0x0000000a, 0x00000012, 0x00000012, 0x00000012 } },
00427 { 7, 0x989c,
00428 { 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080 } },
00429 { 7, 0x989c,
00430 { 0x000000c1, 0x000000c1, 0x000000c1, 0x000000c1, 0x000000c1 } },
00431 { 7, 0x989c,
00432 { 0x00000060, 0x00000060, 0x00000060, 0x00000060, 0x00000060 } },
00433 { 7, 0x989c,
00434 { 0x000000f0, 0x000000f0, 0x000000f0, 0x000000f0, 0x000000f0 } },
00435 { 7, 0x989c,
00436 { 0x00000022, 0x00000022, 0x00000022, 0x00000022, 0x00000022 } },
00437 { 7, 0x989c,
00438 { 0x00000092, 0x00000092, 0x00000092, 0x00000092, 0x00000092 } },
00439 { 7, 0x989c,
00440 { 0x000000d4, 0x000000d4, 0x000000d4, 0x000000d4, 0x000000d4 } },
00441 { 7, 0x989c,
00442 { 0x000014cc, 0x000014cc, 0x000014cc, 0x000014cc, 0x000014cc } },
00443 { 7, 0x989c,
00444 { 0x0000048c, 0x0000048c, 0x0000048c, 0x0000048c, 0x0000048c } },
00445 { 7, 0x98c4,
00446 { 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003 } },
00447 };
00448
00449
00450
00451
00452 #define AR5K_RF5112A_OB_2GHZ { 3, 287, 0 }
00453 #define AR5K_RF5112A_DB_2GHZ { 3, 290, 0 }
00454
00455 #define AR5K_RF5112A_OB_5GHZ { 3, 279, 0 }
00456 #define AR5K_RF5112A_DB_5GHZ { 3, 282, 0 }
00457
00458 #define AR5K_RF5112A_FIXED_BIAS_A { 1, 278, 0 }
00459 #define AR5K_RF5112A_FIXED_BIAS_B { 1, 277, 0 }
00460
00461 #define AR5K_RF5112A_XPD_SEL { 1, 302, 0 }
00462 #define AR5K_RF5112A_PDGAINLO { 2, 270, 0 }
00463 #define AR5K_RF5112A_PDGAINHI { 2, 257, 0 }
00464
00465
00466 #define AR5K_RF5112A_PWD(_n) { 1, (306 - _n), 3 }
00467
00468
00469 #define AR5K_RF5112A_HIGH_VC_CP { 2, 90, 2 }
00470 #define AR5K_RF5112A_MID_VC_CP { 2, 92, 2 }
00471 #define AR5K_RF5112A_LOW_VC_CP { 2, 94, 2 }
00472 #define AR5K_RF5112A_PUSH_UP { 1, 254, 2 }
00473
00474
00475 #define AR5K_RF5112A_PAD2GND { 1, 281, 1 }
00476 #define AR5K_RF5112A_XB2_LVL { 2, 1, 3 }
00477 #define AR5K_RF5112A_XB5_LVL { 2, 3, 3 }
00478
00479 static const struct ath5k_rf_reg rf_regs_5112a[] = {
00480 {6, AR5K_RF_OB_2GHZ, AR5K_RF5112A_OB_2GHZ},
00481 {6, AR5K_RF_DB_2GHZ, AR5K_RF5112A_DB_2GHZ},
00482 {6, AR5K_RF_OB_5GHZ, AR5K_RF5112A_OB_5GHZ},
00483 {6, AR5K_RF_DB_5GHZ, AR5K_RF5112A_DB_5GHZ},
00484 {6, AR5K_RF_FIXED_BIAS_A, AR5K_RF5112A_FIXED_BIAS_A},
00485 {6, AR5K_RF_FIXED_BIAS_B, AR5K_RF5112A_FIXED_BIAS_B},
00486 {6, AR5K_RF_XPD_SEL, AR5K_RF5112A_XPD_SEL},
00487 {6, AR5K_RF_PD_GAIN_LO, AR5K_RF5112A_PDGAINLO},
00488 {6, AR5K_RF_PD_GAIN_HI, AR5K_RF5112A_PDGAINHI},
00489 {6, AR5K_RF_PWD_130, AR5K_RF5112A_PWD(130)},
00490 {6, AR5K_RF_PWD_131, AR5K_RF5112A_PWD(131)},
00491 {6, AR5K_RF_PWD_132, AR5K_RF5112A_PWD(132)},
00492 {6, AR5K_RF_PWD_136, AR5K_RF5112A_PWD(136)},
00493 {6, AR5K_RF_PWD_137, AR5K_RF5112A_PWD(137)},
00494 {6, AR5K_RF_PWD_138, AR5K_RF5112A_PWD(138)},
00495 {6, AR5K_RF_PWD_166, AR5K_RF5112A_PWD(166)},
00496 {6, AR5K_RF_PWD_167, AR5K_RF5112A_PWD(167)},
00497 {6, AR5K_RF_HIGH_VC_CP, AR5K_RF5112A_HIGH_VC_CP},
00498 {6, AR5K_RF_MID_VC_CP, AR5K_RF5112A_MID_VC_CP},
00499 {6, AR5K_RF_LOW_VC_CP, AR5K_RF5112A_LOW_VC_CP},
00500 {6, AR5K_RF_PUSH_UP, AR5K_RF5112A_PUSH_UP},
00501 {6, AR5K_RF_PAD2GND, AR5K_RF5112A_PAD2GND},
00502 {6, AR5K_RF_XB2_LVL, AR5K_RF5112A_XB2_LVL},
00503 {6, AR5K_RF_XB5_LVL, AR5K_RF5112A_XB5_LVL},
00504 {7, AR5K_RF_GAIN_I, AR5K_RF5112X_GAIN_I},
00505 {7, AR5K_RF_MIXVGA_OVR, AR5K_RF5112X_MIXVGA_OVR},
00506 {7, AR5K_RF_MIXGAIN_OVR, AR5K_RF5112X_MIXGAIN_OVR},
00507 {7, AR5K_RF_MIXGAIN_STEP, AR5K_RF5112X_MIXGAIN_STEP},
00508 {7, AR5K_RF_PD_DELAY_A, AR5K_RF5112X_PD_DELAY_A},
00509 {7, AR5K_RF_PD_DELAY_B, AR5K_RF5112X_PD_DELAY_B},
00510 {7, AR5K_RF_PD_DELAY_XR, AR5K_RF5112X_PD_DELAY_XR},
00511 {7, AR5K_RF_PD_PERIOD_A, AR5K_RF5112X_PD_PERIOD_A},
00512 {7, AR5K_RF_PD_PERIOD_B, AR5K_RF5112X_PD_PERIOD_B},
00513 {7, AR5K_RF_PD_PERIOD_XR, AR5K_RF5112X_PD_PERIOD_XR},
00514 };
00515
00516
00517 static const struct ath5k_ini_rfbuffer rfb_5112a[] = {
00518 { 1, 0x98d4,
00519
00520 { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },
00521 { 2, 0x98d0,
00522 { 0x03060408, 0x03070408, 0x03060408, 0x03060408, 0x03070408 } },
00523 { 3, 0x98dc,
00524 { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } },
00525 { 6, 0x989c,
00526 { 0x0f000000, 0x0f000000, 0x0f000000, 0x0f000000, 0x0f000000 } },
00527 { 6, 0x989c,
00528 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00529 { 6, 0x989c,
00530 { 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000 } },
00531 { 6, 0x989c,
00532 { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } },
00533 { 6, 0x989c,
00534 { 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000 } },
00535 { 6, 0x989c,
00536 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00537 { 6, 0x989c,
00538 { 0x00180000, 0x00180000, 0x00180000, 0x00180000, 0x00180000 } },
00539 { 6, 0x989c,
00540 { 0x00600000, 0x00600000, 0x006e0000, 0x006e0000, 0x006e0000 } },
00541 { 6, 0x989c,
00542 { 0x00c70000, 0x00c70000, 0x00c70000, 0x00c70000, 0x00c70000 } },
00543 { 6, 0x989c,
00544 { 0x004b0000, 0x004b0000, 0x004b0000, 0x004b0000, 0x004b0000 } },
00545 { 6, 0x989c,
00546 { 0x04480000, 0x04480000, 0x04480000, 0x04480000, 0x04480000 } },
00547 { 6, 0x989c,
00548 { 0x004c0000, 0x004c0000, 0x004c0000, 0x004c0000, 0x004c0000 } },
00549 { 6, 0x989c,
00550 { 0x00e40000, 0x00e40000, 0x00e40000, 0x00e40000, 0x00e40000 } },
00551 { 6, 0x989c,
00552 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00553 { 6, 0x989c,
00554 { 0x00fc0000, 0x00fc0000, 0x00fc0000, 0x00fc0000, 0x00fc0000 } },
00555 { 6, 0x989c,
00556 { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } },
00557 { 6, 0x989c,
00558 { 0x043f0000, 0x043f0000, 0x043f0000, 0x043f0000, 0x043f0000 } },
00559 { 6, 0x989c,
00560 { 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000 } },
00561 { 6, 0x989c,
00562 { 0x02190000, 0x02190000, 0x02190000, 0x02190000, 0x02190000 } },
00563 { 6, 0x989c,
00564 { 0x00240000, 0x00240000, 0x00240000, 0x00240000, 0x00240000 } },
00565 { 6, 0x989c,
00566 { 0x00b40000, 0x00b40000, 0x00b40000, 0x00b40000, 0x00b40000 } },
00567 { 6, 0x989c,
00568 { 0x00990000, 0x00990000, 0x00990000, 0x00990000, 0x00990000 } },
00569 { 6, 0x989c,
00570 { 0x00500000, 0x00500000, 0x00500000, 0x00500000, 0x00500000 } },
00571 { 6, 0x989c,
00572 { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } },
00573 { 6, 0x989c,
00574 { 0x00120000, 0x00120000, 0x00120000, 0x00120000, 0x00120000 } },
00575 { 6, 0x989c,
00576 { 0xc0320000, 0xc0320000, 0xc0320000, 0xc0320000, 0xc0320000 } },
00577 { 6, 0x989c,
00578 { 0x01740000, 0x01740000, 0x01740000, 0x01740000, 0x01740000 } },
00579 { 6, 0x989c,
00580 { 0x00110000, 0x00110000, 0x00110000, 0x00110000, 0x00110000 } },
00581 { 6, 0x989c,
00582 { 0x86280000, 0x86280000, 0x86280000, 0x86280000, 0x86280000 } },
00583 { 6, 0x989c,
00584 { 0x31840000, 0x31840000, 0x31840000, 0x31840000, 0x31840000 } },
00585 { 6, 0x989c,
00586 { 0x00f20080, 0x00f20080, 0x00f20080, 0x00f20080, 0x00f20080 } },
00587 { 6, 0x989c,
00588 { 0x00270019, 0x00270019, 0x00270019, 0x00270019, 0x00270019 } },
00589 { 6, 0x989c,
00590 { 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003 } },
00591 { 6, 0x989c,
00592 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00593 { 6, 0x989c,
00594 { 0x000000b2, 0x000000b2, 0x000000b2, 0x000000b2, 0x000000b2 } },
00595 { 6, 0x989c,
00596 { 0x00b02084, 0x00b02084, 0x00b02084, 0x00b02084, 0x00b02084 } },
00597 { 6, 0x989c,
00598 { 0x004125a4, 0x004125a4, 0x004125a4, 0x004125a4, 0x004125a4 } },
00599 { 6, 0x989c,
00600 { 0x00119220, 0x00119220, 0x00119220, 0x00119220, 0x00119220 } },
00601 { 6, 0x989c,
00602 { 0x001a4800, 0x001a4800, 0x001a4800, 0x001a4800, 0x001a4800 } },
00603 { 6, 0x98d8,
00604 { 0x000b0230, 0x000b0230, 0x000b0230, 0x000b0230, 0x000b0230 } },
00605 { 7, 0x989c,
00606 { 0x00000094, 0x00000094, 0x00000094, 0x00000094, 0x00000094 } },
00607 { 7, 0x989c,
00608 { 0x00000091, 0x00000091, 0x00000091, 0x00000091, 0x00000091 } },
00609 { 7, 0x989c,
00610 { 0x00000012, 0x00000012, 0x00000012, 0x00000012, 0x00000012 } },
00611 { 7, 0x989c,
00612 { 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080 } },
00613 { 7, 0x989c,
00614 { 0x000000d9, 0x000000d9, 0x000000d9, 0x000000d9, 0x000000d9 } },
00615 { 7, 0x989c,
00616 { 0x00000060, 0x00000060, 0x00000060, 0x00000060, 0x00000060 } },
00617 { 7, 0x989c,
00618 { 0x000000f0, 0x000000f0, 0x000000f0, 0x000000f0, 0x000000f0 } },
00619 { 7, 0x989c,
00620 { 0x000000a2, 0x000000a2, 0x000000a2, 0x000000a2, 0x000000a2 } },
00621 { 7, 0x989c,
00622 { 0x00000052, 0x00000052, 0x00000052, 0x00000052, 0x00000052 } },
00623 { 7, 0x989c,
00624 { 0x000000d4, 0x000000d4, 0x000000d4, 0x000000d4, 0x000000d4 } },
00625 { 7, 0x989c,
00626 { 0x000014cc, 0x000014cc, 0x000014cc, 0x000014cc, 0x000014cc } },
00627 { 7, 0x989c,
00628 { 0x0000048c, 0x0000048c, 0x0000048c, 0x0000048c, 0x0000048c } },
00629 { 7, 0x98c4,
00630 { 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003 } },
00631 };
00632
00633
00634
00635
00636
00637
00638
00639
00640 #define AR5K_RF2413_OB_2GHZ { 3, 168, 0 }
00641 #define AR5K_RF2413_DB_2GHZ { 3, 165, 0 }
00642
00643 static const struct ath5k_rf_reg rf_regs_2413[] = {
00644 {6, AR5K_RF_OB_2GHZ, AR5K_RF2413_OB_2GHZ},
00645 {6, AR5K_RF_DB_2GHZ, AR5K_RF2413_DB_2GHZ},
00646 };
00647
00648
00649
00650
00651 static const struct ath5k_ini_rfbuffer rfb_2413[] = {
00652 { 1, 0x98d4,
00653
00654 { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },
00655 { 2, 0x98d0,
00656 { 0x02001408, 0x02011408, 0x02001408, 0x02001408, 0x02011408 } },
00657 { 3, 0x98dc,
00658 { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } },
00659 { 6, 0x989c,
00660 { 0xf0000000, 0xf0000000, 0xf0000000, 0xf0000000, 0xf0000000 } },
00661 { 6, 0x989c,
00662 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00663 { 6, 0x989c,
00664 { 0x03000000, 0x03000000, 0x03000000, 0x03000000, 0x03000000 } },
00665 { 6, 0x989c,
00666 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00667 { 6, 0x989c,
00668 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00669 { 6, 0x989c,
00670 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00671 { 6, 0x989c,
00672 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00673 { 6, 0x989c,
00674 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00675 { 6, 0x989c,
00676 { 0x40400000, 0x40400000, 0x40400000, 0x40400000, 0x40400000 } },
00677 { 6, 0x989c,
00678 { 0x65050000, 0x65050000, 0x65050000, 0x65050000, 0x65050000 } },
00679 { 6, 0x989c,
00680 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00681 { 6, 0x989c,
00682 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00683 { 6, 0x989c,
00684 { 0x00420000, 0x00420000, 0x00420000, 0x00420000, 0x00420000 } },
00685 { 6, 0x989c,
00686 { 0x00b50000, 0x00b50000, 0x00b50000, 0x00b50000, 0x00b50000 } },
00687 { 6, 0x989c,
00688 { 0x00030000, 0x00030000, 0x00030000, 0x00030000, 0x00030000 } },
00689 { 6, 0x989c,
00690 { 0x00f70000, 0x00f70000, 0x00f70000, 0x00f70000, 0x00f70000 } },
00691 { 6, 0x989c,
00692 { 0x009d0000, 0x009d0000, 0x009d0000, 0x009d0000, 0x009d0000 } },
00693 { 6, 0x989c,
00694 { 0x00220000, 0x00220000, 0x00220000, 0x00220000, 0x00220000 } },
00695 { 6, 0x989c,
00696 { 0x04220000, 0x04220000, 0x04220000, 0x04220000, 0x04220000 } },
00697 { 6, 0x989c,
00698 { 0x00230018, 0x00230018, 0x00230018, 0x00230018, 0x00230018 } },
00699 { 6, 0x989c,
00700 { 0x00280000, 0x00280000, 0x00280060, 0x00280060, 0x00280060 } },
00701 { 6, 0x989c,
00702 { 0x005000c0, 0x005000c0, 0x005000c3, 0x005000c3, 0x005000c3 } },
00703 { 6, 0x989c,
00704 { 0x0004007f, 0x0004007f, 0x0004007f, 0x0004007f, 0x0004007f } },
00705 { 6, 0x989c,
00706 { 0x00000458, 0x00000458, 0x00000458, 0x00000458, 0x00000458 } },
00707 { 6, 0x989c,
00708 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00709 { 6, 0x989c,
00710 { 0x0000c000, 0x0000c000, 0x0000c000, 0x0000c000, 0x0000c000 } },
00711 { 6, 0x98d8,
00712 { 0x00400230, 0x00400230, 0x00400230, 0x00400230, 0x00400230 } },
00713 { 7, 0x989c,
00714 { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } },
00715 { 7, 0x989c,
00716 { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } },
00717 { 7, 0x98cc,
00718 { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } },
00719 };
00720
00721
00722
00723
00724
00725
00726
00727
00728 #define AR5K_RF2316_OB_2GHZ { 3, 178, 0 }
00729 #define AR5K_RF2316_DB_2GHZ { 3, 175, 0 }
00730
00731 static const struct ath5k_rf_reg rf_regs_2316[] = {
00732 {6, AR5K_RF_OB_2GHZ, AR5K_RF2316_OB_2GHZ},
00733 {6, AR5K_RF_DB_2GHZ, AR5K_RF2316_DB_2GHZ},
00734 };
00735
00736
00737 static const struct ath5k_ini_rfbuffer rfb_2316[] = {
00738 { 1, 0x98d4,
00739
00740 { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },
00741 { 2, 0x98d0,
00742 { 0x02001408, 0x02011408, 0x02001408, 0x02001408, 0x02011408 } },
00743 { 3, 0x98dc,
00744 { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } },
00745 { 6, 0x989c,
00746 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00747 { 6, 0x989c,
00748 { 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000 } },
00749 { 6, 0x989c,
00750 { 0x0f000000, 0x0f000000, 0x0f000000, 0x0f000000, 0x0f000000 } },
00751 { 6, 0x989c,
00752 { 0x02000000, 0x02000000, 0x02000000, 0x02000000, 0x02000000 } },
00753 { 6, 0x989c,
00754 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00755 { 6, 0x989c,
00756 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00757 { 6, 0x989c,
00758 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00759 { 6, 0x989c,
00760 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00761 { 6, 0x989c,
00762 { 0xf8000000, 0xf8000000, 0xf8000000, 0xf8000000, 0xf8000000 } },
00763 { 6, 0x989c,
00764 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00765 { 6, 0x989c,
00766 { 0x95150000, 0x95150000, 0x95150000, 0x95150000, 0x95150000 } },
00767 { 6, 0x989c,
00768 { 0xc1000000, 0xc1000000, 0xc1000000, 0xc1000000, 0xc1000000 } },
00769 { 6, 0x989c,
00770 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00771 { 6, 0x989c,
00772 { 0x00080000, 0x00080000, 0x00080000, 0x00080000, 0x00080000 } },
00773 { 6, 0x989c,
00774 { 0x00d50000, 0x00d50000, 0x00d50000, 0x00d50000, 0x00d50000 } },
00775 { 6, 0x989c,
00776 { 0x000e0000, 0x000e0000, 0x000e0000, 0x000e0000, 0x000e0000 } },
00777 { 6, 0x989c,
00778 { 0x00dc0000, 0x00dc0000, 0x00dc0000, 0x00dc0000, 0x00dc0000 } },
00779 { 6, 0x989c,
00780 { 0x00770000, 0x00770000, 0x00770000, 0x00770000, 0x00770000 } },
00781 { 6, 0x989c,
00782 { 0x008a0000, 0x008a0000, 0x008a0000, 0x008a0000, 0x008a0000 } },
00783 { 6, 0x989c,
00784 { 0x10880000, 0x10880000, 0x10880000, 0x10880000, 0x10880000 } },
00785 { 6, 0x989c,
00786 { 0x008c0060, 0x008c0060, 0x008c0060, 0x008c0060, 0x008c0060 } },
00787 { 6, 0x989c,
00788 { 0x00a00000, 0x00a00000, 0x00a00080, 0x00a00080, 0x00a00080 } },
00789 { 6, 0x989c,
00790 { 0x00400000, 0x00400000, 0x0040000d, 0x0040000d, 0x0040000d } },
00791 { 6, 0x989c,
00792 { 0x00110400, 0x00110400, 0x00110400, 0x00110400, 0x00110400 } },
00793 { 6, 0x989c,
00794 { 0x00000060, 0x00000060, 0x00000060, 0x00000060, 0x00000060 } },
00795 { 6, 0x989c,
00796 { 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001 } },
00797 { 6, 0x989c,
00798 { 0x00000b00, 0x00000b00, 0x00000b00, 0x00000b00, 0x00000b00 } },
00799 { 6, 0x989c,
00800 { 0x00000be8, 0x00000be8, 0x00000be8, 0x00000be8, 0x00000be8 } },
00801 { 6, 0x98c0,
00802 { 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000 } },
00803 { 7, 0x989c,
00804 { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } },
00805 { 7, 0x989c,
00806 { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } },
00807 { 7, 0x98cc,
00808 { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } },
00809 };
00810
00811
00812
00813
00814
00815
00816
00817
00818 #define AR5K_RF5413_OB_2GHZ { 3, 241, 0 }
00819 #define AR5K_RF5413_DB_2GHZ { 3, 238, 0 }
00820
00821 #define AR5K_RF5413_OB_5GHZ { 3, 247, 0 }
00822 #define AR5K_RF5413_DB_5GHZ { 3, 244, 0 }
00823
00824 #define AR5K_RF5413_PWD_ICLOBUF2G { 3, 131, 3 }
00825 #define AR5K_RF5413_DERBY_CHAN_SEL_MODE { 1, 291, 2 }
00826
00827 static const struct ath5k_rf_reg rf_regs_5413[] = {
00828 {6, AR5K_RF_OB_2GHZ, AR5K_RF5413_OB_2GHZ},
00829 {6, AR5K_RF_DB_2GHZ, AR5K_RF5413_DB_2GHZ},
00830 {6, AR5K_RF_OB_5GHZ, AR5K_RF5413_OB_5GHZ},
00831 {6, AR5K_RF_DB_5GHZ, AR5K_RF5413_DB_5GHZ},
00832 {6, AR5K_RF_PWD_ICLOBUF_2G, AR5K_RF5413_PWD_ICLOBUF2G},
00833 {6, AR5K_RF_DERBY_CHAN_SEL_MODE, AR5K_RF5413_DERBY_CHAN_SEL_MODE},
00834 };
00835
00836
00837 static const struct ath5k_ini_rfbuffer rfb_5413[] = {
00838 { 1, 0x98d4,
00839
00840 { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },
00841 { 2, 0x98d0,
00842 { 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000008 } },
00843 { 3, 0x98dc,
00844 { 0x00a000c0, 0x00a000c0, 0x00e000c0, 0x00e000c0, 0x00e000c0 } },
00845 { 6, 0x989c,
00846 { 0x33000000, 0x33000000, 0x33000000, 0x33000000, 0x33000000 } },
00847 { 6, 0x989c,
00848 { 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000 } },
00849 { 6, 0x989c,
00850 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00851 { 6, 0x989c,
00852 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00853 { 6, 0x989c,
00854 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00855 { 6, 0x989c,
00856 { 0x1f000000, 0x1f000000, 0x1f000000, 0x1f000000, 0x1f000000 } },
00857 { 6, 0x989c,
00858 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00859 { 6, 0x989c,
00860 { 0x00b80000, 0x00b80000, 0x00b80000, 0x00b80000, 0x00b80000 } },
00861 { 6, 0x989c,
00862 { 0x00b70000, 0x00b70000, 0x00b70000, 0x00b70000, 0x00b70000 } },
00863 { 6, 0x989c,
00864 { 0x00840000, 0x00840000, 0x00840000, 0x00840000, 0x00840000 } },
00865 { 6, 0x989c,
00866 { 0x00980000, 0x00980000, 0x00980000, 0x00980000, 0x00980000 } },
00867 { 6, 0x989c,
00868 { 0x00c00000, 0x00c00000, 0x00c00000, 0x00c00000, 0x00c00000 } },
00869 { 6, 0x989c,
00870 { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } },
00871 { 6, 0x989c,
00872 { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } },
00873 { 6, 0x989c,
00874 { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } },
00875 { 6, 0x989c,
00876 { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } },
00877 { 6, 0x989c,
00878 { 0x00d70000, 0x00d70000, 0x00d70000, 0x00d70000, 0x00d70000 } },
00879 { 6, 0x989c,
00880 { 0x00610000, 0x00610000, 0x00610000, 0x00610000, 0x00610000 } },
00881 { 6, 0x989c,
00882 { 0x00fe0000, 0x00fe0000, 0x00fe0000, 0x00fe0000, 0x00fe0000 } },
00883 { 6, 0x989c,
00884 { 0x00de0000, 0x00de0000, 0x00de0000, 0x00de0000, 0x00de0000 } },
00885 { 6, 0x989c,
00886 { 0x007f0000, 0x007f0000, 0x007f0000, 0x007f0000, 0x007f0000 } },
00887 { 6, 0x989c,
00888 { 0x043d0000, 0x043d0000, 0x043d0000, 0x043d0000, 0x043d0000 } },
00889 { 6, 0x989c,
00890 { 0x00770000, 0x00770000, 0x00770000, 0x00770000, 0x00770000 } },
00891 { 6, 0x989c,
00892 { 0x00440000, 0x00440000, 0x00440000, 0x00440000, 0x00440000 } },
00893 { 6, 0x989c,
00894 { 0x00980000, 0x00980000, 0x00980000, 0x00980000, 0x00980000 } },
00895 { 6, 0x989c,
00896 { 0x00100080, 0x00100080, 0x00100080, 0x00100080, 0x00100080 } },
00897 { 6, 0x989c,
00898 { 0x0005c034, 0x0005c034, 0x0005c034, 0x0005c034, 0x0005c034 } },
00899 { 6, 0x989c,
00900 { 0x003100f0, 0x003100f0, 0x003100f0, 0x003100f0, 0x003100f0 } },
00901 { 6, 0x989c,
00902 { 0x000c011f, 0x000c011f, 0x000c011f, 0x000c011f, 0x000c011f } },
00903 { 6, 0x989c,
00904 { 0x00510040, 0x00510040, 0x00510040, 0x00510040, 0x00510040 } },
00905 { 6, 0x989c,
00906 { 0x005000da, 0x005000da, 0x005000da, 0x005000da, 0x005000da } },
00907 { 6, 0x989c,
00908 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00909 { 6, 0x989c,
00910 { 0x00004044, 0x00004044, 0x00004044, 0x00004044, 0x00004044 } },
00911 { 6, 0x989c,
00912 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00913 { 6, 0x989c,
00914 { 0x000060c0, 0x000060c0, 0x000060c0, 0x000060c0, 0x000060c0 } },
00915 { 6, 0x989c,
00916 { 0x00002c00, 0x00002c00, 0x00003600, 0x00003600, 0x00002c00 } },
00917 { 6, 0x98c8,
00918 { 0x00000403, 0x00000403, 0x00040403, 0x00040403, 0x00040403 } },
00919 { 7, 0x989c,
00920 { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } },
00921 { 7, 0x989c,
00922 { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } },
00923 { 7, 0x98cc,
00924 { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } },
00925 };
00926
00927
00928
00929
00930
00931
00932
00933
00934
00935 #define AR5K_RF2425_OB_2GHZ { 3, 193, 0 }
00936 #define AR5K_RF2425_DB_2GHZ { 3, 190, 0 }
00937
00938 static const struct ath5k_rf_reg rf_regs_2425[] = {
00939 {6, AR5K_RF_OB_2GHZ, AR5K_RF2425_OB_2GHZ},
00940 {6, AR5K_RF_DB_2GHZ, AR5K_RF2425_DB_2GHZ},
00941 };
00942
00943
00944
00945
00946 static const struct ath5k_ini_rfbuffer rfb_2425[] = {
00947 { 1, 0x98d4,
00948
00949 { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },
00950 { 2, 0x98d0,
00951 { 0x02001408, 0x02001408, 0x02001408, 0x02001408, 0x02001408 } },
00952 { 3, 0x98dc,
00953 { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } },
00954 { 6, 0x989c,
00955 { 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000 } },
00956 { 6, 0x989c,
00957 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00958 { 6, 0x989c,
00959 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00960 { 6, 0x989c,
00961 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00962 { 6, 0x989c,
00963 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00964 { 6, 0x989c,
00965 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00966 { 6, 0x989c,
00967 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00968 { 6, 0x989c,
00969 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00970 { 6, 0x989c,
00971 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00972 { 6, 0x989c,
00973 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00974 { 6, 0x989c,
00975 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00976 { 6, 0x989c,
00977 { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } },
00978 { 6, 0x989c,
00979 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00980 { 6, 0x989c,
00981 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
00982 { 6, 0x989c,
00983 { 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000 } },
00984 { 6, 0x989c,
00985 { 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020000 } },
00986 { 6, 0x989c,
00987 { 0x00730000, 0x00730000, 0x00730000, 0x00730000, 0x00730000 } },
00988 { 6, 0x989c,
00989 { 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000 } },
00990 { 6, 0x989c,
00991 { 0x00e70000, 0x00e70000, 0x00e70000, 0x00e70000, 0x00e70000 } },
00992 { 6, 0x989c,
00993 { 0x00140000, 0x00140000, 0x00140000, 0x00140000, 0x00140000 } },
00994 { 6, 0x989c,
00995 { 0x00910040, 0x00910040, 0x00910040, 0x00910040, 0x00910040 } },
00996 { 6, 0x989c,
00997 { 0x0007001a, 0x0007001a, 0x0007001a, 0x0007001a, 0x0007001a } },
00998 { 6, 0x989c,
00999 { 0x00410000, 0x00410000, 0x00410000, 0x00410000, 0x00410000 } },
01000 { 6, 0x989c,
01001 { 0x00810000, 0x00810000, 0x00810060, 0x00810060, 0x00810060 } },
01002 { 6, 0x989c,
01003 { 0x00020800, 0x00020800, 0x00020803, 0x00020803, 0x00020803 } },
01004 { 6, 0x989c,
01005 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01006 { 6, 0x989c,
01007 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01008 { 6, 0x989c,
01009 { 0x00001660, 0x00001660, 0x00001660, 0x00001660, 0x00001660 } },
01010 { 6, 0x989c,
01011 { 0x00001688, 0x00001688, 0x00001688, 0x00001688, 0x00001688 } },
01012 { 6, 0x98c4,
01013 { 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001 } },
01014 { 7, 0x989c,
01015 { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } },
01016 { 7, 0x989c,
01017 { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } },
01018 { 7, 0x98cc,
01019 { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } },
01020 };
01021
01022
01023
01024
01025
01026 static const struct ath5k_ini_rfbuffer rfb_2317[] = {
01027 { 1, 0x98d4,
01028
01029 { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },
01030 { 2, 0x98d0,
01031 { 0x02001408, 0x02011408, 0x02001408, 0x02001408, 0x02011408 } },
01032 { 3, 0x98dc,
01033 { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } },
01034 { 6, 0x989c,
01035 { 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000 } },
01036 { 6, 0x989c,
01037 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01038 { 6, 0x989c,
01039 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01040 { 6, 0x989c,
01041 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01042 { 6, 0x989c,
01043 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01044 { 6, 0x989c,
01045 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01046 { 6, 0x989c,
01047 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01048 { 6, 0x989c,
01049 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01050 { 6, 0x989c,
01051 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01052 { 6, 0x989c,
01053 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01054 { 6, 0x989c,
01055 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01056 { 6, 0x989c,
01057 { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } },
01058 { 6, 0x989c,
01059 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01060 { 6, 0x989c,
01061 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01062 { 6, 0x989c,
01063 { 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000 } },
01064 { 6, 0x989c,
01065 { 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020000 } },
01066 { 6, 0x989c,
01067 { 0x00730000, 0x00730000, 0x00730000, 0x00730000, 0x00730000 } },
01068 { 6, 0x989c,
01069 { 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000 } },
01070 { 6, 0x989c,
01071 { 0x00e70000, 0x00e70000, 0x00e70000, 0x00e70000, 0x00e70000 } },
01072 { 6, 0x989c,
01073 { 0x00140100, 0x00140100, 0x00140100, 0x00140100, 0x00140100 } },
01074 { 6, 0x989c,
01075 { 0x00910040, 0x00910040, 0x00910040, 0x00910040, 0x00910040 } },
01076 { 6, 0x989c,
01077 { 0x0007001a, 0x0007001a, 0x0007001a, 0x0007001a, 0x0007001a } },
01078 { 6, 0x989c,
01079 { 0x00410000, 0x00410000, 0x00410000, 0x00410000, 0x00410000 } },
01080 { 6, 0x989c,
01081 { 0x00810000, 0x00810000, 0x00810060, 0x00810060, 0x00810060 } },
01082 { 6, 0x989c,
01083 { 0x00020800, 0x00020800, 0x00020803, 0x00020803, 0x00020803 } },
01084 { 6, 0x989c,
01085 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01086 { 6, 0x989c,
01087 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01088 { 6, 0x989c,
01089 { 0x00001660, 0x00001660, 0x00001660, 0x00001660, 0x00001660 } },
01090 { 6, 0x989c,
01091 { 0x00009688, 0x00009688, 0x00009688, 0x00009688, 0x00009688 } },
01092 { 6, 0x98c4,
01093 { 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001 } },
01094 { 7, 0x989c,
01095 { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } },
01096 { 7, 0x989c,
01097 { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } },
01098 { 7, 0x98cc,
01099 { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } },
01100 };
01101
01102
01103
01104
01105
01106
01107 static const struct ath5k_ini_rfbuffer rfb_2417[] = {
01108 { 1, 0x98d4,
01109
01110 { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },
01111 { 2, 0x98d0,
01112 { 0x02001408, 0x02001408, 0x02001408, 0x02001408, 0x02001408 } },
01113 { 3, 0x98dc,
01114 { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } },
01115 { 6, 0x989c,
01116 { 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000 } },
01117 { 6, 0x989c,
01118 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01119 { 6, 0x989c,
01120 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01121 { 6, 0x989c,
01122 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01123 { 6, 0x989c,
01124 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01125 { 6, 0x989c,
01126 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01127 { 6, 0x989c,
01128 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01129 { 6, 0x989c,
01130 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01131 { 6, 0x989c,
01132 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01133 { 6, 0x989c,
01134 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01135 { 6, 0x989c,
01136 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01137 { 6, 0x989c,
01138 { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } },
01139 { 6, 0x989c,
01140 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01141 { 6, 0x989c,
01142 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01143 { 6, 0x989c,
01144 { 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000 } },
01145 { 6, 0x989c,
01146 { 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020000 } },
01147 { 6, 0x989c,
01148 { 0x00730000, 0x00730000, 0x00730000, 0x00730000, 0x00730000 } },
01149 { 6, 0x989c,
01150 { 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000 } },
01151 { 6, 0x989c,
01152 { 0x00e70000, 0x00e70000, 0x80e70000, 0x80e70000, 0x00e70000 } },
01153 { 6, 0x989c,
01154 { 0x00140000, 0x00140000, 0x00140000, 0x00140000, 0x00140000 } },
01155 { 6, 0x989c,
01156 { 0x00910040, 0x00910040, 0x00910040, 0x00910040, 0x00910040 } },
01157 { 6, 0x989c,
01158 { 0x0007001a, 0x0007001a, 0x0207001a, 0x0207001a, 0x0007001a } },
01159 { 6, 0x989c,
01160 { 0x00410000, 0x00410000, 0x00410000, 0x00410000, 0x00410000 } },
01161 { 6, 0x989c,
01162 { 0x00810000, 0x00810000, 0x00810060, 0x00810060, 0x00810060 } },
01163 { 6, 0x989c,
01164 { 0x00020800, 0x00020800, 0x00020803, 0x00020803, 0x00020803 } },
01165 { 6, 0x989c,
01166 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01167 { 6, 0x989c,
01168 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
01169 { 6, 0x989c,
01170 { 0x00001660, 0x00001660, 0x00001660, 0x00001660, 0x00001660 } },
01171 { 6, 0x989c,
01172 { 0x00001688, 0x00001688, 0x00001688, 0x00001688, 0x00001688 } },
01173 { 6, 0x98c4,
01174 { 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001 } },
01175 { 7, 0x989c,
01176 { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } },
01177 { 7, 0x989c,
01178 { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } },
01179 { 7, 0x98cc,
01180 { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } },
01181 };