1227569Sphilip/* $NetBSD:$ */ 2227569Sphilip/* $OpenBSD: ar9285reg.h,v 1.7 2011/01/06 07:27:15 damien Exp $ */ 3227569Sphilip 4227569Sphilip/*- 5227569Sphilip * Copyright (c) 2009 Damien Bergamini <damien.bergamini@free.fr> 6227569Sphilip * Copyright (c) 2008-2009 Atheros Communications Inc. 7227569Sphilip * 8227569Sphilip * Permission to use, copy, modify, and/or distribute this software for any 9227569Sphilip * purpose with or without fee is hereby granted, provided that the above 10227569Sphilip * copyright notice and this permission notice appear in all copies. 11227569Sphilip * 12227569Sphilip * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 13227569Sphilip * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 14227569Sphilip * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 15227569Sphilip * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 16227569Sphilip * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 17227569Sphilip * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 18227569Sphilip * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 19227569Sphilip */ 20227569Sphilip 21227569Sphilip#ifndef _ARN9285REG_H_ 22227569Sphilip#define _ARN9285REG_H_ 23227569Sphilip 24227569Sphilip#define AR9285_MAX_CHAINS 1 25227569Sphilip 26227569Sphilip#define AR9285_PHY_CCA_MAX_GOOD_VALUE (-118) 27227569Sphilip 28227569Sphilip#define AR9285_CL_CAL_REDO_THRESH 1 29227569Sphilip 30227569Sphilip/* 31227569Sphilip * Analog registers. 32227569Sphilip */ 33227569Sphilip#define AR9285_AN_RF2G1 0x7820 34227569Sphilip#define AR9285_AN_RF2G2 0x7824 35227569Sphilip#define AR9285_AN_RF2G3 0x7828 36227569Sphilip#define AR9285_AN_RF2G4 0x782c 37227569Sphilip#define AR9285_AN_RF2G5 0x7830 38227569Sphilip#define AR9285_AN_RF2G6 0x7834 39227569Sphilip#define AR9285_AN_RF2G7 0x7838 40227569Sphilip#define AR9285_AN_RF2G8 0x783c 41227569Sphilip#define AR9285_AN_RF2G9 0x7840 42227569Sphilip#define AR9285_AN_RXTXBB1 0x7854 43227569Sphilip#define AR9285_AN_TOP2 0x7868 44227569Sphilip#define AR9285_AN_TOP3 0x786c 45280502Sarybchik#define AR9285_AN_TOP4 0x7870 46227569Sphilip 47227569Sphilip/* Bits for AR9285_AN_RF2G1. */ 48227569Sphilip#define AR9285_AN_RF2G1_ENPACAL 0x00000800 49227569Sphilip#define AR9285_AN_RF2G1_PDPAOUT 0x00800000 50227569Sphilip#define AR9285_AN_RF2G1_PDPADRV2 0x01000000 51227569Sphilip#define AR9285_AN_RF2G1_PDPADRV1 0x02000000 52227569Sphilip 53227569Sphilip/* Bits for AR9285_AN_RF2G2. */ 54227569Sphilip#define AR9285_AN_RF2G2_OFFCAL 0x00001000 55227569Sphilip 56227569Sphilip/* Bits for AR9285_AN_RF2G3. */ 57227569Sphilip#define AR9285_AN_RF2G3_DB1_2_M 0x00000007 58227569Sphilip#define AR9285_AN_RF2G3_DB1_2_S 0 59227569Sphilip#define AR9285_AN_RF2G3_DB1_1_M 0x00000038 60280501Sarybchik#define AR9285_AN_RF2G3_DB1_1_S 3 61227569Sphilip#define AR9285_AN_RF2G3_DB1_0_M 0x000001c0 62227569Sphilip#define AR9285_AN_RF2G3_DB1_0_S 6 63227569Sphilip#define AR9285_AN_RF2G3_OB_4_M 0x00000e00 64280501Sarybchik#define AR9285_AN_RF2G3_OB_4_S 9 65280501Sarybchik#define AR9285_AN_RF2G3_OB_3_M 0x00007000 66227569Sphilip#define AR9285_AN_RF2G3_OB_3_S 12 67227569Sphilip#define AR9285_AN_RF2G3_OB_2_M 0x00038000 68227569Sphilip#define AR9285_AN_RF2G3_OB_2_S 15 69227569Sphilip#define AR9285_AN_RF2G3_OB_1_M 0x001c0000 70280502Sarybchik#define AR9285_AN_RF2G3_OB_1_S 18 71280502Sarybchik#define AR9285_AN_RF2G3_OB_0_M 0x00e00000 72280502Sarybchik#define AR9285_AN_RF2G3_OB_0_S 21 73280502Sarybchik#define AR9285_AN_RF2G3_PDVCCOMP 0x02000000 74280502Sarybchik#define AR9271_AN_RF2G3_CCOMP_M 0x00000fff 75280502Sarybchik#define AR9271_AN_RF2G3_CCOMP_S 0 76280502Sarybchik#define AR9271_AN_RF2G3_OB_QAM_M 0x00007000 77280502Sarybchik#define AR9271_AN_RF2G3_OB_QAM_S 12 78280502Sarybchik#define AR9271_AN_RF2G3_OB_PSK_M 0x00038000 79280502Sarybchik#define AR9271_AN_RF2G3_OB_PSK_S 15 80280502Sarybchik#define AR9271_AN_RF2G3_OB_CCK_M 0x001c0000 81280502Sarybchik#define AR9271_AN_RF2G3_OB_CCK_S 18 82280502Sarybchik#define AR9271_AN_RF2G3_DB1_M 0x00e00000 83280502Sarybchik#define AR9271_AN_RF2G3_DB1_S 21 84280502Sarybchik 85280502Sarybchik/* Bits for AR9285_AN_RF2G4. */ 86280502Sarybchik#define AR9285_AN_RF2G4_DB2_4_M 0x00003800 87280502Sarybchik#define AR9285_AN_RF2G4_DB2_4_S 11 88280502Sarybchik#define AR9285_AN_RF2G4_DB2_3_M 0x0001c000 89227569Sphilip#define AR9285_AN_RF2G4_DB2_3_S 14 90227569Sphilip#define AR9285_AN_RF2G4_DB2_2_M 0x000e0000 91227569Sphilip#define AR9285_AN_RF2G4_DB2_2_S 17 92227569Sphilip#define AR9285_AN_RF2G4_DB2_1_M 0x00700000 93227569Sphilip#define AR9285_AN_RF2G4_DB2_1_S 20 94227569Sphilip#define AR9285_AN_RF2G4_DB2_0_M 0x03800000 95227569Sphilip#define AR9285_AN_RF2G4_DB2_0_S 23 96227569Sphilip#define AR9285_AN_RF2G4_DB1_4_M 0x1c000000 97227569Sphilip#define AR9285_AN_RF2G4_DB1_4_S 26 98227569Sphilip#define AR9285_AN_RF2G4_DB1_3_M 0xe0000000 99227569Sphilip#define AR9285_AN_RF2G4_DB1_3_S 29 100280501Sarybchik#define AR9271_AN_RF2G4_DB2_M 0xe0000000 101227569Sphilip#define AR9271_AN_RF2G4_DB2_S 29 102227569Sphilip 103227569Sphilip/* Bits for AR9285_AN_RF2G5. */ 104227569Sphilip#define AR9285_AN_RF2G5_IC50TX_M 0x00000700 105227569Sphilip#define AR9285_AN_RF2G5_IC50TX_S 8 106227569Sphilip 107227569Sphilip/* Bits for AR9285_AN_RF2G6. */ 108227569Sphilip#define AR9285_AN_RF2G6_CCOMP_M 0x00007800 109227569Sphilip#define AR9285_AN_RF2G6_CCOMP_S 11 110227569Sphilip#define AR9285_AN_RF2G6_OFFS_6_1 0x03f00000 111227569Sphilip#define AR9285_AN_RF2G6_OFFS(i) (1 << (19 + (i))) 112227569Sphilip#define AR9271_AN_RF2G6_OFFS_6_0 0x07f00000 113227569Sphilip#define AR9271_AN_RF2G6_OFFS(i) (1 << (20 + (i))) 114227569Sphilip 115227569Sphilip/* Bits for AR9285_AN_RF2G7. */ 116227569Sphilip#define AR9285_AN_RF2G7_PWDDB 0x00000002 117227569Sphilip#define AR9285_AN_RF2G7_PADRVGN2TAB0_M 0xe0000000 118227569Sphilip#define AR9285_AN_RF2G7_PADRVGN2TAB0_S 29 119227569Sphilip 120227569Sphilip/* Bits for AR9285_AN_RF2G8. */ 121227569Sphilip#define AR9285_AN_RF2G8_PADRVGN2TAB0_M 0x0001c000 122227569Sphilip#define AR9285_AN_RF2G8_PADRVGN2TAB0_S 14 123227569Sphilip 124227569Sphilip/* Bits for AR9285_AN_RXTXBB1. */ 125227569Sphilip#define AR9285_AN_RXTXBB1_SPARE9 0x00000001 126227569Sphilip#define AR9285_AN_RXTXBB1_PDRXTXBB1 0x00000020 127227569Sphilip#define AR9285_AN_RXTXBB1_PDV2I 0x00000080 128227569Sphilip#define AR9285_AN_RXTXBB1_PDDACIF 0x00000100 129227569Sphilip 130227569Sphilip/* Bits for AR9285_AN_TOP2. */ 131227569Sphilip#define AR9285_AN_TOP2_DEFAULT 0xca0358a0 /* XXX magic */ 132227569Sphilip 133227569Sphilip/* Bits for AR9285_AN_TOP3. */ 134227569Sphilip#define AR9285_AN_TOP3_XPABIAS_LVL_M 0x0000000c 135227569Sphilip#define AR9285_AN_TOP3_XPABIAS_LVL_S 2 136227569Sphilip#define AR9285_AN_TOP3_PWDDAC 0x00800000 137227569Sphilip 138227569Sphilip/* Bits for AR9285_AN_TOP4. */ 139227569Sphilip#define AR9285_AN_TOP4_DEFAULT 0x10142c00 /* XXX magic */ 140227569Sphilip#define AR9285_AN_TOP4_UNLOCKED 0x10142c14 /* XXX magic */ 141227569Sphilip 142227569Sphilip/* Bits for AR_PHY_MULTICHAIN_GAIN_CTL. */ 143227569Sphilip#define AR9285_PHY_ANT_DIV_CTL_ALL_M 0x7f000000 144227569Sphilip#define AR9285_PHY_ANT_DIV_CTL_ALL_S 24 145227569Sphilip#define AR9285_PHY_ANT_DIV_CTL_M 0x01000000 146227569Sphilip#define AR9285_PHY_ANT_DIV_CTL_S 24 147227569Sphilip#define AR9285_PHY_ANT_DIV_ALT_LNACONF_M 0x06000000 148227569Sphilip#define AR9285_PHY_ANT_DIV_ALT_LNACONF_S 25 149227569Sphilip#define AR9285_PHY_ANT_DIV_MAIN_LNACONF_M 0x18000000 150227569Sphilip#define AR9285_PHY_ANT_DIV_MAIN_LNACONF_S 27 151227569Sphilip#define AR9285_PHY_ANT_DIV_ALT_GAINTB_M 0x20000000 152227569Sphilip#define AR9285_PHY_ANT_DIV_ALT_GAINTB_S 29 153227569Sphilip#define AR9285_PHY_ANT_DIV_MAIN_GAINTB_M 0x40000000 154227569Sphilip#define AR9285_PHY_ANT_DIV_MAIN_GAINTB_S 30 155227569Sphilip 156227569Sphilip/* 157227569Sphilip * ROM layout used by AR9285 (single-stream, 2GHz only). 158227569Sphilip */ 159227569Sphilip#define AR9285_EEP_START_LOC 64 160227569Sphilip#define AR9285_NUM_2G_CAL_PIERS 3 161227569Sphilip#define AR9285_NUM_2G_CCK_TARGET_POWERS 3 162227569Sphilip#define AR9285_NUM_2G_20_TARGET_POWERS 3 163227569Sphilip#define AR9285_NUM_2G_40_TARGET_POWERS 3 164227569Sphilip#define AR9285_NUM_CTLS 12 165227569Sphilip#define AR9285_NUM_BAND_EDGES 4 166227569Sphilip#define AR9285_NUM_PD_GAINS 2 167227569Sphilip#define AR9285_PD_GAINS_IN_MASK 4 168227569Sphilip#define AR9285_PD_GAIN_ICEPTS 5 169227569Sphilip 170227569Sphilipstruct ar9285_base_eep_header { 171227569Sphilip uint16_t length; 172227569Sphilip uint16_t checksum; 173227569Sphilip uint16_t version; 174227569Sphilip uint8_t opCapFlags; 175227569Sphilip uint8_t eepMisc; 176227569Sphilip uint16_t regDmn[2]; 177227569Sphilip uint8_t macAddr[6]; 178227569Sphilip uint8_t rxMask; 179227569Sphilip uint8_t txMask; 180227569Sphilip uint16_t rfSilent; 181227569Sphilip uint16_t blueToothOptions; 182227569Sphilip uint16_t deviceCap; 183227569Sphilip uint32_t binBuildNumber; 184227569Sphilip uint8_t deviceType; 185227569Sphilip /* End of common header. */ 186227569Sphilip uint8_t txGainType; 187227569Sphilip} __packed; 188227569Sphilip 189227569Sphilipstruct ar9285_modal_eep_header { 190227569Sphilip uint32_t antCtrlChain; 191227569Sphilip uint32_t antCtrlCommon; 192227569Sphilip uint8_t antennaGain; 193227569Sphilip uint8_t switchSettling; 194227569Sphilip uint8_t txRxAtten; 195227569Sphilip uint8_t rxTxMargin; 196227569Sphilip uint8_t adcDesiredSize; 197227569Sphilip uint8_t pgaDesiredSize; 198227569Sphilip uint8_t xlnaGain; 199227569Sphilip uint8_t txEndToXpaOff; 200227569Sphilip uint8_t txEndToRxOn; 201227569Sphilip uint8_t txFrameToXpaOn; 202227569Sphilip uint8_t thresh62; 203227569Sphilip uint8_t noiseFloorThresh; 204227569Sphilip uint8_t xpdGain; 205227569Sphilip uint8_t xpd; 206227569Sphilip uint8_t iqCalI; 207227569Sphilip uint8_t iqCalQ; 208227569Sphilip uint8_t pdGainOverlap; 209227569Sphilip uint8_t ob_01; 210227569Sphilip uint8_t db1_01; 211227569Sphilip uint8_t xpaBiasLvl; 212227569Sphilip uint8_t txFrameToDataStart; 213227569Sphilip uint8_t txFrameToPaOn; 214227569Sphilip uint8_t ht40PowerIncForPdadc; 215227569Sphilip uint8_t bswAtten; 216227569Sphilip uint8_t bswMargin; 217227569Sphilip uint8_t swSettleHt40; 218227569Sphilip uint8_t xatten2Db; 219227569Sphilip uint8_t xatten2Margin; 220227569Sphilip uint8_t db2_01; 221227569Sphilip uint8_t version; 222227569Sphilip uint16_t ob_234; 223227569Sphilip uint16_t db1_234; 224227569Sphilip uint16_t db2_234; 225227569Sphilip uint8_t futureModal[4]; 226227569Sphilip struct ar_spur_chan spurChans[AR_EEPROM_MODAL_SPURS]; 227227569Sphilip} __packed; 228227569Sphilip 229227569Sphilipstruct ar9285_cal_data_per_freq { 230227569Sphilip uint8_t pwrPdg[AR9285_NUM_PD_GAINS][AR9285_PD_GAIN_ICEPTS]; 231227569Sphilip uint8_t vpdPdg[AR9285_NUM_PD_GAINS][AR9285_PD_GAIN_ICEPTS]; 232227569Sphilip} __packed; 233227569Sphilip 234227569Sphilipstruct ar9285_cal_ctl_data { 235227569Sphilip struct ar_cal_ctl_edges ctlEdges[AR9285_NUM_BAND_EDGES]; 236227569Sphilip} __packed; 237227569Sphilip 238227569Sphilipstruct ar9285_eeprom { 239227569Sphilip struct ar9285_base_eep_header baseEepHeader; 240227569Sphilip uint8_t custData[20]; 241227569Sphilip struct ar9285_modal_eep_header modalHeader; 242227569Sphilip uint8_t calFreqPier2G[AR9285_NUM_2G_CAL_PIERS]; 243227569Sphilip struct ar9285_cal_data_per_freq 244227569Sphilip calPierData2G[AR9285_NUM_2G_CAL_PIERS]; 245280501Sarybchik struct ar_cal_target_power_leg 246227569Sphilip calTargetPowerCck[AR9285_NUM_2G_CCK_TARGET_POWERS]; 247227569Sphilip struct ar_cal_target_power_leg 248227569Sphilip calTargetPower2G[AR9285_NUM_2G_20_TARGET_POWERS]; 249227569Sphilip struct ar_cal_target_power_ht 250227569Sphilip calTargetPower2GHT20[AR9285_NUM_2G_20_TARGET_POWERS]; 251227569Sphilip struct ar_cal_target_power_ht 252227569Sphilip calTargetPower2GHT40[AR9285_NUM_2G_40_TARGET_POWERS]; 253227569Sphilip uint8_t ctlIndex[AR9285_NUM_CTLS]; 254227569Sphilip struct ar9285_cal_ctl_data ctlData[AR9285_NUM_CTLS]; 255227569Sphilip uint8_t padding; 256227569Sphilip} __packed; 257227569Sphilip 258227569Sphilip/* Macro to "pack" registers to 16-bit to save some .rodata space. */ 259227569Sphilip#define P(x) (x) 260227569Sphilip 261227569Sphilip/* 262227569Sphilip * AR9285 1.2 initialization values. 263227569Sphilip */ 264227569Sphilipstatic const uint16_t ar9285_1_2_regs[] = { 265227569Sphilip P(0x01030), P(0x01070), P(0x010b0), P(0x010f0), P(0x08014), 266227569Sphilip P(0x0801c), P(0x08318), P(0x09804), P(0x09820), P(0x09824), 267227569Sphilip P(0x09828), P(0x09834), P(0x09838), P(0x09840), P(0x09844), 268227569Sphilip P(0x09848), P(0x0a848), P(0x09850), P(0x09858), P(0x0985c), 269227569Sphilip P(0x09860), P(0x09864), P(0x09868), P(0x0986c), P(0x09914), 270227569Sphilip P(0x09918), P(0x09924), P(0x09944), P(0x09960), P(0x09964), 271227569Sphilip P(0x099b8), P(0x099bc), P(0x099c0), P(0x099c4), P(0x099c8), 272227569Sphilip P(0x099cc), P(0x099d0), P(0x099d4), P(0x099d8), P(0x09a00), 273227569Sphilip P(0x09a04), P(0x09a08), P(0x09a0c), P(0x09a10), P(0x09a14), 274227569Sphilip P(0x09a18), P(0x09a1c), P(0x09a20), P(0x09a24), P(0x09a28), 275227569Sphilip P(0x09a2c), P(0x09a30), P(0x09a34), P(0x09a38), P(0x09a3c), 276227569Sphilip P(0x09a40), P(0x09a44), P(0x09a48), P(0x09a4c), P(0x09a50), 277227569Sphilip P(0x09a54), P(0x09a58), P(0x09a5c), P(0x09a60), P(0x09a64), 278227569Sphilip P(0x09a68), P(0x09a6c), P(0x09a70), P(0x09a74), P(0x09a78), 279227569Sphilip P(0x09a7c), P(0x09a80), P(0x09a84), P(0x09a88), P(0x09a8c), 280227569Sphilip P(0x09a90), P(0x09a94), P(0x09a98), P(0x09a9c), P(0x09aa0), 281227569Sphilip P(0x09aa4), P(0x09aa8), P(0x09aac), P(0x09ab0), P(0x09ab4), 282227569Sphilip P(0x09ab8), P(0x09abc), P(0x09ac0), P(0x09ac4), P(0x09ac8), 283227569Sphilip P(0x09acc), P(0x09ad0), P(0x09ad4), P(0x09ad8), P(0x09adc), 284227569Sphilip P(0x09ae0), P(0x09ae4), P(0x09ae8), P(0x09aec), P(0x09af0), 285227569Sphilip P(0x09af4), P(0x09af8), P(0x09afc), P(0x09b00), P(0x09b04), 286227569Sphilip P(0x09b08), P(0x09b0c), P(0x09b10), P(0x09b14), P(0x09b18), 287227569Sphilip P(0x09b1c), P(0x09b20), P(0x09b24), P(0x09b28), P(0x09b2c), 288227569Sphilip P(0x09b30), P(0x09b34), P(0x09b38), P(0x09b3c), P(0x09b40), 289227569Sphilip P(0x09b44), P(0x09b48), P(0x09b4c), P(0x09b50), P(0x09b54), 290227569Sphilip P(0x09b58), P(0x09b5c), P(0x09b60), P(0x09b64), P(0x09b68), 291227569Sphilip P(0x09b6c), P(0x09b70), P(0x09b74), P(0x09b78), P(0x09b7c), 292227569Sphilip P(0x09b80), P(0x09b84), P(0x09b88), P(0x09b8c), P(0x09b90), 293227569Sphilip P(0x09b94), P(0x09b98), P(0x09b9c), P(0x09ba0), P(0x09ba4), 294227569Sphilip P(0x09ba8), P(0x09bac), P(0x09bb0), P(0x09bb4), P(0x09bb8), 295227569Sphilip P(0x09bbc), P(0x09bc0), P(0x09bc4), P(0x09bc8), P(0x09bcc), 296227569Sphilip P(0x09bd0), P(0x09bd4), P(0x09bd8), P(0x09bdc), P(0x09be0), 297227569Sphilip P(0x09be4), P(0x09be8), P(0x09bec), P(0x09bf0), P(0x09bf4), 298227569Sphilip P(0x09bf8), P(0x09bfc), P(0x0aa00), P(0x0aa04), P(0x0aa08), 299227569Sphilip P(0x0aa0c), P(0x0aa10), P(0x0aa14), P(0x0aa18), P(0x0aa1c), 300227569Sphilip P(0x0aa20), P(0x0aa24), P(0x0aa28), P(0x0aa2c), P(0x0aa30), 301227569Sphilip P(0x0aa34), P(0x0aa38), P(0x0aa3c), P(0x0aa40), P(0x0aa44), 302227569Sphilip P(0x0aa48), P(0x0aa4c), P(0x0aa50), P(0x0aa54), P(0x0aa58), 303227569Sphilip P(0x0aa5c), P(0x0aa60), P(0x0aa64), P(0x0aa68), P(0x0aa6c), 304227569Sphilip P(0x0aa70), P(0x0aa74), P(0x0aa78), P(0x0aa7c), P(0x0aa80), 305227569Sphilip P(0x0aa84), P(0x0aa88), P(0x0aa8c), P(0x0aa90), P(0x0aa94), 306227569Sphilip P(0x0aa98), P(0x0aa9c), P(0x0aaa0), P(0x0aaa4), P(0x0aaa8), 307227569Sphilip P(0x0aaac), P(0x0aab0), P(0x0aab4), P(0x0aab8), P(0x0aabc), 308227569Sphilip P(0x0aac0), P(0x0aac4), P(0x0aac8), P(0x0aacc), P(0x0aad0), 309280501Sarybchik P(0x0aad4), P(0x0aad8), P(0x0aadc), P(0x0aae0), P(0x0aae4), 310227569Sphilip P(0x0aae8), P(0x0aaec), P(0x0aaf0), P(0x0aaf4), P(0x0aaf8), 311227569Sphilip P(0x0aafc), P(0x0ab00), P(0x0ab04), P(0x0ab08), P(0x0ab0c), 312227569Sphilip P(0x0ab10), P(0x0ab14), P(0x0ab18), P(0x0ab1c), P(0x0ab20), 313227569Sphilip P(0x0ab24), P(0x0ab28), P(0x0ab2c), P(0x0ab30), P(0x0ab34), 314227569Sphilip P(0x0ab38), P(0x0ab3c), P(0x0ab40), P(0x0ab44), P(0x0ab48), 315227569Sphilip P(0x0ab4c), P(0x0ab50), P(0x0ab54), P(0x0ab58), P(0x0ab5c), 316227569Sphilip P(0x0ab60), P(0x0ab64), P(0x0ab68), P(0x0ab6c), P(0x0ab70), 317227569Sphilip P(0x0ab74), P(0x0ab78), P(0x0ab7c), P(0x0ab80), P(0x0ab84), 318227569Sphilip P(0x0ab88), P(0x0ab8c), P(0x0ab90), P(0x0ab94), P(0x0ab98), 319227569Sphilip P(0x0ab9c), P(0x0aba0), P(0x0aba4), P(0x0aba8), P(0x0abac), 320227569Sphilip P(0x0abb0), P(0x0abb4), P(0x0abb8), P(0x0abbc), P(0x0abc0), 321227569Sphilip P(0x0abc4), P(0x0abc8), P(0x0abcc), P(0x0abd0), P(0x0abd4), 322227569Sphilip P(0x0abd8), P(0x0abdc), P(0x0abe0), P(0x0abe4), P(0x0abe8), 323227569Sphilip P(0x0abec), P(0x0abf0), P(0x0abf4), P(0x0abf8), P(0x0abfc), 324227569Sphilip P(0x0a204), P(0x0a20c), P(0x0b20c), P(0x0a21c), P(0x0a230), 325227569Sphilip P(0x0a250), P(0x0a358) 326227569Sphilip}; 327227569Sphilip 328227569Sphilip#ifndef IEEE80211_NO_HT 329227569Sphilipstatic const uint32_t ar9285_1_2_vals_2g40[] = { 330227569Sphilip 0x000002c0, 0x00000318, 0x00007c70, 0x00000000, 0x10801600, 331227569Sphilip 0x12e00057, 0x00006880, 0x000003c4, 0x02020200, 0x01000e0e, 332227569Sphilip 0x0a020001, 0x00000e0e, 0x00000007, 0x206a012e, 0x03721620, 333227569Sphilip 0x00001053, 0x00001053, 0x6d4000e2, 0x7ec84d2e, 0x3137605e, 334227569Sphilip 0x00058d20, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x00001130, 335227569Sphilip 0x00000016, 0xd00a800d, 0xffbc1020, 0x00000000, 0x00000000, 336280502Sarybchik 0x0000421c, 0x00000c00, 0x05eea6d4, 0x06336f77, 0x6af6532f, 337280502Sarybchik 0x08f186c8, 0x00046384, 0x00000000, 0x00000000, 0x00058084, 338227569Sphilip 0x00058088, 0x0005808c, 0x00058100, 0x00058104, 0x00058108, 339227569Sphilip 0x0005810c, 0x00058110, 0x00058114, 0x00058180, 0x00058184, 340227569Sphilip 0x00058188, 0x0005818c, 0x00058190, 0x00058194, 0x000581a0, 341227569Sphilip 0x0005820c, 0x000581a8, 0x00058284, 0x00058288, 0x00058224, 342227569Sphilip 0x00058290, 0x00058300, 0x00058304, 0x00058308, 0x0005830c, 343227569Sphilip 0x00058380, 0x00058384, 0x00068700, 0x00068704, 0x00068708, 344227569Sphilip 0x0006870c, 0x00068780, 0x00068784, 0x00078b00, 0x00078b04, 345227569Sphilip 0x00078b08, 0x00078b0c, 0x00078b80, 0x00078b84, 0x00078b88, 346280501Sarybchik 0x00078b8c, 0x00078b90, 0x000caf80, 0x000caf84, 0x000caf88, 347227569Sphilip 0x000caf8c, 0x000caf90, 0x000db30c, 0x000db310, 0x000db384, 348227569Sphilip 0x000db388, 0x000db324, 0x000eb704, 0x000eb6a4, 0x000eb6a8, 349227569Sphilip 0x000eb710, 0x000eb714, 0x000eb720, 0x000eb724, 0x000eb728, 350280501Sarybchik 0x000eb72c, 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 351227569Sphilip 0x000eb7b4, 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 352227569Sphilip 0x000eb7b1, 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 353227569Sphilip 0x000eb7d1, 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 354227569Sphilip 0x000eb7ce, 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 355227569Sphilip 0x000eb7cb, 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 0x000eb7db, 356227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 357227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 358227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 359227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 360227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 361227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 362227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 363227569Sphilip 0x000eb7db, 0x000eb7db, 0x00058084, 0x00058088, 0x0005808c, 364227569Sphilip 0x00058100, 0x00058104, 0x00058108, 0x0005810c, 0x00058110, 365227569Sphilip 0x00058114, 0x00058180, 0x00058184, 0x00058188, 0x0005818c, 366227569Sphilip 0x00058190, 0x00058194, 0x000581a0, 0x0005820c, 0x000581a8, 367227569Sphilip 0x00058284, 0x00058288, 0x00058224, 0x00058290, 0x00058300, 368227569Sphilip 0x00058304, 0x00058308, 0x0005830c, 0x00058380, 0x00058384, 369280501Sarybchik 0x00068700, 0x00068704, 0x00068708, 0x0006870c, 0x00068780, 370227569Sphilip 0x00068784, 0x00078b00, 0x00078b04, 0x00078b08, 0x00078b0c, 371227569Sphilip 0x00078b80, 0x00078b84, 0x00078b88, 0x00078b8c, 0x00078b90, 372227569Sphilip 0x000caf80, 0x000caf84, 0x000caf88, 0x000caf8c, 0x000caf90, 373227569Sphilip 0x000db30c, 0x000db310, 0x000db384, 0x000db388, 0x000db324, 374227569Sphilip 0x000eb704, 0x000eb6a4, 0x000eb6a8, 0x000eb710, 0x000eb714, 375227569Sphilip 0x000eb720, 0x000eb724, 0x000eb728, 0x000eb72c, 0x000eb7a0, 376227569Sphilip 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 0x000eb7b4, 0x000eb7b8, 377227569Sphilip 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 0x000eb7b1, 0x000eb7b5, 378227569Sphilip 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 0x000eb7d1, 0x000eb7d5, 379227569Sphilip 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 0x000eb7ce, 0x000eb7d2, 380227569Sphilip 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 0x000eb7cb, 0x000eb7cf, 381227569Sphilip 0x000eb7d7, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 382227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 383227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 384227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 385227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 386227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 387227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 388227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 389227569Sphilip 0x00000004, 0x0001f000, 0x0001f000, 0x1883800a, 0x00000210, 390227569Sphilip 0x0004a000, 0x7999aa0e 391227569Sphilip}; 392227569Sphilip#endif 393227569Sphilip 394227569Sphilipstatic const uint32_t ar9285_1_2_vals_2g20[] = { 395227569Sphilip 0x00000160, 0x0000018c, 0x00003e38, 0x00000000, 0x08400b00, 396227569Sphilip 0x12e0002b, 0x00003440, 0x00000300, 0x02020200, 0x01000e0e, 397227569Sphilip 0x0a020001, 0x00000e0e, 0x00000007, 0x206a012e, 0x03721620, 398227569Sphilip 0x00001053, 0x00001053, 0x6d4000e2, 0x7ec84d2e, 0x3137605e, 399280518Sarybchik 0x00058d20, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x00000898, 400227569Sphilip 0x0000000b, 0xd00a800d, 0xffbc1020, 0x00000000, 0x00000000, 401227569Sphilip 0x0000421c, 0x00000c00, 0x05eea6d4, 0x06336f77, 0x6af6532f, 402227569Sphilip 0x08f186c8, 0x00046384, 0x00000000, 0x00000000, 0x00058084, 403227569Sphilip 0x00058088, 0x0005808c, 0x00058100, 0x00058104, 0x00058108, 404227569Sphilip 0x0005810c, 0x00058110, 0x00058114, 0x00058180, 0x00058184, 405280518Sarybchik 0x00058188, 0x0005818c, 0x00058190, 0x00058194, 0x000581a0, 406280518Sarybchik 0x0005820c, 0x000581a8, 0x00058284, 0x00058288, 0x00058224, 407280518Sarybchik 0x00058290, 0x00058300, 0x00058304, 0x00058308, 0x0005830c, 408280518Sarybchik 0x00058380, 0x00058384, 0x00068700, 0x00068704, 0x00068708, 409280518Sarybchik 0x0006870c, 0x00068780, 0x00068784, 0x00078b00, 0x00078b04, 410280518Sarybchik 0x00078b08, 0x00078b0c, 0x00078b80, 0x00078b84, 0x00078b88, 411227569Sphilip 0x00078b8c, 0x00078b90, 0x000caf80, 0x000caf84, 0x000caf88, 412227569Sphilip 0x000caf8c, 0x000caf90, 0x000db30c, 0x000db310, 0x000db384, 413227569Sphilip 0x000db388, 0x000db324, 0x000eb704, 0x000eb6a4, 0x000eb6a8, 414227569Sphilip 0x000eb710, 0x000eb714, 0x000eb720, 0x000eb724, 0x000eb728, 415280501Sarybchik 0x000eb72c, 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 416227569Sphilip 0x000eb7b4, 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 417227569Sphilip 0x000eb7b1, 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 418227569Sphilip 0x000eb7d1, 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 419227569Sphilip 0x000eb7ce, 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 420227569Sphilip 0x000eb7cb, 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 0x000eb7db, 421227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 422227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 423227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 424227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 425227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 426227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 427227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 428227569Sphilip 0x000eb7db, 0x000eb7db, 0x00058084, 0x00058088, 0x0005808c, 429227569Sphilip 0x00058100, 0x00058104, 0x00058108, 0x0005810c, 0x00058110, 430227569Sphilip 0x00058114, 0x00058180, 0x00058184, 0x00058188, 0x0005818c, 431227569Sphilip 0x00058190, 0x00058194, 0x000581a0, 0x0005820c, 0x000581a8, 432227569Sphilip 0x00058284, 0x00058288, 0x00058224, 0x00058290, 0x00058300, 433227569Sphilip 0x00058304, 0x00058308, 0x0005830c, 0x00058380, 0x00058384, 434227569Sphilip 0x00068700, 0x00068704, 0x00068708, 0x0006870c, 0x00068780, 435227569Sphilip 0x00068784, 0x00078b00, 0x00078b04, 0x00078b08, 0x00078b0c, 436227569Sphilip 0x00078b80, 0x00078b84, 0x00078b88, 0x00078b8c, 0x00078b90, 437227569Sphilip 0x000caf80, 0x000caf84, 0x000caf88, 0x000caf8c, 0x000caf90, 438227569Sphilip 0x000db30c, 0x000db310, 0x000db384, 0x000db388, 0x000db324, 439227569Sphilip 0x000eb704, 0x000eb6a4, 0x000eb6a8, 0x000eb710, 0x000eb714, 440227569Sphilip 0x000eb720, 0x000eb724, 0x000eb728, 0x000eb72c, 0x000eb7a0, 441227569Sphilip 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 0x000eb7b4, 0x000eb7b8, 442227569Sphilip 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 0x000eb7b1, 0x000eb7b5, 443280502Sarybchik 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 0x000eb7d1, 0x000eb7d5, 444280502Sarybchik 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 0x000eb7ce, 0x000eb7d2, 445280502Sarybchik 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 0x000eb7cb, 0x000eb7cf, 446280502Sarybchik 0x000eb7d7, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 447280502Sarybchik 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 448280502Sarybchik 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 449280502Sarybchik 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 450280502Sarybchik 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 451280502Sarybchik 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 452280502Sarybchik 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 453280502Sarybchik 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 454280502Sarybchik 0x00000004, 0x0001f000, 0x0001f000, 0x1883800a, 0x00000108, 455280502Sarybchik 0x0004a000, 0x7999aa0e 456280502Sarybchik}; 457280502Sarybchik 458280502Sarybchikstatic const uint16_t ar9285_1_2_cm_regs[] = { 459280502Sarybchik P(0x0000c), P(0x00030), P(0x00034), P(0x00040), P(0x00044), 460280502Sarybchik P(0x00048), P(0x0004c), P(0x00050), P(0x00054), P(0x00800), 461280502Sarybchik P(0x00804), P(0x00808), P(0x0080c), P(0x00810), P(0x00814), 462280502Sarybchik P(0x00818), P(0x0081c), P(0x00820), P(0x00824), P(0x01040), 463227569Sphilip P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054), 464227569Sphilip P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x01230), 465227569Sphilip P(0x01270), P(0x01038), P(0x01078), P(0x010b8), P(0x010f8), 466227569Sphilip P(0x01138), P(0x01178), P(0x011b8), P(0x011f8), P(0x01238), 467227569Sphilip P(0x01278), P(0x012b8), P(0x012f8), P(0x01338), P(0x01378), 468227569Sphilip P(0x013b8), P(0x013f8), P(0x01438), P(0x01478), P(0x014b8), 469227569Sphilip P(0x014f8), P(0x01538), P(0x01578), P(0x015b8), P(0x015f8), 470227569Sphilip P(0x01638), P(0x01678), P(0x016b8), P(0x016f8), P(0x01738), 471227569Sphilip P(0x01778), P(0x017b8), P(0x017f8), P(0x0103c), P(0x0107c), 472227569Sphilip P(0x010bc), P(0x010fc), P(0x0113c), P(0x0117c), P(0x011bc), 473227569Sphilip P(0x011fc), P(0x0123c), P(0x0127c), P(0x012bc), P(0x012fc), 474227569Sphilip P(0x0133c), P(0x0137c), P(0x013bc), P(0x013fc), P(0x0143c), 475227569Sphilip P(0x0147c), P(0x04030), P(0x0403c), P(0x04024), P(0x04060), 476227569Sphilip P(0x04064), P(0x07010), P(0x07034), P(0x07038), P(0x08004), 477227569Sphilip P(0x08008), P(0x0800c), P(0x08018), P(0x08020), P(0x08038), 478227569Sphilip P(0x0803c), P(0x08048), P(0x08054), P(0x08058), P(0x0805c), 479227569Sphilip P(0x08060), P(0x08064), P(0x08070), P(0x080c0), P(0x080c4), 480227569Sphilip P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), P(0x080d8), 481227569Sphilip P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), P(0x080f0), 482227569Sphilip P(0x080f4), P(0x080f8), P(0x080fc), P(0x08100), P(0x08104), 483227569Sphilip P(0x08108), P(0x0810c), P(0x08110), P(0x08118), P(0x0811c), 484227569Sphilip P(0x08120), P(0x08124), P(0x08128), P(0x0812c), P(0x08130), 485227569Sphilip P(0x08134), P(0x08138), P(0x0813c), P(0x08144), P(0x08168), 486227569Sphilip P(0x0816c), P(0x08170), P(0x08174), P(0x08178), P(0x0817c), 487227569Sphilip P(0x081c0), P(0x081d0), P(0x081ec), P(0x081f0), P(0x081f4), 488227569Sphilip P(0x081f8), P(0x081fc), P(0x08200), P(0x08204), P(0x08208), 489227569Sphilip P(0x0820c), P(0x08210), P(0x08214), P(0x08218), P(0x0821c), 490227569Sphilip P(0x08220), P(0x08224), P(0x08228), P(0x0822c), P(0x08230), 491227569Sphilip P(0x08234), P(0x08238), P(0x0823c), P(0x08240), P(0x08244), 492227569Sphilip P(0x08248), P(0x0824c), P(0x08250), P(0x08254), P(0x08258), 493227569Sphilip P(0x0825c), P(0x08260), P(0x08264), P(0x08270), P(0x08274), 494227569Sphilip P(0x08278), P(0x0827c), P(0x08284), P(0x08288), P(0x0828c), 495227569Sphilip P(0x08294), P(0x08298), P(0x0829c), P(0x08300), P(0x08314), 496227569Sphilip P(0x08328), P(0x0832c), P(0x08330), P(0x08334), P(0x08338), 497227569Sphilip P(0x0833c), P(0x08340), P(0x08344), P(0x09808), P(0x0980c), 498227569Sphilip P(0x09810), P(0x09814), P(0x0981c), P(0x0982c), P(0x09830), 499227569Sphilip P(0x0983c), P(0x0984c), P(0x09854), P(0x09900), P(0x09904), 500227569Sphilip P(0x09908), P(0x0990c), P(0x09910), P(0x0991c), P(0x09920), 501227569Sphilip P(0x09928), P(0x0992c), P(0x09934), P(0x09938), P(0x0993c), 502227569Sphilip P(0x09940), P(0x09948), P(0x0994c), P(0x09954), P(0x09958), 503227569Sphilip P(0x09968), P(0x09970), P(0x09974), P(0x09978), P(0x0997c), 504227569Sphilip P(0x09980), P(0x09984), P(0x09988), P(0x0998c), P(0x09990), 505227569Sphilip P(0x09994), P(0x09998), P(0x0999c), P(0x099a0), P(0x099a4), 506227569Sphilip P(0x099a8), P(0x099ac), P(0x099b0), P(0x099b4), P(0x099dc), 507227569Sphilip P(0x099e0), P(0x099e4), P(0x099e8), P(0x099ec), P(0x099f0), 508227569Sphilip P(0x0a208), P(0x0a210), P(0x0a214), P(0x0a218), P(0x0a220), 509227569Sphilip P(0x0a224), P(0x0a228), P(0x0a22c), P(0x0a234), P(0x0a238), 510227569Sphilip P(0x0a244), P(0x0a248), P(0x0a24c), P(0x0a254), P(0x0a258), 511227569Sphilip P(0x0a25c), P(0x0a260), P(0x0a268), P(0x0a26c), P(0x0d270), 512227569Sphilip P(0x0d35c), P(0x0d360), P(0x0d364), P(0x0d368), P(0x0d36c), 513227569Sphilip P(0x0d370), P(0x0d374), P(0x0d378), P(0x0d37c), P(0x0d380), 514227569Sphilip P(0x0d384), P(0x0a388), P(0x0a38c), P(0x0a390), P(0x0a39c), 515227569Sphilip P(0x0a3a0), P(0x0a3a4), P(0x0a3a8), P(0x0a3ac), P(0x0a3b0), 516227569Sphilip P(0x0a3b4), P(0x0a3b8), P(0x0a3bc), P(0x0a3c0), P(0x0a3c4), 517227569Sphilip P(0x0a3cc), P(0x0a3d0), P(0x0a3d4), P(0x0a3e4), P(0x0a3e8), 518227569Sphilip P(0x0a3ec), P(0x07800), P(0x07804), P(0x07808), P(0x0780c), 519227569Sphilip P(0x07810), P(0x0781c), P(0x07824), P(0x0782c), P(0x07834), 520227569Sphilip P(0x07844), P(0x07848), P(0x0784c), P(0x07850), P(0x07854), 521227569Sphilip P(0x07858), P(0x0785c), P(0x07860), P(0x07864), P(0x07868), 522227569Sphilip P(0x07870) 523227569Sphilip}; 524227569Sphilip 525227569Sphilipstatic const uint32_t ar9285_1_2_cm_vals[] = { 526227569Sphilip 0x00000000, 0x00020045, 0x00000005, 0x00000000, 0x00000008, 527227569Sphilip 0x00000008, 0x00000010, 0x00000000, 0x0000001f, 0x00000000, 528227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 529227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002ffc0f, 530227569Sphilip 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 531227569Sphilip 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000000, 532227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 533227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 534227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 535280502Sarybchik 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 536280502Sarybchik 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 537227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 538227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 539227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 540227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 541227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 542227569Sphilip 0x00000000, 0x00000002, 0x00000002, 0x0000001f, 0x00000000, 543227569Sphilip 0x00000000, 0x00000031, 0x00000002, 0x000004c2, 0x00000000, 544227569Sphilip 0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x00000000, 545227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000fc78f, 546227569Sphilip 0x0000000f, 0x00000000, 0x00000000, 0x2a80001a, 0x05dc01e0, 547227569Sphilip 0x1f402710, 0x01f40000, 0x00001e00, 0x00000000, 0x00400000, 548227569Sphilip 0xffffffff, 0x0000ffff, 0x003f3f3f, 0x00000000, 0x00000000, 549227569Sphilip 0x00000000, 0x00000000, 0x00020000, 0x00020000, 0x00000001, 550227569Sphilip 0x00000052, 0x00000000, 0x00000168, 0x000100aa, 0x00003210, 551227569Sphilip 0x08f04810, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 552227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 553227569Sphilip 0x00000000, 0x32143320, 0xfaa4fa50, 0x00000100, 0x00000000, 554227569Sphilip 0x00000000, 0x0000320a, 0x00000000, 0x00000000, 0x00000000, 555227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 556227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 557227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 558227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x0010f400, 559227569Sphilip 0x00000100, 0x0001e800, 0x00000000, 0x00000000, 0x00000000, 560227569Sphilip 0x400000ff, 0x00080922, 0x88a00010, 0x00000000, 0x40000000, 561227569Sphilip 0x003e4180, 0x00000000, 0x0000002c, 0x0000002c, 0x00000000, 562227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 563227569Sphilip 0x00000000, 0x00000001, 0x00000302, 0x00000e00, 0x00ff0000, 564227569Sphilip 0x00000000, 0x00010380, 0x00481043, 0x00000000, 0xafe68e30, 565227569Sphilip 0xfd14e000, 0x9c0a9f6b, 0x00000000, 0x0000a000, 0x00000000, 566227569Sphilip 0x00200400, 0x0040233c, 0x00000044, 0x00000000, 0x00000000, 567227569Sphilip 0x00000000, 0x00000000, 0x01002310, 0x10000fff, 0x04900000, 568227569Sphilip 0x00000001, 0x00000004, 0x1e1f2022, 0x0a0b0c0d, 0x00000000, 569227569Sphilip 0x14750604, 0x9280c00a, 0x00020028, 0x5f3ca3de, 0x2108ecff, 570227569Sphilip 0x000003ce, 0x192bb514, 0x00000000, 0x00000001, 0x00000000, 571227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 572227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 573227569Sphilip 0x201fff00, 0x2def0400, 0x03051000, 0x00000820, 0x00000000, 574227569Sphilip 0x00000000, 0xaaaaaaaa, 0x3c466478, 0x0cc80caa, 0x00000000, 575227569Sphilip 0x803e68c8, 0x4080a333, 0x00206c10, 0x009c4060, 0x01834061, 576227569Sphilip 0x00000400, 0x000003b5, 0x00000000, 0x20202020, 0x20202020, 577227569Sphilip 0x00000000, 0xfffffffc, 0x00000000, 0x00000000, 0x0ccb5380, 578227569Sphilip 0x15151501, 0xdfa90f01, 0x00000000, 0x0ebae9e6, 0x0d820820, 579227569Sphilip 0x07ffffef, 0x0fffffe7, 0x17ffffe5, 0x1fffffe4, 0x37ffffe3, 580227569Sphilip 0x3fffffe3, 0x57ffffe3, 0x5fffffe2, 0x7fffffe2, 0x7f3c7bba, 581227569Sphilip 0xf3307ff0, 0x0c000000, 0x20202020, 0x20202020, 0x00000001, 582227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 583227569Sphilip 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 584227569Sphilip 0x20202020, 0x20202020, 0x20202020, 0x00000000, 0x18c43433, 585227569Sphilip 0x00f70081, 0x00140000, 0x0e4548d8, 0x54214514, 0x02025830, 586227569Sphilip 0x71c0d388, 0x00000000, 0x00d86fff, 0x6e36d97b, 0x71400087, 587227569Sphilip 0x000c0db6, 0x6db6246f, 0x6d9b66db, 0x6d8c6dba, 0x00040000, 588227569Sphilip 0xdb003012, 0x04924914, 0x21084210, 0xf7d7ffde, 0xc2034080, 589227569Sphilip 0x10142c00 590227569Sphilip}; 591227569Sphilip 592227569Sphilipstatic const struct athn_ini ar9285_1_2_ini = { 593227569Sphilip .nregs = __arraycount(ar9285_1_2_regs), 594227569Sphilip .regs = ar9285_1_2_regs, 595227569Sphilip .vals_5g20 = NULL, /* 2GHz only. */ 596227569Sphilip#ifndef IEEE80211_NO_HT 597227569Sphilip .vals_5g40 = NULL, /* 2GHz only. */ 598227569Sphilip .vals_2g40 = ar9285_1_2_vals_2g40, 599227569Sphilip#endif 600227569Sphilip .vals_2g20 = ar9285_1_2_vals_2g20, 601227569Sphilip .ncmregs = __arraycount(ar9285_1_2_cm_regs), 602227569Sphilip .cmregs = ar9285_1_2_cm_regs, 603227569Sphilip .cmvals = ar9285_1_2_cm_vals, 604227569Sphilip}; 605280501Sarybchik 606227569Sphilip#if NATHN_USB > 0 607227569Sphilip/* 608227569Sphilip * AR9271 programming. 609227569Sphilip */ 610280501Sarybchikstatic const uint16_t ar9271_regs[] = { 611227569Sphilip P(0x01030), P(0x01070), P(0x010b0), P(0x010f0), P(0x08014), 612280501Sarybchik P(0x0801c), P(0x08318), P(0x09804), P(0x09820), P(0x09824), 613227569Sphilip P(0x09828), P(0x09834), P(0x09838), P(0x09840), P(0x09844), 614227569Sphilip P(0x09848), P(0x0a848), P(0x09850), P(0x09858), P(0x0985c), 615227569Sphilip P(0x09860), P(0x09864), P(0x09868), P(0x0986c), P(0x09910), 616227569Sphilip P(0x09914), P(0x09918), P(0x09924), P(0x09944), P(0x09960), 617227569Sphilip P(0x09964), P(0x099b8), P(0x099bc), P(0x099c0), P(0x099c4), 618227569Sphilip P(0x099c8), P(0x099cc), P(0x099d0), P(0x099d4), P(0x099d8), 619227569Sphilip P(0x09a00), P(0x09a04), P(0x09a08), P(0x09a0c), P(0x09a10), 620227569Sphilip P(0x09a14), P(0x09a18), P(0x09a1c), P(0x09a20), P(0x09a24), 621227569Sphilip P(0x09a28), P(0x09a2c), P(0x09a30), P(0x09a34), P(0x09a38), 622227569Sphilip P(0x09a3c), P(0x09a40), P(0x09a44), P(0x09a48), P(0x09a4c), 623227569Sphilip P(0x09a50), P(0x09a54), P(0x09a58), P(0x09a5c), P(0x09a60), 624227569Sphilip P(0x09a64), P(0x09a68), P(0x09a6c), P(0x09a70), P(0x09a74), 625227569Sphilip P(0x09a78), P(0x09a7c), P(0x09a80), P(0x09a84), P(0x09a88), 626227569Sphilip P(0x09a8c), P(0x09a90), P(0x09a94), P(0x09a98), P(0x09a9c), 627227569Sphilip P(0x09aa0), P(0x09aa4), P(0x09aa8), P(0x09aac), P(0x09ab0), 628227569Sphilip P(0x09ab4), P(0x09ab8), P(0x09abc), P(0x09ac0), P(0x09ac4), 629227569Sphilip P(0x09ac8), P(0x09acc), P(0x09ad0), P(0x09ad4), P(0x09ad8), 630227569Sphilip P(0x09adc), P(0x09ae0), P(0x09ae4), P(0x09ae8), P(0x09aec), 631227569Sphilip P(0x09af0), P(0x09af4), P(0x09af8), P(0x09afc), P(0x09b00), 632227569Sphilip P(0x09b04), P(0x09b08), P(0x09b0c), P(0x09b10), P(0x09b14), 633227569Sphilip P(0x09b18), P(0x09b1c), P(0x09b20), P(0x09b24), P(0x09b28), 634227569Sphilip P(0x09b2c), P(0x09b30), P(0x09b34), P(0x09b38), P(0x09b3c), 635227569Sphilip P(0x09b40), P(0x09b44), P(0x09b48), P(0x09b4c), P(0x09b50), 636227569Sphilip P(0x09b54), P(0x09b58), P(0x09b5c), P(0x09b60), P(0x09b64), 637227569Sphilip P(0x09b68), P(0x09b6c), P(0x09b70), P(0x09b74), P(0x09b78), 638227569Sphilip P(0x09b7c), P(0x09b80), P(0x09b84), P(0x09b88), P(0x09b8c), 639227569Sphilip P(0x09b90), P(0x09b94), P(0x09b98), P(0x09b9c), P(0x09ba0), 640227569Sphilip P(0x09ba4), P(0x09ba8), P(0x09bac), P(0x09bb0), P(0x09bb4), 641227569Sphilip P(0x09bb8), P(0x09bbc), P(0x09bc0), P(0x09bc4), P(0x09bc8), 642227569Sphilip P(0x09bcc), P(0x09bd0), P(0x09bd4), P(0x09bd8), P(0x09bdc), 643227569Sphilip P(0x09be0), P(0x09be4), P(0x09be8), P(0x09bec), P(0x09bf0), 644227569Sphilip P(0x09bf4), P(0x09bf8), P(0x09bfc), P(0x0aa00), P(0x0aa04), 645227569Sphilip P(0x0aa08), P(0x0aa0c), P(0x0aa10), P(0x0aa14), P(0x0aa18), 646227569Sphilip P(0x0aa1c), P(0x0aa20), P(0x0aa24), P(0x0aa28), P(0x0aa2c), 647227569Sphilip P(0x0aa30), P(0x0aa34), P(0x0aa38), P(0x0aa3c), P(0x0aa40), 648227569Sphilip P(0x0aa44), P(0x0aa48), P(0x0aa4c), P(0x0aa50), P(0x0aa54), 649227569Sphilip P(0x0aa58), P(0x0aa5c), P(0x0aa60), P(0x0aa64), P(0x0aa68), 650227569Sphilip P(0x0aa6c), P(0x0aa70), P(0x0aa74), P(0x0aa78), P(0x0aa7c), 651227569Sphilip P(0x0aa80), P(0x0aa84), P(0x0aa88), P(0x0aa8c), P(0x0aa90), 652227569Sphilip P(0x0aa94), P(0x0aa98), P(0x0aa9c), P(0x0aaa0), P(0x0aaa4), 653227569Sphilip P(0x0aaa8), P(0x0aaac), P(0x0aab0), P(0x0aab4), P(0x0aab8), 654227569Sphilip P(0x0aabc), P(0x0aac0), P(0x0aac4), P(0x0aac8), P(0x0aacc), 655227569Sphilip P(0x0aad0), P(0x0aad4), P(0x0aad8), P(0x0aadc), P(0x0aae0), 656227569Sphilip P(0x0aae4), P(0x0aae8), P(0x0aaec), P(0x0aaf0), P(0x0aaf4), 657227569Sphilip P(0x0aaf8), P(0x0aafc), P(0x0ab00), P(0x0ab04), P(0x0ab08), 658227569Sphilip P(0x0ab0c), P(0x0ab10), P(0x0ab14), P(0x0ab18), P(0x0ab1c), 659227569Sphilip P(0x0ab20), P(0x0ab24), P(0x0ab28), P(0x0ab2c), P(0x0ab30), 660227569Sphilip P(0x0ab34), P(0x0ab38), P(0x0ab3c), P(0x0ab40), P(0x0ab44), 661227569Sphilip P(0x0ab48), P(0x0ab4c), P(0x0ab50), P(0x0ab54), P(0x0ab58), 662227569Sphilip P(0x0ab5c), P(0x0ab60), P(0x0ab64), P(0x0ab68), P(0x0ab6c), 663227569Sphilip P(0x0ab70), P(0x0ab74), P(0x0ab78), P(0x0ab7c), P(0x0ab80), 664227569Sphilip P(0x0ab84), P(0x0ab88), P(0x0ab8c), P(0x0ab90), P(0x0ab94), 665227569Sphilip P(0x0ab98), P(0x0ab9c), P(0x0aba0), P(0x0aba4), P(0x0aba8), 666227569Sphilip P(0x0abac), P(0x0abb0), P(0x0abb4), P(0x0abb8), P(0x0abbc), 667227569Sphilip P(0x0abc0), P(0x0abc4), P(0x0abc8), P(0x0abcc), P(0x0abd0), 668227569Sphilip P(0x0abd4), P(0x0abd8), P(0x0abdc), P(0x0abe0), P(0x0abe4), 669227569Sphilip P(0x0abe8), P(0x0abec), P(0x0abf0), P(0x0abf4), P(0x0abf8), 670227569Sphilip P(0x0abfc), P(0x0a204), P(0x0a20c), P(0x0b20c), P(0x0a21c), 671227569Sphilip P(0x0a230), P(0x0a250), P(0x0a358) 672227569Sphilip}; 673227569Sphilip 674280501Sarybchik#ifndef IEEE80211_NO_HT 675280501Sarybchikstatic const uint32_t ar9271_vals_2g40[] = { 676227569Sphilip 0x000002c0, 0x00000318, 0x00007c70, 0x00000000, 0x10801600, 677227569Sphilip 0x12e00057, 0x00006880, 0x000003c4, 0x02020200, 0x01000e0e, 678227569Sphilip 0x3a020001, 0x00000e0e, 0x00000007, 0x206a012e, 0x03721620, 679280501Sarybchik 0x00001053, 0x00001053, 0x6d4000e2, 0x7ec84d2e, 0x3137605e, 680227569Sphilip 0x00058d18, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x30002310, 681227569Sphilip 0x00001130, 0x00000016, 0xd00a800d, 0xffbc1020, 0x00000000, 682227569Sphilip 0x00000000, 0x0000421c, 0x00000c00, 0x05eea6d4, 0x06336f77, 683227569Sphilip 0x6af6532f, 0x08f186c8, 0x00046384, 0x00000000, 0x00000000, 684227569Sphilip 0x00058084, 0x00058088, 0x0005808c, 0x00058100, 0x00058104, 685227569Sphilip 0x00058108, 0x0005810c, 0x00058110, 0x00058114, 0x00058180, 686227569Sphilip 0x00058184, 0x00058188, 0x0005818c, 0x00058190, 0x00058194, 687227569Sphilip 0x000581a0, 0x0005820c, 0x000581a8, 0x00058284, 0x00058288, 688227569Sphilip 0x00058224, 0x00058290, 0x00058300, 0x00058304, 0x00058308, 689227569Sphilip 0x0005830c, 0x00058380, 0x00058384, 0x00068700, 0x00068704, 690227569Sphilip 0x00068708, 0x0006870c, 0x00068780, 0x00068784, 0x00078b00, 691227569Sphilip 0x00078b04, 0x00078b08, 0x00078b0c, 0x00078b80, 0x00078b84, 692227569Sphilip 0x00078b88, 0x00078b8c, 0x00078b90, 0x000caf80, 0x000caf84, 693227569Sphilip 0x000caf88, 0x000caf8c, 0x000caf90, 0x000db30c, 0x000db310, 694227569Sphilip 0x000db384, 0x000db388, 0x000db324, 0x000eb704, 0x000eb6a4, 695227569Sphilip 0x000eb6a8, 0x000eb710, 0x000eb714, 0x000eb720, 0x000eb724, 696227569Sphilip 0x000eb728, 0x000eb72c, 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 697227569Sphilip 0x000eb7b0, 0x000eb7b4, 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 698227569Sphilip 0x000eb7ad, 0x000eb7b1, 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 699227569Sphilip 0x000eb7c9, 0x000eb7d1, 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 700227569Sphilip 0x000eb7ca, 0x000eb7ce, 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 701227569Sphilip 0x000eb7c7, 0x000eb7cb, 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 702227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 703227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 704227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 705227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 706227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 707227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 708227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 709227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x00058084, 0x00058088, 710227569Sphilip 0x0005808c, 0x00058100, 0x00058104, 0x00058108, 0x0005810c, 711227569Sphilip 0x00058110, 0x00058114, 0x00058180, 0x00058184, 0x00058188, 712227569Sphilip 0x0005818c, 0x00058190, 0x00058194, 0x000581a0, 0x0005820c, 713227569Sphilip 0x000581a8, 0x00058284, 0x00058288, 0x00058224, 0x00058290, 714227569Sphilip 0x00058300, 0x00058304, 0x00058308, 0x0005830c, 0x00058380, 715227569Sphilip 0x00058384, 0x00068700, 0x00068704, 0x00068708, 0x0006870c, 716227569Sphilip 0x00068780, 0x00068784, 0x00078b00, 0x00078b04, 0x00078b08, 717227569Sphilip 0x00078b0c, 0x00078b80, 0x00078b84, 0x00078b88, 0x00078b8c, 718227569Sphilip 0x00078b90, 0x000caf80, 0x000caf84, 0x000caf88, 0x000caf8c, 719227569Sphilip 0x000caf90, 0x000db30c, 0x000db310, 0x000db384, 0x000db388, 720227569Sphilip 0x000db324, 0x000eb704, 0x000eb6a4, 0x000eb6a8, 0x000eb710, 721227569Sphilip 0x000eb714, 0x000eb720, 0x000eb724, 0x000eb728, 0x000eb72c, 722227569Sphilip 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 0x000eb7b4, 723227569Sphilip 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 0x000eb7b1, 724227569Sphilip 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 0x000eb7d1, 725227569Sphilip 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 0x000eb7ce, 726227569Sphilip 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 0x000eb7cb, 727227569Sphilip 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 0x000eb7db, 0x000eb7db, 728227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 729227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 730227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 731227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 732227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 733227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 734227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 735227569Sphilip 0x000eb7db, 0x00000004, 0x0001f000, 0x0001f000, 0x1883800a, 736227569Sphilip 0x00000210, 0x0004a000, 0x7999aa0e 737227569Sphilip}; 738227569Sphilip#endif 739227569Sphilip 740227569Sphilipstatic const uint32_t ar9271_vals_2g20[] = { 741227569Sphilip 0x00000160, 0x0000018c, 0x00003e38, 0x00000000, 0x08400b00, 742227569Sphilip 0x12e0002b, 0x00003440, 0x00000300, 0x02020200, 0x01000e0e, 743227569Sphilip 0x3a020001, 0x00000e0e, 0x00000007, 0x206a012e, 0x03721620, 744227569Sphilip 0x00001053, 0x00001053, 0x6d4000e2, 0x7ec84d2e, 0x3137605e, 745227569Sphilip 0x00058d18, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x30002310, 746227569Sphilip 0x00000898, 0x0000000b, 0xd00a800d, 0xffbc1020, 0x00000000, 747227569Sphilip 0x00000000, 0x0000421c, 0x00000c00, 0x05eea6d4, 0x06336f77, 748227569Sphilip 0x6af6532f, 0x08f186c8, 0x00046384, 0x00000000, 0x00000000, 749227569Sphilip 0x00058084, 0x00058088, 0x0005808c, 0x00058100, 0x00058104, 750227569Sphilip 0x00058108, 0x0005810c, 0x00058110, 0x00058114, 0x00058180, 751227569Sphilip 0x00058184, 0x00058188, 0x0005818c, 0x00058190, 0x00058194, 752227569Sphilip 0x000581a0, 0x0005820c, 0x000581a8, 0x00058284, 0x00058288, 753227569Sphilip 0x00058224, 0x00058290, 0x00058300, 0x00058304, 0x00058308, 754227569Sphilip 0x0005830c, 0x00058380, 0x00058384, 0x00068700, 0x00068704, 755227569Sphilip 0x00068708, 0x0006870c, 0x00068780, 0x00068784, 0x00078b00, 756227569Sphilip 0x00078b04, 0x00078b08, 0x00078b0c, 0x00078b80, 0x00078b84, 757227569Sphilip 0x00078b88, 0x00078b8c, 0x00078b90, 0x000caf80, 0x000caf84, 758227569Sphilip 0x000caf88, 0x000caf8c, 0x000caf90, 0x000db30c, 0x000db310, 759227569Sphilip 0x000db384, 0x000db388, 0x000db324, 0x000eb704, 0x000eb6a4, 760227569Sphilip 0x000eb6a8, 0x000eb710, 0x000eb714, 0x000eb720, 0x000eb724, 761227569Sphilip 0x000eb728, 0x000eb72c, 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 762227569Sphilip 0x000eb7b0, 0x000eb7b4, 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 763227569Sphilip 0x000eb7ad, 0x000eb7b1, 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 764227569Sphilip 0x000eb7c9, 0x000eb7d1, 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 765227569Sphilip 0x000eb7ca, 0x000eb7ce, 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 766227569Sphilip 0x000eb7c7, 0x000eb7cb, 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 767227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 768227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 769227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 770227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 771227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 772227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 773227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 774227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x00058084, 0x00058088, 775227569Sphilip 0x0005808c, 0x00058100, 0x00058104, 0x00058108, 0x0005810c, 776227569Sphilip 0x00058110, 0x00058114, 0x00058180, 0x00058184, 0x00058188, 777227569Sphilip 0x0005818c, 0x00058190, 0x00058194, 0x000581a0, 0x0005820c, 778227569Sphilip 0x000581a8, 0x00058284, 0x00058288, 0x00058224, 0x00058290, 779227569Sphilip 0x00058300, 0x00058304, 0x00058308, 0x0005830c, 0x00058380, 780227569Sphilip 0x00058384, 0x00068700, 0x00068704, 0x00068708, 0x0006870c, 781227569Sphilip 0x00068780, 0x00068784, 0x00078b00, 0x00078b04, 0x00078b08, 782227569Sphilip 0x00078b0c, 0x00078b80, 0x00078b84, 0x00078b88, 0x00078b8c, 783227569Sphilip 0x00078b90, 0x000caf80, 0x000caf84, 0x000caf88, 0x000caf8c, 784227569Sphilip 0x000caf90, 0x000db30c, 0x000db310, 0x000db384, 0x000db388, 785227569Sphilip 0x000db324, 0x000eb704, 0x000eb6a4, 0x000eb6a8, 0x000eb710, 786227569Sphilip 0x000eb714, 0x000eb720, 0x000eb724, 0x000eb728, 0x000eb72c, 787227569Sphilip 0x000eb7a0, 0x000eb7a4, 0x000eb7a8, 0x000eb7b0, 0x000eb7b4, 788227569Sphilip 0x000eb7b8, 0x000eb7a5, 0x000eb7a9, 0x000eb7ad, 0x000eb7b1, 789227569Sphilip 0x000eb7b5, 0x000eb7b9, 0x000eb7c5, 0x000eb7c9, 0x000eb7d1, 790227569Sphilip 0x000eb7d5, 0x000eb7d9, 0x000eb7c6, 0x000eb7ca, 0x000eb7ce, 791227569Sphilip 0x000eb7d2, 0x000eb7d6, 0x000eb7c3, 0x000eb7c7, 0x000eb7cb, 792227569Sphilip 0x000eb7cf, 0x000eb7d7, 0x000eb7db, 0x000eb7db, 0x000eb7db, 793227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 794227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 795227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 796280501Sarybchik 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 797280501Sarybchik 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 798227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 799227569Sphilip 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 0x000eb7db, 800227569Sphilip 0x000eb7db, 0x00000004, 0x0001f000, 0x0001f000, 0x1883800a, 801280501Sarybchik 0x00000108, 0x0004a000, 0x7999aa0e 802227569Sphilip}; 803227569Sphilip 804227569Sphilipstatic const uint16_t ar9271_cm_regs[] = { 805227569Sphilip P(0x0000c), P(0x00030), P(0x00034), P(0x00040), P(0x00044), 806227569Sphilip P(0x00048), P(0x0004c), P(0x00050), P(0x00054), P(0x00800), 807227569Sphilip P(0x00804), P(0x00808), P(0x0080c), P(0x00810), P(0x00814), 808227569Sphilip P(0x00818), P(0x0081c), P(0x00820), P(0x00824), P(0x01040), 809227843Smarius P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054), 810227569Sphilip P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x01230), 811227569Sphilip P(0x01270), P(0x01038), P(0x01078), P(0x010b8), P(0x010f8), 812227569Sphilip P(0x01138), P(0x01178), P(0x011b8), P(0x011f8), P(0x01238), 813227569Sphilip P(0x01278), P(0x012b8), P(0x012f8), P(0x01338), P(0x01378), 814227569Sphilip P(0x013b8), P(0x013f8), P(0x01438), P(0x01478), P(0x014b8), 815227569Sphilip P(0x014f8), P(0x01538), P(0x01578), P(0x015b8), P(0x015f8), 816227569Sphilip P(0x01638), P(0x01678), P(0x016b8), P(0x016f8), P(0x01738), 817227569Sphilip P(0x01778), P(0x017b8), P(0x017f8), P(0x0103c), P(0x0107c), 818227569Sphilip P(0x010bc), P(0x010fc), P(0x0113c), P(0x0117c), P(0x011bc), 819227569Sphilip P(0x011fc), P(0x0123c), P(0x0127c), P(0x012bc), P(0x012fc), 820227569Sphilip P(0x0133c), P(0x0137c), P(0x013bc), P(0x013fc), P(0x0143c), 821 P(0x0147c), P(0x04030), P(0x0403c), P(0x04024), P(0x04060), 822 P(0x04064), P(0x08004), P(0x08008), P(0x0800c), P(0x08018), 823 P(0x08020), P(0x08038), P(0x0803c), P(0x08048), P(0x08054), 824 P(0x08058), P(0x0805c), P(0x08060), P(0x08064), P(0x08070), 825 P(0x080b0), P(0x080b4), P(0x080b8), P(0x080bc), P(0x080c0), 826 P(0x080c4), P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), 827 P(0x080d8), P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), 828 P(0x080f0), P(0x080f4), P(0x080f8), P(0x080fc), P(0x08100), 829 P(0x08104), P(0x08108), P(0x0810c), P(0x08110), P(0x08118), 830 P(0x0811c), P(0x08120), P(0x08124), P(0x08128), P(0x0812c), 831 P(0x08130), P(0x08134), P(0x08138), P(0x0813c), P(0x08144), 832 P(0x08168), P(0x0816c), P(0x08170), P(0x08174), P(0x08178), 833 P(0x0817c), P(0x081c0), P(0x081d0), P(0x081ec), P(0x081f0), 834 P(0x081f4), P(0x081f8), P(0x081fc), P(0x08200), P(0x08204), 835 P(0x08208), P(0x0820c), P(0x08210), P(0x08214), P(0x08218), 836 P(0x0821c), P(0x08220), P(0x08224), P(0x08228), P(0x0822c), 837 P(0x08230), P(0x08234), P(0x08238), P(0x0823c), P(0x08240), 838 P(0x08244), P(0x08248), P(0x0824c), P(0x08250), P(0x08254), 839 P(0x08258), P(0x0825c), P(0x08260), P(0x08264), P(0x08270), 840 P(0x08274), P(0x08278), P(0x0827c), P(0x08284), P(0x08288), 841 P(0x0828c), P(0x08294), P(0x08298), P(0x0829c), P(0x08300), 842 P(0x08314), P(0x08328), P(0x0832c), P(0x08330), P(0x08334), 843 P(0x08338), P(0x0833c), P(0x08340), P(0x08344), P(0x07010), 844 P(0x07034), P(0x07038), P(0x07800), P(0x07804), P(0x07808), 845 P(0x0780c), P(0x07810), P(0x07814), P(0x0781c), P(0x07828), 846 P(0x0782c), P(0x07830), P(0x07834), P(0x0783c), P(0x07840), 847 P(0x07844), P(0x07848), P(0x0784c), P(0x07850), P(0x07854), 848 P(0x07858), P(0x0785c), P(0x07860), P(0x07864), P(0x07868), 849 P(0x07870), P(0x09808), P(0x0980c), P(0x09810), P(0x09814), 850 P(0x0981c), P(0x0982c), P(0x09830), P(0x0983c), P(0x0984c), 851 P(0x09854), P(0x09900), P(0x09904), P(0x09908), P(0x0990c), 852 P(0x0991c), P(0x09920), P(0x09928), P(0x0992c), P(0x09934), 853 P(0x09938), P(0x0993c), P(0x09940), P(0x09948), P(0x0994c), 854 P(0x09954), P(0x09958), P(0x09968), P(0x09970), P(0x09974), 855 P(0x09978), P(0x0997c), P(0x09980), P(0x09984), P(0x09988), 856 P(0x0998c), P(0x09990), P(0x09994), P(0x09998), P(0x0999c), 857 P(0x099a0), P(0x099a4), P(0x099a8), P(0x099ac), P(0x099b0), 858 P(0x099b4), P(0x099dc), P(0x099e0), P(0x099e4), P(0x099e8), 859 P(0x099ec), P(0x099f0), P(0x0a208), P(0x0a210), P(0x0a214), 860 P(0x0a218), P(0x0a220), P(0x0a224), P(0x0a228), P(0x0a22c), 861 P(0x0a234), P(0x0a238), P(0x0a244), P(0x0a248), P(0x0a24c), 862 P(0x0a254), P(0x0a258), P(0x0a25c), P(0x0a260), P(0x0a268), 863 P(0x0a26c), P(0x0a388), P(0x0a38c), P(0x0a390), P(0x0a39c), 864 P(0x0a3a0), P(0x0a3a4), P(0x0a3a8), P(0x0a3ac), P(0x0a3b0), 865 P(0x0a3b4), P(0x0a3b8), P(0x0a3bc), P(0x0a3c0), P(0x0a3c4), 866 P(0x0a3cc), P(0x0a3d0), P(0x0a3d4), P(0x0a3e4), P(0x0a3e8), 867 P(0x0a3ec), P(0x0a3f0), P(0x0a3f4), P(0x0d270), P(0x0d35c), 868 P(0x0d360), P(0x0d364), P(0x0d368), P(0x0d36c), P(0x0d370), 869 P(0x0d374), P(0x0d378), P(0x0d37c), P(0x0d380), P(0x0d384) 870}; 871 872static const uint32_t ar9271_cm_vals[] = { 873 0x00000000, 0x00020045, 0x00000005, 0x00000000, 0x00000008, 874 0x00000008, 0x00000010, 0x00000000, 0x0000001f, 0x00000000, 875 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 876 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002ffc0f, 877 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 878 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000000, 879 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 880 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 881 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 882 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 883 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 884 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 885 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 886 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 887 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 888 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 889 0x00000000, 0x00000002, 0x00000002, 0x0000001f, 0x00000000, 890 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000700, 891 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 892 0x00000000, 0x000fc78f, 0x0000000f, 0x00000000, 0x00000000, 893 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2a80001a, 894 0x05dc01e0, 0x1f402710, 0x01f40000, 0x00001e00, 0x00000000, 895 0x00400000, 0xffffffff, 0x0000ffff, 0x003f3f3f, 0x00000000, 896 0x00000000, 0x00000000, 0x00000000, 0x00020000, 0x00020000, 897 0x00000001, 0x00000052, 0x00000000, 0x00000168, 0x000100aa, 898 0x00003210, 0x08f04810, 0x00000000, 0x00000000, 0x00000000, 899 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 900 0x00000000, 0x00000000, 0x32143320, 0xfaa4fa50, 0x00000100, 901 0x00000000, 0x00000000, 0x0000320a, 0x00000000, 0x00000000, 902 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 903 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 904 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 905 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 906 0x0010f400, 0x00000100, 0x0001e800, 0x00000000, 0x00000000, 907 0x00000000, 0x400000ff, 0x00080922, 0x88a00010, 0x00000000, 908 0x40000000, 0x003e4180, 0x00000000, 0x0000002c, 0x0000002c, 909 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 910 0x00000000, 0x00000000, 0x00000001, 0x00000302, 0x00000e00, 911 0x00ff0000, 0x00000000, 0x00010380, 0x00581043, 0x00000030, 912 0x00000002, 0x000004c2, 0x00140000, 0x0e4548d8, 0x54214514, 913 0x02025820, 0x71c0d388, 0x924934a8, 0x00000000, 0x66964300, 914 0x8db6d961, 0x8db6d96c, 0x6140008b, 0x72ee0a72, 0xbbfffffc, 915 0x000c0db6, 0x6db6246f, 0x6d9b66db, 0x6d8c6dba, 0x00040000, 916 0xdb003012, 0x04924914, 0x21084210, 0xf7d7ffde, 0xc2034080, 917 0x10142c00, 0x00000000, 0xafe68e30, 0xfd14e000, 0x9c0a9f6b, 918 0x00000000, 0x0000a000, 0x00000000, 0x00200400, 0x0040233c, 919 0x00000044, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 920 0x10000fff, 0x04900000, 0x00000001, 0x00000004, 0x1e1f2022, 921 0x0a0b0c0d, 0x00000000, 0x14750604, 0x9280c00a, 0x00020028, 922 0x5f3ca3de, 0x0108ecff, 0x000003ce, 0x192bb514, 0x00000000, 923 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 924 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 925 0x00000000, 0x00000001, 0x201fff00, 0x2def0400, 0x03051000, 926 0x00000820, 0x00000000, 0x00000000, 0xaaaaaaaa, 0x3c466478, 927 0x0cc80caa, 0x00000000, 0x803e68c8, 0x4080a333, 0x00206c10, 928 0x009c4060, 0x01834061, 0x00000400, 0x000003b5, 0x00000000, 929 0x20202020, 0x20202020, 0x00000000, 0xfffffffc, 0x00000000, 930 0x00000000, 0x0ccb5380, 0x15151501, 0xdfa90f01, 0x00000000, 931 0x0ebae9e6, 0x0c000000, 0x20202020, 0x20202020, 0x00000001, 932 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 933 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 934 0x20202020, 0x20202020, 0x20202020, 0x00000000, 0x18c43433, 935 0x00f70081, 0x01036a2f, 0x00000000, 0x0d820820, 0x07ffffef, 936 0x0fffffe7, 0x17ffffe5, 0x1fffffe4, 0x37ffffe3, 0x3fffffe3, 937 0x57ffffe3, 0x5fffffe2, 0x7fffffe2, 0x7f3c7bba, 0xf3307ff0 938}; 939 940static const struct athn_ini ar9271_ini = { 941 .nregs = __arraycount(ar9271_regs), 942 .regs = ar9271_regs, 943 .vals_5g20 = NULL, /* 2GHz only. */ 944#ifndef IEEE80211_NO_HT 945 .vals_5g40 = NULL, /* 2GHz only. */ 946 .vals_2g40 = ar9271_vals_2g40, 947#endif 948 .vals_2g20 = ar9271_vals_2g20, 949 .ncmregs = __arraycount(ar9271_cm_regs), 950 .cmregs = ar9271_cm_regs, 951 .cmvals = ar9271_cm_vals, 952}; 953#endif /* NATHN_USB */ 954 955/* 956 * AR9285 1.2 Tx gains. 957 */ 958static const uint16_t ar9285_1_2_tx_gain_regs[] = { 959 P(0x0a300), P(0x0a304), P(0x0a308), P(0x0a30c), P(0x0a310), 960 P(0x0a314), P(0x0a318), P(0x0a31c), P(0x0a320), P(0x0a324), 961 P(0x0a328), P(0x0a32c), P(0x0a330), P(0x0a334), P(0x0a338), 962 P(0x0a33c), P(0x0a340), P(0x0a344), P(0x0a348), P(0x0a34c), 963 P(0x0a350), P(0x0a354), P(0x07814), P(0x07828), P(0x07830), 964 P(0x07838), P(0x0783c), P(0x07840), P(0x0786c), P(0x07820), 965 P(0x0a274), P(0x0a278), P(0x0a27c), P(0x0a394), P(0x0a398), 966 P(0x0a3dc), P(0x0a3e0) 967}; 968 969static const uint32_t ar9285_1_2_tx_gain_vals_2g[] = { 970 0x00000000, 0x00009200, 0x00010208, 0x00019608, 0x00022618, 971 0x0002a6c9, 0x00031710, 0x00035718, 0x00038758, 0x0003c75a, 972 0x0004075c, 0x0004475e, 0x0004679f, 0x000487df, 0x0003891e, 973 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 974 0x0003e9df, 0x0003e9df, 0x924934a8, 0x26d2491b, 0xedb6d96e, 975 0xfac68801, 0x0001fffe, 0xffeb1a20, 0x48609eb4, 0x00000c04, 976 0x0a21a652, 0x39ce739c, 0x050e039c, 0x39ce739c, 0x0000039c, 977 0x39ce739c, 0x0000039c 978}; 979 980static const struct athn_gain ar9285_1_2_tx_gain = { 981 __arraycount(ar9285_1_2_tx_gain_regs), 982 ar9285_1_2_tx_gain_regs, 983 NULL, /* 2GHz only. */ 984 ar9285_1_2_tx_gain_vals_2g 985}; 986 987static const uint32_t ar9285_1_2_tx_gain_high_power_vals_2g[] = { 988 0x00000000, 0x00006200, 0x00008201, 0x0000b240, 0x0000d241, 989 0x0000f600, 0x00012800, 0x00016802, 0x0001b805, 0x00021a80, 990 0x00028b00, 0x0002ab40, 0x0002cd80, 0x00033d82, 0x0003891e, 991 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 992 0x0003e9df, 0x0003e9df, 0x924934a8, 0x26d2491b, 0xedb6d96e, 993 0xfac68803, 0x0001fffe, 0xffeb1a20, 0x08609ebe, 0x00000c00, 994 0x0a216652, 0x0e739ce7, 0x050380e7, 0x0e739ce7, 0x000000e7, 995 0x0e739ce7, 0x000000e7 996}; 997 998static const struct athn_gain ar9285_1_2_tx_gain_high_power = { 999 __arraycount(ar9285_1_2_tx_gain_regs), 1000 ar9285_1_2_tx_gain_regs, 1001 NULL, /* 2GHz only. */ 1002 ar9285_1_2_tx_gain_high_power_vals_2g 1003}; 1004 1005/* 1006 * AR9285 XE 2.0 Tx gains. 1007 */ 1008static const uint32_t ar9285_2_0_tx_gain_vals_2g[] = { 1009 0x00000000, 0x00009200, 0x00010208, 0x00019608, 0x00022618, 1010 0x0002a6c9, 0x00031710, 0x00035718, 0x00038758, 0x0003c75a, 1011 0x0004075c, 0x0004475e, 0x0004679f, 0x000487df, 0x0003891e, 1012 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 1013 0x0003e9df, 0x0003e9df, 0x92497ca8, 0x2ad2491b, 0xedb6da6e, 1014 0xdac71441, 0x2481f6fe, 0xba5f638c, 0x48609eb4, 0x00000c04, 1015 0x0a21a652, 0x39ce739c, 0x050e039c, 0x39ce739c, 0x0000039c, 1016 0x39ce739c, 0x0000039c 1017}; 1018 1019static const struct athn_gain ar9285_2_0_tx_gain = { 1020 __arraycount(ar9285_1_2_tx_gain_regs), 1021 ar9285_1_2_tx_gain_regs, 1022 NULL, /* 2GHz only. */ 1023 ar9285_2_0_tx_gain_vals_2g 1024}; 1025 1026static const uint32_t ar9285_2_0_tx_gain_high_power_vals_2g[] = { 1027 0x00000000, 0x00006200, 0x00008201, 0x0000b240, 0x0000d241, 1028 0x0000f600, 0x00012800, 0x00016802, 0x0001b805, 0x00021a80, 1029 0x00028b00, 0x0002ab40, 0x0002cd80, 0x00033d82, 0x0003891e, 1030 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 1031 0x0003e9df, 0x0003e9df, 0x92497ca8, 0x2ad2491b, 0xedb6da6e, 1032 0xdac71443, 0x2481f6fe, 0xba5f638c, 0x08609ebe, 0x00000c00, 1033 0x0a216652, 0x0e739ce7, 0x050380e7, 0x0e739ce7, 0x000000e7, 1034 0x0e739ce7, 0x000000e7 1035}; 1036 1037static const struct athn_gain ar9285_2_0_tx_gain_high_power = { 1038 __arraycount(ar9285_1_2_tx_gain_regs), 1039 ar9285_1_2_tx_gain_regs, 1040 NULL, /* 2GHz only. */ 1041 ar9285_2_0_tx_gain_high_power_vals_2g 1042}; 1043 1044#if NATHN_USB > 0 1045/* 1046 * AR9271 Tx gains. 1047 */ 1048static const uint16_t ar9271_tx_gain_regs[] = { 1049 P(0x0a300), P(0x0a304), P(0x0a308), P(0x0a30c), P(0x0a310), 1050 P(0x0a314), P(0x0a318), P(0x0a31c), P(0x0a320), P(0x0a324), 1051 P(0x0a328), P(0x0a32c), P(0x0a330), P(0x0a334), P(0x0a338), 1052 P(0x0a33c), P(0x0a340), P(0x0a344), P(0x0a348), P(0x0a34c), 1053 P(0x0a350), P(0x0a354), P(0x07838), P(0x07824), P(0x0786c), 1054 P(0x07820), P(0x0a274), P(0x0a278), P(0x0a27c), P(0x0a394), 1055 P(0x0a398), P(0x0a3dc), P(0x0a3e0) 1056}; 1057 1058static const uint32_t ar9271_tx_gain_vals_2g[] = { 1059 0x00000000, 0x00009200, 0x00010208, 0x00019608, 0x0001e610, 1060 0x0002d6d0, 0x00039758, 0x0003b759, 0x0003d75a, 0x0004175c, 1061 0x0004575e, 0x0004979f, 0x0004d7df, 0x000368de, 0x0003891e, 1062 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 1063 0x0003e9df, 0x0003e9df, 0x00000029, 0x00d8abff, 0x48609eb4, 1064 0x00000c04, 0x0a218652, 0x3bdef7bd, 0x050e83bd, 0x3bdef7bd, 1065 0x000003bd, 0x3bdef7bd, 0x000003bd 1066}; 1067 1068static const struct athn_gain ar9271_tx_gain = { 1069 __arraycount(ar9271_tx_gain_regs), 1070 ar9271_tx_gain_regs, 1071 NULL, /* 2GHz only. */ 1072 ar9271_tx_gain_vals_2g 1073}; 1074 1075static const uint32_t ar9271_tx_gain_high_power_vals_2g[] = { 1076 0x00010000, 0x00016200, 0x00018201, 0x0001b240, 0x0001d241, 1077 0x0001f600, 0x00022800, 0x00026802, 0x0002b805, 0x0002ea41, 1078 0x00038b00, 0x0003ab40, 0x0003cd80, 0x000368de, 0x0003891e, 1079 0x0003a95e, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 1080 0x0003e9df, 0x0003e9df, 0x0000002b, 0x00d8a7ff, 0x08609eba, 1081 0x00000c00, 0x0a214652, 0x0e739ce7, 0x05018063, 0x06318c63, 1082 0x00000063, 0x06318c63, 0x00000063 1083}; 1084 1085static const struct athn_gain ar9271_tx_gain_high_power = { 1086 __arraycount(ar9271_tx_gain_regs), 1087 ar9271_tx_gain_regs, 1088 NULL, /* 2GHz only. */ 1089 ar9271_tx_gain_high_power_vals_2g 1090}; 1091#endif /* NATHN_USB */ 1092 1093#endif /* _ARN9285REG_H_ */ 1094