MOXA linux-2.6.x / linux-2.6.19-uc1 from UC-7110-LX-BOOTLOADER-1.9_VERSION-4.2.tgz
[linux-2.6.19-moxart.git] / arch / arm / kernel / initrd-mtd.c
blob6da908acfe242d6a203c1ec06d121d7b701499a2
1 /*
2 * arch/arm/kernel/initrd-mtd.c
4 * MTD RAM platform device for the initrd
6 * Copyright (C) 2006 Philip Craig <philipc@snapgear.com>
8 */
10 #include <linux/platform_device.h>
11 #include <linux/mtd/partitions.h>
12 #include <linux/mtd/map.h>
13 #include <linux/mtd/plat-ram.h>
15 extern unsigned long phys_initrd_start;
16 extern unsigned long phys_initrd_size;
18 static struct resource initrd_mtd_ram_resource = {
19 .flags = IORESOURCE_MEM,
22 static struct platdata_mtd_ram initrd_mtd_ram_data = {
23 .mapname = "Romfs",
24 .root_dev = 1,
27 static struct platform_device initrd_mtd_ram_device = {
28 .name = "mtd-ram",
29 .id = 0,
30 .dev.platform_data = &initrd_mtd_ram_data,
31 .num_resources = 1,
32 .resource = &initrd_mtd_ram_resource,
35 static int __init initrd_device_setup(void)
37 int ret = 0;
39 if (phys_initrd_start) {
40 if (map_bankwidth_supported(4))
41 initrd_mtd_ram_data.bankwidth = 4;
42 else if (map_bankwidth_supported(2))
43 initrd_mtd_ram_data.bankwidth = 2;
44 else
45 initrd_mtd_ram_data.bankwidth = 1;
46 initrd_mtd_ram_resource.start = phys_initrd_start;
47 initrd_mtd_ram_resource.end = phys_initrd_start
48 + phys_initrd_size - 1;
49 ret = platform_device_register(&initrd_mtd_ram_device);
52 return ret;
55 __initcall(initrd_device_setup);