Main Page | Data Structures | Directories | File List | Data Fields | Globals

ar5212var.h

Go to the documentation of this file.
00001 /*      $OpenBSD: ar5212var.h,v 1.8 2005/07/30 17:13:17 reyk Exp $      */
00002 
00003 /*
00004  * Copyright (c) 2004, 2005 Reyk Floeter <reyk@vantronix.net>
00005  *
00006  * Permission to use, copy, modify, and distribute this software for any
00007  * purpose with or without fee is hereby granted, provided that the above
00008  * copyright notice and this permission notice appear in all copies.
00009  *
00010  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
00011  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
00012  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
00013  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
00014  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00015  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
00016  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
00017  */
00018 
00019 /*
00020  * Specific definitions for the Atheros AR5001 Wireless LAN chipset
00021  * (AR5212/AR5311).
00022  */
00023 
00024 #ifndef _AR5K_AR5212_VAR_H
00025 #define _AR5K_AR5212_VAR_H
00026 
00027 /*
00028  * Define a "magic" code for the AR5212 (the HAL layer wants it)
00029  */
00030 
00031 #define AR5K_AR5212_MAGIC               0x0000145c /* 5212 */
00032 #define AR5K_AR5212_TX_NUM_QUEUES       10
00033 
00034 #define AR5K_AR5212_INIT_CFG    0x00000000
00035 
00036 /*
00037  * Internal RX/TX descriptor structures
00038  * (rX: reserved fields possibily used by future versions of the ar5k chipset)
00039  */
00040 
00041 struct ar5k_ar5212_rx_desc {
00042         /*
00043          * RX control word 0
00044          */
00045         u_int32_t       rx_control_0;
00046 
00047 #define AR5K_AR5212_DESC_RX_CTL0                        0x00000000
00048 
00049         /*
00050          * RX control word 1
00051          */
00052         u_int32_t       rx_control_1;
00053 
00054 #define AR5K_AR5212_DESC_RX_CTL1_BUF_LEN                0x00000fff
00055 #define AR5K_AR5212_DESC_RX_CTL1_INTREQ                 0x00002000
00056 } __attribute__((__packed__));
00057 
00058 struct ar5k_ar5212_rx_status {
00059         /*
00060          * RX status word 0
00061          */
00062         u_int32_t       rx_status_0;
00063 
00064 #define AR5K_AR5212_DESC_RX_STATUS0_DATA_LEN            0x00000fff
00065 #define AR5K_AR5212_DESC_RX_STATUS0_MORE                0x00001000
00066 #define AR5K_AR5212_DESC_RX_STATUS0_DECOMP_CRC_ERROR    0x00002000
00067 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_RATE        0x000f8000
00068 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_RATE_S      15
00069 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_SIGNAL      0x0ff00000
00070 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_SIGNAL_S    20
00071 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_ANTENNA     0xf0000000
00072 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_ANTENNA_S   28
00073 
00074         /*
00075          * RX status word 1
00076          */
00077         u_int32_t       rx_status_1;
00078 
00079 #define AR5K_AR5212_DESC_RX_STATUS1_DONE                0x00000001
00080 #define AR5K_AR5212_DESC_RX_STATUS1_FRAME_RECEIVE_OK    0x00000002
00081 #define AR5K_AR5212_DESC_RX_STATUS1_CRC_ERROR           0x00000004
00082 #define AR5K_AR5212_DESC_RX_STATUS1_DECRYPT_CRC_ERROR   0x00000008
00083 #define AR5K_AR5212_DESC_RX_STATUS1_PHY_ERROR           0x00000010
00084 #define AR5K_AR5212_DESC_RX_STATUS1_MIC_ERROR           0x00000020
00085 #define AR5K_AR5212_DESC_RX_STATUS1_KEY_INDEX_VALID     0x00000100
00086 #define AR5K_AR5212_DESC_RX_STATUS1_KEY_INDEX           0x0000fe00
00087 #define AR5K_AR5212_DESC_RX_STATUS1_KEY_INDEX_S         9
00088 #define AR5K_AR5212_DESC_RX_STATUS1_RECEIVE_TIMESTAMP   0x7fff0000
00089 #define AR5K_AR5212_DESC_RX_STATUS1_RECEIVE_TIMESTAMP_S 16
00090 #define AR5K_AR5212_DESC_RX_STATUS1_KEY_CACHE_MISS      0x80000000
00091 } __attribute__((__packed__));
00092 
00093 struct ar5k_ar5212_rx_error {
00094         /*
00095          * RX error word 0
00096          */
00097         u_int32_t       rx_error_0;
00098 
00099 #define AR5K_AR5212_DESC_RX_ERROR0                      0x00000000
00100 
00101         /*
00102          * RX error word 1
00103          */
00104         u_int32_t       rx_error_1;
00105 
00106 #define AR5K_AR5212_DESC_RX_ERROR1_PHY_ERROR_CODE       0x0000ff00
00107 #define AR5K_AR5212_DESC_RX_ERROR1_PHY_ERROR_CODE_S     8
00108 } __attribute__((__packed__));
00109 
00110 #define AR5K_AR5212_DESC_RX_PHY_ERROR_NONE              0x00
00111 #define AR5K_AR5212_DESC_RX_PHY_ERROR_TIMING            0x20
00112 #define AR5K_AR5212_DESC_RX_PHY_ERROR_PARITY            0x40
00113 #define AR5K_AR5212_DESC_RX_PHY_ERROR_RATE              0x60
00114 #define AR5K_AR5212_DESC_RX_PHY_ERROR_LENGTH            0x80
00115 #define AR5K_AR5212_DESC_RX_PHY_ERROR_64QAM             0xa0
00116 #define AR5K_AR5212_DESC_RX_PHY_ERROR_SERVICE           0xc0
00117 #define AR5K_AR5212_DESC_RX_PHY_ERROR_TRANSMITOVR       0xe0
00118 
00119 struct ar5k_ar5212_tx_desc {
00120         /*
00121          * TX control word 0
00122          */
00123         u_int32_t       tx_control_0;
00124 
00125 #define AR5K_AR5212_DESC_TX_CTL0_FRAME_LEN              0x00000fff
00126 #define AR5K_AR5212_DESC_TX_CTL0_XMIT_POWER             0x003f0000
00127 #define AR5K_AR5212_DESC_TX_CTL0_XMIT_POWER_S           16
00128 #define AR5K_AR5212_DESC_TX_CTL0_RTSENA                 0x00400000
00129 #define AR5K_AR5212_DESC_TX_CTL0_VEOL                   0x00800000
00130 #define AR5K_AR5212_DESC_TX_CTL0_CLRDMASK               0x01000000
00131 #define AR5K_AR5212_DESC_TX_CTL0_ANT_MODE_XMIT          0x1e000000
00132 #define AR5K_AR5212_DESC_TX_CTL0_ANT_MODE_XMIT_S        25
00133 #define AR5K_AR5212_DESC_TX_CTL0_INTREQ                 0x20000000
00134 #define AR5K_AR5212_DESC_TX_CTL0_ENCRYPT_KEY_VALID      0x40000000
00135 #define AR5K_AR5212_DESC_TX_CTL0_CTSENA                 0x80000000
00136 
00137         /*
00138          * TX control word 1
00139          */
00140         u_int32_t       tx_control_1;
00141 
00142 #define AR5K_AR5212_DESC_TX_CTL1_BUF_LEN                0x00000fff
00143 #define AR5K_AR5212_DESC_TX_CTL1_MORE                   0x00001000
00144 #define AR5K_AR5212_DESC_TX_CTL1_ENCRYPT_KEY_INDEX      0x000fe000
00145 #define AR5K_AR5212_DESC_TX_CTL1_ENCRYPT_KEY_INDEX_S    13
00146 #define AR5K_AR5212_DESC_TX_CTL1_FRAME_TYPE             0x00f00000
00147 #define AR5K_AR5212_DESC_TX_CTL1_FRAME_TYPE_S           20
00148 #define AR5K_AR5212_DESC_TX_CTL1_NOACK                  0x01000000
00149 #define AR5K_AR5212_DESC_TX_CTL1_COMP_PROC              0x06000000
00150 #define AR5K_AR5212_DESC_TX_CTL1_COMP_PROC_S            25
00151 #define AR5K_AR5212_DESC_TX_CTL1_COMP_IV_LEN            0x18000000
00152 #define AR5K_AR5212_DESC_TX_CTL1_COMP_IV_LEN_S          27
00153 #define AR5K_AR5212_DESC_TX_CTL1_COMP_ICV_LEN           0x60000000
00154 #define AR5K_AR5212_DESC_TX_CTL1_COMP_ICV_LEN_S         29
00155 
00156         /*
00157          * TX control word 2
00158          */
00159         u_int32_t       tx_control_2;
00160 
00161 #define AR5K_AR5212_DESC_TX_CTL2_RTS_DURATION           0x00007fff
00162 #define AR5K_AR5212_DESC_TX_CTL2_DURATION_UPDATE_ENABLE 0x00008000
00163 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES0            0x000f0000
00164 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES0_S          16
00165 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES1            0x00f00000
00166 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES1_S          20
00167 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES2            0x0f000000
00168 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES2_S          24
00169 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES3            0xf0000000
00170 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES3_S          28
00171 
00172         /*
00173          * TX control word 3
00174          */
00175         u_int32_t       tx_control_3;
00176 
00177 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE0             0x0000001f
00178 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE1             0x000003e0
00179 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE1_S           5
00180 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE2             0x00007c00
00181 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE2_S           10
00182 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE3             0x000f8000
00183 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE3_S           15
00184 #define AR5K_AR5212_DESC_TX_CTL3_RTS_CTS_RATE           0x01f00000
00185 #define AR5K_AR5212_DESC_TX_CTL3_RTS_CTS_RATE_S         20
00186 } __attribute__((__packed__));
00187 
00188 struct ar5k_ar5212_tx_status {
00189         /*
00190          * TX status word 0
00191          */
00192         u_int32_t       tx_status_0;
00193 
00194 #define AR5K_AR5212_DESC_TX_STATUS0_FRAME_XMIT_OK       0x00000001
00195 #define AR5K_AR5212_DESC_TX_STATUS0_EXCESSIVE_RETRIES   0x00000002
00196 #define AR5K_AR5212_DESC_TX_STATUS0_FIFO_UNDERRUN       0x00000004
00197 #define AR5K_AR5212_DESC_TX_STATUS0_FILTERED            0x00000008
00198 #define AR5K_AR5212_DESC_TX_STATUS0_RTS_FAIL_COUNT      0x000000f0
00199 #define AR5K_AR5212_DESC_TX_STATUS0_RTS_FAIL_COUNT_S    4
00200 #define AR5K_AR5212_DESC_TX_STATUS0_DATA_FAIL_COUNT     0x00000f00
00201 #define AR5K_AR5212_DESC_TX_STATUS0_DATA_FAIL_COUNT_S   8
00202 #define AR5K_AR5212_DESC_TX_STATUS0_VIRT_COLL_COUNT     0x0000f000
00203 #define AR5K_AR5212_DESC_TX_STATUS0_VIRT_COLL_COUNT_S   12
00204 #define AR5K_AR5212_DESC_TX_STATUS0_SEND_TIMESTAMP      0xffff0000
00205 #define AR5K_AR5212_DESC_TX_STATUS0_SEND_TIMESTAMP_S    16
00206 
00207         /*
00208          * TX status word 1
00209          */
00210         u_int32_t       tx_status_1;
00211 
00212 #define AR5K_AR5212_DESC_TX_STATUS1_DONE                0x00000001
00213 #define AR5K_AR5212_DESC_TX_STATUS1_SEQ_NUM             0x00001ffe
00214 #define AR5K_AR5212_DESC_TX_STATUS1_SEQ_NUM_S           1
00215 #define AR5K_AR5212_DESC_TX_STATUS1_ACK_SIG_STRENGTH    0x001fe000
00216 #define AR5K_AR5212_DESC_TX_STATUS1_ACK_SIG_STRENGTH_S  13
00217 #define AR5K_AR5212_DESC_TX_STATUS1_FINAL_TS_INDEX      0x00600000
00218 #define AR5K_AR5212_DESC_TX_STATUS1_FINAL_TS_INDEX_S    21
00219 #define AR5K_AR5212_DESC_TX_STATUS1_COMP_SUCCESS        0x00800000
00220 #define AR5K_AR5212_DESC_TX_STATUS1_XMIT_ANTENNA        0x01000000
00221 } __attribute__((__packed__));
00222 
00223 
00224 /*
00225  * Initial register values which have to be loaded into the
00226  * card at boot time and after each reset.
00227  */
00228 
00229 struct ar5k_ar5212_ini {
00230         u_int8_t        ini_flags;
00231         u_int16_t       ini_register;
00232         u_int32_t       ini_value;
00233 
00234 #define AR5K_INI_FLAG_511X      0x00
00235 #define AR5K_INI_FLAG_5111      0x01
00236 #define AR5K_INI_FLAG_5112      0x02
00237 #define AR5K_INI_FLAG_BOTH      (AR5K_INI_FLAG_5111 | AR5K_INI_FLAG_5112)
00238 };
00239 
00240 #define AR5K_AR5212_INI {                                               \
00241         { AR5K_INI_FLAG_BOTH, 0x000c, 0x00000000 },                     \
00242         { AR5K_INI_FLAG_BOTH, 0x0034, 0x00000005 },                     \
00243         { AR5K_INI_FLAG_BOTH, 0x0040, 0x00000000 },                     \
00244         { AR5K_INI_FLAG_BOTH, 0x0044, 0x00000008 },                     \
00245         { AR5K_INI_FLAG_BOTH, 0x0048, 0x00000008 },                     \
00246         { AR5K_INI_FLAG_BOTH, 0x004c, 0x00000010 },                     \
00247         { AR5K_INI_FLAG_BOTH, 0x0050, 0x00000000 },                     \
00248         { AR5K_INI_FLAG_BOTH, 0x0054, 0x0000001f },                     \
00249         { AR5K_INI_FLAG_BOTH, 0x0800, 0x00000000 },                     \
00250         { AR5K_INI_FLAG_BOTH, 0x0804, 0x00000000 },                     \
00251         { AR5K_INI_FLAG_BOTH, 0x0808, 0x00000000 },                     \
00252         { AR5K_INI_FLAG_BOTH, 0x080c, 0x00000000 },                     \
00253         { AR5K_INI_FLAG_BOTH, 0x0810, 0x00000000 },                     \
00254         { AR5K_INI_FLAG_BOTH, 0x0814, 0x00000000 },                     \
00255         { AR5K_INI_FLAG_BOTH, 0x0818, 0x00000000 },                     \
00256         { AR5K_INI_FLAG_BOTH, 0x081c, 0x00000000 },                     \
00257         { AR5K_INI_FLAG_BOTH, 0x0820, 0x00000000 },                     \
00258         { AR5K_INI_FLAG_BOTH, 0x0824, 0x00000000 },                     \
00259         { AR5K_INI_FLAG_BOTH, 0x1230, 0x00000000 },                     \
00260         { AR5K_INI_FLAG_BOTH, 0x1270, 0x00000000 },                     \
00261         { AR5K_INI_FLAG_BOTH, 0x1038, 0x00000000 },                     \
00262         { AR5K_INI_FLAG_BOTH, 0x1078, 0x00000000 },                     \
00263         { AR5K_INI_FLAG_BOTH, 0x10b8, 0x00000000 },                     \
00264         { AR5K_INI_FLAG_BOTH, 0x10f8, 0x00000000 },                     \
00265         { AR5K_INI_FLAG_BOTH, 0x1138, 0x00000000 },                     \
00266         { AR5K_INI_FLAG_BOTH, 0x1178, 0x00000000 },                     \
00267         { AR5K_INI_FLAG_BOTH, 0x11b8, 0x00000000 },                     \
00268         { AR5K_INI_FLAG_BOTH, 0x11f8, 0x00000000 },                     \
00269         { AR5K_INI_FLAG_BOTH, 0x1238, 0x00000000 },                     \
00270         { AR5K_INI_FLAG_BOTH, 0x1278, 0x00000000 },                     \
00271         { AR5K_INI_FLAG_BOTH, 0x12b8, 0x00000000 },                     \
00272         { AR5K_INI_FLAG_BOTH, 0x12f8, 0x00000000 },                     \
00273         { AR5K_INI_FLAG_BOTH, 0x1338, 0x00000000 },                     \
00274         { AR5K_INI_FLAG_BOTH, 0x1378, 0x00000000 },                     \
00275         { AR5K_INI_FLAG_BOTH, 0x13b8, 0x00000000 },                     \
00276         { AR5K_INI_FLAG_BOTH, 0x13f8, 0x00000000 },                     \
00277         { AR5K_INI_FLAG_BOTH, 0x1438, 0x00000000 },                     \
00278         { AR5K_INI_FLAG_BOTH, 0x1478, 0x00000000 },                     \
00279         { AR5K_INI_FLAG_BOTH, 0x14b8, 0x00000000 },                     \
00280         { AR5K_INI_FLAG_BOTH, 0x14f8, 0x00000000 },                     \
00281         { AR5K_INI_FLAG_BOTH, 0x1538, 0x00000000 },                     \
00282         { AR5K_INI_FLAG_BOTH, 0x1578, 0x00000000 },                     \
00283         { AR5K_INI_FLAG_BOTH, 0x15b8, 0x00000000 },                     \
00284         { AR5K_INI_FLAG_BOTH, 0x15f8, 0x00000000 },                     \
00285         { AR5K_INI_FLAG_BOTH, 0x1638, 0x00000000 },                     \
00286         { AR5K_INI_FLAG_BOTH, 0x1678, 0x00000000 },                     \
00287         { AR5K_INI_FLAG_BOTH, 0x16b8, 0x00000000 },                     \
00288         { AR5K_INI_FLAG_BOTH, 0x16f8, 0x00000000 },                     \
00289         { AR5K_INI_FLAG_BOTH, 0x1738, 0x00000000 },                     \
00290         { AR5K_INI_FLAG_BOTH, 0x1778, 0x00000000 },                     \
00291         { AR5K_INI_FLAG_BOTH, 0x17b8, 0x00000000 },                     \
00292         { AR5K_INI_FLAG_BOTH, 0x17f8, 0x00000000 },                     \
00293         { AR5K_INI_FLAG_BOTH, 0x103c, 0x00000000 },                     \
00294         { AR5K_INI_FLAG_BOTH, 0x107c, 0x00000000 },                     \
00295         { AR5K_INI_FLAG_BOTH, 0x10bc, 0x00000000 },                     \
00296         { AR5K_INI_FLAG_BOTH, 0x10fc, 0x00000000 },                     \
00297         { AR5K_INI_FLAG_BOTH, 0x113c, 0x00000000 },                     \
00298         { AR5K_INI_FLAG_BOTH, 0x117c, 0x00000000 },                     \
00299         { AR5K_INI_FLAG_BOTH, 0x11bc, 0x00000000 },                     \
00300         { AR5K_INI_FLAG_BOTH, 0x11fc, 0x00000000 },                     \
00301         { AR5K_INI_FLAG_BOTH, 0x123c, 0x00000000 },                     \
00302         { AR5K_INI_FLAG_BOTH, 0x127c, 0x00000000 },                     \
00303         { AR5K_INI_FLAG_BOTH, 0x12bc, 0x00000000 },                     \
00304         { AR5K_INI_FLAG_BOTH, 0x12fc, 0x00000000 },                     \
00305         { AR5K_INI_FLAG_BOTH, 0x133c, 0x00000000 },                     \
00306         { AR5K_INI_FLAG_BOTH, 0x137c, 0x00000000 },                     \
00307         { AR5K_INI_FLAG_BOTH, 0x13bc, 0x00000000 },                     \
00308         { AR5K_INI_FLAG_BOTH, 0x13fc, 0x00000000 },                     \
00309         { AR5K_INI_FLAG_BOTH, 0x143c, 0x00000000 },                     \
00310         { AR5K_INI_FLAG_BOTH, 0x147c, 0x00000000 },                     \
00311         { AR5K_INI_FLAG_BOTH, 0x8004, 0x00000000 },                     \
00312         { AR5K_INI_FLAG_BOTH, 0x8008, 0x00000000 },                     \
00313         { AR5K_INI_FLAG_BOTH, 0x800c, 0x00000000 },                     \
00314         { AR5K_INI_FLAG_BOTH, 0x8018, 0x00000000 },                     \
00315         { AR5K_INI_FLAG_BOTH, 0x8020, 0x00000000 },                     \
00316         { AR5K_INI_FLAG_BOTH, 0x8024, 0x00000000 },                     \
00317         { AR5K_INI_FLAG_BOTH, 0x8028, 0x00000030 },                     \
00318         { AR5K_INI_FLAG_BOTH, 0x802c, 0x0007ffff },                     \
00319         { AR5K_INI_FLAG_BOTH, 0x8030, 0x01ffffff },                     \
00320         { AR5K_INI_FLAG_BOTH, 0x8034, 0x00000031 },                     \
00321         { AR5K_INI_FLAG_BOTH, 0x8038, 0x00000000 },                     \
00322         { AR5K_INI_FLAG_BOTH, 0x803c, 0x00000000 },                     \
00323         { AR5K_INI_FLAG_BOTH, 0x8048, 0x00000000 },                     \
00324         { AR5K_INI_FLAG_BOTH, 0x8054, 0x00000000 },                     \
00325         { AR5K_INI_FLAG_BOTH, 0x8058, 0x00000000 },                     \
00326         { AR5K_INI_FLAG_BOTH, 0x805c, 0xffffc7ff },                     \
00327         { AR5K_INI_FLAG_BOTH, 0x8080, 0x00000000 },                     \
00328         { AR5K_INI_FLAG_BOTH, 0x8084, 0x00000000 },                     \
00329         { AR5K_INI_FLAG_BOTH, 0x8088, 0x00000000 },                     \
00330         { AR5K_INI_FLAG_BOTH, 0x808c, 0x00000000 },                     \
00331         { AR5K_INI_FLAG_BOTH, 0x8090, 0x00000000 },                     \
00332         { AR5K_INI_FLAG_BOTH, 0x8094, 0x00000000 },                     \
00333         { AR5K_INI_FLAG_BOTH, 0x8098, 0x00000000 },                     \
00334         { AR5K_INI_FLAG_BOTH, 0x80c0, 0x2a82301a },                     \
00335         { AR5K_INI_FLAG_BOTH, 0x80c4, 0x05dc01e0 },                     \
00336         { AR5K_INI_FLAG_BOTH, 0x80c8, 0x1f402710 },                     \
00337         { AR5K_INI_FLAG_BOTH, 0x80cc, 0x01f40000 },                     \
00338         { AR5K_INI_FLAG_BOTH, 0x80d0, 0x00001e1c },                     \
00339         { AR5K_INI_FLAG_BOTH, 0x80d4, 0x0002aaaa },                     \
00340         { AR5K_INI_FLAG_BOTH, 0x80d8, 0x02005555 },                     \
00341         { AR5K_INI_FLAG_BOTH, 0x80dc, 0x00000000 },                     \
00342         { AR5K_INI_FLAG_BOTH, 0x80e0, 0xffffffff },                     \
00343         { AR5K_INI_FLAG_BOTH, 0x80e4, 0x0000ffff },                     \
00344         { AR5K_INI_FLAG_BOTH, 0x80e8, 0x00000000 },                     \
00345         { AR5K_INI_FLAG_BOTH, 0x80ec, 0x00000000 },                     \
00346         { AR5K_INI_FLAG_BOTH, 0x80f0, 0x00000000 },                     \
00347         { AR5K_INI_FLAG_BOTH, 0x80f4, 0x00000000 },                     \
00348         { AR5K_INI_FLAG_BOTH, 0x80f8, 0x00000000 },                     \
00349         { AR5K_INI_FLAG_BOTH, 0x80fc, 0x00000088 },                     \
00350         { AR5K_INI_FLAG_BOTH, 0x8700, 0x00000000 },                     \
00351         { AR5K_INI_FLAG_BOTH, 0x8704, 0x0000008c },                     \
00352         { AR5K_INI_FLAG_BOTH, 0x8708, 0x000000e4 },                     \
00353         { AR5K_INI_FLAG_BOTH, 0x870c, 0x000002d5 },                     \
00354         { AR5K_INI_FLAG_BOTH, 0x8710, 0x00000000 },                     \
00355         { AR5K_INI_FLAG_BOTH, 0x8714, 0x00000000 },                     \
00356         { AR5K_INI_FLAG_BOTH, 0x8718, 0x000000a0 },                     \
00357         { AR5K_INI_FLAG_BOTH, 0x871c, 0x000001c9 },                     \
00358         { AR5K_INI_FLAG_BOTH, 0x8720, 0x0000002c },                     \
00359         { AR5K_INI_FLAG_BOTH, 0x8724, 0x0000002c },                     \
00360         { AR5K_INI_FLAG_BOTH, 0x8728, 0x00000030 },                     \
00361         { AR5K_INI_FLAG_BOTH, 0x872c, 0x0000003c },                     \
00362         { AR5K_INI_FLAG_BOTH, 0x8730, 0x0000002c },                     \
00363         { AR5K_INI_FLAG_BOTH, 0x8734, 0x0000002c },                     \
00364         { AR5K_INI_FLAG_BOTH, 0x8738, 0x00000030 },                     \
00365         { AR5K_INI_FLAG_BOTH, 0x873c, 0x0000003c },                     \
00366         { AR5K_INI_FLAG_BOTH, 0x8740, 0x00000000 },                     \
00367         { AR5K_INI_FLAG_BOTH, 0x8744, 0x00000000 },                     \
00368         { AR5K_INI_FLAG_BOTH, 0x8748, 0x00000000 },                     \
00369         { AR5K_INI_FLAG_BOTH, 0x874c, 0x00000000 },                     \
00370         { AR5K_INI_FLAG_BOTH, 0x8750, 0x00000000 },                     \
00371         { AR5K_INI_FLAG_BOTH, 0x8754, 0x00000000 },                     \
00372         { AR5K_INI_FLAG_BOTH, 0x8758, 0x00000000 },                     \
00373         { AR5K_INI_FLAG_BOTH, 0x875c, 0x00000000 },                     \
00374         { AR5K_INI_FLAG_BOTH, 0x8760, 0x000000d5 },                     \
00375         { AR5K_INI_FLAG_BOTH, 0x8764, 0x000000df },                     \
00376         { AR5K_INI_FLAG_BOTH, 0x8768, 0x00000102 },                     \
00377         { AR5K_INI_FLAG_BOTH, 0x876c, 0x0000013a },                     \
00378         { AR5K_INI_FLAG_BOTH, 0x8770, 0x00000075 },                     \
00379         { AR5K_INI_FLAG_BOTH, 0x8774, 0x0000007f },                     \
00380         { AR5K_INI_FLAG_BOTH, 0x8778, 0x000000a2 },                     \
00381         { AR5K_INI_FLAG_BOTH, 0x877c, 0x00000000 },                     \
00382         { AR5K_INI_FLAG_BOTH, 0x8100, 0x00010002 },                     \
00383         { AR5K_INI_FLAG_BOTH, 0x8104, 0x00000001 },                     \
00384         { AR5K_INI_FLAG_BOTH, 0x8108, 0x000000c0 },                     \
00385         { AR5K_INI_FLAG_BOTH, 0x810c, 0x00000000 },                     \
00386         { AR5K_INI_FLAG_BOTH, 0x8110, 0x00000168 },                     \
00387         { AR5K_INI_FLAG_BOTH, 0x8114, 0x00000000 },                     \
00388         { AR5K_INI_FLAG_BOTH, 0x87c0, 0x03020100 },                     \
00389         { AR5K_INI_FLAG_BOTH, 0x87c4, 0x07060504 },                     \
00390         { AR5K_INI_FLAG_BOTH, 0x87c8, 0x0b0a0908 },                     \
00391         { AR5K_INI_FLAG_BOTH, 0x87cc, 0x0f0e0d0c },                     \
00392         { AR5K_INI_FLAG_BOTH, 0x87d0, 0x13121110 },                     \
00393         { AR5K_INI_FLAG_BOTH, 0x87d4, 0x17161514 },                     \
00394         { AR5K_INI_FLAG_BOTH, 0x87d8, 0x1b1a1918 },                     \
00395         { AR5K_INI_FLAG_BOTH, 0x87dc, 0x1f1e1d1c },                     \
00396         { AR5K_INI_FLAG_BOTH, 0x87e0, 0x03020100 },                     \
00397         { AR5K_INI_FLAG_BOTH, 0x87e4, 0x07060504 },                     \
00398         { AR5K_INI_FLAG_BOTH, 0x87e8, 0x0b0a0908 },                     \
00399         { AR5K_INI_FLAG_BOTH, 0x87ec, 0x0f0e0d0c },                     \
00400         { AR5K_INI_FLAG_BOTH, 0x87f0, 0x13121110 },                     \
00401         { AR5K_INI_FLAG_BOTH, 0x87f4, 0x17161514 },                     \
00402         { AR5K_INI_FLAG_BOTH, 0x87f8, 0x1b1a1918 },                     \
00403         { AR5K_INI_FLAG_BOTH, 0x87fc, 0x1f1e1d1c },                     \
00404         /* PHY registers */                                             \
00405         { AR5K_INI_FLAG_BOTH, 0x9808, 0x00000000 },                     \
00406         { AR5K_INI_FLAG_BOTH, 0x980c, 0xad848e19 },                     \
00407         { AR5K_INI_FLAG_BOTH, 0x9810, 0x7d28e000 },                     \
00408         { AR5K_INI_FLAG_BOTH, 0x9814, 0x9c0a9f6b },                     \
00409         { AR5K_INI_FLAG_BOTH, 0x981c, 0x00000000 },                     \
00410         { AR5K_INI_FLAG_BOTH, 0x982c, 0x00022ffe },                     \
00411         { AR5K_INI_FLAG_BOTH, 0x983c, 0x00020100 },                     \
00412         { AR5K_INI_FLAG_BOTH, 0x9840, 0x206a017a },                     \
00413         { AR5K_INI_FLAG_BOTH, 0x984c, 0x1284613c },                     \
00414         { AR5K_INI_FLAG_BOTH, 0x9854, 0x00000859 },                     \
00415         { AR5K_INI_FLAG_BOTH, 0x9900, 0x00000000 },                     \
00416         { AR5K_INI_FLAG_BOTH, 0x9904, 0x00000000 },                     \
00417         { AR5K_INI_FLAG_BOTH, 0x9908, 0x00000000 },                     \
00418         { AR5K_INI_FLAG_BOTH, 0x990c, 0x00800000 },                     \
00419         { AR5K_INI_FLAG_BOTH, 0x9910, 0x00000001 },                     \
00420         { AR5K_INI_FLAG_BOTH, 0x991c, 0x00000c80 },                     \
00421         { AR5K_INI_FLAG_BOTH, 0x9920, 0x05100000 },                     \
00422         { AR5K_INI_FLAG_BOTH, 0x9928, 0x00000001 },                     \
00423         { AR5K_INI_FLAG_BOTH, 0x992c, 0x00000004 },                     \
00424         { AR5K_INI_FLAG_BOTH, 0x9934, 0x1e1f2022 },                     \
00425         { AR5K_INI_FLAG_BOTH, 0x9938, 0x0a0b0c0d },                     \
00426         { AR5K_INI_FLAG_BOTH, 0x993c, 0x0000003f },                     \
00427         { AR5K_INI_FLAG_BOTH, 0x9940, 0x00000004 },                     \
00428         { AR5K_INI_FLAG_BOTH, 0x9948, 0x9280b212 },                     \
00429         { AR5K_INI_FLAG_BOTH, 0x9954, 0x5d50e188 },                     \
00430         { AR5K_INI_FLAG_BOTH, 0x9958, 0x000000ff },                     \
00431         { AR5K_INI_FLAG_BOTH, 0x995c, 0x004b6a8e },                     \
00432         { AR5K_INI_FLAG_BOTH, 0x9968, 0x000003ce },                     \
00433         { AR5K_INI_FLAG_BOTH, 0x9970, 0x192fb515 },                     \
00434         { AR5K_INI_FLAG_BOTH, 0x9974, 0x00000000 },                     \
00435         { AR5K_INI_FLAG_BOTH, 0x9978, 0x00000001 },                     \
00436         { AR5K_INI_FLAG_BOTH, 0x997c, 0x00000000 },                     \
00437         { AR5K_INI_FLAG_BOTH, 0xa184, 0x10ff10ff },                     \
00438         { AR5K_INI_FLAG_BOTH, 0xa188, 0x10ff10ff },                     \
00439         { AR5K_INI_FLAG_BOTH, 0xa18c, 0x10ff10ff },                     \
00440         { AR5K_INI_FLAG_BOTH, 0xa190, 0x10ff10ff },                     \
00441         { AR5K_INI_FLAG_BOTH, 0xa194, 0x10ff10ff },                     \
00442         { AR5K_INI_FLAG_BOTH, 0xa198, 0x10ff10ff },                     \
00443         { AR5K_INI_FLAG_BOTH, 0xa19c, 0x10ff10ff },                     \
00444         { AR5K_INI_FLAG_BOTH, 0xa1a0, 0x10ff10ff },                     \
00445         { AR5K_INI_FLAG_BOTH, 0xa1a4, 0x10ff10ff },                     \
00446         { AR5K_INI_FLAG_BOTH, 0xa1a8, 0x10ff10ff },                     \
00447         { AR5K_INI_FLAG_BOTH, 0xa1ac, 0x10ff10ff },                     \
00448         { AR5K_INI_FLAG_BOTH, 0xa1b0, 0x10ff10ff },                     \
00449         { AR5K_INI_FLAG_BOTH, 0xa1b4, 0x10ff10ff },                     \
00450         { AR5K_INI_FLAG_BOTH, 0xa1b8, 0x10ff10ff },                     \
00451         { AR5K_INI_FLAG_BOTH, 0xa1bc, 0x10ff10ff },                     \
00452         { AR5K_INI_FLAG_BOTH, 0xa1c0, 0x10ff10ff },                     \
00453         { AR5K_INI_FLAG_BOTH, 0xa1c4, 0x10ff10ff },                     \
00454         { AR5K_INI_FLAG_BOTH, 0xa1c8, 0x10ff10ff },                     \
00455         { AR5K_INI_FLAG_BOTH, 0xa1cc, 0x10ff10ff },                     \
00456         { AR5K_INI_FLAG_BOTH, 0xa1d0, 0x10ff10ff },                     \
00457         { AR5K_INI_FLAG_BOTH, 0xa1d4, 0x10ff10ff },                     \
00458         { AR5K_INI_FLAG_BOTH, 0xa1d8, 0x10ff10ff },                     \
00459         { AR5K_INI_FLAG_BOTH, 0xa1dc, 0x10ff10ff },                     \
00460         { AR5K_INI_FLAG_BOTH, 0xa1e0, 0x10ff10ff },                     \
00461         { AR5K_INI_FLAG_BOTH, 0xa1e4, 0x10ff10ff },                     \
00462         { AR5K_INI_FLAG_BOTH, 0xa1e8, 0x10ff10ff },                     \
00463         { AR5K_INI_FLAG_BOTH, 0xa1ec, 0x10ff10ff },                     \
00464         { AR5K_INI_FLAG_BOTH, 0xa1f0, 0x10ff10ff },                     \
00465         { AR5K_INI_FLAG_BOTH, 0xa1f4, 0x10ff10ff },                     \
00466         { AR5K_INI_FLAG_BOTH, 0xa1f8, 0x10ff10ff },                     \
00467         { AR5K_INI_FLAG_BOTH, 0xa1fc, 0x10ff10ff },                     \
00468         { AR5K_INI_FLAG_BOTH, 0xa210, 0x00806333 },                     \
00469         { AR5K_INI_FLAG_BOTH, 0xa214, 0x00106c10 },                     \
00470         { AR5K_INI_FLAG_BOTH, 0xa218, 0x009c4060 },                     \
00471         { AR5K_INI_FLAG_BOTH, 0xa21c, 0x1883800a },                     \
00472         { AR5K_INI_FLAG_BOTH, 0xa220, 0x018830c6 },                     \
00473         { AR5K_INI_FLAG_BOTH, 0xa224, 0x00000400 },                     \
00474         { AR5K_INI_FLAG_BOTH, 0xa228, 0x000001b5 },                     \
00475         { AR5K_INI_FLAG_BOTH, 0xa22c, 0x00000000 },                     \
00476         { AR5K_INI_FLAG_BOTH, 0xa234, 0x20202020 },                     \
00477         { AR5K_INI_FLAG_BOTH, 0xa238, 0x20202020 },                     \
00478         { AR5K_INI_FLAG_BOTH, 0xa23c, 0x13c889af },                     \
00479         { AR5K_INI_FLAG_BOTH, 0xa240, 0x38490a20 },                     \
00480         { AR5K_INI_FLAG_BOTH, 0xa244, 0x00007bb6 },                     \
00481         { AR5K_INI_FLAG_BOTH, 0xa248, 0x0fff3ffc },                     \
00482         { AR5K_INI_FLAG_BOTH, 0x9b00, 0x00000000 },                     \
00483         { AR5K_INI_FLAG_BOTH, 0x9b28, 0x0000000c },                     \
00484         { AR5K_INI_FLAG_BOTH, 0x9b38, 0x00000012 },                     \
00485         { AR5K_INI_FLAG_BOTH, 0x9b64, 0x00000021 },                     \
00486         { AR5K_INI_FLAG_BOTH, 0x9b8c, 0x0000002d },                     \
00487         { AR5K_INI_FLAG_BOTH, 0x9b9c, 0x00000033 },                     \
00488         /* AR5111 specific */                                           \
00489         { AR5K_INI_FLAG_5111, 0x9930, 0x00004883 },                     \
00490         { AR5K_INI_FLAG_5111, 0xa204, 0x00000000 },                     \
00491         { AR5K_INI_FLAG_5111, 0xa208, 0xd03e6788 },                     \
00492         { AR5K_INI_FLAG_5111, 0x9b04, 0x00000020 },                     \
00493         { AR5K_INI_FLAG_5111, 0x9b08, 0x00000010 },                     \
00494         { AR5K_INI_FLAG_5111, 0x9b0c, 0x00000030 },                     \
00495         { AR5K_INI_FLAG_5111, 0x9b10, 0x00000008 },                     \
00496         { AR5K_INI_FLAG_5111, 0x9b14, 0x00000028 },                     \
00497         { AR5K_INI_FLAG_5111, 0x9b18, 0x00000004 },                     \
00498         { AR5K_INI_FLAG_5111, 0x9b1c, 0x00000024 },                     \
00499         { AR5K_INI_FLAG_5111, 0x9b20, 0x00000014 },                     \
00500         { AR5K_INI_FLAG_5111, 0x9b24, 0x00000034 },                     \
00501         { AR5K_INI_FLAG_5111, 0x9b2c, 0x0000002c },                     \
00502         { AR5K_INI_FLAG_5111, 0x9b30, 0x00000002 },                     \
00503         { AR5K_INI_FLAG_5111, 0x9b34, 0x00000022 },                     \
00504         { AR5K_INI_FLAG_5111, 0x9b3c, 0x00000032 },                     \
00505         { AR5K_INI_FLAG_5111, 0x9b40, 0x0000000a },                     \
00506         { AR5K_INI_FLAG_5111, 0x9b44, 0x0000002a },                     \
00507         { AR5K_INI_FLAG_5111, 0x9b48, 0x00000006 },                     \
00508         { AR5K_INI_FLAG_5111, 0x9b4c, 0x00000026 },                     \
00509         { AR5K_INI_FLAG_5111, 0x9b50, 0x00000016 },                     \
00510         { AR5K_INI_FLAG_5111, 0x9b54, 0x00000036 },                     \
00511         { AR5K_INI_FLAG_5111, 0x9b58, 0x0000000e },                     \
00512         { AR5K_INI_FLAG_5111, 0x9b5c, 0x0000002e },                     \
00513         { AR5K_INI_FLAG_5111, 0x9b60, 0x00000001 },                     \
00514         { AR5K_INI_FLAG_5111, 0x9b68, 0x00000011 },                     \
00515         { AR5K_INI_FLAG_5111, 0x9b6c, 0x00000031 },                     \
00516         { AR5K_INI_FLAG_5111, 0x9b70, 0x00000009 },                     \
00517         { AR5K_INI_FLAG_5111, 0x9b74, 0x00000029 },                     \
00518         { AR5K_INI_FLAG_5111, 0x9b78, 0x00000005 },                     \
00519         { AR5K_INI_FLAG_5111, 0x9b7c, 0x00000025 },                     \
00520         { AR5K_INI_FLAG_5111, 0x9b80, 0x00000015 },                     \
00521         { AR5K_INI_FLAG_5111, 0x9b84, 0x00000035 },                     \
00522         { AR5K_INI_FLAG_5111, 0x9b88, 0x0000000d },                     \
00523         { AR5K_INI_FLAG_5111, 0x9b90, 0x00000003 },                     \
00524         { AR5K_INI_FLAG_5111, 0x9b94, 0x00000023 },                     \
00525         { AR5K_INI_FLAG_5111, 0x9b98, 0x00000013 },                     \
00526         { AR5K_INI_FLAG_5111, 0x9ba0, 0x0000000b },                     \
00527         { AR5K_INI_FLAG_5111, 0x9ba4, 0x0000002b },                     \
00528         { AR5K_INI_FLAG_5111, 0x9ba8, 0x0000002b },                     \
00529         { AR5K_INI_FLAG_5111, 0x9bac, 0x0000002b },                     \
00530         { AR5K_INI_FLAG_5111, 0x9bb0, 0x0000002b },                     \
00531         { AR5K_INI_FLAG_5111, 0x9bb4, 0x0000002b },                     \
00532         { AR5K_INI_FLAG_5111, 0x9bb8, 0x0000002b },                     \
00533         { AR5K_INI_FLAG_5111, 0x9bbc, 0x0000002b },                     \
00534         { AR5K_INI_FLAG_5111, 0x9bc0, 0x0000002b },                     \
00535         { AR5K_INI_FLAG_5111, 0x9bc4, 0x0000002b },                     \
00536         { AR5K_INI_FLAG_5111, 0x9bc8, 0x0000002b },                     \
00537         { AR5K_INI_FLAG_5111, 0x9bcc, 0x0000002b },                     \
00538         { AR5K_INI_FLAG_5111, 0x9bd0, 0x0000002b },                     \
00539         { AR5K_INI_FLAG_5111, 0x9bd4, 0x0000002b },                     \
00540         { AR5K_INI_FLAG_5111, 0x9bd8, 0x0000002b },                     \
00541         { AR5K_INI_FLAG_5111, 0x9bdc, 0x0000002b },                     \
00542         { AR5K_INI_FLAG_5111, 0x9be0, 0x0000002b },                     \
00543         { AR5K_INI_FLAG_5111, 0x9be4, 0x0000002b },                     \
00544         { AR5K_INI_FLAG_5111, 0x9be8, 0x0000002b },                     \
00545         { AR5K_INI_FLAG_5111, 0x9bec, 0x0000002b },                     \
00546         { AR5K_INI_FLAG_5111, 0x9bf0, 0x0000002b },                     \
00547         { AR5K_INI_FLAG_5111, 0x9bf4, 0x0000002b },                     \
00548         { AR5K_INI_FLAG_5111, 0x9bf8, 0x00000002 },                     \
00549         { AR5K_INI_FLAG_5111, 0x9bfc, 0x00000016 },                     \
00550         /* AR5112 specific */                                           \
00551         { AR5K_INI_FLAG_5112, 0x9930, 0x00004882 },                     \
00552         { AR5K_INI_FLAG_5112, 0x9b04, 0x00000001 },                     \
00553         { AR5K_INI_FLAG_5112, 0x9b08, 0x00000002 },                     \
00554         { AR5K_INI_FLAG_5112, 0x9b0c, 0x00000003 },                     \
00555         { AR5K_INI_FLAG_5112, 0x9b10, 0x00000004 },                     \
00556         { AR5K_INI_FLAG_5112, 0x9b14, 0x00000005 },                     \
00557         { AR5K_INI_FLAG_5112, 0x9b18, 0x00000008 },                     \
00558         { AR5K_INI_FLAG_5112, 0x9b1c, 0x00000009 },                     \
00559         { AR5K_INI_FLAG_5112, 0x9b20, 0x0000000a },                     \
00560         { AR5K_INI_FLAG_5112, 0x9b24, 0x0000000b },                     \
00561         { AR5K_INI_FLAG_5112, 0x9b2c, 0x0000000d },                     \
00562         { AR5K_INI_FLAG_5112, 0x9b30, 0x00000010 },                     \
00563         { AR5K_INI_FLAG_5112, 0x9b34, 0x00000011 },                     \
00564         { AR5K_INI_FLAG_5112, 0x9b3c, 0x00000013 },                     \
00565         { AR5K_INI_FLAG_5112, 0x9b40, 0x00000014 },                     \
00566         { AR5K_INI_FLAG_5112, 0x9b44, 0x00000015 },                     \
00567         { AR5K_INI_FLAG_5112, 0x9b48, 0x00000018 },                     \
00568         { AR5K_INI_FLAG_5112, 0x9b4c, 0x00000019 },                     \
00569         { AR5K_INI_FLAG_5112, 0x9b50, 0x0000001a },                     \
00570         { AR5K_INI_FLAG_5112, 0x9b54, 0x0000001b },                     \
00571         { AR5K_INI_FLAG_5112, 0x9b58, 0x0000001c },                     \
00572         { AR5K_INI_FLAG_5112, 0x9b5c, 0x0000001d },                     \
00573         { AR5K_INI_FLAG_5112, 0x9b60, 0x00000020 },                     \
00574         { AR5K_INI_FLAG_5112, 0x9b68, 0x00000022 },                     \
00575         { AR5K_INI_FLAG_5112, 0x9b6c, 0x00000023 },                     \
00576         { AR5K_INI_FLAG_5112, 0x9b70, 0x00000024 },                     \
00577         { AR5K_INI_FLAG_5112, 0x9b74, 0x00000025 },                     \
00578         { AR5K_INI_FLAG_5112, 0x9b78, 0x00000028 },                     \
00579         { AR5K_INI_FLAG_5112, 0x9b7c, 0x00000029 },                     \
00580         { AR5K_INI_FLAG_5112, 0x9b80, 0x0000002a },                     \
00581         { AR5K_INI_FLAG_5112, 0x9b84, 0x0000002b },                     \
00582         { AR5K_INI_FLAG_5112, 0x9b88, 0x0000002c },                     \
00583         { AR5K_INI_FLAG_5112, 0x9b90, 0x00000030 },                     \
00584         { AR5K_INI_FLAG_5112, 0x9b94, 0x00000031 },                     \
00585         { AR5K_INI_FLAG_5112, 0x9b98, 0x00000032 },                     \
00586         { AR5K_INI_FLAG_5112, 0x9ba0, 0x00000034 },                     \
00587         { AR5K_INI_FLAG_5112, 0x9ba4, 0x00000035 },                     \
00588         { AR5K_INI_FLAG_5112, 0x9ba8, 0x00000035 },                     \
00589         { AR5K_INI_FLAG_5112, 0x9bac, 0x00000035 },                     \
00590         { AR5K_INI_FLAG_5112, 0x9bb0, 0x00000035 },                     \
00591         { AR5K_INI_FLAG_5112, 0x9bb4, 0x00000035 },                     \
00592         { AR5K_INI_FLAG_5112, 0x9bb8, 0x00000035 },                     \
00593         { AR5K_INI_FLAG_5112, 0x9bbc, 0x00000035 },                     \
00594         { AR5K_INI_FLAG_5112, 0x9bc0, 0x00000035 },                     \
00595         { AR5K_INI_FLAG_5112, 0x9bc4, 0x00000035 },                     \
00596         { AR5K_INI_FLAG_5112, 0x9bc8, 0x00000035 },                     \
00597         { AR5K_INI_FLAG_5112, 0x9bcc, 0x00000035 },                     \
00598         { AR5K_INI_FLAG_5112, 0x9bd0, 0x00000035 },                     \
00599         { AR5K_INI_FLAG_5112, 0x9bd4, 0x00000035 },                     \
00600         { AR5K_INI_FLAG_5112, 0x9bd8, 0x00000035 },                     \
00601         { AR5K_INI_FLAG_5112, 0x9bdc, 0x00000035 },                     \
00602         { AR5K_INI_FLAG_5112, 0x9be0, 0x00000035 },                     \
00603         { AR5K_INI_FLAG_5112, 0x9be4, 0x00000035 },                     \
00604         { AR5K_INI_FLAG_5112, 0x9be8, 0x00000035 },                     \
00605         { AR5K_INI_FLAG_5112, 0x9bec, 0x00000035 },                     \
00606         { AR5K_INI_FLAG_5112, 0x9bf0, 0x00000035 },                     \
00607         { AR5K_INI_FLAG_5112, 0x9bf4, 0x00000035 },                     \
00608         { AR5K_INI_FLAG_5112, 0x9bf8, 0x00000010 },                     \
00609         { AR5K_INI_FLAG_5112, 0x9bfc, 0x0000001a },                     \
00610 }
00611 
00612 struct ar5k_ar5212_ini_mode {
00613         u_int16_t       mode_register;
00614         u_int8_t        mode_flags;
00615         u_int32_t       mode_value[2][5];
00616 };
00617 
00618 #define AR5K_AR5212_INI_MODE {                                                  \
00619         { 0x0030, AR5K_INI_FLAG_511X, {                                         \
00620                 { 0, },                                                         \
00621                 { 0x00008107, 0x00008107, 0x00008107, 0x00008107, 0x00008107 }  \
00622         } },                                                                    \
00623         { 0x1040, AR5K_INI_FLAG_511X, {                                         \
00624                 { 0, },                                                         \
00625                 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f }  \
00626         } },                                                                    \
00627         { 0x1044, AR5K_INI_FLAG_511X, {                                         \
00628                 { 0, },                                                         \
00629                 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f }  \
00630         } },                                                                    \
00631         { 0x1048, AR5K_INI_FLAG_511X, {                                         \
00632                 { 0, },                                                         \
00633                 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f }  \
00634         } },                                                                    \
00635         { 0x104c, AR5K_INI_FLAG_511X, {                                         \
00636                 { 0, },                                                         \
00637                 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f }  \
00638         } },                                                                    \
00639         { 0x1050, AR5K_INI_FLAG_511X, {                                         \
00640                 { 0, },                                                         \
00641                 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f }  \
00642         } },                                                                    \
00643         { 0x1054, AR5K_INI_FLAG_511X, {                                         \
00644                 { 0, },                                                         \
00645                 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f }  \
00646         } },                                                                    \
00647         { 0x1058, AR5K_INI_FLAG_511X, {                                         \
00648                 { 0, },                                                         \
00649                 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f }  \
00650         } },                                                                    \
00651         { 0x105c, AR5K_INI_FLAG_511X, {                                         \
00652                 { 0, },                                                         \
00653                 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f }  \
00654         } },                                                                    \
00655         { 0x1060, AR5K_INI_FLAG_511X, {                                         \
00656                 { 0, },                                                         \
00657                 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f }  \
00658         } },                                                                    \
00659         { 0x1064, AR5K_INI_FLAG_511X, {                                         \
00660                 { 0, },                                                         \
00661                 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f }  \
00662         } },                                                                    \
00663         { 0x1030, AR5K_INI_FLAG_511X, {                                         \
00664                 { 0, },                                                         \
00665                 { 0x00000230, 0x000001e0, 0x000000b0, 0x00000160, 0x000001e0 }  \
00666         } },                                                                    \
00667         { 0x1070, AR5K_INI_FLAG_511X, {                                         \
00668                 { 0, },                                                         \
00669                 { 0x00000168, 0x000001e0, 0x000001b8, 0x0000018c, 0x000001e0 }  \
00670         } },                                                                    \
00671         { 0x10b0, AR5K_INI_FLAG_511X, {                                         \
00672                 { 0, },                                                         \
00673                 { 0x00000e60, 0x00001180, 0x00001f1c, 0x00003e38, 0x00001180 }  \
00674         } },                                                                    \
00675         { 0x10f0, AR5K_INI_FLAG_511X, {                                         \
00676                 { 0, },                                                         \
00677                 { 0x0000a0e0, 0x00014068, 0x00005880, 0x0000b0e0, 0x00014068 }  \
00678         } },                                                                    \
00679         { 0x8014, AR5K_INI_FLAG_511X, {                                         \
00680                 { 0, },                                                         \
00681                 { 0x03e803e8, 0x06e006e0, 0x04200420, 0x08400840, 0x06e006e0 }  \
00682         } },                                                                    \
00683         { 0x9804, AR5K_INI_FLAG_511X, {                                         \
00684                 { 0, },                                                         \
00685                 { 0x00000000, 0x00000003, 0x00000000, 0x00000000, 0x00000003 }  \
00686         } },                                                                    \
00687         { 0x9820, AR5K_INI_FLAG_511X, {                                         \
00688                 { 0, },                                                         \
00689                 { 0x02020200, 0x02020200, 0x02010200, 0x02020200, 0x02020200 }  \
00690         } },                                                                    \
00691         { 0x9834, AR5K_INI_FLAG_511X, {                                         \
00692                 { 0, },                                                         \
00693                 { 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }  \
00694         } },                                                                    \
00695         { 0x9838, AR5K_INI_FLAG_511X, {                                         \
00696                 { 0, },                                                         \
00697                 { 0x00000007, 0x00000007, 0x0000000b, 0x0000000b, 0x0000000b }  \
00698         } },                                                                    \
00699         { 0x9844, AR5K_INI_FLAG_511X, {                                         \
00700                 { 0, },                                                         \
00701                 { 0x1372161c, 0x13721c25, 0x13721728, 0x137216a2, 0x13721c25 }  \
00702         } },                                                                    \
00703         { 0x9850, AR5K_INI_FLAG_511X, {                                         \
00704                 { 0, },                                                         \
00705                 { 0x0de8b4e0, 0x0de8b4e0, 0x0de8b4e0, 0x0de8b4e0, 0x0de8b4e0 }  \
00706         } },                                                                    \
00707         { 0x9860, AR5K_INI_FLAG_511X, {                                         \
00708                 { 0, },                                                         \
00709                 { 0x00009d10, 0x00009d10, 0x00009d10, 0x00009d10, 0x00009d10 }  \
00710         } },                                                                    \
00711         { 0x9864, AR5K_INI_FLAG_511X, {                                         \
00712                 { 0, },                                                         \
00713                 { 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }  \
00714         } },                                                                    \
00715         { 0x9868, AR5K_INI_FLAG_511X, {                                         \
00716                 { 0, },                                                         \
00717                 { 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190 }  \
00718         } },                                                                    \
00719         { 0x9918, AR5K_INI_FLAG_511X, {                                         \
00720                 { 0, },                                                         \
00721                 { 0x000001b8, 0x000001b8, 0x00000084, 0x00000108, 0x000001b8 }  \
00722         } },                                                                    \
00723         { 0x9924, AR5K_INI_FLAG_511X, {                                         \
00724                 { 0, },                                                         \
00725                 { 0x10058a05, 0x10058a05, 0x10058a05, 0x10058a05, 0x10058a05 }  \
00726         } },                                                                    \
00727         { 0xa180, AR5K_INI_FLAG_511X, {                                         \
00728                 { 0, },                                                         \
00729                 { 0x10ff14ff, 0x10ff14ff, 0x10ff10ff, 0x10ff19ff, 0x10ff19ff }  \
00730         } },                                                                    \
00731         { 0xa230, AR5K_INI_FLAG_511X, {                                         \
00732                 { 0, },                                                         \
00733                 { 0x00000000, 0x00000000, 0x00000000, 0x00000108, 0x00000000 }  \
00734         } },                                                                    \
00735         { 0x801c, AR5K_INI_FLAG_BOTH, {                                         \
00736                 { 0x128d8fa7, 0x09880fcf, 0x04e00f95, 0x128d8fab, 0x09880fcf }, \
00737                 { 0x128d93a7, 0x098813cf, 0x04e01395, 0x128d93ab, 0x098813cf }  \
00738         } },                                                                    \
00739         { 0x9824, AR5K_INI_FLAG_BOTH, {                                         \
00740                 { 0x00000e0e, 0x00000e0e, 0x00000707, 0x00000e0e, 0x00000e0e }, \
00741                 { 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }  \
00742         } },                                                                    \
00743         { 0x9828, AR5K_INI_FLAG_BOTH, {                                         \
00744                 { 0x0a020001, 0x0a020001, 0x05010100, 0x0a020001, 0x0a020001 }, \
00745                 { 0x0a020001, 0x0a020001, 0x05020100, 0x0a020001, 0x0a020001 }  \
00746         } },                                                                    \
00747         { 0x9848, AR5K_INI_FLAG_BOTH, {                                         \
00748                 { 0x0018da5a, 0x0018da5a, 0x0018ca69, 0x0018ca69, 0x0018ca69 }, \
00749                 { 0x0018da6d, 0x0018da6d, 0x0018ca75, 0x0018ca75, 0x0018ca75 }  \
00750         } },                                                                    \
00751         { 0x9858, AR5K_INI_FLAG_BOTH, {                                         \
00752                 { 0x7e800d2e, 0x7e800d2e, 0x7ee84d2e, 0x7ee84d2e, 0x7e800d2e }, \
00753                 { 0x7e800d2e, 0x7e800d2e, 0x7ee80d2e, 0x7ee80d2e, 0x7e800d2e }  \
00754         } },                                                                    \
00755         { 0x985c, AR5K_INI_FLAG_BOTH, {                                         \
00756                 { 0x3137665e, 0x3137665e, 0x3137665e, 0x3137665e, 0x3137615e }, \
00757                 { 0x3137665e, 0x3137665e, 0x3137665e, 0x3137665e, 0x3137665e }  \
00758         } },                                                                    \
00759         { 0x986c, AR5K_INI_FLAG_BOTH, {                                         \
00760                 { 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb080, 0x050cb080 }, \
00761                 { 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081 }  \
00762         } },                                                                    \
00763         { 0x9914, AR5K_INI_FLAG_BOTH, {                                         \
00764                 { 0x00002710, 0x00002710, 0x0000157c, 0x00002af8, 0x00002710 }, \
00765                 { 0x000007d0, 0x000007d0, 0x0000044c, 0x00000898, 0x000007d0 }  \
00766         } },                                                                    \
00767         { 0x9944, AR5K_INI_FLAG_BOTH, {                                         \
00768                 { 0xf7b81020, 0xf7b81020, 0xf7b80d20, 0xf7b81020, 0xf7b81020 }, \
00769                 { 0xf7b81020, 0xf7b81020, 0xf7b80d10, 0xf7b81010, 0xf7b81010 }  \
00770         } },                                                                    \
00771         { 0xa204, AR5K_INI_FLAG_5112, {                                         \
00772                 { 0, },                                                         \
00773                 { 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000004 }  \
00774         } },                                                                    \
00775         { 0xa208, AR5K_INI_FLAG_5112, {                                         \
00776                 { 0, },                                                         \
00777                 { 0xd6be6788, 0xd6be6788, 0xd03e6788, 0xd03e6788, 0xd03e6788 }  \
00778         } },                                                                    \
00779         { 0xa20c, AR5K_INI_FLAG_BOTH, {                                         \
00780                 { 0x642c416a, 0x642c416a, 0x6440416a, 0x6440416a, 0x6440416a }, \
00781                 { 0x642c0140, 0x642c0140, 0x6442c160, 0x6442c160, 0x6442c160 }  \
00782         } },                                                                    \
00783 }
00784 
00785 #endif /* _AR5K_AR5212_VAR_H */

Generated on Mon Nov 21 15:58:10 2005 for openwifi by  doxygen 1.4.1