STM32L4xx_HAL_Driver  1.14.0
stm32l4xx_hal_ospi.h
Go to the documentation of this file.
1 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32L4xx_HAL_OSPI_H
22 #define STM32L4xx_HAL_OSPI_H
23 
24 #ifdef __cplusplus
25  extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32l4xx_hal_def.h"
30 
31 #if defined(OCTOSPI) || defined(OCTOSPI1) || defined(OCTOSPI2)
32 
41 /* Exported types ------------------------------------------------------------*/
49 typedef struct
50 {
51  uint32_t FifoThreshold; /* This is the threshold used by the Peripheral to generate the interrupt
52  indicating that data are available in reception or free place
53  is available in transmission.
54  This parameter can be a value between 1 and 32 */
55  uint32_t DualQuad; /* It enables or not the dual-quad mode which allow to access up to
56  quad mode on two different devices to increase the throughput.
57  This parameter can be a value of @ref OSPI_DualQuad */
58  uint32_t MemoryType; /* It indicates the external device type connected to the OSPI.
59  This parameter can be a value of @ref OSPI_MemoryType */
60  uint32_t DeviceSize; /* It defines the size of the external device connected to the OSPI,
61  it corresponds to the number of address bits required to access
62  the external device.
63  This parameter can be a value between 1 and 32 */
64  uint32_t ChipSelectHighTime; /* It defines the minimun number of clocks which the chip select
65  must remain high between commands.
66  This parameter can be a value between 1 and 8 */
67  uint32_t FreeRunningClock; /* It enables or not the free running clock.
68  This parameter can be a value of @ref OSPI_FreeRunningClock */
69  uint32_t ClockMode; /* It indicates the level of clock when the chip select is released.
70  This parameter can be a value of @ref OSPI_ClockMode */
71  uint32_t WrapSize; /* It indicates the wrap-size corresponding the external device configuration.
72  This parameter can be a value of @ref OSPI_WrapSize */
73  uint32_t ClockPrescaler; /* It specifies the prescaler factor used for generating
74  the external clock based on the AHB clock.
75  This parameter can be a value between 1 and 256 */
76  uint32_t SampleShifting; /* It allows to delay to 1/2 cycle the data sampling in order
77  to take in account external signal delays.
78  This parameter can be a value of @ref OSPI_SampleShifting */
79  uint32_t DelayHoldQuarterCycle; /* It allows to hold to 1/4 cycle the data.
80  This parameter can be a value of @ref OSPI_DelayHoldQuarterCycle */
81  uint32_t ChipSelectBoundary; /* It enables the transaction boundary feature and
82  defines the boundary of bytes to release the chip select.
83  This parameter can be a value between 0 and 31 */
84 }OSPI_InitTypeDef;
85 
89 typedef struct __OSPI_HandleTypeDef
90 {
91  OCTOSPI_TypeDef *Instance; /* OSPI registers base address */
92  OSPI_InitTypeDef Init; /* OSPI initialization parameters */
93  uint8_t *pBuffPtr; /* Address of the OSPI buffer for transfer */
94  __IO uint32_t XferSize; /* Number of data to transfer */
95  __IO uint32_t XferCount; /* Counter of data transferred */
96  DMA_HandleTypeDef *hdma; /* Handle of the DMA channel used for the transfer */
97  __IO uint32_t State; /* Internal state of the OSPI HAL driver */
98  __IO uint32_t ErrorCode; /* Error code in case of HAL driver internal error */
99  uint32_t Timeout; /* Timeout used for the OSPI external device access */
100 #if defined (USE_HAL_OSPI_REGISTER_CALLBACKS) && (USE_HAL_OSPI_REGISTER_CALLBACKS == 1U)
101  void (* ErrorCallback) (struct __OSPI_HandleTypeDef *hospi);
102  void (* AbortCpltCallback) (struct __OSPI_HandleTypeDef *hospi);
104  void (* CmdCpltCallback) (struct __OSPI_HandleTypeDef *hospi);
105  void (* RxCpltCallback) (struct __OSPI_HandleTypeDef *hospi);
106  void (* TxCpltCallback) (struct __OSPI_HandleTypeDef *hospi);
107  void (* RxHalfCpltCallback) (struct __OSPI_HandleTypeDef *hospi);
108  void (* TxHalfCpltCallback) (struct __OSPI_HandleTypeDef *hospi);
109  void (* StatusMatchCallback) (struct __OSPI_HandleTypeDef *hospi);
110  void (* TimeOutCallback) (struct __OSPI_HandleTypeDef *hospi);
111 
112  void (* MspInitCallback) (struct __OSPI_HandleTypeDef *hospi);
113  void (* MspDeInitCallback) (struct __OSPI_HandleTypeDef *hospi);
114 #endif
116 
120 typedef struct
121 {
122  uint32_t OperationType; /* It indicates if the configuration applies to the common regsiters or
123  to the registers for the write operation (these registers are only
124  used for memory-mapped mode).
125  This parameter can be a value of @ref OSPI_OperationType */
126  uint32_t FlashId; /* It indicates which external device is selected for this command (it
127  applies only if Dualquad is disabled in the initialization structure).
128  This parameter can be a value of @ref OSPI_FlashId */
129  uint32_t Instruction; /* It contains the instruction to be sent to the device.
130  This parameter can be a value between 0 and 0xFFFFFFFF */
131  uint32_t InstructionMode; /* It indicates the mode of the instruction.
132  This parameter can be a value of @ref OSPI_InstructionMode */
133  uint32_t InstructionSize; /* It indicates the size of the instruction.
134  This parameter can be a value of @ref OSPI_InstructionSize */
135  uint32_t InstructionDtrMode; /* It enables or not the DTR mode for the instruction phase.
136  This parameter can be a value of @ref OSPI_InstructionDtrMode */
137  uint32_t Address; /* It contains the address to be sent to the device.
138  This parameter can be a value between 0 and 0xFFFFFFFF */
139  uint32_t AddressMode; /* It indicates the mode of the address.
140  This parameter can be a value of @ref OSPI_AddressMode */
141  uint32_t AddressSize; /* It indicates the size of the address.
142  This parameter can be a value of @ref OSPI_AddressSize */
143  uint32_t AddressDtrMode; /* It enables or not the DTR mode for the address phase.
144  This parameter can be a value of @ref OSPI_AddressDtrMode */
145  uint32_t AlternateBytes; /* It contains the alternate bytes to be sent to the device.
146  This parameter can be a value between 0 and 0xFFFFFFFF */
147  uint32_t AlternateBytesMode; /* It indicates the mode of the alternate bytes.
148  This parameter can be a value of @ref OSPI_AlternateBytesMode */
149  uint32_t AlternateBytesSize; /* It indicates the size of the alternate bytes.
150  This parameter can be a value of @ref OSPI_AlternateBytesSize */
151  uint32_t AlternateBytesDtrMode; /* It enables or not the DTR mode for the alternate bytes phase.
152  This parameter can be a value of @ref OSPI_AlternateBytesDtrMode */
153  uint32_t DataMode; /* It indicates the mode of the data.
154  This parameter can be a value of @ref OSPI_DataMode */
155  uint32_t NbData; /* It indicates the number of data transferred with this command.
156  This field is only used for indirect mode.
157  This parameter can be a value between 1 and 0xFFFFFFFF */
158  uint32_t DataDtrMode; /* It enables or not the DTR mode for the data phase.
159  This parameter can be a value of @ref OSPI_DataDtrMode */
160  uint32_t DummyCycles; /* It indicates the number of dummy cycles inserted before data phase.
161  This parameter can be a value between 0 and 31 */
162  uint32_t DQSMode; /* It enables or not the data strobe management.
163  This parameter can be a value of @ref OSPI_DQSMode */
164  uint32_t SIOOMode; /* It enables or not the SIOO mode.
165  This parameter can be a value of @ref OSPI_SIOOMode */
167 
171 typedef struct
172 {
173  uint32_t RWRecoveryTime; /* It indicates the number of cycles for the device read write recovery time.
174  This parameter can be a value between 0 and 255 */
175  uint32_t AccessTime; /* It indicates the number of cycles for the device acces time.
176  This parameter can be a value between 0 and 255 */
177  uint32_t WriteZeroLatency; /* It enables or not the latency for the write access.
178  This parameter can be a value of @ref OSPI_WriteZeroLatency */
179  uint32_t LatencyMode; /* It configures the latency mode.
180  This parameter can be a value of @ref OSPI_LatencyMode */
182 
186 typedef struct
187 {
188  uint32_t AddressSpace; /* It indicates the address space accessed by the command.
189  This parameter can be a value of @ref OSPI_AddressSpace */
190  uint32_t Address; /* It contains the address to be sent tot he device.
191  This parameter can be a value between 0 and 0xFFFFFFFF */
192  uint32_t AddressSize; /* It indicates the size of the address.
193  This parameter can be a value of @ref OSPI_AddressSize */
194  uint32_t NbData; /* It indicates the number of data transferred with this command.
195  This field is only used for indirect mode.
196  This parameter can be a value between 1 and 0xFFFFFFFF
197  In case of autopolling mode, this parameter can be any value between 1 and 4 */
198  uint32_t DQSMode; /* It enables or not the data strobe management.
199  This parameter can be a value of @ref OSPI_DQSMode */
201 
205 typedef struct
206 {
207  uint32_t Match; /* Specifies the value to be compared with the masked status register to get a match.
208  This parameter can be any value between 0 and 0xFFFFFFFF */
209  uint32_t Mask; /* Specifies the mask to be applied to the status bytes received.
210  This parameter can be any value between 0 and 0xFFFFFFFF */
211  uint32_t MatchMode; /* Specifies the method used for determining a match.
212  This parameter can be a value of @ref OSPI_MatchMode */
213  uint32_t AutomaticStop; /* Specifies if automatic polling is stopped after a match.
214  This parameter can be a value of @ref OSPI_AutomaticStop */
215  uint32_t Interval; /* Specifies the number of clock cycles between two read during automatic polling phases.
216  This parameter can be any value between 0 and 0xFFFF */
218 
222 typedef struct
223 {
224  uint32_t TimeOutActivation; /* Specifies if the timeout counter is enabled to release the chip select.
225  This parameter can be a value of @ref OSPI_TimeOutActivation */
226  uint32_t TimeOutPeriod; /* Specifies the number of clock to wait when the FIFO is full before to release the chip select.
227  This parameter can be any value between 0 and 0xFFFF */
229 
233 typedef struct
234 {
235  uint32_t ClkPort; /* It indicates which port of the OSPI IO Manager is used for the CLK pins.
236  This parameter can be a value between 1 and 8 */
237  uint32_t DQSPort; /* It indicates which port of the OSPI IO Manager is used for the DQS pin.
238  This parameter can be a value between 1 and 8 */
239  uint32_t NCSPort; /* It indicates which port of the OSPI IO Manager is used for the NCS pin.
240  This parameter can be a value between 1 and 8 */
241  uint32_t IOLowPort; /* It indicates which port of the OSPI IO Manager is used for the IO[3:0] pins.
242  This parameter can be a value of @ref OSPIM_IOPort */
243  uint32_t IOHighPort; /* It indicates which port of the OSPI IO Manager is used for the IO[7:4] pins.
244  This parameter can be a value of @ref OSPIM_IOPort */
246 
247 #if defined (USE_HAL_OSPI_REGISTER_CALLBACKS) && (USE_HAL_OSPI_REGISTER_CALLBACKS == 1U)
248 
251 typedef enum
252 {
267 
272 #endif
273 
277 /* Exported constants --------------------------------------------------------*/
285 #define HAL_OSPI_STATE_RESET ((uint32_t)0x00000000U)
286 #define HAL_OSPI_STATE_HYPERBUS_INIT ((uint32_t)0x00000001U)
287 #define HAL_OSPI_STATE_READY ((uint32_t)0x00000002U)
288 #define HAL_OSPI_STATE_CMD_CFG ((uint32_t)0x00000004U)
289 #define HAL_OSPI_STATE_READ_CMD_CFG ((uint32_t)0x00000014U)
290 #define HAL_OSPI_STATE_WRITE_CMD_CFG ((uint32_t)0x00000024U)
291 #define HAL_OSPI_STATE_BUSY_CMD ((uint32_t)0x00000008U)
292 #define HAL_OSPI_STATE_BUSY_TX ((uint32_t)0x00000018U)
293 #define HAL_OSPI_STATE_BUSY_RX ((uint32_t)0x00000028U)
294 #define HAL_OSPI_STATE_BUSY_AUTO_POLLING ((uint32_t)0x00000048U)
295 #define HAL_OSPI_STATE_BUSY_MEM_MAPPED ((uint32_t)0x00000088U)
296 #define HAL_OSPI_STATE_ABORT ((uint32_t)0x00000100U)
297 #define HAL_OSPI_STATE_ERROR ((uint32_t)0x00000200U)
305 #define HAL_OSPI_ERROR_NONE ((uint32_t)0x00000000U)
306 #define HAL_OSPI_ERROR_TIMEOUT ((uint32_t)0x00000001U)
307 #define HAL_OSPI_ERROR_TRANSFER ((uint32_t)0x00000002U)
308 #define HAL_OSPI_ERROR_DMA ((uint32_t)0x00000004U)
309 #define HAL_OSPI_ERROR_INVALID_PARAM ((uint32_t)0x00000008U)
310 #define HAL_OSPI_ERROR_INVALID_SEQUENCE ((uint32_t)0x00000010U)
311 #if defined (USE_HAL_OSPI_REGISTER_CALLBACKS) && (USE_HAL_OSPI_REGISTER_CALLBACKS == 1U)
312 #define HAL_OSPI_ERROR_INVALID_CALLBACK ((uint32_t)0x00000020U)
313 #endif
314 
321 #define HAL_OSPI_DUALQUAD_DISABLE ((uint32_t)0x00000000U)
322 #define HAL_OSPI_DUALQUAD_ENABLE ((uint32_t)OCTOSPI_CR_DQM)
330 #define HAL_OSPI_MEMTYPE_MICRON ((uint32_t)0x00000000U)
331 #define HAL_OSPI_MEMTYPE_MACRONIX ((uint32_t)OCTOSPI_DCR1_MTYP_0)
332 #if !defined(STM32L4R5xx)&&!defined(STM32L4R7xx)&&!defined(STM32L4R9xx)&&!defined(STM32L4S5xx)&&!defined(STM32L4S7xx)&&!defined(STM32L4S9xx)
333 #define HAL_OSPI_MEMTYPE_APMEMORY ((uint32_t)OCTOSPI_DCR1_MTYP_1)
334 #endif
335 #define HAL_OSPI_MEMTYPE_MACRONIX_RAM ((uint32_t)(OCTOSPI_DCR1_MTYP_1 | OCTOSPI_DCR1_MTYP_0))
336 #define HAL_OSPI_MEMTYPE_HYPERBUS ((uint32_t)OCTOSPI_DCR1_MTYP_2)
344 #define HAL_OSPI_FREERUNCLK_DISABLE ((uint32_t)0x00000000U)
345 #define HAL_OSPI_FREERUNCLK_ENABLE ((uint32_t)OCTOSPI_DCR1_FRCK)
353 #define HAL_OSPI_CLOCK_MODE_0 ((uint32_t)0x00000000U)
354 #define HAL_OSPI_CLOCK_MODE_3 ((uint32_t)OCTOSPI_DCR1_CKMODE)
362 #define HAL_OSPI_WRAP_NOT_SUPPORTED ((uint32_t)0x00000000U)
363 #define HAL_OSPI_WRAP_16_BYTES ((uint32_t)OCTOSPI_DCR2_WRAPSIZE_1)
364 #define HAL_OSPI_WRAP_32_BYTES ((uint32_t)(OCTOSPI_DCR2_WRAPSIZE_0 | OCTOSPI_DCR2_WRAPSIZE_1))
365 #define HAL_OSPI_WRAP_64_BYTES ((uint32_t)OCTOSPI_DCR2_WRAPSIZE_2)
366 #define HAL_OSPI_WRAP_128_BYTES ((uint32_t)(OCTOSPI_DCR2_WRAPSIZE_0 | OCTOSPI_DCR2_WRAPSIZE_2))
374 #define HAL_OSPI_SAMPLE_SHIFTING_NONE ((uint32_t)0x00000000U)
375 #define HAL_OSPI_SAMPLE_SHIFTING_HALFCYCLE ((uint32_t)OCTOSPI_TCR_SSHIFT)
383 #define HAL_OSPI_DHQC_DISABLE ((uint32_t)0x00000000U)
384 #define HAL_OSPI_DHQC_ENABLE ((uint32_t)OCTOSPI_TCR_DHQC)
392 #define HAL_OSPI_OPTYPE_COMMON_CFG ((uint32_t)0x00000000U)
393 #define HAL_OSPI_OPTYPE_READ_CFG ((uint32_t)0x00000001U)
394 #define HAL_OSPI_OPTYPE_WRITE_CFG ((uint32_t)0x00000002U)
402 #define HAL_OSPI_FLASH_ID_1 ((uint32_t)0x00000000U)
403 #define HAL_OSPI_FLASH_ID_2 ((uint32_t)OCTOSPI_CR_FSEL)
411 #define HAL_OSPI_INSTRUCTION_NONE ((uint32_t)0x00000000U)
412 #define HAL_OSPI_INSTRUCTION_1_LINE ((uint32_t)OCTOSPI_CCR_IMODE_0)
413 #define HAL_OSPI_INSTRUCTION_2_LINES ((uint32_t)OCTOSPI_CCR_IMODE_1)
414 #define HAL_OSPI_INSTRUCTION_4_LINES ((uint32_t)(OCTOSPI_CCR_IMODE_0 | OCTOSPI_CCR_IMODE_1))
415 #define HAL_OSPI_INSTRUCTION_8_LINES ((uint32_t)OCTOSPI_CCR_IMODE_2)
423 #define HAL_OSPI_INSTRUCTION_8_BITS ((uint32_t)0x00000000U)
424 #define HAL_OSPI_INSTRUCTION_16_BITS ((uint32_t)OCTOSPI_CCR_ISIZE_0)
425 #define HAL_OSPI_INSTRUCTION_24_BITS ((uint32_t)OCTOSPI_CCR_ISIZE_1)
426 #define HAL_OSPI_INSTRUCTION_32_BITS ((uint32_t)OCTOSPI_CCR_ISIZE)
434 #define HAL_OSPI_INSTRUCTION_DTR_DISABLE ((uint32_t)0x00000000U)
435 #define HAL_OSPI_INSTRUCTION_DTR_ENABLE ((uint32_t)OCTOSPI_CCR_IDTR)
443 #define HAL_OSPI_ADDRESS_NONE ((uint32_t)0x00000000U)
444 #define HAL_OSPI_ADDRESS_1_LINE ((uint32_t)OCTOSPI_CCR_ADMODE_0)
445 #define HAL_OSPI_ADDRESS_2_LINES ((uint32_t)OCTOSPI_CCR_ADMODE_1)
446 #define HAL_OSPI_ADDRESS_4_LINES ((uint32_t)(OCTOSPI_CCR_ADMODE_0 | OCTOSPI_CCR_ADMODE_1))
447 #define HAL_OSPI_ADDRESS_8_LINES ((uint32_t)OCTOSPI_CCR_ADMODE_2)
455 #define HAL_OSPI_ADDRESS_8_BITS ((uint32_t)0x00000000U)
456 #define HAL_OSPI_ADDRESS_16_BITS ((uint32_t)OCTOSPI_CCR_ADSIZE_0)
457 #define HAL_OSPI_ADDRESS_24_BITS ((uint32_t)OCTOSPI_CCR_ADSIZE_1)
458 #define HAL_OSPI_ADDRESS_32_BITS ((uint32_t)OCTOSPI_CCR_ADSIZE)
466 #define HAL_OSPI_ADDRESS_DTR_DISABLE ((uint32_t)0x00000000U)
467 #define HAL_OSPI_ADDRESS_DTR_ENABLE ((uint32_t)OCTOSPI_CCR_ADDTR)
475 #define HAL_OSPI_ALTERNATE_BYTES_NONE ((uint32_t)0x00000000U)
476 #define HAL_OSPI_ALTERNATE_BYTES_1_LINE ((uint32_t)OCTOSPI_CCR_ABMODE_0)
477 #define HAL_OSPI_ALTERNATE_BYTES_2_LINES ((uint32_t)OCTOSPI_CCR_ABMODE_1)
478 #define HAL_OSPI_ALTERNATE_BYTES_4_LINES ((uint32_t)(OCTOSPI_CCR_ABMODE_0 | OCTOSPI_CCR_ABMODE_1))
479 #define HAL_OSPI_ALTERNATE_BYTES_8_LINES ((uint32_t)OCTOSPI_CCR_ABMODE_2)
487 #define HAL_OSPI_ALTERNATE_BYTES_8_BITS ((uint32_t)0x00000000U)
488 #define HAL_OSPI_ALTERNATE_BYTES_16_BITS ((uint32_t)OCTOSPI_CCR_ABSIZE_0)
489 #define HAL_OSPI_ALTERNATE_BYTES_24_BITS ((uint32_t)OCTOSPI_CCR_ABSIZE_1)
490 #define HAL_OSPI_ALTERNATE_BYTES_32_BITS ((uint32_t)OCTOSPI_CCR_ABSIZE)
498 #define HAL_OSPI_ALTERNATE_BYTES_DTR_DISABLE ((uint32_t)0x00000000U)
499 #define HAL_OSPI_ALTERNATE_BYTES_DTR_ENABLE ((uint32_t)OCTOSPI_CCR_ABDTR)
507 #define HAL_OSPI_DATA_NONE ((uint32_t)0x00000000U)
508 #define HAL_OSPI_DATA_1_LINE ((uint32_t)OCTOSPI_CCR_DMODE_0)
509 #define HAL_OSPI_DATA_2_LINES ((uint32_t)OCTOSPI_CCR_DMODE_1)
510 #define HAL_OSPI_DATA_4_LINES ((uint32_t)(OCTOSPI_CCR_DMODE_0 | OCTOSPI_CCR_DMODE_1))
511 #define HAL_OSPI_DATA_8_LINES ((uint32_t)OCTOSPI_CCR_DMODE_2)
519 #define HAL_OSPI_DATA_DTR_DISABLE ((uint32_t)0x00000000U)
520 #define HAL_OSPI_DATA_DTR_ENABLE ((uint32_t)OCTOSPI_CCR_DDTR)
528 #define HAL_OSPI_DQS_DISABLE ((uint32_t)0x00000000U)
529 #define HAL_OSPI_DQS_ENABLE ((uint32_t)OCTOSPI_CCR_DQSE)
537 #define HAL_OSPI_SIOO_INST_EVERY_CMD ((uint32_t)0x00000000U)
538 #define HAL_OSPI_SIOO_INST_ONLY_FIRST_CMD ((uint32_t)OCTOSPI_CCR_SIOO)
546 #define HAL_OSPI_LATENCY_ON_WRITE ((uint32_t)0x00000000U)
547 #define HAL_OSPI_NO_LATENCY_ON_WRITE ((uint32_t)OCTOSPI_HLCR_WZL)
555 #define HAL_OSPI_VARIABLE_LATENCY ((uint32_t)0x00000000U)
556 #define HAL_OSPI_FIXED_LATENCY ((uint32_t)OCTOSPI_HLCR_LM)
564 #define HAL_OSPI_MEMORY_ADDRESS_SPACE ((uint32_t)0x00000000U)
565 #define HAL_OSPI_REGISTER_ADDRESS_SPACE ((uint32_t)OCTOSPI_DCR1_MTYP_0)
573 #define HAL_OSPI_MATCH_MODE_AND ((uint32_t)0x00000000U)
574 #define HAL_OSPI_MATCH_MODE_OR ((uint32_t)OCTOSPI_CR_PMM)
582 #define HAL_OSPI_AUTOMATIC_STOP_DISABLE ((uint32_t)0x00000000U)
583 #define HAL_OSPI_AUTOMATIC_STOP_ENABLE ((uint32_t)OCTOSPI_CR_APMS)
591 #define HAL_OSPI_TIMEOUT_COUNTER_DISABLE ((uint32_t)0x00000000U)
592 #define HAL_OSPI_TIMEOUT_COUNTER_ENABLE ((uint32_t)OCTOSPI_CR_TCEN)
600 #define HAL_OSPI_FLAG_BUSY OCTOSPI_SR_BUSY
601 #define HAL_OSPI_FLAG_TO OCTOSPI_SR_TOF
602 #define HAL_OSPI_FLAG_SM OCTOSPI_SR_SMF
603 #define HAL_OSPI_FLAG_FT OCTOSPI_SR_FTF
604 #define HAL_OSPI_FLAG_TC OCTOSPI_SR_TCF
605 #define HAL_OSPI_FLAG_TE OCTOSPI_SR_TEF
613 #define HAL_OSPI_IT_TO OCTOSPI_CR_TOIE
614 #define HAL_OSPI_IT_SM OCTOSPI_CR_SMIE
615 #define HAL_OSPI_IT_FT OCTOSPI_CR_FTIE
616 #define HAL_OSPI_IT_TC OCTOSPI_CR_TCIE
617 #define HAL_OSPI_IT_TE OCTOSPI_CR_TEIE
625 #define HAL_OSPI_TIMEOUT_DEFAULT_VALUE ((uint32_t)5000U) /* 5 s */
626 
633 #define HAL_OSPIM_IOPORT_1_LOW ((uint32_t)(OCTOSPIM_PCR_IOLEN | 0x1U))
634 #define HAL_OSPIM_IOPORT_1_HIGH ((uint32_t)(OCTOSPIM_PCR_IOHEN | 0x1U))
635 #define HAL_OSPIM_IOPORT_2_LOW ((uint32_t)(OCTOSPIM_PCR_IOLEN | 0x2U))
636 #define HAL_OSPIM_IOPORT_2_HIGH ((uint32_t)(OCTOSPIM_PCR_IOHEN | 0x2U))
644 /* Exported macros -----------------------------------------------------------*/
645 
652 #if defined (USE_HAL_OSPI_REGISTER_CALLBACKS) && (USE_HAL_OSPI_REGISTER_CALLBACKS == 1U)
653 #define __HAL_OSPI_RESET_HANDLE_STATE(__HANDLE__) do { \
654  (__HANDLE__)->State = HAL_OSPI_STATE_RESET; \
655  (__HANDLE__)->MspInitCallback = NULL; \
656  (__HANDLE__)->MspDeInitCallback = NULL; \
657  } while(0)
658 #else
659 #define __HAL_OSPI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_OSPI_STATE_RESET)
660 #endif
661 
666 #define __HAL_OSPI_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, OCTOSPI_CR_EN)
667 
672 #define __HAL_OSPI_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, OCTOSPI_CR_EN)
673 
685 #define __HAL_OSPI_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__))
686 
687 
699 #define __HAL_OSPI_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__))
700 
712 #define __HAL_OSPI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (READ_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__)) == (__INTERRUPT__))
713 
727 #define __HAL_OSPI_GET_FLAG(__HANDLE__, __FLAG__) ((READ_BIT((__HANDLE__)->Instance->SR, (__FLAG__)) != 0U) ? SET : RESET)
728 
739 #define __HAL_OSPI_CLEAR_FLAG(__HANDLE__, __FLAG__) WRITE_REG((__HANDLE__)->Instance->FCR, (__FLAG__))
740 
745 /* Exported functions --------------------------------------------------------*/
750 /* Initialization/de-initialization functions ********************************/
754 HAL_StatusTypeDef HAL_OSPI_Init (OSPI_HandleTypeDef *hospi);
756 HAL_StatusTypeDef HAL_OSPI_DeInit (OSPI_HandleTypeDef *hospi);
758 
763 /* IO operation functions *****************************************************/
767 /* OSPI IRQ handler function */
769 
770 /* OSPI command configuration functions */
771 HAL_StatusTypeDef HAL_OSPI_Command (OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd, uint32_t Timeout);
772 HAL_StatusTypeDef HAL_OSPI_Command_IT (OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd);
773 HAL_StatusTypeDef HAL_OSPI_HyperbusCfg (OSPI_HandleTypeDef *hospi, OSPI_HyperbusCfgTypeDef *cfg, uint32_t Timeout);
774 HAL_StatusTypeDef HAL_OSPI_HyperbusCmd (OSPI_HandleTypeDef *hospi, OSPI_HyperbusCmdTypeDef *cmd, uint32_t Timeout);
775 
776 /* OSPI indirect mode functions */
777 HAL_StatusTypeDef HAL_OSPI_Transmit (OSPI_HandleTypeDef *hospi, uint8_t *pData, uint32_t Timeout);
778 HAL_StatusTypeDef HAL_OSPI_Receive (OSPI_HandleTypeDef *hospi, uint8_t *pData, uint32_t Timeout);
779 HAL_StatusTypeDef HAL_OSPI_Transmit_IT (OSPI_HandleTypeDef *hospi, uint8_t *pData);
780 HAL_StatusTypeDef HAL_OSPI_Receive_IT (OSPI_HandleTypeDef *hospi, uint8_t *pData);
781 HAL_StatusTypeDef HAL_OSPI_Transmit_DMA (OSPI_HandleTypeDef *hospi, uint8_t *pData);
782 HAL_StatusTypeDef HAL_OSPI_Receive_DMA (OSPI_HandleTypeDef *hospi, uint8_t *pData);
783 
784 /* OSPI status flag polling mode functions */
785 HAL_StatusTypeDef HAL_OSPI_AutoPolling (OSPI_HandleTypeDef *hospi, OSPI_AutoPollingTypeDef *cfg, uint32_t Timeout);
787 
788 /* OSPI memory-mapped mode functions */
789 HAL_StatusTypeDef HAL_OSPI_MemoryMapped (OSPI_HandleTypeDef *hospi, OSPI_MemoryMappedTypeDef *cfg);
790 
791 /* Callback functions in non-blocking modes ***********************************/
795 
796 /* OSPI indirect mode functions */
802 
803 /* OSPI status flag polling mode functions */
805 
806 /* OSPI memory-mapped mode functions */
808 
809 #if defined (USE_HAL_OSPI_REGISTER_CALLBACKS) && (USE_HAL_OSPI_REGISTER_CALLBACKS == 1U)
810 /* OSPI callback registering/unregistering */
811 HAL_StatusTypeDef HAL_OSPI_RegisterCallback (OSPI_HandleTypeDef *hospi, HAL_OSPI_CallbackIDTypeDef CallbackID, pOSPI_CallbackTypeDef pCallback);
812 HAL_StatusTypeDef HAL_OSPI_UnRegisterCallback (OSPI_HandleTypeDef *hospi, HAL_OSPI_CallbackIDTypeDef CallbackID);
813 #endif
814 
818 /* Peripheral Control and State functions ************************************/
822 HAL_StatusTypeDef HAL_OSPI_Abort (OSPI_HandleTypeDef *hospi);
823 HAL_StatusTypeDef HAL_OSPI_Abort_IT (OSPI_HandleTypeDef *hospi);
824 HAL_StatusTypeDef HAL_OSPI_SetFifoThreshold (OSPI_HandleTypeDef *hospi, uint32_t Threshold);
826 HAL_StatusTypeDef HAL_OSPI_SetTimeout (OSPI_HandleTypeDef *hospi, uint32_t Timeout);
827 uint32_t HAL_OSPI_GetError (OSPI_HandleTypeDef *hospi);
828 uint32_t HAL_OSPI_GetState (OSPI_HandleTypeDef *hospi);
829 
834 /* OSPI IO Manager configuration function ************************************/
838 HAL_StatusTypeDef HAL_OSPIM_Config (OSPI_HandleTypeDef *hospi, OSPIM_CfgTypeDef *cfg, uint32_t Timeout);
839 
847 /* End of exported functions -------------------------------------------------*/
848 
849 /* Private macros ------------------------------------------------------------*/
853 #define IS_OSPI_FIFO_THRESHOLD(THRESHOLD) (((THRESHOLD) >= 1U) && ((THRESHOLD) <= 32U))
854 
855 #define IS_OSPI_DUALQUAD_MODE(MODE) (((MODE) == HAL_OSPI_DUALQUAD_DISABLE) || \
856  ((MODE) == HAL_OSPI_DUALQUAD_ENABLE))
857 
858 #if defined(STM32L4R5xx) || defined(STM32L4R7xx) || defined(STM32L4R9xx) || defined(STM32L4S5xx) || defined(STM32L4S7xx) || defined(STM32L4S9xx)
859 #define IS_OSPI_MEMORY_TYPE(TYPE) (((TYPE) == HAL_OSPI_MEMTYPE_MICRON) || \
860  ((TYPE) == HAL_OSPI_MEMTYPE_MACRONIX) || \
861  ((TYPE) == HAL_OSPI_MEMTYPE_MACRONIX_RAM) || \
862  ((TYPE) == HAL_OSPI_MEMTYPE_HYPERBUS))
863 #else
864 #define IS_OSPI_MEMORY_TYPE(TYPE) (((TYPE) == HAL_OSPI_MEMTYPE_MICRON) || \
865  ((TYPE) == HAL_OSPI_MEMTYPE_MACRONIX) || \
866  ((TYPE) == HAL_OSPI_MEMTYPE_APMEMORY) || \
867  ((TYPE) == HAL_OSPI_MEMTYPE_MACRONIX_RAM) || \
868  ((TYPE) == HAL_OSPI_MEMTYPE_HYPERBUS))
869 #endif
870 
871 #define IS_OSPI_DEVICE_SIZE(SIZE) (((SIZE) >= 1U) && ((SIZE) <= 32U))
872 
873 #define IS_OSPI_CS_HIGH_TIME(TIME) (((TIME) >= 1U) && ((TIME) <= 8U))
874 
875 #define IS_OSPI_FREE_RUN_CLK(CLK) (((CLK) == HAL_OSPI_FREERUNCLK_DISABLE) || \
876  ((CLK) == HAL_OSPI_FREERUNCLK_ENABLE))
877 
878 #define IS_OSPI_CLOCK_MODE(MODE) (((MODE) == HAL_OSPI_CLOCK_MODE_0) || \
879  ((MODE) == HAL_OSPI_CLOCK_MODE_3))
880 
881 #define IS_OSPI_WRAP_SIZE(SIZE) (((SIZE) == HAL_OSPI_WRAP_NOT_SUPPORTED) || \
882  ((SIZE) == HAL_OSPI_WRAP_16_BYTES) || \
883  ((SIZE) == HAL_OSPI_WRAP_32_BYTES) || \
884  ((SIZE) == HAL_OSPI_WRAP_64_BYTES) || \
885  ((SIZE) == HAL_OSPI_WRAP_128_BYTES))
886 
887 #define IS_OSPI_CLK_PRESCALER(PRESCALER) (((PRESCALER) >= 1U) && ((PRESCALER) <= 256U))
888 
889 #define IS_OSPI_SAMPLE_SHIFTING(CYCLE) (((CYCLE) == HAL_OSPI_SAMPLE_SHIFTING_NONE) || \
890  ((CYCLE) == HAL_OSPI_SAMPLE_SHIFTING_HALFCYCLE))
891 
892 #define IS_OSPI_DHQC(CYCLE) (((CYCLE) == HAL_OSPI_DHQC_DISABLE) || \
893  ((CYCLE) == HAL_OSPI_DHQC_ENABLE))
894 
895 #define IS_OSPI_OPERATION_TYPE(TYPE) (((TYPE) == HAL_OSPI_OPTYPE_COMMON_CFG) || \
896  ((TYPE) == HAL_OSPI_OPTYPE_READ_CFG) || \
897  ((TYPE) == HAL_OSPI_OPTYPE_WRITE_CFG))
898 
899 #define IS_OSPI_FLASH_ID(FLASHID) (((FLASHID) == HAL_OSPI_FLASH_ID_1) || \
900  ((FLASHID) == HAL_OSPI_FLASH_ID_2))
901 
902 #define IS_OSPI_INSTRUCTION_MODE(MODE) (((MODE) == HAL_OSPI_INSTRUCTION_NONE) || \
903  ((MODE) == HAL_OSPI_INSTRUCTION_1_LINE) || \
904  ((MODE) == HAL_OSPI_INSTRUCTION_2_LINES) || \
905  ((MODE) == HAL_OSPI_INSTRUCTION_4_LINES) || \
906  ((MODE) == HAL_OSPI_INSTRUCTION_8_LINES))
907 
908 #define IS_OSPI_INSTRUCTION_SIZE(SIZE) (((SIZE) == HAL_OSPI_INSTRUCTION_8_BITS) || \
909  ((SIZE) == HAL_OSPI_INSTRUCTION_16_BITS) || \
910  ((SIZE) == HAL_OSPI_INSTRUCTION_24_BITS) || \
911  ((SIZE) == HAL_OSPI_INSTRUCTION_32_BITS))
912 
913 #define IS_OSPI_INSTRUCTION_DTR_MODE(MODE) (((MODE) == HAL_OSPI_INSTRUCTION_DTR_DISABLE) || \
914  ((MODE) == HAL_OSPI_INSTRUCTION_DTR_ENABLE))
915 
916 #define IS_OSPI_ADDRESS_MODE(MODE) (((MODE) == HAL_OSPI_ADDRESS_NONE) || \
917  ((MODE) == HAL_OSPI_ADDRESS_1_LINE) || \
918  ((MODE) == HAL_OSPI_ADDRESS_2_LINES) || \
919  ((MODE) == HAL_OSPI_ADDRESS_4_LINES) || \
920  ((MODE) == HAL_OSPI_ADDRESS_8_LINES))
921 
922 #define IS_OSPI_ADDRESS_SIZE(SIZE) (((SIZE) == HAL_OSPI_ADDRESS_8_BITS) || \
923  ((SIZE) == HAL_OSPI_ADDRESS_16_BITS) || \
924  ((SIZE) == HAL_OSPI_ADDRESS_24_BITS) || \
925  ((SIZE) == HAL_OSPI_ADDRESS_32_BITS))
926 
927 #define IS_OSPI_ADDRESS_DTR_MODE(MODE) (((MODE) == HAL_OSPI_ADDRESS_DTR_DISABLE) || \
928  ((MODE) == HAL_OSPI_ADDRESS_DTR_ENABLE))
929 
930 #define IS_OSPI_ALT_BYTES_MODE(MODE) (((MODE) == HAL_OSPI_ALTERNATE_BYTES_NONE) || \
931  ((MODE) == HAL_OSPI_ALTERNATE_BYTES_1_LINE) || \
932  ((MODE) == HAL_OSPI_ALTERNATE_BYTES_2_LINES) || \
933  ((MODE) == HAL_OSPI_ALTERNATE_BYTES_4_LINES) || \
934  ((MODE) == HAL_OSPI_ALTERNATE_BYTES_8_LINES))
935 
936 #define IS_OSPI_ALT_BYTES_SIZE(SIZE) (((SIZE) == HAL_OSPI_ALTERNATE_BYTES_8_BITS) || \
937  ((SIZE) == HAL_OSPI_ALTERNATE_BYTES_16_BITS) || \
938  ((SIZE) == HAL_OSPI_ALTERNATE_BYTES_24_BITS) || \
939  ((SIZE) == HAL_OSPI_ALTERNATE_BYTES_32_BITS))
940 
941 #define IS_OSPI_ALT_BYTES_DTR_MODE(MODE) (((MODE) == HAL_OSPI_ALTERNATE_BYTES_DTR_DISABLE) || \
942  ((MODE) == HAL_OSPI_ALTERNATE_BYTES_DTR_ENABLE))
943 
944 #define IS_OSPI_DATA_MODE(MODE) (((MODE) == HAL_OSPI_DATA_NONE) || \
945  ((MODE) == HAL_OSPI_DATA_1_LINE) || \
946  ((MODE) == HAL_OSPI_DATA_2_LINES) || \
947  ((MODE) == HAL_OSPI_DATA_4_LINES) || \
948  ((MODE) == HAL_OSPI_DATA_8_LINES))
949 
950 #define IS_OSPI_NUMBER_DATA(NUMBER) ((NUMBER) >= 1U)
951 
952 #define IS_OSPI_DATA_DTR_MODE(MODE) (((MODE) == HAL_OSPI_DATA_DTR_DISABLE) || \
953  ((MODE) == HAL_OSPI_DATA_DTR_ENABLE))
954 
955 #define IS_OSPI_DUMMY_CYCLES(NUMBER) ((NUMBER) <= 31U)
956 
957 #define IS_OSPI_DQS_MODE(MODE) (((MODE) == HAL_OSPI_DQS_DISABLE) || \
958  ((MODE) == HAL_OSPI_DQS_ENABLE))
959 
960 #define IS_OSPI_SIOO_MODE(MODE) (((MODE) == HAL_OSPI_SIOO_INST_EVERY_CMD) || \
961  ((MODE) == HAL_OSPI_SIOO_INST_ONLY_FIRST_CMD))
962 
963 #define IS_OSPI_RW_RECOVERY_TIME(NUMBER) ((NUMBER) <= 255U)
964 
965 #define IS_OSPI_ACCESS_TIME(NUMBER) ((NUMBER) <= 255U)
966 
967 #define IS_OSPI_WRITE_ZERO_LATENCY(MODE) (((MODE) == HAL_OSPI_LATENCY_ON_WRITE) || \
968  ((MODE) == HAL_OSPI_NO_LATENCY_ON_WRITE))
969 
970 #define IS_OSPI_LATENCY_MODE(MODE) (((MODE) == HAL_OSPI_VARIABLE_LATENCY) || \
971  ((MODE) == HAL_OSPI_FIXED_LATENCY))
972 
973 #define IS_OSPI_ADDRESS_SPACE(SPACE) (((SPACE) == HAL_OSPI_MEMORY_ADDRESS_SPACE) || \
974  ((SPACE) == HAL_OSPI_REGISTER_ADDRESS_SPACE))
975 
976 #define IS_OSPI_MATCH_MODE(MODE) (((MODE) == HAL_OSPI_MATCH_MODE_AND) || \
977  ((MODE) == HAL_OSPI_MATCH_MODE_OR))
978 
979 #define IS_OSPI_AUTOMATIC_STOP(MODE) (((MODE) == HAL_OSPI_AUTOMATIC_STOP_ENABLE) || \
980  ((MODE) == HAL_OSPI_AUTOMATIC_STOP_DISABLE))
981 
982 #define IS_OSPI_INTERVAL(INTERVAL) ((INTERVAL) <= 0xFFFFU)
983 
984 #define IS_OSPI_STATUS_BYTES_SIZE(SIZE) (((SIZE) >= 1U) && ((SIZE) <= 4U))
985 
986 #define IS_OSPI_TIMEOUT_ACTIVATION(MODE) (((MODE) == HAL_OSPI_TIMEOUT_COUNTER_DISABLE) || \
987  ((MODE) == HAL_OSPI_TIMEOUT_COUNTER_ENABLE))
988 
989 #define IS_OSPI_TIMEOUT_PERIOD(PERIOD) ((PERIOD) <= 0xFFFFU)
990 
991 #define IS_OSPI_CS_BOUNDARY(BOUNDARY) ((BOUNDARY) <= 31U)
992 
993 #define IS_OSPIM_PORT(NUMBER) (((NUMBER) >= 1U) && ((NUMBER) <= 2U))
994 
995 #define IS_OSPIM_IO_PORT(PORT) (((PORT) == HAL_OSPIM_IOPORT_1_LOW) || \
996  ((PORT) == HAL_OSPIM_IOPORT_1_HIGH) || \
997  ((PORT) == HAL_OSPIM_IOPORT_2_LOW) || \
998  ((PORT) == HAL_OSPIM_IOPORT_2_HIGH))
999 
1003 /* End of private macros -----------------------------------------------------*/
1004 
1013 #endif /* OCTOSPI || OCTOSPI1 || OCTOSPI2 */
1014 
1015 #ifdef __cplusplus
1016 }
1017 #endif
1018 
1019 #endif /* STM32L4xx_HAL_OSPI_H */
1020 
1021 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
HAL_OSPI_CallbackIDTypeDef
HAL OSPI Callback ID enumeration definition.
HAL_StatusTypeDef HAL_OSPI_Receive_IT(OSPI_HandleTypeDef *hospi, uint8_t *pData)
Receive an amount of data in non-blocking mode with interrupt.
uint32_t HAL_OSPI_GetError(OSPI_HandleTypeDef *hospi)
Return the OSPI error code.
HAL_StatusTypeDef HAL_OSPI_Receive_DMA(OSPI_HandleTypeDef *hospi, uint8_t *pData)
Receive an amount of data in non-blocking mode with DMA.
void(* TimeOutCallback)(struct __OSPI_HandleTypeDef *hospi)
HAL OSPI IO Manager Configuration structure definition.
HAL_StatusTypeDef HAL_OSPI_AutoPolling(OSPI_HandleTypeDef *hospi, OSPI_AutoPollingTypeDef *cfg, uint32_t Timeout)
Configure the OSPI Automatic Polling Mode in blocking mode.
HAL_StatusTypeDef HAL_OSPI_UnRegisterCallback(OSPI_HandleTypeDef *hospi, HAL_OSPI_CallbackIDTypeDef CallbackID)
Unregister a User OSPI Callback OSPI Callback is redirected to the weak (surcharged) predefined callb...
HAL OSPI Hyperbus Command Structure definition.
void HAL_OSPI_StatusMatchCallback(OSPI_HandleTypeDef *hospi)
Status Match callback.
void(* RxHalfCpltCallback)(struct __OSPI_HandleTypeDef *hospi)
void(* FifoThresholdCallback)(struct __OSPI_HandleTypeDef *hospi)
void(* CmdCpltCallback)(struct __OSPI_HandleTypeDef *hospi)
void(* MspDeInitCallback)(struct __OSPI_HandleTypeDef *hospi)
DMA handle Structure definition.
HAL_StatusTypeDef HAL_OSPI_HyperbusCfg(OSPI_HandleTypeDef *hospi, OSPI_HyperbusCfgTypeDef *cfg, uint32_t Timeout)
Configure the Hyperbus parameters.
uint32_t HAL_OSPI_GetState(OSPI_HandleTypeDef *hospi)
Return the OSPI handle state.
void HAL_OSPI_CmdCpltCallback(OSPI_HandleTypeDef *hospi)
Command completed callback.
HAL_StatusTypeDef HAL_OSPI_AutoPolling_IT(OSPI_HandleTypeDef *hospi, OSPI_AutoPollingTypeDef *cfg)
Configure the OSPI Automatic Polling Mode in non-blocking mode.
HAL_StatusTypeDef HAL_OSPI_HyperbusCmd(OSPI_HandleTypeDef *hospi, OSPI_HyperbusCmdTypeDef *cmd, uint32_t Timeout)
Set the Hyperbus command configuration.
HAL OSPI Handle Structure definition.
HAL_StatusTypeDef HAL_OSPI_MemoryMapped(OSPI_HandleTypeDef *hospi, OSPI_MemoryMappedTypeDef *cfg)
Configure the Memory Mapped mode.
HAL_StatusTypeDef HAL_OSPI_Transmit(OSPI_HandleTypeDef *hospi, uint8_t *pData, uint32_t Timeout)
Transmit an amount of data in blocking mode.
HAL_StatusTypeDef HAL_OSPI_Command(OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd, uint32_t Timeout)
Set the command configuration.
HAL_StatusTypeDef HAL_OSPI_Receive(OSPI_HandleTypeDef *hospi, uint8_t *pData, uint32_t Timeout)
Receive an amount of data in blocking mode.
This file contains HAL common defines, enumeration, macros and structures definitions.
void HAL_OSPI_IRQHandler(OSPI_HandleTypeDef *hospi)
Handle OSPI interrupt request.
void HAL_OSPI_TxCpltCallback(OSPI_HandleTypeDef *hospi)
Tx Transfer completed callback.
void(* RxCpltCallback)(struct __OSPI_HandleTypeDef *hospi)
OSPI_InitTypeDef Init
HAL_StatusTypeDef HAL_OSPI_Transmit_DMA(OSPI_HandleTypeDef *hospi, uint8_t *pData)
Send an amount of data in non-blocking mode with DMA.
HAL OSPI Hyperbus Configuration Structure definition.
void(* TxHalfCpltCallback)(struct __OSPI_HandleTypeDef *hospi)
HAL_StatusTypeDef HAL_OSPI_SetTimeout(OSPI_HandleTypeDef *hospi, uint32_t Timeout)
Set OSPI timeout.
void HAL_OSPI_FifoThresholdCallback(OSPI_HandleTypeDef *hospi)
FIFO Threshold callback.
HAL OSPI Regular Command Structure definition.
uint32_t HAL_OSPI_GetFifoThreshold(OSPI_HandleTypeDef *hospi)
Get OSPI Fifo threshold.
HAL_StatusTypeDef HAL_OSPI_Abort_IT(OSPI_HandleTypeDef *hospi)
Abort the current transmission (non-blocking function)
void HAL_OSPI_TimeOutCallback(OSPI_HandleTypeDef *hospi)
Timeout callback.
struct __OSPI_HandleTypeDef OSPI_HandleTypeDef
HAL OSPI Handle Structure definition.
void HAL_OSPI_MspInit(OSPI_HandleTypeDef *hospi)
Initialize the OSPI MSP.
HAL_StatusTypeDef HAL_OSPI_Transmit_IT(OSPI_HandleTypeDef *hospi, uint8_t *pData)
Send an amount of data in non-blocking mode with interrupt.
void(* StatusMatchCallback)(struct __OSPI_HandleTypeDef *hospi)
HAL_StatusTypeDef HAL_OSPI_Init(OSPI_HandleTypeDef *hospi)
Initialize the OSPI mode according to the specified parameters in the OSPI_InitTypeDef and initialize...
HAL_StatusTypeDef HAL_OSPI_SetFifoThreshold(OSPI_HandleTypeDef *hospi, uint32_t Threshold)
Set OSPI Fifo threshold.
HAL_StatusTypeDef HAL_OSPI_Abort(OSPI_HandleTypeDef *hospi)
Abort the current transmission.
void HAL_OSPI_TxHalfCpltCallback(OSPI_HandleTypeDef *hospi)
Tx Half Transfer completed callback.
HAL_StatusTypeDef HAL_OSPI_Command_IT(OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd)
Set the command configuration in interrupt mode.
void(* AbortCpltCallback)(struct __OSPI_HandleTypeDef *hospi)
void(* pOSPI_CallbackTypeDef)(OSPI_HandleTypeDef *hospi)
HAL OSPI Callback pointer definition.
HAL OSPI Auto Polling mode configuration structure definition.
void(* TxCpltCallback)(struct __OSPI_HandleTypeDef *hospi)
void HAL_OSPI_RxCpltCallback(OSPI_HandleTypeDef *hospi)
Rx Transfer completed callback.
void(* ErrorCallback)(struct __OSPI_HandleTypeDef *hospi)
void HAL_OSPI_MspDeInit(OSPI_HandleTypeDef *hospi)
DeInitialize the OSPI MSP.
HAL_StatusTypeDef HAL_OSPI_RegisterCallback(OSPI_HandleTypeDef *hospi, HAL_OSPI_CallbackIDTypeDef CallbackID, pOSPI_CallbackTypeDef pCallback)
Register a User OSPI Callback To be used instead of the weak (surcharged) predefined callback...
void HAL_OSPI_RxHalfCpltCallback(OSPI_HandleTypeDef *hospi)
Rx Half Transfer completed callback.
HAL_StatusTypeDef HAL_OSPI_DeInit(OSPI_HandleTypeDef *hospi)
De-Initialize the OSPI peripheral.
HAL OSPI Memory Mapped mode configuration structure definition.
HAL_StatusTypeDef HAL_OSPIM_Config(OSPI_HandleTypeDef *hospi, OSPIM_CfgTypeDef *cfg, uint32_t Timeout)
Configure the OctoSPI IO manager.
OCTOSPI_TypeDef * Instance
void(* MspInitCallback)(struct __OSPI_HandleTypeDef *hospi)
void HAL_OSPI_AbortCpltCallback(OSPI_HandleTypeDef *hospi)
Abort completed callback.
DMA_HandleTypeDef * hdma
void HAL_OSPI_ErrorCallback(OSPI_HandleTypeDef *hospi)
Transfer Error callback.