1*1ccea77eSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 233aca94dSKalle Valo /* 333aca94dSKalle Valo Copyright (C) 2004 - 2009 Ivo van Doorn <IvDoorn@gmail.com> 433aca94dSKalle Valo <http://rt2x00.serialmonkey.com> 533aca94dSKalle Valo 633aca94dSKalle Valo */ 733aca94dSKalle Valo 833aca94dSKalle Valo /* 933aca94dSKalle Valo Module: rt2x00debug 1033aca94dSKalle Valo Abstract: Data structures for the rt2x00debug. 1133aca94dSKalle Valo */ 1233aca94dSKalle Valo 1333aca94dSKalle Valo #ifndef RT2X00DEBUG_H 1433aca94dSKalle Valo #define RT2X00DEBUG_H 1533aca94dSKalle Valo 1633aca94dSKalle Valo struct rt2x00_dev; 1733aca94dSKalle Valo 1833aca94dSKalle Valo /** 1933aca94dSKalle Valo * enum rt2x00debugfs_entry_flags: Flags for debugfs registry entry 2033aca94dSKalle Valo * 2133aca94dSKalle Valo * @RT2X00DEBUGFS_OFFSET: rt2x00lib should pass the register offset 2233aca94dSKalle Valo * as argument when using the callback function read()/write() 2333aca94dSKalle Valo */ 2433aca94dSKalle Valo enum rt2x00debugfs_entry_flags { 2533aca94dSKalle Valo RT2X00DEBUGFS_OFFSET = (1 << 0), 2633aca94dSKalle Valo }; 2733aca94dSKalle Valo 2833aca94dSKalle Valo #define RT2X00DEBUGFS_REGISTER_ENTRY(__name, __type) \ 2933aca94dSKalle Valo struct reg##__name { \ 306b81745eSArnd Bergmann __type (*read)(struct rt2x00_dev *rt2x00dev, \ 316b81745eSArnd Bergmann const unsigned int word); \ 3233aca94dSKalle Valo void (*write)(struct rt2x00_dev *rt2x00dev, \ 3333aca94dSKalle Valo const unsigned int word, __type data); \ 3433aca94dSKalle Valo \ 3533aca94dSKalle Valo unsigned int flags; \ 3633aca94dSKalle Valo \ 3733aca94dSKalle Valo unsigned int word_base; \ 3833aca94dSKalle Valo unsigned int word_size; \ 3933aca94dSKalle Valo unsigned int word_count; \ 4033aca94dSKalle Valo } __name 4133aca94dSKalle Valo 4233aca94dSKalle Valo struct rt2x00debug { 4333aca94dSKalle Valo /* 4433aca94dSKalle Valo * Reference to the modules structure. 4533aca94dSKalle Valo */ 4633aca94dSKalle Valo struct module *owner; 4733aca94dSKalle Valo 4833aca94dSKalle Valo /* 4933aca94dSKalle Valo * Register access entries. 5033aca94dSKalle Valo */ 5133aca94dSKalle Valo RT2X00DEBUGFS_REGISTER_ENTRY(csr, u32); 5233aca94dSKalle Valo RT2X00DEBUGFS_REGISTER_ENTRY(eeprom, u16); 5333aca94dSKalle Valo RT2X00DEBUGFS_REGISTER_ENTRY(bbp, u8); 5433aca94dSKalle Valo RT2X00DEBUGFS_REGISTER_ENTRY(rf, u32); 5533aca94dSKalle Valo RT2X00DEBUGFS_REGISTER_ENTRY(rfcsr, u8); 5633aca94dSKalle Valo }; 5733aca94dSKalle Valo 5833aca94dSKalle Valo #endif /* RT2X00DEBUG_H */ 59