148 lines
4.1 KiB
Diff
148 lines
4.1 KiB
Diff
From: Arnd Bergmann <arnd@arndb.de>
|
|
Date: Wed, 2 Dec 2015 22:27:09 +0100
|
|
Subject: ARM: orion5x: multiplatform support
|
|
Origin: https://git.kernel.org/linus/63cddd25fa02dbba294fb09f78ea24d7a9f1c7d9
|
|
|
|
The orion5x platform is now ready to be enabled for multiplatform
|
|
support, this patch does the switch over by modifying the Kconfig file,
|
|
the defconfig and removing the last mach/*.h header that becomes obsolete
|
|
with this.
|
|
|
|
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
Acked-by: Andrew Lunn <andrew@lunn.ch>
|
|
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
|
---
|
|
arch/arm/Kconfig | 17 ---------
|
|
arch/arm/configs/orion5x_defconfig | 3 ++
|
|
arch/arm/mach-orion5x/Kconfig | 18 +++++++---
|
|
arch/arm/mach-orion5x/Makefile | 2 ++
|
|
arch/arm/mach-orion5x/include/mach/uncompress.h | 46 -------------------------
|
|
5 files changed, 19 insertions(+), 67 deletions(-)
|
|
delete mode 100644 arch/arm/mach-orion5x/include/mach/uncompress.h
|
|
|
|
--- a/arch/arm/Kconfig
|
|
+++ b/arch/arm/Kconfig
|
|
@@ -535,23 +535,6 @@ config ARCH_MV78XX0
|
|
Support for the following Marvell MV78xx0 series SoCs:
|
|
MV781x0, MV782x0.
|
|
|
|
-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
|
|
--- a/arch/arm/configs/orion5x_defconfig
|
|
+++ b/arch/arm/configs/orion5x_defconfig
|
|
@@ -13,6 +13,9 @@ CONFIG_MODULE_UNLOAD=y
|
|
# 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
|
|
--- a/arch/arm/mach-orion5x/Kconfig
|
|
+++ b/arch/arm/mach-orion5x/Kconfig
|
|
@@ -1,6 +1,18 @@
|
|
-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"
|
|
@@ -163,6 +175,4 @@ config MACH_RD88F6183AP_GE
|
|
Say 'Y' here if you want your kernel to support the
|
|
Marvell Orion-1-90 (88F6183) AP GE RD.
|
|
|
|
-endmenu
|
|
-
|
|
endif
|
|
--- a/arch/arm/mach-orion5x/Makefile
|
|
+++ b/arch/arm/mach-orion5x/Makefile
|
|
@@ -1,3 +1,5 @@
|
|
+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
|
|
--- a/arch/arm/mach-orion5x/include/mach/uncompress.h
|
|
+++ /dev/null
|
|
@@ -1,46 +0,0 @@
|
|
-/*
|
|
- * 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()
|