Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.23 226 lines 5.6 kB view raw
1/* 2 * Definitions for RTL818x hardware 3 * 4 * Copyright 2007 Michael Wu <flamingice@sourmilk.net> 5 * Copyright 2007 Andrea Merello <andreamrl@tiscali.it> 6 * 7 * Based on the r8187 driver, which is: 8 * Copyright 2005 Andrea Merello <andreamrl@tiscali.it>, et al. 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License version 2 as 12 * published by the Free Software Foundation. 13 */ 14 15#ifndef RTL818X_H 16#define RTL818X_H 17 18struct rtl818x_csr { 19 u8 MAC[6]; 20 u8 reserved_0[2]; 21 __le32 MAR[2]; 22 u8 RX_FIFO_COUNT; 23 u8 reserved_1; 24 u8 TX_FIFO_COUNT; 25 u8 BQREQ; 26 u8 reserved_2[4]; 27 __le32 TSFT[2]; 28 __le32 TLPDA; 29 __le32 TNPDA; 30 __le32 THPDA; 31 __le16 BRSR; 32 u8 BSSID[6]; 33 u8 RESP_RATE; 34 u8 EIFS; 35 u8 reserved_3[1]; 36 u8 CMD; 37#define RTL818X_CMD_TX_ENABLE (1 << 2) 38#define RTL818X_CMD_RX_ENABLE (1 << 3) 39#define RTL818X_CMD_RESET (1 << 4) 40 u8 reserved_4[4]; 41 __le16 INT_MASK; 42 __le16 INT_STATUS; 43#define RTL818X_INT_RX_OK (1 << 0) 44#define RTL818X_INT_RX_ERR (1 << 1) 45#define RTL818X_INT_TXL_OK (1 << 2) 46#define RTL818X_INT_TXL_ERR (1 << 3) 47#define RTL818X_INT_RX_DU (1 << 4) 48#define RTL818X_INT_RX_FO (1 << 5) 49#define RTL818X_INT_TXN_OK (1 << 6) 50#define RTL818X_INT_TXN_ERR (1 << 7) 51#define RTL818X_INT_TXH_OK (1 << 8) 52#define RTL818X_INT_TXH_ERR (1 << 9) 53#define RTL818X_INT_TXB_OK (1 << 10) 54#define RTL818X_INT_TXB_ERR (1 << 11) 55#define RTL818X_INT_ATIM (1 << 12) 56#define RTL818X_INT_BEACON (1 << 13) 57#define RTL818X_INT_TIME_OUT (1 << 14) 58#define RTL818X_INT_TX_FO (1 << 15) 59 __le32 TX_CONF; 60#define RTL818X_TX_CONF_LOOPBACK_MAC (1 << 17) 61#define RTL818X_TX_CONF_NO_ICV (1 << 19) 62#define RTL818X_TX_CONF_DISCW (1 << 20) 63#define RTL818X_TX_CONF_R8180_ABCD (2 << 25) 64#define RTL818X_TX_CONF_R8180_F (3 << 25) 65#define RTL818X_TX_CONF_R8185_ABC (4 << 25) 66#define RTL818X_TX_CONF_R8185_D (5 << 25) 67#define RTL818X_TX_CONF_HWVER_MASK (7 << 25) 68#define RTL818X_TX_CONF_CW_MIN (1 << 31) 69 __le32 RX_CONF; 70#define RTL818X_RX_CONF_MONITOR (1 << 0) 71#define RTL818X_RX_CONF_NICMAC (1 << 1) 72#define RTL818X_RX_CONF_MULTICAST (1 << 2) 73#define RTL818X_RX_CONF_BROADCAST (1 << 3) 74#define RTL818X_RX_CONF_DATA (1 << 18) 75#define RTL818X_RX_CONF_CTRL (1 << 19) 76#define RTL818X_RX_CONF_MGMT (1 << 20) 77#define RTL818X_RX_CONF_BSSID (1 << 23) 78#define RTL818X_RX_CONF_RX_AUTORESETPHY (1 << 28) 79#define RTL818X_RX_CONF_ONLYERLPKT (1 << 31) 80 __le32 INT_TIMEOUT; 81 __le32 TBDA; 82 u8 EEPROM_CMD; 83#define RTL818X_EEPROM_CMD_READ (1 << 0) 84#define RTL818X_EEPROM_CMD_WRITE (1 << 1) 85#define RTL818X_EEPROM_CMD_CK (1 << 2) 86#define RTL818X_EEPROM_CMD_CS (1 << 3) 87#define RTL818X_EEPROM_CMD_NORMAL (0 << 6) 88#define RTL818X_EEPROM_CMD_LOAD (1 << 6) 89#define RTL818X_EEPROM_CMD_PROGRAM (2 << 6) 90#define RTL818X_EEPROM_CMD_CONFIG (3 << 6) 91 u8 CONFIG0; 92 u8 CONFIG1; 93 u8 CONFIG2; 94 __le32 ANAPARAM; 95 u8 MSR; 96#define RTL818X_MSR_NO_LINK (0 << 2) 97#define RTL818X_MSR_ADHOC (1 << 2) 98#define RTL818X_MSR_INFRA (2 << 2) 99 u8 CONFIG3; 100#define RTL818X_CONFIG3_ANAPARAM_WRITE (1 << 6) 101 u8 CONFIG4; 102#define RTL818X_CONFIG4_POWEROFF (1 << 6) 103#define RTL818X_CONFIG4_VCOOFF (1 << 7) 104 u8 TESTR; 105 u8 reserved_9[2]; 106 __le16 PGSELECT; 107 __le32 ANAPARAM2; 108 u8 reserved_10[12]; 109 __le16 BEACON_INTERVAL; 110 __le16 ATIM_WND; 111 __le16 BEACON_INTERVAL_TIME; 112 __le16 ATIMTR_INTERVAL; 113 u8 reserved_11[4]; 114 u8 PHY[4]; 115 __le16 RFPinsOutput; 116 __le16 RFPinsEnable; 117 __le16 RFPinsSelect; 118 __le16 RFPinsInput; 119 __le32 RF_PARA; 120 __le32 RF_TIMING; 121 u8 GP_ENABLE; 122 u8 GPIO; 123 u8 reserved_12[10]; 124 u8 TX_AGC_CTL; 125#define RTL818X_TX_AGC_CTL_PERPACKET_GAIN_SHIFT (1 << 0) 126#define RTL818X_TX_AGC_CTL_PERPACKET_ANTSEL_SHIFT (1 << 1) 127#define RTL818X_TX_AGC_CTL_FEEDBACK_ANT (1 << 2) 128 u8 TX_GAIN_CCK; 129 u8 TX_GAIN_OFDM; 130 u8 TX_ANTENNA; 131 u8 reserved_13[16]; 132 u8 WPA_CONF; 133 u8 reserved_14[3]; 134 u8 SIFS; 135 u8 DIFS; 136 u8 SLOT; 137 u8 reserved_15[5]; 138 u8 CW_CONF; 139#define RTL818X_CW_CONF_PERPACKET_CW_SHIFT (1 << 0) 140#define RTL818X_CW_CONF_PERPACKET_RETRY_SHIFT (1 << 1) 141 u8 CW_VAL; 142 u8 RATE_FALLBACK; 143 u8 reserved_16[25]; 144 u8 CONFIG5; 145 u8 TX_DMA_POLLING; 146 u8 reserved_17[2]; 147 __le16 CWR; 148 u8 RETRY_CTR; 149 u8 reserved_18[5]; 150 __le32 RDSAR; 151 u8 reserved_19[18]; 152 u16 TALLY_CNT; 153 u8 TALLY_SEL; 154} __attribute__((packed)); 155 156static const struct ieee80211_rate rtl818x_rates[] = { 157 { .rate = 10, 158 .val = 0, 159 .flags = IEEE80211_RATE_CCK }, 160 { .rate = 20, 161 .val = 1, 162 .flags = IEEE80211_RATE_CCK }, 163 { .rate = 55, 164 .val = 2, 165 .flags = IEEE80211_RATE_CCK }, 166 { .rate = 110, 167 .val = 3, 168 .flags = IEEE80211_RATE_CCK }, 169 { .rate = 60, 170 .val = 4, 171 .flags = IEEE80211_RATE_OFDM }, 172 { .rate = 90, 173 .val = 5, 174 .flags = IEEE80211_RATE_OFDM }, 175 { .rate = 120, 176 .val = 6, 177 .flags = IEEE80211_RATE_OFDM }, 178 { .rate = 180, 179 .val = 7, 180 .flags = IEEE80211_RATE_OFDM }, 181 { .rate = 240, 182 .val = 8, 183 .flags = IEEE80211_RATE_OFDM }, 184 { .rate = 360, 185 .val = 9, 186 .flags = IEEE80211_RATE_OFDM }, 187 { .rate = 480, 188 .val = 10, 189 .flags = IEEE80211_RATE_OFDM }, 190 { .rate = 540, 191 .val = 11, 192 .flags = IEEE80211_RATE_OFDM }, 193}; 194 195static const struct ieee80211_channel rtl818x_channels[] = { 196 { .chan = 1, 197 .freq = 2412}, 198 { .chan = 2, 199 .freq = 2417}, 200 { .chan = 3, 201 .freq = 2422}, 202 { .chan = 4, 203 .freq = 2427}, 204 { .chan = 5, 205 .freq = 2432}, 206 { .chan = 6, 207 .freq = 2437}, 208 { .chan = 7, 209 .freq = 2442}, 210 { .chan = 8, 211 .freq = 2447}, 212 { .chan = 9, 213 .freq = 2452}, 214 { .chan = 10, 215 .freq = 2457}, 216 { .chan = 11, 217 .freq = 2462}, 218 { .chan = 12, 219 .freq = 2467}, 220 { .chan = 13, 221 .freq = 2472}, 222 { .chan = 14, 223 .freq = 2484} 224}; 225 226#endif /* RTL818X_H */