blob: 7ed96303419bfd9dad6af67ba62bd00795a1e349 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
Russell King4baa9922008-08-02 10:55:55 +01002 * arch/arm/include/asm/mach/flash.h
Linus Torvalds1da177e2005-04-16 15:20:36 -07003 *
4 * Copyright (C) 2003 Russell King, All Rights Reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10#ifndef ASMARM_MACH_FLASH_H
11#define ASMARM_MACH_FLASH_H
12
13struct mtd_partition;
Kyungmin Park861e37a2005-11-09 15:15:10 +000014struct mtd_info;
Linus Torvalds1da177e2005-04-16 15:20:36 -070015
Sujit Reddy Thummaec9b3252012-04-23 15:53:45 +053016enum sw_version {
17 VERSION_1 = 0,
18 VERSION_2,
19};
20
Linus Torvalds1da177e2005-04-16 15:20:36 -070021/*
22 * map_name: the map probe function name
Russell King14e66f72005-10-29 16:08:31 +010023 * name: flash device name (eg, as used with mtdparts=)
Linus Torvalds1da177e2005-04-16 15:20:36 -070024 * width: width of mapped device
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070025 * interleave: interleave mode feature support
Linus Torvalds1da177e2005-04-16 15:20:36 -070026 * init: method called at driver/device initialisation
27 * exit: method called at driver/device removal
28 * set_vpp: method called to enable or disable VPP
Kyungmin Park861e37a2005-11-09 15:15:10 +000029 * mmcontrol: method called to enable or disable Sync. Burst Read in OneNAND
Linus Torvalds1da177e2005-04-16 15:20:36 -070030 * parts: optional array of mtd_partitions for static partitioning
31 * nr_parts: number of mtd_partitions for static partitoning
Sujit Reddy Thummaec9b3252012-04-23 15:53:45 +053032 * version: software register interface version
Linus Torvalds1da177e2005-04-16 15:20:36 -070033 */
34struct flash_platform_data {
35 const char *map_name;
Russell King14e66f72005-10-29 16:08:31 +010036 const char *name;
Linus Torvalds1da177e2005-04-16 15:20:36 -070037 unsigned int width;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070038 unsigned int interleave;
Linus Torvalds1da177e2005-04-16 15:20:36 -070039 int (*init)(void);
40 void (*exit)(void);
41 void (*set_vpp)(int on);
Kyungmin Park861e37a2005-11-09 15:15:10 +000042 void (*mmcontrol)(struct mtd_info *mtd, int sync_read);
Linus Torvalds1da177e2005-04-16 15:20:36 -070043 struct mtd_partition *parts;
44 unsigned int nr_parts;
Sujit Reddy Thummaec9b3252012-04-23 15:53:45 +053045 enum sw_version version;
Linus Torvalds1da177e2005-04-16 15:20:36 -070046};
47
48#endif