xref: /openbmc/linux/drivers/net/wireless/ralink/rt2x00/rt2x00debug.h (revision 58e16d792a6a8c6b750f637a4649967fcac853dc)
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