diff --git a/examples/common_components/protocol_examples_common/Kconfig.projbuild b/examples/common_components/protocol_examples_common/Kconfig.projbuild index cd4028d9da..62d6b60770 100644 --- a/examples/common_components/protocol_examples_common/Kconfig.projbuild +++ b/examples/common_components/protocol_examples_common/Kconfig.projbuild @@ -162,11 +162,18 @@ menu "Example Connection Configuration" 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_LAN8720 - bool "LAN8720" + 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. - Goto https://www.microchip.com/LAN8720A for more information about it. + 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" diff --git a/examples/common_components/protocol_examples_common/connect.c b/examples/common_components/protocol_examples_common/connect.c index 40bac5fec4..d1063b43a0 100644 --- a/examples/common_components/protocol_examples_common/connect.c +++ b/examples/common_components/protocol_examples_common/connect.c @@ -393,8 +393,8 @@ static esp_netif_t *eth_start(void) s_phy = esp_eth_phy_new_ip101(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_RTL8201 s_phy = esp_eth_phy_new_rtl8201(&phy_config); -#elif CONFIG_EXAMPLE_ETH_PHY_LAN8720 - s_phy = esp_eth_phy_new_lan8720(&phy_config); +#elif CONFIG_EXAMPLE_ETH_PHY_LAN87XX + s_phy = esp_eth_phy_new_lan87xx(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_DP83848 s_phy = esp_eth_phy_new_dp83848(&phy_config); #endif diff --git a/examples/ethernet/basic/main/Kconfig.projbuild b/examples/ethernet/basic/main/Kconfig.projbuild index be155389b2..71239ebdf0 100644 --- a/examples/ethernet/basic/main/Kconfig.projbuild +++ b/examples/ethernet/basic/main/Kconfig.projbuild @@ -61,11 +61,18 @@ menu "Example Configuration" 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_LAN8720 - bool "LAN8720" + 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. - Goto https://www.microchip.com/LAN8720A for more information about it. + 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" diff --git a/examples/ethernet/basic/main/ethernet_example_main.c b/examples/ethernet/basic/main/ethernet_example_main.c index edcbc6bec5..d68f523419 100644 --- a/examples/ethernet/basic/main/ethernet_example_main.c +++ b/examples/ethernet/basic/main/ethernet_example_main.c @@ -92,8 +92,8 @@ void app_main(void) esp_eth_phy_t *phy = esp_eth_phy_new_ip101(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_RTL8201 esp_eth_phy_t *phy = esp_eth_phy_new_rtl8201(&phy_config); -#elif CONFIG_EXAMPLE_ETH_PHY_LAN8720 - esp_eth_phy_t *phy = esp_eth_phy_new_lan8720(&phy_config); +#elif CONFIG_EXAMPLE_ETH_PHY_LAN87XX + esp_eth_phy_t *phy = esp_eth_phy_new_lan87xx(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_DP83848 esp_eth_phy_t *phy = esp_eth_phy_new_dp83848(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_KSZ8041 diff --git a/examples/ethernet/eth2ap/main/Kconfig.projbuild b/examples/ethernet/eth2ap/main/Kconfig.projbuild index 4e2dba5ed4..84c76ffec6 100644 --- a/examples/ethernet/eth2ap/main/Kconfig.projbuild +++ b/examples/ethernet/eth2ap/main/Kconfig.projbuild @@ -32,6 +32,14 @@ menu "Example Configuration" select ETH_SPI_ETHERNET_W5500 help Select external SPI-Ethernet module (W5500). + + config EXAMPLE_USE_KSZ8851SNL + bool "KSZ8851SNL Module" + select EXAMPLE_USE_SPI_ETHERNET + select ETH_USE_SPI_ETHERNET + select ETH_SPI_ETHERNET_KSZ8851SNL + help + Select external SPI-Ethernet module (KSZ8851SNL). endchoice # EXAMPLE_ETHERNET_TYPE if EXAMPLE_USE_INTERNAL_ETHERNET @@ -53,11 +61,18 @@ menu "Example Configuration" 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_LAN8720 - bool "LAN8720" + 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. - Goto https://www.microchip.com/LAN8720A for more information about it. + 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" @@ -70,6 +85,12 @@ menu "Example Configuration" help The KSZ8041 is a single supply 10Base-T/100Base-TX Physical Layer Transceiver. Goto https://www.microchip.com/wwwproducts/en/KSZ8041 for more information about it. + + config EXAMPLE_ETH_PHY_KSZ8081 + bool "KSZ8081" + help + The KSZ8081 is a single supply 10Base-T/100Base-TX Physical Layer Transceiver. + Goto https://www.microchip.com/wwwproducts/en/KSZ8081 for more information about it. endchoice # EXAMPLE_ETH_PHY_MODEL config EXAMPLE_ETH_MDC_GPIO @@ -95,42 +116,60 @@ menu "Example Configuration" config EXAMPLE_ETH_SPI_SCLK_GPIO int "SPI SCLK GPIO number" - range 0 33 - default 20 + range 0 34 if IDF_TARGET_ESP32 + range 0 46 if IDF_TARGET_ESP32S2 + range 0 19 if IDF_TARGET_ESP32C3 + default 18 if IDF_TARGET_ESP32 + default 20 if IDF_TARGET_ESP32S2 + default 6 if IDF_TARGET_ESP32C3 help Set the GPIO number used by SPI SCLK. config EXAMPLE_ETH_SPI_MOSI_GPIO int "SPI MOSI GPIO number" - range 0 33 - default 19 + range 0 34 if IDF_TARGET_ESP32 + range 0 46 if IDF_TARGET_ESP32S2 + range 0 19 if IDF_TARGET_ESP32C3 + default 23 if IDF_TARGET_ESP32 + default 19 if IDF_TARGET_ESP32S2 + default 7 if IDF_TARGET_ESP32C3 help Set the GPIO number used by SPI MOSI. config EXAMPLE_ETH_SPI_MISO_GPIO int "SPI MISO GPIO number" - range 0 33 - default 18 + range 0 34 if IDF_TARGET_ESP32 + range 0 46 if IDF_TARGET_ESP32S2 + range 0 19 if IDF_TARGET_ESP32C3 + default 19 if IDF_TARGET_ESP32 + default 18 if IDF_TARGET_ESP32S2 + default 2 if IDF_TARGET_ESP32C3 help Set the GPIO number used by SPI MISO. config EXAMPLE_ETH_SPI_CS_GPIO int "SPI CS GPIO number" - range 0 33 - default 21 + range 0 34 if IDF_TARGET_ESP32 + range 0 46 if IDF_TARGET_ESP32S2 + range 0 19 if IDF_TARGET_ESP32C3 + default 16 if IDF_TARGET_ESP32 + default 21 if IDF_TARGET_ESP32S2 + default 10 if IDF_TARGET_ESP32C3 help Set the GPIO number used by SPI CS. config EXAMPLE_ETH_SPI_CLOCK_MHZ int "SPI clock speed (MHz)" range 5 80 - default 36 + default 12 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32C3 + default 36 if IDF_TARGET_ESP32S2 help Set the clock speed (MHz) of SPI interface. config EXAMPLE_ETH_SPI_INT_GPIO int "Interrupt GPIO number" - default 4 + default 17 if IDF_TARGET_ESP32 + default 4 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 help Set the GPIO number used by the SPI Ethernet module interrupt line. endif # EXAMPLE_USE_SPI_ETHERNET diff --git a/examples/ethernet/eth2ap/main/ethernet_example_main.c b/examples/ethernet/eth2ap/main/ethernet_example_main.c index ac0b36e834..f5651819f3 100644 --- a/examples/ethernet/eth2ap/main/ethernet_example_main.c +++ b/examples/ethernet/eth2ap/main/ethernet_example_main.c @@ -165,12 +165,14 @@ static void initialize_ethernet(void) esp_eth_phy_t *phy = esp_eth_phy_new_ip101(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_RTL8201 esp_eth_phy_t *phy = esp_eth_phy_new_rtl8201(&phy_config); -#elif CONFIG_EXAMPLE_ETH_PHY_LAN8720 - esp_eth_phy_t *phy = esp_eth_phy_new_lan8720(&phy_config); +#elif CONFIG_EXAMPLE_ETH_PHY_LAN87XX + esp_eth_phy_t *phy = esp_eth_phy_new_lan87xx(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_DP83848 esp_eth_phy_t *phy = esp_eth_phy_new_dp83848(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_KSZ8041 esp_eth_phy_t *phy = esp_eth_phy_new_ksz8041(&phy_config); +#elif CONFIG_EXAMPLE_ETH_PHY_KSZ8081 + esp_eth_phy_t *phy = esp_eth_phy_new_ksz8081(&phy_config); #endif #elif CONFIG_ETH_USE_SPI_ETHERNET gpio_install_isr_service(0); @@ -183,7 +185,21 @@ static void initialize_ethernet(void) .quadhd_io_num = -1, }; ESP_ERROR_CHECK(spi_bus_initialize(CONFIG_EXAMPLE_ETH_SPI_HOST, &buscfg, 1)); -#if CONFIG_EXAMPLE_USE_DM9051 + +#if CONFIG_EXAMPLE_USE_KSZ8851SNL + spi_device_interface_config_t devcfg = { + .mode = 0, + .clock_speed_hz = CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ * 1000 * 1000, + .spics_io_num = CONFIG_EXAMPLE_ETH_SPI_CS_GPIO, + .queue_size = 20 + }; + ESP_ERROR_CHECK(spi_bus_add_device(CONFIG_EXAMPLE_ETH_SPI_HOST, &devcfg, &spi_handle)); + /* KSZ8851SNL ethernet driver is based on spi driver */ + eth_ksz8851snl_config_t ksz8851snl_config = ETH_KSZ8851SNL_DEFAULT_CONFIG(spi_handle); + ksz8851snl_config.int_gpio_num = CONFIG_EXAMPLE_ETH_SPI_INT_GPIO; + esp_eth_mac_t *mac = esp_eth_mac_new_ksz8851snl(&ksz8851snl_config, &mac_config); + esp_eth_phy_t *phy = esp_eth_phy_new_ksz8851snl(&phy_config); +#elif CONFIG_EXAMPLE_USE_DM9051 spi_device_interface_config_t devcfg = { .command_bits = 1, .address_bits = 7, diff --git a/examples/ethernet/iperf/main/Kconfig.projbuild b/examples/ethernet/iperf/main/Kconfig.projbuild index 961a0e26f3..210fb3c97f 100644 --- a/examples/ethernet/iperf/main/Kconfig.projbuild +++ b/examples/ethernet/iperf/main/Kconfig.projbuild @@ -40,6 +40,14 @@ menu "Example Configuration" help Select external SPI-Ethernet module (W5500). + config EXAMPLE_USE_KSZ8851SNL + bool "KSZ8851SNL Module" + select EXAMPLE_USE_SPI_ETHERNET + select ETH_USE_SPI_ETHERNET + select ETH_SPI_ETHERNET_KSZ8851SNL + help + Select external SPI-Ethernet module (KSZ8851SNL). + config EXAMPLE_USE_ENC28J60 bool "ENC28J60 Module" select EXAMPLE_USE_SPI_ETHERNET @@ -68,11 +76,18 @@ menu "Example Configuration" 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_LAN8720 - bool "LAN8720" + 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. - Goto https://www.microchip.com/LAN8720A for more information about it. + 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" @@ -85,6 +100,12 @@ menu "Example Configuration" help The KSZ8041 is a single supply 10Base-T/100Base-TX Physical Layer Transceiver. Goto https://www.microchip.com/wwwproducts/en/KSZ8041 for more information about it. + + config EXAMPLE_ETH_PHY_KSZ8081 + bool "KSZ8081" + help + The KSZ8081 is a single supply 10Base-T/100Base-TX Physical Layer Transceiver. + Goto https://www.microchip.com/wwwproducts/en/KSZ8081 for more information about it. endchoice # EXAMPLE_ETH_PHY_MODEL config EXAMPLE_ETH_MDC_GPIO @@ -110,29 +131,45 @@ menu "Example Configuration" config EXAMPLE_ETH_SPI_SCLK_GPIO int "SPI SCLK GPIO number" - range 0 33 - default 20 + range 0 34 if IDF_TARGET_ESP32 + range 0 46 if IDF_TARGET_ESP32S2 + range 0 19 if IDF_TARGET_ESP32C3 + default 18 if IDF_TARGET_ESP32 + default 20 if IDF_TARGET_ESP32S2 + default 6 if IDF_TARGET_ESP32C3 help Set the GPIO number used by SPI SCLK. config EXAMPLE_ETH_SPI_MOSI_GPIO int "SPI MOSI GPIO number" - range 0 33 - default 19 + range 0 34 if IDF_TARGET_ESP32 + range 0 46 if IDF_TARGET_ESP32S2 + range 0 19 if IDF_TARGET_ESP32C3 + default 23 if IDF_TARGET_ESP32 + default 19 if IDF_TARGET_ESP32S2 + default 7 if IDF_TARGET_ESP32C3 help Set the GPIO number used by SPI MOSI. config EXAMPLE_ETH_SPI_MISO_GPIO int "SPI MISO GPIO number" - range 0 33 - default 18 + range 0 34 if IDF_TARGET_ESP32 + range 0 46 if IDF_TARGET_ESP32S2 + range 0 19 if IDF_TARGET_ESP32C3 + default 19 if IDF_TARGET_ESP32 + default 18 if IDF_TARGET_ESP32S2 + default 2 if IDF_TARGET_ESP32C3 help Set the GPIO number used by SPI MISO. config EXAMPLE_ETH_SPI_CS_GPIO int "SPI CS GPIO number" - range 0 33 - default 21 + range 0 34 if IDF_TARGET_ESP32 + range 0 46 if IDF_TARGET_ESP32S2 + range 0 19 if IDF_TARGET_ESP32C3 + default 16 if IDF_TARGET_ESP32 + default 21 if IDF_TARGET_ESP32S2 + default 10 if IDF_TARGET_ESP32C3 help Set the GPIO number used by SPI CS. @@ -140,13 +177,15 @@ menu "Example Configuration" int "SPI clock speed (MHz)" range 5 80 default 8 if EXAMPLE_USE_ENC28J60 - default 36 + default 12 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32C3 + default 36 if IDF_TARGET_ESP32S2 help Set the clock speed (MHz) of SPI interface. config EXAMPLE_ETH_SPI_INT_GPIO int "Interrupt GPIO number" - default 4 + default 17 if IDF_TARGET_ESP32 + default 4 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 help Set the GPIO number used by the SPI Ethernet module interrupt line. endif # EXAMPLE_USE_SPI_ETHERNET diff --git a/examples/ethernet/iperf/main/cmd_ethernet.c b/examples/ethernet/iperf/main/cmd_ethernet.c index 32ab15285d..2afe66042b 100644 --- a/examples/ethernet/iperf/main/cmd_ethernet.c +++ b/examples/ethernet/iperf/main/cmd_ethernet.c @@ -204,12 +204,14 @@ void register_ethernet(void) esp_eth_phy_t *phy = esp_eth_phy_new_ip101(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_RTL8201 esp_eth_phy_t *phy = esp_eth_phy_new_rtl8201(&phy_config); -#elif CONFIG_EXAMPLE_ETH_PHY_LAN8720 - esp_eth_phy_t *phy = esp_eth_phy_new_lan8720(&phy_config); +#elif CONFIG_EXAMPLE_ETH_PHY_LAN87XX + esp_eth_phy_t *phy = esp_eth_phy_new_lan87xx(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_DP83848 esp_eth_phy_t *phy = esp_eth_phy_new_dp83848(&phy_config); #elif CONFIG_EXAMPLE_ETH_PHY_KSZ8041 esp_eth_phy_t *phy = esp_eth_phy_new_ksz8041(&phy_config); +#elif CONFIG_EXAMPLE_ETH_PHY_KSZ8081 + esp_eth_phy_t *phy = esp_eth_phy_new_ksz8081(&phy_config); #endif #elif CONFIG_ETH_USE_SPI_ETHERNET gpio_install_isr_service(0); @@ -221,8 +223,22 @@ void register_ethernet(void) .quadwp_io_num = -1, .quadhd_io_num = -1, }; - ESP_ERROR_CHECK(spi_bus_initialize(CONFIG_EXAMPLE_ETH_SPI_HOST, &buscfg, SPI_DMA_CH_AUTO)); -#if CONFIG_EXAMPLE_USE_DM9051 + ESP_ERROR_CHECK(spi_bus_initialize(CONFIG_EXAMPLE_ETH_SPI_HOST, &buscfg, 1)); + +#if CONFIG_EXAMPLE_USE_KSZ8851SNL + spi_device_interface_config_t devcfg = { + .mode = 0, + .clock_speed_hz = CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ * 1000 * 1000, + .spics_io_num = CONFIG_EXAMPLE_ETH_SPI_CS_GPIO, + .queue_size = 20 + }; + ESP_ERROR_CHECK(spi_bus_add_device(CONFIG_EXAMPLE_ETH_SPI_HOST, &devcfg, &spi_handle)); + /* KSZ8851SNL ethernet driver is based on spi driver */ + eth_ksz8851snl_config_t ksz8851snl_config = ETH_KSZ8851SNL_DEFAULT_CONFIG(spi_handle); + ksz8851snl_config.int_gpio_num = CONFIG_EXAMPLE_ETH_SPI_INT_GPIO; + esp_eth_mac_t *mac = esp_eth_mac_new_ksz8851snl(&ksz8851snl_config, &mac_config); + esp_eth_phy_t *phy = esp_eth_phy_new_ksz8851snl(&phy_config); +#elif CONFIG_EXAMPLE_USE_DM9051 spi_device_interface_config_t devcfg = { .command_bits = 1, .address_bits = 7, diff --git a/examples/wifi/simple_sniffer/main/Kconfig.projbuild b/examples/wifi/simple_sniffer/main/Kconfig.projbuild index cb3b22301f..0137d2e33a 100644 --- a/examples/wifi/simple_sniffer/main/Kconfig.projbuild +++ b/examples/wifi/simple_sniffer/main/Kconfig.projbuild @@ -138,11 +138,18 @@ menu "Example Configuration" 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 SNIFFER_ETH_PHY_LAN8720 - bool "LAN8720" + config SNIFFER_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. - Goto https://www.microchip.com/LAN8720A for more information about it. + 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 SNIFFER_ETH_PHY_DP83848 bool "DP83848" diff --git a/examples/wifi/simple_sniffer/main/simple_sniffer_example_main.c b/examples/wifi/simple_sniffer/main/simple_sniffer_example_main.c index 0cedf724a7..54172ebe3e 100644 --- a/examples/wifi/simple_sniffer/main/simple_sniffer_example_main.c +++ b/examples/wifi/simple_sniffer/main/simple_sniffer_example_main.c @@ -142,8 +142,8 @@ static void initialize_eth(void) esp_eth_phy_t *phy = esp_eth_phy_new_ip101(&phy_config); #elif CONFIG_SNIFFER_ETH_PHY_RTL8201 esp_eth_phy_t *phy = esp_eth_phy_new_rtl8201(&phy_config); -#elif CONFIG_SNIFFER_ETH_PHY_LAN8720 - esp_eth_phy_t *phy = esp_eth_phy_new_lan8720(&phy_config); +#elif CONFIG_SNIFFER_ETH_PHY_LAN87XX + esp_eth_phy_t *phy = esp_eth_phy_new_lan87xx(&phy_config); #elif CONFIG_SNIFFER_ETH_PHY_DP83848 esp_eth_phy_t *phy = esp_eth_phy_new_dp83848(&phy_config); #elif CONFIG_SNIFFER_ETH_PHY_KSZ8041