13#include "hw/top/dt/api.h"
19 kTopEgretPlicIrqIdCount = kTopEgretPlicIrqIdLast + 1,
212 if (irq <= kTopEgretPlicIrqIdLast) {
213 return instance_from_irq[irq];
220 kTopEgretAlertIdCount = kTopEgretAlertIdLast + 1,
292 if (alert <= kTopEgretAlertIdLast) {
293 return instance_from_alert[alert];
381 .mio_out_or_direct_pad = 0,
386 .mio_out_or_direct_pad = 0,
624 [kDtPadUsbdevUsbDp] = {
626 .mio_out_or_direct_pad = kTopEgretDirectPadsUsbdevUsbDp,
629 [kDtPadUsbdevUsbDn] = {
631 .mio_out_or_direct_pad = kTopEgretDirectPadsUsbdevUsbDn,
636 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiHost0Sd0,
641 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiHost0Sd1,
646 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiHost0Sd2,
651 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiHost0Sd3,
656 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiDeviceSd0,
661 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiDeviceSd1,
666 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiDeviceSd2,
671 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiDeviceSd3,
676 .mio_out_or_direct_pad = kTopEgretDirectPadsSysrstCtrlAonEcRstL,
681 .mio_out_or_direct_pad = kTopEgretDirectPadsSysrstCtrlAonFlashWpL,
686 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiDeviceSck,
691 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiDeviceCsb,
696 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiHost0Sck,
701 .mio_out_or_direct_pad = kTopEgretDirectPadsSpiHost0Csb,
708#define TRY_GET_PAD(pad, default) ({ if ((pad) < (dt_pad_t)0 || (int)(pad) >= kDtPadCount) return (default); &dt_pad[pad]; })
715 return (dt_pinmux_mio_out_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
724 return (dt_pinmux_insel_t)TRY_GET_PAD(pad, 0)->insel;
728 return (dt_pinmux_direct_pad_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
735 .periph_input_or_direct_pad = 0,
736 .outsel_or_dt_pad = kDtPinmuxOutselConstantHighZ,
744 .periph_input_or_direct_pad = 0,
745 .outsel_or_dt_pad = kDtPinmuxOutselConstantZero,
753 .periph_input_or_direct_pad = 0,
754 .outsel_or_dt_pad = kDtPinmuxOutselConstantOne,