13#include "hw/top/dt/dt_api.h"
19 kTopEarlgreyPlicIrqIdCount = kTopEarlgreyPlicIrqIdLast + 1,
22static const dt_instance_id_t instance_from_irq[kTopEarlgreyPlicIrqIdCount] = {
212 if (irq <= kTopEarlgreyPlicIrqIdLast) {
213 return instance_from_irq[irq];
220 kTopEarlgreyAlertIdCount = kTopEarlgreyAlertIdLast + 1,
223static const dt_instance_id_t instance_from_alert[kTopEarlgreyAlertIdCount] = {
292 if (alert <= kTopEarlgreyAlertIdLast) {
293 return instance_from_alert[alert];
346 if (dev < kDtInstanceIdCount) {
380 .mio_out_or_direct_pad = 0,
385 .mio_out_or_direct_pad = 0,
623 [kDtPadUsbdevUsbDp] = {
625 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsUsbdevUsbDp,
628 [kDtPadUsbdevUsbDn] = {
630 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsUsbdevUsbDn,
635 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd0,
640 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd1,
645 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd2,
650 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd3,
655 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd0,
660 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd1,
665 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd2,
670 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd3,
675 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSysrstCtrlAonEcRstL,
680 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSysrstCtrlAonFlashWpL,
685 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSck,
690 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceCsb,
695 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sck,
700 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Csb,
707#define TRY_GET_PAD(pad, default) ({ if ((pad) < (dt_pad_t)0 || (pad) >= kDtPadCount) return (default); &dt_pad[pad]; })
714 return (dt_pinmux_mio_out_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
723 return (dt_pinmux_insel_t)TRY_GET_PAD(pad, 0)->insel;
727 return (dt_pinmux_direct_pad_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
734 .periph_input_or_direct_pad = 0,
735 .outsel_or_dt_pad = kDtPinmuxOutselConstantHighZ,
743 .periph_input_or_direct_pad = 0,
744 .outsel_or_dt_pad = kDtPinmuxOutselConstantZero,
752 .periph_input_or_direct_pad = 0,
753 .outsel_or_dt_pad = kDtPinmuxOutselConstantOne,