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

[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
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -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
+1 −1
Original line number Original line Diff line number Diff line
@@ -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
+41 −19
Original line number Original line Diff line number Diff line
/*
/*
 * 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 @@
#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,11 +22,12 @@
#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,
@@ -37,60 +39,80 @@ static struct mtd_partition openrd_base_nand_parts[] = {
	},
	},
};
};


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