STRUCT CDNS3_USB_REGS(9)
okay so welcome to struct cdns3_usb_regs(9), bestie β this is the Kernel API Manual entry for the device controller registers, and we are about to get into every single field π
π NAME π
struct cdns3_usb_regs β device controller registers. That's the whole name, no extra lore: it's the register crew for the device controller, and every field gets its moment below, periodt.
β¨ SYNOPSIS β¨
Here's the struct in all its layout glory β exact field names, exact types, no edits from me:
struct cdns3_usb_regs {
__le32 usb_conf;
__le32 usb_sts;
__le32 usb_cmd;
__le32 usb_itpn;
__le32 usb_lpm;
__le32 usb_ien;
__le32 usb_ists;
__le32 ep_sel;
__le32 ep_traddr;
__le32 ep_cfg;
__le32 ep_cmd;
__le32 ep_sts;
__le32 ep_sts_sid;
__le32 ep_sts_en;
__le32 drbl;
__le32 ep_ien;
__le32 ep_ists;
__le32 usb_pwr;
__le32 usb_conf2;
__le32 usb_cap1;
__le32 usb_cap2;
__le32 usb_cap3;
__le32 usb_cap4;
__le32 usb_cap5;
__le32 usb_cap6;
__le32 usb_cpkt1;
__le32 usb_cpkt2;
__le32 usb_cpkt3;
__le32 ep_dma_ext_addr;
__le32 buf_addr;
__le32 buf_data;
__le32 buf_ctrl;
__le32 dtrans;
__le32 tdl_from_trb;
__le32 tdl_beh;
__le32 ep_tdl;
__le32 tdl_beh2;
__le32 dma_adv_td;
__le32 reserved1[26];
__le32 cfg_reg1;
__le32 dbg_link1;
__le32 dbg_link2;
__le32 cfg_regs[74];
__le32 reserved2[51];
__le32 dma_axi_ctrl;
__le32 dma_axi_id;
__le32 dma_axi_cap;
__le32 dma_axi_ctrl0;
__le32 dma_axi_ctrl1;
};
Peep the array sizes and the extra layout fields up there: reserved1[26], cfg_reg1, dbg_link1, dbg_link2, cfg_regs[74], and reserved2[51] are all part of the struct in the synopsis. The Members list below keeps the same order as the original, fr fr.
π§ Members π§
okay bestie, field-by-field tour. Names and meanings stay exact, the vibe is just cuter π«Ά
usb_confβ Global Configuration. Big config energy.usb_stsβ Global Status. Status check, main character style.usb_cmdβ Global Command. Command-core.usb_itpnβ ITP/SOF number. The number, literally as written.usb_lpmβ Global Command. Yep, that's what it says here too β no fixing, no cap.usb_ienβ USB Interrupt Enable. Enable energy for USB interrupts.usb_istsβ USB Interrupt Status. Status but for USB interrupts.ep_selβ Endpoint Select. Pick your endpoint, periodt.ep_traddrβ Endpoint Transfer Ring Address. Address for the endpoint transfer ring, exactly what it says.ep_cfgβ Endpoint Configuration. Endpoint config moment.ep_cmdβ Endpoint Command. Endpoint command core.ep_stsβ Endpoint Status. Endpoint status vibes.ep_sts_sidβ Endpoint Status. Same words asep_sts, but a different field β keeping it exact.ep_sts_enβ Endpoint Status Enable. Enable-core for endpoint status.drblβ Doorbell. Ding dong, bestie.ep_ienβ EP Interrupt Enable. Enable energy for EP interrupts.ep_istsβ EP Interrupt Status. EP interrupt status, slay.usb_pwrβ Global Power Configuration. Power config with global reach.usb_conf2β Global Configuration 2. The sequel config.usb_cap1β Capability 1. Capability number one, iconic.usb_cap2β Capability 2. Capability number two, still iconic.usb_cap3β Capability 3. Capability number three, we love a trio.usb_cap4β Capability 4. Capability number four, no skips.usb_cap5β Capability 5. Capability number five, highkey essential.usb_cap6β Capability 6. Capability number six, closing the cap run.usb_cpkt1β Custom Packet 1. Custom packet number one.usb_cpkt2β Custom Packet 2. Custom packet number two.usb_cpkt3β Custom Packet 3. Custom packet number three.ep_dma_ext_addrβ Upper address for DMA operations. Upper address detail, exactly as listed.buf_addrβ Address for On-chip Buffer operations. Address for on-chip buffer operations, periodt.buf_dataβ Data for On-chip Buffer operations. Data for on-chip buffer operations.buf_ctrlβ On-chip Buffer Access Control. Access control for the on-chip buffer.dtransβ DMA Transfer Mode. Transfer mode but make it DMA.tdl_from_trbβ Source of TD Configuration. Source-of-TD-configuration energy.tdl_behβ TDL Behavior Configuration. TDL behavior config, noted.ep_tdlβ Endpoint TDL. Endpoint TDL, simple and exact.tdl_beh2β TDL Behavior 2 Configuration. TDL behavior sequel config.dma_adv_tdβ DMA Advance TD Configuration. DMA advance TD config, we see you.reserved1β Reserved. Just reserved, bestie. Respect the reserve.cfg_regsβ Configuration. Config regs doing their config thing.reserved2β Reserved. Another reserved moment, no notes.dma_axi_ctrlβ AXI Control. AXI control, slay.dma_axi_idβ AXI ID register. AXI ID register, exactly as written.dma_axi_capβ AXI Capability. AXI capability, iconic.dma_axi_ctrl0β AXI Control 0. AXI control zero.dma_axi_ctrl1β AXI Control 1. AXI control one, closing it out.
π¦ SEE ALSO π¦
Kernel file ./drivers/usb/cdns3/cdns3-gadget.h is the plug β it points at this whole squad:
struct cdns3_trb(9)struct cdns3_endpoint(9)struct cdns3_aligned_buf(9)struct cdns3_request(9)struct cdns3_device(9)
Signed, sealed, and delivered from ./drivers/usb/cdns3, dated October 2026, for struct cdns3_usb_regs(9) β bye bestie, go read some registers π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms