<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IP DBVersion="V4.0" IPType="peripheral" Name="PWR" Version="STM32MP1_pwr_v1_0"
	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>PWR: Power</About>
	
	<RefParameter Comment="Instance" DefaultValue="PWR" Name="Instance" Type="" Visible="false"/>
	
	<RefParameter Comment="PVD detection Level" DefaultValue="PWR_PVDLEVEL_7" Name="PVDLevel" Type="list" Visible="false">
		<Condition Expression="Sem_ExternalAnalogVoltage" Diagnostic="" />
		<PossibleValue Comment="PWR PVD LEVEL 7" Value="PWR_PVDLEVEL_7" />
	</RefParameter>
	<RefParameter Comment="PVD detection Level" DefaultValue="PWR_PVDLEVEL_0" Name="PVDLevel" Type="list">
		<Condition Expression="!Sem_ExternalAnalogVoltage" Diagnostic="" />
		<PossibleValue Comment="PWR PVD LEVEL 0 (1.95 V)" Value="PWR_PVDLEVEL_0" />
		<PossibleValue Comment="PWR PVD LEVEL 1 (2.1 V)" Value="PWR_PVDLEVEL_1" />
		<PossibleValue Comment="PWR PVD LEVEL 2 (2.25 V)" Value="PWR_PVDLEVEL_2" />
		<PossibleValue Comment="PWR PVD LEVEL 3 (2.4 V)" Value="PWR_PVDLEVEL_3" />
		<PossibleValue Comment="PWR PVD LEVEL 4 (2.55 V)" Value="PWR_PVDLEVEL_4" />
		<PossibleValue Comment="PWR PVD LEVEL 5 (2.7 V)" Value="PWR_PVDLEVEL_5" />
		<PossibleValue Comment="PWR PVD LEVEL 6 (2.85 V)" Value="PWR_PVDLEVEL_6" />
	</RefParameter>

	<RefParameter Comment="PWR PVD Mode" DefaultValue="PWR_PVM_MODE_NORMAL" Name="Mode" Type="list">
		<Description>Mode: Specifies the PVD trigger mode.</Description>
		<PossibleValue Comment="basic mode is used" Value="PWR_PVD_MODE_NORMAL" />
		<PossibleValue Comment="External Interrupt Mode with Rising edge trigger detection" Value="PWR_PVD_MODE_IT_RISING" />
		<PossibleValue Comment="External Interrupt Mode with Falling edge trigger detection" Value="PWR_PVD_MODE_IT_FALLING" />
		<PossibleValue Comment="External Interrupt Mode with Rising/Falling edge trigger detection" Value="PWR_PVD_MODE_IT_RISING_FALLING" />
		<!--PossibleValue Comment="Event Mode with Rising edge trigger detection" Value="PWR_PVD_MODE_EVENT_RISING" />
		<PossibleValue Comment="Event Mode with Falling edge trigger detection" Value="PWR_PVD_MODE_EVENT_FALLING" />
		<PossibleValue Comment="Event Mode with Rising/Falling edge trigger detection" Value="PWR_PVD_MODE_EVENT_RISING_FALLING" /-->
	</RefParameter>
	
	<RefMode Name="Mode_PVD_Ext" Group="Programmable_Voltage_Detector_Settings">
		<ConfigForMode>PVDConfig</ConfigForMode>
		<ConfigForMode>PVDEnable</ConfigForMode>
		<Parameter Name="PVDLevel" />
		<Parameter Name="Mode" />
	</RefMode>
	<RefMode Name="Mode_PVD_Int"  Group="Programmable_Voltage_Detector_Settings">
		<ConfigForMode>PVDConfig</ConfigForMode>
		<ConfigForMode>PVDEnable</ConfigForMode>
		<Parameter Name="PVDLevel" />
		<Parameter Name="Mode" />
	</RefMode>
	

	
	<ModeLogicOperator Name="OR">
		<Mode Name="WakeUp0" UserName="Wake-Up 0">
			<ModeLogicOperator Name="OR">
				<Mode Name="WakeUp0">
					<SignalLogicalOp Name="AND">
						<Signal Name="WKUP0" />
					</SignalLogicalOp>
					<Semaphore>WAKEUP_INTERRUPT</Semaphore>
				</Mode>
			</ModeLogicOperator>
		</Mode>
		<Mode Name="WakeUp1" UserName="Wake-Up 1">
			<ModeLogicOperator Name="OR">
				<Mode Name="WakeUp1">
					<SignalLogicalOp Name="AND">
						<Signal Name="WKUP1" />
					</SignalLogicalOp>
					<Semaphore>WAKEUP_INTERRUPT</Semaphore>
				</Mode>
			</ModeLogicOperator>
		</Mode>
		<Mode Name="WakeUp2" UserName="Wake-Up 2">
			<ModeLogicOperator Name="OR">
				<Mode Name="WakeUp2">
					<SignalLogicalOp Name="AND">
						<Signal Name="WKUP2" />
					</SignalLogicalOp>
					<Semaphore>WAKEUP_INTERRUPT</Semaphore>
				</Mode>
			</ModeLogicOperator>
		</Mode>
		<Mode Name="WakeUp3" UserName="Wake-Up 3">
			<ModeLogicOperator Name="OR">
				<Mode Name="WakeUp3">
					<SignalLogicalOp Name="AND">
						<Signal Name="WKUP3" />
					</SignalLogicalOp>
					<Semaphore>WAKEUP_INTERRUPT</Semaphore>
				</Mode>
			</ModeLogicOperator>
		</Mode>
		<Mode Name="WakeUp4" UserName="Wake-Up 4">
			<ModeLogicOperator Name="OR">
				<Mode Name="WakeUp4">
					<SignalLogicalOp Name="AND">
						<Signal Name="WKUP4" />
					</SignalLogicalOp>
					<Semaphore>WAKEUP_INTERRUPT</Semaphore>
				</Mode>
			</ModeLogicOperator>
		</Mode>
		<Mode Name="WakeUp5" UserName="Wake-Up 5">
			<ModeLogicOperator Name="OR">
				<Mode Name="WakeUp5">
					<SignalLogicalOp Name="AND">
						<Signal Name="WKUP5" />
					</SignalLogicalOp>
				</Mode>
			</ModeLogicOperator>
		</Mode>
		<Mode Name="WakeUp6" UserName="Wake-Up 6">
			<ModeLogicOperator Name="OR">
				<Mode Name="WakeUp6">
					<SignalLogicalOp Name="AND">
						<Signal Name="WKUP6" />
					</SignalLogicalOp>
				</Mode>
			</ModeLogicOperator>
		</Mode>
                <Mode Name="PowerVD" UserName="Power Voltage Detector In">
			<ModeLogicOperator Name="XOR">
				<Mode Name="Mode_PVD_Ext"
					UserName="Power Voltage Detector In (External input analog voltage)">
					<SignalLogicalOp Name="AND">
						<Signal Name="PVD_IN" />
					</SignalLogicalOp>
					<Semaphore>Sem_ExternalAnalogVoltage</Semaphore>
					<Semaphore>PVD_INTERRUPT</Semaphore>

				</Mode>
				<Mode Name="Mode_PVD_Int"
					UserName="Power Voltage Detector In (Internal analog voltage)">
					<SignalLogicalOp Name="AND">
						<Signal Name="V_PVD_IN" />
					</SignalLogicalOp>
					<Semaphore>PVD_INTERRUPT</Semaphore>
                                        <ContextCondition Diagnostic="Not available in Device Tree context" Expression="$IpInstance_CUBE"/>
				</Mode>
			</ModeLogicOperator>
		</Mode>
		

	</ModeLogicOperator>

	<!-- RefSignal for System -->
	
	<RefSignal IOMode="System" Name="WKUP0" />
	<RefSignal IOMode="System" Name="WKUP1" />
	<RefSignal IOMode="System" Name="WKUP2" />
	<RefSignal IOMode="System" Name="WKUP3" />
	<RefSignal IOMode="System" Name="WKUP4" />
	<RefSignal IOMode="System" Name="WKUP5" />
	<RefSignal IOMode="System" Name="WKUP6" />
        <RefSignal IOMode="Analog" Name="PVD_IN" />
	<RefSignal IOMode="Analog" Name="V_PVD_IN" Virtual="true" />
	
</IP>
