123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- /*!
- *****************************************************************************
- ** \file gd_lib/GK7101/inc/gd_spieeprom.h
- **
- ** \version $Id$
- **
- ** \brief
- **
- ** \attention THIS SAMPLE CODE IS PROVIDED AS IS. GOKE MICROELECTRONICS
- ** ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR
- ** OMMISSIONS
- **
- ** (C) Copyright 2012-2013 by GOKE MICROELECTRONICS CO.,LTD
- **
- *****************************************************************************
- */
- #ifndef _GD_SPIEEPROM_H_
- #define _GD_SPIEEPROM_H_
- #include <gtypes.h>
- #include <gmodids.h>
- #include "gd_gpio.h"
- #include "gd_spi.h"
- //*****************************************************************************
- //*****************************************************************************
- //** Defines and Macros
- //*****************************************************************************
- //*****************************************************************************
- //*****************************************************************************
- //*****************************************************************************
- //** Enumerated types
- //*****************************************************************************
- //*****************************************************************************
- typedef enum
- {
- GD_SPI_EEPROM_AT25320B = 0,
- GD_SPI_EEPROM_AT25640B,
- GD_SPI_EEPROM_NUM
- }GD_SPI_EEPROM_E;
- /*!
- *******************************************************************************
- **
- ** \anchor
- ** \brief he base error code for the serial spi eeprom device driver.
- **
- *******************************************************************************
- */
- #define GD_SPI_EEPROM_ERR_BASE (GD_SPI_EEPROM_MODULE_ID<<16)
- /*!
- *******************************************************************************
- **
- ** \brief Flash driver error codes.
- **
- *******************************************************************************
- */
- enum
- {
- GD_ERR_SPI_EEPROM_TYPE_NOT_SUPPORTED = GD_SPI_EEPROM_ERR_BASE, //!< Device not supported.
- GD_ERR_SPI_EEPROM_IN_USE, //!< Read error.
- GD_ERR_SPI_EEPROM_READ, //!< Read error.
- GD_ERR_SPI_EEPROM_WRITE, //!< Write error.
- };
- //*****************************************************************************
- //*****************************************************************************
- //** Data Structures
- //*****************************************************************************
- //*****************************************************************************
- /*
- *******************************************************************************
- **
- ** serial spi eeprom specific commands and statis register bit definitions
- **
- *******************************************************************************
- */
- typedef struct
- {
- U8 writeEnable; // command to WREN Set Write Enable Latch
- U8 writeDisable; // command to WRDI Reset Write Enable Latch
- U8 readStatus; // command to RDSR Read Status Register
- U8 writeStatus; // command to WRSR Write Status Register
- U8 readData; // command to READ Read Data from Memory Array
- U8 WriteData; // command to WRITE Write Data to Memory Array
- }GD_SPI_EEPROM_CMD_S;
- /*
- *******************************************************************************
- **
- ** serial spi eeprom specific geometry and information data structure
- **
- *******************************************************************************
- */
- typedef struct
- {
- char* manufactureName; // Pointer to manufacture name
- char* deviceName; // Pointer to device name
- U32 deviceBytes; // Size of spi eeprom device in bytes
- U32 sectorCount; // Number of sectors
- U32 sectorBytes; // Size of a single sector in bytes
- GD_SPI_EEPROM_CMD_S* commands; // Device specific access commands
- GBOOL wptoporbottom;
- GD_SPI_EEPROM_E device;
- GD_HANDLE spi;
- GD_HANDLE wp;
- GD_HANDLE hold;
- }GD_SPI_EEPROM_DEV_S;
- typedef struct
- {
- GD_SPI_EEPROM_E device;
- GD_SPI_CHANNEL_E channel;
- GD_SPI_SLAVE_E slave;
- GD_SPI_SPEED_MODE speed;
- GD_SPI_POLARITY_MODE polarity;
- GBOOL used_irq;
- GD_GPIO_PIN_E csgpiopin;
- GD_GPIO_TYPE_E csgpiotype;
- GD_GPIO_PIN_E wpgpiopin;
- GD_GPIO_TYPE_E wpgpiotype;
- GD_GPIO_PIN_E holdgpiopin;
- GD_GPIO_TYPE_E holdgpiotype;
- } GD_SPI_EEPROM_OPEN_PARAMS_S;
- //*****************************************************************************
- //*****************************************************************************
- //** Global Data
- //*****************************************************************************
- //*****************************************************************************
- //*****************************************************************************
- //*****************************************************************************
- //** API Functions
- //*****************************************************************************
- //*****************************************************************************
- #ifdef __cplusplus
- extern "C" {
- #endif
- GERR GD_SPI_EEPROM_Init(void);
- GERR GD_SPI_EEPROM_Exit(void);
- GERR GD_SPI_EEPROM_Open(GD_SPI_EEPROM_OPEN_PARAMS_S *openParamsP, GD_HANDLE* pHandle);
- GERR GD_SPI_EEPROM_Close(GD_HANDLE* pHandle);
- GERR GD_SPI_EEPROM_Read(GD_HANDLE handle, U32 address, U8* buffer, U32 bytes);
- GERR GD_SPI_EEPROM_Write(GD_HANDLE handle, U32 address, U8* buffer, U32 bytes);
- GERR GD_SPI_EEPROM_GetNames(GD_HANDLE handle, char** manufactureName, char** deviceName);
- GERR GD_SPI_EEPROM_GetNumberOfSectors(GD_HANDLE handle, U16* numberOfSectors);
- GERR GD_SPI_EEPROM_GetSectorAddress(GD_HANDLE handle, U16 sector, U32* address);
- GERR GD_SPI_EEPROM_GetSize(GD_HANDLE handle, U32* deviceBytes);
- GERR GD_SPI_EEPROM_GetSectorSize(GD_HANDLE handle, U16 sector, U32* deviceBytes);
- GERR GD_SPI_EEPROM_GetSector(GD_HANDLE handle, U32 address, U16* sector);
- GERR GD_SPI_EEPROM_Unlock(GD_HANDLE handle);
- GERR GD_SPI_EEPROM_Lock(GD_HANDLE handle);
- #ifdef __cplusplus
- }
- #endif
- #endif /* _GD_SPIEEPROM_H_ */
|