help
          Support for the Marvell Dove SoC 88AP510
 
-config ARCH_ORION5X
-       bool "Marvell Orion"
-       depends on MMU
-       select ARCH_REQUIRE_GPIOLIB
-       select CPU_FEROCEON
-       select GENERIC_CLOCKEVENTS
-       select MVEBU_MBUS
-       select MULTI_IRQ_HANDLER
-       select PCI
-       select PLAT_ORION_LEGACY
-       select MULTI_IRQ_HANDLER
-       select SPARSE_IRQ
-       help
-         Support for the following Marvell Orion 5x series SoCs:
-         Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
-         Orion-2 (5281), Orion-1-90 (6183).
-
 config ARCH_MMP
        bool "Marvell PXA168/910/MMP2"
        depends on MMU
 
 # CONFIG_BLK_DEV_BSG is not set
 CONFIG_PARTITION_ADVANCED=y
 CONFIG_BSD_DISKLABEL=y
+CONFIG_ARCH_MULTI_V5=y
+# CONFIG_ARCH_MULTI_V6 is not set
+# CONFIG_ARCH_MULTI_V7 is not set
 CONFIG_ARCH_ORION5X=y
 CONFIG_ARCH_ORION5X_DT=y
 CONFIG_MACH_DB88F5281=y
 
-if ARCH_ORION5X
+menuconfig ARCH_ORION5X
+       bool "Marvell Orion"
+       depends on MMU && ARCH_MULTI_V5
+       select ARCH_REQUIRE_GPIOLIB
+       select CPU_FEROCEON
+       select GENERIC_CLOCKEVENTS
+       select MVEBU_MBUS
+       select PCI
+       select PLAT_ORION_LEGACY
+       help
+         Support for the following Marvell Orion 5x series SoCs:
+         Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
+         Orion-2 (5281), Orion-1-90 (6183).
 
-menu "Orion Implementations"
+if ARCH_ORION5X
 
 config ARCH_ORION5X_DT
        bool "Marvell Orion5x Flattened Device Tree"
          Say 'Y' here if you want your kernel to support the
          Marvell Orion-1-90 (88F6183) AP GE RD.
 
-endmenu
-
 endif
 
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-orion/include
+
 obj-y                          += common.o pci.o irq.o mpp.o
 obj-$(CONFIG_MACH_DB88F5281)   += db88f5281-setup.o
 obj-$(CONFIG_MACH_RD88F5182)   += rd88f5182-setup.o
 
+++ /dev/null
-/*
- * Tzachi Perelstein <tzachi@marvell.com>
- *
- * 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 <linux/serial_reg.h>
-
-#define UART0_PHYS_BASE (0xf1000000 + 0x12000)
-#define SERIAL_BASE    ((unsigned char *)UART0_PHYS_BASE)
-
-static void putc(const char c)
-{
-       unsigned char *base = SERIAL_BASE;
-       int i;
-
-       for (i = 0; i < 0x1000; i++) {
-               if (base[UART_LSR << 2] & UART_LSR_THRE)
-                       break;
-               barrier();
-       }
-
-       base[UART_TX << 2] = c;
-}
-
-static void flush(void)
-{
-       unsigned char *base = SERIAL_BASE;
-       unsigned char mask;
-       int i;
-
-       mask = UART_LSR_TEMT | UART_LSR_THRE;
-
-       for (i = 0; i < 0x1000; i++) {
-               if ((base[UART_LSR << 2] & mask) == mask)
-                       break;
-               barrier();
-       }
-}
-
-/*
- * nothing to do
- */
-#define arch_decomp_setup()