1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20#ifndef __RTW_IOL_H_
21#define __RTW_IOL_H_
22
23#include <osdep_service.h>
24#include <drv_types.h>
25
26#define IOREG_CMD_END_LEN 4
27
28struct ioreg_cfg {
29 u8 length;
30 u8 cmd_id;
31 __le16 address;
32 __le32 data;
33 __le32 mask;
34};
35
36enum ioreg_cmd {
37 IOREG_CMD_LLT = 0x01,
38 IOREG_CMD_REFUSE = 0x02,
39 IOREG_CMD_EFUSE_PATH = 0x03,
40 IOREG_CMD_WB_REG = 0x04,
41 IOREG_CMD_WW_REG = 0x05,
42 IOREG_CMD_WD_REG = 0x06,
43 IOREG_CMD_W_RF = 0x07,
44 IOREG_CMD_DELAY_US = 0x10,
45 IOREG_CMD_DELAY_MS = 0x11,
46 IOREG_CMD_END = 0xFF,
47};
48
49struct xmit_frame *rtw_IOL_accquire_xmit_frame(struct adapter *adapter);
50int rtw_IOL_append_cmds(struct xmit_frame *xmit_frame, u8 *IOL_cmds,
51 u32 cmd_len);
52int rtw_IOL_append_LLT_cmd(struct xmit_frame *xmit_frame, u8 page_boundary);
53int rtw_IOL_exec_cmds_sync(struct adapter *adapter,
54 struct xmit_frame *xmit_frame, u32 max_wating_ms,
55 u32 bndy_cnt);
56bool rtw_IOL_applied(struct adapter *adapter);
57int rtw_IOL_append_DELAY_US_cmd(struct xmit_frame *xmit_frame, u16 us);
58int rtw_IOL_append_DELAY_MS_cmd(struct xmit_frame *xmit_frame, u16 ms);
59int rtw_IOL_append_END_cmd(struct xmit_frame *xmit_frame);
60
61void read_efuse_from_txpktbuf(struct adapter *adapter, int bcnhead,
62 u8 *content, u16 *size);
63
64int _rtw_IOL_append_WB_cmd(struct xmit_frame *xmit_frame, u16 addr,
65 u8 value, u8 mask);
66int _rtw_IOL_append_WW_cmd(struct xmit_frame *xmit_frame, u16 addr,
67 u16 value, u16 mask);
68int _rtw_IOL_append_WD_cmd(struct xmit_frame *xmit_frame, u16 addr,
69 u32 value, u32 mask);
70int _rtw_IOL_append_WRF_cmd(struct xmit_frame *xmit_frame, u8 rf_path,
71 u16 addr, u32 value, u32 mask);
72#define rtw_IOL_append_WB_cmd(xmit_frame, addr, value, mask) \
73 _rtw_IOL_append_WB_cmd((xmit_frame), (addr), (value) , (mask))
74#define rtw_IOL_append_WW_cmd(xmit_frame, addr, value, mask) \
75 _rtw_IOL_append_WW_cmd((xmit_frame), (addr), (value), (mask))
76#define rtw_IOL_append_WD_cmd(xmit_frame, addr, value, mask) \
77 _rtw_IOL_append_WD_cmd((xmit_frame), (addr), (value), (mask))
78#define rtw_IOL_append_WRF_cmd(xmit_frame, rf_path, addr, value, mask) \
79 _rtw_IOL_append_WRF_cmd((xmit_frame), (rf_path), (addr), (value), (mask))
80
81u8 rtw_IOL_cmd_boundary_handle(struct xmit_frame *pxmit_frame);
82void rtw_IOL_cmd_buf_dump(struct adapter *Adapter, int buf_len, u8 *pbuf);
83
84#endif
85