irqclr |= IRQENB_PENUP;
}
- titsc_writel(ts_dev, REG_IRQSTATUS, irqclr);
+ if (status & IRQENB_HW_PEN) {
- am335x_tsc_se_update(ts_dev->mfd_tscadc);
- return IRQ_HANDLED;
+ titsc_writel(ts_dev, REG_IRQWAKEUP, 0x00);
+ titsc_writel(ts_dev, REG_IRQCLR, IRQENB_HW_PEN);
+ }
+
+ if (irqclr) {
+ titsc_writel(ts_dev, REG_IRQSTATUS, irqclr);
+ am335x_tsc_se_update(ts_dev->mfd_tscadc);
+ return IRQ_HANDLED;
+ }
+ return IRQ_NONE;
}
static int titsc_parse_dt(struct platform_device *pdev,
input_unregister_device(ts_dev->input);
- platform_set_drvdata(pdev, NULL);
kfree(ts_dev);
return 0;
}