|
@@ -17,6 +17,7 @@
|
|
#include <asm/imx-common/boot_mode.h>
|
|
#include <asm/imx-common/boot_mode.h>
|
|
#include <asm/imx-common/iomux-v3.h>
|
|
#include <asm/imx-common/iomux-v3.h>
|
|
#include <asm/imx-common/mxc_i2c.h>
|
|
#include <asm/imx-common/mxc_i2c.h>
|
|
|
|
+#include <asm/arch/crm_regs.h>
|
|
#include <i2c.h>
|
|
#include <i2c.h>
|
|
#include <mmc.h>
|
|
#include <mmc.h>
|
|
#include <fsl_esdhc.h>
|
|
#include <fsl_esdhc.h>
|
|
@@ -533,6 +534,30 @@ static struct mx6_ddr3_cfg elpida_4gib_1600 = {
|
|
.trasmin = 3590,
|
|
.trasmin = 3590,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+static void ccgr_init(void)
|
|
|
|
+{
|
|
|
|
+ struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
|
|
|
|
+
|
|
|
|
+ writel(0x00C03F3F, &ccm->CCGR0);
|
|
|
|
+ writel(0x0030FC03, &ccm->CCGR1);
|
|
|
|
+ writel(0x0FFFC000, &ccm->CCGR2);
|
|
|
|
+ writel(0x3FF00000, &ccm->CCGR3);
|
|
|
|
+ writel(0xFFFFF300, &ccm->CCGR4);
|
|
|
|
+ writel(0x0F0000C3, &ccm->CCGR5);
|
|
|
|
+ writel(0x000003FF, &ccm->CCGR6);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static void gpr_init(void)
|
|
|
|
+{
|
|
|
|
+ struct iomuxc *iomux = (struct iomuxc *)IOMUXC_BASE_ADDR;
|
|
|
|
+
|
|
|
|
+ /* enable AXI cache for VDOA/VPU/IPU */
|
|
|
|
+ writel(0xF00000CF, &iomux->gpr[4]);
|
|
|
|
+ /* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */
|
|
|
|
+ writel(0x007F007F, &iomux->gpr[6]);
|
|
|
|
+ writel(0x007F007F, &iomux->gpr[7]);
|
|
|
|
+}
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* called from C runtime startup code (arch/arm/lib/crt0.S:_main)
|
|
* called from C runtime startup code (arch/arm/lib/crt0.S:_main)
|
|
* - we have a stack and a place to store GD, both in SRAM
|
|
* - we have a stack and a place to store GD, both in SRAM
|
|
@@ -543,6 +568,9 @@ void board_init_f(ulong dummy)
|
|
/* setup AIPS and disable watchdog */
|
|
/* setup AIPS and disable watchdog */
|
|
arch_cpu_init();
|
|
arch_cpu_init();
|
|
|
|
|
|
|
|
+ ccgr_init();
|
|
|
|
+ gpr_init();
|
|
|
|
+
|
|
/* setup GP timer */
|
|
/* setup GP timer */
|
|
timer_init();
|
|
timer_init();
|
|
|
|
|