drivers/phy/tegra/xusb.h
Source file repositories/reference/linux-study-clean/drivers/phy/tegra/xusb.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/phy/tegra/xusb.h- Extension
.h- Size
- 12248 bytes
- Lines
- 519
- Domain
- Driver Families
- Bucket
- drivers/phy
- 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/io.hlinux/iopoll.hlinux/mutex.hlinux/workqueue.hlinux/usb/ch9.hlinux/usb/otg.hlinux/usb/role.h
Detected Declarations
struct phystruct phy_providerstruct platform_devicestruct regulatorstruct tegra_xusb_lane_socstruct tegra_xusb_lanestruct tegra_xusb_usb3_lanestruct tegra_xusb_usb2_lanestruct tegra_xusb_ulpi_lanestruct tegra_xusb_hsic_lanestruct tegra_xusb_pcie_lanestruct tegra_xusb_sata_lanestruct tegra_xusb_lane_opsstruct tegra_xusb_pad_socstruct tegra_xusb_padctlstruct tegra_xusb_pad_opsstruct tegra_xusb_pad_socstruct tegra_xusb_padstruct tegra_xusb_usb3_padstruct tegra_xusb_usb2_padstruct tegra_xusb_ulpi_padstruct tegra_xusb_hsic_padstruct tegra_xusb_pcie_padstruct tegra_xusb_sata_padstruct tegra_xusb_port_opsstruct tegra_xusb_portstruct tegra_xusb_lane_mapstruct tegra_xusb_usb2_portstruct tegra_xusb_ulpi_portstruct tegra_xusb_hsic_portstruct tegra_xusb_usb3_portstruct tegra_xusb_port_opsstruct tegra_xusb_padctl_socstruct tegra_xusb_padctl_opsstruct tegra_xusb_padctl_socstruct tegra_xusb_padctlfunction to_usb3_lanefunction to_usb2_lanefunction to_ulpi_lanefunction to_hsic_lanefunction to_pcie_lanefunction to_sata_lanefunction to_usb3_padfunction to_usb2_padfunction to_ulpi_padfunction to_hsic_padfunction to_pcie_padfunction to_sata_pad
Annotated Snippet
struct tegra_xusb_lane_soc {
const char *name;
unsigned int offset;
unsigned int shift;
unsigned int mask;
const char * const *funcs;
unsigned int num_funcs;
struct {
unsigned int misc_ctl2;
} regs;
};
struct tegra_xusb_lane {
const struct tegra_xusb_lane_soc *soc;
struct tegra_xusb_pad *pad;
struct device_node *np;
struct list_head list;
unsigned int function;
unsigned int index;
};
int tegra_xusb_lane_parse_dt(struct tegra_xusb_lane *lane,
struct device_node *np);
struct tegra_xusb_usb3_lane {
struct tegra_xusb_lane base;
};
static inline struct tegra_xusb_usb3_lane *
to_usb3_lane(struct tegra_xusb_lane *lane)
{
return container_of(lane, struct tegra_xusb_usb3_lane, base);
}
struct tegra_xusb_usb2_lane {
struct tegra_xusb_lane base;
u32 hs_curr_level_offset;
};
static inline struct tegra_xusb_usb2_lane *
to_usb2_lane(struct tegra_xusb_lane *lane)
{
return container_of(lane, struct tegra_xusb_usb2_lane, base);
}
struct tegra_xusb_ulpi_lane {
struct tegra_xusb_lane base;
};
static inline struct tegra_xusb_ulpi_lane *
to_ulpi_lane(struct tegra_xusb_lane *lane)
{
return container_of(lane, struct tegra_xusb_ulpi_lane, base);
}
struct tegra_xusb_hsic_lane {
struct tegra_xusb_lane base;
u32 strobe_trim;
u32 rx_strobe_trim;
u32 rx_data_trim;
u32 tx_rtune_n;
u32 tx_rtune_p;
u32 tx_rslew_n;
u32 tx_rslew_p;
bool auto_term;
};
static inline struct tegra_xusb_hsic_lane *
to_hsic_lane(struct tegra_xusb_lane *lane)
{
return container_of(lane, struct tegra_xusb_hsic_lane, base);
}
struct tegra_xusb_pcie_lane {
struct tegra_xusb_lane base;
};
static inline struct tegra_xusb_pcie_lane *
to_pcie_lane(struct tegra_xusb_lane *lane)
{
return container_of(lane, struct tegra_xusb_pcie_lane, base);
}
struct tegra_xusb_sata_lane {
struct tegra_xusb_lane base;
Annotation
- Immediate include surface: `linux/io.h`, `linux/iopoll.h`, `linux/mutex.h`, `linux/workqueue.h`, `linux/usb/ch9.h`, `linux/usb/otg.h`, `linux/usb/role.h`.
- Detected declarations: `struct phy`, `struct phy_provider`, `struct platform_device`, `struct regulator`, `struct tegra_xusb_lane_soc`, `struct tegra_xusb_lane`, `struct tegra_xusb_usb3_lane`, `struct tegra_xusb_usb2_lane`, `struct tegra_xusb_ulpi_lane`, `struct tegra_xusb_hsic_lane`.
- Atlas domain: Driver Families / drivers/phy.
- 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.