rt2x00debug.h 1.3 KB

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