diff options
Diffstat (limited to 'controller/fw/src/spi_flash.h')
-rw-r--r-- | controller/fw/src/spi_flash.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/controller/fw/src/spi_flash.h b/controller/fw/src/spi_flash.h new file mode 100644 index 0000000..e647c6a --- /dev/null +++ b/controller/fw/src/spi_flash.h @@ -0,0 +1,31 @@ +#ifndef __SPI_FLASH_H__ +#define __SPI_FLASH_H__ + +#include <stdbool.h> +#include <unistd.h> + +struct spi_mem_id { + size_t size; + uint8_t mfg_id; + uint8_t type; +}; + +struct spi_flash_if { + struct spi_mem_id id; + uint32_t spi_base; + size_t page_size; + void (*cs)(bool val); +}; + +void spif_init(struct spi_flash_if *spif, size_t page_size, uint32_t spi_base, void (*cs)(bool val)); + +void spif_write(struct spi_flash_if *spif, size_t addr, size_t len, const char* data); +void spif_read(struct spi_flash_if *spif, size_t addr, size_t len, char* data); + +void spif_clear_mem(struct spi_flash_if *spif); +void spif_clear_sector(struct spi_flash_if *spif, size_t addr); + +void spif_deep_power_down(struct spi_flash_if *spif); +void spif_wakeup(struct spi_flash_if *spif); + +#endif /* __SPI_FLASH_H__ */ |