32 #ifndef __SPIFILIB_DEV_H_
33 #define __SPIFILIB_DEV_H_
44 #define INLINE __inline
79 #define SPIFI_CAP_DUAL_READ (1 << 0)
80 #define SPIFI_CAP_DUAL_WRITE (1 << 1)
81 #define SPIFI_CAP_QUAD_READ (1 << 2)
82 #define SPIFI_CAP_QUAD_WRITE (1 << 3)
83 #define SPIFI_CAP_FULLLOCK (1 << 4)
84 #define SPIFI_CAP_BLOCKLOCK (1 << 5)
85 #define SPIFI_CAP_SUBBLKERASE (1 << 6)
86 #define SPIFI_CAP_NOBLOCK (1 << 16)
91 #define SPIFI_OPT_USE_DUAL (3 << 0)
92 #define SPIFI_OPT_USE_QUAD (3 << 2)
93 #define SPIFI_OPT_NOBLOCK (1 << 16)
98 #define SPIFI_STAT_BUSY (1 << 0)
99 #define SPIFI_STAT_ISWP (1 << 1)
100 #define SPIFI_STAT_FULLLOCK (1 << 2)
101 #define SPIFI_STAT_PARTLOCK (1 << 3)
102 #define SPIFI_STAT_PROGERR (1 << 4)
103 #define SPIFI_STAT_ERASEERR (1 << 5)
133 #define SPIFI_INFO_QUADREAD_CLOCK SPIFI_INFO_MAX_HSREAD_CLOCK
138 #define SPIFI_INFO_QUADPROG_CLOCK SPIFI_INFO_MAX_HSPROG_CLOCK
379 #define SPIFI_REG_FAMILY_Spansion_2Byte_PStatus spifi_REG_FAMILY_CommonCommandSet
384 #define SPIFI_REG_FAMILY_Spansion_3Byte_Status spifi_REG_FAMILY_CommonCommandSet
389 #define SPIFI_REG_FAMILY_Macronix_2Byte_Status spifi_REG_FAMILY_CommonCommandSet
394 #define SPIFI_REG_FAMILY_SpansionS25FLP spifi_REG_FAMILY_CommonCommandSet
399 #define SPIFI_REG_FAMILY_SpansionS25FL1 spifi_REG_FAMILY_CommonCommandSet
404 #define SPIFI_REG_FAMILY_MacronixMX25L spifi_REG_FAMILY_CommonCommandSet
deviceInitDeInitFx devInitDeInit
Definition: spifilib_dev.h:273
devGetWriteCmdFx devGetWriteCmd
Definition: spifilib_dev.h:279
struct SPIFI_HANDLE SPIFI_HANDLE_T
LPCSPIFILIB device handle, used with all device and info functions.
devClearStatusFx devClearStatus
Definition: spifilib_dev.h:274
Definition: spifilib_dev.h:185
SPIFI_ERR_T(* reset)(const struct SPIFI_HANDLE *)
Definition: spifilib_dev.h:265
const SPIFI_DEVICE_ID_T * pId
Definition: spifilib_dev.h:346
const char * pFamName
Definition: spifilib_dev.h:212
Definition: spifilib_dev.h:112
const struct SPIFI_DEVICE_DATA * pDevData
Definition: spifilib_dev.h:227
SPIFI_PCMD_SUBBLK_T
Possible device specific sub-block commands.
Definition: spifilib_dev.h:153
SPIFI_ERR_T(* eraseSubBlock)(const struct SPIFI_HANDLE *, uint32_t)
Definition: spifilib_dev.h:259
uint16_t pageSize
Definition: spifilib_dev.h:302
Definition: spifilib_dev.h:63
SPIFI_DEV_NODE_T * pDevice
Definition: spifilib_dev.h:354
Definition: spifilib_dev.h:118
Definition: spifilib_dev.h:67
Definition: spifilib_dev.h:120
devGetReadCmdFx devGetReadCmd
Definition: spifilib_dev.h:278
Definition: spifilib_dev.h:168
Device specific function pointers.
Definition: spifilib_dev.h:250
Definition: spifilib_dev.h:155
Definition: spifilib_dev.h:58
uint32_t opts
Definition: spifilib_dev.h:343
Definition: spifilib_dev.h:172
uint16_t blks
Definition: spifilib_dev.h:298
Definition: spifilib_dev.h:144
uint32_t * pDevCount
Definition: spifilib_dev.h:216
Definition: spifilib_dev.h:115
uint8_t setStatusFxId
Definition: spifilib_dev.h:312
struct SPIFI_DEV_NODE * pDevList
Definition: spifilib_dev.h:213
SPIFI_ERR_T(* eraseAll)(const struct SPIFI_HANDLE *)
Definition: spifilib_dev.h:255
uint32_t(* subBlockCmd)(const struct SPIFI_HANDLE *, SPIFI_PCMD_SUBBLK_T, uint32_t)
Definition: spifilib_dev.h:270
Definition: spifilib_dev.h:119
uint8_t extId[8]
Definition: spifilib_dev.h:288
Definition: spifilib_dev.h:124
SPIFI_DEVFX_T
Enumeration of device specific functions.
Definition: spifilib_dev.h:163
void(* devGetReadCmdFx)(const struct SPIFI_HANDLE *, uint8_t, uint32_t *, uint32_t *)
Definition: spifilib_dev.h:243
Definition: spifilib_dev.h:125
Definition: spifilib_dev.h:60
Definition: spifilib_dev.h:167
Definition: spifilib_dev.h:62
SPIFI_ERR_T(* lockCmd)(const struct SPIFI_HANDLE *, SPIFI_PCMD_LOCK_UNLOCK_T, uint32_t)
Definition: spifilib_dev.h:253
uint8_t initDeInitFxId
Definition: spifilib_dev.h:309
Context for enumerating devices.
Definition: spifilib_dev.h:352
uint32_t(* devGetStatusFx)(const struct SPIFI_HANDLE *)
Definition: spifilib_dev.h:237
Definition: spifilib_dev.h:146
void(* pPrvDevGetID)(uint32_t baseAddr, struct SPIFI_DEVICE_ID *pID)
Definition: spifilib_dev.h:217
uint16_t subBlks
Definition: spifilib_dev.h:300
struct SPIFI_INFODATA SPIFI_INFODATA_T
Common data applicable to all devices.
struct SPIFI_DEV_ENUMERATOR SPIFI_DEV_ENUMERATOR_T
Context for enumerating devices.
LPCSPIFILIB device handle, used with all device and info functions.
Definition: spifilib_dev.h:321
Definition: spifilib_dev.h:170
struct SPIFI_FAM_NODE SPIFI_FAM_NODE_T
LPCSPIFILIB family data.
void(* devGetWriteCmdFx)(const struct SPIFI_HANDLE *, uint32_t *)
Definition: spifilib_dev.h:245
SPIFI_ERR_T(* pageProgram)(const struct SPIFI_HANDLE *, uint32_t, const uint32_t *, uint32_t)
Definition: spifilib_dev.h:261
uint32_t prvContextSize
Definition: spifilib_dev.h:215
struct SPIFI_DEVICE_ID SPIFI_DEVICE_ID_T
Device identification data.
uint8_t extCount
Definition: spifilib_dev.h:287
void(* devSetStatusFx)(const struct SPIFI_HANDLE *, uint32_t)
Definition: spifilib_dev.h:239
SPIFI_ERR_T(* pPrvDevSetup)(struct SPIFI_HANDLE *pHandle, uint32_t spifiCtrlAddr, uint32_t baseAddr)
Definition: spifilib_dev.h:219
uint8_t maxHSReadRate
Definition: spifilib_dev.h:306
struct SPIFI_DEV_NODE * pNext
Definition: spifilib_dev.h:229
Definition: spifilib_dev.h:165
Definition: spifilib_dev.h:179
Definition: spifilib_dev.h:59
uint32_t blockSize
Definition: spifilib_dev.h:336
uint8_t maxReadRate
Definition: spifilib_dev.h:305
uint32_t maxReadSize
Definition: spifilib_dev.h:303
Definition: spifilib_dev.h:177
Definition: spifilib_dev.h:164
uint8_t getWriteCmdFxId
Definition: spifilib_dev.h:315
uint32_t(* getStatus)(const struct SPIFI_HANDLE *, uint8_t)
Definition: spifilib_dev.h:268
Device identification data.
Definition: spifilib_dev.h:285
devGetStatusFx devGetStatus
Definition: spifilib_dev.h:275
Definition: spifilib_dev.h:180
Definition: spifilib_dev.h:171
Register device data.
Definition: spifilib_dev.h:294
uint16_t subBlkSize
Definition: spifilib_dev.h:301
Definition: spifilib_dev.h:64
Definition: spifilib_dev.h:65
SPIFI_FAM_NODE_T * spifi_REG_FAMILY_CommonCommandSet(void)
Family registration function.
Definition: spifilib_fam_standard_cmd.c:1220
SPIFI_ERR_T
Possible error codes that can be returned from functions.
Definition: spifilib_dev.h:57
uint8_t mfgId[3]
Definition: spifilib_dev.h:286
Definition: spifilib_dev.h:116
struct SPIFI_FAM_DESC SPIFI_FAM_DESC_T
LPCSPIFILIB family descriptor, used to describe devices to non-device specific functions.
const struct SPIFI_FAM_DESC * pDesc
Definition: spifilib_dev.h:202
const struct SPIFI_FAM_FX * pFamFx
Definition: spifilib_dev.h:322
struct SPIFI_DEVICE_DATA SPIFI_DEVICE_DATA_T
Register device data.
Definition: spifilib_dev.h:184
Definition: spifilib_dev.h:109
Definition: spifilib_dev.h:68
void(* devClearStatusFx)(const struct SPIFI_HANDLE *)
Definition: spifilib_dev.h:235
void * pDevContext
Definition: spifilib_dev.h:326
Register device data node.
Definition: spifilib_dev.h:226
SPIFI_ERR_T(* eraseBlock)(const struct SPIFI_HANDLE *, uint32_t)
Definition: spifilib_dev.h:257
const char * pDevName
Definition: spifilib_dev.h:295
devSetOptsFx devSetOpts
Definition: spifilib_dev.h:277
uint32_t numBlocks
Definition: spifilib_dev.h:335
SPIFI_ERR_T(* read)(const struct SPIFI_HANDLE *, uint32_t, uint32_t *, uint32_t)
Definition: spifilib_dev.h:263
SPIFI_FAM_NODE_T * pFamily
Definition: spifilib_dev.h:353
Definition: spifilib_dev.h:182
uint8_t maxClkRate
Definition: spifilib_dev.h:304
Definition: spifilib_dev.h:69
devSetStatusFx devSetStatus
Definition: spifilib_dev.h:276
Definition: spifilib_dev.h:113
uint32_t subBlockSize
Definition: spifilib_dev.h:338
Definition: spifilib_dev.h:121
Definition: spifilib_dev.h:114
Definition: spifilib_dev.h:175
struct SPIFI_INFODATA * pInfoData
Definition: spifilib_dev.h:324
SPIFI_ERR_T(* deviceInitDeInitFx)(const struct SPIFI_HANDLE *, uint32_t)
Definition: spifilib_dev.h:233
SPIFI_INFO_ID_T
Possible info lookup requests.
Definition: spifilib_dev.h:108
Definition: spifilib_dev.h:70
struct SPIFI_DEV_NODE SPIFI_DEV_NODE_T
Register device data node.
Definition: spifilib_dev.h:111
SPIFI_PCMD_LOCK_UNLOCK_T
Possible device specific lock / un-lock commands.
Definition: spifilib_dev.h:142
SPIFI_DEVICE_ID_T id
Definition: spifilib_dev.h:296
struct SPIFI_FAM_FX SPIFI_FAM_FX_T
Device specific function pointers.
Common data applicable to all devices.
Definition: spifilib_dev.h:332
uint8_t maxProgramRate
Definition: spifilib_dev.h:307
SPIFI_ERR_T(* devSetOptsFx)(const struct SPIFI_HANDLE *, uint32_t, uint32_t)
Definition: spifilib_dev.h:241
struct SPIFI_FAM_NODE * pNext
Definition: spifilib_dev.h:204
Definition: spifilib_dev.h:66
Definition: spifilib_dev.h:156
uint32_t numSubBlocks
Definition: spifilib_dev.h:337
uint32_t baseAddr
Definition: spifilib_dev.h:334
LPCSPIFILIB family descriptor, used to describe devices to non-device specific functions.
Definition: spifilib_dev.h:211
uint32_t maxReadSize
Definition: spifilib_dev.h:340
Definition: spifilib_dev.h:173
const struct SPIFI_DEVICE_DATA * pDeviceData
Definition: spifilib_dev.h:341
uint32_t spifiCtrlAddr
Definition: spifilib_dev.h:333
uint8_t clearStatusFxId
Definition: spifilib_dev.h:310
uint8_t getStatusFxId
Definition: spifilib_dev.h:311
SPIFI_ERR_T lastErr
Definition: spifilib_dev.h:345
Definition: spifilib_dev.h:143
Definition: spifilib_dev.h:145
Definition: spifilib_dev.h:154
Definition: spifilib_dev.h:117
Definition: spifilib_dev.h:110
uint8_t getReadCmdFxId
Definition: spifilib_dev.h:314
Definition: spifilib_dev.h:122
uint32_t pageSize
Definition: spifilib_dev.h:339
Definition: spifilib_dev.h:123
const char * pDevName
Definition: spifilib_dev.h:344
uint8_t setOptionsFxId
Definition: spifilib_dev.h:313
LPCSPIFILIB family data.
Definition: spifilib_dev.h:201
uint32_t blkSize
Definition: spifilib_dev.h:299
Definition: spifilib_dev.h:61
Definition: spifilib_dev.h:176
uint8_t maxHSProgramRate
Definition: spifilib_dev.h:308
uint32_t caps
Definition: spifilib_dev.h:297