48 [kDtPattgenRegBlockCore] = 0x400E0000,
63 [kDtPattgenPeriphIoPda0Tx] = {
67 .periph_input_or_direct_pad = 0,
71 [kDtPattgenPeriphIoPcl0Tx] = {
75 .periph_input_or_direct_pad = 0,
79 [kDtPattgenPeriphIoPda1Tx] = {
83 .periph_input_or_direct_pad = 0,
87 [kDtPattgenPeriphIoPcl1Tx] = {
91 .periph_input_or_direct_pad = 0,
104#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_pattgen_t)0 || (dt) >= kDtPattgenCount) return (default); &pattgen_desc[dt]; })
122 return TRY_GET_DT(dt, 0xdeadbeef)->reg_addr[reg_block];
129 return TRY_GET_DT(dt, 0xdeadbeef)->mem_addr[mem];
143 if (first_irq == kDtPlicIrqIdNone) {
144 return kDtPlicIrqIdNone;
154 if (first_irq == kDtPlicIrqIdNone) {
167 return (
dt_alert_id_t)((uint32_t)pattgen_desc[dt].first_alert + (uint32_t)alert);
174 if (alert < pattgen_desc[dt].first_alert || alert >= pattgen_desc[dt].first_alert + (
dt_alert_id_t)count) {
185 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];