STRUCT CDNSP_CAP_REGS(9)
π struct cdnsp_cap_regs(9)
okay so this is a page straight out of the Kernel API Manual β yes, bestie, the actual kernel docs β and it's all about struct cdnsp_cap_regs, aka the CDNSP Registers β¨
Think of it as the little bundle of capability registers at the front of the CDNSP (Cadence USB) controller: the vibe-check zone where the hardware tells you what it can do π
πΈ SYNOPSIS πΈ
struct cdnsp_cap_regs {
__le32 hc_capbase;
__le32 hcs_params1;
__le32 hcs_params2;
__le32 hcs_params3;
__le32 hcc_params;
__le32 db_off;
__le32 run_regs_off;
__le32 hcc_params2;
};
no cap, that's the whole struct β eight __le32 fields, all matching up with the hardware register layout π
π¦ Members π¦
hc_capbaseβ the capability register length plus the controller's version number. like the controller introducing itself fr fr πhcs_params1βHCSPARAMS1β Structural Parameters 1 πΈhcs_params2βHCSPARAMS2β Structural Parameters 2 πΈhcs_params3βHCSPARAMS3β Structural Parameters 3 πΈ
(yes bestie, they really went 1, 2, 3 β structural parameters are just built like that π )
hcc_paramsβHCCPARAMSβ Capability Parameters β¨db_offβDBOFFβ Doorbell array offset πrun_regs_offβRTSOFFβ Runtime register space offset π₯hcc_params2βHCCPARAMS2Capability Parameters 2, (the trailing comma is canon, don't come for me π)
β SEE ALSO β
Kernel file ./drivers/usb/cdns3/cdnsp-gadget.h β and honestly the whole CDNSP friend group shows up here, so let's give them their moment π
struct cdnsp_op_regs(9)struct cdnsp_port_regs(9)struct cdnsp_intr_reg(9)struct cdnsp_run_regs(9)struct cdnsp_rev_cap(9)struct cdnsp_doorbell_array(9)struct cdnsp_container_ctx(9)struct cdnsp_slot_ctx(9)struct cdnsp_ep_ctx(9)struct cdnsp_stream_info(9)struct cdnsp_ep(9)struct cdnsp_device_context_array(9)struct cdnsp_transfer_event(9)struct cdnsp_link_trb(9)struct cdnsp_event_cmd(9)struct cdnsp_segment(9)struct cdnsp_td(9)struct cdnsp_dequeue_state(9)struct cdnsp_ring(9)struct cdnsp_erst_entry(9)struct cdnsp_erst(9)struct cdnsp_request(9)struct cdnsp_port(9)struct cdnsp_device(9)next_request(9)
like, that's a whole group chat of structs and they're all iconique π«Ά
heads up bestie: every field in here is __le32, so keep your endianness game strong or the vibe check will NOT pass π
and that's the tea π this lil page lives in ./drivers/usb/cdns3, dated October 2026 β catch you in the kernel source, mwah πβ¨
π¦ 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