|
|
|
@ -6,6 +6,7 @@ |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
#include <common.h> |
|
|
|
|
#include <asm/io.h> |
|
|
|
|
#include <asm/arch/clock.h> |
|
|
|
|
#include <asm/arch/imx-regs.h> |
|
|
|
|
#include <asm/arch/iomux.h> |
|
|
|
@ -119,8 +120,35 @@ static void setup_iomux_features(void) |
|
|
|
|
ARRAY_SIZE(feature_pads)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
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(0x00FFF300, &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]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int board_early_init_f(void) |
|
|
|
|
{ |
|
|
|
|
ccgr_init(); |
|
|
|
|
gpr_init(); |
|
|
|
|
|
|
|
|
|
setup_iomux_uart(); |
|
|
|
|
setup_iomux_spi(); |
|
|
|
|
setup_iomux_features(); |
|
|
|
|