Annotation of sys/dev/ic/ar5211var.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: ar5211var.h,v 1.10 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: * (AR5211/AR5311).
! 22: */
! 23:
! 24: #ifndef _AR5K_AR5211_VAR_H
! 25: #define _AR5K_AR5211_VAR_H
! 26:
! 27: #include <dev/ic/ar5xxx.h>
! 28:
! 29: /*
! 30: * Define a "magic" code for the AR5211 (the HAL layer wants it)
! 31: */
! 32:
! 33: #define AR5K_AR5211_MAGIC 0x0000145b /* 5211 */
! 34: #define AR5K_AR5211_TX_NUM_QUEUES 10
! 35:
! 36: #if BYTE_ORDER == BIG_ENDIAN
! 37: #define AR5K_AR5211_INIT_CFG ( \
! 38: AR5K_AR5211_CFG_SWTD | AR5K_AR5211_CFG_SWRD \
! 39: )
! 40: #else
! 41: #define AR5K_AR5211_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_ar5211_rx_desc {
! 50: /*
! 51: * RX control word 0
! 52: */
! 53: u_int32_t rx_control_0;
! 54:
! 55: #define AR5K_AR5211_DESC_RX_CTL0 0x00000000
! 56:
! 57: /*
! 58: * RX control word 1
! 59: */
! 60: u_int32_t rx_control_1;
! 61:
! 62: #define AR5K_AR5211_DESC_RX_CTL1_BUF_LEN 0x00000fff
! 63: #define AR5K_AR5211_DESC_RX_CTL1_INTREQ 0x00002000
! 64: } __packed;
! 65:
! 66: struct ar5k_ar5211_rx_status {
! 67: /*
! 68: * RX status word 0
! 69: */
! 70: u_int32_t rx_status_0;
! 71:
! 72: #define AR5K_AR5211_DESC_RX_STATUS0_DATA_LEN 0x00000fff
! 73: #define AR5K_AR5211_DESC_RX_STATUS0_MORE 0x00001000
! 74: #define AR5K_AR5211_DESC_RX_STATUS0_RECEIVE_RATE 0x00078000
! 75: #define AR5K_AR5211_DESC_RX_STATUS0_RECEIVE_RATE_S 15
! 76: #define AR5K_AR5211_DESC_RX_STATUS0_RECEIVE_SIGNAL 0x07f80000
! 77: #define AR5K_AR5211_DESC_RX_STATUS0_RECEIVE_SIGNAL_S 19
! 78: #define AR5K_AR5211_DESC_RX_STATUS0_RECEIVE_ANTENNA 0x38000000
! 79: #define AR5K_AR5211_DESC_RX_STATUS0_RECEIVE_ANTENNA_S 27
! 80:
! 81: /*
! 82: * RX status word 1
! 83: */
! 84: u_int32_t rx_status_1;
! 85:
! 86: #define AR5K_AR5211_DESC_RX_STATUS1_DONE 0x00000001
! 87: #define AR5K_AR5211_DESC_RX_STATUS1_FRAME_RECEIVE_OK 0x00000002
! 88: #define AR5K_AR5211_DESC_RX_STATUS1_CRC_ERROR 0x00000004
! 89: #define AR5K_AR5211_DESC_RX_STATUS1_FIFO_OVERRUN 0x00000008
! 90: #define AR5K_AR5211_DESC_RX_STATUS1_DECRYPT_CRC_ERROR 0x00000010
! 91: #define AR5K_AR5211_DESC_RX_STATUS1_PHY_ERROR 0x000000e0
! 92: #define AR5K_AR5211_DESC_RX_STATUS1_PHY_ERROR_S 5
! 93: #define AR5K_AR5211_DESC_RX_STATUS1_KEY_INDEX_VALID 0x00000100
! 94: #define AR5K_AR5211_DESC_RX_STATUS1_KEY_INDEX 0x00007e00
! 95: #define AR5K_AR5211_DESC_RX_STATUS1_KEY_INDEX_S 9
! 96: #define AR5K_AR5211_DESC_RX_STATUS1_RECEIVE_TIMESTAMP 0x0fff8000
! 97: #define AR5K_AR5211_DESC_RX_STATUS1_RECEIVE_TIMESTAMP_S 15
! 98: #define AR5K_AR5211_DESC_RX_STATUS1_KEY_CACHE_MISS 0x10000000
! 99: } __packed;
! 100:
! 101: #define AR5K_AR5211_DESC_RX_PHY_ERROR_NONE 0x00
! 102: #define AR5K_AR5211_DESC_RX_PHY_ERROR_TIMING 0x20
! 103: #define AR5K_AR5211_DESC_RX_PHY_ERROR_PARITY 0x40
! 104: #define AR5K_AR5211_DESC_RX_PHY_ERROR_RATE 0x60
! 105: #define AR5K_AR5211_DESC_RX_PHY_ERROR_LENGTH 0x80
! 106: #define AR5K_AR5211_DESC_RX_PHY_ERROR_64QAM 0xa0
! 107: #define AR5K_AR5211_DESC_RX_PHY_ERROR_SERVICE 0xc0
! 108: #define AR5K_AR5211_DESC_RX_PHY_ERROR_TRANSMITOVR 0xe0
! 109:
! 110: struct ar5k_ar5211_tx_desc {
! 111: /*
! 112: * TX control word 0
! 113: */
! 114: u_int32_t tx_control_0;
! 115:
! 116: #define AR5K_AR5211_DESC_TX_CTL0_FRAME_LEN 0x00000fff
! 117: #define AR5K_AR5211_DESC_TX_CTL0_XMIT_RATE 0x003c0000
! 118: #define AR5K_AR5211_DESC_TX_CTL0_XMIT_RATE_S 18
! 119: #define AR5K_AR5211_DESC_TX_CTL0_RTSENA 0x00400000
! 120: #define AR5K_AR5211_DESC_TX_CTL0_VEOL 0x00800000
! 121: #define AR5K_AR5211_DESC_TX_CTL0_CLRDMASK 0x01000000
! 122: #define AR5K_AR5211_DESC_TX_CTL0_ANT_MODE_XMIT 0x1e000000
! 123: #define AR5K_AR5211_DESC_TX_CTL0_ANT_MODE_XMIT_S 25
! 124: #define AR5K_AR5211_DESC_TX_CTL0_INTREQ 0x20000000
! 125: #define AR5K_AR5211_DESC_TX_CTL0_ENCRYPT_KEY_VALID 0x40000000
! 126:
! 127: /*
! 128: * TX control word 1
! 129: */
! 130: u_int32_t tx_control_1;
! 131:
! 132: #define AR5K_AR5211_DESC_TX_CTL1_BUF_LEN 0x00000fff
! 133: #define AR5K_AR5211_DESC_TX_CTL1_MORE 0x00001000
! 134: #define AR5K_AR5211_DESC_TX_CTL1_ENCRYPT_KEY_INDEX 0x000fe000
! 135: #define AR5K_AR5211_DESC_TX_CTL1_ENCRYPT_KEY_INDEX_S 13
! 136: #define AR5K_AR5211_DESC_TX_CTL1_FRAME_TYPE 0x00700000
! 137: #define AR5K_AR5211_DESC_TX_CTL1_FRAME_TYPE_S 20
! 138: #define AR5K_AR5211_DESC_TX_CTL1_NOACK 0x00800000
! 139: } __packed;
! 140:
! 141: struct ar5k_ar5211_tx_status {
! 142: /*
! 143: * TX status word 0
! 144: */
! 145: u_int32_t tx_status_0;
! 146:
! 147: #define AR5K_AR5211_DESC_TX_STATUS0_FRAME_XMIT_OK 0x00000001
! 148: #define AR5K_AR5211_DESC_TX_STATUS0_EXCESSIVE_RETRIES 0x00000002
! 149: #define AR5K_AR5211_DESC_TX_STATUS0_FIFO_UNDERRUN 0x00000004
! 150: #define AR5K_AR5211_DESC_TX_STATUS0_FILTERED 0x00000008
! 151: #define AR5K_AR5211_DESC_TX_STATUS0_RTS_FAIL_COUNT 0x000000f0
! 152: #define AR5K_AR5211_DESC_TX_STATUS0_RTS_FAIL_COUNT_S 4
! 153: #define AR5K_AR5211_DESC_TX_STATUS0_DATA_FAIL_COUNT 0x00000f00
! 154: #define AR5K_AR5211_DESC_TX_STATUS0_DATA_FAIL_COUNT_S 8
! 155: #define AR5K_AR5211_DESC_TX_STATUS0_VIRT_COLL_COUNT 0x0000f000
! 156: #define AR5K_AR5211_DESC_TX_STATUS0_VIRT_COLL_COUNT_S 12
! 157: #define AR5K_AR5211_DESC_TX_STATUS0_SEND_TIMESTAMP 0xffff0000
! 158: #define AR5K_AR5211_DESC_TX_STATUS0_SEND_TIMESTAMP_S 16
! 159:
! 160: /*
! 161: * TX status word 1
! 162: */
! 163: u_int32_t tx_status_1;
! 164:
! 165: #define AR5K_AR5211_DESC_TX_STATUS1_DONE 0x00000001
! 166: #define AR5K_AR5211_DESC_TX_STATUS1_SEQ_NUM 0x00001ffe
! 167: #define AR5K_AR5211_DESC_TX_STATUS1_SEQ_NUM_S 1
! 168: #define AR5K_AR5211_DESC_TX_STATUS1_ACK_SIG_STRENGTH 0x001fe000
! 169: #define AR5K_AR5211_DESC_TX_STATUS1_ACK_SIG_STRENGTH_S 13
! 170: } __packed;
! 171:
! 172: /*
! 173: * Public function prototypes
! 174: */
! 175: extern ar5k_attach_t ar5k_ar5211_attach;
! 176:
! 177: /*
! 178: * Initial register values which have to be loaded into the
! 179: * card at boot time and after each reset.
! 180: */
! 181:
! 182: #define AR5K_AR5211_INI { \
! 183: { 0x000c, 0x00000000 }, \
! 184: { 0x0028, 0x84849c9c }, \
! 185: { 0x002c, 0x7c7c7c7c }, \
! 186: { 0x0034, 0x00000005 }, \
! 187: { 0x0040, 0x00000000 }, \
! 188: { 0x0044, 0x00000008 }, \
! 189: { 0x0048, 0x00000008 }, \
! 190: { 0x004c, 0x00000010 }, \
! 191: { 0x0050, 0x00000000 }, \
! 192: { 0x0054, 0x0000001f }, \
! 193: { 0x0800, 0x00000000 }, \
! 194: { 0x0804, 0x00000000 }, \
! 195: { 0x0808, 0x00000000 }, \
! 196: { 0x080c, 0x00000000 }, \
! 197: { 0x0810, 0x00000000 }, \
! 198: { 0x0814, 0x00000000 }, \
! 199: { 0x0818, 0x00000000 }, \
! 200: { 0x081c, 0x00000000 }, \
! 201: { 0x0820, 0x00000000 }, \
! 202: { 0x0824, 0x00000000 }, \
! 203: { 0x1230, 0x00000000 }, \
! 204: { 0x8004, 0x00000000 }, \
! 205: { 0x8008, 0x00000000 }, \
! 206: { 0x800c, 0x00000000 }, \
! 207: { 0x8018, 0x00000000 }, \
! 208: { 0x8024, 0x00000000 }, \
! 209: { 0x8028, 0x00000030 }, \
! 210: { 0x802c, 0x0007ffff }, \
! 211: { 0x8030, 0x01ffffff }, \
! 212: { 0x8034, 0x00000031 }, \
! 213: { 0x8038, 0x00000000 }, \
! 214: { 0x803c, 0x00000000 }, \
! 215: { 0x8040, 0x00000000 }, \
! 216: { 0x8044, 0x00000002 }, \
! 217: { 0x8048, 0x00000000 }, \
! 218: { 0x8054, 0x00000000 }, \
! 219: { 0x8058, 0x00000000 }, \
! 220: /* PHY registers */ \
! 221: { 0x9808, 0x00000000 }, \
! 222: { 0x980c, 0x2d849093 }, \
! 223: { 0x9810, 0x7d32e000 }, \
! 224: { 0x9814, 0x00000f6b }, \
! 225: { 0x981c, 0x00000000 }, \
! 226: { 0x982c, 0x00026ffe }, \
! 227: { 0x9830, 0x00000000 }, \
! 228: { 0x983c, 0x00020100 }, \
! 229: { 0x9840, 0x206a017a }, \
! 230: { 0x984c, 0x1284613c }, \
! 231: { 0x9854, 0x00000859 }, \
! 232: { 0x9868, 0x409a4190 }, \
! 233: { 0x986c, 0x050cb081 }, \
! 234: { 0x9870, 0x0000000f }, \
! 235: { 0x9874, 0x00000080 }, \
! 236: { 0x9878, 0x0000000c }, \
! 237: { 0x9900, 0x00000000 }, \
! 238: { 0x9904, 0x00000000 }, \
! 239: { 0x9908, 0x00000000 }, \
! 240: { 0x990c, 0x00800000 }, \
! 241: { 0x9910, 0x00000001 }, \
! 242: { 0x991c, 0x0000092a }, \
! 243: { 0x9920, 0x00000000 }, \
! 244: { 0x9924, 0x00058a05 }, \
! 245: { 0x9928, 0x00000001 }, \
! 246: { 0x992c, 0x00000000 }, \
! 247: { 0x9930, 0x00000000 }, \
! 248: { 0x9934, 0x00000000 }, \
! 249: { 0x9938, 0x00000000 }, \
! 250: { 0x993c, 0x0000003f }, \
! 251: { 0x9940, 0x00000004 }, \
! 252: { 0x9948, 0x00000000 }, \
! 253: { 0x994c, 0x00000000 }, \
! 254: { 0x9950, 0x00000000 }, \
! 255: { 0x9954, 0x5d50f14c }, \
! 256: { 0x9958, 0x00000018 }, \
! 257: { 0x995c, 0x004b6a8e }, \
! 258: { 0xa184, 0x06ff05ff }, \
! 259: { 0xa188, 0x07ff07ff }, \
! 260: { 0xa18c, 0x08ff08ff }, \
! 261: { 0xa190, 0x09ff09ff }, \
! 262: { 0xa194, 0x0aff0aff }, \
! 263: { 0xa198, 0x0bff0bff }, \
! 264: { 0xa19c, 0x0cff0cff }, \
! 265: { 0xa1a0, 0x0dff0dff }, \
! 266: { 0xa1a4, 0x0fff0eff }, \
! 267: { 0xa1a8, 0x12ff12ff }, \
! 268: { 0xa1ac, 0x14ff13ff }, \
! 269: { 0xa1b0, 0x16ff15ff }, \
! 270: { 0xa1b4, 0x19ff17ff }, \
! 271: { 0xa1b8, 0x1bff1aff }, \
! 272: { 0xa1bc, 0x1eff1dff }, \
! 273: { 0xa1c0, 0x23ff20ff }, \
! 274: { 0xa1c4, 0x27ff25ff }, \
! 275: { 0xa1c8, 0x2cff29ff }, \
! 276: { 0xa1cc, 0x31ff2fff }, \
! 277: { 0xa1d0, 0x37ff34ff }, \
! 278: { 0xa1d4, 0x3aff3aff }, \
! 279: { 0xa1d8, 0x3aff3aff }, \
! 280: { 0xa1dc, 0x3aff3aff }, \
! 281: { 0xa1e0, 0x3aff3aff }, \
! 282: { 0xa1e4, 0x3aff3aff }, \
! 283: { 0xa1e8, 0x3aff3aff }, \
! 284: { 0xa1ec, 0x3aff3aff }, \
! 285: { 0xa1f0, 0x3aff3aff }, \
! 286: { 0xa1f4, 0x3aff3aff }, \
! 287: { 0xa1f8, 0x3aff3aff }, \
! 288: { 0xa1fc, 0x3aff3aff }, \
! 289: /* BB gain table (64bytes) */ \
! 290: { 0x9b00, 0x00000000 }, \
! 291: { 0x9b04, 0x00000020 }, \
! 292: { 0x9b08, 0x00000010 }, \
! 293: { 0x9b0c, 0x00000030 }, \
! 294: { 0x9b10, 0x00000008 }, \
! 295: { 0x9b14, 0x00000028 }, \
! 296: { 0x9b18, 0x00000004 }, \
! 297: { 0x9b1c, 0x00000024 }, \
! 298: { 0x9b20, 0x00000014 }, \
! 299: { 0x9b24, 0x00000034 }, \
! 300: { 0x9b28, 0x0000000c }, \
! 301: { 0x9b2c, 0x0000002c }, \
! 302: { 0x9b30, 0x00000002 }, \
! 303: { 0x9b34, 0x00000022 }, \
! 304: { 0x9b38, 0x00000012 }, \
! 305: { 0x9b3c, 0x00000032 }, \
! 306: { 0x9b40, 0x0000000a }, \
! 307: { 0x9b44, 0x0000002a }, \
! 308: { 0x9b48, 0x00000006 }, \
! 309: { 0x9b4c, 0x00000026 }, \
! 310: { 0x9b50, 0x00000016 }, \
! 311: { 0x9b54, 0x00000036 }, \
! 312: { 0x9b58, 0x0000000e }, \
! 313: { 0x9b5c, 0x0000002e }, \
! 314: { 0x9b60, 0x00000001 }, \
! 315: { 0x9b64, 0x00000021 }, \
! 316: { 0x9b68, 0x00000011 }, \
! 317: { 0x9b6c, 0x00000031 }, \
! 318: { 0x9b70, 0x00000009 }, \
! 319: { 0x9b74, 0x00000029 }, \
! 320: { 0x9b78, 0x00000005 }, \
! 321: { 0x9b7c, 0x00000025 }, \
! 322: { 0x9b80, 0x00000015 }, \
! 323: { 0x9b84, 0x00000035 }, \
! 324: { 0x9b88, 0x0000000d }, \
! 325: { 0x9b8c, 0x0000002d }, \
! 326: { 0x9b90, 0x00000003 }, \
! 327: { 0x9b94, 0x00000023 }, \
! 328: { 0x9b98, 0x00000013 }, \
! 329: { 0x9b9c, 0x00000033 }, \
! 330: { 0x9ba0, 0x0000000b }, \
! 331: { 0x9ba4, 0x0000002b }, \
! 332: { 0x9ba8, 0x0000002b }, \
! 333: { 0x9bac, 0x0000002b }, \
! 334: { 0x9bb0, 0x0000002b }, \
! 335: { 0x9bb4, 0x0000002b }, \
! 336: { 0x9bb8, 0x0000002b }, \
! 337: { 0x9bbc, 0x0000002b }, \
! 338: { 0x9bc0, 0x0000002b }, \
! 339: { 0x9bc4, 0x0000002b }, \
! 340: { 0x9bc8, 0x0000002b }, \
! 341: { 0x9bcc, 0x0000002b }, \
! 342: { 0x9bd0, 0x0000002b }, \
! 343: { 0x9bd4, 0x0000002b }, \
! 344: { 0x9bd8, 0x0000002b }, \
! 345: { 0x9bdc, 0x0000002b }, \
! 346: { 0x9be0, 0x0000002b }, \
! 347: { 0x9be4, 0x0000002b }, \
! 348: { 0x9be8, 0x0000002b }, \
! 349: { 0x9bec, 0x0000002b }, \
! 350: { 0x9bf0, 0x0000002b }, \
! 351: { 0x9bf4, 0x0000002b }, \
! 352: { 0x9bf8, 0x00000002 }, \
! 353: { 0x9bfc, 0x00000016 }, \
! 354: /* PHY activation */ \
! 355: { 0x98d4, 0x00000020 }, \
! 356: { 0x98d8, 0x00601068 }, \
! 357: }
! 358:
! 359: struct ar5k_ar5211_ini_mode {
! 360: u_int16_t mode_register;
! 361: u_int32_t mode_value[4];
! 362: };
! 363:
! 364: #define AR5K_AR5211_INI_MODE { \
! 365: { 0x0030, { 0x00000017, 0x00000017, 0x00000017, 0x00000017 } }, \
! 366: { 0x1040, { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f } }, \
! 367: { 0x1044, { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f } }, \
! 368: { 0x1048, { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f } }, \
! 369: { 0x104c, { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f } }, \
! 370: { 0x1050, { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f } }, \
! 371: { 0x1054, { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f } }, \
! 372: { 0x1058, { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f } }, \
! 373: { 0x105c, { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f } }, \
! 374: { 0x1060, { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f } }, \
! 375: { 0x1064, { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f } }, \
! 376: { 0x1070, { 0x00000168, 0x000001e0, 0x000001b8, 0x00000168 } }, \
! 377: { 0x1030, { 0x00000230, 0x000001e0, 0x000000b0, 0x00000230 } }, \
! 378: { 0x10b0, { 0x00000d98, 0x00001180, 0x00001f48, 0x00000d98 } }, \
! 379: { 0x10f0, { 0x0000a0e0, 0x00014068, 0x00005880, 0x0000a0e0 } }, \
! 380: { 0x8014, { 0x04000400, 0x08000800, 0x20003000, 0x04000400 } }, \
! 381: { 0x801c, { 0x0e8d8fa7, 0x0e8d8fcf, 0x01608f95, 0x0e8d8fa7 } }, \
! 382: { 0x9804, { 0x00000000, 0x00000003, 0x00000000, 0x00000000 } }, \
! 383: { 0x9820, { 0x02020200, 0x02020200, 0x02010200, 0x02020200 } }, \
! 384: { 0x9824, { 0x00000e0e, 0x00000e0e, 0x00000707, 0x00000e0e } }, \
! 385: { 0x9828, { 0x0a020001, 0x0a020001, 0x05010000, 0x0a020001 } }, \
! 386: { 0x9834, { 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e } }, \
! 387: { 0x9838, { 0x00000007, 0x00000007, 0x0000000b, 0x0000000b } }, \
! 388: { 0x9844, { 0x1372169c, 0x137216a5, 0x137216a8, 0x1372169c } }, \
! 389: { 0x9848, { 0x0018ba67, 0x0018ba67, 0x0018ba69, 0x0018ba69 } }, \
! 390: { 0x9850, { 0x0c28b4e0, 0x0c28b4e0, 0x0c28b4e0, 0x0c28b4e0 } }, \
! 391: { 0x9858, { 0x7e800d2e, 0x7e800d2e, 0x7ec00d2e, 0x7e800d2e } }, \
! 392: { 0x985c, { 0x31375d5e, 0x31375d5e, 0x313a5d5e, 0x31375d5e } }, \
! 393: { 0x9860, { 0x0000bd10, 0x0000bd10, 0x0000bd38, 0x0000bd10 } }, \
! 394: { 0x9864, { 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 } }, \
! 395: { 0x9914, { 0x00002710, 0x00002710, 0x0000157c, 0x00002710 } }, \
! 396: { 0x9918, { 0x00000190, 0x00000190, 0x00000084, 0x00000190 } }, \
! 397: { 0x9944, { 0x6fe01020, 0x6fe01020, 0x6fe00920, 0x6fe01020 } }, \
! 398: { 0xa180, { 0x05ff14ff, 0x05ff14ff, 0x05ff14ff, 0x05ff19ff } }, \
! 399: { 0x98d4, { 0x00000010, 0x00000014, 0x00000010, 0x00000010 } }, \
! 400: }
! 401:
! 402: struct ar5k_ar5211_ini_rf {
! 403: u_int16_t rf_register;
! 404: u_int32_t rf_value[2];
! 405: };
! 406:
! 407: #define AR5K_AR5211_INI_RF { \
! 408: { 0x0000a204, { 0x00000000, 0x00000000 } }, \
! 409: { 0x0000a208, { 0x503e4646, 0x503e4646 } }, \
! 410: { 0x0000a20c, { 0x6480416c, 0x6480416c } }, \
! 411: { 0x0000a210, { 0x0199a003, 0x0199a003 } }, \
! 412: { 0x0000a214, { 0x044cd610, 0x044cd610 } }, \
! 413: { 0x0000a218, { 0x13800040, 0x13800040 } }, \
! 414: { 0x0000a21c, { 0x1be00060, 0x1be00060 } }, \
! 415: { 0x0000a220, { 0x0c53800a, 0x0c53800a } }, \
! 416: { 0x0000a224, { 0x0014df3b, 0x0014df3b } }, \
! 417: { 0x0000a228, { 0x000001b5, 0x000001b5 } }, \
! 418: { 0x0000a22c, { 0x00000020, 0x00000020 } }, \
! 419: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 420: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 421: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 422: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 423: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 424: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 425: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 426: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 427: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 428: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 429: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 430: { 0x0000989c, { 0x00380000, 0x00380000 } }, \
! 431: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 432: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 433: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 434: { 0x0000989c, { 0x000400f9, 0x000400f9 } }, \
! 435: { 0x000098d4, { 0x00000000, 0x00000004 } }, \
! 436: \
! 437: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 438: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 439: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 440: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 441: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 442: { 0x0000989c, { 0x10000000, 0x10000000 } }, \
! 443: { 0x0000989c, { 0x04000000, 0x04000000 } }, \
! 444: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 445: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 446: { 0x0000989c, { 0x00000000, 0x00000000 } }, \
! 447: { 0x0000989c, { 0x00000000, 0x0a000000 } }, \
! 448: { 0x0000989c, { 0x00380080, 0x02380080 } }, \
! 449: { 0x0000989c, { 0x00020006, 0x00000006 } }, \
! 450: { 0x0000989c, { 0x00000092, 0x00000092 } }, \
! 451: { 0x0000989c, { 0x000000a0, 0x000000a0 } }, \
! 452: { 0x0000989c, { 0x00040007, 0x00040007 } }, \
! 453: { 0x000098d4, { 0x0000001a, 0x0000001a } }, \
! 454: { 0x0000989c, { 0x00000048, 0x00000048 } }, \
! 455: { 0x0000989c, { 0x00000010, 0x00000010 } }, \
! 456: { 0x0000989c, { 0x00000008, 0x00000008 } }, \
! 457: { 0x0000989c, { 0x0000000f, 0x0000000f } }, \
! 458: { 0x0000989c, { 0x000000f2, 0x00000062 } }, \
! 459: { 0x0000989c, { 0x0000904f, 0x0000904c } }, \
! 460: { 0x0000989c, { 0x0000125a, 0x0000129a } }, \
! 461: { 0x000098cc, { 0x0000000e, 0x0000000f } }, \
! 462: }
! 463:
! 464: #endif /* _AR5K_AR5211_VAR_H */
CVSweb