diff options
| author | Sricharan <r.sricharan@ti.com> | 2011-11-15 09:50:03 -0500 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2011-11-15 22:25:50 +0100 | 
| commit | 78f455c055ddf55a1a2dd6ae5e2d060ed2e5bd0e (patch) | |
| tree | c124c8e56d72e9e46f70516fa9dd3dabdac22d9a /arch/arm/cpu/armv7/omap4/clocks.c | |
| parent | bb772a594493092adfb18a56889e0bce855eed99 (diff) | |
| download | olio-uboot-2014.01-78f455c055ddf55a1a2dd6ae5e2d060ed2e5bd0e.tar.xz olio-uboot-2014.01-78f455c055ddf55a1a2dd6ae5e2d060ed2e5bd0e.zip | |
omap4/5: Add support for booting with CH.
Configuration header(CH) is 512 byte header attached to an OMAP
boot image that will help ROM code to initialize clocks, SDRAM
etc and copy U-Boot directly into SDRAM. CH can help us in
by-passing SPL and directly boot U-boot, hence it's an alternative
for SPL. However, we intend to support both CH and SPL for OMAP4/5.
Initialization done through CH is limited and is not equivalent
to that done by SPL. So U-Boot has to distinguish between the
two cases and handle them accordingly. This patch takes care
of doing this.
Signed-off-by: sricharan <r.sricharan@ti.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
Diffstat (limited to 'arch/arm/cpu/armv7/omap4/clocks.c')
| -rw-r--r-- | arch/arm/cpu/armv7/omap4/clocks.c | 44 | 
1 files changed, 32 insertions, 12 deletions
| diff --git a/arch/arm/cpu/armv7/omap4/clocks.c b/arch/arm/cpu/armv7/omap4/clocks.c index a1098d403..0886f9243 100644 --- a/arch/arm/cpu/armv7/omap4/clocks.c +++ b/arch/arm/cpu/armv7/omap4/clocks.c @@ -333,30 +333,23 @@ void enable_basic_clocks(void)  	};  	u32 *const clk_modules_hw_auto_essential[] = { +		&prcm->cm_memif_emif_1_clkctrl, +		&prcm->cm_memif_emif_2_clkctrl, +		&prcm->cm_l4cfg_l4_cfg_clkctrl,  		&prcm->cm_wkup_gpio1_clkctrl,  		&prcm->cm_l4per_gpio2_clkctrl,  		&prcm->cm_l4per_gpio3_clkctrl,  		&prcm->cm_l4per_gpio4_clkctrl,  		&prcm->cm_l4per_gpio5_clkctrl,  		&prcm->cm_l4per_gpio6_clkctrl, -		&prcm->cm_memif_emif_1_clkctrl, -		&prcm->cm_memif_emif_2_clkctrl, -		&prcm->cm_l3init_hsusbotg_clkctrl, -		&prcm->cm_l3init_usbphy_clkctrl, -		&prcm->cm_l4cfg_l4_cfg_clkctrl,  		0  	};  	u32 *const clk_modules_explicit_en_essential[] = { -		&prcm->cm_l4per_gptimer2_clkctrl, +		&prcm->cm_wkup_gptimer1_clkctrl,  		&prcm->cm_l3init_hsmmc1_clkctrl,  		&prcm->cm_l3init_hsmmc2_clkctrl, -		&prcm->cm_l4per_mcspi1_clkctrl, -		&prcm->cm_wkup_gptimer1_clkctrl, -		&prcm->cm_l4per_i2c1_clkctrl, -		&prcm->cm_l4per_i2c2_clkctrl, -		&prcm->cm_l4per_i2c3_clkctrl, -		&prcm->cm_l4per_i2c4_clkctrl, +		&prcm->cm_l4per_gptimer2_clkctrl,  		&prcm->cm_wkup_wdtimer2_clkctrl,  		&prcm->cm_l4per_uart3_clkctrl,  		0 @@ -386,6 +379,33 @@ void enable_basic_clocks(void)  			 1);  } +void enable_basic_uboot_clocks(void) +{ +	u32 *const clk_domains_essential[] = { +		0 +	}; + +	u32 *const clk_modules_hw_auto_essential[] = { +		&prcm->cm_l3init_hsusbotg_clkctrl, +		&prcm->cm_l3init_usbphy_clkctrl, +		0 +	}; + +	u32 *const clk_modules_explicit_en_essential[] = { +		&prcm->cm_l4per_mcspi1_clkctrl, +		&prcm->cm_l4per_i2c1_clkctrl, +		&prcm->cm_l4per_i2c2_clkctrl, +		&prcm->cm_l4per_i2c3_clkctrl, +		&prcm->cm_l4per_i2c4_clkctrl, +		0 +	}; + +	do_enable_clocks(clk_domains_essential, +			 clk_modules_hw_auto_essential, +			 clk_modules_explicit_en_essential, +			 1); +} +  /*   * Enable non-essential clock domains, modules and   * do some additional special settings needed |