1 /* 2 * Copyright (c) 2010 Atheros Communications Inc. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 static const u32 ar5416Modes[][6] = { 18 {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0}, 19 {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0}, 20 {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180}, 21 {0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008}, 22 {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0}, 23 {0x0000801c, 0x128d93a7, 0x128d93cf, 0x12e013d7, 0x12e013ab, 0x098813cf}, 24 {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810}, 25 {0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a, 0x0000320a}, 26 {0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303}, 27 {0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, 28 {0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, 29 {0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001}, 30 {0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, 31 {0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007}, 32 {0x00009844, 0x1372161e, 0x1372161e, 0x137216a0, 0x137216a0, 0x137216a0}, 33 {0x00009848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, 34 {0x0000a848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, 35 {0x0000b848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, 36 {0x00009850, 0x6c48b4e0, 0x6d48b4e0, 0x6d48b0de, 0x6c48b0de, 0x6c48b0de}, 37 {0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e}, 38 {0x0000985c, 0x31395d5e, 0x3139605e, 0x3139605e, 0x31395d5e, 0x31395d5e}, 39 {0x00009860, 0x00049d18, 0x00049d18, 0x00049d18, 0x00049d18, 0x00049d18}, 40 {0x00009864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, 41 {0x00009868, 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190}, 42 {0x0000986c, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081}, 43 {0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0}, 44 {0x00009918, 0x000001b8, 0x00000370, 0x00000268, 0x00000134, 0x00000134}, 45 {0x00009924, 0xd0058a0b, 0xd0058a0b, 0xd0058a0b, 0xd0058a0b, 0xd0058a0b}, 46 {0x00009944, 0xffb81020, 0xffb81020, 0xffb81020, 0xffb81020, 0xffb81020}, 47 {0x00009960, 0x00000900, 0x00000900, 0x00012d80, 0x00012d80, 0x00012d80}, 48 {0x0000a960, 0x00000900, 0x00000900, 0x00012d80, 0x00012d80, 0x00012d80}, 49 {0x0000b960, 0x00000900, 0x00000900, 0x00012d80, 0x00012d80, 0x00012d80}, 50 {0x00009964, 0x00000000, 0x00000000, 0x00001120, 0x00001120, 0x00001120}, 51 {0x000099bc, 0x001a0a00, 0x001a0a00, 0x001a0a00, 0x001a0a00, 0x001a0a00}, 52 {0x000099c0, 0x038919be, 0x038919be, 0x038919be, 0x038919be, 0x038919be}, 53 {0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77}, 54 {0x000099c8, 0x6af6532c, 0x6af6532c, 0x6af6532c, 0x6af6532c, 0x6af6532c}, 55 {0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8}, 56 {0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384}, 57 {0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 58 {0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 59 {0x0000a204, 0x00000880, 0x00000880, 0x00000880, 0x00000880, 0x00000880}, 60 {0x0000a208, 0xd6be4788, 0xd6be4788, 0xd03e4788, 0xd03e4788, 0xd03e4788}, 61 {0x0000a20c, 0x002ec1e0, 0x002ec1e0, 0x002ac120, 0x002ac120, 0x002ac120}, 62 {0x0000b20c, 0x002ec1e0, 0x002ec1e0, 0x002ac120, 0x002ac120, 0x002ac120}, 63 {0x0000c20c, 0x002ec1e0, 0x002ec1e0, 0x002ac120, 0x002ac120, 0x002ac120}, 64 {0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a}, 65 {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, 66 {0x0000a274, 0x0a1a9caa, 0x0a1a9caa, 0x0a1a7caa, 0x0a1a7caa, 0x0a1a7caa}, 67 {0x0000a300, 0x18010000, 0x18010000, 0x18010000, 0x18010000, 0x18010000}, 68 {0x0000a304, 0x30032602, 0x30032602, 0x2e032402, 0x2e032402, 0x2e032402}, 69 {0x0000a308, 0x48073e06, 0x48073e06, 0x4a0a3c06, 0x4a0a3c06, 0x4a0a3c06}, 70 {0x0000a30c, 0x560b4c0a, 0x560b4c0a, 0x621a540b, 0x621a540b, 0x621a540b}, 71 {0x0000a310, 0x641a600f, 0x641a600f, 0x764f6c1b, 0x764f6c1b, 0x764f6c1b}, 72 {0x0000a314, 0x7a4f6e1b, 0x7a4f6e1b, 0x845b7a5a, 0x845b7a5a, 0x845b7a5a}, 73 {0x0000a318, 0x8c5b7e5a, 0x8c5b7e5a, 0x950f8ccf, 0x950f8ccf, 0x950f8ccf}, 74 {0x0000a31c, 0x9d0f96cf, 0x9d0f96cf, 0xa5cf9b4f, 0xa5cf9b4f, 0xa5cf9b4f}, 75 {0x0000a320, 0xb51fa69f, 0xb51fa69f, 0xbddfaf1f, 0xbddfaf1f, 0xbddfaf1f}, 76 {0x0000a324, 0xcb3fbd07, 0xcb3fbcbf, 0xd1ffc93f, 0xd1ffc93f, 0xd1ffc93f}, 77 {0x0000a328, 0x0000d7bf, 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000}, 78 {0x0000a32c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 79 {0x0000a330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 80 {0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 81 }; 82 83 static const u32 ar5416Common[][2] = { 84 /* Addr allmodes */ 85 {0x0000000c, 0x00000000}, 86 {0x00000030, 0x00020015}, 87 {0x00000034, 0x00000005}, 88 {0x00000040, 0x00000000}, 89 {0x00000044, 0x00000008}, 90 {0x00000048, 0x00000008}, 91 {0x0000004c, 0x00000010}, 92 {0x00000050, 0x00000000}, 93 {0x00000054, 0x0000001f}, 94 {0x00000800, 0x00000000}, 95 {0x00000804, 0x00000000}, 96 {0x00000808, 0x00000000}, 97 {0x0000080c, 0x00000000}, 98 {0x00000810, 0x00000000}, 99 {0x00000814, 0x00000000}, 100 {0x00000818, 0x00000000}, 101 {0x0000081c, 0x00000000}, 102 {0x00000820, 0x00000000}, 103 {0x00000824, 0x00000000}, 104 {0x00001040, 0x002ffc0f}, 105 {0x00001044, 0x002ffc0f}, 106 {0x00001048, 0x002ffc0f}, 107 {0x0000104c, 0x002ffc0f}, 108 {0x00001050, 0x002ffc0f}, 109 {0x00001054, 0x002ffc0f}, 110 {0x00001058, 0x002ffc0f}, 111 {0x0000105c, 0x002ffc0f}, 112 {0x00001060, 0x002ffc0f}, 113 {0x00001064, 0x002ffc0f}, 114 {0x00001230, 0x00000000}, 115 {0x00001270, 0x00000000}, 116 {0x00001038, 0x00000000}, 117 {0x00001078, 0x00000000}, 118 {0x000010b8, 0x00000000}, 119 {0x000010f8, 0x00000000}, 120 {0x00001138, 0x00000000}, 121 {0x00001178, 0x00000000}, 122 {0x000011b8, 0x00000000}, 123 {0x000011f8, 0x00000000}, 124 {0x00001238, 0x00000000}, 125 {0x00001278, 0x00000000}, 126 {0x000012b8, 0x00000000}, 127 {0x000012f8, 0x00000000}, 128 {0x00001338, 0x00000000}, 129 {0x00001378, 0x00000000}, 130 {0x000013b8, 0x00000000}, 131 {0x000013f8, 0x00000000}, 132 {0x00001438, 0x00000000}, 133 {0x00001478, 0x00000000}, 134 {0x000014b8, 0x00000000}, 135 {0x000014f8, 0x00000000}, 136 {0x00001538, 0x00000000}, 137 {0x00001578, 0x00000000}, 138 {0x000015b8, 0x00000000}, 139 {0x000015f8, 0x00000000}, 140 {0x00001638, 0x00000000}, 141 {0x00001678, 0x00000000}, 142 {0x000016b8, 0x00000000}, 143 {0x000016f8, 0x00000000}, 144 {0x00001738, 0x00000000}, 145 {0x00001778, 0x00000000}, 146 {0x000017b8, 0x00000000}, 147 {0x000017f8, 0x00000000}, 148 {0x0000103c, 0x00000000}, 149 {0x0000107c, 0x00000000}, 150 {0x000010bc, 0x00000000}, 151 {0x000010fc, 0x00000000}, 152 {0x0000113c, 0x00000000}, 153 {0x0000117c, 0x00000000}, 154 {0x000011bc, 0x00000000}, 155 {0x000011fc, 0x00000000}, 156 {0x0000123c, 0x00000000}, 157 {0x0000127c, 0x00000000}, 158 {0x000012bc, 0x00000000}, 159 {0x000012fc, 0x00000000}, 160 {0x0000133c, 0x00000000}, 161 {0x0000137c, 0x00000000}, 162 {0x000013bc, 0x00000000}, 163 {0x000013fc, 0x00000000}, 164 {0x0000143c, 0x00000000}, 165 {0x0000147c, 0x00000000}, 166 {0x00004030, 0x00000002}, 167 {0x0000403c, 0x00000002}, 168 {0x00007010, 0x00000000}, 169 {0x00007038, 0x000004c2}, 170 {0x00008004, 0x00000000}, 171 {0x00008008, 0x00000000}, 172 {0x0000800c, 0x00000000}, 173 {0x00008018, 0x00000700}, 174 {0x00008020, 0x00000000}, 175 {0x00008038, 0x00000000}, 176 {0x0000803c, 0x00000000}, 177 {0x00008048, 0x40000000}, 178 {0x00008054, 0x00000000}, 179 {0x00008058, 0x00000000}, 180 {0x0000805c, 0x000fc78f}, 181 {0x00008060, 0x0000000f}, 182 {0x00008064, 0x00000000}, 183 {0x000080c0, 0x2a82301a}, 184 {0x000080c4, 0x05dc01e0}, 185 {0x000080c8, 0x1f402710}, 186 {0x000080cc, 0x01f40000}, 187 {0x000080d0, 0x00001e00}, 188 {0x000080d4, 0x00000000}, 189 {0x000080d8, 0x00400000}, 190 {0x000080e0, 0xffffffff}, 191 {0x000080e4, 0x0000ffff}, 192 {0x000080e8, 0x003f3f3f}, 193 {0x000080ec, 0x00000000}, 194 {0x000080f0, 0x00000000}, 195 {0x000080f4, 0x00000000}, 196 {0x000080f8, 0x00000000}, 197 {0x000080fc, 0x00020000}, 198 {0x00008100, 0x00020000}, 199 {0x00008104, 0x00000001}, 200 {0x00008108, 0x00000052}, 201 {0x0000810c, 0x00000000}, 202 {0x00008110, 0x00000168}, 203 {0x00008118, 0x000100aa}, 204 {0x0000811c, 0x00003210}, 205 {0x00008124, 0x00000000}, 206 {0x00008128, 0x00000000}, 207 {0x0000812c, 0x00000000}, 208 {0x00008130, 0x00000000}, 209 {0x00008134, 0x00000000}, 210 {0x00008138, 0x00000000}, 211 {0x0000813c, 0x00000000}, 212 {0x00008144, 0xffffffff}, 213 {0x00008168, 0x00000000}, 214 {0x0000816c, 0x00000000}, 215 {0x00008170, 0x32143320}, 216 {0x00008174, 0xfaa4fa50}, 217 {0x00008178, 0x00000100}, 218 {0x0000817c, 0x00000000}, 219 {0x000081c4, 0x00000000}, 220 {0x000081ec, 0x00000000}, 221 {0x000081f0, 0x00000000}, 222 {0x000081f4, 0x00000000}, 223 {0x000081f8, 0x00000000}, 224 {0x000081fc, 0x00000000}, 225 {0x00008200, 0x00000000}, 226 {0x00008204, 0x00000000}, 227 {0x00008208, 0x00000000}, 228 {0x0000820c, 0x00000000}, 229 {0x00008210, 0x00000000}, 230 {0x00008214, 0x00000000}, 231 {0x00008218, 0x00000000}, 232 {0x0000821c, 0x00000000}, 233 {0x00008220, 0x00000000}, 234 {0x00008224, 0x00000000}, 235 {0x00008228, 0x00000000}, 236 {0x0000822c, 0x00000000}, 237 {0x00008230, 0x00000000}, 238 {0x00008234, 0x00000000}, 239 {0x00008238, 0x00000000}, 240 {0x0000823c, 0x00000000}, 241 {0x00008240, 0x00100000}, 242 {0x00008244, 0x0010f400}, 243 {0x00008248, 0x00000100}, 244 {0x0000824c, 0x0001e800}, 245 {0x00008250, 0x00000000}, 246 {0x00008254, 0x00000000}, 247 {0x00008258, 0x00000000}, 248 {0x0000825c, 0x400000ff}, 249 {0x00008260, 0x00080922}, 250 {0x00008264, 0x88000010}, 251 {0x00008270, 0x00000000}, 252 {0x00008274, 0x40000000}, 253 {0x00008278, 0x003e4180}, 254 {0x0000827c, 0x00000000}, 255 {0x00008284, 0x0000002c}, 256 {0x00008288, 0x0000002c}, 257 {0x0000828c, 0x00000000}, 258 {0x00008294, 0x00000000}, 259 {0x00008298, 0x00000000}, 260 {0x00008300, 0x00000000}, 261 {0x00008304, 0x00000000}, 262 {0x00008308, 0x00000000}, 263 {0x0000830c, 0x00000000}, 264 {0x00008310, 0x00000000}, 265 {0x00008314, 0x00000000}, 266 {0x00008318, 0x00000000}, 267 {0x00008328, 0x00000000}, 268 {0x0000832c, 0x00000007}, 269 {0x00008330, 0x00000302}, 270 {0x00008334, 0x00000e00}, 271 {0x00008338, 0x00070000}, 272 {0x0000833c, 0x00000000}, 273 {0x00008340, 0x000107ff}, 274 {0x00009808, 0x00000000}, 275 {0x0000980c, 0xad848e19}, 276 {0x00009810, 0x7d14e000}, 277 {0x00009814, 0x9c0a9f6b}, 278 {0x0000981c, 0x00000000}, 279 {0x0000982c, 0x0000a000}, 280 {0x00009830, 0x00000000}, 281 {0x0000983c, 0x00200400}, 282 {0x00009840, 0x206a002e}, 283 {0x0000984c, 0x1284233c}, 284 {0x00009854, 0x00000859}, 285 {0x00009900, 0x00000000}, 286 {0x00009904, 0x00000000}, 287 {0x00009908, 0x00000000}, 288 {0x0000990c, 0x00000000}, 289 {0x0000991c, 0x10000fff}, 290 {0x00009920, 0x05100000}, 291 {0x0000a920, 0x05100000}, 292 {0x0000b920, 0x05100000}, 293 {0x00009928, 0x00000001}, 294 {0x0000992c, 0x00000004}, 295 {0x00009934, 0x1e1f2022}, 296 {0x00009938, 0x0a0b0c0d}, 297 {0x0000993c, 0x00000000}, 298 {0x00009948, 0x9280b212}, 299 {0x0000994c, 0x00020028}, 300 {0x00009954, 0x5d50e188}, 301 {0x00009958, 0x00081fff}, 302 {0x0000c95c, 0x004b6a8e}, 303 {0x0000c968, 0x000003ce}, 304 {0x00009970, 0x190fb515}, 305 {0x00009974, 0x00000000}, 306 {0x00009978, 0x00000001}, 307 {0x0000997c, 0x00000000}, 308 {0x00009980, 0x00000000}, 309 {0x00009984, 0x00000000}, 310 {0x00009988, 0x00000000}, 311 {0x0000998c, 0x00000000}, 312 {0x00009990, 0x00000000}, 313 {0x00009994, 0x00000000}, 314 {0x00009998, 0x00000000}, 315 {0x0000999c, 0x00000000}, 316 {0x000099a0, 0x00000000}, 317 {0x000099a4, 0x00000001}, 318 {0x000099a8, 0x001fff00}, 319 {0x000099ac, 0x00000000}, 320 {0x000099b0, 0x03051000}, 321 {0x000099dc, 0x00000000}, 322 {0x000099e0, 0x00000200}, 323 {0x000099e4, 0xaaaaaaaa}, 324 {0x000099e8, 0x3c466478}, 325 {0x000099ec, 0x000000aa}, 326 {0x000099fc, 0x00001042}, 327 {0x00009b00, 0x00000000}, 328 {0x00009b04, 0x00000001}, 329 {0x00009b08, 0x00000002}, 330 {0x00009b0c, 0x00000003}, 331 {0x00009b10, 0x00000004}, 332 {0x00009b14, 0x00000005}, 333 {0x00009b18, 0x00000008}, 334 {0x00009b1c, 0x00000009}, 335 {0x00009b20, 0x0000000a}, 336 {0x00009b24, 0x0000000b}, 337 {0x00009b28, 0x0000000c}, 338 {0x00009b2c, 0x0000000d}, 339 {0x00009b30, 0x00000010}, 340 {0x00009b34, 0x00000011}, 341 {0x00009b38, 0x00000012}, 342 {0x00009b3c, 0x00000013}, 343 {0x00009b40, 0x00000014}, 344 {0x00009b44, 0x00000015}, 345 {0x00009b48, 0x00000018}, 346 {0x00009b4c, 0x00000019}, 347 {0x00009b50, 0x0000001a}, 348 {0x00009b54, 0x0000001b}, 349 {0x00009b58, 0x0000001c}, 350 {0x00009b5c, 0x0000001d}, 351 {0x00009b60, 0x00000020}, 352 {0x00009b64, 0x00000021}, 353 {0x00009b68, 0x00000022}, 354 {0x00009b6c, 0x00000023}, 355 {0x00009b70, 0x00000024}, 356 {0x00009b74, 0x00000025}, 357 {0x00009b78, 0x00000028}, 358 {0x00009b7c, 0x00000029}, 359 {0x00009b80, 0x0000002a}, 360 {0x00009b84, 0x0000002b}, 361 {0x00009b88, 0x0000002c}, 362 {0x00009b8c, 0x0000002d}, 363 {0x00009b90, 0x00000030}, 364 {0x00009b94, 0x00000031}, 365 {0x00009b98, 0x00000032}, 366 {0x00009b9c, 0x00000033}, 367 {0x00009ba0, 0x00000034}, 368 {0x00009ba4, 0x00000035}, 369 {0x00009ba8, 0x00000035}, 370 {0x00009bac, 0x00000035}, 371 {0x00009bb0, 0x00000035}, 372 {0x00009bb4, 0x00000035}, 373 {0x00009bb8, 0x00000035}, 374 {0x00009bbc, 0x00000035}, 375 {0x00009bc0, 0x00000035}, 376 {0x00009bc4, 0x00000035}, 377 {0x00009bc8, 0x00000035}, 378 {0x00009bcc, 0x00000035}, 379 {0x00009bd0, 0x00000035}, 380 {0x00009bd4, 0x00000035}, 381 {0x00009bd8, 0x00000035}, 382 {0x00009bdc, 0x00000035}, 383 {0x00009be0, 0x00000035}, 384 {0x00009be4, 0x00000035}, 385 {0x00009be8, 0x00000035}, 386 {0x00009bec, 0x00000035}, 387 {0x00009bf0, 0x00000035}, 388 {0x00009bf4, 0x00000035}, 389 {0x00009bf8, 0x00000010}, 390 {0x00009bfc, 0x0000001a}, 391 {0x0000a210, 0x40806333}, 392 {0x0000a214, 0x00106c10}, 393 {0x0000a218, 0x009c4060}, 394 {0x0000a220, 0x018830c6}, 395 {0x0000a224, 0x00000400}, 396 {0x0000a228, 0x00000bb5}, 397 {0x0000a22c, 0x00000011}, 398 {0x0000a234, 0x20202020}, 399 {0x0000a238, 0x20202020}, 400 {0x0000a23c, 0x13c889af}, 401 {0x0000a240, 0x38490a20}, 402 {0x0000a244, 0x00007bb6}, 403 {0x0000a248, 0x0fff3ffc}, 404 {0x0000a24c, 0x00000001}, 405 {0x0000a250, 0x0000a000}, 406 {0x0000a254, 0x00000000}, 407 {0x0000a258, 0x0cc75380}, 408 {0x0000a25c, 0x0f0f0f01}, 409 {0x0000a260, 0xdfa91f01}, 410 {0x0000a268, 0x00000000}, 411 {0x0000a26c, 0x0e79e5c6}, 412 {0x0000b26c, 0x0e79e5c6}, 413 {0x0000c26c, 0x0e79e5c6}, 414 {0x0000d270, 0x00820820}, 415 {0x0000a278, 0x1ce739ce}, 416 {0x0000a27c, 0x051701ce}, 417 {0x0000a338, 0x00000000}, 418 {0x0000a33c, 0x00000000}, 419 {0x0000a340, 0x00000000}, 420 {0x0000a344, 0x00000000}, 421 {0x0000a348, 0x3fffffff}, 422 {0x0000a34c, 0x3fffffff}, 423 {0x0000a350, 0x3fffffff}, 424 {0x0000a354, 0x0003ffff}, 425 {0x0000a358, 0x79a8aa1f}, 426 {0x0000d35c, 0x07ffffef}, 427 {0x0000d360, 0x0fffffe7}, 428 {0x0000d364, 0x17ffffe5}, 429 {0x0000d368, 0x1fffffe4}, 430 {0x0000d36c, 0x37ffffe3}, 431 {0x0000d370, 0x3fffffe3}, 432 {0x0000d374, 0x57ffffe3}, 433 {0x0000d378, 0x5fffffe2}, 434 {0x0000d37c, 0x7fffffe2}, 435 {0x0000d380, 0x7f3c7bba}, 436 {0x0000d384, 0xf3307ff0}, 437 {0x0000a388, 0x08000000}, 438 {0x0000a38c, 0x20202020}, 439 {0x0000a390, 0x20202020}, 440 {0x0000a394, 0x1ce739ce}, 441 {0x0000a398, 0x000001ce}, 442 {0x0000a39c, 0x00000001}, 443 {0x0000a3a0, 0x00000000}, 444 {0x0000a3a4, 0x00000000}, 445 {0x0000a3a8, 0x00000000}, 446 {0x0000a3ac, 0x00000000}, 447 {0x0000a3b0, 0x00000000}, 448 {0x0000a3b4, 0x00000000}, 449 {0x0000a3b8, 0x00000000}, 450 {0x0000a3bc, 0x00000000}, 451 {0x0000a3c0, 0x00000000}, 452 {0x0000a3c4, 0x00000000}, 453 {0x0000a3c8, 0x00000246}, 454 {0x0000a3cc, 0x20202020}, 455 {0x0000a3d0, 0x20202020}, 456 {0x0000a3d4, 0x20202020}, 457 {0x0000a3dc, 0x1ce739ce}, 458 {0x0000a3e0, 0x000001ce}, 459 }; 460 461 static const u32 ar5416Bank0[][2] = { 462 /* Addr allmodes */ 463 {0x000098b0, 0x1e5795e5}, 464 {0x000098e0, 0x02008020}, 465 }; 466 467 static const u32 ar5416BB_RfGain[][3] = { 468 /* Addr 5G_HT20 5G_HT40 */ 469 {0x00009a00, 0x00000000, 0x00000000}, 470 {0x00009a04, 0x00000040, 0x00000040}, 471 {0x00009a08, 0x00000080, 0x00000080}, 472 {0x00009a0c, 0x000001a1, 0x00000141}, 473 {0x00009a10, 0x000001e1, 0x00000181}, 474 {0x00009a14, 0x00000021, 0x000001c1}, 475 {0x00009a18, 0x00000061, 0x00000001}, 476 {0x00009a1c, 0x00000168, 0x00000041}, 477 {0x00009a20, 0x000001a8, 0x000001a8}, 478 {0x00009a24, 0x000001e8, 0x000001e8}, 479 {0x00009a28, 0x00000028, 0x00000028}, 480 {0x00009a2c, 0x00000068, 0x00000068}, 481 {0x00009a30, 0x00000189, 0x000000a8}, 482 {0x00009a34, 0x000001c9, 0x00000169}, 483 {0x00009a38, 0x00000009, 0x000001a9}, 484 {0x00009a3c, 0x00000049, 0x000001e9}, 485 {0x00009a40, 0x00000089, 0x00000029}, 486 {0x00009a44, 0x00000170, 0x00000069}, 487 {0x00009a48, 0x000001b0, 0x00000190}, 488 {0x00009a4c, 0x000001f0, 0x000001d0}, 489 {0x00009a50, 0x00000030, 0x00000010}, 490 {0x00009a54, 0x00000070, 0x00000050}, 491 {0x00009a58, 0x00000191, 0x00000090}, 492 {0x00009a5c, 0x000001d1, 0x00000151}, 493 {0x00009a60, 0x00000011, 0x00000191}, 494 {0x00009a64, 0x00000051, 0x000001d1}, 495 {0x00009a68, 0x00000091, 0x00000011}, 496 {0x00009a6c, 0x000001b8, 0x00000051}, 497 {0x00009a70, 0x000001f8, 0x00000198}, 498 {0x00009a74, 0x00000038, 0x000001d8}, 499 {0x00009a78, 0x00000078, 0x00000018}, 500 {0x00009a7c, 0x00000199, 0x00000058}, 501 {0x00009a80, 0x000001d9, 0x00000098}, 502 {0x00009a84, 0x00000019, 0x00000159}, 503 {0x00009a88, 0x00000059, 0x00000199}, 504 {0x00009a8c, 0x00000099, 0x000001d9}, 505 {0x00009a90, 0x000000d9, 0x00000019}, 506 {0x00009a94, 0x000000f9, 0x00000059}, 507 {0x00009a98, 0x000000f9, 0x00000099}, 508 {0x00009a9c, 0x000000f9, 0x000000d9}, 509 {0x00009aa0, 0x000000f9, 0x000000f9}, 510 {0x00009aa4, 0x000000f9, 0x000000f9}, 511 {0x00009aa8, 0x000000f9, 0x000000f9}, 512 {0x00009aac, 0x000000f9, 0x000000f9}, 513 {0x00009ab0, 0x000000f9, 0x000000f9}, 514 {0x00009ab4, 0x000000f9, 0x000000f9}, 515 {0x00009ab8, 0x000000f9, 0x000000f9}, 516 {0x00009abc, 0x000000f9, 0x000000f9}, 517 {0x00009ac0, 0x000000f9, 0x000000f9}, 518 {0x00009ac4, 0x000000f9, 0x000000f9}, 519 {0x00009ac8, 0x000000f9, 0x000000f9}, 520 {0x00009acc, 0x000000f9, 0x000000f9}, 521 {0x00009ad0, 0x000000f9, 0x000000f9}, 522 {0x00009ad4, 0x000000f9, 0x000000f9}, 523 {0x00009ad8, 0x000000f9, 0x000000f9}, 524 {0x00009adc, 0x000000f9, 0x000000f9}, 525 {0x00009ae0, 0x000000f9, 0x000000f9}, 526 {0x00009ae4, 0x000000f9, 0x000000f9}, 527 {0x00009ae8, 0x000000f9, 0x000000f9}, 528 {0x00009aec, 0x000000f9, 0x000000f9}, 529 {0x00009af0, 0x000000f9, 0x000000f9}, 530 {0x00009af4, 0x000000f9, 0x000000f9}, 531 {0x00009af8, 0x000000f9, 0x000000f9}, 532 {0x00009afc, 0x000000f9, 0x000000f9}, 533 }; 534 535 static const u32 ar5416Bank1[][2] = { 536 /* Addr allmodes */ 537 {0x000098b0, 0x02108421}, 538 {0x000098ec, 0x00000008}, 539 }; 540 541 static const u32 ar5416Bank2[][2] = { 542 /* Addr allmodes */ 543 {0x000098b0, 0x0e73ff17}, 544 {0x000098e0, 0x00000420}, 545 }; 546 547 static const u32 ar5416Bank3[][3] = { 548 /* Addr 5G_HT20 5G_HT40 */ 549 {0x000098f0, 0x01400018, 0x01c00018}, 550 }; 551 552 static const u32 ar5416Bank6[][3] = { 553 /* Addr 5G_HT20 5G_HT40 */ 554 {0x0000989c, 0x00000000, 0x00000000}, 555 {0x0000989c, 0x00000000, 0x00000000}, 556 {0x0000989c, 0x00000000, 0x00000000}, 557 {0x0000989c, 0x00e00000, 0x00e00000}, 558 {0x0000989c, 0x005e0000, 0x005e0000}, 559 {0x0000989c, 0x00120000, 0x00120000}, 560 {0x0000989c, 0x00620000, 0x00620000}, 561 {0x0000989c, 0x00020000, 0x00020000}, 562 {0x0000989c, 0x00ff0000, 0x00ff0000}, 563 {0x0000989c, 0x00ff0000, 0x00ff0000}, 564 {0x0000989c, 0x00ff0000, 0x00ff0000}, 565 {0x0000989c, 0x40ff0000, 0x40ff0000}, 566 {0x0000989c, 0x005f0000, 0x005f0000}, 567 {0x0000989c, 0x00870000, 0x00870000}, 568 {0x0000989c, 0x00f90000, 0x00f90000}, 569 {0x0000989c, 0x007b0000, 0x007b0000}, 570 {0x0000989c, 0x00ff0000, 0x00ff0000}, 571 {0x0000989c, 0x00f50000, 0x00f50000}, 572 {0x0000989c, 0x00dc0000, 0x00dc0000}, 573 {0x0000989c, 0x00110000, 0x00110000}, 574 {0x0000989c, 0x006100a8, 0x006100a8}, 575 {0x0000989c, 0x004210a2, 0x004210a2}, 576 {0x0000989c, 0x0014008f, 0x0014008f}, 577 {0x0000989c, 0x00c40003, 0x00c40003}, 578 {0x0000989c, 0x003000f2, 0x003000f2}, 579 {0x0000989c, 0x00440016, 0x00440016}, 580 {0x0000989c, 0x00410040, 0x00410040}, 581 {0x0000989c, 0x0001805e, 0x0001805e}, 582 {0x0000989c, 0x0000c0ab, 0x0000c0ab}, 583 {0x0000989c, 0x000000f1, 0x000000f1}, 584 {0x0000989c, 0x00002081, 0x00002081}, 585 {0x0000989c, 0x000000d4, 0x000000d4}, 586 {0x000098d0, 0x0000000f, 0x0010000f}, 587 }; 588 589 static const u32 ar5416Bank6TPC[][3] = { 590 /* Addr 5G_HT20 5G_HT40 */ 591 {0x0000989c, 0x00000000, 0x00000000}, 592 {0x0000989c, 0x00000000, 0x00000000}, 593 {0x0000989c, 0x00000000, 0x00000000}, 594 {0x0000989c, 0x00e00000, 0x00e00000}, 595 {0x0000989c, 0x005e0000, 0x005e0000}, 596 {0x0000989c, 0x00120000, 0x00120000}, 597 {0x0000989c, 0x00620000, 0x00620000}, 598 {0x0000989c, 0x00020000, 0x00020000}, 599 {0x0000989c, 0x00ff0000, 0x00ff0000}, 600 {0x0000989c, 0x00ff0000, 0x00ff0000}, 601 {0x0000989c, 0x00ff0000, 0x00ff0000}, 602 {0x0000989c, 0x40ff0000, 0x40ff0000}, 603 {0x0000989c, 0x005f0000, 0x005f0000}, 604 {0x0000989c, 0x00870000, 0x00870000}, 605 {0x0000989c, 0x00f90000, 0x00f90000}, 606 {0x0000989c, 0x007b0000, 0x007b0000}, 607 {0x0000989c, 0x00ff0000, 0x00ff0000}, 608 {0x0000989c, 0x00f50000, 0x00f50000}, 609 {0x0000989c, 0x00dc0000, 0x00dc0000}, 610 {0x0000989c, 0x00110000, 0x00110000}, 611 {0x0000989c, 0x006100a8, 0x006100a8}, 612 {0x0000989c, 0x00423022, 0x00423022}, 613 {0x0000989c, 0x201400df, 0x201400df}, 614 {0x0000989c, 0x00c40002, 0x00c40002}, 615 {0x0000989c, 0x003000f2, 0x003000f2}, 616 {0x0000989c, 0x00440016, 0x00440016}, 617 {0x0000989c, 0x00410040, 0x00410040}, 618 {0x0000989c, 0x0001805e, 0x0001805e}, 619 {0x0000989c, 0x0000c0ab, 0x0000c0ab}, 620 {0x0000989c, 0x000000e1, 0x000000e1}, 621 {0x0000989c, 0x00007081, 0x00007081}, 622 {0x0000989c, 0x000000d4, 0x000000d4}, 623 {0x000098d0, 0x0000000f, 0x0010000f}, 624 }; 625 626 static const u32 ar5416Bank7[][2] = { 627 /* Addr allmodes */ 628 {0x0000989c, 0x00000500}, 629 {0x0000989c, 0x00000800}, 630 {0x000098cc, 0x0000000e}, 631 }; 632 633 static const u32 ar5416Addac[][2] = { 634 /* Addr allmodes */ 635 {0x0000989c, 0x00000000}, 636 {0x0000989c, 0x00000003}, 637 {0x0000989c, 0x00000000}, 638 {0x0000989c, 0x0000000c}, 639 {0x0000989c, 0x00000000}, 640 {0x0000989c, 0x00000030}, 641 {0x0000989c, 0x00000000}, 642 {0x0000989c, 0x00000000}, 643 {0x0000989c, 0x00000000}, 644 {0x0000989c, 0x00000000}, 645 {0x0000989c, 0x00000000}, 646 {0x0000989c, 0x00000000}, 647 {0x0000989c, 0x00000000}, 648 {0x0000989c, 0x00000000}, 649 {0x0000989c, 0x00000000}, 650 {0x0000989c, 0x00000000}, 651 {0x0000989c, 0x00000000}, 652 {0x0000989c, 0x00000000}, 653 {0x0000989c, 0x00000060}, 654 {0x0000989c, 0x00000000}, 655 {0x0000989c, 0x00000000}, 656 {0x0000989c, 0x00000000}, 657 {0x0000989c, 0x00000000}, 658 {0x0000989c, 0x00000000}, 659 {0x0000989c, 0x00000000}, 660 {0x0000989c, 0x00000000}, 661 {0x0000989c, 0x00000000}, 662 {0x0000989c, 0x00000000}, 663 {0x0000989c, 0x00000000}, 664 {0x0000989c, 0x00000000}, 665 {0x0000989c, 0x00000000}, 666 {0x0000989c, 0x00000058}, 667 {0x0000989c, 0x00000000}, 668 {0x0000989c, 0x00000000}, 669 {0x0000989c, 0x00000000}, 670 {0x0000989c, 0x00000000}, 671 {0x000098cc, 0x00000000}, 672 }; 673 674