1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 01:12:44 +01:00
RIOT/boards/common/gd32v/include/cfg_spi_default.h
Gunar Schorcht 89846f8cea boards/common/gd32v: cleanup default I2C and SPI config
This commit includes the following cleanups:
- The macros `I2C_DEV_1_USED` and `SPI_DEV_1_USED` are now used with the values 0 and 1. This allows to enable but also to disable the second interface even if the board definition enables it by default.
- The second I2C device `I2C_DEV(1)` and the second SPI device `SPI_DEV(1)` are now disabled by default.
- The second SPI device `SPI_DEV(1)` now uses PB5 as default CS signal instead of PA4 to keep PA4 free for ADC or DAC even if `SPI_DEV(1)` is used, for example for the TFT display.
2023-08-07 12:48:15 +02:00

111 lines
2.9 KiB
C

/*
* Copyright (C) 2020 Koen Zandberg <koen@bergzand.net>
* 2023 Gunar Schorcht <gunar@schorcht.net>
*
* 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_common_gd32v
* @{
*
* @file
* @brief Common peripheral configuration for GD32VF103 boards
*
* @author Koen Zandberg <koen@bergzand.net>
* @author Gunar Schorcht <gunar@schorcht.net>
*/
#ifndef CFG_SPI_DEFAULT_H
#define CFG_SPI_DEFAULT_H
#include "periph_cpu.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name SPI configuration
* @{
*/
/**
* @brief Disable the second SPI device `SPI_DEV(1)` by default
*
* The second SPI device `SPI_DEV(1)` is only defined if `SPI_DEV_1_USED`
* is set to 1 by the board.
* This allows to use the default configuration with one or two SPI devices
* depending on whether other peripherals are enabled that would collide with
* the SPI devices.
*/
#ifndef SPI_DEV_1_USED
#define SPI_DEV_1_USED 0
#endif
/**
* @brief Defines PB12 as the default CS signal for `SPI_DEV(0)`
*
* Overriding this default allows the use of another pin as CS signal if
* the default CS signal is connected to an unused hardware.
*/
#ifndef SPI_DEV_0_CS
#define SPI_DEV_0_CS GPIO_PIN(PORT_B, 12)
#endif
/**
* @brief Defines PA4 as the default CS signal for `SPI_DEV(1)`
*
* Overriding this default allows the use of another pin as CS signal if
* the default CS signal is connected to an unused hardware.
*/
#ifndef SPI_DEV_1_CS
#define SPI_DEV_1_CS GPIO_PIN(PORT_B, 5)
#endif
/**
* @brief Default SPI device configuration
*
* The default SPI device configuration allows to define up to two SPI devices
* `SPI_DEV(0)` and `SPI_DEV(1)`. `SPI_DEV(0)` is always defined if the SPI
* peripheral is enabled by the module `periph_spi`. The second SPI device
* `SPI_DEV(1)` is only defined if `SPI_DEV_1_USED` is set to 1 by the board.
* This allows to use the default configuration with one or two SPI devices
* depending on whether other peripherals are enabled that would collide with
* the SPI devices.
*/
static const spi_conf_t spi_config[] = {
{
.dev = SPI1,
.mosi_pin = GPIO_PIN(PORT_B, 15),
.miso_pin = GPIO_PIN(PORT_B, 14),
.sclk_pin = GPIO_PIN(PORT_B, 13),
.cs_pin = SPI_DEV_0_CS,
.rcumask = RCU_APB1EN_SPI1EN_Msk,
.apbbus = APB1,
},
#if SPI_DEV_1_USED
{
.dev = SPI0,
.mosi_pin = GPIO_PIN(PORT_A, 7),
.miso_pin = GPIO_PIN(PORT_A, 6),
.sclk_pin = GPIO_PIN(PORT_A, 5),
.cs_pin = SPI_DEV_1_CS,
.rcumask = RCU_APB2EN_SPI0EN_Msk,
.apbbus = APB2,
},
#endif
};
#define SPI_NUMOF ARRAY_SIZE(spi_config)
/** @} */
#ifdef __cplusplus
}
#endif
#endif /* CFG_SPI_DEFAULT_H */
/** @} */