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