diff --git a/cpu/atmega1281/include/cpu_conf.h b/cpu/atmega1281/include/cpu_conf.h
index 5109c6074d5bf7b5aa9ddffc409178be0444329a..438cbc70ed6368c41fab0af13a111b229279fee7 100644
--- a/cpu/atmega1281/include/cpu_conf.h
+++ b/cpu/atmega1281/include/cpu_conf.h
@@ -43,13 +43,6 @@ extern "C" {
 #endif
 /** @} */
 
-/**
- * @name    EEPROM configuration
- * @{
- */
-#define EEPROM_SIZE                (4096U)  /* 4kB */
-/** @} */
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/atmega1281/include/periph_cpu.h b/cpu/atmega1281/include/periph_cpu.h
index 9f69d979e7e1ca5508d57bb7af193783f3b858ac..07ebe56a75fdb02cdb16bc27e48b31fce99fdc90 100644
--- a/cpu/atmega1281/include/periph_cpu.h
+++ b/cpu/atmega1281/include/periph_cpu.h
@@ -64,6 +64,13 @@ enum {
 #define I2C_PIN_MASK            (1 << PORTD0) | (1 << PORTD1)
 /** @} */
 
+/**
+ * @name    EEPROM configuration
+ * @{
+ */
+#define EEPROM_SIZE                (4096U)  /* 4kB */
+/** @} */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/atmega1284p/include/cpu_conf.h b/cpu/atmega1284p/include/cpu_conf.h
index 0731dc3964b576184d20bf3147b84103d2a35cf6..e87b7d2a01553ae7ecc01ed334e79544af6c4931 100644
--- a/cpu/atmega1284p/include/cpu_conf.h
+++ b/cpu/atmega1284p/include/cpu_conf.h
@@ -44,13 +44,6 @@ extern "C" {
 #define THREAD_STACKSIZE_IDLE      (128)
 /** @} */
 
-/**
- * @name    EEPROM configuration
- * @{
- */
-#define EEPROM_SIZE                (4096U)  /* 4kB */
-/** @} */
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/atmega1284p/include/periph_cpu.h b/cpu/atmega1284p/include/periph_cpu.h
index 047dae07c172faf185130d13d489b26b9d81d49f..e61349c6e45a19e2a1b05b356e454fb3d0bbea2c 100644
--- a/cpu/atmega1284p/include/periph_cpu.h
+++ b/cpu/atmega1284p/include/periph_cpu.h
@@ -61,6 +61,13 @@ enum {
 #define I2C_PIN_MASK            (1 << PORTC0) | (1 << PORTC1)
 /** @} */
 
+/**
+ * @name    EEPROM configuration
+ * @{
+ */
+#define EEPROM_SIZE                (4096U)  /* 4kB */
+/** @} */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/atmega2560/include/cpu_conf.h b/cpu/atmega2560/include/cpu_conf.h
index a070cccca24590685d0e7ab8b934818a2a750fd9..1e7f0eac9a056e7c7a63dfb7efbe5935dd7315c6 100644
--- a/cpu/atmega2560/include/cpu_conf.h
+++ b/cpu/atmega2560/include/cpu_conf.h
@@ -42,14 +42,6 @@ extern "C" {
 #define THREAD_STACKSIZE_IDLE      (128)
 /** @} */
 
-/**
- * @name    EEPROM configuration
- * @{
- */
-#define EEPROM_SIZE                (4096U)  /* 4kB */
-/** @} */
-
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/atmega2560/include/periph_cpu.h b/cpu/atmega2560/include/periph_cpu.h
index 10cd8acc1e1e66de3d5a1f47fcddbb982a62fa15..2002edc28cb19cb873c4645090e9d23ec606ae48 100644
--- a/cpu/atmega2560/include/periph_cpu.h
+++ b/cpu/atmega2560/include/periph_cpu.h
@@ -66,6 +66,13 @@ enum {
 #define I2C_PIN_MASK            (1 << PORTD0) | (1 << PORTD1)
 /** @} */
 
+/**
+ * @name    EEPROM configuration
+ * @{
+ */
+#define EEPROM_SIZE                (4096U)  /* 4kB */
+/** @} */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/atmega256rfr2/include/cpu_conf.h b/cpu/atmega256rfr2/include/cpu_conf.h
index b21ef3c3c5d0ccb3926728148fd9c58fe24816c3..e7eb3c681e113e89a9415707e25c8afde91a4897 100644
--- a/cpu/atmega256rfr2/include/cpu_conf.h
+++ b/cpu/atmega256rfr2/include/cpu_conf.h
@@ -48,12 +48,5 @@ extern "C" {
 }
 #endif
 
-/**
- * @name    EEPROM configuration
- * @{
- */
-#define EEPROM_SIZE                (8192U)  /* 8kB */
-/** @} */
-
 #endif /* CPU_CONF_H */
 /** @} */
diff --git a/cpu/atmega256rfr2/include/periph_cpu.h b/cpu/atmega256rfr2/include/periph_cpu.h
index 03562a2402d5d35b39d3357b1c0f982aa43687f1..8ea19709043a88bbd7ededa70d5300d805178aca 100644
--- a/cpu/atmega256rfr2/include/periph_cpu.h
+++ b/cpu/atmega256rfr2/include/periph_cpu.h
@@ -77,6 +77,13 @@ enum {
 #endif
 /** @}*/
 
+/**
+ * @name    EEPROM configuration
+ * @{
+ */
+#define EEPROM_SIZE                (8192U)  /* 8kB */
+/** @} */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/atmega328p/include/cpu_conf.h b/cpu/atmega328p/include/cpu_conf.h
index 1f0aab3eab7a8d9ba8826c28d8d081ef388960e6..91ac74da4d81e946d804bd006fd074b0edc69e34 100644
--- a/cpu/atmega328p/include/cpu_conf.h
+++ b/cpu/atmega328p/include/cpu_conf.h
@@ -42,13 +42,6 @@ extern "C" {
 #define THREAD_STACKSIZE_IDLE      (128)
 /** @} */
 
-/**
- * @name    EEPROM configuration
- * @{
- */
-#define EEPROM_SIZE                (1024U)  /* 1kB */
-/** @} */
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/atmega328p/include/periph_cpu.h b/cpu/atmega328p/include/periph_cpu.h
index 03ab92365fd9c6e1d5893a2f682e8d688df300ce..ac4be4cd09cea64cf5c0c8faaf25c42ffc1c9460 100644
--- a/cpu/atmega328p/include/periph_cpu.h
+++ b/cpu/atmega328p/include/periph_cpu.h
@@ -57,6 +57,13 @@ enum {
 #define I2C_PIN_MASK            (1 << PORTC4) | (1 << PORTC5)
 /** @} */
 
+/**
+ * @name    EEPROM configuration
+ * @{
+ */
+#define EEPROM_SIZE                (1024U)  /* 1kB */
+/** @} */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/atmega_common/Makefile.features b/cpu/atmega_common/Makefile.features
index ac0dd81727799a51f1c69a5b98e50cfa993506c7..2adc58bc7b14636dc5f388ec132999abbc2c65f0 100644
--- a/cpu/atmega_common/Makefile.features
+++ b/cpu/atmega_common/Makefile.features
@@ -1,2 +1,2 @@
-FEATURES_PROVIDED += periph_pm
 FEATURES_PROVIDED += periph_eeprom
+FEATURES_PROVIDED += periph_pm
diff --git a/cpu/stm32l0/Makefile.features b/cpu/stm32l0/Makefile.features
index 79346e3fde7d24e7bad26dc3f25c3642a1ffe49a..5c7e361aee0902133b466163c65fe96d697a2bd3 100644
--- a/cpu/stm32l0/Makefile.features
+++ b/cpu/stm32l0/Makefile.features
@@ -1,7 +1,7 @@
+FEATURES_PROVIDED += periph_eeprom
 FEATURES_PROVIDED += periph_flash_common
 FEATURES_PROVIDED += periph_flashpage
 FEATURES_PROVIDED += periph_flashpage_raw
-FEATURES_PROVIDED += periph_eeprom
 FEATURES_PROVIDED += periph_hwrng
 
 BOARDS_WITHOUT_HWRNG += nucleo-l031k6
diff --git a/cpu/stm32l0/include/cpu_conf.h b/cpu/stm32l0/include/cpu_conf.h
index bae780aef6d9ef6ba880d7eab0c640b2c0728df9..d8cb2b5ed42303acd4869aad8cb40dc549ac4a7b 100644
--- a/cpu/stm32l0/include/cpu_conf.h
+++ b/cpu/stm32l0/include/cpu_conf.h
@@ -79,20 +79,6 @@ extern "C" {
 #define FLASHPAGE_RAW_ALIGNMENT    (4U)
 /** @} */
 
-/**
- * @name    EEPROM configuration
- * @{
- */
-#define EEPROM_START_ADDR          (0x08080000)
-#if defined(CPU_MODEL_STM32L073RZ) || defined(CPU_MODEL_STM32L072CZ)
-#define EEPROM_SIZE                (6144U)  /* 6kB */
-#elif defined(CPU_MODEL_STM32L053R8)
-#define EEPROM_SIZE                (2048U)  /* 2kB */
-#elif defined(CPU_MODEL_STM32L031K6)
-#define EEPROM_SIZE                (1024U)  /* 1kB */
-#endif
-/** @} */
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/stm32l0/include/periph_cpu.h b/cpu/stm32l0/include/periph_cpu.h
index edac77599ffe49c3e51c722025cecbeaedaa47d5..a586a7bfc48bac7127b68dc7b935f356fee01ff8 100644
--- a/cpu/stm32l0/include/periph_cpu.h
+++ b/cpu/stm32l0/include/periph_cpu.h
@@ -76,6 +76,20 @@ typedef struct {
  */
 #define PM_BLOCKER_INITIAL  { .val_u32 = 0x01010101 }
 
+/**
+ * @name    EEPROM configuration
+ * @{
+ */
+#define EEPROM_START_ADDR          (0x08080000)
+#if defined(CPU_MODEL_STM32L073RZ) || defined(CPU_MODEL_STM32L072CZ)
+#define EEPROM_SIZE                (6144U)  /* 6kB */
+#elif defined(CPU_MODEL_STM32L053R8)
+#define EEPROM_SIZE                (2048U)  /* 2kB */
+#elif defined(CPU_MODEL_STM32L031K6)
+#define EEPROM_SIZE                (1024U)  /* 1kB */
+#endif
+/** @} */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/stm32l1/Makefile.features b/cpu/stm32l1/Makefile.features
index a49d3982606d994b90b0c56290c1cea3d5fafd48..d93fc23829633db33c1e7399a1e747fa2e418594 100644
--- a/cpu/stm32l1/Makefile.features
+++ b/cpu/stm32l1/Makefile.features
@@ -1,6 +1,6 @@
+FEATURES_PROVIDED += periph_eeprom
 FEATURES_PROVIDED += periph_flash_common
 FEATURES_PROVIDED += periph_flashpage
 FEATURES_PROVIDED += periph_flashpage_raw
-FEATURES_PROVIDED += periph_eeprom
 
 -include $(RIOTCPU)/stm32_common/Makefile.features
diff --git a/cpu/stm32l1/include/cpu_conf.h b/cpu/stm32l1/include/cpu_conf.h
index af78bf0516f48af5d2ece40c9dce5f1ef9168175..cb86a3bf531cc7ea6612740562f7c76b8f47ada5 100644
--- a/cpu/stm32l1/include/cpu_conf.h
+++ b/cpu/stm32l1/include/cpu_conf.h
@@ -93,18 +93,6 @@ extern "C" {
 #define FLASHPAGE_RAW_ALIGNMENT    (4U)
 /** @} */
 
-/**
- * @name    EEPROM configuration
- * @{
- */
-#define EEPROM_START_ADDR          (0x08080000)
-#if defined(CPU_MODEL_STM32L152RE)
-#define EEPROM_SIZE                (16384UL)  /* 16kB */
-#elif defined(CPU_MODEL_STM32L151RC)
-#define EEPROM_SIZE                (8192U)    /* 8kB */
-#endif
-/** @} */
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/cpu/stm32l1/include/periph_cpu.h b/cpu/stm32l1/include/periph_cpu.h
index 9144f9e5ffc6c7c6be604aa1a107da013f4660d9..2e453ac0f797d61e4d384d2eab76e2c3a54aa629 100644
--- a/cpu/stm32l1/include/periph_cpu.h
+++ b/cpu/stm32l1/include/periph_cpu.h
@@ -73,6 +73,18 @@ typedef enum {
 } adc_res_t;
 /** @} */
 
+/**
+ * @name    EEPROM configuration
+ * @{
+ */
+#define EEPROM_START_ADDR          (0x08080000)
+#if defined(CPU_MODEL_STM32L152RE)
+#define EEPROM_SIZE                (16384UL)  /* 16kB */
+#elif defined(CPU_MODEL_STM32L151RC)
+#define EEPROM_SIZE                (8192U)    /* 8kB */
+#endif
+/** @} */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/drivers/include/periph/eeprom.h b/drivers/include/periph/eeprom.h
index 14750c594ee3c8b97dc5b376d7dbe40fb44e3560..09dd5034ee8b0b30ff031ca2f1762a5e942023c1 100644
--- a/drivers/include/periph/eeprom.h
+++ b/drivers/include/periph/eeprom.h
@@ -24,7 +24,6 @@
 
 #include <stdint.h>
 
-#include "cpu.h"
 #include "periph_cpu.h"
 
 #ifdef __cplusplus
diff --git a/drivers/periph_common/eeprom.c b/drivers/periph_common/eeprom.c
index f04c7af866ca9d0b4ce0e2e6a7503b59ed009d91..07fd94e6db61d3a57566ebb5d6afd3c360c95f56 100644
--- a/drivers/periph_common/eeprom.c
+++ b/drivers/periph_common/eeprom.c
@@ -19,7 +19,8 @@
  */
 
 #include <string.h>
-#include "cpu.h"
+
+#include "periph_cpu.h"
 #include "assert.h"
 
 /* guard this file, must be done before including periph/eeprom.h */