<?xml version="1.0" encoding="utf-8" standalone="no"?>
<IP xmlns="http://mcd.rou.st.com/modules.php?name=mcu" DBVersion="V4.0" Name="DMA" Version="STM32Cube_FW_MP1_V1.1.0" IncludeFile="stm32mp1xx_ll_dma.h"
    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_Configs.xsd">
   
    <RefConfig Name="HAL_DMA_Init">
       <CallLibMethod Name="LL_DMA_SetPeriphRequest">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Stream" ParameterName="Instance"/>
           <MethodArg Name="PeriphRequest" ParameterName="Request"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetDataTransferDirection">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Stream" ParameterName="Instance"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetStreamPriorityLevel">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Stream" ParameterName="Instance"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetMode">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Stream" ParameterName="Instance"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetPeriphIncMode">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Stream" ParameterName="Instance"/>
           <MethodArg Name="IncrementMode" ParameterName="PeriphInc"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetMemoryIncMode">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Stream" ParameterName="Instance"/>
           <MethodArg Name="IncrementMode" ParameterName="MemInc"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetPeriphSize">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Stream" ParameterName="Instance"/>
           <MethodArg Name="Size" ParameterName="PeriphDataAlignment"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetMemorySize">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Stream" ParameterName="Instance"/>
           <MethodArg Name="Size" ParameterName="MemDataAlignment"/>
       </CallLibMethod>
      <IFCondition Expression = "(FIFOMode=DMA_FIFOMODE_DISABLE)">
        <CallLibMethod Name="LL_DMA_DisableFifoMode">
          <MethodArg Name="DMAx" ParameterName="Instance"/>
          <MethodArg Name="Stream" ParameterName="Instance"/>
        </CallLibMethod>
      </IFCondition>       
      <IFCondition Expression = "(FIFOMode=DMA_FIFOMODE_ENABLE)">
        <CallLibMethod Name="LL_DMA_EnableFifoMode">
          <MethodArg Name="DMAx" ParameterName="Instance"/>
          <MethodArg Name="Stream" ParameterName="Instance"/>
        </CallLibMethod>
        <CallLibMethod Name="LL_DMA_SetFIFOThreshold">
          <MethodArg Name="DMAx" ParameterName="Instance"/>
          <MethodArg Name="Stream" ParameterName="Instance"/>
          <MethodArg Name="Threshold" ParameterName="FIFOThreshold"/>
        </CallLibMethod>
        <CallLibMethod Name="LL_DMA_SetMemoryBurstxfer">
          <MethodArg Name="DMAx" ParameterName="Instance"/>
          <MethodArg Name="Stream" ParameterName="Instance"/>
          <MethodArg Name="Mburst" ParameterName="MemBurst"/>
        </CallLibMethod>
        <CallLibMethod Name="LL_DMA_SetPeriphBurstxfer">
          <MethodArg Name="DMAx" ParameterName="Instance"/>
          <MethodArg Name="Stream" ParameterName="Instance"/>
          <MethodArg Name="Pburst" ParameterName="PeriphBurst"/>
        </CallLibMethod>
      </IFCondition>

      <IFCondition Expression = "((Request=DMA_REQUEST_GENERATOR0)|(Request=DMA_REQUEST_GENERATOR1)|(Request=DMA_REQUEST_GENERATOR2)|(Request=DMA_REQUEST_GENERATOR3)|(Request=DMA_REQUEST_GENERATOR4)|(Request=DMA_REQUEST_GENERATOR5)|(Request=DMA_REQUEST_GENERATOR6)|(Request=DMA_REQUEST_GENERATOR7))&amp; !(SignalID=NONE)">
        <CallLibMethod Name="LL_DMAMUX_SetRequestSignalID">
          <MethodArg Name="DMAMUXx" ParameterName="Instance"/>
          <MethodArg Name="RequestGenChannel" ParameterName="Request"/>
          <MethodArg Name="RequestSignalID" ParameterName="SignalID"/>
        </CallLibMethod>
        <CallLibMethod Name="LL_DMAMUX_SetRequestGenPolarity">
          <MethodArg Name="DMAMUXx" ParameterName="Instance"/>
          <MethodArg Name="RequestGenChannel" ParameterName="Request"/>
          <MethodArg Name="Polarity" ParameterName="Polarity"/>
        </CallLibMethod>
        <CallLibMethod Name="LL_DMAMUX_SetGenRequestNb">
          <MethodArg Name="DMAMUXx" ParameterName="Instance"/>
          <MethodArg Name="RequestGenChannel" ParameterName="Request"/>
          <MethodArg Name="RequestNb" ParameterName="RequestNumber"/>
        </CallLibMethod>
      </IFCondition>
      <IFCondition Expression = "!(SyncSignalID=NONE) &amp; (SyncEnable=ENABLE)">
        <CallLibMethod Name="LL_DMAMUX_EnableSync">
          <MethodArg Name="DMAMUXx" ParameterName="Instance"/>
          <MethodArg Name="DmamuxChannel" ParameterName="Instance"/>
        </CallLibMethod>
        <CallLibMethod Name="LL_DMAMUX_SetSyncID">
          <MethodArg Name="DMAMUXx" ParameterName="Instance"/>
          <MethodArg Name="DmamuxChannel" ParameterName="Instance"/>
          <MethodArg Name="SyncSignalID" ParameterName="SyncSignalID"/>
        </CallLibMethod>
        <CallLibMethod Name="LL_DMAMUX_SetSyncPolarity">
          <MethodArg Name="DMAMUXx" ParameterName="Instance"/>
          <MethodArg Name="DmamuxChannel" ParameterName="Instance"/>
          <MethodArg Name="SyncPolarity" ParameterName="SyncPolarity"/>
        </CallLibMethod>
      </IFCondition>
      <IFCondition Expression = "(EventEnable=ENABLE)">
        <CallLibMethod Name="LL_DMAMUX_EnableEventGeneration">
          <MethodArg Name="DMAMUXx" ParameterName="Instance"/>
          <MethodArg Name="DmamuxChannel" ParameterName="Instance"/>
        </CallLibMethod>
      </IFCondition>
      <IFCondition Expression = "((SyncEnable=ENABLE) &amp;!(SyncSignalID=NONE))|(EventEnable=ENABLE)">
        <CallLibMethod Name="LL_DMAMUX_SetSyncRequestNb">
          <MethodArg Name="DMAMUXx" ParameterName="Instance"/>
          <MethodArg Name="DmamuxChannel" ParameterName="Instance"/>
          <MethodArg Name="RequestNb" ParameterName="SyncRequestNumber"/>
        </CallLibMethod>
      </IFCondition>
      

       <!--
       <CallLibMethod Name="templates/ll_dma_configtransfer.ftl" Type="Template"/>
       -->
    </RefConfig>

    <RefComponent Cclass="HAL" Cgroup="DMA" Cversion="1.1.0">
        <File Category="header" Name="Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_ll_dma.h"/>
        <File Category="source" Name="Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_ll_dma.c"/>
    </RefComponent>

 

    <LibMethod Comment="Select Request" Name="LL_DMA_SetPeriphRequest">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="PeriphRequest"/>
    </LibMethod>

    <LibMethod Comment="Set transfer direction" Name="LL_DMA_SetDataTransferDirection">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="Direction"/>
    </LibMethod>

    <LibMethod Comment="Set priority level" Name="LL_DMA_SetStreamPriorityLevel">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="Priority"/>
    </LibMethod>

    <LibMethod Comment="Set DMA mode" Name="LL_DMA_SetMode">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="Mode"/>
    </LibMethod>

    <LibMethod Comment="Set peripheral increment mode" Name="LL_DMA_SetPeriphIncMode">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="IncrementMode"/>
    </LibMethod>

    <LibMethod Comment="Set memory increment mode" Name="LL_DMA_SetMemoryIncMode">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="IncrementMode"/>
    </LibMethod>

    <LibMethod Comment="Set peripheral data width" Name="LL_DMA_SetPeriphSize">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="Size"/>
    </LibMethod>

    <LibMethod Comment="Set memory data width" Name="LL_DMA_SetMemorySize">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="Size"/>
    </LibMethod>

    <LibMethod Comment="Disable FIFO mode" Name="LL_DMA_DisableFifoMode">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
    </LibMethod>

    <LibMethod Comment="Enable FIFO mode" Name="LL_DMA_EnableFifoMode">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
    </LibMethod>

    <LibMethod Comment="Set FIFO threshold" Name="LL_DMA_SetFIFOThreshold">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="Threshold"/>
    </LibMethod>

    <LibMethod Comment="Enable FIFO mode and set FIFO threshold" Name="LL_DMA_ConfigFifo">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="FifoMode"/>
        <Argument AddressOf="false" GenericType="simple" Name="Threshold"/>
    </LibMethod>

    <LibMethod Comment="Set memory burst size" Name="LL_DMA_SetMemoryBurstxfer">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="Mburst"/>
    </LibMethod>

    <LibMethod Comment="Set peripheral burst size" Name="LL_DMA_SetPeriphBurstxfer">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Stream"/>
        <Argument AddressOf="false" GenericType="simple" Name="Pburst"/>
    </LibMethod>


<LibMethod Comment="Set the number of DMA requests that will be authorized after a synchronization event and/or the number of DMA requests needed to generate an event" Name="LL_DMAMUX_SetSyncRequestNb">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAMUXx" TypeName="DMAMUX_Channel_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="DmamuxChannel"/>
        <Argument AddressOf="false" GenericType="simple" Name="RequestNb"/>
    </LibMethod>

    <LibMethod Comment="Set the polarity of the signal on which the DMA request is synchronized" Name="LL_DMAMUX_SetSyncPolarity">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAMUXx" TypeName="DMAMUX_Channel_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="DmamuxChannel"/>
        <Argument AddressOf="false" GenericType="simple" Name="SyncPolarity"/>
    </LibMethod>

    <LibMethod Comment="Enable event generation on specified DMAMUX channel" Name="LL_DMAMUX_EnableEventGeneration">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAMUXx" TypeName="DMAMUX_Channel_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="DmamuxChannel"/>
    </LibMethod>

    <LibMethod Comment="Enable synchronization mode on specified DMAMUX channel" Name="LL_DMAMUX_EnableSync">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAMUXx" TypeName="DMAMUX_Channel_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="DmamuxChannel"/>
    </LibMethod>

    <LibMethod Comment="Set DMAMUX synchronization signal ID on specified DMAMUX channel" Name="LL_DMAMUX_SetSyncID">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAMUXx" TypeName="DMAMUX_Channel_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="DmamuxChannel"/>
        <Argument AddressOf="false" GenericType="simple" Name="SyncSignalID"/>
    </LibMethod>

    <LibMethod Comment="Set DMAMUX request generation signal ID on specified DMAMUX channel" Name="LL_DMAMUX_SetRequestSignalID">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAMUXx" TypeName="DMAMUX_Channel_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="RequestGenChannel"/>
        <Argument AddressOf="false" GenericType="simple" Name="RequestSignalID"/>
    </LibMethod>

    <LibMethod Comment="Set the polarity of the signal on which the DMA request is generated" Name="LL_DMAMUX_SetRequestGenPolarity">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAMUXx" TypeName="DMAMUX_Channel_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="RequestGenChannel"/>
        <Argument AddressOf="false" GenericType="simple" Name="Polarity"/>
    </LibMethod>

    <LibMethod Comment="Set the number of DMA requests that will be authorized after a generation event" Name="LL_DMAMUX_SetGenRequestNb">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAMUXx" TypeName="DMAMUX_Channel_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="RequestGenChannel"/>
        <Argument AddressOf="false" GenericType="simple" Name="RequestNb"/>
    </LibMethod>
 </IP>
