13#include "hw/top/dt/api.h"
19 kTopEarlgreyPlicIrqIdCount = kTopEarlgreyPlicIrqIdLast + 1,
22static const dt_instance_id_t instance_from_irq[kTopEarlgreyPlicIrqIdCount] = {
248 if (irq <= kTopEarlgreyPlicIrqIdLast) {
249 return instance_from_irq[irq];
256 kTopEarlgreyAlertIdCount = kTopEarlgreyAlertIdLast + 1,
259static const dt_instance_id_t instance_from_alert[kTopEarlgreyAlertIdCount] = {
332 if (alert <= kTopEarlgreyAlertIdLast) {
333 return instance_from_alert[alert];
424 .mio_out_or_direct_pad = 0,
429 .mio_out_or_direct_pad = 0,
667 [kDtPadUsbdevUsbDp] = {
669 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsUsbdevUsbDp,
672 [kDtPadUsbdevUsbDn] = {
674 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsUsbdevUsbDn,
679 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd0,
684 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd1,
689 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd2,
694 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd3,
699 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd0,
704 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd1,
709 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd2,
714 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd3,
719 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSysrstCtrlEcRstL,
724 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSysrstCtrlFlashWpL,
729 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSck,
734 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceCsb,
739 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sck,
744 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Csb0,
751#define TRY_GET_PAD(pad, default) ({ if ((pad) < (dt_pad_t)0 || (int)(pad) >= kDtPadCount) return (default); &dt_pad[pad]; })
758 return (dt_pinmux_mio_out_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
767 return (dt_pinmux_insel_t)TRY_GET_PAD(pad, 0)->insel;
771 return (dt_pinmux_direct_pad_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
778 .periph_input_or_direct_pad = 0,
779 .outsel_or_dt_pad = kDtPinmuxOutselConstantHighZ,
787 .periph_input_or_direct_pad = 0,
788 .outsel_or_dt_pad = kDtPinmuxOutselConstantZero,
796 .periph_input_or_direct_pad = 0,
797 .outsel_or_dt_pad = kDtPinmuxOutselConstantOne,