13#include "hw/top/dt/dt_api.h"
19 kTopDarjeelingPlicIrqIdCount = kTopDarjeelingPlicIrqIdLast + 1,
22static const dt_instance_id_t instance_from_irq[kTopDarjeelingPlicIrqIdCount] = {
158 if (irq <= kTopDarjeelingPlicIrqIdLast) {
159 return instance_from_irq[irq];
166 kTopDarjeelingAlertIdCount = kTopDarjeelingAlertIdLast + 1,
169static const dt_instance_id_t instance_from_alert[kTopDarjeelingAlertIdCount] = {
250 if (alert <= kTopDarjeelingAlertIdLast) {
251 return instance_from_alert[alert];
308 if (dev < kDtInstanceIdCount) {
342 .mio_out_or_direct_pad = 0,
347 .mio_out_or_direct_pad = 0,
412 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiHost0Sd0,
417 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiHost0Sd1,
422 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiHost0Sd2,
427 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiHost0Sd3,
432 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiDeviceSd0,
437 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiDeviceSd1,
442 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiDeviceSd2,
447 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiDeviceSd3,
452 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsI2c0Scl,
457 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsI2c0Sda,
462 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio0,
467 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio1,
472 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio2,
477 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio3,
482 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio4,
487 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio5,
492 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio6,
497 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio7,
502 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio8,
507 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio9,
512 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio10,
517 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio11,
522 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio12,
527 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio13,
532 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio14,
537 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio15,
542 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio16,
547 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio17,
552 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio18,
557 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio19,
562 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio20,
567 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio21,
572 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio22,
577 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio23,
582 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio24,
587 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio25,
592 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio26,
597 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio27,
602 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio28,
607 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio29,
612 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio30,
617 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio31,
622 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiDeviceSck,
627 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiDeviceCsb,
632 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiDeviceTpmCsb,
637 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsUart0Rx,
642 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi0,
647 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi1,
652 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi2,
657 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi3,
662 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi4,
667 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi5,
672 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi6,
677 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi7,
682 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi8,
687 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi9,
692 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi10,
697 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi11,
702 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiHost0Sck,
707 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSpiHost0Csb,
712 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsUart0Tx,
717 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo0,
722 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo1,
727 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo2,
732 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo3,
737 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo4,
742 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo5,
747 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo6,
752 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo7,
757 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo8,
762 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo9,
767 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo10,
772 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo11,
779#define TRY_GET_PAD(pad, default) ({ if ((pad) < (dt_pad_t)0 || (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,