39 lines
1.2 KiB
C
39 lines
1.2 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#ifndef CTS_SFCTRL_H
|
|
#define CTS_SFCTRL_H
|
|
|
|
#include "cts_core.h"
|
|
#include "cts_spi_flash.h"
|
|
|
|
struct cts_device;
|
|
|
|
struct cts_sfctrl_ops {
|
|
int (*rdid)(struct cts_device *cts_dev, u32 *id);
|
|
int (*se)(struct cts_device *cts_dev, u32 sector_addr);
|
|
int (*be)(struct cts_device *cts_dev, u32 sector_addr);
|
|
int (*read)(struct cts_device *cts_dev,
|
|
u32 flash_addr, void *dst, size_t len);
|
|
int (*read_to_sram)(struct cts_device *cts_dev,
|
|
u32 flash_addr, u32 sram_addr, size_t len);
|
|
int (*program)(struct cts_device *cts_dev,
|
|
u32 flash_addr, const void *src, size_t len);
|
|
int (*program_from_sram)(struct cts_device *cts_dev,
|
|
u32 flash_addr, u32 sram_addr, size_t len);
|
|
int (*calc_sram_crc)(struct cts_device *cts_dev,
|
|
u32 sram_addr, size_t len, u32 *crc);
|
|
int (*calc_flash_crc)(struct cts_device *cts_dev,
|
|
u32 flash_addr, size_t len, u32 *crc);
|
|
};
|
|
|
|
struct cts_sfctrl {
|
|
u32 reg_base;
|
|
u32 xchg_sram_base;
|
|
size_t xchg_sram_size;
|
|
const struct cts_sfctrl_ops *ops;
|
|
};
|
|
|
|
extern const struct cts_sfctrl_ops cts_sfctrlv2_ops;
|
|
|
|
#endif /* CTS_SFCTRL_H */
|