1 From b5e9dc88dbb9636129d3a600d9874477d2059716 Mon Sep 17 00:00:00 2001
2 From: Timo Ketola <timo@exertus.fi>
3 Date: Wed, 18 Apr 2012 22:55:28 +0000
4 Subject: [PATCH 28/56] i.MX25: esdhc: Add mxc_get_clock infrastructure
6 Defining CONFIG_FSL_ESDHC brings in a call to get_clocks, so let's
7 implement get_clocks function. This is how it seems to be implemented
10 Signed-off-by: Timo Ketola <timo@exertus.fi>
11 Acked-by: Stefano Babic <sbabic@denx.de>
13 arch/arm/cpu/arm926ejs/mx25/generic.c | 27 +++++++++++++++++++++++++++
14 arch/arm/include/asm/arch-mx25/clock.h | 23 +++++++++++++++++++++++
15 2 files changed, 50 insertions(+)
17 diff --git a/arch/arm/cpu/arm926ejs/mx25/generic.c b/arch/arm/cpu/arm926ejs/mx25/generic.c
18 index 9cadb7c..8b07dae 100644
19 --- a/arch/arm/cpu/arm926ejs/mx25/generic.c
20 +++ b/arch/arm/cpu/arm926ejs/mx25/generic.c
23 #include <asm/arch/imx-regs.h>
24 #include <asm/arch/imx25-pinmux.h>
25 +#include <asm/arch/clock.h>
27 #include <asm/arch/mxcmmc.h>
30 +#ifdef CONFIG_FSL_ESDHC
31 +DECLARE_GLOBAL_DATA_PTR;
35 * get the system pll clock in Hz
37 @@ -105,6 +110,20 @@ ulong imx_get_perclk(int clk)
38 return lldiv(fref, div);
41 +unsigned int mxc_get_clock(enum mxc_clock clk)
43 + if (clk >= MXC_CLK_NUM)
47 + return imx_get_armclk();
49 + return imx_get_ahbclk();
51 + return imx_get_perclk(clk);
58 @@ -182,6 +201,14 @@ int cpu_eth_init(bd_t *bis)
64 +#ifdef CONFIG_FSL_ESDHC
65 + gd->sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
71 * Initializes on-chip MMC controllers.
72 * to override, implement board_mmc_init()
73 diff --git a/arch/arm/include/asm/arch-mx25/clock.h b/arch/arm/include/asm/arch-mx25/clock.h
74 index c59f588..0f47eaf 100644
75 --- a/arch/arm/include/asm/arch-mx25/clock.h
76 +++ b/arch/arm/include/asm/arch-mx25/clock.h
78 #ifndef __ASM_ARCH_CLOCK_H
79 #define __ASM_ARCH_CLOCK_H
103 ulong imx_get_perclk(int clk);
104 ulong imx_get_ahbclk(void);
106 #define imx_get_uartclk() imx_get_perclk(15)
107 #define imx_get_fecclk() (imx_get_ahbclk()/2)
109 +unsigned int mxc_get_clock(enum mxc_clock clk);
111 #endif /* __ASM_ARCH_CLOCK_H */