diff --git a/include/libopencm3/stm32/g0/gpio.h b/include/libopencm3/stm32/g0/gpio.h
new file mode 100644
index 00000000..7a096f12
--- /dev/null
+++ b/include/libopencm3/stm32/g0/gpio.h
@@ -0,0 +1,76 @@
+/** @defgroup gpio_defines GPIO Defines
+ *
+ * @ingroup STM32G0xx_defines
+ *
+ * @brief Defined Constants and Types for the STM32G0xx General Purpose I/O
+ *
+ * @version 1.0.0
+ *
+ * LGPL License Terms @ref lgpl_license
+ * */
+/*
+ * This file is part of the libopencm3 project.
+ *
+ * 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_GPIO_H
+#define LIBOPENCM3_GPIO_H
+
+#include
+
+/*****************************************************************************/
+/* Module definitions */
+/*****************************************************************************/
+
+/*****************************************************************************/
+/* Register definitions */
+/*****************************************************************************/
+
+#define GPIO_BRR(port) MMIO32((port) + 0x28)
+#define GPIOA_BRR GPIO_BRR(GPIOA)
+#define GPIOB_BRR GPIO_BRR(GPIOB)
+#define GPIOC_BRR GPIO_BRR(GPIOC)
+#define GPIOD_BRR GPIO_BRR(GPIOD)
+#define GPIOE_BRR GPIO_BRR(GPIOE)
+#define GPIOF_BRR GPIO_BRR(GPIOF)
+
+/*****************************************************************************/
+/* Register values */
+/*****************************************************************************/
+
+/** @defgroup gpio_speed GPIO Output Pin Speed
+@ingroup gpio_defines
+@{*/
+#define GPIO_OSPEED_LOW 0x0
+#define GPIO_OSPEED_MED 0x1
+#define GPIO_OSPEED_FAST 0x2
+#define GPIO_OSPEED_HIGH 0x3
+/**@}*/
+
+/*****************************************************************************/
+/* API definitions */
+/*****************************************************************************/
+
+/*****************************************************************************/
+/* API Functions */
+/*****************************************************************************/
+
+BEGIN_DECLS
+
+END_DECLS
+
+#endif
+/**@}*/
diff --git a/include/libopencm3/stm32/gpio.h b/include/libopencm3/stm32/gpio.h
index caa9454e..14dd418a 100644
--- a/include/libopencm3/stm32/gpio.h
+++ b/include/libopencm3/stm32/gpio.h
@@ -38,6 +38,8 @@
# include
#elif defined(STM32L4)
# include
+#elif defined(STM32G0)
+# include
#elif defined(GD32F1X0)
# include
#else
diff --git a/lib/stm32/g0/Makefile b/lib/stm32/g0/Makefile
index 2893c262..a3d05553 100644
--- a/lib/stm32/g0/Makefile
+++ b/lib/stm32/g0/Makefile
@@ -36,7 +36,7 @@ TGT_CFLAGS += $(STANDARD_FLAGS)
ARFLAGS = rcs
-OBJS +=
+OBJS = gpio_common_all.o gpio_common_f0234.o
VPATH +=../:../../cm3:../common