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 #ifdef __cplusplus #include 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; +}