menu "Example Ethernet Configuration" orsource "$IDF_PATH/examples/common_components/env_caps/$IDF_TARGET/Kconfig.env_caps" config EXAMPLE_USE_INTERNAL_ETHERNET depends on SOC_EMAC_SUPPORTED select ETH_USE_ESP32_EMAC default y bool "Internal EMAC" help Use internal Ethernet MAC controller. if EXAMPLE_USE_INTERNAL_ETHERNET choice EXAMPLE_ETH_PHY_MODEL prompt "Ethernet PHY Device" default EXAMPLE_ETH_PHY_IP101 help Select the Ethernet PHY device to use in the example. config EXAMPLE_ETH_PHY_IP101 bool "IP101" help IP101 is a single port 10/100 MII/RMII/TP/Fiber Fast Ethernet Transceiver. Goto http://www.icplus.com.tw/pp-IP101G.html for more information about it. config EXAMPLE_ETH_PHY_RTL8201 bool "RTL8201/SR8201" help RTL8201F/SR8201F is a single port 10/100Mb Ethernet Transceiver with auto MDIX. Goto http://www.corechip-sz.com/productsview.asp?id=22 for more information about it. config EXAMPLE_ETH_PHY_LAN87XX bool "LAN87xx" help Below chips are supported: LAN8710A is a small footprint MII/RMII 10/100 Ethernet Transceiver with HP Auto-MDIX and flexPWR® Technology. LAN8720A is a small footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX Support. LAN8740A/LAN8741A is a small footprint MII/RMII 10/100 Energy Efficient Ethernet Transceiver with HP Auto-MDIX and flexPWR® Technology. LAN8742A is a small footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX and flexPWR® Technology. Goto https://www.microchip.com for more information about them. config EXAMPLE_ETH_PHY_DP83848 bool "DP83848" help DP83848 is a single port 10/100Mb/s Ethernet Physical Layer Transceiver. Goto http://www.ti.com/product/DP83848J for more information about it. config EXAMPLE_ETH_PHY_KSZ80XX bool "KSZ80xx" help With the KSZ80xx series, Microchip offers single-chip 10BASE-T/100BASE-TX Ethernet Physical Layer Tranceivers (PHY). The following chips are supported: KSZ8001, KSZ8021, KSZ8031, KSZ8041, KSZ8051, KSZ8061, KSZ8081, KSZ8091 Goto https://www.microchip.com for more information about them. endchoice # EXAMPLE_ETH_PHY_MODEL config EXAMPLE_ETH_MDC_GPIO int "SMI MDC GPIO number" range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX default 23 if IDF_TARGET_ESP32 default 31 if IDF_TARGET_ESP32P4 help Set the GPIO number used by SMI MDC. config EXAMPLE_ETH_MDIO_GPIO int "SMI MDIO GPIO number" range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX default 18 if IDF_TARGET_ESP32 default 27 if IDF_TARGET_ESP32P4 help Set the GPIO number used by SMI MDIO. config EXAMPLE_ETH_PHY_RST_GPIO int "PHY Reset GPIO number" range -1 ENV_GPIO_OUT_RANGE_MAX default 5 if IDF_TARGET_ESP32 default 26 if IDF_TARGET_ESP32P4 help Set the GPIO number used to reset PHY chip. Set to -1 to disable PHY chip hardware reset. config EXAMPLE_ETH_PHY_ADDR int "PHY Address" range -1 31 default 1 help Set PHY address according your board schematic. Set to -1 to driver find the PHY address automatically. endif # EXAMPLE_USE_INTERNAL_ETHERNET config EXAMPLE_USE_SPI_ETHERNET bool "SPI Ethernet" default n select ETH_USE_SPI_ETHERNET help Use external SPI-Ethernet module(s). if EXAMPLE_USE_SPI_ETHERNET config EXAMPLE_SPI_ETHERNETS_NUM int "Number of SPI Ethernet modules to use at a time" range 1 2 default 1 help Set the number of SPI Ethernet modules you want to use at a time. Multiple SPI modules can be connected to one SPI interface and can be separately accessed based on state of associated Chip Select (CS). choice EXAMPLE_ETHERNET_TYPE_SPI prompt "Ethernet SPI" default EXAMPLE_USE_W5500 help Select which kind of Ethernet will be used in the example. config EXAMPLE_USE_DM9051 bool "DM9051 Module" select ETH_SPI_ETHERNET_DM9051 help Select external SPI-Ethernet module (DM9051). config EXAMPLE_USE_KSZ8851SNL bool "KSZ8851SNL Module" select ETH_SPI_ETHERNET_KSZ8851SNL help Select external SPI-Ethernet module (KSZ8851SNL). config EXAMPLE_USE_W5500 bool "W5500 Module" select ETH_SPI_ETHERNET_W5500 help Select external SPI-Ethernet module (W5500). endchoice config EXAMPLE_ETH_SPI_HOST int "SPI Host Number" range 0 2 default 1 help Set the SPI host used to communicate with the SPI Ethernet Controller. config EXAMPLE_ETH_SPI_SCLK_GPIO int "SPI SCLK GPIO number" range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX default 14 if IDF_TARGET_ESP32 default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 6 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6 default 4 if IDF_TARGET_ESP32H2 default 33 if IDF_TARGET_ESP32P4 help Set the GPIO number used by SPI SCLK. config EXAMPLE_ETH_SPI_MOSI_GPIO int "SPI MOSI GPIO number" range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX default 13 if IDF_TARGET_ESP32 default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 7 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6 default 5 if IDF_TARGET_ESP32H2 default 32 if IDF_TARGET_ESP32P4 help Set the GPIO number used by SPI MOSI. config EXAMPLE_ETH_SPI_MISO_GPIO int "SPI MISO GPIO number" range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX default 12 if IDF_TARGET_ESP32 default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 2 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6 default 0 if IDF_TARGET_ESP32H2 default 52 if IDF_TARGET_ESP32P4 help Set the GPIO number used by SPI MISO. config EXAMPLE_ETH_SPI_CLOCK_MHZ int "SPI clock speed (MHz)" range 5 80 default 16 help Set the clock speed (MHz) of SPI interface. config EXAMPLE_ETH_SPI_CS0_GPIO int "SPI CS0 GPIO number for SPI Ethernet module #1" range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX default 15 if IDF_TARGET_ESP32 default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C2 default 3 if IDF_TARGET_ESP32C6 default 1 if IDF_TARGET_ESP32H2 default 53 if IDF_TARGET_ESP32P4 help Set the GPIO number used by SPI CS0, i.e. Chip Select associated with the first SPI Eth module). config EXAMPLE_ETH_SPI_CS1_GPIO depends on EXAMPLE_SPI_ETHERNETS_NUM > 1 int "SPI CS1 GPIO number for SPI Ethernet module #2" range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX default 32 if IDF_TARGET_ESP32 default 7 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 default 8 if IDF_TARGET_ESP32C3 default 21 if IDF_TARGET_ESP32C6 default 3 if IDF_TARGET_ESP32C2 default 11 if IDF_TARGET_ESP32H2 default 23 if IDF_TARGET_ESP32P4 help Set the GPIO number used by SPI CS1, i.e. Chip Select associated with the second SPI Eth module. config EXAMPLE_ETH_SPI_INT0_GPIO int "Interrupt GPIO number SPI Ethernet module #1" range -1 ENV_GPIO_IN_RANGE_MAX default 4 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 default 4 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6 default 10 if IDF_TARGET_ESP32H2 default 48 if IDF_TARGET_ESP32P4 help Set the GPIO number used by the first SPI Ethernet module interrupt line. Set -1 to use SPI Ethernet module in polling mode. config EXAMPLE_ETH_SPI_INT1_GPIO depends on EXAMPLE_SPI_ETHERNETS_NUM > 1 int "Interrupt GPIO number SPI Ethernet module #2" range -1 ENV_GPIO_IN_RANGE_MAX default 33 if IDF_TARGET_ESP32 default 5 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C2 default 5 if IDF_TARGET_ESP32C6 default 9 if IDF_TARGET_ESP32H2 default 47 if IDF_TARGET_ESP32P4 help Set the GPIO number used by the second SPI Ethernet module interrupt line. Set -1 to use SPI Ethernet module in polling mode. config EXAMPLE_ETH_SPI_POLLING0_MS_VAL depends on EXAMPLE_ETH_SPI_INT0_GPIO < 0 int "Polling period in msec of SPI Ethernet Module #1" default 10 help Set SPI Ethernet module polling period. config EXAMPLE_ETH_SPI_POLLING1_MS_VAL depends on EXAMPLE_SPI_ETHERNETS_NUM > 1 && EXAMPLE_ETH_SPI_INT1_GPIO < 0 int "Polling period in msec of SPI Ethernet Module #2" default 10 help Set SPI Ethernet module polling period. # Hidden variable to ensure that polling period option is visible only when interrupt is set disabled and # it is set to known value (0) when interrupt is enabled at the same time. config EXAMPLE_ETH_SPI_POLLING0_MS int default EXAMPLE_ETH_SPI_POLLING0_MS_VAL if EXAMPLE_ETH_SPI_POLLING0_MS_VAL > 0 default 0 # Hidden variable to ensure that polling period option is visible only when interrupt is set disabled and # it is set to known value (0) when interrupt is enabled at the same time. config EXAMPLE_ETH_SPI_POLLING1_MS depends on EXAMPLE_SPI_ETHERNETS_NUM > 1 int default EXAMPLE_ETH_SPI_POLLING1_MS_VAL if EXAMPLE_ETH_SPI_POLLING1_MS_VAL > 0 default 0 config EXAMPLE_ETH_SPI_PHY_RST0_GPIO int "PHY Reset GPIO number of SPI Ethernet Module #1" range -1 ENV_GPIO_OUT_RANGE_MAX default -1 help Set the GPIO number used to reset PHY chip on the first SPI Ethernet module. Set to -1 to disable PHY chip hardware reset. config EXAMPLE_ETH_SPI_PHY_RST1_GPIO depends on EXAMPLE_SPI_ETHERNETS_NUM > 1 int "PHY Reset GPIO number of SPI Ethernet Module #2" range -1 ENV_GPIO_OUT_RANGE_MAX default -1 help Set the GPIO number used to reset PHY chip on the second SPI Ethernet module. Set to -1 to disable PHY chip hardware reset. config EXAMPLE_ETH_SPI_PHY_ADDR0 int "PHY Address of SPI Ethernet Module #1" range 0 31 default 1 help Set the first SPI Ethernet module PHY address according your board schematic. config EXAMPLE_ETH_SPI_PHY_ADDR1 depends on EXAMPLE_SPI_ETHERNETS_NUM > 1 int "PHY Address of SPI Ethernet Module #2" range 0 31 default 1 help Set the second SPI Ethernet module PHY address according your board schematic. endif # EXAMPLE_USE_SPI_ETHERNET endmenu