Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / staging / vt6656 / baseband.h
CommitLineData
92b96797
FB
1/*
2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3 * All rights reserved.
4 *
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.
9 *
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.
14 *
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.
18 *
19 *
20 * File: baseband.h
21 *
22 * Purpose: Implement functions to access baseband
23 *
24 * Author: Jerry Chen
25 *
26 * Date: Jun. 5, 2002
27 *
28 * Revision History:
29 * 06-10-2003 Bryan YC Fan: Re-write codes to support VT3253 spec.
30 * 08-26-2003 Kyle Hsu : Add defines of packet type and TX rate.
31 */
32
33#ifndef __BASEBAND_H__
34#define __BASEBAND_H__
35
92b96797 36#include "ttype.h"
92b96797 37#include "tether.h"
92b96797 38#include "device.h"
92b96797
FB
39
40/*--------------------- Export Definitions -------------------------*/
41
42#define PREAMBLE_LONG 0
43#define PREAMBLE_SHORT 1
44
45//
46// Registers in the BASEBAND
47//
48#define BB_MAX_CONTEXT_SIZE 256
49
50#define C_SIFS_A 16 // micro sec.
51#define C_SIFS_BG 10
52
53#define C_EIFS 80 // micro sec.
54
55
56#define C_SLOT_SHORT 9 // micro sec.
57#define C_SLOT_LONG 20
58
59#define C_CWMIN_A 15 // slot time
60#define C_CWMIN_B 31
61
62#define C_CWMAX 1023 // slot time
63
64//0:11A 1:11B 2:11G
65#define BB_TYPE_11A 0
66#define BB_TYPE_11B 1
67#define BB_TYPE_11G 2
68
69//0:11a,1:11b,2:11gb(only CCK in BasicRate),3:11ga(OFDM in Basic Rate)
70#define PK_TYPE_11A 0
71#define PK_TYPE_11B 1
72#define PK_TYPE_11GB 2
73#define PK_TYPE_11GA 3
74
75#define TOP_RATE_54M 0x80000000
76#define TOP_RATE_48M 0x40000000
77#define TOP_RATE_36M 0x20000000
78#define TOP_RATE_24M 0x10000000
79#define TOP_RATE_18M 0x08000000
80#define TOP_RATE_12M 0x04000000
81#define TOP_RATE_11M 0x02000000
82#define TOP_RATE_9M 0x01000000
83#define TOP_RATE_6M 0x00800000
84#define TOP_RATE_55M 0x00400000
85#define TOP_RATE_2M 0x00200000
86#define TOP_RATE_1M 0x00100000
87
88
89/*--------------------- Export Types ------------------------------*/
90
91/*--------------------- Export Macros ------------------------------*/
92
93/*--------------------- Export Classes ----------------------------*/
94
95/*--------------------- Export Variables --------------------------*/
96
97/*--------------------- Export Functions --------------------------*/
92b96797 98
cc856e61 99unsigned int
92b96797 100BBuGetFrameTime(
592ccfeb
AM
101 BYTE byPreambleType,
102 BYTE byFreqType,
cc856e61 103 unsigned int cbFrameLength,
592ccfeb 104 WORD wRate
92b96797
FB
105 );
106
8611a29a 107void
92b96797 108BBvCaculateParameter (
592ccfeb 109 PSDevice pDevice,
cc856e61 110 unsigned int cbFrameLength,
592ccfeb
AM
111 WORD wRate,
112 BYTE byPacketType,
6f8c13c7
AM
113 PWORD pwPhyLen,
114 PBYTE pbyPhySrv,
115 PBYTE pbyPhySgn
92b96797
FB
116 );
117
118// timer for antenna diversity
119
0cbd8d98
AM
120void TimerSQ3CallBack(void *hDeviceContext);
121void TimerSQ3Tmax3CallBack(void *hDeviceContext);
92b96797 122
8611a29a
AM
123void BBvAntennaDiversity(PSDevice pDevice, BYTE byRxRate, BYTE bySQ3);
124void BBvLoopbackOn(PSDevice pDevice);
125void BBvLoopbackOff(PSDevice pDevice);
126void BBvSoftwareReset(PSDevice pDevice);
92b96797
FB
127
128void BBvSetShortSlotTime(PSDevice pDevice);
8611a29a 129void BBvSetVGAGainOffset(PSDevice pDevice, BYTE byData);
92b96797
FB
130void BBvSetAntennaMode(PSDevice pDevice, BYTE byAntennaMode);
131BOOL BBbVT3184Init (PSDevice pDevice);
8611a29a
AM
132void BBvSetDeepSleep(PSDevice pDevice);
133void BBvExitDeepSleep(PSDevice pDevice);
134void BBvUpdatePreEDThreshold(
592ccfeb
AM
135 PSDevice pDevice,
136 BOOL bScanning
92b96797
FB
137 );
138
e7b07d1d 139#endif /* __BASEBAND_H__ */