1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

Merge pull request #17424 from gschorcht/cpu/esp/kconfig_cpu_frequency

cpu/esp: integrate CPU clock frequency selection in Kconfig
This commit is contained in:
Alexandre Abadie 2022-01-04 12:06:56 +01:00 committed by GitHub
commit 1a3f2d908a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 79 additions and 29 deletions

View File

@ -1,4 +1,5 @@
# Copyright (c) 2020 HAW Hamburg
# 2021 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
@ -77,11 +78,6 @@ config HAS_PERIPH_ADC_CTRL
help
Indicates that an ESP32 ADC controller peripheral is present.
config HAS_ESP_SPI_RAM
bool
help
Indicates that the a RAM is present on the SPI bus.
## Common CPU symbols
config CPU_CORE
default "xtensa-lx6" if CPU_CORE_XTENSA_LX6
@ -99,21 +95,36 @@ config CPU_MODEL
config CPU
default "esp32" if CPU_FAM_ESP32
menu "ESP32 configurations"
menu "ESP32 specific configurations"
depends on TEST_KCONFIG
depends on HAS_ARCH_ESP32
config MODULE_ESP_SPI_RAM
bool "SPI RAM support"
select MODULE_ESP_IDF_HEAP
depends on HAS_ESP_SPI_RAM
select MODULE_ESP_IDF_HEAP
help
Say y to use external SPI RAM connected through the FSPI interface.
choice
bool "CPU clock frequency"
default ESP32_DEFAULT_CPU_FREQ_MHZ_80
config MODULE_ESP_JTAG
bool "Enable JTAG debugging interface"
depends on HAS_ESP_JTAG
config ESP32_DEFAULT_CPU_FREQ_MHZ_2
bool "2 MHz"
config ESP32_DEFAULT_CPU_FREQ_MHZ_40
bool "40 MHz"
config ESP32_DEFAULT_CPU_FREQ_MHZ_80
bool "80 MHz"
config ESP32_DEFAULT_CPU_FREQ_MHZ_160
bool "160 MHz"
config ESP32_DEFAULT_CPU_FREQ_MHZ_240
bool "240 MHz"
endchoice
config MODULE_ESP_SPI_RAM
bool "SPI RAM support"
depends on HAS_ESP_SPI_RAM
select MODULE_ESP_IDF_HEAP
help
Say y to use external SPI RAM connected through the FSPI interface.
config MODULE_ESP_JTAG
bool "Enable JTAG debugging interface"
depends on HAS_ESP_JTAG
endmenu

View File

@ -29,15 +29,34 @@ extern "C" {
#endif
/**
* @name Clock configuration
* @{
*/
* @name Clock configuration
* @{
*/
#ifndef DOXYGEN
/* Mapping of Kconfig defines to the respective enumeration values */
#if CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ_2
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ 2
#elif CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ_40
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ 40
#elif CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ_80
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ 80
#elif CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ_160
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ 160
#elif CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ_240
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ 240
#endif
#endif
/**
* @brief Defines the CPU frequency [values = 2, 40, 80, 160 and 240]
*/
#ifndef CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ 80
#endif
/**
* @brief Mapping configured ESP32 default clock to CLOCK_CORECLOCK define
*/
#define CLOCK_CORECLOCK (1000000UL * CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ)
/** @} */
@ -60,16 +79,6 @@ extern "C" {
#define CONFIG_LOG_DEFAULT_LEVEL LOG_LEVEL
#endif
/**
* ESP32 specific configuration
*
* CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ can be overridden by an application
* specific SDK configuration file.
*/
#ifndef CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ 80
#endif
/**
* ESP32 specific configuration
*

View File

@ -61,6 +61,22 @@ config CPU_MODEL
config CPU
default "esp8266" if CPU_FAM_ESP8266
menu "ESP8266 specific configurations"
depends on TEST_KCONFIG
depends on HAS_ARCH_ESP8266
choice
bool "CPU clock frequency"
default ESP8266_CPU_FREQUENCY_80
config ESP8266_CPU_FREQUENCY_80
bool "80 MHz"
config ESP8266_CPU_FREQUENCY_160
bool "160 MHz"
endchoice
endmenu
source "$(RIOTCPU)/esp_common/Kconfig"
config MODULE_ESP_I2C_SW

View File

@ -33,6 +33,16 @@ extern "C" {
* @name Clock configuration
* @{
*/
#ifndef DOXYGEN
/* Mapping of Kconfig defines to the respective enumeration values */
#if CONFIG_ESP8266_CPU_FREQUENCY_80
#define ESP8266_CPU_FREQUENCY 80
#elif CONFIG_ESP8266_CPU_FREQUENCY_160
#define ESP8266_CPU_FREQUENCY 160
#endif
#endif
/**
* @brief Defines the CPU frequency in MHz
*
@ -41,6 +51,10 @@ extern "C" {
#ifndef ESP8266_CPU_FREQUENCY
#define ESP8266_CPU_FREQUENCY (80)
#endif
/**
* @brief Mapping configured ESP8266 default clock to CLOCK_CORECLOCK define
*/
#define CLOCK_CORECLOCK (1000000UL * ESP8266_CPU_FREQUENCY)
/** @} */