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