diff --git a/quantum/config_common.h b/quantum/config_common.h
index 029aa69b..69126e25 100644
--- a/quantum/config_common.h
+++ b/quantum/config_common.h
@@ -36,21 +36,6 @@
// #define PINDEF(port, pin) (uint8_t)((((uint16_t)&PIN##port) << 4) + PIN##port##pin)
#define PINDEF(port, pin) ((pin_t)(((((uint16_t)&PIN##port) - __SFR_OFFSET)<< 4) + PIN##port##pin))
-static inline uint8_t* helper(pin_t p, uint8_t offset) {
- return (uint8_t*)((p >> 4) + offset + __SFR_OFFSET);
-}
-
-#define PIN(p) *helper(p, 0)
-#define PIN_VALUE(p) (PIN(p) & _BV(p & 0xF))
-
-#define DDR(p) *helper(p, 1)
-#define DDR_OUTPUT(p) (DDR(p) |= _BV(p & 0xF))
-#define DDR_INPUT(p) (DDR(p) &= ~_BV(p & 0xF))
-
-#define PORT(p) *helper(p, 2)
-#define PORT_HIGH(p) (PORT(p) |= _BV(p & 0xF))
-#define PORT_LOW(p) (PORT(p) &= ~_BV(p & 0xF))
-
#ifdef PORTA
#define A0 PINDEF(A, 0)
#define A1 PINDEF(A, 1)
diff --git a/quantum/matrix.c b/quantum/matrix.c
index 9dcc8e11..ef6122fb 100644
--- a/quantum/matrix.c
+++ b/quantum/matrix.c
@@ -25,7 +25,7 @@ along with this program. If not, see .
#include "util.h"
#include "matrix.h"
#include "timer.h"
-
+#include "quantum.h"
/* Set 0 if debouncing isn't needed */
diff --git a/quantum/pincontrol.h b/quantum/pincontrol.h
index d77977eb..9cfca480 100644
--- a/quantum/pincontrol.h
+++ b/quantum/pincontrol.h
@@ -15,7 +15,26 @@
*/
#pragma once
// Some helpers for controlling gpio pins
-#include
+#if defined(__AVR__)
+ #include
+#endif
+
+static inline volatile uint8_t* helper(pin_t p, uint8_t offset) {
+ return (volatile uint8_t*)((p >> 4) + offset + __SFR_OFFSET);
+}
+
+#define PIN(p) *helper(p, 0)
+#define PIN_VALUE(p) (PIN(p) & _BV(p & 0xF))
+
+#define DDR(p) *helper(p, 1)
+#define DDR_OUTPUT(p) (DDR(p) |= _BV(p & 0xF))
+#define DDR_INPUT(p) (DDR(p) &= ~_BV(p & 0xF))
+
+#define PORT(p) *helper(p, 2)
+#define PORT_HIGH(p) (PORT(p) |= _BV(p & 0xF))
+#define PORT_LOW(p) (PORT(p) &= ~_BV(p & 0xF))
+
+// Arduino shortcuts
enum {
PinDirectionInput = 0,
diff --git a/quantum/quantum.h b/quantum/quantum.h
index 534819c8..a16f9ed7 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -41,6 +41,7 @@
#include
#include "print.h"
#include "send_string_keycodes.h"
+#include "pincontrol.h"
extern uint32_t default_layer_state;