15 #include <linux/kernel.h>
18 #include <linux/serial_core.h>
26 #include <mach/regs-gpio.h>
49 static struct irq_grp_save {
55 static u32 irq_uart_mask[CONFIG_SERIAL_SAMSUNG_UARTS];
57 static int s3c64xx_irq_pm_suspend(
void)
59 struct irq_grp_save *grp = eint_grp_save;
62 S3C_PMDBG(
"%s: suspending IRQs\n", __func__);
66 for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++)
69 for (i = 0; i <
ARRAY_SIZE(eint_grp_save); i++, grp++) {
78 static void s3c64xx_irq_pm_resume(
void)
80 struct irq_grp_save *grp = eint_grp_save;
83 S3C_PMDBG(
"%s: resuming IRQs\n", __func__);
87 for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++)
90 for (i = 0; i <
ARRAY_SIZE(eint_grp_save); i++, grp++) {
96 S3C_PMDBG(
"%s: IRQ configuration restored\n", __func__);
99 static struct syscore_ops s3c64xx_irq_syscore_ops = {
100 .suspend = s3c64xx_irq_pm_suspend,
101 .resume = s3c64xx_irq_pm_resume,
104 static __init int s3c64xx_syscore_init(
void)