xref: /OK3568_Linux_fs/kernel/include/linux/spi/flash.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef LINUX_SPI_FLASH_H
3*4882a593Smuzhiyun #define LINUX_SPI_FLASH_H
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun struct mtd_partition;
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun /**
8*4882a593Smuzhiyun  * struct flash_platform_data: board-specific flash data
9*4882a593Smuzhiyun  * @name: optional flash device name (eg, as used with mtdparts=)
10*4882a593Smuzhiyun  * @parts: optional array of mtd_partitions for static partitioning
11*4882a593Smuzhiyun  * @nr_parts: number of mtd_partitions for static partitioning
12*4882a593Smuzhiyun  * @type: optional flash device type (e.g. m25p80 vs m25p64), for use
13*4882a593Smuzhiyun  *	with chips that can't be queried for JEDEC or other IDs
14*4882a593Smuzhiyun  *
15*4882a593Smuzhiyun  * Board init code (in arch/.../mach-xxx/board-yyy.c files) can
16*4882a593Smuzhiyun  * provide information about SPI flash parts (such as DataFlash) to
17*4882a593Smuzhiyun  * help set up the device and its appropriate default partitioning.
18*4882a593Smuzhiyun  *
19*4882a593Smuzhiyun  * Note that for DataFlash, sizes for pages, blocks, and sectors are
20*4882a593Smuzhiyun  * rarely powers of two; and partitions should be sector-aligned.
21*4882a593Smuzhiyun  */
22*4882a593Smuzhiyun struct flash_platform_data {
23*4882a593Smuzhiyun 	char		*name;
24*4882a593Smuzhiyun 	struct mtd_partition *parts;
25*4882a593Smuzhiyun 	unsigned int	nr_parts;
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun 	char		*type;
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun 	/* we'll likely add more ... use JEDEC IDs, etc */
30*4882a593Smuzhiyun };
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun #endif
33