diff --git a/include/libopencm3/stm32/f1/systick.h b/include/libopencm3/stm32/systick.h
similarity index 100%
rename from include/libopencm3/stm32/f1/systick.h
rename to include/libopencm3/stm32/systick.h
diff --git a/lib/stm32f1/systick.c b/lib/stm32_common/systick.c
similarity index 97%
rename from lib/stm32f1/systick.c
rename to lib/stm32_common/systick.c
index 3308413b..882601da 100644
--- a/lib/stm32f1/systick.c
+++ b/lib/stm32_common/systick.c
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-#include
+#include
void systick_set_reload(u32 value)
{
diff --git a/lib/stm32f1/Makefile b/lib/stm32f1/Makefile
index fa4dad14..bd9fca2b 100644
--- a/lib/stm32f1/Makefile
+++ b/lib/stm32f1/Makefile
@@ -33,7 +33,7 @@ OBJS = vector.o rcc.o gpio.o usart.o adc.o spi.o flash.o nvic.o \
usb_f103.o usb.o usb_control.o usb_standard.o can.o \
timer.o usb_f107.o
-VPATH += ../usb
+VPATH += ../usb:../stm32_common
# Be silent per default, but 'make V=1' will show all compiler calls.
ifneq ($(V),1)
diff --git a/lib/stm32f2/Makefile b/lib/stm32f2/Makefile
index 1f08089b..d52525b4 100644
--- a/lib/stm32f2/Makefile
+++ b/lib/stm32f2/Makefile
@@ -28,9 +28,10 @@ CFLAGS = -Os -g -Wall -Wextra -I../../include -fno-common \
-ffunction-sections -fdata-sections -MD -DSTM32F2
# ARFLAGS = rcsv
ARFLAGS = rcs
-OBJS = vector.o gpio.o
+OBJS = vector.o gpio.o systick.o
#VPATH += ../usb
+VPATH += ../stm32_common
# Be silent per default, but 'make V=1' will show all compiler calls.
ifneq ($(V),1)