Annotation of sys/dev/ic/ar5212var.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: ar5212var.h,v 1.14 2007/03/12 01:04:52 reyk Exp $ */
! 2:
! 3: /*
! 4: * Copyright (c) 2004, 2005, 2006, 2007 Reyk Floeter <reyk@openbsd.org>
! 5: *
! 6: * Permission to use, copy, modify, and distribute this software for any
! 7: * purpose with or without fee is hereby granted, provided that the above
! 8: * copyright notice and this permission notice appear in all copies.
! 9: *
! 10: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
! 11: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
! 12: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
! 13: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
! 14: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
! 15: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
! 16: * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
! 17: */
! 18:
! 19: /*
! 20: * Specific definitions for the Atheros AR5001 Wireless LAN chipset
! 21: * (AR5212/AR5311).
! 22: */
! 23:
! 24: #ifndef _AR5K_AR5212_VAR_H
! 25: #define _AR5K_AR5212_VAR_H
! 26:
! 27: #include <dev/ic/ar5xxx.h>
! 28:
! 29: /*
! 30: * Define a "magic" code for the AR5212 (the HAL layer wants it)
! 31: */
! 32:
! 33: #define AR5K_AR5212_MAGIC 0x0000145c /* 5212 */
! 34: #define AR5K_AR5212_TX_NUM_QUEUES 10
! 35:
! 36: #if BYTE_ORDER == BIG_ENDIAN
! 37: #define AR5K_AR5212_INIT_CFG ( \
! 38: AR5K_AR5212_CFG_SWTD | AR5K_AR5212_CFG_SWRD \
! 39: )
! 40: #else
! 41: #define AR5K_AR5212_INIT_CFG 0x00000000
! 42: #endif
! 43:
! 44: /*
! 45: * Internal RX/TX descriptor structures
! 46: * (rX: reserved fields possibily used by future versions of the ar5k chipset)
! 47: */
! 48:
! 49: struct ar5k_ar5212_rx_desc {
! 50: /*
! 51: * RX control word 0
! 52: */
! 53: u_int32_t rx_control_0;
! 54:
! 55: #define AR5K_AR5212_DESC_RX_CTL0 0x00000000
! 56:
! 57: /*
! 58: * RX control word 1
! 59: */
! 60: u_int32_t rx_control_1;
! 61:
! 62: #define AR5K_AR5212_DESC_RX_CTL1_BUF_LEN 0x00000fff
! 63: #define AR5K_AR5212_DESC_RX_CTL1_INTREQ 0x00002000
! 64: } __packed;
! 65:
! 66: struct ar5k_ar5212_rx_status {
! 67: /*
! 68: * RX status word 0
! 69: */
! 70: u_int32_t rx_status_0;
! 71:
! 72: #define AR5K_AR5212_DESC_RX_STATUS0_DATA_LEN 0x00000fff
! 73: #define AR5K_AR5212_DESC_RX_STATUS0_MORE 0x00001000
! 74: #define AR5K_AR5212_DESC_RX_STATUS0_DECOMP_CRC_ERROR 0x00002000
! 75: #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_RATE 0x000f8000
! 76: #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_RATE_S 15
! 77: #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_SIGNAL 0x0ff00000
! 78: #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_SIGNAL_S 20
! 79: #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_ANTENNA 0xf0000000
! 80: #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_ANTENNA_S 28
! 81:
! 82: /*
! 83: * RX status word 1
! 84: */
! 85: u_int32_t rx_status_1;
! 86:
! 87: #define AR5K_AR5212_DESC_RX_STATUS1_DONE 0x00000001
! 88: #define AR5K_AR5212_DESC_RX_STATUS1_FRAME_RECEIVE_OK 0x00000002
! 89: #define AR5K_AR5212_DESC_RX_STATUS1_CRC_ERROR 0x00000004
! 90: #define AR5K_AR5212_DESC_RX_STATUS1_DECRYPT_CRC_ERROR 0x00000008
! 91: #define AR5K_AR5212_DESC_RX_STATUS1_PHY_ERROR 0x00000010
! 92: #define AR5K_AR5212_DESC_RX_STATUS1_MIC_ERROR 0x00000020
! 93: #define AR5K_AR5212_DESC_RX_STATUS1_KEY_INDEX_VALID 0x00000100
! 94: #define AR5K_AR5212_DESC_RX_STATUS1_KEY_INDEX 0x0000fe00
! 95: #define AR5K_AR5212_DESC_RX_STATUS1_KEY_INDEX_S 9
! 96: #define AR5K_AR5212_DESC_RX_STATUS1_RECEIVE_TIMESTAMP 0x7fff0000
! 97: #define AR5K_AR5212_DESC_RX_STATUS1_RECEIVE_TIMESTAMP_S 16
! 98: #define AR5K_AR5212_DESC_RX_STATUS1_KEY_CACHE_MISS 0x80000000
! 99: } __packed;
! 100:
! 101: struct ar5k_ar5212_rx_error {
! 102: /*
! 103: * RX error word 0
! 104: */
! 105: u_int32_t rx_error_0;
! 106:
! 107: #define AR5K_AR5212_DESC_RX_ERROR0 0x00000000
! 108:
! 109: /*
! 110: * RX error word 1
! 111: */
! 112: u_int32_t rx_error_1;
! 113:
! 114: #define AR5K_AR5212_DESC_RX_ERROR1_PHY_ERROR_CODE 0x0000ff00
! 115: #define AR5K_AR5212_DESC_RX_ERROR1_PHY_ERROR_CODE_S 8
! 116: } __packed;
! 117:
! 118: #define AR5K_AR5212_DESC_RX_PHY_ERROR_NONE 0x00
! 119: #define AR5K_AR5212_DESC_RX_PHY_ERROR_TIMING 0x20
! 120: #define AR5K_AR5212_DESC_RX_PHY_ERROR_PARITY 0x40
! 121: #define AR5K_AR5212_DESC_RX_PHY_ERROR_RATE 0x60
! 122: #define AR5K_AR5212_DESC_RX_PHY_ERROR_LENGTH 0x80
! 123: #define AR5K_AR5212_DESC_RX_PHY_ERROR_64QAM 0xa0
! 124: #define AR5K_AR5212_DESC_RX_PHY_ERROR_SERVICE 0xc0
! 125: #define AR5K_AR5212_DESC_RX_PHY_ERROR_TRANSMITOVR 0xe0
! 126:
! 127: struct ar5k_ar5212_tx_desc {
! 128: /*
! 129: * TX control word 0
! 130: */
! 131: u_int32_t tx_control_0;
! 132:
! 133: #define AR5K_AR5212_DESC_TX_CTL0_FRAME_LEN 0x00000fff
! 134: #define AR5K_AR5212_DESC_TX_CTL0_XMIT_POWER 0x003f0000
! 135: #define AR5K_AR5212_DESC_TX_CTL0_XMIT_POWER_S 16
! 136: #define AR5K_AR5212_DESC_TX_CTL0_RTSENA 0x00400000
! 137: #define AR5K_AR5212_DESC_TX_CTL0_VEOL 0x00800000
! 138: #define AR5K_AR5212_DESC_TX_CTL0_CLRDMASK 0x01000000
! 139: #define AR5K_AR5212_DESC_TX_CTL0_ANT_MODE_XMIT 0x1e000000
! 140: #define AR5K_AR5212_DESC_TX_CTL0_ANT_MODE_XMIT_S 25
! 141: #define AR5K_AR5212_DESC_TX_CTL0_INTREQ 0x20000000
! 142: #define AR5K_AR5212_DESC_TX_CTL0_ENCRYPT_KEY_VALID 0x40000000
! 143: #define AR5K_AR5212_DESC_TX_CTL0_CTSENA 0x80000000
! 144:
! 145: /*
! 146: * TX control word 1
! 147: */
! 148: u_int32_t tx_control_1;
! 149:
! 150: #define AR5K_AR5212_DESC_TX_CTL1_BUF_LEN 0x00000fff
! 151: #define AR5K_AR5212_DESC_TX_CTL1_MORE 0x00001000
! 152: #define AR5K_AR5212_DESC_TX_CTL1_ENCRYPT_KEY_INDEX 0x000fe000
! 153: #define AR5K_AR5212_DESC_TX_CTL1_ENCRYPT_KEY_INDEX_S 13
! 154: #define AR5K_AR5212_DESC_TX_CTL1_FRAME_TYPE 0x00f00000
! 155: #define AR5K_AR5212_DESC_TX_CTL1_FRAME_TYPE_S 20
! 156: #define AR5K_AR5212_DESC_TX_CTL1_NOACK 0x01000000
! 157: #define AR5K_AR5212_DESC_TX_CTL1_COMP_PROC 0x06000000
! 158: #define AR5K_AR5212_DESC_TX_CTL1_COMP_PROC_S 25
! 159: #define AR5K_AR5212_DESC_TX_CTL1_COMP_IV_LEN 0x18000000
! 160: #define AR5K_AR5212_DESC_TX_CTL1_COMP_IV_LEN_S 27
! 161: #define AR5K_AR5212_DESC_TX_CTL1_COMP_ICV_LEN 0x60000000
! 162: #define AR5K_AR5212_DESC_TX_CTL1_COMP_ICV_LEN_S 29
! 163:
! 164: /*
! 165: * TX control word 2
! 166: */
! 167: u_int32_t tx_control_2;
! 168:
! 169: #define AR5K_AR5212_DESC_TX_CTL2_RTS_DURATION 0x00007fff
! 170: #define AR5K_AR5212_DESC_TX_CTL2_DURATION_UPDATE_ENABLE 0x00008000
! 171: #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES0 0x000f0000
! 172: #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES0_S 16
! 173: #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES1 0x00f00000
! 174: #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES1_S 20
! 175: #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES2 0x0f000000
! 176: #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES2_S 24
! 177: #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES3 0xf0000000
! 178: #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES3_S 28
! 179:
! 180: /*
! 181: * TX control word 3
! 182: */
! 183: u_int32_t tx_control_3;
! 184:
! 185: #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE0 0x0000001f
! 186: #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE1 0x000003e0
! 187: #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE1_S 5
! 188: #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE2 0x00007c00
! 189: #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE2_S 10
! 190: #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE3 0x000f8000
! 191: #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE3_S 15
! 192: #define AR5K_AR5212_DESC_TX_CTL3_RTS_CTS_RATE 0x01f00000
! 193: #define AR5K_AR5212_DESC_TX_CTL3_RTS_CTS_RATE_S 20
! 194: } __packed;
! 195:
! 196: struct ar5k_ar5212_tx_status {
! 197: /*
! 198: * TX status word 0
! 199: */
! 200: u_int32_t tx_status_0;
! 201:
! 202: #define AR5K_AR5212_DESC_TX_STATUS0_FRAME_XMIT_OK 0x00000001
! 203: #define AR5K_AR5212_DESC_TX_STATUS0_EXCESSIVE_RETRIES 0x00000002
! 204: #define AR5K_AR5212_DESC_TX_STATUS0_FIFO_UNDERRUN 0x00000004
! 205: #define AR5K_AR5212_DESC_TX_STATUS0_FILTERED 0x00000008
! 206: #define AR5K_AR5212_DESC_TX_STATUS0_RTS_FAIL_COUNT 0x000000f0
! 207: #define AR5K_AR5212_DESC_TX_STATUS0_RTS_FAIL_COUNT_S 4
! 208: #define AR5K_AR5212_DESC_TX_STATUS0_DATA_FAIL_COUNT 0x00000f00
! 209: #define AR5K_AR5212_DESC_TX_STATUS0_DATA_FAIL_COUNT_S 8
! 210: #define AR5K_AR5212_DESC_TX_STATUS0_VIRT_COLL_COUNT 0x0000f000
! 211: #define AR5K_AR5212_DESC_TX_STATUS0_VIRT_COLL_COUNT_S 12
! 212: #define AR5K_AR5212_DESC_TX_STATUS0_SEND_TIMESTAMP 0xffff0000
! 213: #define AR5K_AR5212_DESC_TX_STATUS0_SEND_TIMESTAMP_S 16
! 214:
! 215: /*
! 216: * TX status word 1
! 217: */
! 218: u_int32_t tx_status_1;
! 219:
! 220: #define AR5K_AR5212_DESC_TX_STATUS1_DONE 0x00000001
! 221: #define AR5K_AR5212_DESC_TX_STATUS1_SEQ_NUM 0x00001ffe
! 222: #define AR5K_AR5212_DESC_TX_STATUS1_SEQ_NUM_S 1
! 223: #define AR5K_AR5212_DESC_TX_STATUS1_ACK_SIG_STRENGTH 0x001fe000
! 224: #define AR5K_AR5212_DESC_TX_STATUS1_ACK_SIG_STRENGTH_S 13
! 225: #define AR5K_AR5212_DESC_TX_STATUS1_FINAL_TS_INDEX 0x00600000
! 226: #define AR5K_AR5212_DESC_TX_STATUS1_FINAL_TS_INDEX_S 21
! 227: #define AR5K_AR5212_DESC_TX_STATUS1_COMP_SUCCESS 0x00800000
! 228: #define AR5K_AR5212_DESC_TX_STATUS1_XMIT_ANTENNA 0x01000000
! 229: } __packed;
! 230:
! 231: /*
! 232: * Public function prototypes
! 233: */
! 234: extern ar5k_attach_t ar5k_ar5212_attach;
! 235:
! 236: /*
! 237: * Initial register values which have to be loaded into the
! 238: * card at boot time and after each reset.
! 239: */
! 240:
! 241: struct ar5k_ar5212_ini {
! 242: u_int8_t ini_flags;
! 243: u_int16_t ini_register;
! 244: u_int32_t ini_value;
! 245:
! 246: #define AR5K_INI_FLAG_511X 0x00
! 247: #define AR5K_INI_FLAG_5111 0x01
! 248: #define AR5K_INI_FLAG_5112 0x02
! 249: #define AR5K_INI_FLAG_BOTH (AR5K_INI_FLAG_5111 | AR5K_INI_FLAG_5112)
! 250: };
! 251:
! 252: #define AR5K_AR5212_INI { \
! 253: { AR5K_INI_FLAG_BOTH, 0x000c, 0x00000000 }, \
! 254: { AR5K_INI_FLAG_BOTH, 0x0034, 0x00000005 }, \
! 255: { AR5K_INI_FLAG_BOTH, 0x0040, 0x00000000 }, \
! 256: { AR5K_INI_FLAG_BOTH, 0x0044, 0x00000008 }, \
! 257: { AR5K_INI_FLAG_BOTH, 0x0048, 0x00000008 }, \
! 258: { AR5K_INI_FLAG_BOTH, 0x004c, 0x00000010 }, \
! 259: { AR5K_INI_FLAG_BOTH, 0x0050, 0x00000000 }, \
! 260: { AR5K_INI_FLAG_BOTH, 0x0054, 0x0000001f }, \
! 261: { AR5K_INI_FLAG_BOTH, 0x0800, 0x00000000 }, \
! 262: { AR5K_INI_FLAG_BOTH, 0x0804, 0x00000000 }, \
! 263: { AR5K_INI_FLAG_BOTH, 0x0808, 0x00000000 }, \
! 264: { AR5K_INI_FLAG_BOTH, 0x080c, 0x00000000 }, \
! 265: { AR5K_INI_FLAG_BOTH, 0x0810, 0x00000000 }, \
! 266: { AR5K_INI_FLAG_BOTH, 0x0814, 0x00000000 }, \
! 267: { AR5K_INI_FLAG_BOTH, 0x0818, 0x00000000 }, \
! 268: { AR5K_INI_FLAG_BOTH, 0x081c, 0x00000000 }, \
! 269: { AR5K_INI_FLAG_BOTH, 0x0820, 0x00000000 }, \
! 270: { AR5K_INI_FLAG_BOTH, 0x0824, 0x00000000 }, \
! 271: { AR5K_INI_FLAG_BOTH, 0x1230, 0x00000000 }, \
! 272: { AR5K_INI_FLAG_BOTH, 0x1270, 0x00000000 }, \
! 273: { AR5K_INI_FLAG_BOTH, 0x1038, 0x00000000 }, \
! 274: { AR5K_INI_FLAG_BOTH, 0x1078, 0x00000000 }, \
! 275: { AR5K_INI_FLAG_BOTH, 0x10b8, 0x00000000 }, \
! 276: { AR5K_INI_FLAG_BOTH, 0x10f8, 0x00000000 }, \
! 277: { AR5K_INI_FLAG_BOTH, 0x1138, 0x00000000 }, \
! 278: { AR5K_INI_FLAG_BOTH, 0x1178, 0x00000000 }, \
! 279: { AR5K_INI_FLAG_BOTH, 0x11b8, 0x00000000 }, \
! 280: { AR5K_INI_FLAG_BOTH, 0x11f8, 0x00000000 }, \
! 281: { AR5K_INI_FLAG_BOTH, 0x1238, 0x00000000 }, \
! 282: { AR5K_INI_FLAG_BOTH, 0x1278, 0x00000000 }, \
! 283: { AR5K_INI_FLAG_BOTH, 0x12b8, 0x00000000 }, \
! 284: { AR5K_INI_FLAG_BOTH, 0x12f8, 0x00000000 }, \
! 285: { AR5K_INI_FLAG_BOTH, 0x1338, 0x00000000 }, \
! 286: { AR5K_INI_FLAG_BOTH, 0x1378, 0x00000000 }, \
! 287: { AR5K_INI_FLAG_BOTH, 0x13b8, 0x00000000 }, \
! 288: { AR5K_INI_FLAG_BOTH, 0x13f8, 0x00000000 }, \
! 289: { AR5K_INI_FLAG_BOTH, 0x1438, 0x00000000 }, \
! 290: { AR5K_INI_FLAG_BOTH, 0x1478, 0x00000000 }, \
! 291: { AR5K_INI_FLAG_BOTH, 0x14b8, 0x00000000 }, \
! 292: { AR5K_INI_FLAG_BOTH, 0x14f8, 0x00000000 }, \
! 293: { AR5K_INI_FLAG_BOTH, 0x1538, 0x00000000 }, \
! 294: { AR5K_INI_FLAG_BOTH, 0x1578, 0x00000000 }, \
! 295: { AR5K_INI_FLAG_BOTH, 0x15b8, 0x00000000 }, \
! 296: { AR5K_INI_FLAG_BOTH, 0x15f8, 0x00000000 }, \
! 297: { AR5K_INI_FLAG_BOTH, 0x1638, 0x00000000 }, \
! 298: { AR5K_INI_FLAG_BOTH, 0x1678, 0x00000000 }, \
! 299: { AR5K_INI_FLAG_BOTH, 0x16b8, 0x00000000 }, \
! 300: { AR5K_INI_FLAG_BOTH, 0x16f8, 0x00000000 }, \
! 301: { AR5K_INI_FLAG_BOTH, 0x1738, 0x00000000 }, \
! 302: { AR5K_INI_FLAG_BOTH, 0x1778, 0x00000000 }, \
! 303: { AR5K_INI_FLAG_BOTH, 0x17b8, 0x00000000 }, \
! 304: { AR5K_INI_FLAG_BOTH, 0x17f8, 0x00000000 }, \
! 305: { AR5K_INI_FLAG_BOTH, 0x103c, 0x00000000 }, \
! 306: { AR5K_INI_FLAG_BOTH, 0x107c, 0x00000000 }, \
! 307: { AR5K_INI_FLAG_BOTH, 0x10bc, 0x00000000 }, \
! 308: { AR5K_INI_FLAG_BOTH, 0x10fc, 0x00000000 }, \
! 309: { AR5K_INI_FLAG_BOTH, 0x113c, 0x00000000 }, \
! 310: { AR5K_INI_FLAG_BOTH, 0x117c, 0x00000000 }, \
! 311: { AR5K_INI_FLAG_BOTH, 0x11bc, 0x00000000 }, \
! 312: { AR5K_INI_FLAG_BOTH, 0x11fc, 0x00000000 }, \
! 313: { AR5K_INI_FLAG_BOTH, 0x123c, 0x00000000 }, \
! 314: { AR5K_INI_FLAG_BOTH, 0x127c, 0x00000000 }, \
! 315: { AR5K_INI_FLAG_BOTH, 0x12bc, 0x00000000 }, \
! 316: { AR5K_INI_FLAG_BOTH, 0x12fc, 0x00000000 }, \
! 317: { AR5K_INI_FLAG_BOTH, 0x133c, 0x00000000 }, \
! 318: { AR5K_INI_FLAG_BOTH, 0x137c, 0x00000000 }, \
! 319: { AR5K_INI_FLAG_BOTH, 0x13bc, 0x00000000 }, \
! 320: { AR5K_INI_FLAG_BOTH, 0x13fc, 0x00000000 }, \
! 321: { AR5K_INI_FLAG_BOTH, 0x143c, 0x00000000 }, \
! 322: { AR5K_INI_FLAG_BOTH, 0x147c, 0x00000000 }, \
! 323: { AR5K_INI_FLAG_BOTH, 0x8004, 0x00000000 }, \
! 324: { AR5K_INI_FLAG_BOTH, 0x8008, 0x00000000 }, \
! 325: { AR5K_INI_FLAG_BOTH, 0x800c, 0x00000000 }, \
! 326: { AR5K_INI_FLAG_BOTH, 0x8018, 0x00000000 }, \
! 327: { AR5K_INI_FLAG_BOTH, 0x8020, 0x00000000 }, \
! 328: { AR5K_INI_FLAG_BOTH, 0x8024, 0x00000000 }, \
! 329: { AR5K_INI_FLAG_BOTH, 0x8028, 0x00000030 }, \
! 330: { AR5K_INI_FLAG_BOTH, 0x802c, 0x0007ffff }, \
! 331: { AR5K_INI_FLAG_BOTH, 0x8030, 0x01ffffff }, \
! 332: { AR5K_INI_FLAG_BOTH, 0x8034, 0x00000031 }, \
! 333: { AR5K_INI_FLAG_BOTH, 0x8038, 0x00000000 }, \
! 334: { AR5K_INI_FLAG_BOTH, 0x803c, 0x00000000 }, \
! 335: { AR5K_INI_FLAG_BOTH, 0x8048, 0x00000000 }, \
! 336: { AR5K_INI_FLAG_BOTH, 0x8054, 0x00000000 }, \
! 337: { AR5K_INI_FLAG_BOTH, 0x8058, 0x00000000 }, \
! 338: { AR5K_INI_FLAG_BOTH, 0x805c, 0xffffc7ff }, \
! 339: { AR5K_INI_FLAG_BOTH, 0x8080, 0x00000000 }, \
! 340: { AR5K_INI_FLAG_BOTH, 0x8084, 0x00000000 }, \
! 341: { AR5K_INI_FLAG_BOTH, 0x8088, 0x00000000 }, \
! 342: { AR5K_INI_FLAG_BOTH, 0x808c, 0x00000000 }, \
! 343: { AR5K_INI_FLAG_BOTH, 0x8090, 0x00000000 }, \
! 344: { AR5K_INI_FLAG_BOTH, 0x8094, 0x00000000 }, \
! 345: { AR5K_INI_FLAG_BOTH, 0x8098, 0x00000000 }, \
! 346: { AR5K_INI_FLAG_BOTH, 0x80c0, 0x2a82301a }, \
! 347: { AR5K_INI_FLAG_BOTH, 0x80c4, 0x05dc01e0 }, \
! 348: { AR5K_INI_FLAG_BOTH, 0x80c8, 0x1f402710 }, \
! 349: { AR5K_INI_FLAG_BOTH, 0x80cc, 0x01f40000 }, \
! 350: { AR5K_INI_FLAG_BOTH, 0x80d0, 0x00001e1c }, \
! 351: { AR5K_INI_FLAG_BOTH, 0x80d4, 0x0002aaaa }, \
! 352: { AR5K_INI_FLAG_BOTH, 0x80d8, 0x02005555 }, \
! 353: { AR5K_INI_FLAG_BOTH, 0x80dc, 0x00000000 }, \
! 354: { AR5K_INI_FLAG_BOTH, 0x80e0, 0xffffffff }, \
! 355: { AR5K_INI_FLAG_BOTH, 0x80e4, 0x0000ffff }, \
! 356: { AR5K_INI_FLAG_BOTH, 0x80e8, 0x00000000 }, \
! 357: { AR5K_INI_FLAG_BOTH, 0x80ec, 0x00000000 }, \
! 358: { AR5K_INI_FLAG_BOTH, 0x80f0, 0x00000000 }, \
! 359: { AR5K_INI_FLAG_BOTH, 0x80f4, 0x00000000 }, \
! 360: { AR5K_INI_FLAG_BOTH, 0x80f8, 0x00000000 }, \
! 361: { AR5K_INI_FLAG_BOTH, 0x80fc, 0x00000088 }, \
! 362: { AR5K_INI_FLAG_BOTH, 0x8700, 0x00000000 }, \
! 363: { AR5K_INI_FLAG_BOTH, 0x8704, 0x0000008c }, \
! 364: { AR5K_INI_FLAG_BOTH, 0x8708, 0x000000e4 }, \
! 365: { AR5K_INI_FLAG_BOTH, 0x870c, 0x000002d5 }, \
! 366: { AR5K_INI_FLAG_BOTH, 0x8710, 0x00000000 }, \
! 367: { AR5K_INI_FLAG_BOTH, 0x8714, 0x00000000 }, \
! 368: { AR5K_INI_FLAG_BOTH, 0x8718, 0x000000a0 }, \
! 369: { AR5K_INI_FLAG_BOTH, 0x871c, 0x000001c9 }, \
! 370: { AR5K_INI_FLAG_BOTH, 0x8720, 0x0000002c }, \
! 371: { AR5K_INI_FLAG_BOTH, 0x8724, 0x0000002c }, \
! 372: { AR5K_INI_FLAG_BOTH, 0x8728, 0x00000030 }, \
! 373: { AR5K_INI_FLAG_BOTH, 0x872c, 0x0000003c }, \
! 374: { AR5K_INI_FLAG_BOTH, 0x8730, 0x0000002c }, \
! 375: { AR5K_INI_FLAG_BOTH, 0x8734, 0x0000002c }, \
! 376: { AR5K_INI_FLAG_BOTH, 0x8738, 0x00000030 }, \
! 377: { AR5K_INI_FLAG_BOTH, 0x873c, 0x0000003c }, \
! 378: { AR5K_INI_FLAG_BOTH, 0x8740, 0x00000000 }, \
! 379: { AR5K_INI_FLAG_BOTH, 0x8744, 0x00000000 }, \
! 380: { AR5K_INI_FLAG_BOTH, 0x8748, 0x00000000 }, \
! 381: { AR5K_INI_FLAG_BOTH, 0x874c, 0x00000000 }, \
! 382: { AR5K_INI_FLAG_BOTH, 0x8750, 0x00000000 }, \
! 383: { AR5K_INI_FLAG_BOTH, 0x8754, 0x00000000 }, \
! 384: { AR5K_INI_FLAG_BOTH, 0x8758, 0x00000000 }, \
! 385: { AR5K_INI_FLAG_BOTH, 0x875c, 0x00000000 }, \
! 386: { AR5K_INI_FLAG_BOTH, 0x8760, 0x000000d5 }, \
! 387: { AR5K_INI_FLAG_BOTH, 0x8764, 0x000000df }, \
! 388: { AR5K_INI_FLAG_BOTH, 0x8768, 0x00000102 }, \
! 389: { AR5K_INI_FLAG_BOTH, 0x876c, 0x0000013a }, \
! 390: { AR5K_INI_FLAG_BOTH, 0x8770, 0x00000075 }, \
! 391: { AR5K_INI_FLAG_BOTH, 0x8774, 0x0000007f }, \
! 392: { AR5K_INI_FLAG_BOTH, 0x8778, 0x000000a2 }, \
! 393: { AR5K_INI_FLAG_BOTH, 0x877c, 0x00000000 }, \
! 394: { AR5K_INI_FLAG_BOTH, 0x8100, 0x00010002 }, \
! 395: { AR5K_INI_FLAG_BOTH, 0x8104, 0x00000001 }, \
! 396: { AR5K_INI_FLAG_BOTH, 0x8108, 0x000000c0 }, \
! 397: { AR5K_INI_FLAG_BOTH, 0x810c, 0x00000000 }, \
! 398: { AR5K_INI_FLAG_BOTH, 0x8110, 0x00000168 }, \
! 399: { AR5K_INI_FLAG_BOTH, 0x8114, 0x00000000 }, \
! 400: { AR5K_INI_FLAG_BOTH, 0x87c0, 0x03020100 }, \
! 401: { AR5K_INI_FLAG_BOTH, 0x87c4, 0x07060504 }, \
! 402: { AR5K_INI_FLAG_BOTH, 0x87c8, 0x0b0a0908 }, \
! 403: { AR5K_INI_FLAG_BOTH, 0x87cc, 0x0f0e0d0c }, \
! 404: { AR5K_INI_FLAG_BOTH, 0x87d0, 0x13121110 }, \
! 405: { AR5K_INI_FLAG_BOTH, 0x87d4, 0x17161514 }, \
! 406: { AR5K_INI_FLAG_BOTH, 0x87d8, 0x1b1a1918 }, \
! 407: { AR5K_INI_FLAG_BOTH, 0x87dc, 0x1f1e1d1c }, \
! 408: { AR5K_INI_FLAG_BOTH, 0x87e0, 0x03020100 }, \
! 409: { AR5K_INI_FLAG_BOTH, 0x87e4, 0x07060504 }, \
! 410: { AR5K_INI_FLAG_BOTH, 0x87e8, 0x0b0a0908 }, \
! 411: { AR5K_INI_FLAG_BOTH, 0x87ec, 0x0f0e0d0c }, \
! 412: { AR5K_INI_FLAG_BOTH, 0x87f0, 0x13121110 }, \
! 413: { AR5K_INI_FLAG_BOTH, 0x87f4, 0x17161514 }, \
! 414: { AR5K_INI_FLAG_BOTH, 0x87f8, 0x1b1a1918 }, \
! 415: { AR5K_INI_FLAG_BOTH, 0x87fc, 0x1f1e1d1c }, \
! 416: /* PHY registers */ \
! 417: { AR5K_INI_FLAG_BOTH, 0x9808, 0x00000000 }, \
! 418: { AR5K_INI_FLAG_BOTH, 0x980c, 0xad848e19 }, \
! 419: { AR5K_INI_FLAG_BOTH, 0x9810, 0x7d28e000 }, \
! 420: { AR5K_INI_FLAG_BOTH, 0x9814, 0x9c0a9f6b }, \
! 421: { AR5K_INI_FLAG_BOTH, 0x981c, 0x00000000 }, \
! 422: { AR5K_INI_FLAG_BOTH, 0x982c, 0x00022ffe }, \
! 423: { AR5K_INI_FLAG_BOTH, 0x983c, 0x00020100 }, \
! 424: { AR5K_INI_FLAG_BOTH, 0x9840, 0x206a017a }, \
! 425: { AR5K_INI_FLAG_BOTH, 0x984c, 0x1284613c }, \
! 426: { AR5K_INI_FLAG_BOTH, 0x9854, 0x00000859 }, \
! 427: { AR5K_INI_FLAG_BOTH, 0x9900, 0x00000000 }, \
! 428: { AR5K_INI_FLAG_BOTH, 0x9904, 0x00000000 }, \
! 429: { AR5K_INI_FLAG_BOTH, 0x9908, 0x00000000 }, \
! 430: { AR5K_INI_FLAG_BOTH, 0x990c, 0x00800000 }, \
! 431: { AR5K_INI_FLAG_BOTH, 0x9910, 0x00000001 }, \
! 432: { AR5K_INI_FLAG_BOTH, 0x991c, 0x0000092a }, \
! 433: { AR5K_INI_FLAG_BOTH, 0x9920, 0x05100000 }, \
! 434: { AR5K_INI_FLAG_BOTH, 0x9928, 0x00000001 }, \
! 435: { AR5K_INI_FLAG_BOTH, 0x992c, 0x00000004 }, \
! 436: { AR5K_INI_FLAG_BOTH, 0x9934, 0x1e1f2022 }, \
! 437: { AR5K_INI_FLAG_BOTH, 0x9938, 0x0a0b0c0d }, \
! 438: { AR5K_INI_FLAG_BOTH, 0x993c, 0x0000003f }, \
! 439: { AR5K_INI_FLAG_BOTH, 0x9940, 0x00000004 }, \
! 440: { AR5K_INI_FLAG_BOTH, 0x9948, 0x9280b212 }, \
! 441: { AR5K_INI_FLAG_BOTH, 0x9954, 0x5d50e188 }, \
! 442: { AR5K_INI_FLAG_BOTH, 0x9958, 0x000000ff }, \
! 443: { AR5K_INI_FLAG_BOTH, 0x995c, 0x004b6a8e }, \
! 444: { AR5K_INI_FLAG_BOTH, 0x9968, 0x000003ce }, \
! 445: { AR5K_INI_FLAG_BOTH, 0x9970, 0x192fb515 }, \
! 446: { AR5K_INI_FLAG_BOTH, 0x9974, 0x00000000 }, \
! 447: { AR5K_INI_FLAG_BOTH, 0x9978, 0x00000001 }, \
! 448: { AR5K_INI_FLAG_BOTH, 0x997c, 0x00000000 }, \
! 449: { AR5K_INI_FLAG_BOTH, 0xa184, 0x10ff10ff }, \
! 450: { AR5K_INI_FLAG_BOTH, 0xa188, 0x10ff10ff }, \
! 451: { AR5K_INI_FLAG_BOTH, 0xa18c, 0x10ff10ff }, \
! 452: { AR5K_INI_FLAG_BOTH, 0xa190, 0x10ff10ff }, \
! 453: { AR5K_INI_FLAG_BOTH, 0xa194, 0x10ff10ff }, \
! 454: { AR5K_INI_FLAG_BOTH, 0xa198, 0x10ff10ff }, \
! 455: { AR5K_INI_FLAG_BOTH, 0xa19c, 0x10ff10ff }, \
! 456: { AR5K_INI_FLAG_BOTH, 0xa1a0, 0x10ff10ff }, \
! 457: { AR5K_INI_FLAG_BOTH, 0xa1a4, 0x10ff10ff }, \
! 458: { AR5K_INI_FLAG_BOTH, 0xa1a8, 0x10ff10ff }, \
! 459: { AR5K_INI_FLAG_BOTH, 0xa1ac, 0x10ff10ff }, \
! 460: { AR5K_INI_FLAG_BOTH, 0xa1b0, 0x10ff10ff }, \
! 461: { AR5K_INI_FLAG_BOTH, 0xa1b4, 0x10ff10ff }, \
! 462: { AR5K_INI_FLAG_BOTH, 0xa1b8, 0x10ff10ff }, \
! 463: { AR5K_INI_FLAG_BOTH, 0xa1bc, 0x10ff10ff }, \
! 464: { AR5K_INI_FLAG_BOTH, 0xa1c0, 0x10ff10ff }, \
! 465: { AR5K_INI_FLAG_BOTH, 0xa1c4, 0x10ff10ff }, \
! 466: { AR5K_INI_FLAG_BOTH, 0xa1c8, 0x10ff10ff }, \
! 467: { AR5K_INI_FLAG_BOTH, 0xa1cc, 0x10ff10ff }, \
! 468: { AR5K_INI_FLAG_BOTH, 0xa1d0, 0x10ff10ff }, \
! 469: { AR5K_INI_FLAG_BOTH, 0xa1d4, 0x10ff10ff }, \
! 470: { AR5K_INI_FLAG_BOTH, 0xa1d8, 0x10ff10ff }, \
! 471: { AR5K_INI_FLAG_BOTH, 0xa1dc, 0x10ff10ff }, \
! 472: { AR5K_INI_FLAG_BOTH, 0xa1e0, 0x10ff10ff }, \
! 473: { AR5K_INI_FLAG_BOTH, 0xa1e4, 0x10ff10ff }, \
! 474: { AR5K_INI_FLAG_BOTH, 0xa1e8, 0x10ff10ff }, \
! 475: { AR5K_INI_FLAG_BOTH, 0xa1ec, 0x10ff10ff }, \
! 476: { AR5K_INI_FLAG_BOTH, 0xa1f0, 0x10ff10ff }, \
! 477: { AR5K_INI_FLAG_BOTH, 0xa1f4, 0x10ff10ff }, \
! 478: { AR5K_INI_FLAG_BOTH, 0xa1f8, 0x10ff10ff }, \
! 479: { AR5K_INI_FLAG_BOTH, 0xa1fc, 0x10ff10ff }, \
! 480: { AR5K_INI_FLAG_BOTH, 0xa210, 0x0080a333 }, \
! 481: { AR5K_INI_FLAG_BOTH, 0xa214, 0x00206c10 }, \
! 482: { AR5K_INI_FLAG_BOTH, 0xa218, 0x009c4060 }, \
! 483: { AR5K_INI_FLAG_BOTH, 0xa21c, 0x1483800a }, \
! 484: { AR5K_INI_FLAG_BOTH, 0xa220, 0x01831061 }, \
! 485: { AR5K_INI_FLAG_BOTH, 0xa224, 0x00000400 }, \
! 486: { AR5K_INI_FLAG_BOTH, 0xa228, 0x000001b5 }, \
! 487: { AR5K_INI_FLAG_BOTH, 0xa22c, 0x00000000 }, \
! 488: { AR5K_INI_FLAG_BOTH, 0xa234, 0x20202020 }, \
! 489: { AR5K_INI_FLAG_BOTH, 0xa238, 0x20202020 }, \
! 490: { AR5K_INI_FLAG_BOTH, 0xa23c, 0x13c889af }, \
! 491: { AR5K_INI_FLAG_BOTH, 0xa240, 0x38490a20 }, \
! 492: { AR5K_INI_FLAG_BOTH, 0xa244, 0x00007bb6 }, \
! 493: { AR5K_INI_FLAG_BOTH, 0xa248, 0x0fff3ffc }, \
! 494: { AR5K_INI_FLAG_BOTH, 0x9b00, 0x00000000 }, \
! 495: { AR5K_INI_FLAG_BOTH, 0x9b28, 0x0000000c }, \
! 496: { AR5K_INI_FLAG_BOTH, 0x9b38, 0x00000012 }, \
! 497: { AR5K_INI_FLAG_BOTH, 0x9b64, 0x00000021 }, \
! 498: { AR5K_INI_FLAG_BOTH, 0x9b8c, 0x0000002d }, \
! 499: { AR5K_INI_FLAG_BOTH, 0x9b9c, 0x00000033 }, \
! 500: /* AR5111 specific */ \
! 501: { AR5K_INI_FLAG_5111, 0x9930, 0x00004883 }, \
! 502: { AR5K_INI_FLAG_5111, 0xa204, 0x00000000 }, \
! 503: { AR5K_INI_FLAG_5111, 0xa208, 0xd03e6788 }, \
! 504: { AR5K_INI_FLAG_5111, 0xa20c, 0x6448416a }, \
! 505: { AR5K_INI_FLAG_5111, 0x9b04, 0x00000020 }, \
! 506: { AR5K_INI_FLAG_5111, 0x9b08, 0x00000010 }, \
! 507: { AR5K_INI_FLAG_5111, 0x9b0c, 0x00000030 }, \
! 508: { AR5K_INI_FLAG_5111, 0x9b10, 0x00000008 }, \
! 509: { AR5K_INI_FLAG_5111, 0x9b14, 0x00000028 }, \
! 510: { AR5K_INI_FLAG_5111, 0x9b18, 0x00000004 }, \
! 511: { AR5K_INI_FLAG_5111, 0x9b1c, 0x00000024 }, \
! 512: { AR5K_INI_FLAG_5111, 0x9b20, 0x00000014 }, \
! 513: { AR5K_INI_FLAG_5111, 0x9b24, 0x00000034 }, \
! 514: { AR5K_INI_FLAG_5111, 0x9b2c, 0x0000002c }, \
! 515: { AR5K_INI_FLAG_5111, 0x9b30, 0x00000002 }, \
! 516: { AR5K_INI_FLAG_5111, 0x9b34, 0x00000022 }, \
! 517: { AR5K_INI_FLAG_5111, 0x9b3c, 0x00000032 }, \
! 518: { AR5K_INI_FLAG_5111, 0x9b40, 0x0000000a }, \
! 519: { AR5K_INI_FLAG_5111, 0x9b44, 0x0000002a }, \
! 520: { AR5K_INI_FLAG_5111, 0x9b48, 0x00000006 }, \
! 521: { AR5K_INI_FLAG_5111, 0x9b4c, 0x00000026 }, \
! 522: { AR5K_INI_FLAG_5111, 0x9b50, 0x00000016 }, \
! 523: { AR5K_INI_FLAG_5111, 0x9b54, 0x00000036 }, \
! 524: { AR5K_INI_FLAG_5111, 0x9b58, 0x0000000e }, \
! 525: { AR5K_INI_FLAG_5111, 0x9b5c, 0x0000002e }, \
! 526: { AR5K_INI_FLAG_5111, 0x9b60, 0x00000001 }, \
! 527: { AR5K_INI_FLAG_5111, 0x9b68, 0x00000011 }, \
! 528: { AR5K_INI_FLAG_5111, 0x9b6c, 0x00000031 }, \
! 529: { AR5K_INI_FLAG_5111, 0x9b70, 0x00000009 }, \
! 530: { AR5K_INI_FLAG_5111, 0x9b74, 0x00000029 }, \
! 531: { AR5K_INI_FLAG_5111, 0x9b78, 0x00000005 }, \
! 532: { AR5K_INI_FLAG_5111, 0x9b7c, 0x00000025 }, \
! 533: { AR5K_INI_FLAG_5111, 0x9b80, 0x00000015 }, \
! 534: { AR5K_INI_FLAG_5111, 0x9b84, 0x00000035 }, \
! 535: { AR5K_INI_FLAG_5111, 0x9b88, 0x0000000d }, \
! 536: { AR5K_INI_FLAG_5111, 0x9b90, 0x00000003 }, \
! 537: { AR5K_INI_FLAG_5111, 0x9b94, 0x00000023 }, \
! 538: { AR5K_INI_FLAG_5111, 0x9b98, 0x00000013 }, \
! 539: { AR5K_INI_FLAG_5111, 0x9ba0, 0x0000000b }, \
! 540: { AR5K_INI_FLAG_5111, 0x9ba4, 0x0000002b }, \
! 541: { AR5K_INI_FLAG_5111, 0x9ba8, 0x0000002b }, \
! 542: { AR5K_INI_FLAG_5111, 0x9bac, 0x0000002b }, \
! 543: { AR5K_INI_FLAG_5111, 0x9bb0, 0x0000002b }, \
! 544: { AR5K_INI_FLAG_5111, 0x9bb4, 0x0000002b }, \
! 545: { AR5K_INI_FLAG_5111, 0x9bb8, 0x0000002b }, \
! 546: { AR5K_INI_FLAG_5111, 0x9bbc, 0x0000002b }, \
! 547: { AR5K_INI_FLAG_5111, 0x9bc0, 0x0000002b }, \
! 548: { AR5K_INI_FLAG_5111, 0x9bc4, 0x0000002b }, \
! 549: { AR5K_INI_FLAG_5111, 0x9bc8, 0x0000002b }, \
! 550: { AR5K_INI_FLAG_5111, 0x9bcc, 0x0000002b }, \
! 551: { AR5K_INI_FLAG_5111, 0x9bd0, 0x0000002b }, \
! 552: { AR5K_INI_FLAG_5111, 0x9bd4, 0x0000002b }, \
! 553: { AR5K_INI_FLAG_5111, 0x9bd8, 0x0000002b }, \
! 554: { AR5K_INI_FLAG_5111, 0x9bdc, 0x0000002b }, \
! 555: { AR5K_INI_FLAG_5111, 0x9be0, 0x0000002b }, \
! 556: { AR5K_INI_FLAG_5111, 0x9be4, 0x0000002b }, \
! 557: { AR5K_INI_FLAG_5111, 0x9be8, 0x0000002b }, \
! 558: { AR5K_INI_FLAG_5111, 0x9bec, 0x0000002b }, \
! 559: { AR5K_INI_FLAG_5111, 0x9bf0, 0x0000002b }, \
! 560: { AR5K_INI_FLAG_5111, 0x9bf4, 0x0000002b }, \
! 561: { AR5K_INI_FLAG_5111, 0x9bf8, 0x00000002 }, \
! 562: { AR5K_INI_FLAG_5111, 0x9bfc, 0x00000016 }, \
! 563: /* AR5112 specific */ \
! 564: { AR5K_INI_FLAG_5112, 0x9930, 0x00004882 }, \
! 565: { AR5K_INI_FLAG_5112, 0x9b04, 0x00000001 }, \
! 566: { AR5K_INI_FLAG_5112, 0x9b08, 0x00000002 }, \
! 567: { AR5K_INI_FLAG_5112, 0x9b0c, 0x00000003 }, \
! 568: { AR5K_INI_FLAG_5112, 0x9b10, 0x00000004 }, \
! 569: { AR5K_INI_FLAG_5112, 0x9b14, 0x00000005 }, \
! 570: { AR5K_INI_FLAG_5112, 0x9b18, 0x00000008 }, \
! 571: { AR5K_INI_FLAG_5112, 0x9b1c, 0x00000009 }, \
! 572: { AR5K_INI_FLAG_5112, 0x9b20, 0x0000000a }, \
! 573: { AR5K_INI_FLAG_5112, 0x9b24, 0x0000000b }, \
! 574: { AR5K_INI_FLAG_5112, 0x9b2c, 0x0000000d }, \
! 575: { AR5K_INI_FLAG_5112, 0x9b30, 0x00000010 }, \
! 576: { AR5K_INI_FLAG_5112, 0x9b34, 0x00000011 }, \
! 577: { AR5K_INI_FLAG_5112, 0x9b3c, 0x00000013 }, \
! 578: { AR5K_INI_FLAG_5112, 0x9b40, 0x00000014 }, \
! 579: { AR5K_INI_FLAG_5112, 0x9b44, 0x00000015 }, \
! 580: { AR5K_INI_FLAG_5112, 0x9b48, 0x00000018 }, \
! 581: { AR5K_INI_FLAG_5112, 0x9b4c, 0x00000019 }, \
! 582: { AR5K_INI_FLAG_5112, 0x9b50, 0x0000001a }, \
! 583: { AR5K_INI_FLAG_5112, 0x9b54, 0x0000001b }, \
! 584: { AR5K_INI_FLAG_5112, 0x9b58, 0x0000001c }, \
! 585: { AR5K_INI_FLAG_5112, 0x9b5c, 0x0000001d }, \
! 586: { AR5K_INI_FLAG_5112, 0x9b60, 0x00000020 }, \
! 587: { AR5K_INI_FLAG_5112, 0x9b68, 0x00000022 }, \
! 588: { AR5K_INI_FLAG_5112, 0x9b6c, 0x00000023 }, \
! 589: { AR5K_INI_FLAG_5112, 0x9b70, 0x00000024 }, \
! 590: { AR5K_INI_FLAG_5112, 0x9b74, 0x00000025 }, \
! 591: { AR5K_INI_FLAG_5112, 0x9b78, 0x00000028 }, \
! 592: { AR5K_INI_FLAG_5112, 0x9b7c, 0x00000029 }, \
! 593: { AR5K_INI_FLAG_5112, 0x9b80, 0x0000002a }, \
! 594: { AR5K_INI_FLAG_5112, 0x9b84, 0x0000002b }, \
! 595: { AR5K_INI_FLAG_5112, 0x9b88, 0x0000002c }, \
! 596: { AR5K_INI_FLAG_5112, 0x9b90, 0x00000030 }, \
! 597: { AR5K_INI_FLAG_5112, 0x9b94, 0x00000031 }, \
! 598: { AR5K_INI_FLAG_5112, 0x9b98, 0x00000032 }, \
! 599: { AR5K_INI_FLAG_5112, 0x9ba0, 0x00000034 }, \
! 600: { AR5K_INI_FLAG_5112, 0x9ba4, 0x00000035 }, \
! 601: { AR5K_INI_FLAG_5112, 0x9ba8, 0x00000035 }, \
! 602: { AR5K_INI_FLAG_5112, 0x9bac, 0x00000035 }, \
! 603: { AR5K_INI_FLAG_5112, 0x9bb0, 0x00000035 }, \
! 604: { AR5K_INI_FLAG_5112, 0x9bb4, 0x00000035 }, \
! 605: { AR5K_INI_FLAG_5112, 0x9bb8, 0x00000035 }, \
! 606: { AR5K_INI_FLAG_5112, 0x9bbc, 0x00000035 }, \
! 607: { AR5K_INI_FLAG_5112, 0x9bc0, 0x00000035 }, \
! 608: { AR5K_INI_FLAG_5112, 0x9bc4, 0x00000035 }, \
! 609: { AR5K_INI_FLAG_5112, 0x9bc8, 0x00000035 }, \
! 610: { AR5K_INI_FLAG_5112, 0x9bcc, 0x00000035 }, \
! 611: { AR5K_INI_FLAG_5112, 0x9bd0, 0x00000035 }, \
! 612: { AR5K_INI_FLAG_5112, 0x9bd4, 0x00000035 }, \
! 613: { AR5K_INI_FLAG_5112, 0x9bd8, 0x00000035 }, \
! 614: { AR5K_INI_FLAG_5112, 0x9bdc, 0x00000035 }, \
! 615: { AR5K_INI_FLAG_5112, 0x9be0, 0x00000035 }, \
! 616: { AR5K_INI_FLAG_5112, 0x9be4, 0x00000035 }, \
! 617: { AR5K_INI_FLAG_5112, 0x9be8, 0x00000035 }, \
! 618: { AR5K_INI_FLAG_5112, 0x9bec, 0x00000035 }, \
! 619: { AR5K_INI_FLAG_5112, 0x9bf0, 0x00000035 }, \
! 620: { AR5K_INI_FLAG_5112, 0x9bf4, 0x00000035 }, \
! 621: { AR5K_INI_FLAG_5112, 0x9bf8, 0x00000010 }, \
! 622: { AR5K_INI_FLAG_5112, 0x9bfc, 0x0000001a }, \
! 623: }
! 624:
! 625: struct ar5k_ar5212_ini_mode {
! 626: u_int16_t mode_register;
! 627: u_int8_t mode_flags;
! 628: u_int32_t mode_value[2][5];
! 629: };
! 630:
! 631: #define AR5K_AR5212_INI_MODE { \
! 632: { 0x0030, AR5K_INI_FLAG_511X, { \
! 633: { 0, }, \
! 634: { 0x00008107, 0x00008107, 0x00008107, 0x00008107, 0x00008107 } \
! 635: } }, \
! 636: { 0x1040, AR5K_INI_FLAG_511X, { \
! 637: { 0, }, \
! 638: { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
! 639: } }, \
! 640: { 0x1044, AR5K_INI_FLAG_511X, { \
! 641: { 0, }, \
! 642: { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
! 643: } }, \
! 644: { 0x1048, AR5K_INI_FLAG_511X, { \
! 645: { 0, }, \
! 646: { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
! 647: } }, \
! 648: { 0x104c, AR5K_INI_FLAG_511X, { \
! 649: { 0, }, \
! 650: { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
! 651: } }, \
! 652: { 0x1050, AR5K_INI_FLAG_511X, { \
! 653: { 0, }, \
! 654: { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
! 655: } }, \
! 656: { 0x1054, AR5K_INI_FLAG_511X, { \
! 657: { 0, }, \
! 658: { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
! 659: } }, \
! 660: { 0x1058, AR5K_INI_FLAG_511X, { \
! 661: { 0, }, \
! 662: { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
! 663: } }, \
! 664: { 0x105c, AR5K_INI_FLAG_511X, { \
! 665: { 0, }, \
! 666: { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
! 667: } }, \
! 668: { 0x1060, AR5K_INI_FLAG_511X, { \
! 669: { 0, }, \
! 670: { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
! 671: } }, \
! 672: { 0x1064, AR5K_INI_FLAG_511X, { \
! 673: { 0, }, \
! 674: { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
! 675: } }, \
! 676: { 0x1030, AR5K_INI_FLAG_511X, { \
! 677: { 0, }, \
! 678: { 0x00000230, 0x000001e0, 0x000000b0, 0x00000160, 0x000001e0 } \
! 679: } }, \
! 680: { 0x1070, AR5K_INI_FLAG_511X, { \
! 681: { 0, }, \
! 682: { 0x00000168, 0x000001e0, 0x000001b8, 0x0000018c, 0x000001e0 } \
! 683: } }, \
! 684: { 0x10b0, AR5K_INI_FLAG_511X, { \
! 685: { 0, }, \
! 686: { 0x00000e60, 0x00001180, 0x00001f1c, 0x00003e38, 0x00001180 } \
! 687: } }, \
! 688: { 0x10f0, AR5K_INI_FLAG_511X, { \
! 689: { 0, }, \
! 690: { 0x0000a0e0, 0x00014068, 0x00005880, 0x0000b0e0, 0x00014068 } \
! 691: } }, \
! 692: { 0x8014, AR5K_INI_FLAG_511X, { \
! 693: { 0, }, \
! 694: { 0x03e803e8, 0x06e006e0, 0x04200420, 0x08400840, 0x06e006e0 } \
! 695: } }, \
! 696: { 0x9804, AR5K_INI_FLAG_511X, { \
! 697: { 0, }, \
! 698: { 0x00000000, 0x00000003, 0x00000000, 0x00000000, 0x00000003 } \
! 699: } }, \
! 700: { 0x9820, AR5K_INI_FLAG_511X, { \
! 701: { 0, }, \
! 702: { 0x02020200, 0x02020200, 0x02010200, 0x02020200, 0x02020200 } \
! 703: } }, \
! 704: { 0x9834, AR5K_INI_FLAG_511X, { \
! 705: { 0, }, \
! 706: { 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e } \
! 707: } }, \
! 708: { 0x9838, AR5K_INI_FLAG_511X, { \
! 709: { 0, }, \
! 710: { 0x00000007, 0x00000007, 0x0000000b, 0x0000000b, 0x0000000b } \
! 711: } }, \
! 712: { 0x9844, AR5K_INI_FLAG_511X, { \
! 713: { 0, }, \
! 714: { 0x1372161c, 0x13721c25, 0x13721728, 0x137216a2, 0x13721c25 } \
! 715: } }, \
! 716: { 0x9850, AR5K_INI_FLAG_511X, { \
! 717: { 0, }, \
! 718: { 0x0de8b4e0, 0x0de8b4e0, 0x0de8b4e0, 0x0de8b4e0, 0x0de8b4e0 } \
! 719: } }, \
! 720: { 0x9858, AR5K_INI_FLAG_511X, { \
! 721: { 0, }, \
! 722: { 0x7e800d2e, 0x7e800d2e, 0x7ee84d2e, 0x7ee84d2e, 0x7e800d2e } \
! 723: } }, \
! 724: { 0x9860, AR5K_INI_FLAG_511X, { \
! 725: { 0, }, \
! 726: { 0x00009d10, 0x00009d10, 0x00009d18, 0x00009d10, 0x00009d10 } \
! 727: } }, \
! 728: { 0x9864, AR5K_INI_FLAG_511X, { \
! 729: { 0, }, \
! 730: { 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 } \
! 731: } }, \
! 732: { 0x9868, AR5K_INI_FLAG_511X, { \
! 733: { 0, }, \
! 734: { 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190 } \
! 735: } }, \
! 736: { 0x9918, AR5K_INI_FLAG_511X, { \
! 737: { 0, }, \
! 738: { 0x000001b8, 0x000001b8, 0x00000084, 0x00000108, 0x000001b8 } \
! 739: } }, \
! 740: { 0x9924, AR5K_INI_FLAG_511X, { \
! 741: { 0, }, \
! 742: { 0x10058a05, 0x10058a05, 0x10058a05, 0x10058a05, 0x10058a05 } \
! 743: } }, \
! 744: { 0xa180, AR5K_INI_FLAG_511X, { \
! 745: { 0, }, \
! 746: { 0x10ff14ff, 0x10ff14ff, 0x10ff10ff, 0x10ff19ff, 0x10ff19ff } \
! 747: } }, \
! 748: { 0xa230, AR5K_INI_FLAG_511X, { \
! 749: { 0, }, \
! 750: { 0x00000000, 0x00000000, 0x00000000, 0x00000108, 0x00000000 } \
! 751: } }, \
! 752: { 0x801c, AR5K_INI_FLAG_BOTH, { \
! 753: { 0x128d8fa7, 0x09880fcf, 0x04e00f95, 0x128d8fab, 0x09880fcf }, \
! 754: { 0x128d93a7, 0x098813cf, 0x04e01395, 0x128d93ab, 0x098813cf } \
! 755: } }, \
! 756: { 0x9824, AR5K_INI_FLAG_BOTH, { \
! 757: { 0x00000e0e, 0x00000e0e, 0x00000707, 0x00000e0e, 0x00000e0e }, \
! 758: { 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e } \
! 759: } }, \
! 760: { 0x9828, AR5K_INI_FLAG_BOTH, { \
! 761: { 0x0a020001, 0x0a020001, 0x05010100, 0x0a020001, 0x0a020001 }, \
! 762: { 0x0a020001, 0x0a020001, 0x05020100, 0x0a020001, 0x0a020001 } \
! 763: } }, \
! 764: { 0x9848, AR5K_INI_FLAG_BOTH, { \
! 765: { 0x0018da5a, 0x0018da5a, 0x0018ca69, 0x0018ca69, 0x0018ca69 }, \
! 766: { 0x0018da6d, 0x0018da6d, 0x0018ca75, 0x0018ca75, 0x0018ca75 } \
! 767: } }, \
! 768: { 0x985c, AR5K_INI_FLAG_BOTH, { \
! 769: { 0x3137665e, 0x3137665e, 0x3137665e, 0x3137665e, 0x3137615e }, \
! 770: { 0x3137665e, 0x3137665e, 0x3137665e, 0x3137665e, 0x3137665e } \
! 771: } }, \
! 772: { 0x986c, AR5K_INI_FLAG_BOTH, { \
! 773: { 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb080, 0x050cb080 }, \
! 774: { 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081 } \
! 775: } }, \
! 776: { 0x9914, AR5K_INI_FLAG_BOTH, { \
! 777: { 0x00002710, 0x00002710, 0x0000157c, 0x00002af8, 0x00002710 }, \
! 778: { 0x000007d0, 0x000007d0, 0x0000044c, 0x00000898, 0x000007d0 } \
! 779: } }, \
! 780: { 0x9944, AR5K_INI_FLAG_BOTH, { \
! 781: { 0xffb81020, 0xffb81020, 0xffb80d20, 0xffb81020, 0xffb81020 }, \
! 782: { 0xffb81020, 0xffb81020, 0xffb80d10, 0xffb81010, 0xffb81010 } \
! 783: } }, \
! 784: { 0xa204, AR5K_INI_FLAG_5112, { \
! 785: { 0, }, \
! 786: { 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000004 } \
! 787: } }, \
! 788: { 0xa208, AR5K_INI_FLAG_5112, { \
! 789: { 0, }, \
! 790: { 0xd6be6788, 0xd6be6788, 0xd03e6788, 0xd03e6788, 0xd03e6788 } \
! 791: } }, \
! 792: { 0xa20c, AR5K_INI_FLAG_5112, { \
! 793: { 0, }, \
! 794: { 0x642c0140, 0x642c0140, 0x6442c160, 0x6442c160, 0x6442c160 } \
! 795: } }, \
! 796: }
! 797:
! 798: #endif /* _AR5K_AR5212_VAR_H */
CVSweb