#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

config ESP32S3_MERGE_BINS
	bool "Merge raw binary files into a single file"
	default n
	---help---
		Merge the raw binary files into a single file for flashing to the
		device.
		This is only useful when the path to binary files (e.g. bootloader)
		is provided via the ESPTOOL_BINDIR variable.

config ESP32S3_QEMU_IMAGE
	bool "ESP32S3 binary image for QEMU"
	default n
	select ESP32S3_MERGE_BINS
	---help---
		Create a binary flash image used for QEMU.

config ESP32S3_SPEED_UP_ISR
	bool "Speed up ISR"
	default n
	---help---
		Move ESP32-S3's interrupt, OS timer tick, and scheduler functions
		from Flash to IRAM. This can speed up interrupt service processing
		and also reduce reading data from Flash.

		If you run applications that need continue reading data from PSRAM,
		such as LCD display, please select this option.

config ESP32S3_STORAGE_MTD_OFFSET
	hex "Storage MTD base address in SPI Flash"
	default 0x180000 if !ESP32S3_HAVE_OTA_PARTITION
	default 0x250000 if ESP32S3_HAVE_OTA_PARTITION
	depends on ESP32S3_MTD
	---help---
		MTD base address in SPI Flash.

config ESP32S3_STORAGE_MTD_SIZE
	hex "Storage MTD size in SPI Flash"
	default 0x100000
	range 0x0 0x400000 if ESP32S3_FLASH_4M
	range 0x0 0x800000 if ESP32S3_FLASH_8M
	range 0x0 0x1000000 if ESP32S3_FLASH_16M
	range 0x0 0x2000000 if ESP32S3_FLASH_32M
	depends on ESP32S3_MTD
	---help---
		MTD size in SPI Flash.

choice ESP32S3_SPIFLASH_FS
	prompt "Mount SPI Flash MTD on bring-up"
	default ESP32S3_SPIFLASH_SMARTFS
	depends on ESP32S3_MTD
	optional
	---help---
		Mount the SPI Flash MTD with the selected File System format on board
		bring-up.
		If not selected, the MTD will be registered as a device node on /dev.

config ESP32S3_SPIFLASH_SMARTFS
	bool "SmartFS"
	select FS_SMARTFS
	select MTD_SMART

config ESP32S3_SPIFLASH_NXFFS
	bool "NXFFS"
	select FS_NXFFS

config ESP32S3_SPIFLASH_SPIFFS
	bool "SPIFFS"
	select FS_SPIFFS

config ESP32S3_SPIFLASH_LITTLEFS
	bool "LittleFS"
	select FS_LITTLEFS

endchoice # ESP32S3_SPIFLASH_FS

if PM

config PM_ALARM_SEC
	int "PM_STANDBY delay (seconds)"
	default 15
	---help---
		Number of seconds to wait in PM_STANDBY before going to PM_STANDBY mode.

config PM_ALARM_NSEC
	int "PM_STANDBY delay (nanoseconds)"
	default 0
	---help---
		Number of additional nanoseconds to wait in PM_STANDBY before going to 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

config ESP32S3_BOARD_I2C
	bool
	default y if ESP32S3_I2C0 || ESP32S3_I2C1

