From 0fc5bf0c9d3e7abaea80969077843305a9b3bba5 Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Date: Tue, 8 Mar 2022 18:56:22 +0800
Subject: [PATCH 01/33] Add STeMCell controller board config
---
builddefs/build_keyboard.mk | 18 +
builddefs/common_features.mk | 1 -
lib/chibios | 2 +-
lib/chibios-contrib | 2 +-
lib/lufa | 2 +-
lib/printf | 2 +-
lib/vusb | 2 +-
.../chibios/boards/STEMCELL/board/board.c | 266 ++++
.../chibios/boards/STEMCELL/board/board.h | 1365 +++++++++++++++++
.../chibios/boards/STEMCELL/board/board.mk | 9 +
.../chibios/boards/STEMCELL/configs/board.h | 20 +
.../boards/STEMCELL/configs/bootloader_defs.h | 5 +
.../chibios/boards/STEMCELL/configs/chconf.h | 6 +
.../chibios/boards/STEMCELL/configs/config.h | 25 +
.../chibios/boards/STEMCELL/configs/halconf.h | 27 +
.../chibios/boards/STEMCELL/configs/mcuconf.h | 244 +++
.../boards/STEMCELL/convert_to_stemcell.mk | 12 +
.../boards/STEMCELL/ld/STEMCELL_tinyuf2.ld | 88 ++
.../boards/STEMCELL/ld/STM32F401xC_tinyuf2.ld | 88 ++
platforms/chibios/pin_defs.h | 380 +++++
20 files changed, 2558 insertions(+), 6 deletions(-)
create mode 100644 platforms/chibios/boards/STEMCELL/board/board.c
create mode 100644 platforms/chibios/boards/STEMCELL/board/board.h
create mode 100644 platforms/chibios/boards/STEMCELL/board/board.mk
create mode 100644 platforms/chibios/boards/STEMCELL/configs/board.h
create mode 100644 platforms/chibios/boards/STEMCELL/configs/bootloader_defs.h
create mode 100644 platforms/chibios/boards/STEMCELL/configs/chconf.h
create mode 100644 platforms/chibios/boards/STEMCELL/configs/config.h
create mode 100644 platforms/chibios/boards/STEMCELL/configs/halconf.h
create mode 100644 platforms/chibios/boards/STEMCELL/configs/mcuconf.h
create mode 100644 platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
create mode 100644 platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
create mode 100644 platforms/chibios/boards/STEMCELL/ld/STM32F401xC_tinyuf2.ld
create mode 100644 platforms/chibios/pin_defs.h
diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk
index fe95dcaf15bd..5fdf7aa1a8fa 100644
--- a/builddefs/build_keyboard.mk
+++ b/builddefs/build_keyboard.mk
@@ -182,6 +182,24 @@ endif
include $(BUILDDEFS_PATH)/converters.mk
+ifeq ($(strip $(STMC)), yes)
+ CONVERT_TO_STEMCELL=yes
+endif
+
+ifeq ($(strip $(STMC_US)), yes)
+ CONVERT_TO_STEMCELL_UART_SWAP=yes
+ OPT_DEFS += -DCONVERT_TO_STEMCELL_UART_SWAP
+endif
+
+ifeq ($(strip $(STMC_IS)), yes)
+ CONVERT_TO_STEMCELL_I2C_SWAP=yes
+ OPT_DEFS += -DCONVERT_TO_STEMCELL_I2C_SWAP
+endif
+
+ifeq ($(strip $(CONVERT_TO_STEMCELL)), yes)
+ include platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
+endif
+
include $(BUILDDEFS_PATH)/mcu_selection.mk
# Find all the C source files to be compiled in subfolders.
diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index 8d31f694a70c..3e92c46130ed 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -213,7 +213,6 @@ else
# Automatically provided by avr-libc, nothing required
else ifeq ($(PLATFORM),CHIBIOS)
ifneq ($(filter STM32F3xx_% STM32F1xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
- # Emulated EEPROM
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_FLASH_EMULATED
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
COMMON_VPATH += $(DRIVER_PATH)/flash
diff --git a/lib/chibios b/lib/chibios
index f836d24b06d7..257302333c31 160000
--- a/lib/chibios
+++ b/lib/chibios
@@ -1 +1 @@
-Subproject commit f836d24b06d7265696a33d1cea010bd6a931791d
+Subproject commit 257302333c31f1f710800c2b97acf3550de043e1
diff --git a/lib/chibios-contrib b/lib/chibios-contrib
index 966c48894b12..ff1c6ec90cfc 160000
--- a/lib/chibios-contrib
+++ b/lib/chibios-contrib
@@ -1 +1 @@
-Subproject commit 966c48894b12a2ebf8819e6316c2a5dabdd320f2
+Subproject commit ff1c6ec90cfc250d81e6f29a0d60a4faf2afb46d
diff --git a/lib/lufa b/lib/lufa
index 35cc3d92f557..19a5d533f02a 160000
--- a/lib/lufa
+++ b/lib/lufa
@@ -1 +1 @@
-Subproject commit 35cc3d92f557bc8874ca602d2f22642d77cfe129
+Subproject commit 19a5d533f02a7b46eeadca99cc9699659cef7a60
diff --git a/lib/printf b/lib/printf
index c2e3b4e10d28..d3b984684bb8 160000
--- a/lib/printf
+++ b/lib/printf
@@ -1 +1 @@
-Subproject commit c2e3b4e10d281e7f0f694d3ecbd9f320977288cc
+Subproject commit d3b984684bb8a8bdc48cc7a1abecb93ce59bbe3e
diff --git a/lib/vusb b/lib/vusb
index 819dbc1e5d59..bdb53e4c043d 160000
--- a/lib/vusb
+++ b/lib/vusb
@@ -1 +1 @@
-Subproject commit 819dbc1e5d5926b17e27e00ca6d3d2988adae04e
+Subproject commit bdb53e4c043d089279d9891b68bea77614cb97ee
diff --git a/platforms/chibios/boards/STEMCELL/board/board.c b/platforms/chibios/boards/STEMCELL/board/board.c
new file mode 100644
index 000000000000..9ff3f758c123
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/board/board.c
@@ -0,0 +1,266 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/*
+ * This file has been automatically generated using ChibiStudio board
+ * generator plugin. Do not edit manually.
+ */
+
+#include "hal.h"
+#include "stm32_gpio.h"
+
+/*===========================================================================*/
+/* Driver local definitions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver exported variables. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver local variables and types. */
+/*===========================================================================*/
+
+/**
+ * @brief Type of STM32 GPIO port setup.
+ */
+typedef struct {
+ uint32_t moder;
+ uint32_t otyper;
+ uint32_t ospeedr;
+ uint32_t pupdr;
+ uint32_t odr;
+ uint32_t afrl;
+ uint32_t afrh;
+} gpio_setup_t;
+
+/**
+ * @brief Type of STM32 GPIO initialization data.
+ */
+typedef struct {
+#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
+ gpio_setup_t PAData;
+#endif
+#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
+ gpio_setup_t PBData;
+#endif
+#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
+ gpio_setup_t PCData;
+#endif
+#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
+ gpio_setup_t PDData;
+#endif
+#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
+ gpio_setup_t PEData;
+#endif
+#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
+ gpio_setup_t PFData;
+#endif
+#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
+ gpio_setup_t PGData;
+#endif
+#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
+ gpio_setup_t PHData;
+#endif
+#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
+ gpio_setup_t PIData;
+#endif
+#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
+ gpio_setup_t PJData;
+#endif
+#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
+ gpio_setup_t PKData;
+#endif
+} gpio_config_t;
+
+/**
+ * @brief STM32 GPIO static initialization data.
+ */
+static const gpio_config_t gpio_default_config = {
+#if STM32_HAS_GPIOA
+ {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
+ VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
+#endif
+#if STM32_HAS_GPIOB
+ {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
+ VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
+#endif
+#if STM32_HAS_GPIOC
+ {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
+ VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
+#endif
+#if STM32_HAS_GPIOD
+ {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
+ VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
+#endif
+#if STM32_HAS_GPIOE
+ {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
+ VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
+#endif
+#if STM32_HAS_GPIOF
+ {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
+ VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
+#endif
+#if STM32_HAS_GPIOG
+ {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
+ VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
+#endif
+#if STM32_HAS_GPIOH
+ {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
+ VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
+#endif
+#if STM32_HAS_GPIOI
+ {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
+ VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
+#endif
+#if STM32_HAS_GPIOJ
+ {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
+ VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
+#endif
+#if STM32_HAS_GPIOK
+ {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
+ VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
+#endif
+};
+
+/*===========================================================================*/
+/* Driver local functions. */
+/*===========================================================================*/
+
+static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
+
+ gpiop->OTYPER = config->otyper;
+ gpiop->OSPEEDR = config->ospeedr;
+ gpiop->PUPDR = config->pupdr;
+ gpiop->ODR = config->odr;
+ gpiop->AFRL = config->afrl;
+ gpiop->AFRH = config->afrh;
+ gpiop->MODER = config->moder;
+}
+
+static void stm32_gpio_init(void) {
+
+ /* Enabling GPIO-related clocks, the mask comes from the
+ registry header file.*/
+ rccResetAHB1(STM32_GPIO_EN_MASK);
+ rccEnableAHB1(STM32_GPIO_EN_MASK, true);
+
+ /* Initializing all the defined GPIO ports.*/
+#if STM32_HAS_GPIOA
+ gpio_init(GPIOA, &gpio_default_config.PAData);
+#endif
+#if STM32_HAS_GPIOB
+ gpio_init(GPIOB, &gpio_default_config.PBData);
+#endif
+#if STM32_HAS_GPIOC
+ gpio_init(GPIOC, &gpio_default_config.PCData);
+#endif
+#if STM32_HAS_GPIOD
+ gpio_init(GPIOD, &gpio_default_config.PDData);
+#endif
+#if STM32_HAS_GPIOE
+ gpio_init(GPIOE, &gpio_default_config.PEData);
+#endif
+#if STM32_HAS_GPIOF
+ gpio_init(GPIOF, &gpio_default_config.PFData);
+#endif
+#if STM32_HAS_GPIOG
+ gpio_init(GPIOG, &gpio_default_config.PGData);
+#endif
+#if STM32_HAS_GPIOH
+ gpio_init(GPIOH, &gpio_default_config.PHData);
+#endif
+#if STM32_HAS_GPIOI
+ gpio_init(GPIOI, &gpio_default_config.PIData);
+#endif
+#if STM32_HAS_GPIOJ
+ gpio_init(GPIOJ, &gpio_default_config.PJData);
+#endif
+#if STM32_HAS_GPIOK
+ gpio_init(GPIOK, &gpio_default_config.PKData);
+#endif
+}
+
+/*===========================================================================*/
+/* Driver interrupt handlers. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver exported functions. */
+/*===========================================================================*/
+
+/**
+ * @brief Early initialization code.
+ * @details GPIO ports and system clocks are initialized before everything
+ * else.
+ */
+void __early_init(void) {
+
+ stm32_gpio_init();
+ stm32_clock_init();
+}
+
+#if HAL_USE_SDC || defined(__DOXYGEN__)
+/**
+ * @brief SDC card detection.
+ */
+bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
+
+ (void)sdcp;
+ /* CHTODO: Fill the implementation.*/
+ return true;
+}
+
+/**
+ * @brief SDC card write protection detection.
+ */
+bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
+
+ (void)sdcp;
+ /* CHTODO: Fill the implementation.*/
+ return false;
+}
+#endif /* HAL_USE_SDC */
+
+#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
+/**
+ * @brief MMC_SPI card detection.
+ */
+bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
+
+ (void)mmcp;
+ /* CHTODO: Fill the implementation.*/
+ return true;
+}
+
+/**
+ * @brief MMC_SPI card write protection detection.
+ */
+bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
+
+ (void)mmcp;
+ /* CHTODO: Fill the implementation.*/
+ return false;
+}
+#endif
+
+/**
+ * @brief Board-specific initialization code.
+ * @note You can add your board-specific code here.
+ */
+void boardInit(void) {
+
+}
diff --git a/platforms/chibios/boards/STEMCELL/board/board.h b/platforms/chibios/boards/STEMCELL/board/board.h
new file mode 100644
index 000000000000..b8be7c18eeca
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/board/board.h
@@ -0,0 +1,1365 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/*
+ * This file has been automatically generated using ChibiStudio board
+ * generator plugin. Do not edit manually.
+ */
+
+#ifndef BOARD_H
+#define BOARD_H
+
+/*===========================================================================*/
+/* Driver constants. */
+/*===========================================================================*/
+
+/*
+ * Setup for STMicroelectronics STM32F401C-Discovery board.
+ */
+
+/*
+ * Board identifier.
+ */
+#define BOARD_ST_STM32F401C_DISCOVERY
+#define BOARD_NAME "STMicroelectronics STM32F401C-Discovery"
+
+/*
+ * Board oscillators-related settings.
+ * NOTE: LSE not fitted.
+ */
+#if !defined(STM32_LSECLK)
+#define STM32_LSECLK 0U
+#endif
+
+#if !defined(STM32_HSECLK)
+#define STM32_HSECLK 8000000U
+#endif
+
+/*
+ * Board voltages.
+ * Required for performance limits calculation.
+ */
+#define STM32_VDD 300U
+
+/*
+ * MCU type as defined in the ST header.
+ */
+#define STM32F401xC
+
+/*
+ * IO pins assignments.
+ */
+#define GPIOA_BUTTON 0U
+#define GPIOA_PIN1 1U
+#define GPIOA_PIN2 2U
+#define GPIOA_PIN3 3U
+#define GPIOA_CS43L22_LRCK 4U
+#define GPIOA_L3GD20_SCL 5U
+#define GPIOA_L3GD20_SD0 6U
+#define GPIOA_L3GD20_SDI 7U
+#define GPIOA_LED 8U
+#define GPIOA_VBUS_FS 9U
+#define GPIOA_OTG_FS_ID 10U
+#define GPIOA_OTG_FS_DM 11U
+#define GPIOA_OTG_FS_DP 12U
+#define GPIOA_SWDIO 13U
+#define GPIOA_SWCLK 14U
+#define GPIOA_PIN15 15U
+
+#define GPIOB_PIN0 0U
+#define GPIOB_PIN1 1U
+#define GPIOB_PIN2 2U
+#define GPIOB_SWO 3U
+#define GPIOB_PIN4 4U
+#define GPIOB_PIN5 5U
+#define GPIOB_LSM303DLHC_SCL 6U
+#define GPIOB_PIN7 7U
+#define GPIOB_PIN8 8U
+#define GPIOB_LSM303DLHC_SDA 9U
+#define GPIOB_MP45DT02_CLK_IN 10U
+#define GPIOB_PIN11 11U
+#define GPIOB_PIN12 12U
+#define GPIOB_PIN13 13U
+#define GPIOB_PIN14 14U
+#define GPIOB_PIN15 15U
+
+#define GPIOC_OTG_FS_POWER_ON 0U
+#define GPIOC_PIN1 1U
+#define GPIOC_PIN2 2U
+#define GPIOC_CS43L22_AIN4x 3U
+#define GPIOC_MP45DT02_PDM_OUT 3U
+#define GPIOC_PIN4 4U
+#define GPIOC_PIN5 5U
+#define GPIOC_PIN6 6U
+#define GPIOC_CS43L22_MCLK 7U
+#define GPIOC_PIN8 8U
+#define GPIOC_PIN9 9U
+#define GPIOC_CS43L22_SCLK 10U
+#define GPIOC_PIN11 11U
+#define GPIOC_CS43L22_SDIN 12U
+#define GPIOC_PIN13 13U
+#define GPIOC_OSC32_IN 14U
+#define GPIOC_OSC32_OUT 15U
+
+#define GPIOD_PIN0 0U
+#define GPIOD_PIN1 1U
+#define GPIOD_PIN2 2U
+#define GPIOD_PIN3 3U
+#define GPIOD_CS43L22_RESET 4U
+#define GPIOD_OverCurrent 5U
+#define GPIOD_PIN6 6U
+#define GPIOD_PIN7 7U
+#define GPIOD_PIN8 8U
+#define GPIOD_PIN9 9U
+#define GPIOD_PIN10 10U
+#define GPIOD_PIN11 11U
+#define GPIOD_LED4 12U
+#define GPIOD_LED3 13U
+#define GPIOD_LED5 14U
+#define GPIOD_LED6 15U
+
+#define GPIOE_L3GD20_INT1 0U
+#define GPIOE_L3GD20_INT2 1U
+#define GPIOE_LSM303DLHC_DRDY 2U
+#define GPIOE_L3GD20_CS 3U
+#define GPIOE_LSM303DLHC_INT1 4U
+#define GPIOE_LSM303DLHC_INT2 5U
+#define GPIOE_PIN6 6U
+#define GPIOE_PIN7 7U
+#define GPIOE_PIN8 8U
+#define GPIOE_PIN9 9U
+#define GPIOE_PIN10 10U
+#define GPIOE_PIN11 11U
+#define GPIOE_PIN12 12U
+#define GPIOE_PIN13 13U
+#define GPIOE_PIN14 14U
+#define GPIOE_PIN15 15U
+
+#define GPIOF_PIN0 0U
+#define GPIOF_PIN1 1U
+#define GPIOF_PIN2 2U
+#define GPIOF_PIN3 3U
+#define GPIOF_PIN4 4U
+#define GPIOF_PIN5 5U
+#define GPIOF_PIN6 6U
+#define GPIOF_PIN7 7U
+#define GPIOF_PIN8 8U
+#define GPIOF_PIN9 9U
+#define GPIOF_PIN10 10U
+#define GPIOF_PIN11 11U
+#define GPIOF_PIN12 12U
+#define GPIOF_PIN13 13U
+#define GPIOF_PIN14 14U
+#define GPIOF_PIN15 15U
+
+#define GPIOG_PIN0 0U
+#define GPIOG_PIN1 1U
+#define GPIOG_PIN2 2U
+#define GPIOG_PIN3 3U
+#define GPIOG_PIN4 4U
+#define GPIOG_PIN5 5U
+#define GPIOG_PIN6 6U
+#define GPIOG_PIN7 7U
+#define GPIOG_PIN8 8U
+#define GPIOG_PIN9 9U
+#define GPIOG_PIN10 10U
+#define GPIOG_PIN11 11U
+#define GPIOG_PIN12 12U
+#define GPIOG_PIN13 13U
+#define GPIOG_PIN14 14U
+#define GPIOG_PIN15 15U
+
+#define GPIOH_OSC_IN 0U
+#define GPIOH_OSC_OUT 1U
+#define GPIOH_PIN2 2U
+#define GPIOH_PIN3 3U
+#define GPIOH_PIN4 4U
+#define GPIOH_PIN5 5U
+#define GPIOH_PIN6 6U
+#define GPIOH_PIN7 7U
+#define GPIOH_PIN8 8U
+#define GPIOH_PIN9 9U
+#define GPIOH_PIN10 10U
+#define GPIOH_PIN11 11U
+#define GPIOH_PIN12 12U
+#define GPIOH_PIN13 13U
+#define GPIOH_PIN14 14U
+#define GPIOH_PIN15 15U
+
+#define GPIOI_PIN0 0U
+#define GPIOI_PIN1 1U
+#define GPIOI_PIN2 2U
+#define GPIOI_PIN3 3U
+#define GPIOI_PIN4 4U
+#define GPIOI_PIN5 5U
+#define GPIOI_PIN6 6U
+#define GPIOI_PIN7 7U
+#define GPIOI_PIN8 8U
+#define GPIOI_PIN9 9U
+#define GPIOI_PIN10 10U
+#define GPIOI_PIN11 11U
+#define GPIOI_PIN12 12U
+#define GPIOI_PIN13 13U
+#define GPIOI_PIN14 14U
+#define GPIOI_PIN15 15U
+
+/*
+ * IO lines assignments.
+ */
+#define LINE_BUTTON PAL_LINE(GPIOA, 0U)
+#define LINE_CS43L22_LRCK PAL_LINE(GPIOA, 4U)
+#define LINE_L3GD20_SCL PAL_LINE(GPIOA, 5U)
+#define LINE_L3GD20_SD0 PAL_LINE(GPIOA, 6U)
+#define LINE_L3GD20_SDI PAL_LINE(GPIOA, 7U)
+#define LINE_VBUS_FS PAL_LINE(GPIOA, 9U)
+#define LINE_OTG_FS_ID PAL_LINE(GPIOA, 10U)
+#define LINE_OTG_FS_DM PAL_LINE(GPIOA, 11U)
+#define LINE_OTG_FS_DP PAL_LINE(GPIOA, 12U)
+#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
+#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
+#define LINE_SWO PAL_LINE(GPIOB, 3U)
+#define LINE_LSM303DLHC_SCL PAL_LINE(GPIOB, 6U)
+#define LINE_LSM303DLHC_SDA PAL_LINE(GPIOB, 9U)
+#define LINE_MP45DT02_CLK_IN PAL_LINE(GPIOB, 10U)
+#define LINE_OTG_FS_POWER_ON PAL_LINE(GPIOC, 0U)
+#define LINE_CS43L22_AIN4x PAL_LINE(GPIOC, 3U)
+#define LINE_MP45DT02_PDM_OUT PAL_LINE(GPIOC, 3U)
+#define LINE_CS43L22_MCLK PAL_LINE(GPIOC, 7U)
+#define LINE_CS43L22_SCLK PAL_LINE(GPIOC, 10U)
+#define LINE_CS43L22_SDIN PAL_LINE(GPIOC, 12U)
+#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
+#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
+#define LINE_CS43L22_RESET PAL_LINE(GPIOD, 4U)
+#define LINE_OverCurrent PAL_LINE(GPIOD, 5U)
+#define LINE_LED4 PAL_LINE(GPIOD, 12U)
+#define LINE_LED3 PAL_LINE(GPIOD, 13U)
+#define LINE_LED5 PAL_LINE(GPIOD, 14U)
+#define LINE_LED6 PAL_LINE(GPIOD, 15U)
+#define LINE_L3GD20_INT1 PAL_LINE(GPIOE, 0U)
+#define LINE_L3GD20_INT2 PAL_LINE(GPIOE, 1U)
+#define LINE_LSM303DLHC_DRDY PAL_LINE(GPIOE, 2U)
+#define LINE_L3GD20_CS PAL_LINE(GPIOE, 3U)
+#define LINE_LSM303DLHC_INT1 PAL_LINE(GPIOE, 4U)
+#define LINE_LSM303DLHC_INT2 PAL_LINE(GPIOE, 5U)
+#define LINE_OSC_IN PAL_LINE(GPIOH, 0U)
+#define LINE_OSC_OUT PAL_LINE(GPIOH, 1U)
+
+/*===========================================================================*/
+/* Driver pre-compile time settings. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Derived constants and error checks. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver data structures and types. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver macros. */
+/*===========================================================================*/
+
+/*
+ * I/O ports initial setup, this configuration is established soon after reset
+ * in the initialization code.
+ * Please refer to the STM32 Reference Manual for details.
+ */
+#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
+#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
+#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
+#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
+#define PIN_ODR_LOW(n) (0U << (n))
+#define PIN_ODR_HIGH(n) (1U << (n))
+#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
+#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
+#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
+#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
+#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
+#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
+#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
+#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
+#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
+#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
+
+/*
+ * GPIOA setup:
+ *
+ * PA0 - BUTTON (input floating).
+ * PA1 - PIN1 (input pullup).
+ * PA2 - PIN2 (input pullup).
+ * PA3 - PIN3 (input pullup).
+ * PA4 - CS43L22_LRCK (alternate 6).
+ * PA5 - L3GD20_SCL (alternate 5).
+ * PA6 - L3GD20_SD0 (alternate 5).
+ * PA7 - L3GD20_SDI (alternate 5).
+ * PA8 - LED (output pushpull maximum).
+ * PA9 - VBUS_FS (input floating).
+ * PA10 - OTG_FS_ID (alternate 10).
+ * PA11 - OTG_FS_DM (alternate 10).
+ * PA12 - OTG_FS_DP (alternate 10).
+ * PA13 - SWDIO (alternate 0).
+ * PA14 - SWCLK (alternate 0).
+ * PA15 - PIN15 (input pullup).
+ */
+#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \
+ PIN_MODE_INPUT(GPIOA_PIN1) | \
+ PIN_MODE_INPUT(GPIOA_PIN2) | \
+ PIN_MODE_INPUT(GPIOA_PIN3) | \
+ PIN_MODE_ALTERNATE(GPIOA_CS43L22_LRCK) |\
+ PIN_MODE_ALTERNATE(GPIOA_L3GD20_SCL) | \
+ PIN_MODE_ALTERNATE(GPIOA_L3GD20_SD0) | \
+ PIN_MODE_ALTERNATE(GPIOA_L3GD20_SDI) | \
+ PIN_MODE_OUTPUT(GPIOA_LED)| \
+ PIN_MODE_INPUT(GPIOA_VBUS_FS) | \
+ PIN_MODE_ALTERNATE(GPIOA_OTG_FS_ID) | \
+ PIN_MODE_ALTERNATE(GPIOA_OTG_FS_DM) | \
+ PIN_MODE_ALTERNATE(GPIOA_OTG_FS_DP) | \
+ PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \
+ PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \
+ PIN_MODE_INPUT(GPIOA_PIN15))
+#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_CS43L22_LRCK) |\
+ PIN_OTYPE_PUSHPULL(GPIOA_L3GD20_SCL) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_L3GD20_SD0) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_L3GD20_SDI) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_LED) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_VBUS_FS) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_ID) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DM) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DP) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
+#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_HIGH(GPIOA_BUTTON) | \
+ PIN_OSPEED_HIGH(GPIOA_PIN1) | \
+ PIN_OSPEED_HIGH(GPIOA_PIN2) | \
+ PIN_OSPEED_HIGH(GPIOA_PIN3) | \
+ PIN_OSPEED_HIGH(GPIOA_CS43L22_LRCK) | \
+ PIN_OSPEED_HIGH(GPIOA_L3GD20_SCL) | \
+ PIN_OSPEED_HIGH(GPIOA_L3GD20_SD0) | \
+ PIN_OSPEED_HIGH(GPIOA_L3GD20_SDI) | \
+ PIN_OSPEED_HIGH(GPIOA_LED) | \
+ PIN_OSPEED_HIGH(GPIOA_VBUS_FS) | \
+ PIN_OSPEED_HIGH(GPIOA_OTG_FS_ID) | \
+ PIN_OSPEED_HIGH(GPIOA_OTG_FS_DM) | \
+ PIN_OSPEED_HIGH(GPIOA_OTG_FS_DP) | \
+ PIN_OSPEED_HIGH(GPIOA_SWDIO) | \
+ PIN_OSPEED_HIGH(GPIOA_SWCLK) | \
+ PIN_OSPEED_HIGH(GPIOA_PIN15))
+#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \
+ PIN_PUPDR_PULLUP(GPIOA_PIN1) | \
+ PIN_PUPDR_PULLUP(GPIOA_PIN2) | \
+ PIN_PUPDR_PULLUP(GPIOA_PIN3) | \
+ PIN_PUPDR_FLOATING(GPIOA_CS43L22_LRCK) |\
+ PIN_PUPDR_FLOATING(GPIOA_L3GD20_SCL) | \
+ PIN_PUPDR_PULLUP(GPIOA_L3GD20_SD0) | \
+ PIN_PUPDR_PULLUP(GPIOA_L3GD20_SDI) | \
+ PIN_PUPDR_FLOATING(GPIOA_LED) | \
+ PIN_PUPDR_FLOATING(GPIOA_VBUS_FS) | \
+ PIN_PUPDR_FLOATING(GPIOA_OTG_FS_ID) | \
+ PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DM) | \
+ PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DP) | \
+ PIN_PUPDR_FLOATING(GPIOA_SWDIO) | \
+ PIN_PUPDR_FLOATING(GPIOA_SWCLK) | \
+ PIN_PUPDR_PULLUP(GPIOA_PIN15))
+#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \
+ PIN_ODR_HIGH(GPIOA_PIN1) | \
+ PIN_ODR_HIGH(GPIOA_PIN2) | \
+ PIN_ODR_HIGH(GPIOA_PIN3) | \
+ PIN_ODR_HIGH(GPIOA_CS43L22_LRCK) | \
+ PIN_ODR_HIGH(GPIOA_L3GD20_SCL) | \
+ PIN_ODR_HIGH(GPIOA_L3GD20_SD0) | \
+ PIN_ODR_HIGH(GPIOA_L3GD20_SDI) | \
+ PIN_ODR_LOW(GPIOA_LED) | \
+ PIN_ODR_HIGH(GPIOA_VBUS_FS) | \
+ PIN_ODR_HIGH(GPIOA_OTG_FS_ID) | \
+ PIN_ODR_HIGH(GPIOA_OTG_FS_DM) | \
+ PIN_ODR_HIGH(GPIOA_OTG_FS_DP) | \
+ PIN_ODR_HIGH(GPIOA_SWDIO) | \
+ PIN_ODR_HIGH(GPIOA_SWCLK) | \
+ PIN_ODR_HIGH(GPIOA_PIN15))
+#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \
+ PIN_AFIO_AF(GPIOA_PIN1, 0U) | \
+ PIN_AFIO_AF(GPIOA_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOA_PIN3, 0U) | \
+ PIN_AFIO_AF(GPIOA_CS43L22_LRCK, 6U) | \
+ PIN_AFIO_AF(GPIOA_L3GD20_SCL, 5U) | \
+ PIN_AFIO_AF(GPIOA_L3GD20_SD0, 5U) | \
+ PIN_AFIO_AF(GPIOA_L3GD20_SDI, 5U))
+#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_LED, 0U) | \
+ PIN_AFIO_AF(GPIOA_VBUS_FS, 0U) | \
+ PIN_AFIO_AF(GPIOA_OTG_FS_ID, 10U) | \
+ PIN_AFIO_AF(GPIOA_OTG_FS_DM, 10U) | \
+ PIN_AFIO_AF(GPIOA_OTG_FS_DP, 10U) | \
+ PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \
+ PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \
+ PIN_AFIO_AF(GPIOA_PIN15, 0U))
+
+/*
+ * GPIOB setup:
+ *
+ * PB0 - PIN0 (input pullup).
+ * PB1 - PIN1 (input pullup).
+ * PB2 - PIN2 (input pullup).
+ * PB3 - SWO (alternate 0).
+ * PB4 - PIN4 (input pullup).
+ * PB5 - PIN5 (input pullup).
+ * PB6 - LSM303DLHC_SCL (alternate 4).
+ * PB7 - PIN7 (input pullup).
+ * PB8 - PIN8 (input pullup).
+ * PB9 - LSM303DLHC_SDA (alternate 4).
+ * PB10 - MP45DT02_CLK_IN (alternate 5).
+ * PB11 - PIN11 (input pullup).
+ * PB12 - PIN12 (input pullup).
+ * PB13 - PIN13 (input pullup).
+ * PB14 - PIN14 (input pullup).
+ * PB15 - PIN15 (input pullup).
+ */
+#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
+ PIN_MODE_INPUT(GPIOB_PIN1) | \
+ PIN_MODE_INPUT(GPIOB_PIN2) | \
+ PIN_MODE_ALTERNATE(GPIOB_SWO) | \
+ PIN_MODE_INPUT(GPIOB_PIN4) | \
+ PIN_MODE_INPUT(GPIOB_PIN5) | \
+ PIN_MODE_ALTERNATE(GPIOB_LSM303DLHC_SCL) |\
+ PIN_MODE_INPUT(GPIOB_PIN7) | \
+ PIN_MODE_INPUT(GPIOB_PIN8) | \
+ PIN_MODE_ALTERNATE(GPIOB_LSM303DLHC_SDA) |\
+ PIN_MODE_ALTERNATE(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_MODE_INPUT(GPIOB_PIN11) | \
+ PIN_MODE_INPUT(GPIOB_PIN12) | \
+ PIN_MODE_INPUT(GPIOB_PIN13) | \
+ PIN_MODE_INPUT(GPIOB_PIN14) | \
+ PIN_MODE_INPUT(GPIOB_PIN15))
+#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_SWO) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_LSM303DLHC_SCL) |\
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_LSM303DLHC_SDA) |\
+ PIN_OTYPE_PUSHPULL(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN13) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN14) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN15))
+#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_HIGH(GPIOB_PIN0) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN1) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN2) | \
+ PIN_OSPEED_HIGH(GPIOB_SWO) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN4) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN5) | \
+ PIN_OSPEED_HIGH(GPIOB_LSM303DLHC_SCL) |\
+ PIN_OSPEED_HIGH(GPIOB_PIN7) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN8) | \
+ PIN_OSPEED_HIGH(GPIOB_LSM303DLHC_SDA) |\
+ PIN_OSPEED_HIGH(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_OSPEED_HIGH(GPIOB_PIN11) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN12) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN13) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN14) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN15))
+#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
+ PIN_PUPDR_PULLUP(GPIOB_SWO) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
+ PIN_PUPDR_FLOATING(GPIOB_LSM303DLHC_SCL) |\
+ PIN_PUPDR_PULLUP(GPIOB_PIN7) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN8) | \
+ PIN_PUPDR_FLOATING(GPIOB_LSM303DLHC_SDA) |\
+ PIN_PUPDR_FLOATING(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_PUPDR_PULLUP(GPIOB_PIN11) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN12) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN13) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN14) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN15))
+#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \
+ PIN_ODR_HIGH(GPIOB_PIN1) | \
+ PIN_ODR_HIGH(GPIOB_PIN2) | \
+ PIN_ODR_HIGH(GPIOB_SWO) | \
+ PIN_ODR_HIGH(GPIOB_PIN4) | \
+ PIN_ODR_HIGH(GPIOB_PIN5) | \
+ PIN_ODR_HIGH(GPIOB_LSM303DLHC_SCL) | \
+ PIN_ODR_HIGH(GPIOB_PIN7) | \
+ PIN_ODR_HIGH(GPIOB_PIN8) | \
+ PIN_ODR_HIGH(GPIOB_LSM303DLHC_SDA) | \
+ PIN_ODR_HIGH(GPIOB_MP45DT02_CLK_IN) | \
+ PIN_ODR_HIGH(GPIOB_PIN11) | \
+ PIN_ODR_HIGH(GPIOB_PIN12) | \
+ PIN_ODR_HIGH(GPIOB_PIN13) | \
+ PIN_ODR_HIGH(GPIOB_PIN14) | \
+ PIN_ODR_HIGH(GPIOB_PIN15))
+#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN1, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOB_SWO, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN5, 0U) | \
+ PIN_AFIO_AF(GPIOB_LSM303DLHC_SCL, 4U) |\
+ PIN_AFIO_AF(GPIOB_PIN7, 0U))
+#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \
+ PIN_AFIO_AF(GPIOB_LSM303DLHC_SDA, 4U) |\
+ PIN_AFIO_AF(GPIOB_MP45DT02_CLK_IN, 5U) |\
+ PIN_AFIO_AF(GPIOB_PIN11, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN12, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN14, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN15, 0U))
+
+/*
+ * GPIOC setup:
+ *
+ * PC0 - OTG_FS_POWER_ON (output pushpull maximum).
+ * PC1 - PIN1 (input pullup).
+ * PC2 - PIN2 (input pullup).
+ * PC3 - CS43L22_AIN4x MP45DT02_PDM_OUT(alternate 5).
+ * PC4 - PIN4 (input pullup).
+ * PC5 - PIN5 (input pullup).
+ * PC6 - PIN6 (input pullup).
+ * PC7 - CS43L22_MCLK (alternate 6).
+ * PC8 - PIN8 (input pullup).
+ * PC9 - PIN9 (input pullup).
+ * PC10 - CS43L22_SCLK (alternate 6).
+ * PC11 - PIN11 (input pullup).
+ * PC12 - CS43L22_SDIN (alternate 6).
+ * PC13 - PIN13 (input pullup).
+ * PC14 - OSC32_IN (input floating).
+ * PC15 - OSC32_OUT (input floating).
+ */
+#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_OTG_FS_POWER_ON) |\
+ PIN_MODE_INPUT(GPIOC_PIN1) | \
+ PIN_MODE_INPUT(GPIOC_PIN2) | \
+ PIN_MODE_ALTERNATE(GPIOC_CS43L22_AIN4x) |\
+ PIN_MODE_INPUT(GPIOC_PIN4) | \
+ PIN_MODE_INPUT(GPIOC_PIN5) | \
+ PIN_MODE_INPUT(GPIOC_PIN6) | \
+ PIN_MODE_ALTERNATE(GPIOC_CS43L22_MCLK) |\
+ PIN_MODE_INPUT(GPIOC_PIN8) | \
+ PIN_MODE_INPUT(GPIOC_PIN9) | \
+ PIN_MODE_ALTERNATE(GPIOC_CS43L22_SCLK) |\
+ PIN_MODE_INPUT(GPIOC_PIN11) | \
+ PIN_MODE_ALTERNATE(GPIOC_CS43L22_SDIN) |\
+ PIN_MODE_INPUT(GPIOC_PIN13) | \
+ PIN_MODE_INPUT(GPIOC_OSC32_IN) | \
+ PIN_MODE_INPUT(GPIOC_OSC32_OUT))
+#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_OTG_FS_POWER_ON) |\
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_CS43L22_AIN4x) |\
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN6) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_CS43L22_MCLK) |\
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN8) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN9) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_CS43L22_SCLK) |\
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_CS43L22_SDIN) |\
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
+#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_OTG_FS_POWER_ON) |\
+ PIN_OSPEED_HIGH(GPIOC_PIN1) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN2) | \
+ PIN_OSPEED_HIGH(GPIOC_CS43L22_AIN4x) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN4) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN5) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN6) | \
+ PIN_OSPEED_HIGH(GPIOC_CS43L22_MCLK) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN8) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN9) | \
+ PIN_OSPEED_HIGH(GPIOC_CS43L22_SCLK) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN11) | \
+ PIN_OSPEED_HIGH(GPIOC_CS43L22_SDIN) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN13) | \
+ PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \
+ PIN_OSPEED_HIGH(GPIOC_OSC32_OUT))
+#define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLUP(GPIOC_OTG_FS_POWER_ON) |\
+ PIN_PUPDR_PULLUP(GPIOC_PIN1) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN2) | \
+ PIN_PUPDR_FLOATING(GPIOC_CS43L22_AIN4x) |\
+ PIN_PUPDR_PULLUP(GPIOC_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN5) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN6) | \
+ PIN_PUPDR_PULLUP(GPIOC_CS43L22_MCLK) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN8) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN9) | \
+ PIN_PUPDR_PULLUP(GPIOC_CS43L22_SCLK) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN11) | \
+ PIN_PUPDR_PULLUP(GPIOC_CS43L22_SDIN) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN13) | \
+ PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \
+ PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
+#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_OTG_FS_POWER_ON) | \
+ PIN_ODR_HIGH(GPIOC_PIN1) | \
+ PIN_ODR_HIGH(GPIOC_PIN2) | \
+ PIN_ODR_HIGH(GPIOC_CS43L22_AIN4x) | \
+ PIN_ODR_HIGH(GPIOC_PIN4) | \
+ PIN_ODR_HIGH(GPIOC_PIN5) | \
+ PIN_ODR_HIGH(GPIOC_PIN6) | \
+ PIN_ODR_HIGH(GPIOC_CS43L22_MCLK) | \
+ PIN_ODR_HIGH(GPIOC_PIN8) | \
+ PIN_ODR_HIGH(GPIOC_PIN9) | \
+ PIN_ODR_HIGH(GPIOC_CS43L22_SCLK) | \
+ PIN_ODR_HIGH(GPIOC_PIN11) | \
+ PIN_ODR_HIGH(GPIOC_CS43L22_SDIN) | \
+ PIN_ODR_HIGH(GPIOC_PIN13) | \
+ PIN_ODR_HIGH(GPIOC_OSC32_IN) | \
+ PIN_ODR_HIGH(GPIOC_OSC32_OUT))
+#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_OTG_FS_POWER_ON, 0U) |\
+ PIN_AFIO_AF(GPIOC_PIN1, 0U) | \
+ PIN_AFIO_AF(GPIOC_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOC_CS43L22_AIN4x, 5U) | \
+ PIN_AFIO_AF(GPIOC_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOC_PIN5, 0U) | \
+ PIN_AFIO_AF(GPIOC_PIN6, 0U) | \
+ PIN_AFIO_AF(GPIOC_CS43L22_MCLK, 6U))
+#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_PIN8, 0U) | \
+ PIN_AFIO_AF(GPIOC_PIN9, 0U) | \
+ PIN_AFIO_AF(GPIOC_CS43L22_SCLK, 6U) | \
+ PIN_AFIO_AF(GPIOC_PIN11, 0U) | \
+ PIN_AFIO_AF(GPIOC_CS43L22_SDIN, 6U) | \
+ PIN_AFIO_AF(GPIOC_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \
+ PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U))
+
+/*
+ * GPIOD setup:
+ *
+ * PD0 - PIN0 (input pullup).
+ * PD1 - PIN1 (input pullup).
+ * PD2 - PIN2 (input pullup).
+ * PD3 - PIN3 (input pullup).
+ * PD4 - CS43L22_RESET (output pushpull maximum).
+ * PD5 - OverCurrent (input floating).
+ * PD6 - PIN6 (input pullup).
+ * PD7 - PIN7 (input pullup).
+ * PD8 - PIN8 (input pullup).
+ * PD9 - PIN9 (input pullup).
+ * PD10 - PIN10 (input pullup).
+ * PD11 - PIN11 (input pullup).
+ * PD12 - LED4 (output pushpull maximum).
+ * PD13 - LED3 (output pushpull maximum).
+ * PD14 - LED5 (output pushpull maximum).
+ * PD15 - LED6 (output pushpull maximum).
+ */
+#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \
+ PIN_MODE_INPUT(GPIOD_PIN1) | \
+ PIN_MODE_INPUT(GPIOD_PIN2) | \
+ PIN_MODE_INPUT(GPIOD_PIN3) | \
+ PIN_MODE_OUTPUT(GPIOD_CS43L22_RESET) | \
+ PIN_MODE_INPUT(GPIOD_OverCurrent) | \
+ PIN_MODE_INPUT(GPIOD_PIN6) | \
+ PIN_MODE_INPUT(GPIOD_PIN7) | \
+ PIN_MODE_INPUT(GPIOD_PIN8) | \
+ PIN_MODE_INPUT(GPIOD_PIN9) | \
+ PIN_MODE_INPUT(GPIOD_PIN10) | \
+ PIN_MODE_INPUT(GPIOD_PIN11) | \
+ PIN_MODE_OUTPUT(GPIOD_LED4) | \
+ PIN_MODE_OUTPUT(GPIOD_LED3) | \
+ PIN_MODE_OUTPUT(GPIOD_LED5) | \
+ PIN_MODE_OUTPUT(GPIOD_LED6))
+#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_CS43L22_RESET) |\
+ PIN_OTYPE_PUSHPULL(GPIOD_OverCurrent) |\
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_LED4) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_LED3) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_LED5) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_LED6))
+#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_HIGH(GPIOD_PIN0) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN1) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN2) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN3) | \
+ PIN_OSPEED_HIGH(GPIOD_CS43L22_RESET) | \
+ PIN_OSPEED_HIGH(GPIOD_OverCurrent) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN6) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN7) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN8) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN9) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN10) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN11) | \
+ PIN_OSPEED_HIGH(GPIOD_LED4) | \
+ PIN_OSPEED_HIGH(GPIOD_LED3) | \
+ PIN_OSPEED_HIGH(GPIOD_LED5) | \
+ PIN_OSPEED_HIGH(GPIOD_LED6))
+#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN1) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN2) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN3) | \
+ PIN_PUPDR_PULLUP(GPIOD_CS43L22_RESET) |\
+ PIN_PUPDR_FLOATING(GPIOD_OverCurrent) |\
+ PIN_PUPDR_PULLUP(GPIOD_PIN6) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN7) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN8) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN9) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN10) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN11) | \
+ PIN_PUPDR_FLOATING(GPIOD_LED4) | \
+ PIN_PUPDR_FLOATING(GPIOD_LED3) | \
+ PIN_PUPDR_FLOATING(GPIOD_LED5) | \
+ PIN_PUPDR_FLOATING(GPIOD_LED6))
+#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \
+ PIN_ODR_HIGH(GPIOD_PIN1) | \
+ PIN_ODR_HIGH(GPIOD_PIN2) | \
+ PIN_ODR_HIGH(GPIOD_PIN3) | \
+ PIN_ODR_HIGH(GPIOD_CS43L22_RESET) | \
+ PIN_ODR_HIGH(GPIOD_OverCurrent) | \
+ PIN_ODR_HIGH(GPIOD_PIN6) | \
+ PIN_ODR_HIGH(GPIOD_PIN7) | \
+ PIN_ODR_HIGH(GPIOD_PIN8) | \
+ PIN_ODR_HIGH(GPIOD_PIN9) | \
+ PIN_ODR_HIGH(GPIOD_PIN10) | \
+ PIN_ODR_HIGH(GPIOD_PIN11) | \
+ PIN_ODR_LOW(GPIOD_LED4) | \
+ PIN_ODR_LOW(GPIOD_LED3) | \
+ PIN_ODR_LOW(GPIOD_LED5) | \
+ PIN_ODR_LOW(GPIOD_LED6))
+#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN1, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN3, 0U) | \
+ PIN_AFIO_AF(GPIOD_CS43L22_RESET, 0U) | \
+ PIN_AFIO_AF(GPIOD_OverCurrent, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN6, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN7, 0U))
+#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN9, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN10, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN11, 0U) | \
+ PIN_AFIO_AF(GPIOD_LED4, 0U) | \
+ PIN_AFIO_AF(GPIOD_LED3, 0U) | \
+ PIN_AFIO_AF(GPIOD_LED5, 0U) | \
+ PIN_AFIO_AF(GPIOD_LED6, 0U))
+
+/*
+ * GPIOE setup:
+ *
+ * PE0 - L3GD20_INT1 (input pullup).
+ * PE1 - L3GD20_INT2 (input pullup).
+ * PE2 - LSM303DLHC_DRDY (input floating).
+ * PE3 - L3GD20_CS (output pushpull maximum).
+ * PE4 - LSM303DLHC_INT1 (output pushpull maximum).
+ * PE5 - LSM303DLHC_INT2 (output pushpull maximum).
+ * PE6 - PIN6 (input pullup).
+ * PE7 - PIN7 (input pullup).
+ * PE8 - PIN8 (input pullup).
+ * PE9 - PIN9 (input pullup).
+ * PE10 - PIN10 (input pullup).
+ * PE11 - PIN11 (input pullup).
+ * PE12 - PIN12 (input pullup).
+ * PE13 - PIN13 (input pullup).
+ * PE14 - PIN14 (input pullup).
+ * PE15 - PIN15 (input pullup).
+ */
+#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_L3GD20_INT1) | \
+ PIN_MODE_INPUT(GPIOE_L3GD20_INT2) | \
+ PIN_MODE_INPUT(GPIOE_LSM303DLHC_DRDY) |\
+ PIN_MODE_OUTPUT(GPIOE_L3GD20_CS) | \
+ PIN_MODE_OUTPUT(GPIOE_LSM303DLHC_INT1) |\
+ PIN_MODE_OUTPUT(GPIOE_LSM303DLHC_INT2) |\
+ PIN_MODE_INPUT(GPIOE_PIN6) | \
+ PIN_MODE_INPUT(GPIOE_PIN7) | \
+ PIN_MODE_INPUT(GPIOE_PIN8) | \
+ PIN_MODE_INPUT(GPIOE_PIN9) | \
+ PIN_MODE_INPUT(GPIOE_PIN10) | \
+ PIN_MODE_INPUT(GPIOE_PIN11) | \
+ PIN_MODE_INPUT(GPIOE_PIN12) | \
+ PIN_MODE_INPUT(GPIOE_PIN13) | \
+ PIN_MODE_INPUT(GPIOE_PIN14) | \
+ PIN_MODE_INPUT(GPIOE_PIN15))
+#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_L3GD20_INT1) |\
+ PIN_OTYPE_PUSHPULL(GPIOE_L3GD20_INT2) |\
+ PIN_OTYPE_PUSHPULL(GPIOE_LSM303DLHC_DRDY) |\
+ PIN_OTYPE_PUSHPULL(GPIOE_L3GD20_CS) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_LSM303DLHC_INT1) |\
+ PIN_OTYPE_PUSHPULL(GPIOE_LSM303DLHC_INT2) |\
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
+#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_HIGH(GPIOE_L3GD20_INT1) | \
+ PIN_OSPEED_HIGH(GPIOE_L3GD20_INT2) | \
+ PIN_OSPEED_HIGH(GPIOE_LSM303DLHC_DRDY) |\
+ PIN_OSPEED_HIGH(GPIOE_L3GD20_CS) | \
+ PIN_OSPEED_HIGH(GPIOE_LSM303DLHC_INT1) |\
+ PIN_OSPEED_HIGH(GPIOE_LSM303DLHC_INT2) |\
+ PIN_OSPEED_HIGH(GPIOE_PIN6) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN7) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN8) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN9) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN10) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN11) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN12) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN13) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN14) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN15))
+#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_L3GD20_INT1) | \
+ PIN_PUPDR_PULLUP(GPIOE_L3GD20_INT2) | \
+ PIN_PUPDR_FLOATING(GPIOE_LSM303DLHC_DRDY) |\
+ PIN_PUPDR_PULLUP(GPIOE_L3GD20_CS) | \
+ PIN_PUPDR_PULLUP(GPIOE_LSM303DLHC_INT1) |\
+ PIN_PUPDR_PULLUP(GPIOE_LSM303DLHC_INT2) |\
+ PIN_PUPDR_PULLUP(GPIOE_PIN6) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN7) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN8) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN9) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN10) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN11) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN12) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN13) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN14) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN15))
+#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_L3GD20_INT1) | \
+ PIN_ODR_HIGH(GPIOE_L3GD20_INT2) | \
+ PIN_ODR_HIGH(GPIOE_LSM303DLHC_DRDY) | \
+ PIN_ODR_HIGH(GPIOE_L3GD20_CS) | \
+ PIN_ODR_HIGH(GPIOE_LSM303DLHC_INT1) | \
+ PIN_ODR_HIGH(GPIOE_LSM303DLHC_INT2) | \
+ PIN_ODR_HIGH(GPIOE_PIN6) | \
+ PIN_ODR_HIGH(GPIOE_PIN7) | \
+ PIN_ODR_HIGH(GPIOE_PIN8) | \
+ PIN_ODR_HIGH(GPIOE_PIN9) | \
+ PIN_ODR_HIGH(GPIOE_PIN10) | \
+ PIN_ODR_HIGH(GPIOE_PIN11) | \
+ PIN_ODR_HIGH(GPIOE_PIN12) | \
+ PIN_ODR_HIGH(GPIOE_PIN13) | \
+ PIN_ODR_HIGH(GPIOE_PIN14) | \
+ PIN_ODR_HIGH(GPIOE_PIN15))
+#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_L3GD20_INT1, 0U) | \
+ PIN_AFIO_AF(GPIOE_L3GD20_INT2, 0U) | \
+ PIN_AFIO_AF(GPIOE_LSM303DLHC_DRDY, 0U) |\
+ PIN_AFIO_AF(GPIOE_L3GD20_CS, 0U) | \
+ PIN_AFIO_AF(GPIOE_LSM303DLHC_INT1, 0U) |\
+ PIN_AFIO_AF(GPIOE_LSM303DLHC_INT2, 0U) |\
+ PIN_AFIO_AF(GPIOE_PIN6, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN7, 0U))
+#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN9, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN10, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN11, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN12, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN14, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN15, 0U))
+
+/*
+ * GPIOF setup:
+ *
+ * PF0 - PIN0 (input pullup).
+ * PF1 - PIN1 (input pullup).
+ * PF2 - PIN2 (input pullup).
+ * PF3 - PIN3 (input pullup).
+ * PF4 - PIN4 (input pullup).
+ * PF5 - PIN5 (input pullup).
+ * PF6 - PIN6 (input pullup).
+ * PF7 - PIN7 (input pullup).
+ * PF8 - PIN8 (input pullup).
+ * PF9 - PIN9 (input pullup).
+ * PF10 - PIN10 (input pullup).
+ * PF11 - PIN11 (input pullup).
+ * PF12 - PIN12 (input pullup).
+ * PF13 - PIN13 (input pullup).
+ * PF14 - PIN14 (input pullup).
+ * PF15 - PIN15 (input pullup).
+ */
+#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_PIN0) | \
+ PIN_MODE_INPUT(GPIOF_PIN1) | \
+ PIN_MODE_INPUT(GPIOF_PIN2) | \
+ PIN_MODE_INPUT(GPIOF_PIN3) | \
+ PIN_MODE_INPUT(GPIOF_PIN4) | \
+ PIN_MODE_INPUT(GPIOF_PIN5) | \
+ PIN_MODE_INPUT(GPIOF_PIN6) | \
+ PIN_MODE_INPUT(GPIOF_PIN7) | \
+ PIN_MODE_INPUT(GPIOF_PIN8) | \
+ PIN_MODE_INPUT(GPIOF_PIN9) | \
+ PIN_MODE_INPUT(GPIOF_PIN10) | \
+ PIN_MODE_INPUT(GPIOF_PIN11) | \
+ PIN_MODE_INPUT(GPIOF_PIN12) | \
+ PIN_MODE_INPUT(GPIOF_PIN13) | \
+ PIN_MODE_INPUT(GPIOF_PIN14) | \
+ PIN_MODE_INPUT(GPIOF_PIN15))
+#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_PIN0) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN1) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \
+ PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
+#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_HIGH(GPIOF_PIN0) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN1) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN2) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN3) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN4) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN5) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN6) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN7) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN8) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN9) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN10) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN11) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN12) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN13) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN14) | \
+ PIN_OSPEED_HIGH(GPIOF_PIN15))
+#define VAL_GPIOF_PUPDR (PIN_PUPDR_PULLUP(GPIOF_PIN0) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN1) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN2) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN3) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN5) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN6) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN7) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN8) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN9) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN10) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN11) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN12) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN13) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN14) | \
+ PIN_PUPDR_PULLUP(GPIOF_PIN15))
+#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_PIN0) | \
+ PIN_ODR_HIGH(GPIOF_PIN1) | \
+ PIN_ODR_HIGH(GPIOF_PIN2) | \
+ PIN_ODR_HIGH(GPIOF_PIN3) | \
+ PIN_ODR_HIGH(GPIOF_PIN4) | \
+ PIN_ODR_HIGH(GPIOF_PIN5) | \
+ PIN_ODR_HIGH(GPIOF_PIN6) | \
+ PIN_ODR_HIGH(GPIOF_PIN7) | \
+ PIN_ODR_HIGH(GPIOF_PIN8) | \
+ PIN_ODR_HIGH(GPIOF_PIN9) | \
+ PIN_ODR_HIGH(GPIOF_PIN10) | \
+ PIN_ODR_HIGH(GPIOF_PIN11) | \
+ PIN_ODR_HIGH(GPIOF_PIN12) | \
+ PIN_ODR_HIGH(GPIOF_PIN13) | \
+ PIN_ODR_HIGH(GPIOF_PIN14) | \
+ PIN_ODR_HIGH(GPIOF_PIN15))
+#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_PIN0, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN1, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN3, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN5, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN6, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN7, 0U))
+#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN9, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN10, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN11, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN12, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN14, 0U) | \
+ PIN_AFIO_AF(GPIOF_PIN15, 0U))
+
+/*
+ * GPIOG setup:
+ *
+ * PG0 - PIN0 (input pullup).
+ * PG1 - PIN1 (input pullup).
+ * PG2 - PIN2 (input pullup).
+ * PG3 - PIN3 (input pullup).
+ * PG4 - PIN4 (input pullup).
+ * PG5 - PIN5 (input pullup).
+ * PG6 - PIN6 (input pullup).
+ * PG7 - PIN7 (input pullup).
+ * PG8 - PIN8 (input pullup).
+ * PG9 - PIN9 (input pullup).
+ * PG10 - PIN10 (input pullup).
+ * PG11 - PIN11 (input pullup).
+ * PG12 - PIN12 (input pullup).
+ * PG13 - PIN13 (input pullup).
+ * PG14 - PIN14 (input pullup).
+ * PG15 - PIN15 (input pullup).
+ */
+#define VAL_GPIOG_MODER (PIN_MODE_INPUT(GPIOG_PIN0) | \
+ PIN_MODE_INPUT(GPIOG_PIN1) | \
+ PIN_MODE_INPUT(GPIOG_PIN2) | \
+ PIN_MODE_INPUT(GPIOG_PIN3) | \
+ PIN_MODE_INPUT(GPIOG_PIN4) | \
+ PIN_MODE_INPUT(GPIOG_PIN5) | \
+ PIN_MODE_INPUT(GPIOG_PIN6) | \
+ PIN_MODE_INPUT(GPIOG_PIN7) | \
+ PIN_MODE_INPUT(GPIOG_PIN8) | \
+ PIN_MODE_INPUT(GPIOG_PIN9) | \
+ PIN_MODE_INPUT(GPIOG_PIN10) | \
+ PIN_MODE_INPUT(GPIOG_PIN11) | \
+ PIN_MODE_INPUT(GPIOG_PIN12) | \
+ PIN_MODE_INPUT(GPIOG_PIN13) | \
+ PIN_MODE_INPUT(GPIOG_PIN14) | \
+ PIN_MODE_INPUT(GPIOG_PIN15))
+#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(GPIOG_PIN0) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN1) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN2) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN3) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN4) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN5) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN6) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN7) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN8) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN9) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN10) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN11) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN12) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN13) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN14) | \
+ PIN_OTYPE_PUSHPULL(GPIOG_PIN15))
+#define VAL_GPIOG_OSPEEDR (PIN_OSPEED_HIGH(GPIOG_PIN0) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN1) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN2) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN3) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN4) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN5) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN6) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN7) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN8) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN9) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN10) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN11) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN12) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN13) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN14) | \
+ PIN_OSPEED_HIGH(GPIOG_PIN15))
+#define VAL_GPIOG_PUPDR (PIN_PUPDR_PULLUP(GPIOG_PIN0) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN1) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN2) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN3) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN5) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN6) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN7) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN8) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN9) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN10) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN11) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN12) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN13) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN14) | \
+ PIN_PUPDR_PULLUP(GPIOG_PIN15))
+#define VAL_GPIOG_ODR (PIN_ODR_HIGH(GPIOG_PIN0) | \
+ PIN_ODR_HIGH(GPIOG_PIN1) | \
+ PIN_ODR_HIGH(GPIOG_PIN2) | \
+ PIN_ODR_HIGH(GPIOG_PIN3) | \
+ PIN_ODR_HIGH(GPIOG_PIN4) | \
+ PIN_ODR_HIGH(GPIOG_PIN5) | \
+ PIN_ODR_HIGH(GPIOG_PIN6) | \
+ PIN_ODR_HIGH(GPIOG_PIN7) | \
+ PIN_ODR_HIGH(GPIOG_PIN8) | \
+ PIN_ODR_HIGH(GPIOG_PIN9) | \
+ PIN_ODR_HIGH(GPIOG_PIN10) | \
+ PIN_ODR_HIGH(GPIOG_PIN11) | \
+ PIN_ODR_HIGH(GPIOG_PIN12) | \
+ PIN_ODR_HIGH(GPIOG_PIN13) | \
+ PIN_ODR_HIGH(GPIOG_PIN14) | \
+ PIN_ODR_HIGH(GPIOG_PIN15))
+#define VAL_GPIOG_AFRL (PIN_AFIO_AF(GPIOG_PIN0, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN1, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN3, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN5, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN6, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN7, 0U))
+#define VAL_GPIOG_AFRH (PIN_AFIO_AF(GPIOG_PIN8, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN9, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN10, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN11, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN12, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN14, 0U) | \
+ PIN_AFIO_AF(GPIOG_PIN15, 0U))
+
+/*
+ * GPIOH setup:
+ *
+ * PH0 - OSC_IN (input floating).
+ * PH1 - OSC_OUT (input floating).
+ * PH2 - PIN2 (input pullup).
+ * PH3 - PIN3 (input pullup).
+ * PH4 - PIN4 (input pullup).
+ * PH5 - PIN5 (input pullup).
+ * PH6 - PIN6 (input pullup).
+ * PH7 - PIN7 (input pullup).
+ * PH8 - PIN8 (input pullup).
+ * PH9 - PIN9 (input pullup).
+ * PH10 - PIN10 (input pullup).
+ * PH11 - PIN11 (input pullup).
+ * PH12 - PIN12 (input pullup).
+ * PH13 - PIN13 (input pullup).
+ * PH14 - PIN14 (input pullup).
+ * PH15 - PIN15 (input pullup).
+ */
+#define VAL_GPIOH_MODER (PIN_MODE_INPUT(GPIOH_OSC_IN) | \
+ PIN_MODE_INPUT(GPIOH_OSC_OUT) | \
+ PIN_MODE_INPUT(GPIOH_PIN2) | \
+ PIN_MODE_INPUT(GPIOH_PIN3) | \
+ PIN_MODE_INPUT(GPIOH_PIN4) | \
+ PIN_MODE_INPUT(GPIOH_PIN5) | \
+ PIN_MODE_INPUT(GPIOH_PIN6) | \
+ PIN_MODE_INPUT(GPIOH_PIN7) | \
+ PIN_MODE_INPUT(GPIOH_PIN8) | \
+ PIN_MODE_INPUT(GPIOH_PIN9) | \
+ PIN_MODE_INPUT(GPIOH_PIN10) | \
+ PIN_MODE_INPUT(GPIOH_PIN11) | \
+ PIN_MODE_INPUT(GPIOH_PIN12) | \
+ PIN_MODE_INPUT(GPIOH_PIN13) | \
+ PIN_MODE_INPUT(GPIOH_PIN14) | \
+ PIN_MODE_INPUT(GPIOH_PIN15))
+#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(GPIOH_OSC_IN) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_OSC_OUT) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN2) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN3) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN4) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN5) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN6) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN7) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN8) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN9) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN10) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN11) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN12) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN13) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN14) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN15))
+#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_HIGH(GPIOH_OSC_IN) | \
+ PIN_OSPEED_HIGH(GPIOH_OSC_OUT) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN2) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN3) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN4) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN5) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN6) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN7) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN8) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN9) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN10) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN11) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN12) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN13) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN14) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN15))
+#define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(GPIOH_OSC_IN) | \
+ PIN_PUPDR_FLOATING(GPIOH_OSC_OUT) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN2) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN3) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN5) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN6) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN7) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN8) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN9) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN10) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN11) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN12) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN13) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN14) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN15))
+#define VAL_GPIOH_ODR (PIN_ODR_HIGH(GPIOH_OSC_IN) | \
+ PIN_ODR_HIGH(GPIOH_OSC_OUT) | \
+ PIN_ODR_HIGH(GPIOH_PIN2) | \
+ PIN_ODR_HIGH(GPIOH_PIN3) | \
+ PIN_ODR_HIGH(GPIOH_PIN4) | \
+ PIN_ODR_HIGH(GPIOH_PIN5) | \
+ PIN_ODR_HIGH(GPIOH_PIN6) | \
+ PIN_ODR_HIGH(GPIOH_PIN7) | \
+ PIN_ODR_HIGH(GPIOH_PIN8) | \
+ PIN_ODR_HIGH(GPIOH_PIN9) | \
+ PIN_ODR_HIGH(GPIOH_PIN10) | \
+ PIN_ODR_HIGH(GPIOH_PIN11) | \
+ PIN_ODR_HIGH(GPIOH_PIN12) | \
+ PIN_ODR_HIGH(GPIOH_PIN13) | \
+ PIN_ODR_HIGH(GPIOH_PIN14) | \
+ PIN_ODR_HIGH(GPIOH_PIN15))
+#define VAL_GPIOH_AFRL (PIN_AFIO_AF(GPIOH_OSC_IN, 0U) | \
+ PIN_AFIO_AF(GPIOH_OSC_OUT, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN3, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN5, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN6, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN7, 0U))
+#define VAL_GPIOH_AFRH (PIN_AFIO_AF(GPIOH_PIN8, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN9, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN10, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN11, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN12, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN14, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN15, 0U))
+
+/*
+ * GPIOI setup:
+ *
+ * PI0 - PIN0 (input pullup).
+ * PI1 - PIN1 (input pullup).
+ * PI2 - PIN2 (input pullup).
+ * PI3 - PIN3 (input pullup).
+ * PI4 - PIN4 (input pullup).
+ * PI5 - PIN5 (input pullup).
+ * PI6 - PIN6 (input pullup).
+ * PI7 - PIN7 (input pullup).
+ * PI8 - PIN8 (input pullup).
+ * PI9 - PIN9 (input pullup).
+ * PI10 - PIN10 (input pullup).
+ * PI11 - PIN11 (input pullup).
+ * PI12 - PIN12 (input pullup).
+ * PI13 - PIN13 (input pullup).
+ * PI14 - PIN14 (input pullup).
+ * PI15 - PIN15 (input pullup).
+ */
+#define VAL_GPIOI_MODER (PIN_MODE_INPUT(GPIOI_PIN0) | \
+ PIN_MODE_INPUT(GPIOI_PIN1) | \
+ PIN_MODE_INPUT(GPIOI_PIN2) | \
+ PIN_MODE_INPUT(GPIOI_PIN3) | \
+ PIN_MODE_INPUT(GPIOI_PIN4) | \
+ PIN_MODE_INPUT(GPIOI_PIN5) | \
+ PIN_MODE_INPUT(GPIOI_PIN6) | \
+ PIN_MODE_INPUT(GPIOI_PIN7) | \
+ PIN_MODE_INPUT(GPIOI_PIN8) | \
+ PIN_MODE_INPUT(GPIOI_PIN9) | \
+ PIN_MODE_INPUT(GPIOI_PIN10) | \
+ PIN_MODE_INPUT(GPIOI_PIN11) | \
+ PIN_MODE_INPUT(GPIOI_PIN12) | \
+ PIN_MODE_INPUT(GPIOI_PIN13) | \
+ PIN_MODE_INPUT(GPIOI_PIN14) | \
+ PIN_MODE_INPUT(GPIOI_PIN15))
+#define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(GPIOI_PIN0) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN1) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN2) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN3) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN4) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN5) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN6) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN7) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN8) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN9) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN10) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN11) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN12) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN13) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN14) | \
+ PIN_OTYPE_PUSHPULL(GPIOI_PIN15))
+#define VAL_GPIOI_OSPEEDR (PIN_OSPEED_HIGH(GPIOI_PIN0) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN1) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN2) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN3) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN4) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN5) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN6) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN7) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN8) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN9) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN10) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN11) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN12) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN13) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN14) | \
+ PIN_OSPEED_HIGH(GPIOI_PIN15))
+#define VAL_GPIOI_PUPDR (PIN_PUPDR_PULLUP(GPIOI_PIN0) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN1) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN2) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN3) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN5) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN6) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN7) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN8) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN9) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN10) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN11) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN12) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN13) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN14) | \
+ PIN_PUPDR_PULLUP(GPIOI_PIN15))
+#define VAL_GPIOI_ODR (PIN_ODR_HIGH(GPIOI_PIN0) | \
+ PIN_ODR_HIGH(GPIOI_PIN1) | \
+ PIN_ODR_HIGH(GPIOI_PIN2) | \
+ PIN_ODR_HIGH(GPIOI_PIN3) | \
+ PIN_ODR_HIGH(GPIOI_PIN4) | \
+ PIN_ODR_HIGH(GPIOI_PIN5) | \
+ PIN_ODR_HIGH(GPIOI_PIN6) | \
+ PIN_ODR_HIGH(GPIOI_PIN7) | \
+ PIN_ODR_HIGH(GPIOI_PIN8) | \
+ PIN_ODR_HIGH(GPIOI_PIN9) | \
+ PIN_ODR_HIGH(GPIOI_PIN10) | \
+ PIN_ODR_HIGH(GPIOI_PIN11) | \
+ PIN_ODR_HIGH(GPIOI_PIN12) | \
+ PIN_ODR_HIGH(GPIOI_PIN13) | \
+ PIN_ODR_HIGH(GPIOI_PIN14) | \
+ PIN_ODR_HIGH(GPIOI_PIN15))
+#define VAL_GPIOI_AFRL (PIN_AFIO_AF(GPIOI_PIN0, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN1, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN3, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN5, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN6, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN7, 0U))
+#define VAL_GPIOI_AFRH (PIN_AFIO_AF(GPIOI_PIN8, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN9, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN10, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN11, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN12, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN14, 0U) | \
+ PIN_AFIO_AF(GPIOI_PIN15, 0U))
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#if !defined(_FROM_ASM_)
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void boardInit(void);
+#ifdef __cplusplus
+}
+#endif
+#endif /* _FROM_ASM_ */
+
+#endif /* BOARD_H */
diff --git a/platforms/chibios/boards/STEMCELL/board/board.mk b/platforms/chibios/boards/STEMCELL/board/board.mk
new file mode 100644
index 000000000000..842e33590594
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/board/board.mk
@@ -0,0 +1,9 @@
+# List of all the board related files.
+BOARDSRC = $(BOARD_PATH)/board/board.c
+
+# Required include directories
+BOARDINC = $(BOARD_PATH)/board
+
+# Shared variables
+ALLCSRC += $(BOARDSRC)
+ALLINC += $(BOARDINC)
diff --git a/platforms/chibios/boards/STEMCELL/configs/board.h b/platforms/chibios/boards/STEMCELL/configs/board.h
new file mode 100644
index 000000000000..30af6b0c8608
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/configs/board.h
@@ -0,0 +1,20 @@
+/* Copyright 2020 Nick Brassel (tzarc)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#pragma once
+
+#include_next "board.h"
+
+#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/boards/STEMCELL/configs/bootloader_defs.h b/platforms/chibios/boards/STEMCELL/configs/bootloader_defs.h
new file mode 100644
index 000000000000..4da3d39a3268
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/configs/bootloader_defs.h
@@ -0,0 +1,5 @@
+/* Address for jumping to bootloader on STM32 chips. */
+/* It is chip dependent, the correct number can be looked up here:
+ * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
+ */
+#define STM32_BOOTLOADER_ADDRESS 0x1FFF0000
diff --git a/platforms/chibios/boards/STEMCELL/configs/chconf.h b/platforms/chibios/boards/STEMCELL/configs/chconf.h
new file mode 100644
index 000000000000..9e1b1727359f
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/configs/chconf.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#define CH_CFG_ST_RESOLUTION 16
+#define CH_CFG_ST_FREQUENCY 10000
+
+#include_next
diff --git a/platforms/chibios/boards/STEMCELL/configs/config.h b/platforms/chibios/boards/STEMCELL/configs/config.h
new file mode 100644
index 000000000000..ec551acfc886
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/configs/config.h
@@ -0,0 +1,25 @@
+/* Copyright 2020 Nick Brassel (tzarc)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#pragma once
+
+// Only HSE clock. No LSE clock
+#ifndef STM32_HSECLK
+# define STM32_HSECLK 8000000U
+#endif // STM32_HSECLK
+
+#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
+# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#endif
diff --git a/platforms/chibios/boards/STEMCELL/configs/halconf.h b/platforms/chibios/boards/STEMCELL/configs/halconf.h
new file mode 100644
index 000000000000..3193d60e746f
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/configs/halconf.h
@@ -0,0 +1,27 @@
+/* Copyright 2020 Nick Brassel (tzarc)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#pragma once
+
+// #define HAL_USE_DAC TRUE
+#define PAL_USE_WAIT TRUE
+#define PAL_USE_CALLBACKS TRUE
+
+// #define HAL_USE_PWM TRUE
+#define HAL_USE_I2C TRUE
+
+#define HAL_USE_SERIAL TRUE
+
+#include_next
diff --git a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
new file mode 100644
index 000000000000..ddbaf725c2fc
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
@@ -0,0 +1,244 @@
+/*
+ ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef MCUCONF_H
+#define MCUCONF_H
+
+/*
+ * STM32F4xx drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the whole
+ * driver is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 15...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+#define STM32F4xx_MCUCONF
+#define STM32F401_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_NO_INIT FALSE
+#define STM32_PVD_ENABLE FALSE
+#define STM32_PLS STM32_PLS_LEV0
+#define STM32_BKPRAM_ENABLE FALSE
+#define STM32_HSI_ENABLED TRUE
+#define STM32_LSI_ENABLED TRUE
+#define STM32_HSE_ENABLED TRUE
+#define STM32_LSE_ENABLED FALSE
+#define STM32_CLOCK48_REQUIRED TRUE
+#define STM32_SW STM32_SW_PLL
+#define STM32_PLLSRC STM32_PLLSRC_HSE
+#define STM32_PLLM_VALUE 8
+#define STM32_PLLN_VALUE 336
+#define STM32_PLLP_VALUE 4
+#define STM32_PLLQ_VALUE 7
+#define STM32_HPRE STM32_HPRE_DIV1
+#define STM32_PPRE1 STM32_PPRE1_DIV4
+#define STM32_PPRE2 STM32_PPRE2_DIV2
+#define STM32_RTCSEL STM32_RTCSEL_LSI
+#define STM32_RTCPRE_VALUE 8
+#define STM32_MCO1SEL STM32_MCO1SEL_HSI
+#define STM32_MCO1PRE STM32_MCO1PRE_DIV1
+#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK
+#define STM32_MCO2PRE STM32_MCO2PRE_DIV5
+#define STM32_I2SSRC STM32_I2SSRC_CKIN
+#define STM32_PLLI2SN_VALUE 192
+#define STM32_PLLI2SR_VALUE 5
+
+/*
+ * IRQ system settings.
+ */
+#define STM32_IRQ_EXTI0_PRIORITY 6
+#define STM32_IRQ_EXTI1_PRIORITY 6
+#define STM32_IRQ_EXTI2_PRIORITY 6
+#define STM32_IRQ_EXTI3_PRIORITY 6
+#define STM32_IRQ_EXTI4_PRIORITY 6
+#define STM32_IRQ_EXTI5_9_PRIORITY 6
+#define STM32_IRQ_EXTI10_15_PRIORITY 6
+#define STM32_IRQ_EXTI16_PRIORITY 6
+#define STM32_IRQ_EXTI17_PRIORITY 15
+#define STM32_IRQ_EXTI18_PRIORITY 6
+#define STM32_IRQ_EXTI19_PRIORITY 6
+#define STM32_IRQ_EXTI20_PRIORITY 6
+#define STM32_IRQ_EXTI21_PRIORITY 15
+#define STM32_IRQ_EXTI22_PRIORITY 15
+
+#define STM32_IRQ_TIM1_BRK_TIM9_PRIORITY 7
+#define STM32_IRQ_TIM1_UP_TIM10_PRIORITY 7
+#define STM32_IRQ_TIM1_TRGCO_TIM11_PRIORITY 7
+#define STM32_IRQ_TIM1_CC_PRIORITY 7
+#define STM32_IRQ_TIM2_PRIORITY 7
+#define STM32_IRQ_TIM3_PRIORITY 7
+#define STM32_IRQ_TIM4_PRIORITY 7
+#define STM32_IRQ_TIM5_PRIORITY 7
+
+#define STM32_IRQ_USART1_PRIORITY 12
+#define STM32_IRQ_USART2_PRIORITY 12
+#define STM32_IRQ_USART6_PRIORITY 12
+
+/*
+ * ADC driver system settings.
+ */
+#define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV4
+#define STM32_ADC_USE_ADC1 FALSE
+#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4)
+#define STM32_ADC_ADC1_DMA_PRIORITY 2
+#define STM32_ADC_IRQ_PRIORITY 6
+#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6
+
+/*
+ * GPT driver system settings.
+ */
+#define STM32_GPT_USE_TIM1 FALSE
+#define STM32_GPT_USE_TIM2 FALSE
+#define STM32_GPT_USE_TIM3 FALSE
+#define STM32_GPT_USE_TIM4 FALSE
+#define STM32_GPT_USE_TIM5 FALSE
+#define STM32_GPT_USE_TIM9 FALSE
+#define STM32_GPT_USE_TIM10 FALSE
+#define STM32_GPT_USE_TIM11 FALSE
+
+/*
+ * I2C driver system settings.
+ */
+#define STM32_I2C_USE_I2C1 TRUE
+#define STM32_I2C_USE_I2C2 FALSE
+#define STM32_I2C_USE_I2C3 FALSE
+#define STM32_I2C_BUSY_TIMEOUT 50
+#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
+#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
+#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
+#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
+#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_I2C_I2C1_IRQ_PRIORITY 5
+#define STM32_I2C_I2C2_IRQ_PRIORITY 5
+#define STM32_I2C_I2C3_IRQ_PRIORITY 5
+#define STM32_I2C_I2C1_DMA_PRIORITY 3
+#define STM32_I2C_I2C2_DMA_PRIORITY 3
+#define STM32_I2C_I2C3_DMA_PRIORITY 3
+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
+
+/*
+ * I2S driver system settings.
+ */
+#define STM32_I2S_USE_SPI2 FALSE
+#define STM32_I2S_USE_SPI3 FALSE
+#define STM32_I2S_SPI2_IRQ_PRIORITY 10
+#define STM32_I2S_SPI3_IRQ_PRIORITY 10
+#define STM32_I2S_SPI2_DMA_PRIORITY 1
+#define STM32_I2S_SPI3_DMA_PRIORITY 1
+#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
+#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
+#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
+
+/*
+ * ICU driver system settings.
+ */
+#define STM32_ICU_USE_TIM1 FALSE
+#define STM32_ICU_USE_TIM2 FALSE
+#define STM32_ICU_USE_TIM3 FALSE
+#define STM32_ICU_USE_TIM4 FALSE
+#define STM32_ICU_USE_TIM5 FALSE
+#define STM32_ICU_USE_TIM9 FALSE
+#define STM32_ICU_USE_TIM10 FALSE
+#define STM32_ICU_USE_TIM11 FALSE
+
+/*
+ * PWM driver system settings.
+ */
+#define STM32_PWM_USE_TIM1 FALSE
+#define STM32_PWM_USE_TIM2 FALSE
+#define STM32_PWM_USE_TIM3 FALSE
+#define STM32_PWM_USE_TIM4 FALSE
+#define STM32_PWM_USE_TIM5 FALSE
+#define STM32_PWM_USE_TIM9 FALSE
+#define STM32_PWM_USE_TIM10 FALSE
+#define STM32_PWM_USE_TIM11 FALSE
+
+/*
+ * SERIAL driver system settings.
+ */
+#define STM32_SERIAL_USE_USART1 TRUE
+#define STM32_SERIAL_USE_USART2 TRUE
+#define STM32_SERIAL_USE_USART6 FALSE
+
+/*
+ * SPI driver system settings.
+ */
+#define STM32_SPI_USE_SPI1 FALSE
+#define STM32_SPI_USE_SPI2 FALSE
+#define STM32_SPI_USE_SPI3 FALSE
+#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
+#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
+#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
+#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
+#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_SPI_SPI1_DMA_PRIORITY 1
+#define STM32_SPI_SPI2_DMA_PRIORITY 1
+#define STM32_SPI_SPI3_DMA_PRIORITY 1
+#define STM32_SPI_SPI1_IRQ_PRIORITY 10
+#define STM32_SPI_SPI2_IRQ_PRIORITY 10
+#define STM32_SPI_SPI3_IRQ_PRIORITY 10
+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
+
+/*
+ * ST driver system settings.
+ */
+#define STM32_ST_IRQ_PRIORITY 8
+#define STM32_ST_USE_TIMER 2
+
+/*
+ * UART driver system settings.
+ */
+#define STM32_UART_USE_USART1 FALSE
+#define STM32_UART_USE_USART2 FALSE
+#define STM32_UART_USE_USART6 FALSE
+#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5)
+#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
+#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
+#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
+#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
+#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
+#define STM32_UART_USART1_DMA_PRIORITY 0
+#define STM32_UART_USART2_DMA_PRIORITY 0
+#define STM32_UART_USART6_DMA_PRIORITY 0
+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
+
+/*
+ * USB driver system settings.
+ */
+#define STM32_USB_USE_OTG1 TRUE
+#define STM32_USB_OTG1_IRQ_PRIORITY 14
+#define STM32_USB_OTG1_RX_FIFO_SIZE 512
+#define STM32_USB_HOST_WAKEUP_DURATION 2
+
+/*
+ * WDG driver system settings.
+ */
+#define STM32_WDG_USE_IWDG FALSE
+
+#endif /* MCUCONF_H */
diff --git a/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk b/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
new file mode 100644
index 000000000000..d32bd0276034
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
@@ -0,0 +1,12 @@
+# Proton C MCU settings for converting AVR projects
+TARGET := $(TARGET)_stemcell
+MCU := STM32F401
+BOARD := STEMCELL
+BOOTLOADER := tinyuf2
+OPT_DEFS += -DCONVERT_TO_STEMCELL
+
+SERIAL_DRIVER := usart
+
+# These are defaults based on what has been implemented for ARM boards
+AUDIO_ENABLE ?= no
+WS2812_DRIVER ?= bitbang
diff --git a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
new file mode 100644
index 000000000000..f4e487dc8f92
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
@@ -0,0 +1,88 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/*
+ * STM32F401xC memory setup.
+ */
+MEMORY
+{
+ flash0 (rx) : org = 0x08000000 + 64k, len = 256k - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
+ flash1 (rx) : org = 0x00000000, len = 0
+ flash2 (rx) : org = 0x00000000, len = 0
+ flash3 (rx) : org = 0x00000000, len = 0
+ flash4 (rx) : org = 0x00000000, len = 0
+ flash5 (rx) : org = 0x00000000, len = 0
+ flash6 (rx) : org = 0x00000000, len = 0
+ flash7 (rx) : org = 0x00000000, len = 0
+ ram0 (wx) : org = 0x20000000, len = 64k
+ ram1 (wx) : org = 0x00000000, len = 0
+ ram2 (wx) : org = 0x00000000, len = 0
+ ram3 (wx) : org = 0x00000000, len = 0
+ ram4 (wx) : org = 0x00000000, len = 0
+ ram5 (wx) : org = 0x00000000, len = 0
+ ram6 (wx) : org = 0x00000000, len = 0
+ ram7 (wx) : org = 0x00000000, len = 0
+}
+
+/* For each data/text section two region are defined, a virtual region
+ and a load region (_LMA suffix).*/
+
+/* Flash region to be used for exception vectors.*/
+REGION_ALIAS("VECTORS_FLASH", flash0);
+REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
+
+/* Flash region to be used for constructors and destructors.*/
+REGION_ALIAS("XTORS_FLASH", flash0);
+REGION_ALIAS("XTORS_FLASH_LMA", flash0);
+
+/* Flash region to be used for code text.*/
+REGION_ALIAS("TEXT_FLASH", flash0);
+REGION_ALIAS("TEXT_FLASH_LMA", flash0);
+
+/* Flash region to be used for read only data.*/
+REGION_ALIAS("RODATA_FLASH", flash0);
+REGION_ALIAS("RODATA_FLASH_LMA", flash0);
+
+/* Flash region to be used for various.*/
+REGION_ALIAS("VARIOUS_FLASH", flash0);
+REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
+
+/* Flash region to be used for RAM(n) initialization data.*/
+REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
+
+/* RAM region to be used for Main stack. This stack accommodates the processing
+ of all exceptions and interrupts.*/
+REGION_ALIAS("MAIN_STACK_RAM", ram0);
+
+/* RAM region to be used for the process stack. This is the stack used by
+ the main() function.*/
+REGION_ALIAS("PROCESS_STACK_RAM", ram0);
+
+/* RAM region to be used for data segment.*/
+REGION_ALIAS("DATA_RAM", ram0);
+REGION_ALIAS("DATA_RAM_LMA", flash0);
+
+/* RAM region to be used for BSS segment.*/
+REGION_ALIAS("BSS_RAM", ram0);
+
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
+/* Generic rules inclusion.*/
+INCLUDE rules.ld
+
+/* TinyUF2 bootloader reset support */
+_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */
diff --git a/platforms/chibios/boards/STEMCELL/ld/STM32F401xC_tinyuf2.ld b/platforms/chibios/boards/STEMCELL/ld/STM32F401xC_tinyuf2.ld
new file mode 100644
index 000000000000..f4e487dc8f92
--- /dev/null
+++ b/platforms/chibios/boards/STEMCELL/ld/STM32F401xC_tinyuf2.ld
@@ -0,0 +1,88 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/*
+ * STM32F401xC memory setup.
+ */
+MEMORY
+{
+ flash0 (rx) : org = 0x08000000 + 64k, len = 256k - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
+ flash1 (rx) : org = 0x00000000, len = 0
+ flash2 (rx) : org = 0x00000000, len = 0
+ flash3 (rx) : org = 0x00000000, len = 0
+ flash4 (rx) : org = 0x00000000, len = 0
+ flash5 (rx) : org = 0x00000000, len = 0
+ flash6 (rx) : org = 0x00000000, len = 0
+ flash7 (rx) : org = 0x00000000, len = 0
+ ram0 (wx) : org = 0x20000000, len = 64k
+ ram1 (wx) : org = 0x00000000, len = 0
+ ram2 (wx) : org = 0x00000000, len = 0
+ ram3 (wx) : org = 0x00000000, len = 0
+ ram4 (wx) : org = 0x00000000, len = 0
+ ram5 (wx) : org = 0x00000000, len = 0
+ ram6 (wx) : org = 0x00000000, len = 0
+ ram7 (wx) : org = 0x00000000, len = 0
+}
+
+/* For each data/text section two region are defined, a virtual region
+ and a load region (_LMA suffix).*/
+
+/* Flash region to be used for exception vectors.*/
+REGION_ALIAS("VECTORS_FLASH", flash0);
+REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
+
+/* Flash region to be used for constructors and destructors.*/
+REGION_ALIAS("XTORS_FLASH", flash0);
+REGION_ALIAS("XTORS_FLASH_LMA", flash0);
+
+/* Flash region to be used for code text.*/
+REGION_ALIAS("TEXT_FLASH", flash0);
+REGION_ALIAS("TEXT_FLASH_LMA", flash0);
+
+/* Flash region to be used for read only data.*/
+REGION_ALIAS("RODATA_FLASH", flash0);
+REGION_ALIAS("RODATA_FLASH_LMA", flash0);
+
+/* Flash region to be used for various.*/
+REGION_ALIAS("VARIOUS_FLASH", flash0);
+REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
+
+/* Flash region to be used for RAM(n) initialization data.*/
+REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
+
+/* RAM region to be used for Main stack. This stack accommodates the processing
+ of all exceptions and interrupts.*/
+REGION_ALIAS("MAIN_STACK_RAM", ram0);
+
+/* RAM region to be used for the process stack. This is the stack used by
+ the main() function.*/
+REGION_ALIAS("PROCESS_STACK_RAM", ram0);
+
+/* RAM region to be used for data segment.*/
+REGION_ALIAS("DATA_RAM", ram0);
+REGION_ALIAS("DATA_RAM_LMA", flash0);
+
+/* RAM region to be used for BSS segment.*/
+REGION_ALIAS("BSS_RAM", ram0);
+
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
+/* Generic rules inclusion.*/
+INCLUDE rules.ld
+
+/* TinyUF2 bootloader reset support */
+_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */
diff --git a/platforms/chibios/pin_defs.h b/platforms/chibios/pin_defs.h
new file mode 100644
index 000000000000..357347052169
--- /dev/null
+++ b/platforms/chibios/pin_defs.h
@@ -0,0 +1,380 @@
+/* Copyright 2021 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#pragma once
+
+// Defines mapping for Proton C replacement
+#ifdef CONVERT_TO_PROTON_C
+// Left side (front)
+# define D3 PAL_LINE(GPIOA, 9)
+# define D2 PAL_LINE(GPIOA, 10)
+// GND
+// GND
+# define D1 PAL_LINE(GPIOB, 7)
+# define D0 PAL_LINE(GPIOB, 6)
+# define D4 PAL_LINE(GPIOB, 5)
+# define C6 PAL_LINE(GPIOB, 4)
+# define D7 PAL_LINE(GPIOB, 3)
+# define E6 PAL_LINE(GPIOB, 2)
+# define B4 PAL_LINE(GPIOB, 1)
+# define B5 PAL_LINE(GPIOB, 0)
+
+// Right side (front)
+// RAW
+// GND
+// RESET
+// VCC
+# define F4 PAL_LINE(GPIOA, 2)
+# define F5 PAL_LINE(GPIOA, 1)
+# define F6 PAL_LINE(GPIOA, 0)
+# define F7 PAL_LINE(GPIOB, 8)
+# define B1 PAL_LINE(GPIOB, 13)
+# define B3 PAL_LINE(GPIOB, 14)
+# define B2 PAL_LINE(GPIOB, 15)
+# define B6 PAL_LINE(GPIOB, 9)
+
+// LEDs (only D5/C13 uses an actual LED)
+# ifdef CONVERT_TO_PROTON_C_RXLED
+# define D5 PAL_LINE(GPIOC, 14)
+# define B0 PAL_LINE(GPIOC, 13)
+# else
+# define D5 PAL_LINE(GPIOC, 13)
+# define B0 PAL_LINE(GPIOC, 14)
+# endif
+
+#elif defined(CONVERT_TO_STEMCELL)
+
+/* #if SOFT_SERIAL_PIN==D0 || SOFT_SERIAL_PIN==D1
+# define SERIAL_USART_DRIVER SD1
+# define USART1_REMAP
+#elif SOFT_SERIAL_PIN==D2 || SOFT_SERIAL_PIN==D3
+# define SERIAL_USART_DRIVER SD2
+# define USART2_REMAP
+#endif */
+
+// Left side (front)
+# ifdef CONVERT_TO_STEMCELL_UART_SWAP
+# define D3 PAL_LINE(GPIOA, 3)
+# define D2 PAL_LINE(GPIOA, 2)
+# else
+# define D3 PAL_LINE(GPIOA, 2)
+# define D2 PAL_LINE(GPIOA, 3)
+# endif
+// GND
+// GND
+# ifdef CONVERT_TO_STEMCELL_I2C_SWAP
+# define D1 PAL_LINE(GPIOB, 6)
+# define D0 PAL_LINE(GPIOB, 7)
+# else
+# define D1 PAL_LINE(GPIOB, 7)
+# define D0 PAL_LINE(GPIOB, 6)
+# endif
+
+# define D4 PAL_LINE(GPIOA, 15)
+# define C6 PAL_LINE(GPIOB, 3)
+# define D7 PAL_LINE(GPIOB, 4)
+# define E6 PAL_LINE(GPIOB, 5)
+# define B4 PAL_LINE(GPIOB, 8)
+# define B5 PAL_LINE(GPIOB, 9)
+
+// Right side (front)
+// RAW
+// GND
+// RESET
+// VCC
+# define F4 PAL_LINE(GPIOB, 10)
+# define F5 PAL_LINE(GPIOB, 2)
+# define F6 PAL_LINE(GPIOB, 1)
+# define F7 PAL_LINE(GPIOB, 0)
+# define B1 PAL_LINE(GPIOA, 7)
+# define B3 PAL_LINE(GPIOA, 6)
+# define B2 PAL_LINE(GPIOA, 5)
+# define B6 PAL_LINE(GPIOA, 4)
+
+# define D5 PAL_LINE(GPIOA, 8)
+# define B0 PAL_LINE(GPIOA, 9) // unconnected pin
+
+# define SERIAL_USART_DRIVER SD1
+# define I2C1_SCL_PIN D0
+# define I2C1_SDA_PIN D1
+
+#else
+# define A0 PAL_LINE(GPIOA, 0)
+# define A1 PAL_LINE(GPIOA, 1)
+# define A2 PAL_LINE(GPIOA, 2)
+# define A3 PAL_LINE(GPIOA, 3)
+# define A4 PAL_LINE(GPIOA, 4)
+# define A5 PAL_LINE(GPIOA, 5)
+# define A6 PAL_LINE(GPIOA, 6)
+# define A7 PAL_LINE(GPIOA, 7)
+# define A8 PAL_LINE(GPIOA, 8)
+# define A9 PAL_LINE(GPIOA, 9)
+# define A10 PAL_LINE(GPIOA, 10)
+# define A11 PAL_LINE(GPIOA, 11)
+# define A12 PAL_LINE(GPIOA, 12)
+# define A13 PAL_LINE(GPIOA, 13)
+# define A14 PAL_LINE(GPIOA, 14)
+# define A15 PAL_LINE(GPIOA, 15)
+# define A16 PAL_LINE(GPIOA, 16)
+# define A17 PAL_LINE(GPIOA, 17)
+# define A18 PAL_LINE(GPIOA, 18)
+# define A19 PAL_LINE(GPIOA, 19)
+# define A20 PAL_LINE(GPIOA, 20)
+# define A21 PAL_LINE(GPIOA, 21)
+# define A22 PAL_LINE(GPIOA, 22)
+# define A23 PAL_LINE(GPIOA, 23)
+# define A24 PAL_LINE(GPIOA, 24)
+# define A25 PAL_LINE(GPIOA, 25)
+# define A26 PAL_LINE(GPIOA, 26)
+# define A27 PAL_LINE(GPIOA, 27)
+# define A28 PAL_LINE(GPIOA, 28)
+# define A29 PAL_LINE(GPIOA, 29)
+# define A30 PAL_LINE(GPIOA, 30)
+# define A31 PAL_LINE(GPIOA, 31)
+# define A32 PAL_LINE(GPIOA, 32)
+# define B0 PAL_LINE(GPIOB, 0)
+# define B1 PAL_LINE(GPIOB, 1)
+# define B2 PAL_LINE(GPIOB, 2)
+# define B3 PAL_LINE(GPIOB, 3)
+# define B4 PAL_LINE(GPIOB, 4)
+# define B5 PAL_LINE(GPIOB, 5)
+# define B6 PAL_LINE(GPIOB, 6)
+# define B7 PAL_LINE(GPIOB, 7)
+# define B8 PAL_LINE(GPIOB, 8)
+# define B9 PAL_LINE(GPIOB, 9)
+# define B10 PAL_LINE(GPIOB, 10)
+# define B11 PAL_LINE(GPIOB, 11)
+# define B12 PAL_LINE(GPIOB, 12)
+# define B13 PAL_LINE(GPIOB, 13)
+# define B14 PAL_LINE(GPIOB, 14)
+# define B15 PAL_LINE(GPIOB, 15)
+# define B16 PAL_LINE(GPIOB, 16)
+# define B17 PAL_LINE(GPIOB, 17)
+# define B18 PAL_LINE(GPIOB, 18)
+# define B19 PAL_LINE(GPIOB, 19)
+# define B20 PAL_LINE(GPIOB, 20)
+# define B21 PAL_LINE(GPIOB, 21)
+# define B22 PAL_LINE(GPIOB, 22)
+# define B23 PAL_LINE(GPIOB, 23)
+# define B24 PAL_LINE(GPIOB, 24)
+# define B25 PAL_LINE(GPIOB, 25)
+# define B26 PAL_LINE(GPIOB, 26)
+# define B27 PAL_LINE(GPIOB, 27)
+# define B28 PAL_LINE(GPIOB, 28)
+# define B29 PAL_LINE(GPIOB, 29)
+# define B30 PAL_LINE(GPIOB, 30)
+# define B31 PAL_LINE(GPIOB, 31)
+# define B32 PAL_LINE(GPIOB, 32)
+# define C0 PAL_LINE(GPIOC, 0)
+# define C1 PAL_LINE(GPIOC, 1)
+# define C2 PAL_LINE(GPIOC, 2)
+# define C3 PAL_LINE(GPIOC, 3)
+# define C4 PAL_LINE(GPIOC, 4)
+# define C5 PAL_LINE(GPIOC, 5)
+# define C6 PAL_LINE(GPIOC, 6)
+# define C7 PAL_LINE(GPIOC, 7)
+# define C8 PAL_LINE(GPIOC, 8)
+# define C9 PAL_LINE(GPIOC, 9)
+# define C10 PAL_LINE(GPIOC, 10)
+# define C11 PAL_LINE(GPIOC, 11)
+# define C12 PAL_LINE(GPIOC, 12)
+# define C13 PAL_LINE(GPIOC, 13)
+# define C14 PAL_LINE(GPIOC, 14)
+# define C15 PAL_LINE(GPIOC, 15)
+# define C16 PAL_LINE(GPIOC, 16)
+# define C17 PAL_LINE(GPIOC, 17)
+# define C18 PAL_LINE(GPIOC, 18)
+# define C19 PAL_LINE(GPIOC, 19)
+# define C20 PAL_LINE(GPIOC, 20)
+# define C21 PAL_LINE(GPIOC, 21)
+# define C22 PAL_LINE(GPIOC, 22)
+# define C23 PAL_LINE(GPIOC, 23)
+# define C24 PAL_LINE(GPIOC, 24)
+# define C25 PAL_LINE(GPIOC, 25)
+# define C26 PAL_LINE(GPIOC, 26)
+# define C27 PAL_LINE(GPIOC, 27)
+# define C28 PAL_LINE(GPIOC, 28)
+# define C29 PAL_LINE(GPIOC, 29)
+# define C30 PAL_LINE(GPIOC, 30)
+# define C31 PAL_LINE(GPIOC, 31)
+# define C32 PAL_LINE(GPIOC, 32)
+# define D0 PAL_LINE(GPIOD, 0)
+# define D1 PAL_LINE(GPIOD, 1)
+# define D2 PAL_LINE(GPIOD, 2)
+# define D3 PAL_LINE(GPIOD, 3)
+# define D4 PAL_LINE(GPIOD, 4)
+# define D5 PAL_LINE(GPIOD, 5)
+# define D6 PAL_LINE(GPIOD, 6)
+# define D7 PAL_LINE(GPIOD, 7)
+# define D8 PAL_LINE(GPIOD, 8)
+# define D9 PAL_LINE(GPIOD, 9)
+# define D10 PAL_LINE(GPIOD, 10)
+# define D11 PAL_LINE(GPIOD, 11)
+# define D12 PAL_LINE(GPIOD, 12)
+# define D13 PAL_LINE(GPIOD, 13)
+# define D14 PAL_LINE(GPIOD, 14)
+# define D15 PAL_LINE(GPIOD, 15)
+# define D16 PAL_LINE(GPIOD, 16)
+# define D17 PAL_LINE(GPIOD, 17)
+# define D18 PAL_LINE(GPIOD, 18)
+# define D19 PAL_LINE(GPIOD, 19)
+# define D20 PAL_LINE(GPIOD, 20)
+# define D21 PAL_LINE(GPIOD, 21)
+# define D22 PAL_LINE(GPIOD, 22)
+# define D23 PAL_LINE(GPIOD, 23)
+# define D24 PAL_LINE(GPIOD, 24)
+# define D25 PAL_LINE(GPIOD, 25)
+# define D26 PAL_LINE(GPIOD, 26)
+# define D27 PAL_LINE(GPIOD, 27)
+# define D28 PAL_LINE(GPIOD, 28)
+# define D29 PAL_LINE(GPIOD, 29)
+# define D30 PAL_LINE(GPIOD, 30)
+# define D31 PAL_LINE(GPIOD, 31)
+# define D32 PAL_LINE(GPIOD, 32)
+# define E0 PAL_LINE(GPIOE, 0)
+# define E1 PAL_LINE(GPIOE, 1)
+# define E2 PAL_LINE(GPIOE, 2)
+# define E3 PAL_LINE(GPIOE, 3)
+# define E4 PAL_LINE(GPIOE, 4)
+# define E5 PAL_LINE(GPIOE, 5)
+# define E6 PAL_LINE(GPIOE, 6)
+# define E7 PAL_LINE(GPIOE, 7)
+# define E8 PAL_LINE(GPIOE, 8)
+# define E9 PAL_LINE(GPIOE, 9)
+# define E10 PAL_LINE(GPIOE, 10)
+# define E11 PAL_LINE(GPIOE, 11)
+# define E12 PAL_LINE(GPIOE, 12)
+# define E13 PAL_LINE(GPIOE, 13)
+# define E14 PAL_LINE(GPIOE, 14)
+# define E15 PAL_LINE(GPIOE, 15)
+# define E16 PAL_LINE(GPIOE, 16)
+# define E17 PAL_LINE(GPIOE, 17)
+# define E18 PAL_LINE(GPIOE, 18)
+# define E19 PAL_LINE(GPIOE, 19)
+# define E20 PAL_LINE(GPIOE, 20)
+# define E21 PAL_LINE(GPIOE, 21)
+# define E22 PAL_LINE(GPIOE, 22)
+# define E23 PAL_LINE(GPIOE, 23)
+# define E24 PAL_LINE(GPIOE, 24)
+# define E25 PAL_LINE(GPIOE, 25)
+# define E26 PAL_LINE(GPIOE, 26)
+# define E27 PAL_LINE(GPIOE, 27)
+# define E28 PAL_LINE(GPIOE, 28)
+# define E29 PAL_LINE(GPIOE, 29)
+# define E30 PAL_LINE(GPIOE, 30)
+# define E31 PAL_LINE(GPIOE, 31)
+# define E32 PAL_LINE(GPIOE, 32)
+# define F0 PAL_LINE(GPIOF, 0)
+# define F1 PAL_LINE(GPIOF, 1)
+# define F2 PAL_LINE(GPIOF, 2)
+# define F3 PAL_LINE(GPIOF, 3)
+# define F4 PAL_LINE(GPIOF, 4)
+# define F5 PAL_LINE(GPIOF, 5)
+# define F6 PAL_LINE(GPIOF, 6)
+# define F7 PAL_LINE(GPIOF, 7)
+# define F8 PAL_LINE(GPIOF, 8)
+# define F9 PAL_LINE(GPIOF, 9)
+# define F10 PAL_LINE(GPIOF, 10)
+# define F11 PAL_LINE(GPIOF, 11)
+# define F12 PAL_LINE(GPIOF, 12)
+# define F13 PAL_LINE(GPIOF, 13)
+# define F14 PAL_LINE(GPIOF, 14)
+# define F15 PAL_LINE(GPIOF, 15)
+# define G0 PAL_LINE(GPIOG, 0)
+# define G1 PAL_LINE(GPIOG, 1)
+# define G2 PAL_LINE(GPIOG, 2)
+# define G3 PAL_LINE(GPIOG, 3)
+# define G4 PAL_LINE(GPIOG, 4)
+# define G5 PAL_LINE(GPIOG, 5)
+# define G6 PAL_LINE(GPIOG, 6)
+# define G7 PAL_LINE(GPIOG, 7)
+# define G8 PAL_LINE(GPIOG, 8)
+# define G9 PAL_LINE(GPIOG, 9)
+# define G10 PAL_LINE(GPIOG, 10)
+# define G11 PAL_LINE(GPIOG, 11)
+# define G12 PAL_LINE(GPIOG, 12)
+# define G13 PAL_LINE(GPIOG, 13)
+# define G14 PAL_LINE(GPIOG, 14)
+# define G15 PAL_LINE(GPIOG, 15)
+# define H0 PAL_LINE(GPIOH, 0)
+# define H1 PAL_LINE(GPIOH, 1)
+# define H2 PAL_LINE(GPIOH, 2)
+# define H3 PAL_LINE(GPIOH, 3)
+# define H4 PAL_LINE(GPIOH, 4)
+# define H5 PAL_LINE(GPIOH, 5)
+# define H6 PAL_LINE(GPIOH, 6)
+# define H7 PAL_LINE(GPIOH, 7)
+# define H8 PAL_LINE(GPIOH, 8)
+# define H9 PAL_LINE(GPIOH, 9)
+# define H10 PAL_LINE(GPIOH, 10)
+# define H11 PAL_LINE(GPIOH, 11)
+# define H12 PAL_LINE(GPIOH, 12)
+# define H13 PAL_LINE(GPIOH, 13)
+# define H14 PAL_LINE(GPIOH, 14)
+# define H15 PAL_LINE(GPIOH, 15)
+# define I0 PAL_LINE(GPIOI, 0)
+# define I1 PAL_LINE(GPIOI, 1)
+# define I2 PAL_LINE(GPIOI, 2)
+# define I3 PAL_LINE(GPIOI, 3)
+# define I4 PAL_LINE(GPIOI, 4)
+# define I5 PAL_LINE(GPIOI, 5)
+# define I6 PAL_LINE(GPIOI, 6)
+# define I7 PAL_LINE(GPIOI, 7)
+# define I8 PAL_LINE(GPIOI, 8)
+# define I9 PAL_LINE(GPIOI, 9)
+# define I10 PAL_LINE(GPIOI, 10)
+# define I11 PAL_LINE(GPIOI, 11)
+# define I12 PAL_LINE(GPIOI, 12)
+# define I13 PAL_LINE(GPIOI, 13)
+# define I14 PAL_LINE(GPIOI, 14)
+# define I15 PAL_LINE(GPIOI, 15)
+# define J0 PAL_LINE(GPIOJ, 0)
+# define J1 PAL_LINE(GPIOJ, 1)
+# define J2 PAL_LINE(GPIOJ, 2)
+# define J3 PAL_LINE(GPIOJ, 3)
+# define J4 PAL_LINE(GPIOJ, 4)
+# define J5 PAL_LINE(GPIOJ, 5)
+# define J6 PAL_LINE(GPIOJ, 6)
+# define J7 PAL_LINE(GPIOJ, 7)
+# define J8 PAL_LINE(GPIOJ, 8)
+# define J9 PAL_LINE(GPIOJ, 9)
+# define J10 PAL_LINE(GPIOJ, 10)
+# define J11 PAL_LINE(GPIOJ, 11)
+# define J12 PAL_LINE(GPIOJ, 12)
+# define J13 PAL_LINE(GPIOJ, 13)
+# define J14 PAL_LINE(GPIOJ, 14)
+# define J15 PAL_LINE(GPIOJ, 15)
+// Keyboards can `#define KEYBOARD_REQUIRES_GPIOK` if they need to access GPIO-K pins. These conflict with a whole
+// bunch of layout definitions, so it's intentionally left out unless absolutely required -- in that case, the
+// keyboard designer should use a different symbol when defining their layout macros.
+# ifdef KEYBOARD_REQUIRES_GPIOK
+# define K0 PAL_LINE(GPIOK, 0)
+# define K1 PAL_LINE(GPIOK, 1)
+# define K2 PAL_LINE(GPIOK, 2)
+# define K3 PAL_LINE(GPIOK, 3)
+# define K4 PAL_LINE(GPIOK, 4)
+# define K5 PAL_LINE(GPIOK, 5)
+# define K6 PAL_LINE(GPIOK, 6)
+# define K7 PAL_LINE(GPIOK, 7)
+# define K8 PAL_LINE(GPIOK, 8)
+# define K9 PAL_LINE(GPIOK, 9)
+# define K10 PAL_LINE(GPIOK, 10)
+# define K11 PAL_LINE(GPIOK, 11)
+# define K12 PAL_LINE(GPIOK, 12)
+# define K13 PAL_LINE(GPIOK, 13)
+# define K14 PAL_LINE(GPIOK, 14)
+# define K15 PAL_LINE(GPIOK, 15)
+# endif
+#endif
From d23df2bcf52f54848967f95f34d9ff8a00d0077c Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Date: Mon, 7 Feb 2022 11:30:52 +0800
Subject: [PATCH 02/33] Use custom ld script
---
.../boards/STEMCELL/convert_to_stemcell.mk | 2 +
.../boards/STEMCELL/ld/STEMCELL_tinyuf2.ld | 4 +-
.../boards/STEMCELL/ld/STM32F401xC_tinyuf2.ld | 88 -------------------
3 files changed, 5 insertions(+), 89 deletions(-)
delete mode 100644 platforms/chibios/boards/STEMCELL/ld/STM32F401xC_tinyuf2.ld
diff --git a/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk b/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
index d32bd0276034..39578f67b742 100644
--- a/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
+++ b/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
@@ -4,6 +4,8 @@ MCU := STM32F401
BOARD := STEMCELL
BOOTLOADER := tinyuf2
OPT_DEFS += -DCONVERT_TO_STEMCELL
+MCU_LDSCRIPT := STEMCELL_tinyuf2
+FIRMWARE_FORMAT := uf2
SERIAL_DRIVER := usart
diff --git a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
index f4e487dc8f92..b590d3c7a87a 100644
--- a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
+++ b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
@@ -1,5 +1,6 @@
/*
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+ Copyright (C) 2022 Mega Mind
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,8 +16,9 @@
*/
/*
- * STM32F401xC memory setup.
+ * STeMCell (STM32F4x1Cx) memory setup.
*/
+
MEMORY
{
flash0 (rx) : org = 0x08000000 + 64k, len = 256k - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
diff --git a/platforms/chibios/boards/STEMCELL/ld/STM32F401xC_tinyuf2.ld b/platforms/chibios/boards/STEMCELL/ld/STM32F401xC_tinyuf2.ld
deleted file mode 100644
index f4e487dc8f92..000000000000
--- a/platforms/chibios/boards/STEMCELL/ld/STM32F401xC_tinyuf2.ld
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * STM32F401xC memory setup.
- */
-MEMORY
-{
- flash0 (rx) : org = 0x08000000 + 64k, len = 256k - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
- flash1 (rx) : org = 0x00000000, len = 0
- flash2 (rx) : org = 0x00000000, len = 0
- flash3 (rx) : org = 0x00000000, len = 0
- flash4 (rx) : org = 0x00000000, len = 0
- flash5 (rx) : org = 0x00000000, len = 0
- flash6 (rx) : org = 0x00000000, len = 0
- flash7 (rx) : org = 0x00000000, len = 0
- ram0 (wx) : org = 0x20000000, len = 64k
- ram1 (wx) : org = 0x00000000, len = 0
- ram2 (wx) : org = 0x00000000, len = 0
- ram3 (wx) : org = 0x00000000, len = 0
- ram4 (wx) : org = 0x00000000, len = 0
- ram5 (wx) : org = 0x00000000, len = 0
- ram6 (wx) : org = 0x00000000, len = 0
- ram7 (wx) : org = 0x00000000, len = 0
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash0);
-REGION_ALIAS("XTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash0);
-REGION_ALIAS("TEXT_FLASH_LMA", flash0);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash0);
-REGION_ALIAS("RODATA_FLASH_LMA", flash0);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash0);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash0);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
-
-/* TinyUF2 bootloader reset support */
-_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */
From 32b375f3ee6b14bfe937b7a5be77691f203b9d4c Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy
Date: Mon, 7 Feb 2022 14:14:11 +0800
Subject: [PATCH 03/33] Add copyright
---
platforms/chibios/boards/STEMCELL/board/board.c | 1 +
platforms/chibios/boards/STEMCELL/board/board.h | 7 ++++---
platforms/chibios/boards/STEMCELL/configs/board.h | 1 +
platforms/chibios/boards/STEMCELL/configs/config.h | 1 +
platforms/chibios/boards/STEMCELL/configs/halconf.h | 1 +
5 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/platforms/chibios/boards/STEMCELL/board/board.c b/platforms/chibios/boards/STEMCELL/board/board.c
index 9ff3f758c123..4b7092fa7ab0 100644
--- a/platforms/chibios/boards/STEMCELL/board/board.c
+++ b/platforms/chibios/boards/STEMCELL/board/board.c
@@ -1,5 +1,6 @@
/*
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+ Copyright (C) 2022 Mega Mind
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/platforms/chibios/boards/STEMCELL/board/board.h b/platforms/chibios/boards/STEMCELL/board/board.h
index b8be7c18eeca..ed6621345be6 100644
--- a/platforms/chibios/boards/STEMCELL/board/board.h
+++ b/platforms/chibios/boards/STEMCELL/board/board.h
@@ -1,5 +1,6 @@
/*
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+ Copyright (C) 2022 Mega Mind
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -27,14 +28,14 @@
/*===========================================================================*/
/*
- * Setup for STMicroelectronics STM32F401C-Discovery board.
+ * Setup for STeMCell
*/
/*
* Board identifier.
*/
-#define BOARD_ST_STM32F401C_DISCOVERY
-#define BOARD_NAME "STMicroelectronics STM32F401C-Discovery"
+#define BOARD_STEMCELL
+#define BOARD_NAME "STeMCell"
/*
* Board oscillators-related settings.
diff --git a/platforms/chibios/boards/STEMCELL/configs/board.h b/platforms/chibios/boards/STEMCELL/configs/board.h
index 30af6b0c8608..f3d3cade416f 100644
--- a/platforms/chibios/boards/STEMCELL/configs/board.h
+++ b/platforms/chibios/boards/STEMCELL/configs/board.h
@@ -1,4 +1,5 @@
/* Copyright 2020 Nick Brassel (tzarc)
+ * Copyright (C) 2022 Mega Mind
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/platforms/chibios/boards/STEMCELL/configs/config.h b/platforms/chibios/boards/STEMCELL/configs/config.h
index ec551acfc886..e611618c541c 100644
--- a/platforms/chibios/boards/STEMCELL/configs/config.h
+++ b/platforms/chibios/boards/STEMCELL/configs/config.h
@@ -1,4 +1,5 @@
/* Copyright 2020 Nick Brassel (tzarc)
+ * Copyright (C) 2022 Mega Mind
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/platforms/chibios/boards/STEMCELL/configs/halconf.h b/platforms/chibios/boards/STEMCELL/configs/halconf.h
index 3193d60e746f..f7d9cf10c804 100644
--- a/platforms/chibios/boards/STEMCELL/configs/halconf.h
+++ b/platforms/chibios/boards/STEMCELL/configs/halconf.h
@@ -1,4 +1,5 @@
/* Copyright 2020 Nick Brassel (tzarc)
+ * Copyright (C) 2022 Mega Mind
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
From 8c45bb43daef155e89e9683c7151e605f6944fdd Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Date: Tue, 8 Feb 2022 00:30:08 +0800
Subject: [PATCH 04/33] Fix ld script and added some EEPROM hack
---
.../boards/STEMCELL/ld/STEMCELL_tinyuf2.ld | 32 +++++++++----------
platforms/chibios/drivers/flash/flash_stm32.c | 10 +++++-
platforms/chibios/pin_defs.h | 1 +
3 files changed, 26 insertions(+), 17 deletions(-)
diff --git a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
index b590d3c7a87a..3abd470edefe 100644
--- a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
+++ b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
@@ -21,10 +21,10 @@
MEMORY
{
- flash0 (rx) : org = 0x08000000 + 64k, len = 256k - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
- flash1 (rx) : org = 0x00000000, len = 0
- flash2 (rx) : org = 0x00000000, len = 0
- flash3 (rx) : org = 0x00000000, len = 0
+ flash0 (rx) : org = 0x08000000, len = 64k /* Sector 0 - TinyUF2 bootloader */
+ flash1 (rx) : org = 0x08010000, len = 16k /* Sector 1 - Init Code */
+ flash2 (rx) : org = 0x08014000, len = 16k /* Sector 2 - Emulated eeprom */
+ flash3 (rx) : org = 0x08018000, len = 256k - 96k /* Sector 3 - Firmware code */
flash4 (rx) : org = 0x00000000, len = 0
flash5 (rx) : org = 0x00000000, len = 0
flash6 (rx) : org = 0x00000000, len = 0
@@ -43,27 +43,27 @@ MEMORY
and a load region (_LMA suffix).*/
/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
+REGION_ALIAS("VECTORS_FLASH", flash1);
+REGION_ALIAS("VECTORS_FLASH_LMA", flash1);
/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash0);
-REGION_ALIAS("XTORS_FLASH_LMA", flash0);
+REGION_ALIAS("XTORS_FLASH", flash3);
+REGION_ALIAS("XTORS_FLASH_LMA", flash3);
/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash0);
-REGION_ALIAS("TEXT_FLASH_LMA", flash0);
+REGION_ALIAS("TEXT_FLASH", flash3);
+REGION_ALIAS("TEXT_FLASH_LMA", flash3);
/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash0);
-REGION_ALIAS("RODATA_FLASH_LMA", flash0);
+REGION_ALIAS("RODATA_FLASH", flash3);
+REGION_ALIAS("RODATA_FLASH_LMA", flash3);
/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash0);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
+REGION_ALIAS("VARIOUS_FLASH", flash3);
+REGION_ALIAS("VARIOUS_FLASH_LMA", flash3);
/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
+REGION_ALIAS("RAM_INIT_FLASH_LMA", flash3);
/* RAM region to be used for Main stack. This stack accommodates the processing
of all exceptions and interrupts.*/
@@ -75,7 +75,7 @@ REGION_ALIAS("PROCESS_STACK_RAM", ram0);
/* RAM region to be used for data segment.*/
REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash0);
+REGION_ALIAS("DATA_RAM_LMA", flash3);
/* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
diff --git a/platforms/chibios/drivers/flash/flash_stm32.c b/platforms/chibios/drivers/flash/flash_stm32.c
index 72c41b8b784d..44677b0d627e 100644
--- a/platforms/chibios/drivers/flash/flash_stm32.c
+++ b/platforms/chibios/drivers/flash/flash_stm32.c
@@ -44,6 +44,14 @@ static uint8_t ADDR2PAGE(uint32_t Page_Address) {
return 2;
case 0x0800C000 ... 0x0800FFFF:
return 3;
+ case 0x08010000 ... 0x08013FFF:
+ return 4;
+ case 0x08014000 ... 0x08017FFF:
+ return 5;
+ case 0x08018000 ... 0x0801BFFF:
+ return 6;
+ case 0x0801C000 ... 0x0801FFFF:
+ return 7;
}
// TODO: bad times...
@@ -163,7 +171,7 @@ FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) {
if (IS_FLASH_ADDRESS(Address)) {
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation(ProgramTimeout);
- if (status == FLASH_COMPLETE) {
+ if (status != FLASH_BUSY) {
/* if the previous operation is completed, proceed to program the new data */
#if defined(FLASH_CR_PSIZE)
diff --git a/platforms/chibios/pin_defs.h b/platforms/chibios/pin_defs.h
index 357347052169..398d3d0fd267 100644
--- a/platforms/chibios/pin_defs.h
+++ b/platforms/chibios/pin_defs.h
@@ -109,6 +109,7 @@
# define SERIAL_USART_DRIVER SD1
# define I2C1_SCL_PIN D0
# define I2C1_SDA_PIN D1
+# define FEE_PAGE_BASE_ADDRESS 0x08014000
#else
# define A0 PAL_LINE(GPIOA, 0)
From e97a2ed9450c904fdda9be3850b403b0cda6dcba Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Date: Tue, 8 Feb 2022 14:17:15 +0800
Subject: [PATCH 05/33] Simplify ADDR2PAGE fn
---
platforms/chibios/drivers/flash/flash_stm32.c | 24 ++-----------------
1 file changed, 2 insertions(+), 22 deletions(-)
diff --git a/platforms/chibios/drivers/flash/flash_stm32.c b/platforms/chibios/drivers/flash/flash_stm32.c
index 44677b0d627e..dbfff0b25828 100644
--- a/platforms/chibios/drivers/flash/flash_stm32.c
+++ b/platforms/chibios/drivers/flash/flash_stm32.c
@@ -34,28 +34,8 @@
# define FLASH_KEY1 0x45670123U
# define FLASH_KEY2 0xCDEF89ABU
-static uint8_t ADDR2PAGE(uint32_t Page_Address) {
- switch (Page_Address) {
- case 0x08000000 ... 0x08003FFF:
- return 0;
- case 0x08004000 ... 0x08007FFF:
- return 1;
- case 0x08008000 ... 0x0800BFFF:
- return 2;
- case 0x0800C000 ... 0x0800FFFF:
- return 3;
- case 0x08010000 ... 0x08013FFF:
- return 4;
- case 0x08014000 ... 0x08017FFF:
- return 5;
- case 0x08018000 ... 0x0801BFFF:
- return 6;
- case 0x0801C000 ... 0x0801FFFF:
- return 7;
- }
-
- // TODO: bad times...
- return 7;
+static inline uint8_t ADDR2PAGE(uint32_t Page_Address) {
+ return (Page_Address - 0x08000000)/0x4000;
}
#endif
From 6589ae2c01a0f98fcf757fb17df2359aa82962fc Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy
Date: Tue, 8 Feb 2022 17:18:43 +0800
Subject: [PATCH 06/33] Fix flash addresses
---
.../boards/STEMCELL/ld/STEMCELL_tinyuf2.ld | 32 +++++++++----------
platforms/chibios/drivers/flash/flash_stm32.c | 16 ++++++++--
platforms/chibios/pin_defs.h | 2 +-
3 files changed, 31 insertions(+), 19 deletions(-)
diff --git a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
index 3abd470edefe..d00249aa3ccf 100644
--- a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
+++ b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
@@ -21,10 +21,10 @@
MEMORY
{
- flash0 (rx) : org = 0x08000000, len = 64k /* Sector 0 - TinyUF2 bootloader */
- flash1 (rx) : org = 0x08010000, len = 16k /* Sector 1 - Init Code */
- flash2 (rx) : org = 0x08014000, len = 16k /* Sector 2 - Emulated eeprom */
- flash3 (rx) : org = 0x08018000, len = 256k - 96k /* Sector 3 - Firmware code */
+ flash0 (rx) : org = 0x08000000, len = 32k /* Sector 0 - TinyUF2 bootloader */
+ flash1 (rx) : org = 0x08008000, len = 32k /* Sector 1 - Emulated eeprom */
+ flash2 (rx) : org = 0x08010000, len = 256k - 64k /* Sector 2 - Firmware Code */
+ flash3 (rx) : org = 0x00000000, len = 0
flash4 (rx) : org = 0x00000000, len = 0
flash5 (rx) : org = 0x00000000, len = 0
flash6 (rx) : org = 0x00000000, len = 0
@@ -43,27 +43,27 @@ MEMORY
and a load region (_LMA suffix).*/
/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash1);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash1);
+REGION_ALIAS("VECTORS_FLASH", flash2);
+REGION_ALIAS("VECTORS_FLASH_LMA", flash2);
/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash3);
-REGION_ALIAS("XTORS_FLASH_LMA", flash3);
+REGION_ALIAS("XTORS_FLASH", flash2);
+REGION_ALIAS("XTORS_FLASH_LMA", flash2);
/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash3);
-REGION_ALIAS("TEXT_FLASH_LMA", flash3);
+REGION_ALIAS("TEXT_FLASH", flash2);
+REGION_ALIAS("TEXT_FLASH_LMA", flash2);
/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash3);
-REGION_ALIAS("RODATA_FLASH_LMA", flash3);
+REGION_ALIAS("RODATA_FLASH", flash2);
+REGION_ALIAS("RODATA_FLASH_LMA", flash2);
/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash3);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash3);
+REGION_ALIAS("VARIOUS_FLASH", flash2);
+REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash3);
+REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
/* RAM region to be used for Main stack. This stack accommodates the processing
of all exceptions and interrupts.*/
@@ -75,7 +75,7 @@ REGION_ALIAS("PROCESS_STACK_RAM", ram0);
/* RAM region to be used for data segment.*/
REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash3);
+REGION_ALIAS("DATA_RAM_LMA", flash2);
/* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
diff --git a/platforms/chibios/drivers/flash/flash_stm32.c b/platforms/chibios/drivers/flash/flash_stm32.c
index dbfff0b25828..f69189c10867 100644
--- a/platforms/chibios/drivers/flash/flash_stm32.c
+++ b/platforms/chibios/drivers/flash/flash_stm32.c
@@ -35,7 +35,19 @@
# define FLASH_KEY2 0xCDEF89ABU
static inline uint8_t ADDR2PAGE(uint32_t Page_Address) {
- return (Page_Address - 0x08000000)/0x4000;
+ switch (Page_Address) {
+ case 0x08000000 ... 0x08003FFF:
+ return 0;
+ case 0x08004000 ... 0x08007FFF:
+ return 1;
+ case 0x08008000 ... 0x0800BFFF:
+ return 2;
+ case 0x0800C000 ... 0x0800FFFF:
+ return 3;
+ }
+
+ // TODO: bad times...
+ return 7;
}
#endif
@@ -151,7 +163,7 @@ FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) {
if (IS_FLASH_ADDRESS(Address)) {
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation(ProgramTimeout);
- if (status != FLASH_BUSY) {
+ if (status == FLASH_COMPLETE) {
/* if the previous operation is completed, proceed to program the new data */
#if defined(FLASH_CR_PSIZE)
diff --git a/platforms/chibios/pin_defs.h b/platforms/chibios/pin_defs.h
index 398d3d0fd267..9c43e06ad25e 100644
--- a/platforms/chibios/pin_defs.h
+++ b/platforms/chibios/pin_defs.h
@@ -109,7 +109,7 @@
# define SERIAL_USART_DRIVER SD1
# define I2C1_SCL_PIN D0
# define I2C1_SDA_PIN D1
-# define FEE_PAGE_BASE_ADDRESS 0x08014000
+# define FEE_PAGE_BASE_ADDRESS 0x08008000
#else
# define A0 PAL_LINE(GPIOA, 0)
From 2d879ce45c9329d8b9d1f0e4383dddf7cc2c0934 Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy
Date: Tue, 8 Feb 2022 17:19:03 +0800
Subject: [PATCH 07/33] add via keymap for adux
---
keyboards/a_dux/keymaps/via/keymap.c | 40 ++++++++++++++++++++++++++++
keyboards/a_dux/keymaps/via/rules.mk | 4 +++
2 files changed, 44 insertions(+)
create mode 100644 keyboards/a_dux/keymaps/via/keymap.c
create mode 100644 keyboards/a_dux/keymaps/via/rules.mk
diff --git a/keyboards/a_dux/keymaps/via/keymap.c b/keyboards/a_dux/keymaps/via/keymap.c
new file mode 100644
index 000000000000..b58c9d447f91
--- /dev/null
+++ b/keyboards/a_dux/keymaps/via/keymap.c
@@ -0,0 +1,40 @@
+// Copyright 2022 @filterpaper
+// SPDX-License-Identifier: GPL-2.0+
+
+#include QMK_KEYBOARD_H
+
+// Seniply layout
+// https://stevep99.github.io/seniply
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_split_3x5_2(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
+ LT(3,KC_TAB), KC_LSFT, KC_SPC, LT(1,KC_ENT)
+ ),
+ [1] = LAYOUT_split_3x5_2(
+ KC_EXLM, KC_AT, KC_SCLN, KC_COLN, KC_UNDS, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS,
+ KC_BSLS, KC_PIPE, KC_LCBR, KC_LPRN, KC_LBRC, KC_ASTR, KC_4, KC_5, KC_6, KC_MINS,
+ KC_NO, KC_NO, KC_RCBR, KC_RPRN, KC_RBRC, KC_0, KC_1, KC_2, KC_3, KC_SLSH,
+ _______, MO(2), _______, _______
+ ),
+ [2] = LAYOUT_split_3x5_2(
+ RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), KC_BRIU, KC_NO, KC_AMPR, KC_GRV, KC_TILD, KC_NO,
+ KC_MUTE, KC_VOLD, KC_MPLY, KC_VOLU, KC_BRID, KC_NO, KC_DLR, KC_PERC, KC_CIRC, KC_UNDS,
+ KC_EJCT, KC_MPRV, KC_MSTP, KC_MNXT, KC_NO, KC_NO, KC_EXLM, KC_AT, KC_HASH, KC_NO,
+ _______, _______, _______, _______
+ ),
+ [3] = LAYOUT_split_3x5_2(
+ KC_ESC, LALT(KC_LEFT), LCTL(KC_F), LALT(KC_RGHT), KC_INS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_CAPS,
+ OSM(MOD_LALT), OSM(MOD_LGUI), OSM(MOD_LSFT), OSM(MOD_LCTL), OSM(MOD_RALT), KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL,
+ LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), KC_TAB, LCTL(KC_V), KC_ENT, KC_BSPC, KC_RCTL, KC_LALT, KC_APP,
+ _______, _______, _______, MO(4)
+ ),
+ [4] = LAYOUT_split_3x5_2(
+ KC_NO, KC_NO, RCS(KC_F), KC_PSCR, KC_NO, KC_F12, KC_F7, KC_F8, KC_F9, KC_NO,
+ OSM(MOD_LALT), OSM(MOD_LGUI), OSM(MOD_LSFT), OSM(MOD_LCTL), OSM(MOD_RALT), KC_F11, KC_F4, KC_F5, KC_F6, KC_NO,
+ RCS(KC_Z), RCS(KC_X), RCS(KC_C), LSFT(KC_TAB), RCS(KC_V), KC_F10, KC_F1, KC_F2, KC_F3, KC_NO,
+ _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/a_dux/keymaps/via/rules.mk b/keyboards/a_dux/keymaps/via/rules.mk
new file mode 100644
index 000000000000..6c24ff1a0375
--- /dev/null
+++ b/keyboards/a_dux/keymaps/via/rules.mk
@@ -0,0 +1,4 @@
+VIA_ENABLE = yes
+OLED_ENABLE = no
+MOUSEKEY_ENABLE = yes
+EXTRAKEY_ENABLE = yes
From ccebe2a259cc3156178e1f1e70bcc92782a7b6cc Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy
Date: Tue, 8 Feb 2022 22:26:06 +0800
Subject: [PATCH 08/33] Fix matrin setPin bug which prevents flash saving
---
platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld | 6 +++---
platforms/chibios/drivers/flash/flash_stm32.c | 2 +-
quantum/matrix.c | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
index d00249aa3ccf..9a40100666a2 100644
--- a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
+++ b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
@@ -21,9 +21,9 @@
MEMORY
{
- flash0 (rx) : org = 0x08000000, len = 32k /* Sector 0 - TinyUF2 bootloader */
- flash1 (rx) : org = 0x08008000, len = 32k /* Sector 1 - Emulated eeprom */
- flash2 (rx) : org = 0x08010000, len = 256k - 64k /* Sector 2 - Firmware Code */
+ flash0 (rx) : org = 0x08000000, len = 32k /* Sector 0,1 - TinyUF2 bootloader */
+ flash1 (rx) : org = 0x08008000, len = 32k /* Sector 2,3 - Emulated eeprom */
+ flash2 (rx) : org = 0x08010000, len = 256k - 64k /* Sector 4..6 - Firmware Code */
flash3 (rx) : org = 0x00000000, len = 0
flash4 (rx) : org = 0x00000000, len = 0
flash5 (rx) : org = 0x00000000, len = 0
diff --git a/platforms/chibios/drivers/flash/flash_stm32.c b/platforms/chibios/drivers/flash/flash_stm32.c
index f69189c10867..72c41b8b784d 100644
--- a/platforms/chibios/drivers/flash/flash_stm32.c
+++ b/platforms/chibios/drivers/flash/flash_stm32.c
@@ -34,7 +34,7 @@
# define FLASH_KEY1 0x45670123U
# define FLASH_KEY2 0xCDEF89ABU
-static inline uint8_t ADDR2PAGE(uint32_t Page_Address) {
+static uint8_t ADDR2PAGE(uint32_t Page_Address) {
switch (Page_Address) {
case 0x08000000 ... 0x08003FFF:
return 0;
diff --git a/quantum/matrix.c b/quantum/matrix.c
index db683104edaa..815a0c3c62a0 100644
--- a/quantum/matrix.c
+++ b/quantum/matrix.c
@@ -107,7 +107,7 @@ __attribute__((weak)) void matrix_init_pins(void) {
for (int row = 0; row < ROWS_PER_HAND; row++) {
for (int col = 0; col < MATRIX_COLS; col++) {
pin_t pin = direct_pins[row][col];
- if (pin != NO_PIN) {
+ if ((pin != NO_PIN) && (pin != 0)) {
setPinInputHigh(pin);
}
}
From 3aabe1048adab3df5646a94611cad1eb4cffc5d1 Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy
Date: Thu, 10 Feb 2022 13:54:29 +0800
Subject: [PATCH 09/33] Fix serial default driver
---
.../boards/STEMCELL/configs/bootloader_defs.h | 5 -----
platforms/chibios/pin_defs.h | 13 ++++---------
2 files changed, 4 insertions(+), 14 deletions(-)
delete mode 100644 platforms/chibios/boards/STEMCELL/configs/bootloader_defs.h
diff --git a/platforms/chibios/boards/STEMCELL/configs/bootloader_defs.h b/platforms/chibios/boards/STEMCELL/configs/bootloader_defs.h
deleted file mode 100644
index 4da3d39a3268..000000000000
--- a/platforms/chibios/boards/STEMCELL/configs/bootloader_defs.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/* Address for jumping to bootloader on STM32 chips. */
-/* It is chip dependent, the correct number can be looked up here:
- * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
- */
-#define STM32_BOOTLOADER_ADDRESS 0x1FFF0000
diff --git a/platforms/chibios/pin_defs.h b/platforms/chibios/pin_defs.h
index 9c43e06ad25e..1fb0dc638844 100644
--- a/platforms/chibios/pin_defs.h
+++ b/platforms/chibios/pin_defs.h
@@ -56,18 +56,14 @@
#elif defined(CONVERT_TO_STEMCELL)
-/* #if SOFT_SERIAL_PIN==D0 || SOFT_SERIAL_PIN==D1
-# define SERIAL_USART_DRIVER SD1
-# define USART1_REMAP
-#elif SOFT_SERIAL_PIN==D2 || SOFT_SERIAL_PIN==D3
-# define SERIAL_USART_DRIVER SD2
-# define USART2_REMAP
-#endif */
-
// Left side (front)
# ifdef CONVERT_TO_STEMCELL_UART_SWAP
# define D3 PAL_LINE(GPIOA, 3)
# define D2 PAL_LINE(GPIOA, 2)
+# ifndef SERIAL_USART_DRIVER
+# define SERIAL_USART_DRIVER SD2
+# endif
+// # define USART2_REMAP
# else
# define D3 PAL_LINE(GPIOA, 2)
# define D2 PAL_LINE(GPIOA, 3)
@@ -106,7 +102,6 @@
# define D5 PAL_LINE(GPIOA, 8)
# define B0 PAL_LINE(GPIOA, 9) // unconnected pin
-# define SERIAL_USART_DRIVER SD1
# define I2C1_SCL_PIN D0
# define I2C1_SDA_PIN D1
# define FEE_PAGE_BASE_ADDRESS 0x08008000
From aaae842ba34c901c2eb74c33773d6e807214d6b1 Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Date: Sun, 20 Feb 2022 17:28:47 +0800
Subject: [PATCH 10/33] Fix board pinmapping and minor nitpiks
---
.../chibios/boards/STEMCELL/board/board.h | 558 +++++++++---------
.../chibios/boards/STEMCELL/configs/halconf.h | 3 +-
.../chibios/boards/STEMCELL/configs/mcuconf.h | 2 +-
.../boards/STEMCELL/convert_to_stemcell.mk | 2 +-
platforms/chibios/pin_defs.h | 1 -
5 files changed, 270 insertions(+), 296 deletions(-)
diff --git a/platforms/chibios/boards/STEMCELL/board/board.h b/platforms/chibios/boards/STEMCELL/board/board.h
index ed6621345be6..f4f73aa152f0 100644
--- a/platforms/chibios/boards/STEMCELL/board/board.h
+++ b/platforms/chibios/boards/STEMCELL/board/board.h
@@ -53,91 +53,90 @@
* Board voltages.
* Required for performance limits calculation.
*/
-#define STM32_VDD 300U
+#define STM32_VDD 330U
/*
* MCU type as defined in the ST header.
*/
-#define STM32F401xC
+#define STM32F411xE
/*
* IO pins assignments.
*/
-#define GPIOA_BUTTON 0U
+#define GPIOA_PIN0 0U
#define GPIOA_PIN1 1U
#define GPIOA_PIN2 2U
#define GPIOA_PIN3 3U
-#define GPIOA_CS43L22_LRCK 4U
-#define GPIOA_L3GD20_SCL 5U
-#define GPIOA_L3GD20_SD0 6U
-#define GPIOA_L3GD20_SDI 7U
-#define GPIOA_LED 8U
+#define GPIOA_PIN4 4U
+#define GPIOA_PIN5 5U
+#define GPIOA_PIN6 6U
+#define GPIOA_PIN7 7U
+#define GPIOA_LED0 8U
#define GPIOA_VBUS_FS 9U
#define GPIOA_OTG_FS_ID 10U
#define GPIOA_OTG_FS_DM 11U
#define GPIOA_OTG_FS_DP 12U
-#define GPIOA_SWDIO 13U
-#define GPIOA_SWCLK 14U
+#define GPIOA_PIN13 13U
+#define GPIOA_PIN14 14U
#define GPIOA_PIN15 15U
#define GPIOB_PIN0 0U
#define GPIOB_PIN1 1U
#define GPIOB_PIN2 2U
-#define GPIOB_SWO 3U
+#define GPIOB_PIN3 3U
#define GPIOB_PIN4 4U
#define GPIOB_PIN5 5U
-#define GPIOB_LSM303DLHC_SCL 6U
+#define GPIOB_PIN6 6U
#define GPIOB_PIN7 7U
#define GPIOB_PIN8 8U
-#define GPIOB_LSM303DLHC_SDA 9U
-#define GPIOB_MP45DT02_CLK_IN 10U
+#define GPIOB_PIN9 9U
+#define GPIOB_PIN10 10U
#define GPIOB_PIN11 11U
#define GPIOB_PIN12 12U
#define GPIOB_PIN13 13U
#define GPIOB_PIN14 14U
#define GPIOB_PIN15 15U
-#define GPIOC_OTG_FS_POWER_ON 0U
+#define GPIOC_PIN0 0U
#define GPIOC_PIN1 1U
#define GPIOC_PIN2 2U
-#define GPIOC_CS43L22_AIN4x 3U
-#define GPIOC_MP45DT02_PDM_OUT 3U
+#define GPIOC_PIN3 3U
#define GPIOC_PIN4 4U
#define GPIOC_PIN5 5U
#define GPIOC_PIN6 6U
-#define GPIOC_CS43L22_MCLK 7U
+#define GPIOC_PIN7 7U
#define GPIOC_PIN8 8U
#define GPIOC_PIN9 9U
-#define GPIOC_CS43L22_SCLK 10U
+#define GPIOC_PIN10 10U
#define GPIOC_PIN11 11U
-#define GPIOC_CS43L22_SDIN 12U
+#define GPIOC_PIN12 12U
#define GPIOC_PIN13 13U
-#define GPIOC_OSC32_IN 14U
-#define GPIOC_OSC32_OUT 15U
+#define GPIOC_PIN14 14U
+#define GPIOC_PIN15 15U
#define GPIOD_PIN0 0U
#define GPIOD_PIN1 1U
#define GPIOD_PIN2 2U
#define GPIOD_PIN3 3U
-#define GPIOD_CS43L22_RESET 4U
-#define GPIOD_OverCurrent 5U
+#define GPIOD_PIN4 4U
+#define GPIOD_PIN5 5U
#define GPIOD_PIN6 6U
#define GPIOD_PIN7 7U
#define GPIOD_PIN8 8U
#define GPIOD_PIN9 9U
#define GPIOD_PIN10 10U
#define GPIOD_PIN11 11U
-#define GPIOD_LED4 12U
-#define GPIOD_LED3 13U
-#define GPIOD_LED5 14U
-#define GPIOD_LED6 15U
+#define GPIOD_PIN12 12U
+#define GPIOD_PIN13 13U
+#define GPIOD_PIN14 14U
+#define GPIOD_PIN15 15U
-#define GPIOE_L3GD20_INT1 0U
-#define GPIOE_L3GD20_INT2 1U
-#define GPIOE_LSM303DLHC_DRDY 2U
-#define GPIOE_L3GD20_CS 3U
-#define GPIOE_LSM303DLHC_INT1 4U
-#define GPIOE_LSM303DLHC_INT2 5U
+#define GPIOE_PIN0 0U
+#define GPIOE_PIN1 1U
+#define GPIOE_PIN2 2U
+#define GPIOE_PIN3 3U
+#define GPIOE_PIN4 4U
+#define GPIOE_PIN5 5U
#define GPIOE_PIN6 6U
#define GPIOE_PIN7 7U
#define GPIOE_PIN8 8U
@@ -183,8 +182,8 @@
#define GPIOG_PIN14 14U
#define GPIOG_PIN15 15U
-#define GPIOH_OSC_IN 0U
-#define GPIOH_OSC_OUT 1U
+#define GPIOH_PIN0 0U
+#define GPIOH_PIN1 1U
#define GPIOH_PIN2 2U
#define GPIOH_PIN3 3U
#define GPIOH_PIN4 4U
@@ -220,11 +219,6 @@
/*
* IO lines assignments.
*/
-#define LINE_BUTTON PAL_LINE(GPIOA, 0U)
-#define LINE_CS43L22_LRCK PAL_LINE(GPIOA, 4U)
-#define LINE_L3GD20_SCL PAL_LINE(GPIOA, 5U)
-#define LINE_L3GD20_SD0 PAL_LINE(GPIOA, 6U)
-#define LINE_L3GD20_SDI PAL_LINE(GPIOA, 7U)
#define LINE_VBUS_FS PAL_LINE(GPIOA, 9U)
#define LINE_OTG_FS_ID PAL_LINE(GPIOA, 10U)
#define LINE_OTG_FS_DM PAL_LINE(GPIOA, 11U)
@@ -232,29 +226,9 @@
#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
#define LINE_SWO PAL_LINE(GPIOB, 3U)
-#define LINE_LSM303DLHC_SCL PAL_LINE(GPIOB, 6U)
-#define LINE_LSM303DLHC_SDA PAL_LINE(GPIOB, 9U)
-#define LINE_MP45DT02_CLK_IN PAL_LINE(GPIOB, 10U)
#define LINE_OTG_FS_POWER_ON PAL_LINE(GPIOC, 0U)
-#define LINE_CS43L22_AIN4x PAL_LINE(GPIOC, 3U)
-#define LINE_MP45DT02_PDM_OUT PAL_LINE(GPIOC, 3U)
-#define LINE_CS43L22_MCLK PAL_LINE(GPIOC, 7U)
-#define LINE_CS43L22_SCLK PAL_LINE(GPIOC, 10U)
-#define LINE_CS43L22_SDIN PAL_LINE(GPIOC, 12U)
#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
-#define LINE_CS43L22_RESET PAL_LINE(GPIOD, 4U)
-#define LINE_OverCurrent PAL_LINE(GPIOD, 5U)
-#define LINE_LED4 PAL_LINE(GPIOD, 12U)
-#define LINE_LED3 PAL_LINE(GPIOD, 13U)
-#define LINE_LED5 PAL_LINE(GPIOD, 14U)
-#define LINE_LED6 PAL_LINE(GPIOD, 15U)
-#define LINE_L3GD20_INT1 PAL_LINE(GPIOE, 0U)
-#define LINE_L3GD20_INT2 PAL_LINE(GPIOE, 1U)
-#define LINE_LSM303DLHC_DRDY PAL_LINE(GPIOE, 2U)
-#define LINE_L3GD20_CS PAL_LINE(GPIOE, 3U)
-#define LINE_LSM303DLHC_INT1 PAL_LINE(GPIOE, 4U)
-#define LINE_LSM303DLHC_INT2 PAL_LINE(GPIOE, 5U)
#define LINE_OSC_IN PAL_LINE(GPIOH, 0U)
#define LINE_OSC_OUT PAL_LINE(GPIOH, 1U)
@@ -299,118 +273,118 @@
/*
* GPIOA setup:
*
- * PA0 - BUTTON (input floating).
+ * PA0 - PIN0 (input pullup).
* PA1 - PIN1 (input pullup).
* PA2 - PIN2 (input pullup).
* PA3 - PIN3 (input pullup).
- * PA4 - CS43L22_LRCK (alternate 6).
- * PA5 - L3GD20_SCL (alternate 5).
- * PA6 - L3GD20_SD0 (alternate 5).
- * PA7 - L3GD20_SDI (alternate 5).
- * PA8 - LED (output pushpull maximum).
+ * PA4 - PIN4 (input pullup).
+ * PA5 - PIN5 (input pullup).
+ * PA6 - PIN6 (input pullup).
+ * PA7 - PIN7 (input pullup).
+ * PA8 - LED0 (output pushpull low).
* PA9 - VBUS_FS (input floating).
* PA10 - OTG_FS_ID (alternate 10).
* PA11 - OTG_FS_DM (alternate 10).
* PA12 - OTG_FS_DP (alternate 10).
- * PA13 - SWDIO (alternate 0).
- * PA14 - SWCLK (alternate 0).
+ * PA13 - PIN13 (input pullup).
+ * PA14 - PIN14 (input pullup).
* PA15 - PIN15 (input pullup).
*/
-#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \
+#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_PIN0) | \
PIN_MODE_INPUT(GPIOA_PIN1) | \
PIN_MODE_INPUT(GPIOA_PIN2) | \
PIN_MODE_INPUT(GPIOA_PIN3) | \
- PIN_MODE_ALTERNATE(GPIOA_CS43L22_LRCK) |\
- PIN_MODE_ALTERNATE(GPIOA_L3GD20_SCL) | \
- PIN_MODE_ALTERNATE(GPIOA_L3GD20_SD0) | \
- PIN_MODE_ALTERNATE(GPIOA_L3GD20_SDI) | \
- PIN_MODE_OUTPUT(GPIOA_LED)| \
+ PIN_MODE_INPUT(GPIOA_PIN4) | \
+ PIN_MODE_INPUT(GPIOA_PIN5) | \
+ PIN_MODE_INPUT(GPIOA_PIN6) | \
+ PIN_MODE_INPUT(GPIOA_PIN7) | \
+ PIN_MODE_OUTPUT(GPIOA_LED0) | \
PIN_MODE_INPUT(GPIOA_VBUS_FS) | \
PIN_MODE_ALTERNATE(GPIOA_OTG_FS_ID) | \
PIN_MODE_ALTERNATE(GPIOA_OTG_FS_DM) | \
PIN_MODE_ALTERNATE(GPIOA_OTG_FS_DP) | \
- PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \
- PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \
+ PIN_MODE_INPUT(GPIOA_PIN13) | \
+ PIN_MODE_INPUT(GPIOA_PIN14) | \
PIN_MODE_INPUT(GPIOA_PIN15))
-#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \
+#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOA_CS43L22_LRCK) |\
- PIN_OTYPE_PUSHPULL(GPIOA_L3GD20_SCL) | \
- PIN_OTYPE_PUSHPULL(GPIOA_L3GD20_SD0) | \
- PIN_OTYPE_PUSHPULL(GPIOA_L3GD20_SDI) | \
- PIN_OTYPE_PUSHPULL(GPIOA_LED) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_LED0) | \
PIN_OTYPE_PUSHPULL(GPIOA_VBUS_FS) | \
PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_ID) | \
PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DM) | \
PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DP) | \
- PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \
- PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_PIN13) | \
+ PIN_OTYPE_PUSHPULL(GPIOA_PIN14) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
-#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_HIGH(GPIOA_BUTTON) | \
+#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_HIGH(GPIOA_PIN0) | \
PIN_OSPEED_HIGH(GPIOA_PIN1) | \
PIN_OSPEED_HIGH(GPIOA_PIN2) | \
PIN_OSPEED_HIGH(GPIOA_PIN3) | \
- PIN_OSPEED_HIGH(GPIOA_CS43L22_LRCK) | \
- PIN_OSPEED_HIGH(GPIOA_L3GD20_SCL) | \
- PIN_OSPEED_HIGH(GPIOA_L3GD20_SD0) | \
- PIN_OSPEED_HIGH(GPIOA_L3GD20_SDI) | \
- PIN_OSPEED_HIGH(GPIOA_LED) | \
+ PIN_OSPEED_HIGH(GPIOA_PIN4) | \
+ PIN_OSPEED_HIGH(GPIOA_PIN5) | \
+ PIN_OSPEED_HIGH(GPIOA_PIN6) | \
+ PIN_OSPEED_HIGH(GPIOA_PIN7) | \
+ PIN_OSPEED_HIGH(GPIOA_LED0) | \
PIN_OSPEED_HIGH(GPIOA_VBUS_FS) | \
PIN_OSPEED_HIGH(GPIOA_OTG_FS_ID) | \
PIN_OSPEED_HIGH(GPIOA_OTG_FS_DM) | \
PIN_OSPEED_HIGH(GPIOA_OTG_FS_DP) | \
- PIN_OSPEED_HIGH(GPIOA_SWDIO) | \
- PIN_OSPEED_HIGH(GPIOA_SWCLK) | \
+ PIN_OSPEED_HIGH(GPIOA_PIN13) | \
+ PIN_OSPEED_HIGH(GPIOA_PIN14) | \
PIN_OSPEED_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \
+#define VAL_GPIOA_PUPDR (PIN_PUPDR_PULLUP(GPIOA_PIN0) | \
PIN_PUPDR_PULLUP(GPIOA_PIN1) | \
PIN_PUPDR_PULLUP(GPIOA_PIN2) | \
PIN_PUPDR_PULLUP(GPIOA_PIN3) | \
- PIN_PUPDR_FLOATING(GPIOA_CS43L22_LRCK) |\
- PIN_PUPDR_FLOATING(GPIOA_L3GD20_SCL) | \
- PIN_PUPDR_PULLUP(GPIOA_L3GD20_SD0) | \
- PIN_PUPDR_PULLUP(GPIOA_L3GD20_SDI) | \
- PIN_PUPDR_FLOATING(GPIOA_LED) | \
+ PIN_PUPDR_PULLUP(GPIOA_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOA_PIN5) | \
+ PIN_PUPDR_PULLUP(GPIOA_PIN6) | \
+ PIN_PUPDR_PULLUP(GPIOA_PIN7) | \
+ PIN_PUPDR_FLOATING(GPIOA_LED0) | \
PIN_PUPDR_FLOATING(GPIOA_VBUS_FS) | \
PIN_PUPDR_FLOATING(GPIOA_OTG_FS_ID) | \
PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DM) | \
PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DP) | \
- PIN_PUPDR_FLOATING(GPIOA_SWDIO) | \
- PIN_PUPDR_FLOATING(GPIOA_SWCLK) | \
+ PIN_PUPDR_PULLUP(GPIOA_PIN13) | \
+ PIN_PUPDR_PULLUP(GPIOA_PIN14) | \
PIN_PUPDR_PULLUP(GPIOA_PIN15))
-#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \
+#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_PIN0) | \
PIN_ODR_HIGH(GPIOA_PIN1) | \
PIN_ODR_HIGH(GPIOA_PIN2) | \
PIN_ODR_HIGH(GPIOA_PIN3) | \
- PIN_ODR_HIGH(GPIOA_CS43L22_LRCK) | \
- PIN_ODR_HIGH(GPIOA_L3GD20_SCL) | \
- PIN_ODR_HIGH(GPIOA_L3GD20_SD0) | \
- PIN_ODR_HIGH(GPIOA_L3GD20_SDI) | \
- PIN_ODR_LOW(GPIOA_LED) | \
+ PIN_ODR_HIGH(GPIOA_PIN4) | \
+ PIN_ODR_HIGH(GPIOA_PIN5) | \
+ PIN_ODR_HIGH(GPIOA_PIN6) | \
+ PIN_ODR_HIGH(GPIOA_PIN7) | \
+ PIN_ODR_LOW(GPIOA_LED0) | \
PIN_ODR_HIGH(GPIOA_VBUS_FS) | \
PIN_ODR_HIGH(GPIOA_OTG_FS_ID) | \
PIN_ODR_HIGH(GPIOA_OTG_FS_DM) | \
PIN_ODR_HIGH(GPIOA_OTG_FS_DP) | \
- PIN_ODR_HIGH(GPIOA_SWDIO) | \
- PIN_ODR_HIGH(GPIOA_SWCLK) | \
+ PIN_ODR_HIGH(GPIOA_PIN13) | \
+ PIN_ODR_HIGH(GPIOA_PIN14) | \
PIN_ODR_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \
+#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_PIN0, 0U) | \
PIN_AFIO_AF(GPIOA_PIN1, 0U) | \
PIN_AFIO_AF(GPIOA_PIN2, 0U) | \
PIN_AFIO_AF(GPIOA_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOA_CS43L22_LRCK, 6U) | \
- PIN_AFIO_AF(GPIOA_L3GD20_SCL, 5U) | \
- PIN_AFIO_AF(GPIOA_L3GD20_SD0, 5U) | \
- PIN_AFIO_AF(GPIOA_L3GD20_SDI, 5U))
-#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_LED, 0U) | \
+ PIN_AFIO_AF(GPIOA_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOA_PIN5, 0U) | \
+ PIN_AFIO_AF(GPIOA_PIN6, 0U) | \
+ PIN_AFIO_AF(GPIOA_PIN7, 0U))
+#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_LED0, 0U) | \
PIN_AFIO_AF(GPIOA_VBUS_FS, 0U) | \
PIN_AFIO_AF(GPIOA_OTG_FS_ID, 10U) | \
PIN_AFIO_AF(GPIOA_OTG_FS_DM, 10U) | \
PIN_AFIO_AF(GPIOA_OTG_FS_DP, 10U) | \
- PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \
- PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \
+ PIN_AFIO_AF(GPIOA_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOA_PIN14, 0U) | \
PIN_AFIO_AF(GPIOA_PIN15, 0U))
/*
@@ -419,14 +393,14 @@
* PB0 - PIN0 (input pullup).
* PB1 - PIN1 (input pullup).
* PB2 - PIN2 (input pullup).
- * PB3 - SWO (alternate 0).
+ * PB3 - PIN3 (input pullup).
* PB4 - PIN4 (input pullup).
* PB5 - PIN5 (input pullup).
- * PB6 - LSM303DLHC_SCL (alternate 4).
+ * PB6 - PIN6 (input pullup).
* PB7 - PIN7 (input pullup).
* PB8 - PIN8 (input pullup).
- * PB9 - LSM303DLHC_SDA (alternate 4).
- * PB10 - MP45DT02_CLK_IN (alternate 5).
+ * PB9 - PIN9 (input pullup).
+ * PB10 - PIN10 (input pullup).
* PB11 - PIN11 (input pullup).
* PB12 - PIN12 (input pullup).
* PB13 - PIN13 (input pullup).
@@ -436,14 +410,14 @@
#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
PIN_MODE_INPUT(GPIOB_PIN1) | \
PIN_MODE_INPUT(GPIOB_PIN2) | \
- PIN_MODE_ALTERNATE(GPIOB_SWO) | \
+ PIN_MODE_INPUT(GPIOB_PIN3) | \
PIN_MODE_INPUT(GPIOB_PIN4) | \
PIN_MODE_INPUT(GPIOB_PIN5) | \
- PIN_MODE_ALTERNATE(GPIOB_LSM303DLHC_SCL) |\
+ PIN_MODE_INPUT(GPIOB_PIN6) | \
PIN_MODE_INPUT(GPIOB_PIN7) | \
PIN_MODE_INPUT(GPIOB_PIN8) | \
- PIN_MODE_ALTERNATE(GPIOB_LSM303DLHC_SDA) |\
- PIN_MODE_ALTERNATE(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_MODE_INPUT(GPIOB_PIN9) | \
+ PIN_MODE_INPUT(GPIOB_PIN10) | \
PIN_MODE_INPUT(GPIOB_PIN11) | \
PIN_MODE_INPUT(GPIOB_PIN12) | \
PIN_MODE_INPUT(GPIOB_PIN13) | \
@@ -452,14 +426,14 @@
#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOB_SWO) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOB_LSM303DLHC_SCL) |\
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOB_LSM303DLHC_SDA) |\
- PIN_OTYPE_PUSHPULL(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \
+ PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN13) | \
@@ -468,14 +442,14 @@
#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_HIGH(GPIOB_PIN0) | \
PIN_OSPEED_HIGH(GPIOB_PIN1) | \
PIN_OSPEED_HIGH(GPIOB_PIN2) | \
- PIN_OSPEED_HIGH(GPIOB_SWO) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN3) | \
PIN_OSPEED_HIGH(GPIOB_PIN4) | \
PIN_OSPEED_HIGH(GPIOB_PIN5) | \
- PIN_OSPEED_HIGH(GPIOB_LSM303DLHC_SCL) |\
+ PIN_OSPEED_HIGH(GPIOB_PIN6) | \
PIN_OSPEED_HIGH(GPIOB_PIN7) | \
PIN_OSPEED_HIGH(GPIOB_PIN8) | \
- PIN_OSPEED_HIGH(GPIOB_LSM303DLHC_SDA) |\
- PIN_OSPEED_HIGH(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_OSPEED_HIGH(GPIOB_PIN9) | \
+ PIN_OSPEED_HIGH(GPIOB_PIN10) | \
PIN_OSPEED_HIGH(GPIOB_PIN11) | \
PIN_OSPEED_HIGH(GPIOB_PIN12) | \
PIN_OSPEED_HIGH(GPIOB_PIN13) | \
@@ -484,14 +458,14 @@
#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOB_SWO) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN3) | \
PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
- PIN_PUPDR_FLOATING(GPIOB_LSM303DLHC_SCL) |\
+ PIN_PUPDR_PULLUP(GPIOB_PIN6) | \
PIN_PUPDR_PULLUP(GPIOB_PIN7) | \
PIN_PUPDR_PULLUP(GPIOB_PIN8) | \
- PIN_PUPDR_FLOATING(GPIOB_LSM303DLHC_SDA) |\
- PIN_PUPDR_FLOATING(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_PUPDR_PULLUP(GPIOB_PIN9) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN10) | \
PIN_PUPDR_PULLUP(GPIOB_PIN11) | \
PIN_PUPDR_PULLUP(GPIOB_PIN12) | \
PIN_PUPDR_PULLUP(GPIOB_PIN13) | \
@@ -500,14 +474,14 @@
#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \
PIN_ODR_HIGH(GPIOB_PIN1) | \
PIN_ODR_HIGH(GPIOB_PIN2) | \
- PIN_ODR_HIGH(GPIOB_SWO) | \
+ PIN_ODR_HIGH(GPIOB_PIN3) | \
PIN_ODR_HIGH(GPIOB_PIN4) | \
PIN_ODR_HIGH(GPIOB_PIN5) | \
- PIN_ODR_HIGH(GPIOB_LSM303DLHC_SCL) | \
+ PIN_ODR_HIGH(GPIOB_PIN6) | \
PIN_ODR_HIGH(GPIOB_PIN7) | \
PIN_ODR_HIGH(GPIOB_PIN8) | \
- PIN_ODR_HIGH(GPIOB_LSM303DLHC_SDA) | \
- PIN_ODR_HIGH(GPIOB_MP45DT02_CLK_IN) | \
+ PIN_ODR_HIGH(GPIOB_PIN9) | \
+ PIN_ODR_HIGH(GPIOB_PIN10) | \
PIN_ODR_HIGH(GPIOB_PIN11) | \
PIN_ODR_HIGH(GPIOB_PIN12) | \
PIN_ODR_HIGH(GPIOB_PIN13) | \
@@ -516,14 +490,14 @@
#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \
PIN_AFIO_AF(GPIOB_PIN1, 0U) | \
PIN_AFIO_AF(GPIOB_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOB_SWO, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN3, 0U) | \
PIN_AFIO_AF(GPIOB_PIN4, 0U) | \
PIN_AFIO_AF(GPIOB_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOB_LSM303DLHC_SCL, 4U) |\
+ PIN_AFIO_AF(GPIOB_PIN6, 0U) | \
PIN_AFIO_AF(GPIOB_PIN7, 0U))
#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOB_LSM303DLHC_SDA, 4U) |\
- PIN_AFIO_AF(GPIOB_MP45DT02_CLK_IN, 5U) |\
+ PIN_AFIO_AF(GPIOB_PIN9, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN10, 0U) | \
PIN_AFIO_AF(GPIOB_PIN11, 0U) | \
PIN_AFIO_AF(GPIOB_PIN12, 0U) | \
PIN_AFIO_AF(GPIOB_PIN13, 0U) | \
@@ -533,119 +507,119 @@
/*
* GPIOC setup:
*
- * PC0 - OTG_FS_POWER_ON (output pushpull maximum).
+ * PC0 - PIN0 (input pullup).
* PC1 - PIN1 (input pullup).
* PC2 - PIN2 (input pullup).
- * PC3 - CS43L22_AIN4x MP45DT02_PDM_OUT(alternate 5).
+ * PC3 - PIN3 (input pullup).
* PC4 - PIN4 (input pullup).
* PC5 - PIN5 (input pullup).
* PC6 - PIN6 (input pullup).
- * PC7 - CS43L22_MCLK (alternate 6).
+ * PC7 - PIN7 (input pullup).
* PC8 - PIN8 (input pullup).
* PC9 - PIN9 (input pullup).
- * PC10 - CS43L22_SCLK (alternate 6).
+ * PC10 - PIN10 (input pullup).
* PC11 - PIN11 (input pullup).
- * PC12 - CS43L22_SDIN (alternate 6).
+ * PC12 - PIN12 (input pullup).
* PC13 - PIN13 (input pullup).
- * PC14 - OSC32_IN (input floating).
- * PC15 - OSC32_OUT (input floating).
+ * PC14 - PIN14 (input pullup).
+ * PC15 - PIN15 (input pullup).
*/
-#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_OTG_FS_POWER_ON) |\
+#define VAL_GPIOC_MODER (PIN_MODE_INPUT(GPIOC_PIN0) | \
PIN_MODE_INPUT(GPIOC_PIN1) | \
PIN_MODE_INPUT(GPIOC_PIN2) | \
- PIN_MODE_ALTERNATE(GPIOC_CS43L22_AIN4x) |\
+ PIN_MODE_INPUT(GPIOC_PIN3) | \
PIN_MODE_INPUT(GPIOC_PIN4) | \
PIN_MODE_INPUT(GPIOC_PIN5) | \
PIN_MODE_INPUT(GPIOC_PIN6) | \
- PIN_MODE_ALTERNATE(GPIOC_CS43L22_MCLK) |\
+ PIN_MODE_INPUT(GPIOC_PIN7) | \
PIN_MODE_INPUT(GPIOC_PIN8) | \
PIN_MODE_INPUT(GPIOC_PIN9) | \
- PIN_MODE_ALTERNATE(GPIOC_CS43L22_SCLK) |\
+ PIN_MODE_INPUT(GPIOC_PIN10) | \
PIN_MODE_INPUT(GPIOC_PIN11) | \
- PIN_MODE_ALTERNATE(GPIOC_CS43L22_SDIN) |\
+ PIN_MODE_INPUT(GPIOC_PIN12) | \
PIN_MODE_INPUT(GPIOC_PIN13) | \
- PIN_MODE_INPUT(GPIOC_OSC32_IN) | \
- PIN_MODE_INPUT(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_OTG_FS_POWER_ON) |\
+ PIN_MODE_INPUT(GPIOC_PIN14) | \
+ PIN_MODE_INPUT(GPIOC_PIN15))
+#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOC_CS43L22_AIN4x) |\
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \
PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \
PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \
PIN_OTYPE_PUSHPULL(GPIOC_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOC_CS43L22_MCLK) |\
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN7) | \
PIN_OTYPE_PUSHPULL(GPIOC_PIN8) | \
PIN_OTYPE_PUSHPULL(GPIOC_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOC_CS43L22_SCLK) |\
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \
PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOC_CS43L22_SDIN) |\
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \
PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \
- PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_OTG_FS_POWER_ON) |\
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN14) | \
+ PIN_OTYPE_PUSHPULL(GPIOC_PIN15))
+#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_PIN0) | \
PIN_OSPEED_HIGH(GPIOC_PIN1) | \
PIN_OSPEED_HIGH(GPIOC_PIN2) | \
- PIN_OSPEED_HIGH(GPIOC_CS43L22_AIN4x) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN3) | \
PIN_OSPEED_HIGH(GPIOC_PIN4) | \
PIN_OSPEED_HIGH(GPIOC_PIN5) | \
PIN_OSPEED_HIGH(GPIOC_PIN6) | \
- PIN_OSPEED_HIGH(GPIOC_CS43L22_MCLK) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN7) | \
PIN_OSPEED_HIGH(GPIOC_PIN8) | \
PIN_OSPEED_HIGH(GPIOC_PIN9) | \
- PIN_OSPEED_HIGH(GPIOC_CS43L22_SCLK) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN10) | \
PIN_OSPEED_HIGH(GPIOC_PIN11) | \
- PIN_OSPEED_HIGH(GPIOC_CS43L22_SDIN) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN12) | \
PIN_OSPEED_HIGH(GPIOC_PIN13) | \
- PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \
- PIN_OSPEED_HIGH(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLUP(GPIOC_OTG_FS_POWER_ON) |\
+ PIN_OSPEED_HIGH(GPIOC_PIN14) | \
+ PIN_OSPEED_HIGH(GPIOC_PIN15))
+#define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLUP(GPIOC_PIN0) | \
PIN_PUPDR_PULLUP(GPIOC_PIN1) | \
PIN_PUPDR_PULLUP(GPIOC_PIN2) | \
- PIN_PUPDR_FLOATING(GPIOC_CS43L22_AIN4x) |\
+ PIN_PUPDR_PULLUP(GPIOC_PIN3) | \
PIN_PUPDR_PULLUP(GPIOC_PIN4) | \
PIN_PUPDR_PULLUP(GPIOC_PIN5) | \
PIN_PUPDR_PULLUP(GPIOC_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOC_CS43L22_MCLK) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN7) | \
PIN_PUPDR_PULLUP(GPIOC_PIN8) | \
PIN_PUPDR_PULLUP(GPIOC_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOC_CS43L22_SCLK) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN10) | \
PIN_PUPDR_PULLUP(GPIOC_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOC_CS43L22_SDIN) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN12) | \
PIN_PUPDR_PULLUP(GPIOC_PIN13) | \
- PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \
- PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_OTG_FS_POWER_ON) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN14) | \
+ PIN_PUPDR_PULLUP(GPIOC_PIN15))
+#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_PIN0) | \
PIN_ODR_HIGH(GPIOC_PIN1) | \
PIN_ODR_HIGH(GPIOC_PIN2) | \
- PIN_ODR_HIGH(GPIOC_CS43L22_AIN4x) | \
+ PIN_ODR_HIGH(GPIOC_PIN3) | \
PIN_ODR_HIGH(GPIOC_PIN4) | \
PIN_ODR_HIGH(GPIOC_PIN5) | \
PIN_ODR_HIGH(GPIOC_PIN6) | \
- PIN_ODR_HIGH(GPIOC_CS43L22_MCLK) | \
+ PIN_ODR_HIGH(GPIOC_PIN7) | \
PIN_ODR_HIGH(GPIOC_PIN8) | \
PIN_ODR_HIGH(GPIOC_PIN9) | \
- PIN_ODR_HIGH(GPIOC_CS43L22_SCLK) | \
+ PIN_ODR_HIGH(GPIOC_PIN10) | \
PIN_ODR_HIGH(GPIOC_PIN11) | \
- PIN_ODR_HIGH(GPIOC_CS43L22_SDIN) | \
+ PIN_ODR_HIGH(GPIOC_PIN12) | \
PIN_ODR_HIGH(GPIOC_PIN13) | \
- PIN_ODR_HIGH(GPIOC_OSC32_IN) | \
- PIN_ODR_HIGH(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_OTG_FS_POWER_ON, 0U) |\
+ PIN_ODR_HIGH(GPIOC_PIN14) | \
+ PIN_ODR_HIGH(GPIOC_PIN15))
+#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_PIN0, 0U) | \
PIN_AFIO_AF(GPIOC_PIN1, 0U) | \
PIN_AFIO_AF(GPIOC_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOC_CS43L22_AIN4x, 5U) | \
+ PIN_AFIO_AF(GPIOC_PIN3, 0U) | \
PIN_AFIO_AF(GPIOC_PIN4, 0U) | \
PIN_AFIO_AF(GPIOC_PIN5, 0U) | \
PIN_AFIO_AF(GPIOC_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOC_CS43L22_MCLK, 6U))
+ PIN_AFIO_AF(GPIOC_PIN7, 0U))
#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_PIN8, 0U) | \
PIN_AFIO_AF(GPIOC_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOC_CS43L22_SCLK, 6U) | \
+ PIN_AFIO_AF(GPIOC_PIN10, 0U) | \
PIN_AFIO_AF(GPIOC_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOC_CS43L22_SDIN, 6U) | \
+ PIN_AFIO_AF(GPIOC_PIN12, 0U) | \
PIN_AFIO_AF(GPIOC_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \
- PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U))
+ PIN_AFIO_AF(GPIOC_PIN14, 0U) | \
+ PIN_AFIO_AF(GPIOC_PIN15, 0U))
/*
* GPIOD setup:
@@ -654,125 +628,125 @@
* PD1 - PIN1 (input pullup).
* PD2 - PIN2 (input pullup).
* PD3 - PIN3 (input pullup).
- * PD4 - CS43L22_RESET (output pushpull maximum).
- * PD5 - OverCurrent (input floating).
+ * PD4 - PIN4 (input pullup).
+ * PD5 - PIN5 (input pullup).
* PD6 - PIN6 (input pullup).
* PD7 - PIN7 (input pullup).
* PD8 - PIN8 (input pullup).
* PD9 - PIN9 (input pullup).
* PD10 - PIN10 (input pullup).
* PD11 - PIN11 (input pullup).
- * PD12 - LED4 (output pushpull maximum).
- * PD13 - LED3 (output pushpull maximum).
- * PD14 - LED5 (output pushpull maximum).
- * PD15 - LED6 (output pushpull maximum).
+ * PD12 - PIN12 (input pullup).
+ * PD13 - PIN13 (input pullup).
+ * PD14 - PIN14 (input pullup).
+ * PD15 - PIN15 (input pullup).
*/
#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \
PIN_MODE_INPUT(GPIOD_PIN1) | \
PIN_MODE_INPUT(GPIOD_PIN2) | \
PIN_MODE_INPUT(GPIOD_PIN3) | \
- PIN_MODE_OUTPUT(GPIOD_CS43L22_RESET) | \
- PIN_MODE_INPUT(GPIOD_OverCurrent) | \
+ PIN_MODE_INPUT(GPIOD_PIN4) | \
+ PIN_MODE_INPUT(GPIOD_PIN5) | \
PIN_MODE_INPUT(GPIOD_PIN6) | \
PIN_MODE_INPUT(GPIOD_PIN7) | \
PIN_MODE_INPUT(GPIOD_PIN8) | \
PIN_MODE_INPUT(GPIOD_PIN9) | \
PIN_MODE_INPUT(GPIOD_PIN10) | \
PIN_MODE_INPUT(GPIOD_PIN11) | \
- PIN_MODE_OUTPUT(GPIOD_LED4) | \
- PIN_MODE_OUTPUT(GPIOD_LED3) | \
- PIN_MODE_OUTPUT(GPIOD_LED5) | \
- PIN_MODE_OUTPUT(GPIOD_LED6))
+ PIN_MODE_INPUT(GPIOD_PIN12) | \
+ PIN_MODE_INPUT(GPIOD_PIN13) | \
+ PIN_MODE_INPUT(GPIOD_PIN14) | \
+ PIN_MODE_INPUT(GPIOD_PIN15))
#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \
PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOD_CS43L22_RESET) |\
- PIN_OTYPE_PUSHPULL(GPIOD_OverCurrent) |\
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \
PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \
PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \
PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \
PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \
PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \
PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOD_LED4) | \
- PIN_OTYPE_PUSHPULL(GPIOD_LED3) | \
- PIN_OTYPE_PUSHPULL(GPIOD_LED5) | \
- PIN_OTYPE_PUSHPULL(GPIOD_LED6))
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \
+ PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_HIGH(GPIOD_PIN0) | \
PIN_OSPEED_HIGH(GPIOD_PIN1) | \
PIN_OSPEED_HIGH(GPIOD_PIN2) | \
PIN_OSPEED_HIGH(GPIOD_PIN3) | \
- PIN_OSPEED_HIGH(GPIOD_CS43L22_RESET) | \
- PIN_OSPEED_HIGH(GPIOD_OverCurrent) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN4) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN5) | \
PIN_OSPEED_HIGH(GPIOD_PIN6) | \
PIN_OSPEED_HIGH(GPIOD_PIN7) | \
PIN_OSPEED_HIGH(GPIOD_PIN8) | \
PIN_OSPEED_HIGH(GPIOD_PIN9) | \
PIN_OSPEED_HIGH(GPIOD_PIN10) | \
PIN_OSPEED_HIGH(GPIOD_PIN11) | \
- PIN_OSPEED_HIGH(GPIOD_LED4) | \
- PIN_OSPEED_HIGH(GPIOD_LED3) | \
- PIN_OSPEED_HIGH(GPIOD_LED5) | \
- PIN_OSPEED_HIGH(GPIOD_LED6))
+ PIN_OSPEED_HIGH(GPIOD_PIN12) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN13) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN14) | \
+ PIN_OSPEED_HIGH(GPIOD_PIN15))
#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \
PIN_PUPDR_PULLUP(GPIOD_PIN1) | \
PIN_PUPDR_PULLUP(GPIOD_PIN2) | \
PIN_PUPDR_PULLUP(GPIOD_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOD_CS43L22_RESET) |\
- PIN_PUPDR_FLOATING(GPIOD_OverCurrent) |\
+ PIN_PUPDR_PULLUP(GPIOD_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN5) | \
PIN_PUPDR_PULLUP(GPIOD_PIN6) | \
PIN_PUPDR_PULLUP(GPIOD_PIN7) | \
PIN_PUPDR_PULLUP(GPIOD_PIN8) | \
PIN_PUPDR_PULLUP(GPIOD_PIN9) | \
PIN_PUPDR_PULLUP(GPIOD_PIN10) | \
PIN_PUPDR_PULLUP(GPIOD_PIN11) | \
- PIN_PUPDR_FLOATING(GPIOD_LED4) | \
- PIN_PUPDR_FLOATING(GPIOD_LED3) | \
- PIN_PUPDR_FLOATING(GPIOD_LED5) | \
- PIN_PUPDR_FLOATING(GPIOD_LED6))
+ PIN_PUPDR_PULLUP(GPIOD_PIN12) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN13) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN14) | \
+ PIN_PUPDR_PULLUP(GPIOD_PIN15))
#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \
PIN_ODR_HIGH(GPIOD_PIN1) | \
PIN_ODR_HIGH(GPIOD_PIN2) | \
PIN_ODR_HIGH(GPIOD_PIN3) | \
- PIN_ODR_HIGH(GPIOD_CS43L22_RESET) | \
- PIN_ODR_HIGH(GPIOD_OverCurrent) | \
+ PIN_ODR_HIGH(GPIOD_PIN4) | \
+ PIN_ODR_HIGH(GPIOD_PIN5) | \
PIN_ODR_HIGH(GPIOD_PIN6) | \
PIN_ODR_HIGH(GPIOD_PIN7) | \
PIN_ODR_HIGH(GPIOD_PIN8) | \
PIN_ODR_HIGH(GPIOD_PIN9) | \
PIN_ODR_HIGH(GPIOD_PIN10) | \
PIN_ODR_HIGH(GPIOD_PIN11) | \
- PIN_ODR_LOW(GPIOD_LED4) | \
- PIN_ODR_LOW(GPIOD_LED3) | \
- PIN_ODR_LOW(GPIOD_LED5) | \
- PIN_ODR_LOW(GPIOD_LED6))
+ PIN_ODR_HIGH(GPIOD_PIN12) | \
+ PIN_ODR_HIGH(GPIOD_PIN13) | \
+ PIN_ODR_HIGH(GPIOD_PIN14) | \
+ PIN_ODR_HIGH(GPIOD_PIN15))
#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \
PIN_AFIO_AF(GPIOD_PIN1, 0U) | \
PIN_AFIO_AF(GPIOD_PIN2, 0U) | \
PIN_AFIO_AF(GPIOD_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOD_CS43L22_RESET, 0U) | \
- PIN_AFIO_AF(GPIOD_OverCurrent, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN5, 0U) | \
PIN_AFIO_AF(GPIOD_PIN6, 0U) | \
PIN_AFIO_AF(GPIOD_PIN7, 0U))
#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \
PIN_AFIO_AF(GPIOD_PIN9, 0U) | \
PIN_AFIO_AF(GPIOD_PIN10, 0U) | \
PIN_AFIO_AF(GPIOD_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOD_LED4, 0U) | \
- PIN_AFIO_AF(GPIOD_LED3, 0U) | \
- PIN_AFIO_AF(GPIOD_LED5, 0U) | \
- PIN_AFIO_AF(GPIOD_LED6, 0U))
+ PIN_AFIO_AF(GPIOD_PIN12, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN14, 0U) | \
+ PIN_AFIO_AF(GPIOD_PIN15, 0U))
/*
* GPIOE setup:
*
- * PE0 - L3GD20_INT1 (input pullup).
- * PE1 - L3GD20_INT2 (input pullup).
- * PE2 - LSM303DLHC_DRDY (input floating).
- * PE3 - L3GD20_CS (output pushpull maximum).
- * PE4 - LSM303DLHC_INT1 (output pushpull maximum).
- * PE5 - LSM303DLHC_INT2 (output pushpull maximum).
+ * PE0 - PIN0 (input pullup).
+ * PE1 - PIN1 (input pullup).
+ * PE2 - PIN2 (input pullup).
+ * PE3 - PIN3 (input pullup).
+ * PE4 - PIN4 (input pullup).
+ * PE5 - PIN5 (input pullup).
* PE6 - PIN6 (input pullup).
* PE7 - PIN7 (input pullup).
* PE8 - PIN8 (input pullup).
@@ -784,12 +758,12 @@
* PE14 - PIN14 (input pullup).
* PE15 - PIN15 (input pullup).
*/
-#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_L3GD20_INT1) | \
- PIN_MODE_INPUT(GPIOE_L3GD20_INT2) | \
- PIN_MODE_INPUT(GPIOE_LSM303DLHC_DRDY) |\
- PIN_MODE_OUTPUT(GPIOE_L3GD20_CS) | \
- PIN_MODE_OUTPUT(GPIOE_LSM303DLHC_INT1) |\
- PIN_MODE_OUTPUT(GPIOE_LSM303DLHC_INT2) |\
+#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \
+ PIN_MODE_INPUT(GPIOE_PIN1) | \
+ PIN_MODE_INPUT(GPIOE_PIN2) | \
+ PIN_MODE_INPUT(GPIOE_PIN3) | \
+ PIN_MODE_INPUT(GPIOE_PIN4) | \
+ PIN_MODE_INPUT(GPIOE_PIN5) | \
PIN_MODE_INPUT(GPIOE_PIN6) | \
PIN_MODE_INPUT(GPIOE_PIN7) | \
PIN_MODE_INPUT(GPIOE_PIN8) | \
@@ -800,12 +774,12 @@
PIN_MODE_INPUT(GPIOE_PIN13) | \
PIN_MODE_INPUT(GPIOE_PIN14) | \
PIN_MODE_INPUT(GPIOE_PIN15))
-#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_L3GD20_INT1) |\
- PIN_OTYPE_PUSHPULL(GPIOE_L3GD20_INT2) |\
- PIN_OTYPE_PUSHPULL(GPIOE_LSM303DLHC_DRDY) |\
- PIN_OTYPE_PUSHPULL(GPIOE_L3GD20_CS) | \
- PIN_OTYPE_PUSHPULL(GPIOE_LSM303DLHC_INT1) |\
- PIN_OTYPE_PUSHPULL(GPIOE_LSM303DLHC_INT2) |\
+#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \
+ PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \
PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \
PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \
PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \
@@ -816,12 +790,12 @@
PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \
PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \
PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
-#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_HIGH(GPIOE_L3GD20_INT1) | \
- PIN_OSPEED_HIGH(GPIOE_L3GD20_INT2) | \
- PIN_OSPEED_HIGH(GPIOE_LSM303DLHC_DRDY) |\
- PIN_OSPEED_HIGH(GPIOE_L3GD20_CS) | \
- PIN_OSPEED_HIGH(GPIOE_LSM303DLHC_INT1) |\
- PIN_OSPEED_HIGH(GPIOE_LSM303DLHC_INT2) |\
+#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_HIGH(GPIOE_PIN0) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN1) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN2) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN3) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN4) | \
+ PIN_OSPEED_HIGH(GPIOE_PIN5) | \
PIN_OSPEED_HIGH(GPIOE_PIN6) | \
PIN_OSPEED_HIGH(GPIOE_PIN7) | \
PIN_OSPEED_HIGH(GPIOE_PIN8) | \
@@ -832,12 +806,12 @@
PIN_OSPEED_HIGH(GPIOE_PIN13) | \
PIN_OSPEED_HIGH(GPIOE_PIN14) | \
PIN_OSPEED_HIGH(GPIOE_PIN15))
-#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_L3GD20_INT1) | \
- PIN_PUPDR_PULLUP(GPIOE_L3GD20_INT2) | \
- PIN_PUPDR_FLOATING(GPIOE_LSM303DLHC_DRDY) |\
- PIN_PUPDR_PULLUP(GPIOE_L3GD20_CS) | \
- PIN_PUPDR_PULLUP(GPIOE_LSM303DLHC_INT1) |\
- PIN_PUPDR_PULLUP(GPIOE_LSM303DLHC_INT2) |\
+#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN1) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN2) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN3) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOE_PIN5) | \
PIN_PUPDR_PULLUP(GPIOE_PIN6) | \
PIN_PUPDR_PULLUP(GPIOE_PIN7) | \
PIN_PUPDR_PULLUP(GPIOE_PIN8) | \
@@ -848,12 +822,12 @@
PIN_PUPDR_PULLUP(GPIOE_PIN13) | \
PIN_PUPDR_PULLUP(GPIOE_PIN14) | \
PIN_PUPDR_PULLUP(GPIOE_PIN15))
-#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_L3GD20_INT1) | \
- PIN_ODR_HIGH(GPIOE_L3GD20_INT2) | \
- PIN_ODR_HIGH(GPIOE_LSM303DLHC_DRDY) | \
- PIN_ODR_HIGH(GPIOE_L3GD20_CS) | \
- PIN_ODR_HIGH(GPIOE_LSM303DLHC_INT1) | \
- PIN_ODR_HIGH(GPIOE_LSM303DLHC_INT2) | \
+#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \
+ PIN_ODR_HIGH(GPIOE_PIN1) | \
+ PIN_ODR_HIGH(GPIOE_PIN2) | \
+ PIN_ODR_HIGH(GPIOE_PIN3) | \
+ PIN_ODR_HIGH(GPIOE_PIN4) | \
+ PIN_ODR_HIGH(GPIOE_PIN5) | \
PIN_ODR_HIGH(GPIOE_PIN6) | \
PIN_ODR_HIGH(GPIOE_PIN7) | \
PIN_ODR_HIGH(GPIOE_PIN8) | \
@@ -864,12 +838,12 @@
PIN_ODR_HIGH(GPIOE_PIN13) | \
PIN_ODR_HIGH(GPIOE_PIN14) | \
PIN_ODR_HIGH(GPIOE_PIN15))
-#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_L3GD20_INT1, 0U) | \
- PIN_AFIO_AF(GPIOE_L3GD20_INT2, 0U) | \
- PIN_AFIO_AF(GPIOE_LSM303DLHC_DRDY, 0U) |\
- PIN_AFIO_AF(GPIOE_L3GD20_CS, 0U) | \
- PIN_AFIO_AF(GPIOE_LSM303DLHC_INT1, 0U) |\
- PIN_AFIO_AF(GPIOE_LSM303DLHC_INT2, 0U) |\
+#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN1, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN3, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOE_PIN5, 0U) | \
PIN_AFIO_AF(GPIOE_PIN6, 0U) | \
PIN_AFIO_AF(GPIOE_PIN7, 0U))
#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \
@@ -1118,8 +1092,8 @@
/*
* GPIOH setup:
*
- * PH0 - OSC_IN (input floating).
- * PH1 - OSC_OUT (input floating).
+ * PH0 - PIN0 (input pullup).
+ * PH1 - PIN1 (input pullup).
* PH2 - PIN2 (input pullup).
* PH3 - PIN3 (input pullup).
* PH4 - PIN4 (input pullup).
@@ -1135,8 +1109,8 @@
* PH14 - PIN14 (input pullup).
* PH15 - PIN15 (input pullup).
*/
-#define VAL_GPIOH_MODER (PIN_MODE_INPUT(GPIOH_OSC_IN) | \
- PIN_MODE_INPUT(GPIOH_OSC_OUT) | \
+#define VAL_GPIOH_MODER (PIN_MODE_INPUT(GPIOH_PIN0) | \
+ PIN_MODE_INPUT(GPIOH_PIN1) | \
PIN_MODE_INPUT(GPIOH_PIN2) | \
PIN_MODE_INPUT(GPIOH_PIN3) | \
PIN_MODE_INPUT(GPIOH_PIN4) | \
@@ -1151,8 +1125,8 @@
PIN_MODE_INPUT(GPIOH_PIN13) | \
PIN_MODE_INPUT(GPIOH_PIN14) | \
PIN_MODE_INPUT(GPIOH_PIN15))
-#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(GPIOH_OSC_IN) | \
- PIN_OTYPE_PUSHPULL(GPIOH_OSC_OUT) | \
+#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(GPIOH_PIN0) | \
+ PIN_OTYPE_PUSHPULL(GPIOH_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOH_PIN2) | \
PIN_OTYPE_PUSHPULL(GPIOH_PIN3) | \
PIN_OTYPE_PUSHPULL(GPIOH_PIN4) | \
@@ -1167,8 +1141,8 @@
PIN_OTYPE_PUSHPULL(GPIOH_PIN13) | \
PIN_OTYPE_PUSHPULL(GPIOH_PIN14) | \
PIN_OTYPE_PUSHPULL(GPIOH_PIN15))
-#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_HIGH(GPIOH_OSC_IN) | \
- PIN_OSPEED_HIGH(GPIOH_OSC_OUT) | \
+#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_HIGH(GPIOH_PIN0) | \
+ PIN_OSPEED_HIGH(GPIOH_PIN1) | \
PIN_OSPEED_HIGH(GPIOH_PIN2) | \
PIN_OSPEED_HIGH(GPIOH_PIN3) | \
PIN_OSPEED_HIGH(GPIOH_PIN4) | \
@@ -1183,8 +1157,8 @@
PIN_OSPEED_HIGH(GPIOH_PIN13) | \
PIN_OSPEED_HIGH(GPIOH_PIN14) | \
PIN_OSPEED_HIGH(GPIOH_PIN15))
-#define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(GPIOH_OSC_IN) | \
- PIN_PUPDR_FLOATING(GPIOH_OSC_OUT) | \
+#define VAL_GPIOH_PUPDR (PIN_PUPDR_PULLUP(GPIOH_PIN0) | \
+ PIN_PUPDR_PULLUP(GPIOH_PIN1) | \
PIN_PUPDR_PULLUP(GPIOH_PIN2) | \
PIN_PUPDR_PULLUP(GPIOH_PIN3) | \
PIN_PUPDR_PULLUP(GPIOH_PIN4) | \
@@ -1199,8 +1173,8 @@
PIN_PUPDR_PULLUP(GPIOH_PIN13) | \
PIN_PUPDR_PULLUP(GPIOH_PIN14) | \
PIN_PUPDR_PULLUP(GPIOH_PIN15))
-#define VAL_GPIOH_ODR (PIN_ODR_HIGH(GPIOH_OSC_IN) | \
- PIN_ODR_HIGH(GPIOH_OSC_OUT) | \
+#define VAL_GPIOH_ODR (PIN_ODR_HIGH(GPIOH_PIN0) | \
+ PIN_ODR_HIGH(GPIOH_PIN1) | \
PIN_ODR_HIGH(GPIOH_PIN2) | \
PIN_ODR_HIGH(GPIOH_PIN3) | \
PIN_ODR_HIGH(GPIOH_PIN4) | \
@@ -1215,8 +1189,8 @@
PIN_ODR_HIGH(GPIOH_PIN13) | \
PIN_ODR_HIGH(GPIOH_PIN14) | \
PIN_ODR_HIGH(GPIOH_PIN15))
-#define VAL_GPIOH_AFRL (PIN_AFIO_AF(GPIOH_OSC_IN, 0U) | \
- PIN_AFIO_AF(GPIOH_OSC_OUT, 0U) | \
+#define VAL_GPIOH_AFRL (PIN_AFIO_AF(GPIOH_PIN0, 0U) | \
+ PIN_AFIO_AF(GPIOH_PIN1, 0U) | \
PIN_AFIO_AF(GPIOH_PIN2, 0U) | \
PIN_AFIO_AF(GPIOH_PIN3, 0U) | \
PIN_AFIO_AF(GPIOH_PIN4, 0U) | \
diff --git a/platforms/chibios/boards/STEMCELL/configs/halconf.h b/platforms/chibios/boards/STEMCELL/configs/halconf.h
index f7d9cf10c804..a82b898efa76 100644
--- a/platforms/chibios/boards/STEMCELL/configs/halconf.h
+++ b/platforms/chibios/boards/STEMCELL/configs/halconf.h
@@ -20,9 +20,10 @@
#define PAL_USE_WAIT TRUE
#define PAL_USE_CALLBACKS TRUE
-// #define HAL_USE_PWM TRUE
#define HAL_USE_I2C TRUE
#define HAL_USE_SERIAL TRUE
+// #define HAL_USE_PWM TRUE
+
#include_next
diff --git a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
index ddbaf725c2fc..5c17ffe20250 100644
--- a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
+++ b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
@@ -32,7 +32,7 @@
*/
#define STM32F4xx_MCUCONF
-#define STM32F401_MCUCONF
+#define STM32F411_MCUCONF
/*
* HAL driver system settings.
diff --git a/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk b/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
index 39578f67b742..c12dd0797b5e 100644
--- a/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
+++ b/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
@@ -1,6 +1,6 @@
# Proton C MCU settings for converting AVR projects
TARGET := $(TARGET)_stemcell
-MCU := STM32F401
+MCU := STM32F411
BOARD := STEMCELL
BOOTLOADER := tinyuf2
OPT_DEFS += -DCONVERT_TO_STEMCELL
diff --git a/platforms/chibios/pin_defs.h b/platforms/chibios/pin_defs.h
index 1fb0dc638844..19bc55223685 100644
--- a/platforms/chibios/pin_defs.h
+++ b/platforms/chibios/pin_defs.h
@@ -63,7 +63,6 @@
# ifndef SERIAL_USART_DRIVER
# define SERIAL_USART_DRIVER SD2
# endif
-// # define USART2_REMAP
# else
# define D3 PAL_LINE(GPIOA, 2)
# define D2 PAL_LINE(GPIOA, 3)
From 03ebd643d55fe56c1257601e0910bcd96e5ebfe2 Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Date: Tue, 8 Mar 2022 19:00:58 +0800
Subject: [PATCH 11/33] revert matrix_init_pin changes
---
builddefs/common_features.mk | 1 +
quantum/matrix.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index 3e92c46130ed..8d31f694a70c 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -213,6 +213,7 @@ else
# Automatically provided by avr-libc, nothing required
else ifeq ($(PLATFORM),CHIBIOS)
ifneq ($(filter STM32F3xx_% STM32F1xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
+ # Emulated EEPROM
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_FLASH_EMULATED
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
COMMON_VPATH += $(DRIVER_PATH)/flash
diff --git a/quantum/matrix.c b/quantum/matrix.c
index 815a0c3c62a0..db683104edaa 100644
--- a/quantum/matrix.c
+++ b/quantum/matrix.c
@@ -107,7 +107,7 @@ __attribute__((weak)) void matrix_init_pins(void) {
for (int row = 0; row < ROWS_PER_HAND; row++) {
for (int col = 0; col < MATRIX_COLS; col++) {
pin_t pin = direct_pins[row][col];
- if ((pin != NO_PIN) && (pin != 0)) {
+ if (pin != NO_PIN) {
setPinInputHigh(pin);
}
}
From f4935c9bbf1723f435d89aee82c756dee2cadd36 Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Date: Tue, 8 Mar 2022 19:28:32 +0800
Subject: [PATCH 12/33] Fix formatting issue
---
platforms/chibios/pin_defs.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/platforms/chibios/pin_defs.h b/platforms/chibios/pin_defs.h
index 19bc55223685..6717a5597c7d 100644
--- a/platforms/chibios/pin_defs.h
+++ b/platforms/chibios/pin_defs.h
@@ -60,9 +60,9 @@
# ifdef CONVERT_TO_STEMCELL_UART_SWAP
# define D3 PAL_LINE(GPIOA, 3)
# define D2 PAL_LINE(GPIOA, 2)
-# ifndef SERIAL_USART_DRIVER
-# define SERIAL_USART_DRIVER SD2
-# endif
+# ifndef SERIAL_USART_DRIVER
+# define SERIAL_USART_DRIVER SD2
+# endif
# else
# define D3 PAL_LINE(GPIOA, 2)
# define D2 PAL_LINE(GPIOA, 3)
@@ -101,9 +101,9 @@
# define D5 PAL_LINE(GPIOA, 8)
# define B0 PAL_LINE(GPIOA, 9) // unconnected pin
-# define I2C1_SCL_PIN D0
-# define I2C1_SDA_PIN D1
-# define FEE_PAGE_BASE_ADDRESS 0x08008000
+# define I2C1_SCL_PIN D0
+# define I2C1_SDA_PIN D1
+# define FEE_PAGE_BASE_ADDRESS 0x08008000
#else
# define A0 PAL_LINE(GPIOA, 0)
From 27f08d2d13395a801f350040e3e1ca0bbfc2938f Mon Sep 17 00:00:00 2001
From: Mega Mind <947300+Mariappan@users.noreply.github.com>
Date: Wed, 9 Mar 2022 11:52:04 +0800
Subject: [PATCH 13/33] Address comments
---
builddefs/build_keyboard.mk | 10 ----------
platforms/chibios/boards/STEMCELL/configs/config.h | 5 -----
platforms/chibios/boards/STEMCELL/configs/halconf.h | 5 -----
platforms/chibios/boards/STEMCELL/configs/mcuconf.h | 12 ++++++------
.../chibios/boards/STEMCELL/convert_to_stemcell.mk | 11 +++++++++++
5 files changed, 17 insertions(+), 26 deletions(-)
diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk
index 5fdf7aa1a8fa..4cc1d15c090f 100644
--- a/builddefs/build_keyboard.mk
+++ b/builddefs/build_keyboard.mk
@@ -186,16 +186,6 @@ ifeq ($(strip $(STMC)), yes)
CONVERT_TO_STEMCELL=yes
endif
-ifeq ($(strip $(STMC_US)), yes)
- CONVERT_TO_STEMCELL_UART_SWAP=yes
- OPT_DEFS += -DCONVERT_TO_STEMCELL_UART_SWAP
-endif
-
-ifeq ($(strip $(STMC_IS)), yes)
- CONVERT_TO_STEMCELL_I2C_SWAP=yes
- OPT_DEFS += -DCONVERT_TO_STEMCELL_I2C_SWAP
-endif
-
ifeq ($(strip $(CONVERT_TO_STEMCELL)), yes)
include platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
endif
diff --git a/platforms/chibios/boards/STEMCELL/configs/config.h b/platforms/chibios/boards/STEMCELL/configs/config.h
index e611618c541c..667f81ef8674 100644
--- a/platforms/chibios/boards/STEMCELL/configs/config.h
+++ b/platforms/chibios/boards/STEMCELL/configs/config.h
@@ -16,11 +16,6 @@
*/
#pragma once
-// Only HSE clock. No LSE clock
-#ifndef STM32_HSECLK
-# define STM32_HSECLK 8000000U
-#endif // STM32_HSECLK
-
#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
#endif
diff --git a/platforms/chibios/boards/STEMCELL/configs/halconf.h b/platforms/chibios/boards/STEMCELL/configs/halconf.h
index a82b898efa76..fa12a36a75b0 100644
--- a/platforms/chibios/boards/STEMCELL/configs/halconf.h
+++ b/platforms/chibios/boards/STEMCELL/configs/halconf.h
@@ -16,14 +16,9 @@
*/
#pragma once
-// #define HAL_USE_DAC TRUE
#define PAL_USE_WAIT TRUE
#define PAL_USE_CALLBACKS TRUE
-
#define HAL_USE_I2C TRUE
-
#define HAL_USE_SERIAL TRUE
-// #define HAL_USE_PWM TRUE
-
#include_next
diff --git a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
index 5c17ffe20250..636a2d99633d 100644
--- a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
+++ b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
@@ -48,13 +48,13 @@
#define STM32_CLOCK48_REQUIRED TRUE
#define STM32_SW STM32_SW_PLL
#define STM32_PLLSRC STM32_PLLSRC_HSE
-#define STM32_PLLM_VALUE 8
-#define STM32_PLLN_VALUE 336
-#define STM32_PLLP_VALUE 4
-#define STM32_PLLQ_VALUE 7
+#define STM32_PLLM_VALUE 4
+#define STM32_PLLN_VALUE 96
+#define STM32_PLLP_VALUE 2
+#define STM32_PLLQ_VALUE 4
#define STM32_HPRE STM32_HPRE_DIV1
-#define STM32_PPRE1 STM32_PPRE1_DIV4
-#define STM32_PPRE2 STM32_PPRE2_DIV2
+#define STM32_PPRE1 STM32_PPRE1_DIV2
+#define STM32_PPRE2 STM32_PPRE2_DIV1
#define STM32_RTCSEL STM32_RTCSEL_LSI
#define STM32_RTCPRE_VALUE 8
#define STM32_MCO1SEL STM32_MCO1SEL_HSI
diff --git a/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk b/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
index c12dd0797b5e..d5180384b897 100644
--- a/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
+++ b/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
@@ -12,3 +12,14 @@ SERIAL_DRIVER := usart
# These are defaults based on what has been implemented for ARM boards
AUDIO_ENABLE ?= no
WS2812_DRIVER ?= bitbang
+
+ifeq ($(strip $(STMC_US)), yes)
+ CONVERT_TO_STEMCELL_UART_SWAP=yes
+ OPT_DEFS += -DCONVERT_TO_STEMCELL_UART_SWAP
+endif
+
+ifeq ($(strip $(STMC_IS)), yes)
+ CONVERT_TO_STEMCELL_I2C_SWAP=yes
+ OPT_DEFS += -DCONVERT_TO_STEMCELL_I2C_SWAP
+endif
+
From bb90d1b30153d13a97de2cc176657966803c4af2 Mon Sep 17 00:00:00 2001
From: Mega Mind <947300+Mariappan@users.noreply.github.com>
Date: Wed, 9 Mar 2022 14:14:23 +0800
Subject: [PATCH 14/33] Enable EEPROM defs for STM32F4 series
---
builddefs/common_features.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index 8d31f694a70c..f237fabcc06d 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -212,7 +212,7 @@ else
ifeq ($(PLATFORM),AVR)
# Automatically provided by avr-libc, nothing required
else ifeq ($(PLATFORM),CHIBIOS)
- ifneq ($(filter STM32F3xx_% STM32F1xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
+ ifneq ($(filter STM32F3xx_% STM32F1xx_% STM32F4xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
# Emulated EEPROM
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_FLASH_EMULATED
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
From eb4d4b80d44a9750bcc4c1e0a265a7667997a73b Mon Sep 17 00:00:00 2001
From: Mega Mind <947300+Mariappan@users.noreply.github.com>
Date: Wed, 9 Mar 2022 23:00:31 +0800
Subject: [PATCH 15/33] Remove a_dux test keymaps
---
keyboards/a_dux/keymaps/via/keymap.c | 40 ----------------------------
keyboards/a_dux/keymaps/via/rules.mk | 4 ---
2 files changed, 44 deletions(-)
delete mode 100644 keyboards/a_dux/keymaps/via/keymap.c
delete mode 100644 keyboards/a_dux/keymaps/via/rules.mk
diff --git a/keyboards/a_dux/keymaps/via/keymap.c b/keyboards/a_dux/keymaps/via/keymap.c
deleted file mode 100644
index b58c9d447f91..000000000000
--- a/keyboards/a_dux/keymaps/via/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2022 @filterpaper
-// SPDX-License-Identifier: GPL-2.0+
-
-#include QMK_KEYBOARD_H
-
-// Seniply layout
-// https://stevep99.github.io/seniply
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_split_3x5_2(
- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
- KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
- KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
- LT(3,KC_TAB), KC_LSFT, KC_SPC, LT(1,KC_ENT)
- ),
- [1] = LAYOUT_split_3x5_2(
- KC_EXLM, KC_AT, KC_SCLN, KC_COLN, KC_UNDS, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS,
- KC_BSLS, KC_PIPE, KC_LCBR, KC_LPRN, KC_LBRC, KC_ASTR, KC_4, KC_5, KC_6, KC_MINS,
- KC_NO, KC_NO, KC_RCBR, KC_RPRN, KC_RBRC, KC_0, KC_1, KC_2, KC_3, KC_SLSH,
- _______, MO(2), _______, _______
- ),
- [2] = LAYOUT_split_3x5_2(
- RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), KC_BRIU, KC_NO, KC_AMPR, KC_GRV, KC_TILD, KC_NO,
- KC_MUTE, KC_VOLD, KC_MPLY, KC_VOLU, KC_BRID, KC_NO, KC_DLR, KC_PERC, KC_CIRC, KC_UNDS,
- KC_EJCT, KC_MPRV, KC_MSTP, KC_MNXT, KC_NO, KC_NO, KC_EXLM, KC_AT, KC_HASH, KC_NO,
- _______, _______, _______, _______
- ),
- [3] = LAYOUT_split_3x5_2(
- KC_ESC, LALT(KC_LEFT), LCTL(KC_F), LALT(KC_RGHT), KC_INS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_CAPS,
- OSM(MOD_LALT), OSM(MOD_LGUI), OSM(MOD_LSFT), OSM(MOD_LCTL), OSM(MOD_RALT), KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL,
- LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), KC_TAB, LCTL(KC_V), KC_ENT, KC_BSPC, KC_RCTL, KC_LALT, KC_APP,
- _______, _______, _______, MO(4)
- ),
- [4] = LAYOUT_split_3x5_2(
- KC_NO, KC_NO, RCS(KC_F), KC_PSCR, KC_NO, KC_F12, KC_F7, KC_F8, KC_F9, KC_NO,
- OSM(MOD_LALT), OSM(MOD_LGUI), OSM(MOD_LSFT), OSM(MOD_LCTL), OSM(MOD_RALT), KC_F11, KC_F4, KC_F5, KC_F6, KC_NO,
- RCS(KC_Z), RCS(KC_X), RCS(KC_C), LSFT(KC_TAB), RCS(KC_V), KC_F10, KC_F1, KC_F2, KC_F3, KC_NO,
- _______, _______, _______, _______
- )
-};
diff --git a/keyboards/a_dux/keymaps/via/rules.mk b/keyboards/a_dux/keymaps/via/rules.mk
deleted file mode 100644
index 6c24ff1a0375..000000000000
--- a/keyboards/a_dux/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-VIA_ENABLE = yes
-OLED_ENABLE = no
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = yes
From aeea94fdcce11e133e613d9f042160aa98e44d60 Mon Sep 17 00:00:00 2001
From: Mega Mind <947300+Mariappan@users.noreply.github.com>
Date: Wed, 9 Mar 2022 23:01:36 +0800
Subject: [PATCH 16/33] Use v1.0.1 pinout since v1.0.0 is not in use anyway
---
platforms/chibios/pin_defs.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/platforms/chibios/pin_defs.h b/platforms/chibios/pin_defs.h
index 6717a5597c7d..0e6f27177f3f 100644
--- a/platforms/chibios/pin_defs.h
+++ b/platforms/chibios/pin_defs.h
@@ -93,9 +93,9 @@
# define F5 PAL_LINE(GPIOB, 2)
# define F6 PAL_LINE(GPIOB, 1)
# define F7 PAL_LINE(GPIOB, 0)
-# define B1 PAL_LINE(GPIOA, 7)
+# define B1 PAL_LINE(GPIOA, 5)
# define B3 PAL_LINE(GPIOA, 6)
-# define B2 PAL_LINE(GPIOA, 5)
+# define B2 PAL_LINE(GPIOA, 7)
# define B6 PAL_LINE(GPIOA, 4)
# define D5 PAL_LINE(GPIOA, 8)
From 30f63e629180b8ffaafbf3155e794c7171b48f4c Mon Sep 17 00:00:00 2001
From: Mega Mind <947300+Mariappan@users.noreply.github.com>
Date: Wed, 3 Aug 2022 23:09:13 +0800
Subject: [PATCH 17/33] Fix rebase submodule error
---
lib/chibios | 2 +-
lib/chibios-contrib | 2 +-
lib/lufa | 2 +-
lib/printf | 2 +-
lib/vusb | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/chibios b/lib/chibios
index 257302333c31..f836d24b06d7 160000
--- a/lib/chibios
+++ b/lib/chibios
@@ -1 +1 @@
-Subproject commit 257302333c31f1f710800c2b97acf3550de043e1
+Subproject commit f836d24b06d7265696a33d1cea010bd6a931791d
diff --git a/lib/chibios-contrib b/lib/chibios-contrib
index ff1c6ec90cfc..966c48894b12 160000
--- a/lib/chibios-contrib
+++ b/lib/chibios-contrib
@@ -1 +1 @@
-Subproject commit ff1c6ec90cfc250d81e6f29a0d60a4faf2afb46d
+Subproject commit 966c48894b12a2ebf8819e6316c2a5dabdd320f2
diff --git a/lib/lufa b/lib/lufa
index 19a5d533f02a..35cc3d92f557 160000
--- a/lib/lufa
+++ b/lib/lufa
@@ -1 +1 @@
-Subproject commit 19a5d533f02a7b46eeadca99cc9699659cef7a60
+Subproject commit 35cc3d92f557bc8874ca602d2f22642d77cfe129
diff --git a/lib/printf b/lib/printf
index d3b984684bb8..c2e3b4e10d28 160000
--- a/lib/printf
+++ b/lib/printf
@@ -1 +1 @@
-Subproject commit d3b984684bb8a8bdc48cc7a1abecb93ce59bbe3e
+Subproject commit c2e3b4e10d281e7f0f694d3ecbd9f320977288cc
diff --git a/lib/vusb b/lib/vusb
index bdb53e4c043d..819dbc1e5d59 160000
--- a/lib/vusb
+++ b/lib/vusb
@@ -1 +1 @@
-Subproject commit bdb53e4c043d089279d9891b68bea77614cb97ee
+Subproject commit 819dbc1e5d5926b17e27e00ca6d3d2988adae04e
From f55d4fd9f91e17c897a385d11cb4f78d5f4792a9 Mon Sep 17 00:00:00 2001
From: Mega Mind <947300+Mariappan@users.noreply.github.com>
Date: Wed, 3 Aug 2022 23:31:40 +0800
Subject: [PATCH 18/33] Adapt to new CONVERT_TO framework
---
builddefs/build_keyboard.mk | 8 ---
data/mappings/defaults.json | 6 +++
docs/feature_converters.md | 5 +-
.../promicro_to_stemcell/_pin_defs.h | 53 +++++++++++++++++++
.../promicro_to_stemcell/converter.mk} | 11 +---
5 files changed, 65 insertions(+), 18 deletions(-)
create mode 100644 platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
rename platforms/chibios/{boards/STEMCELL/convert_to_stemcell.mk => converters/promicro_to_stemcell/converter.mk} (56%)
diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk
index 4cc1d15c090f..fe95dcaf15bd 100644
--- a/builddefs/build_keyboard.mk
+++ b/builddefs/build_keyboard.mk
@@ -182,14 +182,6 @@ endif
include $(BUILDDEFS_PATH)/converters.mk
-ifeq ($(strip $(STMC)), yes)
- CONVERT_TO_STEMCELL=yes
-endif
-
-ifeq ($(strip $(CONVERT_TO_STEMCELL)), yes)
- include platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
-endif
-
include $(BUILDDEFS_PATH)/mcu_selection.mk
# Find all the C source files to be compiled in subfolders.
diff --git a/data/mappings/defaults.json b/data/mappings/defaults.json
index b62e5450b34f..136e3ddd7ed4 100644
--- a/data/mappings/defaults.json
+++ b/data/mappings/defaults.json
@@ -48,6 +48,12 @@
"processor": "STM32F411",
"bootloader": "stm32-dfu",
"board": "BLACKPILL_STM32_F411"
+ },
+ "stemcell": {
+ "processor": "STM32F411",
+ "bootloader": "tinyuf2",
+ "board": "STEMCELL",
+ "pin_compatible": "promicro"
}
}
}
diff --git a/docs/feature_converters.md b/docs/feature_converters.md
index 11dcc62b2a3a..50c583c1f476 100644
--- a/docs/feature_converters.md
+++ b/docs/feature_converters.md
@@ -14,6 +14,7 @@ Currently the following converters are available:
| `promicro` | `kb2040` |
| `promicro` | `promicro_rp2040` |
| `promicro` | `blok` |
+| `promicro` | `stemcell` |
See below for more in depth information on each converter.
@@ -54,6 +55,7 @@ If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.co
| [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040) | `kb2040` |
| [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `promicro_rp2040` |
| [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) | `blok` |
+| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` |
Converter summary:
@@ -63,6 +65,7 @@ Converter summary:
| `kb2040` | `-e CONVERT_TO=kb2040` | `CONVERT_TO=kb2040` | `#ifdef CONVERT_TO_KB2040` |
| `promicro_rp2040` | `-e CONVERT_TO=promicro_rp2040` | `CONVERT_TO=promicro_rp2040` | `#ifdef CONVERT_TO_PROMICRO_RP2040` |
| `blok` | `-e CONVERT_TO=blok` | `CONVERT_TO=blok` | `#ifdef CONVERT_TO_BLOK` |
+| `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` |
### Proton C :id=proton_c
@@ -93,6 +96,6 @@ The following defaults are based on what has been implemented for [RP2040](platf
| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) |
| [Split keyboards](feature_split_keyboard.md) | Partial via `PIO` vendor driver - heavily dependent on enabled features |
-### SparkFun Pro Micro - RP2040 and Blok :id=promicro_rp2040
+### SparkFun Pro Micro - RP2040 and Blok :id=promicro_rp2040
Currently identical to [Adafruit KB2040](#kb2040).
diff --git a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
new file mode 100644
index 000000000000..fd0961ab7820
--- /dev/null
+++ b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
@@ -0,0 +1,53 @@
+// Copyright 2022 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+// Left side (front)
+#ifdef CONVERT_TO_STEMCELL_UART_SWAP
+# define D3 PAL_LINE(GPIOA, 3)
+# define D2 PAL_LINE(GPIOA, 2)
+# ifndef SERIAL_USART_DRIVER
+# define SERIAL_USART_DRIVER SD2
+# endif
+#else
+# define D3 PAL_LINE(GPIOA, 2)
+# define D2 PAL_LINE(GPIOA, 3)
+#endif
+// GND
+// GND
+#ifdef CONVERT_TO_STEMCELL_I2C_SWAP
+# define D1 PAL_LINE(GPIOB, 6)
+# define D0 PAL_LINE(GPIOB, 7)
+#else
+# define D1 PAL_LINE(GPIOB, 7)
+# define D0 PAL_LINE(GPIOB, 6)
+#endif
+
+#define D4 PAL_LINE(GPIOA, 15)
+#define C6 PAL_LINE(GPIOB, 3)
+#define D7 PAL_LINE(GPIOB, 4)
+#define E6 PAL_LINE(GPIOB, 5)
+#define B4 PAL_LINE(GPIOB, 8)
+#define B5 PAL_LINE(GPIOB, 9)
+
+// Right side (front)
+// RAW
+// GND
+// RESET
+// VCC
+#define F4 PAL_LINE(GPIOB, 10)
+#define F5 PAL_LINE(GPIOB, 2)
+#define F6 PAL_LINE(GPIOB, 1)
+#define F7 PAL_LINE(GPIOB, 0)
+#define B1 PAL_LINE(GPIOA, 5)
+#define B3 PAL_LINE(GPIOA, 6)
+#define B2 PAL_LINE(GPIOA, 7)
+#define B6 PAL_LINE(GPIOA, 4)
+
+#define D5 PAL_LINE(GPIOA, 8)
+#define B0 PAL_LINE(GPIOA, 9) // unconnected pin
+
+#define I2C1_SCL_PIN D0
+#define I2C1_SDA_PIN D1
+#define FEE_PAGE_BASE_ADDRESS 0x08008000
diff --git a/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
similarity index 56%
rename from platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
rename to platforms/chibios/converters/promicro_to_stemcell/converter.mk
index d5180384b897..9a40b92ce6c3 100644
--- a/platforms/chibios/boards/STEMCELL/convert_to_stemcell.mk
+++ b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
@@ -1,16 +1,10 @@
-# Proton C MCU settings for converting AVR projects
-TARGET := $(TARGET)_stemcell
+# STM32 MCU settings for converting AVR projects
MCU := STM32F411
BOARD := STEMCELL
BOOTLOADER := tinyuf2
-OPT_DEFS += -DCONVERT_TO_STEMCELL
-MCU_LDSCRIPT := STEMCELL_tinyuf2
FIRMWARE_FORMAT := uf2
-SERIAL_DRIVER := usart
-
-# These are defaults based on what has been implemented for ARM boards
-AUDIO_ENABLE ?= no
+SERIAL_DRIVER ?= usart
WS2812_DRIVER ?= bitbang
ifeq ($(strip $(STMC_US)), yes)
@@ -22,4 +16,3 @@ ifeq ($(strip $(STMC_IS)), yes)
CONVERT_TO_STEMCELL_I2C_SWAP=yes
OPT_DEFS += -DCONVERT_TO_STEMCELL_I2C_SWAP
endif
-
From 85cd819b0e7fc652a3e36f4876ffc12dbd57aa7a Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Thu, 4 Aug 2022 03:00:07 +0800
Subject: [PATCH 19/33] Remove now unwanted files
---
.../boards/STEMCELL/ld/STEMCELL_tinyuf2.ld | 90 -----
platforms/chibios/pin_defs.h | 375 ------------------
2 files changed, 465 deletions(-)
delete mode 100644 platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
delete mode 100644 platforms/chibios/pin_defs.h
diff --git a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld b/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
deleted file mode 100644
index 9a40100666a2..000000000000
--- a/platforms/chibios/boards/STEMCELL/ld/STEMCELL_tinyuf2.ld
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
- Copyright (C) 2022 Mega Mind
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * STeMCell (STM32F4x1Cx) memory setup.
- */
-
-MEMORY
-{
- flash0 (rx) : org = 0x08000000, len = 32k /* Sector 0,1 - TinyUF2 bootloader */
- flash1 (rx) : org = 0x08008000, len = 32k /* Sector 2,3 - Emulated eeprom */
- flash2 (rx) : org = 0x08010000, len = 256k - 64k /* Sector 4..6 - Firmware Code */
- flash3 (rx) : org = 0x00000000, len = 0
- flash4 (rx) : org = 0x00000000, len = 0
- flash5 (rx) : org = 0x00000000, len = 0
- flash6 (rx) : org = 0x00000000, len = 0
- flash7 (rx) : org = 0x00000000, len = 0
- ram0 (wx) : org = 0x20000000, len = 64k
- ram1 (wx) : org = 0x00000000, len = 0
- ram2 (wx) : org = 0x00000000, len = 0
- ram3 (wx) : org = 0x00000000, len = 0
- ram4 (wx) : org = 0x00000000, len = 0
- ram5 (wx) : org = 0x00000000, len = 0
- ram6 (wx) : org = 0x00000000, len = 0
- ram7 (wx) : org = 0x00000000, len = 0
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash2);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash2);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash2);
-REGION_ALIAS("XTORS_FLASH_LMA", flash2);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash2);
-REGION_ALIAS("TEXT_FLASH_LMA", flash2);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash2);
-REGION_ALIAS("RODATA_FLASH_LMA", flash2);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash2);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash2);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
-
-/* TinyUF2 bootloader reset support */
-_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */
diff --git a/platforms/chibios/pin_defs.h b/platforms/chibios/pin_defs.h
deleted file mode 100644
index 0e6f27177f3f..000000000000
--- a/platforms/chibios/pin_defs.h
+++ /dev/null
@@ -1,375 +0,0 @@
-/* Copyright 2021 QMK
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#pragma once
-
-// Defines mapping for Proton C replacement
-#ifdef CONVERT_TO_PROTON_C
-// Left side (front)
-# define D3 PAL_LINE(GPIOA, 9)
-# define D2 PAL_LINE(GPIOA, 10)
-// GND
-// GND
-# define D1 PAL_LINE(GPIOB, 7)
-# define D0 PAL_LINE(GPIOB, 6)
-# define D4 PAL_LINE(GPIOB, 5)
-# define C6 PAL_LINE(GPIOB, 4)
-# define D7 PAL_LINE(GPIOB, 3)
-# define E6 PAL_LINE(GPIOB, 2)
-# define B4 PAL_LINE(GPIOB, 1)
-# define B5 PAL_LINE(GPIOB, 0)
-
-// Right side (front)
-// RAW
-// GND
-// RESET
-// VCC
-# define F4 PAL_LINE(GPIOA, 2)
-# define F5 PAL_LINE(GPIOA, 1)
-# define F6 PAL_LINE(GPIOA, 0)
-# define F7 PAL_LINE(GPIOB, 8)
-# define B1 PAL_LINE(GPIOB, 13)
-# define B3 PAL_LINE(GPIOB, 14)
-# define B2 PAL_LINE(GPIOB, 15)
-# define B6 PAL_LINE(GPIOB, 9)
-
-// LEDs (only D5/C13 uses an actual LED)
-# ifdef CONVERT_TO_PROTON_C_RXLED
-# define D5 PAL_LINE(GPIOC, 14)
-# define B0 PAL_LINE(GPIOC, 13)
-# else
-# define D5 PAL_LINE(GPIOC, 13)
-# define B0 PAL_LINE(GPIOC, 14)
-# endif
-
-#elif defined(CONVERT_TO_STEMCELL)
-
-// Left side (front)
-# ifdef CONVERT_TO_STEMCELL_UART_SWAP
-# define D3 PAL_LINE(GPIOA, 3)
-# define D2 PAL_LINE(GPIOA, 2)
-# ifndef SERIAL_USART_DRIVER
-# define SERIAL_USART_DRIVER SD2
-# endif
-# else
-# define D3 PAL_LINE(GPIOA, 2)
-# define D2 PAL_LINE(GPIOA, 3)
-# endif
-// GND
-// GND
-# ifdef CONVERT_TO_STEMCELL_I2C_SWAP
-# define D1 PAL_LINE(GPIOB, 6)
-# define D0 PAL_LINE(GPIOB, 7)
-# else
-# define D1 PAL_LINE(GPIOB, 7)
-# define D0 PAL_LINE(GPIOB, 6)
-# endif
-
-# define D4 PAL_LINE(GPIOA, 15)
-# define C6 PAL_LINE(GPIOB, 3)
-# define D7 PAL_LINE(GPIOB, 4)
-# define E6 PAL_LINE(GPIOB, 5)
-# define B4 PAL_LINE(GPIOB, 8)
-# define B5 PAL_LINE(GPIOB, 9)
-
-// Right side (front)
-// RAW
-// GND
-// RESET
-// VCC
-# define F4 PAL_LINE(GPIOB, 10)
-# define F5 PAL_LINE(GPIOB, 2)
-# define F6 PAL_LINE(GPIOB, 1)
-# define F7 PAL_LINE(GPIOB, 0)
-# define B1 PAL_LINE(GPIOA, 5)
-# define B3 PAL_LINE(GPIOA, 6)
-# define B2 PAL_LINE(GPIOA, 7)
-# define B6 PAL_LINE(GPIOA, 4)
-
-# define D5 PAL_LINE(GPIOA, 8)
-# define B0 PAL_LINE(GPIOA, 9) // unconnected pin
-
-# define I2C1_SCL_PIN D0
-# define I2C1_SDA_PIN D1
-# define FEE_PAGE_BASE_ADDRESS 0x08008000
-
-#else
-# define A0 PAL_LINE(GPIOA, 0)
-# define A1 PAL_LINE(GPIOA, 1)
-# define A2 PAL_LINE(GPIOA, 2)
-# define A3 PAL_LINE(GPIOA, 3)
-# define A4 PAL_LINE(GPIOA, 4)
-# define A5 PAL_LINE(GPIOA, 5)
-# define A6 PAL_LINE(GPIOA, 6)
-# define A7 PAL_LINE(GPIOA, 7)
-# define A8 PAL_LINE(GPIOA, 8)
-# define A9 PAL_LINE(GPIOA, 9)
-# define A10 PAL_LINE(GPIOA, 10)
-# define A11 PAL_LINE(GPIOA, 11)
-# define A12 PAL_LINE(GPIOA, 12)
-# define A13 PAL_LINE(GPIOA, 13)
-# define A14 PAL_LINE(GPIOA, 14)
-# define A15 PAL_LINE(GPIOA, 15)
-# define A16 PAL_LINE(GPIOA, 16)
-# define A17 PAL_LINE(GPIOA, 17)
-# define A18 PAL_LINE(GPIOA, 18)
-# define A19 PAL_LINE(GPIOA, 19)
-# define A20 PAL_LINE(GPIOA, 20)
-# define A21 PAL_LINE(GPIOA, 21)
-# define A22 PAL_LINE(GPIOA, 22)
-# define A23 PAL_LINE(GPIOA, 23)
-# define A24 PAL_LINE(GPIOA, 24)
-# define A25 PAL_LINE(GPIOA, 25)
-# define A26 PAL_LINE(GPIOA, 26)
-# define A27 PAL_LINE(GPIOA, 27)
-# define A28 PAL_LINE(GPIOA, 28)
-# define A29 PAL_LINE(GPIOA, 29)
-# define A30 PAL_LINE(GPIOA, 30)
-# define A31 PAL_LINE(GPIOA, 31)
-# define A32 PAL_LINE(GPIOA, 32)
-# define B0 PAL_LINE(GPIOB, 0)
-# define B1 PAL_LINE(GPIOB, 1)
-# define B2 PAL_LINE(GPIOB, 2)
-# define B3 PAL_LINE(GPIOB, 3)
-# define B4 PAL_LINE(GPIOB, 4)
-# define B5 PAL_LINE(GPIOB, 5)
-# define B6 PAL_LINE(GPIOB, 6)
-# define B7 PAL_LINE(GPIOB, 7)
-# define B8 PAL_LINE(GPIOB, 8)
-# define B9 PAL_LINE(GPIOB, 9)
-# define B10 PAL_LINE(GPIOB, 10)
-# define B11 PAL_LINE(GPIOB, 11)
-# define B12 PAL_LINE(GPIOB, 12)
-# define B13 PAL_LINE(GPIOB, 13)
-# define B14 PAL_LINE(GPIOB, 14)
-# define B15 PAL_LINE(GPIOB, 15)
-# define B16 PAL_LINE(GPIOB, 16)
-# define B17 PAL_LINE(GPIOB, 17)
-# define B18 PAL_LINE(GPIOB, 18)
-# define B19 PAL_LINE(GPIOB, 19)
-# define B20 PAL_LINE(GPIOB, 20)
-# define B21 PAL_LINE(GPIOB, 21)
-# define B22 PAL_LINE(GPIOB, 22)
-# define B23 PAL_LINE(GPIOB, 23)
-# define B24 PAL_LINE(GPIOB, 24)
-# define B25 PAL_LINE(GPIOB, 25)
-# define B26 PAL_LINE(GPIOB, 26)
-# define B27 PAL_LINE(GPIOB, 27)
-# define B28 PAL_LINE(GPIOB, 28)
-# define B29 PAL_LINE(GPIOB, 29)
-# define B30 PAL_LINE(GPIOB, 30)
-# define B31 PAL_LINE(GPIOB, 31)
-# define B32 PAL_LINE(GPIOB, 32)
-# define C0 PAL_LINE(GPIOC, 0)
-# define C1 PAL_LINE(GPIOC, 1)
-# define C2 PAL_LINE(GPIOC, 2)
-# define C3 PAL_LINE(GPIOC, 3)
-# define C4 PAL_LINE(GPIOC, 4)
-# define C5 PAL_LINE(GPIOC, 5)
-# define C6 PAL_LINE(GPIOC, 6)
-# define C7 PAL_LINE(GPIOC, 7)
-# define C8 PAL_LINE(GPIOC, 8)
-# define C9 PAL_LINE(GPIOC, 9)
-# define C10 PAL_LINE(GPIOC, 10)
-# define C11 PAL_LINE(GPIOC, 11)
-# define C12 PAL_LINE(GPIOC, 12)
-# define C13 PAL_LINE(GPIOC, 13)
-# define C14 PAL_LINE(GPIOC, 14)
-# define C15 PAL_LINE(GPIOC, 15)
-# define C16 PAL_LINE(GPIOC, 16)
-# define C17 PAL_LINE(GPIOC, 17)
-# define C18 PAL_LINE(GPIOC, 18)
-# define C19 PAL_LINE(GPIOC, 19)
-# define C20 PAL_LINE(GPIOC, 20)
-# define C21 PAL_LINE(GPIOC, 21)
-# define C22 PAL_LINE(GPIOC, 22)
-# define C23 PAL_LINE(GPIOC, 23)
-# define C24 PAL_LINE(GPIOC, 24)
-# define C25 PAL_LINE(GPIOC, 25)
-# define C26 PAL_LINE(GPIOC, 26)
-# define C27 PAL_LINE(GPIOC, 27)
-# define C28 PAL_LINE(GPIOC, 28)
-# define C29 PAL_LINE(GPIOC, 29)
-# define C30 PAL_LINE(GPIOC, 30)
-# define C31 PAL_LINE(GPIOC, 31)
-# define C32 PAL_LINE(GPIOC, 32)
-# define D0 PAL_LINE(GPIOD, 0)
-# define D1 PAL_LINE(GPIOD, 1)
-# define D2 PAL_LINE(GPIOD, 2)
-# define D3 PAL_LINE(GPIOD, 3)
-# define D4 PAL_LINE(GPIOD, 4)
-# define D5 PAL_LINE(GPIOD, 5)
-# define D6 PAL_LINE(GPIOD, 6)
-# define D7 PAL_LINE(GPIOD, 7)
-# define D8 PAL_LINE(GPIOD, 8)
-# define D9 PAL_LINE(GPIOD, 9)
-# define D10 PAL_LINE(GPIOD, 10)
-# define D11 PAL_LINE(GPIOD, 11)
-# define D12 PAL_LINE(GPIOD, 12)
-# define D13 PAL_LINE(GPIOD, 13)
-# define D14 PAL_LINE(GPIOD, 14)
-# define D15 PAL_LINE(GPIOD, 15)
-# define D16 PAL_LINE(GPIOD, 16)
-# define D17 PAL_LINE(GPIOD, 17)
-# define D18 PAL_LINE(GPIOD, 18)
-# define D19 PAL_LINE(GPIOD, 19)
-# define D20 PAL_LINE(GPIOD, 20)
-# define D21 PAL_LINE(GPIOD, 21)
-# define D22 PAL_LINE(GPIOD, 22)
-# define D23 PAL_LINE(GPIOD, 23)
-# define D24 PAL_LINE(GPIOD, 24)
-# define D25 PAL_LINE(GPIOD, 25)
-# define D26 PAL_LINE(GPIOD, 26)
-# define D27 PAL_LINE(GPIOD, 27)
-# define D28 PAL_LINE(GPIOD, 28)
-# define D29 PAL_LINE(GPIOD, 29)
-# define D30 PAL_LINE(GPIOD, 30)
-# define D31 PAL_LINE(GPIOD, 31)
-# define D32 PAL_LINE(GPIOD, 32)
-# define E0 PAL_LINE(GPIOE, 0)
-# define E1 PAL_LINE(GPIOE, 1)
-# define E2 PAL_LINE(GPIOE, 2)
-# define E3 PAL_LINE(GPIOE, 3)
-# define E4 PAL_LINE(GPIOE, 4)
-# define E5 PAL_LINE(GPIOE, 5)
-# define E6 PAL_LINE(GPIOE, 6)
-# define E7 PAL_LINE(GPIOE, 7)
-# define E8 PAL_LINE(GPIOE, 8)
-# define E9 PAL_LINE(GPIOE, 9)
-# define E10 PAL_LINE(GPIOE, 10)
-# define E11 PAL_LINE(GPIOE, 11)
-# define E12 PAL_LINE(GPIOE, 12)
-# define E13 PAL_LINE(GPIOE, 13)
-# define E14 PAL_LINE(GPIOE, 14)
-# define E15 PAL_LINE(GPIOE, 15)
-# define E16 PAL_LINE(GPIOE, 16)
-# define E17 PAL_LINE(GPIOE, 17)
-# define E18 PAL_LINE(GPIOE, 18)
-# define E19 PAL_LINE(GPIOE, 19)
-# define E20 PAL_LINE(GPIOE, 20)
-# define E21 PAL_LINE(GPIOE, 21)
-# define E22 PAL_LINE(GPIOE, 22)
-# define E23 PAL_LINE(GPIOE, 23)
-# define E24 PAL_LINE(GPIOE, 24)
-# define E25 PAL_LINE(GPIOE, 25)
-# define E26 PAL_LINE(GPIOE, 26)
-# define E27 PAL_LINE(GPIOE, 27)
-# define E28 PAL_LINE(GPIOE, 28)
-# define E29 PAL_LINE(GPIOE, 29)
-# define E30 PAL_LINE(GPIOE, 30)
-# define E31 PAL_LINE(GPIOE, 31)
-# define E32 PAL_LINE(GPIOE, 32)
-# define F0 PAL_LINE(GPIOF, 0)
-# define F1 PAL_LINE(GPIOF, 1)
-# define F2 PAL_LINE(GPIOF, 2)
-# define F3 PAL_LINE(GPIOF, 3)
-# define F4 PAL_LINE(GPIOF, 4)
-# define F5 PAL_LINE(GPIOF, 5)
-# define F6 PAL_LINE(GPIOF, 6)
-# define F7 PAL_LINE(GPIOF, 7)
-# define F8 PAL_LINE(GPIOF, 8)
-# define F9 PAL_LINE(GPIOF, 9)
-# define F10 PAL_LINE(GPIOF, 10)
-# define F11 PAL_LINE(GPIOF, 11)
-# define F12 PAL_LINE(GPIOF, 12)
-# define F13 PAL_LINE(GPIOF, 13)
-# define F14 PAL_LINE(GPIOF, 14)
-# define F15 PAL_LINE(GPIOF, 15)
-# define G0 PAL_LINE(GPIOG, 0)
-# define G1 PAL_LINE(GPIOG, 1)
-# define G2 PAL_LINE(GPIOG, 2)
-# define G3 PAL_LINE(GPIOG, 3)
-# define G4 PAL_LINE(GPIOG, 4)
-# define G5 PAL_LINE(GPIOG, 5)
-# define G6 PAL_LINE(GPIOG, 6)
-# define G7 PAL_LINE(GPIOG, 7)
-# define G8 PAL_LINE(GPIOG, 8)
-# define G9 PAL_LINE(GPIOG, 9)
-# define G10 PAL_LINE(GPIOG, 10)
-# define G11 PAL_LINE(GPIOG, 11)
-# define G12 PAL_LINE(GPIOG, 12)
-# define G13 PAL_LINE(GPIOG, 13)
-# define G14 PAL_LINE(GPIOG, 14)
-# define G15 PAL_LINE(GPIOG, 15)
-# define H0 PAL_LINE(GPIOH, 0)
-# define H1 PAL_LINE(GPIOH, 1)
-# define H2 PAL_LINE(GPIOH, 2)
-# define H3 PAL_LINE(GPIOH, 3)
-# define H4 PAL_LINE(GPIOH, 4)
-# define H5 PAL_LINE(GPIOH, 5)
-# define H6 PAL_LINE(GPIOH, 6)
-# define H7 PAL_LINE(GPIOH, 7)
-# define H8 PAL_LINE(GPIOH, 8)
-# define H9 PAL_LINE(GPIOH, 9)
-# define H10 PAL_LINE(GPIOH, 10)
-# define H11 PAL_LINE(GPIOH, 11)
-# define H12 PAL_LINE(GPIOH, 12)
-# define H13 PAL_LINE(GPIOH, 13)
-# define H14 PAL_LINE(GPIOH, 14)
-# define H15 PAL_LINE(GPIOH, 15)
-# define I0 PAL_LINE(GPIOI, 0)
-# define I1 PAL_LINE(GPIOI, 1)
-# define I2 PAL_LINE(GPIOI, 2)
-# define I3 PAL_LINE(GPIOI, 3)
-# define I4 PAL_LINE(GPIOI, 4)
-# define I5 PAL_LINE(GPIOI, 5)
-# define I6 PAL_LINE(GPIOI, 6)
-# define I7 PAL_LINE(GPIOI, 7)
-# define I8 PAL_LINE(GPIOI, 8)
-# define I9 PAL_LINE(GPIOI, 9)
-# define I10 PAL_LINE(GPIOI, 10)
-# define I11 PAL_LINE(GPIOI, 11)
-# define I12 PAL_LINE(GPIOI, 12)
-# define I13 PAL_LINE(GPIOI, 13)
-# define I14 PAL_LINE(GPIOI, 14)
-# define I15 PAL_LINE(GPIOI, 15)
-# define J0 PAL_LINE(GPIOJ, 0)
-# define J1 PAL_LINE(GPIOJ, 1)
-# define J2 PAL_LINE(GPIOJ, 2)
-# define J3 PAL_LINE(GPIOJ, 3)
-# define J4 PAL_LINE(GPIOJ, 4)
-# define J5 PAL_LINE(GPIOJ, 5)
-# define J6 PAL_LINE(GPIOJ, 6)
-# define J7 PAL_LINE(GPIOJ, 7)
-# define J8 PAL_LINE(GPIOJ, 8)
-# define J9 PAL_LINE(GPIOJ, 9)
-# define J10 PAL_LINE(GPIOJ, 10)
-# define J11 PAL_LINE(GPIOJ, 11)
-# define J12 PAL_LINE(GPIOJ, 12)
-# define J13 PAL_LINE(GPIOJ, 13)
-# define J14 PAL_LINE(GPIOJ, 14)
-# define J15 PAL_LINE(GPIOJ, 15)
-// Keyboards can `#define KEYBOARD_REQUIRES_GPIOK` if they need to access GPIO-K pins. These conflict with a whole
-// bunch of layout definitions, so it's intentionally left out unless absolutely required -- in that case, the
-// keyboard designer should use a different symbol when defining their layout macros.
-# ifdef KEYBOARD_REQUIRES_GPIOK
-# define K0 PAL_LINE(GPIOK, 0)
-# define K1 PAL_LINE(GPIOK, 1)
-# define K2 PAL_LINE(GPIOK, 2)
-# define K3 PAL_LINE(GPIOK, 3)
-# define K4 PAL_LINE(GPIOK, 4)
-# define K5 PAL_LINE(GPIOK, 5)
-# define K6 PAL_LINE(GPIOK, 6)
-# define K7 PAL_LINE(GPIOK, 7)
-# define K8 PAL_LINE(GPIOK, 8)
-# define K9 PAL_LINE(GPIOK, 9)
-# define K10 PAL_LINE(GPIOK, 10)
-# define K11 PAL_LINE(GPIOK, 11)
-# define K12 PAL_LINE(GPIOK, 12)
-# define K13 PAL_LINE(GPIOK, 13)
-# define K14 PAL_LINE(GPIOK, 14)
-# define K15 PAL_LINE(GPIOK, 15)
-# endif
-#endif
From 77ffaa19a3bd9ce1b5e21a2fd701e45527935ac7 Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Thu, 4 Aug 2022 15:06:42 +0800
Subject: [PATCH 20/33] use existing board config files from chibios
---
.../chibios/boards/STEMCELL/board/board.c | 267 ----
.../chibios/boards/STEMCELL/board/board.h | 1340 -----------------
.../chibios/boards/STEMCELL/board/board.mk | 7 +-
3 files changed, 5 insertions(+), 1609 deletions(-)
delete mode 100644 platforms/chibios/boards/STEMCELL/board/board.c
delete mode 100644 platforms/chibios/boards/STEMCELL/board/board.h
diff --git a/platforms/chibios/boards/STEMCELL/board/board.c b/platforms/chibios/boards/STEMCELL/board/board.c
deleted file mode 100644
index 4b7092fa7ab0..000000000000
--- a/platforms/chibios/boards/STEMCELL/board/board.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
- Copyright (C) 2022 Mega Mind
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * This file has been automatically generated using ChibiStudio board
- * generator plugin. Do not edit manually.
- */
-
-#include "hal.h"
-#include "stm32_gpio.h"
-
-/*===========================================================================*/
-/* Driver local definitions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver local variables and types. */
-/*===========================================================================*/
-
-/**
- * @brief Type of STM32 GPIO port setup.
- */
-typedef struct {
- uint32_t moder;
- uint32_t otyper;
- uint32_t ospeedr;
- uint32_t pupdr;
- uint32_t odr;
- uint32_t afrl;
- uint32_t afrh;
-} gpio_setup_t;
-
-/**
- * @brief Type of STM32 GPIO initialization data.
- */
-typedef struct {
-#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
- gpio_setup_t PAData;
-#endif
-#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
- gpio_setup_t PBData;
-#endif
-#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
- gpio_setup_t PCData;
-#endif
-#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
- gpio_setup_t PDData;
-#endif
-#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
- gpio_setup_t PEData;
-#endif
-#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
- gpio_setup_t PFData;
-#endif
-#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
- gpio_setup_t PGData;
-#endif
-#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
- gpio_setup_t PHData;
-#endif
-#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
- gpio_setup_t PIData;
-#endif
-#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
- gpio_setup_t PJData;
-#endif
-#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
- gpio_setup_t PKData;
-#endif
-} gpio_config_t;
-
-/**
- * @brief STM32 GPIO static initialization data.
- */
-static const gpio_config_t gpio_default_config = {
-#if STM32_HAS_GPIOA
- {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
- VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
-#endif
-#if STM32_HAS_GPIOB
- {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
- VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
-#endif
-#if STM32_HAS_GPIOC
- {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
- VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
-#endif
-#if STM32_HAS_GPIOD
- {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
- VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
-#endif
-#if STM32_HAS_GPIOE
- {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
- VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
-#endif
-#if STM32_HAS_GPIOF
- {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
- VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
-#endif
-#if STM32_HAS_GPIOG
- {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
- VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
-#endif
-#if STM32_HAS_GPIOH
- {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
- VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
-#endif
-#if STM32_HAS_GPIOI
- {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
- VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
-#endif
-#if STM32_HAS_GPIOJ
- {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
- VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
-#endif
-#if STM32_HAS_GPIOK
- {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
- VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
-#endif
-};
-
-/*===========================================================================*/
-/* Driver local functions. */
-/*===========================================================================*/
-
-static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
-
- gpiop->OTYPER = config->otyper;
- gpiop->OSPEEDR = config->ospeedr;
- gpiop->PUPDR = config->pupdr;
- gpiop->ODR = config->odr;
- gpiop->AFRL = config->afrl;
- gpiop->AFRH = config->afrh;
- gpiop->MODER = config->moder;
-}
-
-static void stm32_gpio_init(void) {
-
- /* Enabling GPIO-related clocks, the mask comes from the
- registry header file.*/
- rccResetAHB1(STM32_GPIO_EN_MASK);
- rccEnableAHB1(STM32_GPIO_EN_MASK, true);
-
- /* Initializing all the defined GPIO ports.*/
-#if STM32_HAS_GPIOA
- gpio_init(GPIOA, &gpio_default_config.PAData);
-#endif
-#if STM32_HAS_GPIOB
- gpio_init(GPIOB, &gpio_default_config.PBData);
-#endif
-#if STM32_HAS_GPIOC
- gpio_init(GPIOC, &gpio_default_config.PCData);
-#endif
-#if STM32_HAS_GPIOD
- gpio_init(GPIOD, &gpio_default_config.PDData);
-#endif
-#if STM32_HAS_GPIOE
- gpio_init(GPIOE, &gpio_default_config.PEData);
-#endif
-#if STM32_HAS_GPIOF
- gpio_init(GPIOF, &gpio_default_config.PFData);
-#endif
-#if STM32_HAS_GPIOG
- gpio_init(GPIOG, &gpio_default_config.PGData);
-#endif
-#if STM32_HAS_GPIOH
- gpio_init(GPIOH, &gpio_default_config.PHData);
-#endif
-#if STM32_HAS_GPIOI
- gpio_init(GPIOI, &gpio_default_config.PIData);
-#endif
-#if STM32_HAS_GPIOJ
- gpio_init(GPIOJ, &gpio_default_config.PJData);
-#endif
-#if STM32_HAS_GPIOK
- gpio_init(GPIOK, &gpio_default_config.PKData);
-#endif
-}
-
-/*===========================================================================*/
-/* Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver exported functions. */
-/*===========================================================================*/
-
-/**
- * @brief Early initialization code.
- * @details GPIO ports and system clocks are initialized before everything
- * else.
- */
-void __early_init(void) {
-
- stm32_gpio_init();
- stm32_clock_init();
-}
-
-#if HAL_USE_SDC || defined(__DOXYGEN__)
-/**
- * @brief SDC card detection.
- */
-bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
-
- (void)sdcp;
- /* CHTODO: Fill the implementation.*/
- return true;
-}
-
-/**
- * @brief SDC card write protection detection.
- */
-bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
-
- (void)sdcp;
- /* CHTODO: Fill the implementation.*/
- return false;
-}
-#endif /* HAL_USE_SDC */
-
-#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
-/**
- * @brief MMC_SPI card detection.
- */
-bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
-
- (void)mmcp;
- /* CHTODO: Fill the implementation.*/
- return true;
-}
-
-/**
- * @brief MMC_SPI card write protection detection.
- */
-bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
-
- (void)mmcp;
- /* CHTODO: Fill the implementation.*/
- return false;
-}
-#endif
-
-/**
- * @brief Board-specific initialization code.
- * @note You can add your board-specific code here.
- */
-void boardInit(void) {
-
-}
diff --git a/platforms/chibios/boards/STEMCELL/board/board.h b/platforms/chibios/boards/STEMCELL/board/board.h
deleted file mode 100644
index f4f73aa152f0..000000000000
--- a/platforms/chibios/boards/STEMCELL/board/board.h
+++ /dev/null
@@ -1,1340 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
- Copyright (C) 2022 Mega Mind
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * This file has been automatically generated using ChibiStudio board
- * generator plugin. Do not edit manually.
- */
-
-#ifndef BOARD_H
-#define BOARD_H
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-/*
- * Setup for STeMCell
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_STEMCELL
-#define BOARD_NAME "STeMCell"
-
-/*
- * Board oscillators-related settings.
- * NOTE: LSE not fitted.
- */
-#if !defined(STM32_LSECLK)
-#define STM32_LSECLK 0U
-#endif
-
-#if !defined(STM32_HSECLK)
-#define STM32_HSECLK 8000000U
-#endif
-
-/*
- * Board voltages.
- * Required for performance limits calculation.
- */
-#define STM32_VDD 330U
-
-/*
- * MCU type as defined in the ST header.
- */
-#define STM32F411xE
-
-/*
- * IO pins assignments.
- */
-#define GPIOA_PIN0 0U
-#define GPIOA_PIN1 1U
-#define GPIOA_PIN2 2U
-#define GPIOA_PIN3 3U
-#define GPIOA_PIN4 4U
-#define GPIOA_PIN5 5U
-#define GPIOA_PIN6 6U
-#define GPIOA_PIN7 7U
-#define GPIOA_LED0 8U
-#define GPIOA_VBUS_FS 9U
-#define GPIOA_OTG_FS_ID 10U
-#define GPIOA_OTG_FS_DM 11U
-#define GPIOA_OTG_FS_DP 12U
-#define GPIOA_PIN13 13U
-#define GPIOA_PIN14 14U
-#define GPIOA_PIN15 15U
-
-#define GPIOB_PIN0 0U
-#define GPIOB_PIN1 1U
-#define GPIOB_PIN2 2U
-#define GPIOB_PIN3 3U
-#define GPIOB_PIN4 4U
-#define GPIOB_PIN5 5U
-#define GPIOB_PIN6 6U
-#define GPIOB_PIN7 7U
-#define GPIOB_PIN8 8U
-#define GPIOB_PIN9 9U
-#define GPIOB_PIN10 10U
-#define GPIOB_PIN11 11U
-#define GPIOB_PIN12 12U
-#define GPIOB_PIN13 13U
-#define GPIOB_PIN14 14U
-#define GPIOB_PIN15 15U
-
-#define GPIOC_PIN0 0U
-#define GPIOC_PIN1 1U
-#define GPIOC_PIN2 2U
-#define GPIOC_PIN3 3U
-#define GPIOC_PIN4 4U
-#define GPIOC_PIN5 5U
-#define GPIOC_PIN6 6U
-#define GPIOC_PIN7 7U
-#define GPIOC_PIN8 8U
-#define GPIOC_PIN9 9U
-#define GPIOC_PIN10 10U
-#define GPIOC_PIN11 11U
-#define GPIOC_PIN12 12U
-#define GPIOC_PIN13 13U
-#define GPIOC_PIN14 14U
-#define GPIOC_PIN15 15U
-
-#define GPIOD_PIN0 0U
-#define GPIOD_PIN1 1U
-#define GPIOD_PIN2 2U
-#define GPIOD_PIN3 3U
-#define GPIOD_PIN4 4U
-#define GPIOD_PIN5 5U
-#define GPIOD_PIN6 6U
-#define GPIOD_PIN7 7U
-#define GPIOD_PIN8 8U
-#define GPIOD_PIN9 9U
-#define GPIOD_PIN10 10U
-#define GPIOD_PIN11 11U
-#define GPIOD_PIN12 12U
-#define GPIOD_PIN13 13U
-#define GPIOD_PIN14 14U
-#define GPIOD_PIN15 15U
-
-#define GPIOE_PIN0 0U
-#define GPIOE_PIN1 1U
-#define GPIOE_PIN2 2U
-#define GPIOE_PIN3 3U
-#define GPIOE_PIN4 4U
-#define GPIOE_PIN5 5U
-#define GPIOE_PIN6 6U
-#define GPIOE_PIN7 7U
-#define GPIOE_PIN8 8U
-#define GPIOE_PIN9 9U
-#define GPIOE_PIN10 10U
-#define GPIOE_PIN11 11U
-#define GPIOE_PIN12 12U
-#define GPIOE_PIN13 13U
-#define GPIOE_PIN14 14U
-#define GPIOE_PIN15 15U
-
-#define GPIOF_PIN0 0U
-#define GPIOF_PIN1 1U
-#define GPIOF_PIN2 2U
-#define GPIOF_PIN3 3U
-#define GPIOF_PIN4 4U
-#define GPIOF_PIN5 5U
-#define GPIOF_PIN6 6U
-#define GPIOF_PIN7 7U
-#define GPIOF_PIN8 8U
-#define GPIOF_PIN9 9U
-#define GPIOF_PIN10 10U
-#define GPIOF_PIN11 11U
-#define GPIOF_PIN12 12U
-#define GPIOF_PIN13 13U
-#define GPIOF_PIN14 14U
-#define GPIOF_PIN15 15U
-
-#define GPIOG_PIN0 0U
-#define GPIOG_PIN1 1U
-#define GPIOG_PIN2 2U
-#define GPIOG_PIN3 3U
-#define GPIOG_PIN4 4U
-#define GPIOG_PIN5 5U
-#define GPIOG_PIN6 6U
-#define GPIOG_PIN7 7U
-#define GPIOG_PIN8 8U
-#define GPIOG_PIN9 9U
-#define GPIOG_PIN10 10U
-#define GPIOG_PIN11 11U
-#define GPIOG_PIN12 12U
-#define GPIOG_PIN13 13U
-#define GPIOG_PIN14 14U
-#define GPIOG_PIN15 15U
-
-#define GPIOH_PIN0 0U
-#define GPIOH_PIN1 1U
-#define GPIOH_PIN2 2U
-#define GPIOH_PIN3 3U
-#define GPIOH_PIN4 4U
-#define GPIOH_PIN5 5U
-#define GPIOH_PIN6 6U
-#define GPIOH_PIN7 7U
-#define GPIOH_PIN8 8U
-#define GPIOH_PIN9 9U
-#define GPIOH_PIN10 10U
-#define GPIOH_PIN11 11U
-#define GPIOH_PIN12 12U
-#define GPIOH_PIN13 13U
-#define GPIOH_PIN14 14U
-#define GPIOH_PIN15 15U
-
-#define GPIOI_PIN0 0U
-#define GPIOI_PIN1 1U
-#define GPIOI_PIN2 2U
-#define GPIOI_PIN3 3U
-#define GPIOI_PIN4 4U
-#define GPIOI_PIN5 5U
-#define GPIOI_PIN6 6U
-#define GPIOI_PIN7 7U
-#define GPIOI_PIN8 8U
-#define GPIOI_PIN9 9U
-#define GPIOI_PIN10 10U
-#define GPIOI_PIN11 11U
-#define GPIOI_PIN12 12U
-#define GPIOI_PIN13 13U
-#define GPIOI_PIN14 14U
-#define GPIOI_PIN15 15U
-
-/*
- * IO lines assignments.
- */
-#define LINE_VBUS_FS PAL_LINE(GPIOA, 9U)
-#define LINE_OTG_FS_ID PAL_LINE(GPIOA, 10U)
-#define LINE_OTG_FS_DM PAL_LINE(GPIOA, 11U)
-#define LINE_OTG_FS_DP PAL_LINE(GPIOA, 12U)
-#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
-#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
-#define LINE_SWO PAL_LINE(GPIOB, 3U)
-#define LINE_OTG_FS_POWER_ON PAL_LINE(GPIOC, 0U)
-#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
-#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
-#define LINE_OSC_IN PAL_LINE(GPIOH, 0U)
-#define LINE_OSC_OUT PAL_LINE(GPIOH, 1U)
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Derived constants and error checks. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver macros. */
-/*===========================================================================*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- * Please refer to the STM32 Reference Manual for details.
- */
-#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
-#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
-#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
-#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
-#define PIN_ODR_LOW(n) (0U << (n))
-#define PIN_ODR_HIGH(n) (1U << (n))
-#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
-#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
-#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
-#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
-#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
-#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
-#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
-#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
-#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
-#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
-
-/*
- * GPIOA setup:
- *
- * PA0 - PIN0 (input pullup).
- * PA1 - PIN1 (input pullup).
- * PA2 - PIN2 (input pullup).
- * PA3 - PIN3 (input pullup).
- * PA4 - PIN4 (input pullup).
- * PA5 - PIN5 (input pullup).
- * PA6 - PIN6 (input pullup).
- * PA7 - PIN7 (input pullup).
- * PA8 - LED0 (output pushpull low).
- * PA9 - VBUS_FS (input floating).
- * PA10 - OTG_FS_ID (alternate 10).
- * PA11 - OTG_FS_DM (alternate 10).
- * PA12 - OTG_FS_DP (alternate 10).
- * PA13 - PIN13 (input pullup).
- * PA14 - PIN14 (input pullup).
- * PA15 - PIN15 (input pullup).
- */
-#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_PIN0) | \
- PIN_MODE_INPUT(GPIOA_PIN1) | \
- PIN_MODE_INPUT(GPIOA_PIN2) | \
- PIN_MODE_INPUT(GPIOA_PIN3) | \
- PIN_MODE_INPUT(GPIOA_PIN4) | \
- PIN_MODE_INPUT(GPIOA_PIN5) | \
- PIN_MODE_INPUT(GPIOA_PIN6) | \
- PIN_MODE_INPUT(GPIOA_PIN7) | \
- PIN_MODE_OUTPUT(GPIOA_LED0) | \
- PIN_MODE_INPUT(GPIOA_VBUS_FS) | \
- PIN_MODE_ALTERNATE(GPIOA_OTG_FS_ID) | \
- PIN_MODE_ALTERNATE(GPIOA_OTG_FS_DM) | \
- PIN_MODE_ALTERNATE(GPIOA_OTG_FS_DP) | \
- PIN_MODE_INPUT(GPIOA_PIN13) | \
- PIN_MODE_INPUT(GPIOA_PIN14) | \
- PIN_MODE_INPUT(GPIOA_PIN15))
-#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOA_LED0) | \
- PIN_OTYPE_PUSHPULL(GPIOA_VBUS_FS) | \
- PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_ID) | \
- PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DM) | \
- PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DP) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
-#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_HIGH(GPIOA_PIN0) | \
- PIN_OSPEED_HIGH(GPIOA_PIN1) | \
- PIN_OSPEED_HIGH(GPIOA_PIN2) | \
- PIN_OSPEED_HIGH(GPIOA_PIN3) | \
- PIN_OSPEED_HIGH(GPIOA_PIN4) | \
- PIN_OSPEED_HIGH(GPIOA_PIN5) | \
- PIN_OSPEED_HIGH(GPIOA_PIN6) | \
- PIN_OSPEED_HIGH(GPIOA_PIN7) | \
- PIN_OSPEED_HIGH(GPIOA_LED0) | \
- PIN_OSPEED_HIGH(GPIOA_VBUS_FS) | \
- PIN_OSPEED_HIGH(GPIOA_OTG_FS_ID) | \
- PIN_OSPEED_HIGH(GPIOA_OTG_FS_DM) | \
- PIN_OSPEED_HIGH(GPIOA_OTG_FS_DP) | \
- PIN_OSPEED_HIGH(GPIOA_PIN13) | \
- PIN_OSPEED_HIGH(GPIOA_PIN14) | \
- PIN_OSPEED_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_PUPDR (PIN_PUPDR_PULLUP(GPIOA_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN7) | \
- PIN_PUPDR_FLOATING(GPIOA_LED0) | \
- PIN_PUPDR_FLOATING(GPIOA_VBUS_FS) | \
- PIN_PUPDR_FLOATING(GPIOA_OTG_FS_ID) | \
- PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DM) | \
- PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DP) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN15))
-#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_PIN0) | \
- PIN_ODR_HIGH(GPIOA_PIN1) | \
- PIN_ODR_HIGH(GPIOA_PIN2) | \
- PIN_ODR_HIGH(GPIOA_PIN3) | \
- PIN_ODR_HIGH(GPIOA_PIN4) | \
- PIN_ODR_HIGH(GPIOA_PIN5) | \
- PIN_ODR_HIGH(GPIOA_PIN6) | \
- PIN_ODR_HIGH(GPIOA_PIN7) | \
- PIN_ODR_LOW(GPIOA_LED0) | \
- PIN_ODR_HIGH(GPIOA_VBUS_FS) | \
- PIN_ODR_HIGH(GPIOA_OTG_FS_ID) | \
- PIN_ODR_HIGH(GPIOA_OTG_FS_DM) | \
- PIN_ODR_HIGH(GPIOA_OTG_FS_DP) | \
- PIN_ODR_HIGH(GPIOA_PIN13) | \
- PIN_ODR_HIGH(GPIOA_PIN14) | \
- PIN_ODR_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN7, 0U))
-#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_LED0, 0U) | \
- PIN_AFIO_AF(GPIOA_VBUS_FS, 0U) | \
- PIN_AFIO_AF(GPIOA_OTG_FS_ID, 10U) | \
- PIN_AFIO_AF(GPIOA_OTG_FS_DM, 10U) | \
- PIN_AFIO_AF(GPIOA_OTG_FS_DP, 10U) | \
- PIN_AFIO_AF(GPIOA_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN15, 0U))
-
-/*
- * GPIOB setup:
- *
- * PB0 - PIN0 (input pullup).
- * PB1 - PIN1 (input pullup).
- * PB2 - PIN2 (input pullup).
- * PB3 - PIN3 (input pullup).
- * PB4 - PIN4 (input pullup).
- * PB5 - PIN5 (input pullup).
- * PB6 - PIN6 (input pullup).
- * PB7 - PIN7 (input pullup).
- * PB8 - PIN8 (input pullup).
- * PB9 - PIN9 (input pullup).
- * PB10 - PIN10 (input pullup).
- * PB11 - PIN11 (input pullup).
- * PB12 - PIN12 (input pullup).
- * PB13 - PIN13 (input pullup).
- * PB14 - PIN14 (input pullup).
- * PB15 - PIN15 (input pullup).
- */
-#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
- PIN_MODE_INPUT(GPIOB_PIN1) | \
- PIN_MODE_INPUT(GPIOB_PIN2) | \
- PIN_MODE_INPUT(GPIOB_PIN3) | \
- PIN_MODE_INPUT(GPIOB_PIN4) | \
- PIN_MODE_INPUT(GPIOB_PIN5) | \
- PIN_MODE_INPUT(GPIOB_PIN6) | \
- PIN_MODE_INPUT(GPIOB_PIN7) | \
- PIN_MODE_INPUT(GPIOB_PIN8) | \
- PIN_MODE_INPUT(GPIOB_PIN9) | \
- PIN_MODE_INPUT(GPIOB_PIN10) | \
- PIN_MODE_INPUT(GPIOB_PIN11) | \
- PIN_MODE_INPUT(GPIOB_PIN12) | \
- PIN_MODE_INPUT(GPIOB_PIN13) | \
- PIN_MODE_INPUT(GPIOB_PIN14) | \
- PIN_MODE_INPUT(GPIOB_PIN15))
-#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN15))
-#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_HIGH(GPIOB_PIN0) | \
- PIN_OSPEED_HIGH(GPIOB_PIN1) | \
- PIN_OSPEED_HIGH(GPIOB_PIN2) | \
- PIN_OSPEED_HIGH(GPIOB_PIN3) | \
- PIN_OSPEED_HIGH(GPIOB_PIN4) | \
- PIN_OSPEED_HIGH(GPIOB_PIN5) | \
- PIN_OSPEED_HIGH(GPIOB_PIN6) | \
- PIN_OSPEED_HIGH(GPIOB_PIN7) | \
- PIN_OSPEED_HIGH(GPIOB_PIN8) | \
- PIN_OSPEED_HIGH(GPIOB_PIN9) | \
- PIN_OSPEED_HIGH(GPIOB_PIN10) | \
- PIN_OSPEED_HIGH(GPIOB_PIN11) | \
- PIN_OSPEED_HIGH(GPIOB_PIN12) | \
- PIN_OSPEED_HIGH(GPIOB_PIN13) | \
- PIN_OSPEED_HIGH(GPIOB_PIN14) | \
- PIN_OSPEED_HIGH(GPIOB_PIN15))
-#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN15))
-#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \
- PIN_ODR_HIGH(GPIOB_PIN1) | \
- PIN_ODR_HIGH(GPIOB_PIN2) | \
- PIN_ODR_HIGH(GPIOB_PIN3) | \
- PIN_ODR_HIGH(GPIOB_PIN4) | \
- PIN_ODR_HIGH(GPIOB_PIN5) | \
- PIN_ODR_HIGH(GPIOB_PIN6) | \
- PIN_ODR_HIGH(GPIOB_PIN7) | \
- PIN_ODR_HIGH(GPIOB_PIN8) | \
- PIN_ODR_HIGH(GPIOB_PIN9) | \
- PIN_ODR_HIGH(GPIOB_PIN10) | \
- PIN_ODR_HIGH(GPIOB_PIN11) | \
- PIN_ODR_HIGH(GPIOB_PIN12) | \
- PIN_ODR_HIGH(GPIOB_PIN13) | \
- PIN_ODR_HIGH(GPIOB_PIN14) | \
- PIN_ODR_HIGH(GPIOB_PIN15))
-#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN7, 0U))
-#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN15, 0U))
-
-/*
- * GPIOC setup:
- *
- * PC0 - PIN0 (input pullup).
- * PC1 - PIN1 (input pullup).
- * PC2 - PIN2 (input pullup).
- * PC3 - PIN3 (input pullup).
- * PC4 - PIN4 (input pullup).
- * PC5 - PIN5 (input pullup).
- * PC6 - PIN6 (input pullup).
- * PC7 - PIN7 (input pullup).
- * PC8 - PIN8 (input pullup).
- * PC9 - PIN9 (input pullup).
- * PC10 - PIN10 (input pullup).
- * PC11 - PIN11 (input pullup).
- * PC12 - PIN12 (input pullup).
- * PC13 - PIN13 (input pullup).
- * PC14 - PIN14 (input pullup).
- * PC15 - PIN15 (input pullup).
- */
-#define VAL_GPIOC_MODER (PIN_MODE_INPUT(GPIOC_PIN0) | \
- PIN_MODE_INPUT(GPIOC_PIN1) | \
- PIN_MODE_INPUT(GPIOC_PIN2) | \
- PIN_MODE_INPUT(GPIOC_PIN3) | \
- PIN_MODE_INPUT(GPIOC_PIN4) | \
- PIN_MODE_INPUT(GPIOC_PIN5) | \
- PIN_MODE_INPUT(GPIOC_PIN6) | \
- PIN_MODE_INPUT(GPIOC_PIN7) | \
- PIN_MODE_INPUT(GPIOC_PIN8) | \
- PIN_MODE_INPUT(GPIOC_PIN9) | \
- PIN_MODE_INPUT(GPIOC_PIN10) | \
- PIN_MODE_INPUT(GPIOC_PIN11) | \
- PIN_MODE_INPUT(GPIOC_PIN12) | \
- PIN_MODE_INPUT(GPIOC_PIN13) | \
- PIN_MODE_INPUT(GPIOC_PIN14) | \
- PIN_MODE_INPUT(GPIOC_PIN15))
-#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN15))
-#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_PIN0) | \
- PIN_OSPEED_HIGH(GPIOC_PIN1) | \
- PIN_OSPEED_HIGH(GPIOC_PIN2) | \
- PIN_OSPEED_HIGH(GPIOC_PIN3) | \
- PIN_OSPEED_HIGH(GPIOC_PIN4) | \
- PIN_OSPEED_HIGH(GPIOC_PIN5) | \
- PIN_OSPEED_HIGH(GPIOC_PIN6) | \
- PIN_OSPEED_HIGH(GPIOC_PIN7) | \
- PIN_OSPEED_HIGH(GPIOC_PIN8) | \
- PIN_OSPEED_HIGH(GPIOC_PIN9) | \
- PIN_OSPEED_HIGH(GPIOC_PIN10) | \
- PIN_OSPEED_HIGH(GPIOC_PIN11) | \
- PIN_OSPEED_HIGH(GPIOC_PIN12) | \
- PIN_OSPEED_HIGH(GPIOC_PIN13) | \
- PIN_OSPEED_HIGH(GPIOC_PIN14) | \
- PIN_OSPEED_HIGH(GPIOC_PIN15))
-#define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLUP(GPIOC_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN15))
-#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_PIN0) | \
- PIN_ODR_HIGH(GPIOC_PIN1) | \
- PIN_ODR_HIGH(GPIOC_PIN2) | \
- PIN_ODR_HIGH(GPIOC_PIN3) | \
- PIN_ODR_HIGH(GPIOC_PIN4) | \
- PIN_ODR_HIGH(GPIOC_PIN5) | \
- PIN_ODR_HIGH(GPIOC_PIN6) | \
- PIN_ODR_HIGH(GPIOC_PIN7) | \
- PIN_ODR_HIGH(GPIOC_PIN8) | \
- PIN_ODR_HIGH(GPIOC_PIN9) | \
- PIN_ODR_HIGH(GPIOC_PIN10) | \
- PIN_ODR_HIGH(GPIOC_PIN11) | \
- PIN_ODR_HIGH(GPIOC_PIN12) | \
- PIN_ODR_HIGH(GPIOC_PIN13) | \
- PIN_ODR_HIGH(GPIOC_PIN14) | \
- PIN_ODR_HIGH(GPIOC_PIN15))
-#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN7, 0U))
-#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN15, 0U))
-
-/*
- * GPIOD setup:
- *
- * PD0 - PIN0 (input pullup).
- * PD1 - PIN1 (input pullup).
- * PD2 - PIN2 (input pullup).
- * PD3 - PIN3 (input pullup).
- * PD4 - PIN4 (input pullup).
- * PD5 - PIN5 (input pullup).
- * PD6 - PIN6 (input pullup).
- * PD7 - PIN7 (input pullup).
- * PD8 - PIN8 (input pullup).
- * PD9 - PIN9 (input pullup).
- * PD10 - PIN10 (input pullup).
- * PD11 - PIN11 (input pullup).
- * PD12 - PIN12 (input pullup).
- * PD13 - PIN13 (input pullup).
- * PD14 - PIN14 (input pullup).
- * PD15 - PIN15 (input pullup).
- */
-#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \
- PIN_MODE_INPUT(GPIOD_PIN1) | \
- PIN_MODE_INPUT(GPIOD_PIN2) | \
- PIN_MODE_INPUT(GPIOD_PIN3) | \
- PIN_MODE_INPUT(GPIOD_PIN4) | \
- PIN_MODE_INPUT(GPIOD_PIN5) | \
- PIN_MODE_INPUT(GPIOD_PIN6) | \
- PIN_MODE_INPUT(GPIOD_PIN7) | \
- PIN_MODE_INPUT(GPIOD_PIN8) | \
- PIN_MODE_INPUT(GPIOD_PIN9) | \
- PIN_MODE_INPUT(GPIOD_PIN10) | \
- PIN_MODE_INPUT(GPIOD_PIN11) | \
- PIN_MODE_INPUT(GPIOD_PIN12) | \
- PIN_MODE_INPUT(GPIOD_PIN13) | \
- PIN_MODE_INPUT(GPIOD_PIN14) | \
- PIN_MODE_INPUT(GPIOD_PIN15))
-#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
-#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_HIGH(GPIOD_PIN0) | \
- PIN_OSPEED_HIGH(GPIOD_PIN1) | \
- PIN_OSPEED_HIGH(GPIOD_PIN2) | \
- PIN_OSPEED_HIGH(GPIOD_PIN3) | \
- PIN_OSPEED_HIGH(GPIOD_PIN4) | \
- PIN_OSPEED_HIGH(GPIOD_PIN5) | \
- PIN_OSPEED_HIGH(GPIOD_PIN6) | \
- PIN_OSPEED_HIGH(GPIOD_PIN7) | \
- PIN_OSPEED_HIGH(GPIOD_PIN8) | \
- PIN_OSPEED_HIGH(GPIOD_PIN9) | \
- PIN_OSPEED_HIGH(GPIOD_PIN10) | \
- PIN_OSPEED_HIGH(GPIOD_PIN11) | \
- PIN_OSPEED_HIGH(GPIOD_PIN12) | \
- PIN_OSPEED_HIGH(GPIOD_PIN13) | \
- PIN_OSPEED_HIGH(GPIOD_PIN14) | \
- PIN_OSPEED_HIGH(GPIOD_PIN15))
-#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN15))
-#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \
- PIN_ODR_HIGH(GPIOD_PIN1) | \
- PIN_ODR_HIGH(GPIOD_PIN2) | \
- PIN_ODR_HIGH(GPIOD_PIN3) | \
- PIN_ODR_HIGH(GPIOD_PIN4) | \
- PIN_ODR_HIGH(GPIOD_PIN5) | \
- PIN_ODR_HIGH(GPIOD_PIN6) | \
- PIN_ODR_HIGH(GPIOD_PIN7) | \
- PIN_ODR_HIGH(GPIOD_PIN8) | \
- PIN_ODR_HIGH(GPIOD_PIN9) | \
- PIN_ODR_HIGH(GPIOD_PIN10) | \
- PIN_ODR_HIGH(GPIOD_PIN11) | \
- PIN_ODR_HIGH(GPIOD_PIN12) | \
- PIN_ODR_HIGH(GPIOD_PIN13) | \
- PIN_ODR_HIGH(GPIOD_PIN14) | \
- PIN_ODR_HIGH(GPIOD_PIN15))
-#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN7, 0U))
-#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN15, 0U))
-
-/*
- * GPIOE setup:
- *
- * PE0 - PIN0 (input pullup).
- * PE1 - PIN1 (input pullup).
- * PE2 - PIN2 (input pullup).
- * PE3 - PIN3 (input pullup).
- * PE4 - PIN4 (input pullup).
- * PE5 - PIN5 (input pullup).
- * PE6 - PIN6 (input pullup).
- * PE7 - PIN7 (input pullup).
- * PE8 - PIN8 (input pullup).
- * PE9 - PIN9 (input pullup).
- * PE10 - PIN10 (input pullup).
- * PE11 - PIN11 (input pullup).
- * PE12 - PIN12 (input pullup).
- * PE13 - PIN13 (input pullup).
- * PE14 - PIN14 (input pullup).
- * PE15 - PIN15 (input pullup).
- */
-#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \
- PIN_MODE_INPUT(GPIOE_PIN1) | \
- PIN_MODE_INPUT(GPIOE_PIN2) | \
- PIN_MODE_INPUT(GPIOE_PIN3) | \
- PIN_MODE_INPUT(GPIOE_PIN4) | \
- PIN_MODE_INPUT(GPIOE_PIN5) | \
- PIN_MODE_INPUT(GPIOE_PIN6) | \
- PIN_MODE_INPUT(GPIOE_PIN7) | \
- PIN_MODE_INPUT(GPIOE_PIN8) | \
- PIN_MODE_INPUT(GPIOE_PIN9) | \
- PIN_MODE_INPUT(GPIOE_PIN10) | \
- PIN_MODE_INPUT(GPIOE_PIN11) | \
- PIN_MODE_INPUT(GPIOE_PIN12) | \
- PIN_MODE_INPUT(GPIOE_PIN13) | \
- PIN_MODE_INPUT(GPIOE_PIN14) | \
- PIN_MODE_INPUT(GPIOE_PIN15))
-#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
-#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_HIGH(GPIOE_PIN0) | \
- PIN_OSPEED_HIGH(GPIOE_PIN1) | \
- PIN_OSPEED_HIGH(GPIOE_PIN2) | \
- PIN_OSPEED_HIGH(GPIOE_PIN3) | \
- PIN_OSPEED_HIGH(GPIOE_PIN4) | \
- PIN_OSPEED_HIGH(GPIOE_PIN5) | \
- PIN_OSPEED_HIGH(GPIOE_PIN6) | \
- PIN_OSPEED_HIGH(GPIOE_PIN7) | \
- PIN_OSPEED_HIGH(GPIOE_PIN8) | \
- PIN_OSPEED_HIGH(GPIOE_PIN9) | \
- PIN_OSPEED_HIGH(GPIOE_PIN10) | \
- PIN_OSPEED_HIGH(GPIOE_PIN11) | \
- PIN_OSPEED_HIGH(GPIOE_PIN12) | \
- PIN_OSPEED_HIGH(GPIOE_PIN13) | \
- PIN_OSPEED_HIGH(GPIOE_PIN14) | \
- PIN_OSPEED_HIGH(GPIOE_PIN15))
-#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN15))
-#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \
- PIN_ODR_HIGH(GPIOE_PIN1) | \
- PIN_ODR_HIGH(GPIOE_PIN2) | \
- PIN_ODR_HIGH(GPIOE_PIN3) | \
- PIN_ODR_HIGH(GPIOE_PIN4) | \
- PIN_ODR_HIGH(GPIOE_PIN5) | \
- PIN_ODR_HIGH(GPIOE_PIN6) | \
- PIN_ODR_HIGH(GPIOE_PIN7) | \
- PIN_ODR_HIGH(GPIOE_PIN8) | \
- PIN_ODR_HIGH(GPIOE_PIN9) | \
- PIN_ODR_HIGH(GPIOE_PIN10) | \
- PIN_ODR_HIGH(GPIOE_PIN11) | \
- PIN_ODR_HIGH(GPIOE_PIN12) | \
- PIN_ODR_HIGH(GPIOE_PIN13) | \
- PIN_ODR_HIGH(GPIOE_PIN14) | \
- PIN_ODR_HIGH(GPIOE_PIN15))
-#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN7, 0U))
-#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN15, 0U))
-
-/*
- * GPIOF setup:
- *
- * PF0 - PIN0 (input pullup).
- * PF1 - PIN1 (input pullup).
- * PF2 - PIN2 (input pullup).
- * PF3 - PIN3 (input pullup).
- * PF4 - PIN4 (input pullup).
- * PF5 - PIN5 (input pullup).
- * PF6 - PIN6 (input pullup).
- * PF7 - PIN7 (input pullup).
- * PF8 - PIN8 (input pullup).
- * PF9 - PIN9 (input pullup).
- * PF10 - PIN10 (input pullup).
- * PF11 - PIN11 (input pullup).
- * PF12 - PIN12 (input pullup).
- * PF13 - PIN13 (input pullup).
- * PF14 - PIN14 (input pullup).
- * PF15 - PIN15 (input pullup).
- */
-#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_PIN0) | \
- PIN_MODE_INPUT(GPIOF_PIN1) | \
- PIN_MODE_INPUT(GPIOF_PIN2) | \
- PIN_MODE_INPUT(GPIOF_PIN3) | \
- PIN_MODE_INPUT(GPIOF_PIN4) | \
- PIN_MODE_INPUT(GPIOF_PIN5) | \
- PIN_MODE_INPUT(GPIOF_PIN6) | \
- PIN_MODE_INPUT(GPIOF_PIN7) | \
- PIN_MODE_INPUT(GPIOF_PIN8) | \
- PIN_MODE_INPUT(GPIOF_PIN9) | \
- PIN_MODE_INPUT(GPIOF_PIN10) | \
- PIN_MODE_INPUT(GPIOF_PIN11) | \
- PIN_MODE_INPUT(GPIOF_PIN12) | \
- PIN_MODE_INPUT(GPIOF_PIN13) | \
- PIN_MODE_INPUT(GPIOF_PIN14) | \
- PIN_MODE_INPUT(GPIOF_PIN15))
-#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
-#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_HIGH(GPIOF_PIN0) | \
- PIN_OSPEED_HIGH(GPIOF_PIN1) | \
- PIN_OSPEED_HIGH(GPIOF_PIN2) | \
- PIN_OSPEED_HIGH(GPIOF_PIN3) | \
- PIN_OSPEED_HIGH(GPIOF_PIN4) | \
- PIN_OSPEED_HIGH(GPIOF_PIN5) | \
- PIN_OSPEED_HIGH(GPIOF_PIN6) | \
- PIN_OSPEED_HIGH(GPIOF_PIN7) | \
- PIN_OSPEED_HIGH(GPIOF_PIN8) | \
- PIN_OSPEED_HIGH(GPIOF_PIN9) | \
- PIN_OSPEED_HIGH(GPIOF_PIN10) | \
- PIN_OSPEED_HIGH(GPIOF_PIN11) | \
- PIN_OSPEED_HIGH(GPIOF_PIN12) | \
- PIN_OSPEED_HIGH(GPIOF_PIN13) | \
- PIN_OSPEED_HIGH(GPIOF_PIN14) | \
- PIN_OSPEED_HIGH(GPIOF_PIN15))
-#define VAL_GPIOF_PUPDR (PIN_PUPDR_PULLUP(GPIOF_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN15))
-#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_PIN0) | \
- PIN_ODR_HIGH(GPIOF_PIN1) | \
- PIN_ODR_HIGH(GPIOF_PIN2) | \
- PIN_ODR_HIGH(GPIOF_PIN3) | \
- PIN_ODR_HIGH(GPIOF_PIN4) | \
- PIN_ODR_HIGH(GPIOF_PIN5) | \
- PIN_ODR_HIGH(GPIOF_PIN6) | \
- PIN_ODR_HIGH(GPIOF_PIN7) | \
- PIN_ODR_HIGH(GPIOF_PIN8) | \
- PIN_ODR_HIGH(GPIOF_PIN9) | \
- PIN_ODR_HIGH(GPIOF_PIN10) | \
- PIN_ODR_HIGH(GPIOF_PIN11) | \
- PIN_ODR_HIGH(GPIOF_PIN12) | \
- PIN_ODR_HIGH(GPIOF_PIN13) | \
- PIN_ODR_HIGH(GPIOF_PIN14) | \
- PIN_ODR_HIGH(GPIOF_PIN15))
-#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN7, 0U))
-#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN15, 0U))
-
-/*
- * GPIOG setup:
- *
- * PG0 - PIN0 (input pullup).
- * PG1 - PIN1 (input pullup).
- * PG2 - PIN2 (input pullup).
- * PG3 - PIN3 (input pullup).
- * PG4 - PIN4 (input pullup).
- * PG5 - PIN5 (input pullup).
- * PG6 - PIN6 (input pullup).
- * PG7 - PIN7 (input pullup).
- * PG8 - PIN8 (input pullup).
- * PG9 - PIN9 (input pullup).
- * PG10 - PIN10 (input pullup).
- * PG11 - PIN11 (input pullup).
- * PG12 - PIN12 (input pullup).
- * PG13 - PIN13 (input pullup).
- * PG14 - PIN14 (input pullup).
- * PG15 - PIN15 (input pullup).
- */
-#define VAL_GPIOG_MODER (PIN_MODE_INPUT(GPIOG_PIN0) | \
- PIN_MODE_INPUT(GPIOG_PIN1) | \
- PIN_MODE_INPUT(GPIOG_PIN2) | \
- PIN_MODE_INPUT(GPIOG_PIN3) | \
- PIN_MODE_INPUT(GPIOG_PIN4) | \
- PIN_MODE_INPUT(GPIOG_PIN5) | \
- PIN_MODE_INPUT(GPIOG_PIN6) | \
- PIN_MODE_INPUT(GPIOG_PIN7) | \
- PIN_MODE_INPUT(GPIOG_PIN8) | \
- PIN_MODE_INPUT(GPIOG_PIN9) | \
- PIN_MODE_INPUT(GPIOG_PIN10) | \
- PIN_MODE_INPUT(GPIOG_PIN11) | \
- PIN_MODE_INPUT(GPIOG_PIN12) | \
- PIN_MODE_INPUT(GPIOG_PIN13) | \
- PIN_MODE_INPUT(GPIOG_PIN14) | \
- PIN_MODE_INPUT(GPIOG_PIN15))
-#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(GPIOG_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOG_PIN15))
-#define VAL_GPIOG_OSPEEDR (PIN_OSPEED_HIGH(GPIOG_PIN0) | \
- PIN_OSPEED_HIGH(GPIOG_PIN1) | \
- PIN_OSPEED_HIGH(GPIOG_PIN2) | \
- PIN_OSPEED_HIGH(GPIOG_PIN3) | \
- PIN_OSPEED_HIGH(GPIOG_PIN4) | \
- PIN_OSPEED_HIGH(GPIOG_PIN5) | \
- PIN_OSPEED_HIGH(GPIOG_PIN6) | \
- PIN_OSPEED_HIGH(GPIOG_PIN7) | \
- PIN_OSPEED_HIGH(GPIOG_PIN8) | \
- PIN_OSPEED_HIGH(GPIOG_PIN9) | \
- PIN_OSPEED_HIGH(GPIOG_PIN10) | \
- PIN_OSPEED_HIGH(GPIOG_PIN11) | \
- PIN_OSPEED_HIGH(GPIOG_PIN12) | \
- PIN_OSPEED_HIGH(GPIOG_PIN13) | \
- PIN_OSPEED_HIGH(GPIOG_PIN14) | \
- PIN_OSPEED_HIGH(GPIOG_PIN15))
-#define VAL_GPIOG_PUPDR (PIN_PUPDR_PULLUP(GPIOG_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOG_PIN15))
-#define VAL_GPIOG_ODR (PIN_ODR_HIGH(GPIOG_PIN0) | \
- PIN_ODR_HIGH(GPIOG_PIN1) | \
- PIN_ODR_HIGH(GPIOG_PIN2) | \
- PIN_ODR_HIGH(GPIOG_PIN3) | \
- PIN_ODR_HIGH(GPIOG_PIN4) | \
- PIN_ODR_HIGH(GPIOG_PIN5) | \
- PIN_ODR_HIGH(GPIOG_PIN6) | \
- PIN_ODR_HIGH(GPIOG_PIN7) | \
- PIN_ODR_HIGH(GPIOG_PIN8) | \
- PIN_ODR_HIGH(GPIOG_PIN9) | \
- PIN_ODR_HIGH(GPIOG_PIN10) | \
- PIN_ODR_HIGH(GPIOG_PIN11) | \
- PIN_ODR_HIGH(GPIOG_PIN12) | \
- PIN_ODR_HIGH(GPIOG_PIN13) | \
- PIN_ODR_HIGH(GPIOG_PIN14) | \
- PIN_ODR_HIGH(GPIOG_PIN15))
-#define VAL_GPIOG_AFRL (PIN_AFIO_AF(GPIOG_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN7, 0U))
-#define VAL_GPIOG_AFRH (PIN_AFIO_AF(GPIOG_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOG_PIN15, 0U))
-
-/*
- * GPIOH setup:
- *
- * PH0 - PIN0 (input pullup).
- * PH1 - PIN1 (input pullup).
- * PH2 - PIN2 (input pullup).
- * PH3 - PIN3 (input pullup).
- * PH4 - PIN4 (input pullup).
- * PH5 - PIN5 (input pullup).
- * PH6 - PIN6 (input pullup).
- * PH7 - PIN7 (input pullup).
- * PH8 - PIN8 (input pullup).
- * PH9 - PIN9 (input pullup).
- * PH10 - PIN10 (input pullup).
- * PH11 - PIN11 (input pullup).
- * PH12 - PIN12 (input pullup).
- * PH13 - PIN13 (input pullup).
- * PH14 - PIN14 (input pullup).
- * PH15 - PIN15 (input pullup).
- */
-#define VAL_GPIOH_MODER (PIN_MODE_INPUT(GPIOH_PIN0) | \
- PIN_MODE_INPUT(GPIOH_PIN1) | \
- PIN_MODE_INPUT(GPIOH_PIN2) | \
- PIN_MODE_INPUT(GPIOH_PIN3) | \
- PIN_MODE_INPUT(GPIOH_PIN4) | \
- PIN_MODE_INPUT(GPIOH_PIN5) | \
- PIN_MODE_INPUT(GPIOH_PIN6) | \
- PIN_MODE_INPUT(GPIOH_PIN7) | \
- PIN_MODE_INPUT(GPIOH_PIN8) | \
- PIN_MODE_INPUT(GPIOH_PIN9) | \
- PIN_MODE_INPUT(GPIOH_PIN10) | \
- PIN_MODE_INPUT(GPIOH_PIN11) | \
- PIN_MODE_INPUT(GPIOH_PIN12) | \
- PIN_MODE_INPUT(GPIOH_PIN13) | \
- PIN_MODE_INPUT(GPIOH_PIN14) | \
- PIN_MODE_INPUT(GPIOH_PIN15))
-#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(GPIOH_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOH_PIN15))
-#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_HIGH(GPIOH_PIN0) | \
- PIN_OSPEED_HIGH(GPIOH_PIN1) | \
- PIN_OSPEED_HIGH(GPIOH_PIN2) | \
- PIN_OSPEED_HIGH(GPIOH_PIN3) | \
- PIN_OSPEED_HIGH(GPIOH_PIN4) | \
- PIN_OSPEED_HIGH(GPIOH_PIN5) | \
- PIN_OSPEED_HIGH(GPIOH_PIN6) | \
- PIN_OSPEED_HIGH(GPIOH_PIN7) | \
- PIN_OSPEED_HIGH(GPIOH_PIN8) | \
- PIN_OSPEED_HIGH(GPIOH_PIN9) | \
- PIN_OSPEED_HIGH(GPIOH_PIN10) | \
- PIN_OSPEED_HIGH(GPIOH_PIN11) | \
- PIN_OSPEED_HIGH(GPIOH_PIN12) | \
- PIN_OSPEED_HIGH(GPIOH_PIN13) | \
- PIN_OSPEED_HIGH(GPIOH_PIN14) | \
- PIN_OSPEED_HIGH(GPIOH_PIN15))
-#define VAL_GPIOH_PUPDR (PIN_PUPDR_PULLUP(GPIOH_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOH_PIN15))
-#define VAL_GPIOH_ODR (PIN_ODR_HIGH(GPIOH_PIN0) | \
- PIN_ODR_HIGH(GPIOH_PIN1) | \
- PIN_ODR_HIGH(GPIOH_PIN2) | \
- PIN_ODR_HIGH(GPIOH_PIN3) | \
- PIN_ODR_HIGH(GPIOH_PIN4) | \
- PIN_ODR_HIGH(GPIOH_PIN5) | \
- PIN_ODR_HIGH(GPIOH_PIN6) | \
- PIN_ODR_HIGH(GPIOH_PIN7) | \
- PIN_ODR_HIGH(GPIOH_PIN8) | \
- PIN_ODR_HIGH(GPIOH_PIN9) | \
- PIN_ODR_HIGH(GPIOH_PIN10) | \
- PIN_ODR_HIGH(GPIOH_PIN11) | \
- PIN_ODR_HIGH(GPIOH_PIN12) | \
- PIN_ODR_HIGH(GPIOH_PIN13) | \
- PIN_ODR_HIGH(GPIOH_PIN14) | \
- PIN_ODR_HIGH(GPIOH_PIN15))
-#define VAL_GPIOH_AFRL (PIN_AFIO_AF(GPIOH_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN7, 0U))
-#define VAL_GPIOH_AFRH (PIN_AFIO_AF(GPIOH_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOH_PIN15, 0U))
-
-/*
- * GPIOI setup:
- *
- * PI0 - PIN0 (input pullup).
- * PI1 - PIN1 (input pullup).
- * PI2 - PIN2 (input pullup).
- * PI3 - PIN3 (input pullup).
- * PI4 - PIN4 (input pullup).
- * PI5 - PIN5 (input pullup).
- * PI6 - PIN6 (input pullup).
- * PI7 - PIN7 (input pullup).
- * PI8 - PIN8 (input pullup).
- * PI9 - PIN9 (input pullup).
- * PI10 - PIN10 (input pullup).
- * PI11 - PIN11 (input pullup).
- * PI12 - PIN12 (input pullup).
- * PI13 - PIN13 (input pullup).
- * PI14 - PIN14 (input pullup).
- * PI15 - PIN15 (input pullup).
- */
-#define VAL_GPIOI_MODER (PIN_MODE_INPUT(GPIOI_PIN0) | \
- PIN_MODE_INPUT(GPIOI_PIN1) | \
- PIN_MODE_INPUT(GPIOI_PIN2) | \
- PIN_MODE_INPUT(GPIOI_PIN3) | \
- PIN_MODE_INPUT(GPIOI_PIN4) | \
- PIN_MODE_INPUT(GPIOI_PIN5) | \
- PIN_MODE_INPUT(GPIOI_PIN6) | \
- PIN_MODE_INPUT(GPIOI_PIN7) | \
- PIN_MODE_INPUT(GPIOI_PIN8) | \
- PIN_MODE_INPUT(GPIOI_PIN9) | \
- PIN_MODE_INPUT(GPIOI_PIN10) | \
- PIN_MODE_INPUT(GPIOI_PIN11) | \
- PIN_MODE_INPUT(GPIOI_PIN12) | \
- PIN_MODE_INPUT(GPIOI_PIN13) | \
- PIN_MODE_INPUT(GPIOI_PIN14) | \
- PIN_MODE_INPUT(GPIOI_PIN15))
-#define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(GPIOI_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOI_PIN15))
-#define VAL_GPIOI_OSPEEDR (PIN_OSPEED_HIGH(GPIOI_PIN0) | \
- PIN_OSPEED_HIGH(GPIOI_PIN1) | \
- PIN_OSPEED_HIGH(GPIOI_PIN2) | \
- PIN_OSPEED_HIGH(GPIOI_PIN3) | \
- PIN_OSPEED_HIGH(GPIOI_PIN4) | \
- PIN_OSPEED_HIGH(GPIOI_PIN5) | \
- PIN_OSPEED_HIGH(GPIOI_PIN6) | \
- PIN_OSPEED_HIGH(GPIOI_PIN7) | \
- PIN_OSPEED_HIGH(GPIOI_PIN8) | \
- PIN_OSPEED_HIGH(GPIOI_PIN9) | \
- PIN_OSPEED_HIGH(GPIOI_PIN10) | \
- PIN_OSPEED_HIGH(GPIOI_PIN11) | \
- PIN_OSPEED_HIGH(GPIOI_PIN12) | \
- PIN_OSPEED_HIGH(GPIOI_PIN13) | \
- PIN_OSPEED_HIGH(GPIOI_PIN14) | \
- PIN_OSPEED_HIGH(GPIOI_PIN15))
-#define VAL_GPIOI_PUPDR (PIN_PUPDR_PULLUP(GPIOI_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOI_PIN15))
-#define VAL_GPIOI_ODR (PIN_ODR_HIGH(GPIOI_PIN0) | \
- PIN_ODR_HIGH(GPIOI_PIN1) | \
- PIN_ODR_HIGH(GPIOI_PIN2) | \
- PIN_ODR_HIGH(GPIOI_PIN3) | \
- PIN_ODR_HIGH(GPIOI_PIN4) | \
- PIN_ODR_HIGH(GPIOI_PIN5) | \
- PIN_ODR_HIGH(GPIOI_PIN6) | \
- PIN_ODR_HIGH(GPIOI_PIN7) | \
- PIN_ODR_HIGH(GPIOI_PIN8) | \
- PIN_ODR_HIGH(GPIOI_PIN9) | \
- PIN_ODR_HIGH(GPIOI_PIN10) | \
- PIN_ODR_HIGH(GPIOI_PIN11) | \
- PIN_ODR_HIGH(GPIOI_PIN12) | \
- PIN_ODR_HIGH(GPIOI_PIN13) | \
- PIN_ODR_HIGH(GPIOI_PIN14) | \
- PIN_ODR_HIGH(GPIOI_PIN15))
-#define VAL_GPIOI_AFRL (PIN_AFIO_AF(GPIOI_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN7, 0U))
-#define VAL_GPIOI_AFRH (PIN_AFIO_AF(GPIOI_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOI_PIN15, 0U))
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* BOARD_H */
diff --git a/platforms/chibios/boards/STEMCELL/board/board.mk b/platforms/chibios/boards/STEMCELL/board/board.mk
index 842e33590594..6f743a907561 100644
--- a/platforms/chibios/boards/STEMCELL/board/board.mk
+++ b/platforms/chibios/boards/STEMCELL/board/board.mk
@@ -1,8 +1,11 @@
+# Default pin config of nucleo64_411re has most pins in input pull up mode
+
# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/board/board.c
+BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F411RE/board.c
# Required include directories
-BOARDINC = $(BOARD_PATH)/board
+BOARDINC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F411RE
+
# Shared variables
ALLCSRC += $(BOARDSRC)
From 8e3b39b4b07b2461d479d92a0b452d7971d77098 Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Thu, 4 Aug 2022 15:19:35 +0800
Subject: [PATCH 21/33] Move flash definitions out of pin defs
---
platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h | 4 ----
.../chibios/converters/promicro_to_stemcell/converter.mk | 3 +++
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
index fd0961ab7820..c974cc20339f 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
+++ b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
@@ -7,9 +7,6 @@
#ifdef CONVERT_TO_STEMCELL_UART_SWAP
# define D3 PAL_LINE(GPIOA, 3)
# define D2 PAL_LINE(GPIOA, 2)
-# ifndef SERIAL_USART_DRIVER
-# define SERIAL_USART_DRIVER SD2
-# endif
#else
# define D3 PAL_LINE(GPIOA, 2)
# define D2 PAL_LINE(GPIOA, 3)
@@ -50,4 +47,3 @@
#define I2C1_SCL_PIN D0
#define I2C1_SDA_PIN D1
-#define FEE_PAGE_BASE_ADDRESS 0x08008000
diff --git a/platforms/chibios/converters/promicro_to_stemcell/converter.mk b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
index 9a40b92ce6c3..7341e86f446d 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/converter.mk
+++ b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
@@ -7,9 +7,12 @@ FIRMWARE_FORMAT := uf2
SERIAL_DRIVER ?= usart
WS2812_DRIVER ?= bitbang
+OPT_DEFS += -DFEE_PAGE_BASE_ADDRESS=0x08008000
+
ifeq ($(strip $(STMC_US)), yes)
CONVERT_TO_STEMCELL_UART_SWAP=yes
OPT_DEFS += -DCONVERT_TO_STEMCELL_UART_SWAP
+ OPT_DEFS += -DSERIAL_USART_DRIVER=SD2
endif
ifeq ($(strip $(STMC_IS)), yes)
From 0ad07cce8516be7ff08a7c81f8fbdd18c3b101d8 Mon Sep 17 00:00:00 2001
From: Mega Mind <947300+Mariappan@users.noreply.github.com>
Date: Fri, 5 Aug 2022 08:14:34 +0800
Subject: [PATCH 22/33] Use newer wearleveling driver for EEPROM emulation
---
platforms/chibios/converters/promicro_to_stemcell/converter.mk | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/platforms/chibios/converters/promicro_to_stemcell/converter.mk b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
index 7341e86f446d..9244fe01a429 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/converter.mk
+++ b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
@@ -7,7 +7,8 @@ FIRMWARE_FORMAT := uf2
SERIAL_DRIVER ?= usart
WS2812_DRIVER ?= bitbang
-OPT_DEFS += -DFEE_PAGE_BASE_ADDRESS=0x08008000
+EEPROM_DRIVER = wear_leveling
+WEAR_LEVELING_DRIVER = legacy
ifeq ($(strip $(STMC_US)), yes)
CONVERT_TO_STEMCELL_UART_SWAP=yes
From 77668f83cf77e93123750e9fb832c73dd8a31537 Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Fri, 5 Aug 2022 08:19:31 +0800
Subject: [PATCH 23/33] minor refactor
---
.../chibios/converters/promicro_to_stemcell/_pin_defs.h | 4 ++--
.../chibios/converters/promicro_to_stemcell/converter.mk | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
index c974cc20339f..ca414451ae6c 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
+++ b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
@@ -4,7 +4,7 @@
#pragma once
// Left side (front)
-#ifdef CONVERT_TO_STEMCELL_UART_SWAP
+#ifdef STEMCELL_UART_SWAP
# define D3 PAL_LINE(GPIOA, 3)
# define D2 PAL_LINE(GPIOA, 2)
#else
@@ -13,7 +13,7 @@
#endif
// GND
// GND
-#ifdef CONVERT_TO_STEMCELL_I2C_SWAP
+#ifdef STEMCELL_I2C_SWAP
# define D1 PAL_LINE(GPIOB, 6)
# define D0 PAL_LINE(GPIOB, 7)
#else
diff --git a/platforms/chibios/converters/promicro_to_stemcell/converter.mk b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
index 9244fe01a429..657aad95b738 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/converter.mk
+++ b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
@@ -11,12 +11,12 @@ EEPROM_DRIVER = wear_leveling
WEAR_LEVELING_DRIVER = legacy
ifeq ($(strip $(STMC_US)), yes)
- CONVERT_TO_STEMCELL_UART_SWAP=yes
- OPT_DEFS += -DCONVERT_TO_STEMCELL_UART_SWAP
+ STEMCELL_UART_SWAP=yes
+ OPT_DEFS += -DSTEMCELL_UART_SWAP
OPT_DEFS += -DSERIAL_USART_DRIVER=SD2
endif
ifeq ($(strip $(STMC_IS)), yes)
- CONVERT_TO_STEMCELL_I2C_SWAP=yes
- OPT_DEFS += -DCONVERT_TO_STEMCELL_I2C_SWAP
+ STEMCELL_I2C_SWAP=yes
+ OPT_DEFS += -DSTEMCELL_I2C_SWAP
endif
From 92dd21a6387da8b71271aac8c031a57f788a28a8 Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Sat, 6 Aug 2022 15:52:15 +0800
Subject: [PATCH 24/33] Add better defaults and update readme about stemcell
converter
---
docs/feature_converters.md | 24 +++++++++++++++++
.../promicro_to_stemcell/_pin_defs.h | 26 ++++++++++++++-----
.../promicro_to_stemcell/converter.mk | 16 +++++++++---
3 files changed, 57 insertions(+), 9 deletions(-)
diff --git a/docs/feature_converters.md b/docs/feature_converters.md
index 50c583c1f476..090ae3b70e5f 100644
--- a/docs/feature_converters.md
+++ b/docs/feature_converters.md
@@ -99,3 +99,27 @@ The following defaults are based on what has been implemented for [RP2040](platf
### SparkFun Pro Micro - RP2040 and Blok :id=promicro_rp2040
Currently identical to [Adafruit KB2040](#kb2040).
+
+### STeMCell :id=stemcell
+
+Feature set currently identical to [Proton C](#proton_c).
+
+There are two versions of STeMCell available, with different pinouts:
+ - v1.0.0 - STMC_VERSION=1
+ - v1.0.1 - STMC_VERSION=2 (default)
+
+The default version selected is v1.0.1. To compile for v1.0.0, use the following flag while compiling.
+
+```make
+-e STMC_VERSION=1
+```
+STeMCell has support to swap UART and I2C pins, to enable single-wire uart communication in STM chips.
+
+The following flags has to be used while compiling, based on the pin used for split communication.
+
+| Split Pin | Compile flags |
+|-----------|---------------|
+| D3 | -e STMC_US=yes|
+| D2 | Not needed |
+| D1 | -e STMC_IS=yes|
+| D0 | Not needed |
diff --git a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
index ca414451ae6c..c1e49283995b 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
+++ b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
@@ -3,13 +3,18 @@
#pragma once
+// Board Versions:
+// https://megamind4089.github.io/STeMCell/pinout/
+// 1.0.0 - STEMCELL_VERSION=1
+// 1.0.1 - STEMCELL_VERSION=2 (Default)
+
// Left side (front)
#ifdef STEMCELL_UART_SWAP
-# define D3 PAL_LINE(GPIOA, 3)
-# define D2 PAL_LINE(GPIOA, 2)
-#else
# define D3 PAL_LINE(GPIOA, 2)
# define D2 PAL_LINE(GPIOA, 3)
+#else
+# define D3 PAL_LINE(GPIOA, 3)
+# define D2 PAL_LINE(GPIOA, 2)
#endif
// GND
// GND
@@ -37,11 +42,20 @@
#define F5 PAL_LINE(GPIOB, 2)
#define F6 PAL_LINE(GPIOB, 1)
#define F7 PAL_LINE(GPIOB, 0)
-#define B1 PAL_LINE(GPIOA, 5)
-#define B3 PAL_LINE(GPIOA, 6)
-#define B2 PAL_LINE(GPIOA, 7)
+
+#if STEMCELL_VERSION == 1
+# define B1 PAL_LINE(GPIOA, 7)
+# define B3 PAL_LINE(GPIOA, 6)
+# define B2 PAL_LINE(GPIOA, 5)
+#else
+# define B1 PAL_LINE(GPIOA, 5)
+# define B3 PAL_LINE(GPIOA, 6)
+# define B2 PAL_LINE(GPIOA, 7)
+#endif
+
#define B6 PAL_LINE(GPIOA, 4)
+// TX/RX pins of promicro
#define D5 PAL_LINE(GPIOA, 8)
#define B0 PAL_LINE(GPIOA, 9) // unconnected pin
diff --git a/platforms/chibios/converters/promicro_to_stemcell/converter.mk b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
index 657aad95b738..4b6044f51237 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/converter.mk
+++ b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
@@ -10,13 +10,23 @@ WS2812_DRIVER ?= bitbang
EEPROM_DRIVER = wear_leveling
WEAR_LEVELING_DRIVER = legacy
+
+OPT_DEFS += -DSERIAL_USART_DRIVER=SD2
+
ifeq ($(strip $(STMC_US)), yes)
- STEMCELL_UART_SWAP=yes
OPT_DEFS += -DSTEMCELL_UART_SWAP
- OPT_DEFS += -DSERIAL_USART_DRIVER=SD2
endif
ifeq ($(strip $(STMC_IS)), yes)
- STEMCELL_I2C_SWAP=yes
OPT_DEFS += -DSTEMCELL_I2C_SWAP
endif
+
+# Board Versions:
+# https://megamind4089.github.io/STeMCell/pinout/
+# 1.0.0 - STEMCELL_VERSION=1
+# 1.0.1 - STEMCELL_VERSION=2 (Default)
+ifeq ($(strip $(STMC_VERSION)), 1)
+ OPT_DEFS += -DSTEMCELL_VERSION=1
+else
+ OPT_DEFS += -DSTEMCELL_VERSION=2
+endif
From c8c2efae82304003a447c6352dedf15c84676830 Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Sat, 6 Aug 2022 15:59:57 +0800
Subject: [PATCH 25/33] update readme
---
docs/feature_converters.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/feature_converters.md b/docs/feature_converters.md
index 090ae3b70e5f..66da723c28f8 100644
--- a/docs/feature_converters.md
+++ b/docs/feature_converters.md
@@ -115,7 +115,7 @@ The default version selected is v1.0.1. To compile for v1.0.0, use the following
```
STeMCell has support to swap UART and I2C pins, to enable single-wire uart communication in STM chips.
-The following flags has to be used while compiling, based on the pin used for split communication.
+The following additional flags has to be used while compiling, based on the pin used for split communication.
| Split Pin | Compile flags |
|-----------|---------------|
From 9c0d4f93c8a2230242fd4ed47fd486d06fb542e8 Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Sat, 6 Aug 2022 16:03:07 +0800
Subject: [PATCH 26/33] Fix lint error
---
.../converters/promicro_to_stemcell/_pin_defs.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
index c1e49283995b..e2f8be8872ed 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
+++ b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
@@ -44,13 +44,13 @@
#define F7 PAL_LINE(GPIOB, 0)
#if STEMCELL_VERSION == 1
-# define B1 PAL_LINE(GPIOA, 7)
-# define B3 PAL_LINE(GPIOA, 6)
-# define B2 PAL_LINE(GPIOA, 5)
+# define B1 PAL_LINE(GPIOA, 7)
+# define B3 PAL_LINE(GPIOA, 6)
+# define B2 PAL_LINE(GPIOA, 5)
#else
-# define B1 PAL_LINE(GPIOA, 5)
-# define B3 PAL_LINE(GPIOA, 6)
-# define B2 PAL_LINE(GPIOA, 7)
+# define B1 PAL_LINE(GPIOA, 5)
+# define B3 PAL_LINE(GPIOA, 6)
+# define B2 PAL_LINE(GPIOA, 7)
#endif
#define B6 PAL_LINE(GPIOA, 4)
From fd371aeac09c0365542115662fd116e28ac5519d Mon Sep 17 00:00:00 2001
From: Sadek Baroudi
Date: Sun, 7 Aug 2022 10:27:23 -0700
Subject: [PATCH 27/33] missing elite-c pins for stemcell (#1)
---
.../chibios/converters/promicro_to_stemcell/_pin_defs.h | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
index e2f8be8872ed..11e648749c67 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
+++ b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
@@ -55,8 +55,14 @@
#define B6 PAL_LINE(GPIOA, 4)
+// Extra elite-c compatible pinout
+#define B7 PAL_LINE(GPIOC, 13)
+#define D5 PAL_LINE(GPIOC, 14)
+#define C7 PAL_LINE(GPIOC, 15)
+#define F1 PAL_LINE(GPIOA, 0)
+#define F0 PAL_LINE(GPIOA, 1)
+
// TX/RX pins of promicro
-#define D5 PAL_LINE(GPIOA, 8)
#define B0 PAL_LINE(GPIOA, 9) // unconnected pin
#define I2C1_SCL_PIN D0
From d30a976da0c7183a2903fadc384b9487e5e09129 Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Mon, 8 Aug 2022 11:22:05 +0800
Subject: [PATCH 28/33] Address comments
---
platforms/chibios/boards/STEMCELL/configs/chconf.h | 3 +++
platforms/chibios/converters/promicro_to_stemcell/converter.mk | 1 -
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/platforms/chibios/boards/STEMCELL/configs/chconf.h b/platforms/chibios/boards/STEMCELL/configs/chconf.h
index 9e1b1727359f..a14785277260 100644
--- a/platforms/chibios/boards/STEMCELL/configs/chconf.h
+++ b/platforms/chibios/boards/STEMCELL/configs/chconf.h
@@ -1,3 +1,6 @@
+// Copyright (C) 2022 Mega Mind
+// SPDX-License-Identifier: GPL-2.0-or-later
+
#pragma once
#define CH_CFG_ST_RESOLUTION 16
diff --git a/platforms/chibios/converters/promicro_to_stemcell/converter.mk b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
index 4b6044f51237..126c535574d1 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/converter.mk
+++ b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
@@ -2,7 +2,6 @@
MCU := STM32F411
BOARD := STEMCELL
BOOTLOADER := tinyuf2
-FIRMWARE_FORMAT := uf2
SERIAL_DRIVER ?= usart
WS2812_DRIVER ?= bitbang
From 84bba9c1791444c802bd4e16ffdc64bd4db26768 Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Mon, 8 Aug 2022 11:30:15 +0800
Subject: [PATCH 29/33] Move I2C pin defns to configs.h
---
.../chibios/boards/STEMCELL/configs/config.h | 21 +++++++++++++++++++
.../promicro_to_stemcell/_pin_defs.h | 3 ---
.../promicro_to_stemcell/converter.mk | 2 --
3 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/platforms/chibios/boards/STEMCELL/configs/config.h b/platforms/chibios/boards/STEMCELL/configs/config.h
index 667f81ef8674..7899853c020c 100644
--- a/platforms/chibios/boards/STEMCELL/configs/config.h
+++ b/platforms/chibios/boards/STEMCELL/configs/config.h
@@ -19,3 +19,24 @@
#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
#endif
+
+/**======================
+ ** I2C Driver
+ *========================**/
+
+#if !defined(I2C1_SDA_PIN)
+# define I2C1_SDA_PIN D0
+#endif
+
+#if !defined(I2C1_SCL_PIN)
+# define I2C1_SCL_PIN D1
+#endif
+
+/**======================
+ ** SERIAL Driver
+ *========================**/
+
+#if !defined(SERIAL_USART_DRIVER)
+# define SERIAL_USART_DRIVER SD2
+#endif
+
diff --git a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
index 11e648749c67..b66c3a8ab6ef 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
+++ b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
@@ -64,6 +64,3 @@
// TX/RX pins of promicro
#define B0 PAL_LINE(GPIOA, 9) // unconnected pin
-
-#define I2C1_SCL_PIN D0
-#define I2C1_SDA_PIN D1
diff --git a/platforms/chibios/converters/promicro_to_stemcell/converter.mk b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
index 126c535574d1..f19f2f6d4215 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/converter.mk
+++ b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
@@ -10,8 +10,6 @@ EEPROM_DRIVER = wear_leveling
WEAR_LEVELING_DRIVER = legacy
-OPT_DEFS += -DSERIAL_USART_DRIVER=SD2
-
ifeq ($(strip $(STMC_US)), yes)
OPT_DEFS += -DSTEMCELL_UART_SWAP
endif
From 9bc9b3d909a3ac10873ba9e714198a7f6305c933 Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Mon, 8 Aug 2022 15:47:56 +0800
Subject: [PATCH 30/33] Remove version support
---
docs/feature_converters.md | 11 +++--------
.../converters/promicro_to_stemcell/_pin_defs.h | 17 ++++-------------
.../promicro_to_stemcell/converter.mk | 9 ---------
3 files changed, 7 insertions(+), 30 deletions(-)
diff --git a/docs/feature_converters.md b/docs/feature_converters.md
index 66da723c28f8..800d3a825d4d 100644
--- a/docs/feature_converters.md
+++ b/docs/feature_converters.md
@@ -103,16 +103,11 @@ Currently identical to [Adafruit KB2040](#kb2040).
### STeMCell :id=stemcell
Feature set currently identical to [Proton C](#proton_c).
-
There are two versions of STeMCell available, with different pinouts:
- - v1.0.0 - STMC_VERSION=1
- - v1.0.1 - STMC_VERSION=2 (default)
-
-The default version selected is v1.0.1. To compile for v1.0.0, use the following flag while compiling.
+ - v1.0.0
+ - v2.0.0 (pre-release v1.0.1, v1.0.2)
+Default official firmware only supports v2.0.0 STeMCell.
-```make
--e STMC_VERSION=1
-```
STeMCell has support to swap UART and I2C pins, to enable single-wire uart communication in STM chips.
The following additional flags has to be used while compiling, based on the pin used for split communication.
diff --git a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
index b66c3a8ab6ef..5e2b55de6a32 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
+++ b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
@@ -3,10 +3,8 @@
#pragma once
-// Board Versions:
+// Pindefs for v2.0.0
// https://megamind4089.github.io/STeMCell/pinout/
-// 1.0.0 - STEMCELL_VERSION=1
-// 1.0.1 - STEMCELL_VERSION=2 (Default)
// Left side (front)
#ifdef STEMCELL_UART_SWAP
@@ -43,16 +41,9 @@
#define F6 PAL_LINE(GPIOB, 1)
#define F7 PAL_LINE(GPIOB, 0)
-#if STEMCELL_VERSION == 1
-# define B1 PAL_LINE(GPIOA, 7)
-# define B3 PAL_LINE(GPIOA, 6)
-# define B2 PAL_LINE(GPIOA, 5)
-#else
-# define B1 PAL_LINE(GPIOA, 5)
-# define B3 PAL_LINE(GPIOA, 6)
-# define B2 PAL_LINE(GPIOA, 7)
-#endif
-
+#define B1 PAL_LINE(GPIOA, 5)
+#define B3 PAL_LINE(GPIOA, 6)
+#define B2 PAL_LINE(GPIOA, 7)
#define B6 PAL_LINE(GPIOA, 4)
// Extra elite-c compatible pinout
diff --git a/platforms/chibios/converters/promicro_to_stemcell/converter.mk b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
index f19f2f6d4215..a69b3ee0123c 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/converter.mk
+++ b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
@@ -18,12 +18,3 @@ ifeq ($(strip $(STMC_IS)), yes)
OPT_DEFS += -DSTEMCELL_I2C_SWAP
endif
-# Board Versions:
-# https://megamind4089.github.io/STeMCell/pinout/
-# 1.0.0 - STEMCELL_VERSION=1
-# 1.0.1 - STEMCELL_VERSION=2 (Default)
-ifeq ($(strip $(STMC_VERSION)), 1)
- OPT_DEFS += -DSTEMCELL_VERSION=1
-else
- OPT_DEFS += -DSTEMCELL_VERSION=2
-endif
From 76d00174c335916883ed9bf4f4a48ffc1f715c56 Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Wed, 10 Aug 2022 06:30:23 +0800
Subject: [PATCH 31/33] Update license header based on PR checklist
---
.../chibios/boards/STEMCELL/board/board.mk | 3 +++
.../chibios/boards/STEMCELL/configs/board.h | 19 +++----------------
.../chibios/boards/STEMCELL/configs/chconf.h | 2 +-
.../chibios/boards/STEMCELL/configs/config.h | 19 +++----------------
.../chibios/boards/STEMCELL/configs/halconf.h | 19 +++----------------
.../chibios/boards/STEMCELL/configs/mcuconf.h | 17 ++---------------
.../promicro_to_stemcell/_pin_defs.h | 2 +-
.../promicro_to_stemcell/converter.mk | 4 +++-
8 files changed, 19 insertions(+), 66 deletions(-)
diff --git a/platforms/chibios/boards/STEMCELL/board/board.mk b/platforms/chibios/boards/STEMCELL/board/board.mk
index 6f743a907561..b0d1c3c4041c 100644
--- a/platforms/chibios/boards/STEMCELL/board/board.mk
+++ b/platforms/chibios/boards/STEMCELL/board/board.mk
@@ -1,3 +1,6 @@
+# Copyright 2022 Mega Mind (@megamind4089)
+# SPDX-License-Identifier: GPL-2.0-or-later
+
# Default pin config of nucleo64_411re has most pins in input pull up mode
# List of all the board related files.
diff --git a/platforms/chibios/boards/STEMCELL/configs/board.h b/platforms/chibios/boards/STEMCELL/configs/board.h
index f3d3cade416f..39cf79ab0949 100644
--- a/platforms/chibios/boards/STEMCELL/configs/board.h
+++ b/platforms/chibios/boards/STEMCELL/configs/board.h
@@ -1,19 +1,6 @@
-/* Copyright 2020 Nick Brassel (tzarc)
- * Copyright (C) 2022 Mega Mind
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
+// Copyright 2022 Mega Mind (@megamind4089)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
#pragma once
#include_next "board.h"
diff --git a/platforms/chibios/boards/STEMCELL/configs/chconf.h b/platforms/chibios/boards/STEMCELL/configs/chconf.h
index a14785277260..d25bea0d17d8 100644
--- a/platforms/chibios/boards/STEMCELL/configs/chconf.h
+++ b/platforms/chibios/boards/STEMCELL/configs/chconf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2022 Mega Mind
+// Copyright 2022 Mega Mind (@megamind4089)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
diff --git a/platforms/chibios/boards/STEMCELL/configs/config.h b/platforms/chibios/boards/STEMCELL/configs/config.h
index 7899853c020c..82f6c63636e2 100644
--- a/platforms/chibios/boards/STEMCELL/configs/config.h
+++ b/platforms/chibios/boards/STEMCELL/configs/config.h
@@ -1,19 +1,6 @@
-/* Copyright 2020 Nick Brassel (tzarc)
- * Copyright (C) 2022 Mega Mind
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
+// Copyright 2022 Mega Mind(@megamind4089)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
#pragma once
#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
diff --git a/platforms/chibios/boards/STEMCELL/configs/halconf.h b/platforms/chibios/boards/STEMCELL/configs/halconf.h
index fa12a36a75b0..f38949e62606 100644
--- a/platforms/chibios/boards/STEMCELL/configs/halconf.h
+++ b/platforms/chibios/boards/STEMCELL/configs/halconf.h
@@ -1,19 +1,6 @@
-/* Copyright 2020 Nick Brassel (tzarc)
- * Copyright (C) 2022 Mega Mind
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
+// Copyright 2022 Mega Mind (@megamind4089)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
#pragma once
#define PAL_USE_WAIT TRUE
diff --git a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
index 636a2d99633d..e4aff7a73098 100644
--- a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
+++ b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
@@ -1,18 +1,5 @@
-/*
- ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
+// Copyright 2022 Mega Mind (@megamind4089)
+// SPDX-License-Identifier: GPL-2.0-or-later
#ifndef MCUCONF_H
#define MCUCONF_H
diff --git a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
index 5e2b55de6a32..07ccb969a54d 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
+++ b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
@@ -1,4 +1,4 @@
-// Copyright 2022 QMK
+// Copyright 2022 Mega Mind (@megamind4089)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
diff --git a/platforms/chibios/converters/promicro_to_stemcell/converter.mk b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
index a69b3ee0123c..525492f96c80 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/converter.mk
+++ b/platforms/chibios/converters/promicro_to_stemcell/converter.mk
@@ -1,4 +1,6 @@
-# STM32 MCU settings for converting AVR projects
+# Copyright 2022 Mega Mind (@megamind4089)
+# SPDX-License-Identifier: GPL-2.0-or-later
+
MCU := STM32F411
BOARD := STEMCELL
BOOTLOADER := tinyuf2
From f7e8b5c333af0ffce37fe952caee4a6addf432ea Mon Sep 17 00:00:00 2001
From: Mega Mind <68985133+megamind4089@users.noreply.github.com>
Date: Thu, 11 Aug 2022 11:44:59 +0800
Subject: [PATCH 32/33] Adjusted clock to support F401 chips
---
platforms/chibios/boards/STEMCELL/configs/mcuconf.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
index e4aff7a73098..621d3fcace25 100644
--- a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
+++ b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h
@@ -35,10 +35,10 @@
#define STM32_CLOCK48_REQUIRED TRUE
#define STM32_SW STM32_SW_PLL
#define STM32_PLLSRC STM32_PLLSRC_HSE
-#define STM32_PLLM_VALUE 4
-#define STM32_PLLN_VALUE 96
-#define STM32_PLLP_VALUE 2
-#define STM32_PLLQ_VALUE 4
+#define STM32_PLLM_VALUE 8
+#define STM32_PLLN_VALUE 336
+#define STM32_PLLP_VALUE 4
+#define STM32_PLLQ_VALUE 7
#define STM32_HPRE STM32_HPRE_DIV1
#define STM32_PPRE1 STM32_PPRE1_DIV2
#define STM32_PPRE2 STM32_PPRE2_DIV1
From 57647975cb12af0d9dc391809c66a68c4cc9f5be Mon Sep 17 00:00:00 2001
From: Mariappan Ramasamy <68985133+megamind4089@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:17:09 +0800
Subject: [PATCH 33/33] Revert back the default UART changes, which does not
align with HW jumper settings
---
.../chibios/converters/promicro_to_stemcell/_pin_defs.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
index 07ccb969a54d..f5dd55905d86 100644
--- a/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
+++ b/platforms/chibios/converters/promicro_to_stemcell/_pin_defs.h
@@ -8,11 +8,11 @@
// Left side (front)
#ifdef STEMCELL_UART_SWAP
-# define D3 PAL_LINE(GPIOA, 2)
-# define D2 PAL_LINE(GPIOA, 3)
-#else
# define D3 PAL_LINE(GPIOA, 3)
# define D2 PAL_LINE(GPIOA, 2)
+#else
+# define D3 PAL_LINE(GPIOA, 2)
+# define D2 PAL_LINE(GPIOA, 3)
#endif
// GND
// GND