ACPI: thinkpad-acpi: add development version tag
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / drivers / staging / vt6655 / baseband.h
blob0682a396ea4472333f8224e4f20ed0d367f73038
1 /*
2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3 * All rights reserved.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 * File: baseband.h
22 * Purpose: Implement functions to access baseband
24 * Author: Jerry Chen
26 * Date: Jun. 5, 2002
30 #ifndef __BASEBAND_H__
31 #define __BASEBAND_H__
33 #include "ttype.h"
34 #include "tether.h"
35 #include "device.h"
37 /*--------------------- Export Definitions -------------------------*/
40 // Registers in the BASEBAND
42 #define BB_MAX_CONTEXT_SIZE 256
46 // Baseband RF pair definition in eeprom (Bits 6..0)
50 #define RATE_1M 0
51 #define RATE_2M 1
52 #define RATE_5M 2
53 #define RATE_11M 3
54 #define RATE_6M 4
55 #define RATE_9M 5
56 #define RATE_12M 6
57 #define RATE_18M 7
58 #define RATE_24M 8
59 #define RATE_36M 9
60 #define RATE_48M 10
61 #define RATE_54M 11
62 #define RATE_AUTO 12
63 #define MAX_RATE 12
66 //0:11A 1:11B 2:11G
67 #define BB_TYPE_11A 0
68 #define BB_TYPE_11B 1
69 #define BB_TYPE_11G 2
71 //0:11a,1:11b,2:11gb(only CCK in BasicRate),3:11ga(OFDM in Basic Rate)
72 #define PK_TYPE_11A 0
73 #define PK_TYPE_11B 1
74 #define PK_TYPE_11GB 2
75 #define PK_TYPE_11GA 3
79 #define PREAMBLE_LONG 0
80 #define PREAMBLE_SHORT 1
83 #define F5G 0
84 #define F2_4G 1
86 #define TOP_RATE_54M 0x80000000
87 #define TOP_RATE_48M 0x40000000
88 #define TOP_RATE_36M 0x20000000
89 #define TOP_RATE_24M 0x10000000
90 #define TOP_RATE_18M 0x08000000
91 #define TOP_RATE_12M 0x04000000
92 #define TOP_RATE_11M 0x02000000
93 #define TOP_RATE_9M 0x01000000
94 #define TOP_RATE_6M 0x00800000
95 #define TOP_RATE_55M 0x00400000
96 #define TOP_RATE_2M 0x00200000
97 #define TOP_RATE_1M 0x00100000
100 /*--------------------- Export Types ------------------------------*/
102 /*--------------------- Export Macros ------------------------------*/
104 #define BBvClearFOE(dwIoBase) \
106 BBbWriteEmbeded(dwIoBase, 0xB1, 0); \
109 #define BBvSetFOE(dwIoBase) \
111 BBbWriteEmbeded(dwIoBase, 0xB1, 0x0C); \
115 /*--------------------- Export Classes ----------------------------*/
117 /*--------------------- Export Variables --------------------------*/
119 /*--------------------- Export Functions --------------------------*/
121 UINT
122 BBuGetFrameTime(
123 IN BYTE byPreambleType,
124 IN BYTE byPktType,
125 IN UINT cbFrameLength,
126 IN WORD wRate
129 VOID
130 BBvCaculateParameter (
131 IN PSDevice pDevice,
132 IN UINT cbFrameLength,
133 IN WORD wRate,
134 IN BYTE byPacketType,
135 OUT PWORD pwPhyLen,
136 OUT PBYTE pbyPhySrv,
137 OUT PBYTE pbyPhySgn
140 BOOL BBbReadEmbeded(DWORD_PTR dwIoBase, BYTE byBBAddr, PBYTE pbyData);
141 BOOL BBbWriteEmbeded(DWORD_PTR dwIoBase, BYTE byBBAddr, BYTE byData);
143 VOID BBvReadAllRegs(DWORD_PTR dwIoBase, PBYTE pbyBBRegs);
144 void BBvLoopbackOn(PSDevice pDevice);
145 void BBvLoopbackOff(PSDevice pDevice);
146 void BBvSetShortSlotTime(PSDevice pDevice);
147 BOOL BBbIsRegBitsOn(DWORD_PTR dwIoBase, BYTE byBBAddr, BYTE byTestBits);
148 BOOL BBbIsRegBitsOff(DWORD_PTR dwIoBase, BYTE byBBAddr, BYTE byTestBits);
149 VOID BBvSetVGAGainOffset(PSDevice pDevice, BYTE byData);
151 // VT3253 Baseband
152 BOOL BBbVT3253Init(PSDevice pDevice);
153 VOID BBvSoftwareReset(DWORD_PTR dwIoBase);
154 VOID BBvPowerSaveModeON(DWORD_PTR dwIoBase);
155 VOID BBvPowerSaveModeOFF(DWORD_PTR dwIoBase);
156 VOID BBvSetTxAntennaMode(DWORD_PTR dwIoBase, BYTE byAntennaMode);
157 VOID BBvSetRxAntennaMode(DWORD_PTR dwIoBase, BYTE byAntennaMode);
158 VOID BBvSetDeepSleep(DWORD_PTR dwIoBase, BYTE byLocalID);
159 VOID BBvExitDeepSleep(DWORD_PTR dwIoBase, BYTE byLocalID);
161 // timer for antenna diversity
163 VOID
164 TimerSQ3CallBack (
165 IN HANDLE hDeviceContext
168 VOID
169 TimerState1CallBack(
170 IN HANDLE hDeviceContext
173 void BBvAntennaDiversity(PSDevice pDevice, BYTE byRxRate, BYTE bySQ3);
174 VOID
175 BBvClearAntDivSQ3Value (PSDevice pDevice);
177 #endif // __BASEBAND_H__