From 76fefad18bb3f29d747d6f20adc722f7c8e44f84 Mon Sep 17 00:00:00 2001 From: Kenneth Ryerson Date: Mon, 20 Apr 2020 09:51:11 -0500 Subject: [PATCH] esp32/network_lan: Add support for IP101 PHY. Signed-off-by: Kenneth Ryerson --- ports/esp32/modnetwork.c | 1 + ports/esp32/modnetwork.h | 2 +- ports/esp32/network_lan.c | 8 +++++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ports/esp32/modnetwork.c b/ports/esp32/modnetwork.c index 975029121e..325b27f74b 100644 --- a/ports/esp32/modnetwork.c +++ b/ports/esp32/modnetwork.c @@ -776,6 +776,7 @@ STATIC const mp_rom_map_elem_t mp_module_network_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_PHY_LAN8720), MP_ROM_INT(PHY_LAN8720) }, { MP_ROM_QSTR(MP_QSTR_PHY_TLK110), MP_ROM_INT(PHY_TLK110) }, + { MP_ROM_QSTR(MP_QSTR_PHY_IP101), MP_ROM_INT(PHY_IP101) }, // ETH Clock modes from ESP-IDF #if !MICROPY_ESP_IDF_4 diff --git a/ports/esp32/modnetwork.h b/ports/esp32/modnetwork.h index 64d2da018c..db1b3d1300 100644 --- a/ports/esp32/modnetwork.h +++ b/ports/esp32/modnetwork.h @@ -26,7 +26,7 @@ #ifndef MICROPY_INCLUDED_ESP32_MODNETWORK_H #define MICROPY_INCLUDED_ESP32_MODNETWORK_H -enum { PHY_LAN8720, PHY_TLK110 }; +enum { PHY_LAN8720, PHY_TLK110, PHY_IP101 }; MP_DECLARE_CONST_FUN_OBJ_KW(get_lan_obj); MP_DECLARE_CONST_FUN_OBJ_1(ppp_make_new_obj); diff --git a/ports/esp32/network_lan.c b/ports/esp32/network_lan.c index 1f9a733a7a..7a4ad49e01 100644 --- a/ports/esp32/network_lan.c +++ b/ports/esp32/network_lan.c @@ -33,6 +33,7 @@ #include "eth_phy/phy.h" #include "eth_phy/phy_tlk110.h" #include "eth_phy/phy_lan8720.h" +#include "eth_phy/phy_ip101.h" #include "tcpip_adapter.h" #include "modnetwork.h" @@ -123,7 +124,9 @@ STATIC mp_obj_t get_lan(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_ar mp_raise_ValueError(MP_ERROR_TEXT("invalid phy address")); } - if (args[ARG_phy_type].u_int != PHY_LAN8720 && args[ARG_phy_type].u_int != PHY_TLK110) { + if (args[ARG_phy_type].u_int != PHY_LAN8720 && + args[ARG_phy_type].u_int != PHY_TLK110 && + args[ARG_phy_type].u_int != PHY_IP101) { mp_raise_ValueError(MP_ERROR_TEXT("invalid phy type")); } @@ -145,6 +148,9 @@ STATIC mp_obj_t get_lan(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_ar case PHY_LAN8720: config = phy_lan8720_default_ethernet_config; break; + case PHY_IP101: + config = phy_ip101_default_ethernet_config; + break; } self->link_func = config.phy_check_link;