diff --git a/cores/arduino/Arduino.h b/cores/arduino/Arduino.h
index 69390481..e9399e72 100644
--- a/cores/arduino/Arduino.h
+++ b/cores/arduino/Arduino.h
@@ -100,6 +100,8 @@ enum analogPins { DT_FOREACH_PROP_ELEM(DT_PATH(zephyr_user),
 void interrupts(void);
 void noInterrupts(void);
 
+int digitalPinToInterrupt(pin_size_t pin);
+
 #include <variant.h>
 #ifdef __cplusplus
 #include <zephyrPrint.h>
diff --git a/cores/arduino/zephyrCommon.cpp b/cores/arduino/zephyrCommon.cpp
index 6a8a8ebe..6fa94bc4 100644
--- a/cores/arduino/zephyrCommon.cpp
+++ b/cores/arduino/zephyrCommon.cpp
@@ -480,3 +480,10 @@ void noInterrupts(void) {
     interrupts_disabled = true;
   }
 }
+
+int digitalPinToInterrupt(pin_size_t pin) {
+  struct gpio_port_callback *pcb =
+      find_gpio_port_callback(arduino_pins[pin].port);
+
+  return (pcb) ? pin : -1;
+}