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_GENERIC bool "Generic 802.3 PHY" help Any Ethernet PHY chip compliant with IEEE 802.3 can be used. However, while basic functionality should always work, some specific features might be limited, even if the PHY meets IEEE 802.3 standard. A typical example is loopback functionality, where certain PHYs may require setting a specific speed mode to operate correctly. 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 Transceivers (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 52 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 51 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 || IDF_TARGET_ESP32C61 default 4 if IDF_TARGET_ESP32H2 default 33 if IDF_TARGET_ESP32P4 default 8 if IDF_TARGET_ESP32C5 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 || IDF_TARGET_ESP32C61 default 5 if IDF_TARGET_ESP32H2 default 32 if IDF_TARGET_ESP32P4 default 10 if IDF_TARGET_ESP32C5 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 || IDF_TARGET_ESP32C61 default 0 if IDF_TARGET_ESP32H2 default 24 if IDF_TARGET_ESP32P4 default 9 if IDF_TARGET_ESP32C5 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 || IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32C61 default 1 if IDF_TARGET_ESP32H2 default 21 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 || IDF_TARGET_ESP32C61 default 1 if IDF_TARGET_ESP32C5 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 || IDF_TARGET_ESP32C5 default 10 if IDF_TARGET_ESP32H2 default 48 if IDF_TARGET_ESP32P4 default 0 if IDF_TARGET_ESP32C61 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 || IDF_TARGET_ESP32C5 default 9 if IDF_TARGET_ESP32H2 default 47 if IDF_TARGET_ESP32P4 default 1 if IDF_TARGET_ESP32C61 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