#
# 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

choice ESPRESSIF_CHIP_SERIES
	prompt "Chip Series"
	default ESPRESSIF_ESP32C3

config ESPRESSIF_ESP32C3
	bool "ESP32-C3"
	select ARCH_RV32
	select ARCH_RV_ISA_M
	select ARCH_RV_ISA_C
	select ARCH_VECNOTIRQ
	select ARCH_HAVE_BOOTLOADER
	select ARCH_HAVE_MPU
	select ARCH_HAVE_RESET
	select ARCH_HAVE_RNG
	select ARCH_HAVE_TICKLESS
	select LIBC_ARCH_ATOMIC
	select LIBC_ARCH_MEMCPY
	select LIBC_ARCH_MEMCHR
	select LIBC_ARCH_MEMCMP
	select LIBC_ARCH_MEMMOVE
	select LIBC_ARCH_MEMSET
	select LIBC_ARCH_STRCHR
	select LIBC_ARCH_STRCMP
	select LIBC_ARCH_STRCPY
	select LIBC_ARCH_STRLCPY
	select LIBC_ARCH_STRNCPY
	select LIBC_ARCH_STRLEN
	select LIBC_ARCH_STRNLEN
	select ESPRESSIF_SOC_RTC_MEM_SUPPORTED
	---help---
		ESP32-C3 chip with a single RISC-V IMC core, no embedded Flash memory

config ESPRESSIF_ESP32C6
	bool "ESP32-C6"
	select ARCH_RV32
	select ARCH_RV_ISA_M
	select ARCH_RV_ISA_A
	select ARCH_RV_ISA_C
	select ARCH_VECNOTIRQ
	select ARCH_HAVE_BOOTLOADER
	select ARCH_HAVE_MPU
	select ARCH_HAVE_RESET
	select ARCH_HAVE_RNG
	select ARCH_HAVE_TICKLESS
	select LIBC_ARCH_MEMCPY
	select LIBC_ARCH_MEMCHR
	select LIBC_ARCH_MEMCMP
	select LIBC_ARCH_MEMMOVE
	select LIBC_ARCH_MEMSET
	select LIBC_ARCH_STRCHR
	select LIBC_ARCH_STRCMP
	select LIBC_ARCH_STRCPY
	select LIBC_ARCH_STRLCPY
	select LIBC_ARCH_STRNCPY
	select LIBC_ARCH_STRLEN
	select LIBC_ARCH_STRNLEN
	select ESPRESSIF_SOC_RTC_MEM_SUPPORTED
	---help---
		Espressif ESP32-C6 (RV32IMAC).

config ESPRESSIF_ESP32H2
	bool "ESP32-H2"
	select ARCH_RV32
	select ARCH_RV_ISA_M
	select ARCH_RV_ISA_C
	select ARCH_VECNOTIRQ
	select ARCH_HAVE_BOOTLOADER
	select ARCH_HAVE_MPU
	select ARCH_HAVE_RESET
	select ARCH_HAVE_RNG
	select ARCH_HAVE_TICKLESS
	select LIBC_ARCH_ATOMIC
	select LIBC_ARCH_MEMCPY
	select LIBC_ARCH_MEMCHR
	select LIBC_ARCH_MEMCMP
	select LIBC_ARCH_MEMMOVE
	select LIBC_ARCH_MEMSET
	select LIBC_ARCH_STRCHR
	select LIBC_ARCH_STRCMP
	select LIBC_ARCH_STRCPY
	select LIBC_ARCH_STRLCPY
	select LIBC_ARCH_STRNCPY
	select LIBC_ARCH_STRLEN
	select LIBC_ARCH_STRNLEN
	select ESPRESSIF_ESPTOOLPY_NO_STUB
	select ESPRESSIF_SOC_RTC_MEM_SUPPORTED
	---help---
		Espressif ESP32-H2 (RV32IMC).

endchoice # ESPRESSIF_CHIP_SERIES

config ESPRESSIF_CHIP_SERIES
	string
	default "esp32c3" if ESPRESSIF_ESP32C3
	default "esp32c6" if ESPRESSIF_ESP32C6
	default "esp32h2" if ESPRESSIF_ESP32H2
	default "unknown"

choice ESPRESSIF_FLASH
	prompt "Flash Size"
	default ESPRESSIF_FLASH_4M if ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6 || ESPRESSIF_ESP32H2

config ESPRESSIF_FLASH_2M
	bool "2 MB"

config ESPRESSIF_FLASH_4M
	bool "4 MB"

endchoice # ESPRESSIF_FLASH

config ESPRESSIF_FLASH_DETECT
	bool "Auto-detect FLASH size"
	default n
	---help---
		Auto detect flash size when flashing.

choice ESPRESSIF_CPU_FREQ
	prompt "CPU frequency"
	default ESPRESSIF_CPU_FREQ_160 if ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6
	default ESPRESSIF_CPU_FREQ_96 if ESPRESSIF_ESP32H2
	---help---
		CPU frequency to be set on application startup.

config ESPRESSIF_CPU_FREQ_40
	bool "40 MHz"
	depends on ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6
	---help---
		Set the CPU frequency to 40 MHz.

config ESPRESSIF_CPU_FREQ_48
	bool "48 MHz"
	depends on ESPRESSIF_ESP32H2
	---help---
		Set the CPU frequency to 48 MHz.

config ESPRESSIF_CPU_FREQ_64
	bool "64 MHz"
	depends on ESPRESSIF_ESP32H2
	---help---
		Set the CPU frequency to 64 MHz.

config ESPRESSIF_CPU_FREQ_80
	bool "80 MHz"
	depends on ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6
	---help---
		Set the CPU frequency to 80 MHz.

config ESPRESSIF_CPU_FREQ_96
	bool "96 MHz"
	depends on ESPRESSIF_ESP32H2
	---help---
		Set the CPU frequency to 96 MHz.

config ESPRESSIF_CPU_FREQ_160
	bool "160 MHz"
	depends on ESPRESSIF_ESP32C3 || ESPRESSIF_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_BOOTLOADER_MCUBOOT
	bool "Enable Native MCUboot"
	select ESPRESSIF_HAVE_OTA_PARTITION
	depends on ESPRESSIF_ESP32C3
	default n
	---help---
		Enables the Espressif port of MCUboot bootloader.

config ESPRESSIF_MCUBOOT_VERSION
	string "MCUboot version"
	depends on ESPRESSIF_BOOTLOADER_MCUBOOT
	default "aa7e2b1faae623dbe01bbc6094e71ab44ec9d80a"

choice
	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_APP_MCUBOOT_HEADER_SIZE
	int "Application image header size (in bytes)"
	default 32
	depends on ESPRESSIF_BOOTLOADER_MCUBOOT

config ESPRESSIF_PARTITION_TABLE_OFFSET
	hex "Partition Table offset"
	default 0x8000
	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 0x10000

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 0x110000

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 0x210000

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

endmenu # Bootloader and Image Configuration

menu "Peripheral Support"

config ESPRESSIF_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_USBSERIAL
	bool "USB-Serial-JTAG Driver"
	default n
	select OTHER_UART_SERIALDRIVER
	select ARCH_HAVE_SERIAL_TERMIOS

config ESPRESSIF_GPIO_IRQ
	bool "GPIO pin interrupts"
	default n
	---help---
		Enable support for interrupting GPIO pins

config ESPRESSIF_LEDC
	bool "LEDC (PWM)"
	default n
	select PWM
	select ARCH_HAVE_PWM_MULTICHAN

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_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.

endmenu # Peripheral Support

menu "UART Configuration"
	depends on ESPRESSIF_UART

if ESPRESSIF_UART0

config ESPRESSIF_UART0_TXPIN
	int "UART0 TX Pin"
	default 21 if ESPRESSIF_ESP32C3
	default 16 if ESPRESSIF_ESP32C6
	default 24 if ESPRESSIF_ESP32H2
	range 0 21 if ESPRESSIF_ESP32C3
	range 0 30 if ESPRESSIF_ESP32C6
	range 0 27 if ESPRESSIF_ESP32H2

config ESPRESSIF_UART0_RXPIN
	int "UART0 RX Pin"
	default 20 if ESPRESSIF_ESP32C3
	default 17 if ESPRESSIF_ESP32C6
	default 23 if ESPRESSIF_ESP32H2
	range 0 21 if ESPRESSIF_ESP32C3
	range 0 30 if ESPRESSIF_ESP32C6
	range 0 27 if ESPRESSIF_ESP32H2

config ESPRESSIF_UART0_RTSPIN
	int "UART0 RTS Pin"
	depends on SERIAL_IFLOWCONTROL
	default 16 if ESPRESSIF_ESP32C3
	default 15 if ESPRESSIF_ESP32C6
	default 22 if ESPRESSIF_ESP32H2
	range 0 21 if ESPRESSIF_ESP32C3
	range 0 30 if ESPRESSIF_ESP32C6
	range 0 27 if ESPRESSIF_ESP32H2

config ESPRESSIF_UART0_CTSPIN
	int "UART0 CTS Pin"
	depends on SERIAL_OFLOWCONTROL
	default 15 if ESPRESSIF_ESP32C3
	default 14 if ESPRESSIF_ESP32C6
	default 21 if ESPRESSIF_ESP32H2
	range 0 21 if ESPRESSIF_ESP32C3
	range 0 30 if ESPRESSIF_ESP32C6
	range 0 27 if ESPRESSIF_ESP32H2

endif # ESPRESSIF_UART0

if ESPRESSIF_UART1

config ESPRESSIF_UART1_TXPIN
	int "UART1 TX Pin"
	default 8 if ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6 || ESPRESSIF_ESP32H2

config ESPRESSIF_UART1_RXPIN
	int "UART1 RX Pin"
	default 9 if ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6 || ESPRESSIF_ESP32H2

config ESPRESSIF_UART1_RTSPIN
	int "UART1 RTS Pin"
	depends on SERIAL_IFLOWCONTROL
	default 1 if ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6 || ESPRESSIF_ESP32H2
	range 0 21 if ESPRESSIF_ESP32C3
	range 0 30 if ESPRESSIF_ESP32C6
	range 0 27 if ESPRESSIF_ESP32H2

config ESPRESSIF_UART1_CTSPIN
	int "UART1 CTS Pin"
	depends on SERIAL_OFLOWCONTROL
	default 2 if ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6 || ESPRESSIF_ESP32H2
	range 0 21 if ESPRESSIF_ESP32C3
	range 0 30 if ESPRESSIF_ESP32C6
	range 0 27 if ESPRESSIF_ESP32H2

endif # ESPRESSIF_UART1

endmenu # UART Configuration

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 ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6
	default ESPRESSIF_FLASH_FREQ_48M if ESPRESSIF_ESP32H2
	---help---
		SPI Flash frequency.

config ESPRESSIF_FLASH_FREQ_80M
	bool "80 MHz"
	depends on ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6

config ESPRESSIF_FLASH_FREQ_48M
	bool "48 MHz"
	depends on ESPRESSIF_ESP32H2

config ESPRESSIF_FLASH_FREQ_40M
	bool "40 MHz"
	depends on ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6

config ESPRESSIF_FLASH_FREQ_26M
	bool "26 MHz"
	depends on ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6

config ESPRESSIF_FLASH_FREQ_20M
	bool "20 MHz"
	depends on ESPRESSIF_ESP32C3 || ESPRESSIF_ESP32C6

endchoice # ESPRESSIF_FLASH_FREQ

endmenu # SPI Flash 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 ESPRESSIF_ESP32C3 && !(ESPRESSIF_ESP32C6 || ESPRESSIF_ESP32H2)
	range 1 20 if !ESPRESSIF_ESP32C3 && (ESPRESSIF_ESP32C6 || ESPRESSIF_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 ESPRESSIF_ESP32C3 && !(ESPRESSIF_ESP32C6 || ESPRESSIF_ESP32H2)
	range 1 20 if !ESPRESSIF_ESP32C3 && (ESPRESSIF_ESP32C6 || ESPRESSIF_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 ESPRESSIF_ESP32C3 && !(ESPRESSIF_ESP32C6 || ESPRESSIF_ESP32H2)
	range 1 20 if !ESPRESSIF_ESP32C3 && (ESPRESSIF_ESP32C6 || ESPRESSIF_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 ESPRESSIF_ESP32C3 && !(ESPRESSIF_ESP32C6 || ESPRESSIF_ESP32H2)
	range 1 20 if !ESPRESSIF_ESP32C3 && (ESPRESSIF_ESP32C6 || ESPRESSIF_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 "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

endif # ARCH_CHIP_ESPRESSIF
