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#ifndef __iwl_io_h__
30#define __iwl_io_h__
31
32#include "iwl-devtrace.h"
33#include "iwl-trans.h"
34
35static inline void iwl_write8(struct iwl_trans *trans, u32 ofs, u8 val)
36{
37 trace_iwlwifi_dev_iowrite8(trans->dev, ofs, val);
38 iwl_trans_write8(trans, ofs, val);
39}
40
41static inline void iwl_write32(struct iwl_trans *trans, u32 ofs, u32 val)
42{
43 trace_iwlwifi_dev_iowrite32(trans->dev, ofs, val);
44 iwl_trans_write32(trans, ofs, val);
45}
46
47static inline u32 iwl_read32(struct iwl_trans *trans, u32 ofs)
48{
49 u32 val = iwl_trans_read32(trans, ofs);
50 trace_iwlwifi_dev_ioread32(trans->dev, ofs, val);
51 return val;
52}
53
54static inline void iwl_set_bit(struct iwl_trans *trans, u32 reg, u32 mask)
55{
56 iwl_trans_set_bits_mask(trans, reg, mask, mask);
57}
58
59static inline void iwl_clear_bit(struct iwl_trans *trans, u32 reg, u32 mask)
60{
61 iwl_trans_set_bits_mask(trans, reg, mask, 0);
62}
63
64int iwl_poll_bit(struct iwl_trans *trans, u32 addr,
65 u32 bits, u32 mask, int timeout);
66int iwl_poll_direct_bit(struct iwl_trans *trans, u32 addr, u32 mask,
67 int timeout);
68
69u32 iwl_read_direct32(struct iwl_trans *trans, u32 reg);
70void iwl_write_direct32(struct iwl_trans *trans, u32 reg, u32 value);
71
72
73u32 iwl_read_prph(struct iwl_trans *trans, u32 ofs);
74void iwl_write_prph(struct iwl_trans *trans, u32 ofs, u32 val);
75void iwl_set_bits_prph(struct iwl_trans *trans, u32 ofs, u32 mask);
76void iwl_set_bits_mask_prph(struct iwl_trans *trans, u32 ofs,
77 u32 bits, u32 mask);
78void iwl_clear_bits_prph(struct iwl_trans *trans, u32 ofs, u32 mask);
79
80#endif
81