Archived
14
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
linux-2.6/drivers/staging/winbond/wb35reg_s.h
Pekka Enberg 9ce922fde7 Staging: w35und: move source files to one directory
As we're trying to get rid of the "compatability layer" in the driver, move
everything under one directory. Keeping some of the files under
drivers/staging/winbond/linux is a major pain in the ass whenever you're
cleaning up the driver.

Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-01-06 13:51:47 -08:00

173 lines
6 KiB
C

#ifndef __WINBOND_WB35REG_S_H
#define __WINBOND_WB35REG_S_H
#include <linux/spinlock.h>
#include <linux/types.h>
#include <asm/atomic.h>
//=======================================================================================
/*
HAL setting function
========================================
|Uxx| |Dxx| |Mxx| |BB| |RF|
========================================
| |
Wb35Reg_Read Wb35Reg_Write
----------------------------------------
WbUsb_CallUSBDASync supplied By WbUsb module
*/
//=======================================================================================
#define GetBit( dwData, i) ( dwData & (0x00000001 << i))
#define SetBit( dwData, i) ( dwData | (0x00000001 << i))
#define ClearBit( dwData, i) ( dwData & ~(0x00000001 << i))
#define IGNORE_INCREMENT 0
#define AUTO_INCREMENT 0
#define NO_INCREMENT 1
#define REG_DIRECTION(_x,_y) ((_y)->DIRECT ==0 ? usb_rcvctrlpipe(_x,0) : usb_sndctrlpipe(_x,0))
#define REG_BUF_SIZE(_x) ((_x)->bRequest== 0x04 ? cpu_to_le16((_x)->wLength) : 4)
// 20060613.2 Add the follow definition
#define BB48_DEFAULT_AL2230_11B 0x0033447c
#define BB4C_DEFAULT_AL2230_11B 0x0A00FEFF
#define BB48_DEFAULT_AL2230_11G 0x00332C1B
#define BB4C_DEFAULT_AL2230_11G 0x0A00FEFF
#define BB48_DEFAULT_WB242_11B 0x00292315 //backoff 2dB
#define BB4C_DEFAULT_WB242_11B 0x0800FEFF //backoff 2dB
//#define BB48_DEFAULT_WB242_11B 0x00201B11 //backoff 4dB
//#define BB4C_DEFAULT_WB242_11B 0x0600FF00 //backoff 4dB
#define BB48_DEFAULT_WB242_11G 0x00453B24
#define BB4C_DEFAULT_WB242_11G 0x0E00FEFF
//====================================
// Default setting for Mxx
//====================================
#define DEFAULT_CWMIN 31 //(M2C) CWmin. Its value is in the range 0-31.
#define DEFAULT_CWMAX 1023 //(M2C) CWmax. Its value is in the range 0-1023.
#define DEFAULT_AID 1 //(M34) AID. Its value is in the range 1-2007.
#ifdef _USE_FALLBACK_RATE_
#define DEFAULT_RATE_RETRY_LIMIT 2 //(M38) as named
#else
#define DEFAULT_RATE_RETRY_LIMIT 7 //(M38) as named
#endif
#define DEFAULT_LONG_RETRY_LIMIT 7 //(M38) LongRetryLimit. Its value is in the range 0-15.
#define DEFAULT_SHORT_RETRY_LIMIT 7 //(M38) ShortRetryLimit. Its value is in the range 0-15.
#define DEFAULT_PIFST 25 //(M3C) PIFS Time. Its value is in the range 0-65535.
#define DEFAULT_EIFST 354 //(M3C) EIFS Time. Its value is in the range 0-1048575.
#define DEFAULT_DIFST 45 //(M3C) DIFS Time. Its value is in the range 0-65535.
#define DEFAULT_SIFST 5 //(M3C) SIFS Time. Its value is in the range 0-65535.
#define DEFAULT_OSIFST 10 //(M3C) Original SIFS Time. Its value is in the range 0-15.
#define DEFAULT_ATIMWD 0 //(M40) ATIM Window. Its value is in the range 0-65535.
#define DEFAULT_SLOT_TIME 20 //(M40) ($) SlotTime. Its value is in the range 0-255.
#define DEFAULT_MAX_TX_MSDU_LIFE_TIME 512 //(M44) MaxTxMSDULifeTime. Its value is in the range 0-4294967295.
#define DEFAULT_BEACON_INTERVAL 500 //(M48) Beacon Interval. Its value is in the range 0-65535.
#define DEFAULT_PROBE_DELAY_TIME 200 //(M48) Probe Delay Time. Its value is in the range 0-65535.
#define DEFAULT_PROTOCOL_VERSION 0 //(M4C)
#define DEFAULT_MAC_POWER_STATE 2 //(M4C) 2: MAC at power active
#define DEFAULT_DTIM_ALERT_TIME 0
struct wb35_reg_queue {
struct urb *urb;
void *pUsbReq;
void *Next;
union {
u32 VALUE;
u32 *pBuffer;
};
u8 RESERVED[4]; // space reserved for communication
u16 INDEX; // For storing the register index
u8 RESERVED_VALID; // Indicate whether the RESERVED space is valid at this command.
u8 DIRECT; // 0:In 1:Out
};
//====================================
// Internal variable for module
//====================================
#define MAX_SQ3_FILTER_SIZE 5
struct wb35_reg {
//============================
// Register Bank backup
//============================
u32 U1B0; //bit16 record the h/w radio on/off status
u32 U1BC_LEDConfigure;
u32 D00_DmaControl;
u32 M00_MacControl;
union {
struct {
u32 M04_MulticastAddress1;
u32 M08_MulticastAddress2;
};
u8 Multicast[8]; // contents of card multicast registers
};
u32 M24_MacControl;
u32 M28_MacControl;
u32 M2C_MacControl;
u32 M38_MacControl;
u32 M3C_MacControl; // 20060214 backup only
u32 M40_MacControl;
u32 M44_MacControl; // 20060214 backup only
u32 M48_MacControl; // 20060214 backup only
u32 M4C_MacStatus;
u32 M60_MacControl; // 20060214 backup only
u32 M68_MacControl; // 20060214 backup only
u32 M70_MacControl; // 20060214 backup only
u32 M74_MacControl; // 20060214 backup only
u32 M78_ERPInformation;//930206.2.b
u32 M7C_MacControl; // 20060214 backup only
u32 M80_MacControl; // 20060214 backup only
u32 M84_MacControl; // 20060214 backup only
u32 M88_MacControl; // 20060214 backup only
u32 M98_MacControl; // 20060214 backup only
//[20040722 WK]
//Baseband register
u32 BB0C; // Used for LNA calculation
u32 BB2C; //
u32 BB30; //11b acquisition control register
u32 BB3C;
u32 BB48; // 20051221.1.a 20060613.1 Fix OBW issue of 11b/11g rate
u32 BB4C; // 20060613.1 Fix OBW issue of 11b/11g rate
u32 BB50; //mode control register
u32 BB54;
u32 BB58; //IQ_ALPHA
u32 BB5C; // For test
u32 BB60; // for WTO read value
//-------------------
// VM
//-------------------
spinlock_t EP0VM_spin_lock; // 4B
u32 EP0VM_status;//$$
struct wb35_reg_queue *reg_first;
struct wb35_reg_queue *reg_last;
atomic_t RegFireCount;
// Hardware status
u8 EP0vm_state;
u8 mac_power_save;
u8 EEPROMPhyType; // 0 ~ 15 for Maxim (0 ĄV MAX2825, 1 ĄV MAX2827, 2 ĄV MAX2828, 3 ĄV MAX2829),
// 16 ~ 31 for Airoha (16 ĄV AL2230, 11 - AL7230)
// 32 ~ Reserved
// 33 ~ 47 For WB242 ( 33 - WB242, 34 - WB242 with new Txvga 0.5 db step)
// 48 ~ 255 ARE RESERVED.
u8 EEPROMRegion; //Region setting in EEPROM
u32 SyncIoPause; // If user use the Sync Io to access Hw, then pause the async access
u8 LNAValue[4]; //Table for speed up running
u32 SQ3_filter[MAX_SQ3_FILTER_SIZE];
u32 SQ3_index;
};
#endif