소스 검색

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.
morris 7 년 전
부모
커밋
dc043109d7
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      components/ethernet/emac_main.c

+ 1 - 1
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");