diff options
Diffstat (limited to 'arch/arm/cpu/armv7/omap4/clocks.c')
| -rw-r--r-- | arch/arm/cpu/armv7/omap4/clocks.c | 199 | 
1 files changed, 99 insertions, 100 deletions
| diff --git a/arch/arm/cpu/armv7/omap4/clocks.c b/arch/arm/cpu/armv7/omap4/clocks.c index 12c58033d..9acceb0d4 100644 --- a/arch/arm/cpu/armv7/omap4/clocks.c +++ b/arch/arm/cpu/armv7/omap4/clocks.c @@ -46,8 +46,6 @@  #define puts(s)  #endif /* !CONFIG_SPL_BUILD */ -struct omap4_prcm_regs *const prcm = (struct omap4_prcm_regs *)0x4A004100; -  const u32 sys_clk_array[8] = {  	12000000,	       /* 12 MHz */  	13000000,	       /* 13 MHz */ @@ -176,7 +174,7 @@ static const struct dpll_params usb_dpll_params_1920mhz[NUM_SYS_CLKS] = {  	{25, 0, 2, -1, -1, -1, -1, -1}		/* 38.4 MHz */  }; -void setup_post_dividers(u32 *const base, const struct dpll_params *params) +void setup_post_dividers(u32 const base, const struct dpll_params *params)  {  	struct dpll_regs *const dpll_regs = (struct dpll_regs *)base; @@ -345,54 +343,54 @@ u32 get_offset_code(u32 offset)   */  void enable_basic_clocks(void)  { -	u32 *const clk_domains_essential[] = { -		&prcm->cm_l4per_clkstctrl, -		&prcm->cm_l3init_clkstctrl, -		&prcm->cm_memif_clkstctrl, -		&prcm->cm_l4cfg_clkstctrl, +	u32 const clk_domains_essential[] = { +		(*prcm)->cm_l4per_clkstctrl, +		(*prcm)->cm_l3init_clkstctrl, +		(*prcm)->cm_memif_clkstctrl, +		(*prcm)->cm_l4cfg_clkstctrl,  		0  	}; -	u32 *const clk_modules_hw_auto_essential[] = { -		&prcm->cm_l3_2_gpmc_clkctrl, -		&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, +	u32 const clk_modules_hw_auto_essential[] = { +		(*prcm)->cm_l3_2_gpmc_clkctrl, +		(*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,  		0  	}; -	u32 *const clk_modules_explicit_en_essential[] = { -		&prcm->cm_wkup_gptimer1_clkctrl, -		&prcm->cm_l3init_hsmmc1_clkctrl, -		&prcm->cm_l3init_hsmmc2_clkctrl, -		&prcm->cm_l4per_gptimer2_clkctrl, -		&prcm->cm_wkup_wdtimer2_clkctrl, -		&prcm->cm_l4per_uart3_clkctrl, +	u32 const clk_modules_explicit_en_essential[] = { +		(*prcm)->cm_wkup_gptimer1_clkctrl, +		(*prcm)->cm_l3init_hsmmc1_clkctrl, +		(*prcm)->cm_l3init_hsmmc2_clkctrl, +		(*prcm)->cm_l4per_gptimer2_clkctrl, +		(*prcm)->cm_wkup_wdtimer2_clkctrl, +		(*prcm)->cm_l4per_uart3_clkctrl,  		0  	};  	/* Enable optional additional functional clock for GPIO4 */ -	setbits_le32(&prcm->cm_l4per_gpio4_clkctrl, +	setbits_le32((*prcm)->cm_l4per_gpio4_clkctrl,  			GPIO4_CLKCTRL_OPTFCLKEN_MASK);  	/* Enable 96 MHz clock for MMC1 & MMC2 */ -	setbits_le32(&prcm->cm_l3init_hsmmc1_clkctrl, +	setbits_le32((*prcm)->cm_l3init_hsmmc1_clkctrl,  			HSMMC_CLKCTRL_CLKSEL_MASK); -	setbits_le32(&prcm->cm_l3init_hsmmc2_clkctrl, +	setbits_le32((*prcm)->cm_l3init_hsmmc2_clkctrl,  			HSMMC_CLKCTRL_CLKSEL_MASK);  	/* Select 32KHz clock as the source of GPTIMER1 */ -	setbits_le32(&prcm->cm_wkup_gptimer1_clkctrl, +	setbits_le32((*prcm)->cm_wkup_gptimer1_clkctrl,  			GPTIMER1_CLKCTRL_CLKSEL_MASK);  	/* Enable optional 48M functional clock for USB  PHY */ -	setbits_le32(&prcm->cm_l3init_usbphy_clkctrl, +	setbits_le32((*prcm)->cm_l3init_usbphy_clkctrl,  			USBPHY_CLKCTRL_OPTFCLKEN_PHY_48M_MASK);  	do_enable_clocks(clk_domains_essential, @@ -403,26 +401,26 @@ void enable_basic_clocks(void)  void enable_basic_uboot_clocks(void)  { -	u32 *const clk_domains_essential[] = { +	u32 const clk_domains_essential[] = {  		0  	}; -	u32 *const clk_modules_hw_auto_essential[] = { -		&prcm->cm_l3init_hsusbotg_clkctrl, -		&prcm->cm_l3init_usbphy_clkctrl, -		&prcm->cm_l3init_usbphy_clkctrl, -		&prcm->cm_clksel_usb_60mhz, -		&prcm->cm_l3init_hsusbtll_clkctrl, +	u32 const clk_modules_hw_auto_essential[] = { +		(*prcm)->cm_l3init_hsusbotg_clkctrl, +		(*prcm)->cm_l3init_usbphy_clkctrl, +		(*prcm)->cm_l3init_usbphy_clkctrl, +		(*prcm)->cm_clksel_usb_60mhz, +		(*prcm)->cm_l3init_hsusbtll_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, -		&prcm->cm_l3init_hsusbhost_clkctrl, +	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, +		(*prcm)->cm_l3init_hsusbhost_clkctrl,  		0  	}; @@ -438,72 +436,72 @@ void enable_basic_uboot_clocks(void)   */  void enable_non_essential_clocks(void)  { -	u32 *const clk_domains_non_essential[] = { -		&prcm->cm_mpu_m3_clkstctrl, -		&prcm->cm_ivahd_clkstctrl, -		&prcm->cm_dsp_clkstctrl, -		&prcm->cm_dss_clkstctrl, -		&prcm->cm_sgx_clkstctrl, -		&prcm->cm1_abe_clkstctrl, -		&prcm->cm_c2c_clkstctrl, -		&prcm->cm_cam_clkstctrl, -		&prcm->cm_dss_clkstctrl, -		&prcm->cm_sdma_clkstctrl, +	u32 const clk_domains_non_essential[] = { +		(*prcm)->cm_mpu_m3_clkstctrl, +		(*prcm)->cm_ivahd_clkstctrl, +		(*prcm)->cm_dsp_clkstctrl, +		(*prcm)->cm_dss_clkstctrl, +		(*prcm)->cm_sgx_clkstctrl, +		(*prcm)->cm1_abe_clkstctrl, +		(*prcm)->cm_c2c_clkstctrl, +		(*prcm)->cm_cam_clkstctrl, +		(*prcm)->cm_dss_clkstctrl, +		(*prcm)->cm_sdma_clkstctrl,  		0  	}; -	u32 *const clk_modules_hw_auto_non_essential[] = { -		&prcm->cm_l3instr_l3_3_clkctrl, -		&prcm->cm_l3instr_l3_instr_clkctrl, -		&prcm->cm_l3instr_intrconn_wp1_clkctrl, -		&prcm->cm_l3init_hsi_clkctrl, +	u32 const clk_modules_hw_auto_non_essential[] = { +		(*prcm)->cm_l3instr_l3_3_clkctrl, +		(*prcm)->cm_l3instr_l3_instr_clkctrl, +		(*prcm)->cm_l3instr_intrconn_wp1_clkctrl, +		(*prcm)->cm_l3init_hsi_clkctrl,  		0  	}; -	u32 *const clk_modules_explicit_en_non_essential[] = { -		&prcm->cm1_abe_aess_clkctrl, -		&prcm->cm1_abe_pdm_clkctrl, -		&prcm->cm1_abe_dmic_clkctrl, -		&prcm->cm1_abe_mcasp_clkctrl, -		&prcm->cm1_abe_mcbsp1_clkctrl, -		&prcm->cm1_abe_mcbsp2_clkctrl, -		&prcm->cm1_abe_mcbsp3_clkctrl, -		&prcm->cm1_abe_slimbus_clkctrl, -		&prcm->cm1_abe_timer5_clkctrl, -		&prcm->cm1_abe_timer6_clkctrl, -		&prcm->cm1_abe_timer7_clkctrl, -		&prcm->cm1_abe_timer8_clkctrl, -		&prcm->cm1_abe_wdt3_clkctrl, -		&prcm->cm_l4per_gptimer9_clkctrl, -		&prcm->cm_l4per_gptimer10_clkctrl, -		&prcm->cm_l4per_gptimer11_clkctrl, -		&prcm->cm_l4per_gptimer3_clkctrl, -		&prcm->cm_l4per_gptimer4_clkctrl, -		&prcm->cm_l4per_hdq1w_clkctrl, -		&prcm->cm_l4per_mcbsp4_clkctrl, -		&prcm->cm_l4per_mcspi2_clkctrl, -		&prcm->cm_l4per_mcspi3_clkctrl, -		&prcm->cm_l4per_mcspi4_clkctrl, -		&prcm->cm_l4per_mmcsd3_clkctrl, -		&prcm->cm_l4per_mmcsd4_clkctrl, -		&prcm->cm_l4per_mmcsd5_clkctrl, -		&prcm->cm_l4per_uart1_clkctrl, -		&prcm->cm_l4per_uart2_clkctrl, -		&prcm->cm_l4per_uart4_clkctrl, -		&prcm->cm_wkup_keyboard_clkctrl, -		&prcm->cm_wkup_wdtimer2_clkctrl, -		&prcm->cm_cam_iss_clkctrl, -		&prcm->cm_cam_fdif_clkctrl, -		&prcm->cm_dss_dss_clkctrl, -		&prcm->cm_sgx_sgx_clkctrl, +	u32 const clk_modules_explicit_en_non_essential[] = { +		(*prcm)->cm1_abe_aess_clkctrl, +		(*prcm)->cm1_abe_pdm_clkctrl, +		(*prcm)->cm1_abe_dmic_clkctrl, +		(*prcm)->cm1_abe_mcasp_clkctrl, +		(*prcm)->cm1_abe_mcbsp1_clkctrl, +		(*prcm)->cm1_abe_mcbsp2_clkctrl, +		(*prcm)->cm1_abe_mcbsp3_clkctrl, +		(*prcm)->cm1_abe_slimbus_clkctrl, +		(*prcm)->cm1_abe_timer5_clkctrl, +		(*prcm)->cm1_abe_timer6_clkctrl, +		(*prcm)->cm1_abe_timer7_clkctrl, +		(*prcm)->cm1_abe_timer8_clkctrl, +		(*prcm)->cm1_abe_wdt3_clkctrl, +		(*prcm)->cm_l4per_gptimer9_clkctrl, +		(*prcm)->cm_l4per_gptimer10_clkctrl, +		(*prcm)->cm_l4per_gptimer11_clkctrl, +		(*prcm)->cm_l4per_gptimer3_clkctrl, +		(*prcm)->cm_l4per_gptimer4_clkctrl, +		(*prcm)->cm_l4per_hdq1w_clkctrl, +		(*prcm)->cm_l4per_mcbsp4_clkctrl, +		(*prcm)->cm_l4per_mcspi2_clkctrl, +		(*prcm)->cm_l4per_mcspi3_clkctrl, +		(*prcm)->cm_l4per_mcspi4_clkctrl, +		(*prcm)->cm_l4per_mmcsd3_clkctrl, +		(*prcm)->cm_l4per_mmcsd4_clkctrl, +		(*prcm)->cm_l4per_mmcsd5_clkctrl, +		(*prcm)->cm_l4per_uart1_clkctrl, +		(*prcm)->cm_l4per_uart2_clkctrl, +		(*prcm)->cm_l4per_uart4_clkctrl, +		(*prcm)->cm_wkup_keyboard_clkctrl, +		(*prcm)->cm_wkup_wdtimer2_clkctrl, +		(*prcm)->cm_cam_iss_clkctrl, +		(*prcm)->cm_cam_fdif_clkctrl, +		(*prcm)->cm_dss_dss_clkctrl, +		(*prcm)->cm_sgx_sgx_clkctrl,  		0  	};  	/* Enable optional functional clock for ISS */ -	setbits_le32(&prcm->cm_cam_iss_clkctrl, ISS_CLKCTRL_OPTFCLKEN_MASK); +	setbits_le32((*prcm)->cm_cam_iss_clkctrl, ISS_CLKCTRL_OPTFCLKEN_MASK);  	/* Enable all optional functional clocks of DSS */ -	setbits_le32(&prcm->cm_dss_dss_clkctrl, DSS_CLKCTRL_OPTFCLKEN_MASK); +	setbits_le32((*prcm)->cm_dss_dss_clkctrl, DSS_CLKCTRL_OPTFCLKEN_MASK);  	do_enable_clocks(clk_domains_non_essential,  			 clk_modules_hw_auto_non_essential, @@ -511,7 +509,8 @@ void enable_non_essential_clocks(void)  			 0);  	/* Put camera module in no sleep mode */ -	clrsetbits_le32(&prcm->cm_cam_clkstctrl, MODULE_CLKCTRL_MODULEMODE_MASK, +	clrsetbits_le32((*prcm)->cm_cam_clkstctrl, +			MODULE_CLKCTRL_MODULEMODE_MASK,  			CD_CLKCTRL_CLKTRCTRL_NO_SLEEP <<  			MODULE_CLKCTRL_MODULEMODE_SHIFT);  } |