This is a conversion of the AT91rm9200 DataFlash MTD driver to use the lightweight SPI framework, and no longer be AT91-specific. It compiles down to less than 3KBytes on ARM. The driver allows board-specific init code to provide platform_data with the relevant MTD partitioning information, and hotplugs. This version has been lightly tested. Its parent at91_dataflash driver has been pretty well banged on, although kernel.org JFFS2 dataflash support was acting broken the last time I tried it. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
28 lines
839 B
C
28 lines
839 B
C
#ifndef LINUX_SPI_FLASH_H
|
|
#define LINUX_SPI_FLASH_H
|
|
|
|
struct mtd_partition;
|
|
|
|
/**
|
|
* struct flash_platform_data: board-specific flash data
|
|
* @name: optional flash device name (eg, as used with mtdparts=)
|
|
* @parts: optional array of mtd_partitions for static partitioning
|
|
* @nr_parts: number of mtd_partitions for static partitoning
|
|
*
|
|
* Board init code (in arch/.../mach-xxx/board-yyy.c files) can
|
|
* provide information about SPI flash parts (such as DataFlash) to
|
|
* help set up the device and its appropriate default partitioning.
|
|
*
|
|
* Note that for DataFlash, sizes for pages, blocks, and sectors are
|
|
* rarely powers of two; and partitions should be sector-aligned.
|
|
*/
|
|
struct flash_platform_data {
|
|
char *name;
|
|
struct mtd_partition *parts;
|
|
unsigned int nr_parts;
|
|
|
|
/* we'll likely add more ... use JEDEC IDs, etc */
|
|
};
|
|
|
|
#endif
|