Home | History | Annotate | Line # | Download | only in ic
      1  1.1  christos /*	$NetBSD: arn9280reg.h,v 1.1 2013/03/30 02:53:01 christos Exp $	*/
      2  1.1  christos /*	$OpenBSD: ar9280reg.h,v 1.6 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 _ARN9280REG_H_
     22  1.1  christos #define _ARN9280REG_H_
     23  1.1  christos 
     24  1.1  christos #define AR9280_MAX_CHAINS	2
     25  1.1  christos 
     26  1.1  christos #define AR9280_PD_GAIN_BOUNDARY_DEFAULT	56
     27  1.1  christos #define AR9280_PHY_CCA_MAX_GOOD_VALUE	(-112)
     28  1.1  christos 
     29  1.1  christos #define AR9280_PHY_SYNTH_CONTROL	0x9874
     30  1.1  christos 
     31  1.1  christos /* Bits for AR9280_PHY_SYNTH_CONTROL. */
     32  1.1  christos #define AR9280_BMODE		0x20000000
     33  1.1  christos #define AR9280_FRACMODE		0x10000000
     34  1.1  christos #define AR9280_AMODE_REFSEL_M	0x0c000000
     35  1.1  christos #define AR9280_AMODE_REFSEL_S	26
     36  1.1  christos 
     37  1.1  christos /*
     38  1.1  christos  * NB: The AR9280 uses the same ROM layout than the AR5416.
     39  1.1  christos  */
     40  1.1  christos 
     41  1.1  christos /* Macro to "pack" registers to 16-bit to save some .rodata space. */
     42  1.1  christos #define P(x)	(x)
     43  1.1  christos 
     44  1.1  christos /*
     45  1.1  christos  * AR9280 2.0 initialization values.
     46  1.1  christos  */
     47  1.1  christos static const uint16_t ar9280_2_0_regs[] = {
     48  1.1  christos 	P(0x01030), P(0x01070), P(0x010b0), P(0x010f0), P(0x08014),
     49  1.1  christos 	P(0x0801c), P(0x08120), P(0x081d0), P(0x08318), P(0x09804),
     50  1.1  christos 	P(0x09820), P(0x09824), P(0x09828), P(0x09834), P(0x09838),
     51  1.1  christos 	P(0x09840), P(0x09844), P(0x09850), P(0x09858), P(0x0985c),
     52  1.1  christos 	P(0x09860), P(0x09864), P(0x09868), P(0x0986c), P(0x09914),
     53  1.1  christos 	P(0x09918), P(0x09924), P(0x09944), P(0x09960), P(0x0a960),
     54  1.1  christos 	P(0x09964), P(0x0c968), P(0x099b8), P(0x099bc), P(0x099c0),
     55  1.1  christos 	P(0x0a204), P(0x0a20c), P(0x0b20c), P(0x0a21c), P(0x0a230),
     56  1.1  christos 	P(0x0a23c), P(0x0a250), P(0x0a358), P(0x0a388), P(0x0a3d8),
     57  1.1  christos 	P(0x07894)
     58  1.1  christos };
     59  1.1  christos 
     60  1.1  christos static const uint32_t ar9280_2_0_vals_5g20[] = {
     61  1.1  christos 	0x00000230, 0x00000168, 0x00000e60, 0x00000000, 0x03e803e8,
     62  1.1  christos 	0x128d8027, 0x08f04800, 0x00003210, 0x00003e80, 0x00000300,
     63  1.1  christos 	0x02020200, 0x01000e0e, 0x0a020001, 0x00000e0e, 0x00000007,
     64  1.1  christos 	0x206a022e, 0x0372161e, 0x6c4000e2, 0x7ec88d2e, 0x31395d5e,
     65  1.1  christos 	0x00048d18, 0x0001ce00, 0x5ac640d0, 0x06903081, 0x000007d0,
     66  1.1  christos 	0x0000000a, 0xd00a8a0b, 0xffbc1010, 0x00000010, 0x00000010,
     67  1.1  christos 	0x00000210, 0x000003b5, 0x0000001c, 0x00000a00, 0x05eea6d4,
     68  1.1  christos 	0x00000444, 0x00000014, 0x00000014, 0x1883800a, 0x00000000,
     69  1.1  christos 	0x13c88000, 0x001ff000, 0x7999aa02, 0x0c000000, 0x00000000,
     70  1.1  christos 	0x5a508000
     71  1.1  christos };
     72  1.1  christos 
     73  1.1  christos #ifndef IEEE80211_NO_HT
     74  1.1  christos static const uint32_t ar9280_2_0_vals_5g40[] = {
     75  1.1  christos 	0x00000460, 0x000002d0, 0x00001cc0, 0x00000000, 0x07d007d0,
     76  1.1  christos 	0x128d804f, 0x08f04800, 0x00003210, 0x00007d00, 0x000003c4,
     77  1.1  christos 	0x02020200, 0x01000e0e, 0x0a020001, 0x00000e0e, 0x00000007,
     78  1.1  christos 	0x206a022e, 0x0372161e, 0x6d4000e2, 0x7ec88d2e, 0x3139605e,
     79  1.1  christos 	0x00048d18, 0x0001ce00, 0x5ac640d0, 0x06903081, 0x00000fa0,
     80  1.1  christos 	0x00000014, 0xd00a8a0b, 0xffbc1010, 0x00000010, 0x00000010,
     81  1.1  christos 	0x00000210, 0x000003b5, 0x0000001c, 0x00000a00, 0x05eea6d4,
     82  1.1  christos 	0x00000444, 0x00000014, 0x00000014, 0x1883800a, 0x00000000,
     83  1.1  christos 	0x13c88000, 0x001ff000, 0x7999aa02, 0x0c000000, 0x00000000,
     84  1.1  christos 	0x5a508000
     85  1.1  christos };
     86  1.1  christos 
     87  1.1  christos static const uint32_t ar9280_2_0_vals_2g40[] = {
     88  1.1  christos 	0x000002c0, 0x00000318, 0x00007c70, 0x00000000, 0x10801600,
     89  1.1  christos 	0x12e00057, 0x08f04810, 0x0000320a, 0x00006880, 0x000003c4,
     90  1.1  christos 	0x02020200, 0x01000e0e, 0x0a020001, 0x00000e0e, 0x00000007,
     91  1.1  christos 	0x206a012e, 0x037216a0, 0x6d4000e2, 0x7ec84d2e, 0x3139605e,
     92  1.1  christos 	0x00048d20, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x00001130,
     93  1.1  christos 	0x00000268, 0xd00a8a0d, 0xffbc1010, 0x00000010, 0x00000010,
     94  1.1  christos 	0x00000210, 0x000003ce, 0x0000001c, 0x00000c00, 0x05eea6d4,
     95  1.1  christos 	0x00000444, 0x0001f019, 0x0001f019, 0x1883800a, 0x00000210,
     96  1.1  christos 	0x13c88001, 0x0004a000, 0x7999aa0e, 0x08000000, 0x00000000,
     97  1.1  christos 	0x5a508000
     98  1.1  christos };
     99  1.1  christos #endif
    100  1.1  christos 
    101  1.1  christos static const uint32_t ar9280_2_0_vals_2g20[] = {
    102  1.1  christos 	0x00000160, 0x0000018c, 0x00003e38, 0x00000000, 0x08400b00,
    103  1.1  christos 	0x12e0002b, 0x08f04810, 0x0000320a, 0x00003440, 0x00000300,
    104  1.1  christos 	0x02020200, 0x01000e0e, 0x0a020001, 0x00000e0e, 0x00000007,
    105  1.1  christos 	0x206a012e, 0x037216a0, 0x6c4000e2, 0x7ec84d2e, 0x31395d5e,
    106  1.1  christos 	0x00048d20, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x00000898,
    107  1.1  christos 	0x0000000b, 0xd00a8a0d, 0xffbc1010, 0x00000010, 0x00000010,
    108  1.1  christos 	0x00000210, 0x000003ce, 0x0000001c, 0x00000c00, 0x05eea6d4,
    109  1.1  christos 	0x00000444, 0x0001f019, 0x0001f019, 0x1883800a, 0x00000108,
    110  1.1  christos 	0x13c88000, 0x0004a000, 0x7999aa0e, 0x0c000000, 0x00000000,
    111  1.1  christos 	0x5a508000
    112  1.1  christos };
    113  1.1  christos 
    114  1.1  christos static const uint16_t ar9280_2_0_cm_regs[] = {
    115  1.1  christos 	P(0x0000c), P(0x00030), P(0x00034), P(0x00040), P(0x00044),
    116  1.1  christos 	P(0x00048), P(0x0004c), P(0x00050), P(0x00054), P(0x00800),
    117  1.1  christos 	P(0x00804), P(0x00808), P(0x0080c), P(0x00810), P(0x00814),
    118  1.1  christos 	P(0x00818), P(0x0081c), P(0x00820), P(0x00824), P(0x01040),
    119  1.1  christos 	P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054),
    120  1.1  christos 	P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x01230),
    121  1.1  christos 	P(0x01270), P(0x01038), P(0x01078), P(0x010b8), P(0x010f8),
    122  1.1  christos 	P(0x01138), P(0x01178), P(0x011b8), P(0x011f8), P(0x01238),
    123  1.1  christos 	P(0x01278), P(0x012b8), P(0x012f8), P(0x01338), P(0x01378),
    124  1.1  christos 	P(0x013b8), P(0x013f8), P(0x01438), P(0x01478), P(0x014b8),
    125  1.1  christos 	P(0x014f8), P(0x01538), P(0x01578), P(0x015b8), P(0x015f8),
    126  1.1  christos 	P(0x01638), P(0x01678), P(0x016b8), P(0x016f8), P(0x01738),
    127  1.1  christos 	P(0x01778), P(0x017b8), P(0x017f8), P(0x0103c), P(0x0107c),
    128  1.1  christos 	P(0x010bc), P(0x010fc), P(0x0113c), P(0x0117c), P(0x011bc),
    129  1.1  christos 	P(0x011fc), P(0x0123c), P(0x0127c), P(0x012bc), P(0x012fc),
    130  1.1  christos 	P(0x0133c), P(0x0137c), P(0x013bc), P(0x013fc), P(0x0143c),
    131  1.1  christos 	P(0x0147c), P(0x04030), P(0x0403c), P(0x04024), P(0x04060),
    132  1.1  christos 	P(0x04064), P(0x07010), P(0x07034), P(0x07038), P(0x08004),
    133  1.1  christos 	P(0x08008), P(0x0800c), P(0x08018), P(0x08020), P(0x08038),
    134  1.1  christos 	P(0x0803c), P(0x08048), P(0x08054), P(0x08058), P(0x0805c),
    135  1.1  christos 	P(0x08060), P(0x08064), P(0x08070), P(0x080c0), P(0x080c4),
    136  1.1  christos 	P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), P(0x080d8),
    137  1.1  christos 	P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), P(0x080f0),
    138  1.1  christos 	P(0x080f4), P(0x080f8), P(0x080fc), P(0x08100), P(0x08104),
    139  1.1  christos 	P(0x08108), P(0x0810c), P(0x08110), P(0x08118), P(0x0811c),
    140  1.1  christos 	P(0x08124), P(0x08128), P(0x0812c), P(0x08130), P(0x08134),
    141  1.1  christos 	P(0x08138), P(0x0813c), P(0x08144), P(0x08168), P(0x0816c),
    142  1.1  christos 	P(0x08170), P(0x08174), P(0x08178), P(0x0817c), P(0x081c0),
    143  1.1  christos 	P(0x081ec), P(0x081f0), P(0x081f4), P(0x081f8), P(0x081fc),
    144  1.1  christos 	P(0x08200), P(0x08204), P(0x08208), P(0x0820c), P(0x08210),
    145  1.1  christos 	P(0x08214), P(0x08218), P(0x0821c), P(0x08220), P(0x08224),
    146  1.1  christos 	P(0x08228), P(0x0822c), P(0x08230), P(0x08234), P(0x08238),
    147  1.1  christos 	P(0x0823c), P(0x08240), P(0x08244), P(0x08248), P(0x0824c),
    148  1.1  christos 	P(0x08250), P(0x08254), P(0x08258), P(0x0825c), P(0x08260),
    149  1.1  christos 	P(0x08264), P(0x08270), P(0x08274), P(0x08278), P(0x0827c),
    150  1.1  christos 	P(0x08284), P(0x08288), P(0x0828c), P(0x08294), P(0x08298),
    151  1.1  christos 	P(0x0829c), P(0x08300), P(0x08314), P(0x08328), P(0x0832c),
    152  1.1  christos 	P(0x08330), P(0x08334), P(0x08338), P(0x0833c), P(0x08340),
    153  1.1  christos 	P(0x08344), P(0x09808), P(0x0980c), P(0x09810), P(0x09814),
    154  1.1  christos 	P(0x0981c), P(0x0982c), P(0x09830), P(0x0983c), P(0x0984c),
    155  1.1  christos 	P(0x0a84c), P(0x09854), P(0x09900), P(0x09904), P(0x09908),
    156  1.1  christos 	P(0x0990c), P(0x09910), P(0x0991c), P(0x09920), P(0x0a920),
    157  1.1  christos 	P(0x09928), P(0x0992c), P(0x09934), P(0x09938), P(0x0993c),
    158  1.1  christos 	P(0x09948), P(0x0994c), P(0x09954), P(0x09958), P(0x09940),
    159  1.1  christos 	P(0x0c95c), P(0x09970), P(0x09974), P(0x09978), P(0x0997c),
    160  1.1  christos 	P(0x09980), P(0x09984), P(0x09988), P(0x0998c), P(0x09990),
    161  1.1  christos 	P(0x09994), P(0x09998), P(0x0999c), P(0x099a0), P(0x099a4),
    162  1.1  christos 	P(0x099a8), P(0x099ac), P(0x099b0), P(0x099b4), P(0x099c4),
    163  1.1  christos 	P(0x099c8), P(0x099cc), P(0x099d0), P(0x099d4), P(0x099d8),
    164  1.1  christos 	P(0x099dc), P(0x099e0), P(0x099e4), P(0x099e8), P(0x099ec),
    165  1.1  christos 	P(0x099f0), P(0x099fc), P(0x0a208), P(0x0a210), P(0x0a214),
    166  1.1  christos 	P(0x0a218), P(0x0a220), P(0x0a224), P(0x0a228), P(0x0a22c),
    167  1.1  christos 	P(0x0a234), P(0x0a238), P(0x0a240), P(0x0a244), P(0x0a248),
    168  1.1  christos 	P(0x0a24c), P(0x0a254), P(0x0a258), P(0x0a25c), P(0x0a260),
    169  1.1  christos 	P(0x0a268), P(0x0a26c), P(0x0b26c), P(0x0d270), P(0x0a278),
    170  1.1  christos 	P(0x0d35c), P(0x0d360), P(0x0d364), P(0x0d368), P(0x0d36c),
    171  1.1  christos 	P(0x0d370), P(0x0d374), P(0x0d378), P(0x0d37c), P(0x0d380),
    172  1.1  christos 	P(0x0d384), P(0x0a38c), P(0x0a390), P(0x0a394), P(0x0a398),
    173  1.1  christos 	P(0x0a39c), P(0x0a3a0), P(0x0a3a4), P(0x0a3a8), P(0x0a3ac),
    174  1.1  christos 	P(0x0a3b0), P(0x0a3b4), P(0x0a3b8), P(0x0a3bc), P(0x0a3c0),
    175  1.1  christos 	P(0x0a3c4), P(0x0a3c8), P(0x0a3cc), P(0x0a3d0), P(0x0a3d4),
    176  1.1  christos 	P(0x0a3dc), P(0x0a3e0), P(0x0a3e4), P(0x0a3e8), P(0x07800),
    177  1.1  christos 	P(0x07804), P(0x07808), P(0x0780c), P(0x07810), P(0x07818),
    178  1.1  christos 	P(0x07824), P(0x07828), P(0x0782c), P(0x07830), P(0x07834),
    179  1.1  christos 	P(0x0783c), P(0x07848), P(0x0784c), P(0x07850), P(0x07854),
    180  1.1  christos 	P(0x07858), P(0x07860), P(0x07864), P(0x07868), P(0x0786c),
    181  1.1  christos 	P(0x07870), P(0x07874), P(0x07878), P(0x0787c), P(0x07880),
    182  1.1  christos 	P(0x07884), P(0x07888), P(0x0788c), P(0x07890), P(0x07898)
    183  1.1  christos };
    184  1.1  christos 
    185  1.1  christos static const uint32_t ar9280_2_0_cm_vals[] = {
    186  1.1  christos 	0x00000000, 0x00020015, 0x00000005, 0x00000000, 0x00000008,
    187  1.1  christos 	0x00000008, 0x00000010, 0x00000000, 0x0000001f, 0x00000000,
    188  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    189  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002ffc0f,
    190  1.1  christos 	0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f,
    191  1.1  christos 	0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000000,
    192  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    193  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    194  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    195  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    196  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    197  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    198  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    199  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    200  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    201  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    202  1.1  christos 	0x00000000, 0x00000002, 0x00000002, 0x0000001f, 0x00000000,
    203  1.1  christos 	0x00000000, 0x00000033, 0x00000002, 0x000004c2, 0x00000000,
    204  1.1  christos 	0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x00000000,
    205  1.1  christos 	0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x000fc78f,
    206  1.1  christos 	0x0000000f, 0x00000000, 0x00000000, 0x2a80001a, 0x05dc01e0,
    207  1.1  christos 	0x1f402710, 0x01f40000, 0x00001e00, 0x00000000, 0x00400000,
    208  1.1  christos 	0xffffffff, 0x0000ffff, 0x003f3f3f, 0x00000000, 0x00000000,
    209  1.1  christos 	0x00000000, 0x00000000, 0x00020000, 0x00020000, 0x00000001,
    210  1.1  christos 	0x00000052, 0x00000000, 0x00000168, 0x000100aa, 0x00003210,
    211  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    212  1.1  christos 	0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
    213  1.1  christos 	0x32143320, 0xfaa4fa50, 0x00000100, 0x00000000, 0x00000000,
    214  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    215  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    216  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    217  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    218  1.1  christos 	0x00000000, 0x00100000, 0x0010f400, 0x00000100, 0x0001e800,
    219  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x400000ff, 0x00080922,
    220  1.1  christos 	0x88a00010, 0x00000000, 0x40000000, 0x003e4180, 0x00000000,
    221  1.1  christos 	0x0000002c, 0x0000002c, 0x00000000, 0x00000000, 0x00000000,
    222  1.1  christos 	0x00000000, 0x00000040, 0x00000000, 0x00000000, 0x00000007,
    223  1.1  christos 	0x00000302, 0x00000e00, 0x00ff0000, 0x00000000, 0x000107ff,
    224  1.1  christos 	0x00481043, 0x00000000, 0xafa68e30, 0xfd14e000, 0x9c0a9f6b,
    225  1.1  christos 	0x00000000, 0x0000a000, 0x00000000, 0x00200400, 0x0040233c,
    226  1.1  christos 	0x0040233c, 0x00000044, 0x00000000, 0x00000000, 0x00000000,
    227  1.1  christos 	0x00000000, 0x01002310, 0x10000fff, 0x04900000, 0x04900000,
    228  1.1  christos 	0x00000001, 0x00000004, 0x1e1f2022, 0x0a0b0c0d, 0x00000000,
    229  1.1  christos 	0x9280c00a, 0x00020028, 0x5f3ca3de, 0x2108ecff, 0x14750604,
    230  1.1  christos 	0x004b6a8e, 0x190fb514, 0x00000000, 0x00000001, 0x00000000,
    231  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    232  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
    233  1.1  christos 	0x201fff00, 0x006f0000, 0x03051000, 0x00000820, 0x06336f77,
    234  1.1  christos 	0x6af6532f, 0x08f186c8, 0x00046384, 0x00000000, 0x00000000,
    235  1.1  christos 	0x00000000, 0x00000000, 0xaaaaaaaa, 0x3c466478, 0x0cc80caa,
    236  1.1  christos 	0x00000000, 0x00001042, 0x803e4788, 0x4080a333, 0x40206c10,
    237  1.1  christos 	0x009c4060, 0x01834061, 0x00000400, 0x000003b5, 0x233f7180,
    238  1.1  christos 	0x20202020, 0x20202020, 0x38490a20, 0x00007bb6, 0x0fff3ffc,
    239  1.1  christos 	0x00000000, 0x00000000, 0x0cdbd380, 0x0f0f0f01, 0xdfa91f01,
    240  1.1  christos 	0x00000000, 0x0e79e5c6, 0x0e79e5c6, 0x00820820, 0x1ce739ce,
    241  1.1  christos 	0x07ffffef, 0x0fffffe7, 0x17ffffe5, 0x1fffffe4, 0x37ffffe3,
    242  1.1  christos 	0x3fffffe3, 0x57ffffe3, 0x5fffffe2, 0x7fffffe2, 0x7f3c7bba,
    243  1.1  christos 	0xf3307ff0, 0x20202020, 0x20202020, 0x1ce739ce, 0x000001ce,
    244  1.1  christos 	0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    245  1.1  christos 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    246  1.1  christos 	0x00000000, 0x00000246, 0x20202020, 0x20202020, 0x20202020,
    247  1.1  christos 	0x1ce739ce, 0x000001ce, 0x00000000, 0x18c43433, 0x00040000,
    248  1.1  christos 	0xdb005012, 0x04924914, 0x21084210, 0x6d801300, 0x07e41000,
    249  1.1  christos 	0x00040000, 0xdb005012, 0x04924914, 0x21084210, 0x6d801300,
    250  1.1  christos 	0x07e40000, 0x00100000, 0x773f0567, 0x54214514, 0x12035828,
    251  1.1  christos 	0x9259269a, 0x52802000, 0x0a8e370e, 0xc0102850, 0x812d4000,
    252  1.1  christos 	0x807ec400, 0x001b6db0, 0x00376b63, 0x06db6db6, 0x006d8000,
    253  1.1  christos 	0xffeffffe, 0xffeffffe, 0x00010000, 0x02060aeb, 0x2a850160
    254  1.1  christos };
    255  1.1  christos 
    256  1.1  christos static const uint16_t ar9280_2_0_fast_clock_regs[] = {
    257  1.1  christos 	P(0x01030), P(0x01070), P(0x010b0), P(0x08014), P(0x0801c),
    258  1.1  christos 	P(0x08318), P(0x09820), P(0x09824), P(0x09828), P(0x09834),
    259  1.1  christos 	P(0x09844), P(0x09914), P(0x09918)
    260  1.1  christos };
    261  1.1  christos 
    262  1.1  christos static const uint32_t ar9280_2_0_fast_clock_vals_5g20[] = {
    263  1.1  christos 	0x00000268, 0x0000018c, 0x00000fd0, 0x044c044c, 0x148ec02b,
    264  1.1  christos 	0x000044c0, 0x02020200, 0x01000f0f, 0x0b020001, 0x00000f0f,
    265  1.1  christos 	0x03721821, 0x00000898, 0x0000000b
    266  1.1  christos };
    267  1.1  christos 
    268  1.1  christos #ifndef IEEE80211_NO_HT
    269  1.1  christos static const uint32_t ar9280_2_0_fast_clock_vals_5g40[] = {
    270  1.1  christos 	0x000004d0, 0x00000318, 0x00001fa0, 0x08980898, 0x148ec057,
    271  1.1  christos 	0x00008980, 0x02020200, 0x01000f0f, 0x0b020001, 0x00000f0f,
    272  1.1  christos 	0x03721821, 0x00001130, 0x00000016
    273  1.1  christos };
    274  1.1  christos #endif
    275  1.1  christos 
    276  1.1  christos static const struct athn_ini ar9280_2_0_ini = {
    277  1.1  christos 	__arraycount(ar9280_2_0_regs),
    278  1.1  christos 	ar9280_2_0_regs,
    279  1.1  christos 	ar9280_2_0_vals_5g20,
    280  1.1  christos #ifndef IEEE80211_NO_HT
    281  1.1  christos 	ar9280_2_0_vals_5g40,
    282  1.1  christos 	ar9280_2_0_vals_2g40,
    283  1.1  christos #endif
    284  1.1  christos 	ar9280_2_0_vals_2g20,
    285  1.1  christos 	__arraycount(ar9280_2_0_cm_regs),
    286  1.1  christos 	ar9280_2_0_cm_regs,
    287  1.1  christos 	ar9280_2_0_cm_vals,
    288  1.1  christos 	__arraycount(ar9280_2_0_fast_clock_regs),
    289  1.1  christos 	ar9280_2_0_fast_clock_regs,
    290  1.1  christos 	ar9280_2_0_fast_clock_vals_5g20,
    291  1.1  christos #ifndef IEEE80211_NO_HT
    292  1.1  christos 	ar9280_2_0_fast_clock_vals_5g40
    293  1.1  christos #endif
    294  1.1  christos };
    295  1.1  christos 
    296  1.1  christos /*
    297  1.1  christos  * AR9280 2.0 Tx gains.
    298  1.1  christos  */
    299  1.1  christos static const uint16_t ar9280_2_0_tx_gain_regs[] = {
    300  1.1  christos 	P(0x0a274), P(0x0a27c), P(0x0a300), P(0x0a304), P(0x0a308),
    301  1.1  christos 	P(0x0a30c), P(0x0a310), P(0x0a314), P(0x0a318), P(0x0a31c),
    302  1.1  christos 	P(0x0a320), P(0x0a324), P(0x0a328), P(0x0a32c), P(0x0a330),
    303  1.1  christos 	P(0x0a334), P(0x0a338), P(0x0a33c), P(0x0a340), P(0x0a344),
    304  1.1  christos 	P(0x0a348), P(0x0a34c), P(0x0a350), P(0x0a354), P(0x0a3ec),
    305  1.1  christos 	P(0x07814), P(0x07838), P(0x0781c), P(0x07840), P(0x07820),
    306  1.1  christos 	P(0x07844)
    307  1.1  christos };
    308  1.1  christos 
    309  1.1  christos static const uint32_t ar9280_2_0_tx_gain_vals_5g[] = {
    310  1.1  christos 	0x0a19c652, 0x050701ce, 0x00000000, 0x00003002, 0x00006004,
    311  1.1  christos 	0x0000a006, 0x0000e012, 0x00011014, 0x0001504a, 0x0001904c,
    312  1.1  christos 	0x0001c04e, 0x00020092, 0x0002410a, 0x0002710c, 0x0002b18b,
    313  1.1  christos 	0x0002e1cc, 0x000321ec, 0x000321ec, 0x000321ec, 0x000321ec,
    314  1.1  christos 	0x000321ec, 0x000321ec, 0x000321ec, 0x000321ec, 0x00f70081,
    315  1.1  christos 	0x0019beff, 0x0019beff, 0x00392000, 0x00392000, 0x92592480,
    316  1.1  christos 	0x92592480
    317  1.1  christos };
    318  1.1  christos 
    319  1.1  christos static const uint32_t ar9280_2_0_tx_gain_vals_2g[] = {
    320  1.1  christos 	0x0a1aa652, 0x050701ce, 0x00000000, 0x00003002, 0x00008009,
    321  1.1  christos 	0x0000b00b, 0x0000e012, 0x00012048, 0x0001604a, 0x0001a211,
    322  1.1  christos 	0x0001e213, 0x0002121b, 0x00024412, 0x00028414, 0x0002b44a,
    323  1.1  christos 	0x00030649, 0x0003364b, 0x00038a49, 0x0003be48, 0x0003ee4a,
    324  1.1  christos 	0x00042e88, 0x00046e8a, 0x00049ec9, 0x0004bf42, 0x00f70081,
    325  1.1  christos 	0x0019beff, 0x0019beff, 0x00392000, 0x00392000, 0x92592480,
    326  1.1  christos 	0x92592480
    327  1.1  christos };
    328  1.1  christos 
    329  1.1  christos static const struct athn_gain ar9280_2_0_tx_gain = {
    330  1.1  christos 	__arraycount(ar9280_2_0_tx_gain_regs),
    331  1.1  christos 	ar9280_2_0_tx_gain_regs,
    332  1.1  christos 	ar9280_2_0_tx_gain_vals_5g,
    333  1.1  christos 	ar9280_2_0_tx_gain_vals_2g
    334  1.1  christos };
    335  1.1  christos 
    336  1.1  christos static const uint32_t ar9280_2_0_tx_gain_high_power_vals_5g[] = {
    337  1.1  christos 	0x0a19e652, 0x050739ce, 0x00000000, 0x00003002, 0x00006004,
    338  1.1  christos 	0x0000a006, 0x0000e012, 0x00011014, 0x0001504a, 0x0001904c,
    339  1.1  christos 	0x0001c04e, 0x00021092, 0x0002510a, 0x0002910c, 0x0002c18b,
    340  1.1  christos 	0x0002f1cc, 0x000321eb, 0x000341ec, 0x000341ec, 0x000341ec,
    341  1.1  christos 	0x000341ec, 0x000341ec, 0x000341ec, 0x000341ec, 0x00f70081,
    342  1.1  christos 	0x00198eff, 0x00198eff, 0x00172000, 0x00172000, 0xf258a480,
    343  1.1  christos 	0xf258a480
    344  1.1  christos };
    345  1.1  christos 
    346  1.1  christos static const uint32_t ar9280_2_0_tx_gain_high_power_vals_2g[] = {
    347  1.1  christos 	0x0a1aa652, 0x050739ce, 0x00000000, 0x00004002, 0x00007008,
    348  1.1  christos 	0x0000c010, 0x00010012, 0x00013014, 0x0001820a, 0x0001b211,
    349  1.1  christos 	0x0001e213, 0x00022411, 0x00025413, 0x00029811, 0x0002c813,
    350  1.1  christos 	0x00030a14, 0x00035a50, 0x00039c4c, 0x0003de8a, 0x00042e92,
    351  1.1  christos 	0x00046ed2, 0x0004bed5, 0x0004ff54, 0x00055fd5, 0x00f70081,
    352  1.1  christos 	0x00198eff, 0x00198eff, 0x00172000, 0x00172000, 0xf258a480,
    353  1.1  christos 	0xf258a480
    354  1.1  christos };
    355  1.1  christos 
    356  1.1  christos static const struct athn_gain ar9280_2_0_tx_gain_high_power = {
    357  1.1  christos 	__arraycount(ar9280_2_0_tx_gain_regs),
    358  1.1  christos 	ar9280_2_0_tx_gain_regs,
    359  1.1  christos 	ar9280_2_0_tx_gain_high_power_vals_5g,
    360  1.1  christos 	ar9280_2_0_tx_gain_high_power_vals_2g
    361  1.1  christos };
    362  1.1  christos 
    363  1.1  christos /*
    364  1.1  christos  * AR9280 2.0 Rx gains.
    365  1.1  christos  */
    366  1.1  christos static const uint16_t ar9280_2_0_rx_gain_regs[] = {
    367  1.1  christos 	P(0x09a00), P(0x09a04), P(0x09a08), P(0x09a0c), P(0x09a10),
    368  1.1  christos 	P(0x09a14), P(0x09a18), P(0x09a1c), P(0x09a20), P(0x09a24),
    369  1.1  christos 	P(0x09a28), P(0x09a2c), P(0x09a30), P(0x09a34), P(0x09a38),
    370  1.1  christos 	P(0x09a3c), P(0x09a40), P(0x09a44), P(0x09a48), P(0x09a4c),
    371  1.1  christos 	P(0x09a50), P(0x09a54), P(0x09a58), P(0x09a5c), P(0x09a60),
    372  1.1  christos 	P(0x09a64), P(0x09a68), P(0x09a6c), P(0x09a70), P(0x09a74),
    373  1.1  christos 	P(0x09a78), P(0x09a7c), P(0x09a80), P(0x09a84), P(0x09a88),
    374  1.1  christos 	P(0x09a8c), P(0x09a90), P(0x09a94), P(0x09a98), P(0x09a9c),
    375  1.1  christos 	P(0x09aa0), P(0x09aa4), P(0x09aa8), P(0x09aac), P(0x09ab0),
    376  1.1  christos 	P(0x09ab4), P(0x09ab8), P(0x09abc), P(0x09ac0), P(0x09ac4),
    377  1.1  christos 	P(0x09ac8), P(0x09acc), P(0x09ad0), P(0x09ad4), P(0x09ad8),
    378  1.1  christos 	P(0x09adc), P(0x09ae0), P(0x09ae4), P(0x09ae8), P(0x09aec),
    379  1.1  christos 	P(0x09af0), P(0x09af4), P(0x09af8), P(0x09afc), P(0x09b00),
    380  1.1  christos 	P(0x09b04), P(0x09b08), P(0x09b0c), P(0x09b10), P(0x09b14),
    381  1.1  christos 	P(0x09b18), P(0x09b1c), P(0x09b20), P(0x09b24), P(0x09b28),
    382  1.1  christos 	P(0x09b2c), P(0x09b30), P(0x09b34), P(0x09b38), P(0x09b3c),
    383  1.1  christos 	P(0x09b40), P(0x09b44), P(0x09b48), P(0x09b4c), P(0x09b50),
    384  1.1  christos 	P(0x09b54), P(0x09b58), P(0x09b5c), P(0x09b60), P(0x09b64),
    385  1.1  christos 	P(0x09b68), P(0x09b6c), P(0x09b70), P(0x09b74), P(0x09b78),
    386  1.1  christos 	P(0x09b7c), P(0x09b80), P(0x09b84), P(0x09b88), P(0x09b8c),
    387  1.1  christos 	P(0x09b90), P(0x09b94), P(0x09b98), P(0x09b9c), P(0x09ba0),
    388  1.1  christos 	P(0x09ba4), P(0x09ba8), P(0x09bac), P(0x09bb0), P(0x09bb4),
    389  1.1  christos 	P(0x09bb8), P(0x09bbc), P(0x09bc0), P(0x09bc4), P(0x09bc8),
    390  1.1  christos 	P(0x09bcc), P(0x09bd0), P(0x09bd4), P(0x09bd8), P(0x09bdc),
    391  1.1  christos 	P(0x09be0), P(0x09be4), P(0x09be8), P(0x09bec), P(0x09bf0),
    392  1.1  christos 	P(0x09bf4), P(0x09bf8), P(0x09bfc), P(0x09848), P(0x0a848)
    393  1.1  christos };
    394  1.1  christos 
    395  1.1  christos static const uint32_t ar9280_2_0_rx_gain_vals_5g[] = {
    396  1.1  christos 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
    397  1.1  christos 	0x00008200, 0x00008204, 0x00008208, 0x0000820c, 0x00008210,
    398  1.1  christos 	0x00008214, 0x00008280, 0x00008284, 0x00008288, 0x0000828c,
    399  1.1  christos 	0x00008290, 0x00008300, 0x00008304, 0x00008308, 0x0000830c,
    400  1.1  christos 	0x00008310, 0x00008314, 0x00008380, 0x00008384, 0x00008388,
    401  1.1  christos 	0x0000838c, 0x00008390, 0x00008394, 0x0000a380, 0x0000a384,
    402  1.1  christos 	0x0000a388, 0x0000a38c, 0x0000a390, 0x0000a394, 0x0000a780,
    403  1.1  christos 	0x0000a784, 0x0000a788, 0x0000a78c, 0x0000a790, 0x0000a794,
    404  1.1  christos 	0x0000ab84, 0x0000ab88, 0x0000ab8c, 0x0000ab90, 0x0000ab94,
    405  1.1  christos 	0x0000af80, 0x0000af84, 0x0000af88, 0x0000af8c, 0x0000af90,
    406  1.1  christos 	0x0000af94, 0x0000b380, 0x0000b384, 0x0000b388, 0x0000b38c,
    407  1.1  christos 	0x0000b390, 0x0000b394, 0x0000b398, 0x0000b780, 0x0000b784,
    408  1.1  christos 	0x0000b788, 0x0000b78c, 0x0000b790, 0x0000b794, 0x0000b798,
    409  1.1  christos 	0x0000d784, 0x0000d788, 0x0000d78c, 0x0000d790, 0x0000f780,
    410  1.1  christos 	0x0000f784, 0x0000f788, 0x0000f78c, 0x0000f790, 0x0000f794,
    411  1.1  christos 	0x0000f7a4, 0x0000f7a8, 0x0000f7ac, 0x0000f7b0, 0x0000f7b4,
    412  1.1  christos 	0x0000f7a1, 0x0000f7a5, 0x0000f7a9, 0x0000f7ad, 0x0000f7b1,
    413  1.1  christos 	0x0000f7b5, 0x0000f7c5, 0x0000f7c9, 0x0000f7cd, 0x0000f7d1,
    414  1.1  christos 	0x0000f7d5, 0x0000f7c2, 0x0000f7c6, 0x0000f7ca, 0x0000f7ce,
    415  1.1  christos 	0x0000f7d2, 0x0000f7d6, 0x0000f7c3, 0x0000f7c7, 0x0000f7cb,
    416  1.1  christos 	0x0000f7d3, 0x0000f7d7, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    417  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    418  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    419  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    420  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    421  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x00001066, 0x00001066
    422  1.1  christos };
    423  1.1  christos 
    424  1.1  christos static const uint32_t ar9280_2_0_rx_gain_vals_2g[] = {
    425  1.1  christos 	0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
    426  1.1  christos 	0x00008000, 0x00008004, 0x00008008, 0x0000800c, 0x00008080,
    427  1.1  christos 	0x00008084, 0x00008088, 0x0000808c, 0x00008100, 0x00008104,
    428  1.1  christos 	0x00008108, 0x0000810c, 0x00008110, 0x00008114, 0x00008180,
    429  1.1  christos 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
    430  1.1  christos 	0x000081a0, 0x0000820c, 0x000081a8, 0x00008284, 0x00008288,
    431  1.1  christos 	0x00008224, 0x00008290, 0x00008300, 0x00008304, 0x00008308,
    432  1.1  christos 	0x0000830c, 0x00008380, 0x00008384, 0x00008700, 0x00008704,
    433  1.1  christos 	0x00008708, 0x0000870c, 0x00008780, 0x00008784, 0x00008b00,
    434  1.1  christos 	0x00008b04, 0x00008b08, 0x00008b0c, 0x00008b80, 0x00008b84,
    435  1.1  christos 	0x00008b88, 0x00008b8c, 0x00008b90, 0x00008f80, 0x00008f84,
    436  1.1  christos 	0x00008f88, 0x00008f8c, 0x00008f90, 0x0000930c, 0x00009310,
    437  1.1  christos 	0x00009384, 0x00009388, 0x00009324, 0x00009704, 0x000096a4,
    438  1.1  christos 	0x000096a8, 0x00009710, 0x00009714, 0x00009720, 0x00009724,
    439  1.1  christos 	0x00009728, 0x0000972c, 0x000097a0, 0x000097a4, 0x000097a8,
    440  1.1  christos 	0x000097b0, 0x000097b4, 0x000097b8, 0x000097a5, 0x000097a9,
    441  1.1  christos 	0x000097ad, 0x000097b1, 0x000097b5, 0x000097b9, 0x000097c5,
    442  1.1  christos 	0x000097c9, 0x000097d1, 0x000097d5, 0x000097d9, 0x000097c6,
    443  1.1  christos 	0x000097ca, 0x000097ce, 0x000097d2, 0x000097d6, 0x000097c3,
    444  1.1  christos 	0x000097c7, 0x000097cb, 0x000097cf, 0x000097d7, 0x000097db,
    445  1.1  christos 	0x000097db, 0x000097db, 0x000097db, 0x000097db, 0x000097db,
    446  1.1  christos 	0x000097db, 0x000097db, 0x000097db, 0x000097db, 0x000097db,
    447  1.1  christos 	0x000097db, 0x000097db, 0x000097db, 0x000097db, 0x000097db,
    448  1.1  christos 	0x000097db, 0x000097db, 0x000097db, 0x000097db, 0x000097db,
    449  1.1  christos 	0x000097db, 0x000097db, 0x000097db, 0x000097db, 0x000097db,
    450  1.1  christos 	0x000097db, 0x000097db, 0x000097db, 0x00001063, 0x00001063
    451  1.1  christos };
    452  1.1  christos 
    453  1.1  christos static const struct athn_gain ar9280_2_0_rx_gain = {
    454  1.1  christos 	__arraycount(ar9280_2_0_rx_gain_regs),
    455  1.1  christos 	ar9280_2_0_rx_gain_regs,
    456  1.1  christos 	ar9280_2_0_rx_gain_vals_5g,
    457  1.1  christos 	ar9280_2_0_rx_gain_vals_2g
    458  1.1  christos };
    459  1.1  christos 
    460  1.1  christos static const uint32_t ar9280_2_0_rx_gain_13db_backoff_vals_5g[] = {
    461  1.1  christos 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
    462  1.1  christos 	0x00008200, 0x00008204, 0x00008208, 0x0000820c, 0x00008210,
    463  1.1  christos 	0x00008214, 0x00008280, 0x00008284, 0x00008288, 0x0000828c,
    464  1.1  christos 	0x00008290, 0x00008300, 0x00008304, 0x00008308, 0x0000830c,
    465  1.1  christos 	0x00008310, 0x00008314, 0x00008380, 0x00008384, 0x00008388,
    466  1.1  christos 	0x0000838c, 0x00008390, 0x00008394, 0x0000a380, 0x0000a384,
    467  1.1  christos 	0x0000a388, 0x0000a38c, 0x0000a390, 0x0000a394, 0x0000a780,
    468  1.1  christos 	0x0000a784, 0x0000a788, 0x0000a78c, 0x0000a790, 0x0000a794,
    469  1.1  christos 	0x0000ab84, 0x0000ab88, 0x0000ab8c, 0x0000ab90, 0x0000ab94,
    470  1.1  christos 	0x0000af80, 0x0000af84, 0x0000af88, 0x0000af8c, 0x0000af90,
    471  1.1  christos 	0x0000af94, 0x0000b380, 0x0000b384, 0x0000b388, 0x0000b38c,
    472  1.1  christos 	0x0000b390, 0x0000b394, 0x0000b398, 0x0000b780, 0x0000b784,
    473  1.1  christos 	0x0000b788, 0x0000b78c, 0x0000b790, 0x0000b794, 0x0000b798,
    474  1.1  christos 	0x0000d784, 0x0000d788, 0x0000d78c, 0x0000d790, 0x0000f780,
    475  1.1  christos 	0x0000f784, 0x0000f788, 0x0000f78c, 0x0000f790, 0x0000f794,
    476  1.1  christos 	0x0000f7a4, 0x0000f7a8, 0x0000f7ac, 0x0000f7b0, 0x0000f7b4,
    477  1.1  christos 	0x0000f7a1, 0x0000f7a5, 0x0000f7a9, 0x0000f7ad, 0x0000f7b1,
    478  1.1  christos 	0x0000f7b5, 0x0000f7c5, 0x0000f7c9, 0x0000f7cd, 0x0000f7d1,
    479  1.1  christos 	0x0000f7d5, 0x0000f7c2, 0x0000f7c6, 0x0000f7ca, 0x0000f7ce,
    480  1.1  christos 	0x0000f7d2, 0x0000f7d6, 0x0000f7c3, 0x0000f7c7, 0x0000f7cb,
    481  1.1  christos 	0x0000f7d3, 0x0000f7d7, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    482  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    483  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    484  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    485  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    486  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x00001066, 0x00001066
    487  1.1  christos };
    488  1.1  christos 
    489  1.1  christos static const uint32_t ar9280_2_0_rx_gain_13db_backoff_vals_2g[] = {
    490  1.1  christos 	0x00000290, 0x00000300, 0x00000304, 0x00000308, 0x0000030c,
    491  1.1  christos 	0x00008000, 0x00008004, 0x00008008, 0x0000800c, 0x00008080,
    492  1.1  christos 	0x00008084, 0x00008088, 0x0000808c, 0x00008100, 0x00008104,
    493  1.1  christos 	0x00008108, 0x0000810c, 0x00008110, 0x00008114, 0x00008180,
    494  1.1  christos 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
    495  1.1  christos 	0x000081a0, 0x0000820c, 0x000081a8, 0x00008284, 0x00008288,
    496  1.1  christos 	0x00008224, 0x00008290, 0x00008300, 0x00008304, 0x00008308,
    497  1.1  christos 	0x0000830c, 0x00008380, 0x00008384, 0x00008700, 0x00008704,
    498  1.1  christos 	0x00008708, 0x0000870c, 0x00008780, 0x00008784, 0x00008b00,
    499  1.1  christos 	0x00008b04, 0x00008b08, 0x00008b0c, 0x00008b80, 0x00008b84,
    500  1.1  christos 	0x00008b88, 0x00008b8c, 0x00008b90, 0x00008f80, 0x00008f84,
    501  1.1  christos 	0x00008f88, 0x00008f8c, 0x00008f90, 0x00009310, 0x00009314,
    502  1.1  christos 	0x00009320, 0x00009324, 0x00009328, 0x0000932c, 0x00009330,
    503  1.1  christos 	0x00009334, 0x00009321, 0x00009325, 0x00009329, 0x0000932d,
    504  1.1  christos 	0x00009331, 0x00009335, 0x00009322, 0x00009326, 0x0000932a,
    505  1.1  christos 	0x0000932e, 0x00009332, 0x00009336, 0x00009323, 0x00009327,
    506  1.1  christos 	0x0000932b, 0x0000932f, 0x00009333, 0x00009337, 0x00009343,
    507  1.1  christos 	0x00009347, 0x0000934b, 0x0000934f, 0x00009353, 0x00009357,
    508  1.1  christos 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
    509  1.1  christos 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
    510  1.1  christos 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
    511  1.1  christos 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
    512  1.1  christos 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
    513  1.1  christos 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
    514  1.1  christos 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
    515  1.1  christos 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000105a, 0x0000105a
    516  1.1  christos };
    517  1.1  christos 
    518  1.1  christos static const struct athn_gain ar9280_2_0_rx_gain_13db_backoff = {
    519  1.1  christos 	__arraycount(ar9280_2_0_rx_gain_regs),
    520  1.1  christos 	ar9280_2_0_rx_gain_regs,
    521  1.1  christos 	ar9280_2_0_rx_gain_13db_backoff_vals_5g,
    522  1.1  christos 	ar9280_2_0_rx_gain_13db_backoff_vals_2g
    523  1.1  christos };
    524  1.1  christos 
    525  1.1  christos static const uint32_t ar9280_2_0_rx_gain_23db_backoff_vals_5g[] = {
    526  1.1  christos 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
    527  1.1  christos 	0x00008200, 0x00008204, 0x00008208, 0x0000820c, 0x00008210,
    528  1.1  christos 	0x00008214, 0x00008280, 0x00008284, 0x00008288, 0x0000828c,
    529  1.1  christos 	0x00008290, 0x00008300, 0x00008304, 0x00008308, 0x0000830c,
    530  1.1  christos 	0x00008310, 0x00008314, 0x00008380, 0x00008384, 0x00008388,
    531  1.1  christos 	0x0000838c, 0x00008390, 0x00008394, 0x0000a380, 0x0000a384,
    532  1.1  christos 	0x0000a388, 0x0000a38c, 0x0000a390, 0x0000a394, 0x0000a780,
    533  1.1  christos 	0x0000a784, 0x0000a788, 0x0000a78c, 0x0000a790, 0x0000a794,
    534  1.1  christos 	0x0000ab84, 0x0000ab88, 0x0000ab8c, 0x0000ab90, 0x0000ab94,
    535  1.1  christos 	0x0000af80, 0x0000af84, 0x0000af88, 0x0000af8c, 0x0000af90,
    536  1.1  christos 	0x0000af94, 0x0000b380, 0x0000b384, 0x0000b388, 0x0000b38c,
    537  1.1  christos 	0x0000b390, 0x0000b394, 0x0000b398, 0x0000b780, 0x0000b784,
    538  1.1  christos 	0x0000b788, 0x0000b78c, 0x0000b790, 0x0000b794, 0x0000b798,
    539  1.1  christos 	0x0000d784, 0x0000d788, 0x0000d78c, 0x0000d790, 0x0000f780,
    540  1.1  christos 	0x0000f784, 0x0000f788, 0x0000f78c, 0x0000f790, 0x0000f794,
    541  1.1  christos 	0x0000f7a4, 0x0000f7a8, 0x0000f7ac, 0x0000f7b0, 0x0000f7b4,
    542  1.1  christos 	0x0000f7a1, 0x0000f7a5, 0x0000f7a9, 0x0000f7ad, 0x0000f7b1,
    543  1.1  christos 	0x0000f7b5, 0x0000f7c5, 0x0000f7c9, 0x0000f7cd, 0x0000f7d1,
    544  1.1  christos 	0x0000f7d5, 0x0000f7c2, 0x0000f7c6, 0x0000f7ca, 0x0000f7ce,
    545  1.1  christos 	0x0000f7d2, 0x0000f7d6, 0x0000f7c3, 0x0000f7c7, 0x0000f7cb,
    546  1.1  christos 	0x0000f7d3, 0x0000f7d7, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    547  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    548  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    549  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    550  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
    551  1.1  christos 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x00001066, 0x00001066
    552  1.1  christos };
    553  1.1  christos 
    554  1.1  christos static const uint32_t ar9280_2_0_rx_gain_23db_backoff_vals_2g[] = {
    555  1.1  christos 	0x00000290, 0x00000300, 0x00000304, 0x00000308, 0x0000030c,
    556  1.1  christos 	0x00008000, 0x00008004, 0x00008008, 0x0000800c, 0x00008080,
    557  1.1  christos 	0x00008084, 0x00008088, 0x0000808c, 0x00008100, 0x00008104,
    558  1.1  christos 	0x00008108, 0x0000810c, 0x00008110, 0x00008114, 0x00008180,
    559  1.1  christos 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
    560  1.1  christos 	0x000081a0, 0x0000820c, 0x000081a8, 0x00008284, 0x00008288,
    561  1.1  christos 	0x00008224, 0x00008290, 0x00008300, 0x00008304, 0x00008308,
    562  1.1  christos 	0x0000830c, 0x00008380, 0x00008384, 0x00008700, 0x00008704,
    563  1.1  christos 	0x00008708, 0x0000870c, 0x00008780, 0x00008784, 0x00008b00,
    564  1.1  christos 	0x00008b04, 0x00008b08, 0x00008b0c, 0x00008b10, 0x00008b80,
    565  1.1  christos 	0x00008b84, 0x00008b88, 0x00008b8c, 0x00008b90, 0x00008b94,
    566  1.1  christos 	0x00008b98, 0x00008ba4, 0x00008ba8, 0x00008bac, 0x00008bb0,
    567  1.1  christos 	0x00008bb4, 0x00008ba1, 0x00008ba5, 0x00008ba9, 0x00008bad,
    568  1.1  christos 	0x00008bb1, 0x00008bb5, 0x00008ba2, 0x00008ba6, 0x00008baa,
    569  1.1  christos 	0x00008bae, 0x00008bb2, 0x00008bb6, 0x00008ba3, 0x00008ba7,
    570  1.1  christos 	0x00008bab, 0x00008baf, 0x00008bb3, 0x00008bb7, 0x00008bc3,
    571  1.1  christos 	0x00008bc7, 0x00008bcb, 0x00008bcf, 0x00008bd3, 0x00008bd7,
    572  1.1  christos 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
    573  1.1  christos 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
    574  1.1  christos 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
    575  1.1  christos 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
    576  1.1  christos 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
    577  1.1  christos 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
    578  1.1  christos 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
    579  1.1  christos 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
    580  1.1  christos 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00001055, 0x00001055
    581  1.1  christos };
    582  1.1  christos 
    583  1.1  christos static const struct athn_gain ar9280_2_0_rx_gain_23db_backoff = {
    584  1.1  christos 	__arraycount(ar9280_2_0_rx_gain_regs),
    585  1.1  christos 	ar9280_2_0_rx_gain_regs,
    586  1.1  christos 	ar9280_2_0_rx_gain_23db_backoff_vals_5g,
    587  1.1  christos 	ar9280_2_0_rx_gain_23db_backoff_vals_2g
    588  1.1  christos };
    589  1.1  christos 
    590  1.1  christos /*
    591  1.1  christos  * Serializer/Deserializer programming.
    592  1.1  christos  */
    593  1.1  christos 
    594  1.1  christos static const uint32_t ar9280_2_0_serdes_regs[] = {
    595  1.1  christos 	AR_PCIE_SERDES,
    596  1.1  christos 	AR_PCIE_SERDES,
    597  1.1  christos 	AR_PCIE_SERDES,
    598  1.1  christos 	AR_PCIE_SERDES,
    599  1.1  christos 	AR_PCIE_SERDES,
    600  1.1  christos 	AR_PCIE_SERDES,
    601  1.1  christos 	AR_PCIE_SERDES,
    602  1.1  christos 	AR_PCIE_SERDES,
    603  1.1  christos 	AR_PCIE_SERDES,
    604  1.1  christos 	AR_PCIE_SERDES2,
    605  1.1  christos };
    606  1.1  christos 
    607  1.1  christos static const uint32_t ar9280_2_0_serdes_vals[] = {
    608  1.1  christos 	0x9248fd00,
    609  1.1  christos 	0x24924924,
    610  1.1  christos 	0xa8000019,
    611  1.1  christos 	0x13160820,
    612  1.1  christos 	0xe5980560,
    613  1.1  christos #ifdef ATHN_PCIE_CLKREQ
    614  1.1  christos 	0xc01dcffc,
    615  1.1  christos #else
    616  1.1  christos 	0xc01dcffd,
    617  1.1  christos #endif
    618  1.1  christos 	0x1aaabe41,
    619  1.1  christos 	0xbe105554,
    620  1.1  christos 	0x00043007,
    621  1.1  christos 	0x00000000
    622  1.1  christos };
    623  1.1  christos 
    624  1.1  christos static const struct athn_serdes ar9280_2_0_serdes = {
    625  1.1  christos 	__arraycount(ar9280_2_0_serdes_vals),
    626  1.1  christos 	ar9280_2_0_serdes_regs,
    627  1.1  christos 	ar9280_2_0_serdes_vals
    628  1.1  christos };
    629  1.1  christos 
    630  1.1  christos #endif /* _ARN9280REG_H_ */
    631