//
// WARNING: DO NOT EDIT THIS FILE
//   This file has been generated from the target's JSON hardware description
//

static inline void _init_keys()
{
    stm32_gpio_enable_clock(GPIOD);
    stm32_gpio_enable_clock(GPIOE);
  LL_GPIO_InitTypeDef pinInit;
  LL_GPIO_StructInit(&pinInit);
  pinInit.Mode = LL_GPIO_MODE_INPUT;
  pinInit.Pin = LL_GPIO_PIN_10;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOD, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_12;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOD, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_7;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOE, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_11;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOD, &pinInit);
}

static inline uint32_t _read_keys()
{
  uint32_t keys = 0;
  if (!LL_GPIO_IsInputPinSet(GPIOD, LL_GPIO_PIN_10))
    keys |= (1 << KEY_MENU);
  if (!LL_GPIO_IsInputPinSet(GPIOD, LL_GPIO_PIN_12))
    keys |= (1 << KEY_EXIT);
  if (!LL_GPIO_IsInputPinSet(GPIOE, LL_GPIO_PIN_7))
    keys |= (1 << KEY_ENTER);
  if (!LL_GPIO_IsInputPinSet(GPIOD, LL_GPIO_PIN_11))
    keys |= (1 << KEY_PAGEDN);
  return keys;
}

static inline void _init_trims()
{
  stm32_gpio_enable_clock(GPIOB);
  stm32_gpio_enable_clock(GPIOC);
  stm32_gpio_enable_clock(GPIOD);
  stm32_gpio_enable_clock(GPIOE);
  stm32_gpio_enable_clock(GPIOF);
  stm32_gpio_enable_clock(GPIOG);
  LL_GPIO_InitTypeDef pinInit;
  LL_GPIO_StructInit(&pinInit);
  pinInit.Mode = LL_GPIO_MODE_INPUT;
  pinInit.Pin = LL_GPIO_PIN_13;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOD, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_2;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOG, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_3;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOG, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_14;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOD, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_2;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOF, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_6;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOE, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_5;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOE, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_1;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOF, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_9;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOG, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_10;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOG, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_7;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOD, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_12;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOG, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_13;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOC, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_15;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOG, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_13;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOG, &pinInit);
  pinInit.Pin = LL_GPIO_PIN_4;
  pinInit.Pull = LL_GPIO_PULL_UP;
  LL_GPIO_Init(GPIOB, &pinInit);
}

static inline uint32_t _read_trims()
{
  uint32_t trims = 0;
  if (!LL_GPIO_IsInputPinSet(GPIOD, LL_GPIO_PIN_13))
    trims |= (1 << 0);
  if (!LL_GPIO_IsInputPinSet(GPIOG, LL_GPIO_PIN_2))
    trims |= (1 << 1);
  if (!LL_GPIO_IsInputPinSet(GPIOG, LL_GPIO_PIN_3))
    trims |= (1 << 2);
  if (!LL_GPIO_IsInputPinSet(GPIOD, LL_GPIO_PIN_14))
    trims |= (1 << 3);
  if (!LL_GPIO_IsInputPinSet(GPIOF, LL_GPIO_PIN_2))
    trims |= (1 << 4);
  if (!LL_GPIO_IsInputPinSet(GPIOE, LL_GPIO_PIN_6))
    trims |= (1 << 5);
  if (!LL_GPIO_IsInputPinSet(GPIOE, LL_GPIO_PIN_5))
    trims |= (1 << 6);
  if (!LL_GPIO_IsInputPinSet(GPIOF, LL_GPIO_PIN_1))
    trims |= (1 << 7);
  if (!LL_GPIO_IsInputPinSet(GPIOG, LL_GPIO_PIN_9))
    trims |= (1 << 8);
  if (!LL_GPIO_IsInputPinSet(GPIOG, LL_GPIO_PIN_10))
    trims |= (1 << 9);
  if (!LL_GPIO_IsInputPinSet(GPIOD, LL_GPIO_PIN_7))
    trims |= (1 << 10);
  if (!LL_GPIO_IsInputPinSet(GPIOG, LL_GPIO_PIN_12))
    trims |= (1 << 11);
  if (!LL_GPIO_IsInputPinSet(GPIOC, LL_GPIO_PIN_13))
    trims |= (1 << 12);
  if (!LL_GPIO_IsInputPinSet(GPIOG, LL_GPIO_PIN_15))
    trims |= (1 << 13);
  if (!LL_GPIO_IsInputPinSet(GPIOG, LL_GPIO_PIN_13))
    trims |= (1 << 14);
  if (!LL_GPIO_IsInputPinSet(GPIOB, LL_GPIO_PIN_4))
    trims |= (1 << 15);
  return trims;
}
