13#include "hw/top/dt/api.h"
19 kTopEarlgreyPlicIrqIdCount = kTopEarlgreyPlicIrqIdLast + 1,
22static const dt_instance_id_t instance_from_irq[kTopEarlgreyPlicIrqIdCount] = {
210 if (irq <= kTopEarlgreyPlicIrqIdLast) {
211 return instance_from_irq[irq];
218 kTopEarlgreyAlertIdCount = kTopEarlgreyAlertIdLast + 1,
221static const dt_instance_id_t instance_from_alert[kTopEarlgreyAlertIdCount] = {
288 if (alert <= kTopEarlgreyAlertIdLast) {
289 return instance_from_alert[alert];
374 .mio_out_or_direct_pad = 0,
379 .mio_out_or_direct_pad = 0,
617 [kDtPadUsbdevUsbDp] = {
619 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsUsbdevUsbDp,
622 [kDtPadUsbdevUsbDn] = {
624 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsUsbdevUsbDn,
629 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd0,
634 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd1,
639 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd2,
644 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd3,
649 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd0,
654 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd1,
659 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd2,
664 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd3,
669 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSysrstCtrlAonEcRstL,
674 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSysrstCtrlAonFlashWpL,
679 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSck,
684 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceCsb,
689 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sck,
694 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Csb,
701#define TRY_GET_PAD(pad, default) ({ if ((pad) < (dt_pad_t)0 || (int)(pad) >= kDtPadCount) return (default); &dt_pad[pad]; })
708 return (dt_pinmux_mio_out_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
717 return (dt_pinmux_insel_t)TRY_GET_PAD(pad, 0)->insel;
721 return (dt_pinmux_direct_pad_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
728 .periph_input_or_direct_pad = 0,
729 .outsel_or_dt_pad = kDtPinmuxOutselConstantHighZ,
737 .periph_input_or_direct_pad = 0,
738 .outsel_or_dt_pad = kDtPinmuxOutselConstantZero,
746 .periph_input_or_direct_pad = 0,
747 .outsel_or_dt_pad = kDtPinmuxOutselConstantOne,