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