mx25lm51245g.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. /**
  2. ******************************************************************************
  3. * @file mx25lm51245g.h
  4. * @modify MCD Application Team
  5. * @brief This file contains all the description of the
  6. * MX25LM51245G OSPI memory.
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * <h2><center>&copy; Copyright (c) 2018 STMicroelectronics.
  11. * All rights reserved.</center></h2>
  12. *
  13. * This software component is licensed by ST under BSD 3-Clause license,
  14. * the "License"; You may not use this file except in compliance with the
  15. * License. You may obtain a copy of the License at:
  16. * opensource.org/licenses/BSD-3-Clause
  17. *
  18. ******************************************************************************
  19. */
  20. /* Define to prevent recursive inclusion -------------------------------------*/
  21. #ifndef MX25LM51245G_H
  22. #define MX25LM51245G_H
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. /* Includes ------------------------------------------------------------------*/
  27. #include "mx25lm51245g_conf.h"
  28. /** @addtogroup BSP
  29. * @{
  30. */
  31. /** @addtogroup Components
  32. * @{
  33. */
  34. /** @addtogroup MX25LM51245G
  35. * @{
  36. */
  37. /** @defgroup MX25LM51245G_Exported_Constants MX25LM51245G Exported Constants
  38. * @{
  39. */
  40. /**
  41. * @brief MX25LM51245G Size configuration
  42. */
  43. #define MX25LM51245G_SECTOR_64K (uint32_t)(64 * 1024) /* 1024 sectors of 64KBytes */
  44. #define MX25LM51245G_SUBSECTOR_4K (uint32_t)(4 * 1024) /* 16384 subsectors of 4KBytes */
  45. #define MX25LM51245G_FLASH_SIZE (uint32_t)(512*1024*1024/8) /* 512 Mbits => 64MBytes */
  46. #define MX25LM51245G_PAGE_SIZE (uint32_t)256 /* 262144 pages of 256 Bytes */
  47. /**
  48. * @brief MX25LM51245G Timing configuration
  49. */
  50. #define MX25LM51245G_BULK_ERASE_MAX_TIME 460000U
  51. #define MX25LM51245G_SECTOR_ERASE_MAX_TIME 1000U
  52. #define MX25LM51245G_SUBSECTOR_4K_ERASE_MAX_TIME 400U
  53. #define MX25LM51245G_WRITE_REG_MAX_TIME 40U
  54. #define MX25LM51245G_RESET_MAX_TIME 100U /* when SWreset during erase operation */
  55. #define MX25LM51245G_AUTOPOLLING_INTERVAL_TIME 0x10U
  56. /**
  57. * @brief MX25LM51245G Error codes
  58. */
  59. #define MX25LM51245G_OK (0)
  60. #define MX25LM51245G_ERROR (-1)
  61. /**
  62. * @brief re-definition of legacy memory mapped functions
  63. */
  64. #define MX25LM51245G_EnableMemoryMappedModeDTR MX25LM51245G_EnableDTRMemoryMappedMode
  65. #define MX25LM51245G_EnableMemoryMappedModeSTR MX25LM51245G_EnableSTRMemoryMappedMode
  66. /******************************************************************************
  67. * @brief MX25LM51245G Commands
  68. ****************************************************************************/
  69. /*******************************************************************/
  70. /********************************* SPI ****************************/
  71. /*******************************************************************/
  72. /***** READ/WRITE MEMORY Operations with 3-Byte Address ****************************/
  73. #define MX25LM51245G_READ_CMD 0x03U /*!< Normal Read 3 Byte Address */
  74. #define MX25LM51245G_FAST_READ_CMD 0x0BU /*!< Fast Read 3 Byte Address */
  75. #define MX25LM51245G_PAGE_PROG_CMD 0x02U /*!< Page Program 3 Byte Address */
  76. #define MX25LM51245G_SUBSECTOR_ERASE_4K_CMD 0x20U /*!< SubSector Erase 4KB 3 Byte Address */
  77. #define MX25LM51245G_SECTOR_ERASE_64K_CMD 0xD8U /*!< Sector Erase 64KB 3 Byte Address */
  78. #define MX25LM51245G_BULK_ERASE_CMD 0x60U /*!< Bulk Erase */
  79. /***** READ/WRITE MEMORY Operations with 4-Byte Address ****************************/
  80. #define MX25LM51245G_4_BYTE_ADDR_READ_CMD 0x13U /*!< Normal Read 4 Byte address */
  81. #define MX25LM51245G_4_BYTE_ADDR_FAST_READ_CMD 0x0CU /*!< Fast Read 4 Byte address */
  82. #define MX25LM51245G_4_BYTE_PAGE_PROG_CMD 0x12U /*!< Page Program 4 Byte Address */
  83. #define MX25LM51245G_4_BYTE_SUBSECTOR_ERASE_4K_CMD 0x21U /*!< SubSector Erase 4KB 4 Byte Address */
  84. #define MX25LM51245G_4_BYTE_SECTOR_ERASE_64K_CMD 0xDCU /*!< Sector Erase 64KB 4 Byte Address */
  85. /***** Setting commands ************************************************************/
  86. #define MX25LM51245G_WRITE_ENABLE_CMD 0x06U /*!< Write Enable */
  87. #define MX25LM51245G_WRITE_DISABLE_CMD 0x04U /*!< Write Disable */
  88. #define MX25LM51245G_PROG_ERASE_SUSPEND_CMD 0xB0U /*!< Program/Erase suspend */
  89. #define MX25LM51245G_PROG_ERASE_RESUME_CMD 0x30U /*!< Program/Erase resume */
  90. #define MX25LM51245G_ENTER_DEEP_POWER_DOWN_CMD 0xB9U /*!< Enter deep power down */
  91. #define MX25LM51245G_SET_BURST_LENGTH_CMD 0xC0U /*!< Set burst length */
  92. #define MX25LM51245G_ENTER_SECURED_OTP_CMD 0xB1U /*!< Enter secured OTP) */
  93. #define MX25LM51245G_EXIT_SECURED_OTP_CMD 0xC1U /*!< Exit secured OTP) */
  94. /***** RESET commands ************************************************************/
  95. #define MX25LM51245G_NOP_CMD 0x00U /*!< No operation */
  96. #define MX25LM51245G_RESET_ENABLE_CMD 0x66U /*!< Reset Enable */
  97. #define MX25LM51245G_RESET_MEMORY_CMD 0x99U /*!< Reset Memory */
  98. /***** Register Commands (SPI) ****************************************************/
  99. #define MX25LM51245G_READ_ID_CMD 0x9FU /*!< Read IDentification */
  100. #define MX25LM51245G_READ_SERIAL_FLASH_DISCO_PARAM_CMD 0x5AU /*!< Read Serial Flash Discoverable Parameter */
  101. #define MX25LM51245G_READ_STATUS_REG_CMD 0x05U /*!< Read Status Register */
  102. #define MX25LM51245G_READ_CFG_REG_CMD 0x15U /*!< Read configuration Register */
  103. #define MX25LM51245G_WRITE_STATUS_REG_CMD 0x01U /*!< Write Status Register */
  104. #define MX25LM51245G_READ_CFG_REG2_CMD 0x71U /*!< Read configuration Register2 */
  105. #define MX25LM51245G_WRITE_CFG_REG2_CMD 0x72U /*!< Write configuration Register2 */
  106. #define MX25LM51245G_READ_FAST_BOOT_REG_CMD 0x16U /*!< Read fast boot Register */
  107. #define MX25LM51245G_WRITE_FAST_BOOT_REG_CMD 0x17U /*!< Write fast boot Register */
  108. #define MX25LM51245G_ERASE_FAST_BOOT_REG_CMD 0x18U /*!< Erase fast boot Register */
  109. #define MX25LM51245G_READ_SECURITY_REG_CMD 0x2BU /*!< Read security Register */
  110. #define MX25LM51245G_WRITE_SECURITY_REG_CMD 0x2FU /*!< Write security Register */
  111. #define MX25LM51245G_READ_LOCK_REG_CMD 0x2DU /*!< Read lock Register */
  112. #define MX25LM51245G_WRITE_LOCK_REG_CMD 0x2CU /*!< Write lock Register */
  113. #define MX25LM51245G_READ_DPB_REG_CMD 0xE0U /*!< Read DPB register */
  114. #define MX25LM51245G_WRITE_DPB_REG_CMD 0xE1U /*!< Write DPB register */
  115. #define MX25LM51245G_READ_SPB_STATUS_CMD 0xE2U /*!< Read SPB status */
  116. #define MX25LM51245G_WRITE_SPB_BIT_CMD 0xE3U /*!< SPB bit program */
  117. #define MX25LM51245G_ERASE_ALL_SPB_CMD 0xE4U /*!< Erase all SPB bit */
  118. #define MX25LM51245G_WRITE_PROTECT_SEL_CMD 0x68U /*!< Write Protect selection */
  119. #define MX25LM51245G_GANG_BLOCK_LOCK_CMD 0x7EU /*!< Gang block lock: whole chip write protect */
  120. #define MX25LM51245G_GANG_BLOCK_UNLOCK_CMD 0x98U /*!< Gang block unlock: whole chip write unprotect */
  121. #define MX25LM51245G_READ_PASSWORD_REGISTER_CMD 0x27U /*!< Read Password */
  122. #define MX25LM51245G_WRITE_PASSWORD_REGISTER_CMD 0x28U /*!< Write Password */
  123. #define MX25LM51245G_PASSWORD_UNLOCK_CMD 0x29U /*!< Unlock Password */
  124. /*******************************************************************/
  125. /********************************* OPI ****************************/
  126. /*******************************************************************/
  127. /***** READ/WRITE MEMORY Operations ****************************/
  128. #define MX25LM51245G_OCTA_READ_CMD 0xEC13U /*!< Octa IO Read */
  129. #define MX25LM51245G_OCTA_READ_DTR_CMD 0xEE11U /*!< Octa IO Read DTR */
  130. #define MX25LM51245G_OCTA_PAGE_PROG_CMD 0x12EDU /*!< Octa Page Program */
  131. #define MX25LM51245G_OCTA_SUBSECTOR_ERASE_4K_CMD 0x21DEU /*!< Octa SubSector Erase 4KB */
  132. #define MX25LM51245G_OCTA_SECTOR_ERASE_64K_CMD 0xDC23U /*!< Octa Sector Erase 64KB 3 */
  133. #define MX25LM51245G_OCTA_BULK_ERASE_CMD 0x609FU /*!< Octa Bulk Erase */
  134. /***** Setting commands ************************************************************/
  135. #define MX25LM51245G_OCTA_WRITE_ENABLE_CMD 0x06F9U /*!< Octa Write Enable */
  136. #define MX25LM51245G_OCTA_WRITE_DISABLE_CMD 0x04FBU /*!< Octa Write Disable */
  137. #define MX25LM51245G_OCTA_PROG_ERASE_SUSPEND_CMD 0xB04FU /*!< Octa Program/Erase suspend */
  138. #define MX25LM51245G_OCTA_PROG_ERASE_RESUME_CMD 0x30CFU /*!< Octa Program/Erase resume */
  139. #define MX25LM51245G_OCTA_ENTER_DEEP_POWER_DOWN_CMD 0xB946U /*!< Octa Enter deep power down */
  140. #define MX25LM51245G_OCTA_SET_BURST_LENGTH_CMD 0xC03FU /*!< Octa Set burst length */
  141. #define MX25LM51245G_OCTA_ENTER_SECURED_OTP_CMD 0xB14EU /*!< Octa Enter secured OTP) */
  142. #define MX25LM51245G_OCTA_EXIT_SECURED_OTP_CMD 0xC13EU /*!< Octa Exit secured OTP) */
  143. /***** RESET commands ************************************************************/
  144. #define MX25LM51245G_OCTA_NOP_CMD 0x00FFU /*!< Octa No operation */
  145. #define MX25LM51245G_OCTA_RESET_ENABLE_CMD 0x6699U /*!< Octa Reset Enable */
  146. #define MX25LM51245G_OCTA_RESET_MEMORY_CMD 0x9966U /*!< Octa Reset Memory */
  147. /***** Register Commands (OPI) ****************************************************/
  148. #define MX25LM51245G_OCTA_READ_ID_CMD 0x9F60U /*!< Octa Read IDentification */
  149. #define MX25LM51245G_OCTA_READ_SERIAL_FLASH_DISCO_PARAM_CMD 0x5AA5U /*!< Octa Read Serial Flash Discoverable Parameter */
  150. #define MX25LM51245G_OCTA_READ_STATUS_REG_CMD 0x05FAU /*!< Octa Read Status Register */
  151. #define MX25LM51245G_OCTA_READ_CFG_REG_CMD 0x15EAU /*!< Octa Read configuration Register */
  152. #define MX25LM51245G_OCTA_WRITE_STATUS_REG_CMD 0x01FEU /*!< Octa Write Status Register */
  153. #define MX25LM51245G_OCTA_READ_CFG_REG2_CMD 0x718EU /*!< Octa Read configuration Register2 */
  154. #define MX25LM51245G_OCTA_WRITE_CFG_REG2_CMD 0x728DU /*!< Octa Write configuration Register2 */
  155. #define MX25LM51245G_OCTA_READ_FAST_BOOT_REG_CMD 0x16E9U /*!< Octa Read fast boot Register */
  156. #define MX25LM51245G_OCTA_WRITE_FAST_BOOT_REG_CMD 0x17E8U /*!< Octa Write fast boot Register */
  157. #define MX25LM51245G_OCTA_ERASE_FAST_BOOT_REG_CMD 0x18E7U /*!< Octa Erase fast boot Register */
  158. #define MX25LM51245G_OCTA_READ_SECURITY_REG_CMD 0x2BD4U /*!< Octa Read security Register */
  159. #define MX25LM51245G_OCTA_WRITE_SECURITY_REG_CMD 0x2FD0U /*!< Octa Write security Register */
  160. #define MX25LM51245G_OCTA_READ_LOCK_REG_CMD 0x2DD2U /*!< Octa Read lock Register */
  161. #define MX25LM51245G_OCTA_WRITE_LOCK_REG_CMD 0x2CD3U /*!< Octa Write lock Register */
  162. #define MX25LM51245G_OCTA_READ_DPB_REG_CMD 0xE01FU /*!< Octa Read DPB register */
  163. #define MX25LM51245G_OCTA_WRITE_DPB_REG_CMD 0xE11EU /*!< Octa Write DPB register */
  164. #define MX25LM51245G_OCTA_READ_SPB_STATUS_CMD 0xE21DU /*!< Octa Read SPB status */
  165. #define MX25LM51245G_OCTA_WRITE_SPB_BIT_CMD 0xE31CU /*!< Octa SPB bit program */
  166. #define MX25LM51245G_OCTA_ERASE_ALL_SPB_CMD 0xE41BU /*!< Octa Erase all SPB bit */
  167. #define MX25LM51245G_OCTA_WRITE_PROTECT_SEL_CMD 0x6897U /*!< Octa Write Protect selection */
  168. #define MX25LM51245G_OCTA_GANG_BLOCK_LOCK_CMD 0x7E81U /*!< Octa Gang block lock: whole chip write protect */
  169. #define MX25LM51245G_OCTA_GANG_BLOCK_UNLOCK_CMD 0x9867U /*!< Octa Gang block unlock: whole chip write unprote*/
  170. #define MX25LM51245G_OCTA_READ_PASSWORD_REGISTER_CMD 0x27D8U /*!< Octa Read Password */
  171. #define MX25LM51245G_OCTA_WRITE_PASSWORD_REGISTER_CMD 0x28D7U /*!< Octa Write Password */
  172. #define MX25LM51245G_OCTA_PASSWORD_UNLOCK_CMD 0x29D6U /*!< Octa Unlock Password */
  173. /******************************************************************************
  174. * @brief MX25LM51245G Registers
  175. ****************************************************************************/
  176. /* Status Register */
  177. #define MX25LM51245G_SR_WIP 0x01U /*!< Write in progress */
  178. #define MX25LM51245G_SR_WEL 0x02U /*!< Write enable latch */
  179. #define MX25LM51245G_SR_PB 0x3CU /*!< Block protected against program and erase operations */
  180. /* Configuration Register 1 */
  181. #define MX25LM51245G_CR1_ODS 0x07U /*!< Output driver strength */
  182. #define MX25LM51245G_CR1_TB 0x08U /*!< Top / bottom selected */
  183. #define MX25LM51245G_CR1_PBE 0x10U /*!< Preamble bit enable */
  184. /* Configuration Register 2 */
  185. /* Address : 0x00000000 */
  186. #define MX25LM51245G_CR2_REG1_ADDR 0x00000000U /*!< CR2 register address 0x00000000 */
  187. #define MX25LM51245G_CR2_SOPI 0x01U /*!< STR OPI Enable */
  188. #define MX25LM51245G_CR2_DOPI 0x02U /*!< DTR OPI Enable */
  189. /* Address : 0x00000200 */
  190. #define MX25LM51245G_CR2_REG2_ADDR 0x00000200U /*!< CR2 register address 0x00000200 */
  191. #define MX25LM51245G_CR2_DQSPRC 0x01U /*!< DTR DQS pre-cycle */
  192. #define MX25LM51245G_CR2_DOS 0x02U /*!< DQS on STR mode */
  193. /* Address : 0x00000300 */
  194. #define MX25LM51245G_CR2_REG3_ADDR 0x00000300U /*!< CR2 register address 0x00000300 */
  195. #define MX25LM51245G_CR2_DC 0x07U /*!< Dummy cycle */
  196. #define MX25LM51245G_CR2_DC_20_CYCLES 0x00U /*!< 20 Dummy cycles */
  197. #define MX25LM51245G_CR2_DC_18_CYCLES 0x01U /*!< 18 Dummy cycles */
  198. #define MX25LM51245G_CR2_DC_16_CYCLES 0x02U /*!< 16 Dummy cycles */
  199. #define MX25LM51245G_CR2_DC_14_CYCLES 0x03U /*!< 14 Dummy cycles */
  200. #define MX25LM51245G_CR2_DC_12_CYCLES 0x04U /*!< 12 Dummy cycles */
  201. #define MX25LM51245G_CR2_DC_10_CYCLES 0x05U /*!< 10 Dummy cycles */
  202. #define MX25LM51245G_CR2_DC_8_CYCLES 0x06U /*!< 8 Dummy cycles */
  203. #define MX25LM51245G_CR2_DC_6_CYCLES 0x07U /*!< 6 Dummy cycles */
  204. /* Address : 0x00000500 */
  205. #define MX25LM51245G_CR2_REG4_ADDR 0x00000500U /*!< CR2 register address 0x00000500 */
  206. #define MX25LM51245G_CR2_PPTSEL 0x01U /*!< Preamble pattern selection */
  207. /* Address : 0x40000000 */
  208. #define MX25LM51245G_CR2_REG5_ADDR 0x40000000U /*!< CR2 register address 0x40000000 */
  209. #define MX25LM51245G_CR2_DEFSOPI 0x01U /*!< Enable SOPI after power on reset */
  210. #define MX25LM51245G_CR2_DEFDOPI 0x02U /*!< Enable DOPI after power on reset */
  211. /* Security Register */
  212. #define MX25LM51245G_SECR_SOI 0x01U /*!< Secured OTP indicator */
  213. #define MX25LM51245G_SECR_LDSO 0x02U /*!< Lock-down secured OTP */
  214. #define MX25LM51245G_SECR_PSB 0x04U /*!< Program suspend bit */
  215. #define MX25LM51245G_SECR_ESB 0x08U /*!< Erase suspend bit */
  216. #define MX25LM51245G_SECR_P_FAIL 0x20U /*!< Program fail flag */
  217. #define MX25LM51245G_SECR_E_FAIL 0x40U /*!< Erase fail flag */
  218. #define MX25LM51245G_SECR_WPSEL 0x80U /*!< Write protection selection */
  219. /**
  220. * @}
  221. */
  222. /** @defgroup MX25LM51245G_Exported_Types MX25LM51245G Exported Types
  223. * @{
  224. */
  225. typedef struct {
  226. uint32_t FlashSize; /*!< Size of the flash */
  227. uint32_t EraseSectorSize; /*!< Size of sectors for the erase operation */
  228. uint32_t EraseSectorsNumber; /*!< Number of sectors for the erase operation */
  229. uint32_t EraseSubSectorSize; /*!< Size of subsector for the erase operation */
  230. uint32_t EraseSubSectorNumber; /*!< Number of subsector for the erase operation */
  231. uint32_t EraseSubSector1Size; /*!< Size of subsector 1 for the erase operation */
  232. uint32_t EraseSubSector1Number; /*!< Number of subsector 1 for the erase operation */
  233. uint32_t ProgPageSize; /*!< Size of pages for the program operation */
  234. uint32_t ProgPagesNumber; /*!< Number of pages for the program operation */
  235. } MX25LM51245G_Info_t;
  236. typedef enum {
  237. MX25LM51245G_SPI_MODE = 0, /*!< 1-1-1 commands, Power on H/W default setting */
  238. MX25LM51245G_OPI_MODE /*!< 8-8-8 commands */
  239. } MX25LM51245G_Interface_t;
  240. typedef enum {
  241. MX25LM51245G_STR_TRANSFER = 0, /*!< Single Transfer Rate */
  242. MX25LM51245G_DTR_TRANSFER /*!< Double Transfer Rate */
  243. } MX25LM51245G_Transfer_t;
  244. typedef enum {
  245. MX25LM51245G_ERASE_4K = 0, /*!< 4K size Sector erase */
  246. MX25LM51245G_ERASE_64K, /*!< 64K size Block erase */
  247. MX25LM51245G_ERASE_BULK /*!< Whole bulk erase */
  248. } MX25LM51245G_Erase_t;
  249. typedef enum {
  250. MX25LM51245G_3BYTES_SIZE = 0, /*!< 3 Bytes address mode */
  251. MX25LM51245G_4BYTES_SIZE /*!< 4 Bytes address mode */
  252. } MX25LM51245G_AddressSize_t;
  253. /**
  254. * @}
  255. */
  256. /** @defgroup MX25LM51245G_Exported_Functions MX25LM51245G Exported Functions
  257. * @{
  258. */
  259. /* Function by commands combined */
  260. int32_t MX25LM51245G_GetFlashInfo(MX25LM51245G_Info_t *pInfo);
  261. int32_t MX25LM51245G_AutoPollingMemReady(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate);
  262. /* Read/Write Array Commands **************************************************/
  263. int32_t MX25LM51245G_ReadSTR(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_AddressSize_t AddressSize, uint8_t *pData, uint32_t ReadAddr, uint32_t Size);
  264. int32_t MX25LM51245G_ReadDTR(OSPI_HandleTypeDef *Ctx, uint8_t *pData, uint32_t ReadAddr, uint32_t Size);
  265. int32_t MX25LM51245G_PageProgram(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_AddressSize_t AddressSize, uint8_t *pData, uint32_t WriteAddr, uint32_t Size);
  266. int32_t MX25LM51245G_PageProgramDTR(OSPI_HandleTypeDef *Ctx, uint8_t *pData, uint32_t WriteAddr, uint32_t Size);
  267. int32_t MX25LM51245G_BlockErase(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate, MX25LM51245G_AddressSize_t AddressSize, uint32_t BlockAddress, MX25LM51245G_Erase_t BlockSize);
  268. int32_t MX25LM51245G_ChipErase(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate);
  269. int32_t MX25LM51245G_EnableMemoryMappedModeSTR(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_AddressSize_t AddressSize);
  270. int32_t MX25LM51245G_EnableMemoryMappedModeDTR(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode);
  271. int32_t MX25LM51245G_Suspend(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate);
  272. int32_t MX25LM51245G_Resume(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate);
  273. /* Register/Setting Commands **************************************************/
  274. int32_t MX25LM51245G_WriteEnable(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate);
  275. int32_t MX25LM51245G_WriteDisable(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate);
  276. int32_t MX25LM51245G_ReadStatusRegister(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate, uint8_t *Value);
  277. int32_t MX25LM51245G_WriteStatusRegister(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate, uint8_t Value);
  278. int32_t MX25LM51245G_WriteCfgRegister(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate, uint8_t Value);
  279. int32_t MX25LM51245G_ReadCfgRegister(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate, uint8_t *Value);
  280. int32_t MX25LM51245G_WriteCfg2Register(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate, uint32_t WriteAddr, uint8_t Value);
  281. int32_t MX25LM51245G_ReadCfg2Register(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate, uint32_t ReadAddr, uint8_t *Value);
  282. int32_t MX25LM51245G_WriteSecurityRegister(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate, uint8_t Value);
  283. int32_t MX25LM51245G_ReadSecurityRegister(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate, uint8_t *Value);
  284. /* ID/Security Commands *******************************************************/
  285. int32_t MX25LM51245G_ReadID(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate, uint8_t *ID);
  286. /* Reset Commands *************************************************************/
  287. int32_t MX25LM51245G_ResetEnable(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate);
  288. int32_t MX25LM51245G_ResetMemory(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate);
  289. int32_t MX25LM51245G_NoOperation(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate);
  290. int32_t MX25LM51245G_EnterPowerDown(OSPI_HandleTypeDef *Ctx, MX25LM51245G_Interface_t Mode, MX25LM51245G_Transfer_t Rate);
  291. /**
  292. * @}
  293. */
  294. #ifdef __cplusplus
  295. }
  296. #endif
  297. #endif /* MX25LM51245G_H */
  298. /**
  299. * @}
  300. */
  301. /**
  302. * @}
  303. */
  304. /**
  305. * @}
  306. */
  307. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/