blob: 9eb97689bbe0dad33792ffb244fab4a898838be3 [file] [log] [blame]
#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
if ARCH_CHIP_ESPRESSIF || ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2
config ESPRESSIF_CHIP_SERIES
string
default "esp32c3" if ARCH_CHIP_ESP32C3
default "esp32c6" if ARCH_CHIP_ESP32C6
default "esp32h2" if ARCH_CHIP_ESP32H2
default "unknown"
choice ESPRESSIF_FLASH
prompt "Flash Size"
default ESPRESSIF_FLASH_4M if ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2
config ESPRESSIF_FLASH_2M
bool "2 MB"
config ESPRESSIF_FLASH_4M
bool "4 MB"
config ESPRESSIF_FLASH_8M
bool "8 MB"
config ESPRESSIF_FLASH_16M
bool "16 MB"
endchoice # ESPRESSIF_FLASH
config ESPRESSIF_FLASH_DETECT
bool "Auto-detect FLASH size"
default n
---help---
Auto detect flash size when flashing.
config ESPRESSIF_NUM_CPUS
int
default 1 if ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2
choice ESPRESSIF_CPU_FREQ
prompt "CPU frequency"
default ESPRESSIF_CPU_FREQ_96 if ARCH_CHIP_ESP32H2
default ESPRESSIF_CPU_FREQ_160 if ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6
---help---
CPU frequency to be set on application startup.
config ESPRESSIF_CPU_FREQ_40
bool "40 MHz"
depends on ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6
---help---
Set the CPU frequency to 40 MHz.
config ESPRESSIF_CPU_FREQ_48
bool "48 MHz"
depends on ARCH_CHIP_ESP32H2
---help---
Set the CPU frequency to 48 MHz.
config ESPRESSIF_CPU_FREQ_64
bool "64 MHz"
depends on ARCH_CHIP_ESP32H2
---help---
Set the CPU frequency to 64 MHz.
config ESPRESSIF_CPU_FREQ_80
bool "80 MHz"
depends on ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6
---help---
Set the CPU frequency to 80 MHz.
config ESPRESSIF_CPU_FREQ_96
bool "96 MHz"
depends on ARCH_CHIP_ESP32H2
---help---
Set the CPU frequency to 96 MHz.
config ESPRESSIF_CPU_FREQ_160
bool "160 MHz"
depends on ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6
---help---
Set the CPU frequency to 160 MHz.
endchoice # ESPRESSIF_CPU_FREQ
config ESPRESSIF_CPU_FREQ_MHZ
int
default 40 if ESPRESSIF_CPU_FREQ_40
default 48 if ESPRESSIF_CPU_FREQ_48
default 64 if ESPRESSIF_CPU_FREQ_64
default 80 if ESPRESSIF_CPU_FREQ_80
default 96 if ESPRESSIF_CPU_FREQ_96
default 160 if ESPRESSIF_CPU_FREQ_160
config ESPRESSIF_REGION_PROTECTION
bool "Enable region protection"
default y
select ARCH_USE_MPU
---help---
Configure the MPU to disable access to invalid memory regions.
config ESPRESSIF_RUN_IRAM
bool "Run from IRAM"
default n
---help---
This loads all of NuttX inside IRAM. Used to test somewhat small
images that can fit entirely in IRAM.
config ESPRESSIF_ESPTOOLPY_NO_STUB
bool "Disable download stub"
default n
---help---
The flasher tool sends a precompiled download stub first by default.
That stub allows things like compressed downloads and more.
Usually you should not need to disable that feature.
It is only required to be disabled in certain scenarios when either
Secure Boot V2 or Flash Encryption is enabled.
config ESPRESSIF_HAL_ASSERTIONS
bool "Enable HAL assertions"
depends on DEBUG_ASSERTIONS
default y
---help---
Enable the assertions implemented in the HAL. Otherwise, the assertions
are replaced by empty macros.
config ESPRESSIF_SOC_RTC_MEM_SUPPORTED
bool
default n
menu "Bootloader and Image Configuration"
config ESPRESSIF_SIMPLE_BOOT
bool
depends on !ESPRESSIF_BOOTLOADER_MCUBOOT
default y
config ESPRESSIF_BOOTLOADER_MCUBOOT
bool "Enable MCUboot-bootable format"
select ESPRESSIF_HAVE_OTA_PARTITION
---help---
Enables the Espressif port of MCUboot to be used as 2nd stage bootloader.
config ESPRESSIF_MCUBOOT_VERSION
string "MCUboot version"
depends on ESPRESSIF_BOOTLOADER_MCUBOOT
default "8a07053d42e592c85cb35b79c4de1b7749943387"
choice ESPRESSIF_ESPTOOL_TARGET_SLOT
prompt "Target slot for image flashing"
default ESPRESSIF_ESPTOOL_TARGET_PRIMARY
depends on ESPRESSIF_HAVE_OTA_PARTITION
---help---
Slot to which ESPTOOL will flash the generated binary image.
config ESPRESSIF_ESPTOOL_TARGET_PRIMARY
bool "Application image primary slot"
---help---
This assumes that the generated image is already pre-validated.
This is the recommended option for the initial stages of the
application firmware image development.
config ESPRESSIF_ESPTOOL_TARGET_SECONDARY
bool "Application image secondary slot"
---help---
The application needs to confirm the generated image as valid,
otherwise the bootloader may consider it invalid and perform the
rollback of the update after a reset.
This is the choice most suitable for the development and verification
of a secure firmware update workflow.
endchoice
config ESPRESSIF_MCUBOOT_SIGN_IMAGE_VERSION
string "Sign image version"
depends on ESPRESSIF_BOOTLOADER_MCUBOOT
default "1.0.0"
config ESPRESSIF_APP_MCUBOOT_HEADER_SIZE
int "Application image header size (in bytes)"
default 32
depends on ESPRESSIF_BOOTLOADER_MCUBOOT
config ESPRESSIF_HAVE_OTA_PARTITION
bool
default n
if ESPRESSIF_HAVE_OTA_PARTITION
comment "Application Image OTA Update support"
config ESPRESSIF_OTA_PRIMARY_SLOT_OFFSET
hex "Application image primary slot offset"
default 0x20000
config ESPRESSIF_OTA_PRIMARY_SLOT_DEVPATH
string "Application image primary slot device path"
default "/dev/ota0"
config ESPRESSIF_OTA_SECONDARY_SLOT_OFFSET
hex "Application image secondary slot offset"
default 0x120000
config ESPRESSIF_OTA_SECONDARY_SLOT_DEVPATH
string "Application image secondary slot device path"
default "/dev/ota1"
config ESPRESSIF_OTA_SLOT_SIZE
hex "Application image slot size (in bytes)"
default 0x100000
config ESPRESSIF_OTA_SCRATCH_OFFSET
hex "Scratch partition offset"
default 0x220000
config ESPRESSIF_OTA_SCRATCH_SIZE
hex "Scratch partition size"
default 0x40000
config ESPRESSIF_OTA_SCRATCH_DEVPATH
string "Scratch partition device path"
default "/dev/otascratch"
endif # ESPRESSIF_HAVE_OTA_PARTITION
config ESPRESSIF_SECURE_FLASH_ENC_ENABLED
bool "Enable Flash Encryption on boot (READ DOCS FIRST)"
default n
depends on ESPRESSIF_BOOTLOADER_MCUBOOT
select ESPRESSIF_EFUSE
---help---
If this option is set, flash contents will be encrypted by the bootloader on first boot.
Note: After first boot, the system will be permanently encrypted. Re-flashing an encrypted
system is complicated and not always possible.
Read https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html
before enabling.
Note: enabling this option will automatically select ESPRESSIF_EFUSE and ESPRESSIF_EFUSE_VIRTUAL,
as a mean to avoid accidental burning of the E-Fuses.
if ESPRESSIF_SECURE_FLASH_ENC_ENABLED
config ESPRESSIF_SECURE_FLASH_UART_BOOTLOADER_ALLOW_ENC
bool "Leave UART bootloader encryption enabled"
depends on ESPRESSIF_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
default n
help
If not set (default), the bootloader will permanently disable UART bootloader encryption access on
first boot. If set, the UART bootloader will still be able to access hardware encryption.
It is recommended to only set this option in testing environments.
config ESPRESSIF_SECURE_FLASH_UART_BOOTLOADER_ALLOW_DEC
bool "Leave UART bootloader decryption enabled"
default n
depends on ESPRESSIF_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
---help---
If not set (default), the bootloader will permanently disable UART bootloader decryption access on
first boot. If set, the UART bootloader will still be able to access hardware decryption.
Only set this option in testing environments. Setting this option allows complete bypass of flash
encryption.
config ESPRESSIF_SECURE_FLASH_UART_BOOTLOADER_ALLOW_CACHE
bool "Leave UART bootloader flash cache enabled"
default n
depends on ESPRESSIF_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
---help---
If not set (default), the bootloader will permanently disable UART bootloader flash cache access on
first boot. If set, the UART bootloader will still be able to access the flash cache.
Only set this option in testing environments.
choice ESPRESSIF_SECURE_FLASH_ENCRYPTION_MODE
bool "Enable usage mode"
default ESPRESSIF_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
---help---
By default, Development mode is enabled which allows ROM download mode to perform Flash Encryption
operations (plaintext is sent to the device, and it encrypts it internally and writes ciphertext
to flash). This mode is not secure, it's possible for an attacker to write their own chosen plaintext
to flash.
Release mode should always be selected for production or manufacturing. Once enabled it's no longer
possible for the device in ROM Download Mode to use the Flash Encryption hardware.
Refer to the Flash Encryption section of the ESP-IDF Programmer's Guide for details:
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/security/flash-encryption.html#flash-encryption-configuration
config ESPRESSIF_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
bool "Development (NOT SECURE)"
select ESPRESSIF_SECURE_FLASH_UART_BOOTLOADER_ALLOW_ENC
config ESPRESSIF_SECURE_FLASH_ENCRYPTION_MODE_RELEASE
bool "Release"
endchoice
config ESPRESSIF_SECURE_FLASH_ENC_USE_HOST_KEY
bool "Require user provided encryption key for flash encryption"
default y
---help---
This option enables the requirement of a host generated flash encryption key.
If not selected, a random key will be generated by the bootloader on first boot.
In this case, the user will not have access to the key and will be unable to reuse it.
if ESPRESSIF_SECURE_FLASH_ENC_USE_HOST_KEY
config ESPRESSIF_SECURE_FLASH_ENC_HOST_KEY_NAME
string "Path to flash encryption key"
default "flash_enc_key.bin"
---help---
Path to the key file used to encrypt the flash.
This key is in a binary format and is generated by espsecure application.
Path is evaluated relative to the NuttX root directory.
You can generate a new signing key by running the following command:
$ espsecure.py generate_flash_encryption_key <key_name>
endif # ESPRESSIF_SECURE_FLASH_ENC_USE_HOST_KEY
config ESPRESSIF_SECURE_FLASH_ENC_FLASH_DEVICE_ENCRYPTED
bool "Device is already encrypted"
default n
depends on ESPRESSIF_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
depends on !ESPRESSIF_EFUSE_VIRTUAL
---help---
Append --encrypt to esptool.py write_flash command.
This option is useful when the device already has a flash encryption key,
and the user wants to simply flash a new firmware to it, using the key already present.
It requires that the DEVELOPMENT mode is set. It is not possible to reflash in RELEASE mode.
endif # ESPRESSIF_SECURE_FLASH_ENC_ENABLED
endmenu # Bootloader and Image Configuration
menu "LP Core (Low-power core) Coprocessor Configuration"
config ESPRESSIF_USE_LP_CORE
bool "Enable LP Coprocessor"
depends on ARCH_CHIP_ESP32C6
---help---
Enable LP core (Low-power core) coprocessor
config ESPRESSIF_ULP_COPROC_RESERVE_MEM_SIZE
int "RTC slow memory reserved for coprocessor"
depends on ESPRESSIF_USE_LP_CORE
default 4096
range 32 16352
---help---
Bytes of memory to reserve for ULP Co-processor firmware & data.
Data is reserved at the beginning of RTC slow memory.
config ESPRESSIF_ULP_SHARED_MEM_SIZE
int "Size of the shared memory for ULP core"
depends on ESPRESSIF_USE_LP_CORE
default 16
---help---
Size of the shared memory defined in bytes.
config ESPRESSIF_ULP_ENABLE_UBSAN
bool "Enable UBSan (undefined behavior sanitizer) for LP core application"
depends on ESPRESSIF_USE_LP_CORE
depends on DEBUG_SYMBOLS
default n
---help---
LP core supports limited set of HW exceptions. This can be overcome
by enabling undefined behavior sanitizer for LP core application to catch some errors.
But note that it will increase code size significantly and it can happen that
application will not fit into RTC RAM
endmenu # LP Core (Low-power core) Coprocessor Configuration
menu "PM Configuration"
if PM
config PM_EXT1_WAKEUP
bool "PM EXT1 Wakeup"
depends on !ARCH_CHIP_ESP32C3_GENERIC
default n
---help---
Enable EXT1 wakeup functionality.
This allows the system to wake up from PM_STANDBY or PM_SLEEP
when a GPIO pin configured as an EXT1 wakeup source is triggered.
menu "PM EXT1 Wakeup Sources"
depends on PM_EXT1_WAKEUP
config PM_EXT1_WAKEUP_RTC_GPIO0
bool "RTC_GPIO0"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable RTC GPIO0 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO1
bool "RTC_GPIO1"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable RTC GPIO1 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO2
bool "RTC_GPIO2"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable RTC GPIO2 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO3
bool "RTC_GPIO3"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable RTC GPIO3 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO4
bool "RTC_GPIO4"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable RTC GPIO4 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO5
bool "RTC_GPIO5"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable RTC GPIO5 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO6
bool "RTC_GPIO6"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable RTC GPIO6 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO7
bool "RTC_GPIO7"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable RTC GPIO7 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO8
bool "RTC_GPIO8"
depends on ARCH_CHIP_ESP32H2
default n
---help---
Enable RTC GPIO8 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO9
bool "RTC_GPIO9"
depends on ARCH_CHIP_ESP32H2
default n
---help---
Enable RTC GPIO9 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO10
bool "RTC_GPIO10"
depends on ARCH_CHIP_ESP32H2
default n
---help---
Enable RTC GPIO10 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO11
bool "RTC_GPIO11"
depends on ARCH_CHIP_ESP32H2
default n
---help---
Enable RTC GPIO11 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO12
bool "RTC_GPIO12"
depends on ARCH_CHIP_ESP32H2
default n
---help---
Enable RTC GPIO12 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO13
bool "RTC_GPIO13"
depends on ARCH_CHIP_ESP32H2
default n
---help---
Enable RTC GPIO13 as an EXT1 wakeup source.
config PM_EXT1_WAKEUP_RTC_GPIO14
bool "RTC_GPIO14"
depends on ARCH_CHIP_ESP32H2
default n
---help---
Enable RTC GPIO14 as an EXT1 wakeup source.
choice PM_EXT1_WAKEUP_TRIGGER_MODE
prompt "PM EXT1 Wakeup Trigger Mode"
default PM_EXT1_WAKEUP_TRIGGER_ANY_LOW
config PM_EXT1_WAKEUP_TRIGGER_ANY_LOW
bool "Wake the chip when any of the selected GPIOs go low"
config PM_EXT1_WAKEUP_TRIGGER_ANY_HIGH
bool "Wake the chip when any of the selected GPIOs go high"
endchoice # PM_EXT1_WAKEUP_TRIGGER_MODE
endmenu # PM_EXT1_WAKEUP_SOURCES
config PM_ULP_WAKEUP
bool "PM ULP Wakeup"
depends on ARCH_CHIP_ESP32C6 && ESPRESSIF_USE_LP_CORE
default n
---help---
Enable ULP coprocessor wakeup functionality.
This allows the system to wake up from PM_STANDBY or PM_SLEEP
when ULP app triggers HP core to wakeup with "ulp_lp_core_wakeup_main_processor"
call on ULP app.
config PM_GPIO_WAKEUP
bool "PM GPIO Wakeup"
default n
---help---
Enable GPIO wakeup functionality.
This allows the system to wake up from PM_STANDBY
when a GPIO pin configured as wakeup source is triggered.
menu "PM GPIO Wakeup Sources"
depends on PM_GPIO_WAKEUP
config PM_GPIO_WAKEUP_GPIO0
bool "GPIO0"
default n
---help---
Enable GPIO0 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO1
bool "GPIO1"
default n
---help---
Enable GPIO1 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO2
bool "GPIO2"
default n
---help---
Enable GPIO2 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO3
bool "GPIO3"
default n
---help---
Enable GPIO3 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO4
bool "GPIO4"
default n
---help---
Enable GPIO4 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO5
bool "GPIO5"
default n
---help---
Enable GPIO5 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO6
bool "GPIO6"
default n
---help---
Enable GPIO6 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO7
bool "GPIO7"
default n
---help---
Enable GPIO7 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO8
bool "GPIO8"
default n
---help---
Enable GPIO8 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO9
bool "GPIO9"
default n
---help---
Enable GPIO9 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO10
bool "GPIO10"
default n
---help---
Enable GPIO10 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO11
bool "GPIO11"
default n
---help---
Enable GPIO11 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO12
bool "GPIO12"
default n
---help---
Enable GPIO12 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO13
bool "GPIO13"
default n
---help---
Enable GPIO13 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO14
bool "GPIO14"
default n
---help---
Enable GPIO14 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO15
bool "GPIO15"
default n
---help---
Enable GPIO15 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO16
bool "GPIO16"
default n
---help---
Enable GPIO16 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO17
bool "GPIO17"
default n
---help---
Enable GPIO17 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO18
bool "GPIO18"
default n
---help---
Enable GPIO18 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO19
bool "GPIO19"
default n
---help---
Enable GPIO19 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO20
bool "GPIO20"
default n
---help---
Enable GPIO20 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO21
bool "GPIO21"
default n
---help---
Enable GPIO21 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO22
bool "GPIO22"
depends on !ARCH_CHIP_ESP32C3_GENERIC
default n
---help---
Enable GPIO22 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO23
bool "GPIO23"
depends on !ARCH_CHIP_ESP32C3_GENERIC
default n
---help---
Enable GPIO23 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO24
bool "GPIO24"
depends on !ARCH_CHIP_ESP32C3_GENERIC
default n
---help---
Enable GPIO24 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO25
bool "GPIO25"
depends on !ARCH_CHIP_ESP32C3_GENERIC
default n
---help---
Enable GPIO25 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO26
bool "GPIO26"
depends on !ARCH_CHIP_ESP32C3_GENERIC
default n
---help---
Enable GPIO26 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO27
bool "GPIO27"
depends on !ARCH_CHIP_ESP32C3_GENERIC
default n
---help---
Enable GPIO27 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO28
bool "GPIO28"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable GPIO28 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO29
bool "GPIO29"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable GPIO29 as an GPIO wakeup source.
config PM_GPIO_WAKEUP_GPIO30
bool "GPIO30"
depends on ARCH_CHIP_ESP32C6
default n
---help---
Enable GPIO30 as an GPIO wakeup source.
choice PM_GPIO_WAKEUP_TRIGGER_MODE
prompt "PM GPIO Wakeup Trigger Mode"
default PM_GPIO_WAKEUP_TRIGGER_ANY_LOW
config PM_GPIO_WAKEUP_TRIGGER_ANY_LOW
bool "Wake the chip when any of the selected GPIOs go low"
config PM_GPIO_WAKEUP_TRIGGER_ANY_HIGH
bool "Wake the chip when any of the selected GPIOs go high"
endchoice # PM_GPIO_WAKEUP_TRIGGER_MODE
endmenu # PM_GPIO_WAKEUP_SOURCES
config PM_UART_WAKEUP
bool "PM UART Wakeup"
depends on ESPRESSIF_UART0 || ESPRESSIF_UART1
default n
---help---
Enable UART wakeup functionality.
This allows the system to wake up from PM_STANDBY
when a UART configured as an UART wakeup source is triggered.
menu "PM UART Wakeup Sources"
depends on PM_UART_WAKEUP
choice PM_UART_WAKEUP_UART_NUM
prompt "PM UART Wakeup UART Number"
default PM_UART_WAKEUP_UART0 if ESPRESSIF_UART0
default PM_UART_WAKEUP_UART1 if ESPRESSIF_UART1
config PM_UART_WAKEUP_UART0
depends on ESPRESSIF_UART0
bool "Wake the chip up when UART0 gets a data"
config PM_UART_WAKEUP_UART1
depends on ESPRESSIF_UART1
bool "Wake the chip up when UART1 gets a data"
endchoice # PM_UART_WAKEUP_UART_NUM
choice PM_UART_WAKEUP_MODE
prompt "PM UART Wakeup Mode"
default PM_UART_WAKEUP_START_BIT_MODE if !ARCH_CHIP_ESP32C3_GENERIC
default PM_UART_WAKEUP_ACTIVE_EDGE_THRESHOLD_MODE if ARCH_CHIP_ESP32C3_GENERIC
config PM_UART_WAKEUP_ACTIVE_EDGE_THRESHOLD_MODE
bool "Wake-up triggered by active edge threshold"
config PM_UART_WAKEUP_FIFO_THRESHOLD_MODE
bool "Wake-up triggered by the number of bytes received in the RX FIFO"
depends on !ARCH_CHIP_ESP32C3_GENERIC
config PM_UART_WAKEUP_START_BIT_MODE
bool "Wake-up triggered by the detection of a start bit"
depends on !ARCH_CHIP_ESP32C3_GENERIC
config PM_UART_WAKEUP_CHAR_SEQ_MODE
bool "Wake-up triggered by detecting a specific character sequence"
depends on !ARCH_CHIP_ESP32C3_GENERIC
endchoice # PM_UART_WAKEUP_MODE
config PM_UART_WAKEUP_ACTIVE_EDGE_THRESHOLD
int "Number of RXD edge changes to to trigger wake-up"
depends on PM_UART_WAKEUP_ACTIVE_EDGE_THRESHOLD_MODE
default 3
config PM_UART_WAKEUP_FIFO_THRESHOLD
int "Number of bytes needed to receive in the RX FIFO to trigger wake-up"
depends on PM_UART_WAKEUP_FIFO_THRESHOLD_MODE
default 8
config PM_UART_WAKEUP_CHAR_SEQ
string "Character sequence to trigger wake-up"
depends on PM_UART_WAKEUP_CHAR_SEQ_MODE
default "esp"
endmenu # PM UART Wakeup Sources
config PM_ALARM_SEC
int "PM_STANDBY delay (seconds)"
default 15
---help---
Number of seconds to wait in PM_STANDBY mode.
config PM_ALARM_NSEC
int "PM_STANDBY delay (nanoseconds)"
default 0
---help---
Number of additional nanoseconds to wait in PM_STANDBY mode.
config PM_SLEEP_WAKEUP_SEC
int "PM_SLEEP delay (seconds)"
default 20
---help---
Number of seconds to wait in PM_SLEEP.
config PM_SLEEP_WAKEUP_NSEC
int "PM_SLEEP delay (nanoseconds)"
default 0
---help---
Number of additional nanoseconds to wait in PM_SLEEP.
endif # PM
endmenu # PM Configuration
menu "Peripheral Support"
config ESPRESSIF_RTC
bool "Real Time Clock (RTC)"
default y
config ESPRESSIF_UART
bool
default n
config ESPRESSIF_LP_UART
bool
default n
config ESPRESSIF_UART0
bool "UART0"
default y
select ESPRESSIF_UART
select UART0_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
config ESPRESSIF_UART1
bool "UART1"
default n
select ESPRESSIF_UART
select UART1_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
config ESPRESSIF_LP_UART0
bool "LP UART0"
default n
depends on ARCH_CHIP_ESP32C6
select ESPRESSIF_UART
select ESPRESSIF_LP_UART
select LPUART0_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
config ESPRESSIF_TWAI
bool "TWAI (CAN)"
default n
select ARCH_HAVE_CAN_ERRORS
select CAN
config ESPRESSIF_TWAI0
bool "TWAI0 (CAN)"
default n
select ESPRESSIF_TWAI
select ARCH_HAVE_CAN_ERRORS
select CAN
config ESPRESSIF_TWAI1
bool "TWAI1 (CAN)"
default n
depends on ARCH_CHIP_ESP32C6
select ESPRESSIF_TWAI
select ARCH_HAVE_CAN_ERRORS
select CAN
config ESPRESSIF_USBSERIAL
bool "USB-Serial-JTAG Driver"
default n
select ESPRESSIF_ESPTOOLPY_NO_STUB if ARCH_CHIP_ESP32C3
select OTHER_UART_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
config ESPRESSIF_DEDICATED_GPIO
bool "Dedicated GPIO"
default n
---help---
Enable dedicated GPIO support for faster response time.
Dedicated GPIO is suitable for faster response times required
applications like simulate serial/parallel interfaces in a bit-banging way.
It can work as pin grouping and you can use any pin up to 8 pins for
input and 8 pins for output for dedicated gpio in total.
config ESPRESSIF_GPIO_IRQ
bool "GPIO pin interrupts"
default n
---help---
Enable support for interrupting GPIO pins
config ESPRESSIF_RTCIO_IRQ
bool "RTC IO interrupts"
default n
depends on !ARCH_CHIP_ESP32H2 && !ARCH_CHIP_ESP32C6
---help---
Enable support for RTC peripherals interrupts.
config ESPRESSIF_LEDC
bool "LEDC (PWM)"
default n
select PWM
select ARCH_HAVE_PWM_MULTICHAN
config ESPRESSIF_SHA_ACCELERATOR
bool "SHA Accelerator"
default n
---help---
Enable SHA accelerator support.
config ESPRESSIF_ADC
bool "Analog-to-digital converter (ADC)"
default n
select ANALOG
select ADC
---help---
Enable support for analog-to-digital converter (ADC) peripheral.
if ESPRESSIF_ADC
config ESPRESSIF_ADC_1
default y
bool "Enable SAR ADC 1"
endif # ESPRESSIF_ADC
config ESPRESSIF_I2S
bool
default n
config ESPRESSIF_I2S0
bool "I2S 0"
default n
select ESPRESSIF_I2S
select I2S
select ESPRESSIF_DMA
select ESPRESSIF_GPIO_IRQ
select SCHED_HPWORK
config ESPRESSIF_I2C
bool
default n
config ESPRESSIF_LPI2C
bool
default n
config ESPRESSIF_I2C_PERIPH_MASTER_MODE
bool
depends on (ESPRESSIF_I2C0_MASTER_MODE || ESPRESSIF_I2C1_MASTER_MODE || ESPRESSIF_LP_I2C0)
default n
config ESPRESSIF_I2C_PERIPH_SLAVE_MODE
bool
depends on (ESPRESSIF_I2C0_SLAVE_MODE || ESPRESSIF_I2C1_SLAVE_MODE)
default n
config ESPRESSIF_I2C0
bool "I2C 0"
default n
select ESPRESSIF_I2C
select I2C
config ESPRESSIF_I2C1
bool "I2C 1"
default n
depends on ARCH_CHIP_ESP32H2
select ESPRESSIF_I2C
select I2C
config ESPRESSIF_LP_I2C0
bool "LP I2C 0"
default n
depends on ARCH_CHIP_ESP32C6
select ESPRESSIF_I2C
select ESPRESSIF_LPI2C
select ESPRESSIF_I2C_PERIPH_MASTER_MODE
select I2C
config ESPRESSIF_I2C_BITBANG
bool "I2C Bitbang"
default n
select I2C_BITBANG
select ESPRESSIF_I2C
select I2C
select I2C_BITBANG
---help---
Software implemented I2C peripheral with GPIOs. Suggested to use if I2C peripherals are already in use.
config ESPRESSIF_SPI
bool
default n
config ESPRESSIF_SPI_SLAVE
bool
default n
config ESPRESSIF_SPI_PERIPH
bool
depends on ESPRESSIF_SPI2
default n
config ESPRESSIF_SPI2
bool "SPI 2"
default n
select ESPRESSIF_SPI
select SPI
select ESPRESSIF_SPI_PERIPH
config ESPRESSIF_SPI_BITBANG
bool "SPI Bitbang"
default n
select ESPRESSIF_SPI
select SPI
select SPI_BITBANG
---help---
Software implemented SPI peripheral with GPIOs. Suggested to use if SPI peripheral is already in use.
config ESPRESSIF_SPIFLASH
bool "SPI Flash (User Storage)"
default n
---help---
Enable SPI Flash driver for general storage support. This allows
mounting an MTD partition at a configurable region in flash.
config ESPRESSIF_DMA
bool "General DMA (GDMA)"
default n
select ARCH_DMA
config ESPRESSIF_EFUSE
bool "E-Fuse support"
default n
---help---
Enable efuse support.
config ESPRESSIF_EFUSE_VIRTUAL
bool "Virtual E-Fuses support"
depends on ESPRESSIF_EFUSE
default y
---help---
Enable virtual E-Fuse support to simulate E-Fuse operations in RAM.
Changes will be reverted each reboot unless enabling ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH.
config ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH
bool "Keep E-Fuses in flash"
depends on ESPRESSIF_EFUSE_VIRTUAL
default y
---help---
In addition to the "Virtual E-Fuses support" option, this option just adds
a feature to keep E-Fuses after reboots in flash memory.
During startup, the E-Fuses are copied from flash or,
in case if flash is empty, from real E-Fuse to RAM and then update flash.
This mode is useful when need to keep changes after reboots (testing secure_boot,
flash_encryption or using MCUBoot + encryption).
if ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH
config ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH_OFFSET
hex "E-Fuses offset in flash"
depends on ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH
default 0x10000 if ESPRESSIF_BOOTLOADER_MCUBOOT
default 0x250000 if !ESPRESSIF_BOOTLOADER_MCUBOOT
---help---
Offset in flash where the E-Fuses will be stored when using the "E-Fuses size to keep in flash" option.
config ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH_SIZE
hex "E-Fuses size to keep in flash"
depends on ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH
default 0x2000
---help---
Size of E-Fuse region to keep in flash.
endif # ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH
config ESPRESSIF_HR_TIMER
bool
default RTC_DRIVER
---help---
A high-resolution hardware timer for supporting the management of
kernel events.
The HR Timer is built on top of the System Timer (SYSTIMER) peripheral.
Timer callbacks are dispatched from a high-priority kernel task.
config ESPRESSIF_WDT
bool
default n
select WATCHDOG
config ESPRESSIF_MWDT0
bool "Main System Watchdog Timer (Group 0)"
default n
select ESPRESSIF_WDT
---help---
Includes MWDT0. This watchdog timer is part of the Group 0
timer submodule.
config ESPRESSIF_MWDT1
bool "Main System Watchdog Timer (Group 1)"
default n
select ESPRESSIF_WDT
---help---
Includes MWDT1. This watchdog timer is part of the Group 1
timer submodule.
config ESPRESSIF_RWDT
bool "RTC Watchdog Timer"
default n
select ESPRESSIF_WDT
---help---
Includes RWDT. This watchdog timer is from the RTC module.
When it is selected, if the developer sets it to reset on expiration
it will reset Main System and the RTC module. If you don't want
to have the RTC module reset, please, use the Timers' Module WDTs.
They will only reset Main System.
config ESPRESSIF_XTWDT
bool "XTAL32K Watchdog Timer"
depends on ARCH_CHIP_ESP32C3
depends on ESPRESSIF_RTCIO_IRQ
depends on ESPRESSIF_RTC_CLK_EXT_OSC || ESPRESSIF_RTC_CLK_EXT_XTAL
default n
select ESPRESSIF_WDT
---help---
Includes XTWDT. This watchdog timer monitors the status of the
external 32 kHz crystal oscillator (XTAL32K). When XTAL32K_CLK works
as the clock source of RTC_SLOW_CLK and it stops oscillating, the
XTAL32K watchdog timer first switches to BACKUP32K_CLK derived from
RC_SLOW_CLK (if ESP32S2_XTWDT_BACKUP_CLK_ENABLE) and, then, generates
an interrupt that could be captured by WDIOC_CAPTURE.
config ESPRESSIF_XTWDT_TIMEOUT
int "XTAL32K watchdog timeout period"
depends on ESPRESSIF_XTWDT
range 1 255
default 200
---help---
Timeout period configuration for the XTAL32K watchdog timer based on RTC_CLK.
config ESPRESSIF_XTWDT_BACKUP_CLK_ENABLE
bool "Automatically switch to BACKUP32K_CLK when timer expires"
depends on ESPRESSIF_XTWDT
default y
---help---
Enable this to automatically switch to BACKUP32K_CLK as the source of
RTC_SLOW_CLK when the watchdog timer expires.
config ESPRESSIF_BROWNOUT_DET
bool "Brownout Detector"
default y
---help---
A built-in brownout detector which can detect if the voltage is lower
than a specific value. If this happens, it will reset the chip in
order to prevent unintended behaviour.
config ESP_RMT
bool "Remote Control Module (RMT)"
default n
depends on RMT
---help---
The RMT (Remote Control Transceiver) peripheral was designed to act as
an infrared transceiver. However, due to the flexibility of its data
format, RMT can be extended to a versatile and general-purpose
transceiver, transmitting or receiving many other types of signals.
config ESP_SDM
bool "Sigma-Delta Modulation (SDM) Module"
default n
select ANALOG
select DAC
config ESPRESSIF_TEMP
bool "Internal Temperature Sensor"
default n
---help---
A built-in sensor used to measure the chip's internal temperature.
config ESP_WIRELESS
bool
default n
select NET
select ARCH_PHY_INTERRUPT
select RTC
select RTC_DRIVER
select ESPRESSIF_HR_TIMER
config ESPRESSIF_WIFI
bool "Wi-Fi"
depends on ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6
default n
select ESP_WIRELESS
---help---
Enable Wi-Fi support
config ESPRESSIF_BLE
bool "BLE"
depends on ARCH_CHIP_ESP32C3
default n
select ESP_WIRELESS
---help---
Enable BLE support
config ESP_COEX_SW_COEXIST_ENABLE
bool "Software WiFi/Bluetooth/IEEE 802.15.4 coexistence"
depends on (ESPRESSIF_WIFI && ESPRESSIF_BLE) || \
(ESPRESSIF_WIFI && ESP_IEEE802154) || \
(ESP_IEEE802154 && ESPRESSIF_BLE)
default y
---help---
If enabled, WiFi & Bluetooth coexistence is controlled by software rather than hardware.
Recommended for heavy traffic scenarios. Both coexistence configuration options are
automatically managed, no user intervention is required.
If only Bluetooth is used, it is recommended to disable this option to reduce binary file
size.
menuconfig ESPRESSIF_WIFI_BT_COEXIST
bool "Wi-Fi and BT coexist"
default y if ESPRESSIF_WIFI && ESPRESSIF_BLE
default n
depends on ESPRESSIF_WIFI && ESPRESSIF_BLE
select ESPRESSIF_WIFI_STA_DISCONNECT_PM
config ESP_MCPWM
bool "Motor Control PWM (MCPWM)"
default n
depends on ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2
---help---
Enable support for timer capture and motor control using
the Motor Control PWM peripheral.
config ESP_PCNT
bool "Pulse Counter (PCNT / QE) Module"
default n
select CAPTURE
depends on ARCH_CHIP_ESP32H2 || ARCH_CHIP_ESP32C6
menu "Pulse Counter (PCNT) Configuration"
depends on ESP_PCNT
config ESP_PCNT_TEST_MODE
bool "Pulse Counter character driver loopback test mode (for testing only)"
default n
---help---
This enables a loopback test mode that attaches the transmitter
to the receiver internally, being able to test the PCNT
peripheral without any external connection.
config ESP_PCNT_HIGH_LIMIT
int "PCNT high limit value"
default 1024
range 1 32767
---help---
This sets thr_h_lim value for all units. When pulse_cnt reaches
this value, the counter will be cleared.
config ESP_PCNT_LOW_LIMIT
int "PCNT low limit value"
default -1024
range -32768 -1
---help---
This sets thr_l_lim value for all units. When pulse_cnt reaches
this value, the counter will be cleared.
config ESP_PCNT_AS_QE
bool
default n
select SENSORS
select SENSORS_QENCODER
config ESP_PCNT_U0
bool "Enable PCNT Unit 0"
default n
if ESP_PCNT_U0
config ESP_PCNT_U0_QE
bool "Use this PCNT Unit as Quadrature Encoder"
default n
select ESP_PCNT_AS_QE
config ESP_PCNT_U0_CH0_EDGE_PIN
int "PCNT_U0 CH0 Edge/Pulse Pin Number"
default 0
range -1 39
config ESP_PCNT_U0_CH0_LEVEL_PIN
int "PCNT_U0 CH0 Level/Control Pin Number"
default 4
range -1 39
depends on !ESP_PCNT_U0_QE
config ESP_PCNT_U0_CH1_EDGE_PIN
int "PCNT_U0 CH1 Edge/Pulse Pin Number"
default 0
range -1 39
depends on !ESP_PCNT_U0_QE
config ESP_PCNT_U0_CH1_LEVEL_PIN
int "PCNT_U0 CH1 Level/Control Pin Number"
default 4
range -1 39
config ESP_PCNT_U0_FILTER_EN
bool "Enable Glitch Filter for this PCNT Unit"
default n
if ESP_PCNT_U0_FILTER_EN
config ESP_PCNT_U0_FILTER_THRES
int "PCNT_U0 Filter Threshold value"
default 5
---help---
If a pulse is shorter than this number of APB_CLK clock cycles
then it will not be considered as a valid pulse.
endif # ESP_PCNT_U0_FILTER_EN
endif # ESP_PCNT_U0
config ESP_PCNT_U1
bool "Enable PCNT Unit 1"
depends on ESP_PCNT_U0
default n
if ESP_PCNT_U1
config ESP_PCNT_U1_QE
bool "Use this PCNT Unit as Quadrature Encoder"
default n
select ESP_PCNT_AS_QE
config ESP_PCNT_U1_CH0_EDGE_PIN
int "PCNT_U1 CH0 Edge/Pulse Pin Number"
default 0
range -1 39
config ESP_PCNT_U1_CH0_LEVEL_PIN
int "PCNT_U1 CH0 Level/Control Pin Number"
default 4
range -1 39
depends on !ESP_PCNT_U1_QE
config ESP_PCNT_U1_CH1_EDGE_PIN
int "PCNT_U1 CH1 Edge/Pulse Pin Number"
default 0
range -1 39
depends on !ESP_PCNT_U1_QE
config ESP_PCNT_U1_CH1_LEVEL_PIN
int "PCNT_U1 CH1 Level/Control Pin Number"
default 4
range -1 39
config ESP_PCNT_U1_FILTER_EN
bool "Enable Glitch Filter for this PCNT Unit"
default n
if ESP_PCNT_U1_FILTER_EN
config ESP_PCNT_U1_FILTER_THRES
int "PCNT_U1 Filter Threshold value"
default 5
---help---
If a pulse is shorter than this number of APB_CLK clock cycles
then it will not be considered as a valid pulse.
endif # ESP_PCNT_U1_FILTER_EN
endif # ESP_PCNT_U1
config ESP_PCNT_U2
bool "Enable PCNT Unit 2"
depends on ESP_PCNT_U1
default n
if ESP_PCNT_U2
config ESP_PCNT_U2_QE
bool "Use this PCNT Unit as Quadrature Encoder"
default n
select ESP_PCNT_AS_QE
config ESP_PCNT_U2_CH0_EDGE_PIN
int "PCNT_U2 CH0 Edge/Pulse Pin Number"
default 0
range -1 39
config ESP_PCNT_U2_CH0_LEVEL_PIN
int "PCNT_U2 CH0 Level/Control Pin Number"
default 4
range -1 39
depends on !ESP_PCNT_U2_QE
config ESP_PCNT_U2_CH1_EDGE_PIN
int "PCNT_U2 CH1 Edge/Pulse Pin Number"
default 0
range -1 39
depends on !ESP_PCNT_U2_QE
config ESP_PCNT_U2_CH1_LEVEL_PIN
int "PCNT_U2 CH1 Level/Control Pin Number"
default 4
range -1 39
config ESP_PCNT_U2_FILTER_EN
bool "Enable Glitch Filter for this PCNT Unit"
default n
if ESP_PCNT_U2_FILTER_EN
config ESP_PCNT_U2_FILTER_THRES
int "PCNT_U2 Filter Threshold value"
default 5
---help---
If a pulse is shorter than this number of APB_CLK clock cycles
then it will not be considered as a valid pulse.
endif # ESP_PCNT_U2_FILTER_EN
endif # ESP_PCNT_U2
config ESP_PCNT_U3
bool "Enable PCNT Unit 3"
depends on ESP_PCNT_U2
default n
if ESP_PCNT_U3
config ESP_PCNT_U3_QE
bool "Use this PCNT Unit as Quadrature Encoder"
default n
select ESP_PCNT_AS_QE
config ESP_PCNT_U3_CH0_EDGE_PIN
int "PCNT_U3 CH0 Edge/Pulse Pin Number"
default 0
range -1 39
config ESP_PCNT_U3_CH0_LEVEL_PIN
int "PCNT_U3 CH0 Level/Control Pin Number"
default 4
range -1 39
depends on !ESP_PCNT_U3_QE
config ESP_PCNT_U3_CH1_EDGE_PIN
int "PCNT_U3 CH1 Edge/Pulse Pin Number"
default 0
range -1 39
depends on !ESP_PCNT_U3_QE
config ESP_PCNT_U3_CH1_LEVEL_PIN
int "PCNT_U3 CH1 Level/Control Pin Number"
default 4
range -1 39
config ESP_PCNT_U3_FILTER_EN
bool "Enable Glitch Filter for this PCNT Unit"
default n
if ESP_PCNT_U3_FILTER_EN
config ESP_PCNT_U3_FILTER_THRES
int "PCNT_U3 Filter Threshold value"
default 5
---help---
If a pulse is shorter than this number of APB_CLK clock cycles
then it will not be considered as a valid pulse.
endif # ESP_PCNT_U3_FILTER_EN
endif # ESP_PCNT_U3
endmenu # ESP_PCNT
endmenu # Peripheral Support
menu "ADC Configuration"
depends on ESPRESSIF_ADC
if ESPRESSIF_ADC_1
config ESPRESSIF_ADC_1_DEVNAME
string "ADC 1 Device Name"
default "/dev/adc0"
choice ESPRESSIF_ADC_1_ATTENUATION
prompt "ADC 1 Input Attenuation"
default ESPRESSIF_ADC_1_ATTEN_12
---help---
Select input attenuation for the ADC unit.
Relates to maximum measurable input voltage.
See ESP32 Technical Reference Manual for details.
config ESPRESSIF_ADC_1_ATTEN_0
bool "0 dB (1.1 V)"
config ESPRESSIF_ADC_1_ATTEN_2_5
bool "2.5 dB (1.47 V)"
config ESPRESSIF_ADC_1_ATTEN_6
bool "6 dB (2.2 V)"
config ESPRESSIF_ADC_1_ATTEN_12
bool "12 dB (4.4 V)"
endchoice # ESPRESSIF_ADC_1_ATTENUATION
config ESPRESSIF_ADC_1_ATTENUATION
int
default 0 if ESPRESSIF_ADC_1_ATTEN_0
default 1 if ESPRESSIF_ADC_1_ATTEN_2_5
default 2 if ESPRESSIF_ADC_1_ATTEN_6
default 3 if ESPRESSIF_ADC_1_ATTEN_12
choice ESPRESSIF_ADC_1_MODE
prompt "ADC 1 Mode"
default ESPRESSIF_ADC_1_MODE_ONE_SHOT
---help---
Select operating mode for ADC 1.
config ESPRESSIF_ADC_1_MODE_ONE_SHOT
bool "One-Shot Mode"
config ESPRESSIF_ADC_1_MODE_CONTINUOUS
bool "Continuous Mode"
endchoice # ESPRESSIF_ADC_1_MODE
menu "ADC 1 Channel Selection"
config ESPRESSIF_ADC_1_CH0
bool "Channel 0"
default y
config ESPRESSIF_ADC_1_CH1
bool "Channel 1"
default y
config ESPRESSIF_ADC_1_CH2
bool "Channel 2"
default y
config ESPRESSIF_ADC_1_CH3
bool "Channel 3"
default y
config ESPRESSIF_ADC_1_CH4
bool "Channel 4"
default n
config ESPRESSIF_ADC_1_CH5
bool "Channel 5"
depends on ARCH_CHIP_ESP32C6
default n
config ESPRESSIF_ADC_1_CH6
bool "Channel 6"
depends on ARCH_CHIP_ESP32C6
default n
endmenu # ADC 1 Channel Selection
endif # ESPRESSIF_ADC_1
endmenu # ADC Configuration
menu "Wi-Fi Configuration"
depends on ESPRESSIF_WIFI
menu "ESP WPA-Supplicant"
config WPA_WAPI_PSK
bool "Enable WAPI PSK support"
default n
---help---
Select this option to enable WAPI-PSK
which is a Chinese National Standard Encryption for Wireless LANs (GB 15629.11-2003).
config WPA_SUITE_B_192
bool "Enable NSA suite B support with 192-bit key"
default n
select ESPRESSIF_WIFI_GCMP_SUPPORT
select ESPRESSIF_WIFI_GMAC_SUPPORT
---help---
Select this option to enable 192-bit NSA suite-B.
This is necessary to support WPA3 192-bit security.
config ESP_WPA_DEBUG_PRINT
bool "Print debug messages from Espressif's WPA Supplicant"
default n
---help---
Select this option to print logging information from WPA supplicant,
this includes handshake information and key hex dumps depending
on the project logging level.
Enabling this could increase the build size ~60kb
depending on the project logging level.
endmenu # ESP WPA-Supplicant
choice ESPRESSIF_WIFI_MODE
prompt "ESP Wi-Fi mode"
default ESPRESSIF_WIFI_STATION
config ESPRESSIF_WIFI_STATION
bool "Station mode"
config ESPRESSIF_WIFI_SOFTAP
bool "SoftAP mode"
config ESPRESSIF_WIFI_STATION_SOFTAP
bool "Station + SoftAP"
endchoice # ESPRESSIF_WIFI_MODE
menu "SoftAP Configuration"
depends on ESPRESSIF_WIFI_SOFTAP || ESPRESSIF_WIFI_STATION_SOFTAP
config ESPRESSIF_WIFI_SOFTAP_DEFAULT_SSID
string "SoftAP default SSID"
default "NuttX"
---help---
Represents the default SSID configured for the SoftAP when the device is started.
config ESPRESSIF_WIFI_SOFTAP_DEFAULT_PASSWORD
string "SoftAP default password"
default "nuttx12345"
---help---
Represents the default password configured for the SoftAP when the device is started.
config ESPRESSIF_WIFI_SOFTAP_MAX_CONNECTIONS
int "SoftAP max connections"
default 3
---help---
Maximum number of stations connected to the SoftAP.
config ESPRESSIF_WIFI_SOFTAP_CHANNEL
int "SoftAP channel"
default 1
---help---
Channel number for the SoftAP.
endmenu # SoftAP Configuration
config ESPRESSIF_WIFI_ENABLE_WPA3_SAE
bool "Enable WPA3-Personal"
default y
---help---
Select this option to allow the device to establish a WPA3-Personal connection with eligible AP's.
PMF (Protected Management Frames) is a prerequisite feature for a WPA3 connection, it needs to be
explicitly configured before attempting connection. Please refer to the Wi-Fi Driver API Guide for details.
config ESPRESSIF_WIFI_ENABLE_SAE_PK
bool "Enable SAE-PK"
depends on ESPRESSIF_WIFI_ENABLE_WPA3_SAE
default y
---help---
Select this option to enable SAE-PK
config ESPRESSIF_WIFI_ENABLE_SAE_H2E
bool "Enable SAE-H2E"
default y
---help---
Select this option to enable SAE-H2E
config ESPRESSIF_WIFI_SOFTAP_SAE_SUPPORT
bool "Enable WPA3 Personal(SAE) SoftAP"
default y
depends on ESPRESSIF_WIFI_ENABLE_WPA3_SAE
depends on ESPRESSIF_WIFI_SOFTAP || ESPRESSIF_WIFI_STATION_SOFTAP
---help---
Select this option to enable SAE support in softAP mode.
config ESPRESSIF_WIFI_ENABLE_WPA3_OWE_STA
bool "Enable OWE STA"
default y
---help---
Select this option to allow the device to establish OWE connection with eligible AP's.
PMF (Protected Management Frames) is a prerequisite feature for a WPA3 connection, it needs to be
explicitly configured before attempting connection. Please refer to the Wi-Fi Driver API Guide for details.
choice ESPRESSIF_WIFI_MGMT_RX_BUFFER
prompt "Type of WiFi RX MGMT buffers"
default ESPRESSIF_WIFI_STATIC_RX_MGMT_BUFFER
---help---
Select type of WiFi RX MGMT buffers:
If "Static" is selected, WiFi RX MGMT buffers are allocated when WiFi is initialized and released
when WiFi is de-initialized. The size of each static RX MGMT buffer is fixed to about 500 Bytes.
If "Dynamic" is selected, each WiFi RX MGMT buffer is allocated as needed when a MGMT data frame is
received. The MGMT buffer is freed after the MGMT data frame has been processed by the WiFi driver.
config ESPRESSIF_WIFI_STATIC_RX_MGMT_BUFFER
bool "Static"
config ESPRESSIF_WIFI_DYNAMIC_RX_MGMT_BUFFER
bool "Dynamic"
endchoice
config ESPRESSIF_WIFI_DYNAMIC_RX_MGMT_BUFFER_TYPE
int
default 0 if ESPRESSIF_WIFI_STATIC_RX_MGMT_BUFFER
default 1 if ESPRESSIF_WIFI_DYNAMIC_RX_MGMT_BUFFER
config ESPRESSIF_WIFI_STATIC_RX_BUFFER_NUM
int "Max number of WiFi static RX buffers"
range 2 25 if !ARCH_CHIP_ESP32C6
range 2 128 if ARCH_CHIP_ESP32C6
default 10
---help---
Set the number of WiFi static RX buffers. Each buffer takes approximately 1.6KB of RAM.
The static rx buffers are allocated when esp_wifi_init is called, they are not freed
until esp_wifi_deinit is called.
WiFi hardware use these buffers to receive all 802.11 frames.
A higher number may allow higher throughput but increases memory use. If ESPRESSIF_WIFI_AMPDU_RX_ENABLED
is enabled, this value is recommended to set equal or bigger than ESPRESSIF_WIFI_RX_BA_WIN in order to
achieve better throughput and compatibility with both stations and APs.
config ESPRESSIF_WIFI_DYNAMIC_RX_BUFFER_NUM
int "Max number of WiFi dynamic RX buffers"
default 32
---help---
Set the number of WiFi dynamic RX buffers, 0 means unlimited RX buffers will be allocated
(provided sufficient free RAM). The size of each dynamic RX buffer depends on the size of
the received data frame.
For each received data frame, the WiFi driver makes a copy to an RX buffer and then delivers
it to the high layer TCP/IP stack. The dynamic RX buffer is freed after the higher layer has
successfully received the data frame.
For some applications, WiFi data frames may be received faster than the application can
process them. In these cases we may run out of memory if RX buffer number is unlimited (0).
If a dynamic RX buffer limit is set, it should be at least the number of static RX buffers.
choice ESPRESSIF_WIFI_TX_BUFFER
prompt "Type of WiFi TX buffers"
default ESPRESSIF_WIFI_DYNAMIC_TX_BUFFER
---help---
Select type of WiFi TX buffers:
If "Static" is selected, WiFi TX buffers are allocated when WiFi is initialized and released
when WiFi is de-initialized. The size of each static TX buffer is fixed to about 1.6KB.
If "Dynamic" is selected, each WiFi TX buffer is allocated as needed when a data frame is
delivered to the Wifi driver from the TCP/IP stack. The buffer is freed after the data frame
has been sent by the WiFi driver. The size of each dynamic TX buffer depends on the length
of each data frame sent by the TCP/IP layer.
If PSRAM is enabled, "Static" should be selected to guarantee enough WiFi TX buffers.
If PSRAM is disabled, "Dynamic" should be selected to improve the utilization of RAM.
TODO: There is a special dependency for Dynamic if SPIRAM is enabled.
config ESPRESSIF_WIFI_STATIC_TX_BUFFER
bool "Static"
config ESPRESSIF_WIFI_DYNAMIC_TX_BUFFER
bool "Dynamic"
endchoice
config ESPRESSIF_WIFI_TX_BUFFER_TYPE
int
default 0 if ESPRESSIF_WIFI_STATIC_TX_BUFFER
default 1 if ESPRESSIF_WIFI_DYNAMIC_TX_BUFFER
config ESPRESSIF_WIFI_STATIC_TX_BUFFER_NUM
int "Max number of WiFi static TX buffers"
range 2 64
default 16
---help---
Set the number of WiFi static TX buffers. Each buffer takes approximately 1.6KB of RAM.
The static RX buffers are allocated when esp_wifi_init() is called, they are not released
until esp_wifi_deinit() is called.
This value might be reduced to save memory if the application does not need to send
frames at a high rate.
For each transmitted data frame from the higher layer TCP/IP stack, the WiFi driver makes a
copy of it in a TX buffer. For some applications especially UDP applications, the upper
layer can deliver frames faster than WiFi layer can transmit. In these cases, we may run out
of TX buffers.
config ESPRESSIF_WIFI_DYNAMIC_TX_BUFFER_NUM
int "Max number of WiFi dynamic TX buffers"
range 1 128
default 32
---help---
Set the number of WiFi dynamic TX buffers. The size of each dynamic TX buffer is not fixed,
it depends on the size of each transmitted data frame.
For each transmitted frame from the higher layer TCP/IP stack, the WiFi driver makes a copy
of it in a TX buffer. For some applications, especially UDP applications, the upper layer
can deliver frames faster than WiFi layer can transmit. In these cases, we may run out of TX
buffers.
config ESPRESSIF_WIFI_RX_MGMT_BUF_NUM_DEF
int "Max number of WiFi RX MGMT buffers"
range 1 10
default 5
---help---
Set the number of WiFi RX_MGMT buffers.
For Management buffers, the number of dynamic and static management buffers is the same.
config ESPRESSIF_WIFI_AMPDU_TX_ENABLED
bool "Wi-Fi TX AMPDU"
default y
---help---
Select this option to enable AMPDU TX feature
config ESPRESSIF_WIFI_TX_BA_WIN
int "WiFi AMPDU TX BA window size"
depends on ESPRESSIF_WIFI_AMPDU_TX_ENABLED
range 2 32 if !ARCH_CHIP_ESP32C6
range 2 64 if ARCH_CHIP_ESP32C6
default 6
config ESPRESSIF_WIFI_AMPDU_RX_ENABLED
bool "WiFi AMPDU RX"
default y
---help---
Select this option to enable AMPDU RX feature
config ESPRESSIF_WIFI_RX_BA_WIN
int "WiFi AMPDU RX BA window size"
depends on ESPRESSIF_WIFI_AMPDU_RX_ENABLED
range 2 32 if !ARCH_CHIP_ESP32C6
range 2 64 if ARCH_CHIP_ESP32C6
default 6
---help---
Set the size of WiFi Block Ack RX window. Generally a bigger value means higher throughput and better
compatibility but more memory. Most of time we should NOT change the default value unless special
reason, e.g. test the maximum UDP RX throughput with iperf etc. For iperf test in shieldbox, the
recommended value is 9~12. If PSRAM is used and WiFi memory is preferred to allocate in PSRAM first,
the default and minimum value should be 16 to achieve better throughput and compatibility with both
stations and APs.
config ESPRESSIF_WIFI_GCMP_SUPPORT
bool "WiFi GCMP Support(GCMP128 and GCMP256)"
default n
---help---
Select this option to enable GCMP support. GCMP support is compulsory for WiFi Suite-B support.
config ESPRESSIF_WIFI_GMAC_SUPPORT
bool "WiFi GMAC Support(GMAC128 and GMAC256)"
default n
---help---
Select this option to enable GMAC support. GMAC support is compulsory for WiFi 192-bit certification.
config ESPRESSIF_WIFI_CONNECT_TIMEOUT
int "Connect timeout in second"
default 10
---help---
Max waiting time of connecting to AP.
config ESPRESSIF_WIFI_SCAN_RESULT_SIZE
int "Scan result buffer"
default 4096
---help---
Maximum scan result buffer size.
config ESPRESSIF_WIFI_STA_DISCONNECT_PM
bool "Power Management for station when disconnected"
default y
---help---
Select this option to enable power management for station when disconnected.
Chip will do modem-sleep when RF module is not in use anymore.
choice ESPRESSIF_POWER_SAVE_MODE
prompt "Wi-Fi Power save mode"
default ESPRESSIF_POWER_SAVE_MIN_MODEM if ESPRESSIF_WIFI_BT_COEXIST
default ESPRESSIF_POWER_SAVE_NONE
---help---
Wi-Fi supports the Modem-sleep mode which refers to the legacy power-saving mode in the IEEE 802.11 protocol.
Modem-sleep mode works in station-only mode and the station must connect to the AP first. If the Modem-sleep
mode is enabled, station will switch between active and sleep state periodically. In sleep state, RF, PHY and
BB are turned off in order to reduce power consumption. Station can keep connection with AP in modem-sleep mode.
Modem-sleep mode includes minimum and maximum power-saving modes.
In minimum power-saving mode, station wakes
up every DTIM to receive beacon. Broadcast data will not be lost because it is transmitted after DTIM.
However, it cannot save much more power if DTIM is short for DTIM is determined by AP.
In maximum power-saving mode, station wakes up in every listen interval to receive beacon. This listen interval
can be set to be longer than the AP DTIM period. Broadcast data may be lost because station may be in sleep
state at DTIM time. If listen interval is longer, more power is saved, but broadcast data is more easy to lose.
Listen interval can be configured by setting ESPRESSIF_WIFI_LISTEN_INTERVAL.
ESPRESSIF_POWER_SAVE_NONE disables Modem-sleep mode entirely. Disabling it increases power consumption, but
minimizes the delay in receiving Wi-Fi data in real time. When Modem-sleep mode is enabled, the delay in
receiving Wi-Fi data may be the same as the DTIM cycle (minimum power-saving mode) or the listening interval
(maximum power-saving mode). Setting ESPRESSIF_POWER_SAVE_NONE is suitable when high throughput is required.
config ESPRESSIF_POWER_SAVE_NONE
bool "No power save"
config ESPRESSIF_POWER_SAVE_MIN_MODEM
bool "Minimum modem power saving."
config ESPRESSIF_POWER_SAVE_MAX_MODEM
bool "Maximum modem power saving"
endchoice # ESP_POWER_SAVE_MODE
endmenu # ESPRESSIF_WIFI
menu "BLE Configuration"
depends on ESPRESSIF_BLE
config ESPRESSIF_BLE_TTY_NAME
string "BLE TTY device name"
default "/dev/ttyHCI0"
depends on UART_BTH4
config ESPRESSIF_BLE_TASK_STACK_SIZE
int "Controller task stack size"
default 4096
config ESPRESSIF_BLE_TASK_PRIORITY
int "Controller task priority"
default 253
config ESPRESSIF_BLE_INTERRUPT_SAVE_STATUS
int "Number of interrupt save status"
default 3
---help---
Number of interrupt save status variables to keep track. Increase it if any related bug is found.
endmenu # BLE Configuration
menu "UART Configuration"
depends on ESPRESSIF_UART
if ESPRESSIF_UART0
config ESPRESSIF_UART0_RS485
bool "RS-485 on UART0"
default n
---help---
Enable RS-485 interface on UART0. Your board config will have to
provide GPIO_UART0_RS485_DIR pin definition.
config ESPRESSIF_UART0_RS485_DIR_PIN
int "UART0 RS-485 DIR pin"
default 10
range 0 46
depends on ESPRESSIF_UART0_RS485
---help---
DIR pin for RS-485 on UART0. This pin will control the RS485 enable
TX of the RS485 transceiver.
config ESPRESSIF_UART0_RS485_DIR_POLARITY
int "UART0 RS-485 DIR pin polarity"
default 1
range 0 1
depends on ESPRESSIF_UART0_RS485
---help---
Polarity of DIR pin for RS-485 on UART0. Set to state on DIR pin which
enables TX (0 - low / nTXEN, 1 - high / TXEN).
config ESPRESSIF_UART0_TXPIN
int "UART0 TX Pin"
default 21 if ARCH_CHIP_ESP32C3
default 16 if ARCH_CHIP_ESP32C6
default 24 if ARCH_CHIP_ESP32H2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
config ESPRESSIF_UART0_RXPIN
int "UART0 RX Pin"
default 20 if ARCH_CHIP_ESP32C3
default 17 if ARCH_CHIP_ESP32C6
default 23 if ARCH_CHIP_ESP32H2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
config ESPRESSIF_UART0_RTSPIN
int "UART0 RTS Pin"
depends on SERIAL_IFLOWCONTROL
default 16 if ARCH_CHIP_ESP32C3
default 15 if ARCH_CHIP_ESP32C6
default 22 if ARCH_CHIP_ESP32H2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
config ESPRESSIF_UART0_CTSPIN
int "UART0 CTS Pin"
depends on SERIAL_OFLOWCONTROL
default 15 if ARCH_CHIP_ESP32C3
default 14 if ARCH_CHIP_ESP32C6
default 21 if ARCH_CHIP_ESP32H2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
endif # ESPRESSIF_UART0
if ESPRESSIF_UART1
config ESPRESSIF_UART1_RS485
bool "RS-485 on UART1"
default n
---help---
Enable RS-485 interface on UART1. Your board config will have to
provide GPIO_UART1_RS485_DIR pin definition.
config ESPRESSIF_UART1_RS485_DIR_PIN
int "UART1 RS-485 DIR pin"
default 4
range 0 46
depends on ESPRESSIF_UART1_RS485
---help---
DIR pin for RS-485 on UART1. This pin will control the RS485 enable
TX of the RS485 transceiver.
config ESPRESSIF_UART1_RS485_DIR_POLARITY
int "UART1 RS-485 DIR pin polarity"
default 1
range 0 1
depends on ESPRESSIF_UART1_RS485
---help---
Polarity of DIR pin for RS-485 on UART1. Set to state on DIR pin which
enables TX (0 - low / nTXEN, 1 - high / TXEN).
config ESPRESSIF_UART1_TXPIN
int "UART1 TX Pin"
default 8 if ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2
config ESPRESSIF_UART1_RXPIN
int "UART1 RX Pin"
default 9 if ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2
config ESPRESSIF_UART1_RTSPIN
int "UART1 RTS Pin"
depends on SERIAL_IFLOWCONTROL
default 1 if ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
config ESPRESSIF_UART1_CTSPIN
int "UART1 CTS Pin"
depends on SERIAL_OFLOWCONTROL
default 2 if ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
endif # ESPRESSIF_UART1
endmenu # UART Configuration
menu "TWAI driver options"
depends on ESPRESSIF_TWAI
if ESPRESSIF_TWAI0
config ESPRESSIF_TWAI0_TXPIN
int "TWAI0 TX Pin"
default 2
config ESPRESSIF_TWAI0_RXPIN
int "TWAI0 RX Pin"
default 3
choice ESPRESSIF_TWAI0_TIMING
prompt "TWAI0 Timing config"
default TWAI0_TIMING_100KBITS
---help---
These options control timing of TWAI0.
config TWAI0_TIMING_100KBITS
bool "100 KBits"
config TWAI0_TIMING_125KBITS
bool "125 KBits"
config TWAI0_TIMING_250KBITS
bool "250 KBits"
config TWAI0_TIMING_500KBITS
bool "500 KBits"
config TWAI0_TIMING_800KBITS
bool "800 KBits"
endchoice # ESPRESSIF_TWAI0_TIMING
config ESPRESSIF_TWAI0_SAM
bool "TWAI0 sampling"
default n
---help---
The bus is sampled 3 times (recommended for low to medium speed buses
to spikes on the bus-line).
endif # ESPRESSIF_TWAI0
if ESPRESSIF_TWAI1
config ESPRESSIF_TWAI1_TXPIN
int "TWAI1 TX Pin"
default 4
config ESPRESSIF_TWAI1_RXPIN
int "TWAI1 RX Pin"
default 5
choice ESPRESSIF_TWAI1_TIMING
prompt "TWAI1 Timing config"
default TWAI1_TIMING_100KBITS
---help---
These options control timing of TWAI1.
config TWAI1_TIMING_100KBITS
bool "100 KBits"
config TWAI1_TIMING_125KBITS
bool "125 KBits"
config TWAI1_TIMING_250KBITS
bool "250 KBits"
config TWAI1_TIMING_500KBITS
bool "500 KBits"
config TWAI1_TIMING_800KBITS
bool "800 KBits"
endchoice # ESPRESSIF_TWAI1_TIMING
config ESPRESSIF_TWAI1_SAM
bool "TWAI1 sampling"
default n
---help---
The bus is sampled 3 times (recommended for low to medium speed buses
to spikes on the bus-line).
endif # ESPRESSIF_TWAI1
config ESPRESSIF_TWAI_TEST_MODE
bool "TWAI character driver loopback test mode (for testing only)"
default n
depends on CAN_LOOPBACK
---help---
This enables a loopback test mode that attaches the transmitter
to the receiver internally, being able to test the TWAI
peripheral without any external connection.
endmenu #ESPRESSIF_TWAI
menu "SPI configuration"
depends on ESPRESSIF_SPI
config ESPRESSIF_SPI_SWCS
bool "SPI software CS"
depends on ESPRESSIF_SPI_PERIPH
default n
---help---
Use SPI software CS.
config ESPRESSIF_SPI_UDCS
bool "User defined CS"
default n
depends on ESPRESSIF_SPI_SWCS
depends on ESPRESSIF_SPI_PERIPH
---help---
Use user-defined CS.
if ESPRESSIF_SPI2
config ESPRESSIF_SPI2_DMA
bool "SPI2 use GDMA"
default n
depends on ESPRESSIF_DMA
---help---
Enable support for transfers using the GDMA engine.
config ESPRESSIF_SPI2_DMADESC_NUM
int "SPI2 Master GDMA maximum number of descriptors"
default 2
depends on ESPRESSIF_SPI2_DMA
---help---
Configure the maximum number of out-link/in-link descriptors to
be chained for a GDMA transfer.
config ESPRESSIF_SPI2_DMATHRESHOLD
int "SPI2 GDMA threshold"
default 64
depends on ESPRESSIF_SPI2_DMA
---help---
When SPI GDMA is enabled, GDMA transfers whose size are below the
defined threshold will be performed by polling logic.
choice ESPRESSIF_SPI2_MODE
prompt "SPI2 mode"
default ESPRESSIF_SPI2_MODE_MASTER
config ESPRESSIF_SPI2_MODE_MASTER
bool "SPI2 Master mode"
depends on SPI_DRIVER
---help---
Configure SPI2 to operate in Master mode.
config ESPRESSIF_SPI2_SLAVE
bool "SPI2 Slave mode"
depends on SPI_SLAVE
select ESPRESSIF_GPIO_IRQ
select ESPRESSIF_SPI_SLAVE
---help---
Configure SPI2 to operate in Slave mode.
endchoice # ESPRESSIF_SPI2_MODE
config ESPRESSIF_SPI2_SLAVE_BUFSIZE
int "SPI2 Slave buffer size"
default 2048
depends on ESPRESSIF_SPI2_SLAVE
---help---
Configure the size of SPI2 Slave controller's internal buffers.
config ESPRESSIF_SPI2_CSPIN
int "SPI2 CS Pin"
default 10 if ARCH_CHIP_ESP32C3
default 16 if ARCH_CHIP_ESP32C6
default 1 if ARCH_CHIP_ESP32H2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
config ESPRESSIF_SPI2_CLKPIN
int "SPI2 CLK Pin"
default 6 if ARCH_CHIP_ESP32C3
default 6 if ARCH_CHIP_ESP32C6
default 4 if ARCH_CHIP_ESP32H2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
config ESPRESSIF_SPI2_MOSIPIN
int "SPI2 MOSI Pin"
default 7 if ARCH_CHIP_ESP32C3
default 7 if ARCH_CHIP_ESP32C6
default 5 if ARCH_CHIP_ESP32H2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
config ESPRESSIF_SPI2_MISOPIN
int "SPI2 MISO Pin"
default 2 if ARCH_CHIP_ESP32C3
default 2 if ARCH_CHIP_ESP32C6
default 0 if ARCH_CHIP_ESP32H2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
endif # ESPRESSIF_SPI2
if ESPRESSIF_SPI_BITBANG
choice ESPRESSIF_SPI_BITBANG_OPERATION_MODE
prompt "SPI Bitbang mode"
default ESPRESSIF_SPI_BITBANG_OPERATION_MODE_MASTER
config ESPRESSIF_SPI_BITBANG_OPERATION_MODE_MASTER
bool "SPI Bitbang Master mode"
depends on SPI_DRIVER
---help---
Configure SPI Bitbang to operate in Master mode.
endchoice # ESPRESSIF_SPI_BITBANG_OPERATION_MODE
config ESPRESSIF_SPI_BITBANG_CSPIN
int "SPI Bitbang CS Pin"
default 0
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
config ESPRESSIF_SPI_BITBANG_CLKPIN
int "SPI Bitbang CLK Pin"
default 1
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
config ESPRESSIF_SPI_BITBANG_MOSIPIN
int "SPI Bitbang MOSI Pin"
default 2
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
config ESPRESSIF_SPI_BITBANG_MISOPIN
int "SPI Bitbang MISO Pin"
default 3
range 0 21 if ARCH_CHIP_ESP32C3
range 0 30 if ARCH_CHIP_ESP32C6
range 0 27 if ARCH_CHIP_ESP32H2
choice ESPRESSIF_SPI_BITBANG_MODE
prompt "SPI Bitbang mode"
default ESPRESSIF_SPI_BITBANG_MODE0
config ESPRESSIF_SPI_BITBANG_MODE0
bool "SPI MODE0"
config ESPRESSIF_SPI_BITBANG_MODE1
bool "SPI MODE1"
config ESPRESSIF_SPI_BITBANG_MODE2
bool "SPI MODE2"
config ESPRESSIF_SPI_BITBANG_MODE3
bool "SPI MODE3"
endchoice # ESPRESSIF_SPI_BITBANG_MODE
endif # ESPRESSIF_SPI_BITBANG
config ESPRESSIF_SPI_TEST_MODE
bool "SPI driver loopback test mode (for testing only)"
default n
depends on SYSTEM_SPITOOL
depends on ESPRESSIF_SPI_PERIPH
---help---
This enables a loopback test mode that attaches the transmitter
to the receiver internally, being able to test the SPI
peripheral without any external connection.
endmenu # SPI configuration
menu "Interrupt Configuration"
config ESPRESSIF_IRAM_ISR_DEBUG
bool "Enable debugging of the IRAM-enabled interrupts"
default n
---help---
This option enables keeping track of the IRAM-enabled interrupts by
registering its execution when non-IRAM interrupts are disabled. It
keeps track of the IRQ executed and register how many times since
boot it was executed. Generally used for testing.
endmenu
menu "SPI Flash Configuration"
choice ESPRESSIF_FLASH_MODE
prompt "SPI Flash mode"
default ESPRESSIF_FLASH_MODE_DIO
---help---
These options control how many I/O pins are used for communication with the attached SPI Flash chip.
The option selected here is then used by esptool when flashing.
config ESPRESSIF_FLASH_MODE_DIO
bool "Dual IO (DIO)"
config ESPRESSIF_FLASH_MODE_DOUT
bool "Dual Output (DOUT)"
config ESPRESSIF_FLASH_MODE_QIO
bool "Quad IO (QIO)"
config ESPRESSIF_FLASH_MODE_QOUT
bool "Quad Output (QOUT)"
endchoice # ESPRESSIF_FLASH_MODE
choice ESPRESSIF_FLASH_FREQ
prompt "SPI Flash frequency"
default ESPRESSIF_FLASH_FREQ_80M if ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6
default ESPRESSIF_FLASH_FREQ_64M if ARCH_CHIP_ESP32H2
---help---
SPI Flash frequency.
config ESPRESSIF_FLASH_FREQ_80M
bool "80 MHz"
depends on ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6
config ESPRESSIF_FLASH_FREQ_64M
bool "64 MHz"
depends on ARCH_CHIP_ESP32H2
config ESPRESSIF_FLASH_FREQ_40M
bool "40 MHz"
depends on ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6
config ESPRESSIF_FLASH_FREQ_26M
bool "26 MHz"
depends on ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6
config ESPRESSIF_FLASH_FREQ_20M
bool "20 MHz"
depends on ARCH_CHIP_ESP32C3 || ARCH_CHIP_ESP32C6
endchoice # ESPRESSIF_FLASH_FREQ
config ESPRESSIF_FLASH_FREQ
string
# On some of the ESP chips, max boot frequency would be equal to (or even lower than) 80m.
# We currently define this to `80m`.
default '80m' if ESPRESSIF_FLASH_FREQ_120M
default '80m' if ESPRESSIF_FLASH_FREQ_80M
default '60m' if ESPRESSIF_FLASH_FREQ_60M
default '48m' if ESPRESSIF_FLASH_FREQ_64M
default '48m' if ESPRESSIF_FLASH_FREQ_48M
default '24m' if ESPRESSIF_FLASH_FREQ_32M
default '30m' if ESPRESSIF_FLASH_FREQ_30M
default '24m' if ESPRESSIF_FLASH_FREQ_24M
default '40m' if ESPRESSIF_FLASH_FREQ_40M
default '26m' if ESPRESSIF_FLASH_FREQ_26M
default '20m' if ESPRESSIF_FLASH_FREQ_20M
default '12m' if ESPRESSIF_FLASH_FREQ_16M
default '20m' # if no clock can match in bin headers, go with minimal.
config ESPRESSIF_SPI_FLASH_USE_ROM_CODE
bool "Use SPI flash driver in ROM"
default n
depends on ARCH_CHIP_ESP32C3
---help---
Use functions in ROM for SPI flash driver instead of
source code.
config ESPRESSIF_SPI_FLASH_USE_32BIT_ADDRESS
bool "SPI flash uses 32-bit address"
default n
---help---
SPI flash driver in ROM only support 24-bit address access,
if select the option, it will force to use source code instead
of functions in ROM, so that SPI flash driver can access full
32-bit address.
endmenu # SPI Flash Configuration
if ESPRESSIF_SPIFLASH
menu "User Storage MTD Configuration"
config ESPRESSIF_MTD
bool "MTD driver"
default y
select MTD
select MTD_BYTE_WRITE
select MTD_PARTITION
---help---
Initialize an MTD driver for the SPI Flash, which will
add an entry at /dev for application access from userspace.
config ESPRESSIF_SPIFLASH_MTD_BLKSIZE
int "Storage MTD block size"
default 64
depends on ESPRESSIF_MTD
---help---
Block size for MTD driver in kB. This size must be divisible by 2
config ESPRESSIF_STORAGE_MTD_DEBUG
bool "Storage MTD Debug"
default n
depends on ESPRESSIF_MTD && DEBUG_FS_INFO
---help---
If this option is enabled, Storage MTD driver read and write functions
will output input parameters and return values (if applicable).
config ESPRESSIF_STORAGE_MTD_OFFSET
hex "Storage MTD base address in SPI Flash"
default 0x180000 if !ESPRESSIF_BOOTLOADER_MCUBOOT
default 0x260000 if ESPRESSIF_BOOTLOADER_MCUBOOT
depends on ESPRESSIF_MTD
---help---
MTD base address in SPI Flash.
config ESPRESSIF_STORAGE_MTD_SIZE
hex "Storage MTD size in SPI Flash"
default 0x100000
depends on ESPRESSIF_MTD
---help---
MTD size in SPI Flash.
endmenu # User Storage MTD Configuration
endif # ESPRESSIF_SPIFLASH
menu "RTC Configuration"
depends on ESPRESSIF_RTC
choice ESPRESSIF_RTC_CLK_SRC
prompt "RTC clock source"
default ESPRESSIF_RTC_CLK_INT_RC
---help---
Choose which clock is used as RTC clock source.
- "Internal 90KHz oscillator" option provides lowest deep sleep current
consumption, and does not require extra external components. However
frequency stability with respect to temperature is poor, so time may
drift in deep/light sleep modes.
- "External 32KHz crystal" provides better frequency stability, at the
expense of slightly higher (1uA) deep sleep current consumption.
- "External 32KHz oscillator" allows using 32KHz clock generated by an
external circuit. In this case, external clock signal must be connected
to 32K_XN pin. Amplitude should be <1.2V in case of sine wave signal,
and <1V in case of square wave signal. Common mode voltage should be
0.1 < Vcm < 0.5Vamp, where Vamp is the signal amplitude.
Additionally, 1nF capacitor must be connected between 32K_XP pin and
ground. 32K_XP pin can not be used as a GPIO in this case.
- "Internal 8.5MHz oscillator divided by 256" option results in higher
deep sleep current (by 5uA) but has better frequency stability than
the internal 90KHz oscillator. It does not require external components.
config ESPRESSIF_RTC_CLK_INT_RC
bool "Internal 90KHz RC oscillator"
config ESPRESSIF_RTC_CLK_EXT_XTAL
bool "External 32KHz crystal"
select ESP_SYSTEM_RTC_EXT_XTAL
config ESPRESSIF_RTC_CLK_EXT_OSC
bool "External 32KHz oscillator at 32K_XN pin"
select ESP_SYSTEM_RTC_EXT_XTAL
config ESPRESSIF_RTC_CLK_INT_8MD256
bool "Internal 8.5MHz oscillator, divided by 256 (~33kHz)"
endchoice
endmenu # "RTC Configuration"
menu "LEDC configuration"
depends on ESPRESSIF_LEDC
config ESPRESSIF_LEDC_HPOINT
hex "LEDC hpoint value"
default 0x0000
range 0x0 0xfffff
menuconfig ESPRESSIF_LEDC_TIMER0
bool "Timer 0"
default n
if ESPRESSIF_LEDC_TIMER0
config ESPRESSIF_LEDC_TIMER0_CHANNELS
int "Number of Timer 0 channels"
default 2 if PWM_MULTICHAN && PWM_NCHANNELS > 1
default 1 if !PWM_MULTICHAN || PWM_NCHANNELS = 1
range 0 6
config ESPRESSIF_LEDC_TIMER0_RESOLUTION
int "Timer 0 resolution"
default 13
range 1 14 if ARCH_CHIP_ESP32C3 && !(ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2)
range 1 20 if !ARCH_CHIP_ESP32C3 && (ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2)
---help---
Timer resolution in bits. The resolution is the number of bits used to by the timer
counter to generate the PWM signal. The duty cycle provided by the upper layers
will be scaled to fit the resolution.
endif # ESPRESSIF_LEDC_TIMER0
menuconfig ESPRESSIF_LEDC_TIMER1
bool "Timer 1"
default n
if ESPRESSIF_LEDC_TIMER1
config ESPRESSIF_LEDC_TIMER1_CHANNELS
int "Number of Timer 1 channels"
default 2 if PWM_MULTICHAN && PWM_NCHANNELS > 1
default 1 if !PWM_MULTICHAN || PWM_NCHANNELS = 1
range 0 6
config ESPRESSIF_LEDC_TIMER1_RESOLUTION
int "Timer 1 resolution"
default 13
range 1 14 if ARCH_CHIP_ESP32C3 && !(ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2)
range 1 20 if !ARCH_CHIP_ESP32C3 && (ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2)
---help---
Timer resolution in bits. The resolution is the number of bits used to by the timer
counter to generate the PWM signal. The duty cycle provided by the upper layers
will be scaled to fit the resolution.
endif # ESPRESSIF_LEDC_TIMER1
menuconfig ESPRESSIF_LEDC_TIMER2
bool "Timer 2"
default n
if ESPRESSIF_LEDC_TIMER2
config ESPRESSIF_LEDC_TIMER2_CHANNELS
int "Number of Timer 2 channels"
default 2 if PWM_MULTICHAN && PWM_NCHANNELS > 1
default 1 if !PWM_MULTICHAN || PWM_NCHANNELS = 1
range 0 6
config ESPRESSIF_LEDC_TIMER2_RESOLUTION
int "Timer 2 resolution"
default 13
range 1 14 if ARCH_CHIP_ESP32C3 && !(ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2)
range 1 20 if !ARCH_CHIP_ESP32C3 && (ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2)
---help---
Timer resolution in bits. The resolution is the number of bits used to by the timer
counter to generate the PWM signal. The duty cycle provided by the upper layers
will be scaled to fit the resolution.
endif # ESPRESSIF_LEDC_TIMER2
menuconfig ESPRESSIF_LEDC_TIMER3
bool "Timer 3"
default n
if ESPRESSIF_LEDC_TIMER3
config ESPRESSIF_LEDC_TIMER3_CHANNELS
int "Number of Timer 3 channels"
default 2 if PWM_MULTICHAN && PWM_NCHANNELS > 1
default 1 if !PWM_MULTICHAN || PWM_NCHANNELS = 1
range 0 6
config ESPRESSIF_LEDC_TIMER3_RESOLUTION
int "Timer 3 resolution"
default 13
range 1 14 if ARCH_CHIP_ESP32C3 && !(ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2)
range 1 20 if !ARCH_CHIP_ESP32C3 && (ARCH_CHIP_ESP32C6 || ARCH_CHIP_ESP32H2)
---help---
Timer resolution in bits. The resolution is the number of bits used to by the timer
counter to generate the PWM signal. The duty cycle provided by the upper layers
will be scaled to fit the resolution.
endif # ESPRESSIF_LEDC_TIMER3
config ESPRESSIF_LEDC_CHANNEL0_PIN
int "Channel 0 pin"
default 2
config ESPRESSIF_LEDC_CHANNEL1_PIN
int "Channel 1 pin"
default 3
config ESPRESSIF_LEDC_CHANNEL2_PIN
int "Channel 2 pin"
default 4
config ESPRESSIF_LEDC_CHANNEL3_PIN
int "Channel 3 pin"
default 5
if PWM_MULTICHAN && PWM_NCHANNELS > 1
config ESPRESSIF_LEDC_CHANNEL4_PIN
int "Channel 4 pin"
default 6
config ESPRESSIF_LEDC_CHANNEL5_PIN
int "Channel 5 pin"
default 7
endif # PWM_MULTICHAN && PWM_NCHANNELS > 1
endmenu # LEDC configuration
menu "I2S Configuration"
depends on ESPRESSIF_I2S
config ESPRESSIF_I2S_MAXINFLIGHT
int "I2S queue size"
default 4
---help---
This is the total number of transfers, both RX and TX, that can be
enqueued before the caller is required to wait. This setting
determines the number certain queue data structures that will be
pre-allocated.
if ESPRESSIF_I2S0
config ESPRESSIF_I2S0_RX
bool "Enable I2S receiver"
default y
---help---
Enable I2S receiver (port 0)
config ESPRESSIF_I2S0_TX
bool "Enable I2S transmitter"
default y
---help---
Enable I2S transmitter (port 0)
choice ESPRESSIF_I2S0_ROLE
prompt "I2S0 role"
default ESPRESSIF_I2S0_ROLE_MASTER
---help---
Selects the operation role of the I2S0.
config ESPRESSIF_I2S0_ROLE_MASTER
bool "Master"
config ESPRESSIF_I2S0_ROLE_SLAVE
bool "Slave"
endchoice # I2S0 role
choice ESPRESSIF_I2S0_DATA_BIT_WIDTH
prompt "Bit width"
default ESPRESSIF_I2S0_DATA_BIT_WIDTH_16BIT
---help---
Selects the valid data bits per sample.
Note that this option may be overwritten by the audio
according to the bit width of the file being played
config ESPRESSIF_I2S0_DATA_BIT_WIDTH_8BIT
bool "8 bits"
config ESPRESSIF_I2S0_DATA_BIT_WIDTH_16BIT
bool "16 bits"
config ESPRESSIF_I2S0_DATA_BIT_WIDTH_24BIT
bool "24 bits"
config ESPRESSIF_I2S0_DATA_BIT_WIDTH_32BIT
bool "32 bits"
endchoice # Bit width
config ESPRESSIF_I2S0_SAMPLE_RATE
int "I2S0 sample rate"
default 44100
range 8000 48000
---help---
Selects the sample rate.
Note that this option may be overwritten by the audio
according to the bit width of the file being played
config ESPRESSIF_I2S0_BCLKPIN
int "I2S0 BCLK pin"
default 4
range 0 48
config ESPRESSIF_I2S0_WSPIN
int "I2S0 WS pin"
default 5
range 0 48
config ESPRESSIF_I2S0_DINPIN
int "I2S0 DIN pin"
depends on ESPRESSIF_I2S0_RX
default 19 if !ARCH_CHIP_ESP32H2
default 11 if ARCH_CHIP_ESP32H2
range 0 48
config ESPRESSIF_I2S0_DOUTPIN
int "I2S0 DOUT pin"
depends on ESPRESSIF_I2S0_TX
default 18 if !ARCH_CHIP_ESP32H2
default 10 if ARCH_CHIP_ESP32H2
range 0 48
config ESPRESSIF_I2S0_MCLK
bool "Enable I2S Master Clock"
depends on ESPRESSIF_I2S0_ROLE_MASTER
default n
---help---
Enable I2S master clock
config ESPRESSIF_I2S0_MCLKPIN
int "I2S MCLK pin"
depends on ESPRESSIF_I2S0_MCLK
default 0
range 0 48
endif # ESPRESSIF_I2S0
config I2S_DMADESC_NUM
int "I2S DMA maximum number of descriptors"
default 2
---help---
Configure the maximum number of out-link/in-link descriptors to
be chained for an I2S DMA transfer.
endmenu # I2S configuration
menu "I2C Configuration"
depends on ESPRESSIF_I2C
if ESPRESSIF_I2C0
choice ESPRESSIF_I2C0_MODE
prompt "I2C0 Mode"
depends on ESPRESSIF_I2C0
default ESPRESSIF_I2C0_MASTER_MODE
config ESPRESSIF_I2C0_MASTER_MODE
bool "I2C0 Master Mode"
select ESPRESSIF_I2C_PERIPH_MASTER_MODE
config ESPRESSIF_I2C0_SLAVE_MODE
bool "I2C0 Slave Mode"
select I2C_SLAVE
select I2C_SLAVE_DRIVER
select ESPRESSIF_I2C_PERIPH_SLAVE_MODE
endchoice # ESPRESSIF_I2C0_MODE
config ESPRESSIF_I2C0_SCLPIN
int "I2C0 SCL Pin"
default 6 if !ESPRESSIF_LPI2C
default 23 if ESPRESSIF_LPI2C
range 0 21
config ESPRESSIF_I2C0_SDAPIN
int "I2C0 SDA Pin"
default 5
range 0 21
endif # ESPRESSIF_I2C0
if ESPRESSIF_I2C1
choice ESPRESSIF_I2C1_MODE
prompt "I2C1 Mode"
depends on ESPRESSIF_I2C1
default ESPRESSIF_I2C1_MASTER_MODE
config ESPRESSIF_I2C1_MASTER_MODE
bool "I2C1 Master Mode"
select ESPRESSIF_I2C_PERIPH_MASTER_MODE
config ESPRESSIF_I2C1_SLAVE_MODE
bool "I2C1 Slave Mode"
select I2C_SLAVE
select I2C_SLAVE_DRIVER
select ESPRESSIF_I2C_PERIPH_SLAVE_MODE
endchoice # ESPRESSIF_I2C1_MODE
config ESPRESSIF_I2C1_SCLPIN
int "I2C1 SCL Pin"
default 2
range 0 21
config ESPRESSIF_I2C1_SDAPIN
int "I2C1 SDA Pin"
default 1
range 0 21
endif # ESPRESSIF_I2C1
if ESPRESSIF_LPI2C
choice ESPRESSIF_LPI2C_MODE
prompt "LPI2C Mode"
default ESPRESSIF_LPI2C_MASTER_MODE
config ESPRESSIF_LPI2C_MASTER_MODE
bool "I2C0 Master Mode"
select ESPRESSIF_I2C_PERIPH_MASTER_MODE
endchoice # ESPRESSIF_LPI2C_MODE
config ESPRESSIF_LPI2C_SCLPIN
int "LPI2C SCL Pin"
default 7
range 7 7
config ESPRESSIF_LPI2C_SDAPIN
int "LPI2C SDA Pin"
default 6
range 6 6
endif # ESPRESSIF_LPI2C
if ESPRESSIF_I2C_BITBANG
choice ESPRESSIF_I2C_BITBANG_MODE
prompt "I2C Bitbang Mode"
default ESPRESSIF_I2C_BITBANG_MASTER_MODE
config ESPRESSIF_I2C_BITBANG_MASTER_MODE
bool "I2C Bitbang Master Mode"
endchoice # ESPRESSIF_I2C_BITBANG_MODE
config ESPRESSIF_I2C_BITBANG_SCLPIN
int "I2C Bitbang SCL Pin"
default 0
range 0 21
config ESPRESSIF_I2C_BITBANG_SDAPIN
int "I2C Bitbang SDA Pin"
default 1
range 0 21
endif # ESPRESSIF_I2C_BITBANG
config ESPRESSIF_I2CTIMEOSEC
int "Timeout seconds"
depends on ESPRESSIF_I2C_PERIPH_MASTER_MODE
default 0
config ESPRESSIF_I2CTIMEOMS
int "Timeout milliseconds"
depends on ESPRESSIF_I2C_PERIPH_MASTER_MODE
default 500
endmenu # I2C configuration
menu "MCPWM Configuration"
depends on ESP_MCPWM
config ESP_MCPWM_MOTOR
bool "MCPWM Motor Support"
default n
menu "MCPWM Motor Configuration"
depends on ESP_MCPWM_MOTOR
config ESP_MCPWM_MOTOR_BDC
bool "Brushed DC Motor Control"
depends on ESP_MCPWM
depends on ESP_MCPWM_MOTOR
select MOTOR
select MOTOR_UPPER
select MOTOR_UPPER_HAVE_SPEED
default n
---help---
Enables the use of the MCPWM submodule for control of brushed DC
motor.
if ESP_MCPWM_MOTOR_BDC
config ESP_MCPWM_MOTOR_CH0
bool "Motor Control Channel 0"
default n
---help---
Enables motor control on channel 0.
if ESP_MCPWM_MOTOR_CH0
config ESP_MCPWM_MOTOR_CH0_PWMA_GPIO
int "Output Pin PWM_A"
default 20 if ARCH_CHIP_ESP32C6
default 10 if ARCH_CHIP_ESP32H2
---help---
Output pin assigned to channel 0 PWM output PWM_A.
config ESP_MCPWM_MOTOR_CH0_PWMB_GPIO
int "Output Pin PWM_B"
default 21 if ARCH_CHIP_ESP32C6
default 11 if ARCH_CHIP_ESP32H2
---help---
Output pin assigned to channel 0 PWM output PWM_B.
config ESP_MCPWM_MOTOR_CH0_PWM_FREQ
int "PWM output frequency for channel 0 [Hz]"
default 1000
---help---
Select PWM frequency for channel 0.
Minimum is 25 Hz and maximum is 3000 Hz.
config ESP_MCPMW_MOTOR_CH0_FAULT
bool "Enable fault for channel 0"
default n
---help---
Enables the use of a fault pin to quickly stop the motor when
a GPIO pin pulled high.
if ESP_MCPMW_MOTOR_CH0_FAULT
config ESP_MCPMW_MOTOR_CH0_FAULT_GPIO
int "GPIO Pin for fault detection"
default 9
---help---
Input pin assigned to channel 0 fault indicator.
endif # ESP_MCPMW_MOTOR_CH0_FAULT
endif # ESP_MCPWM_MOTOR_CH0
config ESP_MCPWM_MOTOR_CH1
bool "Motor Control Channel 1"
default n
---help---
Enables motor control on channel 1.
if ESP_MCPWM_MOTOR_CH1
config ESP_MCPWM_MOTOR_CH1_PWMA_GPIO
int "Output Pin CH1 PWM_A"
default 15
---help---
Output pin assigned to channel 1 PWM output PWM_A.
config ESP_MCPWM_MOTOR_CH1_PWMB_GPIO
int "Output Pin CH1 PWM_B"
default 16
---help---
Output pin assigned to channel 1 PWM output PWM_B.
endif # ESP_MCPWM_MOTOR_CH1
endif # ESP_MCPWM_MOTOR_BDC
endmenu # MCPWM Motor Settings
config ESP_MCPWM_CAPTURE
bool "MCPWM Capture Submodule"
depends on ESP_MCPWM
select CAPTURE
default n
---help---
Enables the use of the MCPWM capture submodule.
if ESP_MCPWM_CAPTURE
config ESP_MCPWM_CAPTURE_CH0
bool "Capture Channel 0"
default n
---help---
Enables capture on channel 0.
if ESP_MCPWM_CAPTURE_CH0
config ESP_MCPWM_CAPTURE_CH0_GPIO
int "GPIO Pin"
default 18
---help---
GPIO pin assigned to capture channel 0.
endif # ESP_MCPWM_CAPTURE_CH0
config ESP_MCPWM_CAPTURE_CH1
bool "Capture Channel 1"
default n
---help---
Enables capture on channel 1.
if ESP_MCPWM_CAPTURE_CH1
config ESP_MCPWM_CAPTURE_CH1_GPIO
int "GPIO Pin"
default 19
---help---
GPIO pin assigned to capture channel 1.
endif # ESP_MCPWM_CAPTURE_CH1
config ESP_MCPWM_CAPTURE_CH2
bool "Capture Channel 2"
default n
---help---
Enables capture on channel 2.
if ESP_MCPWM_CAPTURE_CH2
config ESP_MCPWM_CAPTURE_CH2_GPIO
int "GPIO Pin"
default 20
---help---
GPIO pin assigned to capture channel 2.
endif # ESP_MCPWM_CAPTURE_CH2
endif # ESP_MCPWM_CAPTURE
config ESP_MCPWM_TEST_LOOPBACK
bool "MCPWM loopback test mode"
depends on EXPERIMENTAL
default n
---help---
This enables a lower-half driver-specific loopback test
mode that attaches a capture device to the PWM output on
motor tests.
endmenu # MCPWM Configuration
menu "High Resolution Timer"
depends on ESPRESSIF_HR_TIMER
config ESPRESSIF_HR_TIMER_TASK_NAME
string "High Resolution Timer task name"
default "hr_timer"
config ESPRESSIF_HR_TIMER_TASK_PRIORITY
int "High Resolution Timer task priority"
default 223
---help---
Priority level of the High Resolution Timer task.
Must be lower than the SCHED_HPWORKPRIORITY.
config ESPRESSIF_HR_TIMER_TASK_STACK_SIZE
int "High Resolution Timer task stack size"
default 2048
endmenu # High Resolution Timer
menu "Brownout Detector Configuration"
depends on ESPRESSIF_BROWNOUT_DET
choice ESPRESSIF_BROWNOUT_DET_LVL_SEL
prompt "Brownout voltage level"
default ESPRESSIF_BROWNOUT_DET_LVL_SEL_7
---help---
The brownout detector will reset the chip when the supply voltage is
approximately below this level. Note that there may be some variation
of brownout voltage level between each chip.
config ESPRESSIF_BROWNOUT_DET_LVL_SEL_7
bool "2.51V"
config ESPRESSIF_BROWNOUT_DET_LVL_SEL_6
bool "2.64V"
config ESPRESSIF_BROWNOUT_DET_LVL_SEL_5
bool "2.76V"
config ESPRESSIF_BROWNOUT_DET_LVL_SEL_4
bool "2.92V"
config ESPRESSIF_BROWNOUT_DET_LVL_SEL_3
bool "3.10V"
config ESPRESSIF_BROWNOUT_DET_LVL_SEL_2
bool "3.27V"
endchoice # ESPRESSIF_BROWNOUT_DET_LVL_SEL
config ESPRESSIF_BROWNOUT_DET_LVL
int
default 2 if ESPRESSIF_BROWNOUT_DET_LVL_SEL_2
default 3 if ESPRESSIF_BROWNOUT_DET_LVL_SEL_3
default 4 if ESPRESSIF_BROWNOUT_DET_LVL_SEL_4
default 5 if ESPRESSIF_BROWNOUT_DET_LVL_SEL_5
default 6 if ESPRESSIF_BROWNOUT_DET_LVL_SEL_6
default 7 if ESPRESSIF_BROWNOUT_DET_LVL_SEL_7
endmenu # ESPRESSIF_BROWNOUT_DET
menu "Internal Temperature Sensor Configuration"
depends on ESPRESSIF_TEMP
config ESPRESSIF_TEMP_UORB
bool "Internal Temperature Sensor UORB Interface"
default n
---help---
Enables work with the UORB or Character Device interface.
If not set, the Character Device is used by default.
config ESPRESSIF_TEMP_PATH
string "Internal Temperature Sensor Path"
depends on !ESPRESSIF_TEMP_UORB
default "dev/temp"
config ESPRESSIF_TEMP_PATH_DEVNO
int "Internal Temperature Sensor Path Device Number"
depends on ESPRESSIF_TEMP_UORB
default 0
config ESPRESSIF_TEMP_UORB_POLL
bool "Enables polling sensor data"
depends on ESPRESSIF_TEMP_UORB
default n
---help---
Enables polling of sensor.
config ESPRESSIF_TEMP_UORB_POLL_INTERVAL
int "Polling interval in microseconds, default 1 sec"
depends on ESPRESSIF_TEMP_UORB_POLL
default 1000000
range 0 4294967295
---help---
The interval until a new sensor measurement will be triggered.
config ESPRESSIF_TEMP_THREAD_STACKSIZE
int "Worker thread stack size"
depends on ESPRESSIF_TEMP_UORB_POLL
default 1024
---help---
The stack size for the worker thread.
endmenu # ESPRESSIF_TEMP
endif # ARCH_CHIP_ESPRESSIF