summaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/cpu/sh5/setup-sh5.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-05-07 18:10:27 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-05-07 18:10:27 +0900
commit0fb849b9d743a20056f2418cd955e5c650658663 (patch)
treedd2d44103536ae83f8db483a8657bdcc36ad5c14 /arch/sh/kernel/cpu/sh5/setup-sh5.c
parentae318a148e4d255dfbc87d963fdd6031c2af9c46 (diff)
downloadop-kernel-dev-0fb849b9d743a20056f2418cd955e5c650658663.zip
op-kernel-dev-0fb849b9d743a20056f2418cd955e5c650658663.tar.gz
sh: Integrate the SH-5 onchip_remap() more coherently.
Presently this is special-cased for early initialization. While there are situations where these static early initializations are still necessary, with minor changes it is possible to use this for the regular ioremap implementation as well. This allows us to kill off the special-casing for the remap completely and to start tidying up all of the SH-5 special-casing in drivers. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/cpu/sh5/setup-sh5.c')
-rw-r--r--arch/sh/kernel/cpu/sh5/setup-sh5.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/arch/sh/kernel/cpu/sh5/setup-sh5.c b/arch/sh/kernel/cpu/sh5/setup-sh5.c
new file mode 100644
index 0000000..d8d59fe
--- /dev/null
+++ b/arch/sh/kernel/cpu/sh5/setup-sh5.c
@@ -0,0 +1,46 @@
+/*
+ * SH5-101/SH5-103 CPU Setup
+ *
+ * Copyright (C) 2009 Paul Mundt
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+#include <linux/platform_device.h>
+#include <linux/init.h>
+#include <linux/serial.h>
+#include <linux/serial_sci.h>
+#include <linux/io.h>
+#include <linux/mm.h>
+#include <asm/addrspace.h>
+
+static struct plat_sci_port sci_platform_data[] = {
+ {
+ .mapbase = PHYS_PERIPHERAL_BLOCK + 0x01030000,
+ .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP,
+ .type = PORT_SCIF,
+ .irqs = { 39, 40, 42, 0 },
+ }, {
+ .flags = 0,
+ }
+};
+
+static struct platform_device sci_device = {
+ .name = "sh-sci",
+ .id = -1,
+ .dev = {
+ .platform_data = sci_platform_data,
+ },
+};
+
+static struct platform_device *sh5_devices[] __initdata = {
+ &sci_device,
+};
+
+static int __init sh5_devices_setup(void)
+{
+ return platform_add_devices(sh5_devices,
+ ARRAY_SIZE(sh5_devices));
+}
+__initcall(sh5_devices_setup);
OpenPOWER on IntegriCloud