]> granicus.if.org Git - esp-idf/commitdiff
ethernet: phy init timeout
authormorris <maoshengrong@espressif.com>
Tue, 4 Dec 2018 09:13:48 +0000 (17:13 +0800)
committermorris <maoshengrong@espressif.com>
Wed, 5 Dec 2018 08:32:24 +0000 (16:32 +0800)
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.

components/ethernet/emac_main.c

index d75cd306279df53733b8563b515bedd4e83f85fa..bf8c211c5d020c03e49c6a6925fb8e3380b811e0 100644 (file)
@@ -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");