<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IP DBVersion="V4.0" IPType="peripheral" Name="OCTOSPIM" Version="octospi_v2_1H7AB_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" Visible="false"/>

    <RefParameter Comment="Fifo Threshold" DefaultValue="1" Max="32" Min="1" Name="FifoThreshold" Type="integer" Group="General Parameters" Visible="false"/>
	
    <RefParameter Comment="Dual Quad mode" DefaultValue="HAL_OSPI_DUALQUAD_DISABLE" Name="DualQuad" Type="list" Group="General Parameters" Visible="false">
	<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" Visible="false">
	<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"  Visible="false"/>
	
    <RefParameter Comment="Sample Shifting" DefaultValue="HAL_OSPI_SAMPLE_SHIFTING_NONE" Name="SampleShifting" Type="list" Group="General Parameters" Visible="false">
	<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" Visible="false">
	<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" Visible="false">
	<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" Visible="false">
	<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" Visible="false">
	<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" Visible="false">
	<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" Visible="false"/>
    <!-- ************************Memory Mapped Parameters************************** -->
    <RefParameter Comment="Time Out Activation" DefaultValue="HAL_OSPI_TIMEOUT_COUNTER_DISABLE" Name="TimeOutActivation" Type="list" Group="Memory Mapped Parameters" Visible="false">
	<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" Visible="false">
		
    </RefParameter>
    <!-- ************************Status Polling  Parameters************************** -->
    <RefParameter Comment="Match Value" DefaultValue="0"  Max="4294967295" Min="0" Name="Match" Type="integer" Group="Status Polling Parameters" Visible="false">
		
    </RefParameter>
    <RefParameter Comment="Mask Value" DefaultValue="0"  Max="4294967295" Min="0" Name="Mask" Type="integer" Group="Status Polling Parameters" Visible="false">
		
    </RefParameter>
    <RefParameter Comment="MatchMode Parameter" DefaultValue="HAL_OSPI_MATCH_MODE_AND" Name="MatchMode" Type="list" Group="Status Polling Parameters" Visible="false">
	<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" Visible="false">
	<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" Visible="false">
		
    </RefParameter>
	
    <!-- Operating Mode -->
    <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|STM32H7">
	    <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_NCLK"/>
		<Signal Name="P1_DQS"/>
		<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_NCLK"/>
		<Signal Name="P2_DQS"/>
	    </SignalLogicalOp>
	  </Mode>
	</ModeLogicOperator>
	</Mode>
    </ModeLogicOperator>
 
    <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_NCLK"/>
    <RefSignal Name="P1_DQS"/>

    <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_NCLK"/>
    <RefSignal Name="P2_DQS"/>
    <Semaphore>$IpInstanceUsed_ForRCC</Semaphore>
	
</IP>
