summaryrefslogtreecommitdiff
path: root/drivers/staging/r8188eu/include/odm_interface.h
blob: 17a315d19a5049d62cc0d5ce536ea6b20fe97252 (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
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/* Copyright(c) 2007 - 2011 Realtek Corporation. */

#ifndef	__ODM_INTERFACE_H__
#define __ODM_INTERFACE_H__

enum odm_h2c_cmd {
	ODM_H2C_RSSI_REPORT = 0,
	ODM_H2C_PSD_RESULT= 1,
	ODM_H2C_PathDiv = 2,
	ODM_MAX_H2CCMD
};

/*  2012/02/17 MH For non-MP compile pass only. Linux does not support workitem. */
/*  Suggest HW team to use thread instead of workitem. Windows also support the feature. */
typedef void (*RT_WORKITEM_CALL_BACK)(void *pContext);

/*  =========== Extern Variable ??? It should be forbidden. */

/*  =========== EXtern Function Prototype */

u8 ODM_Read1Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr);

u32 ODM_Read4Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr);

void ODM_Write1Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u8 Data);

void ODM_Write2Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u16 Data);

void ODM_Write4Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 Data);

void ODM_SetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr,
		   u32 BitMask, u32 Data);

u32 ODM_GetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask);

void ODM_SetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr,
		  u32 BitMask, u32 Data);

u32 ODM_GetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask);

void ODM_SetRFReg(struct odm_dm_struct *pDM_Odm, enum rf_radio_path eRFPath,
		  u32 RegAddr, u32 BitMask, u32 Data);

u32 ODM_GetRFReg(struct odm_dm_struct *pDM_Odm, enum rf_radio_path eRFPath,
		 u32 RegAddr, u32 BitMask);

/*  Memory Relative Function. */
s32 ODM_CompareMemory(struct odm_dm_struct *pDM_Odm, void *pBuf1, void *pBuf2,
		      u32 length);

/*  ODM Timer relative API. */
void ODM_delay_ms(u32 ms);

void ODM_delay_us(u32 us);

void ODM_sleep_ms(u32 ms);

#endif	/*  __ODM_INTERFACE_H__ */