diff options
Diffstat (limited to 'arch/arm/cpu/armv7/mx6/clock.c')
| -rw-r--r-- | arch/arm/cpu/armv7/mx6/clock.c | 23 | 
1 files changed, 12 insertions, 11 deletions
| diff --git a/arch/arm/cpu/armv7/mx6/clock.c b/arch/arm/cpu/armv7/mx6/clock.c index 873d9d0fd..fcc4f352c 100644 --- a/arch/arm/cpu/armv7/mx6/clock.c +++ b/arch/arm/cpu/armv7/mx6/clock.c @@ -94,7 +94,7 @@ static u32 decode_pll(enum pll_clocks pll, u32 infreq)  		div = __raw_readl(&imx_ccm->analog_pll_enet);  		div &= BM_ANADIG_PLL_ENET_DIV_SELECT; -		return (div == 3 ? 125000000 : 25000000 * (div << 1)); +		return 25000000 * (div + (div >> 1) + 1);  	default:  		return 0;  	} @@ -310,7 +310,18 @@ static u32 get_mmdc_ch0_clk(void)  	return freq / (podf + 1);  } +#else +static u32 get_mmdc_ch0_clk(void) +{ +	u32 cbcdr = __raw_readl(&imx_ccm->cbcdr); +	u32 mmdc_ch0_podf = (cbcdr & MXC_CCM_CBCDR_MMDC_CH0_PODF_MASK) >> +				MXC_CCM_CBCDR_MMDC_CH0_PODF_OFFSET; + +	return get_periph_clk() / (mmdc_ch0_podf + 1); +} +#endif +#ifdef CONFIG_FEC_MXC  int enable_fec_anatop_clock(void)  {  	u32 reg = 0; @@ -339,16 +350,6 @@ int enable_fec_anatop_clock(void)  	return 0;  } - -#else -static u32 get_mmdc_ch0_clk(void) -{ -	u32 cbcdr = __raw_readl(&imx_ccm->cbcdr); -	u32 mmdc_ch0_podf = (cbcdr & MXC_CCM_CBCDR_MMDC_CH0_PODF_MASK) >> -				MXC_CCM_CBCDR_MMDC_CH0_PODF_OFFSET; - -	return get_periph_clk() / (mmdc_ch0_podf + 1); -}  #endif  static u32 get_usdhc_clk(u32 port) |