For some reason the wakeup enable bit is not getting set on OMAP2430, OMAP2420. This is inspite of the fact that SYSC_HAS_ENAWAKEUP flag is present in the hwmod database. Until the reason is found we need this patch to boot on the above platforms. Signed-off-by: Tarun Kanti DebBarma <tarun.kanti@xxxxxx> --- arch/arm/plat-omap/dmtimer.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 4ef25de..2ea0a7b 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c @@ -227,6 +227,7 @@ static void omap_dm_timer_write_reg(struct omap_dm_timer *timer, u32 reg, static void omap_dm_timer_prepare(struct omap_dm_timer *timer) { + u32 l; struct dmtimer_platform_data *pdata = timer->pdev->dev.platform_data; timer->fclk = clk_get(&timer->pdev->dev, "fck"); @@ -240,6 +241,18 @@ static void omap_dm_timer_prepare(struct omap_dm_timer *timer) if (cpu_is_omap16xx()) pdata->dm_timer_reset(timer); + /* + * Enable wake-up on OMAP2420, OMAP2430 CPUs. + * FIXME: SYSC_HAS_ENAWAKEUP flag is already set in hwmod database. + * But the setting does not seem to work. Need to investigate why + * this is happening. + */ + if (is_omap2430() || is_omap2420()) { + l = omap_dm_timer_read_reg(timer, OMAP_TIMER_OCP_CFG_REG); + l |= 1 << 2; + omap_dm_timer_write_reg(timer, OMAP_TIMER_OCP_CFG_REG, l); + } + omap_dm_timer_set_source(timer, OMAP_TIMER_SRC_32_KHZ); /* Match hardware reset default of posted mode */ -- 1.6.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html