12#include "dt/dt_usbdev.h"
46 [kDtUsbdevRegBlockCore] = 0x40320000,
59 [kDtUsbdevPeriphIoSense] = {
64 .outsel_or_dt_pad = 0,
67 [kDtUsbdevPeriphIoUsbDp] = {
71 .periph_input_or_direct_pad = 0,
72 .outsel_or_dt_pad = 0,
75 [kDtUsbdevPeriphIoUsbDn] = {
79 .periph_input_or_direct_pad = 0,
80 .outsel_or_dt_pad = 0,
92#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_usbdev_t)0 || (dt) >= kDtUsbdevCount) return (default); &usbdev_desc[dt]; })
110 return TRY_GET_DT(dt, 0xdeadbeef)->base_addr[reg_block];
117 if (first_irq == kDtPlicIrqIdNone) {
118 return kDtPlicIrqIdNone;
128 if (first_irq == kDtPlicIrqIdNone) {
141 return (
dt_alert_id_t)((uint32_t)usbdev_desc[dt].first_alert + (uint32_t)alert);
148 if (alert < usbdev_desc[dt].first_alert || alert >= usbdev_desc[dt].first_alert + (
dt_alert_id_t)count) {
159 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];