//
// GPIO: Configure and initialize GPIOs
//
#include "config.h"
#include "system/gpio.h"
#include "stm32f0xx_hal.h"
// Private variables
static uint8_t shutdown_triggered = 0;
static uint32_t shutdown_triggered_time = 0;
// Initialize GPIOs
void gpio_init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
// Enable clocks
__GPIOC_CLK_ENABLE();
__GPIOF_CLK_ENABLE();
__GPIOA_CLK_ENABLE();
__GPIOB_CLK_ENABLE();
// LEDs 1/2
GPIO_InitStruct.Pin = PIN_LED_POWER;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
HAL_GPIO_Init(PORT_LED_POWER, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPS_NOTEN_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
HAL_GPIO_Init(GPS_NOTEN_PORT, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPS_NOTEN, 1); // yes, keep the chip disabled
// Toggle the power LED
HAL_GPIO_TogglePin(LED_POWER);
}