<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IP DBVersion="V4.0" IPType="peripheral" Name="OCTOSPIM" Version="octospi1_v2_1_Cube"
    xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance"
    ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../../../../../../doc/V4/Development/Specifications/db/IP_Modes.xsd"
    xmlns="http://mcd.rou.st.com/modules.php?name=mcu">
	
    <About>OCTOSPI: Octo Serial Peripheral Interface</About>
    <RefParameter Comment="Clock Prescaler" DefaultValue="255" Max="255" Min="1" Name="ClockPrescaler" Type="integer" Group="General Parameters" />

    <RefParameter Comment="Fifo Threshold" DefaultValue="1" Max="32" Min="1" Name="FifoThreshold" Type="integer" Group="General Parameters" />
	
    <RefParameter Comment="Dual Quad mode" DefaultValue="HAL_OSPI_DUALQUAD_DISABLE" Name="DualQuad" Type="list" Group="General Parameters">
        <PossibleValue Comment="Disable" Value="HAL_OSPI_DUALQUAD_DISABLE" />
        <PossibleValue Comment="Enable" Value="HAL_OSPI_DUALQUAD_ENABLE" />
    </RefParameter>
	
    <RefParameter Comment="Memory Type" DefaultValue="HAL_OSPI_MEMTYPE_MICRON" Name="MemoryType" Type="list" Group="General Parameters">
        <PossibleValue Comment="Micron mode" Value="HAL_OSPI_MEMTYPE_MICRON" />
        <PossibleValue Comment="Macronix mode" Value="HAL_OSPI_MEMTYPE_MACRONIX" />
        <PossibleValue Comment="Hyperbus mode" Value="HAL_OSPI_MEMTYPE_HYPERBUS" />
        <PossibleValue Comment="Macronix RAM mode" Value="HAL_OSPI_MEMTYPE_MACRONIX_RAM"/>

    </RefParameter>
	
    <RefParameter Comment="Device Size" DefaultValue="1" Max="32" Min="1" Name="DeviceSize" Type="integer" Group="General Parameters" />
	
    <RefParameter Comment="Sample Shifting" DefaultValue="HAL_OSPI_SAMPLE_SHIFTING_NONE" Name="SampleShifting" Type="list" Group="General Parameters">
        <PossibleValue Comment="No Sample Shifting" Value="HAL_OSPI_SAMPLE_SHIFTING_NONE" />
        <PossibleValue Comment="Sample Shifting Half Cycle" Value="HAL_OSPI_SAMPLE_SHIFTING_HALFCYCLE" />
    </RefParameter>

    <RefParameter Comment="Chip Select High Time" DefaultValue="QSPI_CS_HIGH_TIME_1_CYCLE" Name="ChipSelectHighTime" Type="list" Group="General Parameters">
        <PossibleValue Comment="1 Cycle" Value="QSPI_CS_HIGH_TIME_1_CYCLE" />
        <PossibleValue Comment="2 Cycles" Value="QSPI_CS_HIGH_TIME_2_CYCLE" />
        <PossibleValue Comment="3 Cycles" Value="QSPI_CS_HIGH_TIME_3_CYCLE" />
        <PossibleValue Comment="4 Cycles" Value="QSPI_CS_HIGH_TIME_4_CYCLE" />
        <PossibleValue Comment="5 Cycles" Value="QSPI_CS_HIGH_TIME_5_CYCLE" />
        <PossibleValue Comment="6 Cycles" Value="QSPI_CS_HIGH_TIME_6_CYCLE" />
        <PossibleValue Comment="7 Cycles" Value="QSPI_CS_HIGH_TIME_7_CYCLE" />
        <PossibleValue Comment="8 Cycles" Value="QSPI_CS_HIGH_TIME_8_CYCLE" />
    </RefParameter>
	
    <RefParameter Comment="Free Running Clock" DefaultValue="HAL_OSPI_FREERUNCLK_DISABLE" Name="FreeRunningClock" Type="list" Group="General Parameters">
        <PossibleValue Comment="Disable" Value="HAL_OSPI_FREERUNCLK_DISABLE" />
        <PossibleValue Comment="Enable" Value="HAL_OSPI_FREERUNCLK_ENABLE" />
    </RefParameter>

    <RefParameter Comment="Clock Mode" DefaultValue="HAL_OSPI_CLOCK_MODE_0" Name="ClockMode" Type="list" Group="General Parameters">
        <PossibleValue Comment="Low" Value="HAL_OSPI_CLOCK_MODE_0" />
        <PossibleValue Comment="High" Value="HAL_OSPI_CLOCK_MODE_3" />
    </RefParameter>
	
    <RefParameter Comment="Wrap Size" DefaultValue="HAL_OSPI_WRAP_NOT_SUPPORTED" Name="WrapSize" Type="list" Group="General Parameters">
        <PossibleValue Comment="Not Supported" Value="HAL_OSPI_WRAP_NOT_SUPPORTED" />
        <PossibleValue Comment="16 Bytes" Value="HAL_OSPI_WRAP_16_BYTES" />
        <PossibleValue Comment="32 Bytes" Value="HAL_OSPI_WRAP_32_BYTES" />
        <PossibleValue Comment="64 Bytes" Value="HAL_OSPI_WRAP_64_BYTES" />
        <PossibleValue Comment="128 Bytes" Value="HAL_OSPI_WRAP_128_BYTES" />
    </RefParameter>
	
    <RefParameter Comment="Delay Hold Quarter Cycle" DefaultValue="HAL_OSPI_DHQC_DISABLE" Name="DelayHoldQuarterCycle" Type="list" Group="General Parameters">
        <PossibleValue Comment="Disable" Value="HAL_OSPI_DHQC_DISABLE" />
        <PossibleValue Comment="Enable" Value="HAL_OSPI_DHQC_ENABLE" />
    </RefParameter>
	
    <RefParameter Comment="Flash Size" DefaultValue="1" Max="31" Min="0" Name="ChipSelectBoundary" Type="integer" Group="General Parameters"/>
    <!-- ************************Memory Mapped Parameters************************** -->
    <RefParameter Comment="Time Out Activation" DefaultValue="HAL_OSPI_TIMEOUT_COUNTER_DISABLE" Name="TimeOutActivation" Type="list" Group="Memory Mapped Parameters">
        <PossibleValue Comment="Disable" Value="HAL_OSPI_TIMEOUT_COUNTER_DISABLE" />
        <PossibleValue Comment="Enable" Value="HAL_OSPI_TIMEOUT_COUNTER_ENABLE" />
    </RefParameter>
    <RefParameter Comment="Time Out Period" DefaultValue="1" Name="TimeOutPeriod" Max="4294967295" Min="1" Type="integer" Group="Memory Mapped Parameters">
		
    </RefParameter>
    <!-- ************************Status Polling  Parameters************************** -->
    <RefParameter Comment="Match Value" DefaultValue="0"  Max="4294967295" Min="0" Name="Match" Type="integer" Group="Status Polling Parameters">
		
    </RefParameter>
    <RefParameter Comment="Mask Value" DefaultValue="0"  Max="4294967295" Min="0" Name="Mask" Type="integer" Group="Status Polling Parameters">
		
    </RefParameter>
    <RefParameter Comment="MatchMode Parameter" DefaultValue="HAL_OSPI_MATCH_MODE_AND" Name="MatchMode" Type="list" Group="Status Polling Parameters">
        <PossibleValue Comment="Disable" Value="HAL_OSPI_MATCH_MODE_AND" />
        <PossibleValue Comment="Enable" Value="HAL_OSPI_MATCH_MODE_OR" />
    </RefParameter>
    <RefParameter Comment=" Automatic Stop Value" DefaultValue="HAL_OSPI_AUTOMATIC_STOP_DISABLE" Name="AutomaticStop" Type="list" Group="Status Polling Parameters">
        <PossibleValue Comment="Disable" Value="HAL_OSPI_AUTOMATIC_STOP_DISABLE" />
        <PossibleValue Comment="Enable" Value="HAL_OSPI_AUTOMATIC_STOP_ENABLE" />
    </RefParameter>
    <RefParameter Comment="Interval Value" DefaultValue="0" Max="65535" Min="0" Name="Interval" Type="integer" Group="Status Polling Parameters">
		
    </RefParameter>
        
    <!-- ************************indirect Mode  Parameters************************** -->

        
        
        
    <RefMode Name="indirect" HalMode="">
        <ConfigForMode></ConfigForMode>

			
        <Parameter Name="FifoThreshold" />
        <Parameter Name="DualQuad" />
        <Parameter Name="MemoryType" />
        <Parameter Name="DeviceSize" />
        <Parameter Name="ChipSelectHighTime" />
        <Parameter Name="FreeRunningClock" />
        <Parameter Name="ClockMode" />
        <Parameter Name="WrapSize" />
        <Parameter Name="ClockPrescaler" />
        <Parameter Name="SampleShifting" />
        <Parameter Name="DelayHoldQuarterCycle" />
        <Parameter Name="ChipSelectBoundary" />
          
						
    </RefMode>
    <RefMode Name="status-polling" HalMode="">
            <ConfigForMode>OSPI_Init</ConfigForMode>
            <ConfigForMode>Auto_Polling</ConfigForMode>

		
        <Parameter Name="FifoThreshold" />
        <Parameter Name="DualQuad" />
        <Parameter Name="MemoryType" />
        <Parameter Name="DeviceSize" />
        <Parameter Name="ChipSelectHighTime" />
        <Parameter Name="FreeRunningClock" />
        <Parameter Name="ClockMode" />
        <Parameter Name="WrapSize" />
        <Parameter Name="ClockPrescaler"/>
        <Parameter Name="SampleShifting"/>
        <Parameter Name="DelayHoldQuarterCycle"/>
        <Parameter Name="ChipSelectBoundary"/>		
        <Parameter Name="Match" />
        <Parameter Name="Mask" />	
        <Parameter Name="MatchMode"/>	
        <Parameter Name="AutomaticStop"/>	
        <Parameter Name="Interval"/>	
    </RefMode>
    <RefMode Name="memory-mapped" HalMode="">
        <ConfigForMode></ConfigForMode>

        <!-- General -->	
        <Parameter Name="FifoThreshold" />
        <Parameter Name="DualQuad" />
        <Parameter Name="MemoryType" />
        <Parameter Name="DeviceSize" />
        <Parameter Name="ChipSelectHighTime" />
        <Parameter Name="FreeRunningClock" />
        <Parameter Name="ClockMode" />
        <Parameter Name="WrapSize" />
        <Parameter Name="ClockPrescaler" />
        <Parameter Name="SampleShifting" />
        <Parameter Name="DelayHoldQuarterCycle" />
        <Parameter Name="ChipSelectBoundary" />	
        <!-- Memory Mapped Params -->	
        <Parameter Name="TimeOutPeriod" />	
        <Parameter Name="TimeOutActivation" />	
                				
    </RefMode>
    
<ModeLogicOperator  Name="XOR">
            <Mode Name="OCTOSPIM" UserName="Activated">
                
        <ModeLogicOperator Name="XOR">
          <Mode Name="OCTOSPIM_Activate" UserName="Activated"  RemoveCondition="STM32L4">
              <Condition Expression="1=2" Diagnostic=""/>
            <SignalLogicalOp Name="AND">
              <Signal Name="VS_IO" />
               <Signal Name="P1_IO0" />
    <Signal Name="P1_IO1"/>
    <Signal Name="P1_IO2" />
    <Signal Name="P1_IO3"/>
    <Signal Name="P1_IO4"/>
    <Signal Name="P1_IO5" />
    <Signal Name="P1_IO6" />
    <Signal  Name="P1_IO7" />
    <Signal Name="P1_NCS" />
    <Signal  Name="P1_CLK" />
    <Signal  Name="P1_DQS" />
    <Signal Name="P1_NCLK" />
    <Signal Name="P2_IO0" />
    <Signal Name="P2_IO1"/>
    <Signal Name="P2_IO2" />
    <Signal Name="P2_IO3"/>
    <Signal Name="P2_IO4"/>
    <Signal Name="P2_IO5" />
    <Signal Name="P2_IO6" />
    <Signal  Name="P2_IO7" />
    <Signal Name="P2_NCS" />
    <Signal  Name="P2_CLK" />
    <Signal  Name="P2_DQS" />
    <Signal Name="P2_NCLK" />
            </SignalLogicalOp>
          </Mode>
        </ModeLogicOperator>
      </Mode>
                
    </ModeLogicOperator>
 
<!-- <RefSignal Name="VS_P103" Virtual="true"/>
    <RefSignal Name="VS_P174" Virtual="true"/>
    <RefSignal Name="VS_P1NCS" Virtual="true"/>
    <RefSignal Name="VS_P1CLK" Virtual="true"/>
    <RefSignal Name="VS_P1DQS" Virtual="true"/>
    
    <RefSignal Name="VS_P203" Virtual="true"/>
    <RefSignal Name="VS_P274" Virtual="true"/>
    <RefSignal Name="VS_P2NCS" Virtual="true"/>
    <RefSignal Name="VS_P2CLK" Virtual="true"/>
    <RefSignal Name="VS_P2DQS" Virtual="true"/>-->
    <RefSignal Name="VS_IO" Virtual="true"/>
    <RefSignal Name="P1_IO0" />
    <RefSignal Name="P1_IO1"/>
    <RefSignal Name="P1_IO2" />
    <RefSignal Name="P1_IO3"/>
    <RefSignal Name="P1_IO4"/>
    <RefSignal Name="P1_IO5" />
    <RefSignal Name="P1_IO6" />
    <RefSignal  Name="P1_IO7" />
    <RefSignal Name="P1_NCS" />
    <RefSignal  Name="P1_CLK" />
    <RefSignal  Name="P1_DQS" />
    <RefSignal Name="P1_NCLK" />
    <RefSignal Name="P2_IO0" />
    <RefSignal Name="P2_IO1"/>
    <RefSignal Name="P2_IO2" />
    <RefSignal Name="P2_IO3"/>
    <RefSignal Name="P2_IO4"/>
    <RefSignal Name="P2_IO5" />
    <RefSignal Name="P2_IO6" />
    <RefSignal  Name="P2_IO7" />
    <RefSignal Name="P2_NCS" />
    <RefSignal  Name="P2_CLK" />
    <RefSignal  Name="P2_DQS" />
    <RefSignal Name="P2_NCLK" />
    <Semaphore>$IpInstanceUsed_ForRCC</Semaphore>
	
</IP>
