13#include "hw/top/dt/api.h"
19 kTopEarlgreyPlicIrqIdCount = kTopEarlgreyPlicIrqIdLast + 1,
22static const dt_instance_id_t instance_from_irq[kTopEarlgreyPlicIrqIdCount] = {
216 if (irq <= kTopEarlgreyPlicIrqIdLast) {
217 return instance_from_irq[irq];
224 kTopEarlgreyAlertIdCount = kTopEarlgreyAlertIdLast + 1,
227static const dt_instance_id_t instance_from_alert[kTopEarlgreyAlertIdCount] = {
299 if (alert <= kTopEarlgreyAlertIdLast) {
300 return instance_from_alert[alert];
390 .mio_out_or_direct_pad = 0,
395 .mio_out_or_direct_pad = 0,
633 [kDtPadUsbdevUsbDp] = {
635 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsUsbdevUsbDp,
638 [kDtPadUsbdevUsbDn] = {
640 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsUsbdevUsbDn,
645 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd0,
650 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd1,
655 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd2,
660 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd3,
665 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd0,
670 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd1,
675 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd2,
680 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd3,
685 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSysrstCtrlEcRstL,
690 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSysrstCtrlFlashWpL,
695 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSck,
700 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceCsb,
705 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sck,
710 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Csb,
717#define TRY_GET_PAD(pad, default) ({ if ((pad) < (dt_pad_t)0 || (int)(pad) >= kDtPadCount) return (default); &dt_pad[pad]; })
724 return (dt_pinmux_mio_out_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
733 return (dt_pinmux_insel_t)TRY_GET_PAD(pad, 0)->insel;
737 return (dt_pinmux_direct_pad_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
744 .periph_input_or_direct_pad = 0,
745 .outsel_or_dt_pad = kDtPinmuxOutselConstantHighZ,
753 .periph_input_or_direct_pad = 0,
754 .outsel_or_dt_pad = kDtPinmuxOutselConstantZero,
762 .periph_input_or_direct_pad = 0,
763 .outsel_or_dt_pad = kDtPinmuxOutselConstantOne,