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