diff --git a/arch/arm/cpu/arm926ejs/mx25/generic.c b/arch/arm/cpu/arm926ejs/mx25/generic.c
index 0d1ae206ab50c4059e21ae31fc5db1b70ca5e323..fc92c9bf1d9a7c93490541de3953af2cd625205f 100644
--- a/arch/arm/cpu/arm926ejs/mx25/generic.c
+++ b/arch/arm/cpu/arm926ejs/mx25/generic.c
@@ -129,9 +129,8 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
 		return imx_get_ahbclk();
 	case MXC_IPG_CLK:
 	case MXC_CSPI_CLK:
-		return imx_get_ipgclk();
 	case MXC_FEC_CLK:
-		return imx_get_ahbclk();
+		return imx_get_ipgclk();
 	default:
 		return imx_get_perclk(clk);
 	}
diff --git a/arch/arm/include/asm/arch-mx25/clock.h b/arch/arm/include/asm/arch-mx25/clock.h
index 9823f46adaf8c85dad03227848db4279b351bc86..a532da5dbeaea95138e8d1f2f07e5d562ba69f4a 100644
--- a/arch/arm/include/asm/arch-mx25/clock.h
+++ b/arch/arm/include/asm/arch-mx25/clock.h
@@ -71,7 +71,7 @@ ulong imx_get_perclk(int clk);
 ulong imx_get_ahbclk(void);
 
 #define imx_get_uartclk() imx_get_perclk(15)
-#define imx_get_fecclk() (imx_get_ahbclk()/2)
+#define imx_get_fecclk() mxc_get_clock(MXC_FEC_CLK)
 
 unsigned int mxc_get_clock(enum mxc_clock clk);