14 #include "usbdev_regs.h"
36 alert_idx = USBDEV_ALERT_TEST_FATAL_FAULT_BIT;
44 (ptrdiff_t)USBDEV_ALERT_TEST_REG_OFFSET, alert_test_reg);
56 *index_out = USBDEV_INTR_COMMON_PKT_RECEIVED_BIT;
59 *index_out = USBDEV_INTR_COMMON_PKT_SENT_BIT;
62 *index_out = USBDEV_INTR_COMMON_DISCONNECTED_BIT;
65 *index_out = USBDEV_INTR_COMMON_HOST_LOST_BIT;
68 *index_out = USBDEV_INTR_COMMON_LINK_RESET_BIT;
71 *index_out = USBDEV_INTR_COMMON_LINK_SUSPEND_BIT;
74 *index_out = USBDEV_INTR_COMMON_LINK_RESUME_BIT;
77 *index_out = USBDEV_INTR_COMMON_AV_OUT_EMPTY_BIT;
80 *index_out = USBDEV_INTR_COMMON_RX_FULL_BIT;
83 *index_out = USBDEV_INTR_COMMON_AV_OVERFLOW_BIT;
86 *index_out = USBDEV_INTR_COMMON_LINK_IN_ERR_BIT;
89 *index_out = USBDEV_INTR_COMMON_RX_CRC_ERR_BIT;
92 *index_out = USBDEV_INTR_COMMON_RX_PID_ERR_BIT;
95 *index_out = USBDEV_INTR_COMMON_RX_BITSTUFF_ERR_BIT;
98 *index_out = USBDEV_INTR_COMMON_FRAME_BIT;
101 *index_out = USBDEV_INTR_COMMON_POWERED_BIT;
104 *index_out = USBDEV_INTR_COMMON_LINK_OUT_ERR_BIT;
107 *index_out = USBDEV_INTR_COMMON_AV_SETUP_EMPTY_BIT;
128 if (usbdev == NULL || type == NULL || irq < 0 ||
133 *type = irq_types[irq];
141 if (usbdev == NULL || snapshot == NULL) {
145 *snapshot = mmio_region_read32(usbdev->
base_addr,
146 (ptrdiff_t)USBDEV_INTR_STATE_REG_OFFSET);
154 if (usbdev == NULL) {
159 (ptrdiff_t)USBDEV_INTR_STATE_REG_OFFSET, snapshot);
167 if (usbdev == NULL || is_pending == NULL) {
172 if (!usbdev_get_irq_bit_index(irq, &index)) {
176 uint32_t intr_state_reg = mmio_region_read32(
177 usbdev->
base_addr, (ptrdiff_t)USBDEV_INTR_STATE_REG_OFFSET);
186 if (usbdev == NULL) {
192 (ptrdiff_t)USBDEV_INTR_STATE_REG_OFFSET, UINT32_MAX);
200 if (usbdev == NULL) {
205 if (!usbdev_get_irq_bit_index(irq, &index)) {
212 (ptrdiff_t)USBDEV_INTR_STATE_REG_OFFSET, intr_state_reg);
220 if (usbdev == NULL) {
225 if (!usbdev_get_irq_bit_index(irq, &index)) {
230 mmio_region_write32(usbdev->
base_addr, (ptrdiff_t)USBDEV_INTR_TEST_REG_OFFSET,
240 if (usbdev == NULL || state == NULL) {
245 if (!usbdev_get_irq_bit_index(irq, &index)) {
249 uint32_t intr_enable_reg = mmio_region_read32(
250 usbdev->
base_addr, (ptrdiff_t)USBDEV_INTR_ENABLE_REG_OFFSET);
262 if (usbdev == NULL) {
267 if (!usbdev_get_irq_bit_index(irq, &index)) {
271 uint32_t intr_enable_reg = mmio_region_read32(
272 usbdev->
base_addr, (ptrdiff_t)USBDEV_INTR_ENABLE_REG_OFFSET);
277 (ptrdiff_t)USBDEV_INTR_ENABLE_REG_OFFSET,
286 if (usbdev == NULL) {
291 if (snapshot != NULL) {
292 *snapshot = mmio_region_read32(usbdev->
base_addr,
293 (ptrdiff_t)USBDEV_INTR_ENABLE_REG_OFFSET);
298 (ptrdiff_t)USBDEV_INTR_ENABLE_REG_OFFSET, 0u);
307 if (usbdev == NULL || snapshot == NULL) {
312 (ptrdiff_t)USBDEV_INTR_ENABLE_REG_OFFSET, *snapshot);