81 lines
1.9 KiB
C
Executable File
81 lines
1.9 KiB
C
Executable File
#ifndef _S2MM005_FW_H
|
|
#define _S2MM005_FW_H
|
|
|
|
enum {
|
|
FLASH_MODE_ENTER,
|
|
FLASH_ERASE,
|
|
FLASH_WRITE,
|
|
FLASH_WRITE3,
|
|
FLASH_WRITE4,
|
|
FLASH_WRITE5,
|
|
FLASH_WRITE6,
|
|
FLASH_WRITE7,
|
|
FLASH_WRITE8,
|
|
FLASH_WRITE_BUILTIN,
|
|
FLASH_WRITE_UMS,
|
|
FLASH_MODE_EXIT,
|
|
};
|
|
|
|
enum {
|
|
FLASH_MODE_NORMAL = 0x00,
|
|
FLASH_MODE_FLASH = 0x80,
|
|
FLASH_MODE_ERASE = 0x81,
|
|
};
|
|
|
|
enum {
|
|
FLASH_FW_VER_MATCH = 0x00,
|
|
FLASH_FW_VER_BOOT = 0x01,
|
|
FLASH_FW_VER_MAIN = 0x02,
|
|
|
|
/* ERROR FOR S2MM005 FLASH WRITE */
|
|
EFLASH_VERIFY = 0x10,
|
|
EFLASH_WRITE_SWVERSION,
|
|
EFLASH_WRITE_SIZE,
|
|
EFLASH_WRITE_CRC,
|
|
EFLASH_WRITE_DONE,
|
|
};
|
|
|
|
enum {
|
|
PRODUCT_NUM_GRACE = 0x00,
|
|
PRODUCT_NUM_DREAM = 0x01,
|
|
PRODUCT_NUM_GREAT = 0x0A,
|
|
PRODUCT_NUM_VIEW2 = 0x0D,
|
|
};
|
|
|
|
struct s2mm005_version {
|
|
u8 main[3];
|
|
u8 boot;
|
|
u8 ver2[4];
|
|
};
|
|
|
|
struct s2mm005_fw {
|
|
u8 boot;
|
|
u8 main[3];
|
|
unsigned char reserve[4];
|
|
unsigned int size;
|
|
};
|
|
|
|
const char *flashmode_to_string(u32 mode);
|
|
void s2mm005_write_flash(const struct i2c_client *i2c, unsigned int fAddr, unsigned int fData);
|
|
void s2mm005_verify_flash(const struct i2c_client *i2c, uint32_t fAddr, uint32_t *fRData);
|
|
int s2mm005_flash(struct s2mm005_data *usbpd_data, unsigned int input);
|
|
int s2mm005_flash_fw(struct s2mm005_data *usbpd_data, unsigned int input);
|
|
void s2mm005_get_chip_hwversion(struct s2mm005_data *usbpd_data, struct s2mm005_version *version);
|
|
void s2mm005_get_chip_swversion(struct s2mm005_data *usbpd_data, struct s2mm005_version *version);
|
|
void s2mm005_get_fw_version(int product_id, struct s2mm005_version *version, u8 boot_version, u32 hw_rev);
|
|
int s2mm005_check_version(struct s2mm005_version *version1, struct s2mm005_version *version2);
|
|
int s2mm005_flash_fw_entry(struct s2mm005_data *usbpd_data, const struct firmware *fw_entry);
|
|
|
|
#define CMD_MODE_0x10 0x10
|
|
#define CMD_HOST_0x11 0x11
|
|
#define FLASH_STATUS_0x24 0x24
|
|
|
|
#define FLASH_MODE_ENTER_0x10 0x10
|
|
#define FLASH_WRITE_0x42 0x42
|
|
#define FLASH_ERASE_0x44 0x44
|
|
#define FLASH_MODE_EXIT_0x20 0x20
|
|
|
|
#define FLASH_WRITING_BYTE_SIZE_0x4 0x4
|
|
|
|
#endif
|