13a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/****************************************************************************
23a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ****************************************************************************
33a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***
43a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***   This header was automatically generated from a Linux kernel header
53a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***   of the same name, to make information necessary for userspace to
63a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***   call into the kernel available to libc.  It contains only constants,
73a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***   structures, and macros generated from the original header, and thus,
83a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***   contains no copyrightable information.
93a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***
103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ****************************************************************************
113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ****************************************************************************/
123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#ifndef __MTD_CFI_H__
133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define __MTD_CFI_H__
143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#include <linux/delay.h>
163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#include <linux/types.h>
173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#include <linux/interrupt.h>
183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#include <linux/mtd/flashchip.h>
193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#include <linux/mtd/map.h>
203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#include <linux/mtd/cfi_endian.h>
213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define cfi_interleave_is_1(cfi) (0)
233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define cfi_interleave_is_2(cfi) (0)
253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define cfi_interleave_is_4(cfi) (0)
273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define cfi_interleave_is_8(cfi) (0)
293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_DEVICETYPE_X8 (8 / 8)
313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_DEVICETYPE_X16 (16 / 8)
323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_DEVICETYPE_X32 (32 / 8)
333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_DEVICETYPE_X64 (64 / 8)
343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_extquery {
363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t pri[3];
373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t MajorVersion;
383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t MinorVersion;
393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} __attribute__((packed));
403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_pri_intelext {
423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t pri[3];
433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t MajorVersion;
443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t MinorVersion;
453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint32_t FeatureSupport;
463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t SuspendCmdSupport;
473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t BlkStatusRegMask;
483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t VccOptimal;
493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t VppOptimal;
503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t NumProtectionFields;
513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t ProtRegAddr;
523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t FactProtRegSize;
533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t UserProtRegSize;
543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t extra[0];
553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} __attribute__((packed));
563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_intelext_otpinfo {
583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint32_t ProtRegAddr;
593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t FactGroups;
603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t FactProtRegSize;
613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t UserGroups;
623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t UserProtRegSize;
633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} __attribute__((packed));
643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_intelext_blockinfo {
663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t NumIdentBlocks;
673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t BlockSize;
683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t MinBlockEraseCycles;
693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t BitsPerCell;
703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t BlockCap;
713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} __attribute__((packed));
723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_intelext_regioninfo {
743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t NumIdentPartitions;
753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t NumOpAllowed;
763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t NumOpAllowedSimProgMode;
773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t NumOpAllowedSimEraMode;
783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t NumBlockTypes;
793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount struct cfi_intelext_blockinfo BlockTypes[1];
803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} __attribute__((packed));
813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_intelext_programming_regioninfo {
833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t ProgRegShift;
843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t Reserved1;
853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t ControlValid;
863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t Reserved2;
873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t ControlInvalid;
883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t Reserved3;
893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} __attribute__((packed));
903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_pri_amdstd {
923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t pri[3];
933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t MajorVersion;
943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t MinorVersion;
953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t SiliconRevision;
963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t EraseSuspend;
973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t BlkProt;
983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t TmpBlkUnprotect;
993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t BlkProtUnprot;
1003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t SimultaneousOps;
1013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t BurstMode;
1023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t PageMode;
1033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t VppMin;
1043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t VppMax;
1053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t TopBottom;
1063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} __attribute__((packed));
1073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_pri_atmel {
1093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t pri[3];
1103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t MajorVersion;
1113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t MinorVersion;
1123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t Features;
1133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t BottomBoot;
1143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t BurstMode;
1153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t PageMode;
1163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} __attribute__((packed));
1173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_pri_query {
1193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t NumFields;
1203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint32_t ProtField[1];
1213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} __attribute__((packed));
1223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_bri_query {
1243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t PageModeReadCap;
1253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint8_t NumFields;
1263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint32_t ConfField[1];
1273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} __attribute__((packed));
1283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_NONE 0x0000
1303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_INTEL_EXT 0x0001
1313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_AMD_STD 0x0002
1323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_INTEL_STD 0x0003
1333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_AMD_EXT 0x0004
1343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_WINBOND 0x0006
1353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_ST_ADV 0x0020
1363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_MITSUBISHI_STD 0x0100
1373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_MITSUBISHI_EXT 0x0101
1383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_SST_PAGE 0x0102
1393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_INTEL_PERFORMANCE 0x0200
1403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_INTEL_DATA 0x0210
1413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define P_ID_RESERVED 0xffff
1423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_MODE_CFI 1
1443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_MODE_JEDEC 0
1453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_private {
1473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t cmdset;
1483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount void *cmdset_priv;
1493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount int interleave;
1503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount int device_type;
1513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount int cfi_mode;
1523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount int addr_unlock1;
1533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount int addr_unlock2;
1543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount struct mtd_info *(*cmdset_setup)(struct map_info *);
1553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount struct cfi_ident *cfiq;
1563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount int mfr, id;
1573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount int numchips;
1583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount unsigned long chipshift;
1593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount const char *im_name;
1603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount struct flchip chips[0];
1613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount};
1623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#if BITS_PER_LONG >= 64
1643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif
1653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CMD(x) cfi_build_cmd((x), map, cfi)
1663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#if BITS_PER_LONG >= 64
1673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif
1683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define MERGESTATUS(x) cfi_merge_status((x), map, cfi)
1693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct cfi_fixup {
1713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t mfr;
1723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount uint16_t id;
1733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount void (*fixup)(struct mtd_info *mtd, void* param);
1743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount void* param;
1753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount};
1763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_MFR_ANY 0xffff
1783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_ID_ANY 0xffff
1793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_MFR_AMD 0x0001
1813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_MFR_ATMEL 0x001F
1823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CFI_MFR_ST 0x0020
1833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef int (*varsize_frob_t)(struct map_info *map, struct flchip *chip,
1853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount unsigned long adr, int len, void *thunk);
1863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif
188