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_4BYTE_ADDR (1 << 7)
87 #define SPIFI_CAP_NOBLOCK (1 << 16)
92 #define SPIFI_OPT_USE_DUAL (3 << 0)
93 #define SPIFI_OPT_USE_QUAD (3 << 2)
94 #define SPIFI_OPT_NOBLOCK (1 << 16)
99 #define SPIFI_STAT_BUSY (1 << 0)
100 #define SPIFI_STAT_ISWP (1 << 1)
101 #define SPIFI_STAT_FULLLOCK (1 << 2)
102 #define SPIFI_STAT_PARTLOCK (1 << 3)
103 #define SPIFI_STAT_PROGERR (1 << 4)
104 #define SPIFI_STAT_ERASEERR (1 << 5)
134 #define SPIFI_INFO_QUADREAD_CLOCK SPIFI_INFO_MAX_HSREAD_CLOCK
139 #define SPIFI_INFO_QUADPROG_CLOCK SPIFI_INFO_MAX_HSPROG_CLOCK
195 struct SPIFI_DEVICE_DATA;
197 struct SPIFI_FAM_DESC;
199 struct SPIFI_DEVICE_ID;
204 typedef struct SPIFI_FAM_NODE {
214 typedef struct SPIFI_FAM_DESC {
220 void (*pPrvDevGetID)(uint32_t baseAddr,
struct SPIFI_DEVICE_ID *pID);
222 SPIFI_ERR_T (*pPrvDevSetup)(
struct SPIFI_HANDLE *pHandle, uint32_t spifiCtrlAddr, uint32_t baseAddr);
229 typedef struct SPIFI_DEV_NODE {
246 typedef void (*
devGetReadCmdFx)(
const struct SPIFI_HANDLE *, uint8_t, uint32_t *, uint32_t *);
253 typedef struct SPIFI_FAM_FX {
262 SPIFI_ERR_T (*eraseSubBlock)(
const struct SPIFI_HANDLE *, uint32_t);
264 SPIFI_ERR_T (*pageProgram)(
const struct SPIFI_HANDLE *, uint32_t,
const uint32_t *, uint32_t);
266 SPIFI_ERR_T (*read)(
const struct SPIFI_HANDLE *, uint32_t, uint32_t *, uint32_t);
271 uint32_t (*getStatus)(
const struct SPIFI_HANDLE *, uint8_t);
288 typedef struct SPIFI_DEVICE_ID {
297 typedef struct SPIFI_DEVICE_DATA {
324 typedef struct SPIFI_HANDLE {
335 typedef struct SPIFI_INFODATA {
355 typedef struct SPIFI_DEV_ENUMERATOR {
382 #define SPIFI_REG_FAMILY_Spansion_2Byte_PStatus spifi_REG_FAMILY_CommonCommandSet
387 #define SPIFI_REG_FAMILY_Spansion_3Byte_Status spifi_REG_FAMILY_CommonCommandSet
392 #define SPIFI_REG_FAMILY_Macronix_2Byte_Status spifi_REG_FAMILY_CommonCommandSet
397 #define SPIFI_REG_FAMILY_SpansionS25FLP spifi_REG_FAMILY_CommonCommandSet
402 #define SPIFI_REG_FAMILY_SpansionS25FL1 spifi_REG_FAMILY_CommonCommandSet
407 #define SPIFI_REG_FAMILY_MacronixMX25L spifi_REG_FAMILY_CommonCommandSet