File indexing completed on 2025-05-11 08:23:36
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef STM32H7xx_HAL_QSPI_H
0021 #define STM32H7xx_HAL_QSPI_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027
0028 #include "stm32h7xx_hal_def.h"
0029
0030 #if defined(QUADSPI)
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049 typedef struct
0050 {
0051 uint32_t ClockPrescaler;
0052
0053 uint32_t FifoThreshold;
0054
0055 uint32_t SampleShifting;
0056
0057
0058 uint32_t FlashSize;
0059
0060
0061
0062
0063 uint32_t ChipSelectHighTime;
0064
0065
0066 uint32_t ClockMode;
0067
0068 uint32_t FlashID;
0069
0070 uint32_t DualFlash;
0071
0072 }QSPI_InitTypeDef;
0073
0074
0075
0076
0077 typedef enum
0078 {
0079 HAL_QSPI_STATE_RESET = 0x00U,
0080 HAL_QSPI_STATE_READY = 0x01U,
0081 HAL_QSPI_STATE_BUSY = 0x02U,
0082 HAL_QSPI_STATE_BUSY_INDIRECT_TX = 0x12U,
0083 HAL_QSPI_STATE_BUSY_INDIRECT_RX = 0x22U,
0084 HAL_QSPI_STATE_BUSY_AUTO_POLLING = 0x42U,
0085 HAL_QSPI_STATE_BUSY_MEM_MAPPED = 0x82U,
0086 HAL_QSPI_STATE_ABORT = 0x08U,
0087 HAL_QSPI_STATE_ERROR = 0x04U
0088 }HAL_QSPI_StateTypeDef;
0089
0090
0091
0092
0093 #if (USE_HAL_QSPI_REGISTER_CALLBACKS == 1)
0094 typedef struct __QSPI_HandleTypeDef
0095 #else
0096 typedef struct
0097 #endif
0098 {
0099 QUADSPI_TypeDef *Instance;
0100 QSPI_InitTypeDef Init;
0101 uint8_t *pTxBuffPtr;
0102 __IO uint32_t TxXferSize;
0103 __IO uint32_t TxXferCount;
0104 uint8_t *pRxBuffPtr;
0105 __IO uint32_t RxXferSize;
0106 __IO uint32_t RxXferCount;
0107 MDMA_HandleTypeDef *hmdma;
0108 __IO HAL_LockTypeDef Lock;
0109 __IO HAL_QSPI_StateTypeDef State;
0110 __IO uint32_t ErrorCode;
0111 uint32_t Timeout;
0112 #if (USE_HAL_QSPI_REGISTER_CALLBACKS == 1)
0113 void (* ErrorCallback) (struct __QSPI_HandleTypeDef *hqspi);
0114 void (* AbortCpltCallback) (struct __QSPI_HandleTypeDef *hqspi);
0115 void (* FifoThresholdCallback)(struct __QSPI_HandleTypeDef *hqspi);
0116 void (* CmdCpltCallback) (struct __QSPI_HandleTypeDef *hqspi);
0117 void (* RxCpltCallback) (struct __QSPI_HandleTypeDef *hqspi);
0118 void (* TxCpltCallback) (struct __QSPI_HandleTypeDef *hqspi);
0119 void (* StatusMatchCallback) (struct __QSPI_HandleTypeDef *hqspi);
0120 void (* TimeOutCallback) (struct __QSPI_HandleTypeDef *hqspi);
0121
0122 void (* MspInitCallback) (struct __QSPI_HandleTypeDef *hqspi);
0123 void (* MspDeInitCallback) (struct __QSPI_HandleTypeDef *hqspi);
0124 #endif
0125 }QSPI_HandleTypeDef;
0126
0127
0128
0129
0130 typedef struct
0131 {
0132 uint32_t Instruction;
0133
0134 uint32_t Address;
0135
0136 uint32_t AlternateBytes;
0137
0138 uint32_t AddressSize;
0139
0140 uint32_t AlternateBytesSize;
0141
0142 uint32_t DummyCycles;
0143
0144 uint32_t InstructionMode;
0145
0146 uint32_t AddressMode;
0147
0148 uint32_t AlternateByteMode;
0149
0150 uint32_t DataMode;
0151
0152 uint32_t NbData;
0153
0154
0155 uint32_t DdrMode;
0156
0157 uint32_t DdrHoldHalfCycle;
0158
0159
0160 uint32_t SIOOMode;
0161
0162 }QSPI_CommandTypeDef;
0163
0164
0165
0166
0167 typedef struct
0168 {
0169 uint32_t Match;
0170
0171 uint32_t Mask;
0172
0173 uint32_t Interval;
0174
0175 uint32_t StatusBytesSize;
0176
0177 uint32_t MatchMode;
0178
0179 uint32_t AutomaticStop;
0180
0181 }QSPI_AutoPollingTypeDef;
0182
0183
0184
0185
0186 typedef struct
0187 {
0188 uint32_t TimeOutPeriod;
0189
0190 uint32_t TimeOutActivation;
0191
0192 }QSPI_MemoryMappedTypeDef;
0193
0194 #if (USE_HAL_QSPI_REGISTER_CALLBACKS == 1)
0195
0196
0197
0198 typedef enum
0199 {
0200 HAL_QSPI_ERROR_CB_ID = 0x00U,
0201 HAL_QSPI_ABORT_CB_ID = 0x01U,
0202 HAL_QSPI_FIFO_THRESHOLD_CB_ID = 0x02U,
0203 HAL_QSPI_CMD_CPLT_CB_ID = 0x03U,
0204 HAL_QSPI_RX_CPLT_CB_ID = 0x04U,
0205 HAL_QSPI_TX_CPLT_CB_ID = 0x05U,
0206 HAL_QSPI_STATUS_MATCH_CB_ID = 0x08U,
0207 HAL_QSPI_TIMEOUT_CB_ID = 0x09U,
0208
0209 HAL_QSPI_MSP_INIT_CB_ID = 0x0AU,
0210 HAL_QSPI_MSP_DEINIT_CB_ID = 0x0B0
0211 }HAL_QSPI_CallbackIDTypeDef;
0212
0213
0214
0215
0216 typedef void (*pQSPI_CallbackTypeDef)(QSPI_HandleTypeDef *hqspi);
0217 #endif
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232 #define HAL_QSPI_ERROR_NONE 0x00000000U
0233 #define HAL_QSPI_ERROR_TIMEOUT 0x00000001U
0234 #define HAL_QSPI_ERROR_TRANSFER 0x00000002U
0235 #define HAL_QSPI_ERROR_DMA 0x00000004U
0236 #define HAL_QSPI_ERROR_INVALID_PARAM 0x00000008U
0237 #if (USE_HAL_QSPI_REGISTER_CALLBACKS == 1)
0238 #define HAL_QSPI_ERROR_INVALID_CALLBACK 0x00000010U
0239 #endif
0240
0241
0242
0243
0244
0245
0246
0247
0248 #define QSPI_SAMPLE_SHIFTING_NONE 0x00000000U
0249 #define QSPI_SAMPLE_SHIFTING_HALFCYCLE ((uint32_t)QUADSPI_CR_SSHIFT)
0250
0251
0252
0253
0254
0255
0256
0257
0258 #define QSPI_CS_HIGH_TIME_1_CYCLE 0x00000000U
0259 #define QSPI_CS_HIGH_TIME_2_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_0)
0260 #define QSPI_CS_HIGH_TIME_3_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_1)
0261 #define QSPI_CS_HIGH_TIME_4_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_0 | QUADSPI_DCR_CSHT_1)
0262 #define QSPI_CS_HIGH_TIME_5_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_2)
0263 #define QSPI_CS_HIGH_TIME_6_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_2 | QUADSPI_DCR_CSHT_0)
0264 #define QSPI_CS_HIGH_TIME_7_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_2 | QUADSPI_DCR_CSHT_1)
0265 #define QSPI_CS_HIGH_TIME_8_CYCLE ((uint32_t)QUADSPI_DCR_CSHT)
0266
0267
0268
0269
0270
0271
0272
0273
0274 #define QSPI_CLOCK_MODE_0 0x00000000U
0275 #define QSPI_CLOCK_MODE_3 ((uint32_t)QUADSPI_DCR_CKMODE)
0276
0277
0278
0279
0280
0281
0282
0283
0284 #define QSPI_FLASH_ID_1 0x00000000U
0285 #define QSPI_FLASH_ID_2 ((uint32_t)QUADSPI_CR_FSEL)
0286
0287
0288
0289
0290
0291
0292
0293
0294 #define QSPI_DUALFLASH_ENABLE ((uint32_t)QUADSPI_CR_DFM)
0295 #define QSPI_DUALFLASH_DISABLE 0x00000000U
0296
0297
0298
0299
0300
0301
0302
0303
0304 #define QSPI_ADDRESS_8_BITS 0x00000000U
0305 #define QSPI_ADDRESS_16_BITS ((uint32_t)QUADSPI_CCR_ADSIZE_0)
0306 #define QSPI_ADDRESS_24_BITS ((uint32_t)QUADSPI_CCR_ADSIZE_1)
0307 #define QSPI_ADDRESS_32_BITS ((uint32_t)QUADSPI_CCR_ADSIZE)
0308
0309
0310
0311
0312
0313
0314
0315
0316 #define QSPI_ALTERNATE_BYTES_8_BITS 0x00000000U
0317 #define QSPI_ALTERNATE_BYTES_16_BITS ((uint32_t)QUADSPI_CCR_ABSIZE_0)
0318 #define QSPI_ALTERNATE_BYTES_24_BITS ((uint32_t)QUADSPI_CCR_ABSIZE_1)
0319 #define QSPI_ALTERNATE_BYTES_32_BITS ((uint32_t)QUADSPI_CCR_ABSIZE)
0320
0321
0322
0323
0324
0325
0326
0327
0328 #define QSPI_INSTRUCTION_NONE 0x00000000U
0329 #define QSPI_INSTRUCTION_1_LINE ((uint32_t)QUADSPI_CCR_IMODE_0)
0330 #define QSPI_INSTRUCTION_2_LINES ((uint32_t)QUADSPI_CCR_IMODE_1)
0331 #define QSPI_INSTRUCTION_4_LINES ((uint32_t)QUADSPI_CCR_IMODE)
0332
0333
0334
0335
0336
0337
0338
0339
0340 #define QSPI_ADDRESS_NONE 0x00000000U
0341 #define QSPI_ADDRESS_1_LINE ((uint32_t)QUADSPI_CCR_ADMODE_0)
0342 #define QSPI_ADDRESS_2_LINES ((uint32_t)QUADSPI_CCR_ADMODE_1)
0343 #define QSPI_ADDRESS_4_LINES ((uint32_t)QUADSPI_CCR_ADMODE)
0344
0345
0346
0347
0348
0349
0350
0351
0352 #define QSPI_ALTERNATE_BYTES_NONE 0x00000000U
0353 #define QSPI_ALTERNATE_BYTES_1_LINE ((uint32_t)QUADSPI_CCR_ABMODE_0)
0354 #define QSPI_ALTERNATE_BYTES_2_LINES ((uint32_t)QUADSPI_CCR_ABMODE_1)
0355 #define QSPI_ALTERNATE_BYTES_4_LINES ((uint32_t)QUADSPI_CCR_ABMODE)
0356
0357
0358
0359
0360
0361
0362
0363
0364 #define QSPI_DATA_NONE 0x00000000U
0365 #define QSPI_DATA_1_LINE ((uint32_t)QUADSPI_CCR_DMODE_0)
0366 #define QSPI_DATA_2_LINES ((uint32_t)QUADSPI_CCR_DMODE_1)
0367 #define QSPI_DATA_4_LINES ((uint32_t)QUADSPI_CCR_DMODE)
0368
0369
0370
0371
0372
0373
0374
0375
0376 #define QSPI_DDR_MODE_DISABLE 0x00000000U
0377 #define QSPI_DDR_MODE_ENABLE ((uint32_t)QUADSPI_CCR_DDRM)
0378
0379
0380
0381
0382
0383
0384
0385
0386 #define QSPI_DDR_HHC_ANALOG_DELAY 0x00000000U
0387 #define QSPI_DDR_HHC_HALF_CLK_DELAY ((uint32_t)QUADSPI_CCR_DHHC)
0388
0389
0390
0391
0392
0393
0394
0395
0396 #define QSPI_SIOO_INST_EVERY_CMD 0x00000000U
0397 #define QSPI_SIOO_INST_ONLY_FIRST_CMD ((uint32_t)QUADSPI_CCR_SIOO)
0398
0399
0400
0401
0402
0403
0404
0405
0406 #define QSPI_MATCH_MODE_AND 0x00000000U
0407 #define QSPI_MATCH_MODE_OR ((uint32_t)QUADSPI_CR_PMM)
0408
0409
0410
0411
0412
0413
0414
0415
0416 #define QSPI_AUTOMATIC_STOP_DISABLE 0x00000000U
0417 #define QSPI_AUTOMATIC_STOP_ENABLE ((uint32_t)QUADSPI_CR_APMS)
0418
0419
0420
0421
0422
0423
0424
0425
0426 #define QSPI_TIMEOUT_COUNTER_DISABLE 0x00000000U
0427 #define QSPI_TIMEOUT_COUNTER_ENABLE ((uint32_t)QUADSPI_CR_TCEN)
0428
0429
0430
0431
0432
0433
0434
0435
0436 #define QSPI_FLAG_BUSY QUADSPI_SR_BUSY
0437 #define QSPI_FLAG_TO QUADSPI_SR_TOF
0438 #define QSPI_FLAG_SM QUADSPI_SR_SMF
0439 #define QSPI_FLAG_FT QUADSPI_SR_FTF
0440 #define QSPI_FLAG_TC QUADSPI_SR_TCF
0441 #define QSPI_FLAG_TE QUADSPI_SR_TEF
0442
0443
0444
0445
0446
0447
0448
0449
0450 #define QSPI_IT_TO QUADSPI_CR_TOIE
0451 #define QSPI_IT_SM QUADSPI_CR_SMIE
0452 #define QSPI_IT_FT QUADSPI_CR_FTIE
0453 #define QSPI_IT_TC QUADSPI_CR_TCIE
0454 #define QSPI_IT_TE QUADSPI_CR_TEIE
0455
0456
0457
0458
0459
0460
0461
0462
0463
0464 #define HAL_QSPI_TIMEOUT_DEFAULT_VALUE 5000U
0465
0466
0467
0468
0469
0470
0471
0472
0473
0474
0475
0476
0477
0478
0479
0480
0481
0482 #if (USE_HAL_QSPI_REGISTER_CALLBACKS == 1)
0483 #define __HAL_QSPI_RESET_HANDLE_STATE(__HANDLE__) do { \
0484 (__HANDLE__)->State = HAL_QSPI_STATE_RESET; \
0485 (__HANDLE__)->MspInitCallback = NULL; \
0486 (__HANDLE__)->MspDeInitCallback = NULL; \
0487 } while(0)
0488 #else
0489 #define __HAL_QSPI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_QSPI_STATE_RESET)
0490 #endif
0491
0492
0493
0494
0495
0496 #define __HAL_QSPI_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, QUADSPI_CR_EN)
0497
0498
0499
0500
0501
0502 #define __HAL_QSPI_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, QUADSPI_CR_EN)
0503
0504
0505
0506
0507
0508
0509
0510
0511
0512
0513
0514
0515 #define __HAL_QSPI_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__))
0516
0517
0518
0519
0520
0521
0522
0523
0524
0525
0526
0527
0528
0529 #define __HAL_QSPI_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__))
0530
0531
0532
0533
0534
0535
0536
0537
0538
0539
0540
0541
0542 #define __HAL_QSPI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (READ_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__)) == (__INTERRUPT__))
0543
0544
0545
0546
0547
0548
0549
0550
0551
0552
0553
0554
0555
0556
0557 #define __HAL_QSPI_GET_FLAG(__HANDLE__, __FLAG__) ((READ_BIT((__HANDLE__)->Instance->SR, (__FLAG__)) != 0U) ? SET : RESET)
0558
0559
0560
0561
0562
0563
0564
0565
0566
0567
0568
0569 #define __HAL_QSPI_CLEAR_FLAG(__HANDLE__, __FLAG__) WRITE_REG((__HANDLE__)->Instance->FCR, (__FLAG__))
0570
0571
0572
0573
0574
0575
0576
0577
0578
0579
0580
0581
0582
0583 HAL_StatusTypeDef HAL_QSPI_Init (QSPI_HandleTypeDef *hqspi);
0584 HAL_StatusTypeDef HAL_QSPI_DeInit (QSPI_HandleTypeDef *hqspi);
0585 void HAL_QSPI_MspInit (QSPI_HandleTypeDef *hqspi);
0586 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef *hqspi);
0587
0588
0589
0590
0591
0592
0593
0594
0595
0596 void HAL_QSPI_IRQHandler(QSPI_HandleTypeDef *hqspi);
0597
0598
0599 HAL_StatusTypeDef HAL_QSPI_Command (QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, uint32_t Timeout);
0600 HAL_StatusTypeDef HAL_QSPI_Transmit (QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout);
0601 HAL_StatusTypeDef HAL_QSPI_Receive (QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout);
0602 HAL_StatusTypeDef HAL_QSPI_Command_IT (QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd);
0603 HAL_StatusTypeDef HAL_QSPI_Transmit_IT (QSPI_HandleTypeDef *hqspi, uint8_t *pData);
0604 HAL_StatusTypeDef HAL_QSPI_Receive_IT (QSPI_HandleTypeDef *hqspi, uint8_t *pData);
0605 HAL_StatusTypeDef HAL_QSPI_Transmit_DMA (QSPI_HandleTypeDef *hqspi, uint8_t *pData);
0606 HAL_StatusTypeDef HAL_QSPI_Receive_DMA (QSPI_HandleTypeDef *hqspi, uint8_t *pData);
0607
0608
0609 HAL_StatusTypeDef HAL_QSPI_AutoPolling (QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_AutoPollingTypeDef *cfg, uint32_t Timeout);
0610 HAL_StatusTypeDef HAL_QSPI_AutoPolling_IT(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_AutoPollingTypeDef *cfg);
0611
0612
0613 HAL_StatusTypeDef HAL_QSPI_MemoryMapped(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_MemoryMappedTypeDef *cfg);
0614
0615
0616 void HAL_QSPI_ErrorCallback (QSPI_HandleTypeDef *hqspi);
0617 void HAL_QSPI_AbortCpltCallback (QSPI_HandleTypeDef *hqspi);
0618 void HAL_QSPI_FifoThresholdCallback(QSPI_HandleTypeDef *hqspi);
0619
0620
0621 void HAL_QSPI_CmdCpltCallback (QSPI_HandleTypeDef *hqspi);
0622 void HAL_QSPI_RxCpltCallback (QSPI_HandleTypeDef *hqspi);
0623 void HAL_QSPI_TxCpltCallback (QSPI_HandleTypeDef *hqspi);
0624
0625
0626 void HAL_QSPI_StatusMatchCallback (QSPI_HandleTypeDef *hqspi);
0627
0628
0629 void HAL_QSPI_TimeOutCallback (QSPI_HandleTypeDef *hqspi);
0630
0631 #if (USE_HAL_QSPI_REGISTER_CALLBACKS == 1)
0632
0633 HAL_StatusTypeDef HAL_QSPI_RegisterCallback (QSPI_HandleTypeDef *hqspi, HAL_QSPI_CallbackIDTypeDef CallbackId, pQSPI_CallbackTypeDef pCallback);
0634 HAL_StatusTypeDef HAL_QSPI_UnRegisterCallback (QSPI_HandleTypeDef *hqspi, HAL_QSPI_CallbackIDTypeDef CallbackId);
0635 #endif
0636
0637
0638
0639
0640
0641
0642
0643
0644 HAL_QSPI_StateTypeDef HAL_QSPI_GetState (const QSPI_HandleTypeDef *hqspi);
0645 uint32_t HAL_QSPI_GetError (const QSPI_HandleTypeDef *hqspi);
0646 HAL_StatusTypeDef HAL_QSPI_Abort (QSPI_HandleTypeDef *hqspi);
0647 HAL_StatusTypeDef HAL_QSPI_Abort_IT (QSPI_HandleTypeDef *hqspi);
0648 void HAL_QSPI_SetTimeout (QSPI_HandleTypeDef *hqspi, uint32_t Timeout);
0649 HAL_StatusTypeDef HAL_QSPI_SetFifoThreshold(QSPI_HandleTypeDef *hqspi, uint32_t Threshold);
0650 uint32_t HAL_QSPI_GetFifoThreshold(const QSPI_HandleTypeDef *hqspi);
0651 HAL_StatusTypeDef HAL_QSPI_SetFlashID (QSPI_HandleTypeDef *hqspi, uint32_t FlashID);
0652
0653
0654
0655
0656
0657
0658
0659
0660
0661
0662
0663
0664
0665
0666 #define IS_QSPI_CLOCK_PRESCALER(PRESCALER) ((PRESCALER) <= 0xFFU)
0667
0668 #define IS_QSPI_FIFO_THRESHOLD(THR) (((THR) > 0U) && ((THR) <= 32U))
0669
0670 #define IS_QSPI_SSHIFT(SSHIFT) (((SSHIFT) == QSPI_SAMPLE_SHIFTING_NONE) || \
0671 ((SSHIFT) == QSPI_SAMPLE_SHIFTING_HALFCYCLE))
0672
0673 #define IS_QSPI_FLASH_SIZE(FSIZE) (((FSIZE) <= 31U))
0674
0675 #define IS_QSPI_CS_HIGH_TIME(CSHTIME) (((CSHTIME) == QSPI_CS_HIGH_TIME_1_CYCLE) || \
0676 ((CSHTIME) == QSPI_CS_HIGH_TIME_2_CYCLE) || \
0677 ((CSHTIME) == QSPI_CS_HIGH_TIME_3_CYCLE) || \
0678 ((CSHTIME) == QSPI_CS_HIGH_TIME_4_CYCLE) || \
0679 ((CSHTIME) == QSPI_CS_HIGH_TIME_5_CYCLE) || \
0680 ((CSHTIME) == QSPI_CS_HIGH_TIME_6_CYCLE) || \
0681 ((CSHTIME) == QSPI_CS_HIGH_TIME_7_CYCLE) || \
0682 ((CSHTIME) == QSPI_CS_HIGH_TIME_8_CYCLE))
0683
0684 #define IS_QSPI_CLOCK_MODE(CLKMODE) (((CLKMODE) == QSPI_CLOCK_MODE_0) || \
0685 ((CLKMODE) == QSPI_CLOCK_MODE_3))
0686
0687 #define IS_QSPI_FLASH_ID(FLASH_ID) (((FLASH_ID) == QSPI_FLASH_ID_1) || \
0688 ((FLASH_ID) == QSPI_FLASH_ID_2))
0689
0690 #define IS_QSPI_DUAL_FLASH_MODE(MODE) (((MODE) == QSPI_DUALFLASH_ENABLE) || \
0691 ((MODE) == QSPI_DUALFLASH_DISABLE))
0692
0693 #define IS_QSPI_INSTRUCTION(INSTRUCTION) ((INSTRUCTION) <= 0xFFU)
0694
0695 #define IS_QSPI_ADDRESS_SIZE(ADDR_SIZE) (((ADDR_SIZE) == QSPI_ADDRESS_8_BITS) || \
0696 ((ADDR_SIZE) == QSPI_ADDRESS_16_BITS) || \
0697 ((ADDR_SIZE) == QSPI_ADDRESS_24_BITS) || \
0698 ((ADDR_SIZE) == QSPI_ADDRESS_32_BITS))
0699
0700 #define IS_QSPI_ALTERNATE_BYTES_SIZE(SIZE) (((SIZE) == QSPI_ALTERNATE_BYTES_8_BITS) || \
0701 ((SIZE) == QSPI_ALTERNATE_BYTES_16_BITS) || \
0702 ((SIZE) == QSPI_ALTERNATE_BYTES_24_BITS) || \
0703 ((SIZE) == QSPI_ALTERNATE_BYTES_32_BITS))
0704
0705 #define IS_QSPI_DUMMY_CYCLES(DCY) ((DCY) <= 31U)
0706
0707 #define IS_QSPI_INSTRUCTION_MODE(MODE) (((MODE) == QSPI_INSTRUCTION_NONE) || \
0708 ((MODE) == QSPI_INSTRUCTION_1_LINE) || \
0709 ((MODE) == QSPI_INSTRUCTION_2_LINES) || \
0710 ((MODE) == QSPI_INSTRUCTION_4_LINES))
0711
0712 #define IS_QSPI_ADDRESS_MODE(MODE) (((MODE) == QSPI_ADDRESS_NONE) || \
0713 ((MODE) == QSPI_ADDRESS_1_LINE) || \
0714 ((MODE) == QSPI_ADDRESS_2_LINES) || \
0715 ((MODE) == QSPI_ADDRESS_4_LINES))
0716
0717 #define IS_QSPI_ALTERNATE_BYTES_MODE(MODE) (((MODE) == QSPI_ALTERNATE_BYTES_NONE) || \
0718 ((MODE) == QSPI_ALTERNATE_BYTES_1_LINE) || \
0719 ((MODE) == QSPI_ALTERNATE_BYTES_2_LINES) || \
0720 ((MODE) == QSPI_ALTERNATE_BYTES_4_LINES))
0721
0722 #define IS_QSPI_DATA_MODE(MODE) (((MODE) == QSPI_DATA_NONE) || \
0723 ((MODE) == QSPI_DATA_1_LINE) || \
0724 ((MODE) == QSPI_DATA_2_LINES) || \
0725 ((MODE) == QSPI_DATA_4_LINES))
0726
0727 #define IS_QSPI_DDR_MODE(DDR_MODE) (((DDR_MODE) == QSPI_DDR_MODE_DISABLE) || \
0728 ((DDR_MODE) == QSPI_DDR_MODE_ENABLE))
0729
0730 #define IS_QSPI_DDR_HHC(DDR_HHC) (((DDR_HHC) == QSPI_DDR_HHC_ANALOG_DELAY) || \
0731 ((DDR_HHC) == QSPI_DDR_HHC_HALF_CLK_DELAY))
0732
0733 #define IS_QSPI_SIOO_MODE(SIOO_MODE) (((SIOO_MODE) == QSPI_SIOO_INST_EVERY_CMD) || \
0734 ((SIOO_MODE) == QSPI_SIOO_INST_ONLY_FIRST_CMD))
0735
0736 #define IS_QSPI_INTERVAL(INTERVAL) ((INTERVAL) <= QUADSPI_PIR_INTERVAL)
0737
0738 #define IS_QSPI_STATUS_BYTES_SIZE(SIZE) (((SIZE) >= 1U) && ((SIZE) <= 4U))
0739
0740 #define IS_QSPI_MATCH_MODE(MODE) (((MODE) == QSPI_MATCH_MODE_AND) || \
0741 ((MODE) == QSPI_MATCH_MODE_OR))
0742
0743 #define IS_QSPI_AUTOMATIC_STOP(APMS) (((APMS) == QSPI_AUTOMATIC_STOP_DISABLE) || \
0744 ((APMS) == QSPI_AUTOMATIC_STOP_ENABLE))
0745
0746 #define IS_QSPI_TIMEOUT_ACTIVATION(TCEN) (((TCEN) == QSPI_TIMEOUT_COUNTER_DISABLE) || \
0747 ((TCEN) == QSPI_TIMEOUT_COUNTER_ENABLE))
0748
0749 #define IS_QSPI_TIMEOUT_PERIOD(PERIOD) ((PERIOD) <= 0xFFFFU)
0750
0751
0752
0753
0754
0755
0756
0757
0758
0759
0760
0761
0762
0763 #endif
0764
0765 #ifdef __cplusplus
0766 }
0767 #endif
0768
0769 #endif