1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright(c) 2007 - 2011 Realtek Corporation. */
3
4 #include "../include/odm_precomp.h"
5 /* ODM IO Relative API. */
6
ODM_Read1Byte(struct odm_dm_struct * pDM_Odm,u32 RegAddr)7 u8 ODM_Read1Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr)
8 {
9 struct adapter *Adapter = pDM_Odm->Adapter;
10 return rtw_read8(Adapter, RegAddr);
11 }
12
ODM_Read4Byte(struct odm_dm_struct * pDM_Odm,u32 RegAddr)13 u32 ODM_Read4Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr)
14 {
15 struct adapter *Adapter = pDM_Odm->Adapter;
16 return rtw_read32(Adapter, RegAddr);
17 }
18
ODM_Write1Byte(struct odm_dm_struct * pDM_Odm,u32 RegAddr,u8 Data)19 void ODM_Write1Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u8 Data)
20 {
21 struct adapter *Adapter = pDM_Odm->Adapter;
22 rtw_write8(Adapter, RegAddr, Data);
23 }
24
ODM_Write2Byte(struct odm_dm_struct * pDM_Odm,u32 RegAddr,u16 Data)25 void ODM_Write2Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u16 Data)
26 {
27 struct adapter *Adapter = pDM_Odm->Adapter;
28 rtw_write16(Adapter, RegAddr, Data);
29 }
30
ODM_Write4Byte(struct odm_dm_struct * pDM_Odm,u32 RegAddr,u32 Data)31 void ODM_Write4Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 Data)
32 {
33 struct adapter *Adapter = pDM_Odm->Adapter;
34 rtw_write32(Adapter, RegAddr, Data);
35 }
36
ODM_SetMACReg(struct odm_dm_struct * pDM_Odm,u32 RegAddr,u32 BitMask,u32 Data)37 void ODM_SetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask, u32 Data)
38 {
39 struct adapter *Adapter = pDM_Odm->Adapter;
40 PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
41 }
42
ODM_GetMACReg(struct odm_dm_struct * pDM_Odm,u32 RegAddr,u32 BitMask)43 u32 ODM_GetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask)
44 {
45 struct adapter *Adapter = pDM_Odm->Adapter;
46 return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
47 }
48
ODM_SetBBReg(struct odm_dm_struct * pDM_Odm,u32 RegAddr,u32 BitMask,u32 Data)49 void ODM_SetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask, u32 Data)
50 {
51 struct adapter *Adapter = pDM_Odm->Adapter;
52 PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
53 }
54
ODM_GetBBReg(struct odm_dm_struct * pDM_Odm,u32 RegAddr,u32 BitMask)55 u32 ODM_GetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask)
56 {
57 struct adapter *Adapter = pDM_Odm->Adapter;
58 return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
59 }
60
ODM_SetRFReg(struct odm_dm_struct * pDM_Odm,enum rf_radio_path eRFPath,u32 RegAddr,u32 BitMask,u32 Data)61 void ODM_SetRFReg(struct odm_dm_struct *pDM_Odm, enum rf_radio_path eRFPath, u32 RegAddr, u32 BitMask, u32 Data)
62 {
63 struct adapter *Adapter = pDM_Odm->Adapter;
64 PHY_SetRFReg(Adapter, (enum rf_radio_path)eRFPath, RegAddr, BitMask, Data);
65 }
66
ODM_GetRFReg(struct odm_dm_struct * pDM_Odm,enum rf_radio_path eRFPath,u32 RegAddr,u32 BitMask)67 u32 ODM_GetRFReg(struct odm_dm_struct *pDM_Odm, enum rf_radio_path eRFPath, u32 RegAddr, u32 BitMask)
68 {
69 struct adapter *Adapter = pDM_Odm->Adapter;
70 return PHY_QueryRFReg(Adapter, (enum rf_radio_path)eRFPath, RegAddr, BitMask);
71 }
72
73 /* ODM Memory relative API. */
ODM_CompareMemory(struct odm_dm_struct * pDM_Odm,void * pBuf1,void * pBuf2,u32 length)74 s32 ODM_CompareMemory(struct odm_dm_struct *pDM_Odm, void *pBuf1, void *pBuf2, u32 length)
75 {
76 return !memcmp(pBuf1, pBuf2, length);
77 }
78
79 /* ODM Timer relative API. */
ODM_delay_ms(u32 ms)80 void ODM_delay_ms(u32 ms)
81 {
82 mdelay(ms);
83 }
84
ODM_delay_us(u32 us)85 void ODM_delay_us(u32 us)
86 {
87 udelay(us);
88 }
89
ODM_sleep_ms(u32 ms)90 void ODM_sleep_ms(u32 ms)
91 {
92 msleep(ms);
93 }
94