projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
imx: woodburn: Convert to iomux-v3
[oweals/u-boot.git]
/
arch
/
arm
/
cpu
/
arm1136
/
mx31
/
generic.c
diff --git
a/arch/arm/cpu/arm1136/mx31/generic.c
b/arch/arm/cpu/arm1136/mx31/generic.c
index f45828141e6013ecdcc67de2382ebb54716dcd0d..b9f9b43fa664adae1ee4982e7cc3230c05739ef8 100644
(file)
--- a/
arch/arm/cpu/arm1136/mx31/generic.c
+++ b/
arch/arm/cpu/arm1136/mx31/generic.c
@@
-22,6
+22,7
@@
*/
#include <common.h>
*/
#include <common.h>
+#include <div64.h>
#include <asm/arch/imx-regs.h>
#include <asm/arch/clock.h>
#include <asm/io.h>
#include <asm/arch/imx-regs.h>
#include <asm/arch/clock.h>
#include <asm/io.h>
@@
-30,16
+31,17
@@
static u32 mx31_decode_pll(u32 reg, u32 infreq)
{
u32 mfi = GET_PLL_MFI(reg);
static u32 mx31_decode_pll(u32 reg, u32 infreq)
{
u32 mfi = GET_PLL_MFI(reg);
-
u
32 mfn = GET_PLL_MFN(reg);
+
s
32 mfn = GET_PLL_MFN(reg);
u32 mfd = GET_PLL_MFD(reg);
u32 pd = GET_PLL_PD(reg);
mfi = mfi <= 5 ? 5 : mfi;
u32 mfd = GET_PLL_MFD(reg);
u32 pd = GET_PLL_PD(reg);
mfi = mfi <= 5 ? 5 : mfi;
+ mfn = mfn >= 512 ? mfn - 1024 : mfn;
mfd += 1;
pd += 1;
mfd += 1;
pd += 1;
- return
((2 * (infreq >> 10) * (mfi * mfd + mfn)) /
-
(mfd * pd)) << 10
;
+ return
lldiv(2 * (u64)infreq * (mfi * mfd + mfn),
+
mfd * pd)
;
}
static u32 mx31_get_mpl_dpdgck_clk(void)
}
static u32 mx31_get_mpl_dpdgck_clk(void)
@@
-47,9
+49,9
@@
static u32 mx31_get_mpl_dpdgck_clk(void)
u32 infreq;
if ((readl(CCM_CCMR) & CCMR_PRCS_MASK) == CCMR_FPM)
u32 infreq;
if ((readl(CCM_CCMR) & CCMR_PRCS_MASK) == CCMR_FPM)
- infreq =
CONFIG_MX31
_CLK32 * 1024;
+ infreq =
MXC
_CLK32 * 1024;
else
else
- infreq =
CONFIG_MX31_HCLK_FREQ
;
+ infreq =
MXC_HCLK
;
return mx31_decode_pll(readl(CCM_MPCTL), infreq);
}
return mx31_decode_pll(readl(CCM_MPCTL), infreq);
}
@@
-101,6
+103,8
@@
unsigned int mxc_get_clock(enum mxc_clock clk)
case MXC_IPG_PERCLK:
case MXC_CSPI_CLK:
case MXC_UART_CLK:
case MXC_IPG_PERCLK:
case MXC_CSPI_CLK:
case MXC_UART_CLK:
+ case MXC_ESDHC_CLK:
+ case MXC_I2C_CLK:
return mx31_get_ipg_clk();
case MXC_IPU_CLK:
return mx31_get_hsp_clk();
return mx31_get_ipg_clk();
case MXC_IPU_CLK:
return mx31_get_hsp_clk();
@@
-209,6
+213,8
@@
static char *get_reset_cause(void)
return "WDOG";
case 0x0006:
return "JTAG";
return "WDOG";
case 0x0006:
return "JTAG";
+ case 0x0007:
+ return "ARM11P power gating";
default:
return "unknown reset";
}
default:
return "unknown reset";
}