From: morris Date: Tue, 4 Dec 2018 09:13:48 +0000 (+0800) Subject: ethernet: phy init timeout X-Git-Tag: v3.2-beta3~81^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a338c1b71296f1f698b54649160192c42b945b7f;p=esp-idf ethernet: phy init timeout When ethernet enable again after disable it before, phy init will report timeout. The cause of this problem is that the enabling of emac clock is too late, and should be placed before phy init. --- diff --git a/components/ethernet/emac_main.c b/components/ethernet/emac_main.c index d75cd30627..bf8c211c5d 100644 --- a/components/ethernet/emac_main.c +++ b/components/ethernet/emac_main.c @@ -809,7 +809,6 @@ static void emac_start(void *param) ESP_LOGD(TAG, "emac start"); cmd->err = EMAC_CMD_OK; - emac_enable_clk(true); if (emac_reset() != ESP_OK) { return; @@ -870,6 +869,7 @@ esp_err_t esp_eth_enable(void) esp_pm_lock_acquire(s_pm_lock); #endif //CONFIG_PM_ENABLE + emac_enable_clk(true); /* init phy device */ if (emac_config.phy_init() != ESP_OK) { ESP_LOGE(TAG, "Initialise PHY device Timeout");