Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
net
wireless
zd1211rw
zd_rf.h
Go to the documentation of this file.
1
/* ZD1211 USB-WLAN driver for Linux
2
*
3
* Copyright (C) 2005-2007 Ulrich Kunitz <
[email protected]
>
4
* Copyright (C) 2006-2007 Daniel Drake <
[email protected]
>
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
*/
20
21
#ifndef _ZD_RF_H
22
#define _ZD_RF_H
23
24
#define UW2451_RF 0x2
25
#define UCHIP_RF 0x3
26
#define AL2230_RF 0x4
27
#define AL7230B_RF 0x5
/* a,b,g */
28
#define THETA_RF 0x6
29
#define AL2210_RF 0x7
30
#define MAXIM_NEW_RF 0x8
31
#define UW2453_RF 0x9
32
#define AL2230S_RF 0xa
33
#define RALINK_RF 0xb
34
#define INTERSIL_RF 0xc
35
#define RF2959_RF 0xd
36
#define MAXIM_NEW2_RF 0xe
37
#define PHILIPS_RF 0xf
38
39
#define RF_CHANNEL(ch) [(ch)-1]
40
41
/* Provides functions of the RF transceiver. */
42
43
enum
{
44
RF_REG_BITS
= 6,
45
RF_VALUE_BITS
= 18,
46
RF_RV_BITS
=
RF_REG_BITS
+
RF_VALUE_BITS
,
47
};
48
49
struct
zd_rf
{
50
u8
type
;
51
52
u8
channel
;
53
54
/* whether channel integration and calibration should be updated
55
* defaults to 1 (yes) */
56
u8
update_channel_int
:1;
57
58
/* whether ZD_CR47 should be patched from the EEPROM, if the appropriate
59
* flag is set in the POD. The vendor driver suggests that this should
60
* be done for all RF's, but a bug in their code prevents but their
61
* HW_OverWritePhyRegFromE2P() routine from ever taking effect. */
62
u8
patch_cck_gain
:1;
63
64
/* private RF driver data */
65
void
*
priv
;
66
67
/* RF-specific functions */
68
int
(*
init_hw
)(
struct
zd_rf
*rf);
69
int
(*
set_channel
)(
struct
zd_rf
*rf,
u8
channel
);
70
int
(*
switch_radio_on
)(
struct
zd_rf
*rf);
71
int
(*
switch_radio_off
)(
struct
zd_rf
*rf);
72
int
(*
patch_6m_band_edge
)(
struct
zd_rf
*rf,
u8
channel
);
73
void
(*
clear
)(
struct
zd_rf
*rf);
74
};
75
76
const
char
*
zd_rf_name
(
u8
type
);
77
void
zd_rf_init
(
struct
zd_rf
*rf);
78
void
zd_rf_clear
(
struct
zd_rf
*rf);
79
int
zd_rf_init_hw
(
struct
zd_rf
*rf,
u8
type
);
80
81
int
zd_rf_scnprint_id
(
struct
zd_rf
*rf,
char
*
buffer
,
size_t
size
);
82
83
int
zd_rf_set_channel
(
struct
zd_rf
*rf,
u8
channel
);
84
85
int
zd_switch_radio_on
(
struct
zd_rf
*rf);
86
int
zd_switch_radio_off
(
struct
zd_rf
*rf);
87
88
int
zd_rf_patch_6m_band_edge
(
struct
zd_rf
*rf,
u8
channel
);
89
int
zd_rf_generic_patch_6m
(
struct
zd_rf
*rf,
u8
channel
);
90
91
static
inline
int
zd_rf_should_update_pwr_int(
struct
zd_rf
*rf)
92
{
93
return
rf->
update_channel_int
;
94
}
95
96
static
inline
int
zd_rf_should_patch_cck_gain(
struct
zd_rf
*rf)
97
{
98
return
rf->
patch_cck_gain
;
99
}
100
101
int
zd_rf_patch_6m_band_edge
(
struct
zd_rf
*rf,
u8
channel
);
102
int
zd_rf_generic_patch_6m
(
struct
zd_rf
*rf,
u8
channel
);
103
104
/* Functions for individual RF chips */
105
106
int
zd_rf_init_rf2959
(
struct
zd_rf
*rf);
107
int
zd_rf_init_al2230
(
struct
zd_rf
*rf);
108
int
zd_rf_init_al7230b
(
struct
zd_rf
*rf);
109
int
zd_rf_init_uw2453
(
struct
zd_rf
*rf);
110
111
#endif
/* _ZD_RF_H */
Generated on Thu Jan 10 2013 14:13:22 for Linux Kernel by
1.8.2