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