📄 zd1205.h
字号:
#ifndef _ZD1205_H_
#define _ZD1205_H_
#include <linux/module.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/errno.h>
#include <linux/ioport.h>
#include <linux/pci.h>
#ifdef HOST_IF_USB
#include <linux/usb.h>
#endif
#include <linux/kernel.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <linux/delay.h>
#include <linux/timer.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/version.h>
#include <linux/string.h>
#include <linux/wait.h>
#include <linux/reboot.h>
#include <asm/io.h>
#include <asm/unaligned.h>
#include <asm/processor.h>
#include <linux/ethtool.h>
#include <linux/inetdevice.h>
#include <linux/bitops.h>
#include <linux/if.h>
#include <asm/uaccess.h>
#include <linux/proc_fs.h>
#include <linux/ip.h>
#include <linux/wireless.h>
#include <linux/if_arp.h>
#include <linux/unistd.h>
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
#include <linux/workqueue.h>
#endif
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
#include <asm/div64.h>
#endif
#include "zdcompat.h"
#include "zdequates.h"
#include "zdapi.h"
#include "zydas_common.h"
#ifdef HOST_IF_USB
#define fANT_DIVERSITY 0
#define fTX_PWR_CTRL 1
#define fZD1211_LOOPBACK 1
#define fDUMP_LOOPBACK_DATA (0 && fZD1211_LOOPBACK)
#define fLOAD_BOOTCODE 1
#define fPROG_FLASH (1 && fWRITE_WORD_REG)
#define fPROG_FLASH_BY_FW (1 && fPROG_FLASH)
#define fDRV_WRITE_RF_REG (1 && fWRITE_WORD_REG)
#define fMERGE_RX_FRAME (ENHANCE_RX && fDRV_WRITE_RF_REG)
#define fDRV_UPDATE_EEP (1 && fWRITE_WORD_REG)
//#define fQuickPhySet 0 //(fREAD_MUL_REG && fWRITE_WORD_REG)
#endif
enum zd1205_device_type {
ZD_1202 = 1,
ZD_1205,
};
#define ASOC_RSP 0x10
#define REASOC_RSP 0x30
#define PROBE_RSP 0x50
#define DISASOC 0xA0
#define AUTH 0xB0
#define DEAUTH 0xC0
#define DATA 0x08
#define PS_POLL 0xA4
#define MANAGEMENT 0x00
#define PROBE_REQ 0x40
#define BEACON 0x80
#define ACK 0xD4
#define CONTROL 0x04
#define NULL_FUNCTION 0x48
#define LB_DATA 0x88
#define VLAN_SIZE 4
#define CHKSUM_SIZE 2
#define false (0)
#define true (1)
/**************************************************************************
** Register Offset Definitions
***************************************************************************
*/
#define ZD1205_CR0 0x0000
#define ZD1205_CR1 0x0004
#define ZD1205_CR2 0x0008
#define ZD1205_CR3 0x000C
#define ZD1205_CR5 0x0010
#define ZD1205_CR6 0x0014
#define ZD1205_CR7 0x0018
#define ZD1205_CR8 0x001C
#define ZD1205_CR4 0x0020
#define ZD1205_CR9 0x0024
#define ZD1205_CR10 0x0028
#define ZD1205_CR11 0x002C
#define ZD1205_CR12 0x0030
#define ZD1205_CR13 0x0034
#define ZD1205_CR14 0x0038
#define ZD1205_CR15 0x003C
#define ZD1205_CR16 0x0040
#define ZD1205_CR17 0x0044
#define ZD1205_CR18 0x0048
#define ZD1205_CR19 0x004C
#define ZD1205_CR20 0x0050
#define ZD1205_CR21 0x0054
#define ZD1205_CR22 0x0058
#define ZD1205_CR23 0x005C
#define ZD1205_CR24 0x0060
#define ZD1205_CR25 0x0064
#define ZD1205_CR26 0x0068
#define ZD1205_CR27 0x006C
#define ZD1205_CR28 0x0070
#define ZD1205_CR29 0x0074
#define ZD1205_CR30 0x0078
#define ZD1205_CR31 0x007C
#define ZD1205_CR32 0x0080
#define ZD1205_CR33 0x0084
#define ZD1205_CR34 0x0088
#define ZD1205_CR35 0x008C
#define ZD1205_CR36 0x0090
#define ZD1205_CR37 0x0094
#define ZD1205_CR38 0x0098
#define ZD1205_CR39 0x009C
#define ZD1205_CR40 0x00A0
#define ZD1205_CR41 0x00A4
#define ZD1205_CR42 0x00A8
#define ZD1205_CR43 0x00AC
#define ZD1205_CR44 0x00B0
#define ZD1205_CR45 0x00B4
#define ZD1205_CR46 0x00B8
#define ZD1205_CR47 0x00BC
#define ZD1205_CR48 0x00C0
#define ZD1205_CR49 0x00C4
#define ZD1205_CR50 0x00C8
#define ZD1205_CR51 0x00CC
#define ZD1205_CR52 0x00D0
#define ZD1205_CR53 0x00D4
#define ZD1205_CR54 0x00D8
#define ZD1205_CR55 0x00DC
#define ZD1205_CR56 0x00E0
#define ZD1205_CR57 0x00E4
#define ZD1205_CR58 0x00E8
#define ZD1205_CR59 0x00EC
#define ZD1205_CR60 0x00F0
#define ZD1205_CR61 0x00F4
#define ZD1205_CR62 0x00F8
#define ZD1205_CR63 0x00FC
#define ZD1205_CR64 0x0100
#define ZD1205_CR65 0x0104
#define ZD1205_CR66 0x0108
#define ZD1205_CR67 0x010C
#define ZD1205_CR68 0x0110
#define ZD1205_CR69 0x0114
#define ZD1205_CR70 0x0118
#define ZD1205_CR71 0x011C
#define ZD1205_CR72 0x0120
#define ZD1205_CR73 0x0124
#define ZD1205_CR74 0x0128
#define ZD1205_CR75 0x012C
#define ZD1205_CR76 0x0130
#define ZD1205_CR77 0x0134
#define ZD1205_CR78 0x0138
#define ZD1205_CR79 0x013C
#define ZD1205_CR80 0x0140
#define ZD1205_CR81 0x0144
#define ZD1205_CR82 0x0148
#define ZD1205_CR83 0x014C
#define ZD1205_CR84 0x0150
#define ZD1205_CR85 0x0154
#define ZD1205_CR86 0x0158
#define ZD1205_CR87 0x015C
#define ZD1205_CR88 0x0160
#define ZD1205_CR89 0x0164
#define ZD1205_CR90 0x0168
#define ZD1205_CR91 0x016C
#define ZD1205_CR92 0x0170
#define ZD1205_CR93 0x0174
#define ZD1205_CR94 0x0178
#define ZD1205_CR95 0x017C
#define ZD1205_CR96 0x0180
#define ZD1205_CR97 0x0184
#define ZD1205_CR98 0x0188
#define ZD1205_CR99 0x018C
#define ZD1205_CR100 0x0190
#define ZD1205_CR101 0x0194
#define ZD1205_CR102 0x0198
#define ZD1205_CR103 0x019C
#define ZD1205_CR104 0x01A0
#define ZD1205_CR105 0x01A4
#define ZD1205_CR106 0x01A8
#define ZD1205_CR107 0x01AC
#define ZD1205_CR108 0x01B0
#define ZD1205_CR109 0x01B4
#define ZD1205_CR110 0x01B8
#define ZD1205_CR111 0x01BC
#define ZD1205_CR112 0x01C0
#define ZD1205_CR113 0x01C4
#define ZD1205_CR114 0x01C8
#define ZD1205_CR115 0x01CC
#define ZD1205_CR116 0x01D0
#define ZD1205_CR117 0x01D4
#define ZD1205_CR118 0x01D8
#define ZD1205_CR119 0x01EC
#define ZD1205_CR120 0x01E0
#define ZD1205_CR121 0x01E4
#define ZD1205_CR122 0x01E8
#define ZD1205_CR123 0x01EC
#define ZD1205_CR124 0x01F0
#define ZD1205_CR125 0x01F4
#define ZD1205_CR126 0x01F8
#define ZD1205_CR127 0x01FC
#define ZD1205_CR128 0x0200
#define ZD1205_CR129 0x0204
#define ZD1205_CR130 0x0208
#define ZD1205_CR131 0x020C
#define ZD1205_CR132 0x0210
#define ZD1205_CR133 0x0214
#define ZD1205_CR134 0x0218
#define ZD1205_CR135 0x021C
#define ZD1205_CR136 0x0220
#define ZD1205_CR137 0x0224
#define ZD1205_CR138 0x0228
#define ZD1205_CR139 0x022C
#define ZD1205_CR140 0x0230
#define ZD1205_CR141 0x0234
#define ZD1205_CR142 0x0238
#define ZD1205_CR143 0x023C
#define ZD1205_CR144 0x0240
#define ZD1205_CR145 0x0244
#define ZD1205_CR146 0x0248
#define ZD1205_CR147 0x024C
#define ZD1205_CR148 0x0250
#define ZD1205_CR149 0x0254
#define ZD1205_CR150 0x0258
#define ZD1205_CR151 0x025C
#define ZD1205_CR152 0x0260
#define ZD1205_CR153 0x0264
#define ZD1205_CR154 0x0268
#define ZD1205_CR155 0x026C
#define ZD1205_CR156 0x0270
#define ZD1205_CR157 0x0274
#define ZD1205_CR158 0x0278
#define ZD1205_CR159 0x027C
#define ZD1205_CR160 0x0280
#define ZD1205_CR161 0x0284
#define ZD1205_CR162 0x0288
#define ZD1205_CR163 0x028C
#define ZD1205_CR164 0x0290
#define ZD1205_CR165 0x0294
#define ZD1205_CR166 0x0298
#define ZD1205_CR167 0x029C
#define ZD1205_CR168 0x02A0
#define ZD1205_CR169 0x02A4
#define ZD1205_CR170 0x02A8
#define ZD1205_CR171 0x02AC
#define ZD1205_CR172 0x02B0
#define ZD1205_CR173 0x02B4
#define ZD1205_CR174 0x02B8
#define ZD1205_CR175 0x02BC
#define ZD1205_CR176 0x02C0
#define ZD1205_CR177 0x02C4
#define ZD1205_CR178 0x02C8
#define ZD1205_CR179 0x02CC
#define ZD1205_CR180 0x02D0
#define ZD1205_CR181 0x02D4
#define ZD1205_CR182 0x02D8
#define ZD1205_CR183 0x02DC
#define ZD1205_CR184 0x02E0
#define ZD1205_CR185 0x02E4
#define ZD1205_CR186 0x02E8
#define ZD1205_CR187 0x02EC
#define ZD1205_CR188 0x02F0
#define ZD1205_CR189 0x02F4
#define ZD1205_CR190 0x02F8
#define ZD1205_CR191 0x02FC
#define ZD1205_CR192 0x0300
#define ZD1205_CR193 0x0304
#define ZD1205_CR194 0x0308
#define ZD1205_CR195 0x030C
#define ZD1205_CR196 0x0310
#define ZD1205_CR197 0x0314
#define ZD1205_CR198 0x0318
#define ZD1205_CR199 0x031C
#define ZD1205_CR200 0x0320
#define ZD1205_CR201 0x0324
#define ZD1205_CR202 0x0328
#define ZD1205_CR203 0x032C
#define ZD1205_CR204 0x0330
#define ZD1205_CR205 0x0334
#define ZD1205_CR206 0x0338
#define ZD1205_CR207 0x033C
#define ZD1205_CR208 0x0340
#define ZD1205_CR209 0x0344
#define ZD1205_CR210 0x0348
#define ZD1205_CR211 0x034C
#define ZD1205_CR212 0x0350
#define ZD1205_CR213 0x0354
#define ZD1205_CR214 0x0358
#define ZD1205_CR215 0x035C
#define ZD1205_CR216 0x0360
#define ZD1205_CR217 0x0364
#define ZD1205_CR218 0x0368
#define ZD1205_CR219 0x036C
#define ZD1205_CR220 0x0370
#define ZD1205_CR221 0x0374
#define ZD1205_CR222 0x0378
#define ZD1205_CR223 0x037C
#define ZD1205_CR224 0x0380
#define ZD1205_CR225 0x0384
#define ZD1205_CR226 0x0388
#define ZD1205_CR227 0x038C
#define ZD1205_CR228 0x0390
#define ZD1205_CR229 0x0394
#define ZD1205_CR230 0x0398
#define ZD1205_CR231 0x039C
#define ZD1205_CR232 0x03A0
#define ZD1205_CR233 0x03A4
#define ZD1205_CR234 0x03A8
#define ZD1205_CR235 0x03AC
#define ZD1205_CR236 0x03B0
#define ZD1205_CR240 0x03C0
#define ZD1205_CR241 0x03C4
#define ZD1205_CR242 0x03C8
#define ZD1205_CR243 0x03CC
#define ZD1205_CR244 0x03D0
#define ZD1205_CR245 0x03D4
#define ZD1205_CR251 0x03EC
#define ZD1205_CR252 0x03F0
#define ZD1205_CR253 0x03F4
#define ZD1205_CR254 0x03F8
#define ZD1205_CR255 0x03FC
#define ZD1205_PHY_END 0x03fc
#define RF_IF_CLK 0x0400
#define RF_IF_DATA 0x0404
#define PE1_PE2 0x0408
#define PE2_DLY 0x040C
#define LE1 0x0410
#define LE2 0x0414
#define GPI_EN 0x0418
#define RADIO_PD 0x042C
#define RF2948_PD 0x042C
#ifndef HOST_IF_USB
#define LED1 0x0430
#define LED2 0x0434
#else
#define rLED_CTRL 0x0644
#define LED2 BIT_8 // Note: this is really LED1
#define LED1 BIT_9 // Note: this is really LED2
#endif
#define EnablePSManualAGC 0x043C // 1: enable
#define CONFIGPhilips 0x0440
#define SA2400_SER_AP 0x0444
#define I2C_WRITE 0x0444 // Same as SA2400_SER_AP (for compatible with ZD1201)
#define SA2400_SER_RP 0x0448
#define RADIO_PE 0x0458
#define RstBusMaster 0x045C
#define RFCFG 0x0464
#define HSTSCHG 0x046C
#define PHY_ON 0x0474
#define RX_DELAY 0x0478
#define RX_PE_DELAY 0x047C
#define GPIO_1 0x0490
#define GPIO_2 0x0494
#define EncryBufMux 0x04A8
#define PS_Ctrl 0x0500
#define ADDA_MBIAS_WarmTime 0x0508
#define InterruptCtrl 0x0510
#define TSF_LowPart 0x0514
#define TSF_HighPart 0x0518
#define ATIMWndPeriod 0x051C
#define BCNInterval 0x0520
#define Pre_TBTT 0x0524 //In unit of TU(1024us)
#define PCI_TxAddr_p1 0x0600
#define PCI_TxAddr_p2 0x0604
#define PCI_RxAddr_p1 0x0608
#define PCI_RxAddr_p2 0x060C
#define MACAddr_P1 0x0610
#define MACAddr_P2 0x0614
#define BSSID_P1 0x0618
#define BSSID_P2 0x061C
#define BCNPLCPCfg 0x0620
#define GroupHash_P1 0x0624
#define GroupHash_P2 0x0628
#define WEPTxIV 0x062C
#define BasicRateTbl 0x0630
#define MandatoryRateTbl 0x0634
#define RTS_CTS_Rate 0x0638
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -