1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* |
3 | Copyright (C) 2004 - 2009 Ivo van Doorn <IvDoorn@gmail.com> |
4 | <http://rt2x00.serialmonkey.com> |
5 | |
6 | */ |
7 | |
8 | /* |
9 | Module: rt2x00debug |
10 | Abstract: Data structures for the rt2x00debug. |
11 | */ |
12 | |
13 | #ifndef RT2X00DEBUG_H |
14 | #define RT2X00DEBUG_H |
15 | |
16 | struct rt2x00_dev; |
17 | |
18 | /** |
19 | * enum rt2x00debugfs_entry_flags: Flags for debugfs registry entry |
20 | * |
21 | * @RT2X00DEBUGFS_OFFSET: rt2x00lib should pass the register offset |
22 | * as argument when using the callback function read()/write() |
23 | */ |
24 | enum rt2x00debugfs_entry_flags { |
25 | RT2X00DEBUGFS_OFFSET = (1 << 0), |
26 | }; |
27 | |
28 | #define RT2X00DEBUGFS_REGISTER_ENTRY(__name, __type) \ |
29 | struct reg##__name { \ |
30 | __type (*read)(struct rt2x00_dev *rt2x00dev, \ |
31 | const unsigned int word); \ |
32 | void (*write)(struct rt2x00_dev *rt2x00dev, \ |
33 | const unsigned int word, __type data); \ |
34 | \ |
35 | unsigned int flags; \ |
36 | \ |
37 | unsigned int word_base; \ |
38 | unsigned int word_size; \ |
39 | unsigned int word_count; \ |
40 | } __name |
41 | |
42 | struct rt2x00debug { |
43 | /* |
44 | * Reference to the modules structure. |
45 | */ |
46 | struct module *owner; |
47 | |
48 | /* |
49 | * Register access entries. |
50 | */ |
51 | RT2X00DEBUGFS_REGISTER_ENTRY(csr, u32); |
52 | RT2X00DEBUGFS_REGISTER_ENTRY(eeprom, u16); |
53 | RT2X00DEBUGFS_REGISTER_ENTRY(bbp, u8); |
54 | RT2X00DEBUGFS_REGISTER_ENTRY(rf, u32); |
55 | RT2X00DEBUGFS_REGISTER_ENTRY(rfcsr, u8); |
56 | }; |
57 | |
58 | #endif /* RT2X00DEBUG_H */ |
59 | |