<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<IP xmlns="http://mcd.rou.st.com/modules.php?name=mcu" DBVersion="V4.0" Name="SAI" Version="STM32Cube_FW_WB_V0.1.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_Configs.xsd">
    <RefConfig Name="SaiA_Init">
        <CallLibMethod Name="HAL_SAI_Init" ReturnHAL="true" Type="HAL">
            <MethodArg Name="hsai" ParameterName="hsai_BlockA"/>
            <MethodArg Name="Synchro" ParameterName="Synchro_A"/>
        </CallLibMethod>
        <ImplementCallBack Name="HAL_SAI_MspInit"/>       
        <ImplementCallBack Name="HAL_SAI_MspDeInit"/>
    </RefConfig>
    <RefConfig Name="SaiA_InitProtocol">
        <CallLibMethod Name="HAL_SAI_InitProtocol" ReturnHAL="true" Type="HAL">
            <MethodArg Name="hsai" ParameterName="hsai_BlockA"/>
            <MethodArg Name="Synchro" ParameterName="Synchro_A"/>
        </CallLibMethod>
        <ImplementCallBack Name="HAL_SAI_MspInit"/>       
        <ImplementCallBack Name="HAL_SAI_MspDeInit"/>
    </RefConfig>
    <RefConfig Name="SaiA_DeInit">
        <CallLibMethod Name="HAL_SAI_DeInit" ReturnHAL="true" Type="HAL">
            <MethodArg Name="hsai" ParameterName="hsai_BlockA"/>
        </CallLibMethod>
    </RefConfig>
    <RefConfig Name="SaiB_Init">
        <CallLibMethod Name="HAL_SAI_Init" ReturnHAL="true" Type="HAL">
            <MethodArg Name="hsai" ParameterName="hsai_BlockB"/>
            <MethodArg Name="Synchro" ParameterName="Synchro_B"/>
        </CallLibMethod>
        <ImplementCallBack Name="HAL_SAI_MspInit"/>       
        <ImplementCallBack Name="HAL_SAI_MspDeInit"/>
    </RefConfig>
    <RefConfig Name="SaiB_InitProtocol">
        <CallLibMethod Name="HAL_SAI_InitProtocol" ReturnHAL="true" Type="HAL">
            <MethodArg Name="hsai" ParameterName="hsai_BlockB"/>
            <MethodArg Name="Synchro" ParameterName="Synchro_B"/>
        </CallLibMethod>
        <ImplementCallBack Name="HAL_SAI_MspInit"/>       
        <ImplementCallBack Name="HAL_SAI_MspDeInit"/>
    </RefConfig>
    <RefConfig Name="SaiB_DeInit">
        <CallLibMethod Name="HAL_SAI_DeInit" ReturnHAL="true" Type="HAL">
            <MethodArg Name="hsai" ParameterName="hsai_BlockB"/>
        </CallLibMethod>
    </RefConfig>
    
    <LibMethod Comment="" Name="HAL_SAI_Init">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hsai" TypeName="SAI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="SAI_Block_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="SAI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="Protocol" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="AudioMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DataSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FirstBit" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockStrobing" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Synchro" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="OutputDrive" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="NoDivider" OptimizationCondition="equal"/>
	 	        <!-- New field for HAL STM32H7 -->  
                <Argument AddressOf="false" GenericType="simple" Name="MckOverSampling" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FIFOThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="AudioFrequency" OptimizationCondition="equal"/>
                <!-- New field for STM32WB -->
                <Argument AddressOf="false" GenericType="simple" Name="MckOutput" OptimizationCondition="equal"/>               
                <!-- New field for HAL v1.1 -->                
                <Argument AddressOf="false" GenericType="simple" Name="Mckdiv" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SynchroExt" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MonoStereoMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="CompandingMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="TriState" OptimizationCondition="equal"/>
		        <!-- New fieldfor block PDM (Pulse Desnity modulation) for HAL STM32H7 -->  
                <Argument AddressOf="false" GenericType="struct" Name="PdmInit" TypeName="SAI_PdmInitTypeDef">
                    <Argument AddressOf="false" GenericType="simple" Name="Activation" OptimizationCondition="equal"/>
                    <Argument AddressOf="false" GenericType="simple" Name="MicPairsNbr" OptimizationCondition="equal"/>
                    <Argument AddressOf="false" GenericType="simple" Name="ClockEnable" OptimizationCondition="equal"/>
                </Argument>
            </Argument>
            <Argument AddressOf="false" GenericType="struct" Name="FrameInit" TypeName="SAI_FrameInitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FrameLength" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ActiveFrameLength" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSDefinition" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSPolarity" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSOffset" OptimizationCondition="equal"/>
            </Argument>
            <Argument AddressOf="false" GenericType="struct" Name="SlotInit" TypeName="SAI_SlotInitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FirstBitOffset" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotNumber" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotActive" OptimizationCondition="equal"/>
            </Argument>
            <Argument AddressOf="true" GenericType="simple" Name="pBuffPtr" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="XferSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="XferCount" OptimizationCondition="equal"/>
            <Argument AddressOf="true" GenericType="simple" Name="hdmatx" OptimizationCondition="equal" TypeName="DMA_HandleTypeDef"/>
            <Argument AddressOf="true" GenericType="simple" Name="hdmarx" OptimizationCondition="equal" TypeName="DMA_HandleTypeDef"/>
            <Argument AddressOf="false" GenericType="simple" Name="mutecallback" OptimizationCondition="equal" TypeName="SAIcallback"/>           
            <Argument AddressOf="true" GenericType="simple" Name="InterruptServiceRoutine" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Lock" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="State" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="ErrorCode" OptimizationCondition="equal"/>
        </Argument>
    </LibMethod>
    
    <LibMethod Comment="" Name="HAL_SAI_InitProtocol">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hsai" TypeName="SAI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="SAI_Block_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="SAI_InitTypeDef">
                <!--<Argument AddressOf="false" GenericType="simple" Name="Protocol" OptimizationCondition="equal"/>-->
                <Argument AddressOf="false" GenericType="simple" Name="AudioMode" OptimizationCondition="equal"/>
                <!--<Argument AddressOf="false" GenericType="simple" Name="DataSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FirstBit" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockStrobing" OptimizationCondition="equal"/>-->
                <Argument AddressOf="false" GenericType="simple" Name="Synchro" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="OutputDrive" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="NoDivider" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MckOverSampling" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FIFOThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="AudioFrequency" OptimizationCondition="equal"/>
                <!-- New field for HAL v1.1 --> 
                <Argument AddressOf="false" GenericType="simple" Name="Mckdiv" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SynchroExt" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MonoStereoMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="CompandingMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="TriState" OptimizationCondition="equal"/>
            </Argument>
            <Argument AddressOf="false" GenericType="struct" Name="FrameInit" TypeName="SAI_FrameInitTypeDef">
                <!--<Argument AddressOf="false" GenericType="simple" Name="FrameLength" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ActiveFrameLength" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSDefinition" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSPolarity" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSOffset" OptimizationCondition="equal"/>-->
            </Argument>
            <Argument AddressOf="false" GenericType="struct" Name="SlotInit" TypeName="SAI_SlotInitTypeDef">
                <!--<Argument AddressOf="false" GenericType="simple" Name="FirstBitOffset" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotNumber" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotActive" OptimizationCondition="equal"/>-->
            </Argument>
            <Argument AddressOf="true" GenericType="simple" Name="pBuffPtr" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="XferSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="XferCount" OptimizationCondition="equal"/>
            <Argument AddressOf="true" GenericType="simple" Name="hdmatx" OptimizationCondition="equal" TypeName="DMA_HandleTypeDef"/>
            <Argument AddressOf="true" GenericType="simple" Name="hdmarx" OptimizationCondition="equal" TypeName="DMA_HandleTypeDef"/>
            <Argument AddressOf="false" GenericType="simple" Name="mutecallback" OptimizationCondition="equal" TypeName="SAIcallback"/>
            <Argument AddressOf="true" GenericType="simple" Name="InterruptServiceRoutine" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Lock" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="State" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="ErrorCode" OptimizationCondition="equal"/>
        </Argument>        
        <Argument AddressOf="false" Context="local" GenericType="simple" Name="BasicProtocol" TypeName="SAI_ProtocolTypedef"/>   
        <Argument AddressOf="false" Context="local" GenericType="simple" Name="BasicDataSize" TypeName="SAI_ProtocolDataSizeTypedef"/>        
        <Argument AddressOf="false" Context="local" GenericType="simple" Name="BasicSlotNumber" TypeName="uint32_t"/>  
       <!-- Bug 33840
        <Argument AddressOf="false" GenericType="struct" Name="PdmInit" TypeName="SAI_PdmInitTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="Activation" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="MicPairsNbr" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="ClockEnable" OptimizationCondition="equal"/>
        </Argument> 
        -->
    </LibMethod>
    
    <LibMethod Comment="" Name="HAL_SAI_DeInit">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hsai" TypeName="SAI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="SAI_Block_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="SAI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="Protocol" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="AudioMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DataSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FirstBit" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockStrobing" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Synchro" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="OutputDrive" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="NoDivider" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MckOverSampling" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FIFOThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="AudioFrequency" OptimizationCondition="equal"/>
                <!-- New field for STM32WB -->
                <Argument AddressOf="false" GenericType="simple" Name="MckOutput" OptimizationCondition="equal"/>    
                <!-- New field for HAL v1.1 --> 
                <Argument AddressOf="false" GenericType="simple" Name="Mckdiv" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SynchroExt" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MonoStereoMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="CompandingMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="TriState" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="struct" Name="PdmInit" TypeName="SAI_PdmInitTypeDef">
                    <Argument AddressOf="false" GenericType="simple" Name="Activation" OptimizationCondition="equal"/>
                    <Argument AddressOf="false" GenericType="simple" Name="MicPairsNbr" OptimizationCondition="equal"/>
                    <Argument AddressOf="false" GenericType="simple" Name="ClockEnable" OptimizationCondition="equal"/>
                </Argument>
            </Argument>
            <Argument AddressOf="false" GenericType="struct" Name="FrameInit" TypeName="SAI_FrameInitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FrameLength" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ActiveFrameLength" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSDefinition" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSPolarity" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSOffset" OptimizationCondition="equal"/>
            </Argument>
            <Argument AddressOf="false" GenericType="struct" Name="SlotInit" TypeName="SAI_SlotInitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FirstBitOffset" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotNumber" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotActive" OptimizationCondition="equal"/>
            </Argument>
            <Argument AddressOf="true" GenericType="simple" Name="pBuffPtr" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="XferSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="XferCount" OptimizationCondition="equal"/>
            <Argument AddressOf="true" GenericType="simple" Name="hdmatx" OptimizationCondition="equal" TypeName="DMA_HandleTypeDef"/>
            <Argument AddressOf="true" GenericType="simple" Name="hdmarx" OptimizationCondition="equal" TypeName="DMA_HandleTypeDef"/>
            <Argument AddressOf="false" GenericType="simple" Name="mutecallback" OptimizationCondition="equal" TypeName="SAIcallback"/>           
            <Argument AddressOf="true" GenericType="simple" Name="InterruptServiceRoutine" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Lock" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="State" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="ErrorCode" OptimizationCondition="equal"/>
        </Argument>
    </LibMethod>
    
    <LibMethod Comment="" Name="HAL_SAI_MspInit">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hsai" TypeName="SAI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="SAI_Block_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="SAI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="Protocol" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="AudioMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DataSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FirstBit" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockStrobing" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Synchro" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="OutputDrive" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="NoDivider" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MckOverSampling" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FIFOThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="AudioFrequency" OptimizationCondition="equal"/>
                <!-- New field for STM32WB -->
                <Argument AddressOf="false" GenericType="simple" Name="MckOutput" OptimizationCondition="equal"/>    
                <!-- New field for HAL v1.1 --> 
                <Argument AddressOf="false" GenericType="simple" Name="Mckdiv" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SynchroExt" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MonoStereoMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="CompandingMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="TriState" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="struct" Name="PdmInit" TypeName="SAI_PdmInitTypeDef">
                    <Argument AddressOf="false" GenericType="simple" Name="Activation" OptimizationCondition="equal"/>
                    <Argument AddressOf="false" GenericType="simple" Name="MicPairsNbr" OptimizationCondition="equal"/>
                    <Argument AddressOf="false" GenericType="simple" Name="ClockEnable" OptimizationCondition="equal"/>
                </Argument>
            </Argument>
            <Argument AddressOf="false" GenericType="struct" Name="FrameInit" TypeName="SAI_FrameInitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FrameLength" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ActiveFrameLength" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSDefinition" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSPolarity" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSOffset" OptimizationCondition="equal"/>
            </Argument>
            <Argument AddressOf="false" GenericType="struct" Name="SlotInit" TypeName="SAI_SlotInitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FirstBitOffset" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotNumber" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotActive" OptimizationCondition="equal"/>
            </Argument>
            <Argument AddressOf="true" GenericType="simple" Name="pBuffPtr" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="XferSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="XferCount" OptimizationCondition="equal"/>
            <Argument AddressOf="true" GenericType="simple" Name="hdmatx" OptimizationCondition="equal" TypeName="DMA_HandleTypeDef"/>
            <Argument AddressOf="true" GenericType="simple" Name="hdmarx" OptimizationCondition="equal" TypeName="DMA_HandleTypeDef"/>
            <Argument AddressOf="false" GenericType="simple" Name="mutecallback" OptimizationCondition="equal" TypeName="SAIcallback"/>           
            <Argument AddressOf="true" GenericType="simple" Name="InterruptServiceRoutine" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="Lock" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="State" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="ErrorCode" OptimizationCondition="equal"/>
        </Argument>
    </LibMethod>
    
    <LibMethod Comment="" Name="HAL_SAI_MspDeInit">
        <Argument AddressOf="true" Context="global" GenericType="struct" Name="hsai" TypeName="SAI_HandleTypeDef">
            <Argument AddressOf="false" GenericType="baseaddress" Name="Instance" TypeName="SAI_Block_TypeDef"/>
            <Argument AddressOf="false" GenericType="struct" Name="Init" TypeName="SAI_InitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="Protocol" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="AudioMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="DataSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FirstBit" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ClockStrobing" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="Synchro" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="OutputDrive" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="NoDivider" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MckOverSampling" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FIFOThreshold" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="AudioFrequency" OptimizationCondition="equal"/>
                <!-- New field for STM32WB -->
                <Argument AddressOf="false" GenericType="simple" Name="MckOutput" OptimizationCondition="equal"/>               
                <!-- New field for HAL v1.1 --> 
                <Argument AddressOf="false" GenericType="simple" Name="Mckdiv" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SynchroExt" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="MonoStereoMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="CompandingMode" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="TriState" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="struct" Name="PdmInit" TypeName="SAI_PdmInitTypeDef">
                    <Argument AddressOf="false" GenericType="simple" Name="Activation" OptimizationCondition="equal"/>
                    <Argument AddressOf="false" GenericType="simple" Name="MicPairsNbr" OptimizationCondition="equal"/>
                    <Argument AddressOf="false" GenericType="simple" Name="ClockEnable" OptimizationCondition="equal"/>
                </Argument>
            </Argument>
            <Argument AddressOf="false" GenericType="struct" Name="FrameInit" TypeName="SAI_FrameInitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FrameLength" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="ActiveFrameLength" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSDefinition" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSPolarity" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="FSOffset" OptimizationCondition="equal"/>
            </Argument>
            <Argument AddressOf="false" GenericType="struct" Name="SlotInit" TypeName="SAI_SlotInitTypeDef">
                <Argument AddressOf="false" GenericType="simple" Name="FirstBitOffset" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotSize" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotNumber" OptimizationCondition="equal"/>
                <Argument AddressOf="false" GenericType="simple" Name="SlotActive" OptimizationCondition="equal"/>
            </Argument>
            <Argument AddressOf="true" GenericType="simple" Name="pBuffPtr" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="XferSize" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="XferCount" OptimizationCondition="equal"/>
            <Argument AddressOf="true" GenericType="simple" Name="hdmatx" OptimizationCondition="equal" TypeName="DMA_HandleTypeDef"/>
            <Argument AddressOf="true" GenericType="simple" Name="hdmarx" OptimizationCondition="equal" TypeName="DMA_HandleTypeDef"/>
            <Argument AddressOf="false" GenericType="simple" Name="mutecallback" OptimizationCondition="equal" TypeName="SAIcallback"/>            
            <Argument AddressOf="false" GenericType="simple" Name="Lock" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="State" OptimizationCondition="equal"/>
            <Argument AddressOf="false" GenericType="simple" Name="ErrorCode" OptimizationCondition="equal"/>
            <Argument AddressOf="true" GenericType="simple" Name="InterruptServiceRoutine" OptimizationCondition="equal"/>            
        </Argument>
    </LibMethod>
    <RefComponent Cclass="HAL" Cgroup="SAI" Cversion="0.1.0">
        <File Category="header" Name="Drivers/STM32WBxx_HAL_Driver/Inc/stm32wbxx_hal_sai.h"/>
        <File Category="header" Name="Drivers/STM32WBxx_HAL_Driver/Inc/stm32wbxx_hal_sai_ex.h"/>
        <File Category="source" Name="Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_sai.c"/>
        <File Category="source" Name="Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_sai_ex.c"/>
    </RefComponent>
</IP>
