diff --git a/cpu/sam21_common/Makefile b/cpu/sam21_common/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..e09377cd1e39133b4c074e32202ae74443211203
--- /dev/null
+++ b/cpu/sam21_common/Makefile
@@ -0,0 +1,3 @@
+DIRS = periph
+
+include $(RIOTBASE)/Makefile.base
diff --git a/cpu/sam21_common/Makefile.include b/cpu/sam21_common/Makefile.include
new file mode 100644
index 0000000000000000000000000000000000000000..29e2f1d9d64f1fd614cdf73c116fea249274fd6a
--- /dev/null
+++ b/cpu/sam21_common/Makefile.include
@@ -0,0 +1,12 @@
+# export the CPU family so we can differentiate between them in the code
+FAM = $(shell echo $(CPU_FAM) | tr 'a-z-' 'A-Z_')
+export CFLAGS += -DCPU_FAM_$(FAM)
+
+# this CPU implementation doesn't use CMSIS initialization
+export CFLAGS += -DDONT_USE_CMSIS_INIT
+
+# use common periph functions
+USEMODULE += periph_common
+
+# export the common include directory
+export INCLUDES += -I$(RIOTCPU)/sam21_common/include
diff --git a/cpu/sam21_common/periph/Makefile b/cpu/sam21_common/periph/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..6d1887b640099d130c5a6400e3f878f0c65aa6f1
--- /dev/null
+++ b/cpu/sam21_common/periph/Makefile
@@ -0,0 +1,3 @@
+MODULE = periph
+
+include $(RIOTBASE)/Makefile.base