You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2024/09/12 17:50:30 UTC

(nuttx) 03/03: arch/arm64/imx9: Configure ENET clock

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 101c2f04213a7d29530f06ea18012262c0792e3b
Author: Jouni Ukkonen <jo...@unikie.com>
AuthorDate: Wed Aug 21 12:31:41 2024 +0300

    arch/arm64/imx9: Configure ENET clock
    
    Configure ENET clock to 125MHz in clock init
    
    Signed-off-by: Jouni Ukkonen <jo...@unikie.com>
---
 arch/arm64/src/imx9/hardware/imx93/imx93_ccm.h |  2 ++
 arch/arm64/src/imx9/imx9_ccm.c                 | 20 ++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/arch/arm64/src/imx9/hardware/imx93/imx93_ccm.h b/arch/arm64/src/imx9/hardware/imx93/imx93_ccm.h
index 1768e7f12d..2432ca018b 100644
--- a/arch/arm64/src/imx9/hardware/imx93/imx93_ccm.h
+++ b/arch/arm64/src/imx9/hardware/imx93/imx93_ccm.h
@@ -730,6 +730,8 @@ static const int g_ccm_root_mux[][ROOT_MUX_MAX] =
 #define CCM_NIC_APB_CLK_ROOT         66
 #define CCM_DRAM_ALT_CLK_ROOT        76
 #define CCM_DRAM_APB_CLK_ROOT        77
+#define CCM_ENET_TIMER_CLK_ROOT      87
+#define CCM_ENET_REF_CLK_ROOT        89
 #define CCM_CLK_ROOT_NUM             95
 
 #define CCM_OSCPLL_END               19
diff --git a/arch/arm64/src/imx9/imx9_ccm.c b/arch/arm64/src/imx9/imx9_ccm.c
index 69597b46dc..cba155bb2f 100644
--- a/arch/arm64/src/imx9/imx9_ccm.c
+++ b/arch/arm64/src/imx9/imx9_ccm.c
@@ -556,5 +556,25 @@ int imx9_ccm_clock_init(void)
       return ret;
     }
 
+  /* ENET to 125MHz */
+
+  imx9_ccm_gate_on(CCM_LPCG_ENET1, false);
+
+  ret = imx9_ccm_configure_root_clock(CCM_ENET_REF_CLK_ROOT,
+                                      SYS_PLL1PFD0DIV2, 2);
+  if (ret != 0)
+    {
+      return ret;
+    }
+
+  ret = imx9_ccm_configure_root_clock(CCM_ENET_TIMER_CLK_ROOT,
+                                      SYS_PLL1PFD0DIV2, 5);
+  if (ret != 0)
+    {
+      return ret;
+    }
+
+  imx9_ccm_gate_on(CCM_LPCG_ENET1, true);
+
   return OK;
 }