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