All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] ARM platform spring cleaning
@ 2013-03-14 22:12 Arnd Bergmann
  2013-03-14 22:12 ` [PATCH 1/6] ARM: gemini: get platform to build again Arnd Bergmann
                   ` (5 more replies)
  0 siblings, 6 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:12 UTC (permalink / raw)
  To: linux-arm-kernel

We have discussed cleaning these up before, but we never actually
removed them. For all I can tell, none of these have any users
in the upstream kernel, so they can be removed. If you know of
anyone using them, please yell now, or send a revert patch
later if you really want them back.

Arnd Bergmann (6):
  ARM: gemini: get platform to build again
  ARM: gemini: remove platform support
  ARM: remove fa526 CPU support
  ARM: l7200: remove zombie file
  ARM: kill Hynix h720x platform
  mtd: remove h720x flash support

 MAINTAINERS                                     |  14 --
 arch/arm/Kconfig                                |  22 +-
 arch/arm/Makefile                               |   3 -
 arch/arm/boot/compressed/head.S                 |  28 ---
 arch/arm/configs/h7201_defconfig                |  27 ---
 arch/arm/configs/h7202_defconfig                |  47 ----
 arch/arm/include/asm/barrier.h                  |   6 -
 arch/arm/include/asm/glue-cache.h               |   8 -
 arch/arm/include/asm/glue-proc.h                |   9 -
 arch/arm/include/asm/page.h                     |   8 -
 arch/arm/include/asm/tlbflush.h                 |  19 --
 arch/arm/mach-gemini/Kconfig                    |  40 ----
 arch/arm/mach-gemini/Makefile                   |  13 --
 arch/arm/mach-gemini/Makefile.boot              |   9 -
 arch/arm/mach-gemini/board-nas4220b.c           | 106 ---------
 arch/arm/mach-gemini/board-rut1xx.c             |  90 --------
 arch/arm/mach-gemini/board-wbd111.c             | 133 ------------
 arch/arm/mach-gemini/board-wbd222.c             | 133 ------------
 arch/arm/mach-gemini/common.h                   |  29 ---
 arch/arm/mach-gemini/devices.c                  | 118 ----------
 arch/arm/mach-gemini/gpio.c                     | 230 --------------------
 arch/arm/mach-gemini/idle.c                     |  29 ---
 arch/arm/mach-gemini/include/mach/debug-macro.S |  21 --
 arch/arm/mach-gemini/include/mach/entry-macro.S |  33 ---
 arch/arm/mach-gemini/include/mach/global_reg.h  | 278 ------------------------
 arch/arm/mach-gemini/include/mach/gpio.h        |  20 --
 arch/arm/mach-gemini/include/mach/hardware.h    |  74 -------
 arch/arm/mach-gemini/include/mach/irqs.h        |  53 -----
 arch/arm/mach-gemini/include/mach/system.h      |  23 --
 arch/arm/mach-gemini/include/mach/timex.h       |  13 --
 arch/arm/mach-gemini/include/mach/uncompress.h  |  42 ----
 arch/arm/mach-gemini/irq.c                      | 103 ---------
 arch/arm/mach-gemini/mm.c                       |  82 -------
 arch/arm/mach-gemini/time.c                     |  89 --------
 arch/arm/mach-h720x/Kconfig                     |  40 ----
 arch/arm/mach-h720x/Makefile                    |  16 --
 arch/arm/mach-h720x/Makefile.boot               |   2 -
 arch/arm/mach-h720x/common.c                    | 268 -----------------------
 arch/arm/mach-h720x/common.h                    |  30 ---
 arch/arm/mach-h720x/cpu-h7201.c                 |  57 -----
 arch/arm/mach-h720x/cpu-h7202.c                 | 225 -------------------
 arch/arm/mach-h720x/h7201-eval.c                |  38 ----
 arch/arm/mach-h720x/h7202-eval.c                |  81 -------
 arch/arm/mach-h720x/include/mach/boards.h       |  53 -----
 arch/arm/mach-h720x/include/mach/debug-macro.S  |  40 ----
 arch/arm/mach-h720x/include/mach/entry-macro.S  |  57 -----
 arch/arm/mach-h720x/include/mach/h7201-regs.h   |  67 ------
 arch/arm/mach-h720x/include/mach/h7202-regs.h   | 155 -------------
 arch/arm/mach-h720x/include/mach/hardware.h     | 190 ----------------
 arch/arm/mach-h720x/include/mach/irqs.h         | 116 ----------
 arch/arm/mach-h720x/include/mach/isa-dma.h      |  19 --
 arch/arm/mach-h720x/include/mach/timex.h        |  15 --
 arch/arm/mach-h720x/include/mach/uncompress.h   |  36 ---
 arch/arm/mach-l7200/include/mach/debug-macro.S  |  38 ----
 arch/arm/mm/Kconfig                             |  32 +--
 arch/arm/mm/Makefile                            |   4 -
 arch/arm/mm/cache-fa.S                          | 249 ---------------------
 arch/arm/mm/copypage-fa.c                       |  86 --------
 arch/arm/mm/proc-fa526.S                        | 221 -------------------
 arch/arm/mm/tlb-fa.S                            |  69 ------
 drivers/mtd/maps/Kconfig                        |   7 -
 drivers/mtd/maps/Makefile                       |   1 -
 drivers/mtd/maps/h720x-flash.c                  | 120 ----------
 63 files changed, 3 insertions(+), 4281 deletions(-)
 delete mode 100644 arch/arm/configs/h7201_defconfig
 delete mode 100644 arch/arm/configs/h7202_defconfig
 delete mode 100644 arch/arm/mach-gemini/Kconfig
 delete mode 100644 arch/arm/mach-gemini/Makefile
 delete mode 100644 arch/arm/mach-gemini/Makefile.boot
 delete mode 100644 arch/arm/mach-gemini/board-nas4220b.c
 delete mode 100644 arch/arm/mach-gemini/board-rut1xx.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd111.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd222.c
 delete mode 100644 arch/arm/mach-gemini/common.h
 delete mode 100644 arch/arm/mach-gemini/devices.c
 delete mode 100644 arch/arm/mach-gemini/gpio.c
 delete mode 100644 arch/arm/mach-gemini/idle.c
 delete mode 100644 arch/arm/mach-gemini/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/global_reg.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/system.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/timex.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-gemini/irq.c
 delete mode 100644 arch/arm/mach-gemini/mm.c
 delete mode 100644 arch/arm/mach-gemini/time.c
 delete mode 100644 arch/arm/mach-h720x/Kconfig
 delete mode 100644 arch/arm/mach-h720x/Makefile
 delete mode 100644 arch/arm/mach-h720x/Makefile.boot
 delete mode 100644 arch/arm/mach-h720x/common.c
 delete mode 100644 arch/arm/mach-h720x/common.h
 delete mode 100644 arch/arm/mach-h720x/cpu-h7201.c
 delete mode 100644 arch/arm/mach-h720x/cpu-h7202.c
 delete mode 100644 arch/arm/mach-h720x/h7201-eval.c
 delete mode 100644 arch/arm/mach-h720x/h7202-eval.c
 delete mode 100644 arch/arm/mach-h720x/include/mach/boards.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-h720x/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-h720x/include/mach/h7201-regs.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/h7202-regs.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/isa-dma.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/timex.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-l7200/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mm/cache-fa.S
 delete mode 100644 arch/arm/mm/copypage-fa.c
 delete mode 100644 arch/arm/mm/proc-fa526.S
 delete mode 100644 arch/arm/mm/tlb-fa.S
 delete mode 100644 drivers/mtd/maps/h720x-flash.c

-- 
1.8.1.2

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 1/6] ARM: gemini: get platform to build again
  2013-03-14 22:12 [PATCH 0/6] ARM platform spring cleaning Arnd Bergmann
@ 2013-03-14 22:12 ` Arnd Bergmann
  2013-03-14 22:12 ` [PATCH 2/6] ARM: gemini: remove platform support Arnd Bergmann
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:12 UTC (permalink / raw)
  To: linux-arm-kernel

There is no defconfig file for gemini, which has lead to a lot
of bitrot. This makes the broken board files, the gpio implementation
and the reset logic work again, and fixes the build warnings
that got introduced with the changes to the readl/writel prototypes.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/Kconfig                                   |  1 +
 arch/arm/mach-gemini/Makefile                      |  2 +-
 arch/arm/mach-gemini/board-nas4220b.c              |  1 +
 arch/arm/mach-gemini/board-rut1xx.c                |  2 ++
 arch/arm/mach-gemini/board-wbd111.c                |  1 +
 arch/arm/mach-gemini/board-wbd222.c                |  1 +
 arch/arm/mach-gemini/common.h                      |  2 ++
 arch/arm/mach-gemini/gpio.c                        | 19 ++++++++++---------
 arch/arm/mach-gemini/include/mach/hardware.h       |  2 +-
 arch/arm/mach-gemini/irq.c                         |  4 ++--
 arch/arm/mach-gemini/mm.c                          | 22 +++++++++++-----------
 .../mach-gemini/{include/mach/system.h => reset.c} |  2 +-
 12 files changed, 34 insertions(+), 25 deletions(-)
 rename arch/arm/mach-gemini/{include/mach/system.h => reset.c} (91%)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 5b71469..78f31a3 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -411,6 +411,7 @@ config ARCH_GEMINI
 	bool "Cortina Systems Gemini"
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_USES_GETTIMEOFFSET
+	select NEED_MACH_GPIO_H
 	select CPU_FA526
 	help
 	  Support for the Cortina Systems Gemini family SoCs
diff --git a/arch/arm/mach-gemini/Makefile b/arch/arm/mach-gemini/Makefile
index 7355c0b..7963a77 100644
--- a/arch/arm/mach-gemini/Makefile
+++ b/arch/arm/mach-gemini/Makefile
@@ -4,7 +4,7 @@
 
 # Object file lists.
 
-obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o
+obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o reset.o
 
 # Board-specific support
 obj-$(CONFIG_MACH_NAS4220B)	+= board-nas4220b.o
diff --git a/arch/arm/mach-gemini/board-nas4220b.c b/arch/arm/mach-gemini/board-nas4220b.c
index 08bd650..ca8a25b 100644
--- a/arch/arm/mach-gemini/board-nas4220b.c
+++ b/arch/arm/mach-gemini/board-nas4220b.c
@@ -103,4 +103,5 @@ MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B")
 	.init_irq	= gemini_init_irq,
 	.init_time	= gemini_timer_init,
 	.init_machine	= ib4220b_init,
+	.restart	= gemini_restart,
 MACHINE_END
diff --git a/arch/arm/mach-gemini/board-rut1xx.c b/arch/arm/mach-gemini/board-rut1xx.c
index fa0a363..7a675f8 100644
--- a/arch/arm/mach-gemini/board-rut1xx.c
+++ b/arch/arm/mach-gemini/board-rut1xx.c
@@ -14,6 +14,7 @@
 #include <linux/leds.h>
 #include <linux/input.h>
 #include <linux/gpio_keys.h>
+#include <linux/sizes.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -87,4 +88,5 @@ MACHINE_START(RUT100, "Teltonika RUT100")
 	.init_irq	= gemini_init_irq,
 	.init_time	= gemini_timer_init,
 	.init_machine	= rut1xx_init,
+	.restart	= gemini_restart,
 MACHINE_END
diff --git a/arch/arm/mach-gemini/board-wbd111.c b/arch/arm/mach-gemini/board-wbd111.c
index 3321cd6..418188c 100644
--- a/arch/arm/mach-gemini/board-wbd111.c
+++ b/arch/arm/mach-gemini/board-wbd111.c
@@ -130,4 +130,5 @@ MACHINE_START(WBD111, "Wiliboard WBD-111")
 	.init_irq	= gemini_init_irq,
 	.init_time	= gemini_timer_init,
 	.init_machine	= wbd111_init,
+	.restart	= gemini_restart,
 MACHINE_END
diff --git a/arch/arm/mach-gemini/board-wbd222.c b/arch/arm/mach-gemini/board-wbd222.c
index fe33c82..266b265 100644
--- a/arch/arm/mach-gemini/board-wbd222.c
+++ b/arch/arm/mach-gemini/board-wbd222.c
@@ -130,4 +130,5 @@ MACHINE_START(WBD222, "Wiliboard WBD-222")
 	.init_irq	= gemini_init_irq,
 	.init_time	= gemini_timer_init,
 	.init_machine	= wbd222_init,
+	.restart	= gemini_restart,
 MACHINE_END
diff --git a/arch/arm/mach-gemini/common.h b/arch/arm/mach-gemini/common.h
index 7670c39..38a4526 100644
--- a/arch/arm/mach-gemini/common.h
+++ b/arch/arm/mach-gemini/common.h
@@ -26,4 +26,6 @@ extern int platform_register_pflash(unsigned int size,
 				    struct mtd_partition *parts,
 				    unsigned int nr_parts);
 
+extern void gemini_restart(char mode, const char *cmd);
+
 #endif /* __GEMINI_COMMON_H__ */
diff --git a/arch/arm/mach-gemini/gpio.c b/arch/arm/mach-gemini/gpio.c
index fdc7ef1..70bfa57 100644
--- a/arch/arm/mach-gemini/gpio.c
+++ b/arch/arm/mach-gemini/gpio.c
@@ -21,6 +21,7 @@
 
 #include <mach/hardware.h>
 #include <mach/irqs.h>
+#include <mach/gpio.h>
 
 #define GPIO_BASE(x)		IO_ADDRESS(GEMINI_GPIO_BASE(x))
 
@@ -44,7 +45,7 @@
 
 #define GPIO_PORT_NUM		3
 
-static void _set_gpio_irqenable(unsigned int base, unsigned int index,
+static void _set_gpio_irqenable(void __iomem *base, unsigned int index,
 				int enable)
 {
 	unsigned int reg;
@@ -57,7 +58,7 @@ static void _set_gpio_irqenable(unsigned int base, unsigned int index,
 static void gpio_ack_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	__raw_writel(1 << (gpio % 32), base + GPIO_INT_CLR);
 }
@@ -65,7 +66,7 @@ static void gpio_ack_irq(struct irq_data *d)
 static void gpio_mask_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	_set_gpio_irqenable(base, gpio % 32, 0);
 }
@@ -73,7 +74,7 @@ static void gpio_mask_irq(struct irq_data *d)
 static void gpio_unmask_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	_set_gpio_irqenable(base, gpio % 32, 1);
 }
@@ -82,7 +83,7 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
 	unsigned int gpio_mask = 1 << (gpio % 32);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 	unsigned int reg_both, reg_level, reg_type;
 
 	reg_type = __raw_readl(base + GPIO_INT_TYPE);
@@ -120,7 +121,7 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
 	__raw_writel(reg_level, base + GPIO_INT_LEVEL);
 	__raw_writel(reg_both, base + GPIO_INT_BOTH_EDGE);
 
-	gpio_ack_irq(d->irq);
+	gpio_ack_irq(d);
 
 	return 0;
 }
@@ -153,7 +154,7 @@ static struct irq_chip gpio_irq_chip = {
 static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
 				int dir)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 	unsigned int reg;
 
 	reg = __raw_readl(base + GPIO_DIR);
@@ -166,7 +167,7 @@ static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
 
 static void gemini_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 
 	if (value)
 		__raw_writel(1 << (offset % 32), base + GPIO_DATA_SET);
@@ -176,7 +177,7 @@ static void gemini_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 
 static int gemini_gpio_get(struct gpio_chip *chip, unsigned offset)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 
 	return (__raw_readl(base + GPIO_DATA_IN) >> (offset % 32)) & 1;
 }
diff --git a/arch/arm/mach-gemini/include/mach/hardware.h b/arch/arm/mach-gemini/include/mach/hardware.h
index 8c950e1..98e7b0f 100644
--- a/arch/arm/mach-gemini/include/mach/hardware.h
+++ b/arch/arm/mach-gemini/include/mach/hardware.h
@@ -69,6 +69,6 @@
 /*
  * macro to get at IO space when running virtually
  */
-#define IO_ADDRESS(x)	((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
+#define IO_ADDRESS(x)	IOMEM((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
 
 #endif
diff --git a/arch/arm/mach-gemini/irq.c b/arch/arm/mach-gemini/irq.c
index 020852d..30bef11 100644
--- a/arch/arm/mach-gemini/irq.c
+++ b/arch/arm/mach-gemini/irq.c
@@ -65,8 +65,8 @@ static struct irq_chip gemini_irq_chip = {
 
 static struct resource irq_resource = {
 	.name	= "irq_handler",
-	.start	= IO_ADDRESS(GEMINI_INTERRUPT_BASE),
-	.end	= IO_ADDRESS(FIQ_STATUS(GEMINI_INTERRUPT_BASE)) + 4,
+	.start	= GEMINI_INTERRUPT_BASE,
+	.end	= FIQ_STATUS(GEMINI_INTERRUPT_BASE) + 4,
 };
 
 void __init gemini_init_irq(void)
diff --git a/arch/arm/mach-gemini/mm.c b/arch/arm/mach-gemini/mm.c
index 5194824..2c2cd28 100644
--- a/arch/arm/mach-gemini/mm.c
+++ b/arch/arm/mach-gemini/mm.c
@@ -19,57 +19,57 @@
 /* Page table mapping for I/O region */
 static struct map_desc gemini_io_desc[] __initdata = {
 	{
-		.virtual	= IO_ADDRESS(GEMINI_GLOBAL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GLOBAL_BASE),
 		.pfn		=__phys_to_pfn(GEMINI_GLOBAL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_UART_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_UART_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_UART_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_TIMER_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_TIMER_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_TIMER_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_INTERRUPT_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_INTERRUPT_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_INTERRUPT_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_POWER_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(0)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(0)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(0)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(1)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(1)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(1)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(2)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(2)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(2)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_FLASH_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_DRAM_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_GENERAL_DMA_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
diff --git a/arch/arm/mach-gemini/include/mach/system.h b/arch/arm/mach-gemini/reset.c
similarity index 91%
rename from arch/arm/mach-gemini/include/mach/system.h
rename to arch/arm/mach-gemini/reset.c
index a33b5a1..b266597 100644
--- a/arch/arm/mach-gemini/include/mach/system.h
+++ b/arch/arm/mach-gemini/reset.c
@@ -14,7 +14,7 @@
 #include <mach/hardware.h>
 #include <mach/global_reg.h>
 
-static inline void arch_reset(char mode, const char *cmd)
+void gemini_restart(char mode, const char *cmd)
 {
 	__raw_writel(RESET_GLOBAL | RESET_CPU1,
 		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 2/6] ARM: gemini: remove platform support
  2013-03-14 22:12 [PATCH 0/6] ARM platform spring cleaning Arnd Bergmann
  2013-03-14 22:12 ` [PATCH 1/6] ARM: gemini: get platform to build again Arnd Bergmann
@ 2013-03-14 22:12 ` Arnd Bergmann
  2013-03-15 13:39   ` Florian Fainelli
  2013-03-14 22:12 ` [PATCH 3/6] ARM: remove fa526 CPU support Arnd Bergmann
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:12 UTC (permalink / raw)
  To: linux-arm-kernel

The gemini platform has not seen any updates from its
maintainer since 2010, and has no defconfig file, which
has lead to bitrot in a number of places:

* System restart has been broken for a long time despite
  repeated attempts from Russell to get the obvious
  fix at least acknowledged by someone who can test it.
* The platform still uses mach/gpio.h, which has been
  deprecated for some time, and since Kconfig does not
  select NEED_MACH_GPIO_H, it actually failed to build
  because of this.
* A change to asm/io.h introduced a number of compiler
  warnings for gemini specific code that confuses
  physical and virtual addresses.

This removes gemini support entirely under the assumption
that nobody uses it on mainline kernels. Of course, if
there are still active users out there, they should let
us know so we can put support back in and get it better
tested.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 MAINTAINERS                                     |   7 -
 arch/arm/Kconfig                                |  11 -
 arch/arm/Makefile                               |   1 -
 arch/arm/mach-gemini/Kconfig                    |  40 ----
 arch/arm/mach-gemini/Makefile                   |  13 --
 arch/arm/mach-gemini/Makefile.boot              |   9 -
 arch/arm/mach-gemini/board-nas4220b.c           | 107 ---------
 arch/arm/mach-gemini/board-rut1xx.c             |  92 --------
 arch/arm/mach-gemini/board-wbd111.c             | 134 ------------
 arch/arm/mach-gemini/board-wbd222.c             | 134 ------------
 arch/arm/mach-gemini/common.h                   |  31 ---
 arch/arm/mach-gemini/devices.c                  | 118 ----------
 arch/arm/mach-gemini/gpio.c                     | 231 --------------------
 arch/arm/mach-gemini/idle.c                     |  29 ---
 arch/arm/mach-gemini/include/mach/debug-macro.S |  21 --
 arch/arm/mach-gemini/include/mach/entry-macro.S |  33 ---
 arch/arm/mach-gemini/include/mach/global_reg.h  | 278 ------------------------
 arch/arm/mach-gemini/include/mach/gpio.h        |  20 --
 arch/arm/mach-gemini/include/mach/hardware.h    |  74 -------
 arch/arm/mach-gemini/include/mach/irqs.h        |  53 -----
 arch/arm/mach-gemini/include/mach/timex.h       |  13 --
 arch/arm/mach-gemini/include/mach/uncompress.h  |  42 ----
 arch/arm/mach-gemini/irq.c                      | 103 ---------
 arch/arm/mach-gemini/mm.c                       |  82 -------
 arch/arm/mach-gemini/reset.c                    |  23 --
 arch/arm/mach-gemini/time.c                     |  89 --------
 26 files changed, 1788 deletions(-)
 delete mode 100644 arch/arm/mach-gemini/Kconfig
 delete mode 100644 arch/arm/mach-gemini/Makefile
 delete mode 100644 arch/arm/mach-gemini/Makefile.boot
 delete mode 100644 arch/arm/mach-gemini/board-nas4220b.c
 delete mode 100644 arch/arm/mach-gemini/board-rut1xx.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd111.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd222.c
 delete mode 100644 arch/arm/mach-gemini/common.h
 delete mode 100644 arch/arm/mach-gemini/devices.c
 delete mode 100644 arch/arm/mach-gemini/gpio.c
 delete mode 100644 arch/arm/mach-gemini/idle.c
 delete mode 100644 arch/arm/mach-gemini/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/global_reg.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/timex.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-gemini/irq.c
 delete mode 100644 arch/arm/mach-gemini/mm.c
 delete mode 100644 arch/arm/mach-gemini/reset.c
 delete mode 100644 arch/arm/mach-gemini/time.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 9561658..4b59496 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -785,13 +785,6 @@ ARM/CORGI MACHINE SUPPORT
 M:	Richard Purdie <rpurdie@rpsys.net>
 S:	Maintained
 
-ARM/CORTINA SYSTEMS GEMINI ARM ARCHITECTURE
-M:	Hans Ulli Kroll <ulli.kroll@googlemail.com>
-L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
-T:	git git://git.berlios.de/gemini-board
-S:	Maintained
-F:	arch/arm/mach-gemini/
-
 ARM/CSR SIRFPRIMA2 MACHINE SUPPORT
 M:	Barry Song <baohua.song@csr.com>
 L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 78f31a3..b62699a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -407,15 +407,6 @@ config ARCH_CLPS711X
 	help
 	  Support for Cirrus Logic 711x/721x/731x based boards.
 
-config ARCH_GEMINI
-	bool "Cortina Systems Gemini"
-	select ARCH_REQUIRE_GPIOLIB
-	select ARCH_USES_GETTIMEOFFSET
-	select NEED_MACH_GPIO_H
-	select CPU_FA526
-	help
-	  Support for the Cortina Systems Gemini family SoCs
-
 config ARCH_SIRF
 	bool "CSR SiRF"
 	select ARCH_REQUIRE_GPIOLIB
@@ -1050,8 +1041,6 @@ source "arch/arm/mach-ep93xx/Kconfig"
 
 source "arch/arm/mach-footbridge/Kconfig"
 
-source "arch/arm/mach-gemini/Kconfig"
-
 source "arch/arm/mach-h720x/Kconfig"
 
 source "arch/arm/mach-highbank/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index ee4605f..50e755b 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -146,7 +146,6 @@ machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
 machine-$(CONFIG_ARCH_DOVE)		+= dove
 machine-$(CONFIG_ARCH_EBSA110)		+= ebsa110
 machine-$(CONFIG_ARCH_EP93XX)		+= ep93xx
-machine-$(CONFIG_ARCH_GEMINI)		+= gemini
 machine-$(CONFIG_ARCH_H720X)		+= h720x
 machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_INTEGRATOR)	+= integrator
diff --git a/arch/arm/mach-gemini/Kconfig b/arch/arm/mach-gemini/Kconfig
deleted file mode 100644
index 6f066ee..0000000
--- a/arch/arm/mach-gemini/Kconfig
+++ /dev/null
@@ -1,40 +0,0 @@
-if ARCH_GEMINI
-
-menu "Cortina Systems Gemini Implementations"
-
-config MACH_NAS4220B
-	bool "Raidsonic NAS-4220-B"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Raidsonic NAS-4220-B.
-
-config MACH_RUT100
-	bool "Teltonika RUT100"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Teltonika 3G Router RUT100.
-
-config MACH_WBD111
-	bool "Wiliboard WBD-111"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Wiliboard WBD-111.
-
-config MACH_WBD222
-        bool "Wiliboard WBD-222"
-        select GEMINI_MEM_SWAP
-        help
-          Say Y here if you intend to run this kernel on a
-          Wiliboard WBD-222.
-
-endmenu
-
-config GEMINI_MEM_SWAP
-	bool "Gemini memory is swapped"
-	help
-	  Say Y here if Gemini memory is swapped by bootloader.
-
-endif
diff --git a/arch/arm/mach-gemini/Makefile b/arch/arm/mach-gemini/Makefile
deleted file mode 100644
index 7963a77..0000000
--- a/arch/arm/mach-gemini/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Makefile for the linux kernel.
-#
-
-# Object file lists.
-
-obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o reset.o
-
-# Board-specific support
-obj-$(CONFIG_MACH_NAS4220B)	+= board-nas4220b.o
-obj-$(CONFIG_MACH_RUT100)	+= board-rut1xx.o
-obj-$(CONFIG_MACH_WBD111)	+= board-wbd111.o
-obj-$(CONFIG_MACH_WBD222)	+= board-wbd222.o
diff --git a/arch/arm/mach-gemini/Makefile.boot b/arch/arm/mach-gemini/Makefile.boot
deleted file mode 100644
index 683f52b..0000000
--- a/arch/arm/mach-gemini/Makefile.boot
+++ /dev/null
@@ -1,9 +0,0 @@
-ifeq ($(CONFIG_GEMINI_MEM_SWAP),y)
-   zreladdr-y	+= 0x00008000
-params_phys-y	:= 0x00000100
-initrd_phys-y	:= 0x00800000
-else
-   zreladdr-y	+= 0x10008000
-params_phys-y	:= 0x10000100
-initrd_phys-y	:= 0x10800000
-endif
diff --git a/arch/arm/mach-gemini/board-nas4220b.c b/arch/arm/mach-gemini/board-nas4220b.c
deleted file mode 100644
index ca8a25b..0000000
--- a/arch/arm/mach-gemini/board-nas4220b.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- *  Support for Raidsonic NAS-4220-B
- *
- *  Copyright (C) 2009 Janos Laube <janos.dev@gmail.com>
- *
- * based on rut1xx.c
- *  Copyright (C) 2008 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/leds.h>
-#include <linux/input.h>
-#include <linux/gpio_keys.h>
-#include <linux/mdio-gpio.h>
-#include <linux/io.h>
-
-#include <asm/setup.h>
-#include <asm/mach-types.h>
-#include <asm/mach/arch.h>
-#include <asm/mach/time.h>
-
-#include <mach/hardware.h>
-#include <mach/global_reg.h>
-
-#include "common.h"
-
-static struct gpio_led ib4220b_leds[] = {
-	{
-		.name			= "nas4220b:orange:hdd",
-		.default_trigger	= "none",
-		.gpio			= 60,
-	},
-	{
-		.name			= "nas4220b:green:os",
-		.default_trigger	= "heartbeat",
-		.gpio			= 62,
-	},
-};
-
-static struct gpio_led_platform_data ib4220b_leds_data = {
-	.num_leds	= ARRAY_SIZE(ib4220b_leds),
-	.leds		= ib4220b_leds,
-};
-
-static struct platform_device ib4220b_led_device = {
-	.name	= "leds-gpio",
-	.id	= -1,
-	.dev	= {
-		.platform_data = &ib4220b_leds_data,
-	},
-};
-
-static struct gpio_keys_button ib4220b_keys[] = {
-	{
-		.code		= KEY_SETUP,
-		.gpio		= 61,
-		.active_low	= 1,
-		.desc		= "Backup Button",
-		.type		= EV_KEY,
-	},
-	{
-		.code		= KEY_RESTART,
-		.gpio		= 63,
-		.active_low	= 1,
-		.desc		= "Softreset Button",
-		.type		= EV_KEY,
-	},
-};
-
-static struct gpio_keys_platform_data ib4220b_keys_data = {
-	.buttons	= ib4220b_keys,
-	.nbuttons	= ARRAY_SIZE(ib4220b_keys),
-};
-
-static struct platform_device ib4220b_key_device = {
-	.name	= "gpio-keys",
-	.id	= -1,
-	.dev	= {
-		.platform_data = &ib4220b_keys_data,
-	},
-};
-
-static void __init ib4220b_init(void)
-{
-	gemini_gpio_init();
-	platform_register_uart();
-	platform_register_pflash(SZ_16M, NULL, 0);
-	platform_device_register(&ib4220b_led_device);
-	platform_device_register(&ib4220b_key_device);
-	platform_register_rtc();
-}
-
-MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B")
-	.atag_offset	= 0x100,
-	.map_io		= gemini_map_io,
-	.init_irq	= gemini_init_irq,
-	.init_time	= gemini_timer_init,
-	.init_machine	= ib4220b_init,
-	.restart	= gemini_restart,
-MACHINE_END
diff --git a/arch/arm/mach-gemini/board-rut1xx.c b/arch/arm/mach-gemini/board-rut1xx.c
deleted file mode 100644
index 7a675f8..0000000
--- a/arch/arm/mach-gemini/board-rut1xx.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- *  Support for Teltonika RUT1xx
- *
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/leds.h>
-#include <linux/input.h>
-#include <linux/gpio_keys.h>
-#include <linux/sizes.h>
-
-#include <asm/mach-types.h>
-#include <asm/mach/arch.h>
-#include <asm/mach/time.h>
-
-#include "common.h"
-
-static struct gpio_keys_button rut1xx_keys[] = {
-	{
-		.code		= KEY_SETUP,
-		.gpio		= 60,
-		.active_low	= 1,
-		.desc		= "Reset to defaults",
-		.type		= EV_KEY,
-	},
-};
-
-static struct gpio_keys_platform_data rut1xx_keys_data = {
-	.buttons	= rut1xx_keys,
-	.nbuttons	= ARRAY_SIZE(rut1xx_keys),
-};
-
-static struct platform_device rut1xx_keys_device = {
-	.name	= "gpio-keys",
-	.id	= -1,
-	.dev	= {
-		.platform_data = &rut1xx_keys_data,
-	},
-};
-
-static struct gpio_led rut100_leds[] = {
-	{
-		.name			= "Power",
-		.default_trigger	= "heartbeat",
-		.gpio			= 17,
-	},
-	{
-		.name			= "GSM",
-		.default_trigger	= "default-on",
-		.gpio			= 7,
-		.active_low		= 1,
-	},
-};
-
-static struct gpio_led_platform_data rut100_leds_data = {
-	.num_leds	= ARRAY_SIZE(rut100_leds),
-	.leds		= rut100_leds,
-};
-
-static struct platform_device rut1xx_leds = {
-	.name	= "leds-gpio",
-	.id	= -1,
-	.dev	= {
-		.platform_data = &rut100_leds_data,
-	},
-};
-
-static void __init rut1xx_init(void)
-{
-	gemini_gpio_init();
-	platform_register_uart();
-	platform_register_pflash(SZ_8M, NULL, 0);
-	platform_device_register(&rut1xx_leds);
-	platform_device_register(&rut1xx_keys_device);
-	platform_register_rtc();
-}
-
-MACHINE_START(RUT100, "Teltonika RUT100")
-	.atag_offset	= 0x100,
-	.map_io		= gemini_map_io,
-	.init_irq	= gemini_init_irq,
-	.init_time	= gemini_timer_init,
-	.init_machine	= rut1xx_init,
-	.restart	= gemini_restart,
-MACHINE_END
diff --git a/arch/arm/mach-gemini/board-wbd111.c b/arch/arm/mach-gemini/board-wbd111.c
deleted file mode 100644
index 418188c..0000000
--- a/arch/arm/mach-gemini/board-wbd111.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- *  Support for Wiliboard WBD-111
- *
- *  Copyright (C) 2009 Imre Kaloz <kaloz@openwrt.org>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/leds.h>
-#include <linux/input.h>
-#include <linux/skbuff.h>
-#include <linux/gpio_keys.h>
-#include <linux/mdio-gpio.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <asm/mach-types.h>
-#include <asm/mach/arch.h>
-#include <asm/mach/time.h>
-
-
-#include "common.h"
-
-static struct gpio_keys_button wbd111_keys[] = {
-	{
-		.code		= KEY_SETUP,
-		.gpio		= 5,
-		.active_low	= 1,
-		.desc		= "reset",
-		.type		= EV_KEY,
-	},
-};
-
-static struct gpio_keys_platform_data wbd111_keys_data = {
-	.buttons	= wbd111_keys,
-	.nbuttons	= ARRAY_SIZE(wbd111_keys),
-};
-
-static struct platform_device wbd111_keys_device = {
-	.name	= "gpio-keys",
-	.id	= -1,
-	.dev	= {
-		.platform_data = &wbd111_keys_data,
-	},
-};
-
-static struct gpio_led wbd111_leds[] = {
-	{
-		.name			= "L3red",
-		.gpio			= 1,
-	},
-	{
-		.name			= "L4green",
-		.gpio			= 2,
-	},
-	{
-		.name			= "L4red",
-		.gpio			= 3,
-	},
-	{
-		.name			= "L3green",
-		.gpio			= 5,
-	},
-};
-
-static struct gpio_led_platform_data wbd111_leds_data = {
-	.num_leds	= ARRAY_SIZE(wbd111_leds),
-	.leds		= wbd111_leds,
-};
-
-static struct platform_device wbd111_leds_device = {
-	.name	= "leds-gpio",
-	.id	= -1,
-	.dev	= {
-		.platform_data = &wbd111_leds_data,
-	},
-};
-
-static struct mtd_partition wbd111_partitions[] = {
-	{
-		.name		= "RedBoot",
-		.offset		= 0,
-		.size		= 0x020000,
-		.mask_flags	= MTD_WRITEABLE,
-	} , {
-		.name		= "kernel",
-		.offset		= 0x020000,
-		.size		= 0x100000,
-	} , {
-		.name		= "rootfs",
-		.offset		= 0x120000,
-		.size		= 0x6a0000,
-	} , {
-		.name		= "VCTL",
-		.offset		= 0x7c0000,
-		.size		= 0x010000,
-		.mask_flags	= MTD_WRITEABLE,
-	} , {
-		.name		= "cfg",
-		.offset		= 0x7d0000,
-		.size		= 0x010000,
-		.mask_flags	= MTD_WRITEABLE,
-	} , {
-		.name		= "FIS",
-		.offset		= 0x7e0000,
-		.size		= 0x010000,
-		.mask_flags	= MTD_WRITEABLE,
-	}
-};
-#define wbd111_num_partitions  ARRAY_SIZE(wbd111_partitions)
-
-static void __init wbd111_init(void)
-{
-	gemini_gpio_init();
-	platform_register_uart();
-	platform_register_pflash(SZ_8M, wbd111_partitions,
-				 wbd111_num_partitions);
-	platform_device_register(&wbd111_leds_device);
-	platform_device_register(&wbd111_keys_device);
-	platform_register_rtc();
-}
-
-MACHINE_START(WBD111, "Wiliboard WBD-111")
-	.atag_offset	= 0x100,
-	.map_io		= gemini_map_io,
-	.init_irq	= gemini_init_irq,
-	.init_time	= gemini_timer_init,
-	.init_machine	= wbd111_init,
-	.restart	= gemini_restart,
-MACHINE_END
diff --git a/arch/arm/mach-gemini/board-wbd222.c b/arch/arm/mach-gemini/board-wbd222.c
deleted file mode 100644
index 266b265..0000000
--- a/arch/arm/mach-gemini/board-wbd222.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- *  Support for Wiliboard WBD-222
- *
- *  Copyright (C) 2009 Imre Kaloz <kaloz@openwrt.org>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/leds.h>
-#include <linux/input.h>
-#include <linux/skbuff.h>
-#include <linux/gpio_keys.h>
-#include <linux/mdio-gpio.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <asm/mach-types.h>
-#include <asm/mach/arch.h>
-#include <asm/mach/time.h>
-
-
-#include "common.h"
-
-static struct gpio_keys_button wbd222_keys[] = {
-	{
-		.code		= KEY_SETUP,
-		.gpio		= 5,
-		.active_low	= 1,
-		.desc		= "reset",
-		.type		= EV_KEY,
-	},
-};
-
-static struct gpio_keys_platform_data wbd222_keys_data = {
-	.buttons	= wbd222_keys,
-	.nbuttons	= ARRAY_SIZE(wbd222_keys),
-};
-
-static struct platform_device wbd222_keys_device = {
-	.name	= "gpio-keys",
-	.id	= -1,
-	.dev	= {
-		.platform_data = &wbd222_keys_data,
-	},
-};
-
-static struct gpio_led wbd222_leds[] = {
-	{
-		.name			= "L3red",
-		.gpio			= 1,
-	},
-	{
-		.name			= "L4green",
-		.gpio			= 2,
-	},
-	{
-		.name			= "L4red",
-		.gpio			= 3,
-	},
-	{
-		.name			= "L3green",
-		.gpio			= 5,
-	},
-};
-
-static struct gpio_led_platform_data wbd222_leds_data = {
-	.num_leds	= ARRAY_SIZE(wbd222_leds),
-	.leds		= wbd222_leds,
-};
-
-static struct platform_device wbd222_leds_device = {
-	.name	= "leds-gpio",
-	.id	= -1,
-	.dev	= {
-		.platform_data = &wbd222_leds_data,
-	},
-};
-
-static struct mtd_partition wbd222_partitions[] = {
-	{
-		.name		= "RedBoot",
-		.offset		= 0,
-		.size		= 0x020000,
-		.mask_flags	= MTD_WRITEABLE,
-	} , {
-		.name		= "kernel",
-		.offset		= 0x020000,
-		.size		= 0x100000,
-	} , {
-		.name		= "rootfs",
-		.offset		= 0x120000,
-		.size		= 0x6a0000,
-	} , {
-		.name		= "VCTL",
-		.offset		= 0x7c0000,
-		.size		= 0x010000,
-		.mask_flags	= MTD_WRITEABLE,
-	} , {
-		.name		= "cfg",
-		.offset		= 0x7d0000,
-		.size		= 0x010000,
-		.mask_flags	= MTD_WRITEABLE,
-	} , {
-		.name		= "FIS",
-		.offset		= 0x7e0000,
-		.size		= 0x010000,
-		.mask_flags	= MTD_WRITEABLE,
-	}
-};
-#define wbd222_num_partitions  ARRAY_SIZE(wbd222_partitions)
-
-static void __init wbd222_init(void)
-{
-	gemini_gpio_init();
-	platform_register_uart();
-	platform_register_pflash(SZ_8M, wbd222_partitions,
-		wbd222_num_partitions);
-	platform_device_register(&wbd222_leds_device);
-	platform_device_register(&wbd222_keys_device);
-	platform_register_rtc();
-}
-
-MACHINE_START(WBD222, "Wiliboard WBD-222")
-	.atag_offset	= 0x100,
-	.map_io		= gemini_map_io,
-	.init_irq	= gemini_init_irq,
-	.init_time	= gemini_timer_init,
-	.init_machine	= wbd222_init,
-	.restart	= gemini_restart,
-MACHINE_END
diff --git a/arch/arm/mach-gemini/common.h b/arch/arm/mach-gemini/common.h
deleted file mode 100644
index 38a4526..0000000
--- a/arch/arm/mach-gemini/common.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Common Gemini architecture functions
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#ifndef __GEMINI_COMMON_H__
-#define __GEMINI_COMMON_H__
-
-struct mtd_partition;
-
-extern void gemini_map_io(void);
-extern void gemini_init_irq(void);
-extern void gemini_timer_init(void);
-extern void gemini_gpio_init(void);
-extern void platform_register_rtc(void);
-
-/* Common platform devices registration functions */
-extern int platform_register_uart(void);
-extern int platform_register_pflash(unsigned int size,
-				    struct mtd_partition *parts,
-				    unsigned int nr_parts);
-
-extern void gemini_restart(char mode, const char *cmd);
-
-#endif /* __GEMINI_COMMON_H__ */
diff --git a/arch/arm/mach-gemini/devices.c b/arch/arm/mach-gemini/devices.c
deleted file mode 100644
index 5cff298..0000000
--- a/arch/arm/mach-gemini/devices.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Common devices definition for Gemini
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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.
- */
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/platform_device.h>
-#include <linux/serial_8250.h>
-#include <linux/mtd/physmap.h>
-
-#include <mach/irqs.h>
-#include <mach/hardware.h>
-#include <mach/global_reg.h>
-
-static struct plat_serial8250_port serial_platform_data[] = {
-	{
-		.membase	= (void *)IO_ADDRESS(GEMINI_UART_BASE),
-		.mapbase	= GEMINI_UART_BASE,
-		.irq		= IRQ_UART,
-		.uartclk	= UART_CLK,
-		.regshift	= 2,
-		.iotype		= UPIO_MEM,
-		.type		= PORT_16550A,
-		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_FIXED_TYPE,
-	},
-	{},
-};
-
-static struct platform_device serial_device = {
-	.name	= "serial8250",
-	.id	= PLAT8250_DEV_PLATFORM,
-	.dev	= {
-		.platform_data = serial_platform_data,
-	},
-};
-
-int platform_register_uart(void)
-{
-	return platform_device_register(&serial_device);
-}
-
-static struct resource flash_resource = {
-	.start	= GEMINI_FLASH_BASE,
-	.flags	= IORESOURCE_MEM,
-};
-
-static struct physmap_flash_data pflash_platform_data = {};
-
-static struct platform_device pflash_device = {
-	.name	= "physmap-flash",
-	.id	= 0,
-	.dev 	= {
-		.platform_data = &pflash_platform_data,
-	},
-	.resource = &flash_resource,
-	.num_resources = 1,
-};
-
-int platform_register_pflash(unsigned int size, struct mtd_partition *parts,
-			     unsigned int nr_parts)
-{
-	unsigned int reg;
-
-	reg = __raw_readl(IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_STATUS);
-
-	if ((reg & FLASH_TYPE_MASK) != FLASH_TYPE_PARALLEL)
-		return -ENXIO;
-
-	if (reg & FLASH_WIDTH_16BIT)
-		pflash_platform_data.width = 2;
-	else
-		pflash_platform_data.width = 1;
-
-	/* enable parallel flash pins and disable others */
-	reg = __raw_readl(IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_MISC_CTRL);
-	reg &= ~PFLASH_PADS_DISABLE;
-	reg |= SFLASH_PADS_DISABLE | NAND_PADS_DISABLE;
-	__raw_writel(reg, IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_MISC_CTRL);
-
-	flash_resource.end = flash_resource.start + size - 1;
-
-	pflash_platform_data.parts = parts;
-	pflash_platform_data.nr_parts = nr_parts;
-
-	return platform_device_register(&pflash_device);
-}
-
-static struct resource gemini_rtc_resources[] = {
-	[0] = {
-		.start  = GEMINI_RTC_BASE,
-		.end    = GEMINI_RTC_BASE + 0x24,
-		.flags  = IORESOURCE_MEM,
-	},
-	[1] = {
-		.start  = IRQ_RTC,
-		.end    = IRQ_RTC,
-		.flags  = IORESOURCE_IRQ,
-	},
-};
-
-static struct platform_device gemini_rtc_device = {
-	.name		= "rtc-gemini",
-	.id		= 0,
-	.num_resources	= ARRAY_SIZE(gemini_rtc_resources),
-	.resource	= gemini_rtc_resources,
-};
-
-int __init platform_register_rtc(void)
-{
-	return platform_device_register(&gemini_rtc_device);
-}
-
diff --git a/arch/arm/mach-gemini/gpio.c b/arch/arm/mach-gemini/gpio.c
deleted file mode 100644
index 70bfa57..0000000
--- a/arch/arm/mach-gemini/gpio.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Gemini gpiochip and interrupt routines
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * Based on plat-mxc/gpio.c:
- *  MXC GPIO support. (c) 2008 Daniel Mack <daniel@caiaq.de>
- *  Copyright 2008 Juergen Beisert, kernel at pengutronix.de
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-
-#include <mach/hardware.h>
-#include <mach/irqs.h>
-#include <mach/gpio.h>
-
-#define GPIO_BASE(x)		IO_ADDRESS(GEMINI_GPIO_BASE(x))
-
-/* GPIO registers definition */
-#define GPIO_DATA_OUT		0x0
-#define GPIO_DATA_IN		0x4
-#define GPIO_DIR		0x8
-#define GPIO_DATA_SET		0x10
-#define GPIO_DATA_CLR		0x14
-#define GPIO_PULL_EN		0x18
-#define GPIO_PULL_TYPE		0x1C
-#define GPIO_INT_EN		0x20
-#define GPIO_INT_STAT		0x24
-#define GPIO_INT_MASK		0x2C
-#define GPIO_INT_CLR		0x30
-#define GPIO_INT_TYPE		0x34
-#define GPIO_INT_BOTH_EDGE	0x38
-#define GPIO_INT_LEVEL		0x3C
-#define GPIO_DEBOUNCE_EN	0x40
-#define GPIO_DEBOUNCE_PRESCALE	0x44
-
-#define GPIO_PORT_NUM		3
-
-static void _set_gpio_irqenable(void __iomem *base, unsigned int index,
-				int enable)
-{
-	unsigned int reg;
-
-	reg = __raw_readl(base + GPIO_INT_EN);
-	reg = (reg & (~(1 << index))) | (!!enable << index);
-	__raw_writel(reg, base + GPIO_INT_EN);
-}
-
-static void gpio_ack_irq(struct irq_data *d)
-{
-	unsigned int gpio = irq_to_gpio(d->irq);
-	void __iomem *base = GPIO_BASE(gpio / 32);
-
-	__raw_writel(1 << (gpio % 32), base + GPIO_INT_CLR);
-}
-
-static void gpio_mask_irq(struct irq_data *d)
-{
-	unsigned int gpio = irq_to_gpio(d->irq);
-	void __iomem *base = GPIO_BASE(gpio / 32);
-
-	_set_gpio_irqenable(base, gpio % 32, 0);
-}
-
-static void gpio_unmask_irq(struct irq_data *d)
-{
-	unsigned int gpio = irq_to_gpio(d->irq);
-	void __iomem *base = GPIO_BASE(gpio / 32);
-
-	_set_gpio_irqenable(base, gpio % 32, 1);
-}
-
-static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
-{
-	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int gpio_mask = 1 << (gpio % 32);
-	void __iomem *base = GPIO_BASE(gpio / 32);
-	unsigned int reg_both, reg_level, reg_type;
-
-	reg_type = __raw_readl(base + GPIO_INT_TYPE);
-	reg_level = __raw_readl(base + GPIO_INT_LEVEL);
-	reg_both = __raw_readl(base + GPIO_INT_BOTH_EDGE);
-
-	switch (type) {
-	case IRQ_TYPE_EDGE_BOTH:
-		reg_type &= ~gpio_mask;
-		reg_both |= gpio_mask;
-		break;
-	case IRQ_TYPE_EDGE_RISING:
-		reg_type &= ~gpio_mask;
-		reg_both &= ~gpio_mask;
-		reg_level &= ~gpio_mask;
-		break;
-	case IRQ_TYPE_EDGE_FALLING:
-		reg_type &= ~gpio_mask;
-		reg_both &= ~gpio_mask;
-		reg_level |= gpio_mask;
-		break;
-	case IRQ_TYPE_LEVEL_HIGH:
-		reg_type |= gpio_mask;
-		reg_level &= ~gpio_mask;
-		break;
-	case IRQ_TYPE_LEVEL_LOW:
-		reg_type |= gpio_mask;
-		reg_level |= gpio_mask;
-		break;
-	default:
-		return -EINVAL;
-	}
-
-	__raw_writel(reg_type, base + GPIO_INT_TYPE);
-	__raw_writel(reg_level, base + GPIO_INT_LEVEL);
-	__raw_writel(reg_both, base + GPIO_INT_BOTH_EDGE);
-
-	gpio_ack_irq(d);
-
-	return 0;
-}
-
-static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
-{
-	unsigned int port = (unsigned int)irq_desc_get_handler_data(desc);
-	unsigned int gpio_irq_no, irq_stat;
-
-	irq_stat = __raw_readl(GPIO_BASE(port) + GPIO_INT_STAT);
-
-	gpio_irq_no = GPIO_IRQ_BASE + port * 32;
-	for (; irq_stat != 0; irq_stat >>= 1, gpio_irq_no++) {
-
-		if ((irq_stat & 1) == 0)
-			continue;
-
-		generic_handle_irq(gpio_irq_no);
-	}
-}
-
-static struct irq_chip gpio_irq_chip = {
-	.name = "GPIO",
-	.irq_ack = gpio_ack_irq,
-	.irq_mask = gpio_mask_irq,
-	.irq_unmask = gpio_unmask_irq,
-	.irq_set_type = gpio_set_irq_type,
-};
-
-static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
-				int dir)
-{
-	void __iomem *base = GPIO_BASE(offset / 32);
-	unsigned int reg;
-
-	reg = __raw_readl(base + GPIO_DIR);
-	if (dir)
-		reg |= 1 << (offset % 32);
-	else
-		reg &= ~(1 << (offset % 32));
-	__raw_writel(reg, base + GPIO_DIR);
-}
-
-static void gemini_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
-{
-	void __iomem *base = GPIO_BASE(offset / 32);
-
-	if (value)
-		__raw_writel(1 << (offset % 32), base + GPIO_DATA_SET);
-	else
-		__raw_writel(1 << (offset % 32), base + GPIO_DATA_CLR);
-}
-
-static int gemini_gpio_get(struct gpio_chip *chip, unsigned offset)
-{
-	void __iomem *base = GPIO_BASE(offset / 32);
-
-	return (__raw_readl(base + GPIO_DATA_IN) >> (offset % 32)) & 1;
-}
-
-static int gemini_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
-{
-	_set_gpio_direction(chip, offset, 0);
-	return 0;
-}
-
-static int gemini_gpio_direction_output(struct gpio_chip *chip, unsigned offset,
-					int value)
-{
-	_set_gpio_direction(chip, offset, 1);
-	gemini_gpio_set(chip, offset, value);
-	return 0;
-}
-
-static struct gpio_chip gemini_gpio_chip = {
-	.label			= "Gemini",
-	.direction_input	= gemini_gpio_direction_input,
-	.get			= gemini_gpio_get,
-	.direction_output	= gemini_gpio_direction_output,
-	.set			= gemini_gpio_set,
-	.base			= 0,
-	.ngpio			= GPIO_PORT_NUM * 32,
-};
-
-void __init gemini_gpio_init(void)
-{
-	int i, j;
-
-	for (i = 0; i < GPIO_PORT_NUM; i++) {
-		/* disable, unmask and clear all interrupts */
-		__raw_writel(0x0, GPIO_BASE(i) + GPIO_INT_EN);
-		__raw_writel(0x0, GPIO_BASE(i) + GPIO_INT_MASK);
-		__raw_writel(~0x0, GPIO_BASE(i) + GPIO_INT_CLR);
-
-		for (j = GPIO_IRQ_BASE + i * 32;
-		     j < GPIO_IRQ_BASE + (i + 1) * 32; j++) {
-			irq_set_chip_and_handler(j, &gpio_irq_chip,
-						 handle_edge_irq);
-			set_irq_flags(j, IRQF_VALID);
-		}
-
-		irq_set_chained_handler(IRQ_GPIO(i), gpio_irq_handler);
-		irq_set_handler_data(IRQ_GPIO(i), (void *)i);
-	}
-
-	BUG_ON(gpiochip_add(&gemini_gpio_chip));
-}
diff --git a/arch/arm/mach-gemini/idle.c b/arch/arm/mach-gemini/idle.c
deleted file mode 100644
index 92bbd6b..0000000
--- a/arch/arm/mach-gemini/idle.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * arch/arm/mach-gemini/idle.c
- */
-
-#include <linux/init.h>
-#include <asm/system.h>
-#include <asm/proc-fns.h>
-
-static void gemini_idle(void)
-{
-	/*
-	 * Because of broken hardware we have to enable interrupts or the CPU
-	 * will never wakeup... Acctualy it is not very good to enable
-	 * interrupts first since scheduler can miss a tick, but there is
-	 * no other way around this. Platforms that needs it for power saving
-	 * should call enable_hlt() in init code, since by default it is
-	 * disabled.
-	 */
-	local_irq_enable();
-	cpu_do_idle();
-}
-
-static int __init gemini_idle_init(void)
-{
-	arm_pm_idle = gemini_idle;
-	return 0;
-}
-
-arch_initcall(gemini_idle_init);
diff --git a/arch/arm/mach-gemini/include/mach/debug-macro.S b/arch/arm/mach-gemini/include/mach/debug-macro.S
deleted file mode 100644
index 8376707..0000000
--- a/arch/arm/mach-gemini/include/mach/debug-macro.S
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Debugging macro include header
- *
- *  Copyright (C) 1994-1999 Russell King
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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.
- */
-#include <mach/hardware.h>
-
-	.macro	addruart, rp, rv, tmp
-	ldr	\rp, =GEMINI_UART_BASE			@ physical
-	ldr	\rv, =IO_ADDRESS(GEMINI_UART_BASE)	@ virtual
-	.endm
-
-#define UART_SHIFT	2
-#define FLOW_CONTROL
-#include <asm/hardware/debug-8250.S>
diff --git a/arch/arm/mach-gemini/include/mach/entry-macro.S b/arch/arm/mach-gemini/include/mach/entry-macro.S
deleted file mode 100644
index f044e43..0000000
--- a/arch/arm/mach-gemini/include/mach/entry-macro.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Low-level IRQ helper macros for Gemini platform.
- *
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * This file is licensed under  the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-#include <mach/hardware.h>
-
-#define IRQ_STATUS	0x14
-
-	.macro  get_irqnr_preamble, base, tmp
-	.endm
-
-	.macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
-	ldr     \irqstat, =IO_ADDRESS(GEMINI_INTERRUPT_BASE + IRQ_STATUS)
-	ldr     \irqnr, [\irqstat]
-	cmp     \irqnr, #0
-	beq     2313f
-	mov     \tmp, \irqnr
-	mov     \irqnr, #0
-2312:
-	tst     \tmp, #1
-	bne     2313f
-	add     \irqnr, \irqnr, #1
-	mov     \tmp, \tmp, lsr #1
-	cmp     \irqnr, #31
-	bcc     2312b
-2313:
-	.endm
diff --git a/arch/arm/mach-gemini/include/mach/global_reg.h b/arch/arm/mach-gemini/include/mach/global_reg.h
deleted file mode 100644
index de7ff7e..0000000
--- a/arch/arm/mach-gemini/include/mach/global_reg.h
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- *  This file contains the hardware definitions for Gemini.
- *
- *  Copyright (C) 2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-#ifndef __MACH_GLOBAL_REG_H
-#define __MACH_GLOBAL_REG_H
-
-/* Global Word ID Register*/
-#define GLOBAL_ID			0x00
-
-#define CHIP_ID(reg)			((reg) >> 8)
-#define CHIP_REVISION(reg)		((reg) & 0xFF)
-
-/* Global Status Register */
-#define GLOBAL_STATUS			0x04
-
-#define CPU_BIG_ENDIAN			(1 << 31)
-#define PLL_OSC_30M			(1 << 30)	/* else 60MHz */
-
-#define OPERATION_MODE_MASK		(0xF << 26)
-#define OPM_IDDQ			(0xF << 26)
-#define OPM_NAND			(0xE << 26)
-#define OPM_RING			(0xD << 26)
-#define OPM_DIRECT_BOOT			(0xC << 26)
-#define OPM_USB1_PHY_TEST		(0xB << 26)
-#define OPM_USB0_PHY_TEST		(0xA << 26)
-#define OPM_SATA1_PHY_TEST		(0x9 << 26)
-#define OPM_SATA0_PHY_TEST		(0x8 << 26)
-#define OPM_ICE_ARM			(0x7 << 26)
-#define OPM_ICE_FARADAY			(0x6 << 26)
-#define OPM_PLL_BYPASS			(0x5 << 26)
-#define OPM_DEBUG			(0x4 << 26)
-#define OPM_BURN_IN			(0x3 << 26)
-#define OPM_MBIST			(0x2 << 26)
-#define OPM_SCAN			(0x1 << 26)
-#define OPM_REAL			(0x0 << 26)
-
-#define FLASH_TYPE_MASK			(0x3 << 24)
-#define FLASH_TYPE_NAND_2K		(0x3 << 24)
-#define FLASH_TYPE_NAND_512		(0x2 << 24)
-#define FLASH_TYPE_PARALLEL		(0x1 << 24)
-#define FLASH_TYPE_SERIAL		(0x0 << 24)
-/* if parallel */
-#define FLASH_WIDTH_16BIT		(1 << 23)	/* else 8 bit */
-/* if serial */
-#define FLASH_ATMEL			(1 << 23)	/* else STM */
-
-#define FLASH_SIZE_MASK			(0x3 << 21)
-#define NAND_256M			(0x3 << 21)	/* and more */
-#define NAND_128M			(0x2 << 21)
-#define NAND_64M			(0x1 << 21)
-#define NAND_32M			(0x0 << 21)
-#define ATMEL_16M			(0x3 << 21)	/* and more */
-#define ATMEL_8M			(0x2 << 21)
-#define ATMEL_4M_2M			(0x1 << 21)
-#define ATMEL_1M			(0x0 << 21)	/* and less */
-#define STM_32M				(1 << 22)	/* and more */
-#define STM_16M				(0 << 22)	/* and less */
-
-#define FLASH_PARALLEL_HIGH_PIN_CNT	(1 << 20)	/* else low pin cnt */
-
-#define CPU_AHB_RATIO_MASK		(0x3 << 18)
-#define CPU_AHB_1_1			(0x0 << 18)
-#define CPU_AHB_3_2			(0x1 << 18)
-#define CPU_AHB_24_13			(0x2 << 18)
-#define CPU_AHB_2_1			(0x3 << 18)
-
-#define REG_TO_AHB_SPEED(reg)		((((reg) >> 15) & 0x7) * 10 + 130)
-#define AHB_SPEED_TO_REG(x)		((((x - 130)) / 10) << 15)
-
-/* it is posible to override some settings, use >> OVERRIDE_xxxx_SHIFT */
-#define OVERRIDE_FLASH_TYPE_SHIFT	16
-#define OVERRIDE_FLASH_WIDTH_SHIFT	16
-#define OVERRIDE_FLASH_SIZE_SHIFT	16
-#define OVERRIDE_CPU_AHB_RATIO_SHIFT	15
-#define OVERRIDE_AHB_SPEED_SHIFT	15
-
-/* Global PLL Control Register */
-#define GLOBAL_PLL_CTRL			0x08
-
-#define PLL_BYPASS			(1 << 31)
-#define PLL_POWER_DOWN			(1 << 8)
-#define PLL_CONTROL_Q			(0x1F << 0)
-
-/* Global Soft Reset Control Register */
-#define GLOBAL_RESET			0x0C
-
-#define RESET_GLOBAL			(1 << 31)
-#define RESET_CPU1			(1 << 30)
-#define RESET_TVE			(1 << 28)
-#define RESET_SATA1			(1 << 27)
-#define RESET_SATA0			(1 << 26)
-#define RESET_CIR			(1 << 25)
-#define RESET_EXT_DEV			(1 << 24)
-#define RESET_WD			(1 << 23)
-#define RESET_GPIO2			(1 << 22)
-#define RESET_GPIO1			(1 << 21)
-#define RESET_GPIO0			(1 << 20)
-#define RESET_SSP			(1 << 19)
-#define RESET_UART			(1 << 18)
-#define RESET_TIMER			(1 << 17)
-#define RESET_RTC			(1 << 16)
-#define RESET_INT1			(1 << 15)
-#define RESET_INT0			(1 << 14)
-#define RESET_LCD			(1 << 13)
-#define RESET_LPC			(1 << 12)
-#define RESET_APB			(1 << 11)
-#define RESET_DMA			(1 << 10)
-#define RESET_USB1			(1 << 9)
-#define RESET_USB0			(1 << 8)
-#define RESET_PCI			(1 << 7)
-#define RESET_GMAC1			(1 << 6)
-#define RESET_GMAC0			(1 << 5)
-#define RESET_SECURITY			(1 << 4)
-#define RESET_RAID			(1 << 3)
-#define RESET_IDE			(1 << 2)
-#define RESET_FLASH			(1 << 1)
-#define RESET_DRAM			(1 << 0)
-
-/* Global IO Pad Driving Capability Control Register */
-#define GLOBAL_IO_DRIVING_CTRL		0x10
-
-#define DRIVING_CURRENT_MASK		0x3
-
-/* here 00-4mA, 01-8mA, 10-12mA, 11-16mA */
-#define GPIO1_PADS_31_28_SHIFT		28
-#define GPIO0_PADS_31_16_SHIFT		26
-#define GPIO0_PADS_15_0_SHIFT		24
-#define PCI_AND_EXT_RESET_PADS_SHIFT	22
-#define IDE_PADS_SHIFT			20
-#define GMAC1_PADS_SHIFT		18
-#define GMAC0_PADS_SHIFT		16
-/* DRAM is not in mA and poorly documented */
-#define DRAM_CLOCK_PADS_SHIFT		8
-#define DRAM_DATA_PADS_SHIFT		4
-#define DRAM_CONTROL_PADS_SHIFT		0
-
-/* Global IO Pad Slew Rate Control Register */
-#define GLOBAL_IO_SLEW_RATE_CTRL	0x14
-
-#define GPIO1_PADS_31_28_SLOW		(1 << 10)
-#define GPIO0_PADS_31_16_SLOW		(1 << 9)
-#define GPIO0_PADS_15_0_SLOW		(1 << 8)
-#define PCI_PADS_SLOW			(1 << 7)
-#define IDE_PADS_SLOW			(1 << 6)
-#define GMAC1_PADS_SLOW			(1 << 5)
-#define GMAC0_PADS_SLOW			(1 << 4)
-#define DRAM_CLOCK_PADS_SLOW		(1 << 1)
-#define DRAM_IO_PADS_SLOW		(1 << 0)
-
-/*
- * General skew control defines
- * 16 steps, each step is around 0.2ns
- */
-#define SKEW_MASK			0xF
-
-/* Global IDE PAD Skew Control Register */
-#define GLOBAL_IDE_SKEW_CTRL		0x18
-
-#define IDE1_HOST_STROBE_DELAY_SHIFT	28
-#define IDE1_DEVICE_STROBE_DELAY_SHIFT	24
-#define IDE1_OUTPUT_IO_SKEW_SHIFT	20
-#define IDE1_INPUT_IO_SKEW_SHIFT	16
-#define IDE0_HOST_STROBE_DELAY_SHIFT	12
-#define IDE0_DEVICE_STROBE_DELAY_SHIFT	8
-#define IDE0_OUTPUT_IO_SKEW_SHIFT	4
-#define IDE0_INPUT_IO_SKEW_SHIFT	0
-
-/* Global GMAC Control Pad Skew Control Register */
-#define GLOBAL_GMAC_CTRL_SKEW_CTRL	0x1C
-
-#define GMAC1_TXC_SKEW_SHIFT		28
-#define GMAC1_TXEN_SKEW_SHIFT		24
-#define GMAC1_RXC_SKEW_SHIFT		20
-#define GMAC1_RXDV_SKEW_SHIFT		16
-#define GMAC0_TXC_SKEW_SHIFT		12
-#define GMAC0_TXEN_SKEW_SHIFT		8
-#define GMAC0_RXC_SKEW_SHIFT		4
-#define GMAC0_RXDV_SKEW_SHIFT		0
-
-/* Global GMAC0 Data PAD Skew Control Register */
-#define GLOBAL_GMAC0_DATA_SKEW_CTRL	0x20
-/* Global GMAC1 Data PAD Skew Control Register */
-#define GLOBAL_GMAC1_DATA_SKEW_CTRL	0x24
-
-#define GMAC_TXD_SKEW_SHIFT(x)		(((x) * 4) + 16)
-#define GMAC_RXD_SKEW_SHIFT(x)		((x) * 4)
-
-/* CPU has two AHB busses. */
-
-/* Global Arbitration0 Control Register */
-#define GLOBAL_ARBITRATION0_CTRL	0x28
-
-#define BOOT_CONTROLLER_HIGH_PRIO	(1 << 3)
-#define DMA_BUS1_HIGH_PRIO		(1 << 2)
-#define CPU0_HIGH_PRIO			(1 << 0)
-
-/* Global Arbitration1 Control Register */
-#define GLOBAL_ARBITRATION1_CTRL	0x2C
-
-#define TVE_HIGH_PRIO			(1 << 9)
-#define PCI_HIGH_PRIO			(1 << 8)
-#define USB1_HIGH_PRIO			(1 << 7)
-#define USB0_HIGH_PRIO			(1 << 6)
-#define GMAC1_HIGH_PRIO			(1 << 5)
-#define GMAC0_HIGH_PRIO			(1 << 4)
-#define SECURITY_HIGH_PRIO		(1 << 3)
-#define RAID_HIGH_PRIO			(1 << 2)
-#define IDE_HIGH_PRIO			(1 << 1)
-#define DMA_BUS2_HIGH_PRIO		(1 << 0)
-
-/* Common bits for both arbitration registers */
-#define BURST_LENGTH_SHIFT		16
-#define BURST_LENGTH_MASK		(0x3F << 16)
-
-/* Miscellaneous Control Register */
-#define GLOBAL_MISC_CTRL		0x30
-
-#define MEMORY_SPACE_SWAP		(1 << 31)
-#define USB1_PLUG_MINIB			(1 << 30) /* else plug is mini-A */
-#define USB0_PLUG_MINIB			(1 << 29)
-#define GMAC_GMII			(1 << 28)
-#define GMAC_1_ENABLE			(1 << 27)
-/* TODO: define ATA/SATA bits */
-#define USB1_VBUS_ON			(1 << 23)
-#define USB0_VBUS_ON			(1 << 22)
-#define APB_CLKOUT_ENABLE		(1 << 21)
-#define TVC_CLKOUT_ENABLE		(1 << 20)
-#define EXT_CLKIN_ENABLE		(1 << 19)
-#define PCI_66MHZ			(1 << 18) /* else 33 MHz */
-#define PCI_CLKOUT_ENABLE		(1 << 17)
-#define LPC_CLKOUT_ENABLE		(1 << 16)
-#define USB1_WAKEUP_ON			(1 << 15)
-#define USB0_WAKEUP_ON			(1 << 14)
-/* TODO: define PCI idle detect bits */
-#define TVC_PADS_ENABLE			(1 << 9)
-#define SSP_PADS_ENABLE			(1 << 8)
-#define LCD_PADS_ENABLE			(1 << 7)
-#define LPC_PADS_ENABLE			(1 << 6)
-#define PCI_PADS_ENABLE			(1 << 5)
-#define IDE_PADS_ENABLE			(1 << 4)
-#define DRAM_PADS_POWER_DOWN		(1 << 3)
-#define NAND_PADS_DISABLE		(1 << 2)
-#define PFLASH_PADS_DISABLE		(1 << 1)
-#define SFLASH_PADS_DISABLE		(1 << 0)
-
-/* Global Clock Control Register */
-#define GLOBAL_CLOCK_CTRL		0x34
-
-#define POWER_STATE_G0			(1 << 31)
-#define POWER_STATE_S1			(1 << 30) /* else it is S3/S4 state */
-#define SECURITY_APB_AHB		(1 << 29)
-/* else Security APB clk will be 0.75xAHB */
-/* TODO: TVC clock divider */
-#define PCI_CLKRUN_ENABLE		(1 << 16)
-#define BOOT_CLK_DISABLE		(1 << 13)
-#define TVC_CLK_DISABLE			(1 << 12)
-#define FLASH_CLK_DISABLE		(1 << 11)
-#define DDR_CLK_DISABLE			(1 << 10)
-#define PCI_CLK_DISABLE			(1 << 9)
-#define IDE_CLK_DISABLE			(1 << 8)
-#define USB1_CLK_DISABLE		(1 << 7)
-#define USB0_CLK_DISABLE		(1 << 6)
-#define SATA1_CLK_DISABLE		(1 << 5)
-#define SATA0_CLK_DISABLE		(1 << 4)
-#define GMAC1_CLK_DISABLE		(1 << 3)
-#define GMAC0_CLK_DISABLE		(1 << 2)
-#define SECURITY_CLK_DISABLE		(1 << 1)
-
-/* TODO: other registers definitions if needed */
-
-#endif /* __MACH_GLOBAL_REG_H */
diff --git a/arch/arm/mach-gemini/include/mach/gpio.h b/arch/arm/mach-gemini/include/mach/gpio.h
deleted file mode 100644
index 40a0527..0000000
--- a/arch/arm/mach-gemini/include/mach/gpio.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Gemini gpiolib specific defines
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#ifndef __MACH_GPIO_H__
-#define __MACH_GPIO_H__
-
-#include <mach/irqs.h>
-
-#define gpio_to_irq(x)	((x) + GPIO_IRQ_BASE)
-#define irq_to_gpio(x)	((x) - GPIO_IRQ_BASE)
-
-#endif /* __MACH_GPIO_H__ */
diff --git a/arch/arm/mach-gemini/include/mach/hardware.h b/arch/arm/mach-gemini/include/mach/hardware.h
deleted file mode 100644
index 98e7b0f..0000000
--- a/arch/arm/mach-gemini/include/mach/hardware.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- *  This file contains the hardware definitions for Gemini.
- *
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-#ifndef __MACH_HARDWARE_H
-#define __MACH_HARDWARE_H
-
-/*
- * Memory Map definitions
- */
-#ifdef CONFIG_GEMINI_MEM_SWAP
-# define GEMINI_DRAM_BASE	0x00000000
-# define GEMINI_SRAM_BASE	0x70000000
-#else
-# define GEMINI_SRAM_BASE	0x00000000
-# define GEMINI_DRAM_BASE	0x10000000
-#endif
-#define GEMINI_FLASH_BASE	0x30000000
-#define GEMINI_GLOBAL_BASE	0x40000000
-#define GEMINI_WAQTCHDOG_BASE	0x41000000
-#define GEMINI_UART_BASE	0x42000000
-#define GEMINI_TIMER_BASE	0x43000000
-#define GEMINI_LCD_BASE		0x44000000
-#define GEMINI_RTC_BASE		0x45000000
-#define GEMINI_SATA_BASE	0x46000000
-#define GEMINI_LPC_HOST_BASE	0x47000000
-#define GEMINI_LPC_IO_BASE	0x47800000
-#define GEMINI_INTERRUPT_BASE	0x48000000
-/* TODO: Different interrupt controllers when SMP
- * #define GEMINI_INTERRUPT0_BASE	0x48000000
- * #define GEMINI_INTERRUPT1_BASE	0x49000000
- */
-#define GEMINI_SSP_CTRL_BASE	0x4A000000
-#define GEMINI_POWER_CTRL_BASE	0x4B000000
-#define GEMINI_CIR_BASE		0x4C000000
-#define GEMINI_GPIO_BASE(x)	(0x4D000000 + (x) * 0x1000000)
-#define GEMINI_PCI_IO_BASE	0x50000000
-#define GEMINI_PCI_MEM_BASE	0x58000000
-#define GEMINI_TOE_BASE		0x60000000
-#define GEMINI_GMAC0_BASE	0x6000A000
-#define GEMINI_GMAC1_BASE	0x6000E000
-#define GEMINI_SECURITY_BASE	0x62000000
-#define GEMINI_IDE0_BASE	0x63000000
-#define GEMINI_IDE1_BASE	0x63400000
-#define GEMINI_RAID_BASE	0x64000000
-#define GEMINI_FLASH_CTRL_BASE	0x65000000
-#define GEMINI_DRAM_CTRL_BASE	0x66000000
-#define GEMINI_GENERAL_DMA_BASE	0x67000000
-#define GEMINI_USB0_BASE	0x68000000
-#define GEMINI_USB1_BASE	0x69000000
-#define GEMINI_BIG_ENDIAN_BASE	0x80000000
-
-#define GEMINI_TIMER1_BASE	GEMINI_TIMER_BASE
-#define GEMINI_TIMER2_BASE	(GEMINI_TIMER_BASE + 0x10)
-#define GEMINI_TIMER3_BASE	(GEMINI_TIMER_BASE + 0x20)
-
-/*
- * UART Clock when System clk is 150MHz
- */
-#define UART_CLK	48000000
-
-/*
- * macro to get at IO space when running virtually
- */
-#define IO_ADDRESS(x)	IOMEM((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
-
-#endif
diff --git a/arch/arm/mach-gemini/include/mach/irqs.h b/arch/arm/mach-gemini/include/mach/irqs.h
deleted file mode 100644
index 06bc47e..0000000
--- a/arch/arm/mach-gemini/include/mach/irqs.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#ifndef __MACH_IRQS_H__
-#define __MACH_IRQS_H__
-
-#define IRQ_SERIRQ1	31
-#define IRQ_SERIRQ0	30
-#define IRQ_PCID	29
-#define IRQ_PCIC	28
-#define IRQ_PCIB	27
-#define IRQ_PWR		26
-#define IRQ_CIR		25
-#define IRQ_GPIO(x)	(22 + (x))
-#define IRQ_SSP		21
-#define IRQ_LPC		20
-#define IRQ_LCD		19
-#define IRQ_UART	18
-#define IRQ_RTC		17
-#define IRQ_TIMER3	16
-#define IRQ_TIMER2	15
-#define IRQ_TIMER1	14
-#define IRQ_FLASH	12
-#define IRQ_USB1	11
-#define IRQ_USB0	10
-#define IRQ_DMA		9
-#define IRQ_PCI		8
-#define IRQ_IPSEC	7
-#define IRQ_RAID	6
-#define IRQ_IDE1	5
-#define IRQ_IDE0	4
-#define IRQ_WATCHDOG	3
-#define IRQ_GMAC1	2
-#define IRQ_GMAC0	1
-#define IRQ_IPI		0
-
-#define NORMAL_IRQ_NUM	32
-
-#define GPIO_IRQ_BASE	NORMAL_IRQ_NUM
-#define GPIO_IRQ_NUM	(3 * 32)
-
-#define ARCH_TIMER_IRQ	IRQ_TIMER2
-
-#define NR_IRQS		(NORMAL_IRQ_NUM + GPIO_IRQ_NUM)
-
-#endif /* __MACH_IRQS_H__ */
diff --git a/arch/arm/mach-gemini/include/mach/timex.h b/arch/arm/mach-gemini/include/mach/timex.h
deleted file mode 100644
index dc5690b..0000000
--- a/arch/arm/mach-gemini/include/mach/timex.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Gemini timex specifications
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-/* When AHB bus frequency is 150MHz */
-#define CLOCK_TICK_RATE	38000000
diff --git a/arch/arm/mach-gemini/include/mach/uncompress.h b/arch/arm/mach-gemini/include/mach/uncompress.h
deleted file mode 100644
index 02e2256..0000000
--- a/arch/arm/mach-gemini/include/mach/uncompress.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * Based on mach-pxa/include/mach/uncompress.h:
- * Copyright:	(C) 2001 MontaVista Software Inc.
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#ifndef __MACH_UNCOMPRESS_H
-#define __MACH_UNCOMPRESS_H
-
-#include <linux/serial_reg.h>
-#include <mach/hardware.h>
-
-static volatile unsigned long * const UART = (unsigned long *)GEMINI_UART_BASE;
-
-/*
- * The following code assumes the serial port has already been
- * initialized by the bootloader.  If you didn't setup a port in
- * your bootloader then nothing will appear (which might be desired).
- */
-static inline void putc(char c)
-{
-	while (!(UART[UART_LSR] & UART_LSR_THRE))
-		barrier();
-	UART[UART_TX] = c;
-}
-
-static inline void flush(void)
-{
-}
-
-/*
- * nothing to do
- */
-#define arch_decomp_setup()
-
-#endif /* __MACH_UNCOMPRESS_H */
diff --git a/arch/arm/mach-gemini/irq.c b/arch/arm/mach-gemini/irq.c
deleted file mode 100644
index 30bef11..0000000
--- a/arch/arm/mach-gemini/irq.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- *  Interrupt routines for Gemini
- *
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/ioport.h>
-#include <linux/stddef.h>
-#include <linux/list.h>
-#include <linux/sched.h>
-#include <asm/irq.h>
-#include <asm/mach/irq.h>
-#include <asm/system_misc.h>
-#include <mach/hardware.h>
-
-#define IRQ_SOURCE(base_addr)	(base_addr + 0x00)
-#define IRQ_MASK(base_addr)	(base_addr + 0x04)
-#define IRQ_CLEAR(base_addr)	(base_addr + 0x08)
-#define IRQ_TMODE(base_addr)	(base_addr + 0x0C)
-#define IRQ_TLEVEL(base_addr)	(base_addr + 0x10)
-#define IRQ_STATUS(base_addr)	(base_addr + 0x14)
-#define FIQ_SOURCE(base_addr)	(base_addr + 0x20)
-#define FIQ_MASK(base_addr)	(base_addr + 0x24)
-#define FIQ_CLEAR(base_addr)	(base_addr + 0x28)
-#define FIQ_TMODE(base_addr)	(base_addr + 0x2C)
-#define FIQ_LEVEL(base_addr)	(base_addr + 0x30)
-#define FIQ_STATUS(base_addr)	(base_addr + 0x34)
-
-static void gemini_ack_irq(struct irq_data *d)
-{
-	__raw_writel(1 << d->irq, IRQ_CLEAR(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
-}
-
-static void gemini_mask_irq(struct irq_data *d)
-{
-	unsigned int mask;
-
-	mask = __raw_readl(IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
-	mask &= ~(1 << d->irq);
-	__raw_writel(mask, IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
-}
-
-static void gemini_unmask_irq(struct irq_data *d)
-{
-	unsigned int mask;
-
-	mask = __raw_readl(IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
-	mask |= (1 << d->irq);
-	__raw_writel(mask, IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
-}
-
-static struct irq_chip gemini_irq_chip = {
-	.name		= "INTC",
-	.irq_ack	= gemini_ack_irq,
-	.irq_mask	= gemini_mask_irq,
-	.irq_unmask	= gemini_unmask_irq,
-};
-
-static struct resource irq_resource = {
-	.name	= "irq_handler",
-	.start	= GEMINI_INTERRUPT_BASE,
-	.end	= FIQ_STATUS(GEMINI_INTERRUPT_BASE) + 4,
-};
-
-void __init gemini_init_irq(void)
-{
-	unsigned int i, mode = 0, level = 0;
-
-	/*
-	 * Disable the idle handler by default since it is buggy
-	 * For more info see arch/arm/mach-gemini/idle.c
-	 */
-	disable_hlt();
-
-	request_resource(&iomem_resource, &irq_resource);
-
-	for (i = 0; i < NR_IRQS; i++) {
-		irq_set_chip(i, &gemini_irq_chip);
-		if((i >= IRQ_TIMER1 && i <= IRQ_TIMER3) || (i >= IRQ_SERIRQ0 && i <= IRQ_SERIRQ1)) {
-			irq_set_handler(i, handle_edge_irq);
-			mode |= 1 << i;
-			level |= 1 << i;
-		} else {			
-			irq_set_handler(i, handle_level_irq);
-		}
-		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
-	}
-
-	/* Disable all interrupts */
-	__raw_writel(0, IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
-	__raw_writel(0, FIQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
-
-	/* Set interrupt mode */
-	__raw_writel(mode, IRQ_TMODE(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
-	__raw_writel(level, IRQ_TLEVEL(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
-}
diff --git a/arch/arm/mach-gemini/mm.c b/arch/arm/mach-gemini/mm.c
deleted file mode 100644
index 2c2cd28..0000000
--- a/arch/arm/mach-gemini/mm.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- *  Static mappings for Gemini
- *
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-#include <linux/mm.h>
-#include <linux/init.h>
-
-#include <asm/mach/map.h>
-
-#include <mach/hardware.h>
-
-/* Page table mapping for I/O region */
-static struct map_desc gemini_io_desc[] __initdata = {
-	{
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GLOBAL_BASE),
-		.pfn		=__phys_to_pfn(GEMINI_GLOBAL_BASE),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_UART_BASE),
-		.pfn		= __phys_to_pfn(GEMINI_UART_BASE),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_TIMER_BASE),
-		.pfn		= __phys_to_pfn(GEMINI_TIMER_BASE),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_INTERRUPT_BASE),
-		.pfn		= __phys_to_pfn(GEMINI_INTERRUPT_BASE),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
-		.pfn		= __phys_to_pfn(GEMINI_POWER_CTRL_BASE),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(0)),
-		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(0)),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(1)),
-		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(1)),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(2)),
-		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(2)),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
-		.pfn		= __phys_to_pfn(GEMINI_FLASH_CTRL_BASE),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
-		.pfn		= __phys_to_pfn(GEMINI_DRAM_CTRL_BASE),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
-		.pfn		= __phys_to_pfn(GEMINI_GENERAL_DMA_BASE),
-		.length		= SZ_512K,
-		.type 		= MT_DEVICE,
-	},
-};
-
-void __init gemini_map_io(void)
-{
-	iotable_init(gemini_io_desc, ARRAY_SIZE(gemini_io_desc));
-}
diff --git a/arch/arm/mach-gemini/reset.c b/arch/arm/mach-gemini/reset.c
deleted file mode 100644
index b266597..0000000
--- a/arch/arm/mach-gemini/reset.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-#ifndef __MACH_SYSTEM_H
-#define __MACH_SYSTEM_H
-
-#include <linux/io.h>
-#include <mach/hardware.h>
-#include <mach/global_reg.h>
-
-void gemini_restart(char mode, const char *cmd)
-{
-	__raw_writel(RESET_GLOBAL | RESET_CPU1,
-		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
-}
-
-#endif /* __MACH_SYSTEM_H */
diff --git a/arch/arm/mach-gemini/time.c b/arch/arm/mach-gemini/time.c
deleted file mode 100644
index 21dc5a8..0000000
--- a/arch/arm/mach-gemini/time.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/io.h>
-#include <mach/hardware.h>
-#include <mach/global_reg.h>
-#include <asm/mach/time.h>
-
-/*
- * Register definitions for the timers
- */
-#define TIMER_COUNT(BASE_ADDR)		(BASE_ADDR  + 0x00)
-#define TIMER_LOAD(BASE_ADDR)		(BASE_ADDR  + 0x04)
-#define TIMER_MATCH1(BASE_ADDR)		(BASE_ADDR  + 0x08)
-#define TIMER_MATCH2(BASE_ADDR)		(BASE_ADDR  + 0x0C)
-#define TIMER_CR(BASE_ADDR)		(BASE_ADDR  + 0x30)
-
-#define TIMER_1_CR_ENABLE		(1 << 0)
-#define TIMER_1_CR_CLOCK		(1 << 1)
-#define TIMER_1_CR_INT			(1 << 2)
-#define TIMER_2_CR_ENABLE		(1 << 3)
-#define TIMER_2_CR_CLOCK		(1 << 4)
-#define TIMER_2_CR_INT			(1 << 5)
-#define TIMER_3_CR_ENABLE		(1 << 6)
-#define TIMER_3_CR_CLOCK		(1 << 7)
-#define TIMER_3_CR_INT			(1 << 8)
-
-/*
- * IRQ handler for the timer
- */
-static irqreturn_t gemini_timer_interrupt(int irq, void *dev_id)
-{
-	timer_tick();
-
-	return IRQ_HANDLED;
-}
-
-static struct irqaction gemini_timer_irq = {
-	.name		= "Gemini Timer Tick",
-	.flags		= IRQF_DISABLED | IRQF_TIMER,
-	.handler	= gemini_timer_interrupt,
-};
-
-/*
- * Set up timer interrupt, and return the current time in seconds.
- */
-void __init gemini_timer_init(void)
-{
-	unsigned int tick_rate, reg_v;
-
-	reg_v = __raw_readl(IO_ADDRESS(GEMINI_GLOBAL_BASE + GLOBAL_STATUS));
-	tick_rate = REG_TO_AHB_SPEED(reg_v) * 1000000;
-
-	printk(KERN_INFO "Bus: %dMHz", tick_rate / 1000000);
-
-	tick_rate /= 6;		/* APB bus run AHB*(1/6) */
-
-	switch(reg_v & CPU_AHB_RATIO_MASK) {
-	case CPU_AHB_1_1:
-		printk(KERN_CONT "(1/1)\n");
-		break;
-	case CPU_AHB_3_2:
-		printk(KERN_CONT "(3/2)\n");
-		break;
-	case CPU_AHB_24_13:
-		printk(KERN_CONT "(24/13)\n");
-		break;
-	case CPU_AHB_2_1:
-		printk(KERN_CONT "(2/1)\n");
-		break;
-	}
-
-	/*
-	 * Make irqs happen for the system timer
-	 */
-	setup_irq(IRQ_TIMER2, &gemini_timer_irq);
-	/* Start the timer */
-	__raw_writel(tick_rate / HZ, TIMER_COUNT(IO_ADDRESS(GEMINI_TIMER2_BASE)));
-	__raw_writel(tick_rate / HZ, TIMER_LOAD(IO_ADDRESS(GEMINI_TIMER2_BASE)));
-	__raw_writel(TIMER_2_CR_ENABLE | TIMER_2_CR_INT, TIMER_CR(IO_ADDRESS(GEMINI_TIMER_BASE)));
-}
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-14 22:12 [PATCH 0/6] ARM platform spring cleaning Arnd Bergmann
  2013-03-14 22:12 ` [PATCH 1/6] ARM: gemini: get platform to build again Arnd Bergmann
  2013-03-14 22:12 ` [PATCH 2/6] ARM: gemini: remove platform support Arnd Bergmann
@ 2013-03-14 22:12 ` Arnd Bergmann
  2013-03-15 12:49   ` Florian Fainelli
  2013-03-14 22:12 ` [PATCH 4/6] ARM: l7200: remove zombie file Arnd Bergmann
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:12 UTC (permalink / raw)
  To: linux-arm-kernel

With the Cortina Gemini platform gone, nothing in ARM uses
the Faraday 526 CPU core support any more. There is at least
one other platform using this (Moschip MCS814x), but the
efforts to get that merged into mainline appear to have
stalled.

If someone still needs this code, please speak up now,
otherwise we will remove it now. Of course there is
always the option to revert this patch if we need it
again later.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 MAINTAINERS                       |   7 --
 arch/arm/Kconfig                  |   2 +-
 arch/arm/Makefile                 |   1 -
 arch/arm/boot/compressed/head.S   |  28 -----
 arch/arm/include/asm/barrier.h    |   6 -
 arch/arm/include/asm/glue-cache.h |   8 --
 arch/arm/include/asm/glue-proc.h  |   9 --
 arch/arm/include/asm/page.h       |   8 --
 arch/arm/include/asm/tlbflush.h   |  19 ---
 arch/arm/mm/Kconfig               |  32 +----
 arch/arm/mm/Makefile              |   4 -
 arch/arm/mm/cache-fa.S            | 249 --------------------------------------
 arch/arm/mm/copypage-fa.c         |  86 -------------
 arch/arm/mm/proc-fa526.S          | 221 ---------------------------------
 arch/arm/mm/tlb-fa.S              |  69 -----------
 15 files changed, 3 insertions(+), 746 deletions(-)
 delete mode 100644 arch/arm/mm/cache-fa.S
 delete mode 100644 arch/arm/mm/copypage-fa.c
 delete mode 100644 arch/arm/mm/proc-fa526.S
 delete mode 100644 arch/arm/mm/tlb-fa.S

diff --git a/MAINTAINERS b/MAINTAINERS
index 4b59496..f23d90f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -813,13 +813,6 @@ S:	Maintained
 T:	topgit git://git.openezx.org/openezx.git
 F:	arch/arm/mach-pxa/ezx.c
 
-ARM/FARADAY FA526 PORT
-M:	Hans Ulli Kroll <ulli.kroll@googlemail.com>
-L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
-S:	Maintained
-T:	git git://git.berlios.de/gemini-board
-F:	arch/arm/mm/*-fa*
-
 ARM/FOOTBRIDGE ARCHITECTURE
 M:	Russell King <linux@arm.linux.org.uk>
 L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index b62699a..9d2e825 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -980,7 +980,7 @@ menu "Multiple platform selection"
 comment "CPU Core family selection"
 
 config ARCH_MULTI_V4
-	bool "ARMv4 based platforms (FA526, StrongARM)"
+	bool "ARMv4 based platforms (StrongARM)"
 	depends on !ARCH_MULTI_V6_V7
 	select ARCH_MULTI_V4_V5
 
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 50e755b..b514a0a 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -82,7 +82,6 @@ tune-$(CONFIG_CPU_ARM920T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM922T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM925T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM926T)	:=-mtune=arm9tdmi
-tune-$(CONFIG_CPU_FA526)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_SA110)	:=-mtune=strongarm110
 tune-$(CONFIG_CPU_SA1100)	:=-mtune=strongarm1100
 tune-$(CONFIG_CPU_XSCALE)	:=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index fe4d9c3..4e985f0 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -726,21 +726,6 @@ __armv7_mmu_cache_on:
 		mcr	p15, 0, r0, c7, c5, 4	@ ISB
 		mov	pc, r12
 
-__fa526_cache_on:
-		mov	r12, lr
-		mov	r6, #CB_BITS | 0x12	@ U
-		bl	__setup_mmu
-		mov	r0, #0
-		mcr	p15, 0, r0, c7, c7, 0	@ Invalidate whole cache
-		mcr	p15, 0, r0, c7, c10, 4	@ drain write buffer
-		mcr	p15, 0, r0, c8, c7, 0	@ flush UTLB
-		mrc	p15, 0, r0, c1, c0, 0	@ read control reg
-		orr	r0, r0, #0x1000		@ I-cache enable
-		bl	__common_mmu_cache_on
-		mov	r0, #0
-		mcr	p15, 0, r0, c8, c7, 0	@ flush UTLB
-		mov	pc, r12
-
 __common_mmu_cache_on:
 #ifndef CONFIG_THUMB2_KERNEL
 #ifndef DEBUG
@@ -898,12 +883,6 @@ proc_types:
 		b	__armv5tej_mmu_cache_flush
 #endif
 
-		.word	0x66015261		@ FA526
-		.word	0xff01fff1
-		W(b)	__fa526_cache_on
-		W(b)	__armv4_mmu_cache_off
-		W(b)	__fa526_cache_flush
-
 		@ These match on the architecture ID
 
 		.word	0x00020000		@ ARMv4T
@@ -1048,13 +1027,6 @@ __armv4_mpu_cache_flush:
 		mcr	p15, 0, ip, c7, c10, 4	@ drain WB
 		mov	pc, lr
 		
-__fa526_cache_flush:
-		mov	r1, #0
-		mcr	p15, 0, r1, c7, c14, 0	@ clean and invalidate D cache
-		mcr	p15, 0, r1, c7, c5, 0	@ flush I cache
-		mcr	p15, 0, r1, c7, c10, 4	@ drain WB
-		mov	pc, lr
-
 __armv6_mmu_cache_flush:
 		mov	r1, #0
 		mcr	p15, 0, r1, c7, c14, 0	@ clean+invalidate D
diff --git a/arch/arm/include/asm/barrier.h b/arch/arm/include/asm/barrier.h
index 8dcd9c7..7158a84 100644
--- a/arch/arm/include/asm/barrier.h
+++ b/arch/arm/include/asm/barrier.h
@@ -24,12 +24,6 @@
 				    : : "r" (0) : "memory")
 #define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
 				    : : "r" (0) : "memory")
-#elif defined(CONFIG_CPU_FA526)
-#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
-				    : : "r" (0) : "memory")
-#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
-				    : : "r" (0) : "memory")
-#define dmb() __asm__ __volatile__ ("" : : : "memory")
 #else
 #define isb() __asm__ __volatile__ ("" : : : "memory")
 #define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
diff --git a/arch/arm/include/asm/glue-cache.h b/arch/arm/include/asm/glue-cache.h
index cca9f15..adc0955 100644
--- a/arch/arm/include/asm/glue-cache.h
+++ b/arch/arm/include/asm/glue-cache.h
@@ -41,14 +41,6 @@
 # define MULTI_CACHE 1
 #endif
 
-#if defined(CONFIG_CPU_FA526)
-# ifdef _CACHE
-#  define MULTI_CACHE 1
-# else
-#  define _CACHE fa
-# endif
-#endif
-
 #if defined(CONFIG_CPU_ARM926T)
 # ifdef _CACHE
 #  define MULTI_CACHE 1
diff --git a/arch/arm/include/asm/glue-proc.h b/arch/arm/include/asm/glue-proc.h
index ac1dd54..8e42e0d 100644
--- a/arch/arm/include/asm/glue-proc.h
+++ b/arch/arm/include/asm/glue-proc.h
@@ -77,15 +77,6 @@
 # endif
 #endif
 
-#ifdef CONFIG_CPU_FA526
-# ifdef CPU_NAME
-#  undef  MULTI_CPU
-#  define MULTI_CPU
-# else
-#  define CPU_NAME cpu_fa526
-# endif
-#endif
-
 #ifdef CONFIG_CPU_ARM925T
 # ifdef CPU_NAME
 #  undef  MULTI_CPU
diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h
index 812a494..15595fa 100644
--- a/arch/arm/include/asm/page.h
+++ b/arch/arm/include/asm/page.h
@@ -67,14 +67,6 @@
 # endif
 #endif
 
-#ifdef CONFIG_CPU_COPY_FA
-# ifdef _USER
-#  define MULTI_USER 1
-# else
-#  define _USER fa
-# endif
-#endif
-
 #ifdef CONFIG_CPU_SA1100
 # ifdef _USER
 #  define MULTI_USER 1
diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h
index 4db8c88..7d4a918d 100644
--- a/arch/arm/include/asm/tlbflush.h
+++ b/arch/arm/include/asm/tlbflush.h
@@ -57,7 +57,6 @@
  *	  v4wb  - ARMv4 with write buffer without I TLB flush entry instruction
  *	  v4wbi - ARMv4 with write buffer with I TLB flush entry instruction
  *	  fr    - Feroceon (v4wbi with non-outer-cacheable page table walks)
- *	  fa    - Faraday (v4 with write buffer with UTLB)
  *	  v6wbi - ARMv6 with write buffer with I TLB flush entry instruction
  *	  v7wbi - identical to v6wbi
  */
@@ -83,22 +82,6 @@
 # define v4_always_flags	(-1UL)
 #endif
 
-#define fa_tlb_flags	(TLB_WB | TLB_DCLEAN | TLB_BARRIER | \
-			 TLB_V4_U_FULL | TLB_V4_U_PAGE)
-
-#ifdef CONFIG_CPU_TLB_FA
-# define fa_possible_flags	fa_tlb_flags
-# define fa_always_flags	fa_tlb_flags
-# ifdef _TLB
-#  define MULTI_TLB 1
-# else
-#  define _TLB fa
-# endif
-#else
-# define fa_possible_flags	0
-# define fa_always_flags	(-1UL)
-#endif
-
 #define v4wbi_tlb_flags	(TLB_WB | TLB_DCLEAN | \
 			 TLB_V4_I_FULL | TLB_V4_D_FULL | \
 			 TLB_V4_I_PAGE | TLB_V4_D_PAGE)
@@ -293,7 +276,6 @@ extern struct cpu_tlb_fns cpu_tlb;
 				 v4wbi_possible_flags | \
 				 fr_possible_flags | \
 				 v4wb_possible_flags | \
-				 fa_possible_flags | \
 				 v6wbi_possible_flags | \
 				 v7wbi_possible_flags)
 
@@ -301,7 +283,6 @@ extern struct cpu_tlb_fns cpu_tlb;
 				 v4wbi_always_flags & \
 				 fr_always_flags & \
 				 v4wb_always_flags & \
-				 fa_always_flags & \
 				 v6wbi_always_flags & \
 				 v7wbi_always_flags)
 
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 025d173..aa878d4 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -143,24 +143,6 @@ config CPU_ARM926T
 	  Say Y if you want support for the ARM926T processor.
 	  Otherwise, say N.
 
-# FA526
-config CPU_FA526
-	bool
-	select CPU_32v4
-	select CPU_ABRT_EV4
-	select CPU_CACHE_FA
-	select CPU_CACHE_VIVT
-	select CPU_COPY_FA if MMU
-	select CPU_CP15_MMU
-	select CPU_PABRT_LEGACY
-	select CPU_TLB_FA if MMU
-	help
-	  The FA526 is a version of the ARMv4 compatible processor with
-	  Branch Target Buffer, Unified TLB and cache line size 16.
-
-	  Say Y if you want support for the FA526 processor.
-	  Otherwise, say N.
-
 # ARM940T
 config CPU_ARM940T
 	bool "Support ARM940T processor" if ARCH_INTEGRATOR
@@ -507,9 +489,6 @@ config CPU_COPY_V4WB
 config CPU_COPY_FEROCEON
 	bool
 
-config CPU_COPY_FA
-	bool
-
 config CPU_COPY_V6
 	bool
 
@@ -535,13 +514,6 @@ config CPU_TLB_FEROCEON
 	help
 	  Feroceon TLB (v4wbi with non-outer-cachable page table walks).
 
-config CPU_TLB_FA
-	bool
-	help
-	  Faraday ARM FA526 architecture, unified TLB with writeback cache
-	  and invalidate instruction cache entry. Branch target buffer is
-	  also supported.
-
 config CPU_TLB_V6
 	bool
 
@@ -731,7 +703,7 @@ config CPU_DCACHE_SIZE
 
 config CPU_DCACHE_WRITETHROUGH
 	bool "Force write through D-cache"
-	depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_FA526) && !CPU_DCACHE_DISABLE
+	depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020) && !CPU_DCACHE_DISABLE
 	default y if CPU_ARM925T
 	help
 	  Say Y here to use the data cache in writethrough mode. Unless you
@@ -746,7 +718,7 @@ config CPU_CACHE_ROUND_ROBIN
 
 config CPU_BPREDICT_DISABLE
 	bool "Disable branch prediction"
-	depends on CPU_ARM1020 || CPU_V6 || CPU_V6K || CPU_MOHAWK || CPU_XSC3 || CPU_V7 || CPU_FA526
+	depends on CPU_ARM1020 || CPU_V6 || CPU_V6K || CPU_MOHAWK || CPU_XSC3 || CPU_V7
 	help
 	  Say Y here to disable branch prediction.  If unsure, say N.
 
diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile
index 4e333fa..b714ad6 100644
--- a/arch/arm/mm/Makefile
+++ b/arch/arm/mm/Makefile
@@ -39,7 +39,6 @@ obj-$(CONFIG_CPU_CACHE_V4WT)	+= cache-v4wt.o
 obj-$(CONFIG_CPU_CACHE_V4WB)	+= cache-v4wb.o
 obj-$(CONFIG_CPU_CACHE_V6)	+= cache-v6.o
 obj-$(CONFIG_CPU_CACHE_V7)	+= cache-v7.o
-obj-$(CONFIG_CPU_CACHE_FA)	+= cache-fa.o
 
 AFLAGS_cache-v6.o	:=-Wa,-march=armv6
 AFLAGS_cache-v7.o	:=-Wa,-march=armv7-a
@@ -51,7 +50,6 @@ obj-$(CONFIG_CPU_COPY_V6)	+= copypage-v6.o context.o
 obj-$(CONFIG_CPU_SA1100)	+= copypage-v4mc.o
 obj-$(CONFIG_CPU_XSCALE)	+= copypage-xscale.o
 obj-$(CONFIG_CPU_XSC3)		+= copypage-xsc3.o
-obj-$(CONFIG_CPU_COPY_FA)	+= copypage-fa.o
 
 obj-$(CONFIG_CPU_TLB_V4WT)	+= tlb-v4.o
 obj-$(CONFIG_CPU_TLB_V4WB)	+= tlb-v4wb.o
@@ -59,7 +57,6 @@ obj-$(CONFIG_CPU_TLB_V4WBI)	+= tlb-v4wbi.o
 obj-$(CONFIG_CPU_TLB_FEROCEON)	+= tlb-v4wbi.o	# reuse v4wbi TLB functions
 obj-$(CONFIG_CPU_TLB_V6)	+= tlb-v6.o
 obj-$(CONFIG_CPU_TLB_V7)	+= tlb-v7.o
-obj-$(CONFIG_CPU_TLB_FA)	+= tlb-fa.o
 
 AFLAGS_tlb-v6.o		:=-Wa,-march=armv6
 AFLAGS_tlb-v7.o		:=-Wa,-march=armv7-a
@@ -74,7 +71,6 @@ obj-$(CONFIG_CPU_ARM925T)	+= proc-arm925.o
 obj-$(CONFIG_CPU_ARM926T)	+= proc-arm926.o
 obj-$(CONFIG_CPU_ARM940T)	+= proc-arm940.o
 obj-$(CONFIG_CPU_ARM946E)	+= proc-arm946.o
-obj-$(CONFIG_CPU_FA526)		+= proc-fa526.o
 obj-$(CONFIG_CPU_ARM1020)	+= proc-arm1020.o
 obj-$(CONFIG_CPU_ARM1020E)	+= proc-arm1020e.o
 obj-$(CONFIG_CPU_ARM1022)	+= proc-arm1022.o
diff --git a/arch/arm/mm/cache-fa.S b/arch/arm/mm/cache-fa.S
deleted file mode 100644
index e505bef..0000000
--- a/arch/arm/mm/cache-fa.S
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- *  linux/arch/arm/mm/cache-fa.S
- *
- *  Copyright (C) 2005 Faraday Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * Based on cache-v4wb.S:
- *  Copyright (C) 1997-2002 Russell king
- *
- * 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.
- *
- *  Processors: FA520 FA526 FA626	
- */
-#include <linux/linkage.h>
-#include <linux/init.h>
-#include <asm/memory.h>
-#include <asm/page.h>
-
-#include "proc-macros.S"
-
-/*
- * The size of one data cache line.
- */
-#define CACHE_DLINESIZE	16
-
-/*
- * The total size of the data cache.
- */
-#ifdef CONFIG_ARCH_GEMINI
-#define CACHE_DSIZE	8192
-#else
-#define CACHE_DSIZE	16384 
-#endif 
-
-/* FIXME: put optimal value here. Current one is just estimation */
-#define CACHE_DLIMIT	(CACHE_DSIZE * 2)
-
-/*
- *	flush_icache_all()
- *
- *	Unconditionally clean and invalidate the entire icache.
- */
-ENTRY(fa_flush_icache_all)
-	mov	r0, #0
-	mcr	p15, 0, r0, c7, c5, 0		@ invalidate I cache
-	mov	pc, lr
-ENDPROC(fa_flush_icache_all)
-
-/*
- *	flush_user_cache_all()
- *
- *	Clean and invalidate all cache entries in a particular address
- *	space.
- */
-ENTRY(fa_flush_user_cache_all)
-	/* FALLTHROUGH */
-/*
- *	flush_kern_cache_all()
- *
- *	Clean and invalidate the entire cache.
- */
-ENTRY(fa_flush_kern_cache_all)
-	mov	ip, #0
-	mov	r2, #VM_EXEC
-__flush_whole_cache:
-	mcr	p15, 0, ip, c7, c14, 0		@ clean/invalidate D cache
-	tst	r2, #VM_EXEC
-	mcrne	p15, 0, ip, c7, c5, 0		@ invalidate I cache
-	mcrne	p15, 0, ip, c7, c5, 6		@ invalidate BTB
-	mcrne	p15, 0, ip, c7, c10, 4		@ drain write buffer
-	mcrne	p15, 0, ip, c7, c5, 4		@ prefetch flush
-	mov	pc, lr
-
-/*
- *	flush_user_cache_range(start, end, flags)
- *
- *	Invalidate a range of cache entries in the specified
- *	address space.
- *
- *	- start - start address (inclusive, page aligned)
- *	- end	- end address (exclusive, page aligned)
- *	- flags	- vma_area_struct flags describing address space
- */
-ENTRY(fa_flush_user_cache_range)
-	mov	ip, #0
-	sub	r3, r1, r0			@ calculate total size
-	cmp	r3, #CACHE_DLIMIT		@ total size >= limit?
-	bhs	__flush_whole_cache		@ flush whole D cache
-
-1:	tst	r2, #VM_EXEC
-	mcrne	p15, 0, r0, c7, c5, 1		@ invalidate I line
-	mcr	p15, 0, r0, c7, c14, 1		@ clean and invalidate D entry
-	add	r0, r0, #CACHE_DLINESIZE
-	cmp	r0, r1
-	blo	1b
-	tst	r2, #VM_EXEC
-	mcrne	p15, 0, ip, c7, c5, 6		@ invalidate BTB
-	mcrne	p15, 0, ip, c7, c10, 4		@ data write barrier
-	mcrne	p15, 0, ip, c7, c5, 4		@ prefetch flush
-	mov	pc, lr
-
-/*
- *	coherent_kern_range(start, end)
- *
- *	Ensure coherency between the Icache and the Dcache in the
- *	region described by start.  If you have non-snooping
- *	Harvard caches, you need to implement this function.
- *
- *	- start  - virtual start address
- *	- end	 - virtual end address
- */
-ENTRY(fa_coherent_kern_range)
-	/* fall through */
-
-/*
- *	coherent_user_range(start, end)
- *
- *	Ensure coherency between the Icache and the Dcache in the
- *	region described by start.  If you have non-snooping
- *	Harvard caches, you need to implement this function.
- *
- *	- start  - virtual start address
- *	- end	 - virtual end address
- */
-ENTRY(fa_coherent_user_range)
-	bic	r0, r0, #CACHE_DLINESIZE - 1
-1:	mcr	p15, 0, r0, c7, c14, 1		@ clean and invalidate D entry
-	mcr	p15, 0, r0, c7, c5, 1		@ invalidate I entry
-	add	r0, r0, #CACHE_DLINESIZE
-	cmp	r0, r1
-	blo	1b
-	mov	r0, #0
-	mcr	p15, 0, r0, c7, c5, 6		@ invalidate BTB
-	mcr	p15, 0, r0, c7, c10, 4		@ drain write buffer
-	mcr	p15, 0, r0, c7, c5, 4		@ prefetch flush
-	mov	pc, lr
-
-/*
- *	flush_kern_dcache_area(void *addr, size_t size)
- *
- *	Ensure that the data held in the page kaddr is written back
- *	to the page in question.
- *
- *	- addr	- kernel address
- *	- size	- size of region
- */
-ENTRY(fa_flush_kern_dcache_area)
-	add	r1, r0, r1
-1:	mcr	p15, 0, r0, c7, c14, 1		@ clean & invalidate D line
-	add	r0, r0, #CACHE_DLINESIZE
-	cmp	r0, r1
-	blo	1b
-	mov	r0, #0
-	mcr	p15, 0, r0, c7, c5, 0		@ invalidate I cache
-	mcr	p15, 0, r0, c7, c10, 4		@ drain write buffer
-	mov	pc, lr
-
-/*
- *	dma_inv_range(start, end)
- *
- *	Invalidate (discard) the specified virtual address range.
- *	May not write back any entries.  If 'start' or 'end'
- *	are not cache line aligned, those lines must be written
- *	back.
- *
- *	- start  - virtual start address
- *	- end	 - virtual end address
- */
-fa_dma_inv_range:
-	tst	r0, #CACHE_DLINESIZE - 1
-	bic	r0, r0, #CACHE_DLINESIZE - 1
-	mcrne	p15, 0, r0, c7, c14, 1		@ clean & invalidate D entry
-	tst	r1, #CACHE_DLINESIZE - 1
-	bic	r1, r1, #CACHE_DLINESIZE - 1
-	mcrne	p15, 0, r1, c7, c14, 1		@ clean & invalidate D entry
-1:	mcr	p15, 0, r0, c7, c6, 1		@ invalidate D entry
-	add	r0, r0, #CACHE_DLINESIZE
-	cmp	r0, r1
-	blo	1b
-	mov	r0, #0
-	mcr	p15, 0, r0, c7, c10, 4		@ drain write buffer
-	mov	pc, lr
-
-/*
- *	dma_clean_range(start, end)
- *
- *	Clean (write back) the specified virtual address range.
- *
- *	- start  - virtual start address
- *	- end	 - virtual end address
- */
-fa_dma_clean_range:
-	bic	r0, r0, #CACHE_DLINESIZE - 1
-1:	mcr	p15, 0, r0, c7, c10, 1		@ clean D entry
-	add	r0, r0, #CACHE_DLINESIZE
-	cmp	r0, r1
-	blo	1b
-	mov	r0, #0	
-	mcr	p15, 0, r0, c7, c10, 4		@ drain write buffer
-	mov	pc, lr
-
-/*
- *	dma_flush_range(start,end)
- *	- start   - virtual start address of region
- *	- end     - virtual end address of region
- */
-ENTRY(fa_dma_flush_range)
-	bic	r0, r0, #CACHE_DLINESIZE - 1
-1:	mcr	p15, 0, r0, c7, c14, 1		@ clean & invalidate D entry
-	add	r0, r0, #CACHE_DLINESIZE
-	cmp	r0, r1
-	blo	1b
-	mov	r0, #0	
-	mcr	p15, 0, r0, c7, c10, 4		@ drain write buffer
-	mov	pc, lr
-
-/*
- *	dma_map_area(start, size, dir)
- *	- start	- kernel virtual start address
- *	- size	- size of region
- *	- dir	- DMA direction
- */
-ENTRY(fa_dma_map_area)
-	add	r1, r1, r0
-	cmp	r2, #DMA_TO_DEVICE
-	beq	fa_dma_clean_range
-	bcs	fa_dma_inv_range
-	b	fa_dma_flush_range
-ENDPROC(fa_dma_map_area)
-
-/*
- *	dma_unmap_area(start, size, dir)
- *	- start	- kernel virtual start address
- *	- size	- size of region
- *	- dir	- DMA direction
- */
-ENTRY(fa_dma_unmap_area)
-	mov	pc, lr
-ENDPROC(fa_dma_unmap_area)
-
-	.globl	fa_flush_kern_cache_louis
-	.equ	fa_flush_kern_cache_louis, fa_flush_kern_cache_all
-
-	__INITDATA
-
-	@ define struct cpu_cache_fns (see <asm/cacheflush.h> and proc-macros.S)
-	define_cache_functions fa
diff --git a/arch/arm/mm/copypage-fa.c b/arch/arm/mm/copypage-fa.c
deleted file mode 100644
index d130a5e..0000000
--- a/arch/arm/mm/copypage-fa.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *  linux/arch/arm/lib/copypage-fa.S
- *
- *  Copyright (C) 2005 Faraday Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * Based on copypage-v4wb.S:
- *  Copyright (C) 1995-1999 Russell King
- *
- * 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.
- */
-#include <linux/init.h>
-#include <linux/highmem.h>
-
-/*
- * Faraday optimised copy_user_page
- */
-static void __naked
-fa_copy_user_page(void *kto, const void *kfrom)
-{
-	asm("\
-	stmfd	sp!, {r4, lr}			@ 2\n\
-	mov	r2, %0				@ 1\n\
-1:	ldmia	r1!, {r3, r4, ip, lr}		@ 4\n\
-	stmia	r0, {r3, r4, ip, lr}		@ 4\n\
-	mcr	p15, 0, r0, c7, c14, 1		@ 1   clean and invalidate D line\n\
-	add	r0, r0, #16			@ 1\n\
-	ldmia	r1!, {r3, r4, ip, lr}		@ 4\n\
-	stmia	r0, {r3, r4, ip, lr}		@ 4\n\
-	mcr	p15, 0, r0, c7, c14, 1		@ 1   clean and invalidate D line\n\
-	add	r0, r0, #16			@ 1\n\
-	subs	r2, r2, #1			@ 1\n\
-	bne	1b				@ 1\n\
-	mcr	p15, 0, r2, c7, c10, 4		@ 1   drain WB\n\
-	ldmfd	sp!, {r4, pc}			@ 3"
-	:
-	: "I" (PAGE_SIZE / 32));
-}
-
-void fa_copy_user_highpage(struct page *to, struct page *from,
-	unsigned long vaddr, struct vm_area_struct *vma)
-{
-	void *kto, *kfrom;
-
-	kto = kmap_atomic(to);
-	kfrom = kmap_atomic(from);
-	fa_copy_user_page(kto, kfrom);
-	kunmap_atomic(kfrom);
-	kunmap_atomic(kto);
-}
-
-/*
- * Faraday optimised clear_user_page
- *
- * Same story as above.
- */
-void fa_clear_user_highpage(struct page *page, unsigned long vaddr)
-{
-	void *ptr, *kaddr = kmap_atomic(page);
-	asm volatile("\
-	mov	r1, %2				@ 1\n\
-	mov	r2, #0				@ 1\n\
-	mov	r3, #0				@ 1\n\
-	mov	ip, #0				@ 1\n\
-	mov	lr, #0				@ 1\n\
-1:	stmia	%0, {r2, r3, ip, lr}		@ 4\n\
-	mcr	p15, 0, %0, c7, c14, 1		@ 1   clean and invalidate D line\n\
-	add	%0, %0, #16			@ 1\n\
-	stmia	%0, {r2, r3, ip, lr}		@ 4\n\
-	mcr	p15, 0, %0, c7, c14, 1		@ 1   clean and invalidate D line\n\
-	add	%0, %0, #16			@ 1\n\
-	subs	r1, r1, #1			@ 1\n\
-	bne	1b				@ 1\n\
-	mcr	p15, 0, r1, c7, c10, 4		@ 1   drain WB"
-	: "=r" (ptr)
-	: "0" (kaddr), "I" (PAGE_SIZE / 32)
-	: "r1", "r2", "r3", "ip", "lr");
-	kunmap_atomic(kaddr);
-}
-
-struct cpu_user_fns fa_user_fns __initdata = {
-	.cpu_clear_user_highpage = fa_clear_user_highpage,
-	.cpu_copy_user_highpage	= fa_copy_user_highpage,
-};
diff --git a/arch/arm/mm/proc-fa526.S b/arch/arm/mm/proc-fa526.S
deleted file mode 100644
index d217e97..0000000
--- a/arch/arm/mm/proc-fa526.S
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- *  linux/arch/arm/mm/proc-fa526.S: MMU functions for FA526
- *
- *  Written by : Luke Lee
- *  Copyright (C) 2005 Faraday Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- *
- * These are the low level assembler for performing cache and TLB
- * functions on the fa526.
- */
-#include <linux/linkage.h>
-#include <linux/init.h>
-#include <asm/assembler.h>
-#include <asm/hwcap.h>
-#include <asm/pgtable-hwdef.h>
-#include <asm/pgtable.h>
-#include <asm/page.h>
-#include <asm/ptrace.h>
-
-#include "proc-macros.S"
-
-#define CACHE_DLINESIZE	16
-
-	.text
-/*
- * cpu_fa526_proc_init()
- */
-ENTRY(cpu_fa526_proc_init)
-	mov	pc, lr
-
-/*
- * cpu_fa526_proc_fin()
- */
-ENTRY(cpu_fa526_proc_fin)
-	mrc	p15, 0, r0, c1, c0, 0		@ ctrl register
-	bic	r0, r0, #0x1000			@ ...i............
-	bic	r0, r0, #0x000e			@ ............wca.
-	mcr	p15, 0, r0, c1, c0, 0		@ disable caches
-	nop
-	nop
-	mov	pc, lr
-
-/*
- * cpu_fa526_reset(loc)
- *
- * Perform a soft reset of the system.  Put the CPU into the
- * same state as it would be if it had been reset, and branch
- * to what would be the reset vector.
- *
- * loc: location to jump to for soft reset
- */
-	.align	4
-	.pushsection	.idmap.text, "ax"
-ENTRY(cpu_fa526_reset)
-/* TODO: Use CP8 if possible... */
-	mov	ip, #0
-	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
-	mcr	p15, 0, ip, c7, c10, 4		@ drain WB
-#ifdef CONFIG_MMU
-	mcr	p15, 0, ip, c8, c7, 0		@ invalidate I & D TLBs
-#endif
-	mrc	p15, 0, ip, c1, c0, 0		@ ctrl register
-	bic	ip, ip, #0x000f			@ ............wcam
-	bic	ip, ip, #0x1100			@ ...i...s........
-	bic	ip, ip, #0x0800			@ BTB off
-	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
-	nop
-	nop
-	mov	pc, r0
-ENDPROC(cpu_fa526_reset)
-	.popsection
-
-/*
- * cpu_fa526_do_idle()
- */
-	.align	4
-ENTRY(cpu_fa526_do_idle)
-	mcr	p15, 0, r0, c7, c0, 4		@ Wait for interrupt
-	mov	pc, lr
-
-
-ENTRY(cpu_fa526_dcache_clean_area)
-1:	mcr	p15, 0, r0, c7, c10, 1		@ clean D entry
-	add	r0, r0, #CACHE_DLINESIZE
-	subs	r1, r1, #CACHE_DLINESIZE
-	bhi	1b
-	mcr	p15, 0, r0, c7, c10, 4		@ drain WB
-	mov	pc, lr
-
-/* =============================== PageTable ============================== */
-
-/*
- * cpu_fa526_switch_mm(pgd)
- *
- * Set the translation base pointer to be as described by pgd.
- *
- * pgd: new page tables
- */
-	.align	4
-ENTRY(cpu_fa526_switch_mm)
-#ifdef CONFIG_MMU
-	mov	ip, #0
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-	mcr	p15, 0, ip, c7, c6, 0		@ invalidate D cache
-#else
-	mcr	p15, 0, ip, c7, c14, 0		@ clean and invalidate whole D cache
-#endif
-	mcr	p15, 0, ip, c7, c5, 0		@ invalidate I cache
-	mcr	p15, 0, ip, c7, c5, 6		@ invalidate BTB since mm changed
-	mcr	p15, 0, ip, c7, c10, 4		@ data write barrier
-	mcr	p15, 0, ip, c7, c5, 4		@ prefetch flush
-	mcr	p15, 0, r0, c2, c0, 0		@ load page table pointer
-	mcr	p15, 0, ip, c8, c7, 0		@ invalidate UTLB
-#endif
-	mov	pc, lr
-
-/*
- * cpu_fa526_set_pte_ext(ptep, pte, ext)
- *
- * Set a PTE and flush it out
- */
-	.align	4
-ENTRY(cpu_fa526_set_pte_ext)
-#ifdef CONFIG_MMU
-	armv3_set_pte_ext
-	mov	r0, r0
-	mcr	p15, 0, r0, c7, c10, 1		@ clean D entry
-	mov	r0, #0
-	mcr	p15, 0, r0, c7, c10, 4		@ drain WB
-#endif
-	mov	pc, lr
-
-	__CPUINIT
-
-	.type	__fa526_setup, #function
-__fa526_setup:
-	/* On return of this routine, r0 must carry correct flags for CFG register */
-	mov	r0, #0
-	mcr	p15, 0, r0, c7, c7		@ invalidate I,D caches on v4
-	mcr	p15, 0, r0, c7, c10, 4		@ drain write buffer on v4
-#ifdef CONFIG_MMU
-	mcr	p15, 0, r0, c8, c7		@ invalidate I,D TLBs on v4
-#endif
-	mcr	p15, 0, r0, c7, c5, 5		@ invalidate IScratchpad RAM
-
-	mov	r0, #1
-	mcr	p15, 0, r0, c1, c1, 0		@ turn-on ECR
-
-	mov	r0, #0
-	mcr	p15, 0, r0, c7, c5, 6		@ invalidate BTB All
-	mcr	p15, 0, r0, c7, c10, 4		@ data write barrier
-	mcr	p15, 0, r0, c7, c5, 4		@ prefetch flush
-
-	mov	r0, #0x1f			@ Domains 0, 1 = manager, 2 = client
-	mcr	p15, 0, r0, c3, c0		@ load domain access register
-
-	mrc	p15, 0, r0, c1, c0		@ get control register v4
-	ldr	r5, fa526_cr1_clear
-	bic	r0, r0, r5
-	ldr	r5, fa526_cr1_set
-	orr	r0, r0, r5
-	mov	pc, lr
-	.size	__fa526_setup, . - __fa526_setup
-
-	/*
-	 * .RVI ZFRS BLDP WCAM
-	 * ..11 1001 .111 1101
-	 *
-	 */
-	.type	fa526_cr1_clear, #object
-	.type	fa526_cr1_set, #object
-fa526_cr1_clear:
-	.word	0x3f3f
-fa526_cr1_set:
-	.word	0x397D
-
-	__INITDATA
-
-	@ define struct processor (see <asm/proc-fns.h> and proc-macros.S)
-	define_processor_functions fa526, dabort=v4_early_abort, pabort=legacy_pabort
-
-	.section ".rodata"
-
-	string	cpu_arch_name, "armv4"
-	string	cpu_elf_name, "v4"
-	string	cpu_fa526_name, "FA526"
-
-	.align
-
-	.section ".proc.info.init", #alloc, #execinstr
-
-	.type	__fa526_proc_info,#object
-__fa526_proc_info:
-	.long	0x66015261
-	.long	0xff01fff1
-	.long   PMD_TYPE_SECT | \
-		PMD_SECT_BUFFERABLE | \
-		PMD_SECT_CACHEABLE | \
-		PMD_BIT4 | \
-		PMD_SECT_AP_WRITE | \
-		PMD_SECT_AP_READ
-	.long   PMD_TYPE_SECT | \
-		PMD_BIT4 | \
-		PMD_SECT_AP_WRITE | \
-		PMD_SECT_AP_READ
-	b	__fa526_setup
-	.long	cpu_arch_name
-	.long	cpu_elf_name
-	.long	HWCAP_SWP | HWCAP_HALF
-	.long	cpu_fa526_name
-	.long	fa526_processor_functions
-	.long	fa_tlb_fns
-	.long	fa_user_fns
-	.long	fa_cache_fns
-	.size	__fa526_proc_info, . - __fa526_proc_info
diff --git a/arch/arm/mm/tlb-fa.S b/arch/arm/mm/tlb-fa.S
deleted file mode 100644
index d3ddcf9..0000000
--- a/arch/arm/mm/tlb-fa.S
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- *  linux/arch/arm/mm/tlb-fa.S
- *
- *  Copyright (C) 2005 Faraday Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * Based on tlb-v4wbi.S:
- *  Copyright (C) 1997-2002 Russell King
- *
- * 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.
- *
- *  ARM architecture version 4, Faraday variation.
- *  This assume an unified TLBs, with a write buffer, and branch target buffer (BTB)
- *
- *  Processors: FA520 FA526 FA626
- */
-#include <linux/linkage.h>
-#include <linux/init.h>
-#include <asm/asm-offsets.h>
-#include <asm/tlbflush.h>
-#include "proc-macros.S"
-
-
-/*
- *	flush_user_tlb_range(start, end, mm)
- *
- *	Invalidate a range of TLB entries in the specified address space.
- *
- *	- start - range start address
- *	- end   - range end address
- *	- mm    - mm_struct describing address space
- */
-	.align	4
-ENTRY(fa_flush_user_tlb_range)
-	vma_vm_mm ip, r2
-	act_mm	r3				@ get current->active_mm
-	eors	r3, ip, r3			@ == mm ?
-	movne	pc, lr				@ no, we dont do anything
-	mov	r3, #0
-	mcr	p15, 0, r3, c7, c10, 4		@ drain WB
-	bic	r0, r0, #0x0ff
-	bic	r0, r0, #0xf00
-1:	mcr	p15, 0, r0, c8, c7, 1		@ invalidate UTLB entry
-	add	r0, r0, #PAGE_SZ
-	cmp	r0, r1
-	blo	1b
-	mcr	p15, 0, r3, c7, c10, 4		@ data write barrier
-	mov	pc, lr
-
-
-ENTRY(fa_flush_kern_tlb_range)
-	mov	r3, #0
-	mcr	p15, 0, r3, c7, c10, 4		@ drain WB
-	bic	r0, r0, #0x0ff
-	bic	r0, r0, #0xf00
-1:	mcr	p15, 0, r0, c8, c7, 1		@ invalidate UTLB entry
-	add	r0, r0, #PAGE_SZ
-	cmp	r0, r1
-	blo	1b
-	mcr	p15, 0, r3, c7, c10, 4		@ data write barrier
-	mcr	p15, 0, r3, c7, c5, 4		@ prefetch flush (isb)
-	mov	pc, lr
-
-	__INITDATA
-
-	/* define struct cpu_tlb_fns (see <asm/tlbflush.h> and proc-macros.S) */
-	define_tlb_functions fa, fa_tlb_flags
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4/6] ARM: l7200: remove zombie file
  2013-03-14 22:12 [PATCH 0/6] ARM platform spring cleaning Arnd Bergmann
                   ` (2 preceding siblings ...)
  2013-03-14 22:12 ` [PATCH 3/6] ARM: remove fa526 CPU support Arnd Bergmann
@ 2013-03-14 22:12 ` Arnd Bergmann
  2013-03-14 22:12 ` [PATCH 5/6] ARM: kill Hynix h720x platform Arnd Bergmann
  2013-03-14 22:12   ` Arnd Bergmann
  5 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:12 UTC (permalink / raw)
  To: linux-arm-kernel

The l7200 platform was removed in 2.6.35, but one file came
back due to a failed merge conflict resolution. Let's kill
it again.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/mach-l7200/include/mach/debug-macro.S | 38 --------------------------
 1 file changed, 38 deletions(-)
 delete mode 100644 arch/arm/mach-l7200/include/mach/debug-macro.S

diff --git a/arch/arm/mach-l7200/include/mach/debug-macro.S b/arch/arm/mach-l7200/include/mach/debug-macro.S
deleted file mode 100644
index 0b4e760..0000000
--- a/arch/arm/mach-l7200/include/mach/debug-macro.S
+++ /dev/null
@@ -1,38 +0,0 @@
-/* arch/arm/mach-l7200/include/mach/debug-macro.S
- *
- * Debugging macro include header
- *
- *  Copyright (C) 1994-1999 Russell King
- *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
- *
- * 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.
- *
-*/
-
-		.equ	io_virt, IO_BASE
-		.equ	io_phys, IO_START
-
-		.macro	addruart, rp, rv, tmp
-		mov	\rp, #0x00044000	@ UART1
-@		mov	\rp, #0x00045000	@ UART2
-		add	\rv, \rp, #io_virt	@ virtual address
-		add	\rp, \rp, #io_phys	@ physical base address
-		.endm
-
-		.macro	senduart,rd,rx
-		str	\rd, [\rx, #0x0]	@ UARTDR
-		.endm
-
-		.macro	waituart,rd,rx
-1001:		ldr	\rd, [\rx, #0x18]	@ UARTFLG
-		tst	\rd, #1 << 5		@ UARTFLGUTXFF - 1 when full
-		bne	1001b
-		.endm
-
-		.macro	busyuart,rd,rx
-1001:		ldr	\rd, [\rx, #0x18]	@ UARTFLG
-		tst	\rd, #1 << 3		@ UARTFLGUBUSY - 1 when busy
-		bne	1001b
-		.endm
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 5/6] ARM: kill Hynix h720x platform
  2013-03-14 22:12 [PATCH 0/6] ARM platform spring cleaning Arnd Bergmann
                   ` (3 preceding siblings ...)
  2013-03-14 22:12 ` [PATCH 4/6] ARM: l7200: remove zombie file Arnd Bergmann
@ 2013-03-14 22:12 ` Arnd Bergmann
  2013-03-15  5:21   ` Robert Schwebel
                     ` (2 more replies)
  2013-03-14 22:12   ` Arnd Bergmann
  5 siblings, 3 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:12 UTC (permalink / raw)
  To: linux-arm-kernel

The platform was merged about 10 years ago, and has seen few updates
for most of the time since. The people that merged the code seem
no longer interested in it either, so let's remove it now.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Robert Schwebel <r.schwebel@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/Kconfig                               |  10 -
 arch/arm/Makefile                              |   1 -
 arch/arm/configs/h7201_defconfig               |  27 ---
 arch/arm/configs/h7202_defconfig               |  47 -----
 arch/arm/mach-h720x/Kconfig                    |  40 ----
 arch/arm/mach-h720x/Makefile                   |  16 --
 arch/arm/mach-h720x/Makefile.boot              |   2 -
 arch/arm/mach-h720x/common.c                   | 268 -------------------------
 arch/arm/mach-h720x/common.h                   |  30 ---
 arch/arm/mach-h720x/cpu-h7201.c                |  57 ------
 arch/arm/mach-h720x/cpu-h7202.c                | 225 ---------------------
 arch/arm/mach-h720x/h7201-eval.c               |  38 ----
 arch/arm/mach-h720x/h7202-eval.c               |  81 --------
 arch/arm/mach-h720x/include/mach/boards.h      |  53 -----
 arch/arm/mach-h720x/include/mach/debug-macro.S |  40 ----
 arch/arm/mach-h720x/include/mach/entry-macro.S |  57 ------
 arch/arm/mach-h720x/include/mach/h7201-regs.h  |  67 -------
 arch/arm/mach-h720x/include/mach/h7202-regs.h  | 155 --------------
 arch/arm/mach-h720x/include/mach/hardware.h    | 190 ------------------
 arch/arm/mach-h720x/include/mach/irqs.h        | 116 -----------
 arch/arm/mach-h720x/include/mach/isa-dma.h     |  19 --
 arch/arm/mach-h720x/include/mach/timex.h       |  15 --
 arch/arm/mach-h720x/include/mach/uncompress.h  |  36 ----
 23 files changed, 1590 deletions(-)
 delete mode 100644 arch/arm/configs/h7201_defconfig
 delete mode 100644 arch/arm/configs/h7202_defconfig
 delete mode 100644 arch/arm/mach-h720x/Kconfig
 delete mode 100644 arch/arm/mach-h720x/Makefile
 delete mode 100644 arch/arm/mach-h720x/Makefile.boot
 delete mode 100644 arch/arm/mach-h720x/common.c
 delete mode 100644 arch/arm/mach-h720x/common.h
 delete mode 100644 arch/arm/mach-h720x/cpu-h7201.c
 delete mode 100644 arch/arm/mach-h720x/cpu-h7202.c
 delete mode 100644 arch/arm/mach-h720x/h7201-eval.c
 delete mode 100644 arch/arm/mach-h720x/h7202-eval.c
 delete mode 100644 arch/arm/mach-h720x/include/mach/boards.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-h720x/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-h720x/include/mach/h7201-regs.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/h7202-regs.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/isa-dma.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/timex.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/uncompress.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9d2e825..26e9251 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -485,14 +485,6 @@ config ARCH_NETX
 	help
 	  This enables support for systems based on the Hilscher NetX Soc
 
-config ARCH_H720X
-	bool "Hynix HMS720x-based"
-	select ARCH_USES_GETTIMEOFFSET
-	select CPU_ARM720T
-	select ISA_DMA_API
-	help
-	  This enables support for systems based on the Hynix HMS720x
-
 config ARCH_IOP13XX
 	bool "IOP13xx-based"
 	depends on MMU
@@ -1041,8 +1033,6 @@ source "arch/arm/mach-ep93xx/Kconfig"
 
 source "arch/arm/mach-footbridge/Kconfig"
 
-source "arch/arm/mach-h720x/Kconfig"
-
 source "arch/arm/mach-highbank/Kconfig"
 
 source "arch/arm/mach-integrator/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index b514a0a..5f4576d 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -145,7 +145,6 @@ machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
 machine-$(CONFIG_ARCH_DOVE)		+= dove
 machine-$(CONFIG_ARCH_EBSA110)		+= ebsa110
 machine-$(CONFIG_ARCH_EP93XX)		+= ep93xx
-machine-$(CONFIG_ARCH_H720X)		+= h720x
 machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_INTEGRATOR)	+= integrator
 machine-$(CONFIG_ARCH_IOP13XX)		+= iop13xx
diff --git a/arch/arm/configs/h7201_defconfig b/arch/arm/configs/h7201_defconfig
deleted file mode 100644
index bee94d2..0000000
--- a/arch/arm/configs/h7201_defconfig
+++ /dev/null
@@ -1,27 +0,0 @@
-CONFIG_EXPERIMENTAL=y
-CONFIG_SYSVIPC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_MODULES=y
-CONFIG_ARCH_H720X=y
-CONFIG_ARCH_H7201=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_FPE_NWFPE=y
-CONFIG_MTD=y
-CONFIG_MTD_DEBUG=y
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_ADV_OPTIONS=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_SIZE=8192
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_VGA_CONSOLE is not set
-CONFIG_SOUND=m
-CONFIG_EXT2_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_DEBUG_USER=y
diff --git a/arch/arm/configs/h7202_defconfig b/arch/arm/configs/h7202_defconfig
deleted file mode 100644
index e16d3f3..0000000
--- a/arch/arm/configs/h7202_defconfig
+++ /dev/null
@@ -1,47 +0,0 @@
-CONFIG_EXPERIMENTAL=y
-CONFIG_SYSVIPC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_MODULES=y
-CONFIG_ARCH_H720X=y
-CONFIG_ARCH_H7202=y
-# CONFIG_ARM_THUMB is not set
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=ttyS0,19200"
-CONFIG_FPE_NWFPE=y
-CONFIG_FPE_NWFPE_XP=y
-CONFIG_NET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_BOOTP=y
-# CONFIG_IPV6 is not set
-CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_H720X=y
-CONFIG_NETDEVICES=y
-CONFIG_NET_ETHERNET=y
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_FB=y
-CONFIG_FB_MODE_HELPERS=y
-# CONFIG_VGA_CONSOLE is not set
-CONFIG_USB_GADGET=m
-CONFIG_USB_ZERO=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_EXT2_FS=y
-CONFIG_TMPFS=y
-CONFIG_JFFS2_FS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_INFO=y
-CONFIG_DEBUG_USER=y
diff --git a/arch/arm/mach-h720x/Kconfig b/arch/arm/mach-h720x/Kconfig
deleted file mode 100644
index 6bb755b..0000000
--- a/arch/arm/mach-h720x/Kconfig
+++ /dev/null
@@ -1,40 +0,0 @@
-if ARCH_H720X
-
-menu "h720x Implementations"
-
-config ARCH_H7201
-	bool "gms30c7201"
-	depends on ARCH_H720X
-	select CPU_H7201
-	select ZONE_DMA
-	help
-	  Say Y here if you are using the Hynix GMS30C7201 Reference Board
-
-config ARCH_H7202
-	bool "hms30c7202"
-	depends on ARCH_H720X
-	select CPU_H7202
-	select ZONE_DMA
-	help
-	  Say Y here if you are using the Hynix HMS30C7202 Reference Board
-
-endmenu
-
-config CPU_H7201
-	bool
-	help
-	  Select code specific to h7201 variants
-
-config CPU_H7202
-	bool
-	help
-	  Select code specific to h7202 variants
-config H7202_SERIAL23
-	depends on CPU_H7202
-	bool "Use serial ports 2+3"
-	help
-	  Say Y here if you wish to use serial ports 2+3. They share their
-	  pins with the keyboard matrix controller, so you have to decide.
-
-
-endif
diff --git a/arch/arm/mach-h720x/Makefile b/arch/arm/mach-h720x/Makefile
deleted file mode 100644
index e4cf728..0000000
--- a/arch/arm/mach-h720x/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Makefile for the linux kernel.
-#
-
-# Common support
-obj-y := common.o
-obj-m :=
-obj-n :=
-obj-  :=
-
-# Specific board support
-
-obj-$(CONFIG_ARCH_H7201)		+= h7201-eval.o
-obj-$(CONFIG_ARCH_H7202)		+= h7202-eval.o
-obj-$(CONFIG_CPU_H7201) 		+= cpu-h7201.o
-obj-$(CONFIG_CPU_H7202) 		+= cpu-h7202.o
diff --git a/arch/arm/mach-h720x/Makefile.boot b/arch/arm/mach-h720x/Makefile.boot
deleted file mode 100644
index d875a70..0000000
--- a/arch/arm/mach-h720x/Makefile.boot
+++ /dev/null
@@ -1,2 +0,0 @@
-   zreladdr-$(CONFIG_ARCH_H720X)	+= 0x40008000
-
diff --git a/arch/arm/mach-h720x/common.c b/arch/arm/mach-h720x/common.c
deleted file mode 100644
index 17ef91f..0000000
--- a/arch/arm/mach-h720x/common.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * linux/arch/arm/mach-h720x/common.c
- *
- * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
- *
- * common stuff for Hynix h720x processors
- *
- * 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.
- *
- */
-
-#include <linux/sched.h>
-#include <linux/mman.h>
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/io.h>
-
-#include <asm/page.h>
-#include <asm/pgtable.h>
-#include <asm/dma.h>
-#include <mach/hardware.h>
-#include <asm/irq.h>
-#include <asm/system_misc.h>
-#include <asm/mach/irq.h>
-#include <asm/mach/map.h>
-#include <mach/irqs.h>
-
-#include <asm/mach/dma.h>
-
-#if 0
-#define IRQDBG(args...) printk(args)
-#else
-#define IRQDBG(args...) do {} while(0)
-#endif
-
-void __init arch_dma_init(dma_t *dma)
-{
-}
-
-/*
- * Return nsecs since last timer reload
- * (timercount * (usecs perjiffie)) / (ticks per jiffie)
- */
-u32 h720x_gettimeoffset(void)
-{
-	return ((CPU_REG(TIMER_VIRT, TM0_COUNT) * tick_usec) / LATCH) * 1000;
-}
-
-/*
- * mask Global irq's
- */
-static void mask_global_irq(struct irq_data *d)
-{
-	CPU_REG (IRQC_VIRT, IRQC_IER) &= ~(1 << d->irq);
-}
-
-/*
- * unmask Global irq's
- */
-static void unmask_global_irq(struct irq_data *d)
-{
-	CPU_REG (IRQC_VIRT, IRQC_IER) |= (1 << d->irq);
-}
-
-
-/*
- * ack GPIO irq's
- * Ack only for edge triggered int's valid
- */
-static void inline ack_gpio_irq(struct irq_data *d)
-{
-	u32 reg_base = GPIO_VIRT(IRQ_TO_REGNO(d->irq));
-	u32 bit = IRQ_TO_BIT(d->irq);
-	if ( (CPU_REG (reg_base, GPIO_EDGE) & bit))
-		CPU_REG (reg_base, GPIO_CLR) = bit;
-}
-
-/*
- * mask GPIO irq's
- */
-static void inline mask_gpio_irq(struct irq_data *d)
-{
-	u32 reg_base = GPIO_VIRT(IRQ_TO_REGNO(d->irq));
-	u32 bit = IRQ_TO_BIT(d->irq);
-	CPU_REG (reg_base, GPIO_MASK) &= ~bit;
-}
-
-/*
- * unmask GPIO irq's
- */
-static void inline unmask_gpio_irq(struct irq_data *d)
-{
-	u32 reg_base = GPIO_VIRT(IRQ_TO_REGNO(d->irq));
-	u32 bit = IRQ_TO_BIT(d->irq);
-	CPU_REG (reg_base, GPIO_MASK) |= bit;
-}
-
-static void
-h720x_gpio_handler(unsigned int mask, unsigned int irq,
-                 struct irq_desc *desc)
-{
-	IRQDBG("%s irq: %d\n", __func__, irq);
-	while (mask) {
-		if (mask & 1) {
-			IRQDBG("handling irq %d\n", irq);
-			generic_handle_irq(irq);
-		}
-		irq++;
-		mask >>= 1;
-	}
-}
-
-static void
-h720x_gpioa_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
-{
-	unsigned int mask, irq;
-
-	mask = CPU_REG(GPIO_A_VIRT,GPIO_STAT);
-	irq = IRQ_CHAINED_GPIOA(0);
-	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
-	h720x_gpio_handler(mask, irq, desc);
-}
-
-static void
-h720x_gpiob_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
-{
-	unsigned int mask, irq;
-	mask = CPU_REG(GPIO_B_VIRT,GPIO_STAT);
-	irq = IRQ_CHAINED_GPIOB(0);
-	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
-	h720x_gpio_handler(mask, irq, desc);
-}
-
-static void
-h720x_gpioc_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
-{
-	unsigned int mask, irq;
-
-	mask = CPU_REG(GPIO_C_VIRT,GPIO_STAT);
-	irq = IRQ_CHAINED_GPIOC(0);
-	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
-	h720x_gpio_handler(mask, irq, desc);
-}
-
-static void
-h720x_gpiod_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
-{
-	unsigned int mask, irq;
-
-	mask = CPU_REG(GPIO_D_VIRT,GPIO_STAT);
-	irq = IRQ_CHAINED_GPIOD(0);
-	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
-	h720x_gpio_handler(mask, irq, desc);
-}
-
-#ifdef CONFIG_CPU_H7202
-static void
-h720x_gpioe_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
-{
-	unsigned int mask, irq;
-
-	mask = CPU_REG(GPIO_E_VIRT,GPIO_STAT);
-	irq = IRQ_CHAINED_GPIOE(0);
-	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
-	h720x_gpio_handler(mask, irq, desc);
-}
-#endif
-
-static struct irq_chip h720x_global_chip = {
-	.irq_ack = mask_global_irq,
-	.irq_mask = mask_global_irq,
-	.irq_unmask = unmask_global_irq,
-};
-
-static struct irq_chip h720x_gpio_chip = {
-	.irq_ack = ack_gpio_irq,
-	.irq_mask = mask_gpio_irq,
-	.irq_unmask = unmask_gpio_irq,
-};
-
-/*
- * Initialize IRQ's, mask all, enable multiplexed irq's
- */
-void __init h720x_init_irq (void)
-{
-	int 	irq;
-
-	/* Mask global irq's */
-	CPU_REG (IRQC_VIRT, IRQC_IER) = 0x0;
-
-	/* Mask all multiplexed irq's */
-	CPU_REG (GPIO_A_VIRT, GPIO_MASK) = 0x0;
-	CPU_REG (GPIO_B_VIRT, GPIO_MASK) = 0x0;
-	CPU_REG (GPIO_C_VIRT, GPIO_MASK) = 0x0;
-	CPU_REG (GPIO_D_VIRT, GPIO_MASK) = 0x0;
-
-	/* Initialize global IRQ's, fast path */
-	for (irq = 0; irq < NR_GLBL_IRQS; irq++) {
-		irq_set_chip_and_handler(irq, &h720x_global_chip,
-					 handle_level_irq);
-		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
-	}
-
-	/* Initialize multiplexed IRQ's, slow path */
-	for (irq = IRQ_CHAINED_GPIOA(0) ; irq <= IRQ_CHAINED_GPIOD(31); irq++) {
-		irq_set_chip_and_handler(irq, &h720x_gpio_chip,
-					 handle_edge_irq);
-		set_irq_flags(irq, IRQF_VALID );
-	}
-	irq_set_chained_handler(IRQ_GPIOA, h720x_gpioa_demux_handler);
-	irq_set_chained_handler(IRQ_GPIOB, h720x_gpiob_demux_handler);
-	irq_set_chained_handler(IRQ_GPIOC, h720x_gpioc_demux_handler);
-	irq_set_chained_handler(IRQ_GPIOD, h720x_gpiod_demux_handler);
-
-#ifdef CONFIG_CPU_H7202
-	for (irq = IRQ_CHAINED_GPIOE(0) ; irq <= IRQ_CHAINED_GPIOE(31); irq++) {
-		irq_set_chip_and_handler(irq, &h720x_gpio_chip,
-					 handle_edge_irq);
-		set_irq_flags(irq, IRQF_VALID );
-	}
-	irq_set_chained_handler(IRQ_GPIOE, h720x_gpioe_demux_handler);
-#endif
-
-	/* Enable multiplexed irq's */
-	CPU_REG (IRQC_VIRT, IRQC_IER) = IRQ_ENA_MUX;
-}
-
-static struct map_desc h720x_io_desc[] __initdata = {
-	{
-		.virtual	= IO_VIRT,
-		.pfn		= __phys_to_pfn(IO_PHYS),
-		.length		= IO_SIZE,
-		.type		= MT_DEVICE
-	},
-};
-
-/* Initialize io tables */
-void __init h720x_map_io(void)
-{
-	iotable_init(h720x_io_desc,ARRAY_SIZE(h720x_io_desc));
-}
-
-void h720x_restart(char mode, const char *cmd)
-{
-	CPU_REG (PMU_BASE, PMU_STAT) |= PMU_WARMRESET;
-}
-
-static void h720x__idle(void)
-{
-	CPU_REG (PMU_BASE, PMU_MODE) = PMU_MODE_IDLE;
-	nop();
-	nop();
-	CPU_REG (PMU_BASE, PMU_MODE) = PMU_MODE_RUN;
-	nop();
-	nop();
-}
-
-static int __init h720x_idle_init(void)
-{
-	arm_pm_idle = h720x__idle;
-	return 0;
-}
-
-arch_initcall(h720x_idle_init);
diff --git a/arch/arm/mach-h720x/common.h b/arch/arm/mach-h720x/common.h
deleted file mode 100644
index 7e73841..0000000
--- a/arch/arm/mach-h720x/common.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * linux/arch/arm/mach-h720x/common.h
- *
- * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
- *
- * Architecture specific stuff for Hynix GMS30C7201 development board
- *
- * 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.
- *
- */
-
-extern u32 h720x_gettimeoffset(void);
-extern void __init h720x_init_irq(void);
-extern void __init h720x_map_io(void);
-extern void h720x_restart(char, const char *);
-
-#ifdef CONFIG_ARCH_H7202
-extern void h7202_timer_init(void);
-extern void __init init_hw_h7202(void);
-extern void __init h7202_init_irq(void);
-extern void __init h7202_init_time(void);
-#endif
-
-#ifdef CONFIG_ARCH_H7201
-extern void h7201_timer_init(void);
-#endif
diff --git a/arch/arm/mach-h720x/cpu-h7201.c b/arch/arm/mach-h720x/cpu-h7201.c
deleted file mode 100644
index 13c7412..0000000
--- a/arch/arm/mach-h720x/cpu-h7201.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * linux/arch/arm/mach-h720x/cpu-h7201.c
- *
- * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
- *
- * processor specific stuff for the Hynix h7201
- *
- * 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.
- *
- */
-
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <asm/types.h>
-#include <mach/hardware.h>
-#include <asm/irq.h>
-#include <mach/irqs.h>
-#include <asm/mach/irq.h>
-#include <asm/mach/time.h>
-#include "common.h"
-/*
- * Timer interrupt handler
- */
-static irqreturn_t
-h7201_timer_interrupt(int irq, void *dev_id)
-{
-	CPU_REG (TIMER_VIRT, TIMER_TOPSTAT);
-	timer_tick();
-
-	return IRQ_HANDLED;
-}
-
-static struct irqaction h7201_timer_irq = {
-	.name		= "h7201 Timer Tick",
-	.flags		= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
-	.handler	= h7201_timer_interrupt,
-};
-
-/*
- * Setup TIMER0 as system timer
- */
-void __init h7201_timer_init(void)
-{
-	arch_gettimeoffset = h720x_gettimeoffset;
-
-	CPU_REG (TIMER_VIRT, TM0_PERIOD) = LATCH;
-	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_RESET;
-	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_REPEAT | TM_START;
-	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) = ENABLE_TM0_INTR | TIMER_ENABLE_BIT;
-
-	setup_irq(IRQ_TIMER0, &h7201_timer_irq);
-}
diff --git a/arch/arm/mach-h720x/cpu-h7202.c b/arch/arm/mach-h720x/cpu-h7202.c
deleted file mode 100644
index e2ae7e8..0000000
--- a/arch/arm/mach-h720x/cpu-h7202.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * linux/arch/arm/mach-h720x/cpu-h7202.c
- *
- * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
- *
- * processor specific stuff for the Hynix h7202
- *
- * 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.
- *
- */
-
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <asm/types.h>
-#include <mach/hardware.h>
-#include <asm/irq.h>
-#include <mach/irqs.h>
-#include <asm/mach/irq.h>
-#include <asm/mach/time.h>
-#include <linux/device.h>
-#include <linux/serial_8250.h>
-#include "common.h"
-
-static struct resource h7202ps2_resources[] = {
-	[0] = {
-		.start	= 0x8002c000,
-		.end	= 0x8002c040,
-		.flags	= IORESOURCE_MEM,
-	},
-	[1] = {
-		.start	= IRQ_PS2,
-		.end	= IRQ_PS2,
-		.flags	= IORESOURCE_IRQ,
-	},
-};
-
-static struct platform_device h7202ps2_device = {
-	.name		= "h7202ps2",
-	.id		= -1,
-	.num_resources	= ARRAY_SIZE(h7202ps2_resources),
-	.resource	= h7202ps2_resources,
-};
-
-static struct plat_serial8250_port serial_platform_data[] = {
-	{
-		.membase	= (void*)SERIAL0_VIRT,
-		.mapbase	= SERIAL0_BASE,
-		.irq		= IRQ_UART0,
-		.uartclk	= 2*1843200,
-		.regshift	= 2,
-		.iotype		= UPIO_MEM,
-		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
-	},
-	{
-		.membase	= (void*)SERIAL1_VIRT,
-		.mapbase	= SERIAL1_BASE,
-		.irq		= IRQ_UART1,
-		.uartclk	= 2*1843200,
-		.regshift	= 2,
-		.iotype		= UPIO_MEM,
-		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
-	},
-#ifdef CONFIG_H7202_SERIAL23
-	{
-		.membase	= (void*)SERIAL2_VIRT,
-		.mapbase	= SERIAL2_BASE,
-		.irq		= IRQ_UART2,
-		.uartclk	= 2*1843200,
-		.regshift	= 2,
-		.iotype		= UPIO_MEM,
-		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
-	},
-	{
-		.membase	= (void*)SERIAL3_VIRT,
-		.mapbase	= SERIAL3_BASE,
-		.irq		= IRQ_UART3,
-		.uartclk	= 2*1843200,
-		.regshift	= 2,
-		.iotype		= UPIO_MEM,
-		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
-	},
-#endif
-	{ },
-};
-
-static struct platform_device serial_device = {
-	.name			= "serial8250",
-	.id			= PLAT8250_DEV_PLATFORM,
-	.dev			= {
-		.platform_data	= serial_platform_data,
-	},
-};
-
-static struct platform_device *devices[] __initdata = {
-	&h7202ps2_device,
-	&serial_device,
-};
-
-/* Although we have two interrupt lines for the timers, we only have one
- * status register which clears all pending timer interrupts on reading. So
- * we have to handle all timer interrupts in one place.
- */
-static void
-h7202_timerx_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
-{
-	unsigned int mask, irq;
-
-	mask = CPU_REG (TIMER_VIRT, TIMER_TOPSTAT);
-
-	if ( mask & TSTAT_T0INT ) {
-		timer_tick();
-		if( mask == TSTAT_T0INT )
-			return;
-	}
-
-	mask >>= 1;
-	irq = IRQ_TIMER1;
-	while (mask) {
-		if (mask & 1)
-			generic_handle_irq(irq);
-		irq++;
-		mask >>= 1;
-	}
-}
-
-/*
- * Timer interrupt handler
- */
-static irqreturn_t
-h7202_timer_interrupt(int irq, void *dev_id)
-{
-	h7202_timerx_demux_handler(0, NULL);
-	return IRQ_HANDLED;
-}
-
-/*
- * mask multiplexed timer IRQs
- */
-static void inline __mask_timerx_irq(unsigned int irq)
-{
-	unsigned int bit;
-	bit = 2 << ((irq == IRQ_TIMER64B) ? 4 : (irq - IRQ_TIMER1));
-	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) &= ~bit;
-}
-
-static void inline mask_timerx_irq(struct irq_data *d)
-{
-	__mask_timerx_irq(d->irq);
-}
-
-/*
- * unmask multiplexed timer IRQs
- */
-static void inline unmask_timerx_irq(struct irq_data *d)
-{
-	unsigned int bit;
-	bit = 2 << ((d->irq == IRQ_TIMER64B) ? 4 : (d->irq - IRQ_TIMER1));
-	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) |= bit;
-}
-
-static struct irq_chip h7202_timerx_chip = {
-	.irq_ack = mask_timerx_irq,
-	.irq_mask = mask_timerx_irq,
-	.irq_unmask = unmask_timerx_irq,
-};
-
-static struct irqaction h7202_timer_irq = {
-	.name		= "h7202 Timer Tick",
-	.flags		= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
-	.handler	= h7202_timer_interrupt,
-};
-
-/*
- * Setup TIMER0 as system timer
- */
-void __init h7202_timer_init(void)
-{
-	arch_gettimeoffset = h720x_gettimeoffset;
-
-	CPU_REG (TIMER_VIRT, TM0_PERIOD) = LATCH;
-	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_RESET;
-	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_REPEAT | TM_START;
-	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) = ENABLE_TM0_INTR | TIMER_ENABLE_BIT;
-
-	setup_irq(IRQ_TIMER0, &h7202_timer_irq);
-}
-
-void __init h7202_init_irq (void)
-{
-	int 	irq;
-
-	CPU_REG (GPIO_E_VIRT, GPIO_MASK) = 0x0;
-
-	for (irq = IRQ_TIMER1;
-	                  irq < IRQ_CHAINED_TIMERX(NR_TIMERX_IRQS); irq++) {
-		__mask_timerx_irq(irq);
-		irq_set_chip_and_handler(irq, &h7202_timerx_chip,
-					 handle_edge_irq);
-		set_irq_flags(irq, IRQF_VALID );
-	}
-	irq_set_chained_handler(IRQ_TIMERX, h7202_timerx_demux_handler);
-
-	h720x_init_irq();
-}
-
-void __init init_hw_h7202(void)
-{
-	/* Enable clocks */
-	CPU_REG (PMU_BASE, PMU_PLL_CTRL) |= PLL_2_EN | PLL_1_EN | PLL_3_MUTE;
-
-	CPU_REG (SERIAL0_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
-	CPU_REG (SERIAL1_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
-#ifdef CONFIG_H7202_SERIAL23
-	CPU_REG (SERIAL2_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
-	CPU_REG (SERIAL3_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
-	CPU_IO (GPIO_AMULSEL) = AMULSEL_USIN2 | AMULSEL_USOUT2 |
-	                        AMULSEL_USIN3 | AMULSEL_USOUT3;
-#endif
-	(void) platform_add_devices(devices, ARRAY_SIZE(devices));
-}
diff --git a/arch/arm/mach-h720x/h7201-eval.c b/arch/arm/mach-h720x/h7201-eval.c
deleted file mode 100644
index 4fdeb68..0000000
--- a/arch/arm/mach-h720x/h7201-eval.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * linux/arch/arm/mach-h720x/h7201-eval.c
- *
- * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
- *
- * Architecture specific stuff for Hynix GMS30C7201 development board
- *
- * 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.
- *
- */
-
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/string.h>
-#include <linux/device.h>
-
-#include <asm/setup.h>
-#include <asm/types.h>
-#include <asm/mach-types.h>
-#include <asm/page.h>
-#include <asm/mach/arch.h>
-#include <mach/hardware.h>
-#include "common.h"
-
-MACHINE_START(H7201, "Hynix GMS30C7201")
-	/* Maintainer: Robert Schwebel, Pengutronix */
-	.atag_offset	= 0x1000,
-	.map_io		= h720x_map_io,
-	.init_irq	= h720x_init_irq,
-	.init_time	= h7201_timer_init,
-	.dma_zone_size	= SZ_256M,
-	.restart	= h720x_restart,
-MACHINE_END
diff --git a/arch/arm/mach-h720x/h7202-eval.c b/arch/arm/mach-h720x/h7202-eval.c
deleted file mode 100644
index f68e967..0000000
--- a/arch/arm/mach-h720x/h7202-eval.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * linux/arch/arm/mach-h720x/h7202-eval.c
- *
- * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *		 2004 Sascha Hauer <s.hauer@pengutronix.de>
- *
- * Architecture specific stuff for Hynix HMS30C7202 development board
- *
- * 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.
- *
- */
-
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/string.h>
-#include <linux/platform_device.h>
-
-#include <asm/setup.h>
-#include <asm/types.h>
-#include <asm/mach-types.h>
-#include <asm/page.h>
-#include <asm/mach/arch.h>
-#include <mach/irqs.h>
-#include <mach/hardware.h>
-#include "common.h"
-
-static struct resource cirrus_resources[] = {
-	[0] = {
-		.start	= ETH0_PHYS + 0x300,
-		.end	= ETH0_PHYS + 0x300 + 0x10,
-		.flags	= IORESOURCE_MEM,
-	},
-	[1] = {
-		.start	= IRQ_CHAINED_GPIOB(8),
-		.end	= IRQ_CHAINED_GPIOB(8),
-		.flags	= IORESOURCE_IRQ,
-	},
-};
-
-static struct platform_device cirrus_device = {
-	.name		= "cirrus-cs89x0",
-	.id		= -1,
-	.num_resources	= ARRAY_SIZE(cirrus_resources),
-	.resource	= cirrus_resources,
-};
-
-static struct platform_device *devices[] __initdata = {
-	&cirrus_device,
-};
-
-/*
- * Hardware init. This is called early in initcalls
- * Place pin inits here. So you avoid adding ugly
- * #ifdef stuff to common drivers.
- * Use this only, if your bootloader is not able
- * to initialize the pins proper.
- */
-static void __init init_eval_h7202(void)
-{
-	init_hw_h7202();
-	(void) platform_add_devices(devices, ARRAY_SIZE(devices));
-
-	/* Enable interrupt on portb bit 8 (ethernet) */
-	CPU_REG (GPIO_B_VIRT, GPIO_POL) &= ~(1 << 8);
-	CPU_REG (GPIO_B_VIRT, GPIO_EN) |= (1 << 8);
-}
-
-MACHINE_START(H7202, "Hynix HMS30C7202")
-	/* Maintainer: Robert Schwebel, Pengutronix */
-	.atag_offset	= 0x100,
-	.map_io		= h720x_map_io,
-	.init_irq	= h7202_init_irq,
-	.init_time	= h7202_timer_init,
-	.init_machine	= init_eval_h7202,
-	.dma_zone_size	= SZ_256M,
-	.restart	= h720x_restart,
-MACHINE_END
diff --git a/arch/arm/mach-h720x/include/mach/boards.h b/arch/arm/mach-h720x/include/mach/boards.h
deleted file mode 100644
index 38b8e0d..0000000
--- a/arch/arm/mach-h720x/include/mach/boards.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * arch/arm/mach-h720x/include/mach/boards.h
- *
- * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *
- * This file contains the board specific defines for various devices
- *
- * 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.
- */
-
-#ifndef __ASM_ARCH_HARDWARE_INCMACH_H
-#error Do not include this file directly. Include asm/hardware.h instead !
-#endif
-
-/* Hynix H7202 developer board specific device defines */
-#ifdef CONFIG_ARCH_H7202
-
-/* FLASH */
-#define H720X_FLASH_VIRT	0xd0000000
-#define H720X_FLASH_PHYS	0x00000000
-#define H720X_FLASH_SIZE	0x02000000
-
-/* onboard LAN controller */
-# define ETH0_PHYS		0x08000000
-
-/* Touch screen defines */
-/* GPIO Port */
-#define PEN_GPIO		GPIO_B_VIRT
-/* Bitmask for pen down interrupt */
-#define PEN_INT_BIT		(1<<7)
-/* Bitmask for pen up interrupt */
-#define PEN_ENA_BIT		(1<<6)
-/* pen up interrupt */
-#define IRQ_PEN			IRQ_MUX_GPIOB(7)
-
-#endif
-
-/* Hynix H7201 developer board specific device defines */
-#if defined (CONFIG_ARCH_H7201)
-/* ROM DISK SPACE */
-#define ROM_DISK_BASE           0xc1800000
-#define ROM_DISK_START          0x41800000
-#define ROM_DISK_SIZE           0x00700000
-
-/* SRAM DISK SPACE */
-#define SRAM_DISK_BASE          0xf1000000
-#define SRAM_DISK_START         0x04000000
-#define SRAM_DISK_SIZE          0x00400000
-#endif
-
diff --git a/arch/arm/mach-h720x/include/mach/debug-macro.S b/arch/arm/mach-h720x/include/mach/debug-macro.S
deleted file mode 100644
index 8a46157..0000000
--- a/arch/arm/mach-h720x/include/mach/debug-macro.S
+++ /dev/null
@@ -1,40 +0,0 @@
-/* arch/arm/mach-h720x/include/mach/debug-macro.S
- *
- * Debugging macro include header
- *
- *  Copyright (C) 1994-1999 Russell King
- *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
- *
- * 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.
- *
-*/
-
-#include <mach/hardware.h>
-
-		.equ    io_virt, IO_VIRT
-		.equ    io_phys, IO_PHYS
-
-		.macro  addruart, rp, rv, tmp
-		mov     \rp, #0x00020000	@ UART1
-		add     \rv, \rp, #io_virt	@ virtual address
-		add     \rp, \rp, #io_phys	@ physical base address
-		.endm
-
-		.macro  senduart,rd,rx
-		str     \rd, [\rx, #0x0]        @ UARTDR
-
-		.endm
-
-		.macro  waituart,rd,rx
-1001:		ldr     \rd, [\rx, #0x18]       @ UARTFLG
-		tst     \rd, #1 << 5	       @ UARTFLGUTXFF - 1 when full
-		bne     1001b
-		.endm
-
-		.macro  busyuart,rd,rx
-1001:		ldr     \rd, [\rx, #0x18]       @ UARTFLG
-		tst     \rd, #1 << 3	       @ UARTFLGUBUSY - 1 when busy
-		bne     1001b
-		.endm
diff --git a/arch/arm/mach-h720x/include/mach/entry-macro.S b/arch/arm/mach-h720x/include/mach/entry-macro.S
deleted file mode 100644
index 75267fa..0000000
--- a/arch/arm/mach-h720x/include/mach/entry-macro.S
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * arch/arm/mach-h720x/include/mach/entry-macro.S
- *
- * Low-level IRQ helper macros for Hynix HMS720x based platforms
- *
- * This file is licensed under  the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-		.macro  get_irqnr_preamble, base, tmp
-		.endm
-
-		.macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
-#if defined (CONFIG_CPU_H7201) || defined (CONFIG_CPU_H7202)
-		@ we could use the id register on H7202, but this is not
-		@ properly updated when we come back from asm_do_irq
-		@ without a previous return from interrupt
-		@ (see loops below in irq_svc, irq_usr)
-		@ We see unmasked pending ints only, as the masked pending ints
-		@ are not visible here
-
-		mov     \base, #0xf0000000	       @ base register
-		orr     \base, \base, #0x24000	       @ irqbase
-		ldr     \irqstat, [\base, #0x04]        @ get interrupt status
-#if defined (CONFIG_CPU_H7201)
-		ldr	\tmp, =0x001fffff
-#else
-		mvn     \tmp, #0xc0000000
-#endif
-		and     \irqstat, \irqstat, \tmp        @ mask out unused ints
-		mov     \irqnr, #0
-
-		mov     \tmp, #0xff00
-		orr     \tmp, \tmp, #0xff
-		tst     \irqstat, \tmp
-		addeq   \irqnr, \irqnr, #16
-		moveq   \irqstat, \irqstat, lsr #16
-		tst     \irqstat, #255
-		addeq   \irqnr, \irqnr, #8
-		moveq   \irqstat, \irqstat, lsr #8
-		tst     \irqstat, #15
-		addeq   \irqnr, \irqnr, #4
-		moveq   \irqstat, \irqstat, lsr #4
-		tst     \irqstat, #3
-		addeq   \irqnr, \irqnr, #2
-		moveq   \irqstat, \irqstat, lsr #2
-		tst     \irqstat, #1
-		addeq   \irqnr, \irqnr, #1
-		moveq   \irqstat, \irqstat, lsr #1
-		tst     \irqstat, #1		       @ bit 0 should be set
-		.endm
-
-#else
-#error hynix processor selection missmatch
-#endif
-
diff --git a/arch/arm/mach-h720x/include/mach/h7201-regs.h b/arch/arm/mach-h720x/include/mach/h7201-regs.h
deleted file mode 100644
index 611b494..0000000
--- a/arch/arm/mach-h720x/include/mach/h7201-regs.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * arch/arm/mach-h720x/include/mach/h7201-regs.h
- *
- * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
- *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *           (C) 2004 Sascha Hauer    <s.hauer@pengutronix.de>
- *
- * This file contains the hardware definitions of the h720x processors
- *
- * 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.
- *
- * Do not add implementations specific defines here. This files contains
- * only defines of the onchip peripherals. Add those defines to boards.h,
- * which is included by this file.
- */
-
-#define SERIAL2_VIRT 		(IO_VIRT + 0x50100)
-#define SERIAL3_VIRT 		(IO_VIRT + 0x50200)
-
-/*
- * PCMCIA
- */
-#define PCMCIA0_ATT_BASE        0xe5000000
-#define PCMCIA0_ATT_SIZE        0x00200000
-#define PCMCIA0_ATT_START       0x20000000
-#define PCMCIA0_MEM_BASE        0xe5200000
-#define PCMCIA0_MEM_SIZE        0x00200000
-#define PCMCIA0_MEM_START       0x24000000
-#define PCMCIA0_IO_BASE         0xe5400000
-#define PCMCIA0_IO_SIZE         0x00200000
-#define PCMCIA0_IO_START        0x28000000
-
-#define PCMCIA1_ATT_BASE        0xe5600000
-#define PCMCIA1_ATT_SIZE        0x00200000
-#define PCMCIA1_ATT_START       0x30000000
-#define PCMCIA1_MEM_BASE        0xe5800000
-#define PCMCIA1_MEM_SIZE        0x00200000
-#define PCMCIA1_MEM_START       0x34000000
-#define PCMCIA1_IO_BASE         0xe5a00000
-#define PCMCIA1_IO_SIZE         0x00200000
-#define PCMCIA1_IO_START        0x38000000
-
-#define PRIME3C_BASE            0xf0050000
-#define PRIME3C_SIZE            0x00001000
-#define PRIME3C_START           0x10000000
-
-/* VGA Controller */
-#define VGA_RAMBASE 		0x50
-#define VGA_TIMING0 		0x60
-#define VGA_TIMING1 		0x64
-#define VGA_TIMING2 		0x68
-#define VGA_TIMING3 		0x6c
-
-#define LCD_CTRL_VGA_ENABLE   	0x00000100
-#define LCD_CTRL_VGA_BPP_MASK 	0x00000600
-#define LCD_CTRL_VGA_4BPP    	0x00000000
-#define LCD_CTRL_VGA_8BPP    	0x00000200
-#define LCD_CTRL_VGA_16BPP   	0x00000300
-#define LCD_CTRL_SHARE_DMA    	0x00000800
-#define LCD_CTRL_VDE          	0x00100000
-#define LCD_CTRL_LPE          	0x00400000	/* LCD Power enable */
-#define LCD_CTRL_BLE          	0x00800000	/* LCD backlight enable */
-
-#define VGA_PALETTE_BASE	(IO_VIRT + 0x10800)
diff --git a/arch/arm/mach-h720x/include/mach/h7202-regs.h b/arch/arm/mach-h720x/include/mach/h7202-regs.h
deleted file mode 100644
index 17c12eb..0000000
--- a/arch/arm/mach-h720x/include/mach/h7202-regs.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * arch/arm/mach-h720x/include/mach/h7202-regs.h
- *
- * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
- *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *           (C) 2004 Sascha Hauer    <s.hauer@pengutronix.de>
- *
- * This file contains the hardware definitions of the h720x processors
- *
- * 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.
- *
- * Do not add implementations specific defines here. This files contains
- * only defines of the onchip peripherals. Add those defines to boards.h,
- * which is included by this file.
- */
-
-#define SERIAL2_OFS		0x2d000
-#define SERIAL2_BASE		(IO_PHYS + SERIAL2_OFS)
-#define SERIAL2_VIRT 		(IO_VIRT + SERIAL2_OFS)
-#define SERIAL3_OFS		0x2e000
-#define SERIAL3_BASE		(IO_PHYS + SERIAL3_OFS)
-#define SERIAL3_VIRT 		(IO_VIRT + SERIAL3_OFS)
-
-/* Matrix Keyboard Controller */
-#define KBD_VIRT		(IO_VIRT + 0x22000)
-#define KBD_KBCR		0x00
-#define KBD_KBSC		0x04
-#define KBD_KBTR		0x08
-#define KBD_KBVR0		0x0C
-#define KBD_KBVR1		0x10
-#define KBD_KBSR		0x18
-
-#define KBD_KBCR_SCANENABLE	(1 << 7)
-#define KBD_KBCR_NPOWERDOWN	(1 << 2)
-#define KBD_KBCR_CLKSEL_MASK	(3)
-#define KBD_KBCR_CLKSEL_PCLK2	0x0
-#define KBD_KBCR_CLKSEL_PCLK128	0x1
-#define KBD_KBCR_CLKSEL_PCLK256	0x2
-#define KBD_KBCR_CLKSEL_PCLK512	0x3
-
-#define KBD_KBSR_INTR		(1 << 0)
-#define KBD_KBSR_WAKEUP		(1 << 1)
-
-/* USB device controller */
-
-#define USBD_BASE		(IO_VIRT + 0x12000)
-#define USBD_LENGTH		0x3C
-
-#define USBD_GCTRL		0x00
-#define USBD_EPCTRL		0x04
-#define USBD_INTMASK		0x08
-#define USBD_INTSTAT		0x0C
-#define USBD_PWR		0x10
-#define USBD_DMARXTX		0x14
-#define USBD_DEVID		0x18
-#define USBD_DEVCLASS		0x1C
-#define USBD_INTCLASS		0x20
-#define USBD_SETUP0		0x24
-#define USBD_SETUP1		0x28
-#define USBD_ENDP0RD		0x2C
-#define USBD_ENDP0WT		0x30
-#define USBD_ENDP1RD		0x34
-#define USBD_ENDP2WT		0x38
-
-/* PS/2 port */
-#define PSDATA 0x00
-#define PSSTAT 0x04
-#define PSSTAT_TXEMPTY (1<<0)
-#define PSSTAT_TXBUSY (1<<1)
-#define PSSTAT_RXFULL (1<<2)
-#define PSSTAT_RXBUSY (1<<3)
-#define PSSTAT_CLKIN (1<<4)
-#define PSSTAT_DATAIN (1<<5)
-#define PSSTAT_PARITY (1<<6)
-
-#define PSCONF 0x08
-#define PSCONF_ENABLE (1<<0)
-#define PSCONF_TXINTEN (1<<2)
-#define PSCONF_RXINTEN (1<<3)
-#define PSCONF_FORCECLKLOW (1<<4)
-#define PSCONF_FORCEDATLOW (1<<5)
-#define PSCONF_LCE (1<<6)
-
-#define PSINTR 0x0C
-#define PSINTR_TXINT (1<<0)
-#define PSINTR_RXINT (1<<1)
-#define PSINTR_PAR (1<<2)
-#define PSINTR_RXTO (1<<3)
-#define PSINTR_TXTO (1<<4)
-
-#define PSTDLO 0x10 /* clk low before start transmission */
-#define PSTPRI 0x14 /* PRI clock */
-#define PSTXMT 0x18 /* maximum transmission time */
-#define PSTREC 0x20 /* maximum receive time */
-#define PSPWDN 0x3c
-
-/* ADC converter */
-#define ADC_BASE 		(IO_VIRT + 0x29000)
-#define ADC_CR 			0x00
-#define ADC_TSCTRL 		0x04
-#define ADC_BT_CTRL 		0x08
-#define ADC_MC_CTRL		0x0C
-#define ADC_STATUS		0x10
-
-/* ADC control register bits */
-#define ADC_CR_PW_CTRL 		0x80
-#define ADC_CR_DIRECTC		0x04
-#define ADC_CR_CONTIME_NO	0x00
-#define ADC_CR_CONTIME_2	0x04
-#define ADC_CR_CONTIME_4	0x08
-#define ADC_CR_CONTIME_ADE	0x0c
-#define ADC_CR_LONGCALTIME	0x01
-
-/* ADC touch panel register bits */
-#define ADC_TSCTRL_ENABLE 	0x80
-#define ADC_TSCTRL_INTR   	0x40
-#define	ADC_TSCTRL_SWBYPSS	0x20
-#define ADC_TSCTRL_SWINVT	0x10
-#define ADC_TSCTRL_S400   	0x03
-#define ADC_TSCTRL_S200   	0x02
-#define ADC_TSCTRL_S100   	0x01
-#define ADC_TSCTRL_S50    	0x00
-
-/* ADC Interrupt Status Register bits */
-#define ADC_STATUS_TS_BIT	0x80
-#define ADC_STATUS_MBT_BIT	0x40
-#define ADC_STATUS_BBT_BIT	0x20
-#define ADC_STATUS_MIC_BIT	0x10
-
-/* Touch data registers */
-#define ADC_TS_X0X1  		0x30
-#define ADC_TS_X2X3		0x34
-#define ADC_TS_Y0Y1		0x38
-#define ADC_TS_Y2Y3  		0x3c
-#define ADC_TS_X4X5  		0x40
-#define ADC_TS_X6X7  		0x44
-#define ADC_TS_Y4Y5		0x48
-#define ADC_TS_Y6Y7		0x50
-
-/* battery data */
-#define ADC_MB_DATA		0x54
-#define ADC_BB_DATA		0x58
-
-/* Sound data register */
-#define ADC_SD_DAT0 		0x60
-#define ADC_SD_DAT1		0x64
-#define ADC_SD_DAT2		0x68
-#define ADC_SD_DAT3		0x6c
-#define ADC_SD_DAT4		0x70
-#define ADC_SD_DAT5		0x74
-#define ADC_SD_DAT6		0x78
-#define ADC_SD_DAT7		0x7c
diff --git a/arch/arm/mach-h720x/include/mach/hardware.h b/arch/arm/mach-h720x/include/mach/hardware.h
deleted file mode 100644
index c55a52c..0000000
--- a/arch/arm/mach-h720x/include/mach/hardware.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * arch/arm/mach-h720x/include/mach/hardware.h
- *
- * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
- *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *
- * This file contains the hardware definitions of the h720x processors
- *
- * 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.
- *
- * Do not add implementations specific defines here. This files contains
- * only defines of the onchip peripherals. Add those defines to boards.h,
- * which is included by this file.
- */
-
-#ifndef __ASM_ARCH_HARDWARE_H
-#define __ASM_ARCH_HARDWARE_H
-
-#define IOCLK (3686400L)
-
-/* Onchip peripherals */
-
-#define IO_VIRT			0xf0000000	/* IO peripherals */
-#define IO_PHYS			0x80000000
-#define IO_SIZE			0x00050000
-
-#ifdef CONFIG_CPU_H7202
-#include "h7202-regs.h"
-#elif defined CONFIG_CPU_H7201
-#include "h7201-regs.h"
-#else
-#error machine definition mismatch
-#endif
-
-/* Macro to access the CPU IO */
-#define CPU_IO(x) (*(volatile u32*)(x))
-
-/* Macro to access general purpose regs (base, offset) */
-#define CPU_REG(x,y) CPU_IO(x+y)
-
-/* Macro to access irq related regs */
-#define IRQ_REG(x) CPU_REG(IRQC_VIRT,x)
-
-/* CPU registers */
-/* general purpose I/O */
-#define GPIO_VIRT(x)		(IO_VIRT + 0x23000 + ((x)<<5))
-#define GPIO_A_VIRT		(GPIO_VIRT(0))
-#define GPIO_B_VIRT		(GPIO_VIRT(1))
-#define GPIO_C_VIRT		(GPIO_VIRT(2))
-#define GPIO_D_VIRT		(GPIO_VIRT(3))
-#define GPIO_E_VIRT		(GPIO_VIRT(4))
-#define GPIO_AMULSEL		(GPIO_VIRT(0) + 0xA4)
-
-#define AMULSEL_USIN2	(1<<5)
-#define AMULSEL_USOUT2	(1<<6)
-#define AMULSEL_USIN3	(1<<13)
-#define AMULSEL_USOUT3	(1<<14)
-#define AMULSEL_IRDIN	(1<<15)
-#define AMULSEL_IRDOUT	(1<<7)
-
-/* Register offsets general purpose I/O */
-#define GPIO_DATA		0x00
-#define GPIO_DIR		0x04
-#define GPIO_MASK		0x08
-#define GPIO_STAT		0x0C
-#define GPIO_EDGE		0x10
-#define GPIO_CLR		0x14
-#define GPIO_POL		0x18
-#define GPIO_EN			0x1C
-
-/*interrupt controller */
-#define IRQC_VIRT		(IO_VIRT + 0x24000)
-/* register offset interrupt controller */
-#define IRQC_IER		0x00
-#define IRQC_ISR		0x04
-
-/* timer unit */
-#define TIMER_VIRT		(IO_VIRT + 0x25000)
-/* Register offsets timer unit */
-#define TM0_PERIOD   		0x00
-#define TM0_COUNT    		0x08
-#define TM0_CTRL     		0x10
-#define TM1_PERIOD   		0x20
-#define TM1_COUNT    		0x28
-#define TM1_CTRL     		0x30
-#define TM2_PERIOD   		0x40
-#define TM2_COUNT    		0x48
-#define TM2_CTRL     		0x50
-#define TIMER_TOPCTRL		0x60
-#define TIMER_TOPSTAT		0x64
-#define T64_COUNTL		0x80
-#define T64_COUNTH		0x84
-#define T64_CTRL		0x88
-#define T64_BASEL		0x94
-#define T64_BASEH		0x98
-/* Bitmaks timer unit TOPSTAT reg */
-#define TSTAT_T0INT		0x1
-#define TSTAT_T1INT		0x2
-#define TSTAT_T2INT		0x4
-#define TSTAT_T3INT		0x8
-/* Bit description of TMx_CTRL register */
-#define TM_START  		0x1
-#define TM_REPEAT 		0x2
-#define TM_RESET  		0x4
-/* Bit description of TIMER_CTRL register */
-#define ENABLE_TM0_INTR  	0x1
-#define ENABLE_TM1_INTR  	0x2
-#define ENABLE_TM2_INTR  	0x4
-#define TIMER_ENABLE_BIT 	0x8
-#define ENABLE_TIMER64   	0x10
-#define ENABLE_TIMER64_INT	0x20
-
-/* PMU & PLL */
-#define PMU_BASE 		(IO_VIRT + 0x1000)
-#define PMU_MODE		0x00
-#define PMU_STAT   		0x20
-#define PMU_PLL_CTRL 		0x28
-
-/* PMU Mode bits */
-#define PMU_MODE_SLOW		0x00
-#define PMU_MODE_RUN		0x01
-#define PMU_MODE_IDLE		0x02
-#define PMU_MODE_SLEEP		0x03
-#define PMU_MODE_INIT		0x04
-#define PMU_MODE_DEEPSLEEP	0x07
-#define PMU_MODE_WAKEUP		0x08
-
-/* PMU ... */
-#define PLL_2_EN		0x8000
-#define PLL_1_EN		0x4000
-#define PLL_3_MUTE		0x0080
-
-/* Control bits for PMU/ PLL */
-#define PMU_WARMRESET		0x00010000
-#define PLL_CTRL_MASK23		0x000080ff
-
-/* LCD Controller */
-#define LCD_BASE 		(IO_VIRT + 0x10000)
-#define LCD_CTRL 		0x00
-#define LCD_STATUS		0x04
-#define LCD_STATUS_M		0x08
-#define LCD_INTERRUPT		0x0C
-#define LCD_DBAR		0x10
-#define LCD_DCAR		0x14
-#define LCD_TIMING0 		0x20
-#define LCD_TIMING1 		0x24
-#define LCD_TIMING2 		0x28
-#define LCD_TEST		0x40
-
-/* LCD Control Bits */
-#define LCD_CTRL_LCD_ENABLE   	0x00000001
-/* Bits per pixel */
-#define LCD_CTRL_LCD_BPP_MASK 	0x00000006
-#define LCD_CTRL_LCD_4BPP    	0x00000000
-#define LCD_CTRL_LCD_8BPP    	0x00000002
-#define LCD_CTRL_LCD_16BPP   	0x00000004
-#define LCD_CTRL_LCD_BW		0x00000008
-#define LCD_CTRL_LCD_TFT	0x00000010
-#define LCD_CTRL_BGR		0x00001000
-#define LCD_CTRL_LCD_VCOMP	0x00080000
-#define LCD_CTRL_LCD_MONO8	0x00200000
-#define LCD_CTRL_LCD_PWR	0x00400000
-#define LCD_CTRL_LCD_BLE	0x00800000
-#define LCD_CTRL_LDBUSEN	0x01000000
-
-/* Palette */
-#define LCD_PALETTE_BASE 	(IO_VIRT + 0x10400)
-
-/* Serial ports */
-#define SERIAL0_OFS		0x20000
-#define SERIAL0_VIRT 		(IO_VIRT + SERIAL0_OFS)
-#define SERIAL0_BASE		(IO_PHYS + SERIAL0_OFS)
-
-#define SERIAL1_OFS		0x21000
-#define SERIAL1_VIRT 		(IO_VIRT + SERIAL1_OFS)
-#define SERIAL1_BASE		(IO_PHYS + SERIAL1_OFS)
-
-#define SERIAL_ENABLE		0x30
-#define SERIAL_ENABLE_EN	(1<<0)
-
-/* General defines to pacify gcc */
-
-#define __ASM_ARCH_HARDWARE_INCMACH_H
-#include "boards.h"
-#undef __ASM_ARCH_HARDWARE_INCMACH_H
-
-#endif				/* __ASM_ARCH_HARDWARE_H */
diff --git a/arch/arm/mach-h720x/include/mach/irqs.h b/arch/arm/mach-h720x/include/mach/irqs.h
deleted file mode 100644
index 430a92b..0000000
--- a/arch/arm/mach-h720x/include/mach/irqs.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * arch/arm/mach-h720x/include/mach/irqs.h
- *
- * Copyright (C) 2000 Jungjun Kim
- *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
- *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
- *
- */
-
-#ifndef __ASM_ARCH_IRQS_H
-#define __ASM_ARCH_IRQS_H
-
-#if defined (CONFIG_CPU_H7201)
-
-#define IRQ_PMU		0		/* 0x000001 */
-#define IRQ_DMA		1 		/* 0x000002 */
-#define IRQ_LCD		2		/* 0x000004 */
-#define IRQ_VGA		3 		/* 0x000008 */
-#define IRQ_PCMCIA1 	4 		/* 0x000010 */
-#define IRQ_PCMCIA2 	5 		/* 0x000020 */
-#define IRQ_AFE		6 		/* 0x000040 */
-#define IRQ_AIC		7 		/* 0x000080 */
-#define IRQ_KEYBOARD 	8 		/* 0x000100 */
-#define IRQ_TIMER0	9 		/* 0x000200 */
-#define IRQ_RTC		10		/* 0x000400 */
-#define IRQ_SOUND	11		/* 0x000800 */
-#define IRQ_USB		12		/* 0x001000 */
-#define IRQ_IrDA 	13		/* 0x002000 */
-#define IRQ_UART0	14		/* 0x004000 */
-#define IRQ_UART1	15		/* 0x008000 */
-#define IRQ_SPI		16		/* 0x010000 */
-#define IRQ_GPIOA 	17		/* 0x020000 */
-#define IRQ_GPIOB	18		/* 0x040000 */
-#define IRQ_GPIOC	19		/* 0x080000 */
-#define IRQ_GPIOD	20		/* 0x100000 */
-#define IRQ_CommRX	21		/* 0x200000 */
-#define IRQ_CommTX	22		/* 0x400000 */
-#define IRQ_Soft	23		/* 0x800000 */
-
-#define NR_GLBL_IRQS	24
-
-#define IRQ_CHAINED_GPIOA(x)  (NR_GLBL_IRQS + x)
-#define IRQ_CHAINED_GPIOB(x)  (IRQ_CHAINED_GPIOA(32) + x)
-#define IRQ_CHAINED_GPIOC(x)  (IRQ_CHAINED_GPIOB(32) + x)
-#define IRQ_CHAINED_GPIOD(x)  (IRQ_CHAINED_GPIOC(32) + x)
-#define NR_IRQS               IRQ_CHAINED_GPIOD(32)
-
-/* Enable mask for multiplexed interrupts */
-#define IRQ_ENA_MUX	(1<<IRQ_GPIOA) | (1<<IRQ_GPIOB) \
-			| (1<<IRQ_GPIOC) | (1<<IRQ_GPIOD)
-
-
-#elif defined (CONFIG_CPU_H7202)
-
-#define IRQ_PMU		0		/* 0x00000001 */
-#define IRQ_DMA		1		/* 0x00000002 */
-#define IRQ_LCD		2		/* 0x00000004 */
-#define IRQ_SOUND	3		/* 0x00000008 */
-#define IRQ_I2S		4		/* 0x00000010 */
-#define IRQ_USB 	5		/* 0x00000020 */
-#define IRQ_MMC 	6		/* 0x00000040 */
-#define IRQ_RTC 	7		/* 0x00000080 */
-#define IRQ_UART0 	8		/* 0x00000100 */
-#define IRQ_UART1 	9		/* 0x00000200 */
-#define IRQ_UART2 	10		/* 0x00000400 */
-#define IRQ_UART3 	11		/* 0x00000800 */
-#define IRQ_KBD 	12		/* 0x00001000 */
-#define IRQ_PS2 	13		/* 0x00002000 */
-#define IRQ_AIC 	14		/* 0x00004000 */
-#define IRQ_TIMER0 	15		/* 0x00008000 */
-#define IRQ_TIMERX 	16		/* 0x00010000 */
-#define IRQ_WDT 	17		/* 0x00020000 */
-#define IRQ_CAN0 	18		/* 0x00040000 */
-#define IRQ_CAN1 	19		/* 0x00080000 */
-#define IRQ_EXT0 	20		/* 0x00100000 */
-#define IRQ_EXT1 	21		/* 0x00200000 */
-#define IRQ_GPIOA 	22		/* 0x00400000 */
-#define IRQ_GPIOB 	23		/* 0x00800000 */
-#define IRQ_GPIOC 	24		/* 0x01000000 */
-#define IRQ_GPIOD 	25		/* 0x02000000 */
-#define IRQ_GPIOE 	26		/* 0x04000000 */
-#define IRQ_COMMRX 	27		/* 0x08000000 */
-#define IRQ_COMMTX 	28		/* 0x10000000 */
-#define IRQ_SMC 	29		/* 0x20000000 */
-#define IRQ_Soft 	30		/* 0x40000000 */
-#define IRQ_RESERVED1 	31		/* 0x80000000 */
-#define NR_GLBL_IRQS	32
-
-#define NR_TIMERX_IRQS	3
-
-#define IRQ_CHAINED_GPIOA(x)  (NR_GLBL_IRQS + x)
-#define IRQ_CHAINED_GPIOB(x)  (IRQ_CHAINED_GPIOA(32) + x)
-#define IRQ_CHAINED_GPIOC(x)  (IRQ_CHAINED_GPIOB(32) + x)
-#define IRQ_CHAINED_GPIOD(x)  (IRQ_CHAINED_GPIOC(32) + x)
-#define IRQ_CHAINED_GPIOE(x)  (IRQ_CHAINED_GPIOD(32) + x)
-#define IRQ_CHAINED_TIMERX(x) (IRQ_CHAINED_GPIOE(32) + x)
-#define IRQ_TIMER1            (IRQ_CHAINED_TIMERX(0))
-#define IRQ_TIMER2            (IRQ_CHAINED_TIMERX(1))
-#define IRQ_TIMER64B          (IRQ_CHAINED_TIMERX(2))
-
-#define NR_IRQS		(IRQ_CHAINED_TIMERX(NR_TIMERX_IRQS))
-
-/* Enable mask for multiplexed interrupts */
-#define IRQ_ENA_MUX	(1<<IRQ_TIMERX) | (1<<IRQ_GPIOA) | (1<<IRQ_GPIOB) | \
-			(1<<IRQ_GPIOC) 	| (1<<IRQ_GPIOD) | (1<<IRQ_GPIOE) | \
-			(1<<IRQ_TIMERX)
-
-#else
-#error cpu definition mismatch
-#endif
-
-/* decode irq number to register number */
-#define IRQ_TO_REGNO(irq) ((irq - NR_GLBL_IRQS) >> 5)
-#define IRQ_TO_BIT(irq) (1 << ((irq - NR_GLBL_IRQS) % 32))
-
-#endif
diff --git a/arch/arm/mach-h720x/include/mach/isa-dma.h b/arch/arm/mach-h720x/include/mach/isa-dma.h
deleted file mode 100644
index 3eafb3f..0000000
--- a/arch/arm/mach-h720x/include/mach/isa-dma.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * arch/arm/mach-h720x/include/mach/isa-dma.h
- *
- * Architecture DMA routes
- *
- * Copyright (C) 1997.1998 Russell King
- */
-#ifndef __ASM_ARCH_DMA_H
-#define __ASM_ARCH_DMA_H
-
-#if defined (CONFIG_CPU_H7201)
-#define MAX_DMA_CHANNELS	3
-#elif defined (CONFIG_CPU_H7202)
-#define MAX_DMA_CHANNELS	4
-#else
-#error processor definition missmatch
-#endif
-
-#endif /* __ASM_ARCH_DMA_H */
diff --git a/arch/arm/mach-h720x/include/mach/timex.h b/arch/arm/mach-h720x/include/mach/timex.h
deleted file mode 100644
index 3f2f447..0000000
--- a/arch/arm/mach-h720x/include/mach/timex.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * arch/arm/mach-h720x/include/mach/timex.h
- * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
- *
- * 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.
- */
-
-#ifndef __ASM_ARCH_TIMEX
-#define __ASM_ARCH_TIMEX
-
-#define CLOCK_TICK_RATE		3686400
-
-#endif
diff --git a/arch/arm/mach-h720x/include/mach/uncompress.h b/arch/arm/mach-h720x/include/mach/uncompress.h
deleted file mode 100644
index 43e343c..0000000
--- a/arch/arm/mach-h720x/include/mach/uncompress.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * arch/arm/mach-h720x/include/mach/uncompress.h
- *
- * Copyright (C) 2001-2002 Jungjun Kim
- */
-
-#ifndef __ASM_ARCH_UNCOMPRESS_H
-#define __ASM_ARCH_UNCOMPRESS_H
-
-#include <mach/hardware.h>
-
-#define LSR 	0x14
-#define TEMPTY 	0x40
-
-static inline void putc(int c)
-{
-	volatile unsigned char *p = (volatile unsigned char *)(IO_PHYS+0x20000);
-
-	/* wait until transmit buffer is empty */
-	while((p[LSR] & TEMPTY) == 0x0)
-		barrier();
-
-	/* write next character */
-	*p = c;
-}
-
-static inline void flush(void)
-{
-}
-
-/*
- * nothing to do
- */
-#define arch_decomp_setup()
-
-#endif
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 6/6] mtd: remove h720x flash support
  2013-03-14 22:12 [PATCH 0/6] ARM platform spring cleaning Arnd Bergmann
@ 2013-03-14 22:12   ` Arnd Bergmann
  2013-03-14 22:12 ` [PATCH 2/6] ARM: gemini: remove platform support Arnd Bergmann
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:12 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: David Woodhouse, linux-mtd, Arnd Bergmann, Artem Bityutskiy

The h720x platform support is going away in linux-3.10, so the
MTD driver will also not be needed any more.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: linux-mtd@lists.infradead.org
Cc: Artem Bityutskiy <dedekind1@gmail.com>
Cc: David Woodhouse <dwmw2@infradead.org>
---
 drivers/mtd/maps/Kconfig       |   7 ---
 drivers/mtd/maps/Makefile      |   1 -
 drivers/mtd/maps/h720x-flash.c | 120 -----------------------------------------
 3 files changed, 128 deletions(-)
 delete mode 100644 drivers/mtd/maps/h720x-flash.c

diff --git a/drivers/mtd/maps/Kconfig b/drivers/mtd/maps/Kconfig
index 3ed17c4..2b108f2 100644
--- a/drivers/mtd/maps/Kconfig
+++ b/drivers/mtd/maps/Kconfig
@@ -372,13 +372,6 @@ config MTD_IMPA7
 	  This enables access to the NOR Flash on the impA7 board of
 	  implementa GmbH. If you have such a board, say 'Y' here.
 
-config MTD_H720X
-	tristate "Hynix evaluation board mappings"
-	depends on MTD_CFI && ( ARCH_H7201 || ARCH_H7202 )
-	help
-	  This enables access to the flash chips on the Hynix evaluation boards.
-	  If you have such a board, say 'Y'.
-
 # This needs CFI or JEDEC, depending on the cards found.
 config MTD_PCI
 	tristate "PCI MTD driver"
diff --git a/drivers/mtd/maps/Makefile b/drivers/mtd/maps/Makefile
index 4ded287..74587a0 100644
--- a/drivers/mtd/maps/Makefile
+++ b/drivers/mtd/maps/Makefile
@@ -42,7 +42,6 @@ obj-$(CONFIG_MTD_IMPA7)		+= impa7.o
 obj-$(CONFIG_MTD_UCLINUX)	+= uclinux.o
 obj-$(CONFIG_MTD_NETtel)	+= nettel.o
 obj-$(CONFIG_MTD_SCB2_FLASH)	+= scb2_flash.o
-obj-$(CONFIG_MTD_H720X)		+= h720x-flash.o
 obj-$(CONFIG_MTD_IXP4XX)	+= ixp4xx.o
 obj-$(CONFIG_MTD_IXP2000)	+= ixp2000.o
 obj-$(CONFIG_MTD_DMV182)	+= dmv182.o
diff --git a/drivers/mtd/maps/h720x-flash.c b/drivers/mtd/maps/h720x-flash.c
deleted file mode 100644
index 8ed6cb4..0000000
--- a/drivers/mtd/maps/h720x-flash.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Flash memory access on Hynix GMS30C7201/HMS30C7202 based
- * evaluation boards
- *
- * (C) 2002 Jungjun Kim <jungjun.kim@hynix.com>
- *     2003 Thomas Gleixner <tglx@linutronix.de>
- */
-
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/map.h>
-#include <linux/mtd/partitions.h>
-#include <mach/hardware.h>
-#include <asm/io.h>
-
-static struct mtd_info *mymtd;
-
-static struct map_info h720x_map = {
-	.name =		"H720X",
-	.bankwidth =	4,
-	.size =		H720X_FLASH_SIZE,
-	.phys =		H720X_FLASH_PHYS,
-};
-
-static struct mtd_partition h720x_partitions[] = {
-        {
-                .name = "ArMon",
-                .size = 0x00080000,
-                .offset = 0,
-                .mask_flags = MTD_WRITEABLE
-        },{
-                .name = "Env",
-                .size = 0x00040000,
-                .offset = 0x00080000,
-                .mask_flags = MTD_WRITEABLE
-        },{
-                .name = "Kernel",
-                .size = 0x00180000,
-                .offset = 0x000c0000,
-                .mask_flags = MTD_WRITEABLE
-        },{
-                .name = "Ramdisk",
-                .size = 0x00400000,
-                .offset = 0x00240000,
-                .mask_flags = MTD_WRITEABLE
-        },{
-                .name = "jffs2",
-                .size = MTDPART_SIZ_FULL,
-                .offset = MTDPART_OFS_APPEND
-        }
-};
-
-#define NUM_PARTITIONS ARRAY_SIZE(h720x_partitions)
-
-/*
- * Initialize FLASH support
- */
-static int __init h720x_mtd_init(void)
-{
-	h720x_map.virt = ioremap(h720x_map.phys, h720x_map.size);
-
-	if (!h720x_map.virt) {
-		printk(KERN_ERR "H720x-MTD: ioremap failed\n");
-		return -EIO;
-	}
-
-	simple_map_init(&h720x_map);
-
-	// Probe for flash bankwidth 4
-	printk (KERN_INFO "H720x-MTD probing 32bit FLASH\n");
-	mymtd = do_map_probe("cfi_probe", &h720x_map);
-	if (!mymtd) {
-		printk (KERN_INFO "H720x-MTD probing 16bit FLASH\n");
-	    // Probe for bankwidth 2
-	    h720x_map.bankwidth = 2;
-	    mymtd = do_map_probe("cfi_probe", &h720x_map);
-	}
-
-	if (mymtd) {
-		mymtd->owner = THIS_MODULE;
-
-		mtd_device_parse_register(mymtd, NULL, NULL,
-					  h720x_partitions, NUM_PARTITIONS);
-		return 0;
-	}
-
-	iounmap((void *)h720x_map.virt);
-	return -ENXIO;
-}
-
-/*
- * Cleanup
- */
-static void __exit h720x_mtd_cleanup(void)
-{
-
-	if (mymtd) {
-		mtd_device_unregister(mymtd);
-		map_destroy(mymtd);
-	}
-
-	if (h720x_map.virt) {
-		iounmap((void *)h720x_map.virt);
-		h720x_map.virt = 0;
-	}
-}
-
-
-module_init(h720x_mtd_init);
-module_exit(h720x_mtd_cleanup);
-
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR("Thomas Gleixner <tglx@linutronix.de>");
-MODULE_DESCRIPTION("MTD map driver for Hynix evaluation boards");
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 6/6] mtd: remove h720x flash support
@ 2013-03-14 22:12   ` Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:12 UTC (permalink / raw)
  To: linux-arm-kernel

The h720x platform support is going away in linux-3.10, so the
MTD driver will also not be needed any more.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: linux-mtd at lists.infradead.org
Cc: Artem Bityutskiy <dedekind1@gmail.com>
Cc: David Woodhouse <dwmw2@infradead.org>
---
 drivers/mtd/maps/Kconfig       |   7 ---
 drivers/mtd/maps/Makefile      |   1 -
 drivers/mtd/maps/h720x-flash.c | 120 -----------------------------------------
 3 files changed, 128 deletions(-)
 delete mode 100644 drivers/mtd/maps/h720x-flash.c

diff --git a/drivers/mtd/maps/Kconfig b/drivers/mtd/maps/Kconfig
index 3ed17c4..2b108f2 100644
--- a/drivers/mtd/maps/Kconfig
+++ b/drivers/mtd/maps/Kconfig
@@ -372,13 +372,6 @@ config MTD_IMPA7
 	  This enables access to the NOR Flash on the impA7 board of
 	  implementa GmbH. If you have such a board, say 'Y' here.
 
-config MTD_H720X
-	tristate "Hynix evaluation board mappings"
-	depends on MTD_CFI && ( ARCH_H7201 || ARCH_H7202 )
-	help
-	  This enables access to the flash chips on the Hynix evaluation boards.
-	  If you have such a board, say 'Y'.
-
 # This needs CFI or JEDEC, depending on the cards found.
 config MTD_PCI
 	tristate "PCI MTD driver"
diff --git a/drivers/mtd/maps/Makefile b/drivers/mtd/maps/Makefile
index 4ded287..74587a0 100644
--- a/drivers/mtd/maps/Makefile
+++ b/drivers/mtd/maps/Makefile
@@ -42,7 +42,6 @@ obj-$(CONFIG_MTD_IMPA7)		+= impa7.o
 obj-$(CONFIG_MTD_UCLINUX)	+= uclinux.o
 obj-$(CONFIG_MTD_NETtel)	+= nettel.o
 obj-$(CONFIG_MTD_SCB2_FLASH)	+= scb2_flash.o
-obj-$(CONFIG_MTD_H720X)		+= h720x-flash.o
 obj-$(CONFIG_MTD_IXP4XX)	+= ixp4xx.o
 obj-$(CONFIG_MTD_IXP2000)	+= ixp2000.o
 obj-$(CONFIG_MTD_DMV182)	+= dmv182.o
diff --git a/drivers/mtd/maps/h720x-flash.c b/drivers/mtd/maps/h720x-flash.c
deleted file mode 100644
index 8ed6cb4..0000000
--- a/drivers/mtd/maps/h720x-flash.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Flash memory access on Hynix GMS30C7201/HMS30C7202 based
- * evaluation boards
- *
- * (C) 2002 Jungjun Kim <jungjun.kim@hynix.com>
- *     2003 Thomas Gleixner <tglx@linutronix.de>
- */
-
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/map.h>
-#include <linux/mtd/partitions.h>
-#include <mach/hardware.h>
-#include <asm/io.h>
-
-static struct mtd_info *mymtd;
-
-static struct map_info h720x_map = {
-	.name =		"H720X",
-	.bankwidth =	4,
-	.size =		H720X_FLASH_SIZE,
-	.phys =		H720X_FLASH_PHYS,
-};
-
-static struct mtd_partition h720x_partitions[] = {
-        {
-                .name = "ArMon",
-                .size = 0x00080000,
-                .offset = 0,
-                .mask_flags = MTD_WRITEABLE
-        },{
-                .name = "Env",
-                .size = 0x00040000,
-                .offset = 0x00080000,
-                .mask_flags = MTD_WRITEABLE
-        },{
-                .name = "Kernel",
-                .size = 0x00180000,
-                .offset = 0x000c0000,
-                .mask_flags = MTD_WRITEABLE
-        },{
-                .name = "Ramdisk",
-                .size = 0x00400000,
-                .offset = 0x00240000,
-                .mask_flags = MTD_WRITEABLE
-        },{
-                .name = "jffs2",
-                .size = MTDPART_SIZ_FULL,
-                .offset = MTDPART_OFS_APPEND
-        }
-};
-
-#define NUM_PARTITIONS ARRAY_SIZE(h720x_partitions)
-
-/*
- * Initialize FLASH support
- */
-static int __init h720x_mtd_init(void)
-{
-	h720x_map.virt = ioremap(h720x_map.phys, h720x_map.size);
-
-	if (!h720x_map.virt) {
-		printk(KERN_ERR "H720x-MTD: ioremap failed\n");
-		return -EIO;
-	}
-
-	simple_map_init(&h720x_map);
-
-	// Probe for flash bankwidth 4
-	printk (KERN_INFO "H720x-MTD probing 32bit FLASH\n");
-	mymtd = do_map_probe("cfi_probe", &h720x_map);
-	if (!mymtd) {
-		printk (KERN_INFO "H720x-MTD probing 16bit FLASH\n");
-	    // Probe for bankwidth 2
-	    h720x_map.bankwidth = 2;
-	    mymtd = do_map_probe("cfi_probe", &h720x_map);
-	}
-
-	if (mymtd) {
-		mymtd->owner = THIS_MODULE;
-
-		mtd_device_parse_register(mymtd, NULL, NULL,
-					  h720x_partitions, NUM_PARTITIONS);
-		return 0;
-	}
-
-	iounmap((void *)h720x_map.virt);
-	return -ENXIO;
-}
-
-/*
- * Cleanup
- */
-static void __exit h720x_mtd_cleanup(void)
-{
-
-	if (mymtd) {
-		mtd_device_unregister(mymtd);
-		map_destroy(mymtd);
-	}
-
-	if (h720x_map.virt) {
-		iounmap((void *)h720x_map.virt);
-		h720x_map.virt = 0;
-	}
-}
-
-
-module_init(h720x_mtd_init);
-module_exit(h720x_mtd_cleanup);
-
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR("Thomas Gleixner <tglx@linutronix.de>");
-MODULE_DESCRIPTION("MTD map driver for Hynix evaluation boards");
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 5/6] ARM: kill Hynix h720x platform
  2013-03-14 22:12 ` [PATCH 5/6] ARM: kill Hynix h720x platform Arnd Bergmann
@ 2013-03-15  5:21   ` Robert Schwebel
  2013-03-15  6:13   ` Sascha Hauer
  2013-03-15 12:27   ` Thomas Petazzoni
  2 siblings, 0 replies; 30+ messages in thread
From: Robert Schwebel @ 2013-03-15  5:21 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Mar 14, 2013 at 11:12:57PM +0100, Arnd Bergmann wrote:
> The platform was merged about 10 years ago, and has seen few updates
> for most of the time since. The people that merged the code seem
> no longer interested in it either, so let's remove it now.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Robert Schwebel <r.schwebel@pengutronix.de>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>

Acked-by: Robert Schwebel <r.schwebel@pengutronix.de>

> ---
>  arch/arm/Kconfig                               |  10 -
>  arch/arm/Makefile                              |   1 -
>  arch/arm/configs/h7201_defconfig               |  27 ---
>  arch/arm/configs/h7202_defconfig               |  47 -----
>  arch/arm/mach-h720x/Kconfig                    |  40 ----
>  arch/arm/mach-h720x/Makefile                   |  16 --
>  arch/arm/mach-h720x/Makefile.boot              |   2 -
>  arch/arm/mach-h720x/common.c                   | 268 -------------------------
>  arch/arm/mach-h720x/common.h                   |  30 ---
>  arch/arm/mach-h720x/cpu-h7201.c                |  57 ------
>  arch/arm/mach-h720x/cpu-h7202.c                | 225 ---------------------
>  arch/arm/mach-h720x/h7201-eval.c               |  38 ----
>  arch/arm/mach-h720x/h7202-eval.c               |  81 --------
>  arch/arm/mach-h720x/include/mach/boards.h      |  53 -----
>  arch/arm/mach-h720x/include/mach/debug-macro.S |  40 ----
>  arch/arm/mach-h720x/include/mach/entry-macro.S |  57 ------
>  arch/arm/mach-h720x/include/mach/h7201-regs.h  |  67 -------
>  arch/arm/mach-h720x/include/mach/h7202-regs.h  | 155 --------------
>  arch/arm/mach-h720x/include/mach/hardware.h    | 190 ------------------
>  arch/arm/mach-h720x/include/mach/irqs.h        | 116 -----------
>  arch/arm/mach-h720x/include/mach/isa-dma.h     |  19 --
>  arch/arm/mach-h720x/include/mach/timex.h       |  15 --
>  arch/arm/mach-h720x/include/mach/uncompress.h  |  36 ----
>  23 files changed, 1590 deletions(-)
>  delete mode 100644 arch/arm/configs/h7201_defconfig
>  delete mode 100644 arch/arm/configs/h7202_defconfig
>  delete mode 100644 arch/arm/mach-h720x/Kconfig
>  delete mode 100644 arch/arm/mach-h720x/Makefile
>  delete mode 100644 arch/arm/mach-h720x/Makefile.boot
>  delete mode 100644 arch/arm/mach-h720x/common.c
>  delete mode 100644 arch/arm/mach-h720x/common.h
>  delete mode 100644 arch/arm/mach-h720x/cpu-h7201.c
>  delete mode 100644 arch/arm/mach-h720x/cpu-h7202.c
>  delete mode 100644 arch/arm/mach-h720x/h7201-eval.c
>  delete mode 100644 arch/arm/mach-h720x/h7202-eval.c
>  delete mode 100644 arch/arm/mach-h720x/include/mach/boards.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-h720x/include/mach/entry-macro.S
>  delete mode 100644 arch/arm/mach-h720x/include/mach/h7201-regs.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/h7202-regs.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/hardware.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/irqs.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/isa-dma.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/timex.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/uncompress.h
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 9d2e825..26e9251 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -485,14 +485,6 @@ config ARCH_NETX
>  	help
>  	  This enables support for systems based on the Hilscher NetX Soc
>  
> -config ARCH_H720X
> -	bool "Hynix HMS720x-based"
> -	select ARCH_USES_GETTIMEOFFSET
> -	select CPU_ARM720T
> -	select ISA_DMA_API
> -	help
> -	  This enables support for systems based on the Hynix HMS720x
> -
>  config ARCH_IOP13XX
>  	bool "IOP13xx-based"
>  	depends on MMU
> @@ -1041,8 +1033,6 @@ source "arch/arm/mach-ep93xx/Kconfig"
>  
>  source "arch/arm/mach-footbridge/Kconfig"
>  
> -source "arch/arm/mach-h720x/Kconfig"
> -
>  source "arch/arm/mach-highbank/Kconfig"
>  
>  source "arch/arm/mach-integrator/Kconfig"
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index b514a0a..5f4576d 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -145,7 +145,6 @@ machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
>  machine-$(CONFIG_ARCH_DOVE)		+= dove
>  machine-$(CONFIG_ARCH_EBSA110)		+= ebsa110
>  machine-$(CONFIG_ARCH_EP93XX)		+= ep93xx
> -machine-$(CONFIG_ARCH_H720X)		+= h720x
>  machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
>  machine-$(CONFIG_ARCH_INTEGRATOR)	+= integrator
>  machine-$(CONFIG_ARCH_IOP13XX)		+= iop13xx
> diff --git a/arch/arm/configs/h7201_defconfig b/arch/arm/configs/h7201_defconfig
> deleted file mode 100644
> index bee94d2..0000000
> --- a/arch/arm/configs/h7201_defconfig
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -CONFIG_EXPERIMENTAL=y
> -CONFIG_SYSVIPC=y
> -CONFIG_LOG_BUF_SHIFT=14
> -CONFIG_BLK_DEV_INITRD=y
> -CONFIG_MODULES=y
> -CONFIG_ARCH_H720X=y
> -CONFIG_ARCH_H7201=y
> -CONFIG_ZBOOT_ROM_TEXT=0x0
> -CONFIG_ZBOOT_ROM_BSS=0x0
> -CONFIG_FPE_NWFPE=y
> -CONFIG_MTD=y
> -CONFIG_MTD_DEBUG=y
> -CONFIG_MTD_PARTITIONS=y
> -CONFIG_MTD_CHAR=y
> -CONFIG_MTD_BLOCK=y
> -CONFIG_MTD_CFI=y
> -CONFIG_MTD_CFI_ADV_OPTIONS=y
> -CONFIG_MTD_CFI_INTELEXT=y
> -CONFIG_BLK_DEV_RAM=y
> -CONFIG_BLK_DEV_RAM_SIZE=8192
> -# CONFIG_INPUT_KEYBOARD is not set
> -# CONFIG_INPUT_MOUSE is not set
> -# CONFIG_VGA_CONSOLE is not set
> -CONFIG_SOUND=m
> -CONFIG_EXT2_FS=y
> -CONFIG_JFFS2_FS=y
> -CONFIG_DEBUG_USER=y
> diff --git a/arch/arm/configs/h7202_defconfig b/arch/arm/configs/h7202_defconfig
> deleted file mode 100644
> index e16d3f3..0000000
> --- a/arch/arm/configs/h7202_defconfig
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -CONFIG_EXPERIMENTAL=y
> -CONFIG_SYSVIPC=y
> -CONFIG_LOG_BUF_SHIFT=14
> -CONFIG_MODULES=y
> -CONFIG_ARCH_H720X=y
> -CONFIG_ARCH_H7202=y
> -# CONFIG_ARM_THUMB is not set
> -CONFIG_ZBOOT_ROM_TEXT=0x0
> -CONFIG_ZBOOT_ROM_BSS=0x0
> -CONFIG_CMDLINE="console=ttyS0,19200"
> -CONFIG_FPE_NWFPE=y
> -CONFIG_FPE_NWFPE_XP=y
> -CONFIG_NET=y
> -CONFIG_UNIX=y
> -CONFIG_INET=y
> -CONFIG_IP_PNP=y
> -CONFIG_IP_PNP_BOOTP=y
> -# CONFIG_IPV6 is not set
> -CONFIG_MTD=y
> -CONFIG_MTD_PARTITIONS=y
> -CONFIG_MTD_CMDLINE_PARTS=y
> -CONFIG_MTD_CHAR=y
> -CONFIG_MTD_BLOCK=y
> -CONFIG_MTD_CFI=y
> -CONFIG_MTD_CFI_INTELEXT=y
> -CONFIG_MTD_H720X=y
> -CONFIG_NETDEVICES=y
> -CONFIG_NET_ETHERNET=y
> -CONFIG_SERIAL_8250=y
> -CONFIG_SERIAL_8250_CONSOLE=y
> -CONFIG_FB=y
> -CONFIG_FB_MODE_HELPERS=y
> -# CONFIG_VGA_CONSOLE is not set
> -CONFIG_USB_GADGET=m
> -CONFIG_USB_ZERO=m
> -CONFIG_USB_GADGETFS=m
> -CONFIG_USB_MASS_STORAGE=m
> -CONFIG_USB_G_SERIAL=m
> -CONFIG_EXT2_FS=y
> -CONFIG_TMPFS=y
> -CONFIG_JFFS2_FS=y
> -CONFIG_NFS_FS=y
> -CONFIG_NFS_V3=y
> -CONFIG_MAGIC_SYSRQ=y
> -CONFIG_DEBUG_KERNEL=y
> -CONFIG_DEBUG_INFO=y
> -CONFIG_DEBUG_USER=y
> diff --git a/arch/arm/mach-h720x/Kconfig b/arch/arm/mach-h720x/Kconfig
> deleted file mode 100644
> index 6bb755b..0000000
> --- a/arch/arm/mach-h720x/Kconfig
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -if ARCH_H720X
> -
> -menu "h720x Implementations"
> -
> -config ARCH_H7201
> -	bool "gms30c7201"
> -	depends on ARCH_H720X
> -	select CPU_H7201
> -	select ZONE_DMA
> -	help
> -	  Say Y here if you are using the Hynix GMS30C7201 Reference Board
> -
> -config ARCH_H7202
> -	bool "hms30c7202"
> -	depends on ARCH_H720X
> -	select CPU_H7202
> -	select ZONE_DMA
> -	help
> -	  Say Y here if you are using the Hynix HMS30C7202 Reference Board
> -
> -endmenu
> -
> -config CPU_H7201
> -	bool
> -	help
> -	  Select code specific to h7201 variants
> -
> -config CPU_H7202
> -	bool
> -	help
> -	  Select code specific to h7202 variants
> -config H7202_SERIAL23
> -	depends on CPU_H7202
> -	bool "Use serial ports 2+3"
> -	help
> -	  Say Y here if you wish to use serial ports 2+3. They share their
> -	  pins with the keyboard matrix controller, so you have to decide.
> -
> -
> -endif
> diff --git a/arch/arm/mach-h720x/Makefile b/arch/arm/mach-h720x/Makefile
> deleted file mode 100644
> index e4cf728..0000000
> --- a/arch/arm/mach-h720x/Makefile
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -#
> -# Makefile for the linux kernel.
> -#
> -
> -# Common support
> -obj-y := common.o
> -obj-m :=
> -obj-n :=
> -obj-  :=
> -
> -# Specific board support
> -
> -obj-$(CONFIG_ARCH_H7201)		+= h7201-eval.o
> -obj-$(CONFIG_ARCH_H7202)		+= h7202-eval.o
> -obj-$(CONFIG_CPU_H7201) 		+= cpu-h7201.o
> -obj-$(CONFIG_CPU_H7202) 		+= cpu-h7202.o
> diff --git a/arch/arm/mach-h720x/Makefile.boot b/arch/arm/mach-h720x/Makefile.boot
> deleted file mode 100644
> index d875a70..0000000
> --- a/arch/arm/mach-h720x/Makefile.boot
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -   zreladdr-$(CONFIG_ARCH_H720X)	+= 0x40008000
> -
> diff --git a/arch/arm/mach-h720x/common.c b/arch/arm/mach-h720x/common.c
> deleted file mode 100644
> index 17ef91f..0000000
> --- a/arch/arm/mach-h720x/common.c
> +++ /dev/null
> @@ -1,268 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/common.c
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * common stuff for Hynix h720x processors
> - *
> - * 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.
> - *
> - */
> -
> -#include <linux/sched.h>
> -#include <linux/mman.h>
> -#include <linux/init.h>
> -#include <linux/interrupt.h>
> -#include <linux/io.h>
> -
> -#include <asm/page.h>
> -#include <asm/pgtable.h>
> -#include <asm/dma.h>
> -#include <mach/hardware.h>
> -#include <asm/irq.h>
> -#include <asm/system_misc.h>
> -#include <asm/mach/irq.h>
> -#include <asm/mach/map.h>
> -#include <mach/irqs.h>
> -
> -#include <asm/mach/dma.h>
> -
> -#if 0
> -#define IRQDBG(args...) printk(args)
> -#else
> -#define IRQDBG(args...) do {} while(0)
> -#endif
> -
> -void __init arch_dma_init(dma_t *dma)
> -{
> -}
> -
> -/*
> - * Return nsecs since last timer reload
> - * (timercount * (usecs perjiffie)) / (ticks per jiffie)
> - */
> -u32 h720x_gettimeoffset(void)
> -{
> -	return ((CPU_REG(TIMER_VIRT, TM0_COUNT) * tick_usec) / LATCH) * 1000;
> -}
> -
> -/*
> - * mask Global irq's
> - */
> -static void mask_global_irq(struct irq_data *d)
> -{
> -	CPU_REG (IRQC_VIRT, IRQC_IER) &= ~(1 << d->irq);
> -}
> -
> -/*
> - * unmask Global irq's
> - */
> -static void unmask_global_irq(struct irq_data *d)
> -{
> -	CPU_REG (IRQC_VIRT, IRQC_IER) |= (1 << d->irq);
> -}
> -
> -
> -/*
> - * ack GPIO irq's
> - * Ack only for edge triggered int's valid
> - */
> -static void inline ack_gpio_irq(struct irq_data *d)
> -{
> -	u32 reg_base = GPIO_VIRT(IRQ_TO_REGNO(d->irq));
> -	u32 bit = IRQ_TO_BIT(d->irq);
> -	if ( (CPU_REG (reg_base, GPIO_EDGE) & bit))
> -		CPU_REG (reg_base, GPIO_CLR) = bit;
> -}
> -
> -/*
> - * mask GPIO irq's
> - */
> -static void inline mask_gpio_irq(struct irq_data *d)
> -{
> -	u32 reg_base = GPIO_VIRT(IRQ_TO_REGNO(d->irq));
> -	u32 bit = IRQ_TO_BIT(d->irq);
> -	CPU_REG (reg_base, GPIO_MASK) &= ~bit;
> -}
> -
> -/*
> - * unmask GPIO irq's
> - */
> -static void inline unmask_gpio_irq(struct irq_data *d)
> -{
> -	u32 reg_base = GPIO_VIRT(IRQ_TO_REGNO(d->irq));
> -	u32 bit = IRQ_TO_BIT(d->irq);
> -	CPU_REG (reg_base, GPIO_MASK) |= bit;
> -}
> -
> -static void
> -h720x_gpio_handler(unsigned int mask, unsigned int irq,
> -                 struct irq_desc *desc)
> -{
> -	IRQDBG("%s irq: %d\n", __func__, irq);
> -	while (mask) {
> -		if (mask & 1) {
> -			IRQDBG("handling irq %d\n", irq);
> -			generic_handle_irq(irq);
> -		}
> -		irq++;
> -		mask >>= 1;
> -	}
> -}
> -
> -static void
> -h720x_gpioa_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -
> -	mask = CPU_REG(GPIO_A_VIRT,GPIO_STAT);
> -	irq = IRQ_CHAINED_GPIOA(0);
> -	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
> -	h720x_gpio_handler(mask, irq, desc);
> -}
> -
> -static void
> -h720x_gpiob_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -	mask = CPU_REG(GPIO_B_VIRT,GPIO_STAT);
> -	irq = IRQ_CHAINED_GPIOB(0);
> -	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
> -	h720x_gpio_handler(mask, irq, desc);
> -}
> -
> -static void
> -h720x_gpioc_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -
> -	mask = CPU_REG(GPIO_C_VIRT,GPIO_STAT);
> -	irq = IRQ_CHAINED_GPIOC(0);
> -	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
> -	h720x_gpio_handler(mask, irq, desc);
> -}
> -
> -static void
> -h720x_gpiod_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -
> -	mask = CPU_REG(GPIO_D_VIRT,GPIO_STAT);
> -	irq = IRQ_CHAINED_GPIOD(0);
> -	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
> -	h720x_gpio_handler(mask, irq, desc);
> -}
> -
> -#ifdef CONFIG_CPU_H7202
> -static void
> -h720x_gpioe_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -
> -	mask = CPU_REG(GPIO_E_VIRT,GPIO_STAT);
> -	irq = IRQ_CHAINED_GPIOE(0);
> -	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
> -	h720x_gpio_handler(mask, irq, desc);
> -}
> -#endif
> -
> -static struct irq_chip h720x_global_chip = {
> -	.irq_ack = mask_global_irq,
> -	.irq_mask = mask_global_irq,
> -	.irq_unmask = unmask_global_irq,
> -};
> -
> -static struct irq_chip h720x_gpio_chip = {
> -	.irq_ack = ack_gpio_irq,
> -	.irq_mask = mask_gpio_irq,
> -	.irq_unmask = unmask_gpio_irq,
> -};
> -
> -/*
> - * Initialize IRQ's, mask all, enable multiplexed irq's
> - */
> -void __init h720x_init_irq (void)
> -{
> -	int 	irq;
> -
> -	/* Mask global irq's */
> -	CPU_REG (IRQC_VIRT, IRQC_IER) = 0x0;
> -
> -	/* Mask all multiplexed irq's */
> -	CPU_REG (GPIO_A_VIRT, GPIO_MASK) = 0x0;
> -	CPU_REG (GPIO_B_VIRT, GPIO_MASK) = 0x0;
> -	CPU_REG (GPIO_C_VIRT, GPIO_MASK) = 0x0;
> -	CPU_REG (GPIO_D_VIRT, GPIO_MASK) = 0x0;
> -
> -	/* Initialize global IRQ's, fast path */
> -	for (irq = 0; irq < NR_GLBL_IRQS; irq++) {
> -		irq_set_chip_and_handler(irq, &h720x_global_chip,
> -					 handle_level_irq);
> -		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
> -	}
> -
> -	/* Initialize multiplexed IRQ's, slow path */
> -	for (irq = IRQ_CHAINED_GPIOA(0) ; irq <= IRQ_CHAINED_GPIOD(31); irq++) {
> -		irq_set_chip_and_handler(irq, &h720x_gpio_chip,
> -					 handle_edge_irq);
> -		set_irq_flags(irq, IRQF_VALID );
> -	}
> -	irq_set_chained_handler(IRQ_GPIOA, h720x_gpioa_demux_handler);
> -	irq_set_chained_handler(IRQ_GPIOB, h720x_gpiob_demux_handler);
> -	irq_set_chained_handler(IRQ_GPIOC, h720x_gpioc_demux_handler);
> -	irq_set_chained_handler(IRQ_GPIOD, h720x_gpiod_demux_handler);
> -
> -#ifdef CONFIG_CPU_H7202
> -	for (irq = IRQ_CHAINED_GPIOE(0) ; irq <= IRQ_CHAINED_GPIOE(31); irq++) {
> -		irq_set_chip_and_handler(irq, &h720x_gpio_chip,
> -					 handle_edge_irq);
> -		set_irq_flags(irq, IRQF_VALID );
> -	}
> -	irq_set_chained_handler(IRQ_GPIOE, h720x_gpioe_demux_handler);
> -#endif
> -
> -	/* Enable multiplexed irq's */
> -	CPU_REG (IRQC_VIRT, IRQC_IER) = IRQ_ENA_MUX;
> -}
> -
> -static struct map_desc h720x_io_desc[] __initdata = {
> -	{
> -		.virtual	= IO_VIRT,
> -		.pfn		= __phys_to_pfn(IO_PHYS),
> -		.length		= IO_SIZE,
> -		.type		= MT_DEVICE
> -	},
> -};
> -
> -/* Initialize io tables */
> -void __init h720x_map_io(void)
> -{
> -	iotable_init(h720x_io_desc,ARRAY_SIZE(h720x_io_desc));
> -}
> -
> -void h720x_restart(char mode, const char *cmd)
> -{
> -	CPU_REG (PMU_BASE, PMU_STAT) |= PMU_WARMRESET;
> -}
> -
> -static void h720x__idle(void)
> -{
> -	CPU_REG (PMU_BASE, PMU_MODE) = PMU_MODE_IDLE;
> -	nop();
> -	nop();
> -	CPU_REG (PMU_BASE, PMU_MODE) = PMU_MODE_RUN;
> -	nop();
> -	nop();
> -}
> -
> -static int __init h720x_idle_init(void)
> -{
> -	arm_pm_idle = h720x__idle;
> -	return 0;
> -}
> -
> -arch_initcall(h720x_idle_init);
> diff --git a/arch/arm/mach-h720x/common.h b/arch/arm/mach-h720x/common.h
> deleted file mode 100644
> index 7e73841..0000000
> --- a/arch/arm/mach-h720x/common.h
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/common.h
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * Architecture specific stuff for Hynix GMS30C7201 development board
> - *
> - * 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.
> - *
> - */
> -
> -extern u32 h720x_gettimeoffset(void);
> -extern void __init h720x_init_irq(void);
> -extern void __init h720x_map_io(void);
> -extern void h720x_restart(char, const char *);
> -
> -#ifdef CONFIG_ARCH_H7202
> -extern void h7202_timer_init(void);
> -extern void __init init_hw_h7202(void);
> -extern void __init h7202_init_irq(void);
> -extern void __init h7202_init_time(void);
> -#endif
> -
> -#ifdef CONFIG_ARCH_H7201
> -extern void h7201_timer_init(void);
> -#endif
> diff --git a/arch/arm/mach-h720x/cpu-h7201.c b/arch/arm/mach-h720x/cpu-h7201.c
> deleted file mode 100644
> index 13c7412..0000000
> --- a/arch/arm/mach-h720x/cpu-h7201.c
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/cpu-h7201.c
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * processor specific stuff for the Hynix h7201
> - *
> - * 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.
> - *
> - */
> -
> -#include <linux/init.h>
> -#include <linux/interrupt.h>
> -#include <linux/module.h>
> -#include <asm/types.h>
> -#include <mach/hardware.h>
> -#include <asm/irq.h>
> -#include <mach/irqs.h>
> -#include <asm/mach/irq.h>
> -#include <asm/mach/time.h>
> -#include "common.h"
> -/*
> - * Timer interrupt handler
> - */
> -static irqreturn_t
> -h7201_timer_interrupt(int irq, void *dev_id)
> -{
> -	CPU_REG (TIMER_VIRT, TIMER_TOPSTAT);
> -	timer_tick();
> -
> -	return IRQ_HANDLED;
> -}
> -
> -static struct irqaction h7201_timer_irq = {
> -	.name		= "h7201 Timer Tick",
> -	.flags		= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
> -	.handler	= h7201_timer_interrupt,
> -};
> -
> -/*
> - * Setup TIMER0 as system timer
> - */
> -void __init h7201_timer_init(void)
> -{
> -	arch_gettimeoffset = h720x_gettimeoffset;
> -
> -	CPU_REG (TIMER_VIRT, TM0_PERIOD) = LATCH;
> -	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_RESET;
> -	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_REPEAT | TM_START;
> -	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) = ENABLE_TM0_INTR | TIMER_ENABLE_BIT;
> -
> -	setup_irq(IRQ_TIMER0, &h7201_timer_irq);
> -}
> diff --git a/arch/arm/mach-h720x/cpu-h7202.c b/arch/arm/mach-h720x/cpu-h7202.c
> deleted file mode 100644
> index e2ae7e8..0000000
> --- a/arch/arm/mach-h720x/cpu-h7202.c
> +++ /dev/null
> @@ -1,225 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/cpu-h7202.c
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * processor specific stuff for the Hynix h7202
> - *
> - * 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.
> - *
> - */
> -
> -#include <linux/init.h>
> -#include <linux/interrupt.h>
> -#include <linux/module.h>
> -#include <asm/types.h>
> -#include <mach/hardware.h>
> -#include <asm/irq.h>
> -#include <mach/irqs.h>
> -#include <asm/mach/irq.h>
> -#include <asm/mach/time.h>
> -#include <linux/device.h>
> -#include <linux/serial_8250.h>
> -#include "common.h"
> -
> -static struct resource h7202ps2_resources[] = {
> -	[0] = {
> -		.start	= 0x8002c000,
> -		.end	= 0x8002c040,
> -		.flags	= IORESOURCE_MEM,
> -	},
> -	[1] = {
> -		.start	= IRQ_PS2,
> -		.end	= IRQ_PS2,
> -		.flags	= IORESOURCE_IRQ,
> -	},
> -};
> -
> -static struct platform_device h7202ps2_device = {
> -	.name		= "h7202ps2",
> -	.id		= -1,
> -	.num_resources	= ARRAY_SIZE(h7202ps2_resources),
> -	.resource	= h7202ps2_resources,
> -};
> -
> -static struct plat_serial8250_port serial_platform_data[] = {
> -	{
> -		.membase	= (void*)SERIAL0_VIRT,
> -		.mapbase	= SERIAL0_BASE,
> -		.irq		= IRQ_UART0,
> -		.uartclk	= 2*1843200,
> -		.regshift	= 2,
> -		.iotype		= UPIO_MEM,
> -		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
> -	},
> -	{
> -		.membase	= (void*)SERIAL1_VIRT,
> -		.mapbase	= SERIAL1_BASE,
> -		.irq		= IRQ_UART1,
> -		.uartclk	= 2*1843200,
> -		.regshift	= 2,
> -		.iotype		= UPIO_MEM,
> -		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
> -	},
> -#ifdef CONFIG_H7202_SERIAL23
> -	{
> -		.membase	= (void*)SERIAL2_VIRT,
> -		.mapbase	= SERIAL2_BASE,
> -		.irq		= IRQ_UART2,
> -		.uartclk	= 2*1843200,
> -		.regshift	= 2,
> -		.iotype		= UPIO_MEM,
> -		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
> -	},
> -	{
> -		.membase	= (void*)SERIAL3_VIRT,
> -		.mapbase	= SERIAL3_BASE,
> -		.irq		= IRQ_UART3,
> -		.uartclk	= 2*1843200,
> -		.regshift	= 2,
> -		.iotype		= UPIO_MEM,
> -		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
> -	},
> -#endif
> -	{ },
> -};
> -
> -static struct platform_device serial_device = {
> -	.name			= "serial8250",
> -	.id			= PLAT8250_DEV_PLATFORM,
> -	.dev			= {
> -		.platform_data	= serial_platform_data,
> -	},
> -};
> -
> -static struct platform_device *devices[] __initdata = {
> -	&h7202ps2_device,
> -	&serial_device,
> -};
> -
> -/* Although we have two interrupt lines for the timers, we only have one
> - * status register which clears all pending timer interrupts on reading. So
> - * we have to handle all timer interrupts in one place.
> - */
> -static void
> -h7202_timerx_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -
> -	mask = CPU_REG (TIMER_VIRT, TIMER_TOPSTAT);
> -
> -	if ( mask & TSTAT_T0INT ) {
> -		timer_tick();
> -		if( mask == TSTAT_T0INT )
> -			return;
> -	}
> -
> -	mask >>= 1;
> -	irq = IRQ_TIMER1;
> -	while (mask) {
> -		if (mask & 1)
> -			generic_handle_irq(irq);
> -		irq++;
> -		mask >>= 1;
> -	}
> -}
> -
> -/*
> - * Timer interrupt handler
> - */
> -static irqreturn_t
> -h7202_timer_interrupt(int irq, void *dev_id)
> -{
> -	h7202_timerx_demux_handler(0, NULL);
> -	return IRQ_HANDLED;
> -}
> -
> -/*
> - * mask multiplexed timer IRQs
> - */
> -static void inline __mask_timerx_irq(unsigned int irq)
> -{
> -	unsigned int bit;
> -	bit = 2 << ((irq == IRQ_TIMER64B) ? 4 : (irq - IRQ_TIMER1));
> -	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) &= ~bit;
> -}
> -
> -static void inline mask_timerx_irq(struct irq_data *d)
> -{
> -	__mask_timerx_irq(d->irq);
> -}
> -
> -/*
> - * unmask multiplexed timer IRQs
> - */
> -static void inline unmask_timerx_irq(struct irq_data *d)
> -{
> -	unsigned int bit;
> -	bit = 2 << ((d->irq == IRQ_TIMER64B) ? 4 : (d->irq - IRQ_TIMER1));
> -	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) |= bit;
> -}
> -
> -static struct irq_chip h7202_timerx_chip = {
> -	.irq_ack = mask_timerx_irq,
> -	.irq_mask = mask_timerx_irq,
> -	.irq_unmask = unmask_timerx_irq,
> -};
> -
> -static struct irqaction h7202_timer_irq = {
> -	.name		= "h7202 Timer Tick",
> -	.flags		= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
> -	.handler	= h7202_timer_interrupt,
> -};
> -
> -/*
> - * Setup TIMER0 as system timer
> - */
> -void __init h7202_timer_init(void)
> -{
> -	arch_gettimeoffset = h720x_gettimeoffset;
> -
> -	CPU_REG (TIMER_VIRT, TM0_PERIOD) = LATCH;
> -	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_RESET;
> -	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_REPEAT | TM_START;
> -	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) = ENABLE_TM0_INTR | TIMER_ENABLE_BIT;
> -
> -	setup_irq(IRQ_TIMER0, &h7202_timer_irq);
> -}
> -
> -void __init h7202_init_irq (void)
> -{
> -	int 	irq;
> -
> -	CPU_REG (GPIO_E_VIRT, GPIO_MASK) = 0x0;
> -
> -	for (irq = IRQ_TIMER1;
> -	                  irq < IRQ_CHAINED_TIMERX(NR_TIMERX_IRQS); irq++) {
> -		__mask_timerx_irq(irq);
> -		irq_set_chip_and_handler(irq, &h7202_timerx_chip,
> -					 handle_edge_irq);
> -		set_irq_flags(irq, IRQF_VALID );
> -	}
> -	irq_set_chained_handler(IRQ_TIMERX, h7202_timerx_demux_handler);
> -
> -	h720x_init_irq();
> -}
> -
> -void __init init_hw_h7202(void)
> -{
> -	/* Enable clocks */
> -	CPU_REG (PMU_BASE, PMU_PLL_CTRL) |= PLL_2_EN | PLL_1_EN | PLL_3_MUTE;
> -
> -	CPU_REG (SERIAL0_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
> -	CPU_REG (SERIAL1_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
> -#ifdef CONFIG_H7202_SERIAL23
> -	CPU_REG (SERIAL2_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
> -	CPU_REG (SERIAL3_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
> -	CPU_IO (GPIO_AMULSEL) = AMULSEL_USIN2 | AMULSEL_USOUT2 |
> -	                        AMULSEL_USIN3 | AMULSEL_USOUT3;
> -#endif
> -	(void) platform_add_devices(devices, ARRAY_SIZE(devices));
> -}
> diff --git a/arch/arm/mach-h720x/h7201-eval.c b/arch/arm/mach-h720x/h7201-eval.c
> deleted file mode 100644
> index 4fdeb68..0000000
> --- a/arch/arm/mach-h720x/h7201-eval.c
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/h7201-eval.c
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * Architecture specific stuff for Hynix GMS30C7201 development board
> - *
> - * 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.
> - *
> - */
> -
> -#include <linux/init.h>
> -#include <linux/kernel.h>
> -#include <linux/types.h>
> -#include <linux/string.h>
> -#include <linux/device.h>
> -
> -#include <asm/setup.h>
> -#include <asm/types.h>
> -#include <asm/mach-types.h>
> -#include <asm/page.h>
> -#include <asm/mach/arch.h>
> -#include <mach/hardware.h>
> -#include "common.h"
> -
> -MACHINE_START(H7201, "Hynix GMS30C7201")
> -	/* Maintainer: Robert Schwebel, Pengutronix */
> -	.atag_offset	= 0x1000,
> -	.map_io		= h720x_map_io,
> -	.init_irq	= h720x_init_irq,
> -	.init_time	= h7201_timer_init,
> -	.dma_zone_size	= SZ_256M,
> -	.restart	= h720x_restart,
> -MACHINE_END
> diff --git a/arch/arm/mach-h720x/h7202-eval.c b/arch/arm/mach-h720x/h7202-eval.c
> deleted file mode 100644
> index f68e967..0000000
> --- a/arch/arm/mach-h720x/h7202-eval.c
> +++ /dev/null
> @@ -1,81 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/h7202-eval.c
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *		 2004 Sascha Hauer <s.hauer@pengutronix.de>
> - *
> - * Architecture specific stuff for Hynix HMS30C7202 development board
> - *
> - * 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.
> - *
> - */
> -
> -#include <linux/init.h>
> -#include <linux/kernel.h>
> -#include <linux/types.h>
> -#include <linux/string.h>
> -#include <linux/platform_device.h>
> -
> -#include <asm/setup.h>
> -#include <asm/types.h>
> -#include <asm/mach-types.h>
> -#include <asm/page.h>
> -#include <asm/mach/arch.h>
> -#include <mach/irqs.h>
> -#include <mach/hardware.h>
> -#include "common.h"
> -
> -static struct resource cirrus_resources[] = {
> -	[0] = {
> -		.start	= ETH0_PHYS + 0x300,
> -		.end	= ETH0_PHYS + 0x300 + 0x10,
> -		.flags	= IORESOURCE_MEM,
> -	},
> -	[1] = {
> -		.start	= IRQ_CHAINED_GPIOB(8),
> -		.end	= IRQ_CHAINED_GPIOB(8),
> -		.flags	= IORESOURCE_IRQ,
> -	},
> -};
> -
> -static struct platform_device cirrus_device = {
> -	.name		= "cirrus-cs89x0",
> -	.id		= -1,
> -	.num_resources	= ARRAY_SIZE(cirrus_resources),
> -	.resource	= cirrus_resources,
> -};
> -
> -static struct platform_device *devices[] __initdata = {
> -	&cirrus_device,
> -};
> -
> -/*
> - * Hardware init. This is called early in initcalls
> - * Place pin inits here. So you avoid adding ugly
> - * #ifdef stuff to common drivers.
> - * Use this only, if your bootloader is not able
> - * to initialize the pins proper.
> - */
> -static void __init init_eval_h7202(void)
> -{
> -	init_hw_h7202();
> -	(void) platform_add_devices(devices, ARRAY_SIZE(devices));
> -
> -	/* Enable interrupt on portb bit 8 (ethernet) */
> -	CPU_REG (GPIO_B_VIRT, GPIO_POL) &= ~(1 << 8);
> -	CPU_REG (GPIO_B_VIRT, GPIO_EN) |= (1 << 8);
> -}
> -
> -MACHINE_START(H7202, "Hynix HMS30C7202")
> -	/* Maintainer: Robert Schwebel, Pengutronix */
> -	.atag_offset	= 0x100,
> -	.map_io		= h720x_map_io,
> -	.init_irq	= h7202_init_irq,
> -	.init_time	= h7202_timer_init,
> -	.init_machine	= init_eval_h7202,
> -	.dma_zone_size	= SZ_256M,
> -	.restart	= h720x_restart,
> -MACHINE_END
> diff --git a/arch/arm/mach-h720x/include/mach/boards.h b/arch/arm/mach-h720x/include/mach/boards.h
> deleted file mode 100644
> index 38b8e0d..0000000
> --- a/arch/arm/mach-h720x/include/mach/boards.h
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/boards.h
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *
> - * This file contains the board specific defines for various devices
> - *
> - * 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.
> - */
> -
> -#ifndef __ASM_ARCH_HARDWARE_INCMACH_H
> -#error Do not include this file directly. Include asm/hardware.h instead !
> -#endif
> -
> -/* Hynix H7202 developer board specific device defines */
> -#ifdef CONFIG_ARCH_H7202
> -
> -/* FLASH */
> -#define H720X_FLASH_VIRT	0xd0000000
> -#define H720X_FLASH_PHYS	0x00000000
> -#define H720X_FLASH_SIZE	0x02000000
> -
> -/* onboard LAN controller */
> -# define ETH0_PHYS		0x08000000
> -
> -/* Touch screen defines */
> -/* GPIO Port */
> -#define PEN_GPIO		GPIO_B_VIRT
> -/* Bitmask for pen down interrupt */
> -#define PEN_INT_BIT		(1<<7)
> -/* Bitmask for pen up interrupt */
> -#define PEN_ENA_BIT		(1<<6)
> -/* pen up interrupt */
> -#define IRQ_PEN			IRQ_MUX_GPIOB(7)
> -
> -#endif
> -
> -/* Hynix H7201 developer board specific device defines */
> -#if defined (CONFIG_ARCH_H7201)
> -/* ROM DISK SPACE */
> -#define ROM_DISK_BASE           0xc1800000
> -#define ROM_DISK_START          0x41800000
> -#define ROM_DISK_SIZE           0x00700000
> -
> -/* SRAM DISK SPACE */
> -#define SRAM_DISK_BASE          0xf1000000
> -#define SRAM_DISK_START         0x04000000
> -#define SRAM_DISK_SIZE          0x00400000
> -#endif
> -
> diff --git a/arch/arm/mach-h720x/include/mach/debug-macro.S b/arch/arm/mach-h720x/include/mach/debug-macro.S
> deleted file mode 100644
> index 8a46157..0000000
> --- a/arch/arm/mach-h720x/include/mach/debug-macro.S
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -/* arch/arm/mach-h720x/include/mach/debug-macro.S
> - *
> - * Debugging macro include header
> - *
> - *  Copyright (C) 1994-1999 Russell King
> - *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
> - *
> - * 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.
> - *
> -*/
> -
> -#include <mach/hardware.h>
> -
> -		.equ    io_virt, IO_VIRT
> -		.equ    io_phys, IO_PHYS
> -
> -		.macro  addruart, rp, rv, tmp
> -		mov     \rp, #0x00020000	@ UART1
> -		add     \rv, \rp, #io_virt	@ virtual address
> -		add     \rp, \rp, #io_phys	@ physical base address
> -		.endm
> -
> -		.macro  senduart,rd,rx
> -		str     \rd, [\rx, #0x0]        @ UARTDR
> -
> -		.endm
> -
> -		.macro  waituart,rd,rx
> -1001:		ldr     \rd, [\rx, #0x18]       @ UARTFLG
> -		tst     \rd, #1 << 5	       @ UARTFLGUTXFF - 1 when full
> -		bne     1001b
> -		.endm
> -
> -		.macro  busyuart,rd,rx
> -1001:		ldr     \rd, [\rx, #0x18]       @ UARTFLG
> -		tst     \rd, #1 << 3	       @ UARTFLGUBUSY - 1 when busy
> -		bne     1001b
> -		.endm
> diff --git a/arch/arm/mach-h720x/include/mach/entry-macro.S b/arch/arm/mach-h720x/include/mach/entry-macro.S
> deleted file mode 100644
> index 75267fa..0000000
> --- a/arch/arm/mach-h720x/include/mach/entry-macro.S
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/entry-macro.S
> - *
> - * Low-level IRQ helper macros for Hynix HMS720x based platforms
> - *
> - * This file is licensed under  the terms of the GNU General Public
> - * License version 2. This program is licensed "as is" without any
> - * warranty of any kind, whether express or implied.
> - */
> -
> -		.macro  get_irqnr_preamble, base, tmp
> -		.endm
> -
> -		.macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
> -#if defined (CONFIG_CPU_H7201) || defined (CONFIG_CPU_H7202)
> -		@ we could use the id register on H7202, but this is not
> -		@ properly updated when we come back from asm_do_irq
> -		@ without a previous return from interrupt
> -		@ (see loops below in irq_svc, irq_usr)
> -		@ We see unmasked pending ints only, as the masked pending ints
> -		@ are not visible here
> -
> -		mov     \base, #0xf0000000	       @ base register
> -		orr     \base, \base, #0x24000	       @ irqbase
> -		ldr     \irqstat, [\base, #0x04]        @ get interrupt status
> -#if defined (CONFIG_CPU_H7201)
> -		ldr	\tmp, =0x001fffff
> -#else
> -		mvn     \tmp, #0xc0000000
> -#endif
> -		and     \irqstat, \irqstat, \tmp        @ mask out unused ints
> -		mov     \irqnr, #0
> -
> -		mov     \tmp, #0xff00
> -		orr     \tmp, \tmp, #0xff
> -		tst     \irqstat, \tmp
> -		addeq   \irqnr, \irqnr, #16
> -		moveq   \irqstat, \irqstat, lsr #16
> -		tst     \irqstat, #255
> -		addeq   \irqnr, \irqnr, #8
> -		moveq   \irqstat, \irqstat, lsr #8
> -		tst     \irqstat, #15
> -		addeq   \irqnr, \irqnr, #4
> -		moveq   \irqstat, \irqstat, lsr #4
> -		tst     \irqstat, #3
> -		addeq   \irqnr, \irqnr, #2
> -		moveq   \irqstat, \irqstat, lsr #2
> -		tst     \irqstat, #1
> -		addeq   \irqnr, \irqnr, #1
> -		moveq   \irqstat, \irqstat, lsr #1
> -		tst     \irqstat, #1		       @ bit 0 should be set
> -		.endm
> -
> -#else
> -#error hynix processor selection missmatch
> -#endif
> -
> diff --git a/arch/arm/mach-h720x/include/mach/h7201-regs.h b/arch/arm/mach-h720x/include/mach/h7201-regs.h
> deleted file mode 100644
> index 611b494..0000000
> --- a/arch/arm/mach-h720x/include/mach/h7201-regs.h
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/h7201-regs.h
> - *
> - * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
> - *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *           (C) 2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * This file contains the hardware definitions of the h720x processors
> - *
> - * 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.
> - *
> - * Do not add implementations specific defines here. This files contains
> - * only defines of the onchip peripherals. Add those defines to boards.h,
> - * which is included by this file.
> - */
> -
> -#define SERIAL2_VIRT 		(IO_VIRT + 0x50100)
> -#define SERIAL3_VIRT 		(IO_VIRT + 0x50200)
> -
> -/*
> - * PCMCIA
> - */
> -#define PCMCIA0_ATT_BASE        0xe5000000
> -#define PCMCIA0_ATT_SIZE        0x00200000
> -#define PCMCIA0_ATT_START       0x20000000
> -#define PCMCIA0_MEM_BASE        0xe5200000
> -#define PCMCIA0_MEM_SIZE        0x00200000
> -#define PCMCIA0_MEM_START       0x24000000
> -#define PCMCIA0_IO_BASE         0xe5400000
> -#define PCMCIA0_IO_SIZE         0x00200000
> -#define PCMCIA0_IO_START        0x28000000
> -
> -#define PCMCIA1_ATT_BASE        0xe5600000
> -#define PCMCIA1_ATT_SIZE        0x00200000
> -#define PCMCIA1_ATT_START       0x30000000
> -#define PCMCIA1_MEM_BASE        0xe5800000
> -#define PCMCIA1_MEM_SIZE        0x00200000
> -#define PCMCIA1_MEM_START       0x34000000
> -#define PCMCIA1_IO_BASE         0xe5a00000
> -#define PCMCIA1_IO_SIZE         0x00200000
> -#define PCMCIA1_IO_START        0x38000000
> -
> -#define PRIME3C_BASE            0xf0050000
> -#define PRIME3C_SIZE            0x00001000
> -#define PRIME3C_START           0x10000000
> -
> -/* VGA Controller */
> -#define VGA_RAMBASE 		0x50
> -#define VGA_TIMING0 		0x60
> -#define VGA_TIMING1 		0x64
> -#define VGA_TIMING2 		0x68
> -#define VGA_TIMING3 		0x6c
> -
> -#define LCD_CTRL_VGA_ENABLE   	0x00000100
> -#define LCD_CTRL_VGA_BPP_MASK 	0x00000600
> -#define LCD_CTRL_VGA_4BPP    	0x00000000
> -#define LCD_CTRL_VGA_8BPP    	0x00000200
> -#define LCD_CTRL_VGA_16BPP   	0x00000300
> -#define LCD_CTRL_SHARE_DMA    	0x00000800
> -#define LCD_CTRL_VDE          	0x00100000
> -#define LCD_CTRL_LPE          	0x00400000	/* LCD Power enable */
> -#define LCD_CTRL_BLE          	0x00800000	/* LCD backlight enable */
> -
> -#define VGA_PALETTE_BASE	(IO_VIRT + 0x10800)
> diff --git a/arch/arm/mach-h720x/include/mach/h7202-regs.h b/arch/arm/mach-h720x/include/mach/h7202-regs.h
> deleted file mode 100644
> index 17c12eb..0000000
> --- a/arch/arm/mach-h720x/include/mach/h7202-regs.h
> +++ /dev/null
> @@ -1,155 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/h7202-regs.h
> - *
> - * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
> - *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *           (C) 2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * This file contains the hardware definitions of the h720x processors
> - *
> - * 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.
> - *
> - * Do not add implementations specific defines here. This files contains
> - * only defines of the onchip peripherals. Add those defines to boards.h,
> - * which is included by this file.
> - */
> -
> -#define SERIAL2_OFS		0x2d000
> -#define SERIAL2_BASE		(IO_PHYS + SERIAL2_OFS)
> -#define SERIAL2_VIRT 		(IO_VIRT + SERIAL2_OFS)
> -#define SERIAL3_OFS		0x2e000
> -#define SERIAL3_BASE		(IO_PHYS + SERIAL3_OFS)
> -#define SERIAL3_VIRT 		(IO_VIRT + SERIAL3_OFS)
> -
> -/* Matrix Keyboard Controller */
> -#define KBD_VIRT		(IO_VIRT + 0x22000)
> -#define KBD_KBCR		0x00
> -#define KBD_KBSC		0x04
> -#define KBD_KBTR		0x08
> -#define KBD_KBVR0		0x0C
> -#define KBD_KBVR1		0x10
> -#define KBD_KBSR		0x18
> -
> -#define KBD_KBCR_SCANENABLE	(1 << 7)
> -#define KBD_KBCR_NPOWERDOWN	(1 << 2)
> -#define KBD_KBCR_CLKSEL_MASK	(3)
> -#define KBD_KBCR_CLKSEL_PCLK2	0x0
> -#define KBD_KBCR_CLKSEL_PCLK128	0x1
> -#define KBD_KBCR_CLKSEL_PCLK256	0x2
> -#define KBD_KBCR_CLKSEL_PCLK512	0x3
> -
> -#define KBD_KBSR_INTR		(1 << 0)
> -#define KBD_KBSR_WAKEUP		(1 << 1)
> -
> -/* USB device controller */
> -
> -#define USBD_BASE		(IO_VIRT + 0x12000)
> -#define USBD_LENGTH		0x3C
> -
> -#define USBD_GCTRL		0x00
> -#define USBD_EPCTRL		0x04
> -#define USBD_INTMASK		0x08
> -#define USBD_INTSTAT		0x0C
> -#define USBD_PWR		0x10
> -#define USBD_DMARXTX		0x14
> -#define USBD_DEVID		0x18
> -#define USBD_DEVCLASS		0x1C
> -#define USBD_INTCLASS		0x20
> -#define USBD_SETUP0		0x24
> -#define USBD_SETUP1		0x28
> -#define USBD_ENDP0RD		0x2C
> -#define USBD_ENDP0WT		0x30
> -#define USBD_ENDP1RD		0x34
> -#define USBD_ENDP2WT		0x38
> -
> -/* PS/2 port */
> -#define PSDATA 0x00
> -#define PSSTAT 0x04
> -#define PSSTAT_TXEMPTY (1<<0)
> -#define PSSTAT_TXBUSY (1<<1)
> -#define PSSTAT_RXFULL (1<<2)
> -#define PSSTAT_RXBUSY (1<<3)
> -#define PSSTAT_CLKIN (1<<4)
> -#define PSSTAT_DATAIN (1<<5)
> -#define PSSTAT_PARITY (1<<6)
> -
> -#define PSCONF 0x08
> -#define PSCONF_ENABLE (1<<0)
> -#define PSCONF_TXINTEN (1<<2)
> -#define PSCONF_RXINTEN (1<<3)
> -#define PSCONF_FORCECLKLOW (1<<4)
> -#define PSCONF_FORCEDATLOW (1<<5)
> -#define PSCONF_LCE (1<<6)
> -
> -#define PSINTR 0x0C
> -#define PSINTR_TXINT (1<<0)
> -#define PSINTR_RXINT (1<<1)
> -#define PSINTR_PAR (1<<2)
> -#define PSINTR_RXTO (1<<3)
> -#define PSINTR_TXTO (1<<4)
> -
> -#define PSTDLO 0x10 /* clk low before start transmission */
> -#define PSTPRI 0x14 /* PRI clock */
> -#define PSTXMT 0x18 /* maximum transmission time */
> -#define PSTREC 0x20 /* maximum receive time */
> -#define PSPWDN 0x3c
> -
> -/* ADC converter */
> -#define ADC_BASE 		(IO_VIRT + 0x29000)
> -#define ADC_CR 			0x00
> -#define ADC_TSCTRL 		0x04
> -#define ADC_BT_CTRL 		0x08
> -#define ADC_MC_CTRL		0x0C
> -#define ADC_STATUS		0x10
> -
> -/* ADC control register bits */
> -#define ADC_CR_PW_CTRL 		0x80
> -#define ADC_CR_DIRECTC		0x04
> -#define ADC_CR_CONTIME_NO	0x00
> -#define ADC_CR_CONTIME_2	0x04
> -#define ADC_CR_CONTIME_4	0x08
> -#define ADC_CR_CONTIME_ADE	0x0c
> -#define ADC_CR_LONGCALTIME	0x01
> -
> -/* ADC touch panel register bits */
> -#define ADC_TSCTRL_ENABLE 	0x80
> -#define ADC_TSCTRL_INTR   	0x40
> -#define	ADC_TSCTRL_SWBYPSS	0x20
> -#define ADC_TSCTRL_SWINVT	0x10
> -#define ADC_TSCTRL_S400   	0x03
> -#define ADC_TSCTRL_S200   	0x02
> -#define ADC_TSCTRL_S100   	0x01
> -#define ADC_TSCTRL_S50    	0x00
> -
> -/* ADC Interrupt Status Register bits */
> -#define ADC_STATUS_TS_BIT	0x80
> -#define ADC_STATUS_MBT_BIT	0x40
> -#define ADC_STATUS_BBT_BIT	0x20
> -#define ADC_STATUS_MIC_BIT	0x10
> -
> -/* Touch data registers */
> -#define ADC_TS_X0X1  		0x30
> -#define ADC_TS_X2X3		0x34
> -#define ADC_TS_Y0Y1		0x38
> -#define ADC_TS_Y2Y3  		0x3c
> -#define ADC_TS_X4X5  		0x40
> -#define ADC_TS_X6X7  		0x44
> -#define ADC_TS_Y4Y5		0x48
> -#define ADC_TS_Y6Y7		0x50
> -
> -/* battery data */
> -#define ADC_MB_DATA		0x54
> -#define ADC_BB_DATA		0x58
> -
> -/* Sound data register */
> -#define ADC_SD_DAT0 		0x60
> -#define ADC_SD_DAT1		0x64
> -#define ADC_SD_DAT2		0x68
> -#define ADC_SD_DAT3		0x6c
> -#define ADC_SD_DAT4		0x70
> -#define ADC_SD_DAT5		0x74
> -#define ADC_SD_DAT6		0x78
> -#define ADC_SD_DAT7		0x7c
> diff --git a/arch/arm/mach-h720x/include/mach/hardware.h b/arch/arm/mach-h720x/include/mach/hardware.h
> deleted file mode 100644
> index c55a52c..0000000
> --- a/arch/arm/mach-h720x/include/mach/hardware.h
> +++ /dev/null
> @@ -1,190 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/hardware.h
> - *
> - * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
> - *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *
> - * This file contains the hardware definitions of the h720x processors
> - *
> - * 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.
> - *
> - * Do not add implementations specific defines here. This files contains
> - * only defines of the onchip peripherals. Add those defines to boards.h,
> - * which is included by this file.
> - */
> -
> -#ifndef __ASM_ARCH_HARDWARE_H
> -#define __ASM_ARCH_HARDWARE_H
> -
> -#define IOCLK (3686400L)
> -
> -/* Onchip peripherals */
> -
> -#define IO_VIRT			0xf0000000	/* IO peripherals */
> -#define IO_PHYS			0x80000000
> -#define IO_SIZE			0x00050000
> -
> -#ifdef CONFIG_CPU_H7202
> -#include "h7202-regs.h"
> -#elif defined CONFIG_CPU_H7201
> -#include "h7201-regs.h"
> -#else
> -#error machine definition mismatch
> -#endif
> -
> -/* Macro to access the CPU IO */
> -#define CPU_IO(x) (*(volatile u32*)(x))
> -
> -/* Macro to access general purpose regs (base, offset) */
> -#define CPU_REG(x,y) CPU_IO(x+y)
> -
> -/* Macro to access irq related regs */
> -#define IRQ_REG(x) CPU_REG(IRQC_VIRT,x)
> -
> -/* CPU registers */
> -/* general purpose I/O */
> -#define GPIO_VIRT(x)		(IO_VIRT + 0x23000 + ((x)<<5))
> -#define GPIO_A_VIRT		(GPIO_VIRT(0))
> -#define GPIO_B_VIRT		(GPIO_VIRT(1))
> -#define GPIO_C_VIRT		(GPIO_VIRT(2))
> -#define GPIO_D_VIRT		(GPIO_VIRT(3))
> -#define GPIO_E_VIRT		(GPIO_VIRT(4))
> -#define GPIO_AMULSEL		(GPIO_VIRT(0) + 0xA4)
> -
> -#define AMULSEL_USIN2	(1<<5)
> -#define AMULSEL_USOUT2	(1<<6)
> -#define AMULSEL_USIN3	(1<<13)
> -#define AMULSEL_USOUT3	(1<<14)
> -#define AMULSEL_IRDIN	(1<<15)
> -#define AMULSEL_IRDOUT	(1<<7)
> -
> -/* Register offsets general purpose I/O */
> -#define GPIO_DATA		0x00
> -#define GPIO_DIR		0x04
> -#define GPIO_MASK		0x08
> -#define GPIO_STAT		0x0C
> -#define GPIO_EDGE		0x10
> -#define GPIO_CLR		0x14
> -#define GPIO_POL		0x18
> -#define GPIO_EN			0x1C
> -
> -/*interrupt controller */
> -#define IRQC_VIRT		(IO_VIRT + 0x24000)
> -/* register offset interrupt controller */
> -#define IRQC_IER		0x00
> -#define IRQC_ISR		0x04
> -
> -/* timer unit */
> -#define TIMER_VIRT		(IO_VIRT + 0x25000)
> -/* Register offsets timer unit */
> -#define TM0_PERIOD   		0x00
> -#define TM0_COUNT    		0x08
> -#define TM0_CTRL     		0x10
> -#define TM1_PERIOD   		0x20
> -#define TM1_COUNT    		0x28
> -#define TM1_CTRL     		0x30
> -#define TM2_PERIOD   		0x40
> -#define TM2_COUNT    		0x48
> -#define TM2_CTRL     		0x50
> -#define TIMER_TOPCTRL		0x60
> -#define TIMER_TOPSTAT		0x64
> -#define T64_COUNTL		0x80
> -#define T64_COUNTH		0x84
> -#define T64_CTRL		0x88
> -#define T64_BASEL		0x94
> -#define T64_BASEH		0x98
> -/* Bitmaks timer unit TOPSTAT reg */
> -#define TSTAT_T0INT		0x1
> -#define TSTAT_T1INT		0x2
> -#define TSTAT_T2INT		0x4
> -#define TSTAT_T3INT		0x8
> -/* Bit description of TMx_CTRL register */
> -#define TM_START  		0x1
> -#define TM_REPEAT 		0x2
> -#define TM_RESET  		0x4
> -/* Bit description of TIMER_CTRL register */
> -#define ENABLE_TM0_INTR  	0x1
> -#define ENABLE_TM1_INTR  	0x2
> -#define ENABLE_TM2_INTR  	0x4
> -#define TIMER_ENABLE_BIT 	0x8
> -#define ENABLE_TIMER64   	0x10
> -#define ENABLE_TIMER64_INT	0x20
> -
> -/* PMU & PLL */
> -#define PMU_BASE 		(IO_VIRT + 0x1000)
> -#define PMU_MODE		0x00
> -#define PMU_STAT   		0x20
> -#define PMU_PLL_CTRL 		0x28
> -
> -/* PMU Mode bits */
> -#define PMU_MODE_SLOW		0x00
> -#define PMU_MODE_RUN		0x01
> -#define PMU_MODE_IDLE		0x02
> -#define PMU_MODE_SLEEP		0x03
> -#define PMU_MODE_INIT		0x04
> -#define PMU_MODE_DEEPSLEEP	0x07
> -#define PMU_MODE_WAKEUP		0x08
> -
> -/* PMU ... */
> -#define PLL_2_EN		0x8000
> -#define PLL_1_EN		0x4000
> -#define PLL_3_MUTE		0x0080
> -
> -/* Control bits for PMU/ PLL */
> -#define PMU_WARMRESET		0x00010000
> -#define PLL_CTRL_MASK23		0x000080ff
> -
> -/* LCD Controller */
> -#define LCD_BASE 		(IO_VIRT + 0x10000)
> -#define LCD_CTRL 		0x00
> -#define LCD_STATUS		0x04
> -#define LCD_STATUS_M		0x08
> -#define LCD_INTERRUPT		0x0C
> -#define LCD_DBAR		0x10
> -#define LCD_DCAR		0x14
> -#define LCD_TIMING0 		0x20
> -#define LCD_TIMING1 		0x24
> -#define LCD_TIMING2 		0x28
> -#define LCD_TEST		0x40
> -
> -/* LCD Control Bits */
> -#define LCD_CTRL_LCD_ENABLE   	0x00000001
> -/* Bits per pixel */
> -#define LCD_CTRL_LCD_BPP_MASK 	0x00000006
> -#define LCD_CTRL_LCD_4BPP    	0x00000000
> -#define LCD_CTRL_LCD_8BPP    	0x00000002
> -#define LCD_CTRL_LCD_16BPP   	0x00000004
> -#define LCD_CTRL_LCD_BW		0x00000008
> -#define LCD_CTRL_LCD_TFT	0x00000010
> -#define LCD_CTRL_BGR		0x00001000
> -#define LCD_CTRL_LCD_VCOMP	0x00080000
> -#define LCD_CTRL_LCD_MONO8	0x00200000
> -#define LCD_CTRL_LCD_PWR	0x00400000
> -#define LCD_CTRL_LCD_BLE	0x00800000
> -#define LCD_CTRL_LDBUSEN	0x01000000
> -
> -/* Palette */
> -#define LCD_PALETTE_BASE 	(IO_VIRT + 0x10400)
> -
> -/* Serial ports */
> -#define SERIAL0_OFS		0x20000
> -#define SERIAL0_VIRT 		(IO_VIRT + SERIAL0_OFS)
> -#define SERIAL0_BASE		(IO_PHYS + SERIAL0_OFS)
> -
> -#define SERIAL1_OFS		0x21000
> -#define SERIAL1_VIRT 		(IO_VIRT + SERIAL1_OFS)
> -#define SERIAL1_BASE		(IO_PHYS + SERIAL1_OFS)
> -
> -#define SERIAL_ENABLE		0x30
> -#define SERIAL_ENABLE_EN	(1<<0)
> -
> -/* General defines to pacify gcc */
> -
> -#define __ASM_ARCH_HARDWARE_INCMACH_H
> -#include "boards.h"
> -#undef __ASM_ARCH_HARDWARE_INCMACH_H
> -
> -#endif				/* __ASM_ARCH_HARDWARE_H */
> diff --git a/arch/arm/mach-h720x/include/mach/irqs.h b/arch/arm/mach-h720x/include/mach/irqs.h
> deleted file mode 100644
> index 430a92b..0000000
> --- a/arch/arm/mach-h720x/include/mach/irqs.h
> +++ /dev/null
> @@ -1,116 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/irqs.h
> - *
> - * Copyright (C) 2000 Jungjun Kim
> - *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *
> - */
> -
> -#ifndef __ASM_ARCH_IRQS_H
> -#define __ASM_ARCH_IRQS_H
> -
> -#if defined (CONFIG_CPU_H7201)
> -
> -#define IRQ_PMU		0		/* 0x000001 */
> -#define IRQ_DMA		1 		/* 0x000002 */
> -#define IRQ_LCD		2		/* 0x000004 */
> -#define IRQ_VGA		3 		/* 0x000008 */
> -#define IRQ_PCMCIA1 	4 		/* 0x000010 */
> -#define IRQ_PCMCIA2 	5 		/* 0x000020 */
> -#define IRQ_AFE		6 		/* 0x000040 */
> -#define IRQ_AIC		7 		/* 0x000080 */
> -#define IRQ_KEYBOARD 	8 		/* 0x000100 */
> -#define IRQ_TIMER0	9 		/* 0x000200 */
> -#define IRQ_RTC		10		/* 0x000400 */
> -#define IRQ_SOUND	11		/* 0x000800 */
> -#define IRQ_USB		12		/* 0x001000 */
> -#define IRQ_IrDA 	13		/* 0x002000 */
> -#define IRQ_UART0	14		/* 0x004000 */
> -#define IRQ_UART1	15		/* 0x008000 */
> -#define IRQ_SPI		16		/* 0x010000 */
> -#define IRQ_GPIOA 	17		/* 0x020000 */
> -#define IRQ_GPIOB	18		/* 0x040000 */
> -#define IRQ_GPIOC	19		/* 0x080000 */
> -#define IRQ_GPIOD	20		/* 0x100000 */
> -#define IRQ_CommRX	21		/* 0x200000 */
> -#define IRQ_CommTX	22		/* 0x400000 */
> -#define IRQ_Soft	23		/* 0x800000 */
> -
> -#define NR_GLBL_IRQS	24
> -
> -#define IRQ_CHAINED_GPIOA(x)  (NR_GLBL_IRQS + x)
> -#define IRQ_CHAINED_GPIOB(x)  (IRQ_CHAINED_GPIOA(32) + x)
> -#define IRQ_CHAINED_GPIOC(x)  (IRQ_CHAINED_GPIOB(32) + x)
> -#define IRQ_CHAINED_GPIOD(x)  (IRQ_CHAINED_GPIOC(32) + x)
> -#define NR_IRQS               IRQ_CHAINED_GPIOD(32)
> -
> -/* Enable mask for multiplexed interrupts */
> -#define IRQ_ENA_MUX	(1<<IRQ_GPIOA) | (1<<IRQ_GPIOB) \
> -			| (1<<IRQ_GPIOC) | (1<<IRQ_GPIOD)
> -
> -
> -#elif defined (CONFIG_CPU_H7202)
> -
> -#define IRQ_PMU		0		/* 0x00000001 */
> -#define IRQ_DMA		1		/* 0x00000002 */
> -#define IRQ_LCD		2		/* 0x00000004 */
> -#define IRQ_SOUND	3		/* 0x00000008 */
> -#define IRQ_I2S		4		/* 0x00000010 */
> -#define IRQ_USB 	5		/* 0x00000020 */
> -#define IRQ_MMC 	6		/* 0x00000040 */
> -#define IRQ_RTC 	7		/* 0x00000080 */
> -#define IRQ_UART0 	8		/* 0x00000100 */
> -#define IRQ_UART1 	9		/* 0x00000200 */
> -#define IRQ_UART2 	10		/* 0x00000400 */
> -#define IRQ_UART3 	11		/* 0x00000800 */
> -#define IRQ_KBD 	12		/* 0x00001000 */
> -#define IRQ_PS2 	13		/* 0x00002000 */
> -#define IRQ_AIC 	14		/* 0x00004000 */
> -#define IRQ_TIMER0 	15		/* 0x00008000 */
> -#define IRQ_TIMERX 	16		/* 0x00010000 */
> -#define IRQ_WDT 	17		/* 0x00020000 */
> -#define IRQ_CAN0 	18		/* 0x00040000 */
> -#define IRQ_CAN1 	19		/* 0x00080000 */
> -#define IRQ_EXT0 	20		/* 0x00100000 */
> -#define IRQ_EXT1 	21		/* 0x00200000 */
> -#define IRQ_GPIOA 	22		/* 0x00400000 */
> -#define IRQ_GPIOB 	23		/* 0x00800000 */
> -#define IRQ_GPIOC 	24		/* 0x01000000 */
> -#define IRQ_GPIOD 	25		/* 0x02000000 */
> -#define IRQ_GPIOE 	26		/* 0x04000000 */
> -#define IRQ_COMMRX 	27		/* 0x08000000 */
> -#define IRQ_COMMTX 	28		/* 0x10000000 */
> -#define IRQ_SMC 	29		/* 0x20000000 */
> -#define IRQ_Soft 	30		/* 0x40000000 */
> -#define IRQ_RESERVED1 	31		/* 0x80000000 */
> -#define NR_GLBL_IRQS	32
> -
> -#define NR_TIMERX_IRQS	3
> -
> -#define IRQ_CHAINED_GPIOA(x)  (NR_GLBL_IRQS + x)
> -#define IRQ_CHAINED_GPIOB(x)  (IRQ_CHAINED_GPIOA(32) + x)
> -#define IRQ_CHAINED_GPIOC(x)  (IRQ_CHAINED_GPIOB(32) + x)
> -#define IRQ_CHAINED_GPIOD(x)  (IRQ_CHAINED_GPIOC(32) + x)
> -#define IRQ_CHAINED_GPIOE(x)  (IRQ_CHAINED_GPIOD(32) + x)
> -#define IRQ_CHAINED_TIMERX(x) (IRQ_CHAINED_GPIOE(32) + x)
> -#define IRQ_TIMER1            (IRQ_CHAINED_TIMERX(0))
> -#define IRQ_TIMER2            (IRQ_CHAINED_TIMERX(1))
> -#define IRQ_TIMER64B          (IRQ_CHAINED_TIMERX(2))
> -
> -#define NR_IRQS		(IRQ_CHAINED_TIMERX(NR_TIMERX_IRQS))
> -
> -/* Enable mask for multiplexed interrupts */
> -#define IRQ_ENA_MUX	(1<<IRQ_TIMERX) | (1<<IRQ_GPIOA) | (1<<IRQ_GPIOB) | \
> -			(1<<IRQ_GPIOC) 	| (1<<IRQ_GPIOD) | (1<<IRQ_GPIOE) | \
> -			(1<<IRQ_TIMERX)
> -
> -#else
> -#error cpu definition mismatch
> -#endif
> -
> -/* decode irq number to register number */
> -#define IRQ_TO_REGNO(irq) ((irq - NR_GLBL_IRQS) >> 5)
> -#define IRQ_TO_BIT(irq) (1 << ((irq - NR_GLBL_IRQS) % 32))
> -
> -#endif
> diff --git a/arch/arm/mach-h720x/include/mach/isa-dma.h b/arch/arm/mach-h720x/include/mach/isa-dma.h
> deleted file mode 100644
> index 3eafb3f..0000000
> --- a/arch/arm/mach-h720x/include/mach/isa-dma.h
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/isa-dma.h
> - *
> - * Architecture DMA routes
> - *
> - * Copyright (C) 1997.1998 Russell King
> - */
> -#ifndef __ASM_ARCH_DMA_H
> -#define __ASM_ARCH_DMA_H
> -
> -#if defined (CONFIG_CPU_H7201)
> -#define MAX_DMA_CHANNELS	3
> -#elif defined (CONFIG_CPU_H7202)
> -#define MAX_DMA_CHANNELS	4
> -#else
> -#error processor definition missmatch
> -#endif
> -
> -#endif /* __ASM_ARCH_DMA_H */
> diff --git a/arch/arm/mach-h720x/include/mach/timex.h b/arch/arm/mach-h720x/include/mach/timex.h
> deleted file mode 100644
> index 3f2f447..0000000
> --- a/arch/arm/mach-h720x/include/mach/timex.h
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/timex.h
> - * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
> - *
> - * 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.
> - */
> -
> -#ifndef __ASM_ARCH_TIMEX
> -#define __ASM_ARCH_TIMEX
> -
> -#define CLOCK_TICK_RATE		3686400
> -
> -#endif
> diff --git a/arch/arm/mach-h720x/include/mach/uncompress.h b/arch/arm/mach-h720x/include/mach/uncompress.h
> deleted file mode 100644
> index 43e343c..0000000
> --- a/arch/arm/mach-h720x/include/mach/uncompress.h
> +++ /dev/null
> @@ -1,36 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/uncompress.h
> - *
> - * Copyright (C) 2001-2002 Jungjun Kim
> - */
> -
> -#ifndef __ASM_ARCH_UNCOMPRESS_H
> -#define __ASM_ARCH_UNCOMPRESS_H
> -
> -#include <mach/hardware.h>
> -
> -#define LSR 	0x14
> -#define TEMPTY 	0x40
> -
> -static inline void putc(int c)
> -{
> -	volatile unsigned char *p = (volatile unsigned char *)(IO_PHYS+0x20000);
> -
> -	/* wait until transmit buffer is empty */
> -	while((p[LSR] & TEMPTY) == 0x0)
> -		barrier();
> -
> -	/* write next character */
> -	*p = c;
> -}
> -
> -static inline void flush(void)
> -{
> -}
> -
> -/*
> - * nothing to do
> - */
> -#define arch_decomp_setup()
> -
> -#endif
> -- 
> 1.8.1.2
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 5/6] ARM: kill Hynix h720x platform
  2013-03-14 22:12 ` [PATCH 5/6] ARM: kill Hynix h720x platform Arnd Bergmann
  2013-03-15  5:21   ` Robert Schwebel
@ 2013-03-15  6:13   ` Sascha Hauer
  2013-03-15 12:27   ` Thomas Petazzoni
  2 siblings, 0 replies; 30+ messages in thread
From: Sascha Hauer @ 2013-03-15  6:13 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Mar 14, 2013 at 11:12:57PM +0100, Arnd Bergmann wrote:
> The platform was merged about 10 years ago, and has seen few updates
> for most of the time since. The people that merged the code seem
> no longer interested in it either, so let's remove it now.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Robert Schwebel <r.schwebel@pengutronix.de>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>

Acked-by: Sascha Hauer <s.hauer@pengutronix.de>

Sascha

> ---
>  arch/arm/Kconfig                               |  10 -
>  arch/arm/Makefile                              |   1 -
>  arch/arm/configs/h7201_defconfig               |  27 ---
>  arch/arm/configs/h7202_defconfig               |  47 -----
>  arch/arm/mach-h720x/Kconfig                    |  40 ----
>  arch/arm/mach-h720x/Makefile                   |  16 --
>  arch/arm/mach-h720x/Makefile.boot              |   2 -
>  arch/arm/mach-h720x/common.c                   | 268 -------------------------
>  arch/arm/mach-h720x/common.h                   |  30 ---
>  arch/arm/mach-h720x/cpu-h7201.c                |  57 ------
>  arch/arm/mach-h720x/cpu-h7202.c                | 225 ---------------------
>  arch/arm/mach-h720x/h7201-eval.c               |  38 ----
>  arch/arm/mach-h720x/h7202-eval.c               |  81 --------
>  arch/arm/mach-h720x/include/mach/boards.h      |  53 -----
>  arch/arm/mach-h720x/include/mach/debug-macro.S |  40 ----
>  arch/arm/mach-h720x/include/mach/entry-macro.S |  57 ------
>  arch/arm/mach-h720x/include/mach/h7201-regs.h  |  67 -------
>  arch/arm/mach-h720x/include/mach/h7202-regs.h  | 155 --------------
>  arch/arm/mach-h720x/include/mach/hardware.h    | 190 ------------------
>  arch/arm/mach-h720x/include/mach/irqs.h        | 116 -----------
>  arch/arm/mach-h720x/include/mach/isa-dma.h     |  19 --
>  arch/arm/mach-h720x/include/mach/timex.h       |  15 --
>  arch/arm/mach-h720x/include/mach/uncompress.h  |  36 ----
>  23 files changed, 1590 deletions(-)
>  delete mode 100644 arch/arm/configs/h7201_defconfig
>  delete mode 100644 arch/arm/configs/h7202_defconfig
>  delete mode 100644 arch/arm/mach-h720x/Kconfig
>  delete mode 100644 arch/arm/mach-h720x/Makefile
>  delete mode 100644 arch/arm/mach-h720x/Makefile.boot
>  delete mode 100644 arch/arm/mach-h720x/common.c
>  delete mode 100644 arch/arm/mach-h720x/common.h
>  delete mode 100644 arch/arm/mach-h720x/cpu-h7201.c
>  delete mode 100644 arch/arm/mach-h720x/cpu-h7202.c
>  delete mode 100644 arch/arm/mach-h720x/h7201-eval.c
>  delete mode 100644 arch/arm/mach-h720x/h7202-eval.c
>  delete mode 100644 arch/arm/mach-h720x/include/mach/boards.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-h720x/include/mach/entry-macro.S
>  delete mode 100644 arch/arm/mach-h720x/include/mach/h7201-regs.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/h7202-regs.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/hardware.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/irqs.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/isa-dma.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/timex.h
>  delete mode 100644 arch/arm/mach-h720x/include/mach/uncompress.h
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 9d2e825..26e9251 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -485,14 +485,6 @@ config ARCH_NETX
>  	help
>  	  This enables support for systems based on the Hilscher NetX Soc
>  
> -config ARCH_H720X
> -	bool "Hynix HMS720x-based"
> -	select ARCH_USES_GETTIMEOFFSET
> -	select CPU_ARM720T
> -	select ISA_DMA_API
> -	help
> -	  This enables support for systems based on the Hynix HMS720x
> -
>  config ARCH_IOP13XX
>  	bool "IOP13xx-based"
>  	depends on MMU
> @@ -1041,8 +1033,6 @@ source "arch/arm/mach-ep93xx/Kconfig"
>  
>  source "arch/arm/mach-footbridge/Kconfig"
>  
> -source "arch/arm/mach-h720x/Kconfig"
> -
>  source "arch/arm/mach-highbank/Kconfig"
>  
>  source "arch/arm/mach-integrator/Kconfig"
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index b514a0a..5f4576d 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -145,7 +145,6 @@ machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
>  machine-$(CONFIG_ARCH_DOVE)		+= dove
>  machine-$(CONFIG_ARCH_EBSA110)		+= ebsa110
>  machine-$(CONFIG_ARCH_EP93XX)		+= ep93xx
> -machine-$(CONFIG_ARCH_H720X)		+= h720x
>  machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
>  machine-$(CONFIG_ARCH_INTEGRATOR)	+= integrator
>  machine-$(CONFIG_ARCH_IOP13XX)		+= iop13xx
> diff --git a/arch/arm/configs/h7201_defconfig b/arch/arm/configs/h7201_defconfig
> deleted file mode 100644
> index bee94d2..0000000
> --- a/arch/arm/configs/h7201_defconfig
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -CONFIG_EXPERIMENTAL=y
> -CONFIG_SYSVIPC=y
> -CONFIG_LOG_BUF_SHIFT=14
> -CONFIG_BLK_DEV_INITRD=y
> -CONFIG_MODULES=y
> -CONFIG_ARCH_H720X=y
> -CONFIG_ARCH_H7201=y
> -CONFIG_ZBOOT_ROM_TEXT=0x0
> -CONFIG_ZBOOT_ROM_BSS=0x0
> -CONFIG_FPE_NWFPE=y
> -CONFIG_MTD=y
> -CONFIG_MTD_DEBUG=y
> -CONFIG_MTD_PARTITIONS=y
> -CONFIG_MTD_CHAR=y
> -CONFIG_MTD_BLOCK=y
> -CONFIG_MTD_CFI=y
> -CONFIG_MTD_CFI_ADV_OPTIONS=y
> -CONFIG_MTD_CFI_INTELEXT=y
> -CONFIG_BLK_DEV_RAM=y
> -CONFIG_BLK_DEV_RAM_SIZE=8192
> -# CONFIG_INPUT_KEYBOARD is not set
> -# CONFIG_INPUT_MOUSE is not set
> -# CONFIG_VGA_CONSOLE is not set
> -CONFIG_SOUND=m
> -CONFIG_EXT2_FS=y
> -CONFIG_JFFS2_FS=y
> -CONFIG_DEBUG_USER=y
> diff --git a/arch/arm/configs/h7202_defconfig b/arch/arm/configs/h7202_defconfig
> deleted file mode 100644
> index e16d3f3..0000000
> --- a/arch/arm/configs/h7202_defconfig
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -CONFIG_EXPERIMENTAL=y
> -CONFIG_SYSVIPC=y
> -CONFIG_LOG_BUF_SHIFT=14
> -CONFIG_MODULES=y
> -CONFIG_ARCH_H720X=y
> -CONFIG_ARCH_H7202=y
> -# CONFIG_ARM_THUMB is not set
> -CONFIG_ZBOOT_ROM_TEXT=0x0
> -CONFIG_ZBOOT_ROM_BSS=0x0
> -CONFIG_CMDLINE="console=ttyS0,19200"
> -CONFIG_FPE_NWFPE=y
> -CONFIG_FPE_NWFPE_XP=y
> -CONFIG_NET=y
> -CONFIG_UNIX=y
> -CONFIG_INET=y
> -CONFIG_IP_PNP=y
> -CONFIG_IP_PNP_BOOTP=y
> -# CONFIG_IPV6 is not set
> -CONFIG_MTD=y
> -CONFIG_MTD_PARTITIONS=y
> -CONFIG_MTD_CMDLINE_PARTS=y
> -CONFIG_MTD_CHAR=y
> -CONFIG_MTD_BLOCK=y
> -CONFIG_MTD_CFI=y
> -CONFIG_MTD_CFI_INTELEXT=y
> -CONFIG_MTD_H720X=y
> -CONFIG_NETDEVICES=y
> -CONFIG_NET_ETHERNET=y
> -CONFIG_SERIAL_8250=y
> -CONFIG_SERIAL_8250_CONSOLE=y
> -CONFIG_FB=y
> -CONFIG_FB_MODE_HELPERS=y
> -# CONFIG_VGA_CONSOLE is not set
> -CONFIG_USB_GADGET=m
> -CONFIG_USB_ZERO=m
> -CONFIG_USB_GADGETFS=m
> -CONFIG_USB_MASS_STORAGE=m
> -CONFIG_USB_G_SERIAL=m
> -CONFIG_EXT2_FS=y
> -CONFIG_TMPFS=y
> -CONFIG_JFFS2_FS=y
> -CONFIG_NFS_FS=y
> -CONFIG_NFS_V3=y
> -CONFIG_MAGIC_SYSRQ=y
> -CONFIG_DEBUG_KERNEL=y
> -CONFIG_DEBUG_INFO=y
> -CONFIG_DEBUG_USER=y
> diff --git a/arch/arm/mach-h720x/Kconfig b/arch/arm/mach-h720x/Kconfig
> deleted file mode 100644
> index 6bb755b..0000000
> --- a/arch/arm/mach-h720x/Kconfig
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -if ARCH_H720X
> -
> -menu "h720x Implementations"
> -
> -config ARCH_H7201
> -	bool "gms30c7201"
> -	depends on ARCH_H720X
> -	select CPU_H7201
> -	select ZONE_DMA
> -	help
> -	  Say Y here if you are using the Hynix GMS30C7201 Reference Board
> -
> -config ARCH_H7202
> -	bool "hms30c7202"
> -	depends on ARCH_H720X
> -	select CPU_H7202
> -	select ZONE_DMA
> -	help
> -	  Say Y here if you are using the Hynix HMS30C7202 Reference Board
> -
> -endmenu
> -
> -config CPU_H7201
> -	bool
> -	help
> -	  Select code specific to h7201 variants
> -
> -config CPU_H7202
> -	bool
> -	help
> -	  Select code specific to h7202 variants
> -config H7202_SERIAL23
> -	depends on CPU_H7202
> -	bool "Use serial ports 2+3"
> -	help
> -	  Say Y here if you wish to use serial ports 2+3. They share their
> -	  pins with the keyboard matrix controller, so you have to decide.
> -
> -
> -endif
> diff --git a/arch/arm/mach-h720x/Makefile b/arch/arm/mach-h720x/Makefile
> deleted file mode 100644
> index e4cf728..0000000
> --- a/arch/arm/mach-h720x/Makefile
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -#
> -# Makefile for the linux kernel.
> -#
> -
> -# Common support
> -obj-y := common.o
> -obj-m :=
> -obj-n :=
> -obj-  :=
> -
> -# Specific board support
> -
> -obj-$(CONFIG_ARCH_H7201)		+= h7201-eval.o
> -obj-$(CONFIG_ARCH_H7202)		+= h7202-eval.o
> -obj-$(CONFIG_CPU_H7201) 		+= cpu-h7201.o
> -obj-$(CONFIG_CPU_H7202) 		+= cpu-h7202.o
> diff --git a/arch/arm/mach-h720x/Makefile.boot b/arch/arm/mach-h720x/Makefile.boot
> deleted file mode 100644
> index d875a70..0000000
> --- a/arch/arm/mach-h720x/Makefile.boot
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -   zreladdr-$(CONFIG_ARCH_H720X)	+= 0x40008000
> -
> diff --git a/arch/arm/mach-h720x/common.c b/arch/arm/mach-h720x/common.c
> deleted file mode 100644
> index 17ef91f..0000000
> --- a/arch/arm/mach-h720x/common.c
> +++ /dev/null
> @@ -1,268 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/common.c
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * common stuff for Hynix h720x processors
> - *
> - * 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.
> - *
> - */
> -
> -#include <linux/sched.h>
> -#include <linux/mman.h>
> -#include <linux/init.h>
> -#include <linux/interrupt.h>
> -#include <linux/io.h>
> -
> -#include <asm/page.h>
> -#include <asm/pgtable.h>
> -#include <asm/dma.h>
> -#include <mach/hardware.h>
> -#include <asm/irq.h>
> -#include <asm/system_misc.h>
> -#include <asm/mach/irq.h>
> -#include <asm/mach/map.h>
> -#include <mach/irqs.h>
> -
> -#include <asm/mach/dma.h>
> -
> -#if 0
> -#define IRQDBG(args...) printk(args)
> -#else
> -#define IRQDBG(args...) do {} while(0)
> -#endif
> -
> -void __init arch_dma_init(dma_t *dma)
> -{
> -}
> -
> -/*
> - * Return nsecs since last timer reload
> - * (timercount * (usecs perjiffie)) / (ticks per jiffie)
> - */
> -u32 h720x_gettimeoffset(void)
> -{
> -	return ((CPU_REG(TIMER_VIRT, TM0_COUNT) * tick_usec) / LATCH) * 1000;
> -}
> -
> -/*
> - * mask Global irq's
> - */
> -static void mask_global_irq(struct irq_data *d)
> -{
> -	CPU_REG (IRQC_VIRT, IRQC_IER) &= ~(1 << d->irq);
> -}
> -
> -/*
> - * unmask Global irq's
> - */
> -static void unmask_global_irq(struct irq_data *d)
> -{
> -	CPU_REG (IRQC_VIRT, IRQC_IER) |= (1 << d->irq);
> -}
> -
> -
> -/*
> - * ack GPIO irq's
> - * Ack only for edge triggered int's valid
> - */
> -static void inline ack_gpio_irq(struct irq_data *d)
> -{
> -	u32 reg_base = GPIO_VIRT(IRQ_TO_REGNO(d->irq));
> -	u32 bit = IRQ_TO_BIT(d->irq);
> -	if ( (CPU_REG (reg_base, GPIO_EDGE) & bit))
> -		CPU_REG (reg_base, GPIO_CLR) = bit;
> -}
> -
> -/*
> - * mask GPIO irq's
> - */
> -static void inline mask_gpio_irq(struct irq_data *d)
> -{
> -	u32 reg_base = GPIO_VIRT(IRQ_TO_REGNO(d->irq));
> -	u32 bit = IRQ_TO_BIT(d->irq);
> -	CPU_REG (reg_base, GPIO_MASK) &= ~bit;
> -}
> -
> -/*
> - * unmask GPIO irq's
> - */
> -static void inline unmask_gpio_irq(struct irq_data *d)
> -{
> -	u32 reg_base = GPIO_VIRT(IRQ_TO_REGNO(d->irq));
> -	u32 bit = IRQ_TO_BIT(d->irq);
> -	CPU_REG (reg_base, GPIO_MASK) |= bit;
> -}
> -
> -static void
> -h720x_gpio_handler(unsigned int mask, unsigned int irq,
> -                 struct irq_desc *desc)
> -{
> -	IRQDBG("%s irq: %d\n", __func__, irq);
> -	while (mask) {
> -		if (mask & 1) {
> -			IRQDBG("handling irq %d\n", irq);
> -			generic_handle_irq(irq);
> -		}
> -		irq++;
> -		mask >>= 1;
> -	}
> -}
> -
> -static void
> -h720x_gpioa_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -
> -	mask = CPU_REG(GPIO_A_VIRT,GPIO_STAT);
> -	irq = IRQ_CHAINED_GPIOA(0);
> -	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
> -	h720x_gpio_handler(mask, irq, desc);
> -}
> -
> -static void
> -h720x_gpiob_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -	mask = CPU_REG(GPIO_B_VIRT,GPIO_STAT);
> -	irq = IRQ_CHAINED_GPIOB(0);
> -	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
> -	h720x_gpio_handler(mask, irq, desc);
> -}
> -
> -static void
> -h720x_gpioc_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -
> -	mask = CPU_REG(GPIO_C_VIRT,GPIO_STAT);
> -	irq = IRQ_CHAINED_GPIOC(0);
> -	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
> -	h720x_gpio_handler(mask, irq, desc);
> -}
> -
> -static void
> -h720x_gpiod_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -
> -	mask = CPU_REG(GPIO_D_VIRT,GPIO_STAT);
> -	irq = IRQ_CHAINED_GPIOD(0);
> -	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
> -	h720x_gpio_handler(mask, irq, desc);
> -}
> -
> -#ifdef CONFIG_CPU_H7202
> -static void
> -h720x_gpioe_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -
> -	mask = CPU_REG(GPIO_E_VIRT,GPIO_STAT);
> -	irq = IRQ_CHAINED_GPIOE(0);
> -	IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
> -	h720x_gpio_handler(mask, irq, desc);
> -}
> -#endif
> -
> -static struct irq_chip h720x_global_chip = {
> -	.irq_ack = mask_global_irq,
> -	.irq_mask = mask_global_irq,
> -	.irq_unmask = unmask_global_irq,
> -};
> -
> -static struct irq_chip h720x_gpio_chip = {
> -	.irq_ack = ack_gpio_irq,
> -	.irq_mask = mask_gpio_irq,
> -	.irq_unmask = unmask_gpio_irq,
> -};
> -
> -/*
> - * Initialize IRQ's, mask all, enable multiplexed irq's
> - */
> -void __init h720x_init_irq (void)
> -{
> -	int 	irq;
> -
> -	/* Mask global irq's */
> -	CPU_REG (IRQC_VIRT, IRQC_IER) = 0x0;
> -
> -	/* Mask all multiplexed irq's */
> -	CPU_REG (GPIO_A_VIRT, GPIO_MASK) = 0x0;
> -	CPU_REG (GPIO_B_VIRT, GPIO_MASK) = 0x0;
> -	CPU_REG (GPIO_C_VIRT, GPIO_MASK) = 0x0;
> -	CPU_REG (GPIO_D_VIRT, GPIO_MASK) = 0x0;
> -
> -	/* Initialize global IRQ's, fast path */
> -	for (irq = 0; irq < NR_GLBL_IRQS; irq++) {
> -		irq_set_chip_and_handler(irq, &h720x_global_chip,
> -					 handle_level_irq);
> -		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
> -	}
> -
> -	/* Initialize multiplexed IRQ's, slow path */
> -	for (irq = IRQ_CHAINED_GPIOA(0) ; irq <= IRQ_CHAINED_GPIOD(31); irq++) {
> -		irq_set_chip_and_handler(irq, &h720x_gpio_chip,
> -					 handle_edge_irq);
> -		set_irq_flags(irq, IRQF_VALID );
> -	}
> -	irq_set_chained_handler(IRQ_GPIOA, h720x_gpioa_demux_handler);
> -	irq_set_chained_handler(IRQ_GPIOB, h720x_gpiob_demux_handler);
> -	irq_set_chained_handler(IRQ_GPIOC, h720x_gpioc_demux_handler);
> -	irq_set_chained_handler(IRQ_GPIOD, h720x_gpiod_demux_handler);
> -
> -#ifdef CONFIG_CPU_H7202
> -	for (irq = IRQ_CHAINED_GPIOE(0) ; irq <= IRQ_CHAINED_GPIOE(31); irq++) {
> -		irq_set_chip_and_handler(irq, &h720x_gpio_chip,
> -					 handle_edge_irq);
> -		set_irq_flags(irq, IRQF_VALID );
> -	}
> -	irq_set_chained_handler(IRQ_GPIOE, h720x_gpioe_demux_handler);
> -#endif
> -
> -	/* Enable multiplexed irq's */
> -	CPU_REG (IRQC_VIRT, IRQC_IER) = IRQ_ENA_MUX;
> -}
> -
> -static struct map_desc h720x_io_desc[] __initdata = {
> -	{
> -		.virtual	= IO_VIRT,
> -		.pfn		= __phys_to_pfn(IO_PHYS),
> -		.length		= IO_SIZE,
> -		.type		= MT_DEVICE
> -	},
> -};
> -
> -/* Initialize io tables */
> -void __init h720x_map_io(void)
> -{
> -	iotable_init(h720x_io_desc,ARRAY_SIZE(h720x_io_desc));
> -}
> -
> -void h720x_restart(char mode, const char *cmd)
> -{
> -	CPU_REG (PMU_BASE, PMU_STAT) |= PMU_WARMRESET;
> -}
> -
> -static void h720x__idle(void)
> -{
> -	CPU_REG (PMU_BASE, PMU_MODE) = PMU_MODE_IDLE;
> -	nop();
> -	nop();
> -	CPU_REG (PMU_BASE, PMU_MODE) = PMU_MODE_RUN;
> -	nop();
> -	nop();
> -}
> -
> -static int __init h720x_idle_init(void)
> -{
> -	arm_pm_idle = h720x__idle;
> -	return 0;
> -}
> -
> -arch_initcall(h720x_idle_init);
> diff --git a/arch/arm/mach-h720x/common.h b/arch/arm/mach-h720x/common.h
> deleted file mode 100644
> index 7e73841..0000000
> --- a/arch/arm/mach-h720x/common.h
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/common.h
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * Architecture specific stuff for Hynix GMS30C7201 development board
> - *
> - * 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.
> - *
> - */
> -
> -extern u32 h720x_gettimeoffset(void);
> -extern void __init h720x_init_irq(void);
> -extern void __init h720x_map_io(void);
> -extern void h720x_restart(char, const char *);
> -
> -#ifdef CONFIG_ARCH_H7202
> -extern void h7202_timer_init(void);
> -extern void __init init_hw_h7202(void);
> -extern void __init h7202_init_irq(void);
> -extern void __init h7202_init_time(void);
> -#endif
> -
> -#ifdef CONFIG_ARCH_H7201
> -extern void h7201_timer_init(void);
> -#endif
> diff --git a/arch/arm/mach-h720x/cpu-h7201.c b/arch/arm/mach-h720x/cpu-h7201.c
> deleted file mode 100644
> index 13c7412..0000000
> --- a/arch/arm/mach-h720x/cpu-h7201.c
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/cpu-h7201.c
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * processor specific stuff for the Hynix h7201
> - *
> - * 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.
> - *
> - */
> -
> -#include <linux/init.h>
> -#include <linux/interrupt.h>
> -#include <linux/module.h>
> -#include <asm/types.h>
> -#include <mach/hardware.h>
> -#include <asm/irq.h>
> -#include <mach/irqs.h>
> -#include <asm/mach/irq.h>
> -#include <asm/mach/time.h>
> -#include "common.h"
> -/*
> - * Timer interrupt handler
> - */
> -static irqreturn_t
> -h7201_timer_interrupt(int irq, void *dev_id)
> -{
> -	CPU_REG (TIMER_VIRT, TIMER_TOPSTAT);
> -	timer_tick();
> -
> -	return IRQ_HANDLED;
> -}
> -
> -static struct irqaction h7201_timer_irq = {
> -	.name		= "h7201 Timer Tick",
> -	.flags		= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
> -	.handler	= h7201_timer_interrupt,
> -};
> -
> -/*
> - * Setup TIMER0 as system timer
> - */
> -void __init h7201_timer_init(void)
> -{
> -	arch_gettimeoffset = h720x_gettimeoffset;
> -
> -	CPU_REG (TIMER_VIRT, TM0_PERIOD) = LATCH;
> -	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_RESET;
> -	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_REPEAT | TM_START;
> -	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) = ENABLE_TM0_INTR | TIMER_ENABLE_BIT;
> -
> -	setup_irq(IRQ_TIMER0, &h7201_timer_irq);
> -}
> diff --git a/arch/arm/mach-h720x/cpu-h7202.c b/arch/arm/mach-h720x/cpu-h7202.c
> deleted file mode 100644
> index e2ae7e8..0000000
> --- a/arch/arm/mach-h720x/cpu-h7202.c
> +++ /dev/null
> @@ -1,225 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/cpu-h7202.c
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * processor specific stuff for the Hynix h7202
> - *
> - * 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.
> - *
> - */
> -
> -#include <linux/init.h>
> -#include <linux/interrupt.h>
> -#include <linux/module.h>
> -#include <asm/types.h>
> -#include <mach/hardware.h>
> -#include <asm/irq.h>
> -#include <mach/irqs.h>
> -#include <asm/mach/irq.h>
> -#include <asm/mach/time.h>
> -#include <linux/device.h>
> -#include <linux/serial_8250.h>
> -#include "common.h"
> -
> -static struct resource h7202ps2_resources[] = {
> -	[0] = {
> -		.start	= 0x8002c000,
> -		.end	= 0x8002c040,
> -		.flags	= IORESOURCE_MEM,
> -	},
> -	[1] = {
> -		.start	= IRQ_PS2,
> -		.end	= IRQ_PS2,
> -		.flags	= IORESOURCE_IRQ,
> -	},
> -};
> -
> -static struct platform_device h7202ps2_device = {
> -	.name		= "h7202ps2",
> -	.id		= -1,
> -	.num_resources	= ARRAY_SIZE(h7202ps2_resources),
> -	.resource	= h7202ps2_resources,
> -};
> -
> -static struct plat_serial8250_port serial_platform_data[] = {
> -	{
> -		.membase	= (void*)SERIAL0_VIRT,
> -		.mapbase	= SERIAL0_BASE,
> -		.irq		= IRQ_UART0,
> -		.uartclk	= 2*1843200,
> -		.regshift	= 2,
> -		.iotype		= UPIO_MEM,
> -		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
> -	},
> -	{
> -		.membase	= (void*)SERIAL1_VIRT,
> -		.mapbase	= SERIAL1_BASE,
> -		.irq		= IRQ_UART1,
> -		.uartclk	= 2*1843200,
> -		.regshift	= 2,
> -		.iotype		= UPIO_MEM,
> -		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
> -	},
> -#ifdef CONFIG_H7202_SERIAL23
> -	{
> -		.membase	= (void*)SERIAL2_VIRT,
> -		.mapbase	= SERIAL2_BASE,
> -		.irq		= IRQ_UART2,
> -		.uartclk	= 2*1843200,
> -		.regshift	= 2,
> -		.iotype		= UPIO_MEM,
> -		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
> -	},
> -	{
> -		.membase	= (void*)SERIAL3_VIRT,
> -		.mapbase	= SERIAL3_BASE,
> -		.irq		= IRQ_UART3,
> -		.uartclk	= 2*1843200,
> -		.regshift	= 2,
> -		.iotype		= UPIO_MEM,
> -		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
> -	},
> -#endif
> -	{ },
> -};
> -
> -static struct platform_device serial_device = {
> -	.name			= "serial8250",
> -	.id			= PLAT8250_DEV_PLATFORM,
> -	.dev			= {
> -		.platform_data	= serial_platform_data,
> -	},
> -};
> -
> -static struct platform_device *devices[] __initdata = {
> -	&h7202ps2_device,
> -	&serial_device,
> -};
> -
> -/* Although we have two interrupt lines for the timers, we only have one
> - * status register which clears all pending timer interrupts on reading. So
> - * we have to handle all timer interrupts in one place.
> - */
> -static void
> -h7202_timerx_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
> -{
> -	unsigned int mask, irq;
> -
> -	mask = CPU_REG (TIMER_VIRT, TIMER_TOPSTAT);
> -
> -	if ( mask & TSTAT_T0INT ) {
> -		timer_tick();
> -		if( mask == TSTAT_T0INT )
> -			return;
> -	}
> -
> -	mask >>= 1;
> -	irq = IRQ_TIMER1;
> -	while (mask) {
> -		if (mask & 1)
> -			generic_handle_irq(irq);
> -		irq++;
> -		mask >>= 1;
> -	}
> -}
> -
> -/*
> - * Timer interrupt handler
> - */
> -static irqreturn_t
> -h7202_timer_interrupt(int irq, void *dev_id)
> -{
> -	h7202_timerx_demux_handler(0, NULL);
> -	return IRQ_HANDLED;
> -}
> -
> -/*
> - * mask multiplexed timer IRQs
> - */
> -static void inline __mask_timerx_irq(unsigned int irq)
> -{
> -	unsigned int bit;
> -	bit = 2 << ((irq == IRQ_TIMER64B) ? 4 : (irq - IRQ_TIMER1));
> -	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) &= ~bit;
> -}
> -
> -static void inline mask_timerx_irq(struct irq_data *d)
> -{
> -	__mask_timerx_irq(d->irq);
> -}
> -
> -/*
> - * unmask multiplexed timer IRQs
> - */
> -static void inline unmask_timerx_irq(struct irq_data *d)
> -{
> -	unsigned int bit;
> -	bit = 2 << ((d->irq == IRQ_TIMER64B) ? 4 : (d->irq - IRQ_TIMER1));
> -	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) |= bit;
> -}
> -
> -static struct irq_chip h7202_timerx_chip = {
> -	.irq_ack = mask_timerx_irq,
> -	.irq_mask = mask_timerx_irq,
> -	.irq_unmask = unmask_timerx_irq,
> -};
> -
> -static struct irqaction h7202_timer_irq = {
> -	.name		= "h7202 Timer Tick",
> -	.flags		= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
> -	.handler	= h7202_timer_interrupt,
> -};
> -
> -/*
> - * Setup TIMER0 as system timer
> - */
> -void __init h7202_timer_init(void)
> -{
> -	arch_gettimeoffset = h720x_gettimeoffset;
> -
> -	CPU_REG (TIMER_VIRT, TM0_PERIOD) = LATCH;
> -	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_RESET;
> -	CPU_REG (TIMER_VIRT, TM0_CTRL) = TM_REPEAT | TM_START;
> -	CPU_REG (TIMER_VIRT, TIMER_TOPCTRL) = ENABLE_TM0_INTR | TIMER_ENABLE_BIT;
> -
> -	setup_irq(IRQ_TIMER0, &h7202_timer_irq);
> -}
> -
> -void __init h7202_init_irq (void)
> -{
> -	int 	irq;
> -
> -	CPU_REG (GPIO_E_VIRT, GPIO_MASK) = 0x0;
> -
> -	for (irq = IRQ_TIMER1;
> -	                  irq < IRQ_CHAINED_TIMERX(NR_TIMERX_IRQS); irq++) {
> -		__mask_timerx_irq(irq);
> -		irq_set_chip_and_handler(irq, &h7202_timerx_chip,
> -					 handle_edge_irq);
> -		set_irq_flags(irq, IRQF_VALID );
> -	}
> -	irq_set_chained_handler(IRQ_TIMERX, h7202_timerx_demux_handler);
> -
> -	h720x_init_irq();
> -}
> -
> -void __init init_hw_h7202(void)
> -{
> -	/* Enable clocks */
> -	CPU_REG (PMU_BASE, PMU_PLL_CTRL) |= PLL_2_EN | PLL_1_EN | PLL_3_MUTE;
> -
> -	CPU_REG (SERIAL0_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
> -	CPU_REG (SERIAL1_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
> -#ifdef CONFIG_H7202_SERIAL23
> -	CPU_REG (SERIAL2_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
> -	CPU_REG (SERIAL3_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN;
> -	CPU_IO (GPIO_AMULSEL) = AMULSEL_USIN2 | AMULSEL_USOUT2 |
> -	                        AMULSEL_USIN3 | AMULSEL_USOUT3;
> -#endif
> -	(void) platform_add_devices(devices, ARRAY_SIZE(devices));
> -}
> diff --git a/arch/arm/mach-h720x/h7201-eval.c b/arch/arm/mach-h720x/h7201-eval.c
> deleted file mode 100644
> index 4fdeb68..0000000
> --- a/arch/arm/mach-h720x/h7201-eval.c
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/h7201-eval.c
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *               2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * Architecture specific stuff for Hynix GMS30C7201 development board
> - *
> - * 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.
> - *
> - */
> -
> -#include <linux/init.h>
> -#include <linux/kernel.h>
> -#include <linux/types.h>
> -#include <linux/string.h>
> -#include <linux/device.h>
> -
> -#include <asm/setup.h>
> -#include <asm/types.h>
> -#include <asm/mach-types.h>
> -#include <asm/page.h>
> -#include <asm/mach/arch.h>
> -#include <mach/hardware.h>
> -#include "common.h"
> -
> -MACHINE_START(H7201, "Hynix GMS30C7201")
> -	/* Maintainer: Robert Schwebel, Pengutronix */
> -	.atag_offset	= 0x1000,
> -	.map_io		= h720x_map_io,
> -	.init_irq	= h720x_init_irq,
> -	.init_time	= h7201_timer_init,
> -	.dma_zone_size	= SZ_256M,
> -	.restart	= h720x_restart,
> -MACHINE_END
> diff --git a/arch/arm/mach-h720x/h7202-eval.c b/arch/arm/mach-h720x/h7202-eval.c
> deleted file mode 100644
> index f68e967..0000000
> --- a/arch/arm/mach-h720x/h7202-eval.c
> +++ /dev/null
> @@ -1,81 +0,0 @@
> -/*
> - * linux/arch/arm/mach-h720x/h7202-eval.c
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *		 2004 Sascha Hauer <s.hauer@pengutronix.de>
> - *
> - * Architecture specific stuff for Hynix HMS30C7202 development board
> - *
> - * 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.
> - *
> - */
> -
> -#include <linux/init.h>
> -#include <linux/kernel.h>
> -#include <linux/types.h>
> -#include <linux/string.h>
> -#include <linux/platform_device.h>
> -
> -#include <asm/setup.h>
> -#include <asm/types.h>
> -#include <asm/mach-types.h>
> -#include <asm/page.h>
> -#include <asm/mach/arch.h>
> -#include <mach/irqs.h>
> -#include <mach/hardware.h>
> -#include "common.h"
> -
> -static struct resource cirrus_resources[] = {
> -	[0] = {
> -		.start	= ETH0_PHYS + 0x300,
> -		.end	= ETH0_PHYS + 0x300 + 0x10,
> -		.flags	= IORESOURCE_MEM,
> -	},
> -	[1] = {
> -		.start	= IRQ_CHAINED_GPIOB(8),
> -		.end	= IRQ_CHAINED_GPIOB(8),
> -		.flags	= IORESOURCE_IRQ,
> -	},
> -};
> -
> -static struct platform_device cirrus_device = {
> -	.name		= "cirrus-cs89x0",
> -	.id		= -1,
> -	.num_resources	= ARRAY_SIZE(cirrus_resources),
> -	.resource	= cirrus_resources,
> -};
> -
> -static struct platform_device *devices[] __initdata = {
> -	&cirrus_device,
> -};
> -
> -/*
> - * Hardware init. This is called early in initcalls
> - * Place pin inits here. So you avoid adding ugly
> - * #ifdef stuff to common drivers.
> - * Use this only, if your bootloader is not able
> - * to initialize the pins proper.
> - */
> -static void __init init_eval_h7202(void)
> -{
> -	init_hw_h7202();
> -	(void) platform_add_devices(devices, ARRAY_SIZE(devices));
> -
> -	/* Enable interrupt on portb bit 8 (ethernet) */
> -	CPU_REG (GPIO_B_VIRT, GPIO_POL) &= ~(1 << 8);
> -	CPU_REG (GPIO_B_VIRT, GPIO_EN) |= (1 << 8);
> -}
> -
> -MACHINE_START(H7202, "Hynix HMS30C7202")
> -	/* Maintainer: Robert Schwebel, Pengutronix */
> -	.atag_offset	= 0x100,
> -	.map_io		= h720x_map_io,
> -	.init_irq	= h7202_init_irq,
> -	.init_time	= h7202_timer_init,
> -	.init_machine	= init_eval_h7202,
> -	.dma_zone_size	= SZ_256M,
> -	.restart	= h720x_restart,
> -MACHINE_END
> diff --git a/arch/arm/mach-h720x/include/mach/boards.h b/arch/arm/mach-h720x/include/mach/boards.h
> deleted file mode 100644
> index 38b8e0d..0000000
> --- a/arch/arm/mach-h720x/include/mach/boards.h
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/boards.h
> - *
> - * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *
> - * This file contains the board specific defines for various devices
> - *
> - * 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.
> - */
> -
> -#ifndef __ASM_ARCH_HARDWARE_INCMACH_H
> -#error Do not include this file directly. Include asm/hardware.h instead !
> -#endif
> -
> -/* Hynix H7202 developer board specific device defines */
> -#ifdef CONFIG_ARCH_H7202
> -
> -/* FLASH */
> -#define H720X_FLASH_VIRT	0xd0000000
> -#define H720X_FLASH_PHYS	0x00000000
> -#define H720X_FLASH_SIZE	0x02000000
> -
> -/* onboard LAN controller */
> -# define ETH0_PHYS		0x08000000
> -
> -/* Touch screen defines */
> -/* GPIO Port */
> -#define PEN_GPIO		GPIO_B_VIRT
> -/* Bitmask for pen down interrupt */
> -#define PEN_INT_BIT		(1<<7)
> -/* Bitmask for pen up interrupt */
> -#define PEN_ENA_BIT		(1<<6)
> -/* pen up interrupt */
> -#define IRQ_PEN			IRQ_MUX_GPIOB(7)
> -
> -#endif
> -
> -/* Hynix H7201 developer board specific device defines */
> -#if defined (CONFIG_ARCH_H7201)
> -/* ROM DISK SPACE */
> -#define ROM_DISK_BASE           0xc1800000
> -#define ROM_DISK_START          0x41800000
> -#define ROM_DISK_SIZE           0x00700000
> -
> -/* SRAM DISK SPACE */
> -#define SRAM_DISK_BASE          0xf1000000
> -#define SRAM_DISK_START         0x04000000
> -#define SRAM_DISK_SIZE          0x00400000
> -#endif
> -
> diff --git a/arch/arm/mach-h720x/include/mach/debug-macro.S b/arch/arm/mach-h720x/include/mach/debug-macro.S
> deleted file mode 100644
> index 8a46157..0000000
> --- a/arch/arm/mach-h720x/include/mach/debug-macro.S
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -/* arch/arm/mach-h720x/include/mach/debug-macro.S
> - *
> - * Debugging macro include header
> - *
> - *  Copyright (C) 1994-1999 Russell King
> - *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
> - *
> - * 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.
> - *
> -*/
> -
> -#include <mach/hardware.h>
> -
> -		.equ    io_virt, IO_VIRT
> -		.equ    io_phys, IO_PHYS
> -
> -		.macro  addruart, rp, rv, tmp
> -		mov     \rp, #0x00020000	@ UART1
> -		add     \rv, \rp, #io_virt	@ virtual address
> -		add     \rp, \rp, #io_phys	@ physical base address
> -		.endm
> -
> -		.macro  senduart,rd,rx
> -		str     \rd, [\rx, #0x0]        @ UARTDR
> -
> -		.endm
> -
> -		.macro  waituart,rd,rx
> -1001:		ldr     \rd, [\rx, #0x18]       @ UARTFLG
> -		tst     \rd, #1 << 5	       @ UARTFLGUTXFF - 1 when full
> -		bne     1001b
> -		.endm
> -
> -		.macro  busyuart,rd,rx
> -1001:		ldr     \rd, [\rx, #0x18]       @ UARTFLG
> -		tst     \rd, #1 << 3	       @ UARTFLGUBUSY - 1 when busy
> -		bne     1001b
> -		.endm
> diff --git a/arch/arm/mach-h720x/include/mach/entry-macro.S b/arch/arm/mach-h720x/include/mach/entry-macro.S
> deleted file mode 100644
> index 75267fa..0000000
> --- a/arch/arm/mach-h720x/include/mach/entry-macro.S
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/entry-macro.S
> - *
> - * Low-level IRQ helper macros for Hynix HMS720x based platforms
> - *
> - * This file is licensed under  the terms of the GNU General Public
> - * License version 2. This program is licensed "as is" without any
> - * warranty of any kind, whether express or implied.
> - */
> -
> -		.macro  get_irqnr_preamble, base, tmp
> -		.endm
> -
> -		.macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
> -#if defined (CONFIG_CPU_H7201) || defined (CONFIG_CPU_H7202)
> -		@ we could use the id register on H7202, but this is not
> -		@ properly updated when we come back from asm_do_irq
> -		@ without a previous return from interrupt
> -		@ (see loops below in irq_svc, irq_usr)
> -		@ We see unmasked pending ints only, as the masked pending ints
> -		@ are not visible here
> -
> -		mov     \base, #0xf0000000	       @ base register
> -		orr     \base, \base, #0x24000	       @ irqbase
> -		ldr     \irqstat, [\base, #0x04]        @ get interrupt status
> -#if defined (CONFIG_CPU_H7201)
> -		ldr	\tmp, =0x001fffff
> -#else
> -		mvn     \tmp, #0xc0000000
> -#endif
> -		and     \irqstat, \irqstat, \tmp        @ mask out unused ints
> -		mov     \irqnr, #0
> -
> -		mov     \tmp, #0xff00
> -		orr     \tmp, \tmp, #0xff
> -		tst     \irqstat, \tmp
> -		addeq   \irqnr, \irqnr, #16
> -		moveq   \irqstat, \irqstat, lsr #16
> -		tst     \irqstat, #255
> -		addeq   \irqnr, \irqnr, #8
> -		moveq   \irqstat, \irqstat, lsr #8
> -		tst     \irqstat, #15
> -		addeq   \irqnr, \irqnr, #4
> -		moveq   \irqstat, \irqstat, lsr #4
> -		tst     \irqstat, #3
> -		addeq   \irqnr, \irqnr, #2
> -		moveq   \irqstat, \irqstat, lsr #2
> -		tst     \irqstat, #1
> -		addeq   \irqnr, \irqnr, #1
> -		moveq   \irqstat, \irqstat, lsr #1
> -		tst     \irqstat, #1		       @ bit 0 should be set
> -		.endm
> -
> -#else
> -#error hynix processor selection missmatch
> -#endif
> -
> diff --git a/arch/arm/mach-h720x/include/mach/h7201-regs.h b/arch/arm/mach-h720x/include/mach/h7201-regs.h
> deleted file mode 100644
> index 611b494..0000000
> --- a/arch/arm/mach-h720x/include/mach/h7201-regs.h
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/h7201-regs.h
> - *
> - * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
> - *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *           (C) 2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * This file contains the hardware definitions of the h720x processors
> - *
> - * 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.
> - *
> - * Do not add implementations specific defines here. This files contains
> - * only defines of the onchip peripherals. Add those defines to boards.h,
> - * which is included by this file.
> - */
> -
> -#define SERIAL2_VIRT 		(IO_VIRT + 0x50100)
> -#define SERIAL3_VIRT 		(IO_VIRT + 0x50200)
> -
> -/*
> - * PCMCIA
> - */
> -#define PCMCIA0_ATT_BASE        0xe5000000
> -#define PCMCIA0_ATT_SIZE        0x00200000
> -#define PCMCIA0_ATT_START       0x20000000
> -#define PCMCIA0_MEM_BASE        0xe5200000
> -#define PCMCIA0_MEM_SIZE        0x00200000
> -#define PCMCIA0_MEM_START       0x24000000
> -#define PCMCIA0_IO_BASE         0xe5400000
> -#define PCMCIA0_IO_SIZE         0x00200000
> -#define PCMCIA0_IO_START        0x28000000
> -
> -#define PCMCIA1_ATT_BASE        0xe5600000
> -#define PCMCIA1_ATT_SIZE        0x00200000
> -#define PCMCIA1_ATT_START       0x30000000
> -#define PCMCIA1_MEM_BASE        0xe5800000
> -#define PCMCIA1_MEM_SIZE        0x00200000
> -#define PCMCIA1_MEM_START       0x34000000
> -#define PCMCIA1_IO_BASE         0xe5a00000
> -#define PCMCIA1_IO_SIZE         0x00200000
> -#define PCMCIA1_IO_START        0x38000000
> -
> -#define PRIME3C_BASE            0xf0050000
> -#define PRIME3C_SIZE            0x00001000
> -#define PRIME3C_START           0x10000000
> -
> -/* VGA Controller */
> -#define VGA_RAMBASE 		0x50
> -#define VGA_TIMING0 		0x60
> -#define VGA_TIMING1 		0x64
> -#define VGA_TIMING2 		0x68
> -#define VGA_TIMING3 		0x6c
> -
> -#define LCD_CTRL_VGA_ENABLE   	0x00000100
> -#define LCD_CTRL_VGA_BPP_MASK 	0x00000600
> -#define LCD_CTRL_VGA_4BPP    	0x00000000
> -#define LCD_CTRL_VGA_8BPP    	0x00000200
> -#define LCD_CTRL_VGA_16BPP   	0x00000300
> -#define LCD_CTRL_SHARE_DMA    	0x00000800
> -#define LCD_CTRL_VDE          	0x00100000
> -#define LCD_CTRL_LPE          	0x00400000	/* LCD Power enable */
> -#define LCD_CTRL_BLE          	0x00800000	/* LCD backlight enable */
> -
> -#define VGA_PALETTE_BASE	(IO_VIRT + 0x10800)
> diff --git a/arch/arm/mach-h720x/include/mach/h7202-regs.h b/arch/arm/mach-h720x/include/mach/h7202-regs.h
> deleted file mode 100644
> index 17c12eb..0000000
> --- a/arch/arm/mach-h720x/include/mach/h7202-regs.h
> +++ /dev/null
> @@ -1,155 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/h7202-regs.h
> - *
> - * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
> - *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *           (C) 2004 Sascha Hauer    <s.hauer@pengutronix.de>
> - *
> - * This file contains the hardware definitions of the h720x processors
> - *
> - * 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.
> - *
> - * Do not add implementations specific defines here. This files contains
> - * only defines of the onchip peripherals. Add those defines to boards.h,
> - * which is included by this file.
> - */
> -
> -#define SERIAL2_OFS		0x2d000
> -#define SERIAL2_BASE		(IO_PHYS + SERIAL2_OFS)
> -#define SERIAL2_VIRT 		(IO_VIRT + SERIAL2_OFS)
> -#define SERIAL3_OFS		0x2e000
> -#define SERIAL3_BASE		(IO_PHYS + SERIAL3_OFS)
> -#define SERIAL3_VIRT 		(IO_VIRT + SERIAL3_OFS)
> -
> -/* Matrix Keyboard Controller */
> -#define KBD_VIRT		(IO_VIRT + 0x22000)
> -#define KBD_KBCR		0x00
> -#define KBD_KBSC		0x04
> -#define KBD_KBTR		0x08
> -#define KBD_KBVR0		0x0C
> -#define KBD_KBVR1		0x10
> -#define KBD_KBSR		0x18
> -
> -#define KBD_KBCR_SCANENABLE	(1 << 7)
> -#define KBD_KBCR_NPOWERDOWN	(1 << 2)
> -#define KBD_KBCR_CLKSEL_MASK	(3)
> -#define KBD_KBCR_CLKSEL_PCLK2	0x0
> -#define KBD_KBCR_CLKSEL_PCLK128	0x1
> -#define KBD_KBCR_CLKSEL_PCLK256	0x2
> -#define KBD_KBCR_CLKSEL_PCLK512	0x3
> -
> -#define KBD_KBSR_INTR		(1 << 0)
> -#define KBD_KBSR_WAKEUP		(1 << 1)
> -
> -/* USB device controller */
> -
> -#define USBD_BASE		(IO_VIRT + 0x12000)
> -#define USBD_LENGTH		0x3C
> -
> -#define USBD_GCTRL		0x00
> -#define USBD_EPCTRL		0x04
> -#define USBD_INTMASK		0x08
> -#define USBD_INTSTAT		0x0C
> -#define USBD_PWR		0x10
> -#define USBD_DMARXTX		0x14
> -#define USBD_DEVID		0x18
> -#define USBD_DEVCLASS		0x1C
> -#define USBD_INTCLASS		0x20
> -#define USBD_SETUP0		0x24
> -#define USBD_SETUP1		0x28
> -#define USBD_ENDP0RD		0x2C
> -#define USBD_ENDP0WT		0x30
> -#define USBD_ENDP1RD		0x34
> -#define USBD_ENDP2WT		0x38
> -
> -/* PS/2 port */
> -#define PSDATA 0x00
> -#define PSSTAT 0x04
> -#define PSSTAT_TXEMPTY (1<<0)
> -#define PSSTAT_TXBUSY (1<<1)
> -#define PSSTAT_RXFULL (1<<2)
> -#define PSSTAT_RXBUSY (1<<3)
> -#define PSSTAT_CLKIN (1<<4)
> -#define PSSTAT_DATAIN (1<<5)
> -#define PSSTAT_PARITY (1<<6)
> -
> -#define PSCONF 0x08
> -#define PSCONF_ENABLE (1<<0)
> -#define PSCONF_TXINTEN (1<<2)
> -#define PSCONF_RXINTEN (1<<3)
> -#define PSCONF_FORCECLKLOW (1<<4)
> -#define PSCONF_FORCEDATLOW (1<<5)
> -#define PSCONF_LCE (1<<6)
> -
> -#define PSINTR 0x0C
> -#define PSINTR_TXINT (1<<0)
> -#define PSINTR_RXINT (1<<1)
> -#define PSINTR_PAR (1<<2)
> -#define PSINTR_RXTO (1<<3)
> -#define PSINTR_TXTO (1<<4)
> -
> -#define PSTDLO 0x10 /* clk low before start transmission */
> -#define PSTPRI 0x14 /* PRI clock */
> -#define PSTXMT 0x18 /* maximum transmission time */
> -#define PSTREC 0x20 /* maximum receive time */
> -#define PSPWDN 0x3c
> -
> -/* ADC converter */
> -#define ADC_BASE 		(IO_VIRT + 0x29000)
> -#define ADC_CR 			0x00
> -#define ADC_TSCTRL 		0x04
> -#define ADC_BT_CTRL 		0x08
> -#define ADC_MC_CTRL		0x0C
> -#define ADC_STATUS		0x10
> -
> -/* ADC control register bits */
> -#define ADC_CR_PW_CTRL 		0x80
> -#define ADC_CR_DIRECTC		0x04
> -#define ADC_CR_CONTIME_NO	0x00
> -#define ADC_CR_CONTIME_2	0x04
> -#define ADC_CR_CONTIME_4	0x08
> -#define ADC_CR_CONTIME_ADE	0x0c
> -#define ADC_CR_LONGCALTIME	0x01
> -
> -/* ADC touch panel register bits */
> -#define ADC_TSCTRL_ENABLE 	0x80
> -#define ADC_TSCTRL_INTR   	0x40
> -#define	ADC_TSCTRL_SWBYPSS	0x20
> -#define ADC_TSCTRL_SWINVT	0x10
> -#define ADC_TSCTRL_S400   	0x03
> -#define ADC_TSCTRL_S200   	0x02
> -#define ADC_TSCTRL_S100   	0x01
> -#define ADC_TSCTRL_S50    	0x00
> -
> -/* ADC Interrupt Status Register bits */
> -#define ADC_STATUS_TS_BIT	0x80
> -#define ADC_STATUS_MBT_BIT	0x40
> -#define ADC_STATUS_BBT_BIT	0x20
> -#define ADC_STATUS_MIC_BIT	0x10
> -
> -/* Touch data registers */
> -#define ADC_TS_X0X1  		0x30
> -#define ADC_TS_X2X3		0x34
> -#define ADC_TS_Y0Y1		0x38
> -#define ADC_TS_Y2Y3  		0x3c
> -#define ADC_TS_X4X5  		0x40
> -#define ADC_TS_X6X7  		0x44
> -#define ADC_TS_Y4Y5		0x48
> -#define ADC_TS_Y6Y7		0x50
> -
> -/* battery data */
> -#define ADC_MB_DATA		0x54
> -#define ADC_BB_DATA		0x58
> -
> -/* Sound data register */
> -#define ADC_SD_DAT0 		0x60
> -#define ADC_SD_DAT1		0x64
> -#define ADC_SD_DAT2		0x68
> -#define ADC_SD_DAT3		0x6c
> -#define ADC_SD_DAT4		0x70
> -#define ADC_SD_DAT5		0x74
> -#define ADC_SD_DAT6		0x78
> -#define ADC_SD_DAT7		0x7c
> diff --git a/arch/arm/mach-h720x/include/mach/hardware.h b/arch/arm/mach-h720x/include/mach/hardware.h
> deleted file mode 100644
> index c55a52c..0000000
> --- a/arch/arm/mach-h720x/include/mach/hardware.h
> +++ /dev/null
> @@ -1,190 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/hardware.h
> - *
> - * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
> - *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *
> - * This file contains the hardware definitions of the h720x processors
> - *
> - * 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.
> - *
> - * Do not add implementations specific defines here. This files contains
> - * only defines of the onchip peripherals. Add those defines to boards.h,
> - * which is included by this file.
> - */
> -
> -#ifndef __ASM_ARCH_HARDWARE_H
> -#define __ASM_ARCH_HARDWARE_H
> -
> -#define IOCLK (3686400L)
> -
> -/* Onchip peripherals */
> -
> -#define IO_VIRT			0xf0000000	/* IO peripherals */
> -#define IO_PHYS			0x80000000
> -#define IO_SIZE			0x00050000
> -
> -#ifdef CONFIG_CPU_H7202
> -#include "h7202-regs.h"
> -#elif defined CONFIG_CPU_H7201
> -#include "h7201-regs.h"
> -#else
> -#error machine definition mismatch
> -#endif
> -
> -/* Macro to access the CPU IO */
> -#define CPU_IO(x) (*(volatile u32*)(x))
> -
> -/* Macro to access general purpose regs (base, offset) */
> -#define CPU_REG(x,y) CPU_IO(x+y)
> -
> -/* Macro to access irq related regs */
> -#define IRQ_REG(x) CPU_REG(IRQC_VIRT,x)
> -
> -/* CPU registers */
> -/* general purpose I/O */
> -#define GPIO_VIRT(x)		(IO_VIRT + 0x23000 + ((x)<<5))
> -#define GPIO_A_VIRT		(GPIO_VIRT(0))
> -#define GPIO_B_VIRT		(GPIO_VIRT(1))
> -#define GPIO_C_VIRT		(GPIO_VIRT(2))
> -#define GPIO_D_VIRT		(GPIO_VIRT(3))
> -#define GPIO_E_VIRT		(GPIO_VIRT(4))
> -#define GPIO_AMULSEL		(GPIO_VIRT(0) + 0xA4)
> -
> -#define AMULSEL_USIN2	(1<<5)
> -#define AMULSEL_USOUT2	(1<<6)
> -#define AMULSEL_USIN3	(1<<13)
> -#define AMULSEL_USOUT3	(1<<14)
> -#define AMULSEL_IRDIN	(1<<15)
> -#define AMULSEL_IRDOUT	(1<<7)
> -
> -/* Register offsets general purpose I/O */
> -#define GPIO_DATA		0x00
> -#define GPIO_DIR		0x04
> -#define GPIO_MASK		0x08
> -#define GPIO_STAT		0x0C
> -#define GPIO_EDGE		0x10
> -#define GPIO_CLR		0x14
> -#define GPIO_POL		0x18
> -#define GPIO_EN			0x1C
> -
> -/*interrupt controller */
> -#define IRQC_VIRT		(IO_VIRT + 0x24000)
> -/* register offset interrupt controller */
> -#define IRQC_IER		0x00
> -#define IRQC_ISR		0x04
> -
> -/* timer unit */
> -#define TIMER_VIRT		(IO_VIRT + 0x25000)
> -/* Register offsets timer unit */
> -#define TM0_PERIOD   		0x00
> -#define TM0_COUNT    		0x08
> -#define TM0_CTRL     		0x10
> -#define TM1_PERIOD   		0x20
> -#define TM1_COUNT    		0x28
> -#define TM1_CTRL     		0x30
> -#define TM2_PERIOD   		0x40
> -#define TM2_COUNT    		0x48
> -#define TM2_CTRL     		0x50
> -#define TIMER_TOPCTRL		0x60
> -#define TIMER_TOPSTAT		0x64
> -#define T64_COUNTL		0x80
> -#define T64_COUNTH		0x84
> -#define T64_CTRL		0x88
> -#define T64_BASEL		0x94
> -#define T64_BASEH		0x98
> -/* Bitmaks timer unit TOPSTAT reg */
> -#define TSTAT_T0INT		0x1
> -#define TSTAT_T1INT		0x2
> -#define TSTAT_T2INT		0x4
> -#define TSTAT_T3INT		0x8
> -/* Bit description of TMx_CTRL register */
> -#define TM_START  		0x1
> -#define TM_REPEAT 		0x2
> -#define TM_RESET  		0x4
> -/* Bit description of TIMER_CTRL register */
> -#define ENABLE_TM0_INTR  	0x1
> -#define ENABLE_TM1_INTR  	0x2
> -#define ENABLE_TM2_INTR  	0x4
> -#define TIMER_ENABLE_BIT 	0x8
> -#define ENABLE_TIMER64   	0x10
> -#define ENABLE_TIMER64_INT	0x20
> -
> -/* PMU & PLL */
> -#define PMU_BASE 		(IO_VIRT + 0x1000)
> -#define PMU_MODE		0x00
> -#define PMU_STAT   		0x20
> -#define PMU_PLL_CTRL 		0x28
> -
> -/* PMU Mode bits */
> -#define PMU_MODE_SLOW		0x00
> -#define PMU_MODE_RUN		0x01
> -#define PMU_MODE_IDLE		0x02
> -#define PMU_MODE_SLEEP		0x03
> -#define PMU_MODE_INIT		0x04
> -#define PMU_MODE_DEEPSLEEP	0x07
> -#define PMU_MODE_WAKEUP		0x08
> -
> -/* PMU ... */
> -#define PLL_2_EN		0x8000
> -#define PLL_1_EN		0x4000
> -#define PLL_3_MUTE		0x0080
> -
> -/* Control bits for PMU/ PLL */
> -#define PMU_WARMRESET		0x00010000
> -#define PLL_CTRL_MASK23		0x000080ff
> -
> -/* LCD Controller */
> -#define LCD_BASE 		(IO_VIRT + 0x10000)
> -#define LCD_CTRL 		0x00
> -#define LCD_STATUS		0x04
> -#define LCD_STATUS_M		0x08
> -#define LCD_INTERRUPT		0x0C
> -#define LCD_DBAR		0x10
> -#define LCD_DCAR		0x14
> -#define LCD_TIMING0 		0x20
> -#define LCD_TIMING1 		0x24
> -#define LCD_TIMING2 		0x28
> -#define LCD_TEST		0x40
> -
> -/* LCD Control Bits */
> -#define LCD_CTRL_LCD_ENABLE   	0x00000001
> -/* Bits per pixel */
> -#define LCD_CTRL_LCD_BPP_MASK 	0x00000006
> -#define LCD_CTRL_LCD_4BPP    	0x00000000
> -#define LCD_CTRL_LCD_8BPP    	0x00000002
> -#define LCD_CTRL_LCD_16BPP   	0x00000004
> -#define LCD_CTRL_LCD_BW		0x00000008
> -#define LCD_CTRL_LCD_TFT	0x00000010
> -#define LCD_CTRL_BGR		0x00001000
> -#define LCD_CTRL_LCD_VCOMP	0x00080000
> -#define LCD_CTRL_LCD_MONO8	0x00200000
> -#define LCD_CTRL_LCD_PWR	0x00400000
> -#define LCD_CTRL_LCD_BLE	0x00800000
> -#define LCD_CTRL_LDBUSEN	0x01000000
> -
> -/* Palette */
> -#define LCD_PALETTE_BASE 	(IO_VIRT + 0x10400)
> -
> -/* Serial ports */
> -#define SERIAL0_OFS		0x20000
> -#define SERIAL0_VIRT 		(IO_VIRT + SERIAL0_OFS)
> -#define SERIAL0_BASE		(IO_PHYS + SERIAL0_OFS)
> -
> -#define SERIAL1_OFS		0x21000
> -#define SERIAL1_VIRT 		(IO_VIRT + SERIAL1_OFS)
> -#define SERIAL1_BASE		(IO_PHYS + SERIAL1_OFS)
> -
> -#define SERIAL_ENABLE		0x30
> -#define SERIAL_ENABLE_EN	(1<<0)
> -
> -/* General defines to pacify gcc */
> -
> -#define __ASM_ARCH_HARDWARE_INCMACH_H
> -#include "boards.h"
> -#undef __ASM_ARCH_HARDWARE_INCMACH_H
> -
> -#endif				/* __ASM_ARCH_HARDWARE_H */
> diff --git a/arch/arm/mach-h720x/include/mach/irqs.h b/arch/arm/mach-h720x/include/mach/irqs.h
> deleted file mode 100644
> index 430a92b..0000000
> --- a/arch/arm/mach-h720x/include/mach/irqs.h
> +++ /dev/null
> @@ -1,116 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/irqs.h
> - *
> - * Copyright (C) 2000 Jungjun Kim
> - *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
> - *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
> - *
> - */
> -
> -#ifndef __ASM_ARCH_IRQS_H
> -#define __ASM_ARCH_IRQS_H
> -
> -#if defined (CONFIG_CPU_H7201)
> -
> -#define IRQ_PMU		0		/* 0x000001 */
> -#define IRQ_DMA		1 		/* 0x000002 */
> -#define IRQ_LCD		2		/* 0x000004 */
> -#define IRQ_VGA		3 		/* 0x000008 */
> -#define IRQ_PCMCIA1 	4 		/* 0x000010 */
> -#define IRQ_PCMCIA2 	5 		/* 0x000020 */
> -#define IRQ_AFE		6 		/* 0x000040 */
> -#define IRQ_AIC		7 		/* 0x000080 */
> -#define IRQ_KEYBOARD 	8 		/* 0x000100 */
> -#define IRQ_TIMER0	9 		/* 0x000200 */
> -#define IRQ_RTC		10		/* 0x000400 */
> -#define IRQ_SOUND	11		/* 0x000800 */
> -#define IRQ_USB		12		/* 0x001000 */
> -#define IRQ_IrDA 	13		/* 0x002000 */
> -#define IRQ_UART0	14		/* 0x004000 */
> -#define IRQ_UART1	15		/* 0x008000 */
> -#define IRQ_SPI		16		/* 0x010000 */
> -#define IRQ_GPIOA 	17		/* 0x020000 */
> -#define IRQ_GPIOB	18		/* 0x040000 */
> -#define IRQ_GPIOC	19		/* 0x080000 */
> -#define IRQ_GPIOD	20		/* 0x100000 */
> -#define IRQ_CommRX	21		/* 0x200000 */
> -#define IRQ_CommTX	22		/* 0x400000 */
> -#define IRQ_Soft	23		/* 0x800000 */
> -
> -#define NR_GLBL_IRQS	24
> -
> -#define IRQ_CHAINED_GPIOA(x)  (NR_GLBL_IRQS + x)
> -#define IRQ_CHAINED_GPIOB(x)  (IRQ_CHAINED_GPIOA(32) + x)
> -#define IRQ_CHAINED_GPIOC(x)  (IRQ_CHAINED_GPIOB(32) + x)
> -#define IRQ_CHAINED_GPIOD(x)  (IRQ_CHAINED_GPIOC(32) + x)
> -#define NR_IRQS               IRQ_CHAINED_GPIOD(32)
> -
> -/* Enable mask for multiplexed interrupts */
> -#define IRQ_ENA_MUX	(1<<IRQ_GPIOA) | (1<<IRQ_GPIOB) \
> -			| (1<<IRQ_GPIOC) | (1<<IRQ_GPIOD)
> -
> -
> -#elif defined (CONFIG_CPU_H7202)
> -
> -#define IRQ_PMU		0		/* 0x00000001 */
> -#define IRQ_DMA		1		/* 0x00000002 */
> -#define IRQ_LCD		2		/* 0x00000004 */
> -#define IRQ_SOUND	3		/* 0x00000008 */
> -#define IRQ_I2S		4		/* 0x00000010 */
> -#define IRQ_USB 	5		/* 0x00000020 */
> -#define IRQ_MMC 	6		/* 0x00000040 */
> -#define IRQ_RTC 	7		/* 0x00000080 */
> -#define IRQ_UART0 	8		/* 0x00000100 */
> -#define IRQ_UART1 	9		/* 0x00000200 */
> -#define IRQ_UART2 	10		/* 0x00000400 */
> -#define IRQ_UART3 	11		/* 0x00000800 */
> -#define IRQ_KBD 	12		/* 0x00001000 */
> -#define IRQ_PS2 	13		/* 0x00002000 */
> -#define IRQ_AIC 	14		/* 0x00004000 */
> -#define IRQ_TIMER0 	15		/* 0x00008000 */
> -#define IRQ_TIMERX 	16		/* 0x00010000 */
> -#define IRQ_WDT 	17		/* 0x00020000 */
> -#define IRQ_CAN0 	18		/* 0x00040000 */
> -#define IRQ_CAN1 	19		/* 0x00080000 */
> -#define IRQ_EXT0 	20		/* 0x00100000 */
> -#define IRQ_EXT1 	21		/* 0x00200000 */
> -#define IRQ_GPIOA 	22		/* 0x00400000 */
> -#define IRQ_GPIOB 	23		/* 0x00800000 */
> -#define IRQ_GPIOC 	24		/* 0x01000000 */
> -#define IRQ_GPIOD 	25		/* 0x02000000 */
> -#define IRQ_GPIOE 	26		/* 0x04000000 */
> -#define IRQ_COMMRX 	27		/* 0x08000000 */
> -#define IRQ_COMMTX 	28		/* 0x10000000 */
> -#define IRQ_SMC 	29		/* 0x20000000 */
> -#define IRQ_Soft 	30		/* 0x40000000 */
> -#define IRQ_RESERVED1 	31		/* 0x80000000 */
> -#define NR_GLBL_IRQS	32
> -
> -#define NR_TIMERX_IRQS	3
> -
> -#define IRQ_CHAINED_GPIOA(x)  (NR_GLBL_IRQS + x)
> -#define IRQ_CHAINED_GPIOB(x)  (IRQ_CHAINED_GPIOA(32) + x)
> -#define IRQ_CHAINED_GPIOC(x)  (IRQ_CHAINED_GPIOB(32) + x)
> -#define IRQ_CHAINED_GPIOD(x)  (IRQ_CHAINED_GPIOC(32) + x)
> -#define IRQ_CHAINED_GPIOE(x)  (IRQ_CHAINED_GPIOD(32) + x)
> -#define IRQ_CHAINED_TIMERX(x) (IRQ_CHAINED_GPIOE(32) + x)
> -#define IRQ_TIMER1            (IRQ_CHAINED_TIMERX(0))
> -#define IRQ_TIMER2            (IRQ_CHAINED_TIMERX(1))
> -#define IRQ_TIMER64B          (IRQ_CHAINED_TIMERX(2))
> -
> -#define NR_IRQS		(IRQ_CHAINED_TIMERX(NR_TIMERX_IRQS))
> -
> -/* Enable mask for multiplexed interrupts */
> -#define IRQ_ENA_MUX	(1<<IRQ_TIMERX) | (1<<IRQ_GPIOA) | (1<<IRQ_GPIOB) | \
> -			(1<<IRQ_GPIOC) 	| (1<<IRQ_GPIOD) | (1<<IRQ_GPIOE) | \
> -			(1<<IRQ_TIMERX)
> -
> -#else
> -#error cpu definition mismatch
> -#endif
> -
> -/* decode irq number to register number */
> -#define IRQ_TO_REGNO(irq) ((irq - NR_GLBL_IRQS) >> 5)
> -#define IRQ_TO_BIT(irq) (1 << ((irq - NR_GLBL_IRQS) % 32))
> -
> -#endif
> diff --git a/arch/arm/mach-h720x/include/mach/isa-dma.h b/arch/arm/mach-h720x/include/mach/isa-dma.h
> deleted file mode 100644
> index 3eafb3f..0000000
> --- a/arch/arm/mach-h720x/include/mach/isa-dma.h
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/isa-dma.h
> - *
> - * Architecture DMA routes
> - *
> - * Copyright (C) 1997.1998 Russell King
> - */
> -#ifndef __ASM_ARCH_DMA_H
> -#define __ASM_ARCH_DMA_H
> -
> -#if defined (CONFIG_CPU_H7201)
> -#define MAX_DMA_CHANNELS	3
> -#elif defined (CONFIG_CPU_H7202)
> -#define MAX_DMA_CHANNELS	4
> -#else
> -#error processor definition missmatch
> -#endif
> -
> -#endif /* __ASM_ARCH_DMA_H */
> diff --git a/arch/arm/mach-h720x/include/mach/timex.h b/arch/arm/mach-h720x/include/mach/timex.h
> deleted file mode 100644
> index 3f2f447..0000000
> --- a/arch/arm/mach-h720x/include/mach/timex.h
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/timex.h
> - * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
> - *
> - * 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.
> - */
> -
> -#ifndef __ASM_ARCH_TIMEX
> -#define __ASM_ARCH_TIMEX
> -
> -#define CLOCK_TICK_RATE		3686400
> -
> -#endif
> diff --git a/arch/arm/mach-h720x/include/mach/uncompress.h b/arch/arm/mach-h720x/include/mach/uncompress.h
> deleted file mode 100644
> index 43e343c..0000000
> --- a/arch/arm/mach-h720x/include/mach/uncompress.h
> +++ /dev/null
> @@ -1,36 +0,0 @@
> -/*
> - * arch/arm/mach-h720x/include/mach/uncompress.h
> - *
> - * Copyright (C) 2001-2002 Jungjun Kim
> - */
> -
> -#ifndef __ASM_ARCH_UNCOMPRESS_H
> -#define __ASM_ARCH_UNCOMPRESS_H
> -
> -#include <mach/hardware.h>
> -
> -#define LSR 	0x14
> -#define TEMPTY 	0x40
> -
> -static inline void putc(int c)
> -{
> -	volatile unsigned char *p = (volatile unsigned char *)(IO_PHYS+0x20000);
> -
> -	/* wait until transmit buffer is empty */
> -	while((p[LSR] & TEMPTY) == 0x0)
> -		barrier();
> -
> -	/* write next character */
> -	*p = c;
> -}
> -
> -static inline void flush(void)
> -{
> -}
> -
> -/*
> - * nothing to do
> - */
> -#define arch_decomp_setup()
> -
> -#endif
> -- 
> 1.8.1.2
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 5/6] ARM: kill Hynix h720x platform
  2013-03-14 22:12 ` [PATCH 5/6] ARM: kill Hynix h720x platform Arnd Bergmann
  2013-03-15  5:21   ` Robert Schwebel
  2013-03-15  6:13   ` Sascha Hauer
@ 2013-03-15 12:27   ` Thomas Petazzoni
  2013-03-15 16:12     ` Arnd Bergmann
  2 siblings, 1 reply; 30+ messages in thread
From: Thomas Petazzoni @ 2013-03-15 12:27 UTC (permalink / raw)
  To: linux-arm-kernel

Dear Arnd Bergmann,

On Thu, 14 Mar 2013 23:12:57 +0100, Arnd Bergmann wrote:
> The platform was merged about 10 years ago, and has seen few updates
> for most of the time since. The people that merged the code seem
> no longer interested in it either, so let's remove it now.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Robert Schwebel <r.schwebel@pengutronix.de>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>

If this gets removed, then presumably drivers/mtd/maps/h720x-flash.c
should be removed as well.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-14 22:12 ` [PATCH 3/6] ARM: remove fa526 CPU support Arnd Bergmann
@ 2013-03-15 12:49   ` Florian Fainelli
  2013-03-15 13:39     ` Arnd Bergmann
  2013-03-18 10:22     ` Jonas Jensen
  0 siblings, 2 replies; 30+ messages in thread
From: Florian Fainelli @ 2013-03-15 12:49 UTC (permalink / raw)
  To: linux-arm-kernel

Le 03/14/13 23:12, Arnd Bergmann a ?crit :
> With the Cortina Gemini platform gone, nothing in ARM uses
> the Faraday 526 CPU core support any more. There is at least
> one other platform using this (Moschip MCS814x), but the
> efforts to get that merged into mainline appear to have
> stalled.

I was actually wrong for MCS8140, they used a genuine ARM926EJS core, 
newer version like MCS8142 and MCS8144 use a FA626 core that the 
mainline kernel does not support anyway.

Someone recently announced support for a Moxart SoC which seems to use 
the FA526 core however.

>
> If someone still needs this code, please speak up now,
> otherwise we will remove it now. Of course there is
> always the option to revert this patch if we need it
> again later.
--
Florian

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 2/6] ARM: gemini: remove platform support
  2013-03-14 22:12 ` [PATCH 2/6] ARM: gemini: remove platform support Arnd Bergmann
@ 2013-03-15 13:39   ` Florian Fainelli
  0 siblings, 0 replies; 30+ messages in thread
From: Florian Fainelli @ 2013-03-15 13:39 UTC (permalink / raw)
  To: linux-arm-kernel

Le 03/14/13 23:12, Arnd Bergmann a ?crit :
> The gemini platform has not seen any updates from its
> maintainer since 2010, and has no defconfig file, which
> has lead to bitrot in a number of places:
>
> * System restart has been broken for a long time despite
>    repeated attempts from Russell to get the obvious
>    fix at least acknowledged by someone who can test it.
> * The platform still uses mach/gpio.h, which has been
>    deprecated for some time, and since Kconfig does not
>    select NEED_MACH_GPIO_H, it actually failed to build
>    because of this.
> * A change to asm/io.h introduced a number of compiler
>    warnings for gemini specific code that confuses
>    physical and virtual addresses.

Imre, you are the one maintaining gemini support in OpenWrt, do you have 
any objections removing this platform or?
--
Florian

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-15 12:49   ` Florian Fainelli
@ 2013-03-15 13:39     ` Arnd Bergmann
  2013-03-18 10:22     ` Jonas Jensen
  1 sibling, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-15 13:39 UTC (permalink / raw)
  To: linux-arm-kernel

On Friday 15 March 2013, Florian Fainelli wrote:
> Le 03/14/13 23:12, Arnd Bergmann a ?crit :
> > With the Cortina Gemini platform gone, nothing in ARM uses
> > the Faraday 526 CPU core support any more. There is at least
> > one other platform using this (Moschip MCS814x), but the
> > efforts to get that merged into mainline appear to have
> > stalled.
> 
> I was actually wrong for MCS8140, they used a genuine ARM926EJS core, 
> newer version like MCS8142 and MCS8144 use a FA626 core that the 
> mainline kernel does not support anyway.

Ah, I see. FA626 seems quite different from FA526, and closer to an ARM926
if I'm reading the feature list correctly. There are apparently even a
bunch of newer cores from Faraday (FA726, FA606, FA646, FMP626) including
an SMP capable one.

> Someone recently announced support for a Moxart SoC which seems to use 
> the FA526 core however.

Yes, I saw that now. I'll drop the fa526 removal patch for now,
we'll see how that work progresses. The platform port is unfortunately
on an ancient kernel, and updating it will be a lot of work, so it
might not happen in the end.

	Arnd

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 5/6] ARM: kill Hynix h720x platform
  2013-03-15 12:27   ` Thomas Petazzoni
@ 2013-03-15 16:12     ` Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-15 16:12 UTC (permalink / raw)
  To: linux-arm-kernel

On Friday 15 March 2013, Thomas Petazzoni wrote:
> On Thu, 14 Mar 2013 23:12:57 +0100, Arnd Bergmann wrote:
> > The platform was merged about 10 years ago, and has seen few updates
> > for most of the time since. The people that merged the code seem
> > no longer interested in it either, so let's remove it now.
> > 
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: Robert Schwebel <r.schwebel@pengutronix.de>
> > Cc: Sascha Hauer <s.hauer@pengutronix.de>
> 
> If this gets removed, then presumably drivers/mtd/maps/h720x-flash.c
> should be removed as well.

Correct, see patch 6.

	Arnd

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 6/6] mtd: remove h720x flash support
  2013-03-14 22:12   ` Arnd Bergmann
@ 2013-03-18  7:09     ` Artem Bityutskiy
  -1 siblings, 0 replies; 30+ messages in thread
From: Artem Bityutskiy @ 2013-03-18  7:09 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: David Woodhouse, linux-mtd, linux-arm-kernel

On Thu, 2013-03-14 at 23:12 +0100, Arnd Bergmann wrote:
> The h720x platform support is going away in linux-3.10, so the
> MTD driver will also not be needed any more.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Pushed to l2-mtd.git, thanks!

-- 
Best Regards,
Artem Bityutskiy

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 6/6] mtd: remove h720x flash support
@ 2013-03-18  7:09     ` Artem Bityutskiy
  0 siblings, 0 replies; 30+ messages in thread
From: Artem Bityutskiy @ 2013-03-18  7:09 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 2013-03-14 at 23:12 +0100, Arnd Bergmann wrote:
> The h720x platform support is going away in linux-3.10, so the
> MTD driver will also not be needed any more.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Pushed to l2-mtd.git, thanks!

-- 
Best Regards,
Artem Bityutskiy

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-15 12:49   ` Florian Fainelli
  2013-03-15 13:39     ` Arnd Bergmann
@ 2013-03-18 10:22     ` Jonas Jensen
  2013-03-18 11:16       ` Arnd Bergmann
  1 sibling, 1 reply; 30+ messages in thread
From: Jonas Jensen @ 2013-03-18 10:22 UTC (permalink / raw)
  To: linux-arm-kernel

On 15 March 2013 13:49, Florian Fainelli <florian@openwrt.org> wrote:
> Someone recently announced support for a Moxart SoC which seems to use the
> FA526 core however.

That was probably me, and I understand people want it gone. Even
Debian wants v4:s gone because they're not strictly EABI (
http://lists.debian.org/debian-arm/2010/12/msg00044.html ).

The port is not near mainline but I think I'd prefer if CPU_FA526
wasn't removed. If someone stepped up to maintain ARCH_GEMINI (so I
could peek at the changes) that would be even better :)

Best regards,
Jonas

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-18 10:22     ` Jonas Jensen
@ 2013-03-18 11:16       ` Arnd Bergmann
  2013-03-18 11:33         ` Florian Fainelli
  2013-03-25 20:11         ` Tomasz Figa
  0 siblings, 2 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-18 11:16 UTC (permalink / raw)
  To: linux-arm-kernel

On Monday 18 March 2013, Jonas Jensen wrote:
> 
> On 15 March 2013 13:49, Florian Fainelli <florian@openwrt.org> wrote:
> > Someone recently announced support for a Moxart SoC which seems to use the
> > FA526 core however.
> 
> That was probably me, and I understand people want it gone. Even
> Debian wants v4:s gone because they're not strictly EABI (
> http://lists.debian.org/debian-arm/2010/12/msg00044.html ).

It's not that we want it gone, it si that we want unmaintained code
to be removed. ARMv4 support is going to stay at least for a couple
more years, probably longer given the number of ARM7TDMI and StrongARM
systems still in use.

There are probably no general purpose distros that will build for
ARMv4 any more, but a lot of the embedded distros (OpenWRT, OpenEmbedded,
Buildroot, ...) typically build all user space from source anyway, so
there is no issue.

> The port is not near mainline but I think I'd prefer if CPU_FA526
> wasn't removed. If someone stepped up to maintain ARCH_GEMINI (so I
> could peek at the changes) that would be even better :)

I've tried before to find someone who is still interested in Gemini,
but it seems nobody has the hardware any more.

My plan right now is to leave CPU_FA526 alone but drop ARCH_GEMINI
in 3.10. We can revisit the situation next year. If we don't hear back
from you or someone else interested in this CPU type by then, we can
still drop it then. It's not a maintainance burden anyway, the CPU
specific code is well isolated and does not change a lot, compare
to platform specific code.

	Arnd

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-18 11:16       ` Arnd Bergmann
@ 2013-03-18 11:33         ` Florian Fainelli
  2013-03-18 16:12           ` Russell King - ARM Linux
  2013-03-19  9:00           ` Imre Kaloz
  2013-03-25 20:11         ` Tomasz Figa
  1 sibling, 2 replies; 30+ messages in thread
From: Florian Fainelli @ 2013-03-18 11:33 UTC (permalink / raw)
  To: linux-arm-kernel

Le 03/18/13 12:16, Arnd Bergmann a ?crit :
> On Monday 18 March 2013, Jonas Jensen wrote:
>>
>> On 15 March 2013 13:49, Florian Fainelli <florian@openwrt.org> wrote:
>>> Someone recently announced support for a Moxart SoC which seems to use the
>>> FA526 core however.
>>
>> That was probably me, and I understand people want it gone. Even
>> Debian wants v4:s gone because they're not strictly EABI (
>> http://lists.debian.org/debian-arm/2010/12/msg00044.html ).
>
> It's not that we want it gone, it si that we want unmaintained code
> to be removed. ARMv4 support is going to stay at least for a couple
> more years, probably longer given the number of ARM7TDMI and StrongARM
> systems still in use.
>
> There are probably no general purpose distros that will build for
> ARMv4 any more, but a lot of the embedded distros (OpenWRT, OpenEmbedded,
> Buildroot, ...) typically build all user space from source anyway, so
> there is no issue.

Debian is still kind enough to provide an ARMv4t and higher port 
(ArmEabi) though I am not sure how long this is going to stay that way.

>
>> The port is not near mainline but I think I'd prefer if CPU_FA526
>> wasn't removed. If someone stepped up to maintain ARCH_GEMINI (so I
>> could peek at the changes) that would be even better :)
>
> I've tried before to find someone who is still interested in Gemini,
> but it seems nobody has the hardware any more.

Imre Kaloz is supposed to have some, if you want to get some hardware 
yourself it seems that the mainline boards (WBD111, WBD222, NAS4420) are 
the only hardware devices that OpenWrt also supports. The OpenWrt 
patches we have add support for Ethernet, watchdog, USB, PCI, but have 
not been submitted mainline.

>
> My plan right now is to leave CPU_FA526 alone but drop ARCH_GEMINI
> in 3.10. We can revisit the situation next year. If we don't hear back
> from you or someone else interested in this CPU type by then, we can
> still drop it then. It's not a maintainance burden anyway, the CPU
> specific code is well isolated and does not change a lot, compare
> to platform specific code.

Sounds good.
--
Florian

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-18 11:33         ` Florian Fainelli
@ 2013-03-18 16:12           ` Russell King - ARM Linux
  2013-03-19  9:00           ` Imre Kaloz
  1 sibling, 0 replies; 30+ messages in thread
From: Russell King - ARM Linux @ 2013-03-18 16:12 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Mar 18, 2013 at 12:33:04PM +0100, Florian Fainelli wrote:
> Debian is still kind enough to provide an ARMv4t and higher port  

And I still build some ARMv4 OABI Fedora RPMs myself - but I don't
distribute them because then people expect _me_ do fix their problems
with them.

lists.arm.linux.org.uk / firewall / servers here are all still OABI,
and I don't see any possible upgrade path away from OABI - which is
something I brought up when EABI first reared its ugly head.  Now,
we have N different versions of EABI too.  I'm sure its time we were
discussing NABI - "Next ABI". :)

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-18 11:33         ` Florian Fainelli
  2013-03-18 16:12           ` Russell King - ARM Linux
@ 2013-03-19  9:00           ` Imre Kaloz
  2013-03-19 10:35             ` Arnd Bergmann
  1 sibling, 1 reply; 30+ messages in thread
From: Imre Kaloz @ 2013-03-19  9:00 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Mon, 18 Mar 2013 12:33:04 +0100, Florian Fainelli <florian@openwrt.org> wrote:

> Le 03/18/13 12:16, Arnd Bergmann a ?crit :
>> On Monday 18 March 2013, Jonas Jensen wrote:
>>>

<snip>

>>> The port is not near mainline but I think I'd prefer if CPU_FA526
>>> wasn't removed. If someone stepped up to maintain ARCH_GEMINI (so I
>>> could peek at the changes) that would be even better :)
>>
>> I've tried before to find someone who is still interested in Gemini,
>> but it seems nobody has the hardware any more.
>
> Imre Kaloz is supposed to have some, if you want to get some hardware
> yourself it seems that the mainline boards (WBD111, WBD222, NAS4420) are
> the only hardware devices that OpenWrt also supports. The OpenWrt
> patches we have add support for Ethernet, watchdog, USB, PCI, but have
> not been submitted mainline.

I have two wbd111 boards, but their bootloader is fubared - for whatever reason the bootloader's ethernet support works horribly for me, as in an image transfer takes well over 10 mins, and 90% of the time it fails meantime. I have another gemini based board, which doesn't have mainline support, yet.

So for gemini, what I can offer is digging up the wbd111 and testing your patches this weekend - if that works, it can stay in mainline for another kernel release, and I can try to add support for the other board (so there would be a sane platform to test on). If you are going to drop it, I will likely keep it working in OpenWrt as long as those boards don't die on me.


Imre

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-19  9:00           ` Imre Kaloz
@ 2013-03-19 10:35             ` Arnd Bergmann
  2013-03-19 14:55               ` Imre Kaloz
  0 siblings, 1 reply; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-19 10:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Tuesday 19 March 2013, Imre Kaloz wrote:
> I have two wbd111 boards, but their bootloader is fubared - for whatever
> reason the bootloader's ethernet support works horribly for me, as in an
> image transfer takes well over 10 mins, and 90% of the time it fails
> meantime. I have another gemini based board, which doesn't have mainline
> support, yet.
> 
> So for gemini, what I can offer is digging up the wbd111 and testing your
> patches this weekend - if that works, it can stay in mainline for another
> kernel release, and I can try to add support for the other board (so
> there would be a sane platform to test on). If you are going to drop it,
> I will likely keep it working in OpenWrt as long as those boards don't
> die on me.

Sounds good. If you are still interested in keeping the code alive, we
shouldn't drop it upstream. Can you also add a defconfig file that
enables all the gemini specific Kconfig code plus whatever you use
in OpenWRT?

Part of the reason why the platform was so broken is that it never had
a defconfig, and we didn't notice the bitrot.

	Arnd

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-19 10:35             ` Arnd Bergmann
@ 2013-03-19 14:55               ` Imre Kaloz
  2013-03-25 19:06                 ` Imre Kaloz
  0 siblings, 1 reply; 30+ messages in thread
From: Imre Kaloz @ 2013-03-19 14:55 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, 19 Mar 2013 11:35:45 +0100, Arnd Bergmann <arnd@arndb.de> wrote:

> On Tuesday 19 March 2013, Imre Kaloz wrote:
>> I have two wbd111 boards, but their bootloader is fubared - for whatever
>> reason the bootloader's ethernet support works horribly for me, as in an
>> image transfer takes well over 10 mins, and 90% of the time it fails
>> meantime. I have another gemini based board, which doesn't have mainline
>> support, yet.
>>
>> So for gemini, what I can offer is digging up the wbd111 and testing your
>> patches this weekend - if that works, it can stay in mainline for another
>> kernel release, and I can try to add support for the other board (so
>> there would be a sane platform to test on). If you are going to drop it,
>> I will likely keep it working in OpenWrt as long as those boards don't
>> die on me.
>
> Sounds good. If you are still interested in keeping the code alive, we
> shouldn't drop it upstream. Can you also add a defconfig file that
> enables all the gemini specific Kconfig code plus whatever you use
> in OpenWRT?
>
> Part of the reason why the platform was so broken is that it never had
> a defconfig, and we didn't notice the bitrot.

Sure, I'll try to get all of this done this weekend.


Imre

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-19 14:55               ` Imre Kaloz
@ 2013-03-25 19:06                 ` Imre Kaloz
  2013-03-25 19:17                   ` Arnd Bergmann
  0 siblings, 1 reply; 30+ messages in thread
From: Imre Kaloz @ 2013-03-25 19:06 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, 19 Mar 2013 15:55:18 +0100, Imre Kaloz <kaloz@openwrt.org> wrote:

> On Tue, 19 Mar 2013 11:35:45 +0100, Arnd Bergmann <arnd@arndb.de> wrote:
>
>> On Tuesday 19 March 2013, Imre Kaloz wrote:
>>> I have two wbd111 boards, but their bootloader is fubared - for whatever
>>> reason the bootloader's ethernet support works horribly for me, as in an
>>> image transfer takes well over 10 mins, and 90% of the time it fails
>>> meantime. I have another gemini based board, which doesn't have mainline
>>> support, yet.
>>>
>>> So for gemini, what I can offer is digging up the wbd111 and testing your
>>> patches this weekend - if that works, it can stay in mainline for another
>>> kernel release, and I can try to add support for the other board (so
>>> there would be a sane platform to test on). If you are going to drop it,
>>> I will likely keep it working in OpenWrt as long as those boards don't
>>> die on me.
>>
>> Sounds good. If you are still interested in keeping the code alive, we
>> shouldn't drop it upstream. Can you also add a defconfig file that
>> enables all the gemini specific Kconfig code plus whatever you use
>> in OpenWRT?
>>
>> Part of the reason why the platform was so broken is that it never had
>> a defconfig, and we didn't notice the bitrot.
>
> Sure, I'll try to get all of this done this weekend.
>

Just tested 3.9-rc4 with your "ARM: gemini: get platform to build again" patch and the ones we have in our tree and it works on my WBD111. Please apply that patch and with a little luck I can get the other board working for 3.11, with the additional defconfig and some more hw support as well -- or if you would like so, I can get a defconfig done for 3.10, but I'm not sure it makes too much sense.


Imre

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-25 19:06                 ` Imre Kaloz
@ 2013-03-25 19:17                   ` Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-25 19:17 UTC (permalink / raw)
  To: linux-arm-kernel

On Monday 25 March 2013, Imre Kaloz wrote:
> Just tested 3.9-rc4 with your "ARM: gemini: get platform to build
> again" patch and the ones we have in our tree and it works on my
> WBD111. Please apply that patch and with a little luck I can get
> the other board working for 3.11, with the additional defconfig
> and some more hw support as well

Ok, excellent. Thanks a lot for testing!

> -- or if you would like so, 
> I can get a defconfig done for 3.10, but I'm not sure it makes
> too much sense.

I'd prefer to have the defconfig for 3.10, mainly so I notice
when we introduce build errors. Ideally the defconfig should
enable any code that is only available for gemini. I frequently
build all defconfigs when I apply cross-platform patches, and
try to use a clean build as the minimum acceptance criteria.

	Arnd

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-18 11:16       ` Arnd Bergmann
  2013-03-18 11:33         ` Florian Fainelli
@ 2013-03-25 20:11         ` Tomasz Figa
  2013-03-27  0:52           ` Tomasz Figa
  1 sibling, 1 reply; 30+ messages in thread
From: Tomasz Figa @ 2013-03-25 20:11 UTC (permalink / raw)
  To: linux-arm-kernel

On Monday 18 of March 2013 11:16:17 Arnd Bergmann wrote:
> On Monday 18 March 2013, Jonas Jensen wrote:
> > On 15 March 2013 13:49, Florian Fainelli <florian@openwrt.org> wrote:
> > > Someone recently announced support for a Moxart SoC which seems to
> > > use the FA526 core however.
> > 
> > That was probably me, and I understand people want it gone. Even
> > Debian wants v4:s gone because they're not strictly EABI (
> > http://lists.debian.org/debian-arm/2010/12/msg00044.html ).
> 
> It's not that we want it gone, it si that we want unmaintained code
> to be removed. ARMv4 support is going to stay at least for a couple
> more years, probably longer given the number of ARM7TDMI and StrongARM
> systems still in use.
> 
> There are probably no general purpose distros that will build for
> ARMv4 any more, but a lot of the embedded distros (OpenWRT,
> OpenEmbedded, Buildroot, ...) typically build all user space from
> source anyway, so there is no issue.
> 
> > The port is not near mainline but I think I'd prefer if CPU_FA526
> > wasn't removed. If someone stepped up to maintain ARCH_GEMINI (so I
> > could peek at the changes) that would be even better :)
> 
> I've tried before to find someone who is still interested in Gemini,
> but it seems nobody has the hardware any more.

I should still have a SquareOne SQ201 (Gemini-based NAS/router/WLAN AP) 
somewhere. However I doubt that I will be able to find time to do anything 
with it anytime soon, so I can give it to someone willing to do something 
with Gemini platform in mainline. (I would prefer someone from EU, though, 
as here in Poland the cost of sending anything outside the EU is awfully 
high...).

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 3/6] ARM: remove fa526 CPU support
  2013-03-25 20:11         ` Tomasz Figa
@ 2013-03-27  0:52           ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-03-27  0:52 UTC (permalink / raw)
  To: linux-arm-kernel

On Monday 25 of March 2013 21:11:33 Tomasz Figa wrote:
> On Monday 18 of March 2013 11:16:17 Arnd Bergmann wrote:
> > On Monday 18 March 2013, Jonas Jensen wrote:
> > > On 15 March 2013 13:49, Florian Fainelli <florian@openwrt.org> 
wrote:
> > > > Someone recently announced support for a Moxart SoC which seems to
> > > > use the FA526 core however.
> > > 
> > > That was probably me, and I understand people want it gone. Even
> > > Debian wants v4:s gone because they're not strictly EABI (
> > > http://lists.debian.org/debian-arm/2010/12/msg00044.html ).
> > 
> > It's not that we want it gone, it si that we want unmaintained code
> > to be removed. ARMv4 support is going to stay at least for a couple
> > more years, probably longer given the number of ARM7TDMI and StrongARM
> > systems still in use.
> > 
> > There are probably no general purpose distros that will build for
> > ARMv4 any more, but a lot of the embedded distros (OpenWRT,
> > OpenEmbedded, Buildroot, ...) typically build all user space from
> > source anyway, so there is no issue.
> > 
> > > The port is not near mainline but I think I'd prefer if CPU_FA526
> > > wasn't removed. If someone stepped up to maintain ARCH_GEMINI (so I
> > > could peek at the changes) that would be even better :)
> > 
> > I've tried before to find someone who is still interested in Gemini,
> > but it seems nobody has the hardware any more.
> 
> I should still have a SquareOne SQ201 (Gemini-based NAS/router/WLAN AP)
> somewhere. However I doubt that I will be able to find time to do
> anything with it anytime soon, so I can give it to someone willing to
> do something with Gemini platform in mainline. (I would prefer someone
> from EU, though, as here in Poland the cost of sending anything outside
> the EU is awfully high...).

Already taken by Florian. Good that it will finally find some use after 
spending several years in a cabinet.

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 0/6] ARM platform spring cleaning
       [not found] <20130315060824.GA9782@lunn.ch>
@ 2013-03-15 10:35 ` Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-15 10:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Friday 15 March 2013, Andrew Lunn wrote:
> I see you plan to remove fa526 support.
> 
> Did you see:
> 
> https://lkml.org/lkml/2013/3/13/288

No I had missed that.

> a couple of days ago. Its quite a way from being ready for mainline,
> but assuming Jonas keeps working on this port, he will need fa526
> support.

Ok, I'll drop the fa526 removal patch then. Thanks for pointing me
to that submission.

There was some talk about merging some other fa526 based platform
a while ago, but the people working on that seem to have lost
interest for now, so I assumed that gemini would be the last one.

	Arnd

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 0/6] ARM platform spring cleaning
@ 2013-03-14 22:12 Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:12 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: patches, Olof Johansson, linux-kernel, Arnd Bergmann

We have discussed cleaning these up before, but we never actually
removed them. For all I can tell, none of these have any users
in the upstream kernel, so they can be removed. If you know of
anyone using them, please yell now, or send a revert patch
later if you really want them back.

Arnd Bergmann (6):
  ARM: gemini: get platform to build again
  ARM: gemini: remove platform support
  ARM: remove fa526 CPU support
  ARM: l7200: remove zombie file
  ARM: kill Hynix h720x platform
  mtd: remove h720x flash support

 MAINTAINERS                                     |  14 --
 arch/arm/Kconfig                                |  22 +-
 arch/arm/Makefile                               |   3 -
 arch/arm/boot/compressed/head.S                 |  28 ---
 arch/arm/configs/h7201_defconfig                |  27 ---
 arch/arm/configs/h7202_defconfig                |  47 ----
 arch/arm/include/asm/barrier.h                  |   6 -
 arch/arm/include/asm/glue-cache.h               |   8 -
 arch/arm/include/asm/glue-proc.h                |   9 -
 arch/arm/include/asm/page.h                     |   8 -
 arch/arm/include/asm/tlbflush.h                 |  19 --
 arch/arm/mach-gemini/Kconfig                    |  40 ----
 arch/arm/mach-gemini/Makefile                   |  13 --
 arch/arm/mach-gemini/Makefile.boot              |   9 -
 arch/arm/mach-gemini/board-nas4220b.c           | 106 ---------
 arch/arm/mach-gemini/board-rut1xx.c             |  90 --------
 arch/arm/mach-gemini/board-wbd111.c             | 133 ------------
 arch/arm/mach-gemini/board-wbd222.c             | 133 ------------
 arch/arm/mach-gemini/common.h                   |  29 ---
 arch/arm/mach-gemini/devices.c                  | 118 ----------
 arch/arm/mach-gemini/gpio.c                     | 230 --------------------
 arch/arm/mach-gemini/idle.c                     |  29 ---
 arch/arm/mach-gemini/include/mach/debug-macro.S |  21 --
 arch/arm/mach-gemini/include/mach/entry-macro.S |  33 ---
 arch/arm/mach-gemini/include/mach/global_reg.h  | 278 ------------------------
 arch/arm/mach-gemini/include/mach/gpio.h        |  20 --
 arch/arm/mach-gemini/include/mach/hardware.h    |  74 -------
 arch/arm/mach-gemini/include/mach/irqs.h        |  53 -----
 arch/arm/mach-gemini/include/mach/system.h      |  23 --
 arch/arm/mach-gemini/include/mach/timex.h       |  13 --
 arch/arm/mach-gemini/include/mach/uncompress.h  |  42 ----
 arch/arm/mach-gemini/irq.c                      | 103 ---------
 arch/arm/mach-gemini/mm.c                       |  82 -------
 arch/arm/mach-gemini/time.c                     |  89 --------
 arch/arm/mach-h720x/Kconfig                     |  40 ----
 arch/arm/mach-h720x/Makefile                    |  16 --
 arch/arm/mach-h720x/Makefile.boot               |   2 -
 arch/arm/mach-h720x/common.c                    | 268 -----------------------
 arch/arm/mach-h720x/common.h                    |  30 ---
 arch/arm/mach-h720x/cpu-h7201.c                 |  57 -----
 arch/arm/mach-h720x/cpu-h7202.c                 | 225 -------------------
 arch/arm/mach-h720x/h7201-eval.c                |  38 ----
 arch/arm/mach-h720x/h7202-eval.c                |  81 -------
 arch/arm/mach-h720x/include/mach/boards.h       |  53 -----
 arch/arm/mach-h720x/include/mach/debug-macro.S  |  40 ----
 arch/arm/mach-h720x/include/mach/entry-macro.S  |  57 -----
 arch/arm/mach-h720x/include/mach/h7201-regs.h   |  67 ------
 arch/arm/mach-h720x/include/mach/h7202-regs.h   | 155 -------------
 arch/arm/mach-h720x/include/mach/hardware.h     | 190 ----------------
 arch/arm/mach-h720x/include/mach/irqs.h         | 116 ----------
 arch/arm/mach-h720x/include/mach/isa-dma.h      |  19 --
 arch/arm/mach-h720x/include/mach/timex.h        |  15 --
 arch/arm/mach-h720x/include/mach/uncompress.h   |  36 ---
 arch/arm/mach-l7200/include/mach/debug-macro.S  |  38 ----
 arch/arm/mm/Kconfig                             |  32 +--
 arch/arm/mm/Makefile                            |   4 -
 arch/arm/mm/cache-fa.S                          | 249 ---------------------
 arch/arm/mm/copypage-fa.c                       |  86 --------
 arch/arm/mm/proc-fa526.S                        | 221 -------------------
 arch/arm/mm/tlb-fa.S                            |  69 ------
 drivers/mtd/maps/Kconfig                        |   7 -
 drivers/mtd/maps/Makefile                       |   1 -
 drivers/mtd/maps/h720x-flash.c                  | 120 ----------
 63 files changed, 3 insertions(+), 4281 deletions(-)
 delete mode 100644 arch/arm/configs/h7201_defconfig
 delete mode 100644 arch/arm/configs/h7202_defconfig
 delete mode 100644 arch/arm/mach-gemini/Kconfig
 delete mode 100644 arch/arm/mach-gemini/Makefile
 delete mode 100644 arch/arm/mach-gemini/Makefile.boot
 delete mode 100644 arch/arm/mach-gemini/board-nas4220b.c
 delete mode 100644 arch/arm/mach-gemini/board-rut1xx.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd111.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd222.c
 delete mode 100644 arch/arm/mach-gemini/common.h
 delete mode 100644 arch/arm/mach-gemini/devices.c
 delete mode 100644 arch/arm/mach-gemini/gpio.c
 delete mode 100644 arch/arm/mach-gemini/idle.c
 delete mode 100644 arch/arm/mach-gemini/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/global_reg.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/system.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/timex.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-gemini/irq.c
 delete mode 100644 arch/arm/mach-gemini/mm.c
 delete mode 100644 arch/arm/mach-gemini/time.c
 delete mode 100644 arch/arm/mach-h720x/Kconfig
 delete mode 100644 arch/arm/mach-h720x/Makefile
 delete mode 100644 arch/arm/mach-h720x/Makefile.boot
 delete mode 100644 arch/arm/mach-h720x/common.c
 delete mode 100644 arch/arm/mach-h720x/common.h
 delete mode 100644 arch/arm/mach-h720x/cpu-h7201.c
 delete mode 100644 arch/arm/mach-h720x/cpu-h7202.c
 delete mode 100644 arch/arm/mach-h720x/h7201-eval.c
 delete mode 100644 arch/arm/mach-h720x/h7202-eval.c
 delete mode 100644 arch/arm/mach-h720x/include/mach/boards.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-h720x/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-h720x/include/mach/h7201-regs.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/h7202-regs.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/isa-dma.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/timex.h
 delete mode 100644 arch/arm/mach-h720x/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-l7200/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mm/cache-fa.S
 delete mode 100644 arch/arm/mm/copypage-fa.c
 delete mode 100644 arch/arm/mm/proc-fa526.S
 delete mode 100644 arch/arm/mm/tlb-fa.S
 delete mode 100644 drivers/mtd/maps/h720x-flash.c

-- 
1.8.1.2


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2013-03-27  0:52 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-14 22:12 [PATCH 0/6] ARM platform spring cleaning Arnd Bergmann
2013-03-14 22:12 ` [PATCH 1/6] ARM: gemini: get platform to build again Arnd Bergmann
2013-03-14 22:12 ` [PATCH 2/6] ARM: gemini: remove platform support Arnd Bergmann
2013-03-15 13:39   ` Florian Fainelli
2013-03-14 22:12 ` [PATCH 3/6] ARM: remove fa526 CPU support Arnd Bergmann
2013-03-15 12:49   ` Florian Fainelli
2013-03-15 13:39     ` Arnd Bergmann
2013-03-18 10:22     ` Jonas Jensen
2013-03-18 11:16       ` Arnd Bergmann
2013-03-18 11:33         ` Florian Fainelli
2013-03-18 16:12           ` Russell King - ARM Linux
2013-03-19  9:00           ` Imre Kaloz
2013-03-19 10:35             ` Arnd Bergmann
2013-03-19 14:55               ` Imre Kaloz
2013-03-25 19:06                 ` Imre Kaloz
2013-03-25 19:17                   ` Arnd Bergmann
2013-03-25 20:11         ` Tomasz Figa
2013-03-27  0:52           ` Tomasz Figa
2013-03-14 22:12 ` [PATCH 4/6] ARM: l7200: remove zombie file Arnd Bergmann
2013-03-14 22:12 ` [PATCH 5/6] ARM: kill Hynix h720x platform Arnd Bergmann
2013-03-15  5:21   ` Robert Schwebel
2013-03-15  6:13   ` Sascha Hauer
2013-03-15 12:27   ` Thomas Petazzoni
2013-03-15 16:12     ` Arnd Bergmann
2013-03-14 22:12 ` [PATCH 6/6] mtd: remove h720x flash support Arnd Bergmann
2013-03-14 22:12   ` Arnd Bergmann
2013-03-18  7:09   ` Artem Bityutskiy
2013-03-18  7:09     ` Artem Bityutskiy
     [not found] <20130315060824.GA9782@lunn.ch>
2013-03-15 10:35 ` [PATCH 0/6] ARM platform spring cleaning Arnd Bergmann
  -- strict thread matches above, loose matches on Subject: below --
2013-03-14 22:12 Arnd Bergmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.