i.MX25: esdhc: Add mxc_get_clock infrastructure
Defining CONFIG_FSL_ESDHC brings in a call to get_clocks, so let's implement get_clocks function. This is how it seems to be implemented elsewhere. Signed-off-by: Timo Ketola <timo@exertus.fi> Acked-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
parent
3996a96c5e
commit
42d25327f5
@ -28,10 +28,15 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/imx25-pinmux.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#ifdef CONFIG_MXC_MMC
|
||||
#include <asm/arch/mxcmmc.h>
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* get the system pll clock in Hz
|
||||
*
|
||||
@ -105,6 +110,20 @@ ulong imx_get_perclk(int clk)
|
||||
return lldiv(fref, div);
|
||||
}
|
||||
|
||||
unsigned int mxc_get_clock(enum mxc_clock clk)
|
||||
{
|
||||
if (clk >= MXC_CLK_NUM)
|
||||
return -1;
|
||||
switch (clk) {
|
||||
case MXC_ARM_CLK:
|
||||
return imx_get_armclk();
|
||||
case MXC_FEC_CLK:
|
||||
return imx_get_ahbclk();
|
||||
default:
|
||||
return imx_get_perclk(clk);
|
||||
}
|
||||
}
|
||||
|
||||
u32 get_cpu_rev(void)
|
||||
{
|
||||
u32 srev;
|
||||
@ -182,6 +201,14 @@ int cpu_eth_init(bd_t *bis)
|
||||
#endif
|
||||
}
|
||||
|
||||
int get_clocks(void)
|
||||
{
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
gd->sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initializes on-chip MMC controllers.
|
||||
* to override, implement board_mmc_init()
|
||||
|
@ -26,11 +26,34 @@
|
||||
#ifndef __ASM_ARCH_CLOCK_H
|
||||
#define __ASM_ARCH_CLOCK_H
|
||||
|
||||
enum mxc_clock {
|
||||
MXC_CSI_CLK,
|
||||
MXC_EPIT_CLK,
|
||||
MXC_ESAI_CLK,
|
||||
MXC_ESDHC1_CLK,
|
||||
MXC_ESDHC2_CLK,
|
||||
MXC_GPT_CLK,
|
||||
MXC_I2C_CLK,
|
||||
MXC_LCDC_CLK,
|
||||
MXC_NFC_CLK,
|
||||
MXC_OWIRE_CLK,
|
||||
MXC_PWM_CLK,
|
||||
MXC_SIM1_CLK,
|
||||
MXC_SIM2_CLK,
|
||||
MXC_SSI1_CLK,
|
||||
MXC_SSI2_CLK,
|
||||
MXC_UART_CLK,
|
||||
MXC_ARM_CLK,
|
||||
MXC_FEC_CLK,
|
||||
MXC_CLK_NUM
|
||||
};
|
||||
|
||||
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)
|
||||
|
||||
unsigned int mxc_get_clock(enum mxc_clock clk);
|
||||
|
||||
#endif /* __ASM_ARCH_CLOCK_H */
|
||||
|
Loading…
Reference in New Issue
Block a user