AM261x MCU+ SDK: ospi_lld.h Source File

| AM261x MCU+ SDK 26.00.00 |

ospi_lld.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2024 Texas Instruments Incorporated
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the
14 * distribution.
15 *
16 * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
50 #ifndef OSPI_LLD_H_
51 #define OSPI_LLD_H_
52
53 /* ========================================================================== */
54 /* Include Files */
55 /* ========================================================================== */
56
57 #include <stdint.h>
58 #include <stdbool.h>
59 #include <drivers/hw_include/csl_types.h>
60 #include <drivers/hw_include/cslr_ospi.h>
61 #include <drivers/ospi/v0/lld/dma/ospi_lld_dma.h>
62 #include <drivers/ospi/v0/cslr_ospi.h>
63
64 #ifdef __cplusplus
65 extern "C" {
66 #endif
67
68 /* ========================================================================== */
69 /* Macros & Typedefs */
70 /* ========================================================================== */
71
72
81 #define OSPI_TRANSFER_COMPLETED (0U)
82 #define OSPI_TRANSFER_STARTED (1U)
83 #define OSPI_TRANSFER_CANCELLED (2U)
84 #define OSPI_TRANSFER_FAILED (3U)
85 #define OSPI_TRANSFER_CSN_DEASSERT (4U)
86 #define OSPI_TRANSFER_TIMEOUT (5U)
87
108 #define OSPI_TRANSFER_MODE_BLOCKING (0U)
109
113 #define OSPI_TRANSFER_MODE_CALLBACK (1U)
114
118 #define OSPI_TRANSFER_MODE_POLLING (2U)
119
135 #define OSPI_FF_POL0_PHA0 (0U)
136 #define OSPI_FF_POL0_PHA1 (CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_PHASE_FLD_MASK | 0U)
137 #define OSPI_FF_POL1_PHA0 (0U | CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_POL_FLD_MASK)
138 #define OSPI_FF_POL1_PHA1 (CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_PHASE_FLD_MASK | \
139 CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_POL_FLD_MASK)
140
150 #define OSPI_CMD_INVALID_OPCODE (0xFFU)
151 #define OSPI_CMD_INVALID_DUMMY (0xFFU)
152 #define OSPI_CMD_INVALID_ADDR (0xFFFFFFFFU)
153
163 #define OSPI_CMD_EXT_TYPE_REPEAT (0x00U)
164 #define OSPI_CMD_EXT_TYPE_INVERSE (0x01U)
165 #define OSPI_CMD_EXT_TYPE_NONE (0x02U)
166
176 #define OSPI_NOR_PROTOCOL(cmd, addr, data, dtr) (uint32_t)(((uint32_t)(dtr) << 24) | \
177 ((uint32_t)(cmd) << 16) | \
178 ((uint32_t)(addr) << 8) | \
179 ((uint32_t)(data) << 0))
180 #define OSPI_NOR_PROTOCOL_INVALID (uint32_t)(0xFFFFFFFF)
181
182 #define OSPI_PROTO_1S_1S_1S (0x0001)
183 #define OSPI_PROTO_1S_1S_2S (0x0002)
184 #define OSPI_PROTO_1S_1S_4S (0x0003)
185 #define OSPI_PROTO_1S_1S_8S (0x0004)
186 #define OSPI_PROTO_1S_8S_8S (0x000A)
187 #define OSPI_PROTO_4S_4S_4S (0x0005)
188 #define OSPI_PROTO_4S_4D_4D (0x0006)
189 #define OSPI_PROTO_8S_8S_8S (0x0007)
190 #define OSPI_PROTO_8D_8D_8D (0x0008)
191 #define OSPI_PROTO_CUSTOM (0x0009)
192
193 #define OSPI_NAND_PROTOCOL(cmd, addr, data, dtr) (uint32_t)(((uint32_t)(dtr) << 24) | \
194 ((uint32_t)(cmd) << 16) | \
195 ((uint32_t)(addr) << 8) | \
196 ((uint32_t)(data) << 0))
197 #define OSPI_NAND_PROTOCOL_INVALID (uint32_t)(0xFFFFFFFF)
198
208 #define OSPI_CS0 (0U)
209 #define OSPI_CS1 (1U)
210 #define OSPI_CS2 (2U)
211 #define OSPI_CS3 (3U)
212
214 #define OSPI_CHIP_SELECT(x) ((~((1U) << (x))) & 0xFU)
215
217 #define OSPI_RESETPIN_DQ3 (0U)
218 #define OSPI_RESETPIN_DEDICATED (1U)
219
229 #define CSL_OSPI_BAUD_RATE_DIVISOR(x) (((x) - 2U) >> 1U)
230 #define MAX_BAUDRATE_DIVIDER (32U)
231 #define CSL_OSPI_BAUD_RATE_DIVISOR_DEFAULT (CSL_OSPI_BAUD_RATE_DIVISOR(MAX_BAUDRATE_DIVIDER))
232
241 #define OSPI_DECODER_SELECT4 ((uint32_t) 0U)
242 #define OSPI_DECODER_SELECT16 ((uint32_t) 1U)
243
253 #define OSPI_STATE_RESET ((uint32_t) 0U)
254
256 #define OSPI_STATE_IDLE ((uint32_t) 1U)
257
259 #define OSPI_STATE_BUSY ((uint32_t) 2U)
260
262 #define OSPI_STATE_ERROR ((uint32_t) 3U)
263
272 #define OSPI_SYSTEM_SUCCESS ((int32_t )0)
273
276 #define OSPI_SYSTEM_FAILURE ((int32_t)-1)
277
280 #define OSPI_TIMEOUT ((int32_t)-2)
281
284 #define OSPI_LLD_INVALID_PARAM ((int32_t)-3)
285
288 #define OSPI_BUSY ((int32_t)-4)
289
292 #define OSPI_INVALID_STATE ((int32_t)-5)
293
303 #define OSPI_NO_WAIT ((uint32_t)0)
304
307 #define OSPI_WAIT_FOREVER ((uint32_t)-1)
308
317 #define OSPI_TRANS_IDLE ((uint32_t)0)
318
321 #define OSPI_TRANS_READ ((uint32_t)1)
322
325 #define OSPI_TRANS_WRITE ((uint32_t)2)
326
347 #define OSPI_FLASH_CFG_PHY_MASTER_CONTROL_REG_PHY_MASTER_MODE (0U)
348 #define OSPI_FLASH_CFG_PHY_MASTER_CONTROL_REG_PHY_BYPASS_MODE (1U)
349
361 #define OSPI_PHY_DLL_FULL_CYCLE_LOCK ((uint16_t) 0U)
362 #define OSPI_PHY_DLL_HALF_CYCLE_LOCK ((uint16_t) 1U)
363
373 #define OSPI_FLASH_ATTACK_VECTOR_SIZE (128U)
374
376 /* ========================================================================== */
377 /* Function pointers Declarations */
378 /* ========================================================================== */
379
387 typedef uint32_t (*OSPI_Clock_getTicks)(void);
388
398 typedef uint32_t (*OSPI_Clock_usecToTicks)(uint64_t usecs);
399
406 typedef void (*OSPI_Clock_usec)(uint32_t usecs);
407
414 /* Type definition for the callback function*/
415 typedef void (*OSPI_lld_InterruptCallback)(void* args);
416
423 typedef void (*OSPI_lld_dma_readCompleteCallback)(void* args);
424
425 /* ========================================================================== */
426 /* Structure Declarations */
427 /* ========================================================================== */
435 typedef struct
436 {
437 uint32_t count;
439 void *buf;
441 uint32_t addrOffset;
443 uint32_t status;
445 uint32_t dataLen;
447 uint32_t transferOffset;
449 uint32_t transferTimeout;
451 uint32_t state;
453 } OSPI_Transaction;
454
457 typedef struct
458 {
459 uint8_t cmd;
461 uint32_t cmdAddr;
464 uint8_t numAddrBytes;
466 void *txDataBuf;
468 uint32_t txDataLen;
470 uint32_t writeTimeout;
472 } OSPI_WriteCmdParams;
473
476 typedef struct
477 {
478 uint8_t cmd;
480 uint32_t cmdAddr;
483 uint8_t numAddrBytes;
485 uint8_t dummyBits;
487 void *rxDataBuf;
489 uint16_t rxDataLen;
491 uint32_t readTimeout;
493 } OSPI_ReadCmdParams;
494
503 typedef struct
504 {
505 uint32_t regionStartAddr;
507 uint32_t regionSize;
510 } OSPI_AddrRegion;
511
522 typedef struct
523 {
524 int32_t ospiDmaChIndex;
525 /* Index of Channel used by OSPI DMA Driver. This index will be set by SysCfg according to the DMA driver chosen.
526 * The OSPI driver uses this index to do an \ref OSPI_dmaOpen inside the \ref OSPI_open if the DMA mode is enabled
527 */
528 } OSPI_Params;
529
530
538 typedef struct
539 {
540 int32_t txDllLowWindowStart;
541 int32_t txDllLowWindowEnd;
542 int32_t txDllHighWindowStart;
543 int32_t txDllHighWindowEnd;
544 int32_t rxLowSearchStart;
545 int32_t rxLowSearchEnd;
546 int32_t rxHighSearchStart;
547 int32_t rxHighSearchEnd;
548 int32_t txLowSearchStart;
549 int32_t txLowSearchEnd;
550 int32_t txHighSearchStart;
551 int32_t txHighSearchEnd;
552 int32_t txDLLSearchOffset;
553 uint32_t rxTxDLLSearchStep;
554 uint32_t rdDelayMin;
555 uint32_t rdDelayMax;
556 } OSPI_PhyWindowParams;
557
566 typedef struct
567 {
568 uint32_t phaseDelayElement;
569 uint32_t phyControlMode;
570 uint32_t dllLockMode;
571 OSPI_PhyWindowParams tuningWindowParams;
572 } OSPI_PhyConfiguration;
573
577 typedef struct
578 {
579 uint32_t dataBaseAddr;
581 uint32_t moduleId;
583 uint32_t clkId;
585 uint32_t inputClkFreq;
588 /*
589 * Driver configuration
590 */
591 uint32_t intrNum;
593 uint32_t intrEnable;
595 uint8_t intrPriority;
597 uint32_t dmaEnable;
599 uint32_t phyEnable;
601 uint32_t dacEnable;
603 uint32_t frmFmt;
605 uint32_t devDelays[4];
607 uint32_t chipSelect;
609 uint32_t decChipSelect;
611 uint32_t baudRateDiv;
613 uint32_t validateOtp;
615 const OSPI_AddrRegion *dmaRestrictedRegions;
621 OSPI_DmaHandle ospiDmaHandle;
623 OSPI_DmaChConfig ospiDmaChConfig;
625 OSPI_PhyConfiguration phyConfiguration;
627 } OSPILLD_InitObject, *OSPILLD_InitHandle;
628
632 typedef struct
633 {
634 /*
635 * SOC configuration
636 */
637 uint32_t baseAddr;
640 /*
641 * User params
642 */
643 const OSPI_Params *openParams;
644 uint32_t transferMode;
646 uint32_t protocol;
653 uint32_t rdDummyCycles;
655 uint32_t cmdDummyCycles;
657 uint32_t rdDataCapDelay;
659 uint32_t phyRdDataCapDelay;
661 uint32_t numAddrBytes;
666 uint32_t cmdExtType;
669 uint32_t phyEnableSuccess;
672 OSPI_Transaction *currTrans;
675 OSPI_Transaction trans;
678 OSPILLD_InitHandle hOspiInit;
681 /*
682 * State variables
683 */
684 uint32_t state;
685
686 void* args;
689 OSPI_Clock_getTicks Clock_getTicks;
691 OSPI_Clock_usecToTicks Clock_usecToTicks;
693 OSPI_Clock_usec Clock_usleep;
694
695 OSPI_lld_InterruptCallback interruptCallback;
696 /* Interrupt Callback to be registered by the application*/
697 OSPI_lld_dma_readCompleteCallback readCompleteCallback;
698 /* DMA Readcallback function*/
699
700 } OSPILLD_Object, *OSPILLD_Handle;
701
702 /* ========================================================================== */
703 /* Internal/Private Structure Declarations */
704 /* ========================================================================== */
705
706 /* ========================================================================== */
707 /* Function Declarations */
708 /* ========================================================================== */
709
723 int32_t OSPI_lld_init(OSPILLD_Handle hOspi);
724
738 int32_t OSPI_lld_initDma(OSPILLD_Handle hOspi);
739
749 int32_t OSPI_lld_deInit(OSPILLD_Handle hOspi);
750
760 int32_t OSPI_lld_deInitDma(OSPILLD_Handle hOspi);
761
788 int32_t OSPI_lld_readDirect(OSPILLD_Handle handle, OSPI_Transaction *trans);
789
801 int32_t OSPI_lld_readDirectDma(OSPILLD_Handle handle, OSPI_Transaction *trans);
802
814 int32_t OSPI_lld_readIndirect(OSPILLD_Handle handle, OSPI_Transaction *trans);
815
827 int32_t OSPI_lld_writeDirect(OSPILLD_Handle handle, OSPI_Transaction *trans);
828
840 int32_t OSPI_lld_writeIndirect(OSPILLD_Handle handle, OSPI_Transaction *trans);
854 int32_t OSPI_lld_readCmd(OSPILLD_Handle handle, OSPI_ReadCmdParams *rdParams);
855
867 int32_t OSPI_lld_writeCmd(OSPILLD_Handle handle, OSPI_WriteCmdParams *wrParams);
868
886 void OSPI_lld_isr(void* args);
887
893 void OSPI_lld_readCompleteCallback(void* args);
894
913 void OSPI_lld_Transaction_init(OSPI_Transaction *trans);
914
922 void OSPI_lld_readCmdParams_init(OSPI_ReadCmdParams *rdParams);
923
933 void OSPI_lld_writeCmdParams_init(OSPI_WriteCmdParams *wrParams);
934
953 uint32_t OSPI_lld_getInputClk(OSPILLD_Handle handle);
954
964 uint32_t OSPI_lld_isDacEnable(OSPILLD_Handle handle);
965
975 uint32_t OSPI_lld_isDmaEnable(OSPILLD_Handle handle);
976
986 uint32_t OSPI_lld_isIntrEnable(OSPILLD_Handle handle);
987
997 uint32_t OSPI_lld_isPhyEnable(OSPILLD_Handle handle);
998
1008 int32_t OSPI_lld_enableDDR(OSPILLD_Handle handle);
1009
1019 int32_t OSPI_lld_enableSDR(OSPILLD_Handle handle);
1020
1030 int32_t OSPI_lld_enableDdrRdCmds(OSPILLD_Handle handle);
1031
1042 int32_t OSPI_lld_setRdDataCaptureDelay(OSPILLD_Handle handle, uint32_t rdDataCapDelay);
1043
1053 void OSPI_lld_setNumAddrBytes(OSPILLD_Handle handle, uint32_t numAddrBytes);
1054
1065 void OSPI_lld_setDeviceSize(OSPILLD_Handle handle, uint32_t pageSize, uint32_t blkSize);
1066
1076 void OSPI_lld_setCmdDummyCycles(OSPILLD_Handle handle, uint32_t cmdDummyCycles);
1077
1087 void OSPI_lld_setReadDummyCycles(OSPILLD_Handle handle, uint32_t dummyCycles);
1088
1098 void OSPI_lld_setWriteDummyCycles(OSPILLD_Handle handle, uint32_t dummyCycles);
1099
1109 void OSPI_lld_setPhyEnableSuccess(OSPILLD_Handle handle, uint32_t success);
1110
1120 void OSPI_lld_setModeBits(OSPILLD_Handle handle, uint32_t modeBits);
1121
1130 void OSPI_lld_enableModeBitsCmd(OSPILLD_Handle handle);
1131
1140 void OSPI_lld_enableModeBitsRead(OSPILLD_Handle handle);
1141
1151 uint32_t OSPI_lld_getPhyEnableSuccess(OSPILLD_Handle handle);
1152
1164 uint32_t OSPI_lld_getProtocol(OSPILLD_Handle handle);
1165
1176 void OSPI_lld_setProtocol(OSPILLD_Handle handle, uint32_t protocol);
1177
1186 void OSPI_lld_setDualOpCodeMode(OSPILLD_Handle handle);
1187
1196 void OSPI_lld_clearDualOpCodeMode(OSPILLD_Handle handle);
1197
1208 void OSPI_lld_setXferOpCodes(OSPILLD_Handle handle, uint8_t readCmd, uint8_t pageProgCmd);
1209
1219 void OSPI_lld_setCmdExtType(OSPILLD_Handle handle, uint32_t cmdExtType);
1220
1230 int32_t OSPI_lld_enableDacMode(OSPILLD_Handle handle);
1231
1241 int32_t OSPI_lld_disableDacMode(OSPILLD_Handle handle);
1242
1252 uint32_t OSPI_lld_getFlashDataBaseAddr(OSPILLD_Handle handle);
1253
1276 int32_t OSPI_lld_phyTuneDDR(OSPILLD_Handle handle, uint32_t flashOffset);
1277
1289 int32_t OSPI_lld_phyTuneSDR(OSPILLD_Handle handle, uint32_t flashOffset);
1290
1304 int32_t OSPI_lld_phyTuneGrapher(OSPILLD_Handle handle, uint32_t flashOffset, uint8_t arrays[5][128][128]);
1305
1313 void OSPI_lld_phyGetTuningData(uint32_t *tuningData, uint32_t *tuningDataSize);
1314
1324 int32_t OSPI_lld_phyReadAttackVector(OSPILLD_Handle handle, uint32_t offset);
1325
1335 int32_t OSPI_lld_enablePhy(OSPILLD_Handle handle);
1336
1346 int32_t OSPI_lld_disablePhy(OSPILLD_Handle handle);
1347
1357 int32_t OSPI_lld_enablePhyPipeline(OSPILLD_Handle handle);
1358
1368 int32_t OSPI_lld_disablePhyPipeline(OSPILLD_Handle handle);
1369
1391 int32_t OSPI_lld_norFlashInit1s1s1s(OSPILLD_Handle handle);
1392
1405 void OSPI_lld_norFlashSetCmds(uint8_t rdCmd, uint8_t wrCmd, uint8_t eraseCmd);
1406
1407
1419 int32_t OSPI_lld_norFlashReadId(OSPILLD_Handle handle, uint32_t *manufacturerId, uint32_t *deviceId);
1420
1433 int32_t OSPI_lld_norFlashWrite(OSPILLD_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len);
1434
1447 int32_t OSPI_lld_norFlashRead(OSPILLD_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len);
1448
1461 int32_t OSPI_lld_norFlashReadIndirect(OSPILLD_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len);
1462
1475 int32_t OSPI_lld_norFlashReadSfdp(OSPILLD_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len);
1476
1487 int32_t OSPI_lld_norFlashErase(OSPILLD_Handle handle, uint32_t address);
1488
1499 int32_t OSPI_lld_configResetPin(OSPILLD_Handle handle, uint32_t config);
1500
1511 int32_t OSPI_lld_configBaudrate(OSPILLD_Handle handle, uint32_t baud);
1512
1523 int32_t OSPI_lld_readBaudRateDivFromReg(OSPILLD_Handle handle, uint32_t *baudDiv);
1524
1535 int32_t OSPI_lld_getBaudRateDivFromObj(OSPILLD_Handle handle, uint32_t *baudDiv);
1536
1547 int32_t OSPI_lld_setResetPinStatus(OSPILLD_Handle hOspi, uint32_t pinStatus);
1548
1558 int32_t OSPI_dmaOpen(OSPILLD_Handle hOspi);
1559
1569 int32_t OSPI_dmaClose(OSPILLD_Handle handle);
1570
1584 int32_t OSPI_dmaCopy(OSPILLD_Handle handle, void* dst, void* src, uint32_t length,uint32_t timeout);
1585
1595 int32_t OSPI_isDmaInterruptEnabled(OSPILLD_Handle handle);
1596
1608 int32_t OSPI_lld_phyValidateTuningPoint(OSPILLD_Handle hOspi, uint32_t flashOffset);
1609
1620 uint32_t OSPI_lld_isValidateOtpEnable(OSPILLD_Handle hOspi);
1621
1633 int32_t OSPI_lld_setFrequency(OSPILLD_Handle hOspi, uint64_t inputClkFreq);
1634
1647 int32_t OSPI_lld_setDelays(OSPILLD_Handle hOspi, uint32_t inputClkFreq);
1648
1661 int32_t OSPI_lld_setBaudRateDiv(OSPILLD_Handle hOspi, uint32_t baudRateDiv);
1662
1672 int32_t OSPI_lld_disableDdrRdCmds(OSPILLD_Handle hOspi);
1673
1686 int32_t OSPI_lld_set1sProtocol(OSPILLD_Handle hOspi);
1687
1690 #ifdef __cplusplus
1691 }
1692 #endif
1693
1694 #endif /* #ifndef OSPI_LLD_H_ */
1695
OSPI_lld_disableDacMode
int32_t OSPI_lld_disableDacMode(OSPILLD_Handle handle)
This function disables the Direct Access Mode.
OSPI_dmaOpen
int32_t OSPI_dmaOpen(OSPILLD_Handle hOspi)
API to open an OSPI DMA channel.
OSPI_lld_setNumAddrBytes
void OSPI_lld_setNumAddrBytes(OSPILLD_Handle handle, uint32_t numAddrBytes)
This function set the number of bytes used to send address while reading or writing to flash memory.
OSPI_WriteCmdParams::writeTimeout
uint32_t writeTimeout
Definition: ospi_lld.h:470
OSPI_lld_disablePhyPipeline
int32_t OSPI_lld_disablePhyPipeline(OSPILLD_Handle handle)
This function disables the PHY Pipeline.
OSPI_AddrRegion::regionSize
uint32_t regionSize
Definition: ospi_lld.h:507
OSPILLD_InitObject::moduleId
uint32_t moduleId
Definition: ospi_lld.h:581
args
void * args
Definition: hsmclient_msg.h:4
OSPI_lld_enablePhyPipeline
int32_t OSPI_lld_enablePhyPipeline(OSPILLD_Handle handle)
This function enables the PHY Pipeline.
OSPI_ReadCmdParams::rxDataLen
uint16_t rxDataLen
Definition: ospi_lld.h:489
OSPI_lld_norFlashReadId
int32_t OSPI_lld_norFlashReadId(OSPILLD_Handle handle, uint32_t *manufacturerId, uint32_t *deviceId)
This function tries to read the JEDEC ID from the NOR flash connected to the OSPI peripheral.
OSPI_PhyWindowParams::txDllLowWindowEnd
int32_t txDllLowWindowEnd
Definition: ospi_lld.h:541
OSPI_Transaction::status
uint32_t status
Definition: ospi_lld.h:443
OSPI_lld_setCmdExtType
void OSPI_lld_setCmdExtType(OSPILLD_Handle handle, uint32_t cmdExtType)
This function sets the type of command extension used in dual byte opcode mode.
OSPI_lld_isIntrEnable
uint32_t OSPI_lld_isIntrEnable(OSPILLD_Handle handle)
This function checks if interrupts are enabled.
OSPI_Clock_usecToTicks
uint32_t(* OSPI_Clock_usecToTicks)(uint64_t usecs)
The definition of a micro seconds to ticks function used by the QSPI driver to get ticks from microse...
Definition: ospi_lld.h:398
OSPILLD_InitHandle
struct OSPILLD_InitObject * OSPILLD_InitHandle
ospi_lld_dma.h
OSPI LLD DMA header file.
OSPILLD_Object::phyEnableSuccess
uint32_t phyEnableSuccess
Definition: ospi_lld.h:669
OSPI_lld_norFlashInit1s1s1s
int32_t OSPI_lld_norFlashInit1s1s1s(OSPILLD_Handle handle)
This function initializes the NOR flash to work in 1-1-1 mode.
OSPI_ReadCmdParams::numAddrBytes
uint8_t numAddrBytes
Definition: ospi_lld.h:483
OSPI_PhyWindowParams::txDllLowWindowStart
int32_t txDllLowWindowStart
Definition: ospi_lld.h:540
OSPI_ReadCmdParams
OSPI Instance Read Command Structure.
Definition: ospi_lld.h:477
OSPI_lld_configResetPin
int32_t OSPI_lld_configResetPin(OSPILLD_Handle handle, uint32_t config)
This function configures reset functionality.
OSPILLD_InitObject::intrNum
uint32_t intrNum
Definition: ospi_lld.h:591
OSPI_PhyConfiguration::tuningWindowParams
OSPI_PhyWindowParams tuningWindowParams
Definition: ospi_lld.h:571
OSPI_WriteCmdParams
OSPI Instance Write Command Structure.
Definition: ospi_lld.h:458
OSPI_lld_deInitDma
int32_t OSPI_lld_deInitDma(OSPILLD_Handle hOspi)
Function to close a OSPI peripheral specified by the OSPI handle in DMA mode.
OSPI_lld_isr
void OSPI_lld_isr(void *args)
QSPI ISR for Read and Write Functionality.
OSPI_Transaction::transferTimeout
uint32_t transferTimeout
Definition: ospi_lld.h:449
OSPILLD_Object::currTrans
OSPI_Transaction * currTrans
Definition: ospi_lld.h:672
OSPI_Transaction
Data structure used with OSPI_Transfers - OSPI_lld_readDirect, OSPI_lld_writeDirect,...
Definition: ospi_lld.h:436
OSPILLD_Object::transferMode
uint32_t transferMode
Definition: ospi_lld.h:644
OSPILLD_Object::cmdDummyCycles
uint32_t cmdDummyCycles
Definition: ospi_lld.h:655
OSPILLD_InitObject::inputClkFreq
uint32_t inputClkFreq
Definition: ospi_lld.h:585
OSPI_WriteCmdParams::cmdAddr
uint32_t cmdAddr
Definition: ospi_lld.h:461
OSPI_lld_isPhyEnable
uint32_t OSPI_lld_isPhyEnable(OSPILLD_Handle handle)
This function checks if the OSPI PHY controller is enabled.
OSPILLD_Object::interruptCallback
OSPI_lld_InterruptCallback interruptCallback
Definition: ospi_lld.h:695
OSPI_lld_norFlashWrite
int32_t OSPI_lld_norFlashWrite(OSPILLD_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len)
This function writes data to the flash at a specified offset.
OSPI_lld_norFlashSetCmds
void OSPI_lld_norFlashSetCmds(uint8_t rdCmd, uint8_t wrCmd, uint8_t eraseCmd)
This function sets up internal bookkeeping variables for read, write and erase commands....
OSPI_lld_readCmd
int32_t OSPI_lld_readCmd(OSPILLD_Handle handle, OSPI_ReadCmdParams *rdParams)
Function to send specific commands and receive related data from flash.
OSPI_dmaCopy
int32_t OSPI_dmaCopy(OSPILLD_Handle handle, void *dst, void *src, uint32_t length, uint32_t timeout)
API to do a DMA Copy using appropriate DMA Channel opened.
OSPILLD_Object::hOspiInit
OSPILLD_InitHandle hOspiInit
Definition: ospi_lld.h:678
OSPI_PhyConfiguration
OSPI PHY Configuration.
Definition: ospi_lld.h:567
OSPI_lld_dma_readCompleteCallback
void(* OSPI_lld_dma_readCompleteCallback)(void *args)
The definition of a dma read completion callback function used by the QSPI driver.
Definition: ospi_lld.h:423
OSPILLD_InitObject::phyConfiguration
OSPI_PhyConfiguration phyConfiguration
Definition: ospi_lld.h:625
OSPI_PhyWindowParams::rxLowSearchEnd
int32_t rxLowSearchEnd
Definition: ospi_lld.h:545
OSPILLD_Object::numAddrBytes
uint32_t numAddrBytes
Definition: ospi_lld.h:661
OSPI_dmaClose
int32_t OSPI_dmaClose(OSPILLD_Handle handle)
API to close an OSPI DMA channel.
OSPI_PhyWindowParams::rxHighSearchStart
int32_t rxHighSearchStart
Definition: ospi_lld.h:546
OSPI_lld_setCmdDummyCycles
void OSPI_lld_setCmdDummyCycles(OSPILLD_Handle handle, uint32_t cmdDummyCycles)
This function sets appropriate dummy cycles to be used while sending STIG commands to flash.
OSPI_ReadCmdParams::cmdAddr
uint32_t cmdAddr
Definition: ospi_lld.h:480
OSPI_lld_Transaction_init
void OSPI_lld_Transaction_init(OSPI_Transaction *trans)
Function to initialize the OSPI_Transaction structure.
OSPILLD_Object::Clock_usecToTicks
OSPI_Clock_usecToTicks Clock_usecToTicks
Definition: ospi_lld.h:691
OSPI_lld_init
int32_t OSPI_lld_init(OSPILLD_Handle hOspi)
This function opens a given OSPI peripheral.
OSPI_Transaction::count
uint32_t count
Definition: ospi_lld.h:437
OSPILLD_Object::cmdExtType
uint32_t cmdExtType
Definition: ospi_lld.h:666
OSPI_lld_phyTuneDDR
int32_t OSPI_lld_phyTuneDDR(OSPILLD_Handle handle, uint32_t flashOffset)
This function tunes the OSPI PHY for DDR mode to set optimal PHY parameters.
OSPI_lld_initDma
int32_t OSPI_lld_initDma(OSPILLD_Handle hOspi)
This function opens a given OSPI peripheral in DMA mode.
OSPI_lld_isDacEnable
uint32_t OSPI_lld_isDacEnable(OSPILLD_Handle handle)
This function checks if the Direct Access Controller is enabled.
OSPI_lld_writeCmd
int32_t OSPI_lld_writeCmd(OSPILLD_Handle handle, OSPI_WriteCmdParams *wrParams)
Function to send specific commands and related data to flash.
OSPILLD_InitObject::dmaEnable
uint32_t dmaEnable
Definition: ospi_lld.h:597
OSPI_PhyConfiguration::dllLockMode
uint32_t dllLockMode
Definition: ospi_lld.h:570
OSPI_Params
OSPI Parameters.
Definition: ospi_lld.h:523
OSPI_lld_isValidateOtpEnable
uint32_t OSPI_lld_isValidateOtpEnable(OSPILLD_Handle hOspi)
Checks if OTP validation is enabled for the OSPI controller.
OSPILLD_InitObject::dacEnable
uint32_t dacEnable
Definition: ospi_lld.h:601
OSPI_PhyWindowParams::txDLLSearchOffset
int32_t txDLLSearchOffset
Definition: ospi_lld.h:552
OSPI_PhyWindowParams::txHighSearchStart
int32_t txHighSearchStart
Definition: ospi_lld.h:550
OSPI_lld_writeIndirect
int32_t OSPI_lld_writeIndirect(OSPILLD_Handle handle, OSPI_Transaction *trans)
Function to perform indirect writes to the flash using INDAC controller.
OSPI_Clock_getTicks
uint32_t(* OSPI_Clock_getTicks)(void)
The definition of a get System Tick function used by the QSPI driver to keep track of time.
Definition: ospi_lld.h:387
OSPI_PhyWindowParams::txDllHighWindowStart
int32_t txDllHighWindowStart
Definition: ospi_lld.h:542
OSPI_WriteCmdParams::txDataLen
uint32_t txDataLen
Definition: ospi_lld.h:468
OSPI_WriteCmdParams::txDataBuf
void * txDataBuf
Definition: ospi_lld.h:466
OSPILLD_InitObject::validateOtp
uint32_t validateOtp
Definition: ospi_lld.h:613
OSPI_lld_phyTuneGrapher
int32_t OSPI_lld_phyTuneGrapher(OSPILLD_Handle handle, uint32_t flashOffset, uint8_t arrays[5][128][128])
This function takes a 4x128x128 array and fills it with TX RX DLL data for graphing purpose.
OSPI_lld_getFlashDataBaseAddr
uint32_t OSPI_lld_getFlashDataBaseAddr(OSPILLD_Handle handle)
This function gets the SOC mapped data base address of the flash.
OSPI_lld_setProtocol
void OSPI_lld_setProtocol(OSPILLD_Handle handle, uint32_t protocol)
This function sets the number of transfer lines in the OSPI driver to set the requested protocol.
OSPI_lld_writeDirect
int32_t OSPI_lld_writeDirect(OSPILLD_Handle handle, OSPI_Transaction *trans)
Function to perform direct writes to the flash using DAC controller.
OSPI_lld_enableDDR
int32_t OSPI_lld_enableDDR(OSPILLD_Handle handle)
This function enables the Dual Data Rate (DDR)
OSPI_lld_setXferOpCodes
void OSPI_lld_setXferOpCodes(OSPILLD_Handle handle, uint8_t readCmd, uint8_t pageProgCmd)
This function sets the opcodes for reading and page programming the flash.
OSPI_lld_clearDualOpCodeMode
void OSPI_lld_clearDualOpCodeMode(OSPILLD_Handle handle)
This function sets OSPI controller to not use dual byte opcodes.
OSPI_PhyWindowParams::rxHighSearchEnd
int32_t rxHighSearchEnd
Definition: ospi_lld.h:547
OSPI_lld_readCompleteCallback
void OSPI_lld_readCompleteCallback(void *args)
QSPI Read complete callback for DMA mode.
OSPI_lld_enableDdrRdCmds
int32_t OSPI_lld_enableDdrRdCmds(OSPILLD_Handle handle)
This function sets DDR bit in INSTR_RD register for RD commands.
OSPILLD_Object::rdDataCapDelay
uint32_t rdDataCapDelay
Definition: ospi_lld.h:657
OSPI_PhyWindowParams::txDllHighWindowEnd
int32_t txDllHighWindowEnd
Definition: ospi_lld.h:543
OSPILLD_Object
OSPI driver object.
Definition: ospi_lld.h:633
OSPI_lld_norFlashErase
int32_t OSPI_lld_norFlashErase(OSPILLD_Handle handle, uint32_t address)
This function erases 1 block of data starting from a provided address.
OSPILLD_Object::protocol
uint32_t protocol
Definition: ospi_lld.h:646
OSPI_lld_setFrequency
int32_t OSPI_lld_setFrequency(OSPILLD_Handle hOspi, uint64_t inputClkFreq)
Sets the operating frequency for the OSPI peripheral.
OSPI_lld_readIndirect
int32_t OSPI_lld_readIndirect(OSPILLD_Handle handle, OSPI_Transaction *trans)
Function to perform indirect reads from the flash using INDAC controller.
OSPI_PhyWindowParams
OSPI PHY Tuning Window Parameters.
Definition: ospi_lld.h:539
OSPI_ReadCmdParams::rxDataBuf
void * rxDataBuf
Definition: ospi_lld.h:487
OSPILLD_InitObject::phyEnable
uint32_t phyEnable
Definition: ospi_lld.h:599
OSPI_WriteCmdParams::cmd
uint8_t cmd
Definition: ospi_lld.h:459
OSPI_PhyWindowParams::rxLowSearchStart
int32_t rxLowSearchStart
Definition: ospi_lld.h:544
OSPILLD_InitObject::ospiDmaHandle
OSPI_DmaHandle ospiDmaHandle
Definition: ospi_lld.h:621
OSPI_lld_configBaudrate
int32_t OSPI_lld_configBaudrate(OSPILLD_Handle handle, uint32_t baud)
Configures baud divider.
OSPI_lld_getInputClk
uint32_t OSPI_lld_getInputClk(OSPILLD_Handle handle)
This function returns the input clk frequency OSPI was programmed at.
OSPI_lld_enablePhy
int32_t OSPI_lld_enablePhy(OSPILLD_Handle handle)
This function enables the PHY.
OSPILLD_Object::Clock_getTicks
OSPI_Clock_getTicks Clock_getTicks
Definition: ospi_lld.h:689
OSPI_lld_disableDdrRdCmds
int32_t OSPI_lld_disableDdrRdCmds(OSPILLD_Handle hOspi)
This function resets DDR bit in INSTR_RD register for RD commands.
OSPI_Params::ospiDmaChIndex
int32_t ospiDmaChIndex
Definition: ospi_lld.h:524
OSPI_lld_enableSDR
int32_t OSPI_lld_enableSDR(OSPILLD_Handle handle)
This function enables the Single Data Rate (SDR)
OSPI_lld_setDelays
int32_t OSPI_lld_setDelays(OSPILLD_Handle hOspi, uint32_t inputClkFreq)
Sets timing delays for the OSPI interface based on input clock frequency.
OSPI_Transaction::buf
void * buf
Definition: ospi_lld.h:439
OSPI_lld_phyReadAttackVector
int32_t OSPI_lld_phyReadAttackVector(OSPILLD_Handle handle, uint32_t offset)
This function checks if the attack vector, or the data used for tuning the PHY is present at an offse...
OSPILLD_InitObject::chipSelect
uint32_t chipSelect
Definition: ospi_lld.h:607
OSPILLD_Object::openParams
const OSPI_Params * openParams
Definition: ospi_lld.h:643
OSPI_lld_phyValidateTuningPoint
int32_t OSPI_lld_phyValidateTuningPoint(OSPILLD_Handle hOspi, uint32_t flashOffset)
Validates a tuning point for the OSPI physical interface.
OSPILLD_InitObject::dmaRestrictedRegions
const OSPI_AddrRegion * dmaRestrictedRegions
Definition: ospi_lld.h:615
OSPILLD_Object::state
uint32_t state
Definition: ospi_lld.h:684
OSPI_PhyWindowParams::rdDelayMax
uint32_t rdDelayMax
Definition: ospi_lld.h:555
OSPI_AddrRegion
OSPI Address Region.
Definition: ospi_lld.h:504
OSPI_PhyWindowParams::txHighSearchEnd
int32_t txHighSearchEnd
Definition: ospi_lld.h:551
OSPILLD_InitObject::decChipSelect
uint32_t decChipSelect
Definition: ospi_lld.h:609
OSPI_lld_setWriteDummyCycles
void OSPI_lld_setWriteDummyCycles(OSPILLD_Handle handle, uint32_t dummyCycles)
This function sets appropriate dummy cycles for flash write.
OSPI_lld_set1sProtocol
int32_t OSPI_lld_set1sProtocol(OSPILLD_Handle hOspi)
Resets the OSPI controller to operate in 1S-1S-1S mode.
OSPI_lld_disablePhy
int32_t OSPI_lld_disablePhy(OSPILLD_Handle handle)
This function disables the PHY.
OSPI_lld_norFlashReadIndirect
int32_t OSPI_lld_norFlashReadIndirect(OSPILLD_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len)
This function reads data from the flash from a specified offset in INDAC mode.
OSPI_PhyWindowParams::txLowSearchStart
int32_t txLowSearchStart
Definition: ospi_lld.h:548
OSPILLD_Object::baseAddr
uint32_t baseAddr
Definition: ospi_lld.h:637
OSPI_lld_getPhyEnableSuccess
uint32_t OSPI_lld_getPhyEnableSuccess(OSPILLD_Handle handle)
This function fetches the phyEnableSuccess field in OSPILLD_Object.
OSPI_WriteCmdParams::numAddrBytes
uint8_t numAddrBytes
Definition: ospi_lld.h:464
OSPILLD_Object::rdDummyCycles
uint32_t rdDummyCycles
Definition: ospi_lld.h:653
OSPILLD_Object::readCompleteCallback
OSPI_lld_dma_readCompleteCallback readCompleteCallback
Definition: ospi_lld.h:697
OSPI_lld_setReadDummyCycles
void OSPI_lld_setReadDummyCycles(OSPILLD_Handle handle, uint32_t dummyCycles)
This function sets appropriate dummy cycles for flash read.
OSPI_lld_norFlashRead
int32_t OSPI_lld_norFlashRead(OSPILLD_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len)
This function reads data from the flash from a specified offset in DAC mode.
OSPI_lld_readBaudRateDivFromReg
int32_t OSPI_lld_readBaudRateDivFromReg(OSPILLD_Handle handle, uint32_t *baudDiv)
Return value of baudrate that is programmed in IP register.
OSPI_PhyConfiguration::phyControlMode
uint32_t phyControlMode
Definition: ospi_lld.h:569
OSPI_lld_phyGetTuningData
void OSPI_lld_phyGetTuningData(uint32_t *tuningData, uint32_t *tuningDataSize)
This function returns the address to the attack vector buf required for tuning the PHY.
OSPI_lld_deInit
int32_t OSPI_lld_deInit(OSPILLD_Handle hOspi)
Function to close a OSPI peripheral specified by the OSPI handle.
OSPI_lld_isDmaEnable
uint32_t OSPI_lld_isDmaEnable(OSPILLD_Handle handle)
This function checks if DMA is enabled for reads.
OSPILLD_InitObject::baudRateDiv
uint32_t baudRateDiv
Definition: ospi_lld.h:611
OSPI_lld_getBaudRateDivFromObj
int32_t OSPI_lld_getBaudRateDivFromObj(OSPILLD_Handle handle, uint32_t *baudDiv)
Return value of baudrate that is saved in OSPI Object.
OSPILLD_Object::args
void * args
Definition: ospi_lld.h:686
OSPI_lld_setDeviceSize
void OSPI_lld_setDeviceSize(OSPILLD_Handle handle, uint32_t pageSize, uint32_t blkSize)
This function sets the block size and page size of the flash to the device size register in OSPI.
OSPI_lld_setModeBits
void OSPI_lld_setModeBits(OSPILLD_Handle handle, uint32_t modeBits)
This function sets mode bits in the mode bit field of OSPI config register.
OSPI_PhyWindowParams::txLowSearchEnd
int32_t txLowSearchEnd
Definition: ospi_lld.h:549
OSPI_lld_readCmdParams_init
void OSPI_lld_readCmdParams_init(OSPI_ReadCmdParams *rdParams)
Function to initialize the OSPI_ReadCmdParams structure.
OSPI_ReadCmdParams::dummyBits
uint8_t dummyBits
Definition: ospi_lld.h:485
OSPI_Clock_usec
void(* OSPI_Clock_usec)(uint32_t usecs)
Sleep for user specified usecs.
Definition: ospi_lld.h:406
OSPILLD_Object::trans
OSPI_Transaction trans
Definition: ospi_lld.h:675
OSPI_lld_enableDacMode
int32_t OSPI_lld_enableDacMode(OSPILLD_Handle handle)
This function enables the Direct Access Mode.
OSPI_Transaction::addrOffset
uint32_t addrOffset
Definition: ospi_lld.h:441
OSPI_Transaction::state
uint32_t state
Definition: ospi_lld.h:451
OSPI_lld_getProtocol
uint32_t OSPI_lld_getProtocol(OSPILLD_Handle handle)
This function returns the current protocol for which the transfer lines in OSPI driver is configured ...
OSPILLD_Object::phyRdDataCapDelay
uint32_t phyRdDataCapDelay
Definition: ospi_lld.h:659
OSPI_AddrRegion::regionStartAddr
uint32_t regionStartAddr
Definition: ospi_lld.h:505
OSPI_lld_enableModeBitsCmd
void OSPI_lld_enableModeBitsCmd(OSPILLD_Handle handle)
This function enables mode bits transmission while sending CMDs.
OSPI_Transaction::dataLen
uint32_t dataLen
Definition: ospi_lld.h:445
OSPILLD_InitObject::frmFmt
uint32_t frmFmt
Definition: ospi_lld.h:603
OSPI_PhyWindowParams::rdDelayMin
uint32_t rdDelayMin
Definition: ospi_lld.h:554
OSPILLD_InitObject::intrPriority
uint8_t intrPriority
Definition: ospi_lld.h:595
OSPI_lld_setPhyEnableSuccess
void OSPI_lld_setPhyEnableSuccess(OSPILLD_Handle handle, uint32_t success)
This function sets the phyEnableSuccess field in OSPILLD_Object. Has to be called from flash driver.
OSPILLD_InitObject
OSPI driver initialization object.
Definition: ospi_lld.h:578
OSPI_lld_readDirectDma
int32_t OSPI_lld_readDirectDma(OSPILLD_Handle handle, OSPI_Transaction *trans)
Function to perform direct reads from the flash using DAC controller in DMA mode.
OSPILLD_InitObject::clkId
uint32_t clkId
Definition: ospi_lld.h:583
OSPILLD_Handle
struct OSPILLD_Object * OSPILLD_Handle
OSPI_PhyWindowParams::rxTxDLLSearchStep
uint32_t rxTxDLLSearchStep
Definition: ospi_lld.h:553
OSPI_isDmaInterruptEnabled
int32_t OSPI_isDmaInterruptEnabled(OSPILLD_Handle handle)
API to get the DMA Interrupt status.
OSPI_lld_enableModeBitsRead
void OSPI_lld_enableModeBitsRead(OSPILLD_Handle handle)
This function enables mode bits transmission while reading.
OSPI_ReadCmdParams::cmd
uint8_t cmd
Definition: ospi_lld.h:478
OSPI_lld_setResetPinStatus
int32_t OSPI_lld_setResetPinStatus(OSPILLD_Handle hOspi, uint32_t pinStatus)
This function activates the RESET pin feature.
OSPILLD_InitObject::dataBaseAddr
uint32_t dataBaseAddr
Definition: ospi_lld.h:579
OSPI_lld_setBaudRateDiv
int32_t OSPI_lld_setBaudRateDiv(OSPILLD_Handle hOspi, uint32_t baudRateDiv)
Sets the baud rate divider for OSPI communication.
OSPI_lld_InterruptCallback
void(* OSPI_lld_InterruptCallback)(void *args)
The definition of a interrupt completion callback function used by the QSPI driver.
Definition: ospi_lld.h:415
OSPI_lld_readDirect
int32_t OSPI_lld_readDirect(OSPILLD_Handle handle, OSPI_Transaction *trans)
Function to perform direct reads from the flash using DAC controller.
OSPI_lld_setRdDataCaptureDelay
int32_t OSPI_lld_setRdDataCaptureDelay(OSPILLD_Handle handle, uint32_t rdDataCapDelay)
This function sets read data capture cycles in the OSPI controller.
OSPI_PhyConfiguration::phaseDelayElement
uint32_t phaseDelayElement
Definition: ospi_lld.h:568
OSPI_lld_norFlashReadSfdp
int32_t OSPI_lld_norFlashReadSfdp(OSPILLD_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len)
This function reads SFDP table from the flash from a specified offset.
OSPILLD_Object::Clock_usleep
OSPI_Clock_usec Clock_usleep
Definition: ospi_lld.h:693
OSPI_ReadCmdParams::readTimeout
uint32_t readTimeout
Definition: ospi_lld.h:491
OSPI_lld_setDualOpCodeMode
void OSPI_lld_setDualOpCodeMode(OSPILLD_Handle handle)
This function sets OSPI controller to use dual byte opcodes.
OSPI_Transaction::transferOffset
uint32_t transferOffset
Definition: ospi_lld.h:447
OSPILLD_InitObject::intrEnable
uint32_t intrEnable
Definition: ospi_lld.h:593
OSPI_lld_phyTuneSDR
int32_t OSPI_lld_phyTuneSDR(OSPILLD_Handle handle, uint32_t flashOffset)
This function tunes the OSPI PHY for SDR mode to set optimal PHY parameters.
OSPI_lld_writeCmdParams_init
void OSPI_lld_writeCmdParams_init(OSPI_WriteCmdParams *wrParams)
Function to initialize the OSPI_WriteCmdParams structure.
OSPILLD_InitObject::ospiDmaChConfig
OSPI_DmaChConfig ospiDmaChConfig
Definition: ospi_lld.h:623