<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IP DBVersion="V4.0" IPType="peripheral" Name="QUADSPI" Version="quadspi1_v2_0_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>QUADSPI: Quad Serial Peripheral Interface</About>
	
	<!-- ************************General Parameters************************** -->

	<RefParameter Comment="Clock Prescaler" DefaultValue="255" Max="255" Min="0" Name="ClockPrescaler" Type="integer" Group="General Parameters" />

	<RefParameter Comment="Fifo Threshold" DefaultValue="1" Max="16" Min="1" Name="FifoThreshold" Type="integer" Group="General Parameters" />
	
	<RefParameter Comment="Sample Shifting" DefaultValue="QSPI_SAMPLE_SHIFTING_NONE" Name="SampleShifting" Type="list" Group="General Parameters">
		<PossibleValue Comment="No Sample Shifting" Value="QSPI_SAMPLE_SHIFTING_NONE" />
		<PossibleValue Comment="Sample Shifting Half Cycle" Value="QSPI_SAMPLE_SHIFTING_HALFCYCLE" />
	</RefParameter>

	<RefParameter Comment="Flash Size" DefaultValue="1" Max="31" Min="0" Name="FlashSize" Type="integer" Group="General Parameters"/>

	<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="Clock Mode" DefaultValue="QSPI_CLOCK_MODE_0" Name="ClockMode" Type="list" Group="General Parameters">
		<PossibleValue Comment="Low" Value="QSPI_CLOCK_MODE_0" />
		<PossibleValue Comment="High" Value="QSPI_CLOCK_MODE_3" />
	</RefParameter>
	
	<!-- ************************************ RefModes ****************************************** -->
	
	<RefMode Name="Single Bank" HalMode="QUADSPI">
		<ConfigForMode>QSPI_Init</ConfigForMode>

		<!-- General -->
		<Parameter Name="ClockPrescaler" />
		<Parameter Name="FifoThreshold" />
		<Parameter Name="SampleShifting" />
		<Parameter Name="FlashSize" />
		<Parameter Name="ChipSelectHighTime" />
		<Parameter Name="ClockMode" />
		
	</RefMode>
        <RefMode Name="Single Bank 2IOs" HalMode="QUADSPI">
		<ConfigForMode>QSPI_Init</ConfigForMode>

		<!-- General -->
		<Parameter Name="ClockPrescaler" />
		<Parameter Name="FifoThreshold" />
		<Parameter Name="SampleShifting" />
		<Parameter Name="FlashSize" />
		<Parameter Name="ChipSelectHighTime" />
		<Parameter Name="ClockMode" />
		
	</RefMode>
	
	<!-- ************************************* Modes ********************************************* -->
	<ModeLogicOperator Name="OR">
		<Mode Name="Single Bank">
			<ModeLogicOperator Name="XOR">
				<Mode Name="Single Bank 2IOs" UserName="Single/Dual SPI Line">
					<SignalLogicalOp Name="AND">
						<Signal Name="BK1_IO0" />
						<Signal Name="BK1_IO1" />						
						<Signal Name="NCS" />
						<Signal Name="CLK" />
					</SignalLogicalOp>
				</Mode>
                                <Mode Name="Single Bank" UserName="Quad SPI Line">
					<SignalLogicalOp Name="AND">
						<Signal Name="BK1_IO0" />
						<Signal Name="BK1_IO1" />
						<Signal Name="BK1_IO2" />
						<Signal Name="BK1_IO3" />
						<Signal Name="NCS" />
						<Signal Name="CLK" />
					</SignalLogicalOp>
				</Mode>
                        </ModeLogicOperator>
                        <Semaphore>QSPI_Selected</Semaphore>
                </Mode>
        </ModeLogicOperator>

<!--<ModeLogicOperator Name="OR">
        <Mode Name="QuadSPI Mode">
            <ModeLogicOperator Name="XOR">
                <Mode Name="Single/Dual SPI Mode">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="BK1_IO0" />
                        <Signal Name="BK1_IO1" />						
                        <Signal Name="BK1_NCS" />
                        <Signal Name="CLK" />
                    </SignalLogicalOp>
                </Mode>
                <Mode Name="Quad SPI Mode">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="BK1_IO0" />
                        <Signal Name="BK1_IO1" />
                        <Signal Name="BK1_IO2" />
                        <Signal Name="BK1_IO3" />						
                        <Signal Name="BK1_NCS" />
                        <Signal Name="CLK" />
                    </SignalLogicalOp>
                </Mode>
            </ModeLogicOperator>
             </Mode>
</ModeLogicOperator>-->

            <RefSignal IOMode="AlternateFunctionPushPull" Name="BK1_IO0" />
            <RefSignal IOMode="AlternateFunctionPushPull" Name="BK1_IO1" />
            <RefSignal IOMode="AlternateFunctionPushPull" Name="BK1_IO2" />
            <RefSignal IOMode="AlternateFunctionPushPull" Name="BK1_IO3" />
            <RefSignal IOMode="AlternateFunctionPushPull" Name="NCS" />
            <RefSignal IOMode="AlternateFunctionPushPull" Name="CLK" />
	
</IP>