From 2a8712a04f185f0e1c398d6583618781a3a2a452 Mon Sep 17 00:00:00 2001 From: Bas Stottelaar <basstottelaar@gmail.com> Date: Thu, 22 Mar 2018 22:09:33 +0100 Subject: [PATCH] boards: slwstk6000b: add support --- boards/slwstk6000b/Makefile | 5 + boards/slwstk6000b/Makefile.dep | 9 + boards/slwstk6000b/Makefile.features | 14 ++ boards/slwstk6000b/Makefile.include | 27 +++ boards/slwstk6000b/board.c | 39 ++++ boards/slwstk6000b/include/board.h | 117 +++++++++++ boards/slwstk6000b/include/gpio_params.h | 63 ++++++ boards/slwstk6000b/include/periph_conf.h | 194 ++++++++++++++++++ boards/slwstk6000b/module-info.mk | 20 ++ boards/slwstk6000b/modules.txt | 24 +++ .../modules/slwrb4150a/include/board_module.h | 111 ++++++++++ .../modules/slwrb4162a/include/board_module.h | 111 ++++++++++ 12 files changed, 734 insertions(+) create mode 100644 boards/slwstk6000b/Makefile create mode 100644 boards/slwstk6000b/Makefile.dep create mode 100644 boards/slwstk6000b/Makefile.features create mode 100644 boards/slwstk6000b/Makefile.include create mode 100644 boards/slwstk6000b/board.c create mode 100644 boards/slwstk6000b/include/board.h create mode 100644 boards/slwstk6000b/include/gpio_params.h create mode 100644 boards/slwstk6000b/include/periph_conf.h create mode 100644 boards/slwstk6000b/module-info.mk create mode 100644 boards/slwstk6000b/modules.txt create mode 100644 boards/slwstk6000b/modules/slwrb4150a/include/board_module.h create mode 100644 boards/slwstk6000b/modules/slwrb4162a/include/board_module.h diff --git a/boards/slwstk6000b/Makefile b/boards/slwstk6000b/Makefile new file mode 100644 index 0000000000..39108f4589 --- /dev/null +++ b/boards/slwstk6000b/Makefile @@ -0,0 +1,5 @@ +MODULE = board + +DIRS = $(RIOTBOARD)/common/silabs + +include $(RIOTBASE)/Makefile.base diff --git a/boards/slwstk6000b/Makefile.dep b/boards/slwstk6000b/Makefile.dep new file mode 100644 index 0000000000..8e3b8130ec --- /dev/null +++ b/boards/slwstk6000b/Makefile.dep @@ -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 diff --git a/boards/slwstk6000b/Makefile.features b/boards/slwstk6000b/Makefile.features new file mode 100644 index 0000000000..eec9ddfd7d --- /dev/null +++ b/boards/slwstk6000b/Makefile.features @@ -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 diff --git a/boards/slwstk6000b/Makefile.include b/boards/slwstk6000b/Makefile.include new file mode 100644 index 0000000000..fcb83ee567 --- /dev/null +++ b/boards/slwstk6000b/Makefile.include @@ -0,0 +1,27 @@ +include $(RIOTBOARD)/slwstk6000b/module-info.mk + +# add module specific includes +export INCLUDES += -I$(RIOTBOARD)/slwstk6000b/modules/$(BOARD_MODULE)/include + +# define the cpu used by SLWSTK6000B +export CPU = efm32 +export CPU_MODEL = $(MODULE_CPU) + +# 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 := $(MODULE_JLINK_DEVICE) +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 diff --git a/boards/slwstk6000b/board.c b/boards/slwstk6000b/board.c new file mode 100644 index 0000000000..ed1d85e517 --- /dev/null +++ b/boards/slwstk6000b/board.c @@ -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_slwstk6000b + * @{ + * + * @file + * @brief Board specific implementations SLWSTK6000B 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_SI7021 + /* initialize the Si7021 sensor */ + gpio_init(SI7021_EN_PIN, GPIO_OUT); + gpio_set(SI7021_EN_PIN); +#endif +} diff --git a/boards/slwstk6000b/include/board.h b/boards/slwstk6000b/include/board.h new file mode 100644 index 0000000000..1b38307507 --- /dev/null +++ b/boards/slwstk6000b/include/board.h @@ -0,0 +1,117 @@ +/* + * 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_slwstk6000b Silicon Labs SLWSTK6000B starter kit + * @ingroup boards + * @brief Support for the Silicon Labs SLWSTK6000B starter kit + * @{ + * + * @file + * @brief Board specific definitions for the SLWSTK6000B starter kit + * + * @author Hauke Petersen <hauke.petersen@fu-berlin.de> + * @author Bas Stottelaar <basstottelaar@gmail.com> + * @author Kai Beckmann <kai.beckmann@hs-rm.de> + */ + +#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 MODULE_PIN_F5 +/** @} */ + +/** + * @name Push button pin definitions + * @{ + */ +#define PB0_PIN MODULE_PIN_F12 +#define PB1_PIN MODULE_PIN_F13 +/** @} */ + +/** + * @name LED pin definitions + * @{ + */ +#define LED0_PIN MODULE_PIN_F10 +#define LED1_PIN MODULE_PIN_F11 +/** @} */ + +/** + * @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 MODULE_PIN_F18 +#define DISP_CS_PIN MODULE_PIN_F17 +#define DISP_EN_PIN MODULE_PIN_F14 +/** @} */ + +/** + * @name Temperature sensor configuration + * + * Connection to the on-board temperature/humidity sensor (Si7021). + * @{ + */ +#define SI7021_I2C I2C_DEV(0) +#define SI7021_EN_PIN MODULE_PIN_P37 + +#define SI70XX_PARAM_I2C_DEV SI7021_I2C +/** @} */ + +/** + * @brief Initialize the board (GPIO, sensors, clocks). + */ +void board_init(void); + +#ifdef __cplusplus +} +#endif + +#endif /* BOARD_H */ +/** @} */ diff --git a/boards/slwstk6000b/include/gpio_params.h b/boards/slwstk6000b/include/gpio_params.h new file mode 100644 index 0000000000..a95f2eae24 --- /dev/null +++ b/boards/slwstk6000b/include/gpio_params.h @@ -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_slwstk6000b + * @{ + * + * @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 */ +/** @} */ diff --git a/boards/slwstk6000b/include/periph_conf.h b/boards/slwstk6000b/include/periph_conf.h new file mode 100644 index 0000000000..feabf04891 --- /dev/null +++ b/boards/slwstk6000b/include/periph_conf.h @@ -0,0 +1,194 @@ +/* + * 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_slwstk6000b + * @{ + * + * @file + * @brief Configuration of CPU peripherals for the SLWSTK6000B starter kit + * + * @author Hauke Petersen <hauke.petersen@fu-berlin.de> + * @author Bas Stottelaar <basstottelaar@gmail.com> + * @author Kai Beckmann <kai.beckmann@hs-rm.de> + */ + +#ifndef PERIPH_CONF_H +#define PERIPH_CONF_H + +#include "cpu.h" +#include "periph_cpu.h" +#include "em_cmu.h" +#include "board_module.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Internal macro to calculate *_NUMOF based on config. + */ +#define PERIPH_NUMOF(config) (sizeof(config) / sizeof(config[0])) + +/** + * @name Clock configuration + * @{ + */ +#ifndef CLOCK_HF +#define CLOCK_HF cmuSelect_HFXO +#endif +#ifndef CLOCK_CORE_DIV +#define CLOCK_CORE_DIV cmuClkDiv_1 +#endif +#ifndef CLOCK_LFA +#define CLOCK_LFA cmuSelect_LFRCO +#endif +#ifndef CLOCK_LFB +#define CLOCK_LFB cmuSelect_LFRCO +#endif +#ifndef CLOCK_LFE +#define CLOCK_LFE cmuSelect_LFRCO +#endif +/** @} */ + +/** + * @name ADC configuration + * @{ + */ +static const adc_conf_t adc_config[] = { + { + .dev = ADC0, + .cmu = cmuClock_ADC0, + } +}; + +static const adc_chan_conf_t adc_channel_config[] = { + { + .dev = 0, + .input = adcPosSelTEMP, + .reference = adcRef1V25, + .acq_time = adcAcqTime8 + }, + { + .dev = 0, + .input = adcPosSelAVDD, + .reference = adcRef5V, + .acq_time = adcAcqTime8 + } +}; + +#define ADC_DEV_NUMOF PERIPH_NUMOF(adc_config) +#define ADC_NUMOF PERIPH_NUMOF(adc_channel_config) +/** @} */ + +/** + * @name I2C configuration + * @{ + */ +static const i2c_conf_t i2c_config[] = { + { + .dev = I2C0, + .sda_pin = MODULE_PIN_P13, + .scl_pin = MODULE_PIN_P12, + .loc = I2C_ROUTELOC0_SDALOC_LOC16 | + I2C_ROUTELOC0_SCLLOC_LOC14, + .cmu = cmuClock_I2C0, + .irq = I2C0_IRQn + } +}; + +#define I2C_NUMOF PERIPH_NUMOF(i2c_config) +#define I2C_0_ISR isr_i2c0 +/** @} */ + +/** + * @brief RTC configuration + */ +#define RTC_NUMOF (1U) + +/** + * @name RTT configuration + * @{ + */ +#define RTT_NUMOF (1U) + +#define RTT_MAX_VALUE (0xFFFFFFFF) +#define RTT_FREQUENCY (1U) +/** @} */ + +/** + * @name SPI configuration + * @{ + */ +static const spi_dev_t spi_config[] = { + { + .dev = USART1, + .mosi_pin = MODULE_PIN_F16, + .miso_pin = MODULE_PIN_P3, + .clk_pin = MODULE_PIN_F15, + .loc = USART_ROUTELOC0_RXLOC_LOC11 | + USART_ROUTELOC0_TXLOC_LOC11 | + USART_ROUTELOC0_CLKLOC_LOC11, + .cmu = cmuClock_USART1, + .irq = USART1_RX_IRQn + } +}; + +#define SPI_NUMOF PERIPH_NUMOF(spi_config) +/** @} */ + +/** + * @name Timer configuration + * + * The implementation uses two timers in cascade mode. + * @{ + */ +static const timer_conf_t timer_config[] = { + { + { + .dev = TIMER0, + .cmu = cmuClock_TIMER0 + }, + { + .dev = TIMER1, + .cmu = cmuClock_TIMER1 + }, + .irq = TIMER1_IRQn + } +}; + +#define TIMER_NUMOF PERIPH_NUMOF(timer_config) +#define TIMER_0_ISR isr_timer1 +/** @} */ + +/** + * @name UART configuration + * @{ + */ +static const uart_conf_t uart_config[] = { + { + .dev = USART0, + .rx_pin = MODULE_PIN_F7, + .tx_pin = MODULE_PIN_F6, + .loc = USART_ROUTELOC0_RXLOC_LOC0 | + USART_ROUTELOC0_TXLOC_LOC0, + .cmu = cmuClock_USART0, + .irq = USART0_RX_IRQn + } +}; + +#define UART_NUMOF PERIPH_NUMOF(uart_config) +#define UART_0_ISR_RX isr_usart0_rx +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* PERIPH_CONF_H */ +/** @} */ diff --git a/boards/slwstk6000b/module-info.mk b/boards/slwstk6000b/module-info.mk new file mode 100644 index 0000000000..7e74925165 --- /dev/null +++ b/boards/slwstk6000b/module-info.mk @@ -0,0 +1,20 @@ +# Define the default board module. +BOARD_MODULE ?= slwrb4162a + +# Find the header file that should exist if the module is supported. +MODULE_HEADER = $(wildcard $(RIOTBOARD)/slwstk6000b/modules/$(BOARD_MODULE)/include/board_module.h) + +ifeq (,$(MODULE_HEADER)) + $(error Header file for $(BOARD_MODULE) is missing) +endif + +# Lookup up CPU information using grep. +MODULE_INFO = $(shell grep $(BOARD_MODULE) $(RIOTBOARD)/slwstk6000b/modules.txt) + +ifeq (,$(MODULE_INFO)) + $(error Unable to read module information for $(BOARD_MODULE)) +endif + +# Export variables to use in this build. +export MODULE_CPU = $(word 2, $(MODULE_INFO)) +export MODULE_JLINK_DEVICE = $(word 3, $(MODULE_INFO)) diff --git a/boards/slwstk6000b/modules.txt b/boards/slwstk6000b/modules.txt new file mode 100644 index 0000000000..ff6ef8e9c6 --- /dev/null +++ b/boards/slwstk6000b/modules.txt @@ -0,0 +1,24 @@ +# This file contains the supported modules by the SLWSTK6000B wireless starter +# kit. See Silicon Labs website for more information. + +# The intended usage is to grep for the exact module name, and split by spaces +# to get the required information. + +# Module - CPU - JLink Device +slwrb4150a efr32mg1p233f256gm48 efr32mg1pxxxf256 +slwrb4150b efr32mg1p233f256gm48 efr32mg1pxxxf256 +slwrb4151a efr32mg1p232f256gm48 efr32mg1pxxxf256 +slwrb4152a efr32mg1p232f256gm48 efr32mg1pxxxf256 +slwrb4153a efr32mg1p132f256gm48 efr32mg1pxxxf256 +slwrb4154a efr32mg1p732f256gm32 efr32mg1pxxxf256 +slwrb4158a efr32mg13p733f512gm48 efr32mg13p733f512gm48 +slwrb4159a efr32mg13p632f512gm48 efr32mg13p632f512gm48 +slwrb4161a efr32mg12p432f1024gl125 efr32mg12p432f1024gl125 +slwrb4162a efr32mg12p332f1024gl125 efr32mg12p332f1024gl125 +slwrb4163a efr32mg12p433f1024gl125 efr32mg12p433f1024gl125 +slwrb4164a efr32mg12p433f1024gl125 efr32mg12p433f1024gl125 +slwrb4167a efr32mg13p733f512gm48 efr32mg13p733f512gm48 +slwrb4168a efr32mg13p732f512gm48 efr32mg13p732f512gm48 +slwrb4169a efr32mg14p733f256gm48 efr32mg14p733f256gm48 +slwrb4169b efr32mg14p733f256gm48 efr32mg14p733f256gm48 +slwrb4170a efr32mg12p433f1024gm68 efr32mg12p433f1024gm68 diff --git a/boards/slwstk6000b/modules/slwrb4150a/include/board_module.h b/boards/slwstk6000b/modules/slwrb4150a/include/board_module.h new file mode 100644 index 0000000000..70389a6836 --- /dev/null +++ b/boards/slwstk6000b/modules/slwrb4150a/include/board_module.h @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2018 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_slwstk6000b + * @{ + * + * @file + * @brief Specific definitions for SLWRB4150A module. + * + * + * @author Bas Stottelaar <basstottelaar@gmail.com> + */ + +#ifndef BOARD_MODULE_H +#define BOARD_MODULE_H + +#include "periph/gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @name Pins on the SLWRB4150A module. + * + * @note The pin numbers refer to the board module, not the base board. + * + * @{ + */ +#define MODULE_PIN_F0 GPIO_PIN(PF, 1) +#define MODULE_PIN_F1 GPIO_PIN(PF, 0) +#define MODULE_PIN_F2 GPIO_PIN(PF, 2) +#define MODULE_PIN_F3 GPIO_PIN(PF, 3) +#define MODULE_PIN_F4 GPIO_UNDEF +#define MODULE_PIN_F5 GPIO_PIN(PA, 5) +#define MODULE_PIN_F6 GPIO_PIN(PA, 0) +#define MODULE_PIN_F7 GPIO_PIN(PA, 1) +#define MODULE_PIN_F8 GPIO_PIN(PA, 2) +#define MODULE_PIN_F9 GPIO_PIN(PA, 3) +#define MODULE_PIN_F10 GPIO_PIN(PF, 4) +#define MODULE_PIN_F11 GPIO_PIN(PF, 5) +#define MODULE_PIN_F12 GPIO_PIN(PF, 6) +#define MODULE_PIN_F13 GPIO_PIN(PF, 7) +#define MODULE_PIN_F14 GPIO_PIN(PD, 15) +#define MODULE_PIN_F15 GPIO_PIN(PC, 8) +#define MODULE_PIN_F16 GPIO_PIN(PC, 6) +#define MODULE_PIN_F17 GPIO_PIN(PD, 15) +#define MODULE_PIN_F18 GPIO_PIN(PD, 13) +#define MODULE_PIN_F19 GPIO_PIN(PB, 13) +#define MODULE_PIN_F20 GPIO_PIN(PB, 12) +#define MODULE_PIN_F21 GPIO_PIN(PB, 11) +#define MODULE_PIN_P0 GPIO_PIN(PA, 2) +#define MODULE_PIN_P1 GPIO_PIN(PC, 6) +#define MODULE_PIN_P2 GPIO_PIN(PA, 3) +#define MODULE_PIN_P3 GPIO_PIN(PC, 7) +#define MODULE_PIN_P4 GPIO_PIN(PF, 6) +#define MODULE_PIN_P5 GPIO_PIN(PC, 8) +#define MODULE_PIN_P6 GPIO_PIN(PF, 7) +#define MODULE_PIN_P7 GPIO_PIN(PC, 9) +#define MODULE_PIN_P8 GPIO_PIN(PF, 4) +#define MODULE_PIN_P9 GPIO_PIN(PA, 0) +#define MODULE_PIN_P10 GPIO_PIN(PF, 3) +#define MODULE_PIN_P11 GPIO_PIN(PA, 1) +#define MODULE_PIN_P12 GPIO_PIN(PC, 10) +#define MODULE_PIN_P13 GPIO_PIN(PC, 11) +#define MODULE_PIN_P14 GPIO_PIN(PA, 4) +#define MODULE_PIN_P15 GPIO_UNDEF +#define MODULE_PIN_P16 GPIO_PIN(PA, 5) +#define MODULE_PIN_P17 GPIO_UNDEF +#define MODULE_PIN_P18 GPIO_PIN(PB, 11) +#define MODULE_PIN_P19 GPIO_UNDEF +#define MODULE_PIN_P20 GPIO_PIN(PB, 12) +#define MODULE_PIN_P21 GPIO_UNDEF +#define MODULE_PIN_P22 GPIO_PIN(PB, 13) +#define MODULE_PIN_P23 GPIO_UNDEF +#define MODULE_PIN_P24 GPIO_PIN(PF, 0) +#define MODULE_PIN_P25 GPIO_UNDEF +#define MODULE_PIN_P26 GPIO_PIN(PF, 1) +#define MODULE_PIN_P27 GPIO_UNDEF +#define MODULE_PIN_P28 GPIO_PIN(PF, 2) +#define MODULE_PIN_P29 GPIO_UNDEF +#define MODULE_PIN_P30 GPIO_UNDEF +#define MODULE_PIN_P31 GPIO_PIN(PD, 13) +#define MODULE_PIN_P32 GPIO_PIN(PF, 5) +#define MODULE_PIN_P33 GPIO_PIN(PD, 14) +#define MODULE_PIN_P34 GPIO_UNDEF +#define MODULE_PIN_P35 GPIO_PIN(PD, 15) +#define MODULE_PIN_P36 GPIO_UNDEF +#define MODULE_PIN_P37 GPIO_PIN(PD, 15) +#define MODULE_PIN_P38 GPIO_UNDEF +#define MODULE_PIN_P39 GPIO_UNDEF +#define MODULE_PIN_P40 GPIO_UNDEF +#define MODULE_PIN_P41 GPIO_UNDEF +#define MODULE_PIN_P42 GPIO_UNDEF +#define MODULE_PIN_P43 GPIO_UNDEF +#define MODULE_PIN_P44 GPIO_UNDEF +#define MODULE_PIN_P45 GPIO_UNDEF +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* BOARD_MODULE_H */ +/** @} */ diff --git a/boards/slwstk6000b/modules/slwrb4162a/include/board_module.h b/boards/slwstk6000b/modules/slwrb4162a/include/board_module.h new file mode 100644 index 0000000000..09cf74207d --- /dev/null +++ b/boards/slwstk6000b/modules/slwrb4162a/include/board_module.h @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2018 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_slwstk6000b + * @{ + * + * @file + * @brief Specific definitions for SLWRB4162A module. + * + * + * @author Bas Stottelaar <basstottelaar@gmail.com> + */ + +#ifndef BOARD_MODULE_H +#define BOARD_MODULE_H + +#include "periph/gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @name Pins on the SLWRB4162A module. + * + * @note The pin numbers refer to the board module, not the base board. + * + * @{ + */ +#define MODULE_PIN_F0 GPIO_PIN(PF, 1) +#define MODULE_PIN_F1 GPIO_PIN(PF, 0) +#define MODULE_PIN_F2 GPIO_PIN(PF, 2) +#define MODULE_PIN_F3 GPIO_PIN(PF, 3) +#define MODULE_PIN_F4 GPIO_UNDEF +#define MODULE_PIN_F5 GPIO_PIN(PA, 5) +#define MODULE_PIN_F6 GPIO_PIN(PA, 0) +#define MODULE_PIN_F7 GPIO_PIN(PA, 1) +#define MODULE_PIN_F8 GPIO_PIN(PA, 2) +#define MODULE_PIN_F9 GPIO_PIN(PA, 3) +#define MODULE_PIN_F10 GPIO_PIN(PF, 4) +#define MODULE_PIN_F11 GPIO_PIN(PF, 5) +#define MODULE_PIN_F12 GPIO_PIN(PF, 6) +#define MODULE_PIN_F13 GPIO_PIN(PF, 7) +#define MODULE_PIN_F14 GPIO_PIN(PD, 15) +#define MODULE_PIN_F15 GPIO_PIN(PC, 8) +#define MODULE_PIN_F16 GPIO_PIN(PC, 6) +#define MODULE_PIN_F17 GPIO_PIN(PD, 14) +#define MODULE_PIN_F18 GPIO_PIN(PD, 13) +#define MODULE_PIN_F19 GPIO_PIN(PB, 12) +#define MODULE_PIN_F20 GPIO_PIN(PB, 12) +#define MODULE_PIN_F21 GPIO_PIN(PB, 11) +#define MODULE_PIN_P0 GPIO_PIN(PD, 8) +#define MODULE_PIN_P1 GPIO_PIN(PA, 6) +#define MODULE_PIN_P2 GPIO_PIN(PD, 9) +#define MODULE_PIN_P3 GPIO_PIN(PA, 7) +#define MODULE_PIN_P4 GPIO_PIN(PD, 10) +#define MODULE_PIN_P5 GPIO_PIN(PA, 8) +#define MODULE_PIN_P6 GPIO_PIN(PD, 11) +#define MODULE_PIN_P7 GPIO_PIN(PA, 9) +#define MODULE_PIN_P8 GPIO_PIN(PD, 12) +#define MODULE_PIN_P9 GPIO_PIN(PB, 6) +#define MODULE_PIN_P10 GPIO_PIN(PC, 9) +#define MODULE_PIN_P11 GPIO_PIN(PB, 7) +#define MODULE_PIN_P12 GPIO_PIN(PC, 10) +#define MODULE_PIN_P13 GPIO_PIN(PC, 11) +#define MODULE_PIN_P14 GPIO_PIN(PB, 8) +#define MODULE_PIN_P15 GPIO_PIN(PB, 9) +#define MODULE_PIN_P16 GPIO_PIN(PC, 4) +#define MODULE_PIN_P17 GPIO_PIN(PC, 5) +#define MODULE_PIN_P18 GPIO_UNDEF +#define MODULE_PIN_P19 GPIO_UNDEF +#define MODULE_PIN_P20 GPIO_PIN(PF, 12) +#define MODULE_PIN_P21 GPIO_PIN(PF, 14) +#define MODULE_PIN_P22 GPIO_PIN(PF, 15) +#define MODULE_PIN_P23 GPIO_PIN(PI, 0) +#define MODULE_PIN_P24 GPIO_PIN(PI, 1) +#define MODULE_PIN_P25 GPIO_PIN(PI, 2) +#define MODULE_PIN_P26 GPIO_PIN(PI, 3) +#define MODULE_PIN_P27 GPIO_PIN(PJ, 14) +#define MODULE_PIN_P28 GPIO_PIN(PJ, 15) +#define MODULE_PIN_P29 GPIO_PIN(PK, 0) +#define MODULE_PIN_P30 GPIO_PIN(PK, 1) +#define MODULE_PIN_P31 GPIO_PIN(PK, 2) +#define MODULE_PIN_P32 GPIO_UNDEF +#define MODULE_PIN_P33 GPIO_PIN(PA, 0) +#define MODULE_PIN_P34 GPIO_PIN(PA, 1) +#define MODULE_PIN_P35 GPIO_PIN(PA, 2) +#define MODULE_PIN_P36 GPIO_PIN(PA, 3) +#define MODULE_PIN_P37 GPIO_PIN(PB, 10) +#define MODULE_PIN_P38 GPIO_UNDEF +#define MODULE_PIN_P39 GPIO_UNDEF +#define MODULE_PIN_P40 GPIO_UNDEF +#define MODULE_PIN_P41 GPIO_PIN(PF, 8) +#define MODULE_PIN_P42 GPIO_PIN(PF, 9) +#define MODULE_PIN_P43 GPIO_PIN(PF, 10) +#define MODULE_PIN_P44 GPIO_PIN(PF, 11) +#define MODULE_PIN_P45 GPIO_PIN(PF, 12) +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* BOARD_MODULE_H */ +/** @} */ -- GitLab