Commit b2fdb566 authored by Alexander Clouter's avatar Alexander Clouter Committed by Nicolas Pitre

[ARM] kirkwood: combine support for openrd base/client support

Inspired by the mach-ep93xx flattening work, there is really not
much difference between the OpenRD base and client board support
so they should be merged together.
Signed-off-by: default avatarAlexander Clouter <alex@digriz.org.uk>
Acked-by: default avatarSimon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: default avatarNicolas Pitre <nico@fluxnic.net>
parent 639b9be6
...@@ -46,12 +46,23 @@ config MACH_TS41X ...@@ -46,12 +46,23 @@ config MACH_TS41X
QNAP TS-410, TS-410U, TS-419P and TS-419U Turbo NAS QNAP TS-410, TS-410U, TS-419P and TS-419U Turbo NAS
devices. devices.
config MACH_OPENRD
bool
config MACH_OPENRD_BASE config MACH_OPENRD_BASE
bool "Marvell OpenRD Base Board" bool "Marvell OpenRD Base Board"
select MACH_OPENRD
help help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
Marvell OpenRD Base Board. Marvell OpenRD Base Board.
config MACH_OPENRD_CLIENT
bool "Marvell OpenRD Client Board"
select MACH_OPENRD
help
Say 'Y' here if you want your kernel to support the
Marvell OpenRD Client Board.
config MACH_NETSPACE_V2 config MACH_NETSPACE_V2
bool "LaCie Network Space v2 NAS Board" bool "LaCie Network Space v2 NAS Board"
help help
......
...@@ -7,7 +7,7 @@ obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o ...@@ -7,7 +7,7 @@ obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o
obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
obj-$(CONFIG_MACH_OPENRD_BASE) += openrd_base-setup.o obj-$(CONFIG_MACH_OPENRD) += openrd-setup.o
obj-$(CONFIG_MACH_NETSPACE_V2) += netspace_v2-setup.o obj-$(CONFIG_MACH_NETSPACE_V2) += netspace_v2-setup.o
obj-$(CONFIG_CPU_IDLE) += cpuidle.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o
/* /*
* arch/arm/mach-kirkwood/openrd_base-setup.c * arch/arm/mach-kirkwood/openrd-setup.c
* *
* Marvell OpenRD Base Board Setup * Marvell OpenRD (Base|Client) Board Setup
* *
* This file is licensed under the terms of the GNU General Public * This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any * License version 2. This program is licensed "as is" without any
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <linux/ata_platform.h> #include <linux/ata_platform.h>
#include <linux/mv643xx_eth.h> #include <linux/mv643xx_eth.h>
...@@ -21,76 +22,97 @@ ...@@ -21,76 +22,97 @@
#include "common.h" #include "common.h"
#include "mpp.h" #include "mpp.h"
static struct mtd_partition openrd_base_nand_parts[] = { static struct mtd_partition openrd_nand_parts[] = {
{ {
.name = "u-boot", .name = "u-boot",
.offset = 0, .offset = 0,
.size = SZ_1M .size = SZ_1M,
.mask_flags = MTD_WRITEABLE
}, { }, {
.name = "uImage", .name = "uImage",
.offset = MTDPART_OFS_NXTBLK, .offset = MTDPART_OFS_NXTBLK,
.size = SZ_4M .size = SZ_4M
}, { }, {
.name = "root", .name = "root",
.offset = MTDPART_OFS_NXTBLK, .offset = MTDPART_OFS_NXTBLK,
.size = MTDPART_SIZ_FULL .size = MTDPART_SIZ_FULL
}, },
}; };
static struct mv643xx_eth_platform_data openrd_base_ge00_data = { static struct mv643xx_eth_platform_data openrd_ge00_data = {
.phy_addr = MV643XX_ETH_PHY_ADDR(8), .phy_addr = MV643XX_ETH_PHY_ADDR(8),
}; };
static struct mv_sata_platform_data openrd_base_sata_data = { static struct mv643xx_eth_platform_data openrd_ge01_data = {
.phy_addr = MV643XX_ETH_PHY_ADDR(24),
};
static struct mv_sata_platform_data openrd_sata_data = {
.n_ports = 2, .n_ports = 2,
}; };
static struct mvsdio_platform_data openrd_base_mvsdio_data = { static struct mvsdio_platform_data openrd_mvsdio_data = {
.gpio_card_detect = 29, /* MPP29 used as SD card detect */ .gpio_card_detect = 29, /* MPP29 used as SD card detect */
}; };
static unsigned int openrd_base_mpp_config[] __initdata = { static unsigned int openrd_mpp_config[] __initdata = {
MPP29_GPIO, MPP29_GPIO,
0 0
}; };
static void __init openrd_base_init(void) static void __init openrd_init(void)
{ {
/* /*
* Basic setup. Needs to be called early. * Basic setup. Needs to be called early.
*/ */
kirkwood_init(); kirkwood_init();
kirkwood_mpp_conf(openrd_base_mpp_config); kirkwood_mpp_conf(openrd_mpp_config);
kirkwood_uart0_init(); kirkwood_uart0_init();
kirkwood_nand_init(ARRAY_AND_SIZE(openrd_base_nand_parts), 25); kirkwood_nand_init(ARRAY_AND_SIZE(openrd_nand_parts), 25);
kirkwood_ehci_init(); kirkwood_ehci_init();
kirkwood_ge00_init(&openrd_base_ge00_data); kirkwood_ge00_init(&openrd_ge00_data);
kirkwood_sata_init(&openrd_base_sata_data); if (machine_is_openrd_client())
kirkwood_sdio_init(&openrd_base_mvsdio_data); kirkwood_ge01_init(&openrd_ge01_data);
kirkwood_sata_init(&openrd_sata_data);
kirkwood_sdio_init(&openrd_mvsdio_data);
kirkwood_i2c_init(); kirkwood_i2c_init();
} }
static int __init openrd_base_pci_init(void) static int __init openrd_pci_init(void)
{ {
if (machine_is_openrd_base()) if (machine_is_openrd_base() || machine_is_openrd_client())
kirkwood_pcie_init(); kirkwood_pcie_init();
return 0; return 0;
} }
subsys_initcall(openrd_base_pci_init); subsys_initcall(openrd_pci_init);
#ifdef CONFIG_MACH_OPENRD_BASE
MACHINE_START(OPENRD_BASE, "Marvell OpenRD Base Board") MACHINE_START(OPENRD_BASE, "Marvell OpenRD Base Board")
/* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */
.phys_io = KIRKWOOD_REGS_PHYS_BASE, .phys_io = KIRKWOOD_REGS_PHYS_BASE,
.io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc, .io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
.boot_params = 0x00000100, .boot_params = 0x00000100,
.init_machine = openrd_base_init, .init_machine = openrd_init,
.map_io = kirkwood_map_io,
.init_irq = kirkwood_init_irq,
.timer = &kirkwood_timer,
MACHINE_END
#endif
#ifdef CONFIG_MACH_OPENRD_CLIENT
MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board")
/* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */
.phys_io = KIRKWOOD_REGS_PHYS_BASE,
.io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
.boot_params = 0x00000100,
.init_machine = openrd_init,
.map_io = kirkwood_map_io, .map_io = kirkwood_map_io,
.init_irq = kirkwood_init_irq, .init_irq = kirkwood_init_irq,
.timer = &kirkwood_timer, .timer = &kirkwood_timer,
MACHINE_END MACHINE_END
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment