|
@@ -529,7 +529,6 @@ void __weak recalibrate_iodelay(void)
|
|
|
*/
|
|
|
void scale_vcores(struct vcores_data const *vcores)
|
|
|
{
|
|
|
-#if defined(CONFIG_DRA7XX)
|
|
|
int i;
|
|
|
struct volts *pv = (struct volts *)vcores;
|
|
|
struct volts *px;
|
|
@@ -589,7 +588,16 @@ void scale_vcores(struct vcores_data const *vcores)
|
|
|
vcores->mpu.abb_tx_done_mask,
|
|
|
OMAP_ABB_FAST_OPP);
|
|
|
|
|
|
- /* The .mm member is not used for the DRA7xx */
|
|
|
+ debug("mm: %d\n", vcores->mm.value);
|
|
|
+ do_scale_vcore(vcores->mm.addr, vcores->mm.value, vcores->mm.pmic);
|
|
|
+ /* Configure MM ABB LDO after scale */
|
|
|
+ abb_setup(vcores->mm.efuse.reg,
|
|
|
+ (*ctrl)->control_wkup_ldovbb_mm_voltage_ctrl,
|
|
|
+ (*prcm)->prm_abbldo_mm_setup,
|
|
|
+ (*prcm)->prm_abbldo_mm_ctrl,
|
|
|
+ (*prcm)->prm_irqstatus_mpu,
|
|
|
+ vcores->mm.abb_tx_done_mask,
|
|
|
+ OMAP_ABB_FAST_OPP);
|
|
|
|
|
|
debug("gpu: %d\n", vcores->gpu.value);
|
|
|
do_scale_vcore(vcores->gpu.addr, vcores->gpu.value, vcores->gpu.pmic);
|
|
@@ -621,56 +629,6 @@ void scale_vcores(struct vcores_data const *vcores)
|
|
|
(*prcm)->prm_irqstatus_mpu,
|
|
|
vcores->iva.abb_tx_done_mask,
|
|
|
OMAP_ABB_FAST_OPP);
|
|
|
- /* Might need udelay(1000) here if debug is enabled to see all prints */
|
|
|
-#else
|
|
|
- u32 val;
|
|
|
-
|
|
|
- val = optimize_vcore_voltage(&vcores->core);
|
|
|
- do_scale_vcore(vcores->core.addr, val, vcores->core.pmic);
|
|
|
-
|
|
|
- /*
|
|
|
- * IO delay recalibration should be done immediately after
|
|
|
- * adjusting AVS voltages for VDD_CORE_L.
|
|
|
- * Respective boards should call __recalibrate_iodelay()
|
|
|
- * with proper mux, virtual and manual mode configurations.
|
|
|
- */
|
|
|
-#ifdef CONFIG_IODELAY_RECALIBRATION
|
|
|
- recalibrate_iodelay();
|
|
|
-#endif
|
|
|
-
|
|
|
- val = optimize_vcore_voltage(&vcores->mpu);
|
|
|
- do_scale_vcore(vcores->mpu.addr, val, vcores->mpu.pmic);
|
|
|
-
|
|
|
- /* Configure MPU ABB LDO after scale */
|
|
|
- abb_setup(vcores->mpu.efuse.reg,
|
|
|
- (*ctrl)->control_wkup_ldovbb_mpu_voltage_ctrl,
|
|
|
- (*prcm)->prm_abbldo_mpu_setup,
|
|
|
- (*prcm)->prm_abbldo_mpu_ctrl,
|
|
|
- (*prcm)->prm_irqstatus_mpu_2,
|
|
|
- vcores->mpu.abb_tx_done_mask,
|
|
|
- OMAP_ABB_FAST_OPP);
|
|
|
-
|
|
|
- val = optimize_vcore_voltage(&vcores->mm);
|
|
|
- do_scale_vcore(vcores->mm.addr, val, vcores->mm.pmic);
|
|
|
-
|
|
|
- /* Configure MM ABB LDO after scale */
|
|
|
- abb_setup(vcores->mm.efuse.reg,
|
|
|
- (*ctrl)->control_wkup_ldovbb_mm_voltage_ctrl,
|
|
|
- (*prcm)->prm_abbldo_mm_setup,
|
|
|
- (*prcm)->prm_abbldo_mm_ctrl,
|
|
|
- (*prcm)->prm_irqstatus_mpu,
|
|
|
- vcores->mm.abb_tx_done_mask,
|
|
|
- OMAP_ABB_FAST_OPP);
|
|
|
-
|
|
|
- val = optimize_vcore_voltage(&vcores->gpu);
|
|
|
- do_scale_vcore(vcores->gpu.addr, val, vcores->gpu.pmic);
|
|
|
-
|
|
|
- val = optimize_vcore_voltage(&vcores->eve);
|
|
|
- do_scale_vcore(vcores->eve.addr, val, vcores->eve.pmic);
|
|
|
-
|
|
|
- val = optimize_vcore_voltage(&vcores->iva);
|
|
|
- do_scale_vcore(vcores->iva.addr, val, vcores->iva.pmic);
|
|
|
-#endif
|
|
|
}
|
|
|
|
|
|
static inline void enable_clock_domain(u32 const clkctrl_reg, u32 enable_mode)
|