config ESP_HOSTED_ENABLED bool default y if ESP_WIFI_REMOTE_ENABLED && ESP_WIFI_REMOTE_LIBRARY_HOSTED default n menu "ESP-Hosted config" depends on ESP_HOSTED_ENABLED choice ESP_HOST_INTERFACE bool "Transport layer" default ESP_SDIO_HOST_INTERFACE if IDF_TARGET_ESP32 default ESP_SDIO_HOST_INTERFACE if IDF_TARGET_ESP32P4 default ESP_SPI_HOST_INTERFACE help Bus interface to be used for communication with the host config ESP_SPI_HOST_INTERFACE bool "SPI Full-duplex" help Enable/Disable SPI Full-duplex host interface config ESP_SDIO_HOST_INTERFACE bool "SDIO" depends on IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4 help Enable/Disable SDIO host interface # SPI Half Duplex is not supported in ESP32 config ESP_SPI_HD_HOST_INTERFACE depends on !IDF_TARGET_ESP32 bool "SPI Half-duplex" help Enable/Disable SPI Half-duplex host interface config ESP_UART_HOST_INTERFACE bool "UART" help Enable/Disable UART host interface endchoice choice ESP_HOSTED_SLAVE_CHIPSET_USED bool "Slave chipset to be used" default SLAVE_CHIPSET_ESP32C6 config SLAVE_CHIPSET_ESP32 depends on ESP_SPI_HOST_INTERFACE || ESP_SDIO_HOST_INTERFACE || ESP_UART_HOST_INTERFACE bool "Slave as ESP32" config SLAVE_CHIPSET_ESP32S2 depends on ESP_SPI_HOST_INTERFACE || ESP_SPI_HD_HOST_INTERFACE || ESP_UART_HOST_INTERFACE bool "Slave as ESP32S2" config SLAVE_CHIPSET_ESP32S3 depends on ESP_SPI_HOST_INTERFACE || ESP_SPI_HD_HOST_INTERFACE || ESP_UART_HOST_INTERFACE bool "Slave as ESP32S3" config SLAVE_CHIPSET_ESP32C2 depends on ESP_SPI_HOST_INTERFACE || ESP_SPI_HD_HOST_INTERFACE || ESP_UART_HOST_INTERFACE bool "Slave as ESP32C2" config SLAVE_CHIPSET_ESP32C3 depends on ESP_SPI_HOST_INTERFACE || ESP_SPI_HD_HOST_INTERFACE || ESP_UART_HOST_INTERFACE bool "Slave as ESP32C3" config SLAVE_CHIPSET_ESP32C6 depends on ESP_SPI_HOST_INTERFACE || ESP_SDIO_HOST_INTERFACE || ESP_SPI_HD_HOST_INTERFACE || ESP_UART_HOST_INTERFACE bool "Slave as ESP32C6" config SLAVE_CHIPSET_ESP32C5 depends on ESP_SPI_HOST_INTERFACE || ESP_SPI_HD_HOST_INTERFACE || ESP_UART_HOST_INTERFACE bool "Slave as ESP32C5" endchoice config IDF_SLAVE_TARGET string default "esp32" if SLAVE_CHIPSET_ESP32 default "esp32s2" if SLAVE_CHIPSET_ESP32S2 default "esp32s3" if SLAVE_CHIPSET_ESP32S3 default "esp32c2" if SLAVE_CHIPSET_ESP32C2 default "esp32c3" if SLAVE_CHIPSET_ESP32C3 default "esp32c6" if SLAVE_CHIPSET_ESP32C6 default "esp32c5" if SLAVE_CHIPSET_ESP32C5 default "invalid" menu "Task defaults" config ESP_RPC_TASK_STACK int "RPC task stack size" default 4096 config ESP_DFLT_TASK_STACK int "Hosted default task size" default 3072 endmenu menu "SPI Configuration" depends on ESP_SPI_HOST_INTERFACE choice ESP_SPI_PRIV_MODE_ESP32 depends on SLAVE_CHIPSET_ESP32 bool "Host SPI mode" default ESP_SPI_PRIV_MODE_2_ESP32 config ESP_SPI_PRIV_MODE_0_ESP32 bool "Host SPI mode 0" config ESP_SPI_PRIV_MODE_1_ESP32 bool "Host SPI mode 1" config ESP_SPI_PRIV_MODE_2_ESP32 bool "Host SPI mode 2" config ESP_SPI_PRIV_MODE_3_ESP32 bool "Host SPI mode 3" endchoice choice ESP_SPI_PRIV_MODE_ESP32XX depends on !SLAVE_CHIPSET_ESP32 bool "Host SPI mode" default ESP_SPI_PRIV_MODE_3_ESP32XX config ESP_SPI_PRIV_MODE_0_ESP32XX bool "Host SPI mode 0" config ESP_SPI_PRIV_MODE_1_ESP32XX bool "Host SPI mode 1" config ESP_SPI_PRIV_MODE_2_ESP32XX bool "Host SPI mode 2" config ESP_SPI_PRIV_MODE_3_ESP32XX bool "Host SPI mode 3" endchoice config ESP_SPI_MODE int default 0 if ESP_SPI_PRIV_MODE_0_ESP32 default 1 if ESP_SPI_PRIV_MODE_1_ESP32 default 2 if ESP_SPI_PRIV_MODE_2_ESP32 default 3 if ESP_SPI_PRIV_MODE_3_ESP32 default 0 if ESP_SPI_PRIV_MODE_0_ESP32XX default 1 if ESP_SPI_PRIV_MODE_1_ESP32XX default 2 if ESP_SPI_PRIV_MODE_2_ESP32XX default 3 if ESP_SPI_PRIV_MODE_3_ESP32XX choice SPI_CONTROLLER bool "Host SPI controller to use" default SPI_HSPI config SPI_HSPI bool "HSPI/FSPI" help "HSPI/FSPI: SPI_controller_1" config SPI_VSPI depends on IDF_TARGET_ESP32 bool "VSPI" help "VSPI: SPI_controller_2" endchoice config ESP_SPI_CONTROLLER int default 2 if SPI_VSPI default 1 menu "Host SPI GPIOs Config" choice SPI_HANDSHAKE_GPIO_CONFIG bool "Handshake GPIO Config" default HS_ACTIVE_HIGH config HS_ACTIVE_HIGH bool "HS: Active High" config HS_ACTIVE_LOW bool "HS: Active Low" endchoice choice SPI_DATAREADY__GPIO_CONFIG bool "DataReady GPIO Config" default DR_ACTIVE_HIGH config DR_ACTIVE_HIGH bool "DR: Active High" config DR_ACTIVE_LOW bool "DR: Active Low" endchoice config ESP_SPI_HSPI_GPIO_MOSI depends on SPI_HSPI int "GPIO pin for Host MOSI" default 14 if IDF_TARGET_ESP32P4 && SLAVE_CHIPSET_ESP32C6 default 13 if IDF_TARGET_ESP32 default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 7 help SPI controller Host MOSI config ESP_SPI_HSPI_GPIO_MISO depends on SPI_HSPI int "GPIO pin for Host MISO" default 15 if IDF_TARGET_ESP32P4 && SLAVE_CHIPSET_ESP32C6 default 12 if IDF_TARGET_ESP32 default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 2 help SPI controller Host MISO config ESP_SPI_HSPI_GPIO_CLK depends on SPI_HSPI int "GPIO pin for Host CLK" default 18 if IDF_TARGET_ESP32P4 && SLAVE_CHIPSET_ESP32C6 default 14 if IDF_TARGET_ESP32 default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 6 help SPI controller Host CLK config ESP_SPI_HSPI_GPIO_CS depends on SPI_HSPI int "GPIO pin for Host CS" default 19 if IDF_TARGET_ESP32P4 && SLAVE_CHIPSET_ESP32C6 default 15 if IDF_TARGET_ESP32 default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 10 help SPI controller Host CS config ESP_SPI_VSPI_GPIO_MOSI depends on SPI_VSPI int "GPIO pin for Host MOSI" default 23 help SPI controller Host MOSI config ESP_SPI_VSPI_GPIO_MISO depends on SPI_VSPI int "GPIO pin for Host MISO" default 19 help SPI controller Host MISO config ESP_SPI_VSPI_GPIO_CLK depends on SPI_VSPI int "GPIO pin for Host CLK" default 18 help SPI controller Host CLK config ESP_SPI_VSPI_GPIO_CS depends on SPI_VSPI int "GPIO pin for Host CS" default 5 help SPI controller Host CS config ESP_SPI_GPIO_MOSI int default ESP_SPI_VSPI_GPIO_MOSI if SPI_VSPI default ESP_SPI_HSPI_GPIO_MOSI config ESP_SPI_GPIO_MISO int default ESP_SPI_VSPI_GPIO_MISO if SPI_VSPI default ESP_SPI_HSPI_GPIO_MISO config ESP_SPI_GPIO_CLK int default ESP_SPI_VSPI_GPIO_CLK if SPI_VSPI default ESP_SPI_HSPI_GPIO_CLK config ESP_SPI_GPIO_CS int default ESP_SPI_VSPI_GPIO_CS if SPI_VSPI default ESP_SPI_HSPI_GPIO_CS config ESP_SPI_GPIO_HANDSHAKE int "GPIO pin for handshake" default 16 if IDF_TARGET_ESP32P4 && SLAVE_CHIPSET_ESP32C6 default 3 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C6 default 17 if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32S2 default 26 help GPIO pin to use for handshake with other spi controller config ESP_SPI_GPIO_DATA_READY int "GPIO pin for data ready interrupt" default 17 if IDF_TARGET_ESP32P4 && SLAVE_CHIPSET_ESP32C6 default 4 help GPIO pin for indicating host that SPI slave has data to be read by host config ESP_SPI_GPIO_RESET_SLAVE int "GPIO pin for Reseting slave ESP" default 54 if IDF_TARGET_ESP32P4 && SLAVE_CHIPSET_ESP32C6 default 5 help GPIO pin for Resetting ESP SPI slave device. Should be connected to RST/EN of ESP SPI slave device. endmenu ESP32XX_SPI_CLK_FREQ_RANGE_MIN := 1 ESP32_SPI_CLK_FREQ_RANGE_MAX := 10 ESP32C6_SPI_CLK_FREQ_RANGE_MAX := 26 ESP32XX_SPI_CLK_FREQ_RANGE_MAX := 40 config ESP_SPI_FREQ_ESP32 depends on SLAVE_CHIPSET_ESP32 int "SPI Clock Freq (MHz)" default 10 range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32_SPI_CLK_FREQ_RANGE_MAX) help "Optimize SPI CLK by increasing till host practically can support" config ESP_SPI_FREQ_ESP32C6 depends on SLAVE_CHIPSET_ESP32C6 int "SPI Clock Freq (MHz)" default 10 if IDF_TARGET_ESP32P4 && SLAVE_CHIPSET_ESP32C6 default 26 range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32C6_SPI_CLK_FREQ_RANGE_MAX) help "Optimize SPI CLK by increasing till host practically can support" config ESP_SPI_FREQ_ESP32XX depends on SLAVE_CHIPSET_ESP32C2 || SLAVE_CHIPSET_ESP32C3 || SLAVE_CHIPSET_ESP32S2 || SLAVE_CHIPSET_ESP32S3 || SLAVE_CHIPSET_ESP32C5 int "SPI Clock Freq" default 30 if SLAVE_CHIPSET_ESP32C2 || SLAVE_CHIPSET_ESP32C3 || SLAVE_CHIPSET_ESP32S2 || SLAVE_CHIPSET_ESP32S3 || SLAVE_CHIPSET_ESP32C5 range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32XX_SPI_CLK_FREQ_RANGE_MAX) help "Optimize SPI CLK by increasing till host practically can support" config ESP_SPI_CLK_FREQ int default ESP_SPI_FREQ_ESP32 if SLAVE_CHIPSET_ESP32 default ESP_SPI_FREQ_ESP32C6 if SLAVE_CHIPSET_ESP32C6 default ESP_SPI_FREQ_ESP32XX if SLAVE_CHIPSET_ESP32C2 || SLAVE_CHIPSET_ESP32C3 || SLAVE_CHIPSET_ESP32S2 || SLAVE_CHIPSET_ESP32S3 || SLAVE_CHIPSET_ESP32C5 help "Optimize SPI CLK by increasing till host practically can support" config ESP_SPI_TX_Q_SIZE int "ESP to Host SPI queue size" default 20 help Very small tx queue will lower ESP -- SPI --> Host data rate config ESP_SPI_RX_Q_SIZE int "Host to ESP SPI queue size" default 20 help Very small RX queue will lower ESP <-- SPI -- Host data rate endmenu menu "Hosted SDIO Configuration" depends on ESP_SDIO_HOST_INTERFACE choice SDIO_RESET_GPIO_CONFIG bool "RESET GPIO Config" default SDIO_RESET_ACTIVE_HIGH help "If Active High, High->Low->High will trigger reset (Low will trigger reset) If Active Low, Low->High->Low will trigger reset (High will trigger reset)" config SDIO_RESET_ACTIVE_HIGH bool "RESET: Active High" config SDIO_RESET_ACTIVE_LOW bool "RESET: Active Low" endchoice choice ESP_SDIO_RX_OPTIMIZATION bool "SDIO Receive Optimization" default ESP_SDIO_OPTIMIZATION_RX_STREAMING_MODE config ESP_SDIO_OPTIMIZATION_RX_NONE bool "No optimization" help Use SDIO as is, with no optimizations. config ESP_SDIO_OPTIMIZATION_RX_MAX_SIZE bool "Always Rx Max Packet size" help Always read max Rx Packet Size (512 * 3 bytes). This saves one SDIO transaction (get Rx Packet Size) when reading data from slave by always transferring a fixed amount of data. Extra data at end of valid packet data is discarded. config ESP_SDIO_OPTIMIZATION_RX_STREAMING_MODE bool "Use Streaming Mode" help Receive a stream of queued data from the slave, made up of one or more packets of data. Host extracts packets from the stream. This improves SDIO read performance by doing one large read transaction instead of many smaller read transactions for each packet. (Note: requires slave to support streaming mode.) endchoice config ESP_SDIO_GPIO_RESET_SLAVE int "GPIO pin for Reseting slave ESP" default 54 if IDF_TARGET_ESP32P4 default 42 if IDF_TARGET_ESP32S3 default 5 help GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device. choice prompt "SDIO Bus Width" default ESP_SDIO_4_BIT_BUS help Select the SDIO Bus Width to use config ESP_SDIO_4_BIT_BUS bool "4 Bits" config ESP_SDIO_1_BIT_BUS bool "1 Bit" endchoice config ESP_SDIO_BUS_WIDTH int default 1 if ESP_SDIO_1_BIT_BUS default 4 ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MIN := 400 ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MAX := 40000 ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MIN := 400 ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MAX := 80000 config ESP_SDIO_CLOCK_FREQ_KHZ int "SDIO Clock Freq (in kHz)" default 40000 range $(ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MIN) $(ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MAX) if IDF_TARGET_ESP32 range $(ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MIN) $(ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MAX) if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4 help "Optimize SDIO CLK by increasing till host practically can support" config ESP_SDIO_PIN_CMD int "CMD GPIO number" default 47 if IDF_TARGET_ESP32S3 default 19 if IDF_TARGET_ESP32P4 range 15 15 if IDF_TARGET_ESP32 help "Value can only be configured for some targets. Displayed always for reference." config ESP_SDIO_PIN_CLK int "CLK GPIO number" default 19 if IDF_TARGET_ESP32S3 default 18 if IDF_TARGET_ESP32P4 range 14 14 if IDF_TARGET_ESP32 help "Value can only be configured for some targets. Displayed always for reference." config ESP_SDIO_PIN_D0 int "D0 GPIO number" default 13 if IDF_TARGET_ESP32S3 default 14 if IDF_TARGET_ESP32P4 range 2 2 if IDF_TARGET_ESP32 help "Value can only be configured for some targets. Displayed always for reference." if ESP_SDIO_4_BIT_BUS config ESP_SDIO_PIN_D1 int "D1 GPIO number" default 35 if IDF_TARGET_ESP32S3 default 15 if IDF_TARGET_ESP32P4 range 4 4 if IDF_TARGET_ESP32 help "Value can only be configured for some targets. Displayed always for reference." config ESP_SDIO_PIN_D2 int "D2 GPIO number" default 20 if IDF_TARGET_ESP32S3 default 16 if IDF_TARGET_ESP32P4 range 12 12 if IDF_TARGET_ESP32 help "Value can only be configured for some targets. Displayed always for reference." config ESP_SDIO_PIN_D3 int "D3 GPIO number" default 9 if IDF_TARGET_ESP32S3 default 17 if IDF_TARGET_ESP32P4 range 13 13 if IDF_TARGET_ESP32 help "Value can only be configured for some targets. Displayed always for reference." endif if !ESP_SDIO_4_BIT_BUS config ESP_SDIO_PIN_D1 int "D1 GPIO number (Interrupt Line)" default 35 if IDF_TARGET_ESP32S3 default 15 if IDF_TARGET_ESP32P4 range 4 4 if IDF_TARGET_ESP32 help "Value can only be configured for some targets. Displayed always for reference." endif config ESP_SDIO_TX_Q_SIZE int "Host SDIO Tx queue size" default 20 help Very small tx queue will lower data rate config ESP_SDIO_RX_Q_SIZE int "Host SDIO Rx queue size" default 20 help Very small RX queue will lower data rate config ESP_SDIO_CHECKSUM bool "SDIO checksum ENABLE/DISABLE" help ENABLE/DISABLE software SDIO checksum endmenu menu "SPI Half-duplex Configuration" depends on ESP_SPI_HD_HOST_INTERFACE config ESP_SPI_HD_MODE int "SPI Mode to use" default 3 range 0 3 help SPI Mode to use. The same mode must be used on both host and slave. choice ESP_SPI_HD_PRIV_INTERFACE_NUM_DATA_LINES bool "Num Data Lines to use" default ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES help Number of Data Lines to use in the SPI HD interface config ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES bool "4 data lines" config ESP_SPI_HD_PRIV_INTERFACE_2_DATA_LINES bool "2 data lines" endchoice config ESP_SPI_HD_INTERFACE_NUM_DATA_LINES int default 4 if ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES default 2 if ESP_SPI_HD_PRIV_INTERFACE_2_DATA_LINES choice SPI_HD_RESET_GPIO_CONFIG bool "RESET GPIO Config" default SPI_HD_RESET_ACTIVE_HIGH help "If Active High, High->Low->High will trigger reset (Low will trigger reset) If Active Low, Low->High->Low will trigger reset (High will trigger reset)" config SPI_HD_RESET_ACTIVE_HIGH bool "RESET: Active High" config SPI_HD_RESET_ACTIVE_LOW bool "RESET: Active Low" endchoice choice SPI_HD_DATAREADY_GPIO_CONFIG bool "DataReady GPIO Config" default SPI_HD_DR_ACTIVE_HIGH config SPI_HD_DR_ACTIVE_HIGH bool "DR: Active High" config SPI_HD_DR_ACTIVE_LOW bool "DR: Active Low" endchoice menu "Host GPIOs Config" config ESP_SPI_HD_GPIO_CS int "GPIO pin for Host CS" default 10 if IDF_TARGET_ESP32S3 default 19 if IDF_TARGET_ESP32P4 default 15 help SPI Half-duplex controller Host CS config ESP_SPI_HD_GPIO_CLK int "GPIO pin for Host CLK" default 12 if IDF_TARGET_ESP32S3 default 18 if IDF_TARGET_ESP32P4 default 18 help SPI Half-duplex controller Host CLK config ESP_SPI_HD_GPIO_D0 int "GPIO pin for Host D0" default 11 if IDF_TARGET_ESP32S3 default 14 if IDF_TARGET_ESP32P4 default 2 help SPI Half-duplex controller Host D0 config ESP_SPI_HD_GPIO_D1 int "GPIO pin for Host D1" default 13 if IDF_TARGET_ESP32S3 default 15 if IDF_TARGET_ESP32P4 default 4 help SPI Half-duplex controller Host D1 config ESP_SPI_HD_GPIO_D2 depends on ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES int "GPIO pin for Host D2" default 14 if IDF_TARGET_ESP32S3 default 16 if IDF_TARGET_ESP32P4 default 12 help SPI Half-duplex controller Host D2 config ESP_SPI_HD_GPIO_D3 depends on ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES int "GPIO pin for Host D3" default 9 if IDF_TARGET_ESP32S3 default 17 if IDF_TARGET_ESP32P4 default 13 help SPI Half-duplex controller Host D3 config ESP_SPI_HD_GPIO_DATA_READY int "GPIO pin for data ready interrupt" default 4 if IDF_TARGET_ESP32S3 default 6 if IDF_TARGET_ESP32P4 default 8 help GPIO pin for indicating host that slave has data to be read by host config ESP_SPI_HD_GPIO_RESET_SLAVE int "GPIO pin for Reseting slave ESP" default 5 if IDF_TARGET_ESP32S3 default 54 if IDF_TARGET_ESP32P4 && SLAVE_CHIPSET_ESP32C6 default 5 help GPIO pin for Resetting ESP slave device. Should be connected to RST/EN of ESP SPI slave device. endmenu ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN := 1 ESP32_SPI_HD_CLK_FREQ_RANGE_MAX := 10 ESP32C6_SPI_HD_CLK_FREQ_RANGE_MAX := 40 ESP32XX_SPI_HD_CLK_FREQ_RANGE_MAX := 40 config ESP_SPI_HD_FREQ_ESP32C6 depends on SLAVE_CHIPSET_ESP32C6 int "SPI HD Clock Freq (MHz)" default 10 range $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN) $(ESP32C6_SPI_HD_CLK_FREQ_RANGE_MAX) help "Optimize CLK by increasing till host practically can support" config ESP_SPI_HD_FREQ_ESP32XX depends on SLAVE_CHIPSET_ESP32C2 || SLAVE_CHIPSET_ESP32C3 || SLAVE_CHIPSET_ESP32S2 || SLAVE_CHIPSET_ESP32S3 || SLAVE_CHIPSET_ESP32C5 int "SPI HD Clock Freq (MHz)" default 10 if SLAVE_CHIPSET_ESP32C2 || SLAVE_CHIPSET_ESP32C3 || SLAVE_CHIPSET_ESP32S2 || SLAVE_CHIPSET_ESP32S3 || SLAVE_CHIPSET_ESP32C5 range $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN) $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MAX) help "Optimize CLK by increasing till host practically can support" config ESP_SPI_HD_CLK_FREQ int default ESP_SPI_HD_FREQ_ESP32C6 if SLAVE_CHIPSET_ESP32C6 default ESP_SPI_HD_FREQ_ESP32XX if SLAVE_CHIPSET_ESP32C2 || SLAVE_CHIPSET_ESP32C3 || SLAVE_CHIPSET_ESP32S2 || SLAVE_CHIPSET_ESP32S3 || SLAVE_CHIPSET_ESP32C5 help "Optimize CLK by increasing till host practically can support" config ESP_SPI_HD_TX_Q_SIZE int "ESP to Host queue size" default 20 help Very small tx queue will lower ESP -- SPI Half-duplex --> Host data rate config ESP_SPI_HD_RX_Q_SIZE int "Host to ESP queue size" default 20 help Very small RX queue will lower ESP <-- SPI Half-duplex -- Host data rate config ESP_SPI_HD_CHECKSUM bool "Checksum ENABLE/DISABLE" default y help ENABLE/DISABLE software checksum endmenu menu "UART Configuration" depends on ESP_UART_HOST_INTERFACE choice ESP_UART_RESET_GPIO_CONFIG bool "RESET GPIO Config" default ESP_UART_RESET_ACTIVE_HIGH help "If Active High, High->Low->High will trigger reset (Low will trigger reset) If Active Low, Low->High->Low will trigger reset (High will trigger reset)" config ESP_UART_RESET_ACTIVE_HIGH bool "RESET: Active High" config ESP_UART_RESET_ACTIVE_LOW bool "RESET: Active Low" endchoice config ESP_UART_PORT int "UART Port to Use" default 1 range 0 2 if IDF_TARGET_ESP32 range 0 1 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32C6 range 0 2 if IDF_TARGET_ESP32C61 range 0 1 if IDF_TARGET_ESP32S2 range 0 2 if IDF_TARGET_ESP32S3 range 0 4 if IDF_TARGET_ESP32P4 help Select UART Port to Use. Do not select the UART Port used for console output (if enabled) config ESP_UART_PIN_TX int "TX GPIO number" default 13 if IDF_TARGET_ESP32 default 5 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 default 14 if IDF_TARGET_ESP32C5 default 21 if IDF_TARGET_ESP32C6 default 5 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 14 if IDF_TARGET_ESP32P4 help GPIO used for UART TX config ESP_UART_PIN_RX int "RX GPIO number" default 12 if IDF_TARGET_ESP32 default 4 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 default 13 if IDF_TARGET_ESP32C5 default 20 if IDF_TARGET_ESP32C6 default 4 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 15 if IDF_TARGET_ESP32P4 help GPIO used for UART RX config ESP_UART_BAUDRATE int "Baud Rate" default 921600 range 9600 3500000 help Baud Rate to Use. Make sure Hardware supports the rate. Standard rates are 9600, 19200, 38400, 57600, 115200, 460800, 921600 config ESP_UART_NUM_DATA_BITS int "Number of Data Bits" default 8 range 5 8 help Number of Data Bits to use choice ESP_UART_PRIV_PARITY bool "Parity" config ESP_UART_PRIV_PARITY_NONE bool "None" config ESP_UART_PRIV_PARITY_EVEN bool "Even" config ESP_UART_PRIV_PARITY_ODD bool "Odd" endchoice config ESP_UART_PARITY int default 0 if ESP_UART_PRIV_PARITY_NONE default 1 if ESP_UART_PRIV_PARITY_EVEN default 2 if ESP_UART_PRIV_PARITY_ODD choice ESP_UART_PRIV_STOP_BITS bool "Number of Stop Bits" config ESP_UART_PRIV_STOP_BITS_1 bool "1" config ESP_UART_PRIV_STOP_BITS_1_5 bool "1.5" config ESP_UART_PRIV_STOP_BITS_2 bool "2" endchoice config ESP_UART_STOP_BITS int default 0 if ESP_UART_PRIV_STOP_BITS_1 default 1 if ESP_UART_PRIV_STOP_BITS_1_5 default 2 if ESP_UART_PRIV_STOP_BITS_2 config ESP_UART_GPIO_RESET_SLAVE int "GPIO pin for Reseting slave ESP" default 54 if IDF_TARGET_ESP32P4 default 42 if IDF_TARGET_ESP32S3 default 5 help GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device. config ESP_UART_TX_Q_SIZE int "Tx Queue Size" default 5 help UART rates are low, so large queue sizes are not required config ESP_UART_RX_Q_SIZE int "Rx Queue Size" default 5 help UART rates are low, so large queue sizes are not required config ESP_UART_CHECKSUM bool "UART checksum ENABLE/DISABLE" default y help ENABLE/DISABLE software UART checksum endmenu config ESP_GPIO_SLAVE_RESET_SLAVE int default ESP_SPI_GPIO_RESET_SLAVE if ESP_SPI_HOST_INTERFACE default ESP_SDIO_GPIO_RESET_SLAVE if ESP_SDIO_HOST_INTERFACE default ESP_SPI_HD_GPIO_RESET_SLAVE if ESP_SPI_HD_HOST_INTERFACE default ESP_UART_GPIO_RESET_SLAVE if ESP_UART_HOST_INTERFACE config RESET_GPIO_ACTIVE_LOW bool default n if SDIO_RESET_ACTIVE_HIGH || SPI_RESET_ACTIVE_HIGH || SPI_HD_RESET_ACTIVE_HIGH || ESP_UART_RESET_ACTIVE_HIGH default y if SDIO_RESET_ACTIVE_LOW || SPI_RESET_ACTIVE_LOW || SPI_HD_RESET_ACTIVE_LOW || ESP_UART_RESET_ACTIVE_LOW menu "Bluetooth Support" comment "Following options must be set before this option can be enabled" depends on !BT_ENABLED || BT_CONTROLLER_ONLY || (BT_NIMBLE_ENABLED && (BT_NIMBLE_TRANSPORT_UART || BT_CONTROLLER_ENABLED)) || (BT_BLUEDROID_ENABLED && BT_CONTROLLER_ENABLED) comment "'Component config->Bluetooth' must be enabled" depends on !BT_ENABLED comment "'Component config->Bluetooth->Host' must be enabled" depends on BT_ENABLED && BT_CONTROLLER_ONLY comment "'Component config->Bluetooth->Controller' must be disabled" depends on BT_ENABLED && BT_CONTROLLER_ENABLED comment "'Component config->Bluetooth->NimBLE Options->Host-controller Transport->Uart Transport' must be disabled" depends on BT_NIMBLE_ENABLED && BT_NIMBLE_TRANSPORT_UART if BT_ENABLED && BT_BLUEDROID_ENABLED && !BT_CONTROLLER_ENABLED config ESP_ENABLE_BT_BLUEDROID bool "Enable Hosted Bluedroid Bluetooth support" default n help Enable Bluetooth Support for Bluedroid via Hosted choice ESP_BLUEDROID_HCI_TYPE bool "BT Bluedroid HCI Type" default ESP_BLUEDROID_HCI_VHCI depends on ESP_ENABLE_BT_BLUEDROID help Selects the HCI to use config ESP_BLUEDROID_HCI_VHCI bool "VHCI" help Bluetooth data is sent through the selected transport layer endchoice endif if BT_ENABLED && BT_NIMBLE_ENABLED && !BT_CONTROLLER_ENABLED && !BT_NIMBLE_TRANSPORT_UART config ESP_ENABLE_BT_NIMBLE bool "Enable Hosted Nimble Bluetooth support" default n help Enable Bluetooth Support via Hosted choice ESP_NIMBLE_HCI_TYPE bool "BT Nimble HCI Type" default ESP_NIMBLE_HCI_VHCI depends on ESP_ENABLE_BT_NIMBLE help Selects the HCI to use config ESP_NIMBLE_HCI_VHCI bool "VHCI" help Bluetooth data is sent through the selected transport layer endchoice endif endmenu config ESP_USE_MEMPOOL bool "Cache allocated memory like mempool - helps to reduce malloc calls" default y help Cache allocated memory - reduces number of malloc calls config ESP_MAX_SIMULTANEOUS_SYNC_RPC_REQUESTS int "Maximum number of simultaneous synchronous RPC Request" default 5 help Sets the maximum number of simultaneous synchronous RPC Requests. (Synchronous RPC Request: each sending task waits for the response.) Usually, the host application may send up to 3 simultaneous RPC requests to the slave. Increase this number if you need to send more simultaneous RPC requests. Note: the slave will only process one RPC request (sync and async) at a time config ESP_MAX_SIMULTANEOUS_ASYNC_RPC_REQUESTS int "Maximum number of simultaneous asynchronous RPC Request" default 5 help Sets the maximum number of simultaneous asynchronous RPC Requests. (Asynchronous RPC Request: each sending task registers a callback to get the response.) Usually, the host application may send up to 3 simultaneous RPC requests to the slave. Increase this number if you need to send more simultaneous RPC requests. Note: the slave will only process one RPC request (sync and async) at a time menu "Debug Settings" config ESP_RAW_THROUGHPUT_TRANSPORT bool "RawTP: Transport level throughput debug test" default n help Find max transport performance which helps to assess stability of porting done choice ESP_RAW_THROUGHPUT_DIRECTION bool "RawTP: Send data from:" depends on ESP_RAW_THROUGHPUT_TRANSPORT config ESP_RAW_THROUGHPUT_TX_TO_SLAVE bool "Host to Slave" help Sends data from Host to Slave config ESP_RAW_THROUGHPUT_RX_FROM_SLAVE bool "Slave to Host" help Sends data from Slave to Slave config ESP_RAW_THROUGHPUT_BIDIRECTIONAL bool "Bidirectional" help Sends data in both directions endchoice config ESP_RAW_TP_HOST_TO_ESP_PKT_LEN depends on ESP_RAW_THROUGHPUT_TRANSPORT int "RawTP: Host to ESP packet size" range 1 1500 default 1460 config ESP_RAW_TP_REPORT_INTERVAL depends on ESP_RAW_THROUGHPUT_TRANSPORT int "RawTP: periodic duration to report stats accumulated" default 5 config ESP_PKT_STATS bool "Transport level packet stats" default n help On comparing with slave packet stats helps to understand any packet loss at hosted endmenu menu "Data path options" config HOST_TO_ESP_WIFI_DATA_THROTTLE bool "Report WiFi queue utilization to host" default y help Proactively drop Host->slave Wi-Fi data when Slave Wi-Fi is under load Slave Wi-Fi may drop ingress bursty or higher than capacity packets. To have synchronous way of packet dropped for application, Host will throttle incoming data if the slave datapath Rx load is high config PRIV_WIFI_TX_SPI_HIGH_THRESHOLD depends on HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_SPI_HOST_INTERFACE int "High threshold to report host to drop data when wifi highly loaded" range 0 100 default 90 help Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold 0 value will disable this function config PRIV_WIFI_TX_SDIO_HIGH_THRESHOLD depends on HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_SDIO_HOST_INTERFACE int "High threshold to report host to drop data when wifi highly loaded" range 0 100 default 80 help Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold 0 value will disable this function config PRIV_WIFI_TX_SPI_HD_HIGH_THRESHOLD depends on HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_SPI_HD_HOST_INTERFACE int "High threshold to report host to drop data when wifi highly loaded" range 0 100 default 80 help Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold 0 value will disable this function config PRIV_WIFI_TX_UART_HIGH_THRESHOLD depends on HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_UART_HOST_INTERFACE int "High threshold to report host to drop data when wifi highly loaded" range 0 100 default 80 help Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold 0 value will disable this function config TO_WIFI_DATA_THROTTLE_HIGH_THRESHOLD depends on HOST_TO_ESP_WIFI_DATA_THROTTLE int default PRIV_WIFI_TX_SPI_HIGH_THRESHOLD if ESP_SPI_HOST_INTERFACE default PRIV_WIFI_TX_SDIO_HIGH_THRESHOLD if ESP_SDIO_HOST_INTERFACE default PRIV_WIFI_TX_SPI_HD_HIGH_THRESHOLD if ESP_SPI_HD_HOST_INTERFACE default PRIV_WIFI_TX_UART_HIGH_THRESHOLD if ESP_UART_HOST_INTERFACE config TO_WIFI_DATA_THROTTLE_LOW_THRESHOLD depends on HOST_TO_ESP_WIFI_DATA_THROTTLE int "Low threshold to report host to stop dropping data" range 0 TO_WIFI_DATA_THROTTLE_HIGH_THRESHOLD default 60 help Once the Wi-Fi is no more stressed, data throttling would be stopped, once slave Wi-Fi load is lower than this threshold endmenu endmenu