@@ -552,7 +552,9 @@ static const uint8_t i2c_available =
552552 #endif
553553;
554554
555+ #if MICROPY_HW_ENABLE_HW_I2C_TARGET
555556uint8_t i2c_target_enabled ;
557+ #endif
556558
557559int i2c_find_peripheral (mp_obj_t id ) {
558560 int i2c_id = 0 ;
@@ -599,9 +601,12 @@ int i2c_find_peripheral(mp_obj_t id) {
599601void I2C1_EV_IRQHandler (void ) {
600602 MP_STATIC_ASSERT (I2C1_EV_IRQn > 0 );
601603 IRQ_ENTER (I2C1_EV_IRQn );
604+ #if MICROPY_HW_ENABLE_HW_I2C_TARGET
602605 if (i2c_target_enabled & 1 ) {
603606 i2c_slave_ev_irq_handler (I2C1 );
604- } else {
607+ } else
608+ #endif
609+ {
605610 i2c_ev_irq_handler (1 );
606611 }
607612 IRQ_EXIT (I2C1_EV_IRQn );
@@ -619,9 +624,12 @@ void I2C1_ER_IRQHandler(void) {
619624void I2C2_EV_IRQHandler (void ) {
620625 MP_STATIC_ASSERT (I2C2_EV_IRQn > 0 );
621626 IRQ_ENTER (I2C2_EV_IRQn );
627+ #if MICROPY_HW_ENABLE_HW_I2C_TARGET
622628 if (i2c_target_enabled & 2 ) {
623629 i2c_slave_ev_irq_handler (I2C2 );
624- } else {
630+ } else
631+ #endif
632+ {
625633 i2c_ev_irq_handler (2 );
626634 }
627635 IRQ_EXIT (I2C2_EV_IRQn );
@@ -639,9 +647,12 @@ void I2C2_ER_IRQHandler(void) {
639647void I2C3_EV_IRQHandler (void ) {
640648 MP_STATIC_ASSERT (I2C3_EV_IRQn > 0 );
641649 IRQ_ENTER (I2C3_EV_IRQn );
650+ #if MICROPY_HW_ENABLE_HW_I2C_TARGET
642651 if (i2c_target_enabled & 4 ) {
643652 i2c_slave_ev_irq_handler (I2C3 );
644- } else {
653+ } else
654+ #endif
655+ {
645656 i2c_ev_irq_handler (3 );
646657 }
647658 IRQ_EXIT (I2C3_EV_IRQn );
@@ -659,9 +670,12 @@ void I2C3_ER_IRQHandler(void) {
659670void I2C4_EV_IRQHandler (void ) {
660671 MP_STATIC_ASSERT (I2C4_EV_IRQn > 0 );
661672 IRQ_ENTER (I2C4_EV_IRQn );
673+ #if MICROPY_HW_ENABLE_HW_I2C_TARGET
662674 if (i2c_target_enabled & 8 ) {
663675 i2c_slave_ev_irq_handler (I2C4 );
664- } else {
676+ } else
677+ #endif
678+ {
665679 i2c_ev_irq_handler (4 );
666680 }
667681 IRQ_EXIT (I2C4_EV_IRQn );
0 commit comments