@@ -595,19 +595,21 @@ int i2c_find_peripheral(mp_obj_t id) {
595595 return i2c_id ;
596596}
597597
598- #if MICROPY_PY_PYB_LEGACY
598+ #if MICROPY_HW_ENABLE_HW_I2C_TARGET || MICROPY_PY_PYB_LEGACY
599599
600600#if defined(MICROPY_HW_I2C1_SCL )
601601void I2C1_EV_IRQHandler (void ) {
602602 MP_STATIC_ASSERT (I2C1_EV_IRQn > 0 );
603603 IRQ_ENTER (I2C1_EV_IRQn );
604604 #if MICROPY_HW_ENABLE_HW_I2C_TARGET
605605 if (i2c_target_enabled & 1 ) {
606- i2c_slave_ev_irq_handler (I2C1 );
606+ i2c_slave_irq_handler (I2C1 );
607607 } else
608608 #endif
609609 {
610+ #if MICROPY_PY_PYB_LEGACY
610611 i2c_ev_irq_handler (1 );
612+ #endif
611613 }
612614 IRQ_EXIT (I2C1_EV_IRQn );
613615}
@@ -617,11 +619,13 @@ void I2C1_ER_IRQHandler(void) {
617619 IRQ_ENTER (I2C1_ER_IRQn );
618620 #if MICROPY_HW_ENABLE_HW_I2C_TARGET
619621 if (i2c_target_enabled & 1 ) {
620- i2c_slave_ev_irq_handler (I2C1 );
622+ i2c_slave_irq_handler (I2C1 );
621623 } else
622624 #endif
623625 {
626+ #if MICROPY_PY_PYB_LEGACY
624627 i2c_er_irq_handler (1 );
628+ #endif
625629 }
626630 IRQ_EXIT (I2C1_ER_IRQn );
627631}
@@ -633,19 +637,30 @@ void I2C2_EV_IRQHandler(void) {
633637 IRQ_ENTER (I2C2_EV_IRQn );
634638 #if MICROPY_HW_ENABLE_HW_I2C_TARGET
635639 if (i2c_target_enabled & 2 ) {
636- i2c_slave_ev_irq_handler (I2C2 );
640+ i2c_slave_irq_handler (I2C2 );
637641 } else
638642 #endif
639643 {
644+ #if MICROPY_PY_PYB_LEGACY
640645 i2c_ev_irq_handler (2 );
646+ #endif
641647 }
642648 IRQ_EXIT (I2C2_EV_IRQn );
643649}
644650
645651void I2C2_ER_IRQHandler (void ) {
646652 MP_STATIC_ASSERT (I2C2_ER_IRQn > 0 );
647653 IRQ_ENTER (I2C2_ER_IRQn );
648- i2c_er_irq_handler (2 );
654+ #if MICROPY_HW_ENABLE_HW_I2C_TARGET
655+ if (i2c_target_enabled & 2 ) {
656+ i2c_slave_irq_handler (I2C2 );
657+ } else
658+ #endif
659+ {
660+ #if MICROPY_PY_PYB_LEGACY
661+ i2c_er_irq_handler (2 );
662+ #endif
663+ }
649664 IRQ_EXIT (I2C2_ER_IRQn );
650665}
651666#endif // defined(MICROPY_HW_I2C2_SCL)
@@ -656,19 +671,30 @@ void I2C3_EV_IRQHandler(void) {
656671 IRQ_ENTER (I2C3_EV_IRQn );
657672 #if MICROPY_HW_ENABLE_HW_I2C_TARGET
658673 if (i2c_target_enabled & 4 ) {
659- i2c_slave_ev_irq_handler (I2C3 );
674+ i2c_slave_irq_handler (I2C3 );
660675 } else
661676 #endif
662677 {
678+ #if MICROPY_PY_PYB_LEGACY
663679 i2c_ev_irq_handler (3 );
680+ #endif
664681 }
665682 IRQ_EXIT (I2C3_EV_IRQn );
666683}
667684
668685void I2C3_ER_IRQHandler (void ) {
669686 MP_STATIC_ASSERT (I2C3_ER_IRQn > 0 );
670687 IRQ_ENTER (I2C3_ER_IRQn );
671- i2c_er_irq_handler (3 );
688+ #if MICROPY_HW_ENABLE_HW_I2C_TARGET
689+ if (i2c_target_enabled & 4 ) {
690+ i2c_slave_irq_handler (I2C3 );
691+ } else
692+ #endif
693+ {
694+ #if MICROPY_PY_PYB_LEGACY
695+ i2c_er_irq_handler (3 );
696+ #endif
697+ }
672698 IRQ_EXIT (I2C3_ER_IRQn );
673699}
674700#endif // defined(MICROPY_HW_I2C3_SCL)
@@ -679,19 +705,30 @@ void I2C4_EV_IRQHandler(void) {
679705 IRQ_ENTER (I2C4_EV_IRQn );
680706 #if MICROPY_HW_ENABLE_HW_I2C_TARGET
681707 if (i2c_target_enabled & 8 ) {
682- i2c_slave_ev_irq_handler (I2C4 );
708+ i2c_slave_irq_handler (I2C4 );
683709 } else
684710 #endif
685711 {
712+ #if MICROPY_PY_PYB_LEGACY
686713 i2c_ev_irq_handler (4 );
714+ #endif
687715 }
688716 IRQ_EXIT (I2C4_EV_IRQn );
689717}
690718
691719void I2C4_ER_IRQHandler (void ) {
692720 MP_STATIC_ASSERT (I2C4_ER_IRQn > 0 );
693721 IRQ_ENTER (I2C4_ER_IRQn );
694- i2c_er_irq_handler (4 );
722+ #if MICROPY_HW_ENABLE_HW_I2C_TARGET
723+ if (i2c_target_enabled & 8 ) {
724+ i2c_slave_irq_handler (I2C4 );
725+ } else
726+ #endif
727+ {
728+ #if MICROPY_PY_PYB_LEGACY
729+ i2c_er_irq_handler (4 );
730+ #endif
731+ }
695732 IRQ_EXIT (I2C4_ER_IRQn );
696733}
697734#endif // defined(MICROPY_HW_I2C4_SCL)
0 commit comments