2 * arch/arm/kernel/initrd-mtd.c
4 * MTD RAM platform device for the initrd
6 * Copyright (C) 2006 Philip Craig <philipc@snapgear.com>
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
= {
27 static struct platform_device initrd_mtd_ram_device
= {
30 .dev
.platform_data
= &initrd_mtd_ram_data
,
32 .resource
= &initrd_mtd_ram_resource
,
35 static int __init
initrd_device_setup(void)
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;
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
);
55 __initcall(initrd_device_setup
);