Skip to content

Commit

Permalink
Merge #19923
Browse files Browse the repository at this point in the history
19923: boards: add Silabs EFM32 Giant Gecko GG11 Starter Kit r=benpicco a=gschorcht

### Contribution description

The PR adds the support for the EFM32GG11B family and the Silabs EFM32 Giant Gecko GG11 Starter Kit board.

The Silabs EFM32 Giant Gecko GG11 has the following on-board features:

- EFM32GG11B MCU with 2 MB flash and 512 kB RAM
- J-Link USB debugger
- 176x176 RGB LCD (not supported)
- 2 user buttons, 2 user RGB LEDs and a touch slider
- Si7021 Relative Humidity and Temperature Sensor
- Si7210 Hall-Effect Sensor (not supported)
- USB OTG interface (Device mode supported)
- 32 MByte Quad-SPI Flash (not supported yet)
- SD card slot (not supported yet, follow-up PR based on PR #19760)
- RJ-45 Ethernet (not supported)
- Dual microphones (not supported)

### Testing procedure

Basic tests should work.

### Issues/PRs references

Co-authored-by: Gunar Schorcht <[email protected]>
  • Loading branch information
bors[bot] and gschorcht authored Sep 17, 2023
2 parents 9609a49 + 80e99dc commit 7a5348a
Show file tree
Hide file tree
Showing 140 changed files with 389,718 additions and 3 deletions.
32 changes: 32 additions & 0 deletions boards/slstk3701a/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Copyright (c) 2020 HAW Hamburg
#
# 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.

config BOARD
default "slstk3701a" if BOARD_SLSTK3701A

config BOARD_SLSTK3701A
bool
default y
select BOARD_COMMON_SILABS
select CPU_MODEL_EFM32GG11B820F2048GL192
select HAS_PERIPH_ADC
select HAS_PERIPH_DAC
select HAS_PERIPH_I2C
select HAS_PERIPH_RTC
select HAS_PERIPH_RTT
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART
select HAS_PERIPH_UART_MODECFG
select HAS_PERIPH_USBDEV

select HAVE_SAUL_GPIO
select HAVE_SI7021

select MODULE_SILABS_AEM if TEST_KCONFIG
select MODULE_SILABS_BC if TEST_KCONFIG

source "$(RIOTBOARD)/common/silabs/Kconfig"
5 changes: 5 additions & 0 deletions boards/slstk3701a/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
MODULE = board

DIRS = $(RIOTBOARD)/common/silabs

include $(RIOTBASE)/Makefile.base
13 changes: 13 additions & 0 deletions boards/slstk3701a/Makefile.dep
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
ifneq (,$(filter saul_default,$(USEMODULE)))
USEMODULE += efm32_coretemp
USEMODULE += saul_gpio
USEMODULE += si7021
endif

# add board common drivers
USEMODULE += boards_common_silabs
USEMODULE += silabs_aem
USEMODULE += silabs_bc

# include board common dependencies
include $(RIOTBOARD)/common/silabs/Makefile.dep
16 changes: 16 additions & 0 deletions boards/slstk3701a/Makefile.features
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
CPU = efm32
CPU_FAM = efm32gg11b
CPU_MODEL = efm32gg11b820f2048gl192

# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_adc
FEATURES_PROVIDED += periph_dac
FEATURES_PROVIDED += periph_i2c
FEATURES_PROVIDED += periph_rtc
FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_spi
FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart periph_uart_modecfg
FEATURES_PROVIDED += periph_usbdev

include $(RIOTBOARD)/common/silabs/Makefile.features
12 changes: 12 additions & 0 deletions boards/slstk3701a/Makefile.include
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# 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
JLINK_PRE_FLASH = r

# include board common
include $(RIOTBOARD)/common/silabs/Makefile.include
31 changes: 31 additions & 0 deletions boards/slstk3701a/board.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* Copyright (C) 2015-2020 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_slstk3701a
* @{
*
* @file
* @brief Board specific implementations SLSTK3701A board
*
* @author Hauke Petersen <[email protected]>
* @author Bas Stottelaar <[email protected]>
*
* @}
*/

#include "board.h"
#include "board_common.h"

void board_init(void)
{
#ifndef RIOTBOOT
/* perform common board initialization */
board_common_init();
#endif
}
Loading

0 comments on commit 7a5348a

Please sign in to comment.