diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c
index cb50c38c45..ce5c23cc40 100644
--- a/drivers/oled/oled_driver.c
+++ b/drivers/oled/oled_driver.c
@@ -23,9 +23,6 @@ along with this program. If not, see .
#include
#include "progmem.h"
-#ifndef __AVR__
-# define memcpy_P(des, src, len) memcpy(des, src, len)
-#endif
// Used commands from spec sheet: https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf
// for SH1106: https://www.velleman.eu/downloads/29/infosheets/sh1106_datasheet.pdf
diff --git a/tmk_core/common/progmem.h b/tmk_core/common/progmem.h
index a06d0f940f..be8485117c 100644
--- a/tmk_core/common/progmem.h
+++ b/tmk_core/common/progmem.h
@@ -4,7 +4,12 @@
# include
#else
# define PROGMEM
-# define pgm_read_byte(p) *((unsigned char*)(p))
-# define pgm_read_word(p) *((uint16_t*)(p))
-# define pgm_read_dword(p) *((uint32_t*)(p))
+# define memcpy_P(dest, src, n) memcpy(dest, src, n)
+# define pgm_read_byte(address_short) *((uint8_t*)(address_short))
+# define pgm_read_word(address_short) *((uint16_t*)(address_short))
+# define pgm_read_dword(address_short) *((uint32_t*)(address_short))
+# define pgm_read_ptr(address_short) *((void*)(address_short))
+# define strcmp_P(s1, s2) strcmp(s1, s2)
+# define strcpy_P(dest, src) strcpy(dest, src)
+# define strlen_P(src) strlen(src)
#endif