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