Home | History | Annotate | Line # | Download | only in ic
      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