mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
e3142c39f0
Mostly copied from esp32-wroom-kit and Ethernet part from esp32-olimex-evb. Ethernet and serial port has been tested (on v1.2 board).
189 lines
4.4 KiB
C
189 lines
4.4 KiB
C
/*
|
|
* Copyright (C) 2018 Gunar Schorcht
|
|
*
|
|
* 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_esp32
|
|
* @brief Board definitions that are common for all ESP32 boards.
|
|
*
|
|
* This file contains board configurations that are valid for all ESP32.
|
|
*
|
|
* For detailed information about the configuration of ESP32 boards, see
|
|
* section \ref esp32_comm_periph "Common Peripherals".
|
|
*
|
|
* @author Gunar Schorcht <gunar@schorcht.net>
|
|
* @file
|
|
* @{
|
|
*/
|
|
|
|
#ifndef BOARD_COMMON_H
|
|
#define BOARD_COMMON_H
|
|
|
|
/* not required when compiling ESP32 vendor code parts */
|
|
#ifndef ESP32_IDF_CODE
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "cpu.h"
|
|
#include "periph_conf.h"
|
|
#if MODULE_ARDUINO
|
|
#include "arduino_pinmap.h"
|
|
#endif
|
|
|
|
#include "periph/gpio.h"
|
|
#include "sdk_conf.h"
|
|
|
|
#if MODULE_MTD
|
|
#include "mtd.h"
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @name External clock crystal frequency (MHz)
|
|
*
|
|
* Most boards use a 40MHz crystal, including all those based on Espressif's
|
|
* WROOM-32 and WROVER-32 modules. Those that don't, like the SparkFun ESP32
|
|
* Thing (26MHz), must define ESP32_XTAL_FREQ appropriately in their board
|
|
* configuration.
|
|
*
|
|
* An obvious side effect of a mismatch is that the UART won't sync and the
|
|
* development terminal will show garbage instead of log output.
|
|
* @{
|
|
*/
|
|
#ifndef ESP32_XTAL_FREQ
|
|
#define ESP32_XTAL_FREQ (40)
|
|
#endif
|
|
/** @} */
|
|
|
|
/**
|
|
* @name LED configuration (three predefined LEDs at maximum)
|
|
*
|
|
* @note LEDx_ACTIVE value must be declared in board configuration.
|
|
* @{
|
|
*/
|
|
#if defined(LED0_PIN) || DOXYGEN
|
|
#define LED0_MASK (BIT(LED0_PIN))
|
|
#define LED0_ON (gpio_write(LED0_PIN, LED0_ACTIVE))
|
|
#define LED0_OFF (gpio_write(LED0_PIN, !LED0_ACTIVE))
|
|
#define LED0_TOGGLE (gpio_toggle(LED0_PIN))
|
|
#endif
|
|
|
|
#if defined(LED1_PIN) || DOXYGEN
|
|
#define LED1_MASK (BIT(LED1_PIN))
|
|
#define LED1_ON (gpio_write(LED1_PIN, LED1_ACTIVE))
|
|
#define LED1_OFF (gpio_write(LED1_PIN, !LED1_ACTIVE))
|
|
#define LED1_TOGGLE (gpio_toggle(LED1_PIN))
|
|
#endif
|
|
|
|
#if defined(LED2_PIN) || DOXYGEN
|
|
#define LED2_MASK (BIT(LED2_PIN))
|
|
#define LED2_ON (gpio_write(LED2_PIN, LED2_ACTIVE))
|
|
#define LED2_OFF (gpio_write(LED2_PIN, !LED2_ACTIVE))
|
|
#define LED2_TOGGLE (gpio_toggle(LED2_PIN))
|
|
#endif
|
|
/** @} */
|
|
|
|
|
|
/**
|
|
* @name STDIO configuration
|
|
* @{
|
|
*/
|
|
/**< Default baudrate of UART for stdio */
|
|
#ifndef STDIO_UART_BAUDRATE
|
|
#define STDIO_UART_BAUDRATE (115200)
|
|
#endif
|
|
/** @} */
|
|
|
|
|
|
#if MODULE_MTD || DOXYGEN
|
|
/**
|
|
* @name MTD system drive configuration
|
|
*
|
|
* Built-in SPI flash memory is used as MTD system drive.
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* @brief MTD drive start address in SPI flash memory
|
|
*
|
|
* Defines the start address of the MTD system device in the SPI
|
|
* flash memory. It can be overridden by \ref esp32_app_spec_conf
|
|
* "application-specific board configuration"
|
|
*
|
|
* If the MTD start address is not defined or is 0, the first possible
|
|
* multiple of 0x100000 (1 MByte) is used in free SPI flash memory,
|
|
* which was determined from the partition table.
|
|
*/
|
|
#ifndef SPI_FLASH_DRIVE_START
|
|
#define SPI_FLASH_DRIVE_START 0
|
|
#endif
|
|
|
|
/** Default MTD drive definition */
|
|
#define MTD_0 mtd0
|
|
|
|
/** Pointer to the default MTD drive structure */
|
|
extern mtd_dev_t *mtd0;
|
|
|
|
/** @} */
|
|
#endif /* MODULE_MTD || DOXYGEN */
|
|
|
|
|
|
#if MODULE_SPIFFS || DOXYGEN
|
|
/**
|
|
* @name SPIFFS configuration for the system MTD device
|
|
*
|
|
* Configuration of the SPIFFS that can be used on the system MTD device.
|
|
* @{
|
|
*/
|
|
#define SPIFFS_ALIGNED_OBJECT_INDEX_TABLES 1
|
|
#define SPIFFS_READ_ONLY 0
|
|
#define SPIFFS_SINGLETON 0
|
|
#define SPIFFS_HAL_CALLBACK_EXTRA 1
|
|
#define SPIFFS_CACHE 1
|
|
/** @} */
|
|
#endif /* MODULE_SPIFFS || DOXYGEN */
|
|
|
|
|
|
/**
|
|
* @brief Initialize the hardware that is common for all ESP32 boards.
|
|
*
|
|
* This function has to be called from the board specific `board_init` function.
|
|
*/
|
|
void board_init_common(void);
|
|
|
|
/**
|
|
* @brief Print the board configuration in a human readable format
|
|
*/
|
|
void print_board_config(void);
|
|
|
|
#ifdef __cplusplus
|
|
} /* end extern "C" */
|
|
#endif
|
|
|
|
#else /* ESP32_IDF_CODE */
|
|
|
|
#ifndef DOXYGEN
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
#endif
|
|
|
|
/* declaration of `board_init_common` is required when compiling vendor code */
|
|
extern void board_init_common(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* DOXYGEN */
|
|
#endif /* ESP32_IDF_CODE */
|
|
#endif /* BOARD_COMMON_H */
|
|
/** @} */
|