|
@@ -32,6 +32,7 @@
|
|
|
#include <linux/platform_device.h>
|
|
|
#include <linux/mtd/mtd.h>
|
|
|
#include <linux/mtd/partitions.h>
|
|
|
+#include <linux/mtd/physmap.h>
|
|
|
#include <linux/spi/spi.h>
|
|
|
#include <linux/spi/flash.h>
|
|
|
#include <linux/irq.h>
|
|
@@ -378,6 +379,46 @@ static struct platform_device bf54x_sdh_device = {
|
|
|
};
|
|
|
#endif
|
|
|
|
|
|
+#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
|
|
|
+static struct mtd_partition para_partitions[] = {
|
|
|
+ {
|
|
|
+ .name = "bootloader(nor)",
|
|
|
+ .size = 0x40000,
|
|
|
+ .offset = 0,
|
|
|
+ }, {
|
|
|
+ .name = "linux kernel(nor)",
|
|
|
+ .size = 0x400000,
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ }, {
|
|
|
+ .name = "file system(nor)",
|
|
|
+ .size = MTDPART_SIZ_FULL,
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+static struct physmap_flash_data para_flash_data = {
|
|
|
+ .width = 2,
|
|
|
+ .parts = para_partitions,
|
|
|
+ .nr_parts = ARRAY_SIZE(para_partitions),
|
|
|
+};
|
|
|
+
|
|
|
+static struct resource para_flash_resource = {
|
|
|
+ .start = 0x20000000,
|
|
|
+ .end = 0x207fffff,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device para_flash_device = {
|
|
|
+ .name = "physmap-flash",
|
|
|
+ .id = 0,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = ¶_flash_data,
|
|
|
+ },
|
|
|
+ .num_resources = 1,
|
|
|
+ .resource = ¶_flash_resource,
|
|
|
+};
|
|
|
+#endif
|
|
|
+
|
|
|
#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
|
|
|
/* all SPI peripherals info goes here */
|
|
|
#if defined(CONFIG_MTD_M25P80) \
|
|
@@ -688,6 +729,10 @@ static struct platform_device *cm_bf548_devices[] __initdata = {
|
|
|
#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
|
|
|
&bfin_device_gpiokeys,
|
|
|
#endif
|
|
|
+
|
|
|
+#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
|
|
|
+ ¶_flash_device,
|
|
|
+#endif
|
|
|
};
|
|
|
|
|
|
static int __init cm_bf548_init(void)
|