8#ifndef _HARDWARE_STRUCTS_USB_H
9#define _HARDWARE_STRUCTS_USB_H
12#include "hardware/regs/usb.h"
13#include "hardware/structs/usb_dpram.h"
24 _REG_(USB_ADDR_ENDP_OFFSET)
28 io_rw_32 dev_addr_ctrl;
31 _REG_(USB_ADDR_ENDP1_OFFSET)
37 io_rw_32 int_ep_addr_ctrl[15];
39 _REG_(USB_MAIN_CTRL_OFFSET)
47 _REG_(USB_SOF_WR_OFFSET)
52 _REG_(USB_SOF_RD_OFFSET)
57 _REG_(USB_SIE_CTRL_OFFSET)
86 _REG_(USB_SIE_STATUS_OFFSET)
110 _REG_(USB_INT_EP_CTRL_OFFSET)
113 io_rw_32 int_ep_ctrl;
115 _REG_(USB_BUFF_STATUS_OFFSET)
151 _REG_(USB_BUFF_CPU_SHOULD_HANDLE_OFFSET)
185 io_ro_32 buf_cpu_should_handle;
187 _REG_(USB_EP_ABORT_OFFSET)
223 _REG_(USB_EP_ABORT_DONE_OFFSET)
259 _REG_(USB_EP_STALL_ARM_OFFSET)
263 io_rw_32 ep_stall_arm;
265 _REG_(USB_NAK_POLL_OFFSET)
275 _REG_(USB_EP_STATUS_STALL_NAK_OFFSET)
309 io_rw_32 ep_nak_stall_status;
311 _REG_(USB_USB_MUXING_OFFSET)
321 _REG_(USB_USB_PWR_OFFSET)
331 _REG_(USB_USBPHY_DIRECT_OFFSET)
359 _REG_(USB_USBPHY_DIRECT_OVERRIDE_OFFSET)
378 io_rw_32 phy_direct_override;
380 _REG_(USB_USBPHY_TRIM_OFFSET)
386 _REG_(USB_LINESTATE_TUNING_OFFSET)
397 io_rw_32 linestate_tuning;
399 _REG_(USB_INTR_OFFSET)
427 _REG_(USB_INTE_OFFSET)
455 _REG_(USB_INTF_OFFSET)
483 _REG_(USB_INTS_OFFSET)
513 _REG_(USB_SOF_TIMESTAMP_RAW_OFFSET)
516 io_ro_32 sof_timestamp_raw;
518 _REG_(USB_SOF_TIMESTAMP_LAST_OFFSET)
521 io_ro_32 sof_timestamp_last;
523 _REG_(USB_SM_STATE_OFFSET)
529 _REG_(USB_EP_TX_ERROR_OFFSET)
547 io_rw_32 ep_tx_error;
549 _REG_(USB_EP_RX_ERROR_OFFSET)
583 io_rw_32 ep_rx_error;
585 _REG_(USB_DEV_SM_WATCHDOG_OFFSET)
591 io_rw_32 dev_sm_watchdog;
595#define usb_hw ((usb_hw_t *)USBCTRL_REGS_BASE)
596static_assert(
sizeof (
usb_hw_t) == 0x0118,
"");