13#include "hw/top/dt/api.h"
19 kTopDragonflyPlicIrqIdCount = kTopDragonflyPlicIrqIdLast + 1,
22static const dt_instance_id_t instance_from_irq[kTopDragonflyPlicIrqIdCount] = {
158 if (irq <= kTopDragonflyPlicIrqIdLast) {
159 return instance_from_irq[irq];
166 kTopDragonflyAlertIdCount = kTopDragonflyAlertIdLast + 1,
169static const dt_instance_id_t instance_from_alert[kTopDragonflyAlertIdCount] = {
250 if (alert <= kTopDragonflyAlertIdLast) {
251 return instance_from_alert[alert];
342 .mio_out_or_direct_pad = 0,
347 .mio_out_or_direct_pad = 0,
412 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiHost0Sd0,
417 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiHost0Sd1,
422 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiHost0Sd2,
427 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiHost0Sd3,
432 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiDeviceSd0,
437 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiDeviceSd1,
442 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiDeviceSd2,
447 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiDeviceSd3,
452 .mio_out_or_direct_pad = kTopDragonflyDirectPadsI2c0Scl,
457 .mio_out_or_direct_pad = kTopDragonflyDirectPadsI2c0Sda,
462 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio0,
467 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio1,
472 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio2,
477 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio3,
482 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio4,
487 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio5,
492 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio6,
497 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio7,
502 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio8,
507 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio9,
512 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio10,
517 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio11,
522 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio12,
527 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio13,
532 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio14,
537 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio15,
542 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio16,
547 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio17,
552 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio18,
557 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio19,
562 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio20,
567 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio21,
572 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio22,
577 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio23,
582 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio24,
587 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio25,
592 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio26,
597 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio27,
602 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio28,
607 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio29,
612 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio30,
617 .mio_out_or_direct_pad = kTopDragonflyDirectPadsGpioGpio31,
622 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiDeviceSck,
627 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiDeviceCsb,
632 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiDeviceTpmCsb,
637 .mio_out_or_direct_pad = kTopDragonflyDirectPadsUart0Rx,
642 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi0,
647 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi1,
652 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi2,
657 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi3,
662 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi4,
667 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi5,
672 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi6,
677 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi7,
682 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi8,
687 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi9,
692 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi10,
697 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpi11,
702 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiHost0Sck,
707 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSpiHost0Csb,
712 .mio_out_or_direct_pad = kTopDragonflyDirectPadsUart0Tx,
717 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo0,
722 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo1,
727 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo2,
732 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo3,
737 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo4,
742 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo5,
747 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo6,
752 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo7,
757 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo8,
762 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo9,
767 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo10,
772 .mio_out_or_direct_pad = kTopDragonflyDirectPadsSocProxySocGpo11,
779#define TRY_GET_PAD(pad, default) ({ if ((pad) < (dt_pad_t)0 || (int)(pad) >= kDtPadCount) return (default); &dt_pad[pad]; })
786 return (dt_pinmux_mio_out_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
795 return (dt_pinmux_insel_t)TRY_GET_PAD(pad, 0)->insel;
799 return (dt_pinmux_direct_pad_t)TRY_GET_PAD(pad, 0)->mio_out_or_direct_pad;
806 .periph_input_or_direct_pad = 0,
807 .outsel_or_dt_pad = kDtPinmuxOutselConstantHighZ,
815 .periph_input_or_direct_pad = 0,
816 .outsel_or_dt_pad = kDtPinmuxOutselConstantZero,
824 .periph_input_or_direct_pad = 0,
825 .outsel_or_dt_pad = kDtPinmuxOutselConstantOne,