From c49937a09cac757d560c1d6165fb78d6512dfd83 Mon Sep 17 00:00:00 2001 From: Guillaume Revaillot Date: Thu, 10 Jan 2019 16:24:02 +0100 Subject: [PATCH] stm32g0: add gpio. regular peripheral. --- include/libopencm3/stm32/g0/gpio.h | 76 ++++++++++++++++++++++++++++++ include/libopencm3/stm32/gpio.h | 2 + lib/stm32/g0/Makefile | 2 +- 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 include/libopencm3/stm32/g0/gpio.h 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