spi_mem_chip_i.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #pragma once
  2. #include <furi.h>
  3. #include "spi_mem_chip.h"
  4. typedef enum {
  5. SPIMemChipVendorUnknown,
  6. SPIMemChipVendorADESTO,
  7. SPIMemChipVendorAMIC,
  8. SPIMemChipVendorBoya,
  9. SPIMemChipVendorEON,
  10. SPIMemChipVendorPFLASH,
  11. SPIMemChipVendorTERRA,
  12. SPIMemChipVendorGeneralplus,
  13. SPIMemChipVendorDEUTRON,
  14. SPIMemChipVendorEFST,
  15. SPIMemChipVendorEXCELSEMI,
  16. SPIMemChipVendorFIDELIX,
  17. SPIMemChipVendorGIGADEVICE,
  18. SPIMemChipVendorICE,
  19. SPIMemChipVendorINTEL,
  20. SPIMemChipVendorKHIC,
  21. SPIMemChipVendorMACRONIX,
  22. SPIMemChipVendorMICRON,
  23. SPIMemChipVendorMSHINE,
  24. SPIMemChipVendorNANTRONICS,
  25. SPIMemChipVendorNEXFLASH,
  26. SPIMemChipVendorNUMONYX,
  27. SPIMemChipVendorPCT,
  28. SPIMemChipVendorSPANSION,
  29. SPIMemChipVendorSST,
  30. SPIMemChipVendorST,
  31. SPIMemChipVendorWINBOND,
  32. SPIMemChipVendorZEMPRO,
  33. SPIMemChipVendorZbit,
  34. SPIMemChipVendorBerg_Micro,
  35. SPIMemChipVendorATMEL,
  36. SPIMemChipVendorACE,
  37. SPIMemChipVendorATO,
  38. SPIMemChipVendorDOUQI,
  39. SPIMemChipVendorFremont,
  40. SPIMemChipVendorFudan,
  41. SPIMemChipVendorGenitop,
  42. SPIMemChipVendorParagon,
  43. SPIMemChipVendorXTX
  44. } SPIMemChipVendor;
  45. typedef enum {
  46. SPIMemChipCMDReadJEDECChipID = 0x9F,
  47. SPIMemChipCMDReadData = 0x03,
  48. SPIMemChipCMDChipErase = 0xC7,
  49. SPIMemChipCMDWriteEnable = 0x06,
  50. SPIMemChipCMDWriteDisable = 0x04,
  51. SPIMemChipCMDReadStatus = 0x05,
  52. SPIMemChipCMDWriteData = 0x02,
  53. SPIMemChipCMDReleasePowerDown = 0xAB
  54. } SPIMemChipCMD;
  55. enum SPIMemChipStatusBit {
  56. SPIMemChipStatusBitBusy = (0x01 << 0),
  57. SPIMemChipStatusBitWriteEnabled = (0x01 << 1),
  58. SPIMemChipStatusBitBitProtection1 = (0x01 << 2),
  59. SPIMemChipStatusBitBitProtection2 = (0x01 << 3),
  60. SPIMemChipStatusBitBitProtection3 = (0x01 << 4),
  61. SPIMemChipStatusBitTopBottomProtection = (0x01 << 5),
  62. SPIMemChipStatusBitSectorProtect = (0x01 << 6),
  63. SPIMemChipStatusBitRegisterProtect = (0x01 << 7)
  64. };
  65. typedef struct {
  66. const char* vendor_name;
  67. SPIMemChipVendor vendor_enum;
  68. } SPIMemChipVendorName;
  69. struct SPIMemChip {
  70. uint8_t vendor_id;
  71. uint8_t type_id;
  72. uint8_t capacity_id;
  73. const char* model_name;
  74. size_t size;
  75. size_t page_size;
  76. SPIMemChipVendor vendor_enum;
  77. SPIMemChipWriteMode write_mode;
  78. };
  79. extern const SPIMemChip SPIMemChips[];