-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #8630 from basilfx/feature/efm32_slstk3401a
boards: slstk3401a: add support (v2)
- Loading branch information
Showing
51 changed files
with
23,681 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
MODULE = board | ||
|
||
DIRS = $(RIOTBOARD)/common/silabs | ||
|
||
include $(RIOTBASE)/Makefile.base |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
ifneq (,$(filter saul_default,$(USEMODULE))) | ||
USEMODULE += saul_gpio | ||
USEMODULE += si7021 | ||
endif | ||
|
||
# include board common dependencies | ||
include $(RIOTBOARD)/common/silabs/Makefile.dep | ||
|
||
include $(RIOTCPU)/efm32/Makefile.dep |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Put defined MCU peripherals here (in alphabetical order) | ||
FEATURES_PROVIDED += periph_adc | ||
FEATURES_PROVIDED += periph_gpio | ||
FEATURES_PROVIDED += periph_i2c | ||
FEATURES_PROVIDED += periph_rtc | ||
FEATURES_PROVIDED += periph_rtt | ||
FEATURES_PROVIDED += periph_spi | ||
FEATURES_PROVIDED += periph_timer | ||
FEATURES_PROVIDED += periph_uart | ||
|
||
# The board MPU family (used for grouping by the CI system) | ||
FEATURES_MCU_GROUP = cortex_m4_2 | ||
|
||
-include $(RIOTCPU)/efm32/Makefile.features |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# define the cpu used by SLSTK3401A | ||
export CPU = efm32 | ||
export CPU_MODEL = efm32pg1b200f256gm48 | ||
|
||
# set default port depending on operating system | ||
PORT_LINUX ?= /dev/ttyACM0 | ||
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*))) | ||
|
||
# setup serial terminal | ||
include $(RIOTMAKE)/tools/serial.inc.mk | ||
|
||
# setup JLink for flashing | ||
export JLINK_DEVICE := $(CPU_MODEL) | ||
include $(RIOTMAKE)/tools/jlink.inc.mk | ||
|
||
# add board common drivers | ||
USEMODULE += boards_common_silabs | ||
USEMODULE += silabs_aem | ||
USEMODULE += silabs_bc | ||
|
||
# include board common | ||
include $(RIOTBOARD)/common/silabs/Makefile.include |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
/* | ||
* Copyright (C) 2015-2018 Freie Universität Berlin | ||
* | ||
* This file is subject to the terms and conditions of the GNU Lesser | ||
* General Public License v2.1. See the file LICENSE in the top level | ||
* directory for more details. | ||
*/ | ||
|
||
/** | ||
* @ingroup boards_slstk3401a | ||
* @{ | ||
* | ||
* @file | ||
* @brief Board specific implementations SLSTK3401A board | ||
* | ||
* @author Hauke Petersen <hauke.petersen@fu-berlin.de> | ||
* @author Bas Stottelaar <basstottelaar@gmail.com> | ||
* | ||
* @} | ||
*/ | ||
|
||
#include "board.h" | ||
#include "board_common.h" | ||
#include "periph/gpio.h" | ||
|
||
void board_init(void) | ||
{ | ||
/* initialize the CPU */ | ||
cpu_init(); | ||
|
||
/* perform common board initialization */ | ||
board_common_init(); | ||
|
||
#ifdef MODULE_SI70XX | ||
/* initialize the Si7021 sensor */ | ||
gpio_init(SI7021_EN_PIN, GPIO_OUT); | ||
gpio_set(SI7021_EN_PIN); | ||
#endif | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
/* | ||
* Copyright (C) 2015-2018 Freie Universität Berlin | ||
* | ||
* This file is subject to the terms and conditions of the GNU Lesser | ||
* General Public License v2.1. See the file LICENSE in the top level | ||
* directory for more details. | ||
*/ | ||
|
||
/** | ||
* @defgroup boards_slstk3401a Silicon Labs SLSTK3401A starter kit | ||
* @ingroup boards | ||
* @brief Support for the Silicon Labs SLSTK3401A starter kit | ||
* @{ | ||
* | ||
* @file | ||
* @brief Board specific definitions for the SLSTK3401A starter kit | ||
* | ||
* @author Hauke Petersen <hauke.petersen@fu-berlin.de> | ||
* @author Bas Stottelaar <basstottelaar@gmail.com> | ||
*/ | ||
|
||
#ifndef BOARD_H | ||
#define BOARD_H | ||
|
||
#include "cpu.h" | ||
#include "periph_conf.h" | ||
#include "periph/gpio.h" | ||
#include "periph/spi.h" | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/** | ||
* @name Xtimer configuration | ||
* | ||
* The timer runs at 250 KHz to increase accuracy. | ||
* @{ | ||
*/ | ||
#define XTIMER_HZ (250000UL) | ||
#define XTIMER_WIDTH (16) | ||
/** @} */ | ||
|
||
/** | ||
* @name Board controller configuration | ||
* | ||
* Define the GPIO pin to enable the BC, to allow serial communication | ||
* via the USB port. | ||
* @{ | ||
*/ | ||
#define BC_PIN GPIO_PIN(PA, 5) | ||
/** @} */ | ||
|
||
/** | ||
* @name Push button pin definitions | ||
* @{ | ||
*/ | ||
#define PB0_PIN GPIO_PIN(PF, 6) | ||
#define PB1_PIN GPIO_PIN(PF, 7) | ||
/** @} */ | ||
|
||
/** | ||
* @name LED pin definitions | ||
* @{ | ||
*/ | ||
#define LED0_PIN GPIO_PIN(PF, 4) | ||
#define LED1_PIN GPIO_PIN(PF, 5) | ||
/** @} */ | ||
|
||
/** | ||
* @name Macros for controlling the on-board LEDs | ||
* @{ | ||
*/ | ||
#define LED0_ON gpio_set(LED0_PIN) | ||
#define LED0_OFF gpio_clear(LED0_PIN) | ||
#define LED0_TOGGLE gpio_toggle(LED0_PIN) | ||
#define LED1_ON gpio_set(LED1_PIN) | ||
#define LED1_OFF gpio_clear(LED1_PIN) | ||
#define LED1_TOGGLE gpio_toggle(LED1_PIN) | ||
/** @} */ | ||
|
||
/** | ||
* @name Display configuration | ||
* | ||
* Connection to the on-board Sharp Memory LCD (LS013B7DH03). | ||
* @{ | ||
*/ | ||
#define DISP_SPI SPI_DEV(0) | ||
#define DISP_COM_PIN GPIO_PIN(PD, 13) | ||
#define DISP_CS_PIN GPIO_PIN(PD, 14) | ||
#define DISP_EN_PIN GPIO_PIN(PD, 15) | ||
/** @} */ | ||
|
||
/** | ||
* @name Temperature sensor configuration | ||
* | ||
* Connection to the on-board temperature/humidity sensor (Si7021). | ||
* @{ | ||
*/ | ||
#define SI7021_I2C I2C_DEV(0) | ||
#define SI7021_EN_PIN GPIO_PIN(PD, 9) | ||
|
||
#define SI70XX_PARAM_I2C_DEV SI7021_I2C | ||
/** @} */ | ||
|
||
/** | ||
* @brief Initialize the board (GPIO, sensors, clocks). | ||
*/ | ||
void board_init(void); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* BOARD_H */ | ||
/** @} */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
/* | ||
* Copyright (C) 2016-2017 Bas Stottelaar <basstottelaar@gmail.com> | ||
* | ||
* This file is subject to the terms and conditions of the GNU Lesser | ||
* General Public License v2.1. See the file LICENSE in the top level | ||
* directory for more details. | ||
*/ | ||
|
||
/** | ||
* @ingroup boards_slstk3401a | ||
* @{ | ||
* | ||
* @file | ||
* @brief Board specific configuration of direct mapped GPIOs | ||
* | ||
* @author Bas Stottelaar <basstottelaar@gmail.com> | ||
*/ | ||
|
||
#ifndef GPIO_PARAMS_H | ||
#define GPIO_PARAMS_H | ||
|
||
#include "board.h" | ||
#include "saul/periph.h" | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/** | ||
* @brief GPIO pin configuration | ||
*/ | ||
static const saul_gpio_params_t saul_gpio_params[] = | ||
{ | ||
{ | ||
.name = "LED 0", | ||
.pin = LED0_PIN, | ||
.mode = GPIO_OUT | ||
}, | ||
{ | ||
.name = "LED 1", | ||
.pin = LED1_PIN, | ||
.mode = GPIO_OUT | ||
}, | ||
{ | ||
.name = "Button 1", | ||
.pin = PB0_PIN, | ||
.mode = GPIO_IN_PU, | ||
.flags = SAUL_GPIO_INVERTED | ||
}, | ||
{ | ||
.name = "Button 2", | ||
.pin = PB1_PIN, | ||
.mode = GPIO_IN_PU, | ||
.flags = SAUL_GPIO_INVERTED | ||
} | ||
}; | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* GPIO_PARAMS_H */ | ||
/** @} */ |
Oops, something went wrong.