[MTD] LPDDR extended physmap driver to support LPDDR flash
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>
This commit is contained in:
committed by
David Woodhouse
parent
d13e51e747
commit
d81408304b
@@ -10,8 +10,8 @@ config MTD_COMPLEX_MAPPINGS
|
|||||||
paged mappings of flash chips.
|
paged mappings of flash chips.
|
||||||
|
|
||||||
config MTD_PHYSMAP
|
config MTD_PHYSMAP
|
||||||
tristate "CFI Flash device in physical memory map"
|
tristate "Flash device in physical memory map"
|
||||||
depends on MTD_CFI || MTD_JEDECPROBE || MTD_ROM
|
depends on MTD_CFI || MTD_JEDECPROBE || MTD_ROM || MTD_LPDDR
|
||||||
help
|
help
|
||||||
This provides a 'mapping' driver which allows the NOR Flash and
|
This provides a 'mapping' driver which allows the NOR Flash and
|
||||||
ROM driver code to communicate with chips which are mapped
|
ROM driver code to communicate with chips which are mapped
|
||||||
|
@@ -68,7 +68,12 @@ static int physmap_flash_remove(struct platform_device *dev)
|
|||||||
return 0;
|
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
|
#ifdef CONFIG_MTD_PARTITIONS
|
||||||
static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
|
static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
|
||||||
#endif
|
#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].size = dev->resource[i].end - dev->resource[i].start + 1;
|
||||||
info->map[i].bankwidth = physmap_data->width;
|
info->map[i].bankwidth = physmap_data->width;
|
||||||
info->map[i].set_vpp = physmap_data->set_vpp;
|
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].virt = devm_ioremap(&dev->dev, info->map[i].phys,
|
||||||
info->map[i].size);
|
info->map[i].size);
|
||||||
|
@@ -24,6 +24,7 @@ struct physmap_flash_data {
|
|||||||
unsigned int width;
|
unsigned int width;
|
||||||
void (*set_vpp)(struct map_info *, int);
|
void (*set_vpp)(struct map_info *, int);
|
||||||
unsigned int nr_parts;
|
unsigned int nr_parts;
|
||||||
|
unsigned int pfow_base;
|
||||||
struct mtd_partition *parts;
|
struct mtd_partition *parts;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user