From 76c1830aeb0206f25d8af963df709d804aa5f437 Mon Sep 17 00:00:00 2001 From: bruelltuete Date: Tue, 3 May 2022 17:46:27 +0100 Subject: [PATCH] Add gpio_deinit (#793) --- src/rp2_common/hardware_gpio/gpio.c | 4 ++++ src/rp2_common/hardware_gpio/include/hardware/gpio.h | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/src/rp2_common/hardware_gpio/gpio.c b/src/rp2_common/hardware_gpio/gpio.c index 2816b97..4197a4b 100644 --- a/src/rp2_common/hardware_gpio/gpio.c +++ b/src/rp2_common/hardware_gpio/gpio.c @@ -217,6 +217,10 @@ void gpio_init(uint gpio) { gpio_set_function(gpio, GPIO_FUNC_SIO); } +void gpio_deinit(uint gpio) { + gpio_set_function(gpio, GPIO_FUNC_NULL); +} + void gpio_init_mask(uint gpio_mask) { for(uint i=0;i<32;i++) { if (gpio_mask & 1) { diff --git a/src/rp2_common/hardware_gpio/include/hardware/gpio.h b/src/rp2_common/hardware_gpio/include/hardware/gpio.h index 7037e85..4449d50 100644 --- a/src/rp2_common/hardware_gpio/include/hardware/gpio.h +++ b/src/rp2_common/hardware_gpio/include/hardware/gpio.h @@ -414,6 +414,13 @@ void gpio_acknowledge_irq(uint gpio, uint32_t events); */ void gpio_init(uint gpio); +/*! \brief Resets a GPIO back to the NULL function, i.e. disables it. + * \ingroup hardware_gpio + * + * \param gpio GPIO number + */ +void gpio_deinit(uint gpio); + /*! \brief Initialise multiple GPIOs (enabled I/O and set func to GPIO_FUNC_SIO) * \ingroup hardware_gpio *