hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
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
/******************************************************************************
 *
 * Copyright(c) 2019 Realtek Corporation.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 *****************************************************************************/
#ifndef _HAL_IO_H_
#define _HAL_IO_H_
 
/*
Below is the data structure used by _io_handler
*/
 
extern u8 _hal_read8(struct rtw_hal_com_t *hal, u32 addr);
extern u16 _hal_read16(struct rtw_hal_com_t *hal, u32 addr);
extern u32 _hal_read32(struct rtw_hal_com_t *hal, u32 addr);
extern void _hal_read_mem(struct rtw_hal_com_t *hal, u32 addr, u32 cnt, u8 *pmem);
 
extern int _hal_write8(struct rtw_hal_com_t *hal, u32 addr, u8 val);
extern int _hal_write16(struct rtw_hal_com_t *hal, u32 addr, u16 val);
extern int _hal_write32(struct rtw_hal_com_t *hal, u32 addr, u32 val);
 
 
#ifdef CONFIG_SDIO_HCI
u8 _hal_sd_f0_read8(struct rtw_hal_com_t *hal, u32 addr);
#ifdef CONFIG_SDIO_INDIRECT_ACCESS
u8 _hal_sd_iread8(struct rtw_hal_com_t *hal, u32 addr);
u16 _hal_sd_iread16(struct rtw_hal_com_t *hal, u32 addr);
u32 _hal_sd_iread32(struct rtw_hal_com_t *hal, u32 addr);
int _hal_sd_iwrite8(struct rtw_hal_com_t *hal, u32 addr, u8 val);
int _hal_sd_iwrite16(struct rtw_hal_com_t *hal, u32 addr, u16 val);
int _hal_sd_iwrite32(struct rtw_hal_com_t *hal, u32 addr, u32 val);
#endif /* CONFIG_SDIO_INDIRECT_ACCESS */
#endif /* CONFIG_SDIO_HCI */
 
 
#ifdef DBG_IO
u32 match_read_sniff(struct rtw_hal_com_t *hal, u32 addr, u16 len, u32 val);
u32 match_write_sniff(struct rtw_hal_com_t *hal, u32 addr, u16 len, u32 val);
bool match_rf_read_sniff_ranges(struct rtw_hal_com_t *hal, u8 path, u32 addr, u32 mask);
bool match_rf_write_sniff_ranges(struct rtw_hal_com_t *hal, u8 path, u32 addr, u32 mask);
 
extern u8 dbg_hal_read8(struct rtw_hal_com_t *hal, u32 addr, const char *caller, const int line);
extern u16 dbg_hal_read16(struct rtw_hal_com_t *hal, u32 addr, const char *caller, const int line);
extern u32 dbg_hal_read32(struct rtw_hal_com_t *hal, u32 addr, const char *caller, const int line);
 
extern int dbg_hal_write8(struct rtw_hal_com_t *hal, u32 addr, u8 val, const char *caller, const int line);
extern int dbg_hal_write16(struct rtw_hal_com_t *hal, u32 addr, u16 val, const char *caller, const int line);
extern int dbg_hal_write32(struct rtw_hal_com_t *hal, u32 addr, u32 val, const char *caller, const int line);
extern int dbg_hal_writeN(struct rtw_hal_com_t *hal, u32 addr , u32 length , u8 *data, const char *caller, const int line);
 
#ifdef CONFIG_SDIO_HCI
u8 dbg_hal_sd_f0_read8(struct rtw_hal_com_t *hal, u32 addr, const char *caller, const int line);
#ifdef CONFIG_SDIO_INDIRECT_ACCESS
u8 dbg_hal_sd_iread8(struct rtw_hal_com_t *hal, u32 addr, const char *caller, const int line);
u16 dbg_hal_sd_iread16(struct rtw_hal_com_t *hal, u32 addr, const char *caller, const int line);
u32 dbg_hal_sd_iread32(struct rtw_hal_com_t *hal, u32 addr, const char *caller, const int line);
int dbg_hal_sd_iwrite8(struct rtw_hal_com_t *hal, u32 addr, u8 val, const char *caller, const int line);
int dbg_hal_sd_iwrite16(struct rtw_hal_com_t *hal, u32 addr, u16 val, const char *caller, const int line);
int dbg_hal_sd_iwrite32(struct rtw_hal_com_t *hal, u32 addr, u32 val, const char *caller, const int line);
#endif /* CONFIG_SDIO_INDIRECT_ACCESS */
#endif /* CONFIG_SDIO_HCI */
 
#define hal_read8(hal, addr) dbg_hal_read8((hal), (addr), __FUNCTION__, __LINE__)
#define hal_read16(hal, addr) dbg_hal_read16((hal), (addr), __FUNCTION__, __LINE__)
#define hal_read32(hal, addr) dbg_hal_read32((hal), (addr), __FUNCTION__, __LINE__)
 
#define  hal_write8(hal, addr, val) dbg_hal_write8((hal), (addr), (val), __FUNCTION__, __LINE__)
#define  hal_write16(hal, addr, val) dbg_hal_write16((hal), (addr), (val), __FUNCTION__, __LINE__)
#define  hal_write32(hal, addr, val) dbg_hal_write32((hal), (addr), (val), __FUNCTION__, __LINE__)
 
 
#ifdef CONFIG_SDIO_HCI
#define hal_sd_f0_read8(hal, addr) dbg_hal_sd_f0_read8((hal), (addr), __func__, __LINE__)
#ifdef CONFIG_SDIO_INDIRECT_ACCESS
#define hal_sd_iread8(hal, addr) dbg_hal_sd_iread8((hal), (addr), __func__, __LINE__)
#define hal_sd_iread16(hal, addr) dbg_hal_sd_iread16((hal), (addr), __func__, __LINE__)
#define hal_sd_iread32(hal, addr) dbg_hal_sd_iread32((hal), (addr), __func__, __LINE__)
#define hal_sd_iwrite8(hal, addr, val) dbg_hal_sd_iwrite8((hal), (addr), (val), __func__, __LINE__)
#define hal_sd_iwrite16(hal, addr, val) dbg_hal_sd_iwrite16((hal), (addr), (val), __func__, __LINE__)
#define hal_sd_iwrite32(hal, addr, val) dbg_hal_sd_iwrite32((hal), (addr), (val), __func__, __LINE__)
#endif /* CONFIG_SDIO_INDIRECT_ACCESS */
#endif /* CONFIG_SDIO_HCI */
 
#else /* DBG_IO */
#define hal_read8(hal, addr) _hal_read8((hal), (addr))
#define hal_read16(hal, addr) _hal_read16((hal), (addr))
#define hal_read32(hal, addr) _hal_read32((hal), (addr))
 
#define  hal_write8(hal, addr, val) _hal_write8((hal), (addr), (val))
#define  hal_write16(hal, addr, val) _hal_write16((hal), (addr), (val))
#define  hal_write32(hal, addr, val) _hal_write32((hal), (addr), (val))
 
 
#ifdef CONFIG_SDIO_HCI
#define hal_sd_f0_read8(hal, addr) _hal_sd_f0_read8((hal), (addr))
#ifdef CONFIG_SDIO_INDIRECT_ACCESS
#define hal_sd_iread8(hal, addr) _hal_sd_iread8((hal), (addr))
#define hal_sd_iread16(hal, addr) _hal_sd_iread16((hal), (addr))
#define hal_sd_iread32(hal, addr) _hal_sd_iread32((hal), (addr))
#define hal_sd_iwrite8(hal, addr, val) _hal_sd_iwrite8((hal), (addr), (val))
#define hal_sd_iwrite16(hal, addr, val) _hal_sd_iwrite16((hal), (addr), (val))
#define hal_sd_iwrite32(hal, addr, val) _hal_sd_iwrite32((hal), (addr), (val))
#endif /* CONFIG_SDIO_INDIRECT_ACCESS */
#endif /* CONFIG_SDIO_HCI */
 
#endif /* DBG_IO */
 
void hal_write32_mask(struct rtw_hal_com_t *hal, u16 addr, u32 mask, u32 val);
 
u32 hal_init_io_priv(struct rtw_hal_com_t *hal,
void (*set_intf_ops)(struct rtw_hal_com_t *hal, struct hal_io_ops *ops));
u32 hal_deinit_io_priv(struct rtw_hal_com_t *hal);
 
#endif /* _RTW_IO_H_ */