blob: 5c3b40d6e093a4b5fa02b1972bb3c655814bcef9 [file] [log] [blame]
Saeed Bishara651c74c2008-06-22 22:45:06 +02001/*
2 * arch/arm/mach-kirkwood/db88f6281-bp-setup.c
3 *
4 * Marvell DB-88F6281-BP Development Board Setup
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/platform_device.h>
14#include <linux/pci.h>
15#include <linux/irq.h>
16#include <linux/mtd/physmap.h>
17#include <linux/mtd/nand.h>
18#include <linux/timer.h>
19#include <linux/ata_platform.h>
20#include <linux/mv643xx_eth.h>
21#include <asm/mach-types.h>
22#include <asm/mach/arch.h>
23#include <asm/mach/pci.h>
Russell Kinga09e64f2008-08-05 16:14:15 +010024#include <mach/kirkwood.h>
Nicolas Pitre8235ee02009-02-14 03:15:55 -050025#include <plat/mvsdio.h>
Saeed Bishara651c74c2008-06-22 22:45:06 +020026#include "common.h"
Nicolas Pitre8235ee02009-02-14 03:15:55 -050027#include "mpp.h"
Saeed Bishara651c74c2008-06-22 22:45:06 +020028
29static struct mv643xx_eth_platform_data db88f6281_ge00_data = {
Lennert Buytenhekac840602008-08-26 14:06:47 +020030 .phy_addr = MV643XX_ETH_PHY_ADDR(8),
Saeed Bishara651c74c2008-06-22 22:45:06 +020031};
32
33static struct mv_sata_platform_data db88f6281_sata_data = {
34 .n_ports = 2,
35};
36
Nicolas Pitre8235ee02009-02-14 03:15:55 -050037static struct mvsdio_platform_data db88f6281_mvsdio_data = {
38 .gpio_write_protect = 37,
39 .gpio_card_detect = 38,
40};
41
42static unsigned int db88f6281_mpp_config[] __initdata = {
43 MPP37_GPIO,
44 MPP38_GPIO,
45 0
46};
47
Saeed Bishara651c74c2008-06-22 22:45:06 +020048static void __init db88f6281_init(void)
49{
50 /*
51 * Basic setup. Needs to be called early.
52 */
53 kirkwood_init();
Nicolas Pitre8235ee02009-02-14 03:15:55 -050054 kirkwood_mpp_conf(db88f6281_mpp_config);
Saeed Bishara651c74c2008-06-22 22:45:06 +020055
56 kirkwood_ehci_init();
57 kirkwood_ge00_init(&db88f6281_ge00_data);
58 kirkwood_rtc_init();
59 kirkwood_sata_init(&db88f6281_sata_data);
60 kirkwood_uart0_init();
Nicolas Pitre8235ee02009-02-14 03:15:55 -050061 kirkwood_sdio_init(&db88f6281_mvsdio_data);
Saeed Bishara651c74c2008-06-22 22:45:06 +020062}
63
64static int __init db88f6281_pci_init(void)
65{
66 if (machine_is_db88f6281_bp())
67 kirkwood_pcie_init();
68
69 return 0;
70}
71subsys_initcall(db88f6281_pci_init);
72
73MACHINE_START(DB88F6281_BP, "Marvell DB-88F6281-BP Development Board")
74 /* Maintainer: Saeed Bishara <saeed@marvell.com> */
75 .phys_io = KIRKWOOD_REGS_PHYS_BASE,
76 .io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
77 .boot_params = 0x00000100,
78 .init_machine = db88f6281_init,
79 .map_io = kirkwood_map_io,
80 .init_irq = kirkwood_init_irq,
81 .timer = &kirkwood_timer,
82MACHINE_END