diff --git a/src/shared/radio/SX1278/SX1278Common.cpp b/src/shared/radio/SX1278/SX1278Common.cpp
index a815363c73d24140323201f86528f45b2262e675..cdd1675044ad17cfdc71b011910b5b4000e4a25f 100644
--- a/src/shared/radio/SX1278/SX1278Common.cpp
+++ b/src/shared/radio/SX1278/SX1278Common.cpp
@@ -45,10 +45,18 @@ void SX1278Common::handleDioIRQ()
     }
 }
 
-void SX1278Common::enableIrqs() {
-    enableExternalInterrupt(dio0.getPort(), dio0.getNumber(), InterruptTrigger::RISING_EDGE);
-    enableExternalInterrupt(dio1.getPort(), dio1.getNumber(), InterruptTrigger::RISING_EDGE);
-    enableExternalInterrupt(dio3.getPort(), dio3.getNumber(), InterruptTrigger::RISING_EDGE);
+void SX1278Common::enableIrqs()
+{
+    enableExternalInterrupt(dio0, InterruptTrigger::RISING_EDGE);
+    enableExternalInterrupt(dio1, InterruptTrigger::RISING_EDGE);
+    enableExternalInterrupt(dio3, InterruptTrigger::RISING_EDGE);
+}
+
+void SX1278Common::disableIrqs()
+{
+    disableExternalInterrupt(dio0);
+    disableExternalInterrupt(dio1);
+    disableExternalInterrupt(dio3);
 }
 
 void SX1278Common::setDefaultMode(Mode mode, DioMapping mapping,
@@ -236,7 +244,7 @@ void SX1278Common::enterMode(Mode mode, DioMapping mapping,
     // Change DIO1 interrupt kind
     if (dio1_trigger != state.dio1_trigger)
     {
-        enableExternalInterrupt(dio1.getPort(), dio1.getNumber(), dio1_trigger);
+        changeInterruptTrigger(dio1, dio1_trigger);
         state.dio1_trigger = dio1_trigger;
     }
 
diff --git a/src/shared/radio/SX1278/SX1278Common.h b/src/shared/radio/SX1278/SX1278Common.h
index 2ac8cc60748473ad249192fcea54b43d77351491..fb142ae91a059c0d2f5b8237aedae394de027f8e 100644
--- a/src/shared/radio/SX1278/SX1278Common.h
+++ b/src/shared/radio/SX1278/SX1278Common.h
@@ -136,6 +136,8 @@ protected:
         enableIrqs();
     }
 
+    ~SX1278Common() { disableIrqs(); }
+
     /**
      * @brief RAII scoped bus lock guard.
      */
@@ -217,6 +219,7 @@ protected:
 
 private:
     void enableIrqs();
+    void disableIrqs();
 
     void waitForIrqInner(LockMode &guard, bool unlock);