diff --git a/cpu/esp32/Makefile b/cpu/esp32/Makefile
index c570c11c42fc7bc69f4f01a75ebabc8bb40e29f9..1294cc435c1b7e1ffacabb995372909e7aa8cb6a 100644
--- a/cpu/esp32/Makefile
+++ b/cpu/esp32/Makefile
@@ -2,6 +2,7 @@
 MODULE = cpu
 
 # Add a list of subdirectories, that should also be built:
+DIRS += $(RIOTCPU)/esp_common
 DIRS += periph
 DIRS += freertos
 DIRS += vendor
@@ -14,10 +15,6 @@ ifneq (, $(filter esp_eth, $(USEMODULE)))
     DIRS += esp-eth
 endif
 
-ifneq (, $(filter esp_now, $(USEMODULE)))
-    DIRS += esp-now
-endif
-
 ifneq (, $(filter esp_wifi, $(USEMODULE)))
     DIRS += esp-wifi
 endif
diff --git a/cpu/esp8266/Makefile b/cpu/esp8266/Makefile
index 63d422f20d2021664d29d50c74f1f7a10a438856..d1c2d71d3446295ea9cab6b4b8d7412766a65fe0 100644
--- a/cpu/esp8266/Makefile
+++ b/cpu/esp8266/Makefile
@@ -2,6 +2,7 @@
 MODULE = cpu
 
 # Add a list of subdirectories, that should also be built:
+DIRS += $(RIOTCPU)/esp_common
 DIRS += periph
 DIRS += sdk
 DIRS += vendor
diff --git a/cpu/esp_common/Makefile b/cpu/esp_common/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..ee13d7895c9a96d8fb91b5edb4b4c99f46b51e5c
--- /dev/null
+++ b/cpu/esp_common/Makefile
@@ -0,0 +1,6 @@
+# add a list of subdirectories, that should also be build
+ifneq (, $(filter esp_now, $(USEMODULE)))
+    DIRS += esp-now
+endif
+
+include $(RIOTBASE)/Makefile.base
diff --git a/cpu/esp_common/doc.txt b/cpu/esp_common/doc.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9d7db29a6ffe2db30105ece4bc8802b2ee1b6f07
--- /dev/null
+++ b/cpu/esp_common/doc.txt
@@ -0,0 +1,5 @@
+/**
+ * @defgroup    cpu_esp_common ESP Common
+ * @brief       Common modules for Espressif ESP SoCs
+ * @ingroup     cpu
+ */
diff --git a/cpu/esp32/esp-now/Makefile b/cpu/esp_common/esp-now/Makefile
similarity index 100%
rename from cpu/esp32/esp-now/Makefile
rename to cpu/esp_common/esp-now/Makefile
diff --git a/cpu/esp32/esp-now/dox.txt b/cpu/esp_common/esp-now/doc.txt
similarity index 100%
rename from cpu/esp32/esp-now/dox.txt
rename to cpu/esp_common/esp-now/doc.txt
diff --git a/cpu/esp32/esp-now/esp_now_netdev.c b/cpu/esp_common/esp-now/esp_now_netdev.c
similarity index 100%
rename from cpu/esp32/esp-now/esp_now_netdev.c
rename to cpu/esp_common/esp-now/esp_now_netdev.c
diff --git a/cpu/esp32/esp-now/esp_now_netdev.h b/cpu/esp_common/esp-now/esp_now_netdev.h
similarity index 100%
rename from cpu/esp32/esp-now/esp_now_netdev.h
rename to cpu/esp_common/esp-now/esp_now_netdev.h
diff --git a/cpu/esp32/esp-now/esp_now_params.h b/cpu/esp_common/esp-now/esp_now_params.h
similarity index 100%
rename from cpu/esp32/esp-now/esp_now_params.h
rename to cpu/esp_common/esp-now/esp_now_params.h