summaryrefslogtreecommitdiffstats
path: root/drivers/staging/rtl8192e/r819xE_phy.h
blob: 41e0d777eabdb1013a680127dbe85400fb2179a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#ifndef _R819XU_PHY_H
#define _R819XU_PHY_H

/* Channel switch: the size of command tables for switch channel */
#define MAX_PRECMD_CNT 16
#define MAX_RFDEPENDCMD_CNT 16
#define MAX_POSTCMD_CNT 16

#ifdef RTL8190P
#define MACPHY_Array_PGLength 21
#define Rtl819XMACPHY_Array_PG Rtl8190PciMACPHY_Array_PG
#define Rtl819XMACPHY_Array Rtl8190PciMACPHY_Array
#define RadioC_ArrayLength 246
#define RadioD_ArrayLength 78
#define Rtl819XRadioA_Array Rtl8190PciRadioA_Array
#define Rtl819XRadioB_Array Rtl8190PciRadioB_Array
#define Rtl819XRadioC_Array Rtl8190PciRadioC_Array
#define Rtl819XRadioD_Array Rtl8190PciRadioD_Array
#define Rtl819XAGCTAB_Array Rtl8190PciAGCTAB_Array
#define PHY_REGArrayLength 280
#define Rtl819XPHY_REGArray Rtl8190PciPHY_REGArray
#define PHY_REG_1T2RArrayLength 280
#define Rtl819XPHY_REG_1T2RArray Rtl8190PciPHY_REG_1T2RArray
#endif


#ifdef RTL8192E
#define MACPHY_Array_PGLength 30
#define Rtl819XMACPHY_Array_PG Rtl8192PciEMACPHY_Array_PG
#define Rtl819XMACPHY_Array Rtl8192PciEMACPHY_Array
#define RadioC_ArrayLength 1
#define RadioD_ArrayLength 1
#define Rtl819XRadioA_Array Rtl8192PciERadioA_Array
#define Rtl819XRadioB_Array Rtl8192PciERadioB_Array
#define Rtl819XRadioC_Array Rtl8192PciERadioC_Array
#define Rtl819XRadioD_Array Rtl8192PciERadioD_Array
#define Rtl819XAGCTAB_Array Rtl8192PciEAGCTAB_Array
#define PHY_REGArrayLength 1
#define Rtl819XPHY_REGArray Rtl8192PciEPHY_REGArray
#define PHY_REG_1T2RArrayLength 296
#define Rtl819XPHY_REG_1T2RArray Rtl8192PciEPHY_REG_1T2RArray
#endif

#define AGCTAB_ArrayLength 384
#define MACPHY_ArrayLength 18

#define RadioA_ArrayLength 246
#define RadioB_ArrayLength 78


typedef enum _SwChnlCmdID {
	CmdID_End,
	CmdID_SetTxPowerLevel,
	CmdID_BBRegWrite10,
	CmdID_WritePortUlong,
	CmdID_WritePortUshort,
	CmdID_WritePortUchar,
	CmdID_RF_WriteReg,
} SwChnlCmdID;

/* switch channel data structure */
typedef struct _SwChnlCmd {
	SwChnlCmdID CmdID;
	u32 Para1;
	u32 Para2;
	u32 msDelay;
} __attribute__ ((packed)) SwChnlCmd;

extern u32 rtl819XMACPHY_Array_PG[];
extern u32 rtl819XPHY_REG_1T2RArray[];
extern u32 rtl819XAGCTAB_Array[];
extern u32 rtl819XRadioA_Array[];
extern u32 rtl819XRadioB_Array[];
extern u32 rtl819XRadioC_Array[];
extern u32 rtl819XRadioD_Array[];

typedef enum _HW90_BLOCK {
	HW90_BLOCK_MAC = 0,
	HW90_BLOCK_PHY0 = 1,
	HW90_BLOCK_PHY1 = 2,
	HW90_BLOCK_RF = 3,
	/* Don't ever use this. */
	HW90_BLOCK_MAXIMUM = 4,
} HW90_BLOCK_E, *PHW90_BLOCK_E;

typedef enum _RF90_RADIO_PATH {
	/* Radio paths */
	RF90_PATH_A = 0,
	RF90_PATH_B = 1,
	RF90_PATH_C = 2,
	RF90_PATH_D = 3,

	/* Max RF number 92 support */
	RF90_PATH_MAX
} RF90_RADIO_PATH_E, *PRF90_RADIO_PATH_E;

#define bMaskByte0 0xff
#define bMaskByte1 0xff00
#define bMaskByte2 0xff0000
#define bMaskByte3 0xff000000
#define bMaskHWord 0xffff0000
#define bMaskLWord 0x0000ffff
#define bMaskDWord 0xffffffff

/*extern u32 rtl8192_CalculateBitShift(u32 dwBitMask);

extern u32 rtl8192_phy_RFSerialRead(struct net_device *dev,
			RF90_RADIO_PATH_E eRFPath, u32 Offset);

extern void rtl8192_phy_RFSerialWrite(struct net_device *dev,
		RF90_RADIO_PATH_E eRFPath, u32 Offset, u32 Data);

extern void rtl8192_InitBBRFRegDef(struct net_device *dev);

extern RT_STATUS rtl8192_BB_Config_ParaFile(struct net_device *dev); */

extern u8 rtl8192_phy_CheckIsLegalRFPath(struct net_device *dev, u32 eRFPath);

extern void rtl8192_setBBreg(struct net_device *dev, u32 dwRegAddr,
			     u32 dwBitMask, u32 dwData);

extern u32 rtl8192_QueryBBReg(struct net_device *dev, u32 dwRegAddr,
			     u32 dwBitMask);

extern void rtl8192_phy_SetRFReg(struct net_device *dev,
		RF90_RADIO_PATH_E eRFPath, u32 RegAddr,
		u32 BitMask, u32 Data);

extern u32 rtl8192_phy_QueryRFReg(struct net_device *dev,
		RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask);

extern void rtl8192_phy_configmac(struct net_device *dev);

extern void rtl8192_phyConfigBB(struct net_device *dev, u8 ConfigType);

extern RT_STATUS rtl8192_phy_checkBBAndRF(struct net_device *dev,
		HW90_BLOCK_E CheckBlock, RF90_RADIO_PATH_E eRFPath);

extern RT_STATUS rtl8192_BBConfig(struct net_device *dev);

extern void rtl8192_phy_getTxPower(struct net_device *dev);

extern void rtl8192_phy_setTxPower(struct net_device *dev, u8 channel);

extern RT_STATUS rtl8192_phy_RFConfig(struct net_device* dev);

extern void rtl8192_phy_updateInitGain(struct net_device* dev);

extern u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device *dev,
					RF90_RADIO_PATH_E eRFPath);

extern u8 rtl8192_phy_SwChnl(struct net_device *dev, u8 channel);

extern void rtl8192_SetBWMode(struct net_device *dev,
		HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset);

extern void rtl8192_SwChnl_WorkItem(struct net_device *dev);

extern void rtl8192_SetBWModeWorkItem(struct net_device *dev);

extern void InitialGain819xPci(struct net_device *dev, u8 Operation);

#endif /* _R819XU_PHY_H */
OpenPOWER on IntegriCloud