From 60b1e3055c179312eef809fe1d01f58042b64d5f Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Mon, 23 Nov 2020 19:41:05 -0700 Subject: Add new GPIO subsystem. This gpio subsystem keeps track of the GPIO pins which have been reserved and takes care of the housekeeping with keeping them running. This gpio subsystem also knows which alternate functions belong to which pins, so it can automatically configure the pins for the alternate functions. --- 02-usart/src/kern/gpio/sysled.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 02-usart/src/kern/gpio/sysled.c (limited to '02-usart/src/kern/gpio/sysled.c') diff --git a/02-usart/src/kern/gpio/sysled.c b/02-usart/src/kern/gpio/sysled.c new file mode 100644 index 0000000..a728da3 --- /dev/null +++ b/02-usart/src/kern/gpio/sysled.c @@ -0,0 +1,14 @@ +#include "kern/gpio/sysled.h" + +#define SYSLED GPIO_PIN_PB3 + +gpio_reserved_pin_t get_sysled() +{ + if (gpio_pin_in_use(SYSLED)) { + return (gpio_reserved_pin_t) { .v_ = SYSLED }; + } + + int ec; + gpio_pin_opts_t opts = DEFAULT_GPIO_OPTS_OUTPUT; + return reserve_gpio_pin(SYSLED, &opts, &ec); +} -- cgit