1 /* 2 Copyright (C) 2004 - 2009 Ivo van Doorn <IvDoorn@gmail.com> 3 <http://rt2x00.serialmonkey.com> 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, see <http://www.gnu.org/licenses/>. 17 */ 18 19 /* 20 Module: rt2x00debug 21 Abstract: Data structures for the rt2x00debug. 22 */ 23 24 #ifndef RT2X00DEBUG_H 25 #define RT2X00DEBUG_H 26 27 struct rt2x00_dev; 28 29 /** 30 * enum rt2x00debugfs_entry_flags: Flags for debugfs registry entry 31 * 32 * @RT2X00DEBUGFS_OFFSET: rt2x00lib should pass the register offset 33 * as argument when using the callback function read()/write() 34 */ 35 enum rt2x00debugfs_entry_flags { 36 RT2X00DEBUGFS_OFFSET = (1 << 0), 37 }; 38 39 #define RT2X00DEBUGFS_REGISTER_ENTRY(__name, __type) \ 40 struct reg##__name { \ 41 __type (*read)(struct rt2x00_dev *rt2x00dev, \ 42 const unsigned int word); \ 43 void (*write)(struct rt2x00_dev *rt2x00dev, \ 44 const unsigned int word, __type data); \ 45 \ 46 unsigned int flags; \ 47 \ 48 unsigned int word_base; \ 49 unsigned int word_size; \ 50 unsigned int word_count; \ 51 } __name 52 53 struct rt2x00debug { 54 /* 55 * Reference to the modules structure. 56 */ 57 struct module *owner; 58 59 /* 60 * Register access entries. 61 */ 62 RT2X00DEBUGFS_REGISTER_ENTRY(csr, u32); 63 RT2X00DEBUGFS_REGISTER_ENTRY(eeprom, u16); 64 RT2X00DEBUGFS_REGISTER_ENTRY(bbp, u8); 65 RT2X00DEBUGFS_REGISTER_ENTRY(rf, u32); 66 RT2X00DEBUGFS_REGISTER_ENTRY(rfcsr, u8); 67 }; 68 69 #endif /* RT2X00DEBUG_H */ 70