spi_mem_chip.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include <furi.h>
  3. #include <m-array.h>
  4. typedef struct SPIMemChip SPIMemChip;
  5. ARRAY_DEF(found_chips, const SPIMemChip*, M_POD_OPLIST)
  6. typedef enum {
  7. SPIMemChipStatusBusy,
  8. SPIMemChipStatusIdle,
  9. SPIMemChipStatusError
  10. } SPIMemChipStatus;
  11. typedef enum {
  12. SPIMemChipWriteModeUnknown = 0,
  13. SPIMemChipWriteModePage = (0x01 << 0),
  14. SPIMemChipWriteModeAAIByte = (0x01 << 1),
  15. SPIMemChipWriteModeAAIWord = (0x01 << 2),
  16. } SPIMemChipWriteMode;
  17. const char* spi_mem_chip_get_vendor_name(const SPIMemChip* chip);
  18. const char* spi_mem_chip_get_model_name(const SPIMemChip* chip);
  19. size_t spi_mem_chip_get_size(SPIMemChip* chip);
  20. uint8_t spi_mem_chip_get_vendor_id(SPIMemChip* chip);
  21. uint8_t spi_mem_chip_get_type_id(SPIMemChip* chip);
  22. uint8_t spi_mem_chip_get_capacity_id(SPIMemChip* chip);
  23. SPIMemChipWriteMode spi_mem_chip_get_write_mode(SPIMemChip* chip);
  24. size_t spi_mem_chip_get_page_size(SPIMemChip* chip);
  25. bool spi_mem_chip_find_all(SPIMemChip* chip_info, found_chips_t found_chips);
  26. void spi_mem_chip_copy_chip_info(SPIMemChip* dest, const SPIMemChip* src);
  27. uint32_t spi_mem_chip_get_vendor_enum(const SPIMemChip* chip);
  28. const char* spi_mem_chip_get_vendor_name_by_enum(uint32_t vendor_enum);