7abb66eba4
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
574 lines
19 KiB
C
574 lines
19 KiB
C
/*
|
|
This is part of rtl8180 OpenSource driver.
|
|
Copyright (C) Andrea Merello 2004-2005 <andreamrl@tiscali.it>
|
|
Released under the terms of GPL (General Public Licence)
|
|
|
|
Parts of this driver are based on the GPL part of the
|
|
official Realtek driver.
|
|
Parts of this driver are based on the rtl8180 driver skeleton
|
|
from Patric Schenke & Andres Salomon.
|
|
Parts of this driver are based on the Intel Pro Wireless
|
|
2100 GPL driver.
|
|
|
|
We want to tanks the Authors of those projects
|
|
and the Ndiswrapper project Authors.
|
|
*/
|
|
|
|
/* Mariusz Matuszek added full registers definition with Realtek's name */
|
|
|
|
/* this file contains register definitions for the rtl8180 MAC controller */
|
|
#ifndef R8180_HW
|
|
#define R8180_HW
|
|
|
|
|
|
#define BIT0 0x00000001
|
|
#define BIT1 0x00000002
|
|
#define BIT2 0x00000004
|
|
#define BIT3 0x00000008
|
|
#define BIT4 0x00000010
|
|
#define BIT5 0x00000020
|
|
#define BIT6 0x00000040
|
|
#define BIT7 0x00000080
|
|
#define BIT9 0x00000200
|
|
#define BIT11 0x00000800
|
|
#define BIT13 0x00002000
|
|
#define BIT15 0x00008000
|
|
#define BIT20 0x00100000
|
|
#define BIT21 0x00200000
|
|
#define BIT22 0x00400000
|
|
#define BIT23 0x00800000
|
|
#define BIT24 0x01000000
|
|
#define BIT25 0x02000000
|
|
#define BIT26 0x04000000
|
|
#define BIT27 0x08000000
|
|
#define BIT28 0x10000000
|
|
#define BIT29 0x20000000
|
|
#define BIT30 0x40000000
|
|
#define BIT31 0x80000000
|
|
|
|
#define MAX_SLEEP_TIME (10000)
|
|
#define MIN_SLEEP_TIME (50)
|
|
|
|
#define BB_HOST_BANG_EN (1<<2)
|
|
#define BB_HOST_BANG_CLK (1<<1)
|
|
|
|
#define MAC0 0
|
|
#define MAC4 4
|
|
|
|
#define CMD 0x37
|
|
#define CMD_RST_SHIFT 4
|
|
#define CMD_RX_ENABLE_SHIFT 3
|
|
#define CMD_TX_ENABLE_SHIFT 2
|
|
|
|
#define EPROM_CMD 0x50
|
|
#define EPROM_CMD_RESERVED_MASK ((1<<5)|(1<<4))
|
|
#define EPROM_CMD_OPERATING_MODE_SHIFT 6
|
|
#define EPROM_CMD_OPERATING_MODE_MASK ((1<<7)|(1<<6))
|
|
#define EPROM_CMD_CONFIG 0x3
|
|
#define EPROM_CMD_NORMAL 0
|
|
#define EPROM_CMD_LOAD 1
|
|
#define EPROM_CMD_PROGRAM 2
|
|
#define EPROM_CS_SHIFT 3
|
|
#define EPROM_CK_SHIFT 2
|
|
#define EPROM_W_SHIFT 1
|
|
#define EPROM_R_SHIFT 0
|
|
#define CONFIG2_DMA_POLLING_MODE_SHIFT 3
|
|
|
|
#define INTA_TXOVERFLOW (1<<15)
|
|
#define INTA_TIMEOUT (1<<14)
|
|
#define INTA_HIPRIORITYDESCERR (1<<9)
|
|
#define INTA_HIPRIORITYDESCOK (1<<8)
|
|
#define INTA_NORMPRIORITYDESCERR (1<<7)
|
|
#define INTA_NORMPRIORITYDESCOK (1<<6)
|
|
#define INTA_RXOVERFLOW (1<<5)
|
|
#define INTA_RXDESCERR (1<<4)
|
|
#define INTA_LOWPRIORITYDESCERR (1<<3)
|
|
#define INTA_LOWPRIORITYDESCOK (1<<2)
|
|
#define INTA_RXOK (1)
|
|
#define INTA_MASK 0x3c
|
|
|
|
#define RXRING_ADDR 0xe4 // page 0
|
|
#define PGSELECT 0x5e
|
|
#define PGSELECT_PG_SHIFT 0
|
|
#define RX_CONF 0x44
|
|
#define MAC_FILTER_MASK ((1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<5) | \
|
|
(1<<12) | (1<<18) | (1<<19) | (1<<20) | (1<<21) | (1<<22) | (1<<23))
|
|
#define RX_CHECK_BSSID_SHIFT 23
|
|
#define ACCEPT_PWR_FRAME_SHIFT 22
|
|
#define ACCEPT_MNG_FRAME_SHIFT 20
|
|
#define ACCEPT_CTL_FRAME_SHIFT 19
|
|
#define ACCEPT_DATA_FRAME_SHIFT 18
|
|
#define ACCEPT_ICVERR_FRAME_SHIFT 12
|
|
#define ACCEPT_CRCERR_FRAME_SHIFT 5
|
|
#define ACCEPT_BCAST_FRAME_SHIFT 3
|
|
#define ACCEPT_MCAST_FRAME_SHIFT 2
|
|
#define ACCEPT_ALLMAC_FRAME_SHIFT 0
|
|
#define ACCEPT_NICMAC_FRAME_SHIFT 1
|
|
|
|
#define RX_FIFO_THRESHOLD_MASK ((1<<13) | (1<<14) | (1<<15))
|
|
#define RX_FIFO_THRESHOLD_SHIFT 13
|
|
#define RX_FIFO_THRESHOLD_NONE 7
|
|
#define RX_AUTORESETPHY_SHIFT 28
|
|
|
|
#define TX_CONF 0x40
|
|
#define TX_CONF_HEADER_AUTOICREMENT_SHIFT 30
|
|
#define TX_LOOPBACK_SHIFT 17
|
|
#define TX_LOOPBACK_NONE 0
|
|
#define TX_LOOPBACK_CONTINUE 3
|
|
#define TX_LOOPBACK_MASK ((1<<17)|(1<<18))
|
|
#define TX_DPRETRY_SHIFT 0
|
|
#define R8180_MAX_RETRY 255
|
|
#define TX_RTSRETRY_SHIFT 8
|
|
#define TX_NOICV_SHIFT 19
|
|
#define TX_NOCRC_SHIFT 16
|
|
#define TX_DMA_POLLING 0xd9
|
|
#define TX_DMA_POLLING_BEACON_SHIFT 7
|
|
#define TX_DMA_POLLING_HIPRIORITY_SHIFT 6
|
|
#define TX_DMA_POLLING_NORMPRIORITY_SHIFT 5
|
|
#define TX_DMA_POLLING_LOWPRIORITY_SHIFT 4
|
|
#define TX_MANAGEPRIORITY_RING_ADDR 0x0C
|
|
#define TX_BKPRIORITY_RING_ADDR 0x10
|
|
#define TX_BEPRIORITY_RING_ADDR 0x14
|
|
#define TX_VIPRIORITY_RING_ADDR 0x20
|
|
#define TX_VOPRIORITY_RING_ADDR 0x24
|
|
#define TX_HIGHPRIORITY_RING_ADDR 0x28
|
|
#define MAX_RX_DMA_MASK ((1<<8) | (1<<9) | (1<<10))
|
|
#define MAX_RX_DMA_2048 7
|
|
#define MAX_RX_DMA_1024 6
|
|
#define MAX_RX_DMA_SHIFT 10
|
|
#define INT_TIMEOUT 0x48
|
|
#define CONFIG3_CLKRUN_SHIFT 2
|
|
#define CONFIG3_ANAPARAM_W_SHIFT 6
|
|
#define ANAPARAM 0x54
|
|
#define BEACON_INTERVAL 0x70
|
|
#define BEACON_INTERVAL_MASK ((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)| \
|
|
(1<<6)|(1<<7)|(1<<8)|(1<<9))
|
|
#define ATIM_MASK ((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)| \
|
|
(1<<8)|(1<<9))
|
|
#define ATIM 0x72
|
|
#define EPROM_CS_SHIFT 3
|
|
#define EPROM_CK_SHIFT 2
|
|
#define PHY_ADR 0x7c
|
|
#define SECURITY 0x5f //1209 this is sth wrong
|
|
#define SECURITY_WEP_TX_ENABLE_SHIFT 1
|
|
#define SECURITY_WEP_RX_ENABLE_SHIFT 0
|
|
#define SECURITY_ENCRYP_104 1
|
|
#define SECURITY_ENCRYP_SHIFT 4
|
|
#define SECURITY_ENCRYP_MASK ((1<<4)|(1<<5))
|
|
#define KEY0 0x90 //1209 this is sth wrong
|
|
#define CONFIG2_ANTENNA_SHIFT 6
|
|
#define TX_BEACON_RING_ADDR 0x4c
|
|
#define CONFIG0_WEP40_SHIFT 7
|
|
#define CONFIG0_WEP104_SHIFT 6
|
|
#define AGCRESET_SHIFT 5
|
|
|
|
|
|
|
|
/*
|
|
* Operational registers offsets in PCI (I/O) space.
|
|
* RealTek names are used.
|
|
*/
|
|
|
|
#define TSFTR 0x0018
|
|
|
|
#define TLPDA 0x0020
|
|
|
|
#define BSSID 0x002E
|
|
|
|
#define CR 0x0037
|
|
|
|
#define RF_SW_CONFIG 0x8 // store data which is transmitted to RF for driver
|
|
#define RF_SW_CFG_SI BIT1
|
|
#define EIFS 0x2D // Extended InterFrame Space Timer, in unit of 4 us.
|
|
|
|
#define BRSR 0x34 // Basic rate set
|
|
|
|
#define IMR 0x006C
|
|
#define ISR 0x003C
|
|
|
|
#define TCR 0x0040
|
|
|
|
#define RCR 0x0044
|
|
|
|
#define TimerInt 0x0048
|
|
|
|
#define CR9346 0x0050
|
|
|
|
#define CONFIG0 0x0051
|
|
#define CONFIG2 0x0053
|
|
|
|
#define MSR 0x0058
|
|
|
|
#define CONFIG3 0x0059
|
|
#define CONFIG4 0x005A
|
|
// SD3 szuyitasi: Mac0x57= CC -> B0 Mac0x60= D1 -> C6
|
|
// Mac0x60 = 0x000004C6 power save parameters
|
|
#define ANAPARM_ASIC_ON 0xB0054D00
|
|
#define ANAPARM2_ASIC_ON 0x000004C6
|
|
|
|
#define ANAPARM_ON ANAPARM_ASIC_ON
|
|
#define ANAPARM2_ON ANAPARM2_ASIC_ON
|
|
|
|
#define TESTR 0x005B
|
|
|
|
#define PSR 0x005E
|
|
|
|
#define BcnItv 0x0070
|
|
|
|
#define AtimWnd 0x0072
|
|
|
|
#define BintrItv 0x0074
|
|
|
|
#define PhyAddr 0x007C
|
|
#define PhyDataR 0x007E
|
|
|
|
/* following are for rtl8185 */
|
|
#define RFPinsOutput 0x80
|
|
#define RFPinsEnable 0x82
|
|
#define RF_TIMING 0x8c
|
|
#define RFPinsSelect 0x84
|
|
#define ANAPARAM2 0x60
|
|
#define RF_PARA 0x88
|
|
#define RFPinsInput 0x86
|
|
#define GP_ENABLE 0x90
|
|
#define GPIO 0x91
|
|
#define SW_CONTROL_GPIO 0x400
|
|
#define TX_ANTENNA 0x9f
|
|
#define TX_GAIN_OFDM 0x9e
|
|
#define TX_GAIN_CCK 0x9d
|
|
#define WPA_CONFIG 0xb0
|
|
#define TX_AGC_CTL 0x9c
|
|
#define TX_AGC_CTL_PERPACKET_GAIN_SHIFT 0
|
|
#define TX_AGC_CTL_PERPACKET_ANTSEL_SHIFT 1
|
|
#define TX_AGC_CTL_FEEDBACK_ANT 2
|
|
#define RESP_RATE 0x34
|
|
#define SIFS 0xb4
|
|
#define DIFS 0xb5
|
|
|
|
#define SLOT 0xb6
|
|
#define CW_CONF 0xbc
|
|
#define CW_CONF_PERPACKET_RETRY_SHIFT 1
|
|
#define CW_CONF_PERPACKET_CW_SHIFT 0
|
|
#define CW_VAL 0xbd
|
|
#define MAX_RESP_RATE_SHIFT 4
|
|
#define MIN_RESP_RATE_SHIFT 0
|
|
#define RATE_FALLBACK 0xbe
|
|
|
|
#define CONFIG5 0x00D8
|
|
|
|
#define PHYPR 0xDA //0xDA - 0x0B PHY Parameter Register.
|
|
|
|
#define FEMR 0x1D4 // Function Event Mask register
|
|
|
|
#define FFER 0x00FC
|
|
#define FFER_END 0x00FF
|
|
|
|
|
|
|
|
/*
|
|
* Bitmasks for specific register functions.
|
|
* Names are derived from the register name and function name.
|
|
*
|
|
* <REGISTER>_<FUNCTION>[<bit>]
|
|
*
|
|
* this leads to some awkward names...
|
|
*/
|
|
|
|
#define BRSR_BPLCP ((1<< 8))
|
|
#define BRSR_MBR ((1<< 1)|(1<< 0))
|
|
#define BRSR_MBR_8185 ((1<< 11)|(1<< 10)|(1<< 9)|(1<< 8)|(1<< 7)|(1<< 6)|(1<< 5)|(1<< 4)|(1<< 3)|(1<< 2)|(1<< 1)|(1<< 0))
|
|
#define BRSR_MBR0 ((1<< 0))
|
|
#define BRSR_MBR1 ((1<< 1))
|
|
|
|
#define CR_RST ((1<< 4))
|
|
#define CR_RE ((1<< 3))
|
|
#define CR_TE ((1<< 2))
|
|
#define CR_MulRW ((1<< 0))
|
|
|
|
#define IMR_Dot11hInt ((1<< 25)) // 802.11h Measurement Interrupt
|
|
#define IMR_BcnDmaInt ((1<< 24)) // Beacon DMA Interrupt // What differenct between BcnDmaInt and BcnInt???
|
|
#define IMR_WakeInt ((1<< 23)) // Wake Up Interrupt
|
|
#define IMR_TXFOVW ((1<< 22)) // Tx FIFO Overflow Interrupt
|
|
#define IMR_TimeOut1 ((1<< 21)) // Time Out Interrupt 1
|
|
#define IMR_BcnInt ((1<< 20)) // Beacon Time out Interrupt
|
|
#define IMR_ATIMInt ((1<< 19)) // ATIM Time Out Interrupt
|
|
#define IMR_TBDER ((1<< 18)) // Tx Beacon Descriptor Error Interrupt
|
|
#define IMR_TBDOK ((1<< 17)) // Tx Beacon Descriptor OK Interrupt
|
|
#define IMR_THPDER ((1<< 16)) // Tx High Priority Descriptor Error Interrupt
|
|
#define IMR_THPDOK ((1<< 15)) // Tx High Priority Descriptor OK Interrupt
|
|
#define IMR_TVODER ((1<< 14)) // Tx AC_VO Descriptor Error Interrupt
|
|
#define IMR_TVODOK ((1<< 13)) // Tx AC_VO Descriptor OK Interrupt
|
|
#define IMR_FOVW ((1<< 12)) // Rx FIFO Overflow Interrupt
|
|
#define IMR_RDU ((1<< 11)) // Rx Descriptor Unavailable Interrupt
|
|
#define IMR_TVIDER ((1<< 10)) // Tx AC_VI Descriptor Error Interrupt
|
|
#define IMR_TVIDOK ((1<< 9)) // Tx AC_VI Descriptor OK Interrupt
|
|
#define IMR_RER ((1<< 8)) // Rx Error Interrupt
|
|
#define IMR_ROK ((1<< 7)) // Receive OK Interrupt
|
|
#define IMR_TBEDER ((1<< 6)) // Tx AC_BE Descriptor Error Interrupt
|
|
#define IMR_TBEDOK ((1<< 5)) // Tx AC_BE Descriptor OK Interrupt
|
|
#define IMR_TBKDER ((1<< 4)) // Tx AC_BK Descriptor Error Interrupt
|
|
#define IMR_TBKDOK ((1<< 3)) // Tx AC_BK Descriptor OK Interrupt
|
|
#define IMR_RQoSOK ((1<< 2)) // Rx QoS OK Interrupt
|
|
#define IMR_TimeOut2 ((1<< 1)) // Time Out Interrupt 2
|
|
#define IMR_TimeOut3 ((1<< 0)) // Time Out Interrupt 3
|
|
#define IMR_TMGDOK ((1<<30))
|
|
#define ISR_Dot11hInt ((1<< 25)) // 802.11h Measurement Interrupt
|
|
#define ISR_BcnDmaInt ((1<< 24)) // Beacon DMA Interrupt // What differenct between BcnDmaInt and BcnInt???
|
|
#define ISR_WakeInt ((1<< 23)) // Wake Up Interrupt
|
|
#define ISR_TXFOVW ((1<< 22)) // Tx FIFO Overflow Interrupt
|
|
#define ISR_TimeOut1 ((1<< 21)) // Time Out Interrupt 1
|
|
#define ISR_BcnInt ((1<< 20)) // Beacon Time out Interrupt
|
|
#define ISR_ATIMInt ((1<< 19)) // ATIM Time Out Interrupt
|
|
#define ISR_TBDER ((1<< 18)) // Tx Beacon Descriptor Error Interrupt
|
|
#define ISR_TBDOK ((1<< 17)) // Tx Beacon Descriptor OK Interrupt
|
|
#define ISR_THPDER ((1<< 16)) // Tx High Priority Descriptor Error Interrupt
|
|
#define ISR_THPDOK ((1<< 15)) // Tx High Priority Descriptor OK Interrupt
|
|
#define ISR_TVODER ((1<< 14)) // Tx AC_VO Descriptor Error Interrupt
|
|
#define ISR_TVODOK ((1<< 13)) // Tx AC_VO Descriptor OK Interrupt
|
|
#define ISR_FOVW ((1<< 12)) // Rx FIFO Overflow Interrupt
|
|
#define ISR_RDU ((1<< 11)) // Rx Descriptor Unavailable Interrupt
|
|
#define ISR_TVIDER ((1<< 10)) // Tx AC_VI Descriptor Error Interrupt
|
|
#define ISR_TVIDOK ((1<< 9)) // Tx AC_VI Descriptor OK Interrupt
|
|
#define ISR_RER ((1<< 8)) // Rx Error Interrupt
|
|
#define ISR_ROK ((1<< 7)) // Receive OK Interrupt
|
|
#define ISR_TBEDER ((1<< 6)) // Tx AC_BE Descriptor Error Interrupt
|
|
#define ISR_TBEDOK ((1<< 5)) // Tx AC_BE Descriptor OK Interrupt
|
|
#define ISR_TBKDER ((1<< 4)) // Tx AC_BK Descriptor Error Interrupt
|
|
#define ISR_TBKDOK ((1<< 3)) // Tx AC_BK Descriptor OK Interrupt
|
|
#define ISR_RQoSOK ((1<< 2)) // Rx QoS OK Interrupt
|
|
#define ISR_TimeOut2 ((1<< 1)) // Time Out Interrupt 2
|
|
#define ISR_TimeOut3 ((1<< 0)) // Time Out Interrupt 3
|
|
|
|
//these definition is used for Tx/Rx test temporarily
|
|
#define ISR_TLPDER ISR_TVIDER
|
|
#define ISR_TLPDOK ISR_TVIDOK
|
|
#define ISR_TNPDER ISR_TVODER
|
|
#define ISR_TNPDOK ISR_TVODOK
|
|
#define ISR_TimeOut ISR_TimeOut1
|
|
#define ISR_RXFOVW ISR_FOVW
|
|
|
|
|
|
#define HW_VERID_R8180_F 3
|
|
#define HW_VERID_R8180_ABCD 2
|
|
#define HW_VERID_R8185_ABC 4
|
|
#define HW_VERID_R8185_D 5
|
|
#define HW_VERID_R8185B_B 6
|
|
|
|
#define TCR_CWMIN ((1<<31))
|
|
#define TCR_SWSEQ ((1<<30))
|
|
#define TCR_HWVERID_MASK ((1<<27)|(1<<26)|(1<<25))
|
|
#define TCR_HWVERID_SHIFT 25
|
|
#define TCR_SAT ((1<<24))
|
|
#define TCR_PLCP_LEN TCR_SAT // rtl8180
|
|
#define TCR_MXDMA_MASK ((1<<23)|(1<<22)|(1<<21))
|
|
#define TCR_MXDMA_1024 6
|
|
#define TCR_MXDMA_2048 7
|
|
#define TCR_MXDMA_SHIFT 21
|
|
#define TCR_DISCW ((1<<20))
|
|
#define TCR_ICV ((1<<19))
|
|
#define TCR_LBK ((1<<18)|(1<<17))
|
|
#define TCR_LBK1 ((1<<18))
|
|
#define TCR_LBK0 ((1<<17))
|
|
#define TCR_CRC ((1<<16))
|
|
#define TCR_DPRETRY_MASK ((1<<15)|(1<<14)|(1<<13)|(1<<12)|(1<<11)|(1<<10)|(1<<9)|(1<<8))
|
|
#define TCR_RTSRETRY_MASK ((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7))
|
|
#define TCR_PROBE_NOTIMESTAMP_SHIFT 29 //rtl8185
|
|
|
|
#define RCR_ONLYERLPKT ((1<<31))
|
|
#define RCR_CS_SHIFT 29
|
|
#define RCR_CS_MASK ((1<<30) | (1<<29))
|
|
#define RCR_ENMARP ((1<<28))
|
|
#define RCR_CBSSID ((1<<23))
|
|
#define RCR_APWRMGT ((1<<22))
|
|
#define RCR_ADD3 ((1<<21))
|
|
#define RCR_AMF ((1<<20))
|
|
#define RCR_ACF ((1<<19))
|
|
#define RCR_ADF ((1<<18))
|
|
#define RCR_RXFTH ((1<<15)|(1<<14)|(1<<13))
|
|
#define RCR_RXFTH2 ((1<<15))
|
|
#define RCR_RXFTH1 ((1<<14))
|
|
#define RCR_RXFTH0 ((1<<13))
|
|
#define RCR_AICV ((1<<12))
|
|
#define RCR_MXDMA ((1<<10)|(1<< 9)|(1<< 8))
|
|
#define RCR_MXDMA2 ((1<<10))
|
|
#define RCR_MXDMA1 ((1<< 9))
|
|
#define RCR_MXDMA0 ((1<< 8))
|
|
#define RCR_9356SEL ((1<< 6))
|
|
#define RCR_ACRC32 ((1<< 5))
|
|
#define RCR_AB ((1<< 3))
|
|
#define RCR_AM ((1<< 2))
|
|
#define RCR_APM ((1<< 1))
|
|
#define RCR_AAP ((1<< 0))
|
|
|
|
#define CR9346_EEM ((1<<7)|(1<<6))
|
|
#define CR9346_EEM1 ((1<<7))
|
|
#define CR9346_EEM0 ((1<<6))
|
|
#define CR9346_EECS ((1<<3))
|
|
#define CR9346_EESK ((1<<2))
|
|
#define CR9346_EED1 ((1<<1))
|
|
#define CR9346_EED0 ((1<<0))
|
|
|
|
#define CONFIG3_PARM_En ((1<<6))
|
|
#define CONFIG3_FuncRegEn ((1<<1))
|
|
|
|
#define CONFIG4_PWRMGT ((1<<5))
|
|
|
|
#define MSR_LINK_MASK ((1<<2)|(1<<3))
|
|
#define MSR_LINK_MANAGED 2
|
|
#define MSR_LINK_NONE 0
|
|
#define MSR_LINK_SHIFT 2
|
|
#define MSR_LINK_ADHOC 1
|
|
#define MSR_LINK_MASTER 3
|
|
|
|
#define BcnItv_BcnItv (0x01FF)
|
|
|
|
#define AtimWnd_AtimWnd (0x01FF)
|
|
|
|
#define BintrItv_BintrItv (0x01FF)
|
|
|
|
#define FEMR_INTR ((1<<15))
|
|
#define FEMR_WKUP ((1<<14))
|
|
#define FEMR_GWAKE ((1<< 4))
|
|
|
|
#define FFER_INTR ((1<<15))
|
|
#define FFER_GWAKE ((1<< 4))
|
|
|
|
// Three wire mode.
|
|
#define SW_THREE_WIRE 0
|
|
#define HW_THREE_WIRE 2
|
|
//RTL8187S by amy
|
|
#define HW_THREE_WIRE_PI 5
|
|
#define HW_THREE_WIRE_SI 6
|
|
//by amy
|
|
#define TCR_LRL_OFFSET 0
|
|
#define TCR_SRL_OFFSET 8
|
|
#define TCR_MXDMA_OFFSET 21
|
|
#define TCR_DISReqQsize_OFFSET 28
|
|
#define TCR_DurProcMode_OFFSET 30
|
|
|
|
#define RCR_MXDMA_OFFSET 8
|
|
#define RCR_FIFO_OFFSET 13
|
|
|
|
#define AckTimeOutReg 0x79 // ACK timeout register, in unit of 4 us.
|
|
|
|
#define RFTiming 0x8C
|
|
|
|
#define TPPollStop 0x93
|
|
|
|
#define TXAGC_CTL 0x9C // <RJ_TODO_8185B> TX_AGC_CONTROL (0x9C seems be removed at 8185B, see p37).
|
|
#define CCK_TXAGC 0x9D
|
|
#define OFDM_TXAGC 0x9E
|
|
#define ANTSEL 0x9F
|
|
|
|
#define ACM_CONTROL 0x00BF // ACM Control Registe
|
|
|
|
#define IntMig 0xE2 // Interrupt Migration (0xE2 ~ 0xE3)
|
|
|
|
#define TID_AC_MAP 0xE8 // TID to AC Mapping Register
|
|
|
|
#define ANAPARAM3 0xEE // <RJ_TODO_8185B> How to use it?
|
|
|
|
#define AC_VO_PARAM 0xF0 // AC_VO Parameters Record
|
|
#define AC_VI_PARAM 0xF4 // AC_VI Parameters Record
|
|
#define AC_BE_PARAM 0xF8 // AC_BE Parameters Record
|
|
#define AC_BK_PARAM 0xFC // AC_BK Parameters Record
|
|
|
|
#define GPIOCtrl 0x16B // GPIO Control Register.
|
|
#define ARFR 0x1E0 // Auto Rate Fallback Register (0x1e0 ~ 0x1e2)
|
|
|
|
#define RFSW_CTRL 0x272 // 0x272-0x273.
|
|
#define SW_3W_DB0 0x274 // Software 3-wire data buffer bit 31~0.
|
|
#define SW_3W_DB1 0x278 // Software 3-wire data buffer bit 63~32.
|
|
#define SW_3W_CMD0 0x27C // Software 3-wire Control/Status Register.
|
|
#define SW_3W_CMD1 0x27D // Software 3-wire Control/Status Register.
|
|
|
|
#define PI_DATA_READ 0X360 // 0x360 - 0x361 Parallel Interface Data Register.
|
|
#define SI_DATA_READ 0x362 // 0x362 - 0x363 Serial Interface Data Register.
|
|
|
|
//----------------------------------------------------------------------------
|
|
// 8185B TPPollStop bits (offset 0x93, 1 byte)
|
|
//----------------------------------------------------------------------------
|
|
#define TPPOLLSTOP_BQ (0x01 << 7)
|
|
#define TPPOLLSTOP_AC_VIQ (0x01 << 4)
|
|
|
|
#define MSR_LINK_ENEDCA (1<<4)
|
|
|
|
//----------------------------------------------------------------------------
|
|
// 8187B AC_XX_PARAM bits
|
|
//----------------------------------------------------------------------------
|
|
#define AC_PARAM_TXOP_LIMIT_OFFSET 16
|
|
#define AC_PARAM_ECW_MAX_OFFSET 12
|
|
#define AC_PARAM_ECW_MIN_OFFSET 8
|
|
#define AC_PARAM_AIFS_OFFSET 0
|
|
|
|
//----------------------------------------------------------------------------
|
|
// 8187B ACM_CONTROL bits (Offset 0xBF, 1 Byte)
|
|
//----------------------------------------------------------------------------
|
|
#define VOQ_ACM_EN (0x01 << 7) //BIT7
|
|
#define VIQ_ACM_EN (0x01 << 6) //BIT6
|
|
#define BEQ_ACM_EN (0x01 << 5) //BIT5
|
|
#define ACM_HW_EN (0x01 << 4) //BIT4
|
|
#define VOQ_ACM_CTL (0x01 << 2) //BIT2 // Set to 1 when AC_VO used time reaches or exceeds the admitted time
|
|
#define VIQ_ACM_CTL (0x01 << 1) //BIT1 // Set to 1 when AC_VI used time reaches or exceeds the admitted time
|
|
#define BEQ_ACM_CTL (0x01 << 0) //BIT0 // Set to 1 when AC_BE used time reaches or exceeds the admitted time
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
// 8185B SW_3W_CMD bits (Offset 0x27C-0x27D, 16bit)
|
|
//----------------------------------------------------------------------------
|
|
#define SW_3W_CMD0_HOLD ((1<< 7))
|
|
#define SW_3W_CMD1_RE ((1<< 0)) // BIT8
|
|
#define SW_3W_CMD1_WE ((1<< 1)) // BIT9
|
|
#define SW_3W_CMD1_DONE ((1<< 2)) // BIT10
|
|
|
|
#define BB_HOST_BANG_RW (1<<3)
|
|
|
|
//----------------------------------------------------------------------------
|
|
// 8185B RATE_FALLBACK_CTL bits (Offset 0xBE, 8bit)
|
|
//----------------------------------------------------------------------------
|
|
#define RATE_FALLBACK_CTL_ENABLE ((1<< 7))
|
|
#define RATE_FALLBACK_CTL_ENABLE_RTSCTS ((1<< 6))
|
|
// Auto rate fallback per 2^n retry.
|
|
#define RATE_FALLBACK_CTL_AUTO_STEP0 0x00
|
|
#define RATE_FALLBACK_CTL_AUTO_STEP1 0x01
|
|
#define RATE_FALLBACK_CTL_AUTO_STEP2 0x02
|
|
#define RATE_FALLBACK_CTL_AUTO_STEP3 0x03
|
|
|
|
|
|
#define RTL8225z2_ANAPARAM_OFF 0x55480658
|
|
#define RTL8225z2_ANAPARAM2_OFF 0x72003f70
|
|
//by amy for power save
|
|
#define RF_CHANGE_BY_HW BIT30
|
|
#define RF_CHANGE_BY_PS BIT29
|
|
#define RF_CHANGE_BY_IPS BIT28
|
|
//by amy for power save
|
|
//by amy for antenna
|
|
#define EEPROM_SW_REVD_OFFSET 0x3f
|
|
// BIT[8-9] is for SW Antenna Diversity. Only the value EEPROM_SW_AD_ENABLE means enable, other values are diable.
|
|
#define EEPROM_SW_AD_MASK 0x0300
|
|
#define EEPROM_SW_AD_ENABLE 0x0100
|
|
|
|
// BIT[10-11] determine if Antenna 1 is the Default Antenna. Only the value EEPROM_DEF_ANT_1 means TRUE, other values are FALSE.
|
|
#define EEPROM_DEF_ANT_MASK 0x0C00
|
|
#define EEPROM_DEF_ANT_1 0x0400
|
|
//by amy for antenna
|
|
//{by amy 080312
|
|
//0x7C, 0x7D Crystal calibration and Tx Power tracking mechanism. Added by Roger. 2007.12.10.
|
|
#define EEPROM_RSV 0x7C
|
|
#define EEPROM_XTAL_CAL_XOUT_MASK 0x0F // 0x7C[3:0], Crystal calibration for Xout.
|
|
#define EEPROM_XTAL_CAL_XIN_MASK 0xF0 // 0x7C[7:4], Crystal calibration for Xin.
|
|
#define EEPROM_THERMAL_METER_MASK 0x0F00 // 0x7D[3:0], Thermal meter reference level.
|
|
#define EEPROM_XTAL_CAL_ENABLE 0x1000 // 0x7D[4], Crystal calibration enabled/disabled BIT.
|
|
#define EEPROM_THERMAL_METER_ENABLE 0x2000 // 0x7D[5], Thermal meter enabled/disabled BIT.
|
|
#define EN_LPF_CAL 0x238 // Enable LPF Calibration.
|
|
#define PWR_METER_EN BIT1
|
|
// <RJ_TODO_8185B> where are false alarm counters in 8185B?
|
|
#define CCK_FALSE_ALARM 0xD0
|
|
//by amy 080312}
|
|
|
|
//YJ,add for Country IE, 080630
|
|
#define EEPROM_COUNTRY_CODE 0x2E
|
|
//YJ,add,080630,end
|
|
|
|
#endif
|