diff options
Diffstat (limited to 'arch/arm/mach-kirkwood/db88f6281-bp-setup.c')
-rw-r--r-- | arch/arm/mach-kirkwood/db88f6281-bp-setup.c | 67 |
1 files changed, 61 insertions, 6 deletions
diff --git a/arch/arm/mach-kirkwood/db88f6281-bp-setup.c b/arch/arm/mach-kirkwood/db88f6281-bp-setup.c index a14c2948c62a..5505d5837752 100644 --- a/arch/arm/mach-kirkwood/db88f6281-bp-setup.c +++ b/arch/arm/mach-kirkwood/db88f6281-bp-setup.c | |||
@@ -11,18 +11,59 @@ | |||
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/platform_device.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> | 14 | #include <linux/mtd/nand.h> |
18 | #include <linux/timer.h> | 15 | #include <linux/mtd/partitions.h> |
19 | #include <linux/ata_platform.h> | 16 | #include <linux/ata_platform.h> |
20 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
21 | #include <asm/mach-types.h> | 18 | #include <asm/mach-types.h> |
22 | #include <asm/mach/arch.h> | 19 | #include <asm/mach/arch.h> |
23 | #include <asm/mach/pci.h> | ||
24 | #include <mach/kirkwood.h> | 20 | #include <mach/kirkwood.h> |
21 | #include <plat/orion_nand.h> | ||
22 | #include <plat/mvsdio.h> | ||
25 | #include "common.h" | 23 | #include "common.h" |
24 | #include "mpp.h" | ||
25 | |||
26 | static struct mtd_partition db88f6281_nand_parts[] = { | ||
27 | { | ||
28 | .name = "u-boot", | ||
29 | .offset = 0, | ||
30 | .size = SZ_1M | ||
31 | }, { | ||
32 | .name = "uImage", | ||
33 | .offset = MTDPART_OFS_NXTBLK, | ||
34 | .size = SZ_4M | ||
35 | }, { | ||
36 | .name = "root", | ||
37 | .offset = MTDPART_OFS_NXTBLK, | ||
38 | .size = MTDPART_SIZ_FULL | ||
39 | }, | ||
40 | }; | ||
41 | |||
42 | static struct resource db88f6281_nand_resource = { | ||
43 | .flags = IORESOURCE_MEM, | ||
44 | .start = KIRKWOOD_NAND_MEM_PHYS_BASE, | ||
45 | .end = KIRKWOOD_NAND_MEM_PHYS_BASE + | ||
46 | KIRKWOOD_NAND_MEM_SIZE - 1, | ||
47 | }; | ||
48 | |||
49 | static struct orion_nand_data db88f6281_nand_data = { | ||
50 | .parts = db88f6281_nand_parts, | ||
51 | .nr_parts = ARRAY_SIZE(db88f6281_nand_parts), | ||
52 | .cle = 0, | ||
53 | .ale = 1, | ||
54 | .width = 8, | ||
55 | .chip_delay = 25, | ||
56 | }; | ||
57 | |||
58 | static struct platform_device db88f6281_nand_flash = { | ||
59 | .name = "orion_nand", | ||
60 | .id = -1, | ||
61 | .dev = { | ||
62 | .platform_data = &db88f6281_nand_data, | ||
63 | }, | ||
64 | .resource = &db88f6281_nand_resource, | ||
65 | .num_resources = 1, | ||
66 | }; | ||
26 | 67 | ||
27 | static struct mv643xx_eth_platform_data db88f6281_ge00_data = { | 68 | static struct mv643xx_eth_platform_data db88f6281_ge00_data = { |
28 | .phy_addr = MV643XX_ETH_PHY_ADDR(8), | 69 | .phy_addr = MV643XX_ETH_PHY_ADDR(8), |
@@ -32,18 +73,32 @@ static struct mv_sata_platform_data db88f6281_sata_data = { | |||
32 | .n_ports = 2, | 73 | .n_ports = 2, |
33 | }; | 74 | }; |
34 | 75 | ||
76 | static struct mvsdio_platform_data db88f6281_mvsdio_data = { | ||
77 | .gpio_write_protect = 37, | ||
78 | .gpio_card_detect = 38, | ||
79 | }; | ||
80 | |||
81 | static unsigned int db88f6281_mpp_config[] __initdata = { | ||
82 | MPP37_GPIO, | ||
83 | MPP38_GPIO, | ||
84 | 0 | ||
85 | }; | ||
86 | |||
35 | static void __init db88f6281_init(void) | 87 | static void __init db88f6281_init(void) |
36 | { | 88 | { |
37 | /* | 89 | /* |
38 | * Basic setup. Needs to be called early. | 90 | * Basic setup. Needs to be called early. |
39 | */ | 91 | */ |
40 | kirkwood_init(); | 92 | kirkwood_init(); |
93 | kirkwood_mpp_conf(db88f6281_mpp_config); | ||
41 | 94 | ||
42 | kirkwood_ehci_init(); | 95 | kirkwood_ehci_init(); |
43 | kirkwood_ge00_init(&db88f6281_ge00_data); | 96 | kirkwood_ge00_init(&db88f6281_ge00_data); |
44 | kirkwood_rtc_init(); | ||
45 | kirkwood_sata_init(&db88f6281_sata_data); | 97 | kirkwood_sata_init(&db88f6281_sata_data); |
46 | kirkwood_uart0_init(); | 98 | kirkwood_uart0_init(); |
99 | kirkwood_sdio_init(&db88f6281_mvsdio_data); | ||
100 | |||
101 | platform_device_register(&db88f6281_nand_flash); | ||
47 | } | 102 | } |
48 | 103 | ||
49 | static int __init db88f6281_pci_init(void) | 104 | static int __init db88f6281_pci_init(void) |