I'm use i.mx53. When I read the iMX53RM.pdf document, from the Table 3-1, the irq = 31 is uart-1, it's that meat set the irq can wake up system, so I modify the code in arch/arm/mach-mx5/mx53_loco.c like this:
static void loco_da9053_irq_wakeup_only_fixup(void)
{
void __iomem *tzic_base;
tzic_base = ioremap(MX53_TZIC_BASE_ADDR, SZ_4K);
if (NULL == tzic_base) {
pr_err("fail to map MX53_TZIC_BASE_ADDR\n");
return;
}
// __raw_writel(0, tzic_base + TZIC_WAKEUP0_OFFSET);
__raw_writel(1 << 31, tzic_base + TZIC_WAKEUP0_OFFSET);
__raw_writel(0, tzic_base + TZIC_WAKEUP1_OFFSET);
__raw_writel(0, tzic_base + TZIC_WAKEUP2_OFFSET);
/* only enable irq wakeup for da9053 */
__raw_writel(GPIO7_0_11_IRQ_BIT, tzic_base + TZIC_WAKEUP3_OFFSET);
iounmap(tzic_base);
pr_info("only da9053 irq is wakeup-enabled\n");
}
But not work, can anybody tell me how to do? Thanks!!