54 #define CMD_READ_JEDEC_ID 0x9F
55 #define CMD_READ_DEVICE_ID 0xAB
63 #define CMD_READ_STATUS_REG_1 0x05
64 #define CMD_READ_STATUS_REG_2 0x35
65 #define CMD_READ_STATUS_REG_3 0x15
66 #define CMD_WRITE_STATUS_REG_1 0x01
67 #define CMD_WRITE_STATUS_REG_2 0x31
68 #define CMD_WRITE_STATUS_REG_3 0x11
76 #define CMD_PAGE_PROGRAM 0x02
77 #define CMD_QUAD_PAGE_PROGRAM 0x32
78 #define CMD_WRITE_ENABLE 0x06
79 #define CMD_WRITE_DISABLE 0x04
87 #define CMD_READ_DATA 0x03
88 #define CMD_FAST_READ 0x0B
89 #define CMD_DUAL_OUTPUT_READ 0x3B
90 #define CMD_QUAD_OUTPUT_READ 0x6B
98 #define CMD_RELEASE_DEEP_POWER_DOWN 0xAB
99 #define CMD_ENABLE_RESET 0x66
100 #define CMD_RESET_DEVICE 0x99
101 #define CMD_GLOBAL_LOCK 0x7E
102 #define CMD_GLOBAL_UNLOCK 0x98
103 #define CMD_ENABLE_QUAD_GD 0x38
112 #define CMD_ENTER_4B 0xB7
113 #define CMD_EXIT_4B 0xE9
114 #define CMD_EXIT_4B_ISSI 0x29
115 #define CMD_DUAL_OUTPUT_READ_4B 0x3C
116 #define CMD_QUAD_OUTPUT_READ_4B 0x6C
117 #define CMD_READ_4B 0x13
118 #define CMD_PROGRAM_4B 0x12
119 #define CMD_SECTOR_ERASE 0x20
120 #define CMD_ERASE_4K_4B 0x21
121 #define CMD_ERASE_64K_4B 0xDC
spiFlash_status_t
SPI Flash transfer mode configuration.
@ SPI_FLASH_OK
Successful Operation */.
@ SPI_FLASH_ERR
Unknown JEDEC ID, Electrical failure (0x00/0xFF) */.
@ SPI_FLASH_SKIP
Skip the function */.
void spiFlash_quad_f2m(spiFlash_instance_t *flash, u32 flashAddress, uintptr_t memoryAddress, u32 size)
This function read data from FlashAddress and copy to memoryAddress of specific size with quad data l...
void spiFlash_writeStatusReg(spiFlash_instance_t *flash, u8 data)
Write Status Register.
void spiFlash_read_quad(spiFlash_instance_t *flash, u32 flashAddress, u8 *buffer, u32 len)
Read N byte from Flash using quad read mode.
void spiFlash_writeEnable(spiFlash_instance_t *flash)
Set Write Enable Latch.
spiFlash_status_t spiFlash_verify(spiFlash_instance_t *flash, const spiFlash_info_t *user_flash)
Verify spiFlash.
void spiFlash_sectorErase(spiFlash_instance_t *flash, u32 flashAddress)
Erases a sector of the SPI flash given an address.
u32 spiFlash_jedec_id(spiFlash_instance_t *flash)
Select and read JEDEC ID from spiFlash.
void spiFlash_dual_f2m(spiFlash_instance_t *flash, u32 flashAddress, uintptr_t memoryAddress, u32 size)
This function read data from FlashAddress and copy to memoryAddress of specific size with dual data l...
u8 spiFlash_read_id(spiFlash_instance_t *flash)
Select and Read Device ID from spiFlash.
void spiFlash_read(spiFlash_instance_t *flash, u32 flashAddress, u8 *buffer, u32 len)
Read N byte from Flash using standard read mode.
void spiFlash_enable_quad_access(spiFlash_instance_t *flash)
Set Write Enable Latch and set Quad Enable bit to enable Quad SPI.
spiFlash_status_t spiFlash_waitBusy(spiFlash_instance_t *flash)
Wait for spiFlash to be free.
u8 spiFlash_write_quad(spiFlash_instance_t *flash, u32 flashAddress, u8 *src, u32 len)
Write N byte to Flash using quad write mode.
u8 spiFlash_readStatusReg(spiFlash_instance_t *flash)
Read Status Register.
void spiFlash_globalUnlock(spiFlash_instance_t *flash)
Globally unlocks the SPI flash.
u8 spiFlash_write(spiFlash_instance_t *flash, u32 flashAddress, u8 *src, u32 len)
Write N byte to Flash using standard write mode.
u8 spiFlash_exit4ByteAddr(spiFlash_instance_t *flash)
Exit 4-byte addressing.
void spiFlash_f2m(spiFlash_instance_t *flash, u32 flashAddress, uintptr_t memoryAddress, u32 size)
This function read data from FlashAddress and copy to memoryAddress of specific size with single data...
void spiFlash_init_controller(spiFlash_instance_t *flash)
Initialize SPI setting.
void spiFlash_globalLock(spiFlash_instance_t *flash)
Globally locks the SPI flash.
spiFlash_status_t spiFlash_probe(spiFlash_instance_t *flash, const spiFlash_info_t *user_flash)
The main wrapper for initialize SPI Flash.
void spiFlash_wake(spiFlash_instance_t *flash)
Select spi and wake up SPI Flash.
SPI driver API definitions.
SPI Flash Device Database and Capability Flags.
SPI instance. Holds the software registers and hardware pointer.
SPI Flash Device Descriptor.
SPI Flash instance structure.
u32 detected_id
JEDEC_ID = Manu_id, mem_type, capacity */.
u8 cmd_exit_4byte
CMD for exit 4 byte addressing */.
u8 mask_qe
CMD for Quad Enable Bit */.
u8 cmd_wr_status
CMD for Write Status */.
const spiFlash_info_t * info
Flash Descriptor */.
u8 cmd_rd_status
CMD for Read Status */.
spi_instance_t * inst
Pointer to shared SPI Master */.