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 # Co-processor selection done in Wi-Fi Remote Component comment "ESP32 is Slave Target from Wi-Fi Remote Component" depends on SLAVE_IDF_TARGET_ESP32 comment "ESP32-S2 is Slave Target from Wi-Fi Remote Component" depends on SLAVE_IDF_TARGET_ESP32S2 comment "ESP32-S3 is Slave Target from Wi-Fi Remote Component" depends on SLAVE_IDF_TARGET_ESP32S3 comment "ESP32-C2 is Slave Target from Wi-Fi Remote Component" depends on SLAVE_IDF_TARGET_ESP32C2 comment "ESP32-C3 is Slave Target from Wi-Fi Remote Component" depends on SLAVE_IDF_TARGET_ESP32C3 comment "ESP32-C6 is Slave Target from Wi-Fi Remote Component" depends on SLAVE_IDF_TARGET_ESP32C6 comment "ESP32-C5 is Slave Target from Wi-Fi Remote Component" depends on SLAVE_IDF_TARGET_ESP32C5 comment "ESP32-C61 is Slave Target from Wi-Fi Remote Component" depends on SLAVE_IDF_TARGET_ESP32C61 # y if SDIO Transport is available, based on host and slave selection config ESP_HOSTED_PRIV_SDIO_OPTION bool default y if (IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4) && (SLAVE_IDF_TARGET_ESP32 || SLAVE_IDF_TARGET_ESP32C6 || SLAVE_IDF_TARGET_ESP32C5) default n # y if SPI HD Transport is available, based on host and slave selection config ESP_HOSTED_PRIV_SPI_HD_OPTION bool default n if (IDF_TARGET_ESP32 || SLAVE_IDF_TARGET_ESP32) default y choice ESP_HOSTED_HOST_INTERFACE bool "Transport layer" default ESP_HOSTED_SDIO_HOST_INTERFACE if ESP_HOSTED_PRIV_SDIO_OPTION default ESP_HOSTED_SPI_HOST_INTERFACE help Bus interface to be used for communication with the host config ESP_HOSTED_SPI_HOST_INTERFACE bool "SPI Full-duplex" help Enable/Disable SPI Full-duplex host interface config ESP_HOSTED_SDIO_HOST_INTERFACE depends on ESP_HOSTED_PRIV_SDIO_OPTION bool "SDIO" help Enable/Disable SDIO host interface # SPI Half Duplex is not supported in ESP32 config ESP_HOSTED_SPI_HD_HOST_INTERFACE depends on ESP_HOSTED_PRIV_SPI_HD_OPTION bool "SPI Half-duplex" help Enable/Disable SPI Half-duplex host interface config ESP_HOSTED_UART_HOST_INTERFACE bool "UART" help Enable/Disable UART host interface endchoice config ESP_HOSTED_IDF_SLAVE_TARGET string default "esp32" if SLAVE_IDF_TARGET_ESP32 default "esp32s2" if SLAVE_IDF_TARGET_ESP32S2 default "esp32s3" if SLAVE_IDF_TARGET_ESP32S3 default "esp32c2" if SLAVE_IDF_TARGET_ESP32C2 default "esp32c3" if SLAVE_IDF_TARGET_ESP32C3 default "esp32c6" if SLAVE_IDF_TARGET_ESP32C6 default "esp32c5" if SLAVE_IDF_TARGET_ESP32C5 default "invalid" menu "SPI Configuration" depends on ESP_HOSTED_SPI_HOST_INTERFACE choice ESP_HOSTED_SPI_PRIV_MODE_ESP32 depends on SLAVE_IDF_TARGET_ESP32 bool "Host SPI mode" default ESP_HOSTED_SPI_PRIV_MODE_2_ESP32 config ESP_HOSTED_SPI_PRIV_MODE_0_ESP32 bool "Host SPI mode 0" config ESP_HOSTED_SPI_PRIV_MODE_1_ESP32 bool "Host SPI mode 1" config ESP_HOSTED_SPI_PRIV_MODE_2_ESP32 bool "Host SPI mode 2" config ESP_HOSTED_SPI_PRIV_MODE_3_ESP32 bool "Host SPI mode 3" endchoice choice ESP_HOSTED_SPI_PRIV_MODE_ESP32XX depends on !SLAVE_IDF_TARGET_ESP32 bool "Host SPI mode" default ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX config ESP_HOSTED_SPI_PRIV_MODE_0_ESP32XX bool "Host SPI mode 0" config ESP_HOSTED_SPI_PRIV_MODE_1_ESP32XX bool "Host SPI mode 1" config ESP_HOSTED_SPI_PRIV_MODE_2_ESP32XX bool "Host SPI mode 2" config ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX bool "Host SPI mode 3" endchoice config ESP_HOSTED_SPI_MODE int default 0 if ESP_HOSTED_SPI_PRIV_MODE_0_ESP32 default 1 if ESP_HOSTED_SPI_PRIV_MODE_1_ESP32 default 2 if ESP_HOSTED_SPI_PRIV_MODE_2_ESP32 default 3 if ESP_HOSTED_SPI_PRIV_MODE_3_ESP32 default 0 if ESP_HOSTED_SPI_PRIV_MODE_0_ESP32XX default 1 if ESP_HOSTED_SPI_PRIV_MODE_1_ESP32XX default 2 if ESP_HOSTED_SPI_PRIV_MODE_2_ESP32XX default 3 if ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX choice ESP_HOSTED_SPI_CONTROLLER bool "Host SPI controller to use" default ESP_HOSTED_SPI_HSPI config ESP_HOSTED_SPI_HSPI bool "HSPI/FSPI" help "HSPI/FSPI: SPI_controller_1" config ESP_HOSTED_SPI_VSPI depends on IDF_TARGET_ESP32 bool "VSPI" help "VSPI: SPI_controller_2" endchoice config ESP_HOSTED_SPI_CONTROLLER int default 2 if ESP_HOSTED_SPI_VSPI default 1 menu "Host SPI GPIOs Config" choice ESP_HOSTED_SPI_HANDSHAKE_GPIO_CONFIG bool "Handshake GPIO Config" default ESP_HOSTED_HS_ACTIVE_HIGH config ESP_HOSTED_HS_ACTIVE_HIGH bool "HS: Active High" config ESP_HOSTED_HS_ACTIVE_LOW bool "HS: Active Low" endchoice choice ESP_HOSTED_SPI_DATAREADY__GPIO_CONFIG bool "DataReady GPIO Config" default ESP_HOSTED_DR_ACTIVE_HIGH config ESP_HOSTED_DR_ACTIVE_HIGH bool "DR: Active High" config ESP_HOSTED_DR_ACTIVE_LOW bool "DR: Active Low" endchoice choice ESP_HOSTED_SPI_RESET_GPIO_CONFIG bool "Reset GPIO Config" default ESP_HOSTED_SPI_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_HOSTED_SPI_RESET_ACTIVE_HIGH bool "RESET: Active High" config ESP_HOSTED_SPI_RESET_ACTIVE_LOW bool "RESET: Active Low" endchoice config ESP_HOSTED_SPI_HSPI_GPIO_MOSI depends on ESP_HOSTED_SPI_HSPI int "GPIO pin for Host MOSI" default 14 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 13 if IDF_TARGET_ESP32 default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 5 if IDF_TARGET_ESP32H2 default 7 help SPI controller Host MOSI config ESP_HOSTED_SPI_HSPI_GPIO_MISO depends on ESP_HOSTED_SPI_HSPI int "GPIO pin for Host MISO" default 15 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 22 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 12 if IDF_TARGET_ESP32 default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 0 if IDF_TARGET_ESP32H2 default 2 help SPI controller Host MISO config ESP_HOSTED_SPI_HSPI_GPIO_CLK depends on ESP_HOSTED_SPI_HSPI int "GPIO pin for Host CLK" default 18 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 33 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 14 if IDF_TARGET_ESP32 default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 4 if IDF_TARGET_ESP32H2 default 6 help SPI controller Host CLK config ESP_HOSTED_SPI_HSPI_GPIO_CS depends on ESP_HOSTED_SPI_HSPI int "GPIO pin for Host CS" default 19 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 4 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 15 if IDF_TARGET_ESP32 default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 1 if IDF_TARGET_ESP32H2 default 10 help SPI controller Host CS config ESP_HOSTED_SPI_VSPI_GPIO_MOSI depends on ESP_HOSTED_SPI_VSPI int "GPIO pin for Host MOSI" default 23 help SPI controller Host MOSI config ESP_HOSTED_SPI_VSPI_GPIO_MISO depends on ESP_HOSTED_SPI_VSPI int "GPIO pin for Host MISO" default 19 help SPI controller Host MISO config ESP_HOSTED_SPI_VSPI_GPIO_CLK depends on ESP_HOSTED_SPI_VSPI int "GPIO pin for Host CLK" default 18 help SPI controller Host CLK config ESP_HOSTED_SPI_VSPI_GPIO_CS depends on ESP_HOSTED_SPI_VSPI int "GPIO pin for Host CS" default 5 help SPI controller Host CS config ESP_HOSTED_SPI_GPIO_MOSI int default ESP_HOSTED_SPI_VSPI_GPIO_MOSI if ESP_HOSTED_SPI_VSPI default ESP_HOSTED_SPI_HSPI_GPIO_MOSI config ESP_HOSTED_SPI_GPIO_MISO int default ESP_HOSTED_SPI_VSPI_GPIO_MISO if ESP_HOSTED_SPI_VSPI default ESP_HOSTED_SPI_HSPI_GPIO_MISO config ESP_HOSTED_SPI_GPIO_CLK int default ESP_HOSTED_SPI_VSPI_GPIO_CLK if ESP_HOSTED_SPI_VSPI default ESP_HOSTED_SPI_HSPI_GPIO_CLK config ESP_HOSTED_SPI_GPIO_CS int default ESP_HOSTED_SPI_VSPI_GPIO_CS if ESP_HOSTED_SPI_VSPI default ESP_HOSTED_SPI_HSPI_GPIO_CS config ESP_HOSTED_SPI_GPIO_HANDSHAKE int "GPIO pin for handshake" default 16 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 21 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 3 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C6 default 17 if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32S2 default 22 if IDF_TARGET_ESP32H2 default 26 help GPIO pin to use for handshake with other spi controller config ESP_HOSTED_SPI_GPIO_DATA_READY int "GPIO pin for data ready interrupt" default 17 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 32 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 12 if IDF_TARGET_ESP32H2 default 4 help GPIO pin for indicating host that SPI slave has data to be read by host config ESP_HOSTED_SPI_GPIO_RESET_SLAVE int "GPIO pin for Reseting slave ESP" default 54 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 53 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 10 if IDF_TARGET_ESP32H2 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 := 40 ESP32XX_SPI_CLK_FREQ_RANGE_MAX := 40 config ESP_HOSTED_SPI_FREQ_ESP32 depends on SLAVE_IDF_TARGET_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_HOSTED_SPI_FREQ_ESP32C6 depends on SLAVE_IDF_TARGET_ESP32C6 int "SPI Clock Freq (MHz)" default 40 if IDF_TARGET_ESP32P4 #config for ESP32-P4 Function_EV_Board 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_HOSTED_SPI_FREQ_ESP32XX depends on SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 int "SPI Clock Freq" default 40 if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_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_HOSTED_SPI_CLK_FREQ int default ESP_HOSTED_SPI_FREQ_ESP32 if SLAVE_IDF_TARGET_ESP32 default ESP_HOSTED_SPI_FREQ_ESP32C6 if SLAVE_IDF_TARGET_ESP32C6 default ESP_HOSTED_SPI_FREQ_ESP32XX if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 help "Optimize SPI CLK by increasing till host practically can support" config ESP_HOSTED_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_HOSTED_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_HOSTED_SDIO_HOST_INTERFACE choice ESP_HOSTED_SDIO_RESET_GPIO_CONFIG bool "RESET GPIO Config" default ESP_HOSTED_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 ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH bool "RESET: Active High" config ESP_HOSTED_SDIO_RESET_ACTIVE_LOW bool "RESET: Active Low" endchoice choice ESP_HOSTED_SDIO_RX_OPTIMIZATION bool "SDIO Receive Optimization" default ESP_HOSTED_SDIO_OPTIMIZATION_RX_STREAMING_MODE config ESP_HOSTED_SDIO_OPTIMIZATION_RX_NONE bool "No optimization" help Use SDIO as is, with no optimizations. config ESP_HOSTED_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_HOSTED_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 choice prompt "SDIO Slot To Use" default ESP_HOSTED_SDIO_SLOT_1 help On the ESP32-P4 EV Board: - Slot 0 connects to the MicroSD Card slot - Slot 1 connects to the on-board ESP32-C6 For the ESP32, Slot 0 is usually occupied by SPI Flash and not usable for SDIO. For the ESP32-P4, Slot 0 is IOMUXed and GPIO values cannot be changed config ESP_HOSTED_SDIO_SLOT_0 depends on IDF_TARGET_ESP32P4 || IDF_TARGET_ESP32S3 bool "Slot 0" config ESP_HOSTED_SDIO_SLOT_1 bool "Slot 1" endchoice config ESP_HOSTED_SDIO_SLOT int default 0 if ESP_HOSTED_SDIO_SLOT_0 default 1 if ESP_HOSTED_SDIO_SLOT_1 config ESP_HOSTED_SD_PWR_CTRL_LDO_INTERNAL_IO depends on SOC_SDMMC_IO_POWER_EXTERNAL bool "SDIO power supply comes from internal LDO IO (READ HELP!)" default n help Only needed when the SDIO module is connected to specific IO pins which can be used for high-speed SDIO. Please read the schematic first and check if the SD VDD is connected to any internal LDO output. Unselect this option if the SDIO is powered by an external power supply. For ESP32-P4 EV Board, SDMMC slot 0 may require internal LDO output. config ESP_HOSTED_SD_PWR_CTRL_LDO_IO_ID depends on SOC_SDMMC_IO_POWER_EXTERNAL && ESP_HOSTED_SD_PWR_CTRL_LDO_INTERNAL_IO int "LDO ID" default 4 if IDF_TARGET_ESP32P4 help Please check your schematic first and input your LDO ID. choice prompt "SDIO Bus Width" default ESP_HOSTED_SDIO_4_BIT_BUS help Select the SDIO Bus Width to use config ESP_HOSTED_SDIO_4_BIT_BUS bool "4 Bits" config ESP_HOSTED_SDIO_1_BIT_BUS bool "1 Bit" endchoice config ESP_HOSTED_SDIO_BUS_WIDTH int default 1 if ESP_HOSTED_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 := 50000 config ESP_HOSTED_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. Clock frequency for ESP32-P4 as host <= 40MHz" config ESP_HOSTED_CUSTOM_SDIO_PINS bool "Use custom SDIO GPIO pins" default n help Enable this to use custom GPIO pins for SDIO on ESP32-P4 and ESP32-S3. ESP32 has fixed GPIOs for SDIO host (Do not use custom GPIOs) ESP32-P4 slot 0 is fixed GPIOs for SDIO host (Do not use custom GPIOs) ESP32-P4 slot 1, ESP32-S3 slot 0/1 is flexible GPIOs for SDIO host (Flexible GPIOs) config ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MIN int default 4 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 19 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 15 if IDF_TARGET_ESP32 default 0 config ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MAX int default 4 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 19 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 15 if IDF_TARGET_ESP32 default 100 config ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MIN int default 33 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 18 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 14 if IDF_TARGET_ESP32 default 0 config ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MAX int default 33 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 18 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 14 if IDF_TARGET_ESP32 default 100 config ESP_HOSTED_SDIO_D0_GPIO_RANGE_MIN int default 20 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 14 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 2 if IDF_TARGET_ESP32 default 0 config ESP_HOSTED_SDIO_D0_GPIO_RANGE_MAX int default 20 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 14 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 2 if IDF_TARGET_ESP32 default 100 config ESP_HOSTED_SDIO_D1_GPIO_RANGE_MIN int default 23 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 15 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 4 if IDF_TARGET_ESP32 default 0 config ESP_HOSTED_SDIO_D1_GPIO_RANGE_MAX int default 23 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 15 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 4 if IDF_TARGET_ESP32 default 100 config ESP_HOSTED_SDIO_D2_GPIO_RANGE_MIN int default 21 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 16 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 12 if IDF_TARGET_ESP32 default 0 config ESP_HOSTED_SDIO_D2_GPIO_RANGE_MAX int default 21 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 16 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 12 if IDF_TARGET_ESP32 default 100 config ESP_HOSTED_SDIO_D3_GPIO_RANGE_MIN int default 22 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 17 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 13 if IDF_TARGET_ESP32 default 0 config ESP_HOSTED_SDIO_D3_GPIO_RANGE_MAX int default 22 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 default 17 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 13 if IDF_TARGET_ESP32 default 100 config ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MIN int default 53 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 54 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 42 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32S3 default 5 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32 default 0 help GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device. config ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MAX int default 53 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 54 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 default 42 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32S3 default 5 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32 default 100 ### *START* GPIO SDIO pin configurations for Slot 0 and 1 config ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_0 depends on ESP_HOSTED_SDIO_SLOT_0 int "CMD GPIO number" default 47 if IDF_TARGET_ESP32S3 range 44 44 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_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_1 depends on ESP_HOSTED_SDIO_SLOT_1 int "CMD GPIO number" default 47 if IDF_TARGET_ESP32S3 default 4 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 19 if IDF_TARGET_ESP32P4 default 15 if IDF_TARGET_ESP32 range ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MIN ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MAX help CMD GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. Enable 'Use custom SDIO GPIO pins' to disable range restrictions. config ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_0 depends on ESP_HOSTED_SDIO_SLOT_0 int "CLK GPIO number" default 19 if IDF_TARGET_ESP32S3 range 43 43 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_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_1 depends on ESP_HOSTED_SDIO_SLOT_1 int "CLK GPIO number" default 19 if IDF_TARGET_ESP32S3 default 33 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 18 if IDF_TARGET_ESP32P4 default 14 if IDF_TARGET_ESP32 range ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MIN ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MAX help CLK GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. Enable 'Use custom SDIO GPIO pins' to disable range restrictions. config ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_0 depends on ESP_HOSTED_SDIO_SLOT_0 int "D0 GPIO number" default 13 if IDF_TARGET_ESP32S3 range 39 39 if IDF_TARGET_ESP32P4 range 2 2 if IDF_TARGET_ESP32 help "Value can only be configured for some targets. Displayed always for reference." config ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_1 depends on ESP_HOSTED_SDIO_SLOT_1 int "D0 GPIO number" default 13 if IDF_TARGET_ESP32S3 default 20 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 14 if IDF_TARGET_ESP32P4 default 2 if IDF_TARGET_ESP32 range ESP_HOSTED_SDIO_D0_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D0_GPIO_RANGE_MAX help D0 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. Enable 'Use custom SDIO GPIO pins' to disable range restrictions. if ESP_HOSTED_SDIO_4_BIT_BUS config ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_0 depends on ESP_HOSTED_SDIO_SLOT_0 int "D1 GPIO number" default 35 if IDF_TARGET_ESP32S3 range 40 40 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_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_1 depends on ESP_HOSTED_SDIO_SLOT_1 int "D1 GPIO number" default 35 if IDF_TARGET_ESP32S3 default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 15 if IDF_TARGET_ESP32P4 default 4 if IDF_TARGET_ESP32 range ESP_HOSTED_SDIO_D1_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D1_GPIO_RANGE_MAX help D1 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. Enable 'Use custom SDIO GPIO pins' to disable range restrictions. config ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_0 depends on ESP_HOSTED_SDIO_SLOT_0 int "D2 GPIO number" default 20 if IDF_TARGET_ESP32S3 range 41 41 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_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_1 depends on ESP_HOSTED_SDIO_SLOT_1 int "D2 GPIO number" default 20 if IDF_TARGET_ESP32S3 default 21 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 16 if IDF_TARGET_ESP32P4 default 12 if IDF_TARGET_ESP32 range ESP_HOSTED_SDIO_D2_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D2_GPIO_RANGE_MAX help D2 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. Enable 'Use custom SDIO GPIO pins' to disable range restrictions. config ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_0 depends on ESP_HOSTED_SDIO_SLOT_0 int "D3 GPIO number" default 9 if IDF_TARGET_ESP32S3 range 42 42 if IDF_TARGET_ESP32P4 range 13 13 if IDF_TARGET_ESP32 help "Value can only be configured for some targets. Displayed always for reference." config ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_1 depends on ESP_HOSTED_SDIO_SLOT_1 int "D3 GPIO number" default 9 if IDF_TARGET_ESP32S3 default 22 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 17 if IDF_TARGET_ESP32P4 default 13 if IDF_TARGET_ESP32 range ESP_HOSTED_SDIO_D3_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D3_GPIO_RANGE_MAX help D3 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. Enable 'Use custom SDIO GPIO pins' to disable range restrictions. endif if !ESP_HOSTED_SDIO_4_BIT_BUS config ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_0 depends on ESP_HOSTED_SDIO_SLOT_0 int "D1 GPIO number (Interrupt Line)" default 35 if IDF_TARGET_ESP32S3 range 40 40 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_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_1 depends on ESP_HOSTED_SDIO_SLOT_1 int "D1 GPIO number (Interrupt Line)" default 35 if IDF_TARGET_ESP32S3 default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 15 if IDF_TARGET_ESP32P4 default 4 if IDF_TARGET_ESP32 range ESP_HOSTED_SDIO_D1_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D1_GPIO_RANGE_MAX help D1 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. Enable 'Use custom SDIO GPIO pins' to disable range restrictions. endif config ESP_HOSTED_SDIO_GPIO_RESET_SLAVE int "GPIO pin for Reseting slave ESP" range ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MIN ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MAX default 53 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 54 if IDF_TARGET_ESP32P4 default 42 if IDF_TARGET_ESP32S3 default 5 if IDF_TARGET_ESP32 help GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device. ### *END* GPIO SDIO pin configurations for Slot 0 and 1 config ESP_HOSTED_SDIO_PIN_CMD int default ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 default ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 config ESP_HOSTED_SDIO_PIN_CLK int default ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 default ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 config ESP_HOSTED_SDIO_PIN_D0 int default ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 default ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 if ESP_HOSTED_SDIO_4_BIT_BUS config ESP_HOSTED_SDIO_PRIV_PIN_D1_4BIT_BUS int default ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 default ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 config ESP_HOSTED_SDIO_PIN_D2 int default ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 default ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 config ESP_HOSTED_SDIO_PIN_D3 int default ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 default ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 endif if !ESP_HOSTED_SDIO_4_BIT_BUS config ESP_HOSTED_SDIO_PRIV_PIN_D1_1BIT_BUS int default ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 default ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 endif config ESP_HOSTED_SDIO_PIN_D1 int default ESP_HOSTED_SDIO_PRIV_PIN_D1_4BIT_BUS if ESP_HOSTED_SDIO_4_BIT_BUS default ESP_HOSTED_SDIO_PRIV_PIN_D1_1BIT_BUS if !ESP_HOSTED_SDIO_4_BIT_BUS config ESP_HOSTED_SDIO_TX_Q_SIZE int "Host SDIO Tx queue size" default 20 help Very small tx queue will lower data rate config ESP_HOSTED_SDIO_RX_Q_SIZE int "Host SDIO Rx queue size" default 20 help Very small RX queue will lower data rate config ESP_HOSTED_SDIO_CHECKSUM bool "SDIO checksum ENABLE/DISABLE" help ENABLE/DISABLE software SDIO checksum endmenu menu "SPI Half-duplex Configuration" depends on ESP_HOSTED_SPI_HD_HOST_INTERFACE config ESP_HOSTED_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_HOSTED_SPI_HD_PRIV_INTERFACE_NUM_DATA_LINES bool "Num Data Lines to use" default ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES help Number of Data Lines to use in the SPI HD interface config ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES bool "4 data lines" config ESP_HOSTED_SPI_HD_PRIV_INTERFACE_2_DATA_LINES bool "2 data lines" endchoice config ESP_HOSTED_SPI_HD_INTERFACE_NUM_DATA_LINES int default 4 if ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES default 2 if ESP_HOSTED_SPI_HD_PRIV_INTERFACE_2_DATA_LINES choice ESP_HOSTED_SPI_HD_RESET_GPIO_CONFIG bool "RESET GPIO Config" default ESP_HOSTED_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 ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH bool "RESET: Active High" config ESP_HOSTED_SPI_HD_RESET_ACTIVE_LOW bool "RESET: Active Low" endchoice choice ESP_HOSTED_SPI_HD_DATAREADY_GPIO_CONFIG bool "DataReady GPIO Config" default ESP_HOSTED_SPI_HD_DR_ACTIVE_HIGH config ESP_HOSTED_SPI_HD_DR_ACTIVE_HIGH bool "DR: Active High" config ESP_HOSTED_SPI_HD_DR_ACTIVE_LOW bool "DR: Active Low" endchoice menu "Host GPIOs Config" config ESP_HOSTED_SPI_HD_GPIO_CS int "GPIO pin for Host CS" default 10 if IDF_TARGET_ESP32S3 default 4 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 19 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 1 if IDF_TARGET_ESP32H2 default 15 help SPI Half-duplex controller Host CS config ESP_HOSTED_SPI_HD_GPIO_CLK int "GPIO pin for Host CLK" default 12 if IDF_TARGET_ESP32S3 default 33 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 18 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 4 if IDF_TARGET_ESP32H2 default 18 help SPI Half-duplex controller Host CLK config ESP_HOSTED_SPI_HD_GPIO_D0 int "GPIO pin for Host D0" default 11 if IDF_TARGET_ESP32S3 default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 14 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 5 if IDF_TARGET_ESP32H2 default 2 help SPI Half-duplex controller Host D0 config ESP_HOSTED_SPI_HD_GPIO_D1 int "GPIO pin for Host D1" default 13 if IDF_TARGET_ESP32S3 default 22 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 15 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 0 if IDF_TARGET_ESP32H2 default 4 help SPI Half-duplex controller Host D1 config ESP_HOSTED_SPI_HD_GPIO_D2 depends on ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES int "GPIO pin for Host D2" default 14 if IDF_TARGET_ESP32S3 default 20 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 16 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 2 if IDF_TARGET_ESP32H2 default 12 help SPI Half-duplex controller Host D2 config ESP_HOSTED_SPI_HD_GPIO_D3 depends on ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES int "GPIO pin for Host D3" default 9 if IDF_TARGET_ESP32S3 default 21 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 17 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 3 if IDF_TARGET_ESP32H2 default 13 help SPI Half-duplex controller Host D3 config ESP_HOSTED_SPI_HD_GPIO_DATA_READY int "GPIO pin for data ready interrupt" default 4 if IDF_TARGET_ESP32S3 default 32 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 6 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 12 if IDF_TARGET_ESP32H2 default 8 help GPIO pin for indicating host that slave has data to be read by host config ESP_HOSTED_SPI_HD_GPIO_RESET_SLAVE int "GPIO pin for Reseting slave ESP" default 5 if IDF_TARGET_ESP32S3 default 53 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 default 54 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 default 10 if IDF_TARGET_ESP32H2 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_HOSTED_SPI_HD_FREQ_ESP32C6 depends on SLAVE_IDF_TARGET_ESP32C6 int "SPI HD Clock Freq (MHz)" default 40 if IDF_TARGET_ESP32P4 #config for ESP32-P4 Function_EV_Board 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_HOSTED_SPI_HD_FREQ_ESP32XX depends on SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 int "SPI HD Clock Freq (MHz)" default 40 if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_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_HOSTED_SPI_HD_CLK_FREQ int default ESP_HOSTED_SPI_HD_FREQ_ESP32C6 if SLAVE_IDF_TARGET_ESP32C6 default ESP_HOSTED_SPI_HD_FREQ_ESP32XX if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 help "Optimize CLK by increasing till host practically can support" config ESP_HOSTED_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_HOSTED_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_HOSTED_SPI_HD_CHECKSUM bool "Checksum ENABLE/DISABLE" default y help ENABLE/DISABLE software checksum endmenu menu "UART Configuration" depends on ESP_HOSTED_UART_HOST_INTERFACE choice ESP_HOSTED_UART_RESET_GPIO_CONFIG bool "RESET GPIO Config" default ESP_HOSTED_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_HOSTED_UART_RESET_ACTIVE_HIGH bool "RESET: Active High" config ESP_HOSTED_UART_RESET_ACTIVE_LOW bool "RESET: Active Low" endchoice config ESP_HOSTED_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_HOSTED_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_HOSTED_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_HOSTED_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_HOSTED_UART_NUM_DATA_BITS int "Number of Data Bits" default 8 range 5 8 help Number of Data Bits to use choice ESP_HOSTED_UART_PRIV_PARITY bool "Parity" config ESP_HOSTED_UART_PRIV_PARITY_NONE bool "None" config ESP_HOSTED_UART_PRIV_PARITY_EVEN bool "Even" config ESP_HOSTED_UART_PRIV_PARITY_ODD bool "Odd" endchoice config ESP_HOSTED_UART_PARITY int default 0 if ESP_HOSTED_UART_PRIV_PARITY_NONE default 1 if ESP_HOSTED_UART_PRIV_PARITY_EVEN default 2 if ESP_HOSTED_UART_PRIV_PARITY_ODD choice ESP_HOSTED_UART_PRIV_STOP_BITS bool "Number of Stop Bits" config ESP_HOSTED_UART_PRIV_STOP_BITS_1 bool "1" config ESP_HOSTED_UART_PRIV_STOP_BITS_1_5 bool "1.5" config ESP_HOSTED_UART_PRIV_STOP_BITS_2 bool "2" endchoice config ESP_HOSTED_UART_STOP_BITS int default 0 if ESP_HOSTED_UART_PRIV_STOP_BITS_1 default 1 if ESP_HOSTED_UART_PRIV_STOP_BITS_1_5 default 2 if ESP_HOSTED_UART_PRIV_STOP_BITS_2 config ESP_HOSTED_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_HOSTED_UART_TX_Q_SIZE int "Tx Queue Size" default 5 help UART rates are low, so large queue sizes are not required config ESP_HOSTED_UART_RX_Q_SIZE int "Rx Queue Size" default 5 help UART rates are low, so large queue sizes are not required config ESP_HOSTED_UART_CHECKSUM bool "UART checksum ENABLE/DISABLE" default y help ENABLE/DISABLE software UART checksum endmenu config ESP_HOSTED_GPIO_SLAVE_RESET_SLAVE int default ESP_HOSTED_SPI_GPIO_RESET_SLAVE if ESP_HOSTED_SPI_HOST_INTERFACE default ESP_HOSTED_SDIO_GPIO_RESET_SLAVE if ESP_HOSTED_SDIO_HOST_INTERFACE default ESP_HOSTED_SPI_HD_GPIO_RESET_SLAVE if ESP_HOSTED_SPI_HD_HOST_INTERFACE default ESP_HOSTED_UART_GPIO_RESET_SLAVE if ESP_HOSTED_UART_HOST_INTERFACE config ESP_HOSTED_RESET_GPIO_ACTIVE_LOW bool default n if ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH || ESP_HOSTED_SPI_RESET_ACTIVE_HIGH || ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH || ESP_HOSTED_UART_RESET_ACTIVE_HIGH default y if ESP_HOSTED_SDIO_RESET_ACTIVE_LOW || ESP_HOSTED_SPI_RESET_ACTIVE_LOW || ESP_HOSTED_SPI_HD_RESET_ACTIVE_LOW || ESP_HOSTED_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_HOSTED_ENABLE_BT_BLUEDROID bool "Enable Hosted Bluedroid Bluetooth support" default n help Enable Bluetooth Support for Bluedroid via Hosted choice ESP_HOSTED_BLUEDROID_HCI_TYPE bool "BT Bluedroid HCI Type" default ESP_HOSTED_BLUEDROID_HCI_VHCI depends on ESP_HOSTED_ENABLE_BT_BLUEDROID help Selects the HCI to use config ESP_HOSTED_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_HOSTED_ENABLE_BT_NIMBLE bool "Enable Hosted Nimble Bluetooth support" default n help Enable Bluetooth Support via Hosted choice ESP_HOSTED_NIMBLE_HCI_TYPE bool "BT Nimble HCI Type" default ESP_HOSTED_NIMBLE_HCI_VHCI depends on ESP_HOSTED_ENABLE_BT_NIMBLE help Selects the HCI to use config ESP_HOSTED_NIMBLE_HCI_VHCI bool "VHCI" help Bluetooth data is sent through the selected transport layer endchoice endif endmenu menu "Task defaults" config ESP_HOSTED_RPC_TASK_STACK int "RPC task stack size" default 4096 config ESP_HOSTED_DFLT_TASK_STACK int "Hosted default task size" default 3072 endmenu config ESP_HOSTED_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_HOSTED_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_HOSTED_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_HOSTED_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_HOSTED_RAW_THROUGHPUT_DIRECTION bool "RawTP: Send data from:" depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT config ESP_HOSTED_RAW_THROUGHPUT_TX_TO_SLAVE bool "Host to Slave" help Sends data from Host to Slave config ESP_HOSTED_RAW_THROUGHPUT_RX_FROM_SLAVE bool "Slave to Host" help Sends data from Slave to Slave config ESP_HOSTED_RAW_THROUGHPUT_BIDIRECTIONAL bool "Bidirectional" help Sends data in both directions endchoice config ESP_HOSTED_RAW_TP_HOST_TO_ESP_PKT_LEN depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT int "RawTP: Host to ESP packet size" range 1 1500 default 1460 config ESP_HOSTED_RAW_TP_REPORT_INTERVAL depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT int "RawTP: periodic duration to report stats accumulated" default 5 config ESP_HOSTED_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 ESP_HOSTED_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 ESP_HOSTED_PRIV_WIFI_TX_SPI_HIGH_THRESHOLD depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_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 ESP_HOSTED_PRIV_WIFI_TX_SDIO_HIGH_THRESHOLD depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_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 ESP_HOSTED_PRIV_WIFI_TX_SPI_HD_HIGH_THRESHOLD depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_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 ESP_HOSTED_PRIV_WIFI_TX_UART_HIGH_THRESHOLD depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_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 ESP_HOSTED_TO_WIFI_DATA_THROTTLE_HIGH_THRESHOLD depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE int default ESP_HOSTED_PRIV_WIFI_TX_SPI_HIGH_THRESHOLD if ESP_HOSTED_SPI_HOST_INTERFACE default ESP_HOSTED_PRIV_WIFI_TX_SDIO_HIGH_THRESHOLD if ESP_HOSTED_SDIO_HOST_INTERFACE default ESP_HOSTED_PRIV_WIFI_TX_SPI_HD_HIGH_THRESHOLD if ESP_HOSTED_SPI_HD_HOST_INTERFACE default ESP_HOSTED_PRIV_WIFI_TX_UART_HIGH_THRESHOLD if ESP_HOSTED_UART_HOST_INTERFACE config ESP_HOSTED_TO_WIFI_DATA_THROTTLE_LOW_THRESHOLD depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE int "Low threshold to report host to stop dropping data" range 0 ESP_HOSTED_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 config ESP_HOSTED_DECODE_WIFI_RESERVED_FIELD bool "Copy Wi-Fi configuration reserved field values" default n help ESP-IDF Wi-Fi structures contain reserved bitmask values. Enable this option if you want to copy these values between host and co-processor. It is usually safe to ignore these reserved values. endmenu