diff --git a/include/libopencm3/stm32/g0/timer.h b/include/libopencm3/stm32/g0/timer.h
new file mode 100644
index 00000000..1f102ba8
--- /dev/null
+++ b/include/libopencm3/stm32/g0/timer.h
@@ -0,0 +1,74 @@
+/** @defgroup timer_defines Timer Defines
+ *
+ * @ingroup STM32G0xx_defines
+ *
+ * @brief Defined Constants and Types for the STM32G0xx Timers
+ *
+ * @version 1.0.0
+ *
+ * LGPL License Terms @ref lgpl_license
+ * */
+/*
+ * This file is part of the libopencm3 project.
+ *
+ * Copyright (C) 2019 Guillaume Revaillot
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library. If not, see .
+ */
+
+#ifndef LIBOPENCM3_TIMER_H
+#define LIBOPENCM3_TIMER_H
+
+#include
+
+/**@{*/
+
+/* Option Register (TIMx_OR1) */
+#define TIM_OR1(tim_base) MMIO32((tim_base) + 0x50)
+#define TIM2_OR1 TIM_OR1(TIM2)
+#define TIM3_OR1 TIM_OR1(TIM3)
+
+/* Alternate Function (TIMx_AF1) */
+#define TIM_AF1(tim_base) MMIO32((tim_base) + 0x60)
+#define TIM2_AF1 TIM_AF1(TIM2)
+#define TIM3_AF1 TIM_AF1(TIM3)
+#define TIM16_AF1 TIM_AF1(TIM16)
+#define TIM17_AF1 TIM_AF1(TIM17)
+
+/* Input Selection Register (TIMx_TISEL) */
+#define TIM_TISEL(tim_base) MMIO32((tim_base) + 0x68)
+#define TIM2_TISEL TIM_TISEL(TIM2)
+#define TIM3_TISEL TIM_TISEL(TIM3)
+#define TIM14_TISEL TIM_TISEL(TIM14)
+#define TIM16_TISEL TIM_TISEL(TIM16)
+#define TIM17_TISEL TIM_TISEL(TIM17)
+
+/* --- TIMx_OR1 values ---------------------------------------------------- */
+
+/* OCREF_CLR: ocref_clr Source Selection */
+#define TIM_OR1_OCREF_CLR (1 << 0)
+
+/** @defgroup tim_or1_ocref_clr TIM_OR1_OCREF_CLR Source Selection
+@{*/
+#define TIM_OR1_OCREF_CLR_COMP1 (0)
+#define TIM_OR1_OCREF_CLR_COMP2 (1)
+/**@}*/
+
+BEGIN_DECLS
+
+END_DECLS
+
+/**@}*/
+
+#endif
diff --git a/include/libopencm3/stm32/timer.h b/include/libopencm3/stm32/timer.h
index 3f16e797..4d1afc7a 100644
--- a/include/libopencm3/stm32/timer.h
+++ b/include/libopencm3/stm32/timer.h
@@ -40,6 +40,8 @@
# include
#elif defined(STM32L4)
# include
+#elif defined(STM32G0)
+# include
#else
# error "stm32 family not defined."
#endif
diff --git a/lib/stm32/g0/Makefile b/lib/stm32/g0/Makefile
index ceadfd8c..c9e8f74f 100644
--- a/lib/stm32/g0/Makefile
+++ b/lib/stm32/g0/Makefile
@@ -45,6 +45,7 @@ OBJS += spi_common_all.o spi_common_v1_frf.o
OBJS += i2c_common_v2.o
OBJS += rng_common_v1.o
OBJS += crc_common_all.o
+OBJS += timer_common_all.o
VPATH +=../:../../cm3:../common