1 1.1 christos /* $NetBSD: arn9285reg.h,v 1.1 2013/03/30 02:53:01 christos Exp $ */ 2 1.1 christos /* $OpenBSD: ar9285reg.h,v 1.7 2011/01/06 07:27:15 damien 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 _ARN9285REG_H_ 22 1.1 christos #define _ARN9285REG_H_ 23 1.1 christos 24 1.1 christos #define AR9285_MAX_CHAINS 1 25 1.1 christos 26 1.1 christos #define AR9285_PHY_CCA_MAX_GOOD_VALUE (-118) 27 1.1 christos 28 1.1 christos #define AR9285_CL_CAL_REDO_THRESH 1 29 1.1 christos 30 1.1 christos /* 31 1.1 christos * Analog registers. 32 1.1 christos */ 33 1.1 christos #define AR9285_AN_RF2G1 0x7820 34 1.1 christos #define AR9285_AN_RF2G2 0x7824 35 1.1 christos #define AR9285_AN_RF2G3 0x7828 36 1.1 christos #define AR9285_AN_RF2G4 0x782c 37 1.1 christos #define AR9285_AN_RF2G5 0x7830 38 1.1 christos #define AR9285_AN_RF2G6 0x7834 39 1.1 christos #define AR9285_AN_RF2G7 0x7838 40 1.1 christos #define AR9285_AN_RF2G8 0x783c 41 1.1 christos #define AR9285_AN_RF2G9 0x7840 42 1.1 christos #define AR9285_AN_RXTXBB1 0x7854 43 1.1 christos #define AR9285_AN_TOP2 0x7868 44 1.1 christos #define AR9285_AN_TOP3 0x786c 45 1.1 christos #define AR9285_AN_TOP4 0x7870 46 1.1 christos 47 1.1 christos /* Bits for AR9285_AN_RF2G1. */ 48 1.1 christos #define AR9285_AN_RF2G1_ENPACAL 0x00000800 49 1.1 christos #define AR9285_AN_RF2G1_PDPAOUT 0x00800000 50 1.1 christos #define AR9285_AN_RF2G1_PDPADRV2 0x01000000 51 1.1 christos #define AR9285_AN_RF2G1_PDPADRV1 0x02000000 52 1.1 christos 53 1.1 christos /* Bits for AR9285_AN_RF2G2. */ 54 1.1 christos #define AR9285_AN_RF2G2_OFFCAL 0x00001000 55 1.1 christos 56 1.1 christos /* Bits for AR9285_AN_RF2G3. */ 57 1.1 christos #define AR9285_AN_RF2G3_DB1_2_M 0x00000007 58 1.1 christos #define AR9285_AN_RF2G3_DB1_2_S 0 59 1.1 christos #define AR9285_AN_RF2G3_DB1_1_M 0x00000038 60 1.1 christos #define AR9285_AN_RF2G3_DB1_1_S 3 61 1.1 christos #define AR9285_AN_RF2G3_DB1_0_M 0x000001c0 62 1.1 christos #define AR9285_AN_RF2G3_DB1_0_S 6 63 1.1 christos #define AR9285_AN_RF2G3_OB_4_M 0x00000e00 64 1.1 christos #define AR9285_AN_RF2G3_OB_4_S 9 65 1.1 christos #define AR9285_AN_RF2G3_OB_3_M 0x00007000 66 1.1 christos #define AR9285_AN_RF2G3_OB_3_S 12 67 1.1 christos #define AR9285_AN_RF2G3_OB_2_M 0x00038000 68 1.1 christos #define AR9285_AN_RF2G3_OB_2_S 15 69 1.1 christos #define AR9285_AN_RF2G3_OB_1_M 0x001c0000 70 1.1 christos #define AR9285_AN_RF2G3_OB_1_S 18 71 1.1 christos #define AR9285_AN_RF2G3_OB_0_M 0x00e00000 72 1.1 christos #define AR9285_AN_RF2G3_OB_0_S 21 73 1.1 christos #define AR9285_AN_RF2G3_PDVCCOMP 0x02000000 74 1.1 christos #define AR9271_AN_RF2G3_CCOMP_M 0x00000fff 75 1.1 christos #define AR9271_AN_RF2G3_CCOMP_S 0 76 1.1 christos #define AR9271_AN_RF2G3_OB_QAM_M 0x00007000 77 1.1 christos #define AR9271_AN_RF2G3_OB_QAM_S 12 78 1.1 christos #define AR9271_AN_RF2G3_OB_PSK_M 0x00038000 79 1.1 christos #define AR9271_AN_RF2G3_OB_PSK_S 15 80 1.1 christos #define AR9271_AN_RF2G3_OB_CCK_M 0x001c0000 81 1.1 christos #define AR9271_AN_RF2G3_OB_CCK_S 18 82 1.1 christos #define AR9271_AN_RF2G3_DB1_M 0x00e00000 83 1.1 christos #define AR9271_AN_RF2G3_DB1_S 21 84 1.1 christos 85 1.1 christos /* Bits for AR9285_AN_RF2G4. */ 86 1.1 christos #define AR9285_AN_RF2G4_DB2_4_M 0x00003800 87 1.1 christos #define AR9285_AN_RF2G4_DB2_4_S 11 88 1.1 christos #define AR9285_AN_RF2G4_DB2_3_M 0x0001c000 89 1.1 christos #define AR9285_AN_RF2G4_DB2_3_S 14 90 1.1 christos #define AR9285_AN_RF2G4_DB2_2_M 0x000e0000 91 1.1 christos #define AR9285_AN_RF2G4_DB2_2_S 17 92 1.1 christos #define AR9285_AN_RF2G4_DB2_1_M 0x00700000 93 1.1 christos #define AR9285_AN_RF2G4_DB2_1_S 20 94 1.1 christos #define AR9285_AN_RF2G4_DB2_0_M 0x03800000 95 1.1 christos #define AR9285_AN_RF2G4_DB2_0_S 23 96 1.1 christos #define AR9285_AN_RF2G4_DB1_4_M 0x1c000000 97 1.1 christos #define AR9285_AN_RF2G4_DB1_4_S 26 98 1.1 christos #define AR9285_AN_RF2G4_DB1_3_M 0xe0000000 99 1.1 christos #define AR9285_AN_RF2G4_DB1_3_S 29 100 1.1 christos #define AR9271_AN_RF2G4_DB2_M 0xe0000000 101 1.1 christos #define AR9271_AN_RF2G4_DB2_S 29 102 1.1 christos 103 1.1 christos /* Bits for AR9285_AN_RF2G5. */ 104 1.1 christos #define AR9285_AN_RF2G5_IC50TX_M 0x00000700 105 1.1 christos #define AR9285_AN_RF2G5_IC50TX_S 8 106 1.1 christos 107 1.1 christos /* Bits for AR9285_AN_RF2G6. */ 108 1.1 christos #define AR9285_AN_RF2G6_CCOMP_M 0x00007800 109 1.1 christos #define AR9285_AN_RF2G6_CCOMP_S 11 110 1.1 christos #define AR9285_AN_RF2G6_OFFS_6_1 0x03f00000 111 1.1 christos #define AR9285_AN_RF2G6_OFFS(i) (1 << (19 + (i))) 112 1.1 christos #define AR9271_AN_RF2G6_OFFS_6_0 0x07f00000 113 1.1 christos #define AR9271_AN_RF2G6_OFFS(i) (1 << (20 + (i))) 114 1.1 christos 115 1.1 christos /* Bits for AR9285_AN_RF2G7. */ 116 1.1 christos #define AR9285_AN_RF2G7_PWDDB 0x00000002 117 1.1 christos #define AR9285_AN_RF2G7_PADRVGN2TAB0_M 0xe0000000 118 1.1 christos #define AR9285_AN_RF2G7_PADRVGN2TAB0_S 29 119 1.1 christos 120 1.1 christos /* Bits for AR9285_AN_RF2G8. */ 121 1.1 christos #define AR9285_AN_RF2G8_PADRVGN2TAB0_M 0x0001c000 122 1.1 christos #define AR9285_AN_RF2G8_PADRVGN2TAB0_S 14 123 1.1 christos 124 1.1 christos /* Bits for AR9285_AN_RXTXBB1. */ 125 1.1 christos #define AR9285_AN_RXTXBB1_SPARE9 0x00000001 126 1.1 christos #define AR9285_AN_RXTXBB1_PDRXTXBB1 0x00000020 127 1.1 christos #define AR9285_AN_RXTXBB1_PDV2I 0x00000080 128 1.1 christos #define AR9285_AN_RXTXBB1_PDDACIF 0x00000100 129 1.1 christos 130 1.1 christos /* Bits for AR9285_AN_TOP2. */ 131 1.1 christos #define AR9285_AN_TOP2_DEFAULT 0xca0358a0 /* XXX magic */ 132 1.1 christos 133 1.1 christos /* Bits for AR9285_AN_TOP3. */ 134 1.1 christos #define AR9285_AN_TOP3_XPABIAS_LVL_M 0x0000000c 135 1.1 christos #define AR9285_AN_TOP3_XPABIAS_LVL_S 2 136 1.1 christos #define AR9285_AN_TOP3_PWDDAC 0x00800000 137 1.1 christos 138 1.1 christos /* Bits for AR9285_AN_TOP4. */ 139 1.1 christos #define AR9285_AN_TOP4_DEFAULT 0x10142c00 /* XXX magic */ 140 1.1 christos #define AR9285_AN_TOP4_UNLOCKED 0x10142c14 /* XXX magic */ 141 1.1 christos 142 1.1 christos /* Bits for AR_PHY_MULTICHAIN_GAIN_CTL. */ 143 1.1 christos #define AR9285_PHY_ANT_DIV_CTL_ALL_M 0x7f000000 144 1.1 christos #define AR9285_PHY_ANT_DIV_CTL_ALL_S 24 145 1.1 christos #define AR9285_PHY_ANT_DIV_CTL_M 0x01000000 146 1.1 christos #define AR9285_PHY_ANT_DIV_CTL_S 24 147 1.1 christos #define AR9285_PHY_ANT_DIV_ALT_LNACONF_M 0x06000000 148 1.1 christos #define AR9285_PHY_ANT_DIV_ALT_LNACONF_S 25 149 1.1 christos #define AR9285_PHY_ANT_DIV_MAIN_LNACONF_M 0x18000000 150 1.1 christos #define AR9285_PHY_ANT_DIV_MAIN_LNACONF_S 27 151 1.1 christos #define AR9285_PHY_ANT_DIV_ALT_GAINTB_M 0x20000000 152 1.1 christos #define AR9285_PHY_ANT_DIV_ALT_GAINTB_S 29 153 1.1 christos #define AR9285_PHY_ANT_DIV_MAIN_GAINTB_M 0x40000000 154 1.1 christos #define AR9285_PHY_ANT_DIV_MAIN_GAINTB_S 30 155 1.1 christos 156 1.1 christos /* 157 1.1 christos * ROM layout used by AR9285 (single-stream, 2GHz only). 158 1.1 christos */ 159 1.1 christos #define AR9285_EEP_START_LOC 64 160 1.1 christos #define AR9285_NUM_2G_CAL_PIERS 3 161 1.1 christos #define AR9285_NUM_2G_CCK_TARGET_POWERS 3 162 1.1 christos #define AR9285_NUM_2G_20_TARGET_POWERS 3 163 1.1 christos #define AR9285_NUM_2G_40_TARGET_POWERS 3 164 1.1 christos #define AR9285_NUM_CTLS 12 165 1.1 christos #define AR9285_NUM_BAND_EDGES 4 166 1.1 christos #define AR9285_NUM_PD_GAINS 2 167 1.1 christos #define AR9285_PD_GAINS_IN_MASK 4 168 1.1 christos #define AR9285_PD_GAIN_ICEPTS 5 169 1.1 christos 170 1.1 christos struct ar9285_base_eep_header { 171 1.1 christos uint16_t length; 172 1.1 christos uint16_t checksum; 173 1.1 christos uint16_t version; 174 1.1 christos uint8_t opCapFlags; 175 1.1 christos uint8_t eepMisc; 176 1.1 christos uint16_t regDmn[2]; 177 1.1 christos uint8_t macAddr[6]; 178 1.1 christos uint8_t rxMask; 179 1.1 christos uint8_t txMask; 180 1.1 christos uint16_t rfSilent; 181 1.1 christos uint16_t blueToothOptions; 182 1.1 christos uint16_t deviceCap; 183 1.1 christos uint32_t binBuildNumber; 184 1.1 christos uint8_t deviceType; 185 1.1 christos /* End of common header. */ 186 1.1 christos uint8_t txGainType; 187 1.1 christos } __packed; 188 1.1 christos 189 1.1 christos struct ar9285_modal_eep_header { 190 1.1 christos uint32_t antCtrlChain; 191 1.1 christos uint32_t antCtrlCommon; 192 1.1 christos uint8_t antennaGain; 193 1.1 christos uint8_t switchSettling; 194 1.1 christos uint8_t txRxAtten; 195 1.1 christos uint8_t rxTxMargin; 196 1.1 christos uint8_t adcDesiredSize; 197 1.1 christos uint8_t pgaDesiredSize; 198 1.1 christos uint8_t xlnaGain; 199 1.1 christos uint8_t txEndToXpaOff; 200 1.1 christos uint8_t txEndToRxOn; 201 1.1 christos uint8_t txFrameToXpaOn; 202 1.1 christos uint8_t thresh62; 203 1.1 christos uint8_t noiseFloorThresh; 204 1.1 christos uint8_t xpdGain; 205 1.1 christos uint8_t xpd; 206 1.1 christos uint8_t iqCalI; 207 1.1 christos uint8_t iqCalQ; 208 1.1 christos uint8_t pdGainOverlap; 209 1.1 christos uint8_t ob_01; 210 1.1 christos uint8_t db1_01; 211 1.1 christos uint8_t xpaBiasLvl; 212 1.1 christos uint8_t txFrameToDataStart; 213 1.1 christos uint8_t txFrameToPaOn; 214 1.1 christos uint8_t ht40PowerIncForPdadc; 215 1.1 christos uint8_t bswAtten; 216 1.1 christos uint8_t bswMargin; 217 1.1 christos uint8_t swSettleHt40; 218 1.1 christos uint8_t xatten2Db; 219 1.1 christos uint8_t xatten2Margin; 220 1.1 christos uint8_t db2_01; 221 1.1 christos uint8_t version; 222 1.1 christos uint16_t ob_234; 223 1.1 christos uint16_t db1_234; 224 1.1 christos uint16_t db2_234; 225 1.1 christos uint8_t futureModal[4]; 226 1.1 christos struct ar_spur_chan spurChans[AR_EEPROM_MODAL_SPURS]; 227 1.1 christos } __packed; 228 1.1 christos 229 1.1 christos struct ar9285_cal_data_per_freq { 230 1.1 christos uint8_t pwrPdg[AR9285_NUM_PD_GAINS][AR9285_PD_GAIN_ICEPTS]; 231 1.1 christos uint8_t vpdPdg[AR9285_NUM_PD_GAINS][AR9285_PD_GAIN_ICEPTS]; 232 1.1 christos } __packed; 233 1.1 christos 234 1.1 christos struct ar9285_cal_ctl_data { 235 1.1 christos struct ar_cal_ctl_edges ctlEdges[AR9285_NUM_BAND_EDGES]; 236 1.1 christos } __packed; 237 1.1 christos 238 1.1 christos struct ar9285_eeprom { 239 1.1 christos struct ar9285_base_eep_header baseEepHeader; 240 1.1 christos uint8_t custData[20]; 241 1.1 christos struct ar9285_modal_eep_header modalHeader; 242 1.1 christos uint8_t calFreqPier2G[AR9285_NUM_2G_CAL_PIERS]; 243 1.1 christos struct ar9285_cal_data_per_freq 244 1.1 christos calPierData2G[AR9285_NUM_2G_CAL_PIERS]; 245 1.1 christos struct ar_cal_target_power_leg 246 1.1 christos calTargetPowerCck[AR9285_NUM_2G_CCK_TARGET_POWERS]; 247 1.1 christos struct ar_cal_target_power_leg 248 1.1 christos calTargetPower2G[AR9285_NUM_2G_20_TARGET_POWERS]; 249 1.1 christos struct ar_cal_target_power_ht 250 1.1 christos calTargetPower2GHT20[AR9285_NUM_2G_20_TARGET_POWERS]; 251 1.1 christos struct ar_cal_target_power_ht 252 1.1 christos calTargetPower2GHT40[AR9285_NUM_2G_40_TARGET_POWERS]; 253 1.1 christos uint8_t ctlIndex[AR9285_NUM_CTLS]; 254 1.1 christos struct ar9285_cal_ctl_data ctlData[AR9285_NUM_CTLS]; 255 1.1 christos uint8_t padding; 256 1.1 christos } __packed; 257 1.1 christos 258 1.1 christos /* Macro to "pack" registers to 16-bit to save some .rodata space. */ 259 1.1 christos #define P(x) (x) 260 1.1 christos 261 1.1 christos /* 262 1.1 christos * AR9285 1.2 initialization values. 263 1.1 christos */ 264 1.1 christos static const uint16_t ar9285_1_2_regs[] = { 265 1.1 christos P(0x01030), P(0x01070), P(0x010b0), P(0x010f0), P(0x08014), 266 1.1 christos P(0x0801c), P(0x08318), P(0x09804), P(0x09820), P(0x09824), 267 1.1 christos P(0x09828), P(0x09834), P(0x09838), P(0x09840), P(0x09844), 268 1.1 christos P(0x09848), P(0x0a848), P(0x09850), P(0x09858), P(0x0985c), 269 1.1 christos P(0x09860), P(0x09864), P(0x09868), P(0x0986c), P(0x09914), 270 1.1 christos P(0x09918), P(0x09924), P(0x09944), P(0x09960), P(0x09964), 271 1.1 christos P(0x099b8), P(0x099bc), P(0x099c0), P(0x099c4), P(0x099c8), 272 1.1 christos P(0x099cc), P(0x099d0), P(0x099d4), P(0x099d8), P(0x09a00), 273 1.1 christos P(0x09a04), P(0x09a08), P(0x09a0c), P(0x09a10), P(0x09a14), 274 1.1 christos P(0x09a18), P(0x09a1c), P(0x09a20), P(0x09a24), P(0x09a28), 275 1.1 christos P(0x09a2c), P(0x09a30), P(0x09a34), P(0x09a38), P(0x09a3c), 276 1.1 christos P(0x09a40), P(0x09a44), P(0x09a48), P(0x09a4c), P(0x09a50), 277 1.1 christos P(0x09a54), P(0x09a58), P(0x09a5c), P(0x09a60), P(0x09a64), 278 1.1 christos P(0x09a68), P(0x09a6c), P(0x09a70), P(0x09a74), P(0x09a78), 279 1.1 christos P(0x09a7c), P(0x09a80), P(0x09a84), P(0x09a88), P(0x09a8c), 280 1.1 christos P(0x09a90), P(0x09a94), P(0x09a98), P(0x09a9c), P(0x09aa0), 281 1.1 christos P(0x09aa4), P(0x09aa8), P(0x09aac), P(0x09ab0), P(0x09ab4), 282 1.1 christos P(0x09ab8), P(0x09abc), P(0x09ac0), P(0x09ac4), P(0x09ac8), 283 1.1 christos P(0x09acc), P(0x09ad0), P(0x09ad4), P(0x09ad8), P(0x09adc), 284 1.1 christos P(0x09ae0), P(0x09ae4), P(0x09ae8), P(0x09aec), P(0x09af0), 285 1.1 christos P(0x09af4), P(0x09af8), P(0x09afc), P(0x09b00), P(0x09b04), 286 1.1 christos P(0x09b08), P(0x09b0c), P(0x09b10), P(0x09b14), P(0x09b18), 287 1.1 christos P(0x09b1c), P(0x09b20), P(0x09b24), P(0x09b28), P(0x09b2c), 288 1.1 christos P(0x09b30), P(0x09b34), P(0x09b38), P(0x09b3c), P(0x09b40), 289 1.1 christos P(0x09b44), P(0x09b48), P(0x09b4c), P(0x09b50), P(0x09b54), 290 1.1 christos P(0x09b58), P(0x09b5c), P(0x09b60), P(0x09b64), P(0x09b68), 291 1.1 christos P(0x09b6c), P(0x09b70), P(0x09b74), P(0x09b78), P(0x09b7c), 292 1.1 christos P(0x09b80), P(0x09b84), P(0x09b88), P(0x09b8c), P(0x09b90), 293 1.1 christos P(0x09b94), P(0x09b98), P(0x09b9c), P(0x09ba0), P(0x09ba4), 294 1.1 christos P(0x09ba8), P(0x09bac), P(0x09bb0), P(0x09bb4), P(0x09bb8), 295 1.1 christos P(0x09bbc), P(0x09bc0), P(0x09bc4), P(0x09bc8), P(0x09bcc), 296 1.1 christos P(0x09bd0), P(0x09bd4), P(0x09bd8), P(0x09bdc), P(0x09be0), 297 1.1 christos P(0x09be4), P(0x09be8), P(0x09bec), P(0x09bf0), P(0x09bf4), 298 1.1 christos P(0x09bf8), P(0x09bfc), P(0x0aa00), P(0x0aa04), P(0x0aa08), 299 1.1 christos P(0x0aa0c), P(0x0aa10), P(0x0aa14), P(0x0aa18), P(0x0aa1c), 300 1.1 christos P(0x0aa20), P(0x0aa24), P(0x0aa28), P(0x0aa2c), P(0x0aa30), 301 1.1 christos P(0x0aa34), P(0x0aa38), P(0x0aa3c), P(0x0aa40), P(0x0aa44), 302 1.1 christos P(0x0aa48), P(0x0aa4c), P(0x0aa50), P(0x0aa54), P(0x0aa58), 303 1.1 christos P(0x0aa5c), P(0x0aa60), P(0x0aa64), P(0x0aa68), P(0x0aa6c), 304 1.1 christos P(0x0aa70), P(0x0aa74), P(0x0aa78), P(0x0aa7c), P(0x0aa80), 305 1.1 christos P(0x0aa84), P(0x0aa88), P(0x0aa8c), P(0x0aa90), P(0x0aa94), 306 1.1 christos P(0x0aa98), P(0x0aa9c), P(0x0aaa0), P(0x0aaa4), P(0x0aaa8), 307 1.1 christos P(0x0aaac), P(0x0aab0), P(0x0aab4), P(0x0aab8), P(0x0aabc), 308 1.1 christos P(0x0aac0), P(0x0aac4), P(0x0aac8), P(0x0aacc), P(0x0aad0), 309 1.1 christos P(0x0aad4), P(0x0aad8), P(0x0aadc), P(0x0aae0), P(0x0aae4), 310 1.1 christos P(0x0aae8), P(0x0aaec), P(0x0aaf0), P(0x0aaf4), P(0x0aaf8), 311 1.1 christos P(0x0aafc), P(0x0ab00), P(0x0ab04), P(0x0ab08), P(0x0ab0c), 312 1.1 christos P(0x0ab10), P(0x0ab14), P(0x0ab18), P(0x0ab1c), P(0x0ab20), 313 1.1 christos P(0x0ab24), P(0x0ab28), P(0x0ab2c), P(0x0ab30), P(0x0ab34), 314 1.1 christos P(0x0ab38), P(0x0ab3c), P(0x0ab40), P(0x0ab44), P(0x0ab48), 315 1.1 christos P(0x0ab4c), P(0x0ab50), P(0x0ab54), P(0x0ab58), P(0x0ab5c), 316 1.1 christos P(0x0ab60), P(0x0ab64), P(0x0ab68), P(0x0ab6c), P(0x0ab70), 317 1.1 christos P(0x0ab74), P(0x0ab78), P(0x0ab7c), P(0x0ab80), P(0x0ab84), 318 1.1 christos P(0x0ab88), P(0x0ab8c), P(0x0ab90), P(0x0ab94), P(0x0ab98), 319 1.1 christos P(0x0ab9c), P(0x0aba0), P(0x0aba4), P(0x0aba8), P(0x0abac), 320 1.1 christos P(0x0abb0), P(0x0abb4), P(0x0abb8), P(0x0abbc), P(0x0abc0), 321 1.1 christos P(0x0abc4), P(0x0abc8), P(0x0abcc), P(0x0abd0), P(0x0abd4), 322 1.1 christos P(0x0abd8), P(0x0abdc), P(0x0abe0), P(0x0abe4), P(0x0abe8), 323 1.1 christos P(0x0abec), P(0x0abf0), P(0x0abf4), P(0x0abf8), P(0x0abfc), 324 1.1 christos P(0x0a204), P(0x0a20c), P(0x0b20c), P(0x0a21c), P(0x0a230), 325 1.1 christos P(0x0a250), P(0x0a358) 326 1.1 christos }; 327 1.1 christos 328 1.1 christos #ifndef IEEE80211_NO_HT 329 1.1 christos static const uint32_t ar9285_1_2_vals_2g40[] = { 330 1.1 christos 0x000002c0, 0x00000318, 0x00007c70, 0x00000000, 0x10801600, 331 1.1 christos 0x12e00057, 0x00006880, 0x000003c4, 0x02020200, 0x01000e0e, 332 1.1 christos 0x0a020001, 0x00000e0e, 0x00000007, 0x206a012e, 0x03721620, 333 1.1 christos 0x00001053, 0x00001053, 0x6d4000e2, 0x7ec84d2e, 0x3137605e, 334 1.1 christos 0x00058d20, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x00001130, 335 1.1 christos 0x00000016, 0xd00a800d, 0xffbc1020, 0x00000000, 0x00000000, 336 1.1 christos 0x0000421c, 0x00000c00, 0x05eea6d4, 0x06336f77, 0x6af6532f, 337 1.1 christos 0x08f186c8, 0x00046384, 0x00000000, 0x00000000, 0x00058084, 338 1.1 christos 0x00058088, 0x0005808c, 0x00058100, 0x00058104, 0x00058108, 339 1.1 christos 0x0005810c, 0x00058110, 0x00058114, 0x00058180, 0x00058184, 340 1.1 christos 0x00058188, 0x0005818c, 0x00058190, 0x00058194, 0x000581a0, 341 1.1 christos 0x0005820c, 0x000581a8, 0x00058284, 0x00058288, 0x00058224, 342 1.1 christos 0x00058290, 0x00058300, 0x00058304, 0x00058308, 0x0005830c, 343 1.1 christos 0x00058380, 0x00058384, 0x00068700, 0x00068704, 0x00068708, 344 1.1 christos 0x0006870c, 0x00068780, 0x00068784, 0x00078b00, 0x00078b04, 345 1.1 christos 0x00078b08, 0x00078b0c, 0x00078b80, 0x00078b84, 0x00078b88, 346 1.1 christos 0x00078b8c, 0x00078b90, 0x000caf80, 0x000caf84, 0x000caf88, 347 1.1 christos 0x000caf8c, 0x000caf90, 0x000db30c, 0x000db310, 0x000db384, 348 1.1 christos 0x000db388, 0x000db324, 0x000eb704, 0x000eb6a4, 0x000eb6a8, 349 1.1 christos 0x000eb710, 0x000eb714, 0x000eb720, 0x000eb724, 0x000eb728, 350 1.1 christos 0x000eb72c, 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 351 1.1 christos 0x000eb7b4, 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 352 1.1 christos 0x000eb7b1, 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 353 1.1 christos 0x000eb7d1, 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 354 1.1 christos 0x000eb7ce, 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 355 1.1 christos 0x000eb7cb, 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 0x000eb7db, 356 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 357 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 358 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 359 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 360 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 361 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 362 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 363 1.1 christos 0x000eb7db, 0x000eb7db, 0x00058084, 0x00058088, 0x0005808c, 364 1.1 christos 0x00058100, 0x00058104, 0x00058108, 0x0005810c, 0x00058110, 365 1.1 christos 0x00058114, 0x00058180, 0x00058184, 0x00058188, 0x0005818c, 366 1.1 christos 0x00058190, 0x00058194, 0x000581a0, 0x0005820c, 0x000581a8, 367 1.1 christos 0x00058284, 0x00058288, 0x00058224, 0x00058290, 0x00058300, 368 1.1 christos 0x00058304, 0x00058308, 0x0005830c, 0x00058380, 0x00058384, 369 1.1 christos 0x00068700, 0x00068704, 0x00068708, 0x0006870c, 0x00068780, 370 1.1 christos 0x00068784, 0x00078b00, 0x00078b04, 0x00078b08, 0x00078b0c, 371 1.1 christos 0x00078b80, 0x00078b84, 0x00078b88, 0x00078b8c, 0x00078b90, 372 1.1 christos 0x000caf80, 0x000caf84, 0x000caf88, 0x000caf8c, 0x000caf90, 373 1.1 christos 0x000db30c, 0x000db310, 0x000db384, 0x000db388, 0x000db324, 374 1.1 christos 0x000eb704, 0x000eb6a4, 0x000eb6a8, 0x000eb710, 0x000eb714, 375 1.1 christos 0x000eb720, 0x000eb724, 0x000eb728, 0x000eb72c, 0x000eb7a0, 376 1.1 christos 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 0x000eb7b4, 0x000eb7b8, 377 1.1 christos 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 0x000eb7b1, 0x000eb7b5, 378 1.1 christos 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 0x000eb7d1, 0x000eb7d5, 379 1.1 christos 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 0x000eb7ce, 0x000eb7d2, 380 1.1 christos 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 0x000eb7cb, 0x000eb7cf, 381 1.1 christos 0x000eb7d7, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 382 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 383 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 384 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 385 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 386 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 387 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 388 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 389 1.1 christos 0x00000004, 0x0001f000, 0x0001f000, 0x1883800a, 0x00000210, 390 1.1 christos 0x0004a000, 0x7999aa0e 391 1.1 christos }; 392 1.1 christos #endif 393 1.1 christos 394 1.1 christos static const uint32_t ar9285_1_2_vals_2g20[] = { 395 1.1 christos 0x00000160, 0x0000018c, 0x00003e38, 0x00000000, 0x08400b00, 396 1.1 christos 0x12e0002b, 0x00003440, 0x00000300, 0x02020200, 0x01000e0e, 397 1.1 christos 0x0a020001, 0x00000e0e, 0x00000007, 0x206a012e, 0x03721620, 398 1.1 christos 0x00001053, 0x00001053, 0x6d4000e2, 0x7ec84d2e, 0x3137605e, 399 1.1 christos 0x00058d20, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x00000898, 400 1.1 christos 0x0000000b, 0xd00a800d, 0xffbc1020, 0x00000000, 0x00000000, 401 1.1 christos 0x0000421c, 0x00000c00, 0x05eea6d4, 0x06336f77, 0x6af6532f, 402 1.1 christos 0x08f186c8, 0x00046384, 0x00000000, 0x00000000, 0x00058084, 403 1.1 christos 0x00058088, 0x0005808c, 0x00058100, 0x00058104, 0x00058108, 404 1.1 christos 0x0005810c, 0x00058110, 0x00058114, 0x00058180, 0x00058184, 405 1.1 christos 0x00058188, 0x0005818c, 0x00058190, 0x00058194, 0x000581a0, 406 1.1 christos 0x0005820c, 0x000581a8, 0x00058284, 0x00058288, 0x00058224, 407 1.1 christos 0x00058290, 0x00058300, 0x00058304, 0x00058308, 0x0005830c, 408 1.1 christos 0x00058380, 0x00058384, 0x00068700, 0x00068704, 0x00068708, 409 1.1 christos 0x0006870c, 0x00068780, 0x00068784, 0x00078b00, 0x00078b04, 410 1.1 christos 0x00078b08, 0x00078b0c, 0x00078b80, 0x00078b84, 0x00078b88, 411 1.1 christos 0x00078b8c, 0x00078b90, 0x000caf80, 0x000caf84, 0x000caf88, 412 1.1 christos 0x000caf8c, 0x000caf90, 0x000db30c, 0x000db310, 0x000db384, 413 1.1 christos 0x000db388, 0x000db324, 0x000eb704, 0x000eb6a4, 0x000eb6a8, 414 1.1 christos 0x000eb710, 0x000eb714, 0x000eb720, 0x000eb724, 0x000eb728, 415 1.1 christos 0x000eb72c, 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 416 1.1 christos 0x000eb7b4, 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 417 1.1 christos 0x000eb7b1, 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 418 1.1 christos 0x000eb7d1, 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 419 1.1 christos 0x000eb7ce, 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 420 1.1 christos 0x000eb7cb, 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 0x000eb7db, 421 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 422 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 423 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 424 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 425 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 426 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 427 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 428 1.1 christos 0x000eb7db, 0x000eb7db, 0x00058084, 0x00058088, 0x0005808c, 429 1.1 christos 0x00058100, 0x00058104, 0x00058108, 0x0005810c, 0x00058110, 430 1.1 christos 0x00058114, 0x00058180, 0x00058184, 0x00058188, 0x0005818c, 431 1.1 christos 0x00058190, 0x00058194, 0x000581a0, 0x0005820c, 0x000581a8, 432 1.1 christos 0x00058284, 0x00058288, 0x00058224, 0x00058290, 0x00058300, 433 1.1 christos 0x00058304, 0x00058308, 0x0005830c, 0x00058380, 0x00058384, 434 1.1 christos 0x00068700, 0x00068704, 0x00068708, 0x0006870c, 0x00068780, 435 1.1 christos 0x00068784, 0x00078b00, 0x00078b04, 0x00078b08, 0x00078b0c, 436 1.1 christos 0x00078b80, 0x00078b84, 0x00078b88, 0x00078b8c, 0x00078b90, 437 1.1 christos 0x000caf80, 0x000caf84, 0x000caf88, 0x000caf8c, 0x000caf90, 438 1.1 christos 0x000db30c, 0x000db310, 0x000db384, 0x000db388, 0x000db324, 439 1.1 christos 0x000eb704, 0x000eb6a4, 0x000eb6a8, 0x000eb710, 0x000eb714, 440 1.1 christos 0x000eb720, 0x000eb724, 0x000eb728, 0x000eb72c, 0x000eb7a0, 441 1.1 christos 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 0x000eb7b4, 0x000eb7b8, 442 1.1 christos 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 0x000eb7b1, 0x000eb7b5, 443 1.1 christos 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 0x000eb7d1, 0x000eb7d5, 444 1.1 christos 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 0x000eb7ce, 0x000eb7d2, 445 1.1 christos 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 0x000eb7cb, 0x000eb7cf, 446 1.1 christos 0x000eb7d7, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 447 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 448 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 449 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 450 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 451 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 452 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 453 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 454 1.1 christos 0x00000004, 0x0001f000, 0x0001f000, 0x1883800a, 0x00000108, 455 1.1 christos 0x0004a000, 0x7999aa0e 456 1.1 christos }; 457 1.1 christos 458 1.1 christos static const uint16_t ar9285_1_2_cm_regs[] = { 459 1.1 christos P(0x0000c), P(0x00030), P(0x00034), P(0x00040), P(0x00044), 460 1.1 christos P(0x00048), P(0x0004c), P(0x00050), P(0x00054), P(0x00800), 461 1.1 christos P(0x00804), P(0x00808), P(0x0080c), P(0x00810), P(0x00814), 462 1.1 christos P(0x00818), P(0x0081c), P(0x00820), P(0x00824), P(0x01040), 463 1.1 christos P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054), 464 1.1 christos P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x01230), 465 1.1 christos P(0x01270), P(0x01038), P(0x01078), P(0x010b8), P(0x010f8), 466 1.1 christos P(0x01138), P(0x01178), P(0x011b8), P(0x011f8), P(0x01238), 467 1.1 christos P(0x01278), P(0x012b8), P(0x012f8), P(0x01338), P(0x01378), 468 1.1 christos P(0x013b8), P(0x013f8), P(0x01438), P(0x01478), P(0x014b8), 469 1.1 christos P(0x014f8), P(0x01538), P(0x01578), P(0x015b8), P(0x015f8), 470 1.1 christos P(0x01638), P(0x01678), P(0x016b8), P(0x016f8), P(0x01738), 471 1.1 christos P(0x01778), P(0x017b8), P(0x017f8), P(0x0103c), P(0x0107c), 472 1.1 christos P(0x010bc), P(0x010fc), P(0x0113c), P(0x0117c), P(0x011bc), 473 1.1 christos P(0x011fc), P(0x0123c), P(0x0127c), P(0x012bc), P(0x012fc), 474 1.1 christos P(0x0133c), P(0x0137c), P(0x013bc), P(0x013fc), P(0x0143c), 475 1.1 christos P(0x0147c), P(0x04030), P(0x0403c), P(0x04024), P(0x04060), 476 1.1 christos P(0x04064), P(0x07010), P(0x07034), P(0x07038), P(0x08004), 477 1.1 christos P(0x08008), P(0x0800c), P(0x08018), P(0x08020), P(0x08038), 478 1.1 christos P(0x0803c), P(0x08048), P(0x08054), P(0x08058), P(0x0805c), 479 1.1 christos P(0x08060), P(0x08064), P(0x08070), P(0x080c0), P(0x080c4), 480 1.1 christos P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), P(0x080d8), 481 1.1 christos P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), P(0x080f0), 482 1.1 christos P(0x080f4), P(0x080f8), P(0x080fc), P(0x08100), P(0x08104), 483 1.1 christos P(0x08108), P(0x0810c), P(0x08110), P(0x08118), P(0x0811c), 484 1.1 christos P(0x08120), P(0x08124), P(0x08128), P(0x0812c), P(0x08130), 485 1.1 christos P(0x08134), P(0x08138), P(0x0813c), P(0x08144), P(0x08168), 486 1.1 christos P(0x0816c), P(0x08170), P(0x08174), P(0x08178), P(0x0817c), 487 1.1 christos P(0x081c0), P(0x081d0), P(0x081ec), P(0x081f0), P(0x081f4), 488 1.1 christos P(0x081f8), P(0x081fc), P(0x08200), P(0x08204), P(0x08208), 489 1.1 christos P(0x0820c), P(0x08210), P(0x08214), P(0x08218), P(0x0821c), 490 1.1 christos P(0x08220), P(0x08224), P(0x08228), P(0x0822c), P(0x08230), 491 1.1 christos P(0x08234), P(0x08238), P(0x0823c), P(0x08240), P(0x08244), 492 1.1 christos P(0x08248), P(0x0824c), P(0x08250), P(0x08254), P(0x08258), 493 1.1 christos P(0x0825c), P(0x08260), P(0x08264), P(0x08270), P(0x08274), 494 1.1 christos P(0x08278), P(0x0827c), P(0x08284), P(0x08288), P(0x0828c), 495 1.1 christos P(0x08294), P(0x08298), P(0x0829c), P(0x08300), P(0x08314), 496 1.1 christos P(0x08328), P(0x0832c), P(0x08330), P(0x08334), P(0x08338), 497 1.1 christos P(0x0833c), P(0x08340), P(0x08344), P(0x09808), P(0x0980c), 498 1.1 christos P(0x09810), P(0x09814), P(0x0981c), P(0x0982c), P(0x09830), 499 1.1 christos P(0x0983c), P(0x0984c), P(0x09854), P(0x09900), P(0x09904), 500 1.1 christos P(0x09908), P(0x0990c), P(0x09910), P(0x0991c), P(0x09920), 501 1.1 christos P(0x09928), P(0x0992c), P(0x09934), P(0x09938), P(0x0993c), 502 1.1 christos P(0x09940), P(0x09948), P(0x0994c), P(0x09954), P(0x09958), 503 1.1 christos P(0x09968), P(0x09970), P(0x09974), P(0x09978), P(0x0997c), 504 1.1 christos P(0x09980), P(0x09984), P(0x09988), P(0x0998c), P(0x09990), 505 1.1 christos P(0x09994), P(0x09998), P(0x0999c), P(0x099a0), P(0x099a4), 506 1.1 christos P(0x099a8), P(0x099ac), P(0x099b0), P(0x099b4), P(0x099dc), 507 1.1 christos P(0x099e0), P(0x099e4), P(0x099e8), P(0x099ec), P(0x099f0), 508 1.1 christos P(0x0a208), P(0x0a210), P(0x0a214), P(0x0a218), P(0x0a220), 509 1.1 christos P(0x0a224), P(0x0a228), P(0x0a22c), P(0x0a234), P(0x0a238), 510 1.1 christos P(0x0a244), P(0x0a248), P(0x0a24c), P(0x0a254), P(0x0a258), 511 1.1 christos P(0x0a25c), P(0x0a260), P(0x0a268), P(0x0a26c), P(0x0d270), 512 1.1 christos P(0x0d35c), P(0x0d360), P(0x0d364), P(0x0d368), P(0x0d36c), 513 1.1 christos P(0x0d370), P(0x0d374), P(0x0d378), P(0x0d37c), P(0x0d380), 514 1.1 christos P(0x0d384), P(0x0a388), P(0x0a38c), P(0x0a390), P(0x0a39c), 515 1.1 christos P(0x0a3a0), P(0x0a3a4), P(0x0a3a8), P(0x0a3ac), P(0x0a3b0), 516 1.1 christos P(0x0a3b4), P(0x0a3b8), P(0x0a3bc), P(0x0a3c0), P(0x0a3c4), 517 1.1 christos P(0x0a3cc), P(0x0a3d0), P(0x0a3d4), P(0x0a3e4), P(0x0a3e8), 518 1.1 christos P(0x0a3ec), P(0x07800), P(0x07804), P(0x07808), P(0x0780c), 519 1.1 christos P(0x07810), P(0x0781c), P(0x07824), P(0x0782c), P(0x07834), 520 1.1 christos P(0x07844), P(0x07848), P(0x0784c), P(0x07850), P(0x07854), 521 1.1 christos P(0x07858), P(0x0785c), P(0x07860), P(0x07864), P(0x07868), 522 1.1 christos P(0x07870) 523 1.1 christos }; 524 1.1 christos 525 1.1 christos static const uint32_t ar9285_1_2_cm_vals[] = { 526 1.1 christos 0x00000000, 0x00020045, 0x00000005, 0x00000000, 0x00000008, 527 1.1 christos 0x00000008, 0x00000010, 0x00000000, 0x0000001f, 0x00000000, 528 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 529 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002ffc0f, 530 1.1 christos 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 531 1.1 christos 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000000, 532 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 533 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 534 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 535 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 536 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 537 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 538 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 539 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 540 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 541 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 542 1.1 christos 0x00000000, 0x00000002, 0x00000002, 0x0000001f, 0x00000000, 543 1.1 christos 0x00000000, 0x00000031, 0x00000002, 0x000004c2, 0x00000000, 544 1.1 christos 0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x00000000, 545 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000fc78f, 546 1.1 christos 0x0000000f, 0x00000000, 0x00000000, 0x2a80001a, 0x05dc01e0, 547 1.1 christos 0x1f402710, 0x01f40000, 0x00001e00, 0x00000000, 0x00400000, 548 1.1 christos 0xffffffff, 0x0000ffff, 0x003f3f3f, 0x00000000, 0x00000000, 549 1.1 christos 0x00000000, 0x00000000, 0x00020000, 0x00020000, 0x00000001, 550 1.1 christos 0x00000052, 0x00000000, 0x00000168, 0x000100aa, 0x00003210, 551 1.1 christos 0x08f04810, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 552 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 553 1.1 christos 0x00000000, 0x32143320, 0xfaa4fa50, 0x00000100, 0x00000000, 554 1.1 christos 0x00000000, 0x0000320a, 0x00000000, 0x00000000, 0x00000000, 555 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 556 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 557 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 558 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x0010f400, 559 1.1 christos 0x00000100, 0x0001e800, 0x00000000, 0x00000000, 0x00000000, 560 1.1 christos 0x400000ff, 0x00080922, 0x88a00010, 0x00000000, 0x40000000, 561 1.1 christos 0x003e4180, 0x00000000, 0x0000002c, 0x0000002c, 0x00000000, 562 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 563 1.1 christos 0x00000000, 0x00000001, 0x00000302, 0x00000e00, 0x00ff0000, 564 1.1 christos 0x00000000, 0x00010380, 0x00481043, 0x00000000, 0xafe68e30, 565 1.1 christos 0xfd14e000, 0x9c0a9f6b, 0x00000000, 0x0000a000, 0x00000000, 566 1.1 christos 0x00200400, 0x0040233c, 0x00000044, 0x00000000, 0x00000000, 567 1.1 christos 0x00000000, 0x00000000, 0x01002310, 0x10000fff, 0x04900000, 568 1.1 christos 0x00000001, 0x00000004, 0x1e1f2022, 0x0a0b0c0d, 0x00000000, 569 1.1 christos 0x14750604, 0x9280c00a, 0x00020028, 0x5f3ca3de, 0x2108ecff, 570 1.1 christos 0x000003ce, 0x192bb514, 0x00000000, 0x00000001, 0x00000000, 571 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 572 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 573 1.1 christos 0x201fff00, 0x2def0400, 0x03051000, 0x00000820, 0x00000000, 574 1.1 christos 0x00000000, 0xaaaaaaaa, 0x3c466478, 0x0cc80caa, 0x00000000, 575 1.1 christos 0x803e68c8, 0x4080a333, 0x00206c10, 0x009c4060, 0x01834061, 576 1.1 christos 0x00000400, 0x000003b5, 0x00000000, 0x20202020, 0x20202020, 577 1.1 christos 0x00000000, 0xfffffffc, 0x00000000, 0x00000000, 0x0ccb5380, 578 1.1 christos 0x15151501, 0xdfa90f01, 0x00000000, 0x0ebae9e6, 0x0d820820, 579 1.1 christos 0x07ffffef, 0x0fffffe7, 0x17ffffe5, 0x1fffffe4, 0x37ffffe3, 580 1.1 christos 0x3fffffe3, 0x57ffffe3, 0x5fffffe2, 0x7fffffe2, 0x7f3c7bba, 581 1.1 christos 0xf3307ff0, 0x0c000000, 0x20202020, 0x20202020, 0x00000001, 582 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 583 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 584 1.1 christos 0x20202020, 0x20202020, 0x20202020, 0x00000000, 0x18c43433, 585 1.1 christos 0x00f70081, 0x00140000, 0x0e4548d8, 0x54214514, 0x02025830, 586 1.1 christos 0x71c0d388, 0x00000000, 0x00d86fff, 0x6e36d97b, 0x71400087, 587 1.1 christos 0x000c0db6, 0x6db6246f, 0x6d9b66db, 0x6d8c6dba, 0x00040000, 588 1.1 christos 0xdb003012, 0x04924914, 0x21084210, 0xf7d7ffde, 0xc2034080, 589 1.1 christos 0x10142c00 590 1.1 christos }; 591 1.1 christos 592 1.1 christos static const struct athn_ini ar9285_1_2_ini = { 593 1.1 christos .nregs = __arraycount(ar9285_1_2_regs), 594 1.1 christos .regs = ar9285_1_2_regs, 595 1.1 christos .vals_5g20 = NULL, /* 2GHz only. */ 596 1.1 christos #ifndef IEEE80211_NO_HT 597 1.1 christos .vals_5g40 = NULL, /* 2GHz only. */ 598 1.1 christos .vals_2g40 = ar9285_1_2_vals_2g40, 599 1.1 christos #endif 600 1.1 christos .vals_2g20 = ar9285_1_2_vals_2g20, 601 1.1 christos .ncmregs = __arraycount(ar9285_1_2_cm_regs), 602 1.1 christos .cmregs = ar9285_1_2_cm_regs, 603 1.1 christos .cmvals = ar9285_1_2_cm_vals, 604 1.1 christos }; 605 1.1 christos 606 1.1 christos #if NATHN_USB > 0 607 1.1 christos /* 608 1.1 christos * AR9271 programming. 609 1.1 christos */ 610 1.1 christos static const uint16_t ar9271_regs[] = { 611 1.1 christos P(0x01030), P(0x01070), P(0x010b0), P(0x010f0), P(0x08014), 612 1.1 christos P(0x0801c), P(0x08318), P(0x09804), P(0x09820), P(0x09824), 613 1.1 christos P(0x09828), P(0x09834), P(0x09838), P(0x09840), P(0x09844), 614 1.1 christos P(0x09848), P(0x0a848), P(0x09850), P(0x09858), P(0x0985c), 615 1.1 christos P(0x09860), P(0x09864), P(0x09868), P(0x0986c), P(0x09910), 616 1.1 christos P(0x09914), P(0x09918), P(0x09924), P(0x09944), P(0x09960), 617 1.1 christos P(0x09964), P(0x099b8), P(0x099bc), P(0x099c0), P(0x099c4), 618 1.1 christos P(0x099c8), P(0x099cc), P(0x099d0), P(0x099d4), P(0x099d8), 619 1.1 christos P(0x09a00), P(0x09a04), P(0x09a08), P(0x09a0c), P(0x09a10), 620 1.1 christos P(0x09a14), P(0x09a18), P(0x09a1c), P(0x09a20), P(0x09a24), 621 1.1 christos P(0x09a28), P(0x09a2c), P(0x09a30), P(0x09a34), P(0x09a38), 622 1.1 christos P(0x09a3c), P(0x09a40), P(0x09a44), P(0x09a48), P(0x09a4c), 623 1.1 christos P(0x09a50), P(0x09a54), P(0x09a58), P(0x09a5c), P(0x09a60), 624 1.1 christos P(0x09a64), P(0x09a68), P(0x09a6c), P(0x09a70), P(0x09a74), 625 1.1 christos P(0x09a78), P(0x09a7c), P(0x09a80), P(0x09a84), P(0x09a88), 626 1.1 christos P(0x09a8c), P(0x09a90), P(0x09a94), P(0x09a98), P(0x09a9c), 627 1.1 christos P(0x09aa0), P(0x09aa4), P(0x09aa8), P(0x09aac), P(0x09ab0), 628 1.1 christos P(0x09ab4), P(0x09ab8), P(0x09abc), P(0x09ac0), P(0x09ac4), 629 1.1 christos P(0x09ac8), P(0x09acc), P(0x09ad0), P(0x09ad4), P(0x09ad8), 630 1.1 christos P(0x09adc), P(0x09ae0), P(0x09ae4), P(0x09ae8), P(0x09aec), 631 1.1 christos P(0x09af0), P(0x09af4), P(0x09af8), P(0x09afc), P(0x09b00), 632 1.1 christos P(0x09b04), P(0x09b08), P(0x09b0c), P(0x09b10), P(0x09b14), 633 1.1 christos P(0x09b18), P(0x09b1c), P(0x09b20), P(0x09b24), P(0x09b28), 634 1.1 christos P(0x09b2c), P(0x09b30), P(0x09b34), P(0x09b38), P(0x09b3c), 635 1.1 christos P(0x09b40), P(0x09b44), P(0x09b48), P(0x09b4c), P(0x09b50), 636 1.1 christos P(0x09b54), P(0x09b58), P(0x09b5c), P(0x09b60), P(0x09b64), 637 1.1 christos P(0x09b68), P(0x09b6c), P(0x09b70), P(0x09b74), P(0x09b78), 638 1.1 christos P(0x09b7c), P(0x09b80), P(0x09b84), P(0x09b88), P(0x09b8c), 639 1.1 christos P(0x09b90), P(0x09b94), P(0x09b98), P(0x09b9c), P(0x09ba0), 640 1.1 christos P(0x09ba4), P(0x09ba8), P(0x09bac), P(0x09bb0), P(0x09bb4), 641 1.1 christos P(0x09bb8), P(0x09bbc), P(0x09bc0), P(0x09bc4), P(0x09bc8), 642 1.1 christos P(0x09bcc), P(0x09bd0), P(0x09bd4), P(0x09bd8), P(0x09bdc), 643 1.1 christos P(0x09be0), P(0x09be4), P(0x09be8), P(0x09bec), P(0x09bf0), 644 1.1 christos P(0x09bf4), P(0x09bf8), P(0x09bfc), P(0x0aa00), P(0x0aa04), 645 1.1 christos P(0x0aa08), P(0x0aa0c), P(0x0aa10), P(0x0aa14), P(0x0aa18), 646 1.1 christos P(0x0aa1c), P(0x0aa20), P(0x0aa24), P(0x0aa28), P(0x0aa2c), 647 1.1 christos P(0x0aa30), P(0x0aa34), P(0x0aa38), P(0x0aa3c), P(0x0aa40), 648 1.1 christos P(0x0aa44), P(0x0aa48), P(0x0aa4c), P(0x0aa50), P(0x0aa54), 649 1.1 christos P(0x0aa58), P(0x0aa5c), P(0x0aa60), P(0x0aa64), P(0x0aa68), 650 1.1 christos P(0x0aa6c), P(0x0aa70), P(0x0aa74), P(0x0aa78), P(0x0aa7c), 651 1.1 christos P(0x0aa80), P(0x0aa84), P(0x0aa88), P(0x0aa8c), P(0x0aa90), 652 1.1 christos P(0x0aa94), P(0x0aa98), P(0x0aa9c), P(0x0aaa0), P(0x0aaa4), 653 1.1 christos P(0x0aaa8), P(0x0aaac), P(0x0aab0), P(0x0aab4), P(0x0aab8), 654 1.1 christos P(0x0aabc), P(0x0aac0), P(0x0aac4), P(0x0aac8), P(0x0aacc), 655 1.1 christos P(0x0aad0), P(0x0aad4), P(0x0aad8), P(0x0aadc), P(0x0aae0), 656 1.1 christos P(0x0aae4), P(0x0aae8), P(0x0aaec), P(0x0aaf0), P(0x0aaf4), 657 1.1 christos P(0x0aaf8), P(0x0aafc), P(0x0ab00), P(0x0ab04), P(0x0ab08), 658 1.1 christos P(0x0ab0c), P(0x0ab10), P(0x0ab14), P(0x0ab18), P(0x0ab1c), 659 1.1 christos P(0x0ab20), P(0x0ab24), P(0x0ab28), P(0x0ab2c), P(0x0ab30), 660 1.1 christos P(0x0ab34), P(0x0ab38), P(0x0ab3c), P(0x0ab40), P(0x0ab44), 661 1.1 christos P(0x0ab48), P(0x0ab4c), P(0x0ab50), P(0x0ab54), P(0x0ab58), 662 1.1 christos P(0x0ab5c), P(0x0ab60), P(0x0ab64), P(0x0ab68), P(0x0ab6c), 663 1.1 christos P(0x0ab70), P(0x0ab74), P(0x0ab78), P(0x0ab7c), P(0x0ab80), 664 1.1 christos P(0x0ab84), P(0x0ab88), P(0x0ab8c), P(0x0ab90), P(0x0ab94), 665 1.1 christos P(0x0ab98), P(0x0ab9c), P(0x0aba0), P(0x0aba4), P(0x0aba8), 666 1.1 christos P(0x0abac), P(0x0abb0), P(0x0abb4), P(0x0abb8), P(0x0abbc), 667 1.1 christos P(0x0abc0), P(0x0abc4), P(0x0abc8), P(0x0abcc), P(0x0abd0), 668 1.1 christos P(0x0abd4), P(0x0abd8), P(0x0abdc), P(0x0abe0), P(0x0abe4), 669 1.1 christos P(0x0abe8), P(0x0abec), P(0x0abf0), P(0x0abf4), P(0x0abf8), 670 1.1 christos P(0x0abfc), P(0x0a204), P(0x0a20c), P(0x0b20c), P(0x0a21c), 671 1.1 christos P(0x0a230), P(0x0a250), P(0x0a358) 672 1.1 christos }; 673 1.1 christos 674 1.1 christos #ifndef IEEE80211_NO_HT 675 1.1 christos static const uint32_t ar9271_vals_2g40[] = { 676 1.1 christos 0x000002c0, 0x00000318, 0x00007c70, 0x00000000, 0x10801600, 677 1.1 christos 0x12e00057, 0x00006880, 0x000003c4, 0x02020200, 0x01000e0e, 678 1.1 christos 0x3a020001, 0x00000e0e, 0x00000007, 0x206a012e, 0x03721620, 679 1.1 christos 0x00001053, 0x00001053, 0x6d4000e2, 0x7ec84d2e, 0x3137605e, 680 1.1 christos 0x00058d18, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x30002310, 681 1.1 christos 0x00001130, 0x00000016, 0xd00a800d, 0xffbc1020, 0x00000000, 682 1.1 christos 0x00000000, 0x0000421c, 0x00000c00, 0x05eea6d4, 0x06336f77, 683 1.1 christos 0x6af6532f, 0x08f186c8, 0x00046384, 0x00000000, 0x00000000, 684 1.1 christos 0x00058084, 0x00058088, 0x0005808c, 0x00058100, 0x00058104, 685 1.1 christos 0x00058108, 0x0005810c, 0x00058110, 0x00058114, 0x00058180, 686 1.1 christos 0x00058184, 0x00058188, 0x0005818c, 0x00058190, 0x00058194, 687 1.1 christos 0x000581a0, 0x0005820c, 0x000581a8, 0x00058284, 0x00058288, 688 1.1 christos 0x00058224, 0x00058290, 0x00058300, 0x00058304, 0x00058308, 689 1.1 christos 0x0005830c, 0x00058380, 0x00058384, 0x00068700, 0x00068704, 690 1.1 christos 0x00068708, 0x0006870c, 0x00068780, 0x00068784, 0x00078b00, 691 1.1 christos 0x00078b04, 0x00078b08, 0x00078b0c, 0x00078b80, 0x00078b84, 692 1.1 christos 0x00078b88, 0x00078b8c, 0x00078b90, 0x000caf80, 0x000caf84, 693 1.1 christos 0x000caf88, 0x000caf8c, 0x000caf90, 0x000db30c, 0x000db310, 694 1.1 christos 0x000db384, 0x000db388, 0x000db324, 0x000eb704, 0x000eb6a4, 695 1.1 christos 0x000eb6a8, 0x000eb710, 0x000eb714, 0x000eb720, 0x000eb724, 696 1.1 christos 0x000eb728, 0x000eb72c, 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 697 1.1 christos 0x000eb7b0, 0x000eb7b4, 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 698 1.1 christos 0x000eb7ad, 0x000eb7b1, 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 699 1.1 christos 0x000eb7c9, 0x000eb7d1, 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 700 1.1 christos 0x000eb7ca, 0x000eb7ce, 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 701 1.1 christos 0x000eb7c7, 0x000eb7cb, 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 702 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 703 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 704 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 705 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 706 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 707 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 708 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 709 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x00058084, 0x00058088, 710 1.1 christos 0x0005808c, 0x00058100, 0x00058104, 0x00058108, 0x0005810c, 711 1.1 christos 0x00058110, 0x00058114, 0x00058180, 0x00058184, 0x00058188, 712 1.1 christos 0x0005818c, 0x00058190, 0x00058194, 0x000581a0, 0x0005820c, 713 1.1 christos 0x000581a8, 0x00058284, 0x00058288, 0x00058224, 0x00058290, 714 1.1 christos 0x00058300, 0x00058304, 0x00058308, 0x0005830c, 0x00058380, 715 1.1 christos 0x00058384, 0x00068700, 0x00068704, 0x00068708, 0x0006870c, 716 1.1 christos 0x00068780, 0x00068784, 0x00078b00, 0x00078b04, 0x00078b08, 717 1.1 christos 0x00078b0c, 0x00078b80, 0x00078b84, 0x00078b88, 0x00078b8c, 718 1.1 christos 0x00078b90, 0x000caf80, 0x000caf84, 0x000caf88, 0x000caf8c, 719 1.1 christos 0x000caf90, 0x000db30c, 0x000db310, 0x000db384, 0x000db388, 720 1.1 christos 0x000db324, 0x000eb704, 0x000eb6a4, 0x000eb6a8, 0x000eb710, 721 1.1 christos 0x000eb714, 0x000eb720, 0x000eb724, 0x000eb728, 0x000eb72c, 722 1.1 christos 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 0x000eb7b4, 723 1.1 christos 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 0x000eb7b1, 724 1.1 christos 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 0x000eb7d1, 725 1.1 christos 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 0x000eb7ce, 726 1.1 christos 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 0x000eb7cb, 727 1.1 christos 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 0x000eb7db, 0x000eb7db, 728 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 729 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 730 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 731 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 732 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 733 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 734 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 735 1.1 christos 0x000eb7db, 0x00000004, 0x0001f000, 0x0001f000, 0x1883800a, 736 1.1 christos 0x00000210, 0x0004a000, 0x7999aa0e 737 1.1 christos }; 738 1.1 christos #endif 739 1.1 christos 740 1.1 christos static const uint32_t ar9271_vals_2g20[] = { 741 1.1 christos 0x00000160, 0x0000018c, 0x00003e38, 0x00000000, 0x08400b00, 742 1.1 christos 0x12e0002b, 0x00003440, 0x00000300, 0x02020200, 0x01000e0e, 743 1.1 christos 0x3a020001, 0x00000e0e, 0x00000007, 0x206a012e, 0x03721620, 744 1.1 christos 0x00001053, 0x00001053, 0x6d4000e2, 0x7ec84d2e, 0x3137605e, 745 1.1 christos 0x00058d18, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x30002310, 746 1.1 christos 0x00000898, 0x0000000b, 0xd00a800d, 0xffbc1020, 0x00000000, 747 1.1 christos 0x00000000, 0x0000421c, 0x00000c00, 0x05eea6d4, 0x06336f77, 748 1.1 christos 0x6af6532f, 0x08f186c8, 0x00046384, 0x00000000, 0x00000000, 749 1.1 christos 0x00058084, 0x00058088, 0x0005808c, 0x00058100, 0x00058104, 750 1.1 christos 0x00058108, 0x0005810c, 0x00058110, 0x00058114, 0x00058180, 751 1.1 christos 0x00058184, 0x00058188, 0x0005818c, 0x00058190, 0x00058194, 752 1.1 christos 0x000581a0, 0x0005820c, 0x000581a8, 0x00058284, 0x00058288, 753 1.1 christos 0x00058224, 0x00058290, 0x00058300, 0x00058304, 0x00058308, 754 1.1 christos 0x0005830c, 0x00058380, 0x00058384, 0x00068700, 0x00068704, 755 1.1 christos 0x00068708, 0x0006870c, 0x00068780, 0x00068784, 0x00078b00, 756 1.1 christos 0x00078b04, 0x00078b08, 0x00078b0c, 0x00078b80, 0x00078b84, 757 1.1 christos 0x00078b88, 0x00078b8c, 0x00078b90, 0x000caf80, 0x000caf84, 758 1.1 christos 0x000caf88, 0x000caf8c, 0x000caf90, 0x000db30c, 0x000db310, 759 1.1 christos 0x000db384, 0x000db388, 0x000db324, 0x000eb704, 0x000eb6a4, 760 1.1 christos 0x000eb6a8, 0x000eb710, 0x000eb714, 0x000eb720, 0x000eb724, 761 1.1 christos 0x000eb728, 0x000eb72c, 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 762 1.1 christos 0x000eb7b0, 0x000eb7b4, 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 763 1.1 christos 0x000eb7ad, 0x000eb7b1, 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 764 1.1 christos 0x000eb7c9, 0x000eb7d1, 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 765 1.1 christos 0x000eb7ca, 0x000eb7ce, 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 766 1.1 christos 0x000eb7c7, 0x000eb7cb, 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 767 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 768 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 769 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 770 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 771 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 772 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 773 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 774 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x00058084, 0x00058088, 775 1.1 christos 0x0005808c, 0x00058100, 0x00058104, 0x00058108, 0x0005810c, 776 1.1 christos 0x00058110, 0x00058114, 0x00058180, 0x00058184, 0x00058188, 777 1.1 christos 0x0005818c, 0x00058190, 0x00058194, 0x000581a0, 0x0005820c, 778 1.1 christos 0x000581a8, 0x00058284, 0x00058288, 0x00058224, 0x00058290, 779 1.1 christos 0x00058300, 0x00058304, 0x00058308, 0x0005830c, 0x00058380, 780 1.1 christos 0x00058384, 0x00068700, 0x00068704, 0x00068708, 0x0006870c, 781 1.1 christos 0x00068780, 0x00068784, 0x00078b00, 0x00078b04, 0x00078b08, 782 1.1 christos 0x00078b0c, 0x00078b80, 0x00078b84, 0x00078b88, 0x00078b8c, 783 1.1 christos 0x00078b90, 0x000caf80, 0x000caf84, 0x000caf88, 0x000caf8c, 784 1.1 christos 0x000caf90, 0x000db30c, 0x000db310, 0x000db384, 0x000db388, 785 1.1 christos 0x000db324, 0x000eb704, 0x000eb6a4, 0x000eb6a8, 0x000eb710, 786 1.1 christos 0x000eb714, 0x000eb720, 0x000eb724, 0x000eb728, 0x000eb72c, 787 1.1 christos 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 0x000eb7b4, 788 1.1 christos 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 0x000eb7b1, 789 1.1 christos 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 0x000eb7d1, 790 1.1 christos 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 0x000eb7ce, 791 1.1 christos 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 0x000eb7cb, 792 1.1 christos 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 0x000eb7db, 0x000eb7db, 793 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 794 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 795 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 796 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 797 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 798 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 799 1.1 christos 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 800 1.1 christos 0x000eb7db, 0x00000004, 0x0001f000, 0x0001f000, 0x1883800a, 801 1.1 christos 0x00000108, 0x0004a000, 0x7999aa0e 802 1.1 christos }; 803 1.1 christos 804 1.1 christos static const uint16_t ar9271_cm_regs[] = { 805 1.1 christos P(0x0000c), P(0x00030), P(0x00034), P(0x00040), P(0x00044), 806 1.1 christos P(0x00048), P(0x0004c), P(0x00050), P(0x00054), P(0x00800), 807 1.1 christos P(0x00804), P(0x00808), P(0x0080c), P(0x00810), P(0x00814), 808 1.1 christos P(0x00818), P(0x0081c), P(0x00820), P(0x00824), P(0x01040), 809 1.1 christos P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054), 810 1.1 christos P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x01230), 811 1.1 christos P(0x01270), P(0x01038), P(0x01078), P(0x010b8), P(0x010f8), 812 1.1 christos P(0x01138), P(0x01178), P(0x011b8), P(0x011f8), P(0x01238), 813 1.1 christos P(0x01278), P(0x012b8), P(0x012f8), P(0x01338), P(0x01378), 814 1.1 christos P(0x013b8), P(0x013f8), P(0x01438), P(0x01478), P(0x014b8), 815 1.1 christos P(0x014f8), P(0x01538), P(0x01578), P(0x015b8), P(0x015f8), 816 1.1 christos P(0x01638), P(0x01678), P(0x016b8), P(0x016f8), P(0x01738), 817 1.1 christos P(0x01778), P(0x017b8), P(0x017f8), P(0x0103c), P(0x0107c), 818 1.1 christos P(0x010bc), P(0x010fc), P(0x0113c), P(0x0117c), P(0x011bc), 819 1.1 christos P(0x011fc), P(0x0123c), P(0x0127c), P(0x012bc), P(0x012fc), 820 1.1 christos P(0x0133c), P(0x0137c), P(0x013bc), P(0x013fc), P(0x0143c), 821 1.1 christos P(0x0147c), P(0x04030), P(0x0403c), P(0x04024), P(0x04060), 822 1.1 christos P(0x04064), P(0x08004), P(0x08008), P(0x0800c), P(0x08018), 823 1.1 christos P(0x08020), P(0x08038), P(0x0803c), P(0x08048), P(0x08054), 824 1.1 christos P(0x08058), P(0x0805c), P(0x08060), P(0x08064), P(0x08070), 825 1.1 christos P(0x080b0), P(0x080b4), P(0x080b8), P(0x080bc), P(0x080c0), 826 1.1 christos P(0x080c4), P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), 827 1.1 christos P(0x080d8), P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), 828 1.1 christos P(0x080f0), P(0x080f4), P(0x080f8), P(0x080fc), P(0x08100), 829 1.1 christos P(0x08104), P(0x08108), P(0x0810c), P(0x08110), P(0x08118), 830 1.1 christos P(0x0811c), P(0x08120), P(0x08124), P(0x08128), P(0x0812c), 831 1.1 christos P(0x08130), P(0x08134), P(0x08138), P(0x0813c), P(0x08144), 832 1.1 christos P(0x08168), P(0x0816c), P(0x08170), P(0x08174), P(0x08178), 833 1.1 christos P(0x0817c), P(0x081c0), P(0x081d0), P(0x081ec), P(0x081f0), 834 1.1 christos P(0x081f4), P(0x081f8), P(0x081fc), P(0x08200), P(0x08204), 835 1.1 christos P(0x08208), P(0x0820c), P(0x08210), P(0x08214), P(0x08218), 836 1.1 christos P(0x0821c), P(0x08220), P(0x08224), P(0x08228), P(0x0822c), 837 1.1 christos P(0x08230), P(0x08234), P(0x08238), P(0x0823c), P(0x08240), 838 1.1 christos P(0x08244), P(0x08248), P(0x0824c), P(0x08250), P(0x08254), 839 1.1 christos P(0x08258), P(0x0825c), P(0x08260), P(0x08264), P(0x08270), 840 1.1 christos P(0x08274), P(0x08278), P(0x0827c), P(0x08284), P(0x08288), 841 1.1 christos P(0x0828c), P(0x08294), P(0x08298), P(0x0829c), P(0x08300), 842 1.1 christos P(0x08314), P(0x08328), P(0x0832c), P(0x08330), P(0x08334), 843 1.1 christos P(0x08338), P(0x0833c), P(0x08340), P(0x08344), P(0x07010), 844 1.1 christos P(0x07034), P(0x07038), P(0x07800), P(0x07804), P(0x07808), 845 1.1 christos P(0x0780c), P(0x07810), P(0x07814), P(0x0781c), P(0x07828), 846 1.1 christos P(0x0782c), P(0x07830), P(0x07834), P(0x0783c), P(0x07840), 847 1.1 christos P(0x07844), P(0x07848), P(0x0784c), P(0x07850), P(0x07854), 848 1.1 christos P(0x07858), P(0x0785c), P(0x07860), P(0x07864), P(0x07868), 849 1.1 christos P(0x07870), P(0x09808), P(0x0980c), P(0x09810), P(0x09814), 850 1.1 christos P(0x0981c), P(0x0982c), P(0x09830), P(0x0983c), P(0x0984c), 851 1.1 christos P(0x09854), P(0x09900), P(0x09904), P(0x09908), P(0x0990c), 852 1.1 christos P(0x0991c), P(0x09920), P(0x09928), P(0x0992c), P(0x09934), 853 1.1 christos P(0x09938), P(0x0993c), P(0x09940), P(0x09948), P(0x0994c), 854 1.1 christos P(0x09954), P(0x09958), P(0x09968), P(0x09970), P(0x09974), 855 1.1 christos P(0x09978), P(0x0997c), P(0x09980), P(0x09984), P(0x09988), 856 1.1 christos P(0x0998c), P(0x09990), P(0x09994), P(0x09998), P(0x0999c), 857 1.1 christos P(0x099a0), P(0x099a4), P(0x099a8), P(0x099ac), P(0x099b0), 858 1.1 christos P(0x099b4), P(0x099dc), P(0x099e0), P(0x099e4), P(0x099e8), 859 1.1 christos P(0x099ec), P(0x099f0), P(0x0a208), P(0x0a210), P(0x0a214), 860 1.1 christos P(0x0a218), P(0x0a220), P(0x0a224), P(0x0a228), P(0x0a22c), 861 1.1 christos P(0x0a234), P(0x0a238), P(0x0a244), P(0x0a248), P(0x0a24c), 862 1.1 christos P(0x0a254), P(0x0a258), P(0x0a25c), P(0x0a260), P(0x0a268), 863 1.1 christos P(0x0a26c), P(0x0a388), P(0x0a38c), P(0x0a390), P(0x0a39c), 864 1.1 christos P(0x0a3a0), P(0x0a3a4), P(0x0a3a8), P(0x0a3ac), P(0x0a3b0), 865 1.1 christos P(0x0a3b4), P(0x0a3b8), P(0x0a3bc), P(0x0a3c0), P(0x0a3c4), 866 1.1 christos P(0x0a3cc), P(0x0a3d0), P(0x0a3d4), P(0x0a3e4), P(0x0a3e8), 867 1.1 christos P(0x0a3ec), P(0x0a3f0), P(0x0a3f4), P(0x0d270), P(0x0d35c), 868 1.1 christos P(0x0d360), P(0x0d364), P(0x0d368), P(0x0d36c), P(0x0d370), 869 1.1 christos P(0x0d374), P(0x0d378), P(0x0d37c), P(0x0d380), P(0x0d384) 870 1.1 christos }; 871 1.1 christos 872 1.1 christos static const uint32_t ar9271_cm_vals[] = { 873 1.1 christos 0x00000000, 0x00020045, 0x00000005, 0x00000000, 0x00000008, 874 1.1 christos 0x00000008, 0x00000010, 0x00000000, 0x0000001f, 0x00000000, 875 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 876 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002ffc0f, 877 1.1 christos 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 878 1.1 christos 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000000, 879 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 880 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 881 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 882 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 883 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 884 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 885 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 886 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 887 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 888 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 889 1.1 christos 0x00000000, 0x00000002, 0x00000002, 0x0000001f, 0x00000000, 890 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000700, 891 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 892 1.1 christos 0x00000000, 0x000fc78f, 0x0000000f, 0x00000000, 0x00000000, 893 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2a80001a, 894 1.1 christos 0x05dc01e0, 0x1f402710, 0x01f40000, 0x00001e00, 0x00000000, 895 1.1 christos 0x00400000, 0xffffffff, 0x0000ffff, 0x003f3f3f, 0x00000000, 896 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00020000, 0x00020000, 897 1.1 christos 0x00000001, 0x00000052, 0x00000000, 0x00000168, 0x000100aa, 898 1.1 christos 0x00003210, 0x08f04810, 0x00000000, 0x00000000, 0x00000000, 899 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 900 1.1 christos 0x00000000, 0x00000000, 0x32143320, 0xfaa4fa50, 0x00000100, 901 1.1 christos 0x00000000, 0x00000000, 0x0000320a, 0x00000000, 0x00000000, 902 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 903 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 904 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 905 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 906 1.1 christos 0x0010f400, 0x00000100, 0x0001e800, 0x00000000, 0x00000000, 907 1.1 christos 0x00000000, 0x400000ff, 0x00080922, 0x88a00010, 0x00000000, 908 1.1 christos 0x40000000, 0x003e4180, 0x00000000, 0x0000002c, 0x0000002c, 909 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 910 1.1 christos 0x00000000, 0x00000000, 0x00000001, 0x00000302, 0x00000e00, 911 1.1 christos 0x00ff0000, 0x00000000, 0x00010380, 0x00581043, 0x00000030, 912 1.1 christos 0x00000002, 0x000004c2, 0x00140000, 0x0e4548d8, 0x54214514, 913 1.1 christos 0x02025820, 0x71c0d388, 0x924934a8, 0x00000000, 0x66964300, 914 1.1 christos 0x8db6d961, 0x8db6d96c, 0x6140008b, 0x72ee0a72, 0xbbfffffc, 915 1.1 christos 0x000c0db6, 0x6db6246f, 0x6d9b66db, 0x6d8c6dba, 0x00040000, 916 1.1 christos 0xdb003012, 0x04924914, 0x21084210, 0xf7d7ffde, 0xc2034080, 917 1.1 christos 0x10142c00, 0x00000000, 0xafe68e30, 0xfd14e000, 0x9c0a9f6b, 918 1.1 christos 0x00000000, 0x0000a000, 0x00000000, 0x00200400, 0x0040233c, 919 1.1 christos 0x00000044, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 920 1.1 christos 0x10000fff, 0x04900000, 0x00000001, 0x00000004, 0x1e1f2022, 921 1.1 christos 0x0a0b0c0d, 0x00000000, 0x14750604, 0x9280c00a, 0x00020028, 922 1.1 christos 0x5f3ca3de, 0x0108ecff, 0x000003ce, 0x192bb514, 0x00000000, 923 1.1 christos 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 924 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 925 1.1 christos 0x00000000, 0x00000001, 0x201fff00, 0x2def0400, 0x03051000, 926 1.1 christos 0x00000820, 0x00000000, 0x00000000, 0xaaaaaaaa, 0x3c466478, 927 1.1 christos 0x0cc80caa, 0x00000000, 0x803e68c8, 0x4080a333, 0x00206c10, 928 1.1 christos 0x009c4060, 0x01834061, 0x00000400, 0x000003b5, 0x00000000, 929 1.1 christos 0x20202020, 0x20202020, 0x00000000, 0xfffffffc, 0x00000000, 930 1.1 christos 0x00000000, 0x0ccb5380, 0x15151501, 0xdfa90f01, 0x00000000, 931 1.1 christos 0x0ebae9e6, 0x0c000000, 0x20202020, 0x20202020, 0x00000001, 932 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 933 1.1 christos 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 934 1.1 christos 0x20202020, 0x20202020, 0x20202020, 0x00000000, 0x18c43433, 935 1.1 christos 0x00f70081, 0x01036a2f, 0x00000000, 0x0d820820, 0x07ffffef, 936 1.1 christos 0x0fffffe7, 0x17ffffe5, 0x1fffffe4, 0x37ffffe3, 0x3fffffe3, 937 1.1 christos 0x57ffffe3, 0x5fffffe2, 0x7fffffe2, 0x7f3c7bba, 0xf3307ff0 938 1.1 christos }; 939 1.1 christos 940 1.1 christos static const struct athn_ini ar9271_ini = { 941 1.1 christos .nregs = __arraycount(ar9271_regs), 942 1.1 christos .regs = ar9271_regs, 943 1.1 christos .vals_5g20 = NULL, /* 2GHz only. */ 944 1.1 christos #ifndef IEEE80211_NO_HT 945 1.1 christos .vals_5g40 = NULL, /* 2GHz only. */ 946 1.1 christos .vals_2g40 = ar9271_vals_2g40, 947 1.1 christos #endif 948 1.1 christos .vals_2g20 = ar9271_vals_2g20, 949 1.1 christos .ncmregs = __arraycount(ar9271_cm_regs), 950 1.1 christos .cmregs = ar9271_cm_regs, 951 1.1 christos .cmvals = ar9271_cm_vals, 952 1.1 christos }; 953 1.1 christos #endif /* NATHN_USB */ 954 1.1 christos 955 1.1 christos /* 956 1.1 christos * AR9285 1.2 Tx gains. 957 1.1 christos */ 958 1.1 christos static const uint16_t ar9285_1_2_tx_gain_regs[] = { 959 1.1 christos P(0x0a300), P(0x0a304), P(0x0a308), P(0x0a30c), P(0x0a310), 960 1.1 christos P(0x0a314), P(0x0a318), P(0x0a31c), P(0x0a320), P(0x0a324), 961 1.1 christos P(0x0a328), P(0x0a32c), P(0x0a330), P(0x0a334), P(0x0a338), 962 1.1 christos P(0x0a33c), P(0x0a340), P(0x0a344), P(0x0a348), P(0x0a34c), 963 1.1 christos P(0x0a350), P(0x0a354), P(0x07814), P(0x07828), P(0x07830), 964 1.1 christos P(0x07838), P(0x0783c), P(0x07840), P(0x0786c), P(0x07820), 965 1.1 christos P(0x0a274), P(0x0a278), P(0x0a27c), P(0x0a394), P(0x0a398), 966 1.1 christos P(0x0a3dc), P(0x0a3e0) 967 1.1 christos }; 968 1.1 christos 969 1.1 christos static const uint32_t ar9285_1_2_tx_gain_vals_2g[] = { 970 1.1 christos 0x00000000, 0x00009200, 0x00010208, 0x00019608, 0x00022618, 971 1.1 christos 0x0002a6c9, 0x00031710, 0x00035718, 0x00038758, 0x0003c75a, 972 1.1 christos 0x0004075c, 0x0004475e, 0x0004679f, 0x000487df, 0x0003891e, 973 1.1 christos 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 974 1.1 christos 0x0003e9df, 0x0003e9df, 0x924934a8, 0x26d2491b, 0xedb6d96e, 975 1.1 christos 0xfac68801, 0x0001fffe, 0xffeb1a20, 0x48609eb4, 0x00000c04, 976 1.1 christos 0x0a21a652, 0x39ce739c, 0x050e039c, 0x39ce739c, 0x0000039c, 977 1.1 christos 0x39ce739c, 0x0000039c 978 1.1 christos }; 979 1.1 christos 980 1.1 christos static const struct athn_gain ar9285_1_2_tx_gain = { 981 1.1 christos __arraycount(ar9285_1_2_tx_gain_regs), 982 1.1 christos ar9285_1_2_tx_gain_regs, 983 1.1 christos NULL, /* 2GHz only. */ 984 1.1 christos ar9285_1_2_tx_gain_vals_2g 985 1.1 christos }; 986 1.1 christos 987 1.1 christos static const uint32_t ar9285_1_2_tx_gain_high_power_vals_2g[] = { 988 1.1 christos 0x00000000, 0x00006200, 0x00008201, 0x0000b240, 0x0000d241, 989 1.1 christos 0x0000f600, 0x00012800, 0x00016802, 0x0001b805, 0x00021a80, 990 1.1 christos 0x00028b00, 0x0002ab40, 0x0002cd80, 0x00033d82, 0x0003891e, 991 1.1 christos 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 992 1.1 christos 0x0003e9df, 0x0003e9df, 0x924934a8, 0x26d2491b, 0xedb6d96e, 993 1.1 christos 0xfac68803, 0x0001fffe, 0xffeb1a20, 0x08609ebe, 0x00000c00, 994 1.1 christos 0x0a216652, 0x0e739ce7, 0x050380e7, 0x0e739ce7, 0x000000e7, 995 1.1 christos 0x0e739ce7, 0x000000e7 996 1.1 christos }; 997 1.1 christos 998 1.1 christos static const struct athn_gain ar9285_1_2_tx_gain_high_power = { 999 1.1 christos __arraycount(ar9285_1_2_tx_gain_regs), 1000 1.1 christos ar9285_1_2_tx_gain_regs, 1001 1.1 christos NULL, /* 2GHz only. */ 1002 1.1 christos ar9285_1_2_tx_gain_high_power_vals_2g 1003 1.1 christos }; 1004 1.1 christos 1005 1.1 christos /* 1006 1.1 christos * AR9285 XE 2.0 Tx gains. 1007 1.1 christos */ 1008 1.1 christos static const uint32_t ar9285_2_0_tx_gain_vals_2g[] = { 1009 1.1 christos 0x00000000, 0x00009200, 0x00010208, 0x00019608, 0x00022618, 1010 1.1 christos 0x0002a6c9, 0x00031710, 0x00035718, 0x00038758, 0x0003c75a, 1011 1.1 christos 0x0004075c, 0x0004475e, 0x0004679f, 0x000487df, 0x0003891e, 1012 1.1 christos 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 1013 1.1 christos 0x0003e9df, 0x0003e9df, 0x92497ca8, 0x2ad2491b, 0xedb6da6e, 1014 1.1 christos 0xdac71441, 0x2481f6fe, 0xba5f638c, 0x48609eb4, 0x00000c04, 1015 1.1 christos 0x0a21a652, 0x39ce739c, 0x050e039c, 0x39ce739c, 0x0000039c, 1016 1.1 christos 0x39ce739c, 0x0000039c 1017 1.1 christos }; 1018 1.1 christos 1019 1.1 christos static const struct athn_gain ar9285_2_0_tx_gain = { 1020 1.1 christos __arraycount(ar9285_1_2_tx_gain_regs), 1021 1.1 christos ar9285_1_2_tx_gain_regs, 1022 1.1 christos NULL, /* 2GHz only. */ 1023 1.1 christos ar9285_2_0_tx_gain_vals_2g 1024 1.1 christos }; 1025 1.1 christos 1026 1.1 christos static const uint32_t ar9285_2_0_tx_gain_high_power_vals_2g[] = { 1027 1.1 christos 0x00000000, 0x00006200, 0x00008201, 0x0000b240, 0x0000d241, 1028 1.1 christos 0x0000f600, 0x00012800, 0x00016802, 0x0001b805, 0x00021a80, 1029 1.1 christos 0x00028b00, 0x0002ab40, 0x0002cd80, 0x00033d82, 0x0003891e, 1030 1.1 christos 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 1031 1.1 christos 0x0003e9df, 0x0003e9df, 0x92497ca8, 0x2ad2491b, 0xedb6da6e, 1032 1.1 christos 0xdac71443, 0x2481f6fe, 0xba5f638c, 0x08609ebe, 0x00000c00, 1033 1.1 christos 0x0a216652, 0x0e739ce7, 0x050380e7, 0x0e739ce7, 0x000000e7, 1034 1.1 christos 0x0e739ce7, 0x000000e7 1035 1.1 christos }; 1036 1.1 christos 1037 1.1 christos static const struct athn_gain ar9285_2_0_tx_gain_high_power = { 1038 1.1 christos __arraycount(ar9285_1_2_tx_gain_regs), 1039 1.1 christos ar9285_1_2_tx_gain_regs, 1040 1.1 christos NULL, /* 2GHz only. */ 1041 1.1 christos ar9285_2_0_tx_gain_high_power_vals_2g 1042 1.1 christos }; 1043 1.1 christos 1044 1.1 christos #if NATHN_USB > 0 1045 1.1 christos /* 1046 1.1 christos * AR9271 Tx gains. 1047 1.1 christos */ 1048 1.1 christos static const uint16_t ar9271_tx_gain_regs[] = { 1049 1.1 christos P(0x0a300), P(0x0a304), P(0x0a308), P(0x0a30c), P(0x0a310), 1050 1.1 christos P(0x0a314), P(0x0a318), P(0x0a31c), P(0x0a320), P(0x0a324), 1051 1.1 christos P(0x0a328), P(0x0a32c), P(0x0a330), P(0x0a334), P(0x0a338), 1052 1.1 christos P(0x0a33c), P(0x0a340), P(0x0a344), P(0x0a348), P(0x0a34c), 1053 1.1 christos P(0x0a350), P(0x0a354), P(0x07838), P(0x07824), P(0x0786c), 1054 1.1 christos P(0x07820), P(0x0a274), P(0x0a278), P(0x0a27c), P(0x0a394), 1055 1.1 christos P(0x0a398), P(0x0a3dc), P(0x0a3e0) 1056 1.1 christos }; 1057 1.1 christos 1058 1.1 christos static const uint32_t ar9271_tx_gain_vals_2g[] = { 1059 1.1 christos 0x00000000, 0x00009200, 0x00010208, 0x00019608, 0x0001e610, 1060 1.1 christos 0x0002d6d0, 0x00039758, 0x0003b759, 0x0003d75a, 0x0004175c, 1061 1.1 christos 0x0004575e, 0x0004979f, 0x0004d7df, 0x000368de, 0x0003891e, 1062 1.1 christos 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 1063 1.1 christos 0x0003e9df, 0x0003e9df, 0x00000029, 0x00d8abff, 0x48609eb4, 1064 1.1 christos 0x00000c04, 0x0a218652, 0x3bdef7bd, 0x050e83bd, 0x3bdef7bd, 1065 1.1 christos 0x000003bd, 0x3bdef7bd, 0x000003bd 1066 1.1 christos }; 1067 1.1 christos 1068 1.1 christos static const struct athn_gain ar9271_tx_gain = { 1069 1.1 christos __arraycount(ar9271_tx_gain_regs), 1070 1.1 christos ar9271_tx_gain_regs, 1071 1.1 christos NULL, /* 2GHz only. */ 1072 1.1 christos ar9271_tx_gain_vals_2g 1073 1.1 christos }; 1074 1.1 christos 1075 1.1 christos static const uint32_t ar9271_tx_gain_high_power_vals_2g[] = { 1076 1.1 christos 0x00010000, 0x00016200, 0x00018201, 0x0001b240, 0x0001d241, 1077 1.1 christos 0x0001f600, 0x00022800, 0x00026802, 0x0002b805, 0x0002ea41, 1078 1.1 christos 0x00038b00, 0x0003ab40, 0x0003cd80, 0x000368de, 0x0003891e, 1079 1.1 christos 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 1080 1.1 christos 0x0003e9df, 0x0003e9df, 0x0000002b, 0x00d8a7ff, 0x08609eba, 1081 1.1 christos 0x00000c00, 0x0a214652, 0x0e739ce7, 0x05018063, 0x06318c63, 1082 1.1 christos 0x00000063, 0x06318c63, 0x00000063 1083 1.1 christos }; 1084 1.1 christos 1085 1.1 christos static const struct athn_gain ar9271_tx_gain_high_power = { 1086 1.1 christos __arraycount(ar9271_tx_gain_regs), 1087 1.1 christos ar9271_tx_gain_regs, 1088 1.1 christos NULL, /* 2GHz only. */ 1089 1.1 christos ar9271_tx_gain_high_power_vals_2g 1090 1.1 christos }; 1091 1.1 christos #endif /* NATHN_USB */ 1092 1.1 christos 1093 1.1 christos #endif /* _ARN9285REG_H_ */ 1094