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] = {
289 if (alert <= kTopEarlgreyAlertIdLast) {
290 return instance_from_alert[alert];
376 .mio_out_or_direct_pad = 0,
381 .mio_out_or_direct_pad = 0,
619 [kDtPadUsbdevUsbDp] = {
621 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsUsbdevUsbDp,
624 [kDtPadUsbdevUsbDn] = {
626 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsUsbdevUsbDn,
631 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd0,
636 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd1,
641 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd2,
646 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sd3,
651 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd0,
656 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd1,
661 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd2,
666 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd3,
671 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSysrstCtrlAonEcRstL,
676 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSysrstCtrlAonFlashWpL,
681 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSck,
686 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceCsb,
691 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Sck,
696 .mio_out_or_direct_pad = kTopEarlgreyDirectPadsSpiHost0Csb,
703#define TRY_GET_PAD(pad, default) ({ if ((pad) < (dt_pad_t)0 || (int)(pad) >= kDtPadCount) return (default); &dt_pad[pad]; })
710 return (dt_pinmux_mio_out_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
719 return (dt_pinmux_insel_t)TRY_GET_PAD(pad, 0)->insel;
723 return (dt_pinmux_direct_pad_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
730 .periph_input_or_direct_pad = 0,
731 .outsel_or_dt_pad = kDtPinmuxOutselConstantHighZ,
739 .periph_input_or_direct_pad = 0,
740 .outsel_or_dt_pad = kDtPinmuxOutselConstantZero,
748 .periph_input_or_direct_pad = 0,
749 .outsel_or_dt_pad = kDtPinmuxOutselConstantOne,