summaryrefslogtreecommitdiff
path: root/arch/arm/mach-shmobile/intc-r8a7740.c
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2011-11-11 06:45:52 +0400
committerPaul Mundt <lethal@linux-sh.org>2011-11-11 11:55:31 +0400
commit6c01ba445cecb2d8085cf0b5a6ddfb170ad22616 (patch)
tree452d7a0f20c62d9495cc38dcf1de9422000f16b7 /arch/arm/mach-shmobile/intc-r8a7740.c
parentb73b5c493ac001870bd9faf565a61908c82f52d8 (diff)
downloadlinux-6c01ba445cecb2d8085cf0b5a6ddfb170ad22616.tar.xz
ARM: mach-shmobile: R-Mobile A1 support.
This adds preliminary support for the R8A7740 (R-Mobile A1) CPU Timer, serial, gic, clock are supported at this point. This patch is based on v0.1 manual Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile/intc-r8a7740.c')
-rw-r--r--arch/arm/mach-shmobile/intc-r8a7740.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/intc-r8a7740.c b/arch/arm/mach-shmobile/intc-r8a7740.c
new file mode 100644
index 000000000000..c62a2059f2f7
--- /dev/null
+++ b/arch/arm/mach-shmobile/intc-r8a7740.c
@@ -0,0 +1,45 @@
+/*
+ * R8A7740 processor support
+ *
+ * Copyright (C) 2011 Renesas Solutions Corp.
+ * Copyright (C) 2011 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <linux/irq.h>
+#include <linux/io.h>
+#include <asm/hardware/gic.h>
+
+#define INTA_CTRL 0xe605807c
+
+static int r8a7740_set_wake(struct irq_data *data, unsigned int on)
+{
+ return 0; /* always allow wakeup */
+}
+
+void __init r8a7740_init_irq(void)
+{
+ void __iomem *gic_dist_base = __io(0xf0001000);
+ void __iomem *gic_cpu_base = __io(0xf0000000);
+
+ /*
+ * Change INT_SEL INTCA->GIC
+ * (on GPIO)
+ */
+ __raw_writel(__raw_readl(INTA_CTRL) & ~(1 << 1), INTA_CTRL);
+
+ gic_init(0, 29, gic_dist_base, gic_cpu_base);
+ gic_arch_extn.irq_set_wake = r8a7740_set_wake;
+}