include/linux/usb/usb338x.h
Source file repositories/reference/linux-study-clean/include/linux/usb/usb338x.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/usb/usb338x.h- Extension
.h- Size
- 7470 bytes
- Lines
- 209
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/usb/net2280.h
Detected Declarations
struct usb338x_usb_ext_regsstruct usb338x_fifo_regsstruct usb338x_ll_regsstruct usb338x_pl_regs
Annotated Snippet
struct usb338x_usb_ext_regs {
u32 usbclass;
#define DEVICE_PROTOCOL 16
#define DEVICE_SUB_CLASS 8
#define DEVICE_CLASS 0
u32 ss_sel;
#define U2_SYSTEM_EXIT_LATENCY 8
#define U1_SYSTEM_EXIT_LATENCY 0
u32 ss_del;
#define U2_DEVICE_EXIT_LATENCY 8
#define U1_DEVICE_EXIT_LATENCY 0
u32 usb2lpm;
#define USB_L1_LPM_HIRD 2
#define USB_L1_LPM_REMOTE_WAKE 1
#define USB_L1_LPM_SUPPORT 0
u32 usb3belt;
#define BELT_MULTIPLIER 10
#define BEST_EFFORT_LATENCY_TOLERANCE 0
u32 usbctl2;
#define LTM_ENABLE 7
#define U2_ENABLE 6
#define U1_ENABLE 5
#define FUNCTION_SUSPEND 4
#define USB3_CORE_ENABLE 3
#define USB2_CORE_ENABLE 2
#define SERIAL_NUMBER_STRING_ENABLE 0
u32 in_timeout;
#define GPEP3_TIMEOUT 19
#define GPEP2_TIMEOUT 18
#define GPEP1_TIMEOUT 17
#define GPEP0_TIMEOUT 16
#define GPEP3_TIMEOUT_VALUE 13
#define GPEP3_TIMEOUT_ENABLE 12
#define GPEP2_TIMEOUT_VALUE 9
#define GPEP2_TIMEOUT_ENABLE 8
#define GPEP1_TIMEOUT_VALUE 5
#define GPEP1_TIMEOUT_ENABLE 4
#define GPEP0_TIMEOUT_VALUE 1
#define GPEP0_TIMEOUT_ENABLE 0
u32 isodelay;
#define ISOCHRONOUS_DELAY 0
} __packed;
struct usb338x_fifo_regs {
/* offset 0x0500, 0x0520, 0x0540, 0x0560, 0x0580 */
u32 ep_fifo_size_base;
#define IN_FIFO_BASE_ADDRESS 22
#define IN_FIFO_SIZE 16
#define OUT_FIFO_BASE_ADDRESS 6
#define OUT_FIFO_SIZE 0
u32 ep_fifo_out_wrptr;
u32 ep_fifo_out_rdptr;
u32 ep_fifo_in_wrptr;
u32 ep_fifo_in_rdptr;
u32 unused[3];
} __packed;
/* Link layer */
struct usb338x_ll_regs {
/* offset 0x700 */
u32 ll_ltssm_ctrl1;
u32 ll_ltssm_ctrl2;
u32 ll_ltssm_ctrl3;
u32 unused1;
/* 0x710 */
u32 unused2;
u32 ll_general_ctrl0;
u32 ll_general_ctrl1;
#define PM_U3_AUTO_EXIT 29
#define PM_U2_AUTO_EXIT 28
#define PM_U1_AUTO_EXIT 27
#define PM_FORCE_U2_ENTRY 26
#define PM_FORCE_U1_ENTRY 25
#define PM_LGO_COLLISION_SEND_LAU 24
#define PM_DIR_LINK_REJECT 23
#define PM_FORCE_LINK_ACCEPT 22
#define PM_DIR_ENTRY_U3 20
#define PM_DIR_ENTRY_U2 19
#define PM_DIR_ENTRY_U1 18
#define PM_U2_ENABLE 17
#define PM_U1_ENABLE 16
#define SKP_THRESHOLD_ADJUST_FMW 8
#define RESEND_DPP_ON_LRTY_FMW 7
#define DL_BIT_VALUE_FMW 6
#define FORCE_DL_BIT 5
u32 ll_general_ctrl2;
#define SELECT_INVERT_LANE_POLARITY 7
#define FORCE_INVERT_LANE_POLARITY 6
Annotation
- Immediate include surface: `linux/usb/net2280.h`.
- Detected declarations: `struct usb338x_usb_ext_regs`, `struct usb338x_fifo_regs`, `struct usb338x_ll_regs`, `struct usb338x_pl_regs`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.