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