<?xml version="1.0" encoding="UTF-8"?>
<IP xmlns="http://mcd.rou.st.com/modules.php?name=mcu" xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" DBVersion="V4.0" Name="OSPI" Version="STM32Cube_FW_H7_V1.6.0RC3" ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../../../../../../doc/V4/Development/Specifications/db/IP_Configs.xsd">


    <RefConfig Name="OSPI_Init">
        <CallLibMethod Name="HAL_OSPI_Init">
        </CallLibMethod>
        <ImplementCallBack Name="HAL_OSPI_MspInit"/> 
        <ImplementCallBack Name="HAL_OSPI_MspDeInit"/>
    </RefConfig>

    <!--IO Manager Configuration-->
    <RefConfig Name="IOManager_Config">
        <CallLibMethod Name="HAL_OSPIM_Config">
                <MethodArg Name="OSPIM_Cfg_Struct" ParameterName="sOspiManagerCfg"/>
        </CallLibMethod>        
    </RefConfig>
    
    <RefConfig  Name="HyperBus">
        <IFCondition Expression="MemoryType=HAL_OSPI_MEMTYPE_HYPERBUS">          
	<CallLibMethod Name="HAL_OSPI_HyperbusCfg">  
                <MethodArg Name="cfg" ParameterName="sHyperBusCfg"/>
        </CallLibMethod>        
        </IFCondition>
    </RefConfig>
    
    <RefConfig  Name="Auto_Polling">
        <IFCondition Expression="(OperationType = HAL_OSPI_OPTYPE_COMMON_CFG)">
        <CallLibMethod Name="HAL_OSPI_AutoPolling">
                <MethodArg Name="cfg" ParameterName="sAutoPollingCfg"/>
        </CallLibMethod>        
        <CallLibMethod Name="HAL_OSPI_AutoPolling_IT">
                <MethodArg Name="cfg" ParameterName="sAutoPollingCfg"/>
        </CallLibMethod>        
        </IFCondition>	
    </RefConfig>
  
    <!-- <RefConfig  Name="Command_Config">
        <CallLibMethod Name="HAL_OSPI_Command_IT">
        </CallLibMethod>	
    </RefConfig>-->
    
    <RefConfig  Name="Memory_mapped">
        <IFCondition Expression="(OperationType = HAL_OSPI_OPTYPE_READ_CFG) | (OperationType = HAL_OSPI_OPTYPE_WRITE_CFG) | (OperationType = HAL_OSPI_OPTYPE_WRAP_CFG)">          
            <CallLibMethod Name="HAL_OSPI_MemoryMapped">             
                <MethodArg Name="cfg" ParameterName="sMemMappedCfg"/>
            </CallLibMethod>         
        </IFCondition>
    </RefConfig>
    
    <!-- <RefConfig  Name="Indirect_Mode">
        <IFCondition Expression="(OperationType != HAL_OSPI_OPTYPE_READ_CFG) | (OperationType != HAL_OSPI_OPTYPE_WRITE_CFG)  | (OperationType = HAL_OSPI_OPTYPE_WRAP_CFG)">
            <CallLibMethod Name="HAL_OSPI_Transmit"/>       
            <CallLibMethod Name="HAL_OSPI_Receive"/>
        </IFCondition>
    </RefConfig> -->
    
    <RefConfig Name="OSPI_DeInit">
        <CallLibMethod Name="HAL_OSPI_DeInit"/>
    </RefConfig>

    <LibMethod Comment="" Name="HAL_OSPI_Init">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
    </LibMethod>
    
    <LibMethod Comment="" Name="HAL_OSPI_DeInit">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
    </LibMethod>

    <LibMethod Comment="" Name="HAL_OSPI_MspInit">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
    </LibMethod>
    
    <LibMethod Comment="" Name="HAL_OSPI_MspDeInit">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
    </LibMethod>
    
    <LibMethod Comment="" Name="HAL_OSPI_AutoPolling">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
        <Argument AddressOf="true" GenericType="struct" Name="cfg" TypeName="OSPI_AutoPollingTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="Match" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Mask" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="MatchMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AutomaticStop" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Interval" OptimizationCondition="equal"/>
        </Argument>
        <Argument AddressOf="false" GenericType="simple" Name="Timeout" OptimizationCondition="equal"/>
    </LibMethod>

    <LibMethod Comment="" Name="HAL_OSPI_AutoPolling_IT">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
        <Argument AddressOf="true" GenericType="struct" Name="cfg" TypeName="OSPI_AutoPollingTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="Match" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Mask" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="MatchMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AutomaticStop" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Interval" OptimizationCondition="equal"/>
        </Argument>
    </LibMethod>
    
    <LibMethod Comment="" Name="HAL_OSPI_Command">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
        <Argument AddressOf="true" GenericType="struct" Name="cmd" TypeName="HAL_OSPI_RegularCmdTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="OperationType" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="FlashId" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Instruction" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="InstructionMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="InstructionSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="InstructionDtrMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Address" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AddressMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="MatchMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AddressSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AddressDtrMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AlternateBytes" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AlternateBytesMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AlternateBytesSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AlternateBytesDtrMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="DataMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="DataDtrMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="DummyCycles" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="DQSMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="SIOOMode" OptimizationCondition="equal"/>
        </Argument>
        <Argument AddressOf="false" GenericType="simple" Name="Timeout" OptimizationCondition="equal"/>
    </LibMethod>
        
    <LibMethod Comment="" Name="HAL_OSPI_Command_IT">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
        <Argument AddressOf="true" GenericType="struct" Name="cmd" TypeName="HAL_OSPI_RegularCmdTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="OperationType" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="FlashId" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Instruction" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="InstructionMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="InstructionSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="InstructionDtrMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Address" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AddressMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="MatchMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AddressSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AddressDtrMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AlternateBytes" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AlternateBytesMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AlternateBytesSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AlternateBytesDtrMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="DataMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="DataDtrMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="DummyCycles" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="DQSMode" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="SIOOMode" OptimizationCondition="equal"/>
        </Argument>
    </LibMethod>

    <!--Hyperbus -->
    <LibMethod Comment="" Name="HAL_OSPI_HyperbusCmd">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
        <Argument AddressOf="true" GenericType="struct" Name="cmd" TypeName="OSPI_HyperbusCmdTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="AddressSpace" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Address" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AddressSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="NbData" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="DQSMode" OptimizationCondition="equal"/>                       
        </Argument> 
        <Argument AddressOf="false" GenericType="simple" Name="Timeout" OptimizationCondition="equal"/>
    </LibMethod>
    
    <LibMethod Comment="" Name="HAL_OSPI_HyperbusCfg">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
        <Argument AddressOf="true" GenericType="struct" Name="cfg" TypeName="OSPI_HyperbusCfgTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="RWRecoveryTime" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="AccessTime" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="WriteZeroLatency" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="LatencyMode" OptimizationCondition="equal"/>                       
        </Argument>
                <Argument AddressOf="false" GenericType="simple" Name="Timeout" OptimizationCondition="equal"/>
    </LibMethod>

    <!--OSPI indirect mode functions --> 
    <LibMethod Comment="" Name="HAL_OSPI_Transmit">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
        <Argument AddressOf="true" GenericType="simple" Name="pData" OptimizationCondition="equal"/>
        <Argument AddressOf="false" GenericType="simple" Name="Timeout" OptimizationCondition="equal"/>
    </LibMethod>
        
    <LibMethod Comment="" Name="HAL_OSPI_Receive">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
        <Argument AddressOf="true" GenericType="simple" Name="pData" OptimizationCondition="equal"/>
        <Argument AddressOf="false" GenericType="simple" Name="Timeout" OptimizationCondition="equal"/>			                       
    </LibMethod>

    <!-- OSPI memory-mapped mode functions -->
    <LibMethod Comment="" Name="HAL_OSPI_MemoryMapped">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
        <Argument AddressOf="true" GenericType="struct" Name="cfg" TypeName="OSPI_MemoryMappedTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="TimeOutActivation" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="TimeOutPeriod" OptimizationCondition="equal"/>			
        </Argument>
    </LibMethod>

    <!--IO Manager Configuration-->
    <LibMethod Comment="" Name="HAL_OSPIM_Config">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hospi" TypeName="OSPI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="OCTOSPI_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="OSPI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FifoThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DualQuad" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MemoryType" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DeviceSize" OptimizationCondition="equal"/>               
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FreeRunningClock" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="WrapSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockPrescaler" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SampleShifting" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayHoldQuarterCycle" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ChipSelectBoundary" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClkChipSelectHighTime" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DelayBlockBypass" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MaxTran" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Refresh" OptimizationCondition="equal"/>
            </Argument>
        </Argument>
        <Argument AddressOf="true" GenericType="struct" Name="OSPIM_Cfg_Struct" TypeName="OSPIM_CfgTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="ClkPort" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="DQSPort" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="NCSPort" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="IOLowPort" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="IOHighPort" OptimizationCondition="equal"/> 
            <Argument AddressOf="false" GenericType="simple" Name="Req2AckTime" OptimizationCondition="equal"/> 
        </Argument> 
        <Argument AddressOf="false" GenericType="simple" Name="Timeout" OptimizationCondition="equal"/>
    </LibMethod>

    <RefComponent Cclass="HAL" Cgroup="OSPI" Cversion="1.5.0">
        <File Category="header" Name="Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_ospi.h"/>
        <File Category="source" Name="Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_ospi.c"/>
    </RefComponent>
</IP>



