STRUCT CDNSP_CAP_REGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 β€” HCCPARAMS2 Capability 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