12#include "hw/top/dt/dt_usbdev.h"
48 [kDtUsbdevRegBlockCore] = 0x40320000,
65 [kDtUsbdevPeriphIoSense] = {
70 .outsel_or_dt_pad = 0,
73 [kDtUsbdevPeriphIoUsbDp] = {
77 .periph_input_or_direct_pad = 0,
78 .outsel_or_dt_pad = 0,
81 [kDtUsbdevPeriphIoUsbDn] = {
85 .periph_input_or_direct_pad = 0,
86 .outsel_or_dt_pad = 0,
98#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_usbdev_t)0 || (dt) >= kDtUsbdevCount) return (default); &usbdev_desc[dt]; })
116 return TRY_GET_DT(dt, 0xdeadbeef)->reg_addr[reg_block];
123 return TRY_GET_DT(dt, 0xdeadbeef)->mem_addr[mem];
137 if (first_irq == kDtPlicIrqIdNone) {
138 return kDtPlicIrqIdNone;
148 if (first_irq == kDtPlicIrqIdNone) {
161 return (
dt_alert_id_t)((uint32_t)usbdev_desc[dt].first_alert + (uint32_t)alert);
168 if (alert < usbdev_desc[dt].first_alert || alert >= usbdev_desc[dt].first_alert + (
dt_alert_id_t)count) {
179 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];