aboutsummaryrefslogtreecommitdiff
path: root/arch/sh/boards/renesas
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/boards/renesas')
-rw-r--r--arch/sh/boards/renesas/edosk7705/Makefile6
-rw-r--r--arch/sh/boards/renesas/edosk7705/io.c94
-rw-r--r--arch/sh/boards/renesas/edosk7705/setup.c43
-rw-r--r--arch/sh/boards/renesas/migor/Makefile1
-rw-r--r--arch/sh/boards/renesas/migor/setup.c61
-rw-r--r--arch/sh/boards/renesas/r7780rp/Kconfig24
-rw-r--r--arch/sh/boards/renesas/r7780rp/Makefile11
-rw-r--r--arch/sh/boards/renesas/r7780rp/irq-r7780mp.c61
-rw-r--r--arch/sh/boards/renesas/r7780rp/irq-r7780rp.c67
-rw-r--r--arch/sh/boards/renesas/r7780rp/irq-r7785rp.c86
-rw-r--r--arch/sh/boards/renesas/r7780rp/psw.c122
-rw-r--r--arch/sh/boards/renesas/r7780rp/setup.c328
-rw-r--r--arch/sh/boards/renesas/rts7751r2d/Kconfig23
-rw-r--r--arch/sh/boards/renesas/rts7751r2d/Makefile5
-rw-r--r--arch/sh/boards/renesas/rts7751r2d/irq.c155
-rw-r--r--arch/sh/boards/renesas/rts7751r2d/setup.c298
-rw-r--r--arch/sh/boards/renesas/sdk7780/Kconfig16
-rw-r--r--arch/sh/boards/renesas/sdk7780/Makefile5
-rw-r--r--arch/sh/boards/renesas/sdk7780/irq.c46
-rw-r--r--arch/sh/boards/renesas/sdk7780/setup.c109
-rw-r--r--arch/sh/boards/renesas/systemh/Makefile13
-rw-r--r--arch/sh/boards/renesas/systemh/io.c174
-rw-r--r--arch/sh/boards/renesas/systemh/irq.c102
-rw-r--r--arch/sh/boards/renesas/systemh/setup.c57
-rw-r--r--arch/sh/boards/renesas/x3proto/Makefile1
-rw-r--r--arch/sh/boards/renesas/x3proto/ilsel.c151
-rw-r--r--arch/sh/boards/renesas/x3proto/setup.c136
27 files changed, 0 insertions, 2195 deletions
diff --git a/arch/sh/boards/renesas/edosk7705/Makefile b/arch/sh/boards/renesas/edosk7705/Makefile
deleted file mode 100644
index 14bdd531f11..00000000000
--- a/arch/sh/boards/renesas/edosk7705/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# Makefile for the EDOSK7705 specific parts of the kernel
-#
-
-obj-y := setup.o io.o
-
diff --git a/arch/sh/boards/renesas/edosk7705/io.c b/arch/sh/boards/renesas/edosk7705/io.c
deleted file mode 100644
index 541cea2a652..00000000000
--- a/arch/sh/boards/renesas/edosk7705/io.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * arch/sh/boards/renesas/edosk7705/io.c
- *
- * Copyright (C) 2001 Ian da Silva, Jeremy Siegel
- * Based largely on io_se.c.
- *
- * I/O routines for Hitachi EDOSK7705 board.
- *
- */
-
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <asm/io.h>
-#include <asm/edosk7705/io.h>
-#include <asm/addrspace.h>
-
-#define SMC_IOADDR 0xA2000000
-
-#define maybebadio(name,port) \
- printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \
- #name, (port), (__u32) __builtin_return_address(0))
-
-/* Map the Ethernet addresses as if it is at 0x300 - 0x320 */
-unsigned long sh_edosk7705_isa_port2addr(unsigned long port)
-{
- if (port >= 0x300 && port < 0x320) {
- /* SMC91C96 registers are 4 byte aligned rather than the
- * usual 2 byte!
- */
- return SMC_IOADDR + ( (port - 0x300) * 2);
- }
-
- maybebadio(sh_edosk7705_isa_port2addr, port);
- return port;
-}
-
-/* Trying to read / write bytes on odd-byte boundaries to the Ethernet
- * registers causes problems. So we bit-shift the value and read / write
- * in 2 byte chunks. Setting the low byte to 0 does not cause problems
- * now as odd byte writes are only made on the bit mask / interrupt
- * register. This may not be the case in future Mar-2003 SJD
- */
-unsigned char sh_edosk7705_inb(unsigned long port)
-{
- if (port >= 0x300 && port < 0x320 && port & 0x01) {
- return (volatile unsigned char)(generic_inw(port -1) >> 8);
- }
- return *(volatile unsigned char *)sh_edosk7705_isa_port2addr(port);
-}
-
-unsigned int sh_edosk7705_inl(unsigned long port)
-{
- return *(volatile unsigned long *)port;
-}
-
-void sh_edosk7705_outb(unsigned char value, unsigned long port)
-{
- if (port >= 0x300 && port < 0x320 && port & 0x01) {
- generic_outw(((unsigned short)value << 8), port -1);
- return;
- }
- *(volatile unsigned char *)sh_edosk7705_isa_port2addr(port) = value;
-}
-
-void sh_edosk7705_outl(unsigned int value, unsigned long port)
-{
- *(volatile unsigned long *)port = value;
-}
-
-void sh_edosk7705_insb(unsigned long port, void *addr, unsigned long count)
-{
- unsigned char *p = addr;
- while (count--) *p++ = sh_edosk7705_inb(port);
-}
-
-void sh_edosk7705_insl(unsigned long port, void *addr, unsigned long count)
-{
- unsigned long *p = (unsigned long*)addr;
- while (count--)
- *p++ = *(volatile unsigned long *)port;
-}
-
-void sh_edosk7705_outsb(unsigned long port, const void *addr, unsigned long count)
-{
- unsigned char *p = (unsigned char*)addr;
- while (count--) sh_edosk7705_outb(*p++, port);
-}
-
-void sh_edosk7705_outsl(unsigned long port, const void *addr, unsigned long count)
-{
- unsigned long *p = (unsigned long*)addr;
- while (count--) sh_edosk7705_outl(*p++, port);
-}
-
diff --git a/arch/sh/boards/renesas/edosk7705/setup.c b/arch/sh/boards/renesas/edosk7705/setup.c
deleted file mode 100644
index f076c45308d..00000000000
--- a/arch/sh/boards/renesas/edosk7705/setup.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * arch/sh/boards/renesas/edosk7705/setup.c
- *
- * Copyright (C) 2000 Kazumoto Kojima
- *
- * Hitachi SolutionEngine Support.
- *
- * Modified for edosk7705 development
- * board by S. Dunn, 2003.
- */
-#include <linux/init.h>
-#include <asm/machvec.h>
-#include <asm/edosk7705/io.h>
-
-static void __init sh_edosk7705_init_irq(void)
-{
- /* This is the Ethernet interrupt */
- make_imask_irq(0x09);
-}
-
-/*
- * The Machine Vector
- */
-static struct sh_machine_vector mv_edosk7705 __initmv = {
- .mv_name = "EDOSK7705",
- .mv_nr_irqs = 80,
-
- .mv_inb = sh_edosk7705_inb,
- .mv_inl = sh_edosk7705_inl,
- .mv_outb = sh_edosk7705_outb,
- .mv_outl = sh_edosk7705_outl,
-
- .mv_inl_p = sh_edosk7705_inl,
- .mv_outl_p = sh_edosk7705_outl,
-
- .mv_insb = sh_edosk7705_insb,
- .mv_insl = sh_edosk7705_insl,
- .mv_outsb = sh_edosk7705_outsb,
- .mv_outsl = sh_edosk7705_outsl,
-
- .mv_isa_port2addr = sh_edosk7705_isa_port2addr,
- .mv_init_irq = sh_edosk7705_init_irq,
-};
diff --git a/arch/sh/boards/renesas/migor/Makefile b/arch/sh/boards/renesas/migor/Makefile
deleted file mode 100644
index 77037567633..00000000000
--- a/arch/sh/boards/renesas/migor/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-y := setup.o
diff --git a/arch/sh/boards/renesas/migor/setup.c b/arch/sh/boards/renesas/migor/setup.c
deleted file mode 100644
index 21ab8c8fb59..00000000000
--- a/arch/sh/boards/renesas/migor/setup.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Renesas System Solutions Asia Pte. Ltd - Migo-R
- *
- * Copyright (C) 2008 Magnus Damm
- *
- * 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/init.h>
-#include <linux/platform_device.h>
-#include <linux/interrupt.h>
-#include <asm/machvec.h>
-#include <asm/io.h>
-
-/* Address IRQ Size Bus Description
- * 0x00000000 64MB 16 NOR Flash (SP29PL256N)
- * 0x0c000000 64MB 64 SDRAM (2xK4M563233G)
- * 0x10000000 IRQ0 16 Ethernet (SMC91C111)
- * 0x14000000 IRQ4 16 USB 2.0 Host Controller (M66596)
- * 0x18000000 8GB 8 NAND Flash (K9K8G08U0A)
- */
-
-static struct resource smc91x_eth_resources[] = {
- [0] = {
- .name = "smc91x-regs" ,
- .start = P2SEGADDR(0x10000300),
- .end = P2SEGADDR(0x1000030f),
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .start = 32, /* IRQ0 */
- .flags = IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,
- },
-};
-
-static struct platform_device smc91x_eth_device = {
- .name = "smc91x",
- .num_resources = ARRAY_SIZE(smc91x_eth_resources),
- .resource = smc91x_eth_resources,
-};
-
-static struct platform_device *migor_devices[] __initdata = {
- &smc91x_eth_device,
-};
-
-static int __init migor_devices_setup(void)
-{
- return platform_add_devices(migor_devices, ARRAY_SIZE(migor_devices));
-}
-__initcall(migor_devices_setup);
-
-static void __init migor_setup(char **cmdline_p)
-{
- ctrl_outw(0x1000, 0xa4050110); /* Enable IRQ0 in PJCR */
-}
-
-static struct sh_machine_vector mv_migor __initmv = {
- .mv_name = "Migo-R",
- .mv_setup = migor_setup,
-};
diff --git a/arch/sh/boards/renesas/r7780rp/Kconfig b/arch/sh/boards/renesas/r7780rp/Kconfig
deleted file mode 100644
index fc8f28e04ba..00000000000
--- a/arch/sh/boards/renesas/r7780rp/Kconfig
+++ /dev/null
@@ -1,24 +0,0 @@
-if SH_HIGHLANDER
-
-choice
- prompt "Highlander options"
- default SH_R7780MP
-
-config SH_R7780RP
- bool "R7780RP-1 board support"
- depends on CPU_SUBTYPE_SH7780
-
-config SH_R7780MP
- bool "R7780MP board support"
- depends on CPU_SUBTYPE_SH7780
- help
- Selecting this option will enable support for the mass-production
- version of the R7780RP. If in doubt, say Y.
-
-config SH_R7785RP
- bool "R7785RP board support"
- depends on CPU_SUBTYPE_SH7785
-
-endchoice
-
-endif
diff --git a/arch/sh/boards/renesas/r7780rp/Makefile b/arch/sh/boards/renesas/r7780rp/Makefile
deleted file mode 100644
index 20a10080b11..00000000000
--- a/arch/sh/boards/renesas/r7780rp/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Makefile for the R7780RP-1 specific parts of the kernel
-#
-irqinit-$(CONFIG_SH_R7780MP) := irq-r7780mp.o
-irqinit-$(CONFIG_SH_R7785RP) := irq-r7785rp.o
-irqinit-$(CONFIG_SH_R7780RP) := irq-r7780rp.o
-obj-y := setup.o $(irqinit-y)
-
-ifneq ($(CONFIG_SH_R7785RP),y)
-obj-$(CONFIG_PUSH_SWITCH) += psw.o
-endif
diff --git a/arch/sh/boards/renesas/r7780rp/irq-r7780mp.c b/arch/sh/boards/renesas/r7780rp/irq-r7780mp.c
deleted file mode 100644
index 1f8f073f27b..00000000000
--- a/arch/sh/boards/renesas/r7780rp/irq-r7780mp.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Renesas Solutions Highlander R7780MP Support.
- *
- * Copyright (C) 2002 Atom Create Engineering Co., Ltd.
- * Copyright (C) 2006 Paul Mundt
- * Copyright (C) 2007 Magnus Damm
- *
- * 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/init.h>
-#include <linux/irq.h>
-#include <linux/io.h>
-#include <asm/r7780rp.h>
-
-enum {
- UNUSED = 0,
-
- /* board specific interrupt sources */
- AX88796, /* Ethernet controller */
- CF, /* Compact Flash */
- PSW, /* Push Switch */
- EXT1, /* EXT1n IRQ */
- EXT4, /* EXT4n IRQ */
-};
-
-static struct intc_vect vectors[] __initdata = {
- INTC_IRQ(CF, IRQ_CF),
- INTC_IRQ(PSW, IRQ_PSW),
- INTC_IRQ(AX88796, IRQ_AX88796),
- INTC_IRQ(EXT1, IRQ_EXT1),
- INTC_IRQ(EXT4, IRQ_EXT4),
-};
-
-static struct intc_mask_reg mask_registers[] __initdata = {
- { 0xa4000000, 0, 16, /* IRLMSK */
- { 0, 0, 0, 0, CF, 0, 0, 0,
- 0, 0, 0, EXT4, 0, EXT1, PSW, AX88796 } },
-};
-
-static unsigned char irl2irq[HL_NR_IRL] __initdata = {
- 0, IRQ_CF, 0, 0,
- 0, 0, 0, 0,
- 0, IRQ_EXT4, 0, IRQ_EXT1,
- 0, IRQ_AX88796, IRQ_PSW,
-};
-
-static DECLARE_INTC_DESC(intc_desc, "r7780mp", vectors,
- NULL, mask_registers, NULL, NULL);
-
-unsigned char * __init highlander_init_irq_r7780mp(void)
-{
- if ((ctrl_inw(0xa4000700) & 0xf000) == 0x2000) {
- printk(KERN_INFO "Using r7780mp interrupt controller.\n");
- register_intc_controller(&intc_desc);
- return irl2irq;
- }
-
- return NULL;
-}
diff --git a/arch/sh/boards/renesas/r7780rp/irq-r7780rp.c b/arch/sh/boards/renesas/r7780rp/irq-r7780rp.c
deleted file mode 100644
index bd34048ed0e..00000000000
--- a/arch/sh/boards/renesas/r7780rp/irq-r7780rp.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Renesas Solutions Highlander R7780RP-1 Support.
- *
- * Copyright (C) 2002 Atom Create Engineering Co., Ltd.
- * Copyright (C) 2006 Paul Mundt
- * Copyright (C) 2008 Magnus Damm
- *
- * 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/init.h>
-#include <linux/irq.h>
-#include <linux/io.h>
-#include <asm/r7780rp.h>
-
-enum {
- UNUSED = 0,
-
- /* board specific interrupt sources */
-
- AX88796, /* Ethernet controller */
- PSW, /* Push Switch */
- CF, /* Compact Flash */
-
- PCI_A,
- PCI_B,
- PCI_C,
- PCI_D,
-};
-
-static struct intc_vect vectors[] __initdata = {
- INTC_IRQ(PCI_A, 65), /* dirty: overwrite cpu vectors for pci */
- INTC_IRQ(PCI_B, 66),
- INTC_IRQ(PCI_C, 67),
- INTC_IRQ(PCI_D, 68),
- INTC_IRQ(CF, IRQ_CF),
- INTC_IRQ(PSW, IRQ_PSW),
- INTC_IRQ(AX88796, IRQ_AX88796),
-};
-
-static struct intc_mask_reg mask_registers[] __initdata = {
- { 0xa5000000, 0, 16, /* IRLMSK */
- { PCI_A, PCI_B, PCI_C, PCI_D, CF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, PSW, AX88796 } },
-};
-
-static unsigned char irl2irq[HL_NR_IRL] __initdata = {
- 65, 66, 67, 68,
- IRQ_CF, 0, 0, 0,
- 0, 0, 0, 0,
- IRQ_AX88796, IRQ_PSW
-};
-
-static DECLARE_INTC_DESC(intc_desc, "r7780rp", vectors,
- NULL, mask_registers, NULL, NULL);
-
-unsigned char * __init highlander_init_irq_r7780rp(void)
-{
- if (ctrl_inw(0xa5000600)) {
- printk(KERN_INFO "Using r7780rp interrupt controller.\n");
- register_intc_controller(&intc_desc);
- return irl2irq;
- }
-
- return NULL;
-}
diff --git a/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c b/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c
deleted file mode 100644
index bf7ec107fbc..00000000000
--- a/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Renesas Solutions Highlander R7785RP Support.
- *
- * Copyright (C) 2002 Atom Create Engineering Co., Ltd.
- * Copyright (C) 2006 - 2008 Paul Mundt
- * Copyright (C) 2007 Magnus Damm
- *
- * 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/init.h>
-#include <linux/irq.h>
-#include <linux/io.h>
-#include <asm/r7780rp.h>
-
-enum {
- UNUSED = 0,
-
- /* FPGA specific interrupt sources */
- CF, /* Compact Flash */
- SMBUS, /* SMBUS */
- TP, /* Touch panel */
- RTC, /* RTC Alarm */
- TH_ALERT, /* Temperature sensor */
- AX88796, /* Ethernet controller */
-
- /* external bus connector */
- EXT0, EXT1, EXT2, EXT3, EXT4, EXT5, EXT6, EXT7,
-};
-
-static struct intc_vect vectors[] __initdata = {
- INTC_IRQ(CF, IRQ_CF),
- INTC_IRQ(SMBUS, IRQ_SMBUS),
- INTC_IRQ(TP, IRQ_TP),
- INTC_IRQ(RTC, IRQ_RTC),
- INTC_IRQ(TH_ALERT, IRQ_TH_ALERT),
-
- INTC_IRQ(EXT0, IRQ_EXT0), INTC_IRQ(EXT1, IRQ_EXT1),
- INTC_IRQ(EXT2, IRQ_EXT2), INTC_IRQ(EXT3, IRQ_EXT3),
-
- INTC_IRQ(EXT4, IRQ_EXT4), INTC_IRQ(EXT5, IRQ_EXT5),
- INTC_IRQ(EXT6, IRQ_EXT6), INTC_IRQ(EXT7, IRQ_EXT7),
-
- INTC_IRQ(AX88796, IRQ_AX88796),
-};
-
-static struct intc_mask_reg mask_registers[] __initdata = {
- { 0xa4000010, 0, 16, /* IRLMCR1 */
- { 0, 0, 0, 0, CF, AX88796, SMBUS, TP,
- RTC, 0, TH_ALERT, 0, 0, 0, 0, 0 } },
- { 0xa4000012, 0, 16, /* IRLMCR2 */
- { 0, 0, 0, 0, 0, 0, 0, 0,
- EXT7, EXT6, EXT5, EXT4, EXT3, EXT2, EXT1, EXT0 } },
-};
-
-static unsigned char irl2irq[HL_NR_IRL] __initdata = {
- 0, IRQ_CF, IRQ_EXT4, IRQ_EXT5,
- IRQ_EXT6, IRQ_EXT7, IRQ_SMBUS, IRQ_TP,
- IRQ_RTC, IRQ_TH_ALERT, IRQ_AX88796, IRQ_EXT0,
- IRQ_EXT1, IRQ_EXT2, IRQ_EXT3,
-};
-
-static DECLARE_INTC_DESC(intc_desc, "r7785rp", vectors,
- NULL, mask_registers, NULL, NULL);
-
-unsigned char * __init highlander_init_irq_r7785rp(void)
-{
- if ((ctrl_inw(0xa4000158) & 0xf000) != 0x1000)
- return NULL;
-
- printk(KERN_INFO "Using r7785rp interrupt controller.\n");
-
- ctrl_outw(0x0000, PA_IRLSSR1); /* FPGA IRLSSR1(CF_CD clear) */
-
- /* Setup the FPGA IRL */
- ctrl_outw(0x0000, PA_IRLPRA); /* FPGA IRLA */
- ctrl_outw(0xe598, PA_IRLPRB); /* FPGA IRLB */
- ctrl_outw(0x7060, PA_IRLPRC); /* FPGA IRLC */
- ctrl_outw(0x0000, PA_IRLPRD); /* FPGA IRLD */
- ctrl_outw(0x4321, PA_IRLPRE); /* FPGA IRLE */
- ctrl_outw(0xdcba, PA_IRLPRF); /* FPGA IRLF */
-
- register_intc_controller(&intc_desc);
- return irl2irq;
-}
diff --git a/arch/sh/boards/renesas/r7780rp/psw.c b/arch/sh/boards/renesas/r7780rp/psw.c
deleted file mode 100644
index c844dfa5d58..00000000000
--- a/arch/sh/boards/renesas/r7780rp/psw.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * arch/sh/boards/renesas/r7780rp/psw.c
- *
- * push switch support for RDBRP-1/RDBREVRP-1 debug boards.
- *
- * Copyright (C) 2006 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/io.h>
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-#include <asm/mach/r7780rp.h>
-#include <asm/push-switch.h>
-
-static irqreturn_t psw_irq_handler(int irq, void *arg)
-{
- struct platform_device *pdev = arg;
- struct push_switch *psw = platform_get_drvdata(pdev);
- struct push_switch_platform_info *psw_info = pdev->dev.platform_data;
- unsigned int l, mask;
- int ret = 0;
-
- l = ctrl_inw(PA_DBSW);
-
- /* Nothing to do if there's no state change */
- if (psw->state) {
- ret = 1;
- goto out;
- }
-
- mask = l & 0x70;
- /* Figure out who raised it */
- if (mask & (1 << psw_info->bit)) {
- psw->state = !!(mask & (1 << psw_info->bit));
- if (psw->state) /* debounce */
- mod_timer(&psw->debounce, jiffies + 50);
-
- ret = 1;
- }
-
-out:
- /* Clear the switch IRQs */
- l |= (0x7 << 12);
- ctrl_outw(l, PA_DBSW);
-
- return IRQ_RETVAL(ret);
-}
-
-static struct resource psw_resources[] = {
- [0] = {
- .start = IRQ_PSW,
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct push_switch_platform_info s2_platform_data = {
- .name = "s2",
- .bit = 6,
- .irq_flags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING |
- IRQF_SHARED,
- .irq_handler = psw_irq_handler,
-};
-
-static struct platform_device s2_switch_device = {
- .name = "push-switch",
- .id = 0,
- .num_resources = ARRAY_SIZE(psw_resources),
- .resource = psw_resources,
- .dev = {
- .platform_data = &s2_platform_data,
- },
-};
-
-static struct push_switch_platform_info s3_platform_data = {
- .name = "s3",
- .bit = 5,
- .irq_flags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING |
- IRQF_SHARED,
- .irq_handler = psw_irq_handler,
-};
-
-static struct platform_device s3_switch_device = {
- .name = "push-switch",
- .id = 1,
- .num_resources = ARRAY_SIZE(psw_resources),
- .resource = psw_resources,
- .dev = {
- .platform_data = &s3_platform_data,
- },
-};
-
-static struct push_switch_platform_info s4_platform_data = {
- .name = "s4",
- .bit = 4,
- .irq_flags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING |
- IRQF_SHARED,
- .irq_handler = psw_irq_handler,
-};
-
-static struct platform_device s4_switch_device = {
- .name = "push-switch",
- .id = 2,
- .num_resources = ARRAY_SIZE(psw_resources),
- .resource = psw_resources,
- .dev = {
- .platform_data = &s4_platform_data,
- },
-};
-
-static struct platform_device *psw_devices[] = {
- &s2_switch_device, &s3_switch_device, &s4_switch_device,
-};
-
-static int __init psw_init(void)
-{
- return platform_add_devices(psw_devices, ARRAY_SIZE(psw_devices));
-}
-module_init(psw_init);
diff --git a/arch/sh/boards/renesas/r7780rp/setup.c b/arch/sh/boards/renesas/r7780rp/setup.c
deleted file mode 100644
index 2f68bea7890..00000000000
--- a/arch/sh/boards/renesas/r7780rp/setup.c
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- * arch/sh/boards/renesas/r7780rp/setup.c
- *
- * Renesas Solutions Highlander Support.
- *
- * Copyright (C) 2002 Atom Create Engineering Co., Ltd.
- * Copyright (C) 2005 - 2007 Paul Mundt
- *
- * This contains support for the R7780RP-1, R7780MP, and R7785RP
- * Highlander modules.
- *
- * 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/init.h>
-#include <linux/platform_device.h>
-#include <linux/ata_platform.h>
-#include <linux/types.h>
-#include <net/ax88796.h>
-#include <asm/machvec.h>
-#include <asm/r7780rp.h>
-#include <asm/clock.h>
-#include <asm/heartbeat.h>
-#include <asm/io.h>
-#include <asm/io_trapped.h>
-
-static struct resource r8a66597_usb_host_resources[] = {
- [0] = {
- .name = "r8a66597_hcd",
- .start = 0xA4200000,
- .end = 0xA42000FF,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .name = "r8a66597_hcd",
- .start = IRQ_EXT1, /* irq number */
- .end = IRQ_EXT1,
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct platform_device r8a66597_usb_host_device = {
- .name = "r8a66597_hcd",
- .id = -1,
- .dev = {
- .dma_mask = NULL, /* don't use dma */
- .coherent_dma_mask = 0xffffffff,
- },
- .num_resources = ARRAY_SIZE(r8a66597_usb_host_resources),
- .resource = r8a66597_usb_host_resources,
-};
-
-static struct resource m66592_usb_peripheral_resources[] = {
- [0] = {
- .name = "m66592_udc",
- .start = 0xb0000000,
- .end = 0xb00000FF,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .name = "m66592_udc",
- .start = IRQ_EXT4, /* irq number */
- .end = IRQ_EXT4,
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct platform_device m66592_usb_peripheral_device = {
- .name = "m66592_udc",
- .id = -1,
- .dev = {
- .dma_mask = NULL, /* don't use dma */
- .coherent_dma_mask = 0xffffffff,
- },
- .num_resources = ARRAY_SIZE(m66592_usb_peripheral_resources),
- .resource = m66592_usb_peripheral_resources,
-};
-
-static struct resource cf_ide_resources[] = {
- [0] = {
- .start = PA_AREA5_IO + 0x1000,
- .end = PA_AREA5_IO + 0x1000 + 0x08 - 1,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .start = PA_AREA5_IO + 0x80c,
- .end = PA_AREA5_IO + 0x80c + 0x16 - 1,
- .flags = IORESOURCE_MEM,
- },
- [2] = {
- .start = IRQ_CF,
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct pata_platform_info pata_info = {
- .ioport_shift = 1,
-};
-
-static struct platform_device cf_ide_device = {
- .name = "pata_platform",
- .id = -1,
- .num_resources = ARRAY_SIZE(cf_ide_resources),
- .resource = cf_ide_resources,
- .dev = {
- .platform_data = &pata_info,
- },
-};
-
-static struct resource heartbeat_resources[] = {
- [0] = {
- .start = PA_OBLED,
- .end = PA_OBLED,
- .flags = IORESOURCE_MEM,
- },
-};
-
-#ifndef CONFIG_SH_R7785RP
-static unsigned char heartbeat_bit_pos[] = { 2, 1, 0, 3, 6, 5, 4, 7 };
-
-static struct heartbeat_data heartbeat_data = {
- .bit_pos = heartbeat_bit_pos,
- .nr_bits = ARRAY_SIZE(heartbeat_bit_pos),
-};
-#endif
-
-static struct platform_device heartbeat_device = {
- .name = "heartbeat",
- .id = -1,
-
- /* R7785RP has a slightly more sensible FPGA.. */
-#ifndef CONFIG_SH_R7785RP
- .dev = {
- .platform_data = &heartbeat_data,
- },
-#endif
- .num_resources = ARRAY_SIZE(heartbeat_resources),
- .resource = heartbeat_resources,
-};
-
-static struct ax_plat_data ax88796_platdata = {
- .flags = AXFLG_HAS_93CX6,
- .wordlength = 2,
- .dcr_val = 0x1,
- .rcr_val = 0x40,
-};
-
-static struct resource ax88796_resources[] = {
- {
-#ifdef CONFIG_SH_R7780RP
- .start = 0xa5800400,
- .end = 0xa5800400 + (0x20 * 0x2) - 1,
-#else
- .start = 0xa4100400,
- .end = 0xa4100400 + (0x20 * 0x2) - 1,
-#endif
- .flags = IORESOURCE_MEM,
- },
- {
- .start = IRQ_AX88796,
- .end = IRQ_AX88796,
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct platform_device ax88796_device = {
- .name = "ax88796",
- .id = 0,
-
- .dev = {
- .platform_data = &ax88796_platdata,
- },
-
- .num_resources = ARRAY_SIZE(ax88796_resources),
- .resource = ax88796_resources,
-};
-
-
-static struct platform_device *r7780rp_devices[] __initdata = {
- &r8a66597_usb_host_device,
- &m66592_usb_peripheral_device,
- &heartbeat_device,
-#ifndef CONFIG_SH_R7780RP
- &ax88796_device,
-#endif
-};
-
-/*
- * The CF is connected using a 16-bit bus where 8-bit operations are
- * unsupported. The linux ata driver is however using 8-bit operations, so
- * insert a trapped io filter to convert 8-bit operations into 16-bit.
- */
-static struct trapped_io cf_trapped_io = {
- .resource = cf_ide_resources,
- .num_resources = 2,
- .minimum_bus_width = 16,
-};
-
-static int __init r7780rp_devices_setup(void)
-{
-#ifndef CONFIG_SH_R7780RP
- if (register_trapped_io(&cf_trapped_io) == 0)
- platform_device_register(&cf_ide_device);
-#endif
- return platform_add_devices(r7780rp_devices,
- ARRAY_SIZE(r7780rp_devices));
-}
-device_initcall(r7780rp_devices_setup);
-
-/*
- * Platform specific clocks
- */
-static void ivdr_clk_enable(struct clk *clk)
-{
- ctrl_outw(ctrl_inw(PA_IVDRCTL) | (1 << IVDR_CK_ON), PA_IVDRCTL);
-}
-
-static void ivdr_clk_disable(struct clk *clk)
-{
- ctrl_outw(ctrl_inw(PA_IVDRCTL) & ~(1 << IVDR_CK_ON), PA_IVDRCTL);
-}
-
-static struct clk_ops ivdr_clk_ops = {
- .enable = ivdr_clk_enable,
- .disable = ivdr_clk_disable,
-};
-
-static struct clk ivdr_clk = {
- .name = "ivdr_clk",
- .ops = &ivdr_clk_ops,
-};
-
-static struct clk *r7780rp_clocks[] = {
- &ivdr_clk,
-};
-
-static void r7780rp_power_off(void)
-{
- if (mach_is_r7780mp() || mach_is_r7785rp())
- ctrl_outw(0x0001, PA_POFF);
-}
-
-/*
- * Initialize the board
- */
-static void __init highlander_setup(char **cmdline_p)
-{
- u16 ver = ctrl_inw(PA_VERREG);
- int i;
-
- printk(KERN_INFO "Renesas Solutions Highlander %s support.\n",
- mach_is_r7780rp() ? "R7780RP-1" :
- mach_is_r7780mp() ? "R7780MP" :
- "R7785RP");
-
- printk(KERN_INFO "Board version: %d (revision %d), "
- "FPGA version: %d (revision %d)\n",
- (ver >> 12) & 0xf, (ver >> 8) & 0xf,
- (ver >> 4) & 0xf, ver & 0xf);
-
- /*
- * Enable the important clocks right away..
- */
- for (i = 0; i < ARRAY_SIZE(r7780rp_clocks); i++) {
- struct clk *clk = r7780rp_clocks[i];
-
- clk_register(clk);
- clk_enable(clk);
- }
-
- ctrl_outw(0x0000, PA_OBLED); /* Clear LED. */
-
- if (mach_is_r7780rp())
- ctrl_outw(0x0001, PA_SDPOW); /* SD Power ON */
-
- ctrl_outw(ctrl_inw(PA_IVDRCTL) | 0x01, PA_IVDRCTL); /* Si13112 */
-
- pm_power_off = r7780rp_power_off;
-}
-
-static unsigned char irl2irq[HL_NR_IRL];
-
-int highlander_irq_demux(int irq)
-{
- if (irq >= HL_NR_IRL || !irl2irq[irq])
- return irq;
-
- return irl2irq[irq];
-}
-
-void __init highlander_init_irq(void)
-{
- unsigned char *ucp = NULL;
-
- do {
-#ifdef CONFIG_SH_R7780MP
- ucp = highlander_init_irq_r7780mp();
- if (ucp)
- break;
-#endif
-#ifdef CONFIG_SH_R7785RP
- ucp = highlander_init_irq_r7785rp();
- if (ucp)
- break;
-#endif
-#ifdef CONFIG_SH_R7780RP
- ucp = highlander_init_irq_r7780rp();
- if (ucp)
- break;
-#endif
- } while (0);
-
- if (ucp) {
- plat_irq_setup_pins(IRQ_MODE_IRL3210);
- memcpy(irl2irq, ucp, HL_NR_IRL);
- }
-}
-
-/*
- * The Machine Vector
- */
-static struct sh_machine_vector mv_highlander __initmv = {
- .mv_name = "Highlander",
- .mv_setup = highlander_setup,
- .mv_init_irq = highlander_init_irq,
- .mv_irq_demux = highlander_irq_demux,
-};
diff --git a/arch/sh/boards/renesas/rts7751r2d/Kconfig b/arch/sh/boards/renesas/rts7751r2d/Kconfig
deleted file mode 100644
index 8122a9667fc..00000000000
--- a/arch/sh/boards/renesas/rts7751r2d/Kconfig
+++ /dev/null
@@ -1,23 +0,0 @@
-if SH_RTS7751R2D
-
-menu "RTS7751R2D Board Revision"
-
-config RTS7751R2D_PLUS
- bool "R2D-PLUS"
- help
- Selecting this option will configure the kernel for R2D-PLUS.
-
- R2D-PLUS is the smaller of the two R2D board versions, equipped
- with a single PCI slot.
-
-config RTS7751R2D_1
- bool "R2D-1"
- help
- Selecting this option will configure the kernel for R2D-1.
-
- R2D-1 is the larger of the two R2D board versions, equipped
- with two PCI slots.
-endmenu
-
-endif
-
diff --git a/arch/sh/boards/renesas/rts7751r2d/Makefile b/arch/sh/boards/renesas/rts7751r2d/Makefile
deleted file mode 100644
index 0d4c75a72be..00000000000
--- a/arch/sh/boards/renesas/rts7751r2d/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Makefile for the RTS7751R2D specific parts of the kernel
-#
-
-obj-y := setup.o irq.o
diff --git a/arch/sh/boards/renesas/rts7751r2d/irq.c b/arch/sh/boards/renesas/rts7751r2d/irq.c
deleted file mode 100644
index 8e49f6e5124..00000000000
--- a/arch/sh/boards/renesas/rts7751r2d/irq.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * linux/arch/sh/boards/renesas/rts7751r2d/irq.c
- *
- * Copyright (C) 2007 Magnus Damm
- * Copyright (C) 2000 Kazumoto Kojima
- *
- * Renesas Technology Sales RTS7751R2D Support, R2D-PLUS and R2D-1.
- *
- * Modified for RTS7751R2D by
- * Atom Create Engineering Co., Ltd. 2002.
- */
-#include <linux/init.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/io.h>
-#include <asm/rts7751r2d.h>
-
-#define R2D_NR_IRL 13
-
-enum {
- UNUSED = 0,
-
- /* board specific interrupt sources (R2D-1 and R2D-PLUS) */
- EXT, /* EXT_INT0-3 */
- RTC_T, RTC_A, /* Real Time Clock */
- AX88796, /* Ethernet controller (R2D-1 board) */
- KEY, /* Key input (R2D-PLUS board) */
- SDCARD, /* SD Card */
- CF_CD, CF_IDE, /* CF Card Detect + CF IDE */
- SM501, /* SM501 aka Voyager */
- PCI_INTD_RTL8139, /* Ethernet controller */
- PCI_INTC_PCI1520, /* Cardbus/PCMCIA bridge */
- PCI_INTB_RTL8139, /* Ethernet controller with HUB (R2D-PLUS board) */
- PCI_INTB_SLOT, /* PCI Slot 3.3v (R2D-1 board) */
- PCI_INTA_SLOT, /* PCI Slot 3.3v */
- TP, /* Touch Panel */
-};
-
-#ifdef CONFIG_RTS7751R2D_1
-
-/* Vectors for R2D-1 */
-static struct intc_vect vectors_r2d_1[] __initdata = {
- INTC_IRQ(EXT, IRQ_EXT),
- INTC_IRQ(RTC_T, IRQ_RTC_T), INTC_IRQ(RTC_A, IRQ_RTC_A),
- INTC_IRQ(AX88796, IRQ_AX88796), INTC_IRQ(SDCARD, IRQ_SDCARD),
- INTC_IRQ(CF_CD, IRQ_CF_CD), INTC_IRQ(CF_IDE, IRQ_CF_IDE), /* ng */
- INTC_IRQ(SM501, IRQ_VOYAGER),
- INTC_IRQ(PCI_INTD_RTL8139, IRQ_PCI_INTD),
- INTC_IRQ(PCI_INTC_PCI1520, IRQ_PCI_INTC),
- INTC_IRQ(PCI_INTB_SLOT, IRQ_PCI_INTB),
- INTC_IRQ(PCI_INTA_SLOT, IRQ_PCI_INTA),
- INTC_IRQ(TP, IRQ_TP),
-};
-
-/* IRLMSK mask register layout for R2D-1 */
-static struct intc_mask_reg mask_registers_r2d_1[] __initdata = {
- { 0xa4000000, 0, 16, /* IRLMSK */
- { TP, PCI_INTA_SLOT, PCI_INTB_SLOT,
- PCI_INTC_PCI1520, PCI_INTD_RTL8139,
- SM501, CF_IDE, CF_CD, SDCARD, AX88796,
- RTC_A, RTC_T, 0, 0, 0, EXT } },
-};
-
-/* IRLn to IRQ table for R2D-1 */
-static unsigned char irl2irq_r2d_1[R2D_NR_IRL] __initdata = {
- IRQ_PCI_INTD, IRQ_CF_IDE, IRQ_CF_CD, IRQ_PCI_INTC,
- IRQ_VOYAGER, IRQ_AX88796, IRQ_RTC_A, IRQ_RTC_T,
- IRQ_SDCARD, IRQ_PCI_INTA, IRQ_PCI_INTB, IRQ_EXT,
- IRQ_TP,
-};
-
-static DECLARE_INTC_DESC(intc_desc_r2d_1, "r2d-1", vectors_r2d_1,
- NULL, mask_registers_r2d_1, NULL, NULL);
-
-#endif /* CONFIG_RTS7751R2D_1 */
-
-#ifdef CONFIG_RTS7751R2D_PLUS
-
-/* Vectors for R2D-PLUS */
-static struct intc_vect vectors_r2d_plus[] __initdata = {
- INTC_IRQ(EXT, IRQ_EXT),
- INTC_IRQ(RTC_T, IRQ_RTC_T), INTC_IRQ(RTC_A, IRQ_RTC_A),
- INTC_IRQ(KEY, IRQ_KEY), INTC_IRQ(SDCARD, IRQ_SDCARD),
- INTC_IRQ(CF_CD, IRQ_CF_CD), INTC_IRQ(CF_IDE, IRQ_CF_IDE),
- INTC_IRQ(SM501, IRQ_VOYAGER),
- INTC_IRQ(PCI_INTD_RTL8139, IRQ_PCI_INTD),
- INTC_IRQ(PCI_INTC_PCI1520, IRQ_PCI_INTC),
- INTC_IRQ(PCI_INTB_RTL8139, IRQ_PCI_INTB),
- INTC_IRQ(PCI_INTA_SLOT, IRQ_PCI_INTA),
- INTC_IRQ(TP, IRQ_TP),
-};
-
-/* IRLMSK mask register layout for R2D-PLUS */
-static struct intc_mask_reg mask_registers_r2d_plus[] __initdata = {
- { 0xa4000000, 0, 16, /* IRLMSK */
- { TP, PCI_INTA_SLOT, PCI_INTB_RTL8139,
- PCI_INTC_PCI1520, PCI_INTD_RTL8139,
- SM501, CF_IDE, CF_CD, SDCARD, KEY,
- RTC_A, RTC_T, 0, 0, 0, EXT } },
-};
-
-/* IRLn to IRQ table for R2D-PLUS */
-static unsigned char irl2irq_r2d_plus[R2D_NR_IRL] __initdata = {
- IRQ_PCI_INTD, IRQ_CF_IDE, IRQ_CF_CD, IRQ_PCI_INTC,
- IRQ_VOYAGER, IRQ_KEY, IRQ_RTC_A, IRQ_RTC_T,
- IRQ_SDCARD, IRQ_PCI_INTA, IRQ_PCI_INTB, IRQ_EXT,
- IRQ_TP,
-};
-
-static DECLARE_INTC_DESC(intc_desc_r2d_plus, "r2d-plus", vectors_r2d_plus,
- NULL, mask_registers_r2d_plus, NULL, NULL);
-
-#endif /* CONFIG_RTS7751R2D_PLUS */
-
-static unsigned char irl2irq[R2D_NR_IRL];
-
-int rts7751r2d_irq_demux(int irq)
-{
- if (irq >= R2D_NR_IRL || !irl2irq[irq])
- return irq;
-
- return irl2irq[irq];
-}
-
-/*
- * Initialize IRQ setting
- */
-void __init init_rts7751r2d_IRQ(void)
-{
- struct intc_desc *d;
-
- switch (ctrl_inw(PA_VERREG) & 0xf0) {
-#ifdef CONFIG_RTS7751R2D_PLUS
- case 0x10:
- printk(KERN_INFO "Using R2D-PLUS interrupt controller.\n");
- d = &intc_desc_r2d_plus;
- memcpy(irl2irq, irl2irq_r2d_plus, R2D_NR_IRL);
- break;
-#endif
-#ifdef CONFIG_RTS7751R2D_1
- case 0x00: /* according to manual */
- case 0x30: /* in reality */
- printk(KERN_INFO "Using R2D-1 interrupt controller.\n");
- d = &intc_desc_r2d_1;
- memcpy(irl2irq, irl2irq_r2d_1, R2D_NR_IRL);
- break;
-#endif
- default:
- printk(KERN_INFO "Unknown R2D interrupt controller 0x%04x\n",
- ctrl_inw(PA_VERREG));
- return;
- }
-
- register_intc_controller(d);
-}
diff --git a/arch/sh/boards/renesas/rts7751r2d/setup.c b/arch/sh/boards/renesas/rts7751r2d/setup.c
deleted file mode 100644
index f21ee49ef3a..00000000000
--- a/arch/sh/boards/renesas/rts7751r2d/setup.c
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Renesas Technology Sales RTS7751R2D Support.
- *
- * Copyright (C) 2002 - 2006 Atom Create Engineering Co., Ltd.
- * Copyright (C) 2004 - 2007 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/init.h>
-#include <linux/platform_device.h>
-#include <linux/ata_platform.h>
-#include <linux/serial_8250.h>
-#include <linux/sm501.h>
-#include <linux/sm501-regs.h>
-#include <linux/pm.h>
-#include <linux/fb.h>
-#include <linux/spi/spi.h>
-#include <linux/spi/spi_bitbang.h>
-#include <asm/machvec.h>
-#include <asm/rts7751r2d.h>
-#include <asm/io.h>
-#include <asm/io_trapped.h>
-#include <asm/spi.h>
-
-static struct resource cf_ide_resources[] = {
- [0] = {
- .start = PA_AREA5_IO + 0x1000,
- .end = PA_AREA5_IO + 0x1000 + 0x10 - 0x2,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .start = PA_AREA5_IO + 0x80c,
- .end = PA_AREA5_IO + 0x80c,
- .flags = IORESOURCE_MEM,
- },
-#ifndef CONFIG_RTS7751R2D_1 /* For R2D-1 polling is preferred */
- [2] = {
- .start = IRQ_CF_IDE,
- .flags = IORESOURCE_IRQ,
- },
-#endif
-};
-
-static struct pata_platform_info pata_info = {
- .ioport_shift = 1,
-};
-
-static struct platform_device cf_ide_device = {
- .name = "pata_platform",
- .id = -1,
- .num_resources = ARRAY_SIZE(cf_ide_resources),
- .resource = cf_ide_resources,
- .dev = {
- .platform_data = &pata_info,
- },
-};
-
-static struct spi_board_info spi_bus[] = {
- {
- .modalias = "rtc-r9701",
- .max_speed_hz = 1000000,
- .mode = SPI_MODE_3,
- },
-};
-
-static void r2d_chip_select(struct sh_spi_info *spi, int cs, int state)
-{
- BUG_ON(cs != 0); /* Single Epson RTC-9701JE attached on CS0 */
- ctrl_outw(state == BITBANG_CS_ACTIVE, PA_RTCCE);
-}
-
-static struct sh_spi_info spi_info = {
- .num_chipselect = 1,
- .chip_select = r2d_chip_select,
-};
-
-static struct resource spi_sh_sci_resources[] = {
- {
- .start = 0xffe00000,
- .end = 0xffe0001f,
- .flags = IORESOURCE_MEM,
- },
-};
-
-static struct platform_device spi_sh_sci_device = {
- .name = "spi_sh_sci",
- .id = -1,
- .num_resources = ARRAY_SIZE(spi_sh_sci_resources),
- .resource = spi_sh_sci_resources,
- .dev = {
- .platform_data = &spi_info,
- },
-};
-
-static struct resource heartbeat_resources[] = {
- [0] = {
- .start = PA_OUTPORT,
- .end = PA_OUTPORT,
- .flags = IORESOURCE_MEM,
- },
-};
-
-static struct platform_device heartbeat_device = {
- .name = "heartbeat",
- .id = -1,
- .num_resources = ARRAY_SIZE(heartbeat_resources),
- .resource = heartbeat_resources,
-};
-
-#ifdef CONFIG_MFD_SM501
-static struct plat_serial8250_port uart_platform_data[] = {
- {
- .membase = (void __iomem *)0xb3e30000,
- .mapbase = 0xb3e30000,
- .iotype = UPIO_MEM,
- .irq = IRQ_VOYAGER,
- .flags = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ,
- .regshift = 2,
- .uartclk = (9600 * 16),
- },
- { 0 },
-};
-
-static struct platform_device uart_device = {
- .name = "serial8250",
- .id = PLAT8250_DEV_PLATFORM,
- .dev = {
- .platform_data = uart_platform_data,
- },
-};
-
-static struct resource sm501_resources[] = {
- [0] = {
- .start = 0x10000000,
- .end = 0x13e00000 - 1,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .start = 0x13e00000,
- .end = 0x13ffffff,
- .flags = IORESOURCE_MEM,
- },
- [2] = {
- .start = IRQ_VOYAGER,
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct fb_videomode sm501_default_mode = {
- .pixclock = 35714,
- .xres = 640,
- .yres = 480,
- .left_margin = 105,
- .right_margin = 50,
- .upper_margin = 35,
- .lower_margin = 0,
- .hsync_len = 96,
- .vsync_len = 2,
- .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-};
-
-static struct sm501_platdata_fbsub sm501_pdata_fbsub_pnl = {
- .def_bpp = 16,
- .def_mode = &sm501_default_mode,
- .flags = SM501FB_FLAG_USE_INIT_MODE |
- SM501FB_FLAG_USE_HWCURSOR |
- SM501FB_FLAG_USE_HWACCEL |
- SM501FB_FLAG_DISABLE_AT_EXIT,
-};
-
-static struct sm501_platdata_fbsub sm501_pdata_fbsub_crt = {
- .flags = (SM501FB_FLAG_USE_INIT_MODE |
- SM501FB_FLAG_USE_HWCURSOR |
- SM501FB_FLAG_USE_HWACCEL |
- SM501FB_FLAG_DISABLE_AT_EXIT),
-
-};
-
-static struct sm501_platdata_fb sm501_fb_pdata = {
- .fb_route = SM501_FB_OWN,
- .fb_crt = &sm501_pdata_fbsub_crt,
- .fb_pnl = &sm501_pdata_fbsub_pnl,
- .flags = SM501_FBPD_SWAP_FB_ENDIAN,
-};
-
-static struct sm501_initdata sm501_initdata = {
- .gpio_high = {
- .set = 0x00001fe0,
- .mask = 0x0,
- },
- .devices = SM501_USE_USB_HOST,
-};
-
-static struct sm501_platdata sm501_platform_data = {
- .init = &sm501_initdata,
- .fb = &sm501_fb_pdata,
-};
-
-static struct platform_device sm501_device = {
- .name = "sm501",
- .id = -1,
- .dev = {
- .platform_data = &sm501_platform_data,
- },
- .num_resources = ARRAY_SIZE(sm501_resources),
- .resource = sm501_resources,
-};
-
-#endif /* CONFIG_MFD_SM501 */
-
-static struct platform_device *rts7751r2d_devices[] __initdata = {
-#ifdef CONFIG_MFD_SM501
- &uart_device,
- &sm501_device,
-#endif
- &heartbeat_device,
- &spi_sh_sci_device,
-};
-
-/*
- * The CF is connected with a 16-bit bus where 8-bit operations are
- * unsupported. The linux ata driver is however using 8-bit operations, so
- * insert a trapped io filter to convert 8-bit operations into 16-bit.
- */
-static struct trapped_io cf_trapped_io = {
- .resource = cf_ide_resources,
- .num_resources = 2,
- .minimum_bus_width = 16,
-};
-
-static int __init rts7751r2d_devices_setup(void)
-{
- if (register_trapped_io(&cf_trapped_io) == 0)
- platform_device_register(&cf_ide_device);
- spi_register_board_info(spi_bus, ARRAY_SIZE(spi_bus));
- return platform_add_devices(rts7751r2d_devices,
- ARRAY_SIZE(rts7751r2d_devices));
-}
-__initcall(rts7751r2d_devices_setup);
-
-static void rts7751r2d_power_off(void)
-{
- ctrl_outw(0x0001, PA_POWOFF);
-}
-
-/*
- * Initialize the board
- */
-static void __init rts7751r2d_setup(char **cmdline_p)
-{
- void __iomem *sm501_reg;
- u16 ver = ctrl_inw(PA_VERREG);
-
- printk(KERN_INFO "Renesas Technology Sales RTS7751R2D support.\n");
-
- printk(KERN_INFO "FPGA version:%d (revision:%d)\n",
- (ver >> 4) & 0xf, ver & 0xf);
-
- ctrl_outw(0x0000, PA_OUTPORT);
- pm_power_off = rts7751r2d_power_off;
-
- /* sm501 dram configuration:
- * ColSizeX = 11 - External Memory Column Size: 256 words.
- * APX = 1 - External Memory Active to Pre-Charge Delay: 7 clocks.
- * RstX = 1 - External Memory Reset: Normal.
- * Rfsh = 1 - Local Memory Refresh to Command Delay: 12 clocks.
- * BwC = 1 - Local Memory Block Write Cycle Time: 2 clocks.
- * BwP = 1 - Local Memory Block Write to Pre-Charge Delay: 1 clock.
- * AP = 1 - Internal Memory Active to Pre-Charge Delay: 7 clocks.
- * Rst = 1 - Internal Memory Reset: Normal.
- * RA = 1 - Internal Memory Remain in Active State: Do not remain.
- */
-
- sm501_reg = (void __iomem *)0xb3e00000 + SM501_DRAM_CONTROL;
- writel(readl(sm501_reg) | 0x00f107c0, sm501_reg);
-
- /*
- * Power Mode Gate - Enable UART0
- */
-
- sm501_reg = (void __iomem *)0xb3e00000 + SM501_POWER_MODE_0_GATE;
- writel(readl(sm501_reg) | (1 << SM501_GATE_UART0), sm501_reg);
-
- sm501_reg = (void __iomem *)0xb3e00000 + SM501_POWER_MODE_1_GATE;
- writel(readl(sm501_reg) | (1 << SM501_GATE_UART0), sm501_reg);
-}
-
-/*
- * The Machine Vector
- */
-static struct sh_machine_vector mv_rts7751r2d __initmv = {
- .mv_name = "RTS7751R2D",
- .mv_setup = rts7751r2d_setup,
- .mv_init_irq = init_rts7751r2d_IRQ,
- .mv_irq_demux = rts7751r2d_irq_demux,
-};
diff --git a/arch/sh/boards/renesas/sdk7780/Kconfig b/arch/sh/boards/renesas/sdk7780/Kconfig
deleted file mode 100644
index 065f1df09bf..00000000000
--- a/arch/sh/boards/renesas/sdk7780/Kconfig
+++ /dev/null
@@ -1,16 +0,0 @@
-if SH_SDK7780
-
-choice
- prompt "SDK7780 options"
- default SH_SDK7780_BASE
-
-config SH_SDK7780_BASE
- bool "SDK7780 with base-board support"
- depends on CPU_SUBTYPE_SH7780
- help
- Selecting this option will enable support for the expansion
- baseboard devices. If in doubt, say Y.
-
-endchoice
-
-endif
diff --git a/arch/sh/boards/renesas/sdk7780/Makefile b/arch/sh/boards/renesas/sdk7780/Makefile
deleted file mode 100644
index 3d8f0befc35..00000000000
--- a/arch/sh/boards/renesas/sdk7780/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Makefile for the SDK7780 specific parts of the kernel
-#
-obj-y := setup.o irq.o
-
diff --git a/arch/sh/boards/renesas/sdk7780/irq.c b/arch/sh/boards/renesas/sdk7780/irq.c
deleted file mode 100644
index 87cdc578f6f..00000000000
--- a/arch/sh/boards/renesas/sdk7780/irq.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * linux/arch/sh/boards/renesas/sdk7780/irq.c
- *
- * Renesas Technology Europe SDK7780 Support.
- *
- * Copyright (C) 2008 Nicholas Beck <nbeck@mpc-data.co.uk>
- *
- * 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/init.h>
-#include <linux/irq.h>
-#include <linux/io.h>
-#include <asm/sdk7780.h>
-
-enum {
- UNUSED = 0,
- /* board specific interrupt sources */
- SMC91C111, /* Ethernet controller */
-};
-
-static struct intc_vect fpga_vectors[] __initdata = {
- INTC_IRQ(SMC91C111, IRQ_ETHERNET),
-};
-
-static struct intc_mask_reg fpga_mask_registers[] __initdata = {
- { 0, FPGA_IRQ0MR, 16,
- { 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, SMC91C111, 0, 0, 0, 0 } },
-};
-
-static DECLARE_INTC_DESC(fpga_intc_desc, "sdk7780-irq", fpga_vectors,
- NULL, fpga_mask_registers, NULL, NULL);
-
-void __init init_sdk7780_IRQ(void)
-{
- printk(KERN_INFO "Using SDK7780 interrupt controller.\n");
-
- ctrl_outw(0xFFFF, FPGA_IRQ0MR);
- /* Setup IRL 0-3 */
- ctrl_outw(0x0003, FPGA_IMSR);
- plat_irq_setup_pins(IRQ_MODE_IRL3210);
-
- register_intc_controller(&fpga_intc_desc);
-}
diff --git a/arch/sh/boards/renesas/sdk7780/setup.c b/arch/sh/boards/renesas/sdk7780/setup.c
deleted file mode 100644
index acc5932587f..00000000000
--- a/arch/sh/boards/renesas/sdk7780/setup.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * arch/sh/boards/renesas/sdk7780/setup.c
- *
- * Renesas Solutions SH7780 SDK Support
- * Copyright (C) 2008 Nicholas Beck <nbeck@mpc-data.co.uk>
- *
- * 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/init.h>
-#include <linux/types.h>
-#include <linux/platform_device.h>
-#include <linux/ata_platform.h>
-#include <asm/machvec.h>
-#include <asm/sdk7780.h>
-#include <asm/heartbeat.h>
-#include <asm/io.h>
-#include <asm/addrspace.h>
-
-#define GPIO_PECR 0xFFEA0008
-
-//* Heartbeat */
-static struct heartbeat_data heartbeat_data = {
- .regsize = 16,
-};
-
-static struct resource heartbeat_resources[] = {
- [0] = {
- .start = PA_LED,
- .end = PA_LED,
- .flags = IORESOURCE_MEM,
- },
-};
-
-static struct platform_device heartbeat_device = {
- .name = "heartbeat",
- .id = -1,
- .dev = {
- .platform_data = &heartbeat_data,
- },
- .num_resources = ARRAY_SIZE(heartbeat_resources),
- .resource = heartbeat_resources,
-};
-
-/* SMC91x */
-static struct resource smc91x_eth_resources[] = {
- [0] = {
- .name = "smc91x-regs" ,
- .start = PA_LAN + 0x300,
- .end = PA_LAN + 0x300 + 0x10 ,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .start = IRQ_ETHERNET,
- .end = IRQ_ETHERNET,
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct platform_device smc91x_eth_device = {
- .name = "smc91x",
- .id = 0,
- .dev = {
- .dma_mask = NULL, /* don't use dma */
- .coherent_dma_mask = 0xffffffff,
- },
- .num_resources = ARRAY_SIZE(smc91x_eth_resources),
- .resource = smc91x_eth_resources,
-};
-
-static struct platform_device *sdk7780_devices[] __initdata = {
- &heartbeat_device,
- &smc91x_eth_device,
-};
-
-static int __init sdk7780_devices_setup(void)
-{
- return platform_add_devices(sdk7780_devices,
- ARRAY_SIZE(sdk7780_devices));
-}
-device_initcall(sdk7780_devices_setup);
-
-static void __init sdk7780_setup(char **cmdline_p)
-{
- u16 ver = ctrl_inw(FPGA_FPVERR);
- u16 dateStamp = ctrl_inw(FPGA_FPDATER);
-
- printk(KERN_INFO "Renesas Technology Europe SDK7780 support.\n");
- printk(KERN_INFO "Board version: %d (revision %d), "
- "FPGA version: %d (revision %d), datestamp : %d\n",
- (ver >> 12) & 0xf, (ver >> 8) & 0xf,
- (ver >> 4) & 0xf, ver & 0xf,
- dateStamp);
-
- /* Setup pin mux'ing for PCIC */
- ctrl_outw(0x0000, GPIO_PECR);
-}
-
-/*
- * The Machine Vector
- */
-static struct sh_machine_vector mv_se7780 __initmv = {
- .mv_name = "Renesas SDK7780-R3" ,
- .mv_setup = sdk7780_setup,
- .mv_nr_irqs = 111,
- .mv_init_irq = init_sdk7780_IRQ,
-};
-
diff --git a/arch/sh/boards/renesas/systemh/Makefile b/arch/sh/boards/renesas/systemh/Makefile
deleted file mode 100644
index 2cc6a23d9d3..00000000000
--- a/arch/sh/boards/renesas/systemh/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Makefile for the SystemH specific parts of the kernel
-#
-
-obj-y := setup.o irq.o io.o
-
-# XXX: This wants to be consolidated in arch/sh/drivers/pci, and more
-# importantly, with the generic sh7751_pcic_init() code. For now, we'll
-# just abuse the hell out of kbuild, because we can..
-
-obj-$(CONFIG_PCI) += pci.o
-pci-y := ../../se/7751/pci.o
-
diff --git a/arch/sh/boards/renesas/systemh/io.c b/arch/sh/boards/renesas/systemh/io.c
deleted file mode 100644
index 1b767e1a142..00000000000
--- a/arch/sh/boards/renesas/systemh/io.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * linux/arch/sh/boards/renesas/systemh/io.c
- *
- * Copyright (C) 2001 Ian da Silva, Jeremy Siegel
- * Based largely on io_se.c.
- *
- * I/O routine for Hitachi 7751 Systemh.
- */
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/pci.h>
-#include <asm/systemh7751.h>
-#include <asm/addrspace.h>
-#include <asm/io.h>
-
-#define ETHER_IOMAP(adr) (0xB3000000 + (adr)) /*map to 16bits access area
- of smc lan chip*/
-static inline volatile __u16 *
-port2adr(unsigned int port)
-{
- if (port >= 0x2000)
- return (volatile __u16 *) (PA_MRSHPC + (port - 0x2000));
- maybebadio((unsigned long)port);
- return (volatile __u16*)port;
-}
-
-/*
- * General outline: remap really low stuff [eventually] to SuperIO,
- * stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO)
- * is mapped through the PCI IO window. Stuff with high bits (PXSEG)
- * should be way beyond the window, and is used w/o translation for
- * compatibility.
- */
-unsigned char sh7751systemh_inb(unsigned long port)
-{
- if (PXSEG(port))
- return *(volatile unsigned char *)port;
- else if (is_pci_ioaddr(port))
- return *(volatile unsigned char *)pci_ioaddr(port);
- else if (port <= 0x3F1)
- return *(volatile unsigned char *)ETHER_IOMAP(port);
- else
- return (*port2adr(port))&0xff;
-}
-
-unsigned char sh7751systemh_inb_p(unsigned long port)
-{
- unsigned char v;
-
- if (PXSEG(port))
- v = *(volatile unsigned char *)port;
- else if (is_pci_ioaddr(port))
- v = *(volatile unsigned char *)pci_ioaddr(port);
- else if (port <= 0x3F1)
- v = *(volatile unsigned char *)ETHER_IOMAP(port);
- else
- v = (*port2adr(port))&0xff;
- ctrl_delay();
- return v;
-}
-
-unsigned short sh7751systemh_inw(unsigned long port)
-{
- if (PXSEG(port))
- return *(volatile unsigned short *)port;
- else if (is_pci_ioaddr(port))
- return *(volatile unsigned short *)pci_ioaddr(port);
- else if (port >= 0x2000)
- return *port2adr(port);
- else if (port <= 0x3F1)
- return *(volatile unsigned int *)ETHER_IOMAP(port);
- else
- maybebadio(port);
- return 0;
-}
-
-unsigned int sh7751systemh_inl(unsigned long port)
-{
- if (PXSEG(port))
- return *(volatile unsigned long *)port;
- else if (is_pci_ioaddr(port))
- return *(volatile unsigned int *)pci_ioaddr(port);
- else if (port >= 0x2000)
- return *port2adr(port);
- else if (port <= 0x3F1)
- return *(volatile unsigned int *)ETHER_IOMAP(port);
- else
- maybebadio(port);
- return 0;
-}
-
-void sh7751systemh_outb(unsigned char value, unsigned long port)
-{
-
- if (PXSEG(port))
- *(volatile unsigned char *)port = value;
- else if (is_pci_ioaddr(port))
- *((unsigned char*)pci_ioaddr(port)) = value;
- else if (port <= 0x3F1)
- *(volatile unsigned char *)ETHER_IOMAP(port) = value;
- else
- *(port2adr(port)) = value;
-}
-
-void sh7751systemh_outb_p(unsigned char value, unsigned long port)
-{
- if (PXSEG(port))
- *(volatile unsigned char *)port = value;
- else if (is_pci_ioaddr(port))
- *((unsigned char*)pci_ioaddr(port)) = value;
- else if (port <= 0x3F1)
- *(volatile unsigned char *)ETHER_IOMAP(port) = value;
- else
- *(port2adr(port)) = value;
- ctrl_delay();
-}
-
-void sh7751systemh_outw(unsigned short value, unsigned long port)
-{
- if (PXSEG(port))
- *(volatile unsigned short *)port = value;
- else if (is_pci_ioaddr(port))
- *((unsigned short *)pci_ioaddr(port)) = value;
- else if (port >= 0x2000)
- *port2adr(port) = value;
- else if (port <= 0x3F1)
- *(volatile unsigned short *)ETHER_IOMAP(port) = value;
- else
- maybebadio(port);
-}
-
-void sh7751systemh_outl(unsigned int value, unsigned long port)
-{
- if (PXSEG(port))
- *(volatile unsigned long *)port = value;
- else if (is_pci_ioaddr(port))
- *((unsigned long*)pci_ioaddr(port)) = value;
- else
- maybebadio(port);
-}
-
-void sh7751systemh_insb(unsigned long port, void *addr, unsigned long count)
-{
- unsigned char *p = addr;
- while (count--) *p++ = sh7751systemh_inb(port);
-}
-
-void sh7751systemh_insw(unsigned long port, void *addr, unsigned long count)
-{
- unsigned short *p = addr;
- while (count--) *p++ = sh7751systemh_inw(port);
-}
-
-void sh7751systemh_insl(unsigned long port, void *addr, unsigned long count)
-{
- maybebadio(port);
-}
-
-void sh7751systemh_outsb(unsigned long port, const void *addr, unsigned long count)
-{
- unsigned char *p = (unsigned char*)addr;
- while (count--) sh7751systemh_outb(*p++, port);
-}
-
-void sh7751systemh_outsw(unsigned long port, const void *addr, unsigned long count)
-{
- unsigned short *p = (unsigned short*)addr;
- while (count--) sh7751systemh_outw(*p++, port);
-}
-
-void sh7751systemh_outsl(unsigned long port, const void *addr, unsigned long count)
-{
- maybebadio(port);
-}
diff --git a/arch/sh/boards/renesas/systemh/irq.c b/arch/sh/boards/renesas/systemh/irq.c
deleted file mode 100644
index 0ba2fe674c4..00000000000
--- a/arch/sh/boards/renesas/systemh/irq.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * linux/arch/sh/boards/renesas/systemh/irq.c
- *
- * Copyright (C) 2000 Kazumoto Kojima
- *
- * Hitachi SystemH Support.
- *
- * Modified for 7751 SystemH by
- * Jonathan Short.
- */
-
-#include <linux/init.h>
-#include <linux/irq.h>
-
-#include <linux/hdreg.h>
-#include <linux/ide.h>
-#include <asm/io.h>
-#include <asm/systemh7751.h>
-#include <asm/smc37c93x.h>
-
-/* address of external interrupt mask register
- * address must be set prior to use these (maybe in init_XXX_irq())
- * XXX : is it better to use .config than specifying it in code? */
-static unsigned long *systemh_irq_mask_register = (unsigned long *)0xB3F10004;
-static unsigned long *systemh_irq_request_register = (unsigned long *)0xB3F10000;
-
-/* forward declaration */
-static unsigned int startup_systemh_irq(unsigned int irq);
-static void shutdown_systemh_irq(unsigned int irq);
-static void enable_systemh_irq(unsigned int irq);
-static void disable_systemh_irq(unsigned int irq);
-static void mask_and_ack_systemh(unsigned int);
-static void end_systemh_irq(unsigned int irq);
-
-/* hw_interrupt_type */
-static struct hw_interrupt_type systemh_irq_type = {
- .typename = " SystemH Register",
- .startup = startup_systemh_irq,
- .shutdown = shutdown_systemh_irq,
- .enable = enable_systemh_irq,
- .disable = disable_systemh_irq,
- .ack = mask_and_ack_systemh,
- .end = end_systemh_irq
-};
-
-static unsigned int startup_systemh_irq(unsigned int irq)
-{
- enable_systemh_irq(irq);
- return 0; /* never anything pending */
-}
-
-static void shutdown_systemh_irq(unsigned int irq)
-{
- disable_systemh_irq(irq);
-}
-
-static void disable_systemh_irq(unsigned int irq)
-{
- if (systemh_irq_mask_register) {
- unsigned long val, mask = 0x01 << 1;
-
- /* Clear the "irq"th bit in the mask and set it in the request */
- val = ctrl_inl((unsigned long)systemh_irq_mask_register);
- val &= ~mask;
- ctrl_outl(val, (unsigned long)systemh_irq_mask_register);
-
- val = ctrl_inl((unsigned long)systemh_irq_request_register);
- val |= mask;
- ctrl_outl(val, (unsigned long)systemh_irq_request_register);
- }
-}
-
-static void enable_systemh_irq(unsigned int irq)
-{
- if (systemh_irq_mask_register) {
- unsigned long val, mask = 0x01 << 1;
-
- /* Set "irq"th bit in the mask register */
- val = ctrl_inl((unsigned long)systemh_irq_mask_register);
- val |= mask;
- ctrl_outl(val, (unsigned long)systemh_irq_mask_register);
- }
-}
-
-static void mask_and_ack_systemh(unsigned int irq)
-{
- disable_systemh_irq(irq);
-}
-
-static void end_systemh_irq(unsigned int irq)
-{
- if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
- enable_systemh_irq(irq);
-}
-
-void make_systemh_irq(unsigned int irq)
-{
- disable_irq_nosync(irq);
- irq_desc[irq].chip = &systemh_irq_type;
- disable_systemh_irq(irq);
-}
-
diff --git a/arch/sh/boards/renesas/systemh/setup.c b/arch/sh/boards/renesas/systemh/setup.c
deleted file mode 100644
index ee78af84277..00000000000
--- a/arch/sh/boards/renesas/systemh/setup.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * linux/arch/sh/boards/renesas/systemh/setup.c
- *
- * Copyright (C) 2000 Kazumoto Kojima
- * Copyright (C) 2003 Paul Mundt
- *
- * Hitachi SystemH Support.
- *
- * Modified for 7751 SystemH by Jonathan Short.
- *
- * Rewritten for 2.6 by 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/init.h>
-#include <asm/machvec.h>
-#include <asm/systemh7751.h>
-
-extern void make_systemh_irq(unsigned int irq);
-
-/*
- * Initialize IRQ setting
- */
-static void __init sh7751systemh_init_irq(void)
-{
- make_systemh_irq(0xb); /* Ethernet interrupt */
-}
-
-static struct sh_machine_vector mv_7751systemh __initmv = {
- .mv_name = "7751 SystemH",
- .mv_nr_irqs = 72,
-
- .mv_inb = sh7751systemh_inb,
- .mv_inw = sh7751systemh_inw,
- .mv_inl = sh7751systemh_inl,
- .mv_outb = sh7751systemh_outb,
- .mv_outw = sh7751systemh_outw,
- .mv_outl = sh7751systemh_outl,
-
- .mv_inb_p = sh7751systemh_inb_p,
- .mv_inw_p = sh7751systemh_inw,
- .mv_inl_p = sh7751systemh_inl,
- .mv_outb_p = sh7751systemh_outb_p,
- .mv_outw_p = sh7751systemh_outw,
- .mv_outl_p = sh7751systemh_outl,
-
- .mv_insb = sh7751systemh_insb,
- .mv_insw = sh7751systemh_insw,
- .mv_insl = sh7751systemh_insl,
- .mv_outsb = sh7751systemh_outsb,
- .mv_outsw = sh7751systemh_outsw,
- .mv_outsl = sh7751systemh_outsl,
-
- .mv_init_irq = sh7751systemh_init_irq,
-};
diff --git a/arch/sh/boards/renesas/x3proto/Makefile b/arch/sh/boards/renesas/x3proto/Makefile
deleted file mode 100644
index 983e4551fec..00000000000
--- a/arch/sh/boards/renesas/x3proto/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-y += setup.o ilsel.o
diff --git a/arch/sh/boards/renesas/x3proto/ilsel.c b/arch/sh/boards/renesas/x3proto/ilsel.c
deleted file mode 100644
index b5c673c3933..00000000000
--- a/arch/sh/boards/renesas/x3proto/ilsel.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * arch/sh/boards/renesas/x3proto/ilsel.c
- *
- * Helper routines for SH-X3 proto board ILSEL.
- *
- * Copyright (C) 2007 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/init.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/bitmap.h>
-#include <linux/io.h>
-#include <asm/ilsel.h>
-
-/*
- * ILSEL is split across:
- *
- * ILSEL0 - 0xb8100004 [ Levels 1 - 4 ]
- * ILSEL1 - 0xb8100006 [ Levels 5 - 8 ]
- * ILSEL2 - 0xb8100008 [ Levels 9 - 12 ]
- * ILSEL3 - 0xb810000a [ Levels 13 - 15 ]
- *
- * With each level being relative to an ilsel_source_t.
- */
-#define ILSEL_BASE 0xb8100004
-#define ILSEL_LEVELS 15
-
-/*
- * ILSEL level map, in descending order from the highest level down.
- *
- * Supported levels are 1 - 15 spread across ILSEL0 - ILSEL4, mapping
- * directly to IRLs. As the IRQs are numbered in reverse order relative
- * to the interrupt level, the level map is carefully managed to ensure a
- * 1:1 mapping between the bit position and the IRQ number.
- *
- * This careful constructions allows ilsel_enable*() to be referenced
- * directly for hooking up an ILSEL set and getting back an IRQ which can
- * subsequently be used for internal accounting in the (optional) disable
- * path.
- */
-static unsigned long ilsel_level_map;
-
-static inline unsigned int ilsel_offset(unsigned int bit)
-{
- return ILSEL_LEVELS - bit - 1;
-}
-
-static inline unsigned long mk_ilsel_addr(unsigned int bit)
-{
- return ILSEL_BASE + ((ilsel_offset(bit) >> 1) & ~0x1);
-}
-
-static inline unsigned int mk_ilsel_shift(unsigned int bit)
-{
- return (ilsel_offset(bit) & 0x3) << 2;
-}
-
-static void __ilsel_enable(ilsel_source_t set, unsigned int bit)
-{
- unsigned int tmp, shift;
- unsigned long addr;
-
- addr = mk_ilsel_addr(bit);
- shift = mk_ilsel_shift(bit);
-
- pr_debug("%s: bit#%d: addr - 0x%08lx (shift %d, set %d)\n",
- __func__, bit, addr, shift, set);
-
- tmp = ctrl_inw(addr);
- tmp &= ~(0xf << shift);
- tmp |= set << shift;
- ctrl_outw(tmp, addr);
-}
-
-/**
- * ilsel_enable - Enable an ILSEL set.
- * @set: ILSEL source (see ilsel_source_t enum in include/asm-sh/ilsel.h).
- *
- * Enables a given non-aliased ILSEL source (<= ILSEL_KEY) at the highest
- * available interrupt level. Callers should take care to order callsites
- * noting descending interrupt levels. Aliasing FPGA and external board
- * IRQs need to use ilsel_enable_fixed().
- *
- * The return value is an IRQ number that can later be taken down with
- * ilsel_disable().
- */
-int ilsel_enable(ilsel_source_t set)
-{
- unsigned int bit;
-
- /* Aliased sources must use ilsel_enable_fixed() */
- BUG_ON(set > ILSEL_KEY);
-
- do {
- bit = find_first_zero_bit(&ilsel_level_map, ILSEL_LEVELS);
- } while (test_and_set_bit(bit, &ilsel_level_map));
-
- __ilsel_enable(set, bit);
-
- return bit;
-}
-EXPORT_SYMBOL_GPL(ilsel_enable);
-
-/**
- * ilsel_enable_fixed - Enable an ILSEL set at a fixed interrupt level
- * @set: ILSEL source (see ilsel_source_t enum in include/asm-sh/ilsel.h).
- * @level: Interrupt level (1 - 15)
- *
- * Enables a given ILSEL source at a fixed interrupt level. Necessary
- * both for level reservation as well as for aliased sources that only
- * exist on special ILSEL#s.
- *
- * Returns an IRQ number (as ilsel_enable()).
- */
-int ilsel_enable_fixed(ilsel_source_t set, unsigned int level)
-{
- unsigned int bit = ilsel_offset(level - 1);
-
- if (test_and_set_bit(bit, &ilsel_level_map))
- return -EBUSY;
-
- __ilsel_enable(set, bit);
-
- return bit;
-}
-EXPORT_SYMBOL_GPL(ilsel_enable_fixed);
-
-/**
- * ilsel_disable - Disable an ILSEL set
- * @irq: Bit position for ILSEL set value (retval from enable routines)
- *
- * Disable a previously enabled ILSEL set.
- */
-void ilsel_disable(unsigned int irq)
-{
- unsigned long addr;
- unsigned int tmp;
-
- addr = mk_ilsel_addr(irq);
-
- tmp = ctrl_inw(addr);
- tmp &= ~(0xf << mk_ilsel_shift(irq));
- ctrl_outw(tmp, addr);
-
- clear_bit(irq, &ilsel_level_map);
-}
-EXPORT_SYMBOL_GPL(ilsel_disable);
diff --git a/arch/sh/boards/renesas/x3proto/setup.c b/arch/sh/boards/renesas/x3proto/setup.c
deleted file mode 100644
index abc5b6d418f..00000000000
--- a/arch/sh/boards/renesas/x3proto/setup.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * arch/sh/boards/renesas/x3proto/setup.c
- *
- * Renesas SH-X3 Prototype Board Support.
- *
- * Copyright (C) 2007 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/init.h>
-#include <linux/platform_device.h>
-#include <linux/kernel.h>
-#include <linux/io.h>
-#include <asm/ilsel.h>
-
-static struct resource heartbeat_resources[] = {
- [0] = {
- .start = 0xb8140020,
- .end = 0xb8140020,
- .flags = IORESOURCE_MEM,
- },
-};
-
-static struct platform_device heartbeat_device = {
- .name = "heartbeat",
- .id = -1,
- .num_resources = ARRAY_SIZE(heartbeat_resources),
- .resource = heartbeat_resources,
-};
-
-static struct resource smc91x_resources[] = {
- [0] = {
- .start = 0x18000300,
- .end = 0x18000300 + 0x10 - 1,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- /* Filled in by ilsel */
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct platform_device smc91x_device = {
- .name = "smc91x",
- .id = -1,
- .resource = smc91x_resources,
- .num_resources = ARRAY_SIZE(smc91x_resources),
-};
-
-static struct resource r8a66597_usb_host_resources[] = {
- [0] = {
- .name = "r8a66597_hcd",
- .start = 0x18040000,
- .end = 0x18080000 - 1,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .name = "r8a66597_hcd",
- /* Filled in by ilsel */
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct platform_device r8a66597_usb_host_device = {
- .name = "r8a66597_hcd",
- .id = -1,
- .dev = {
- .dma_mask = NULL, /* don't use dma */
- .coherent_dma_mask = 0xffffffff,
- },
- .num_resources = ARRAY_SIZE(r8a66597_usb_host_resources),
- .resource = r8a66597_usb_host_resources,
-};
-
-static struct resource m66592_usb_peripheral_resources[] = {
- [0] = {
- .name = "m66592_udc",
- .start = 0x18080000,
- .end = 0x180c0000 - 1,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .name = "m66592_udc",
- /* Filled in by ilsel */
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct platform_device m66592_usb_peripheral_device = {
- .name = "m66592_udc",
- .id = -1,
- .dev = {
- .dma_mask = NULL, /* don't use dma */
- .coherent_dma_mask = 0xffffffff,
- },
- .num_resources = ARRAY_SIZE(m66592_usb_peripheral_resources),
- .resource = m66592_usb_peripheral_resources,
-};
-
-static struct platform_device *x3proto_devices[] __initdata = {
- &heartbeat_device,
- &smc91x_device,
- &r8a66597_usb_host_device,
- &m66592_usb_peripheral_device,
-};
-
-static int __init x3proto_devices_setup(void)
-{
- r8a66597_usb_host_resources[1].start =
- r8a66597_usb_host_resources[1].end = ilsel_enable(ILSEL_USBH_I);
-
- m66592_usb_peripheral_resources[1].start =
- m66592_usb_peripheral_resources[1].end = ilsel_enable(ILSEL_USBP_I);
-
- smc91x_resources[1].start =
- smc91x_resources[1].end = ilsel_enable(ILSEL_LAN);
-
- return platform_add_devices(x3proto_devices,
- ARRAY_SIZE(x3proto_devices));
-}
-device_initcall(x3proto_devices_setup);
-
-static void __init x3proto_init_irq(void)
-{
- plat_irq_setup_pins(IRQ_MODE_IRL3210);
-
- /* Set ICR0.LVLMODE */
- ctrl_outl(ctrl_inl(0xfe410000) | (1 << 21), 0xfe410000);
-}
-
-static struct sh_machine_vector mv_x3proto __initmv = {
- .mv_name = "x3proto",
- .mv_init_irq = x3proto_init_irq,
-};