]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ARM: 8361/1: sa1100: add platform functions to handle PWER settings
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Mon, 18 May 2015 14:58:57 +0000 (15:58 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 18 May 2015 21:00:22 +0000 (22:00 +0100)
PWER settings logically belongs neither to GPIO nor to system IRQ code.
Add special functions to handle PWER (for GPIO and for system IRQs)
from platform code.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-sa1100/generic.c
include/soc/sa1100/pwer.h [new file with mode: 0644]

index 40e0d8619a2d9739dbe6e0621728505276d415c2..c651f6eb863c0e750dd0260d582ba91fb9771ae9 100644 (file)
@@ -23,6 +23,8 @@
 
 #include <video/sa1100fb.h>
 
+#include <soc/sa1100/pwer.h>
+
 #include <asm/div64.h>
 #include <asm/mach/map.h>
 #include <asm/mach/flash.h>
@@ -416,3 +418,25 @@ void sa1110_mb_enable(void)
        local_irq_restore(flags);
 }
 
+int sa11x0_gpio_set_wake(unsigned int gpio, unsigned int on)
+{
+       if (on)
+               PWER |= BIT(gpio);
+       else
+               PWER &= ~BIT(gpio);
+
+       return 0;
+}
+
+int sa11x0_sc_set_wake(unsigned int irq, unsigned int on)
+{
+       if (BIT(irq) != IC_RTCAlrm)
+               return -EINVAL;
+
+       if (on)
+               PWER |= PWER_RTC;
+       else
+               PWER &= ~PWER_RTC;
+
+       return 0;
+}
diff --git a/include/soc/sa1100/pwer.h b/include/soc/sa1100/pwer.h
new file mode 100644 (file)
index 0000000..15a545b
--- /dev/null
@@ -0,0 +1,15 @@
+#ifndef SOC_SA1100_PWER_H
+#define SOC_SA1100_PWER_H
+
+/*
+ * Copyright (C) 2015, Dmitry Eremin-Solenikov
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+int sa11x0_gpio_set_wake(unsigned int gpio, unsigned int on);
+int sa11x0_sc_set_wake(unsigned int irq, unsigned int on);
+
+#endif