<?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_L5_V0.3.0" IncludeFile="stm32l5xx_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="Channel" ParameterName="Instance"/>
           <MethodArg Name="PeriphRequest" ParameterName="Request"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetDataTransferDirection">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetChannelPriorityLevel">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetMode">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetPeriphIncMode">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
           <MethodArg Name="PeriphOrM2MSrcIncMode" ParameterName="PeriphInc"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetMemoryIncMode">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
           <MethodArg Name="MemoryOrM2MDstIncMode" ParameterName="MemInc"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetPeriphSize">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
           <MethodArg Name="PeriphOrM2MSrcDataSize" ParameterName="PeriphDataAlignment"/>
       </CallLibMethod>
       <CallLibMethod Name="LL_DMA_SetMemorySize">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
           <MethodArg Name="MemoryOrM2MDstDataSize" ParameterName="MemDataAlignment"/>
       </CallLibMethod>
      <IFCondition Expression = "((Request=DMA_REQUEST_GENERATOR0)|(Request=DMA_REQUEST_GENERATOR1)|(Request=DMA_REQUEST_GENERATOR2)|(Request=DMA_REQUEST_GENERATOR3))&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>



      <IFCondition Expression = "Channel_PRIV_NPRIV=DMA_CHANNEL_NPRIV_DISABLE">
      <CallLibMethod Name="LL_DMA_DisableChannelPrivilege">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
      </CallLibMethod> 
      </IFCondition>
      <IFCondition Expression = "Channel_PRIV_NPRIV=DMA_CHANNEL_PRIV_ENABLE">
      <CallLibMethod Name="LL_DMA_EnableChannelPrivilege">
         <MethodArg Name="DMAx" ParameterName="Instance"/>
        <MethodArg Name="Channel" ParameterName="Instance"/>
      </CallLibMethod> 
      </IFCondition>


       <IFCondition Expression ="S_SECURE &amp;(Channel_SEC_NSEC=DMA_CHANNEL_NSEC_DISABLE) &amp; SEM_M33S ">
       <CallLibMethod Name="LL_DMA_DisableChannelSecure">
         <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
      </CallLibMethod> 
       </IFCondition>       
       <IFCondition Expression ="S_SECURE &amp;(Channel_SEC_NSEC=DMA_CHANNEL_SEC_ENABLE) &amp; SEM_M33S ">
       <CallLibMethod Name="LL_DMA_EnableChannelSecure">
         <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
      </CallLibMethod> 
       </IFCondition>

       <IFCondition Expression ="S_SECURE &amp;(Src_SEC_NSEC=DMA_CHANNEL_SRC_NSEC_DISABLE) &amp; SEM_M33S">
       <CallLibMethod Name="LL_DMA_DisableChannelSrcSecure">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
      </CallLibMethod> 
      </IFCondition>
      <IFCondition Expression ="S_SECURE &amp;(Src_SEC_NSEC=DMA_CHANNEL_SRC_SEC_ENABLE) &amp; SEM_M33S">
       <CallLibMethod Name="LL_DMA_EnableChannelSrcSecure">
        <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
      </CallLibMethod> 
      </IFCondition>

      <IFCondition Expression ="S_SECURE &amp;(Dest_SEC_NSEC=DMA_CHANNEL_DEST_SEC_ENABLE) &amp; SEM_M33S">
       <CallLibMethod Name="LL_DMA_EnableChannelDestSecure">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
      </CallLibMethod> 
      </IFCondition>
      <IFCondition Expression ="S_SECURE &amp;(Dest_SEC_NSEC=DMA_CHANNEL_DEST_NSEC_DISABLE) &amp; SEM_M33S">
       <CallLibMethod Name="LL_DMA_DisableChannelDestSecure">
           <MethodArg Name="DMAx" ParameterName="Instance"/>
           <MethodArg Name="Channel" ParameterName="Instance"/>
      </CallLibMethod> 
      </IFCondition>


       <!--
       <CallLibMethod Name="templates/ll_dma_configtransfer.ftl" Type="Template"/>
       -->
    </RefConfig>

    <RefComponent Cclass="HAL" Cgroup="DMA" Cversion="1.9.0">
        <File Category="header" Name="Drivers/STM32L5xx_HAL_Driver/Inc/stm32l5xx_ll_dma.h"/>
        <File Category="header" Name="Drivers/STM32L5xx_HAL_Driver/Inc/stm32l5xx_ll_dmamux.h"/>
        <File Category="source" Name="Drivers/STM32L5xx_HAL_Driver/Src/stm32l5xx_ll_dma.c"/>
    </RefComponent>

    <LibMethod Comment="Set request number" Name="LL_DMA_SetPeriphRequest">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Channel"/>
        <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="Channel"/>
        <Argument AddressOf="false" GenericType="simple" Name="Direction"/>
    </LibMethod>

    <LibMethod Comment="Set priority level" Name="LL_DMA_SetChannelPriorityLevel">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Channel"/>
        <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="Channel"/>
        <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="Channel"/>
        <Argument AddressOf="false" GenericType="simple" Name="PeriphOrM2MSrcIncMode"/>
    </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="Channel"/>
        <Argument AddressOf="false" GenericType="simple" Name="MemoryOrM2MDstIncMode"/>
    </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="Channel"/>
        <Argument AddressOf="false" GenericType="simple" Name="PeriphOrM2MSrcDataSize"/>
    </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="Channel"/>
        <Argument AddressOf="false" GenericType="simple" Name="MemoryOrM2MDstDataSize"/>
    </LibMethod>


    <LibMethod Comment="Set DMA transfer Privilege Attribute" Name="LL_DMA_EnableChannelPrivilege">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Channel"/>
    </LibMethod>
    <LibMethod Comment="Set DMA transfer Privilege Attribute" Name="LL_DMA_DisableChannelPrivilege">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Channel"/>
    </LibMethod>

    <LibMethod Comment="Set DMA transfer Privilege Attribute" Name="LL_DMA_EnableChannelSecure">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Channel"/>
    </LibMethod>
    <LibMethod Comment="Set DMA transfer Privilege Attribute" Name="LL_DMA_DisableChannelSecure">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Channel"/>
    </LibMethod>

    <LibMethod Comment="Set DMA transfer Privilege Attribute" Name="LL_DMA_DisableChannelSrcSecure">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Channel"/>
    </LibMethod>
    <LibMethod Comment="Set DMA transfer Privilege Attribute" Name="LL_DMA_EnableChannelSrcSecure">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Channel"/>
    </LibMethod>

    <LibMethod Comment="Set DMA transfer Privilege Attribute" Name="LL_DMA_EnableChannelDestSecure">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Channel"/>
    </LibMethod>
    <LibMethod Comment="Set DMA transfer Privilege Attribute" Name="LL_DMA_DisableChannelDestSecure">
        <Argument AddressOf="false" GenericType="baseaddress" Name="DMAx" TypeName="DMA_TypeDef"/>
        <Argument AddressOf="false" GenericType="simple" Name="Channel"/>
    </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>
