Skip to content

Commit 48437ce

Browse files
eydam-prototypingdpgeorge
authored andcommitted
esp32/network_lan: Add Ethernet support for IDF v4.1 and above.
Ethernet-PHYs from ESP-IDF (LAN8720, IP101, RTL8201, DP83848) are now supported in IDF v4.1 and above. PHY_KSZ8041 is only for ESP-IDF 4.3 and above. ESP32S2 is not supported. Signed-off-by: Tobias Eydam <[email protected]>
1 parent 8107c9b commit 48437ce

File tree

3 files changed

+177
-94
lines changed

3 files changed

+177
-94
lines changed

ports/esp32/modnetwork.c

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -666,13 +666,6 @@ STATIC mp_obj_t esp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs
666666
case WIFI_IF_STA:
667667
ESP_EXCEPTIONS(esp_wifi_get_mac(self->if_id, mac));
668668
return mp_obj_new_bytes(mac, sizeof(mac));
669-
670-
#if !MICROPY_ESP_IDF_4
671-
case ESP_IF_ETH:
672-
esp_eth_get_mac(mac);
673-
return mp_obj_new_bytes(mac, sizeof(mac));
674-
#endif
675-
676669
default:
677670
goto unknown;
678671
}
@@ -753,12 +746,12 @@ STATIC mp_obj_t esp_phy_mode(size_t n_args, const mp_obj_t *args) {
753746
}
754747
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(esp_phy_mode_obj, 0, 1, esp_phy_mode);
755748

756-
757749
STATIC const mp_rom_map_elem_t mp_module_network_globals_table[] = {
758750
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_network) },
759751
{ MP_ROM_QSTR(MP_QSTR___init__), MP_ROM_PTR(&esp_initialize_obj) },
760752
{ MP_ROM_QSTR(MP_QSTR_WLAN), MP_ROM_PTR(&get_wlan_obj) },
761-
#if !MICROPY_ESP_IDF_4
753+
754+
#if (ESP_IDF_VERSION_MAJOR == 4) && (ESP_IDF_VERSION_MINOR >= 1) && (CONFIG_IDF_TARGET_ESP32)
762755
{ MP_ROM_QSTR(MP_QSTR_LAN), MP_ROM_PTR(&get_lan_obj) },
763756
#endif
764757
{ MP_ROM_QSTR(MP_QSTR_PPP), MP_ROM_PTR(&ppp_make_new_obj) },
@@ -784,18 +777,22 @@ STATIC const mp_rom_map_elem_t mp_module_network_globals_table[] = {
784777
#endif
785778
{ MP_ROM_QSTR(MP_QSTR_AUTH_MAX), MP_ROM_INT(WIFI_AUTH_MAX) },
786779

780+
#if (ESP_IDF_VERSION_MAJOR == 4) && (ESP_IDF_VERSION_MINOR >= 1) && (CONFIG_IDF_TARGET_ESP32)
787781
{ MP_ROM_QSTR(MP_QSTR_PHY_LAN8720), MP_ROM_INT(PHY_LAN8720) },
788-
{ MP_ROM_QSTR(MP_QSTR_PHY_TLK110), MP_ROM_INT(PHY_TLK110) },
789782
{ MP_ROM_QSTR(MP_QSTR_PHY_IP101), MP_ROM_INT(PHY_IP101) },
783+
{ MP_ROM_QSTR(MP_QSTR_PHY_RTL8201), MP_ROM_INT(PHY_RTL8201) },
784+
{ MP_ROM_QSTR(MP_QSTR_PHY_DP83848), MP_ROM_INT(PHY_DP83848) },
785+
#if ESP_IDF_VERSION_MINOR >= 3
786+
// PHY_KSZ8041 is new in ESP-IDF v4.3
787+
{ MP_ROM_QSTR(MP_QSTR_PHY_KSZ8041), MP_ROM_INT(PHY_KSZ8041) },
788+
#endif
790789

791-
// ETH Clock modes from ESP-IDF
792-
#if !MICROPY_ESP_IDF_4
793-
{ MP_ROM_QSTR(MP_QSTR_ETH_CLOCK_GPIO0_IN), MP_ROM_INT(ETH_CLOCK_GPIO0_IN) },
794-
// Disabled at Aug 22nd 2018, reenabled Jan 28th 2019 in ESP-IDF
795-
// Because we use older SDK, it's currently disabled
796-
// { MP_ROM_QSTR(MP_QSTR_ETH_CLOCK_GPIO0_OUT), MP_ROM_INT(ETH_CLOCK_GPIO0_OUT) },
797-
{ MP_ROM_QSTR(MP_QSTR_ETH_CLOCK_GPIO16_OUT), MP_ROM_INT(ETH_CLOCK_GPIO16_OUT) },
798-
{ MP_ROM_QSTR(MP_QSTR_ETH_CLOCK_GPIO17_OUT), MP_ROM_INT(ETH_CLOCK_GPIO17_OUT) },
790+
{ MP_ROM_QSTR(MP_QSTR_ETH_INITIALIZED), MP_ROM_INT(ETH_INITIALIZED)},
791+
{ MP_ROM_QSTR(MP_QSTR_ETH_STARTED), MP_ROM_INT(ETH_STARTED)},
792+
{ MP_ROM_QSTR(MP_QSTR_ETH_STOPPED), MP_ROM_INT(ETH_STOPPED)},
793+
{ MP_ROM_QSTR(MP_QSTR_ETH_CONNECTED), MP_ROM_INT(ETH_CONNECTED)},
794+
{ MP_ROM_QSTR(MP_QSTR_ETH_DISCONNECTED), MP_ROM_INT(ETH_DISCONNECTED)},
795+
{ MP_ROM_QSTR(MP_QSTR_ETH_GOT_IP), MP_ROM_INT(ETH_GOT_IP)},
799796
#endif
800797

801798
{ MP_ROM_QSTR(MP_QSTR_STAT_IDLE), MP_ROM_INT(STAT_IDLE)},

ports/esp32/modnetwork.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
#ifndef MICROPY_INCLUDED_ESP32_MODNETWORK_H
2727
#define MICROPY_INCLUDED_ESP32_MODNETWORK_H
2828

29-
enum { PHY_LAN8720, PHY_TLK110, PHY_IP101 };
29+
enum { PHY_LAN8720, PHY_IP101, PHY_RTL8201, PHY_DP83848, PHY_KSZ8041 };
30+
enum { ETH_INITIALIZED, ETH_STARTED, ETH_STOPPED, ETH_CONNECTED, ETH_DISCONNECTED, ETH_GOT_IP };
3031

3132
MP_DECLARE_CONST_FUN_OBJ_KW(get_lan_obj);
3233
MP_DECLARE_CONST_FUN_OBJ_1(ppp_make_new_obj);

0 commit comments

Comments
 (0)