1*203c4805SLuis R. Rodriguez /* 2*203c4805SLuis R. Rodriguez * RF Buffer handling functions 3*203c4805SLuis R. Rodriguez * 4*203c4805SLuis R. Rodriguez * Copyright (c) 2009 Nick Kossifidis <mickflemm@gmail.com> 5*203c4805SLuis R. Rodriguez * 6*203c4805SLuis R. Rodriguez * Permission to use, copy, modify, and distribute this software for any 7*203c4805SLuis R. Rodriguez * purpose with or without fee is hereby granted, provided that the above 8*203c4805SLuis R. Rodriguez * copyright notice and this permission notice appear in all copies. 9*203c4805SLuis R. Rodriguez * 10*203c4805SLuis R. Rodriguez * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11*203c4805SLuis R. Rodriguez * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12*203c4805SLuis R. Rodriguez * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13*203c4805SLuis R. Rodriguez * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14*203c4805SLuis R. Rodriguez * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15*203c4805SLuis R. Rodriguez * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16*203c4805SLuis R. Rodriguez * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17*203c4805SLuis R. Rodriguez * 18*203c4805SLuis R. Rodriguez */ 19*203c4805SLuis R. Rodriguez 20*203c4805SLuis R. Rodriguez 21*203c4805SLuis R. Rodriguez /* 22*203c4805SLuis R. Rodriguez * There are some special registers on the RF chip 23*203c4805SLuis R. Rodriguez * that control various operation settings related mostly to 24*203c4805SLuis R. Rodriguez * the analog parts (channel, gain adjustment etc). 25*203c4805SLuis R. Rodriguez * 26*203c4805SLuis R. Rodriguez * We don't write on those registers directly but 27*203c4805SLuis R. Rodriguez * we send a data packet on the chip, using a special register, 28*203c4805SLuis R. Rodriguez * that holds all the settings we need. After we 've sent the 29*203c4805SLuis R. Rodriguez * data packet, we write on another special register to notify hw 30*203c4805SLuis R. Rodriguez * to apply the settings. This is done so that control registers 31*203c4805SLuis R. Rodriguez * can be dynamicaly programmed during operation and the settings 32*203c4805SLuis R. Rodriguez * are applied faster on the hw. 33*203c4805SLuis R. Rodriguez * 34*203c4805SLuis R. Rodriguez * We call each data packet an "RF Bank" and all the data we write 35*203c4805SLuis R. Rodriguez * (all RF Banks) "RF Buffer". This file holds initial RF Buffer 36*203c4805SLuis R. Rodriguez * data for the different RF chips, and various info to match RF 37*203c4805SLuis R. Rodriguez * Buffer offsets with specific RF registers so that we can access 38*203c4805SLuis R. Rodriguez * them. We tweak these settings on rfregs_init function. 39*203c4805SLuis R. Rodriguez * 40*203c4805SLuis R. Rodriguez * Also check out reg.h and U.S. Patent 6677779 B1 (about buffer 41*203c4805SLuis R. Rodriguez * registers and control registers): 42*203c4805SLuis R. Rodriguez * 43*203c4805SLuis R. Rodriguez * http://www.google.com/patents?id=qNURAAAAEBAJ 44*203c4805SLuis R. Rodriguez */ 45*203c4805SLuis R. Rodriguez 46*203c4805SLuis R. Rodriguez 47*203c4805SLuis R. Rodriguez /* 48*203c4805SLuis R. Rodriguez * Struct to hold default mode specific RF 49*203c4805SLuis R. Rodriguez * register values (RF Banks) 50*203c4805SLuis R. Rodriguez */ 51*203c4805SLuis R. Rodriguez struct ath5k_ini_rfbuffer { 52*203c4805SLuis R. Rodriguez u8 rfb_bank; /* RF Bank number */ 53*203c4805SLuis R. Rodriguez u16 rfb_ctrl_register; /* RF Buffer control register */ 54*203c4805SLuis R. Rodriguez u32 rfb_mode_data[5]; /* RF Buffer data for each mode */ 55*203c4805SLuis R. Rodriguez }; 56*203c4805SLuis R. Rodriguez 57*203c4805SLuis R. Rodriguez /* 58*203c4805SLuis R. Rodriguez * Struct to hold RF Buffer field 59*203c4805SLuis R. Rodriguez * infos used to access certain RF 60*203c4805SLuis R. Rodriguez * analog registers 61*203c4805SLuis R. Rodriguez */ 62*203c4805SLuis R. Rodriguez struct ath5k_rfb_field { 63*203c4805SLuis R. Rodriguez u8 len; /* Field length */ 64*203c4805SLuis R. Rodriguez u16 pos; /* Offset on the raw packet */ 65*203c4805SLuis R. Rodriguez u8 col; /* Column -used for shifting */ 66*203c4805SLuis R. Rodriguez }; 67*203c4805SLuis R. Rodriguez 68*203c4805SLuis R. Rodriguez /* 69*203c4805SLuis R. Rodriguez * RF analog register definition 70*203c4805SLuis R. Rodriguez */ 71*203c4805SLuis R. Rodriguez struct ath5k_rf_reg { 72*203c4805SLuis R. Rodriguez u8 bank; /* RF Buffer Bank number */ 73*203c4805SLuis R. Rodriguez u8 index; /* Register's index on rf_regs_idx */ 74*203c4805SLuis R. Rodriguez struct ath5k_rfb_field field; /* RF Buffer field for this register */ 75*203c4805SLuis R. Rodriguez }; 76*203c4805SLuis R. Rodriguez 77*203c4805SLuis R. Rodriguez /* Map RF registers to indexes 78*203c4805SLuis R. Rodriguez * We do this to handle common bits and make our 79*203c4805SLuis R. Rodriguez * life easier by using an index for each register 80*203c4805SLuis R. Rodriguez * instead of a full rfb_field */ 81*203c4805SLuis R. Rodriguez enum ath5k_rf_regs_idx { 82*203c4805SLuis R. Rodriguez /* BANK 6 */ 83*203c4805SLuis R. Rodriguez AR5K_RF_OB_2GHZ = 0, 84*203c4805SLuis R. Rodriguez AR5K_RF_OB_5GHZ, 85*203c4805SLuis R. Rodriguez AR5K_RF_DB_2GHZ, 86*203c4805SLuis R. Rodriguez AR5K_RF_DB_5GHZ, 87*203c4805SLuis R. Rodriguez AR5K_RF_FIXED_BIAS_A, 88*203c4805SLuis R. Rodriguez AR5K_RF_FIXED_BIAS_B, 89*203c4805SLuis R. Rodriguez AR5K_RF_PWD_XPD, 90*203c4805SLuis R. Rodriguez AR5K_RF_XPD_SEL, 91*203c4805SLuis R. Rodriguez AR5K_RF_XPD_GAIN, 92*203c4805SLuis R. Rodriguez AR5K_RF_PD_GAIN_LO, 93*203c4805SLuis R. Rodriguez AR5K_RF_PD_GAIN_HI, 94*203c4805SLuis R. Rodriguez AR5K_RF_HIGH_VC_CP, 95*203c4805SLuis R. Rodriguez AR5K_RF_MID_VC_CP, 96*203c4805SLuis R. Rodriguez AR5K_RF_LOW_VC_CP, 97*203c4805SLuis R. Rodriguez AR5K_RF_PUSH_UP, 98*203c4805SLuis R. Rodriguez AR5K_RF_PAD2GND, 99*203c4805SLuis R. Rodriguez AR5K_RF_XB2_LVL, 100*203c4805SLuis R. Rodriguez AR5K_RF_XB5_LVL, 101*203c4805SLuis R. Rodriguez AR5K_RF_PWD_ICLOBUF_2G, 102*203c4805SLuis R. Rodriguez AR5K_RF_PWD_84, 103*203c4805SLuis R. Rodriguez AR5K_RF_PWD_90, 104*203c4805SLuis R. Rodriguez AR5K_RF_PWD_130, 105*203c4805SLuis R. Rodriguez AR5K_RF_PWD_131, 106*203c4805SLuis R. Rodriguez AR5K_RF_PWD_132, 107*203c4805SLuis R. Rodriguez AR5K_RF_PWD_136, 108*203c4805SLuis R. Rodriguez AR5K_RF_PWD_137, 109*203c4805SLuis R. Rodriguez AR5K_RF_PWD_138, 110*203c4805SLuis R. Rodriguez AR5K_RF_PWD_166, 111*203c4805SLuis R. Rodriguez AR5K_RF_PWD_167, 112*203c4805SLuis R. Rodriguez AR5K_RF_DERBY_CHAN_SEL_MODE, 113*203c4805SLuis R. Rodriguez /* BANK 7 */ 114*203c4805SLuis R. Rodriguez AR5K_RF_GAIN_I, 115*203c4805SLuis R. Rodriguez AR5K_RF_PLO_SEL, 116*203c4805SLuis R. Rodriguez AR5K_RF_RFGAIN_SEL, 117*203c4805SLuis R. Rodriguez AR5K_RF_RFGAIN_STEP, 118*203c4805SLuis R. Rodriguez AR5K_RF_WAIT_S, 119*203c4805SLuis R. Rodriguez AR5K_RF_WAIT_I, 120*203c4805SLuis R. Rodriguez AR5K_RF_MAX_TIME, 121*203c4805SLuis R. Rodriguez AR5K_RF_MIXVGA_OVR, 122*203c4805SLuis R. Rodriguez AR5K_RF_MIXGAIN_OVR, 123*203c4805SLuis R. Rodriguez AR5K_RF_MIXGAIN_STEP, 124*203c4805SLuis R. Rodriguez AR5K_RF_PD_DELAY_A, 125*203c4805SLuis R. Rodriguez AR5K_RF_PD_DELAY_B, 126*203c4805SLuis R. Rodriguez AR5K_RF_PD_DELAY_XR, 127*203c4805SLuis R. Rodriguez AR5K_RF_PD_PERIOD_A, 128*203c4805SLuis R. Rodriguez AR5K_RF_PD_PERIOD_B, 129*203c4805SLuis R. Rodriguez AR5K_RF_PD_PERIOD_XR, 130*203c4805SLuis R. Rodriguez }; 131*203c4805SLuis R. Rodriguez 132*203c4805SLuis R. Rodriguez 133*203c4805SLuis R. Rodriguez /*******************\ 134*203c4805SLuis R. Rodriguez * RF5111 (Sombrero) * 135*203c4805SLuis R. Rodriguez \*******************/ 136*203c4805SLuis R. Rodriguez 137*203c4805SLuis R. Rodriguez /* BANK 6 len pos col */ 138*203c4805SLuis R. Rodriguez #define AR5K_RF5111_OB_2GHZ { 3, 119, 0 } 139*203c4805SLuis R. Rodriguez #define AR5K_RF5111_DB_2GHZ { 3, 122, 0 } 140*203c4805SLuis R. Rodriguez 141*203c4805SLuis R. Rodriguez #define AR5K_RF5111_OB_5GHZ { 3, 104, 0 } 142*203c4805SLuis R. Rodriguez #define AR5K_RF5111_DB_5GHZ { 3, 107, 0 } 143*203c4805SLuis R. Rodriguez 144*203c4805SLuis R. Rodriguez #define AR5K_RF5111_PWD_XPD { 1, 95, 0 } 145*203c4805SLuis R. Rodriguez #define AR5K_RF5111_XPD_GAIN { 4, 96, 0 } 146*203c4805SLuis R. Rodriguez 147*203c4805SLuis R. Rodriguez /* Access to PWD registers */ 148*203c4805SLuis R. Rodriguez #define AR5K_RF5111_PWD(_n) { 1, (135 - _n), 3 } 149*203c4805SLuis R. Rodriguez 150*203c4805SLuis R. Rodriguez /* BANK 7 len pos col */ 151*203c4805SLuis R. Rodriguez #define AR5K_RF5111_GAIN_I { 6, 29, 0 } 152*203c4805SLuis R. Rodriguez #define AR5K_RF5111_PLO_SEL { 1, 4, 0 } 153*203c4805SLuis R. Rodriguez #define AR5K_RF5111_RFGAIN_SEL { 1, 36, 0 } 154*203c4805SLuis R. Rodriguez #define AR5K_RF5111_RFGAIN_STEP { 6, 37, 0 } 155*203c4805SLuis R. Rodriguez /* Only on AR5212 BaseBand and up */ 156*203c4805SLuis R. Rodriguez #define AR5K_RF5111_WAIT_S { 5, 19, 0 } 157*203c4805SLuis R. Rodriguez #define AR5K_RF5111_WAIT_I { 5, 24, 0 } 158*203c4805SLuis R. Rodriguez #define AR5K_RF5111_MAX_TIME { 2, 49, 0 } 159*203c4805SLuis R. Rodriguez 160*203c4805SLuis R. Rodriguez static const struct ath5k_rf_reg rf_regs_5111[] = { 161*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_2GHZ, AR5K_RF5111_OB_2GHZ}, 162*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_2GHZ, AR5K_RF5111_DB_2GHZ}, 163*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_5GHZ, AR5K_RF5111_OB_5GHZ}, 164*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_5GHZ, AR5K_RF5111_DB_5GHZ}, 165*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_XPD, AR5K_RF5111_PWD_XPD}, 166*203c4805SLuis R. Rodriguez {6, AR5K_RF_XPD_GAIN, AR5K_RF5111_XPD_GAIN}, 167*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_84, AR5K_RF5111_PWD(84)}, 168*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_90, AR5K_RF5111_PWD(90)}, 169*203c4805SLuis R. Rodriguez {7, AR5K_RF_GAIN_I, AR5K_RF5111_GAIN_I}, 170*203c4805SLuis R. Rodriguez {7, AR5K_RF_PLO_SEL, AR5K_RF5111_PLO_SEL}, 171*203c4805SLuis R. Rodriguez {7, AR5K_RF_RFGAIN_SEL, AR5K_RF5111_RFGAIN_SEL}, 172*203c4805SLuis R. Rodriguez {7, AR5K_RF_RFGAIN_STEP, AR5K_RF5111_RFGAIN_STEP}, 173*203c4805SLuis R. Rodriguez {7, AR5K_RF_WAIT_S, AR5K_RF5111_WAIT_S}, 174*203c4805SLuis R. Rodriguez {7, AR5K_RF_WAIT_I, AR5K_RF5111_WAIT_I}, 175*203c4805SLuis R. Rodriguez {7, AR5K_RF_MAX_TIME, AR5K_RF5111_MAX_TIME} 176*203c4805SLuis R. Rodriguez }; 177*203c4805SLuis R. Rodriguez 178*203c4805SLuis R. Rodriguez /* Default mode specific settings */ 179*203c4805SLuis R. Rodriguez static const struct ath5k_ini_rfbuffer rfb_5111[] = { 180*203c4805SLuis R. Rodriguez { 0, 0x989c, 181*203c4805SLuis R. Rodriguez /* mode a/XR mode aTurbo mode b mode g mode gTurbo */ 182*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 183*203c4805SLuis R. Rodriguez { 0, 0x989c, 184*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 185*203c4805SLuis R. Rodriguez { 0, 0x989c, 186*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 187*203c4805SLuis R. Rodriguez { 0, 0x989c, 188*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 189*203c4805SLuis R. Rodriguez { 0, 0x989c, 190*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 191*203c4805SLuis R. Rodriguez { 0, 0x989c, 192*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 193*203c4805SLuis R. Rodriguez { 0, 0x989c, 194*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 195*203c4805SLuis R. Rodriguez { 0, 0x989c, 196*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 197*203c4805SLuis R. Rodriguez { 0, 0x989c, 198*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 199*203c4805SLuis R. Rodriguez { 0, 0x989c, 200*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 201*203c4805SLuis R. Rodriguez { 0, 0x989c, 202*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 203*203c4805SLuis R. Rodriguez { 0, 0x989c, 204*203c4805SLuis R. Rodriguez { 0x00380000, 0x00380000, 0x00380000, 0x00380000, 0x00380000 } }, 205*203c4805SLuis R. Rodriguez { 0, 0x989c, 206*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 207*203c4805SLuis R. Rodriguez { 0, 0x989c, 208*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 209*203c4805SLuis R. Rodriguez { 0, 0x989c, 210*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x000000c0, 0x00000080, 0x00000080 } }, 211*203c4805SLuis R. Rodriguez { 0, 0x989c, 212*203c4805SLuis R. Rodriguez { 0x000400f9, 0x000400f9, 0x000400ff, 0x000400fd, 0x000400fd } }, 213*203c4805SLuis R. Rodriguez { 0, 0x98d4, 214*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000004 } }, 215*203c4805SLuis R. Rodriguez { 1, 0x98d4, 216*203c4805SLuis R. Rodriguez { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } }, 217*203c4805SLuis R. Rodriguez { 2, 0x98d4, 218*203c4805SLuis R. Rodriguez { 0x00000010, 0x00000014, 0x00000010, 0x00000010, 0x00000014 } }, 219*203c4805SLuis R. Rodriguez { 3, 0x98d8, 220*203c4805SLuis R. Rodriguez { 0x00601068, 0x00601068, 0x00601068, 0x00601068, 0x00601068 } }, 221*203c4805SLuis R. Rodriguez { 6, 0x989c, 222*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 223*203c4805SLuis R. Rodriguez { 6, 0x989c, 224*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 225*203c4805SLuis R. Rodriguez { 6, 0x989c, 226*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 227*203c4805SLuis R. Rodriguez { 6, 0x989c, 228*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 229*203c4805SLuis R. Rodriguez { 6, 0x989c, 230*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 231*203c4805SLuis R. Rodriguez { 6, 0x989c, 232*203c4805SLuis R. Rodriguez { 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000 } }, 233*203c4805SLuis R. Rodriguez { 6, 0x989c, 234*203c4805SLuis R. Rodriguez { 0x04000000, 0x04000000, 0x04000000, 0x04000000, 0x04000000 } }, 235*203c4805SLuis R. Rodriguez { 6, 0x989c, 236*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 237*203c4805SLuis R. Rodriguez { 6, 0x989c, 238*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 239*203c4805SLuis R. Rodriguez { 6, 0x989c, 240*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 241*203c4805SLuis R. Rodriguez { 6, 0x989c, 242*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x0a000000, 0x00000000, 0x00000000 } }, 243*203c4805SLuis R. Rodriguez { 6, 0x989c, 244*203c4805SLuis R. Rodriguez { 0x003800c0, 0x00380080, 0x023800c0, 0x003800c0, 0x003800c0 } }, 245*203c4805SLuis R. Rodriguez { 6, 0x989c, 246*203c4805SLuis R. Rodriguez { 0x00020006, 0x00020006, 0x00000006, 0x00020006, 0x00020006 } }, 247*203c4805SLuis R. Rodriguez { 6, 0x989c, 248*203c4805SLuis R. Rodriguez { 0x00000089, 0x00000089, 0x00000089, 0x00000089, 0x00000089 } }, 249*203c4805SLuis R. Rodriguez { 6, 0x989c, 250*203c4805SLuis R. Rodriguez { 0x000000a0, 0x000000a0, 0x000000a0, 0x000000a0, 0x000000a0 } }, 251*203c4805SLuis R. Rodriguez { 6, 0x989c, 252*203c4805SLuis R. Rodriguez { 0x00040007, 0x00040007, 0x00040007, 0x00040007, 0x00040007 } }, 253*203c4805SLuis R. Rodriguez { 6, 0x98d4, 254*203c4805SLuis R. Rodriguez { 0x0000001a, 0x0000001a, 0x0000001a, 0x0000001a, 0x0000001a } }, 255*203c4805SLuis R. Rodriguez { 7, 0x989c, 256*203c4805SLuis R. Rodriguez { 0x00000040, 0x00000048, 0x00000040, 0x00000040, 0x00000040 } }, 257*203c4805SLuis R. Rodriguez { 7, 0x989c, 258*203c4805SLuis R. Rodriguez { 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010 } }, 259*203c4805SLuis R. Rodriguez { 7, 0x989c, 260*203c4805SLuis R. Rodriguez { 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000008 } }, 261*203c4805SLuis R. Rodriguez { 7, 0x989c, 262*203c4805SLuis R. Rodriguez { 0x0000004f, 0x0000004f, 0x0000004f, 0x0000004f, 0x0000004f } }, 263*203c4805SLuis R. Rodriguez { 7, 0x989c, 264*203c4805SLuis R. Rodriguez { 0x000000f1, 0x000000f1, 0x00000061, 0x000000f1, 0x000000f1 } }, 265*203c4805SLuis R. Rodriguez { 7, 0x989c, 266*203c4805SLuis R. Rodriguez { 0x0000904f, 0x0000904f, 0x0000904c, 0x0000904f, 0x0000904f } }, 267*203c4805SLuis R. Rodriguez { 7, 0x989c, 268*203c4805SLuis R. Rodriguez { 0x0000125a, 0x0000125a, 0x0000129a, 0x0000125a, 0x0000125a } }, 269*203c4805SLuis R. Rodriguez { 7, 0x98cc, 270*203c4805SLuis R. Rodriguez { 0x0000000e, 0x0000000e, 0x0000000f, 0x0000000e, 0x0000000e } }, 271*203c4805SLuis R. Rodriguez }; 272*203c4805SLuis R. Rodriguez 273*203c4805SLuis R. Rodriguez 274*203c4805SLuis R. Rodriguez 275*203c4805SLuis R. Rodriguez /***********************\ 276*203c4805SLuis R. Rodriguez * RF5112/RF2112 (Derby) * 277*203c4805SLuis R. Rodriguez \***********************/ 278*203c4805SLuis R. Rodriguez 279*203c4805SLuis R. Rodriguez /* BANK 7 (Common) len pos col */ 280*203c4805SLuis R. Rodriguez #define AR5K_RF5112X_GAIN_I { 6, 14, 0 } 281*203c4805SLuis R. Rodriguez #define AR5K_RF5112X_MIXVGA_OVR { 1, 36, 0 } 282*203c4805SLuis R. Rodriguez #define AR5K_RF5112X_MIXGAIN_OVR { 2, 37, 0 } 283*203c4805SLuis R. Rodriguez #define AR5K_RF5112X_MIXGAIN_STEP { 4, 32, 0 } 284*203c4805SLuis R. Rodriguez #define AR5K_RF5112X_PD_DELAY_A { 4, 58, 0 } 285*203c4805SLuis R. Rodriguez #define AR5K_RF5112X_PD_DELAY_B { 4, 62, 0 } 286*203c4805SLuis R. Rodriguez #define AR5K_RF5112X_PD_DELAY_XR { 4, 66, 0 } 287*203c4805SLuis R. Rodriguez #define AR5K_RF5112X_PD_PERIOD_A { 4, 70, 0 } 288*203c4805SLuis R. Rodriguez #define AR5K_RF5112X_PD_PERIOD_B { 4, 74, 0 } 289*203c4805SLuis R. Rodriguez #define AR5K_RF5112X_PD_PERIOD_XR { 4, 78, 0 } 290*203c4805SLuis R. Rodriguez 291*203c4805SLuis R. Rodriguez /* RFX112 (Derby 1) */ 292*203c4805SLuis R. Rodriguez 293*203c4805SLuis R. Rodriguez /* BANK 6 len pos col */ 294*203c4805SLuis R. Rodriguez #define AR5K_RF5112_OB_2GHZ { 3, 269, 0 } 295*203c4805SLuis R. Rodriguez #define AR5K_RF5112_DB_2GHZ { 3, 272, 0 } 296*203c4805SLuis R. Rodriguez 297*203c4805SLuis R. Rodriguez #define AR5K_RF5112_OB_5GHZ { 3, 261, 0 } 298*203c4805SLuis R. Rodriguez #define AR5K_RF5112_DB_5GHZ { 3, 264, 0 } 299*203c4805SLuis R. Rodriguez 300*203c4805SLuis R. Rodriguez #define AR5K_RF5112_FIXED_BIAS_A { 1, 260, 0 } 301*203c4805SLuis R. Rodriguez #define AR5K_RF5112_FIXED_BIAS_B { 1, 259, 0 } 302*203c4805SLuis R. Rodriguez 303*203c4805SLuis R. Rodriguez #define AR5K_RF5112_XPD_SEL { 1, 284, 0 } 304*203c4805SLuis R. Rodriguez #define AR5K_RF5112_XPD_GAIN { 2, 252, 0 } 305*203c4805SLuis R. Rodriguez 306*203c4805SLuis R. Rodriguez /* Access to PWD registers */ 307*203c4805SLuis R. Rodriguez #define AR5K_RF5112_PWD(_n) { 1, (302 - _n), 3 } 308*203c4805SLuis R. Rodriguez 309*203c4805SLuis R. Rodriguez static const struct ath5k_rf_reg rf_regs_5112[] = { 310*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_2GHZ, AR5K_RF5112_OB_2GHZ}, 311*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_2GHZ, AR5K_RF5112_DB_2GHZ}, 312*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_5GHZ, AR5K_RF5112_OB_5GHZ}, 313*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_5GHZ, AR5K_RF5112_DB_5GHZ}, 314*203c4805SLuis R. Rodriguez {6, AR5K_RF_FIXED_BIAS_A, AR5K_RF5112_FIXED_BIAS_A}, 315*203c4805SLuis R. Rodriguez {6, AR5K_RF_FIXED_BIAS_B, AR5K_RF5112_FIXED_BIAS_B}, 316*203c4805SLuis R. Rodriguez {6, AR5K_RF_XPD_SEL, AR5K_RF5112_XPD_SEL}, 317*203c4805SLuis R. Rodriguez {6, AR5K_RF_XPD_GAIN, AR5K_RF5112_XPD_GAIN}, 318*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_130, AR5K_RF5112_PWD(130)}, 319*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_131, AR5K_RF5112_PWD(131)}, 320*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_132, AR5K_RF5112_PWD(132)}, 321*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_136, AR5K_RF5112_PWD(136)}, 322*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_137, AR5K_RF5112_PWD(137)}, 323*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_138, AR5K_RF5112_PWD(138)}, 324*203c4805SLuis R. Rodriguez {7, AR5K_RF_GAIN_I, AR5K_RF5112X_GAIN_I}, 325*203c4805SLuis R. Rodriguez {7, AR5K_RF_MIXVGA_OVR, AR5K_RF5112X_MIXVGA_OVR}, 326*203c4805SLuis R. Rodriguez {7, AR5K_RF_MIXGAIN_OVR, AR5K_RF5112X_MIXGAIN_OVR}, 327*203c4805SLuis R. Rodriguez {7, AR5K_RF_MIXGAIN_STEP, AR5K_RF5112X_MIXGAIN_STEP}, 328*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_DELAY_A, AR5K_RF5112X_PD_DELAY_A}, 329*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_DELAY_B, AR5K_RF5112X_PD_DELAY_B}, 330*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_DELAY_XR, AR5K_RF5112X_PD_DELAY_XR}, 331*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_PERIOD_A, AR5K_RF5112X_PD_PERIOD_A}, 332*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_PERIOD_B, AR5K_RF5112X_PD_PERIOD_B}, 333*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_PERIOD_XR, AR5K_RF5112X_PD_PERIOD_XR}, 334*203c4805SLuis R. Rodriguez }; 335*203c4805SLuis R. Rodriguez 336*203c4805SLuis R. Rodriguez /* Default mode specific settings */ 337*203c4805SLuis R. Rodriguez static const struct ath5k_ini_rfbuffer rfb_5112[] = { 338*203c4805SLuis R. Rodriguez { 1, 0x98d4, 339*203c4805SLuis R. Rodriguez /* mode a/XR mode aTurbo mode b mode g mode gTurbo */ 340*203c4805SLuis R. Rodriguez { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } }, 341*203c4805SLuis R. Rodriguez { 2, 0x98d0, 342*203c4805SLuis R. Rodriguez { 0x03060408, 0x03070408, 0x03060408, 0x03060408, 0x03070408 } }, 343*203c4805SLuis R. Rodriguez { 3, 0x98dc, 344*203c4805SLuis R. Rodriguez { 0x00a0c0c0, 0x00a0c0c0, 0x00e0c0c0, 0x00e0c0c0, 0x00e0c0c0 } }, 345*203c4805SLuis R. Rodriguez { 6, 0x989c, 346*203c4805SLuis R. Rodriguez { 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000 } }, 347*203c4805SLuis R. Rodriguez { 6, 0x989c, 348*203c4805SLuis R. Rodriguez { 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000 } }, 349*203c4805SLuis R. Rodriguez { 6, 0x989c, 350*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 351*203c4805SLuis R. Rodriguez { 6, 0x989c, 352*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 353*203c4805SLuis R. Rodriguez { 6, 0x989c, 354*203c4805SLuis R. Rodriguez { 0x00660000, 0x00660000, 0x00660000, 0x00660000, 0x00660000 } }, 355*203c4805SLuis R. Rodriguez { 6, 0x989c, 356*203c4805SLuis R. Rodriguez { 0x00db0000, 0x00db0000, 0x00db0000, 0x00db0000, 0x00db0000 } }, 357*203c4805SLuis R. Rodriguez { 6, 0x989c, 358*203c4805SLuis R. Rodriguez { 0x00f10000, 0x00f10000, 0x00f10000, 0x00f10000, 0x00f10000 } }, 359*203c4805SLuis R. Rodriguez { 6, 0x989c, 360*203c4805SLuis R. Rodriguez { 0x00120000, 0x00120000, 0x00120000, 0x00120000, 0x00120000 } }, 361*203c4805SLuis R. Rodriguez { 6, 0x989c, 362*203c4805SLuis R. Rodriguez { 0x00120000, 0x00120000, 0x00120000, 0x00120000, 0x00120000 } }, 363*203c4805SLuis R. Rodriguez { 6, 0x989c, 364*203c4805SLuis R. Rodriguez { 0x00730000, 0x00730000, 0x00730000, 0x00730000, 0x00730000 } }, 365*203c4805SLuis R. Rodriguez { 6, 0x989c, 366*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 367*203c4805SLuis R. Rodriguez { 6, 0x989c, 368*203c4805SLuis R. Rodriguez { 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000 } }, 369*203c4805SLuis R. Rodriguez { 6, 0x989c, 370*203c4805SLuis R. Rodriguez { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } }, 371*203c4805SLuis R. Rodriguez { 6, 0x989c, 372*203c4805SLuis R. Rodriguez { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } }, 373*203c4805SLuis R. Rodriguez { 6, 0x989c, 374*203c4805SLuis R. Rodriguez { 0x008b0000, 0x008b0000, 0x008b0000, 0x008b0000, 0x008b0000 } }, 375*203c4805SLuis R. Rodriguez { 6, 0x989c, 376*203c4805SLuis R. Rodriguez { 0x00600000, 0x00600000, 0x00600000, 0x00600000, 0x00600000 } }, 377*203c4805SLuis R. Rodriguez { 6, 0x989c, 378*203c4805SLuis R. Rodriguez { 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000 } }, 379*203c4805SLuis R. Rodriguez { 6, 0x989c, 380*203c4805SLuis R. Rodriguez { 0x00840000, 0x00840000, 0x00840000, 0x00840000, 0x00840000 } }, 381*203c4805SLuis R. Rodriguez { 6, 0x989c, 382*203c4805SLuis R. Rodriguez { 0x00640000, 0x00640000, 0x00640000, 0x00640000, 0x00640000 } }, 383*203c4805SLuis R. Rodriguez { 6, 0x989c, 384*203c4805SLuis R. Rodriguez { 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000 } }, 385*203c4805SLuis R. Rodriguez { 6, 0x989c, 386*203c4805SLuis R. Rodriguez { 0x00240000, 0x00240000, 0x00240000, 0x00240000, 0x00240000 } }, 387*203c4805SLuis R. Rodriguez { 6, 0x989c, 388*203c4805SLuis R. Rodriguez { 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000 } }, 389*203c4805SLuis R. Rodriguez { 6, 0x989c, 390*203c4805SLuis R. Rodriguez { 0x00110000, 0x00110000, 0x00110000, 0x00110000, 0x00110000 } }, 391*203c4805SLuis R. Rodriguez { 6, 0x989c, 392*203c4805SLuis R. Rodriguez { 0x00110000, 0x00110000, 0x00110000, 0x00110000, 0x00110000 } }, 393*203c4805SLuis R. Rodriguez { 6, 0x989c, 394*203c4805SLuis R. Rodriguez { 0x00510000, 0x00510000, 0x00510000, 0x00510000, 0x00510000 } }, 395*203c4805SLuis R. Rodriguez { 6, 0x989c, 396*203c4805SLuis R. Rodriguez { 0x1c040000, 0x1c040000, 0x1c040000, 0x1c040000, 0x1c040000 } }, 397*203c4805SLuis R. Rodriguez { 6, 0x989c, 398*203c4805SLuis R. Rodriguez { 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000 } }, 399*203c4805SLuis R. Rodriguez { 6, 0x989c, 400*203c4805SLuis R. Rodriguez { 0x00a10000, 0x00a10000, 0x00a10000, 0x00a10000, 0x00a10000 } }, 401*203c4805SLuis R. Rodriguez { 6, 0x989c, 402*203c4805SLuis R. Rodriguez { 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000 } }, 403*203c4805SLuis R. Rodriguez { 6, 0x989c, 404*203c4805SLuis R. Rodriguez { 0x03090000, 0x03090000, 0x03090000, 0x03090000, 0x03090000 } }, 405*203c4805SLuis R. Rodriguez { 6, 0x989c, 406*203c4805SLuis R. Rodriguez { 0x06000000, 0x06000000, 0x06000000, 0x06000000, 0x06000000 } }, 407*203c4805SLuis R. Rodriguez { 6, 0x989c, 408*203c4805SLuis R. Rodriguez { 0x000000b0, 0x000000b0, 0x000000a8, 0x000000a8, 0x000000a8 } }, 409*203c4805SLuis R. Rodriguez { 6, 0x989c, 410*203c4805SLuis R. Rodriguez { 0x0000002e, 0x0000002e, 0x0000002e, 0x0000002e, 0x0000002e } }, 411*203c4805SLuis R. Rodriguez { 6, 0x989c, 412*203c4805SLuis R. Rodriguez { 0x006c4a41, 0x006c4a41, 0x006c4af1, 0x006c4a61, 0x006c4a61 } }, 413*203c4805SLuis R. Rodriguez { 6, 0x989c, 414*203c4805SLuis R. Rodriguez { 0x0050892a, 0x0050892a, 0x0050892b, 0x0050892b, 0x0050892b } }, 415*203c4805SLuis R. Rodriguez { 6, 0x989c, 416*203c4805SLuis R. Rodriguez { 0x00842400, 0x00842400, 0x00842400, 0x00842400, 0x00842400 } }, 417*203c4805SLuis R. Rodriguez { 6, 0x989c, 418*203c4805SLuis R. Rodriguez { 0x00c69200, 0x00c69200, 0x00c69200, 0x00c69200, 0x00c69200 } }, 419*203c4805SLuis R. Rodriguez { 6, 0x98d0, 420*203c4805SLuis R. Rodriguez { 0x0002000c, 0x0002000c, 0x0002000c, 0x0002000c, 0x0002000c } }, 421*203c4805SLuis R. Rodriguez { 7, 0x989c, 422*203c4805SLuis R. Rodriguez { 0x00000094, 0x00000094, 0x00000094, 0x00000094, 0x00000094 } }, 423*203c4805SLuis R. Rodriguez { 7, 0x989c, 424*203c4805SLuis R. Rodriguez { 0x00000091, 0x00000091, 0x00000091, 0x00000091, 0x00000091 } }, 425*203c4805SLuis R. Rodriguez { 7, 0x989c, 426*203c4805SLuis R. Rodriguez { 0x0000000a, 0x0000000a, 0x00000012, 0x00000012, 0x00000012 } }, 427*203c4805SLuis R. Rodriguez { 7, 0x989c, 428*203c4805SLuis R. Rodriguez { 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080 } }, 429*203c4805SLuis R. Rodriguez { 7, 0x989c, 430*203c4805SLuis R. Rodriguez { 0x000000c1, 0x000000c1, 0x000000c1, 0x000000c1, 0x000000c1 } }, 431*203c4805SLuis R. Rodriguez { 7, 0x989c, 432*203c4805SLuis R. Rodriguez { 0x00000060, 0x00000060, 0x00000060, 0x00000060, 0x00000060 } }, 433*203c4805SLuis R. Rodriguez { 7, 0x989c, 434*203c4805SLuis R. Rodriguez { 0x000000f0, 0x000000f0, 0x000000f0, 0x000000f0, 0x000000f0 } }, 435*203c4805SLuis R. Rodriguez { 7, 0x989c, 436*203c4805SLuis R. Rodriguez { 0x00000022, 0x00000022, 0x00000022, 0x00000022, 0x00000022 } }, 437*203c4805SLuis R. Rodriguez { 7, 0x989c, 438*203c4805SLuis R. Rodriguez { 0x00000092, 0x00000092, 0x00000092, 0x00000092, 0x00000092 } }, 439*203c4805SLuis R. Rodriguez { 7, 0x989c, 440*203c4805SLuis R. Rodriguez { 0x000000d4, 0x000000d4, 0x000000d4, 0x000000d4, 0x000000d4 } }, 441*203c4805SLuis R. Rodriguez { 7, 0x989c, 442*203c4805SLuis R. Rodriguez { 0x000014cc, 0x000014cc, 0x000014cc, 0x000014cc, 0x000014cc } }, 443*203c4805SLuis R. Rodriguez { 7, 0x989c, 444*203c4805SLuis R. Rodriguez { 0x0000048c, 0x0000048c, 0x0000048c, 0x0000048c, 0x0000048c } }, 445*203c4805SLuis R. Rodriguez { 7, 0x98c4, 446*203c4805SLuis R. Rodriguez { 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003 } }, 447*203c4805SLuis R. Rodriguez }; 448*203c4805SLuis R. Rodriguez 449*203c4805SLuis R. Rodriguez /* RFX112A (Derby 2) */ 450*203c4805SLuis R. Rodriguez 451*203c4805SLuis R. Rodriguez /* BANK 6 len pos col */ 452*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_OB_2GHZ { 3, 287, 0 } 453*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_DB_2GHZ { 3, 290, 0 } 454*203c4805SLuis R. Rodriguez 455*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_OB_5GHZ { 3, 279, 0 } 456*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_DB_5GHZ { 3, 282, 0 } 457*203c4805SLuis R. Rodriguez 458*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_FIXED_BIAS_A { 1, 278, 0 } 459*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_FIXED_BIAS_B { 1, 277, 0 } 460*203c4805SLuis R. Rodriguez 461*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_XPD_SEL { 1, 302, 0 } 462*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_PDGAINLO { 2, 270, 0 } 463*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_PDGAINHI { 2, 257, 0 } 464*203c4805SLuis R. Rodriguez 465*203c4805SLuis R. Rodriguez /* Access to PWD registers */ 466*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_PWD(_n) { 1, (306 - _n), 3 } 467*203c4805SLuis R. Rodriguez 468*203c4805SLuis R. Rodriguez /* Voltage regulators */ 469*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_HIGH_VC_CP { 2, 90, 2 } 470*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_MID_VC_CP { 2, 92, 2 } 471*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_LOW_VC_CP { 2, 94, 2 } 472*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_PUSH_UP { 1, 254, 2 } 473*203c4805SLuis R. Rodriguez 474*203c4805SLuis R. Rodriguez /* Power consumption */ 475*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_PAD2GND { 1, 281, 1 } 476*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_XB2_LVL { 2, 1, 3 } 477*203c4805SLuis R. Rodriguez #define AR5K_RF5112A_XB5_LVL { 2, 3, 3 } 478*203c4805SLuis R. Rodriguez 479*203c4805SLuis R. Rodriguez static const struct ath5k_rf_reg rf_regs_5112a[] = { 480*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_2GHZ, AR5K_RF5112A_OB_2GHZ}, 481*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_2GHZ, AR5K_RF5112A_DB_2GHZ}, 482*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_5GHZ, AR5K_RF5112A_OB_5GHZ}, 483*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_5GHZ, AR5K_RF5112A_DB_5GHZ}, 484*203c4805SLuis R. Rodriguez {6, AR5K_RF_FIXED_BIAS_A, AR5K_RF5112A_FIXED_BIAS_A}, 485*203c4805SLuis R. Rodriguez {6, AR5K_RF_FIXED_BIAS_B, AR5K_RF5112A_FIXED_BIAS_B}, 486*203c4805SLuis R. Rodriguez {6, AR5K_RF_XPD_SEL, AR5K_RF5112A_XPD_SEL}, 487*203c4805SLuis R. Rodriguez {6, AR5K_RF_PD_GAIN_LO, AR5K_RF5112A_PDGAINLO}, 488*203c4805SLuis R. Rodriguez {6, AR5K_RF_PD_GAIN_HI, AR5K_RF5112A_PDGAINHI}, 489*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_130, AR5K_RF5112A_PWD(130)}, 490*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_131, AR5K_RF5112A_PWD(131)}, 491*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_132, AR5K_RF5112A_PWD(132)}, 492*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_136, AR5K_RF5112A_PWD(136)}, 493*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_137, AR5K_RF5112A_PWD(137)}, 494*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_138, AR5K_RF5112A_PWD(138)}, 495*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_166, AR5K_RF5112A_PWD(166)}, 496*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_167, AR5K_RF5112A_PWD(167)}, 497*203c4805SLuis R. Rodriguez {6, AR5K_RF_HIGH_VC_CP, AR5K_RF5112A_HIGH_VC_CP}, 498*203c4805SLuis R. Rodriguez {6, AR5K_RF_MID_VC_CP, AR5K_RF5112A_MID_VC_CP}, 499*203c4805SLuis R. Rodriguez {6, AR5K_RF_LOW_VC_CP, AR5K_RF5112A_LOW_VC_CP}, 500*203c4805SLuis R. Rodriguez {6, AR5K_RF_PUSH_UP, AR5K_RF5112A_PUSH_UP}, 501*203c4805SLuis R. Rodriguez {6, AR5K_RF_PAD2GND, AR5K_RF5112A_PAD2GND}, 502*203c4805SLuis R. Rodriguez {6, AR5K_RF_XB2_LVL, AR5K_RF5112A_XB2_LVL}, 503*203c4805SLuis R. Rodriguez {6, AR5K_RF_XB5_LVL, AR5K_RF5112A_XB5_LVL}, 504*203c4805SLuis R. Rodriguez {7, AR5K_RF_GAIN_I, AR5K_RF5112X_GAIN_I}, 505*203c4805SLuis R. Rodriguez {7, AR5K_RF_MIXVGA_OVR, AR5K_RF5112X_MIXVGA_OVR}, 506*203c4805SLuis R. Rodriguez {7, AR5K_RF_MIXGAIN_OVR, AR5K_RF5112X_MIXGAIN_OVR}, 507*203c4805SLuis R. Rodriguez {7, AR5K_RF_MIXGAIN_STEP, AR5K_RF5112X_MIXGAIN_STEP}, 508*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_DELAY_A, AR5K_RF5112X_PD_DELAY_A}, 509*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_DELAY_B, AR5K_RF5112X_PD_DELAY_B}, 510*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_DELAY_XR, AR5K_RF5112X_PD_DELAY_XR}, 511*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_PERIOD_A, AR5K_RF5112X_PD_PERIOD_A}, 512*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_PERIOD_B, AR5K_RF5112X_PD_PERIOD_B}, 513*203c4805SLuis R. Rodriguez {7, AR5K_RF_PD_PERIOD_XR, AR5K_RF5112X_PD_PERIOD_XR}, 514*203c4805SLuis R. Rodriguez }; 515*203c4805SLuis R. Rodriguez 516*203c4805SLuis R. Rodriguez /* Default mode specific settings */ 517*203c4805SLuis R. Rodriguez static const struct ath5k_ini_rfbuffer rfb_5112a[] = { 518*203c4805SLuis R. Rodriguez { 1, 0x98d4, 519*203c4805SLuis R. Rodriguez /* mode a/XR mode aTurbo mode b mode g mode gTurbo */ 520*203c4805SLuis R. Rodriguez { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } }, 521*203c4805SLuis R. Rodriguez { 2, 0x98d0, 522*203c4805SLuis R. Rodriguez { 0x03060408, 0x03070408, 0x03060408, 0x03060408, 0x03070408 } }, 523*203c4805SLuis R. Rodriguez { 3, 0x98dc, 524*203c4805SLuis R. Rodriguez { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } }, 525*203c4805SLuis R. Rodriguez { 6, 0x989c, 526*203c4805SLuis R. Rodriguez { 0x0f000000, 0x0f000000, 0x0f000000, 0x0f000000, 0x0f000000 } }, 527*203c4805SLuis R. Rodriguez { 6, 0x989c, 528*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 529*203c4805SLuis R. Rodriguez { 6, 0x989c, 530*203c4805SLuis R. Rodriguez { 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000 } }, 531*203c4805SLuis R. Rodriguez { 6, 0x989c, 532*203c4805SLuis R. Rodriguez { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } }, 533*203c4805SLuis R. Rodriguez { 6, 0x989c, 534*203c4805SLuis R. Rodriguez { 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000 } }, 535*203c4805SLuis R. Rodriguez { 6, 0x989c, 536*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 537*203c4805SLuis R. Rodriguez { 6, 0x989c, 538*203c4805SLuis R. Rodriguez { 0x00180000, 0x00180000, 0x00180000, 0x00180000, 0x00180000 } }, 539*203c4805SLuis R. Rodriguez { 6, 0x989c, 540*203c4805SLuis R. Rodriguez { 0x00600000, 0x00600000, 0x006e0000, 0x006e0000, 0x006e0000 } }, 541*203c4805SLuis R. Rodriguez { 6, 0x989c, 542*203c4805SLuis R. Rodriguez { 0x00c70000, 0x00c70000, 0x00c70000, 0x00c70000, 0x00c70000 } }, 543*203c4805SLuis R. Rodriguez { 6, 0x989c, 544*203c4805SLuis R. Rodriguez { 0x004b0000, 0x004b0000, 0x004b0000, 0x004b0000, 0x004b0000 } }, 545*203c4805SLuis R. Rodriguez { 6, 0x989c, 546*203c4805SLuis R. Rodriguez { 0x04480000, 0x04480000, 0x04480000, 0x04480000, 0x04480000 } }, 547*203c4805SLuis R. Rodriguez { 6, 0x989c, 548*203c4805SLuis R. Rodriguez { 0x004c0000, 0x004c0000, 0x004c0000, 0x004c0000, 0x004c0000 } }, 549*203c4805SLuis R. Rodriguez { 6, 0x989c, 550*203c4805SLuis R. Rodriguez { 0x00e40000, 0x00e40000, 0x00e40000, 0x00e40000, 0x00e40000 } }, 551*203c4805SLuis R. Rodriguez { 6, 0x989c, 552*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 553*203c4805SLuis R. Rodriguez { 6, 0x989c, 554*203c4805SLuis R. Rodriguez { 0x00fc0000, 0x00fc0000, 0x00fc0000, 0x00fc0000, 0x00fc0000 } }, 555*203c4805SLuis R. Rodriguez { 6, 0x989c, 556*203c4805SLuis R. Rodriguez { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } }, 557*203c4805SLuis R. Rodriguez { 6, 0x989c, 558*203c4805SLuis R. Rodriguez { 0x043f0000, 0x043f0000, 0x043f0000, 0x043f0000, 0x043f0000 } }, 559*203c4805SLuis R. Rodriguez { 6, 0x989c, 560*203c4805SLuis R. Rodriguez { 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000 } }, 561*203c4805SLuis R. Rodriguez { 6, 0x989c, 562*203c4805SLuis R. Rodriguez { 0x02190000, 0x02190000, 0x02190000, 0x02190000, 0x02190000 } }, 563*203c4805SLuis R. Rodriguez { 6, 0x989c, 564*203c4805SLuis R. Rodriguez { 0x00240000, 0x00240000, 0x00240000, 0x00240000, 0x00240000 } }, 565*203c4805SLuis R. Rodriguez { 6, 0x989c, 566*203c4805SLuis R. Rodriguez { 0x00b40000, 0x00b40000, 0x00b40000, 0x00b40000, 0x00b40000 } }, 567*203c4805SLuis R. Rodriguez { 6, 0x989c, 568*203c4805SLuis R. Rodriguez { 0x00990000, 0x00990000, 0x00990000, 0x00990000, 0x00990000 } }, 569*203c4805SLuis R. Rodriguez { 6, 0x989c, 570*203c4805SLuis R. Rodriguez { 0x00500000, 0x00500000, 0x00500000, 0x00500000, 0x00500000 } }, 571*203c4805SLuis R. Rodriguez { 6, 0x989c, 572*203c4805SLuis R. Rodriguez { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } }, 573*203c4805SLuis R. Rodriguez { 6, 0x989c, 574*203c4805SLuis R. Rodriguez { 0x00120000, 0x00120000, 0x00120000, 0x00120000, 0x00120000 } }, 575*203c4805SLuis R. Rodriguez { 6, 0x989c, 576*203c4805SLuis R. Rodriguez { 0xc0320000, 0xc0320000, 0xc0320000, 0xc0320000, 0xc0320000 } }, 577*203c4805SLuis R. Rodriguez { 6, 0x989c, 578*203c4805SLuis R. Rodriguez { 0x01740000, 0x01740000, 0x01740000, 0x01740000, 0x01740000 } }, 579*203c4805SLuis R. Rodriguez { 6, 0x989c, 580*203c4805SLuis R. Rodriguez { 0x00110000, 0x00110000, 0x00110000, 0x00110000, 0x00110000 } }, 581*203c4805SLuis R. Rodriguez { 6, 0x989c, 582*203c4805SLuis R. Rodriguez { 0x86280000, 0x86280000, 0x86280000, 0x86280000, 0x86280000 } }, 583*203c4805SLuis R. Rodriguez { 6, 0x989c, 584*203c4805SLuis R. Rodriguez { 0x31840000, 0x31840000, 0x31840000, 0x31840000, 0x31840000 } }, 585*203c4805SLuis R. Rodriguez { 6, 0x989c, 586*203c4805SLuis R. Rodriguez { 0x00f20080, 0x00f20080, 0x00f20080, 0x00f20080, 0x00f20080 } }, 587*203c4805SLuis R. Rodriguez { 6, 0x989c, 588*203c4805SLuis R. Rodriguez { 0x00270019, 0x00270019, 0x00270019, 0x00270019, 0x00270019 } }, 589*203c4805SLuis R. Rodriguez { 6, 0x989c, 590*203c4805SLuis R. Rodriguez { 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003 } }, 591*203c4805SLuis R. Rodriguez { 6, 0x989c, 592*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 593*203c4805SLuis R. Rodriguez { 6, 0x989c, 594*203c4805SLuis R. Rodriguez { 0x000000b2, 0x000000b2, 0x000000b2, 0x000000b2, 0x000000b2 } }, 595*203c4805SLuis R. Rodriguez { 6, 0x989c, 596*203c4805SLuis R. Rodriguez { 0x00b02084, 0x00b02084, 0x00b02084, 0x00b02084, 0x00b02084 } }, 597*203c4805SLuis R. Rodriguez { 6, 0x989c, 598*203c4805SLuis R. Rodriguez { 0x004125a4, 0x004125a4, 0x004125a4, 0x004125a4, 0x004125a4 } }, 599*203c4805SLuis R. Rodriguez { 6, 0x989c, 600*203c4805SLuis R. Rodriguez { 0x00119220, 0x00119220, 0x00119220, 0x00119220, 0x00119220 } }, 601*203c4805SLuis R. Rodriguez { 6, 0x989c, 602*203c4805SLuis R. Rodriguez { 0x001a4800, 0x001a4800, 0x001a4800, 0x001a4800, 0x001a4800 } }, 603*203c4805SLuis R. Rodriguez { 6, 0x98d8, 604*203c4805SLuis R. Rodriguez { 0x000b0230, 0x000b0230, 0x000b0230, 0x000b0230, 0x000b0230 } }, 605*203c4805SLuis R. Rodriguez { 7, 0x989c, 606*203c4805SLuis R. Rodriguez { 0x00000094, 0x00000094, 0x00000094, 0x00000094, 0x00000094 } }, 607*203c4805SLuis R. Rodriguez { 7, 0x989c, 608*203c4805SLuis R. Rodriguez { 0x00000091, 0x00000091, 0x00000091, 0x00000091, 0x00000091 } }, 609*203c4805SLuis R. Rodriguez { 7, 0x989c, 610*203c4805SLuis R. Rodriguez { 0x00000012, 0x00000012, 0x00000012, 0x00000012, 0x00000012 } }, 611*203c4805SLuis R. Rodriguez { 7, 0x989c, 612*203c4805SLuis R. Rodriguez { 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080 } }, 613*203c4805SLuis R. Rodriguez { 7, 0x989c, 614*203c4805SLuis R. Rodriguez { 0x000000d9, 0x000000d9, 0x000000d9, 0x000000d9, 0x000000d9 } }, 615*203c4805SLuis R. Rodriguez { 7, 0x989c, 616*203c4805SLuis R. Rodriguez { 0x00000060, 0x00000060, 0x00000060, 0x00000060, 0x00000060 } }, 617*203c4805SLuis R. Rodriguez { 7, 0x989c, 618*203c4805SLuis R. Rodriguez { 0x000000f0, 0x000000f0, 0x000000f0, 0x000000f0, 0x000000f0 } }, 619*203c4805SLuis R. Rodriguez { 7, 0x989c, 620*203c4805SLuis R. Rodriguez { 0x000000a2, 0x000000a2, 0x000000a2, 0x000000a2, 0x000000a2 } }, 621*203c4805SLuis R. Rodriguez { 7, 0x989c, 622*203c4805SLuis R. Rodriguez { 0x00000052, 0x00000052, 0x00000052, 0x00000052, 0x00000052 } }, 623*203c4805SLuis R. Rodriguez { 7, 0x989c, 624*203c4805SLuis R. Rodriguez { 0x000000d4, 0x000000d4, 0x000000d4, 0x000000d4, 0x000000d4 } }, 625*203c4805SLuis R. Rodriguez { 7, 0x989c, 626*203c4805SLuis R. Rodriguez { 0x000014cc, 0x000014cc, 0x000014cc, 0x000014cc, 0x000014cc } }, 627*203c4805SLuis R. Rodriguez { 7, 0x989c, 628*203c4805SLuis R. Rodriguez { 0x0000048c, 0x0000048c, 0x0000048c, 0x0000048c, 0x0000048c } }, 629*203c4805SLuis R. Rodriguez { 7, 0x98c4, 630*203c4805SLuis R. Rodriguez { 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003 } }, 631*203c4805SLuis R. Rodriguez }; 632*203c4805SLuis R. Rodriguez 633*203c4805SLuis R. Rodriguez 634*203c4805SLuis R. Rodriguez 635*203c4805SLuis R. Rodriguez /******************\ 636*203c4805SLuis R. Rodriguez * RF2413 (Griffin) * 637*203c4805SLuis R. Rodriguez \******************/ 638*203c4805SLuis R. Rodriguez 639*203c4805SLuis R. Rodriguez /* BANK 6 len pos col */ 640*203c4805SLuis R. Rodriguez #define AR5K_RF2413_OB_2GHZ { 3, 168, 0 } 641*203c4805SLuis R. Rodriguez #define AR5K_RF2413_DB_2GHZ { 3, 165, 0 } 642*203c4805SLuis R. Rodriguez 643*203c4805SLuis R. Rodriguez static const struct ath5k_rf_reg rf_regs_2413[] = { 644*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_2GHZ, AR5K_RF2413_OB_2GHZ}, 645*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_2GHZ, AR5K_RF2413_DB_2GHZ}, 646*203c4805SLuis R. Rodriguez }; 647*203c4805SLuis R. Rodriguez 648*203c4805SLuis R. Rodriguez /* Default mode specific settings 649*203c4805SLuis R. Rodriguez * XXX: a/aTurbo ??? 650*203c4805SLuis R. Rodriguez */ 651*203c4805SLuis R. Rodriguez static const struct ath5k_ini_rfbuffer rfb_2413[] = { 652*203c4805SLuis R. Rodriguez { 1, 0x98d4, 653*203c4805SLuis R. Rodriguez /* mode a/XR mode aTurbo mode b mode g mode gTurbo */ 654*203c4805SLuis R. Rodriguez { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } }, 655*203c4805SLuis R. Rodriguez { 2, 0x98d0, 656*203c4805SLuis R. Rodriguez { 0x02001408, 0x02011408, 0x02001408, 0x02001408, 0x02011408 } }, 657*203c4805SLuis R. Rodriguez { 3, 0x98dc, 658*203c4805SLuis R. Rodriguez { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } }, 659*203c4805SLuis R. Rodriguez { 6, 0x989c, 660*203c4805SLuis R. Rodriguez { 0xf0000000, 0xf0000000, 0xf0000000, 0xf0000000, 0xf0000000 } }, 661*203c4805SLuis R. Rodriguez { 6, 0x989c, 662*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 663*203c4805SLuis R. Rodriguez { 6, 0x989c, 664*203c4805SLuis R. Rodriguez { 0x03000000, 0x03000000, 0x03000000, 0x03000000, 0x03000000 } }, 665*203c4805SLuis R. Rodriguez { 6, 0x989c, 666*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 667*203c4805SLuis R. Rodriguez { 6, 0x989c, 668*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 669*203c4805SLuis R. Rodriguez { 6, 0x989c, 670*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 671*203c4805SLuis R. Rodriguez { 6, 0x989c, 672*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 673*203c4805SLuis R. Rodriguez { 6, 0x989c, 674*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 675*203c4805SLuis R. Rodriguez { 6, 0x989c, 676*203c4805SLuis R. Rodriguez { 0x40400000, 0x40400000, 0x40400000, 0x40400000, 0x40400000 } }, 677*203c4805SLuis R. Rodriguez { 6, 0x989c, 678*203c4805SLuis R. Rodriguez { 0x65050000, 0x65050000, 0x65050000, 0x65050000, 0x65050000 } }, 679*203c4805SLuis R. Rodriguez { 6, 0x989c, 680*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 681*203c4805SLuis R. Rodriguez { 6, 0x989c, 682*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 683*203c4805SLuis R. Rodriguez { 6, 0x989c, 684*203c4805SLuis R. Rodriguez { 0x00420000, 0x00420000, 0x00420000, 0x00420000, 0x00420000 } }, 685*203c4805SLuis R. Rodriguez { 6, 0x989c, 686*203c4805SLuis R. Rodriguez { 0x00b50000, 0x00b50000, 0x00b50000, 0x00b50000, 0x00b50000 } }, 687*203c4805SLuis R. Rodriguez { 6, 0x989c, 688*203c4805SLuis R. Rodriguez { 0x00030000, 0x00030000, 0x00030000, 0x00030000, 0x00030000 } }, 689*203c4805SLuis R. Rodriguez { 6, 0x989c, 690*203c4805SLuis R. Rodriguez { 0x00f70000, 0x00f70000, 0x00f70000, 0x00f70000, 0x00f70000 } }, 691*203c4805SLuis R. Rodriguez { 6, 0x989c, 692*203c4805SLuis R. Rodriguez { 0x009d0000, 0x009d0000, 0x009d0000, 0x009d0000, 0x009d0000 } }, 693*203c4805SLuis R. Rodriguez { 6, 0x989c, 694*203c4805SLuis R. Rodriguez { 0x00220000, 0x00220000, 0x00220000, 0x00220000, 0x00220000 } }, 695*203c4805SLuis R. Rodriguez { 6, 0x989c, 696*203c4805SLuis R. Rodriguez { 0x04220000, 0x04220000, 0x04220000, 0x04220000, 0x04220000 } }, 697*203c4805SLuis R. Rodriguez { 6, 0x989c, 698*203c4805SLuis R. Rodriguez { 0x00230018, 0x00230018, 0x00230018, 0x00230018, 0x00230018 } }, 699*203c4805SLuis R. Rodriguez { 6, 0x989c, 700*203c4805SLuis R. Rodriguez { 0x00280000, 0x00280000, 0x00280060, 0x00280060, 0x00280060 } }, 701*203c4805SLuis R. Rodriguez { 6, 0x989c, 702*203c4805SLuis R. Rodriguez { 0x005000c0, 0x005000c0, 0x005000c3, 0x005000c3, 0x005000c3 } }, 703*203c4805SLuis R. Rodriguez { 6, 0x989c, 704*203c4805SLuis R. Rodriguez { 0x0004007f, 0x0004007f, 0x0004007f, 0x0004007f, 0x0004007f } }, 705*203c4805SLuis R. Rodriguez { 6, 0x989c, 706*203c4805SLuis R. Rodriguez { 0x00000458, 0x00000458, 0x00000458, 0x00000458, 0x00000458 } }, 707*203c4805SLuis R. Rodriguez { 6, 0x989c, 708*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 709*203c4805SLuis R. Rodriguez { 6, 0x989c, 710*203c4805SLuis R. Rodriguez { 0x0000c000, 0x0000c000, 0x0000c000, 0x0000c000, 0x0000c000 } }, 711*203c4805SLuis R. Rodriguez { 6, 0x98d8, 712*203c4805SLuis R. Rodriguez { 0x00400230, 0x00400230, 0x00400230, 0x00400230, 0x00400230 } }, 713*203c4805SLuis R. Rodriguez { 7, 0x989c, 714*203c4805SLuis R. Rodriguez { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } }, 715*203c4805SLuis R. Rodriguez { 7, 0x989c, 716*203c4805SLuis R. Rodriguez { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } }, 717*203c4805SLuis R. Rodriguez { 7, 0x98cc, 718*203c4805SLuis R. Rodriguez { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } }, 719*203c4805SLuis R. Rodriguez }; 720*203c4805SLuis R. Rodriguez 721*203c4805SLuis R. Rodriguez 722*203c4805SLuis R. Rodriguez 723*203c4805SLuis R. Rodriguez /***************************\ 724*203c4805SLuis R. Rodriguez * RF2315/RF2316 (Cobra SoC) * 725*203c4805SLuis R. Rodriguez \***************************/ 726*203c4805SLuis R. Rodriguez 727*203c4805SLuis R. Rodriguez /* BANK 6 len pos col */ 728*203c4805SLuis R. Rodriguez #define AR5K_RF2316_OB_2GHZ { 3, 178, 0 } 729*203c4805SLuis R. Rodriguez #define AR5K_RF2316_DB_2GHZ { 3, 175, 0 } 730*203c4805SLuis R. Rodriguez 731*203c4805SLuis R. Rodriguez static const struct ath5k_rf_reg rf_regs_2316[] = { 732*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_2GHZ, AR5K_RF2316_OB_2GHZ}, 733*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_2GHZ, AR5K_RF2316_DB_2GHZ}, 734*203c4805SLuis R. Rodriguez }; 735*203c4805SLuis R. Rodriguez 736*203c4805SLuis R. Rodriguez /* Default mode specific settings */ 737*203c4805SLuis R. Rodriguez static const struct ath5k_ini_rfbuffer rfb_2316[] = { 738*203c4805SLuis R. Rodriguez { 1, 0x98d4, 739*203c4805SLuis R. Rodriguez /* mode a/XR mode aTurbo mode b mode g mode gTurbo */ 740*203c4805SLuis R. Rodriguez { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } }, 741*203c4805SLuis R. Rodriguez { 2, 0x98d0, 742*203c4805SLuis R. Rodriguez { 0x02001408, 0x02011408, 0x02001408, 0x02001408, 0x02011408 } }, 743*203c4805SLuis R. Rodriguez { 3, 0x98dc, 744*203c4805SLuis R. Rodriguez { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } }, 745*203c4805SLuis R. Rodriguez { 6, 0x989c, 746*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 747*203c4805SLuis R. Rodriguez { 6, 0x989c, 748*203c4805SLuis R. Rodriguez { 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000 } }, 749*203c4805SLuis R. Rodriguez { 6, 0x989c, 750*203c4805SLuis R. Rodriguez { 0x0f000000, 0x0f000000, 0x0f000000, 0x0f000000, 0x0f000000 } }, 751*203c4805SLuis R. Rodriguez { 6, 0x989c, 752*203c4805SLuis R. Rodriguez { 0x02000000, 0x02000000, 0x02000000, 0x02000000, 0x02000000 } }, 753*203c4805SLuis R. Rodriguez { 6, 0x989c, 754*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 755*203c4805SLuis R. Rodriguez { 6, 0x989c, 756*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 757*203c4805SLuis R. Rodriguez { 6, 0x989c, 758*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 759*203c4805SLuis R. Rodriguez { 6, 0x989c, 760*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 761*203c4805SLuis R. Rodriguez { 6, 0x989c, 762*203c4805SLuis R. Rodriguez { 0xf8000000, 0xf8000000, 0xf8000000, 0xf8000000, 0xf8000000 } }, 763*203c4805SLuis R. Rodriguez { 6, 0x989c, 764*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 765*203c4805SLuis R. Rodriguez { 6, 0x989c, 766*203c4805SLuis R. Rodriguez { 0x95150000, 0x95150000, 0x95150000, 0x95150000, 0x95150000 } }, 767*203c4805SLuis R. Rodriguez { 6, 0x989c, 768*203c4805SLuis R. Rodriguez { 0xc1000000, 0xc1000000, 0xc1000000, 0xc1000000, 0xc1000000 } }, 769*203c4805SLuis R. Rodriguez { 6, 0x989c, 770*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 771*203c4805SLuis R. Rodriguez { 6, 0x989c, 772*203c4805SLuis R. Rodriguez { 0x00080000, 0x00080000, 0x00080000, 0x00080000, 0x00080000 } }, 773*203c4805SLuis R. Rodriguez { 6, 0x989c, 774*203c4805SLuis R. Rodriguez { 0x00d50000, 0x00d50000, 0x00d50000, 0x00d50000, 0x00d50000 } }, 775*203c4805SLuis R. Rodriguez { 6, 0x989c, 776*203c4805SLuis R. Rodriguez { 0x000e0000, 0x000e0000, 0x000e0000, 0x000e0000, 0x000e0000 } }, 777*203c4805SLuis R. Rodriguez { 6, 0x989c, 778*203c4805SLuis R. Rodriguez { 0x00dc0000, 0x00dc0000, 0x00dc0000, 0x00dc0000, 0x00dc0000 } }, 779*203c4805SLuis R. Rodriguez { 6, 0x989c, 780*203c4805SLuis R. Rodriguez { 0x00770000, 0x00770000, 0x00770000, 0x00770000, 0x00770000 } }, 781*203c4805SLuis R. Rodriguez { 6, 0x989c, 782*203c4805SLuis R. Rodriguez { 0x008a0000, 0x008a0000, 0x008a0000, 0x008a0000, 0x008a0000 } }, 783*203c4805SLuis R. Rodriguez { 6, 0x989c, 784*203c4805SLuis R. Rodriguez { 0x10880000, 0x10880000, 0x10880000, 0x10880000, 0x10880000 } }, 785*203c4805SLuis R. Rodriguez { 6, 0x989c, 786*203c4805SLuis R. Rodriguez { 0x008c0060, 0x008c0060, 0x008c0060, 0x008c0060, 0x008c0060 } }, 787*203c4805SLuis R. Rodriguez { 6, 0x989c, 788*203c4805SLuis R. Rodriguez { 0x00a00000, 0x00a00000, 0x00a00080, 0x00a00080, 0x00a00080 } }, 789*203c4805SLuis R. Rodriguez { 6, 0x989c, 790*203c4805SLuis R. Rodriguez { 0x00400000, 0x00400000, 0x0040000d, 0x0040000d, 0x0040000d } }, 791*203c4805SLuis R. Rodriguez { 6, 0x989c, 792*203c4805SLuis R. Rodriguez { 0x00110400, 0x00110400, 0x00110400, 0x00110400, 0x00110400 } }, 793*203c4805SLuis R. Rodriguez { 6, 0x989c, 794*203c4805SLuis R. Rodriguez { 0x00000060, 0x00000060, 0x00000060, 0x00000060, 0x00000060 } }, 795*203c4805SLuis R. Rodriguez { 6, 0x989c, 796*203c4805SLuis R. Rodriguez { 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001 } }, 797*203c4805SLuis R. Rodriguez { 6, 0x989c, 798*203c4805SLuis R. Rodriguez { 0x00000b00, 0x00000b00, 0x00000b00, 0x00000b00, 0x00000b00 } }, 799*203c4805SLuis R. Rodriguez { 6, 0x989c, 800*203c4805SLuis R. Rodriguez { 0x00000be8, 0x00000be8, 0x00000be8, 0x00000be8, 0x00000be8 } }, 801*203c4805SLuis R. Rodriguez { 6, 0x98c0, 802*203c4805SLuis R. Rodriguez { 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000 } }, 803*203c4805SLuis R. Rodriguez { 7, 0x989c, 804*203c4805SLuis R. Rodriguez { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } }, 805*203c4805SLuis R. Rodriguez { 7, 0x989c, 806*203c4805SLuis R. Rodriguez { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } }, 807*203c4805SLuis R. Rodriguez { 7, 0x98cc, 808*203c4805SLuis R. Rodriguez { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } }, 809*203c4805SLuis R. Rodriguez }; 810*203c4805SLuis R. Rodriguez 811*203c4805SLuis R. Rodriguez 812*203c4805SLuis R. Rodriguez 813*203c4805SLuis R. Rodriguez /******************************\ 814*203c4805SLuis R. Rodriguez * RF5413/RF5424 (Eagle/Condor) * 815*203c4805SLuis R. Rodriguez \******************************/ 816*203c4805SLuis R. Rodriguez 817*203c4805SLuis R. Rodriguez /* BANK 6 len pos col */ 818*203c4805SLuis R. Rodriguez #define AR5K_RF5413_OB_2GHZ { 3, 241, 0 } 819*203c4805SLuis R. Rodriguez #define AR5K_RF5413_DB_2GHZ { 3, 238, 0 } 820*203c4805SLuis R. Rodriguez 821*203c4805SLuis R. Rodriguez #define AR5K_RF5413_OB_5GHZ { 3, 247, 0 } 822*203c4805SLuis R. Rodriguez #define AR5K_RF5413_DB_5GHZ { 3, 244, 0 } 823*203c4805SLuis R. Rodriguez 824*203c4805SLuis R. Rodriguez #define AR5K_RF5413_PWD_ICLOBUF2G { 3, 131, 3 } 825*203c4805SLuis R. Rodriguez #define AR5K_RF5413_DERBY_CHAN_SEL_MODE { 1, 291, 2 } 826*203c4805SLuis R. Rodriguez 827*203c4805SLuis R. Rodriguez static const struct ath5k_rf_reg rf_regs_5413[] = { 828*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_2GHZ, AR5K_RF5413_OB_2GHZ}, 829*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_2GHZ, AR5K_RF5413_DB_2GHZ}, 830*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_5GHZ, AR5K_RF5413_OB_5GHZ}, 831*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_5GHZ, AR5K_RF5413_DB_5GHZ}, 832*203c4805SLuis R. Rodriguez {6, AR5K_RF_PWD_ICLOBUF_2G, AR5K_RF5413_PWD_ICLOBUF2G}, 833*203c4805SLuis R. Rodriguez {6, AR5K_RF_DERBY_CHAN_SEL_MODE, AR5K_RF5413_DERBY_CHAN_SEL_MODE}, 834*203c4805SLuis R. Rodriguez }; 835*203c4805SLuis R. Rodriguez 836*203c4805SLuis R. Rodriguez /* Default mode specific settings */ 837*203c4805SLuis R. Rodriguez static const struct ath5k_ini_rfbuffer rfb_5413[] = { 838*203c4805SLuis R. Rodriguez { 1, 0x98d4, 839*203c4805SLuis R. Rodriguez /* mode a/XR mode aTurbo mode b mode g mode gTurbo */ 840*203c4805SLuis R. Rodriguez { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } }, 841*203c4805SLuis R. Rodriguez { 2, 0x98d0, 842*203c4805SLuis R. Rodriguez { 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000008 } }, 843*203c4805SLuis R. Rodriguez { 3, 0x98dc, 844*203c4805SLuis R. Rodriguez { 0x00a000c0, 0x00a000c0, 0x00e000c0, 0x00e000c0, 0x00e000c0 } }, 845*203c4805SLuis R. Rodriguez { 6, 0x989c, 846*203c4805SLuis R. Rodriguez { 0x33000000, 0x33000000, 0x33000000, 0x33000000, 0x33000000 } }, 847*203c4805SLuis R. Rodriguez { 6, 0x989c, 848*203c4805SLuis R. Rodriguez { 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000 } }, 849*203c4805SLuis R. Rodriguez { 6, 0x989c, 850*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 851*203c4805SLuis R. Rodriguez { 6, 0x989c, 852*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 853*203c4805SLuis R. Rodriguez { 6, 0x989c, 854*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 855*203c4805SLuis R. Rodriguez { 6, 0x989c, 856*203c4805SLuis R. Rodriguez { 0x1f000000, 0x1f000000, 0x1f000000, 0x1f000000, 0x1f000000 } }, 857*203c4805SLuis R. Rodriguez { 6, 0x989c, 858*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 859*203c4805SLuis R. Rodriguez { 6, 0x989c, 860*203c4805SLuis R. Rodriguez { 0x00b80000, 0x00b80000, 0x00b80000, 0x00b80000, 0x00b80000 } }, 861*203c4805SLuis R. Rodriguez { 6, 0x989c, 862*203c4805SLuis R. Rodriguez { 0x00b70000, 0x00b70000, 0x00b70000, 0x00b70000, 0x00b70000 } }, 863*203c4805SLuis R. Rodriguez { 6, 0x989c, 864*203c4805SLuis R. Rodriguez { 0x00840000, 0x00840000, 0x00840000, 0x00840000, 0x00840000 } }, 865*203c4805SLuis R. Rodriguez { 6, 0x989c, 866*203c4805SLuis R. Rodriguez { 0x00980000, 0x00980000, 0x00980000, 0x00980000, 0x00980000 } }, 867*203c4805SLuis R. Rodriguez { 6, 0x989c, 868*203c4805SLuis R. Rodriguez { 0x00c00000, 0x00c00000, 0x00c00000, 0x00c00000, 0x00c00000 } }, 869*203c4805SLuis R. Rodriguez { 6, 0x989c, 870*203c4805SLuis R. Rodriguez { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } }, 871*203c4805SLuis R. Rodriguez { 6, 0x989c, 872*203c4805SLuis R. Rodriguez { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } }, 873*203c4805SLuis R. Rodriguez { 6, 0x989c, 874*203c4805SLuis R. Rodriguez { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } }, 875*203c4805SLuis R. Rodriguez { 6, 0x989c, 876*203c4805SLuis R. Rodriguez { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } }, 877*203c4805SLuis R. Rodriguez { 6, 0x989c, 878*203c4805SLuis R. Rodriguez { 0x00d70000, 0x00d70000, 0x00d70000, 0x00d70000, 0x00d70000 } }, 879*203c4805SLuis R. Rodriguez { 6, 0x989c, 880*203c4805SLuis R. Rodriguez { 0x00610000, 0x00610000, 0x00610000, 0x00610000, 0x00610000 } }, 881*203c4805SLuis R. Rodriguez { 6, 0x989c, 882*203c4805SLuis R. Rodriguez { 0x00fe0000, 0x00fe0000, 0x00fe0000, 0x00fe0000, 0x00fe0000 } }, 883*203c4805SLuis R. Rodriguez { 6, 0x989c, 884*203c4805SLuis R. Rodriguez { 0x00de0000, 0x00de0000, 0x00de0000, 0x00de0000, 0x00de0000 } }, 885*203c4805SLuis R. Rodriguez { 6, 0x989c, 886*203c4805SLuis R. Rodriguez { 0x007f0000, 0x007f0000, 0x007f0000, 0x007f0000, 0x007f0000 } }, 887*203c4805SLuis R. Rodriguez { 6, 0x989c, 888*203c4805SLuis R. Rodriguez { 0x043d0000, 0x043d0000, 0x043d0000, 0x043d0000, 0x043d0000 } }, 889*203c4805SLuis R. Rodriguez { 6, 0x989c, 890*203c4805SLuis R. Rodriguez { 0x00770000, 0x00770000, 0x00770000, 0x00770000, 0x00770000 } }, 891*203c4805SLuis R. Rodriguez { 6, 0x989c, 892*203c4805SLuis R. Rodriguez { 0x00440000, 0x00440000, 0x00440000, 0x00440000, 0x00440000 } }, 893*203c4805SLuis R. Rodriguez { 6, 0x989c, 894*203c4805SLuis R. Rodriguez { 0x00980000, 0x00980000, 0x00980000, 0x00980000, 0x00980000 } }, 895*203c4805SLuis R. Rodriguez { 6, 0x989c, 896*203c4805SLuis R. Rodriguez { 0x00100080, 0x00100080, 0x00100080, 0x00100080, 0x00100080 } }, 897*203c4805SLuis R. Rodriguez { 6, 0x989c, 898*203c4805SLuis R. Rodriguez { 0x0005c034, 0x0005c034, 0x0005c034, 0x0005c034, 0x0005c034 } }, 899*203c4805SLuis R. Rodriguez { 6, 0x989c, 900*203c4805SLuis R. Rodriguez { 0x003100f0, 0x003100f0, 0x003100f0, 0x003100f0, 0x003100f0 } }, 901*203c4805SLuis R. Rodriguez { 6, 0x989c, 902*203c4805SLuis R. Rodriguez { 0x000c011f, 0x000c011f, 0x000c011f, 0x000c011f, 0x000c011f } }, 903*203c4805SLuis R. Rodriguez { 6, 0x989c, 904*203c4805SLuis R. Rodriguez { 0x00510040, 0x00510040, 0x00510040, 0x00510040, 0x00510040 } }, 905*203c4805SLuis R. Rodriguez { 6, 0x989c, 906*203c4805SLuis R. Rodriguez { 0x005000da, 0x005000da, 0x005000da, 0x005000da, 0x005000da } }, 907*203c4805SLuis R. Rodriguez { 6, 0x989c, 908*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 909*203c4805SLuis R. Rodriguez { 6, 0x989c, 910*203c4805SLuis R. Rodriguez { 0x00004044, 0x00004044, 0x00004044, 0x00004044, 0x00004044 } }, 911*203c4805SLuis R. Rodriguez { 6, 0x989c, 912*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 913*203c4805SLuis R. Rodriguez { 6, 0x989c, 914*203c4805SLuis R. Rodriguez { 0x000060c0, 0x000060c0, 0x000060c0, 0x000060c0, 0x000060c0 } }, 915*203c4805SLuis R. Rodriguez { 6, 0x989c, 916*203c4805SLuis R. Rodriguez { 0x00002c00, 0x00002c00, 0x00003600, 0x00003600, 0x00002c00 } }, 917*203c4805SLuis R. Rodriguez { 6, 0x98c8, 918*203c4805SLuis R. Rodriguez { 0x00000403, 0x00000403, 0x00040403, 0x00040403, 0x00040403 } }, 919*203c4805SLuis R. Rodriguez { 7, 0x989c, 920*203c4805SLuis R. Rodriguez { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } }, 921*203c4805SLuis R. Rodriguez { 7, 0x989c, 922*203c4805SLuis R. Rodriguez { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } }, 923*203c4805SLuis R. Rodriguez { 7, 0x98cc, 924*203c4805SLuis R. Rodriguez { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } }, 925*203c4805SLuis R. Rodriguez }; 926*203c4805SLuis R. Rodriguez 927*203c4805SLuis R. Rodriguez 928*203c4805SLuis R. Rodriguez 929*203c4805SLuis R. Rodriguez /***************************\ 930*203c4805SLuis R. Rodriguez * RF2425/RF2417 (Swan/Nala) * 931*203c4805SLuis R. Rodriguez * AR2317 (Spider SoC) * 932*203c4805SLuis R. Rodriguez \***************************/ 933*203c4805SLuis R. Rodriguez 934*203c4805SLuis R. Rodriguez /* BANK 6 len pos col */ 935*203c4805SLuis R. Rodriguez #define AR5K_RF2425_OB_2GHZ { 3, 193, 0 } 936*203c4805SLuis R. Rodriguez #define AR5K_RF2425_DB_2GHZ { 3, 190, 0 } 937*203c4805SLuis R. Rodriguez 938*203c4805SLuis R. Rodriguez static const struct ath5k_rf_reg rf_regs_2425[] = { 939*203c4805SLuis R. Rodriguez {6, AR5K_RF_OB_2GHZ, AR5K_RF2425_OB_2GHZ}, 940*203c4805SLuis R. Rodriguez {6, AR5K_RF_DB_2GHZ, AR5K_RF2425_DB_2GHZ}, 941*203c4805SLuis R. Rodriguez }; 942*203c4805SLuis R. Rodriguez 943*203c4805SLuis R. Rodriguez /* Default mode specific settings 944*203c4805SLuis R. Rodriguez * XXX: a/aTurbo ? 945*203c4805SLuis R. Rodriguez */ 946*203c4805SLuis R. Rodriguez static const struct ath5k_ini_rfbuffer rfb_2425[] = { 947*203c4805SLuis R. Rodriguez { 1, 0x98d4, 948*203c4805SLuis R. Rodriguez /* mode a/XR mode aTurbo mode b mode g mode gTurbo */ 949*203c4805SLuis R. Rodriguez { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } }, 950*203c4805SLuis R. Rodriguez { 2, 0x98d0, 951*203c4805SLuis R. Rodriguez { 0x02001408, 0x02001408, 0x02001408, 0x02001408, 0x02001408 } }, 952*203c4805SLuis R. Rodriguez { 3, 0x98dc, 953*203c4805SLuis R. Rodriguez { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } }, 954*203c4805SLuis R. Rodriguez { 6, 0x989c, 955*203c4805SLuis R. Rodriguez { 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000 } }, 956*203c4805SLuis R. Rodriguez { 6, 0x989c, 957*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 958*203c4805SLuis R. Rodriguez { 6, 0x989c, 959*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 960*203c4805SLuis R. Rodriguez { 6, 0x989c, 961*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 962*203c4805SLuis R. Rodriguez { 6, 0x989c, 963*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 964*203c4805SLuis R. Rodriguez { 6, 0x989c, 965*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 966*203c4805SLuis R. Rodriguez { 6, 0x989c, 967*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 968*203c4805SLuis R. Rodriguez { 6, 0x989c, 969*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 970*203c4805SLuis R. Rodriguez { 6, 0x989c, 971*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 972*203c4805SLuis R. Rodriguez { 6, 0x989c, 973*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 974*203c4805SLuis R. Rodriguez { 6, 0x989c, 975*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 976*203c4805SLuis R. Rodriguez { 6, 0x989c, 977*203c4805SLuis R. Rodriguez { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } }, 978*203c4805SLuis R. Rodriguez { 6, 0x989c, 979*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 980*203c4805SLuis R. Rodriguez { 6, 0x989c, 981*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 982*203c4805SLuis R. Rodriguez { 6, 0x989c, 983*203c4805SLuis R. Rodriguez { 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000 } }, 984*203c4805SLuis R. Rodriguez { 6, 0x989c, 985*203c4805SLuis R. Rodriguez { 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020000 } }, 986*203c4805SLuis R. Rodriguez { 6, 0x989c, 987*203c4805SLuis R. Rodriguez { 0x00730000, 0x00730000, 0x00730000, 0x00730000, 0x00730000 } }, 988*203c4805SLuis R. Rodriguez { 6, 0x989c, 989*203c4805SLuis R. Rodriguez { 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000 } }, 990*203c4805SLuis R. Rodriguez { 6, 0x989c, 991*203c4805SLuis R. Rodriguez { 0x00e70000, 0x00e70000, 0x00e70000, 0x00e70000, 0x00e70000 } }, 992*203c4805SLuis R. Rodriguez { 6, 0x989c, 993*203c4805SLuis R. Rodriguez { 0x00140000, 0x00140000, 0x00140000, 0x00140000, 0x00140000 } }, 994*203c4805SLuis R. Rodriguez { 6, 0x989c, 995*203c4805SLuis R. Rodriguez { 0x00910040, 0x00910040, 0x00910040, 0x00910040, 0x00910040 } }, 996*203c4805SLuis R. Rodriguez { 6, 0x989c, 997*203c4805SLuis R. Rodriguez { 0x0007001a, 0x0007001a, 0x0007001a, 0x0007001a, 0x0007001a } }, 998*203c4805SLuis R. Rodriguez { 6, 0x989c, 999*203c4805SLuis R. Rodriguez { 0x00410000, 0x00410000, 0x00410000, 0x00410000, 0x00410000 } }, 1000*203c4805SLuis R. Rodriguez { 6, 0x989c, 1001*203c4805SLuis R. Rodriguez { 0x00810000, 0x00810000, 0x00810060, 0x00810060, 0x00810060 } }, 1002*203c4805SLuis R. Rodriguez { 6, 0x989c, 1003*203c4805SLuis R. Rodriguez { 0x00020800, 0x00020800, 0x00020803, 0x00020803, 0x00020803 } }, 1004*203c4805SLuis R. Rodriguez { 6, 0x989c, 1005*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1006*203c4805SLuis R. Rodriguez { 6, 0x989c, 1007*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1008*203c4805SLuis R. Rodriguez { 6, 0x989c, 1009*203c4805SLuis R. Rodriguez { 0x00001660, 0x00001660, 0x00001660, 0x00001660, 0x00001660 } }, 1010*203c4805SLuis R. Rodriguez { 6, 0x989c, 1011*203c4805SLuis R. Rodriguez { 0x00001688, 0x00001688, 0x00001688, 0x00001688, 0x00001688 } }, 1012*203c4805SLuis R. Rodriguez { 6, 0x98c4, 1013*203c4805SLuis R. Rodriguez { 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001 } }, 1014*203c4805SLuis R. Rodriguez { 7, 0x989c, 1015*203c4805SLuis R. Rodriguez { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } }, 1016*203c4805SLuis R. Rodriguez { 7, 0x989c, 1017*203c4805SLuis R. Rodriguez { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } }, 1018*203c4805SLuis R. Rodriguez { 7, 0x98cc, 1019*203c4805SLuis R. Rodriguez { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } }, 1020*203c4805SLuis R. Rodriguez }; 1021*203c4805SLuis R. Rodriguez 1022*203c4805SLuis R. Rodriguez /* 1023*203c4805SLuis R. Rodriguez * TODO: Handle the few differences with swan during 1024*203c4805SLuis R. Rodriguez * bank modification and get rid of this 1025*203c4805SLuis R. Rodriguez */ 1026*203c4805SLuis R. Rodriguez static const struct ath5k_ini_rfbuffer rfb_2317[] = { 1027*203c4805SLuis R. Rodriguez { 1, 0x98d4, 1028*203c4805SLuis R. Rodriguez /* mode a/XR mode aTurbo mode b mode g mode gTurbo */ 1029*203c4805SLuis R. Rodriguez { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } }, 1030*203c4805SLuis R. Rodriguez { 2, 0x98d0, 1031*203c4805SLuis R. Rodriguez { 0x02001408, 0x02011408, 0x02001408, 0x02001408, 0x02011408 } }, 1032*203c4805SLuis R. Rodriguez { 3, 0x98dc, 1033*203c4805SLuis R. Rodriguez { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } }, 1034*203c4805SLuis R. Rodriguez { 6, 0x989c, 1035*203c4805SLuis R. Rodriguez { 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000 } }, 1036*203c4805SLuis R. Rodriguez { 6, 0x989c, 1037*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1038*203c4805SLuis R. Rodriguez { 6, 0x989c, 1039*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1040*203c4805SLuis R. Rodriguez { 6, 0x989c, 1041*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1042*203c4805SLuis R. Rodriguez { 6, 0x989c, 1043*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1044*203c4805SLuis R. Rodriguez { 6, 0x989c, 1045*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1046*203c4805SLuis R. Rodriguez { 6, 0x989c, 1047*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1048*203c4805SLuis R. Rodriguez { 6, 0x989c, 1049*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1050*203c4805SLuis R. Rodriguez { 6, 0x989c, 1051*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1052*203c4805SLuis R. Rodriguez { 6, 0x989c, 1053*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1054*203c4805SLuis R. Rodriguez { 6, 0x989c, 1055*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1056*203c4805SLuis R. Rodriguez { 6, 0x989c, 1057*203c4805SLuis R. Rodriguez { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } }, 1058*203c4805SLuis R. Rodriguez { 6, 0x989c, 1059*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1060*203c4805SLuis R. Rodriguez { 6, 0x989c, 1061*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1062*203c4805SLuis R. Rodriguez { 6, 0x989c, 1063*203c4805SLuis R. Rodriguez { 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000 } }, 1064*203c4805SLuis R. Rodriguez { 6, 0x989c, 1065*203c4805SLuis R. Rodriguez { 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020000 } }, 1066*203c4805SLuis R. Rodriguez { 6, 0x989c, 1067*203c4805SLuis R. Rodriguez { 0x00730000, 0x00730000, 0x00730000, 0x00730000, 0x00730000 } }, 1068*203c4805SLuis R. Rodriguez { 6, 0x989c, 1069*203c4805SLuis R. Rodriguez { 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000 } }, 1070*203c4805SLuis R. Rodriguez { 6, 0x989c, 1071*203c4805SLuis R. Rodriguez { 0x00e70000, 0x00e70000, 0x00e70000, 0x00e70000, 0x00e70000 } }, 1072*203c4805SLuis R. Rodriguez { 6, 0x989c, 1073*203c4805SLuis R. Rodriguez { 0x00140100, 0x00140100, 0x00140100, 0x00140100, 0x00140100 } }, 1074*203c4805SLuis R. Rodriguez { 6, 0x989c, 1075*203c4805SLuis R. Rodriguez { 0x00910040, 0x00910040, 0x00910040, 0x00910040, 0x00910040 } }, 1076*203c4805SLuis R. Rodriguez { 6, 0x989c, 1077*203c4805SLuis R. Rodriguez { 0x0007001a, 0x0007001a, 0x0007001a, 0x0007001a, 0x0007001a } }, 1078*203c4805SLuis R. Rodriguez { 6, 0x989c, 1079*203c4805SLuis R. Rodriguez { 0x00410000, 0x00410000, 0x00410000, 0x00410000, 0x00410000 } }, 1080*203c4805SLuis R. Rodriguez { 6, 0x989c, 1081*203c4805SLuis R. Rodriguez { 0x00810000, 0x00810000, 0x00810060, 0x00810060, 0x00810060 } }, 1082*203c4805SLuis R. Rodriguez { 6, 0x989c, 1083*203c4805SLuis R. Rodriguez { 0x00020800, 0x00020800, 0x00020803, 0x00020803, 0x00020803 } }, 1084*203c4805SLuis R. Rodriguez { 6, 0x989c, 1085*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1086*203c4805SLuis R. Rodriguez { 6, 0x989c, 1087*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1088*203c4805SLuis R. Rodriguez { 6, 0x989c, 1089*203c4805SLuis R. Rodriguez { 0x00001660, 0x00001660, 0x00001660, 0x00001660, 0x00001660 } }, 1090*203c4805SLuis R. Rodriguez { 6, 0x989c, 1091*203c4805SLuis R. Rodriguez { 0x00009688, 0x00009688, 0x00009688, 0x00009688, 0x00009688 } }, 1092*203c4805SLuis R. Rodriguez { 6, 0x98c4, 1093*203c4805SLuis R. Rodriguez { 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001 } }, 1094*203c4805SLuis R. Rodriguez { 7, 0x989c, 1095*203c4805SLuis R. Rodriguez { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } }, 1096*203c4805SLuis R. Rodriguez { 7, 0x989c, 1097*203c4805SLuis R. Rodriguez { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } }, 1098*203c4805SLuis R. Rodriguez { 7, 0x98cc, 1099*203c4805SLuis R. Rodriguez { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } }, 1100*203c4805SLuis R. Rodriguez }; 1101*203c4805SLuis R. Rodriguez 1102*203c4805SLuis R. Rodriguez /* 1103*203c4805SLuis R. Rodriguez * TODO: Handle the few differences with swan during 1104*203c4805SLuis R. Rodriguez * bank modification and get rid of this 1105*203c4805SLuis R. Rodriguez * XXX: a/aTurbo ? 1106*203c4805SLuis R. Rodriguez */ 1107*203c4805SLuis R. Rodriguez static const struct ath5k_ini_rfbuffer rfb_2417[] = { 1108*203c4805SLuis R. Rodriguez { 1, 0x98d4, 1109*203c4805SLuis R. Rodriguez /* mode a/XR mode aTurbo mode b mode g mode gTurbo */ 1110*203c4805SLuis R. Rodriguez { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } }, 1111*203c4805SLuis R. Rodriguez { 2, 0x98d0, 1112*203c4805SLuis R. Rodriguez { 0x02001408, 0x02001408, 0x02001408, 0x02001408, 0x02001408 } }, 1113*203c4805SLuis R. Rodriguez { 3, 0x98dc, 1114*203c4805SLuis R. Rodriguez { 0x00a020c0, 0x00a020c0, 0x00e020c0, 0x00e020c0, 0x00e020c0 } }, 1115*203c4805SLuis R. Rodriguez { 6, 0x989c, 1116*203c4805SLuis R. Rodriguez { 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000 } }, 1117*203c4805SLuis R. Rodriguez { 6, 0x989c, 1118*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1119*203c4805SLuis R. Rodriguez { 6, 0x989c, 1120*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1121*203c4805SLuis R. Rodriguez { 6, 0x989c, 1122*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1123*203c4805SLuis R. Rodriguez { 6, 0x989c, 1124*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1125*203c4805SLuis R. Rodriguez { 6, 0x989c, 1126*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1127*203c4805SLuis R. Rodriguez { 6, 0x989c, 1128*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1129*203c4805SLuis R. Rodriguez { 6, 0x989c, 1130*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1131*203c4805SLuis R. Rodriguez { 6, 0x989c, 1132*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1133*203c4805SLuis R. Rodriguez { 6, 0x989c, 1134*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1135*203c4805SLuis R. Rodriguez { 6, 0x989c, 1136*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1137*203c4805SLuis R. Rodriguez { 6, 0x989c, 1138*203c4805SLuis R. Rodriguez { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } }, 1139*203c4805SLuis R. Rodriguez { 6, 0x989c, 1140*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1141*203c4805SLuis R. Rodriguez { 6, 0x989c, 1142*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1143*203c4805SLuis R. Rodriguez { 6, 0x989c, 1144*203c4805SLuis R. Rodriguez { 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000 } }, 1145*203c4805SLuis R. Rodriguez { 6, 0x989c, 1146*203c4805SLuis R. Rodriguez { 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020000 } }, 1147*203c4805SLuis R. Rodriguez { 6, 0x989c, 1148*203c4805SLuis R. Rodriguez { 0x00730000, 0x00730000, 0x00730000, 0x00730000, 0x00730000 } }, 1149*203c4805SLuis R. Rodriguez { 6, 0x989c, 1150*203c4805SLuis R. Rodriguez { 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000, 0x00f80000 } }, 1151*203c4805SLuis R. Rodriguez { 6, 0x989c, 1152*203c4805SLuis R. Rodriguez { 0x00e70000, 0x00e70000, 0x80e70000, 0x80e70000, 0x00e70000 } }, 1153*203c4805SLuis R. Rodriguez { 6, 0x989c, 1154*203c4805SLuis R. Rodriguez { 0x00140000, 0x00140000, 0x00140000, 0x00140000, 0x00140000 } }, 1155*203c4805SLuis R. Rodriguez { 6, 0x989c, 1156*203c4805SLuis R. Rodriguez { 0x00910040, 0x00910040, 0x00910040, 0x00910040, 0x00910040 } }, 1157*203c4805SLuis R. Rodriguez { 6, 0x989c, 1158*203c4805SLuis R. Rodriguez { 0x0007001a, 0x0007001a, 0x0207001a, 0x0207001a, 0x0007001a } }, 1159*203c4805SLuis R. Rodriguez { 6, 0x989c, 1160*203c4805SLuis R. Rodriguez { 0x00410000, 0x00410000, 0x00410000, 0x00410000, 0x00410000 } }, 1161*203c4805SLuis R. Rodriguez { 6, 0x989c, 1162*203c4805SLuis R. Rodriguez { 0x00810000, 0x00810000, 0x00810060, 0x00810060, 0x00810060 } }, 1163*203c4805SLuis R. Rodriguez { 6, 0x989c, 1164*203c4805SLuis R. Rodriguez { 0x00020800, 0x00020800, 0x00020803, 0x00020803, 0x00020803 } }, 1165*203c4805SLuis R. Rodriguez { 6, 0x989c, 1166*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1167*203c4805SLuis R. Rodriguez { 6, 0x989c, 1168*203c4805SLuis R. Rodriguez { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, 1169*203c4805SLuis R. Rodriguez { 6, 0x989c, 1170*203c4805SLuis R. Rodriguez { 0x00001660, 0x00001660, 0x00001660, 0x00001660, 0x00001660 } }, 1171*203c4805SLuis R. Rodriguez { 6, 0x989c, 1172*203c4805SLuis R. Rodriguez { 0x00001688, 0x00001688, 0x00001688, 0x00001688, 0x00001688 } }, 1173*203c4805SLuis R. Rodriguez { 6, 0x98c4, 1174*203c4805SLuis R. Rodriguez { 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001 } }, 1175*203c4805SLuis R. Rodriguez { 7, 0x989c, 1176*203c4805SLuis R. Rodriguez { 0x00006400, 0x00006400, 0x00006400, 0x00006400, 0x00006400 } }, 1177*203c4805SLuis R. Rodriguez { 7, 0x989c, 1178*203c4805SLuis R. Rodriguez { 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800 } }, 1179*203c4805SLuis R. Rodriguez { 7, 0x98cc, 1180*203c4805SLuis R. Rodriguez { 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e, 0x0000000e } }, 1181*203c4805SLuis R. Rodriguez }; 1182