162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci Copyright (C) 2004 - 2009 Ivo van Doorn <IvDoorn@gmail.com> 462306a36Sopenharmony_ci <http://rt2x00.serialmonkey.com> 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci/* 962306a36Sopenharmony_ci Module: rt2x00debug 1062306a36Sopenharmony_ci Abstract: Data structures for the rt2x00debug. 1162306a36Sopenharmony_ci */ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#ifndef RT2X00DEBUG_H 1462306a36Sopenharmony_ci#define RT2X00DEBUG_H 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cistruct rt2x00_dev; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci/** 1962306a36Sopenharmony_ci * enum rt2x00debugfs_entry_flags: Flags for debugfs registry entry 2062306a36Sopenharmony_ci * 2162306a36Sopenharmony_ci * @RT2X00DEBUGFS_OFFSET: rt2x00lib should pass the register offset 2262306a36Sopenharmony_ci * as argument when using the callback function read()/write() 2362306a36Sopenharmony_ci */ 2462306a36Sopenharmony_cienum rt2x00debugfs_entry_flags { 2562306a36Sopenharmony_ci RT2X00DEBUGFS_OFFSET = (1 << 0), 2662306a36Sopenharmony_ci}; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci#define RT2X00DEBUGFS_REGISTER_ENTRY(__name, __type) \ 2962306a36Sopenharmony_cistruct reg##__name { \ 3062306a36Sopenharmony_ci __type (*read)(struct rt2x00_dev *rt2x00dev, \ 3162306a36Sopenharmony_ci const unsigned int word); \ 3262306a36Sopenharmony_ci void (*write)(struct rt2x00_dev *rt2x00dev, \ 3362306a36Sopenharmony_ci const unsigned int word, __type data); \ 3462306a36Sopenharmony_ci \ 3562306a36Sopenharmony_ci unsigned int flags; \ 3662306a36Sopenharmony_ci \ 3762306a36Sopenharmony_ci unsigned int word_base; \ 3862306a36Sopenharmony_ci unsigned int word_size; \ 3962306a36Sopenharmony_ci unsigned int word_count; \ 4062306a36Sopenharmony_ci} __name 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_cistruct rt2x00debug { 4362306a36Sopenharmony_ci /* 4462306a36Sopenharmony_ci * Reference to the modules structure. 4562306a36Sopenharmony_ci */ 4662306a36Sopenharmony_ci struct module *owner; 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci /* 4962306a36Sopenharmony_ci * Register access entries. 5062306a36Sopenharmony_ci */ 5162306a36Sopenharmony_ci RT2X00DEBUGFS_REGISTER_ENTRY(csr, u32); 5262306a36Sopenharmony_ci RT2X00DEBUGFS_REGISTER_ENTRY(eeprom, u16); 5362306a36Sopenharmony_ci RT2X00DEBUGFS_REGISTER_ENTRY(bbp, u8); 5462306a36Sopenharmony_ci RT2X00DEBUGFS_REGISTER_ENTRY(rf, u32); 5562306a36Sopenharmony_ci RT2X00DEBUGFS_REGISTER_ENTRY(rfcsr, u8); 5662306a36Sopenharmony_ci}; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci#endif /* RT2X00DEBUG_H */ 59