[MTD] LPDDR extended physmap driver to support LPDDR flash
authorAlexey Korolev <akorolev@infradead.org>
Tue, 16 Dec 2008 18:22:39 +0000 (18:22 +0000)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Mon, 5 Jan 2009 12:57:28 +0000 (13:57 +0100)
Physmap is a generic map driver for different platforms and flash types.
We added support of LPDDR to physmap.
All changes here are related to introduction of new pfow_base parameter.
This parameter is valid in case of LPDDR chips only.

Signed-off-by: Alexey Korolev <akorolev@infradead.org>
Acked-by: Jared Hulbert <jaredeh@gmail.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/maps/Kconfig
drivers/mtd/maps/physmap.c
include/linux/mtd/physmap.h

index 3788a548336c99c5a1f4b49fc28380ed3280fa66..0225cbbf22de3ceb21b14a6bb8cf05cb3987817a 100644 (file)
@@ -10,8 +10,8 @@ config MTD_COMPLEX_MAPPINGS
          paged mappings of flash chips.
 
 config MTD_PHYSMAP
-       tristate "CFI Flash device in physical memory map"
-       depends on MTD_CFI || MTD_JEDECPROBE || MTD_ROM
+       tristate "Flash device in physical memory map"
+       depends on MTD_CFI || MTD_JEDECPROBE || MTD_ROM || MTD_LPDDR
        help
          This provides a 'mapping' driver which allows the NOR Flash and
          ROM driver code to communicate with chips which are mapped
index d3a2acc7e9bea89bc17320e25a1c5ea25b6bcf15..87743661d48ebfc4e43f317f5ceddee6e9397fe8 100644 (file)
@@ -68,7 +68,12 @@ static int physmap_flash_remove(struct platform_device *dev)
        return 0;
 }
 
-static const char *rom_probe_types[] = { "cfi_probe", "jedec_probe", "map_rom", NULL };
+static const char *rom_probe_types[] = {
+                                       "cfi_probe",
+                                       "jedec_probe",
+                                       "qinfo_probe",
+                                       "map_rom",
+                                       NULL };
 #ifdef CONFIG_MTD_PARTITIONS
 static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
 #endif
@@ -117,6 +122,7 @@ static int physmap_flash_probe(struct platform_device *dev)
                info->map[i].size = dev->resource[i].end - dev->resource[i].start + 1;
                info->map[i].bankwidth = physmap_data->width;
                info->map[i].set_vpp = physmap_data->set_vpp;
+               info->map[i].pfow_base = physmap_data->pfow_base;
 
                info->map[i].virt = devm_ioremap(&dev->dev, info->map[i].phys,
                                                 info->map[i].size);
index c8e63a5ee72e1a0cbbffc06a02a327d2c0772ed5..76f7cabf07d322ade437ca757a1c6bd9d93b6107 100644 (file)
@@ -24,6 +24,7 @@ struct physmap_flash_data {
        unsigned int            width;
        void                    (*set_vpp)(struct map_info *, int);
        unsigned int            nr_parts;
+       unsigned int            pfow_base;
        struct mtd_partition    *parts;
 };