I've setted gpio6_3:
in mx53loco.c i have:
#define GPIO105 (0x1<<9) <------- It is a correct value? from iMX53RM pg217 ---> 105 GPIO-6 "Combined interrupt indication for GPIO-6 signal 0 throughout 15"
in static iomux_v3_cfg_t mx53_loco_pads[] {
//MX53_PAD_CSI0_DAT17__IPU_CSI0_D_17,
MX53_PAD_CSI0_DAT17__GPIO6_3,
and:
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(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);
__raw_writel(GPIO105, tzic_base + TZIC_WAKEUP3_OFFSET);
iounmap(tzic_base);
pr_info("only da9053 irq is wakeup-enabled\n");
}
static void loco_suspend_enter(void)
{
if (!board_is_mx53_loco_mc34708()) {
loco_da9053_irq_wakeup_only_fixup();
da9053_suspend_cmd_sw();
}
}
root@freescale ~$ echo 163 > /sys/class/gpio/export
root@freescale ~$ echo in > /sys/class/gpio/gpio163/direction
root@freescale ~$ cd /sys/class/gpio
root@freescale /sys/class/gpio$ cd gpio163
and it work infact when i pres button vale change:
root@freescale /sys/class/gpio/gpio163$ cat value
1
root@freescale /sys/class/gpio/gpio163$ cat value
0
root@freescale /sys/class/gpio/gpio163$ cat value
1
root@freescale /sys/class/gpio/gpio163$ cat value
0
after i go in standby:
root@freescale ~$ echo 163 > /sys/class/gpio/export
root@freescale ~$ echo in > /sys/class/gpio/gpio163/direction