16 #include <linux/serial_core.h>
22 #include <mach/regs-gpio.h>
31 static struct irq_grp_save {
37 static u32 irq_uart_mask[CONFIG_SERIAL_SAMSUNG_UARTS];
39 static int s5p64x0_irq_pm_suspend(
void)
41 struct irq_grp_save *grp = eint_grp_save;
44 S3C_PMDBG(
"%s: suspending IRQs\n", __func__);
48 for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++)
51 for (i = 0; i <
ARRAY_SIZE(eint_grp_save); i++, grp++) {
60 static void s5p64x0_irq_pm_resume(
void)
62 struct irq_grp_save *grp = eint_grp_save;
65 S3C_PMDBG(
"%s: resuming IRQs\n", __func__);
69 for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++)
72 for (i = 0; i <
ARRAY_SIZE(eint_grp_save); i++, grp++) {
78 S3C_PMDBG(
"%s: IRQ configuration restored\n", __func__);
81 static struct syscore_ops s5p64x0_irq_syscore_ops = {
82 .suspend = s5p64x0_irq_pm_suspend,
83 .resume = s5p64x0_irq_pm_resume,
86 static int __init s5p64x0_syscore_init(
void)