Commit | Line | Data |
---|---|---|
651c74c7 SB |
1 | /* |
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> | |
3c2613db | 14 | #include <linux/mtd/partitions.h> |
651c74c7 SB |
15 | #include <linux/ata_platform.h> |
16 | #include <linux/mv643xx_eth.h> | |
17 | #include <asm/mach-types.h> | |
18 | #include <asm/mach/arch.h> | |
a09e64fb | 19 | #include <mach/kirkwood.h> |
8235ee00 | 20 | #include <plat/mvsdio.h> |
651c74c7 | 21 | #include "common.h" |
8235ee00 | 22 | #include "mpp.h" |
651c74c7 | 23 | |
3c2613db NP |
24 | static struct mtd_partition db88f6281_nand_parts[] = { |
25 | { | |
26 | .name = "u-boot", | |
27 | .offset = 0, | |
28 | .size = SZ_1M | |
29 | }, { | |
30 | .name = "uImage", | |
31 | .offset = MTDPART_OFS_NXTBLK, | |
32 | .size = SZ_4M | |
33 | }, { | |
34 | .name = "root", | |
35 | .offset = MTDPART_OFS_NXTBLK, | |
36 | .size = MTDPART_SIZ_FULL | |
37 | }, | |
38 | }; | |
39 | ||
651c74c7 | 40 | static struct mv643xx_eth_platform_data db88f6281_ge00_data = { |
ac840605 | 41 | .phy_addr = MV643XX_ETH_PHY_ADDR(8), |
651c74c7 SB |
42 | }; |
43 | ||
44 | static struct mv_sata_platform_data db88f6281_sata_data = { | |
45 | .n_ports = 2, | |
46 | }; | |
47 | ||
8235ee00 NP |
48 | static struct mvsdio_platform_data db88f6281_mvsdio_data = { |
49 | .gpio_write_protect = 37, | |
50 | .gpio_card_detect = 38, | |
51 | }; | |
52 | ||
53 | static unsigned int db88f6281_mpp_config[] __initdata = { | |
29333cfa SB |
54 | MPP0_NF_IO2, |
55 | MPP1_NF_IO3, | |
56 | MPP2_NF_IO4, | |
57 | MPP3_NF_IO5, | |
58 | MPP4_NF_IO6, | |
59 | MPP5_NF_IO7, | |
60 | MPP18_NF_IO0, | |
61 | MPP19_NF_IO1, | |
8235ee00 NP |
62 | MPP37_GPIO, |
63 | MPP38_GPIO, | |
64 | 0 | |
65 | }; | |
66 | ||
651c74c7 SB |
67 | static void __init db88f6281_init(void) |
68 | { | |
69 | /* | |
70 | * Basic setup. Needs to be called early. | |
71 | */ | |
72 | kirkwood_init(); | |
8235ee00 | 73 | kirkwood_mpp_conf(db88f6281_mpp_config); |
651c74c7 | 74 | |
fb7b2d3f | 75 | kirkwood_nand_init(ARRAY_AND_SIZE(db88f6281_nand_parts), 25); |
651c74c7 SB |
76 | kirkwood_ehci_init(); |
77 | kirkwood_ge00_init(&db88f6281_ge00_data); | |
651c74c7 SB |
78 | kirkwood_sata_init(&db88f6281_sata_data); |
79 | kirkwood_uart0_init(); | |
8235ee00 | 80 | kirkwood_sdio_init(&db88f6281_mvsdio_data); |
651c74c7 SB |
81 | } |
82 | ||
83 | static int __init db88f6281_pci_init(void) | |
84 | { | |
ffd58bd2 SB |
85 | if (machine_is_db88f6281_bp()) { |
86 | u32 dev, rev; | |
651c74c7 | 87 | |
ffd58bd2 SB |
88 | kirkwood_pcie_id(&dev, &rev); |
89 | if (dev == MV88F6282_DEV_ID) | |
90 | kirkwood_pcie_init(KW_PCIE1 | KW_PCIE0); | |
91 | else | |
92 | kirkwood_pcie_init(KW_PCIE0); | |
93 | } | |
651c74c7 SB |
94 | return 0; |
95 | } | |
96 | subsys_initcall(db88f6281_pci_init); | |
97 | ||
98 | MACHINE_START(DB88F6281_BP, "Marvell DB-88F6281-BP Development Board") | |
99 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ | |
651c74c7 SB |
100 | .boot_params = 0x00000100, |
101 | .init_machine = db88f6281_init, | |
102 | .map_io = kirkwood_map_io, | |
103 | .init_irq = kirkwood_init_irq, | |
104 | .timer = &kirkwood_timer, | |
105 | MACHINE_END |