1 1.1 christos /* $NetBSD: arn5416reg.h,v 1.1 2013/03/30 02:53:01 christos Exp $ */ 2 1.1 christos /* $OpenBSD: ar5416reg.h,v 1.5 2012/10/20 09:54:20 stsp Exp $ */ 3 1.1 christos 4 1.1 christos /*- 5 1.1 christos * Copyright (c) 2009 Damien Bergamini <damien.bergamini (at) free.fr> 6 1.1 christos * Copyright (c) 2008-2009 Atheros Communications Inc. 7 1.1 christos * 8 1.1 christos * Permission to use, copy, modify, and/or distribute this software for any 9 1.1 christos * purpose with or without fee is hereby granted, provided that the above 10 1.1 christos * copyright notice and this permission notice appear in all copies. 11 1.1 christos * 12 1.1 christos * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 13 1.1 christos * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 14 1.1 christos * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 15 1.1 christos * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 16 1.1 christos * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 17 1.1 christos * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 18 1.1 christos * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 19 1.1 christos */ 20 1.1 christos 21 1.1 christos #ifndef _ARN5416REG_H_ 22 1.1 christos #define _ARN5416REG_H_ 23 1.1 christos 24 1.1 christos #define AR5416_MAX_CHAINS 3 25 1.1 christos 26 1.1 christos #define AR5416_PHY_CCA_MAX_GOOD_VALUE ( -85) 27 1.1 christos 28 1.1 christos /* 29 1.1 christos * ROM layout used by AR5416, AR9160 and AR9280. 30 1.1 christos */ 31 1.1 christos #define AR5416_EEP_START_LOC 256 32 1.1 christos #define AR5416_NUM_5G_CAL_PIERS 8 33 1.1 christos #define AR5416_NUM_2G_CAL_PIERS 4 34 1.1 christos #define AR5416_NUM_5G_20_TARGET_POWERS 8 35 1.1 christos #define AR5416_NUM_5G_40_TARGET_POWERS 8 36 1.1 christos #define AR5416_NUM_2G_CCK_TARGET_POWERS 3 37 1.1 christos #define AR5416_NUM_2G_20_TARGET_POWERS 4 38 1.1 christos #define AR5416_NUM_2G_40_TARGET_POWERS 4 39 1.1 christos #define AR5416_NUM_CTLS 24 40 1.1 christos #define AR5416_NUM_BAND_EDGES 8 41 1.1 christos #define AR5416_NUM_PD_GAINS 4 42 1.1 christos #define AR5416_PD_GAINS_IN_MASK 4 43 1.1 christos #define AR5416_PD_GAIN_ICEPTS 5 44 1.1 christos 45 1.1 christos struct ar5416_base_eep_header { 46 1.1 christos uint16_t length; 47 1.1 christos uint16_t checksum; 48 1.1 christos uint16_t version; 49 1.1 christos uint8_t opCapFlags; 50 1.1 christos uint8_t eepMisc; 51 1.1 christos uint16_t regDmn[2]; 52 1.1 christos uint8_t macAddr[6]; 53 1.1 christos uint8_t rxMask; 54 1.1 christos uint8_t txMask; 55 1.1 christos uint16_t rfSilent; 56 1.1 christos uint16_t blueToothOptions; 57 1.1 christos uint16_t deviceCap; 58 1.1 christos uint32_t binBuildNumber; 59 1.1 christos uint8_t deviceType; 60 1.1 christos /* End of common header. */ 61 1.1 christos uint8_t pwdclkind; 62 1.1 christos uint8_t fastClk5g; 63 1.1 christos uint8_t divChain; 64 1.1 christos uint8_t rxGainType; 65 1.1 christos #define AR5416_EEP_RXGAIN_23DB_BACKOFF 0 66 1.1 christos #define AR5416_EEP_RXGAIN_13DB_BACKOFF 1 67 1.1 christos #define AR5416_EEP_RXGAIN_ORIG 2 68 1.1 christos 69 1.1 christos uint8_t dacHiPwrMode_5G; 70 1.1 christos uint8_t openLoopPwrCntl; 71 1.1 christos uint8_t dacLpMode; 72 1.1 christos uint8_t txGainType; 73 1.1 christos uint8_t rcChainMask; 74 1.1 christos uint8_t desiredScaleCCK; 75 1.1 christos uint8_t pwrTableOffset; 76 1.1 christos uint8_t frac_n_5g; 77 1.1 christos uint8_t futureBase[21]; 78 1.1 christos } __packed; 79 1.1 christos 80 1.1 christos struct ar5416_modal_eep_header { 81 1.1 christos uint32_t antCtrlChain[AR5416_MAX_CHAINS]; 82 1.1 christos uint32_t antCtrlCommon; 83 1.1 christos uint8_t antennaGainCh[AR5416_MAX_CHAINS]; 84 1.1 christos uint8_t switchSettling; 85 1.1 christos uint8_t txRxAttenCh[AR5416_MAX_CHAINS]; 86 1.1 christos uint8_t rxTxMarginCh[AR5416_MAX_CHAINS]; 87 1.1 christos uint8_t adcDesiredSize; 88 1.1 christos uint8_t pgaDesiredSize; 89 1.1 christos uint8_t xlnaGainCh[AR5416_MAX_CHAINS]; 90 1.1 christos uint8_t txEndToXpaOff; 91 1.1 christos uint8_t txEndToRxOn; 92 1.1 christos uint8_t txFrameToXpaOn; 93 1.1 christos uint8_t thresh62; 94 1.1 christos uint8_t noiseFloorThreshCh[AR5416_MAX_CHAINS]; 95 1.1 christos uint8_t xpdGain; 96 1.1 christos uint8_t xpd; 97 1.1 christos uint8_t iqCalICh[AR5416_MAX_CHAINS]; 98 1.1 christos uint8_t iqCalQCh[AR5416_MAX_CHAINS]; 99 1.1 christos uint8_t pdGainOverlap; 100 1.1 christos uint8_t ob; 101 1.1 christos uint8_t db; 102 1.1 christos uint8_t xpaBiasLvl; 103 1.1 christos uint8_t pwrDecreaseFor2Chain; 104 1.1 christos uint8_t pwrDecreaseFor3Chain; 105 1.1 christos uint8_t txFrameToDataStart; 106 1.1 christos uint8_t txFrameToPaOn; 107 1.1 christos uint8_t ht40PowerIncForPdadc; 108 1.1 christos uint8_t bswAtten[AR5416_MAX_CHAINS]; 109 1.1 christos uint8_t bswMargin[AR5416_MAX_CHAINS]; 110 1.1 christos uint8_t swSettleHt40; 111 1.1 christos uint8_t xatten2Db[AR5416_MAX_CHAINS]; 112 1.1 christos uint8_t xatten2Margin[AR5416_MAX_CHAINS]; 113 1.1 christos uint8_t ob_ch1; 114 1.1 christos uint8_t db_ch1; 115 1.1 christos uint8_t flagBits; 116 1.1 christos #define AR5416_EEP_FLAG_USEANT1 0x01 117 1.1 christos #define AR5416_EEP_FLAG_FORCEXPAON 0x02 118 1.1 christos #define AR5416_EEP_FLAG_LOCALBIAS 0x04 119 1.1 christos #define AR5416_EEP_FLAG_FEMBANDSELECT 0x08 120 1.1 christos #define AR5416_EEP_FLAG_XLNABUFIN 0x10 121 1.1 christos #define AR5416_EEP_FLAG_XLNAISEL_M 0x60 122 1.1 christos #define AR5416_EEP_FLAG_XLNAISEL_S 5 123 1.1 christos #define AR5416_EEP_FLAG_XLNABUFMODE 0x80 124 1.1 christos 125 1.1 christos uint8_t miscBits; 126 1.1 christos #define AR5416_EEP_MISC_TX_DAC_SCALE_CCK_M 0x03 127 1.1 christos #define AR5416_EEP_MISC_TX_DAC_SCALE_CCK_S 0 128 1.1 christos #define AR5416_EEP_MISC_TX_CLIP_M 0xfc 129 1.1 christos #define AR5416_EEP_MISC_TX_CLIP_S 2 130 1.1 christos 131 1.1 christos uint16_t xpaBiasLvlFreq[3]; 132 1.1 christos uint8_t futureModal[6]; 133 1.1 christos struct ar_spur_chan spurChans[AR_EEPROM_MODAL_SPURS]; 134 1.1 christos } __packed; 135 1.1 christos 136 1.1 christos struct ar5416_cal_data_per_freq { 137 1.1 christos uint8_t pwrPdg[AR5416_NUM_PD_GAINS][AR5416_PD_GAIN_ICEPTS]; 138 1.1 christos uint8_t vpdPdg[AR5416_NUM_PD_GAINS][AR5416_PD_GAIN_ICEPTS]; 139 1.1 christos } __packed; 140 1.1 christos 141 1.1 christos struct ar5416_cal_ctl_data { 142 1.1 christos struct ar_cal_ctl_edges 143 1.1 christos ctlEdges[AR5416_MAX_CHAINS][AR5416_NUM_BAND_EDGES]; 144 1.1 christos } __packed; 145 1.1 christos 146 1.1 christos struct ar5416_eeprom { 147 1.1 christos struct ar5416_base_eep_header baseEepHeader; 148 1.1 christos uint8_t custData[64]; 149 1.1 christos struct ar5416_modal_eep_header modalHeader[2]; 150 1.1 christos uint8_t calFreqPier5G[AR5416_NUM_5G_CAL_PIERS]; 151 1.1 christos uint8_t calFreqPier2G[AR5416_NUM_2G_CAL_PIERS]; 152 1.1 christos struct ar5416_cal_data_per_freq 153 1.1 christos calPierData5G[AR5416_MAX_CHAINS][AR5416_NUM_5G_CAL_PIERS]; 154 1.1 christos struct ar5416_cal_data_per_freq 155 1.1 christos calPierData2G[AR5416_MAX_CHAINS][AR5416_NUM_2G_CAL_PIERS]; 156 1.1 christos struct ar_cal_target_power_leg 157 1.1 christos calTargetPower5G[AR5416_NUM_5G_20_TARGET_POWERS]; 158 1.1 christos struct ar_cal_target_power_ht 159 1.1 christos calTargetPower5GHT20[AR5416_NUM_5G_20_TARGET_POWERS]; 160 1.1 christos struct ar_cal_target_power_ht 161 1.1 christos calTargetPower5GHT40[AR5416_NUM_5G_40_TARGET_POWERS]; 162 1.1 christos struct ar_cal_target_power_leg 163 1.1 christos calTargetPowerCck[AR5416_NUM_2G_CCK_TARGET_POWERS]; 164 1.1 christos struct ar_cal_target_power_leg 165 1.1 christos calTargetPower2G[AR5416_NUM_2G_20_TARGET_POWERS]; 166 1.1 christos struct ar_cal_target_power_ht 167 1.1 christos calTargetPower2GHT20[AR5416_NUM_2G_20_TARGET_POWERS]; 168 1.1 christos struct ar_cal_target_power_ht 169 1.1 christos calTargetPower2GHT40[AR5416_NUM_2G_40_TARGET_POWERS]; 170 1.1 christos uint8_t ctlIndex[AR5416_NUM_CTLS]; 171 1.1 christos struct ar5416_cal_ctl_data ctlData[AR5416_NUM_CTLS]; 172 1.1 christos uint8_t padding; 173 1.1 christos } __packed; 174 1.1 christos 175 1.1 christos /* Macro to "pack" registers to 16-bit to save some .rodata space. */ 176 1.1 christos #define P(x) (x) 177 1.1 christos 178 1.1 christos /* 179 1.1 christos * AR5416 initialization values. 180 1.1 christos */ 181 1.1 christos static const uint16_t ar5416_regs[] = { 182 1.1 christos P(0x01030), P(0x01070), P(0x010b0), P(0x010f0), P(0x08014), 183 1.1 christos P(0x0801c), P(0x08120), P(0x081d0), P(0x09804), P(0x09820), 184 1.1 christos P(0x09824), P(0x09828), P(0x09834), P(0x09838), P(0x09844), 185 1.1 christos P(0x09848), P(0x0a848), P(0x0b848), P(0x09850), P(0x09858), 186 1.1 christos P(0x0985c), P(0x09860), P(0x09864), P(0x09868), P(0x0986c), 187 1.1 christos P(0x09914), P(0x09918), P(0x09924), P(0x09944), P(0x09960), 188 1.1 christos P(0x0a960), P(0x0b960), P(0x09964), P(0x099bc), P(0x099c0), 189 1.1 christos P(0x099c4), P(0x099c8), P(0x099cc), P(0x099d0), P(0x099d4), 190 1.1 christos P(0x099d8), P(0x0a204), P(0x0a208), P(0x0a20c), P(0x0b20c), 191 1.1 christos P(0x0c20c), P(0x0a21c), P(0x0a230), P(0x0a274), P(0x0a300), 192 1.1 christos P(0x0a304), P(0x0a308), P(0x0a30c), P(0x0a310), P(0x0a314), 193 1.1 christos P(0x0a318), P(0x0a31c), P(0x0a320), P(0x0a324), P(0x0a328), 194 1.1 christos P(0x0a32c), P(0x0a330), P(0x0a334) 195 1.1 christos }; 196 1.1 christos 197 1.1 christos static const uint32_t ar5416_vals_5g20[] = { 198 1.1 christos 0x00000230, 0x00000168, 0x00000e60, 0x0000a000, 0x03e803e8, 199 1.1 christos 0x128d93a7, 0x08f04800, 0x00003210, 0x00000300, 0x02020200, 200 1.1 christos 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x1372161e, 201 1.1 christos 0x001a6a65, 0x001a6a65, 0x001a6a65, 0x6c48b4e0, 0x7ec82d2e, 202 1.1 christos 0x31395d5e, 0x00049d18, 0x0001ce00, 0x409a4190, 0x050cb081, 203 1.1 christos 0x000007d0, 0x000001b8, 0xd0058a0b, 0xffb81020, 0x00000900, 204 1.1 christos 0x00000900, 0x00000900, 0x00000000, 0x001a0a00, 0x038919be, 205 1.1 christos 0x06336f77, 0x6af6532c, 0x08f186c8, 0x00046384, 0x00000000, 206 1.1 christos 0x00000000, 0x00000880, 0xd6be4788, 0x002ec1e0, 0x002ec1e0, 207 1.1 christos 0x002ec1e0, 0x1883800a, 0x00000000, 0x0a1a9caa, 0x18010000, 208 1.1 christos 0x30032602, 0x48073e06, 0x560b4c0a, 0x641a600f, 0x7a4f6e1b, 209 1.1 christos 0x8c5b7e5a, 0x9d0f96cf, 0xb51fa69f, 0xcb3fbd07, 0x0000d7bf, 210 1.1 christos 0x00000000, 0x00000000, 0x00000000 211 1.1 christos }; 212 1.1 christos 213 1.1 christos #ifndef IEEE80211_NO_HT 214 1.1 christos static const uint32_t ar5416_vals_5g40[] = { 215 1.1 christos 0x00000460, 0x000002d0, 0x00001cc0, 0x00014000, 0x07d007d0, 216 1.1 christos 0x128d93cf, 0x08f04800, 0x00003210, 0x000003c4, 0x02020200, 217 1.1 christos 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x1372161e, 218 1.1 christos 0x001a6a65, 0x001a6a65, 0x001a6a65, 0x6d48b4e0, 0x7ec82d2e, 219 1.1 christos 0x3139605e, 0x00049d18, 0x0001ce00, 0x409a4190, 0x050cb081, 220 1.1 christos 0x00000fa0, 0x00000370, 0xd0058a0b, 0xffb81020, 0x00000900, 221 1.1 christos 0x00000900, 0x00000900, 0x00000000, 0x001a0a00, 0x038919be, 222 1.1 christos 0x06336f77, 0x6af6532c, 0x08f186c8, 0x00046384, 0x00000000, 223 1.1 christos 0x00000000, 0x00000880, 0xd6be4788, 0x002ec1e0, 0x002ec1e0, 224 1.1 christos 0x002ec1e0, 0x1883800a, 0x00000000, 0x0a1a9caa, 0x18010000, 225 1.1 christos 0x30032602, 0x48073e06, 0x560b4c0a, 0x641a600f, 0x7a4f6e1b, 226 1.1 christos 0x8c5b7e5a, 0x9d0f96cf, 0xb51fa69f, 0xcb3fbcbf, 0x0000d7bf, 227 1.1 christos 0x00000000, 0x00000000, 0x00000000 228 1.1 christos }; 229 1.1 christos 230 1.1 christos static const uint32_t ar5416_vals_2g40[] = { 231 1.1 christos 0x000002c0, 0x00000318, 0x00007c70, 0x00016000, 0x10801600, 232 1.1 christos 0x12e013d7, 0x08f04810, 0x0000320a, 0x000003c4, 0x02020200, 233 1.1 christos 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x137216a0, 234 1.1 christos 0x00197a68, 0x00197a68, 0x00197a68, 0x6d48b0de, 0x7ec82d2e, 235 1.1 christos 0x3139605e, 0x00049d18, 0x0001ce00, 0x409a4190, 0x050cb081, 236 1.1 christos 0x00001130, 0x00000268, 0xd0058a0b, 0xffb81020, 0x00012d80, 237 1.1 christos 0x00012d80, 0x00012d80, 0x00001120, 0x001a0a00, 0x038919be, 238 1.1 christos 0x06336f77, 0x6af6532c, 0x08f186c8, 0x00046384, 0x00000000, 239 1.1 christos 0x00000000, 0x00000880, 0xd03e4788, 0x002ac120, 0x002ac120, 240 1.1 christos 0x002ac120, 0x1883800a, 0x00000210, 0x0a1a7caa, 0x18010000, 241 1.1 christos 0x2e032402, 0x4a0a3c06, 0x621a540b, 0x764f6c1b, 0x845b7a5a, 242 1.1 christos 0x950f8ccf, 0xa5cf9b4f, 0xbddfaf1f, 0xd1ffc93f, 0x00000000, 243 1.1 christos 0x00000000, 0x00000000, 0x00000000 244 1.1 christos }; 245 1.1 christos #endif 246 1.1 christos 247 1.1 christos static const uint32_t ar5416_vals_2g20[] = { 248 1.1 christos 0x00000160, 0x0000018c, 0x00003e38, 0x0000b000, 0x08400b00, 249 1.1 christos 0x12e013ab, 0x08f04810, 0x0000320a, 0x00000300, 0x02020200, 250 1.1 christos 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x137216a0, 251 1.1 christos 0x00197a68, 0x00197a68, 0x00197a68, 0x6c48b0de, 0x7ec82d2e, 252 1.1 christos 0x31395d5e, 0x00049d18, 0x0001ce00, 0x409a4190, 0x050cb081, 253 1.1 christos 0x00000898, 0x00000134, 0xd0058a0b, 0xffb81020, 0x00012d80, 254 1.1 christos 0x00012d80, 0x00012d80, 0x00001120, 0x001a0a00, 0x038919be, 255 1.1 christos 0x06336f77, 0x6af6532c, 0x08f186c8, 0x00046384, 0x00000000, 256 1.1 christos 0x00000000, 0x00000880, 0xd03e4788, 0x002ac120, 0x002ac120, 257 1.1 christos 0x002ac120, 0x1883800a, 0x00000108, 0x0a1a7caa, 0x18010000, 258 1.1 christos 0x2e032402, 0x4a0a3c06, 0x621a540b, 0x764f6c1b, 0x845b7a5a, 259 1.1 christos 0x950f8ccf, 0xa5cf9b4f, 0xbddfaf1f, 0xd1ffc93f, 0x00000000, 260 1.1 christos 0x00000000, 0x00000000, 0x00000000 261 1.1 christos }; 262 1.1 christos 263 1.1 christos static const uint16_t ar5416_cm_regs[] = { 264 1.1 christos P(0x0000c), P(0x00030), P(0x00034), P(0x00040), P(0x00044), 265 1.1 christos P(0x00048), P(0x0004c), P(0x00050), P(0x00054), P(0x00800), 266 1.1 christos P(0x00804), P(0x00808), P(0x0080c), P(0x00810), P(0x00814), 267 1.1 christos P(0x00818), P(0x0081c), P(0x00820), P(0x00824), P(0x01040), 268 1.1 christos P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054), 269 1.1 christos P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x01230), 270 1.1 christos P(0x01270), P(0x01038), P(0x01078), P(0x010b8), P(0x010f8), 271 1.1 christos P(0x01138), P(0x01178), P(0x011b8), P(0x011f8), P(0x01238), 272 1.1 christos P(0x01278), P(0x012b8), P(0x012f8), P(0x01338), P(0x01378), 273 1.1 christos P(0x013b8), P(0x013f8), P(0x01438), P(0x01478), P(0x014b8), 274 1.1 christos P(0x014f8), P(0x01538), P(0x01578), P(0x015b8), P(0x015f8), 275 1.1 christos P(0x01638), P(0x01678), P(0x016b8), P(0x016f8), P(0x01738), 276 1.1 christos P(0x01778), P(0x017b8), P(0x017f8), P(0x0103c), P(0x0107c), 277 1.1 christos P(0x010bc), P(0x010fc), P(0x0113c), P(0x0117c), P(0x011bc), 278 1.1 christos P(0x011fc), P(0x0123c), P(0x0127c), P(0x012bc), P(0x012fc), 279 1.1 christos P(0x0133c), P(0x0137c), P(0x013bc), P(0x013fc), P(0x0143c), 280 1.1 christos P(0x0147c), P(0x04030), P(0x0403c), P(0x07010), P(0x07038), 281 1.1 christos P(0x08004), P(0x08008), P(0x0800c), P(0x08018), P(0x08020), 282 1.1 christos P(0x08038), P(0x0803c), P(0x08048), P(0x08054), P(0x08058), 283 1.1 christos P(0x0805c), P(0x08060), P(0x08064), P(0x080c0), P(0x080c4), 284 1.1 christos P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), P(0x080d8), 285 1.1 christos P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), P(0x080f0), 286 1.1 christos P(0x080f4), P(0x080f8), P(0x080fc), P(0x08100), P(0x08104), 287 1.1 christos P(0x08108), P(0x0810c), P(0x08110), P(0x08118), P(0x0811c), 288 1.1 christos P(0x08124), P(0x08128), P(0x0812c), P(0x08130), P(0x08134), 289 1.1 christos P(0x08138), P(0x0813c), P(0x08144), P(0x08168), P(0x0816c), 290 1.1 christos P(0x08170), P(0x08174), P(0x08178), P(0x0817c), P(0x081c4), 291 1.1 christos P(0x081ec), P(0x081f0), P(0x081f4), P(0x081f8), P(0x081fc), 292 1.1 christos P(0x08200), P(0x08204), P(0x08208), P(0x0820c), P(0x08210), 293 1.1 christos P(0x08214), P(0x08218), P(0x0821c), P(0x08220), P(0x08224), 294 1.1 christos P(0x08228), P(0x0822c), P(0x08230), P(0x08234), P(0x08238), 295 1.1 christos P(0x0823c), P(0x08240), P(0x08244), P(0x08248), P(0x0824c), 296 1.1 christos P(0x08250), P(0x08254), P(0x08258), P(0x0825c), P(0x08260), 297 1.1 christos P(0x08264), P(0x08270), P(0x08274), P(0x08278), P(0x0827c), 298 1.1 christos P(0x08284), P(0x08288), P(0x0828c), P(0x08294), P(0x08298), 299 1.1 christos P(0x08300), P(0x08304), P(0x08308), P(0x0830c), P(0x08310), 300 1.1 christos P(0x08314), P(0x08318), P(0x08328), P(0x0832c), P(0x08330), 301 1.1 christos P(0x08334), P(0x08338), P(0x0833c), P(0x08340), P(0x09808), 302 1.1 christos P(0x0980c), P(0x09810), P(0x09814), P(0x0981c), P(0x0982c), 303 1.1 christos P(0x09830), P(0x0983c), P(0x09840), P(0x0984c), P(0x09854), 304 1.1 christos P(0x09900), P(0x09904), P(0x09908), P(0x0990c), P(0x0991c), 305 1.1 christos P(0x09920), P(0x0a920), P(0x0b920), P(0x09928), P(0x0992c), 306 1.1 christos P(0x09934), P(0x09938), P(0x0993c), P(0x09948), P(0x0994c), 307 1.1 christos P(0x09954), P(0x09958), P(0x0c95c), P(0x0c968), P(0x09970), 308 1.1 christos P(0x09974), P(0x09978), P(0x0997c), P(0x09980), P(0x09984), 309 1.1 christos P(0x09988), P(0x0998c), P(0x09990), P(0x09994), P(0x09998), 310 1.1 christos P(0x0999c), P(0x099a0), P(0x099a4), P(0x099a8), P(0x099ac), 311 1.1 christos P(0x099b0), P(0x099dc), P(0x099e0), P(0x099e4), P(0x099e8), 312 1.1 christos P(0x099ec), P(0x099fc), P(0x09b00), P(0x09b04), P(0x09b08), 313 1.1 christos P(0x09b0c), P(0x09b10), P(0x09b14), P(0x09b18), P(0x09b1c), 314 1.1 christos P(0x09b20), P(0x09b24), P(0x09b28), P(0x09b2c), P(0x09b30), 315 1.1 christos P(0x09b34), P(0x09b38), P(0x09b3c), P(0x09b40), P(0x09b44), 316 1.1 christos P(0x09b48), P(0x09b4c), P(0x09b50), P(0x09b54), P(0x09b58), 317 1.1 christos P(0x09b5c), P(0x09b60), P(0x09b64), P(0x09b68), P(0x09b6c), 318 1.1 christos P(0x09b70), P(0x09b74), P(0x09b78), P(0x09b7c), P(0x09b80), 319 1.1 christos P(0x09b84), P(0x09b88), P(0x09b8c), P(0x09b90), P(0x09b94), 320 1.1 christos P(0x09b98), P(0x09b9c), P(0x09ba0), P(0x09ba4), P(0x09ba8), 321 1.1 christos P(0x09bac), P(0x09bb0), P(0x09bb4), P(0x09bb8), P(0x09bbc), 322 1.1 christos P(0x09bc0), P(0x09bc4), P(0x09bc8), P(0x09bcc), P(0x09bd0), 323 1.1 christos P(0x09bd4), P(0x09bd8), P(0x09bdc), P(0x09be0), P(0x09be4), 324 1.1 christos P(0x09be8), P(0x09bec), P(0x09bf0), P(0x09bf4), P(0x09bf8), 325 1.1 christos P(0x09bfc), P(0x0a210), P(0x0a214), P(0x0a218), P(0x0a220), 326 1.1 christos P(0x0a224), P(0x0a228), P(0x0a22c), P(0x0a234), P(0x0a238), 327 1.1 christos P(0x0a23c), P(0x0a240), P(0x0a244), P(0x0a248), P(0x0a24c), 328 1.1 christos P(0x0a250), P(0x0a254), P(0x0a258), P(0x0a25c), P(0x0a260), 329 1.1 christos P(0x0a268), P(0x0a26c), P(0x0b26c), P(0x0c26c), P(0x0d270), 330 1.1 christos P(0x0a278), P(0x0a27c), P(0x0a338), P(0x0a33c), P(0x0a340), 331 1.1 christos P(0x0a344), P(0x0a348), P(0x0a34c), P(0x0a350), P(0x0a354), 332 1.1 christos P(0x0a358), P(0x0d35c), P(0x0d360), P(0x0d364), P(0x0d368), 333 1.1 christos P(0x0d36c), P(0x0d370), P(0x0d374), P(0x0d378), P(0x0d37c), 334 1.1 christos P(0x0d380), P(0x0d384), P(0x0a388), P(0x0a38c), P(0x0a390), 335 1.1 christos P(0x0a394), P(0x0a398), P(0x0a39c), P(0x0a3a0), P(0x0a3a4), 336 1.1 christos P(0x0a3a8), P(0x0a3ac), P(0x0a3b0), P(0x0a3b4), P(0x0a3b8), 337 1.1 christos P(0x0a3bc), P(0x0a3c0), P(0x0a3c4), P(0x0a3c8), P(0x0a3cc), 338 1.1 christos P(0x0a3d0), P(0x0a3d4), P(0x0a3dc), P(0x0a3e0) 339 1.1 christos }; 340 1.1 christos 341 1.1 christos static const uint32_t ar5416_cm_vals[] = { 342 1.1 christos 0x00000000, 0x00020015, 0x00000005, 0x00000000, 0x00000008, 343 1.1 christos 0x00000008, 0x00000010, 0x00000000, 0x0000001f, 0x00000000, 344 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 345 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002ffc0f, 346 1.1 christos 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 347 1.1 christos 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000000, 348 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 349 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 350 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 351 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 352 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 353 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 354 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 355 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 356 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 357 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 358 1.1 christos 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x000004c2, 359 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000700, 0x00000000, 360 1.1 christos 0x00000000, 0x00000000, 0x40000000, 0x00000000, 0x00000000, 361 1.1 christos 0x000fc78f, 0x0000000f, 0x00000000, 0x2a82301a, 0x05dc01e0, 362 1.1 christos 0x1f402710, 0x01f40000, 0x00001e00, 0x00000000, 0x00400000, 363 1.1 christos 0xffffffff, 0x0000ffff, 0x003f3f3f, 0x00000000, 0x00000000, 364 1.1 christos 0x00000000, 0x00000000, 0x00020000, 0x00020000, 0x00000001, 365 1.1 christos 0x00000052, 0x00000000, 0x00000168, 0x000100aa, 0x00003210, 366 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 367 1.1 christos 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 368 1.1 christos 0x32143320, 0xfaa4fa50, 0x00000100, 0x00000000, 0x00000000, 369 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 370 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 371 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 372 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 373 1.1 christos 0x00000000, 0x00100000, 0x0010f400, 0x00000100, 0x0001e800, 374 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x400000ff, 0x00080922, 375 1.1 christos 0x88000010, 0x00000000, 0x40000000, 0x003e4180, 0x00000000, 376 1.1 christos 0x0000002c, 0x0000002c, 0x00000000, 0x00000000, 0x00000000, 377 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 378 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x00000302, 379 1.1 christos 0x00000e00, 0x00070000, 0x00000000, 0x000107ff, 0x00000000, 380 1.1 christos 0xad848e19, 0x7d14e000, 0x9c0a9f6b, 0x00000000, 0x0000a000, 381 1.1 christos 0x00000000, 0x00200400, 0x206a002e, 0x1284233c, 0x00000859, 382 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000fff, 383 1.1 christos 0x05100000, 0x05100000, 0x05100000, 0x00000001, 0x00000004, 384 1.1 christos 0x1e1f2022, 0x0a0b0c0d, 0x00000000, 0x9280b212, 0x00020028, 385 1.1 christos 0x5d50e188, 0x00081fff, 0x004b6a8e, 0x000003ce, 0x190fb515, 386 1.1 christos 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 387 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 388 1.1 christos 0x00000000, 0x00000000, 0x00000001, 0x001fff00, 0x00000000, 389 1.1 christos 0x03051000, 0x00000000, 0x00000200, 0xaaaaaaaa, 0x3c466478, 390 1.1 christos 0x000000aa, 0x00001042, 0x00000000, 0x00000001, 0x00000002, 391 1.1 christos 0x00000003, 0x00000004, 0x00000005, 0x00000008, 0x00000009, 392 1.1 christos 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x00000010, 393 1.1 christos 0x00000011, 0x00000012, 0x00000013, 0x00000014, 0x00000015, 394 1.1 christos 0x00000018, 0x00000019, 0x0000001a, 0x0000001b, 0x0000001c, 395 1.1 christos 0x0000001d, 0x00000020, 0x00000021, 0x00000022, 0x00000023, 396 1.1 christos 0x00000024, 0x00000025, 0x00000028, 0x00000029, 0x0000002a, 397 1.1 christos 0x0000002b, 0x0000002c, 0x0000002d, 0x00000030, 0x00000031, 398 1.1 christos 0x00000032, 0x00000033, 0x00000034, 0x00000035, 0x00000035, 399 1.1 christos 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035, 400 1.1 christos 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035, 401 1.1 christos 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035, 402 1.1 christos 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000010, 403 1.1 christos 0x0000001a, 0x40806333, 0x00106c10, 0x009c4060, 0x018830c6, 404 1.1 christos 0x00000400, 0x00000bb5, 0x00000011, 0x20202020, 0x20202020, 405 1.1 christos 0x13c889af, 0x38490a20, 0x00007bb6, 0x0fff3ffc, 0x00000001, 406 1.1 christos 0x0000a000, 0x00000000, 0x0cc75380, 0x0f0f0f01, 0xdfa91f01, 407 1.1 christos 0x00000000, 0x0e79e5c6, 0x0e79e5c6, 0x0e79e5c6, 0x00820820, 408 1.1 christos 0x1ce739ce, 0x051701ce, 0x00000000, 0x00000000, 0x00000000, 409 1.1 christos 0x00000000, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x0003ffff, 410 1.1 christos 0x79a8aa1f, 0x07ffffef, 0x0fffffe7, 0x17ffffe5, 0x1fffffe4, 411 1.1 christos 0x37ffffe3, 0x3fffffe3, 0x57ffffe3, 0x5fffffe2, 0x7fffffe2, 412 1.1 christos 0x7f3c7bba, 0xf3307ff0, 0x08000000, 0x20202020, 0x20202020, 413 1.1 christos 0x1ce739ce, 0x000001ce, 0x00000001, 0x00000000, 0x00000000, 414 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 415 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000246, 0x20202020, 416 1.1 christos 0x20202020, 0x20202020, 0x1ce739ce, 0x000001ce 417 1.1 christos }; 418 1.1 christos 419 1.1 christos static const struct athn_ini ar5416_ini = { 420 1.1 christos .nregs = __arraycount(ar5416_regs), 421 1.1 christos .regs = ar5416_regs, 422 1.1 christos .vals_5g20 = ar5416_vals_5g20, 423 1.1 christos #ifndef IEEE80211_NO_HT 424 1.1 christos .vals_5g40 = ar5416_vals_5g40, 425 1.1 christos .vals_2g40 = ar5416_vals_2g40, 426 1.1 christos #endif 427 1.1 christos .vals_2g20 = ar5416_vals_2g20, 428 1.1 christos .ncmregs = __arraycount(ar5416_cm_regs), 429 1.1 christos .cmregs = ar5416_cm_regs, 430 1.1 christos .cmvals = ar5416_cm_vals 431 1.1 christos }; 432 1.1 christos 433 1.1 christos /* 434 1.1 christos * AR9160 initialization values. 435 1.1 christos */ 436 1.1 christos static const uint16_t ar9160_regs[] = { 437 1.1 christos P(0x01030), P(0x01070), P(0x010b0), P(0x010f0), P(0x08014), 438 1.1 christos P(0x0801c), P(0x08120), P(0x081d0), P(0x09804), P(0x09820), 439 1.1 christos P(0x09824), P(0x09828), P(0x09834), P(0x09838), P(0x09844), 440 1.1 christos P(0x09848), P(0x0a848), P(0x0b848), P(0x09850), P(0x09858), 441 1.1 christos P(0x0985c), P(0x09860), P(0x09864), P(0x09868), P(0x0986c), 442 1.1 christos P(0x09914), P(0x09918), P(0x09924), P(0x09944), P(0x09960), 443 1.1 christos P(0x0a960), P(0x0b960), P(0x09964), P(0x0c968), P(0x099bc), 444 1.1 christos P(0x099c0), P(0x099c4), P(0x099c8), P(0x099cc), P(0x099d0), 445 1.1 christos P(0x099d4), P(0x099d8), P(0x0a204), P(0x0a208), P(0x0a20c), 446 1.1 christos P(0x0b20c), P(0x0c20c), P(0x0a21c), P(0x0a230), P(0x0a274), 447 1.1 christos P(0x0a300), P(0x0a304), P(0x0a308), P(0x0a30c), P(0x0a310), 448 1.1 christos P(0x0a314), P(0x0a318), P(0x0a31c), P(0x0a320), P(0x0a324), 449 1.1 christos P(0x0a328), P(0x0a32c), P(0x0a330), P(0x0a334) 450 1.1 christos }; 451 1.1 christos 452 1.1 christos static const uint32_t ar9160_vals_5g20[] = { 453 1.1 christos 0x00000230, 0x00000168, 0x00000e60, 0x0000a000, 0x03e803e8, 454 1.1 christos 0x128d93a7, 0x08f04800, 0x00003210, 0x00000300, 0x02020200, 455 1.1 christos 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x0372161e, 456 1.1 christos 0x001a6a65, 0x001a6a65, 0x001a6a65, 0x6c48b4e2, 0x7ec82d2e, 457 1.1 christos 0x31395d5e, 0x00048d18, 0x0001ce00, 0x409a40d0, 0x050cb081, 458 1.1 christos 0x000007d0, 0x0000000a, 0xd00a8a07, 0xffb81020, 0x00009b40, 459 1.1 christos 0x00009b40, 0x00009b40, 0x00001120, 0x000003b5, 0x001a0600, 460 1.1 christos 0x038919be, 0x06336f77, 0x6af65329, 0x08f186c8, 0x00046384, 461 1.1 christos 0x00000000, 0x00000000, 0x00000880, 0xd6be4788, 0x002fc160, 462 1.1 christos 0x002fc160, 0x002fc160, 0x1883800a, 0x00000000, 0x0a1a9caa, 463 1.1 christos 0x18010000, 0x30032602, 0x48073e06, 0x560b4c0a, 0x641a600f, 464 1.1 christos 0x7a4f6e1b, 0x8c5b7e5a, 0x9d0f96cf, 0xb51fa69f, 0xcb3fbd07, 465 1.1 christos 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000 466 1.1 christos }; 467 1.1 christos 468 1.1 christos #ifndef IEEE80211_NO_HT 469 1.1 christos static const uint32_t ar9160_vals_5g40[] = { 470 1.1 christos 0x00000460, 0x000002d0, 0x00001cc0, 0x00014000, 0x07d007d0, 471 1.1 christos 0x128d93cf, 0x08f04800, 0x00003210, 0x000003c4, 0x02020200, 472 1.1 christos 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x0372161e, 473 1.1 christos 0x001a6a65, 0x001a6a65, 0x001a6a65, 0x6d48b4e2, 0x7ec82d2e, 474 1.1 christos 0x3139605e, 0x00048d18, 0x0001ce00, 0x409a40d0, 0x050cb081, 475 1.1 christos 0x00000fa0, 0x00000014, 0xd00a8a07, 0xffb81020, 0x00009b40, 476 1.1 christos 0x00009b40, 0x00009b40, 0x00001120, 0x000003b5, 0x001a0600, 477 1.1 christos 0x038919be, 0x06336f77, 0x6af65329, 0x08f186c8, 0x00046384, 478 1.1 christos 0x00000000, 0x00000000, 0x00000880, 0xd6be4788, 0x002fc160, 479 1.1 christos 0x002fc160, 0x002fc160, 0x1883800a, 0x00000000, 0x0a1a9caa, 480 1.1 christos 0x18010000, 0x30032602, 0x48073e06, 0x560b4c0a, 0x641a600f, 481 1.1 christos 0x7a4f6e1b, 0x8c5b7e5a, 0x9d0f96cf, 0xb51fa69f, 0xcb3fbcbf, 482 1.1 christos 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000 483 1.1 christos }; 484 1.1 christos 485 1.1 christos static const uint32_t ar9160_vals_2g40[] = { 486 1.1 christos 0x000002c0, 0x00000318, 0x00007c70, 0x00016000, 0x10801600, 487 1.1 christos 0x12e013d7, 0x08f04810, 0x0000320a, 0x000003c4, 0x02020200, 488 1.1 christos 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x037216a0, 489 1.1 christos 0x00197a68, 0x00197a68, 0x00197a68, 0x6d48b0e2, 0x7ec82d2e, 490 1.1 christos 0x3139605e, 0x00048d20, 0x0001ce00, 0x409a40d0, 0x050cb081, 491 1.1 christos 0x00001130, 0x00000016, 0xd00a8a0d, 0xffb81020, 0x00009b40, 492 1.1 christos 0x00009b40, 0x00009b40, 0x00001120, 0x000003ce, 0x001a0c00, 493 1.1 christos 0x038919be, 0x06336f77, 0x6af65329, 0x08f186c8, 0x00046384, 494 1.1 christos 0x00000000, 0x00000000, 0x00000880, 0xd03e4788, 0x002ac120, 495 1.1 christos 0x002ac120, 0x002ac120, 0x1883800a, 0x00000210, 0x0a1a7caa, 496 1.1 christos 0x18010000, 0x2e032402, 0x4a0a3c06, 0x621a540b, 0x764f6c1b, 497 1.1 christos 0x845b7a5a, 0x950f8ccf, 0xa5cf9b4f, 0xbddfaf1f, 0xd1ffc93f, 498 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000 499 1.1 christos }; 500 1.1 christos #endif 501 1.1 christos 502 1.1 christos static const uint32_t ar9160_vals_2g20[] = { 503 1.1 christos 0x00000160, 0x0000018c, 0x00003e38, 0x0000b000, 0x08400b00, 504 1.1 christos 0x12e013ab, 0x08f04810, 0x0000320a, 0x00000300, 0x02020200, 505 1.1 christos 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x037216a0, 506 1.1 christos 0x00197a68, 0x00197a68, 0x00197a68, 0x6c48b0e2, 0x7ec82d2e, 507 1.1 christos 0x31395d5e, 0x00048d20, 0x0001ce00, 0x409a40d0, 0x050cb081, 508 1.1 christos 0x00000898, 0x0000000b, 0xd00a8a0d, 0xffb81020, 0x00009b40, 509 1.1 christos 0x00009b40, 0x00009b40, 0x00001120, 0x000003ce, 0x001a0c00, 510 1.1 christos 0x038919be, 0x06336f77, 0x6af65329, 0x08f186c8, 0x00046384, 511 1.1 christos 0x00000000, 0x00000000, 0x00000880, 0xd03e4788, 0x002ac120, 512 1.1 christos 0x002ac120, 0x002ac120, 0x1883800a, 0x00000108, 0x0a1a7caa, 513 1.1 christos 0x18010000, 0x2e032402, 0x4a0a3c06, 0x621a540b, 0x764f6c1b, 514 1.1 christos 0x845b7a5a, 0x950f8ccf, 0xa5cf9b4f, 0xbddfaf1f, 0xd1ffc93f, 515 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000 516 1.1 christos }; 517 1.1 christos 518 1.1 christos static const uint16_t ar9160_cm_regs[] = { 519 1.1 christos P(0x0000c), P(0x00030), P(0x00034), P(0x00040), P(0x00044), 520 1.1 christos P(0x00048), P(0x0004c), P(0x00050), P(0x00054), P(0x00800), 521 1.1 christos P(0x00804), P(0x00808), P(0x0080c), P(0x00810), P(0x00814), 522 1.1 christos P(0x00818), P(0x0081c), P(0x00820), P(0x00824), P(0x01040), 523 1.1 christos P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054), 524 1.1 christos P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x01230), 525 1.1 christos P(0x01270), P(0x01038), P(0x01078), P(0x010b8), P(0x010f8), 526 1.1 christos P(0x01138), P(0x01178), P(0x011b8), P(0x011f8), P(0x01238), 527 1.1 christos P(0x01278), P(0x012b8), P(0x012f8), P(0x01338), P(0x01378), 528 1.1 christos P(0x013b8), P(0x013f8), P(0x01438), P(0x01478), P(0x014b8), 529 1.1 christos P(0x014f8), P(0x01538), P(0x01578), P(0x015b8), P(0x015f8), 530 1.1 christos P(0x01638), P(0x01678), P(0x016b8), P(0x016f8), P(0x01738), 531 1.1 christos P(0x01778), P(0x017b8), P(0x017f8), P(0x0103c), P(0x0107c), 532 1.1 christos P(0x010bc), P(0x010fc), P(0x0113c), P(0x0117c), P(0x011bc), 533 1.1 christos P(0x011fc), P(0x0123c), P(0x0127c), P(0x012bc), P(0x012fc), 534 1.1 christos P(0x0133c), P(0x0137c), P(0x013bc), P(0x013fc), P(0x0143c), 535 1.1 christos P(0x0147c), P(0x04030), P(0x0403c), P(0x07010), P(0x07038), 536 1.1 christos P(0x08004), P(0x08008), P(0x0800c), P(0x08018), P(0x08020), 537 1.1 christos P(0x08038), P(0x0803c), P(0x08048), P(0x08054), P(0x08058), 538 1.1 christos P(0x0805c), P(0x08060), P(0x08064), P(0x080c0), P(0x080c4), 539 1.1 christos P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), P(0x080d8), 540 1.1 christos P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), P(0x080f0), 541 1.1 christos P(0x080f4), P(0x080f8), P(0x080fc), P(0x08100), P(0x08104), 542 1.1 christos P(0x08108), P(0x0810c), P(0x08110), P(0x08118), P(0x0811c), 543 1.1 christos P(0x08124), P(0x08128), P(0x0812c), P(0x08130), P(0x08134), 544 1.1 christos P(0x08138), P(0x0813c), P(0x08144), P(0x08168), P(0x0816c), 545 1.1 christos P(0x08170), P(0x08174), P(0x08178), P(0x0817c), P(0x081c4), 546 1.1 christos P(0x081ec), P(0x081f0), P(0x081f4), P(0x081f8), P(0x081fc), 547 1.1 christos P(0x08200), P(0x08204), P(0x08208), P(0x0820c), P(0x08210), 548 1.1 christos P(0x08214), P(0x08218), P(0x0821c), P(0x08220), P(0x08224), 549 1.1 christos P(0x08228), P(0x0822c), P(0x08230), P(0x08234), P(0x08238), 550 1.1 christos P(0x0823c), P(0x08240), P(0x08244), P(0x08248), P(0x0824c), 551 1.1 christos P(0x08250), P(0x08254), P(0x08258), P(0x0825c), P(0x08260), 552 1.1 christos P(0x08264), P(0x08270), P(0x08274), P(0x08278), P(0x0827c), 553 1.1 christos P(0x08284), P(0x08288), P(0x0828c), P(0x08294), P(0x08298), 554 1.1 christos P(0x08300), P(0x08304), P(0x08308), P(0x0830c), P(0x08310), 555 1.1 christos P(0x08314), P(0x08318), P(0x08328), P(0x0832c), P(0x08330), 556 1.1 christos P(0x08334), P(0x08338), P(0x0833c), P(0x08340), P(0x09808), 557 1.1 christos P(0x0980c), P(0x09810), P(0x09814), P(0x0981c), P(0x0982c), 558 1.1 christos P(0x09830), P(0x0983c), P(0x09840), P(0x0984c), P(0x09854), 559 1.1 christos P(0x09900), P(0x09904), P(0x09908), P(0x0990c), P(0x0991c), 560 1.1 christos P(0x09920), P(0x0a920), P(0x0b920), P(0x09928), P(0x0992c), 561 1.1 christos P(0x09934), P(0x09938), P(0x0993c), P(0x09948), P(0x0994c), 562 1.1 christos P(0x09954), P(0x09958), P(0x09940), P(0x0c95c), P(0x09970), 563 1.1 christos P(0x09974), P(0x09978), P(0x0997c), P(0x09980), P(0x09984), 564 1.1 christos P(0x09988), P(0x0998c), P(0x09990), P(0x09994), P(0x09998), 565 1.1 christos P(0x0999c), P(0x099a0), P(0x099a4), P(0x099a8), P(0x099ac), 566 1.1 christos P(0x099b0), P(0x099dc), P(0x099e0), P(0x099e4), P(0x099e8), 567 1.1 christos P(0x099ec), P(0x099fc), P(0x09b00), P(0x09b04), P(0x09b08), 568 1.1 christos P(0x09b0c), P(0x09b10), P(0x09b14), P(0x09b18), P(0x09b1c), 569 1.1 christos P(0x09b20), P(0x09b24), P(0x09b28), P(0x09b2c), P(0x09b30), 570 1.1 christos P(0x09b34), P(0x09b38), P(0x09b3c), P(0x09b40), P(0x09b44), 571 1.1 christos P(0x09b48), P(0x09b4c), P(0x09b50), P(0x09b54), P(0x09b58), 572 1.1 christos P(0x09b5c), P(0x09b60), P(0x09b64), P(0x09b68), P(0x09b6c), 573 1.1 christos P(0x09b70), P(0x09b74), P(0x09b78), P(0x09b7c), P(0x09b80), 574 1.1 christos P(0x09b84), P(0x09b88), P(0x09b8c), P(0x09b90), P(0x09b94), 575 1.1 christos P(0x09b98), P(0x09b9c), P(0x09ba0), P(0x09ba4), P(0x09ba8), 576 1.1 christos P(0x09bac), P(0x09bb0), P(0x09bb4), P(0x09bb8), P(0x09bbc), 577 1.1 christos P(0x09bc0), P(0x09bc4), P(0x09bc8), P(0x09bcc), P(0x09bd0), 578 1.1 christos P(0x09bd4), P(0x09bd8), P(0x09bdc), P(0x09be0), P(0x09be4), 579 1.1 christos P(0x09be8), P(0x09bec), P(0x09bf0), P(0x09bf4), P(0x09bf8), 580 1.1 christos P(0x09bfc), P(0x0a210), P(0x0a214), P(0x0a218), P(0x0a220), 581 1.1 christos P(0x0a224), P(0x0a228), P(0x0a22c), P(0x0a234), P(0x0a238), 582 1.1 christos P(0x0a23c), P(0x0a240), P(0x0a244), P(0x0a248), P(0x0a24c), 583 1.1 christos P(0x0a250), P(0x0a254), P(0x0a258), P(0x0a25c), P(0x0a260), 584 1.1 christos P(0x0a268), P(0x0a26c), P(0x0b26c), P(0x0c26c), P(0x0d270), 585 1.1 christos P(0x0a278), P(0x0a27c), P(0x0a338), P(0x0a33c), P(0x0a340), 586 1.1 christos P(0x0a344), P(0x0a348), P(0x0a34c), P(0x0a350), P(0x0a354), 587 1.1 christos P(0x0a358), P(0x0d35c), P(0x0d360), P(0x0d364), P(0x0d368), 588 1.1 christos P(0x0d36c), P(0x0d370), P(0x0d374), P(0x0d378), P(0x0d37c), 589 1.1 christos P(0x0d380), P(0x0d384), P(0x0a388), P(0x0a38c), P(0x0a390), 590 1.1 christos P(0x0a394), P(0x0a398), P(0x0a39c), P(0x0a3a0), P(0x0a3a4), 591 1.1 christos P(0x0a3a8), P(0x0a3ac), P(0x0a3b0), P(0x0a3b4), P(0x0a3b8), 592 1.1 christos P(0x0a3bc), P(0x0a3c0), P(0x0a3c4), P(0x0a3c8), P(0x0a3cc), 593 1.1 christos P(0x0a3d0), P(0x0a3d4), P(0x0a3dc), P(0x0a3e0) 594 1.1 christos }; 595 1.1 christos 596 1.1 christos static const uint32_t ar9160_cm_vals[] = { 597 1.1 christos 0x00000000, 0x00020015, 0x00000005, 0x00000000, 0x00000008, 598 1.1 christos 0x00000008, 0x00000010, 0x00000000, 0x0000001f, 0x00000000, 599 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 600 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002ffc0f, 601 1.1 christos 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 602 1.1 christos 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000000, 603 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 604 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 605 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 606 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 607 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 608 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 609 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 610 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 611 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 612 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 613 1.1 christos 0x00000000, 0x00000002, 0x00000002, 0x00000020, 0x000004c2, 614 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000700, 0x00000000, 615 1.1 christos 0x00000000, 0x00000000, 0x40000000, 0x00000000, 0x00000000, 616 1.1 christos 0x000fc78f, 0x0000000f, 0x00000000, 0x2a82301a, 0x05dc01e0, 617 1.1 christos 0x1f402710, 0x01f40000, 0x00001e00, 0x00000000, 0x00400000, 618 1.1 christos 0xffffffff, 0x0000ffff, 0x003f3f3f, 0x00000000, 0x00000000, 619 1.1 christos 0x00000000, 0x00000000, 0x00020000, 0x00020000, 0x00000001, 620 1.1 christos 0x00000052, 0x00000000, 0x00000168, 0x000100aa, 0x00003210, 621 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 622 1.1 christos 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 623 1.1 christos 0x32143320, 0xfaa4fa50, 0x00000100, 0x00000000, 0x00000000, 624 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 625 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 626 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 627 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 628 1.1 christos 0x00000000, 0x00100000, 0x0010f400, 0x00000100, 0x0001e800, 629 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x400000ff, 0x00080922, 630 1.1 christos 0x88a00010, 0x00000000, 0x40000000, 0x003e4180, 0x00000000, 631 1.1 christos 0x0000002c, 0x0000002c, 0x00000000, 0x00000000, 0x00000000, 632 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 633 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x00000302, 634 1.1 christos 0x00000e00, 0x00ff0000, 0x00000000, 0x000107ff, 0x00000000, 635 1.1 christos 0xad848e19, 0x7d14e000, 0x9c0a9f6b, 0x00000000, 0x0000a000, 636 1.1 christos 0x00000000, 0x00200400, 0x206a01ae, 0x1284233c, 0x00000859, 637 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000fff, 638 1.1 christos 0x05100000, 0x05100000, 0x05100000, 0x00000001, 0x00000004, 639 1.1 christos 0x1e1f2022, 0x0a0b0c0d, 0x00000000, 0x9280b212, 0x00020028, 640 1.1 christos 0x5f3ca3de, 0x2108ecff, 0x00750604, 0x004b6a8e, 0x190fb515, 641 1.1 christos 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 642 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 643 1.1 christos 0x00000000, 0x00000000, 0x00000001, 0x201fff00, 0x006f0000, 644 1.1 christos 0x03051000, 0x00000000, 0x00000200, 0xaaaaaaaa, 0x3c466478, 645 1.1 christos 0x0cc80caa, 0x00001042, 0x00000000, 0x00000001, 0x00000002, 646 1.1 christos 0x00000003, 0x00000004, 0x00000005, 0x00000008, 0x00000009, 647 1.1 christos 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x00000010, 648 1.1 christos 0x00000011, 0x00000012, 0x00000013, 0x00000014, 0x00000015, 649 1.1 christos 0x00000018, 0x00000019, 0x0000001a, 0x0000001b, 0x0000001c, 650 1.1 christos 0x0000001d, 0x00000020, 0x00000021, 0x00000022, 0x00000023, 651 1.1 christos 0x00000024, 0x00000025, 0x00000028, 0x00000029, 0x0000002a, 652 1.1 christos 0x0000002b, 0x0000002c, 0x0000002d, 0x00000030, 0x00000031, 653 1.1 christos 0x00000032, 0x00000033, 0x00000034, 0x00000035, 0x00000035, 654 1.1 christos 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035, 655 1.1 christos 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035, 656 1.1 christos 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035, 657 1.1 christos 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000010, 658 1.1 christos 0x0000001a, 0x40806333, 0x00106c10, 0x009c4060, 0x018830c6, 659 1.1 christos 0x00000400, 0x001a0bb5, 0x00000000, 0x20202020, 0x20202020, 660 1.1 christos 0x13c889af, 0x38490a20, 0x00007bb6, 0x0fff3ffc, 0x00000001, 661 1.1 christos 0x0000e000, 0x00000000, 0x0cc75380, 0x0f0f0f01, 0xdfa91f01, 662 1.1 christos 0x00000001, 0x0e79e5c6, 0x0e79e5c6, 0x0e79e5c6, 0x00820820, 663 1.1 christos 0x1ce739ce, 0x050701ce, 0x00000000, 0x00000000, 0x00000000, 664 1.1 christos 0x00000000, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x0003ffff, 665 1.1 christos 0x79bfaa03, 0x07ffffef, 0x0fffffe7, 0x17ffffe5, 0x1fffffe4, 666 1.1 christos 0x37ffffe3, 0x3fffffe3, 0x57ffffe3, 0x5fffffe2, 0x7fffffe2, 667 1.1 christos 0x7f3c7bba, 0xf3307ff0, 0x0c000000, 0x20202020, 0x20202020, 668 1.1 christos 0x1ce739ce, 0x000001ce, 0x00000001, 0x00000000, 0x00000000, 669 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 670 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000246, 0x20202020, 671 1.1 christos 0x20202020, 0x20202020, 0x1ce739ce, 0x000001ce 672 1.1 christos }; 673 1.1 christos 674 1.1 christos static const struct athn_ini ar9160_ini = { 675 1.1 christos .nregs = __arraycount(ar9160_regs), 676 1.1 christos .regs = ar9160_regs, 677 1.1 christos .vals_5g20 = ar9160_vals_5g20, 678 1.1 christos #ifndef IEEE80211_NO_HT 679 1.1 christos .vals_5g40 = ar9160_vals_5g40, 680 1.1 christos .vals_2g40 = ar9160_vals_2g40, 681 1.1 christos #endif 682 1.1 christos .vals_2g20 = ar9160_vals_2g20, 683 1.1 christos .ncmregs = __arraycount(ar9160_cm_regs), 684 1.1 christos .cmregs = ar9160_cm_regs, 685 1.1 christos .cmvals = ar9160_cm_vals 686 1.1 christos }; 687 1.1 christos 688 1.1 christos /* 689 1.1 christos * BB/RF Gains common to AR5416 and AR9160. 690 1.1 christos */ 691 1.1 christos static const uint32_t ar5416_bb_rfgain_vals_5g[] = { 692 1.1 christos 0x00000000, 0x00000040, 0x00000080, 0x000001a1, 0x000001e1, 693 1.1 christos 0x00000021, 0x00000061, 0x00000168, 0x000001a8, 0x000001e8, 694 1.1 christos 0x00000028, 0x00000068, 0x00000189, 0x000001c9, 0x00000009, 695 1.1 christos 0x00000049, 0x00000089, 0x00000170, 0x000001b0, 0x000001f0, 696 1.1 christos 0x00000030, 0x00000070, 0x00000191, 0x000001d1, 0x00000011, 697 1.1 christos 0x00000051, 0x00000091, 0x000001b8, 0x000001f8, 0x00000038, 698 1.1 christos 0x00000078, 0x00000199, 0x000001d9, 0x00000019, 0x00000059, 699 1.1 christos 0x00000099, 0x000000d9, 0x000000f9, 0x000000f9, 0x000000f9, 700 1.1 christos 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 701 1.1 christos 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 702 1.1 christos 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 703 1.1 christos 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 704 1.1 christos 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9 705 1.1 christos }; 706 1.1 christos 707 1.1 christos static const uint32_t ar5416_bb_rfgain_vals_2g[] = { 708 1.1 christos 0x00000000, 0x00000040, 0x00000080, 0x00000141, 0x00000181, 709 1.1 christos 0x000001c1, 0x00000001, 0x00000041, 0x000001a8, 0x000001e8, 710 1.1 christos 0x00000028, 0x00000068, 0x000000a8, 0x00000169, 0x000001a9, 711 1.1 christos 0x000001e9, 0x00000029, 0x00000069, 0x00000190, 0x000001d0, 712 1.1 christos 0x00000010, 0x00000050, 0x00000090, 0x00000151, 0x00000191, 713 1.1 christos 0x000001d1, 0x00000011, 0x00000051, 0x00000198, 0x000001d8, 714 1.1 christos 0x00000018, 0x00000058, 0x00000098, 0x00000159, 0x00000199, 715 1.1 christos 0x000001d9, 0x00000019, 0x00000059, 0x00000099, 0x000000d9, 716 1.1 christos 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 717 1.1 christos 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 718 1.1 christos 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 719 1.1 christos 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 720 1.1 christos 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9 721 1.1 christos }; 722 1.1 christos 723 1.1 christos static const uint32_t ar5416_2_1_addac_vals[] = { 724 1.1 christos 0x00000000, 0x00000003, 0x00000000, 0x0000000c, 0x00000000, 725 1.1 christos 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 726 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 727 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000060, 0x00000000, 728 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 729 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 730 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 731 1.1 christos 0x00000000 732 1.1 christos }; 733 1.1 christos 734 1.1 christos static const struct athn_addac ar5416_2_1_addac = { 735 1.1 christos __arraycount(ar5416_2_1_addac_vals), 736 1.1 christos ar5416_2_1_addac_vals 737 1.1 christos }; 738 1.1 christos 739 1.1 christos static const uint32_t ar5416_2_2_addac_vals[] = { 740 1.1 christos 0x00000000, 0x00000003, 0x00000000, 0x0000000c, 0x00000000, 741 1.1 christos 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 742 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 743 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000060, 0x00000000, 744 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 745 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 746 1.1 christos 0x00000000, 0x00000058, 0x00000000, 0x00000000, 0x00000000, 747 1.1 christos 0x00000000 748 1.1 christos }; 749 1.1 christos 750 1.1 christos static const struct athn_addac ar5416_2_2_addac = { 751 1.1 christos __arraycount(ar5416_2_2_addac_vals), 752 1.1 christos ar5416_2_2_addac_vals 753 1.1 christos }; 754 1.1 christos 755 1.1 christos static const uint32_t ar9160_1_0_addac_vals[] = { 756 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 757 1.1 christos 0x00000000, 0x000000c0, 0x00000018, 0x00000004, 0x00000000, 758 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 759 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 760 1.1 christos 0x00000000, 0x000000c0, 0x00000019, 0x00000004, 0x00000000, 761 1.1 christos 0x00000000, 0x00000000, 0x00000004, 0x00000003, 0x00000008, 762 1.1 christos 0x00000000 763 1.1 christos }; 764 1.1 christos 765 1.1 christos static const struct athn_addac ar9160_1_0_addac = { 766 1.1 christos __arraycount(ar9160_1_0_addac_vals), 767 1.1 christos ar9160_1_0_addac_vals 768 1.1 christos }; 769 1.1 christos 770 1.1 christos static const uint32_t ar9160_1_1_addac_vals[] = { 771 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 772 1.1 christos 0x00000000, 0x000000c0, 0x00000018, 0x00000004, 0x00000000, 773 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 774 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 775 1.1 christos 0x00000000, 0x000000c0, 0x00000019, 0x00000004, 0x00000000, 776 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 777 1.1 christos 0x00000000 778 1.1 christos }; 779 1.1 christos 780 1.1 christos static const struct athn_addac ar9160_1_1_addac = { 781 1.1 christos __arraycount(ar9160_1_1_addac_vals), 782 1.1 christos ar9160_1_1_addac_vals 783 1.1 christos }; 784 1.1 christos 785 1.1 christos static const uint32_t ar5416_bank6tpc_vals[] = { 786 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00e00000, 0x005e0000, 787 1.1 christos 0x00120000, 0x00620000, 0x00020000, 0x00ff0000, 0x00ff0000, 788 1.1 christos 0x00ff0000, 0x40ff0000, 0x005f0000, 0x00870000, 0x00f90000, 789 1.1 christos 0x007b0000, 0x00ff0000, 0x00f50000, 0x00dc0000, 0x00110000, 790 1.1 christos 0x006100a8, 0x00423022, 0x201400df, 0x00c40002, 0x003000f2, 791 1.1 christos 0x00440016, 0x00410040, 0x0001805e, 0x0000c0ab, 0x000000e1, 792 1.1 christos 0x00007081, 0x000000d4 793 1.1 christos }; 794 1.1 christos 795 1.1 christos static const uint32_t ar9160_bank6tpc_vals[] = { 796 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00e00000, 0x005e0000, 797 1.1 christos 0x00120000, 0x00620000, 0x00020000, 0x00ff0000, 0x00ff0000, 798 1.1 christos 0x00ff0000, 0x40ff0000, 0x005f0000, 0x00870000, 0x00f90000, 799 1.1 christos 0x007b0000, 0x00ff0000, 0x00f50000, 0x00dc0000, 0x00110000, 800 1.1 christos 0x006100a8, 0x00423022, 0x2014008f, 0x00c40002, 0x003000f2, 801 1.1 christos 0x00440016, 0x00410040, 0x0001805e, 0x0000c0ab, 0x000000e1, 802 1.1 christos 0x00007080, 0x000000d4 803 1.1 christos }; 804 1.1 christos 805 1.1 christos static const uint32_t ar5416_bank6_vals[] = { 806 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00e00000, 0x005e0000, 807 1.1 christos 0x00120000, 0x00620000, 0x00020000, 0x00ff0000, 0x00ff0000, 808 1.1 christos 0x00ff0000, 0x40ff0000, 0x005f0000, 0x00870000, 0x00f90000, 809 1.1 christos 0x007b0000, 0x00ff0000, 0x00f50000, 0x00dc0000, 0x00110000, 810 1.1 christos 0x006100a8, 0x004210a2, 0x0014008f, 0x00c40003, 0x003000f2, 811 1.1 christos 0x00440016, 0x00410040, 0x0001805e, 0x0000c0ab, 0x000000f1, 812 1.1 christos 0x00002081, 0x000000d4 813 1.1 christos }; 814 1.1 christos 815 1.1 christos /* 816 1.1 christos * Serializer/Deserializer programming. 817 1.1 christos */ 818 1.1 christos 819 1.1 christos static const uint32_t ar5416_serdes_regs[] = { 820 1.1 christos AR_PCIE_SERDES, 821 1.1 christos AR_PCIE_SERDES, 822 1.1 christos AR_PCIE_SERDES, 823 1.1 christos AR_PCIE_SERDES, 824 1.1 christos AR_PCIE_SERDES, 825 1.1 christos AR_PCIE_SERDES, 826 1.1 christos AR_PCIE_SERDES, 827 1.1 christos AR_PCIE_SERDES, 828 1.1 christos AR_PCIE_SERDES, 829 1.1 christos AR_PCIE_SERDES2 830 1.1 christos }; 831 1.1 christos 832 1.1 christos static const uint32_t ar5416_serdes_vals[] = { 833 1.1 christos 0x9248fc00, 834 1.1 christos 0x24924924, 835 1.1 christos /* RX shut off when elecidle is asserted. */ 836 1.1 christos 0x28000039, 837 1.1 christos 0x53160824, 838 1.1 christos 0xe5980579, 839 1.1 christos 0x001defff, 840 1.1 christos 0x1aaabe40, 841 1.1 christos 0xbe105554, 842 1.1 christos 0x000e3007, 843 1.1 christos 0x00000000 844 1.1 christos }; 845 1.1 christos 846 1.1 christos static const struct athn_serdes ar5416_serdes = { 847 1.1 christos __arraycount(ar5416_serdes_vals), 848 1.1 christos ar5416_serdes_regs, 849 1.1 christos ar5416_serdes_vals, 850 1.1 christos }; 851 1.1 christos 852 1.1 christos #endif /* _ARN5416REG_H_ */ 853