13#include "hw/top/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];
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 = kTopDarjeelingDirectPadsGpio0Gpio0,
467 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio1,
472 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio2,
477 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio3,
482 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio4,
487 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio5,
492 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio6,
497 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio7,
502 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio8,
507 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio9,
512 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio10,
517 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio11,
522 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio12,
527 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio13,
532 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio14,
537 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio15,
542 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio16,
547 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio17,
552 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio18,
557 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio19,
562 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio20,
567 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio21,
572 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio22,
577 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio23,
582 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio24,
587 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio25,
592 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio26,
597 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio27,
602 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio28,
607 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio29,
612 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio30,
617 .mio_out_or_direct_pad = kTopDarjeelingDirectPadsGpio0Gpio31,
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 || (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,