diff --git a/cpu/nrf5x_common/periph/gpio.c b/cpu/nrf5x_common/periph/gpio.c
index 368d61e34ef0dc0eb714e43e0c8dcce8a2e262d7..26ef551a20e9490cc96f53ab487a24d3121b1bc0 100644
--- a/cpu/nrf5x_common/periph/gpio.c
+++ b/cpu/nrf5x_common/periph/gpio.c
@@ -34,10 +34,12 @@
 #define PORT_BIT            (1 << 5)
 #define PIN_MASK            (0x1f)
 
+#ifdef MODULE_PERIPH_GPIO_IRQ
 /**
  * @brief   Place to store the interrupt context
  */
 static gpio_isr_ctx_t exti_chan;
+#endif
 
 /**
  * @brief   Get the port's base address
@@ -72,6 +74,41 @@ int gpio_init(gpio_t pin, gpio_mode_t mode)
     return 0;
 }
 
+int gpio_read(gpio_t pin)
+{
+    if (port(pin)->DIR & (1 << pin)) {
+        return (port(pin)->OUT & (1 << pin)) ? 1 : 0;
+    }
+    else {
+        return (port(pin)->IN & (1 << pin)) ? 1 : 0;
+    }
+}
+
+void gpio_set(gpio_t pin)
+{
+    port(pin)->OUTSET = (1 << pin);
+}
+
+void gpio_clear(gpio_t pin)
+{
+    port(pin)->OUTCLR = (1 << pin);
+}
+
+void gpio_toggle(gpio_t pin)
+{
+    port(pin)->OUT ^= (1 << pin);
+}
+
+void gpio_write(gpio_t pin, int value)
+{
+    if (value) {
+        port(pin)->OUTSET = (1 << pin);
+    } else {
+        port(pin)->OUTCLR = (1 << pin);
+    }
+}
+
+#ifdef MODULE_PERIPH_GPIO_IRQ
 int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
                   gpio_cb_t cb, void *arg)
 {
@@ -108,40 +145,6 @@ void gpio_irq_disable(gpio_t pin)
     NRF_GPIOTE->INTENCLR |= GPIOTE_INTENSET_IN0_Msk;
 }
 
-int gpio_read(gpio_t pin)
-{
-    if (port(pin)->DIR & (1 << pin)) {
-        return (port(pin)->OUT & (1 << pin)) ? 1 : 0;
-    }
-    else {
-        return (port(pin)->IN & (1 << pin)) ? 1 : 0;
-    }
-}
-
-void gpio_set(gpio_t pin)
-{
-    port(pin)->OUTSET = (1 << pin);
-}
-
-void gpio_clear(gpio_t pin)
-{
-    port(pin)->OUTCLR = (1 << pin);
-}
-
-void gpio_toggle(gpio_t pin)
-{
-    port(pin)->OUT ^= (1 << pin);
-}
-
-void gpio_write(gpio_t pin, int value)
-{
-    if (value) {
-        port(pin)->OUTSET = (1 << pin);
-    } else {
-        port(pin)->OUTCLR = (1 << pin);
-    }
-}
-
 void isr_gpiote(void)
 {
     if (NRF_GPIOTE->EVENTS_IN[0] == 1) {
@@ -150,3 +153,4 @@ void isr_gpiote(void)
     }
     cortexm_isr_end();
 }
+#endif