61 lines
2.2 KiB
C
61 lines
2.2 KiB
C
/**
|
|
* @file wm_fls_gd25qxx.h
|
|
*
|
|
* @brief wm gd25qxx flash driver
|
|
*
|
|
* @author dave
|
|
*
|
|
* @copyright (c) 2015 Winner Microelectronics Co., Ltd.
|
|
*/
|
|
|
|
#ifndef TLS_EXSPIFLS_H
|
|
#define TLS_EXSPIFLS_H
|
|
|
|
#define SPI_SCLK (10000000) /** 10MHz. */
|
|
#define FLASH_TOTAL_SIZE (1024*1024)
|
|
#define PAGE_SIZE 256
|
|
#define PROGRAM_SIZE 256
|
|
#define PAGE_ADDR_OFFSET 8
|
|
#define SECTOR_SIZE 4096
|
|
|
|
|
|
/**
|
|
* command code define.
|
|
*/
|
|
#define EXSPIFLASH_WRITE_ENABLE (0x06) /** Global write enable */
|
|
#define EXSPIFLASH_WRITE_DISABLE (0x04) /** Global write disable */
|
|
#define EXSPIFLASH_READ_SR1 (0x05) /** Read flash status register s0~s7 */
|
|
#define EXSPIFLASH_READ_SR2 (0x35) /** Read flash status register s8~s15 */
|
|
#define EXSPIFLASH_WRITE_SR (0x01) /** Write flash status register s0~s15 */
|
|
#define EXSPIFLASH_PAGE_PROGRAM (0x02) /** program one page */
|
|
#define EXSPIFLASH_DATA_READ (0x03) /** read data from specified address */
|
|
#define EXSPIFLASH_DATA_FAST_READ (0x0b) /** fast read data from specified address */
|
|
#define EXSPIFLASH_SECTOR_ERASE (0x20) /** Sector erase */
|
|
#define EXSPIFLASH_BLOCK32_ERASE (0x52) /** 32KB Block erase(128 pages) */
|
|
#define EXSPIFLASH_BLOCK64_ERASE (0xd8) /** 64kb Block erase(256 pages) */
|
|
#define EXSPIFLASH_CHIP_ERASE (0xc7) /** Chip erase */
|
|
#define EXSPIFLASH_FLASH_DEVICEID (0x90) /** Read flash manufacturer/device ID */
|
|
#define EXSPIFLASH_FLASH_ID (0x9f) /** Read flash ID */
|
|
|
|
|
|
#define FLASH_STATUS_BUSY (1 << 0)
|
|
#define FLASH_STATUS_WEL (1 << 1)
|
|
|
|
/**
|
|
* @brief This function is used to install gd25qxx driver.
|
|
*
|
|
* @param[in] None
|
|
*
|
|
* @retval TLS_FLS_STATUS_OK if write flash success
|
|
* @retval TLS_FLS_STATUS_EPERM if flash struct point is null
|
|
* @retval TLS_FLS_STATUS_ENODRV if flash driver is not installed
|
|
* @retval TLS_FLS_STATUS_EINVAL if argument is invalid
|
|
* @retval TLS_FLS_STATUS_EIO if io error
|
|
* @retval TLS_FLS_STATUS_EEXIST if driver is already existed
|
|
*
|
|
* @note None
|
|
*/
|
|
int tls_spifls_drv_install(void);
|
|
|
|
#endif /* TLS_FLS_GD25QXX_H */
|