drivers/usb/host/r8a66597.h
Source file repositories/reference/linux-study-clean/drivers/usb/host/r8a66597.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/usb/host/r8a66597.h- Extension
.h- Size
- 8142 bytes
- Lines
- 340
- Domain
- Driver Families
- Bucket
- drivers/usb
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/clk.hlinux/usb/r8a66597.h
Detected Declarations
struct r8a66597_pipe_infostruct r8a66597_pipestruct r8a66597_tdstruct r8a66597_devicestruct r8a66597_root_hubstruct r8a66597struct r8a66597_timersstruct r8a66597function r8a66597_readfunction r8a66597_read_fifofunction r8a66597_writefunction r8a66597_mdfyfunction r8a66597_mdfyfunction get_syscfg_regfunction get_syssts_regfunction get_dvstctr_regfunction get_dmacfg_regfunction get_intenb_regfunction get_intsts_regfunction get_rh_usb_speedfunction r8a66597_port_powerfunction get_xtal_from_pdata
Annotated Snippet
struct r8a66597_pipe_info {
unsigned long timer_interval;
u16 pipenum;
u16 address; /* R8A66597 HCD usb address */
u16 epnum;
u16 maxpacket;
u16 type;
u16 bufnum;
u16 buf_bsize;
u16 interval;
u16 dir_in;
};
struct r8a66597_pipe {
struct r8a66597_pipe_info info;
unsigned long fifoaddr;
unsigned long fifosel;
unsigned long fifoctr;
unsigned long pipectr;
unsigned long pipetre;
unsigned long pipetrn;
};
struct r8a66597_td {
struct r8a66597_pipe *pipe;
struct urb *urb;
struct list_head queue;
u16 type;
u16 pipenum;
int iso_cnt;
u16 address; /* R8A66597's USB address */
u16 maxpacket;
unsigned zero_packet:1;
unsigned short_packet:1;
unsigned set_address:1;
};
struct r8a66597_device {
u16 address; /* R8A66597's USB address */
u16 hub_port;
u16 root_port;
unsigned short ep_in_toggle;
unsigned short ep_out_toggle;
unsigned char pipe_cnt[R8A66597_MAX_NUM_PIPE];
unsigned char dma_map;
enum usb_device_state state;
struct usb_device *udev;
int usb_address;
struct list_head device_list;
};
struct r8a66597_root_hub {
u32 port;
u16 old_syssts;
int scount;
struct r8a66597_device *dev;
};
struct r8a66597;
struct r8a66597_timers {
struct timer_list td;
struct timer_list interval;
struct r8a66597 *r8a66597;
};
struct r8a66597 {
spinlock_t lock;
void __iomem *reg;
struct clk *clk;
struct r8a66597_platdata *pdata;
struct r8a66597_device device0;
struct r8a66597_root_hub root_hub[R8A66597_MAX_ROOT_HUB];
struct list_head pipe_queue[R8A66597_MAX_NUM_PIPE];
struct timer_list rh_timer;
struct r8a66597_timers timers[R8A66597_MAX_NUM_PIPE];
unsigned short address_map;
unsigned short timeout_map;
unsigned short interval_map;
unsigned char pipe_cnt[R8A66597_MAX_NUM_PIPE];
Annotation
- Immediate include surface: `linux/clk.h`, `linux/usb/r8a66597.h`.
- Detected declarations: `struct r8a66597_pipe_info`, `struct r8a66597_pipe`, `struct r8a66597_td`, `struct r8a66597_device`, `struct r8a66597_root_hub`, `struct r8a66597`, `struct r8a66597_timers`, `struct r8a66597`, `function r8a66597_read`, `function r8a66597_read_fifo`.
- Atlas domain: Driver Families / drivers/usb.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.