IPC Functions
[IPC]

Functions

CSL_IDEF_INLINE void CSL_IPC_genNMIEvent (Uint32 index)
CSL_IDEF_INLINE void CSL_IPC_genGEMInterrupt (Uint32 index, Uint32 srcId)
CSL_IDEF_INLINE Uint32 CSL_IPC_isGEMInterruptSourceSet (Uint32 index, Uint32 srcId)
CSL_IDEF_INLINE Uint32 CSL_IPC_isGEMInterruptAckSet (Uint32 index, Uint32 srcId)
CSL_IDEF_INLINE void CSL_IPC_clearGEMInterruptSource (Uint32 index, Uint32 srcId)
CSL_IDEF_INLINE void CSL_IPC_genHostInterrupt (Uint32 srcId)
CSL_IDEF_INLINE Uint32 CSL_IPC_isHostInterruptSourceSet (Uint32 srcId)
CSL_IDEF_INLINE Uint32 CSL_IPC_isHostInterruptAckSet (Uint32 srcId)
CSL_IDEF_INLINE void CSL_IPC_clearHostInterruptSource (Uint32 srcId)

Function Documentation

CSL_IDEF_INLINE void CSL_IPC_clearGEMInterruptSource ( Uint32  index,
Uint32  srcId 
)

============================================================================
CSL_IPC_clearGEMInterruptSource

Description
This function clears the interrupt source IDs by setting the SRCCx bit of the IPC Acknowledgment Register (IPCARx) and SRCSx bit of IPC Generation Register (IPCGRx) corresponding to the GEM index and Source ID specified.

Arguments

        index       GEM number for which the interrupt surce is to be cleared.
        srcId       Indicates which of the 0-27 SRCSx/SRCCx bits needs to be cleared
                    in the IPCGRx/IPCARx registers corresponding to the index specified. 
	 

Return Value
None

Pre Condition
None

Post Condition
SRCSx/SRCCx bits in the corresponding IPCGRx/IPCARx register are cleared.

Writes
IPC_IPCAR_SRCC0=0; IPC_IPCAR_SRCC1=0; IPC_IPCAR_SRCC2=0; IPC_IPCAR_SRCC3=0; IPC_IPCAR_SRCC4=0; IPC_IPCAR_SRCC5=0; IPC_IPCAR_SRCC6=0; IPC_IPCAR_SRCC7=0; IPC_IPCAR_SRCC8=0; IPC_IPCAR_SRCC9=0; IPC_IPCAR_SRCC10=0; IPC_IPCAR_SRCC11=0; IPC_IPCAR_SRCC12=0; IPC_IPCAR_SRCC13=0; IPC_IPCAR_SRCC14=0; IPC_IPCAR_SRCC15=0; IPC_IPCAR_SRCC16=0; IPC_IPCAR_SRCC17=0; IPC_IPCAR_SRCC18=0; IPC_IPCAR_SRCC19=0; IPC_IPCAR_SRCC20=0; IPC_IPCAR_SRCC21=0; IPC_IPCAR_SRCC22=0; IPC_IPCAR_SRCC23=0; IPC_IPCAR_SRCC24=0; IPC_IPCAR_SRCC25=0; IPC_IPCAR_SRCC26=0; IPC_IPCAR_SRCC27=0

Affects
IPC_IPCGR_SRCS0=0, IPC_IPCGR_SRCS1=0; IPC_IPCGR_SRCS2=0; IPC_IPCGR_SRCS3=0; IPC_IPCGR_SRCS4=0; IPC_IPCGR_SRCS5=0; IPC_IPCGR_SRCS6=0; IPC_IPCGR_SRCS7=0; IPC_IPCGR_SRCS8=0; IPC_IPCGR_SRCS9=0; IPC_IPCGR_SRCS10=0; IPC_IPCGR_SRCS11=0; IPC_IPCGR_SRCS12=0; IPC_IPCGR_SRCS13=0; IPC_IPCGR_SRCS14=0; IPC_IPCGR_SRCS15=0; IPC_IPCGR_SRCS16=0; IPC_IPCGR_SRCS17=0; IPC_IPCGR_SRCS18=0; IPC_IPCGR_SRCS19=0; IPC_IPCGR_SRCS20=0; IPC_IPCGR_SRCS21=0; IPC_IPCGR_SRCS22=0; IPC_IPCGR_SRCS23=0; IPC_IPCGR_SRCS24=0; IPC_IPCGR_SRCS25=0; IPC_IPCGR_SRCS26=0; IPC_IPCGR_SRCS27=0

Example

        Example 1: Clear the interrupt for Gem 1 raised by Gem 2. 
        Uint32 	index = 1;
        Uint32	srcId = 2;

        CSL_IPC_clearGEMInterruptSource (index, srcId);
	 

=============================================================================

CSL_IDEF_INLINE void CSL_IPC_clearHostInterruptSource ( Uint32  srcId  ) 

============================================================================
CSL_IPC_clearHostInterruptSource

Description
This function clears the interrupt source IDs by setting the SRCCx bit of the Host IPC Acknowledgment Register (IPCARH) and SRCSx bit of Host IPC Generation Register (IPCGRH) corresponding to the Source ID specified.

Arguments

        srcId       Indicates which of the 0-27 SRCSx/SRCCx bits needs to be cleared
                    in the IPCGRH/IPCARH registers. 
	 

Return Value
None

Pre Condition
None

Post Condition
SRCSx/SRCCx bits in the corresponding IPCGRH/IPCARH register are cleared.

Writes
IPC_IPCARH_SRCC0=0; IPC_IPCARH_SRCC1=0; IPC_IPCARH_SRCC2=0; IPC_IPCARH_SRCC3=0; IPC_IPCARH_SRCC4=0; IPC_IPCARH_SRCC5=0; IPC_IPCARH_SRCC6=0; IPC_IPCARH_SRCC7=0; IPC_IPCARH_SRCC8=0; IPC_IPCARH_SRCC9=0; IPC_IPCARH_SRCC10=0; IPC_IPCARH_SRCC11=0; IPC_IPCARH_SRCC12=0; IPC_IPCARH_SRCC13=0; IPC_IPCARH_SRCC14=0; IPC_IPCARH_SRCC15=0; IPC_IPCARH_SRCC16=0; IPC_IPCARH_SRCC17=0; IPC_IPCARH_SRCC18=0; IPC_IPCARH_SRCC19=0; IPC_IPCARH_SRCC20=0; IPC_IPCARH_SRCC21=0; IPC_IPCARH_SRCC22=0; IPC_IPCARH_SRCC23=0; IPC_IPCARH_SRCC24=0; IPC_IPCARH_SRCC25=0; IPC_IPCARH_SRCC26=0; IPC_IPCARH_SRCC27=0

Affects
IPC_IPCGRH_SRCS0=0; IPC_IPCGRH_SRCS1=0; IPC_IPCGRH_SRCS2=0; IPC_IPCGRH_SRCS3=0; IPC_IPCGRH_SRCS4=0; IPC_IPCGRH_SRCS5=0; IPC_IPCGRH_SRCS6=0; IPC_IPCGRH_SRCS7=0; IPC_IPCGRH_SRCS8=0; IPC_IPCGRH_SRCS9=0; IPC_IPCGRH_SRCS10=0; IPC_IPCGRH_SRCS11=0; IPC_IPCGRH_SRCS12=0; IPC_IPCGRH_SRCS13=0; IPC_IPCGRH_SRCS14=0; IPC_IPCGRH_SRCS15=0; IPC_IPCGRH_SRCS16=0; IPC_IPCGRH_SRCS17=0; IPC_IPCGRH_SRCS18=0; IPC_IPCGRH_SRCS19=0; IPC_IPCGRH_SRCS20=0; IPC_IPCGRH_SRCS21=0; IPC_IPCGRH_SRCS22=0; IPC_IPCGRH_SRCS23=0; IPC_IPCGRH_SRCS24=0; IPC_IPCGRH_SRCS25=0; IPC_IPCGRH_SRCS26=0; IPC_IPCGRH_SRCS27=0;

Example

        Example 1: Clear the host interrupt raised by Gem 2. 
        Uint32	srcId = 2;

        CSL_IPC_clearHostInterruptSource (srcId);
	 

=============================================================================

CSL_IDEF_INLINE void CSL_IPC_genGEMInterrupt ( Uint32  index,
Uint32  srcId 
)

============================================================================
CSL_IPC_genGEMInterrupt

Description
This function sets the IPCG bit of the IPC Generation Register (IPCGRx) to create an inter-DSP pulse to the GEM corresponding to the index specified here. This API also configures the source ID for this interrupt by setting the SRCSx bit of the IPCGRx register based on the source ID specified.

Arguments

        index       GEM number for which the interrupt is to be raised.
        srcId       Indicates which of the 0-27 SRCSx bits needs to be set 
                    in the IPCGRx registers corresponding to the index specified. 
	 

Return Value
None

Pre Condition
None

Post Condition
IPCG and SRCSx/SRCCx bits in the corresponding IPCGRx/IPCARx register configured.

Writes
IPC_IPCGR_IPCG=1, IPC_IPCGR_SRCS0=1; IPC_IPCGR_SRCS1=1; IPC_IPCGR_SRCS2=1; IPC_IPCGR_SRCS3=1; IPC_IPCGR_SRCS4=1; IPC_IPCGR_SRCS5=1; IPC_IPCGR_SRCS6=1; IPC_IPCGR_SRCS7=1; IPC_IPCGR_SRCS8=1; IPC_IPCGR_SRCS9=1; IPC_IPCGR_SRCS10=1; IPC_IPCGR_SRCS11=1; IPC_IPCGR_SRCS12=1; IPC_IPCGR_SRCS13=1; IPC_IPCGR_SRCS14=1; IPC_IPCGR_SRCS15=1; IPC_IPCGR_SRCS16=1; IPC_IPCGR_SRCS17=1; IPC_IPCGR_SRCS18=1; IPC_IPCGR_SRCS19=1; IPC_IPCGR_SRCS20=1; IPC_IPCGR_SRCS21=1; IPC_IPCGR_SRCS22=1; IPC_IPCGR_SRCS23=1; IPC_IPCGR_SRCS24=1; IPC_IPCGR_SRCS25=1; IPC_IPCGR_SRCS26=1; IPC_IPCGR_SRCS27=1;

Affects
IPC_IPCAR_SRCC0=1; IPC_IPCAR_SRCC1=1; IPC_IPCAR_SRCC2=1; IPC_IPCAR_SRCC3=1; IPC_IPCAR_SRCC4=1; IPC_IPCAR_SRCC5=1; IPC_IPCAR_SRCC6=1; IPC_IPCAR_SRCC7=1; IPC_IPCAR_SRCC8=1; IPC_IPCAR_SRCC9=1; IPC_IPCAR_SRCC10=1; IPC_IPCAR_SRCC11=1; IPC_IPCAR_SRCC12=1; IPC_IPCAR_SRCC13=1; IPC_IPCAR_SRCC14=1; IPC_IPCAR_SRCC15=1; IPC_IPCAR_SRCC16=1; IPC_IPCAR_SRCC17=1; IPC_IPCAR_SRCC18=1; IPC_IPCAR_SRCC19=1; IPC_IPCAR_SRCC20=1; IPC_IPCAR_SRCC21=1; IPC_IPCAR_SRCC22=1; IPC_IPCAR_SRCC23=1; IPC_IPCAR_SRCC24=1; IPC_IPCAR_SRCC25=1; IPC_IPCAR_SRCC26=1; IPC_IPCAR_SRCC27=1

Example

        Example 1: An application running on GEM 2 is trying to raise
        an interrupt to Gem 1. The source Id for Gem 2 say is 2. 
        Uint32 	index = 1;
        Uint32	srcId = 2;

        CSL_IPC_genGEMInterrupt (index, srcId);
	 

=============================================================================

CSL_IDEF_INLINE void CSL_IPC_genHostInterrupt ( Uint32  srcId  ) 

============================================================================
CSL_IPC_genHostInterrupt

Description
This function sets the IPCG bit of the Host IPC Generation Register (IPCGRH) to create an interrupt pulse on the device pin. This API also configures the source ID for this interrupt by setting the SRCSx bit of the IPCGRHx register based on the source ID specified.

Arguments

        srcId       Indicates which of the 0-27 SRCSx bits needs to be set 
                    in the IPCGRH register. 
	 

Return Value
None

Pre Condition
None

Post Condition
IPCG and SRCSx/SRCCx bits in the IPCGRH/IPCARH register configured.

Writes
IPC_IPCGRH_IPCG=1, IPC_IPCGRH_SRCS0=1; IPC_IPCGRH_SRCS1=1; IPC_IPCGRH_SRCS2=1; IPC_IPCGRH_SRCS3=1; IPC_IPCGRH_SRCS4=1; IPC_IPCGRH_SRCS5=1; IPC_IPCGRH_SRCS6=1; IPC_IPCGRH_SRCS7=1; IPC_IPCGRH_SRCS8=1; IPC_IPCGRH_SRCS9=1; IPC_IPCGRH_SRCS10=1; IPC_IPCGRH_SRCS11=1; IPC_IPCGRH_SRCS12=1; IPC_IPCGRH_SRCS13=1; IPC_IPCGRH_SRCS14=1; IPC_IPCGRH_SRCS15=1; IPC_IPCGRH_SRCS16=1; IPC_IPCGRH_SRCS17=1; IPC_IPCGRH_SRCS18=1; IPC_IPCGRH_SRCS19=1; IPC_IPCGRH_SRCS20=1; IPC_IPCGRH_SRCS21=1; IPC_IPCGRH_SRCS22=1; IPC_IPCGRH_SRCS23=1; IPC_IPCGRH_SRCS24=1; IPC_IPCGRH_SRCS25=1; IPC_IPCGRH_SRCS26=1; IPC_IPCGRH_SRCS27=1

Affects IPC_IPCARH_SRCC0=1; IPC_IPCARH_SRCC1=1; IPC_IPCARH_SRCC2=1; IPC_IPCARH_SRCC3=1; IPC_IPCARH_SRCC4=1; IPC_IPCARH_SRCC5=1; IPC_IPCARH_SRCC6=1; IPC_IPCARH_SRCC7=1; IPC_IPCARH_SRCC8=1; IPC_IPCARH_SRCC9=1; IPC_IPCARH_SRCC10=1; IPC_IPCARH_SRCC11=1; IPC_IPCARH_SRCC12=1; IPC_IPCARH_SRCC13=1; IPC_IPCARH_SRCC14=1; IPC_IPCARH_SRCC15=1; IPC_IPCARH_SRCC16=1; IPC_IPCARH_SRCC17=1; IPC_IPCARH_SRCC18=1; IPC_IPCARH_SRCC19=1; IPC_IPCARH_SRCC20=1; IPC_IPCARH_SRCC21=1; IPC_IPCARH_SRCC22=1; IPC_IPCARH_SRCC23=1; IPC_IPCARH_SRCC24=1; IPC_IPCARH_SRCC25=1; IPC_IPCARH_SRCC26=1; IPC_IPCARH_SRCC27=1

Example

        Example 1: An application running on GEM 2 is trying to raise
        a host interrupt. 
        Uint32	srcId = 2;

        CSL_IPC_genHostInterrupt (srcId);
	 

=============================================================================

CSL_IDEF_INLINE void CSL_IPC_genNMIEvent ( Uint32  index  ) 

============================================================================
CSL_IPC_genNMIEvent

Description
This function sets the NMIG bit of the NMI Generation Register (NMIGRx) to create an NMI pulse to the GEM corresponding to the index specified here.

Arguments

        index       GEM number for which the NMI event is to be raised.
	 

Return Value
None

Pre Condition
None.

Post Condition
NMIG bit in the corresponding NMIGRx register configured.

Writes
IPC_NMIGR_NMIG=1

Example

        Example 1: Raise an NMI interrupt to Gem 2
        Uint32 index = 2;

        CSL_IPC_genNMIEvent (index);
	 

=============================================================================

CSL_IDEF_INLINE Uint32 CSL_IPC_isGEMInterruptAckSet ( Uint32  index,
Uint32  srcId 
)

============================================================================
CSL_IPC_isGEMInterruptAckSet

Description
This function checks if the SRCCx bit of the IPCARx register is set. It returns 1 if the SRCCx bit corresponding to the srcId is set in the IPCARx register corresponding to the index specified. Otherwise it returns 0.

Arguments

        index       GEM number for which the IPCARx register needs to be checked.
        srcId       Indicates which of the 0-27 SRCCx bits needs to be read 
                    in the IPCARx registers corresponding to the index specified. 
     

Return Value
1 - Indicates that the corresponding SRCCx bit is set and the srcId specified is in fact the source for the IPC Gem interrupt.
0 - Indicates that corresponding SRCCx bit not set and the srcId specified is not the IPC source.

Pre Condition
None

Post Condition
None

Reads
IPC_IPCAR_SRCC0; IPC_IPCAR_SRCC1; IPC_IPCAR_SRCC2; IPC_IPCAR_SRCC3; IPC_IPCAR_SRCC4; IPC_IPCAR_SRCC5; IPC_IPCAR_SRCC6; IPC_IPCAR_SRCC7; IPC_IPCAR_SRCC8; IPC_IPCAR_SRCC9; IPC_IPCAR_SRCC10; IPC_IPCAR_SRCC11; IPC_IPCAR_SRCC12; IPC_IPCAR_SRCC13; IPC_IPCAR_SRCC14; IPC_IPCAR_SRCC15; IPC_IPCAR_SRCC16; IPC_IPCAR_SRCC17; IPC_IPCAR_SRCC18; IPC_IPCAR_SRCC19; IPC_IPCAR_SRCC20; IPC_IPCAR_SRCC21; IPC_IPCAR_SRCC22; IPC_IPCAR_SRCC23; IPC_IPCAR_SRCC24; IPC_IPCAR_SRCC25; IPC_IPCAR_SRCC26; IPC_IPCAR_SRCC27

Example

        Uint32  index = 1;
        Uint32  srcId = 2;
        Uint32  retVal;

        retVal = CSL_IPC_isGEMInterruptAckSet (index, srcId);
     

=============================================================================

CSL_IDEF_INLINE Uint32 CSL_IPC_isGEMInterruptSourceSet ( Uint32  index,
Uint32  srcId 
)

============================================================================
CSL_IPC_isGEMInterruptSourceSet

Description
This function checks if the SRCSx bit of the IPCGRx register is set. It returns 1 if the SRCSx bit corresponding to the srcId is set in the IPCGRx register corresponding to the index specified. Otherwise it returns 0.

Arguments

        index       GEM number for which the IPCGRx register needs to be checked.
        srcId       Indicates which of the 0-27 SRCSx bits needs to be read 
                    in the IPCGRx registers corresponding to the index specified. 
	 

Return Value
1 - Indicates that the corresponding SRCSx bit is set and the srcId specified is in fact the source for the IPC Gem interrupt.
0 - Indicates that corresponding SRCSx bit not set and the srcId specified is not the IPC source.

Pre Condition
None

Post Condition
None

Reads
IPC_IPCGR_SRCS0; IPC_IPCGR_SRCS1; IPC_IPCGR_SRCS2; IPC_IPCGR_SRCS3; IPC_IPCGR_SRCS4; IPC_IPCGR_SRCS5; IPC_IPCGR_SRCS6; IPC_IPCGR_SRCS7; IPC_IPCGR_SRCS8; IPC_IPCGR_SRCS9; IPC_IPCGR_SRCS10; IPC_IPCGR_SRCS11; IPC_IPCGR_SRCS12; IPC_IPCGR_SRCS13; IPC_IPCGR_SRCS14; IPC_IPCGR_SRCS15; IPC_IPCGR_SRCS16; IPC_IPCGR_SRCS17; IPC_IPCGR_SRCS18; IPC_IPCGR_SRCS19; IPC_IPCGR_SRCS20; IPC_IPCGR_SRCS21; IPC_IPCGR_SRCS22; IPC_IPCGR_SRCS23; IPC_IPCGR_SRCS24; IPC_IPCGR_SRCS25; IPC_IPCGR_SRCS26; IPC_IPCGR_SRCS27

Example

        Example 1: An application running on Gem 1 received an interrupt and
        wants to check if the interrupt was from the core it was waiting on, 
        i.e., the Gem 2.
   
        Uint32 	index = 1;
        Uint32	srcId = 2;
        Uint32	retVal;

        retVal = CSL_IPC_isGEMInterruptSourceSet (index, srcId);
        
        if (retVal == 0)
        {
        	...		// Maybe cotinue waiting for the IPC/message
       	}
       	else
       	{
       		...		// Do the needful processing.
       	}
	 

=============================================================================

CSL_IDEF_INLINE Uint32 CSL_IPC_isHostInterruptAckSet ( Uint32  srcId  ) 

============================================================================
CSL_IPC_isHostInterruptAckSet

Description
This function checks if the SRCCx bit of the IPCARH register is set. It returns 1 if the SRCCx bit corresponding to the srcId is set in the IPCARH register. Otherwise it returns 0.

Arguments

        srcId       Indicates which of the 0-27 SRCCx bits needs to be read 
                    in the IPCARH register. 
     

Return Value
1 - Indicates that the corresponding SRCCx bit is set and the srcId specified is in fact the source for the IPC Host interrupt.
0 - Indicates that corresponding SRCCx bit not set and the srcId specified is not the IPC source.

Pre Condition
None

Post Condition
None

Reads
IPC_IPCARH_SRCC0; IPC_IPCARH_SRCC1; IPC_IPCARH_SRCC2; IPC_IPCARH_SRCC3; IPC_IPCARH_SRCC4; IPC_IPCARH_SRCC5; IPC_IPCARH_SRCC6; IPC_IPCARH_SRCC7; IPC_IPCARH_SRCC8; IPC_IPCARH_SRCC9; IPC_IPCARH_SRCC10; IPC_IPCARH_SRCC11; IPC_IPCARH_SRCC12; IPC_IPCARH_SRCC13; IPC_IPCARH_SRCC14; IPC_IPCARH_SRCC15; IPC_IPCARH_SRCC16; IPC_IPCARH_SRCC17; IPC_IPCARH_SRCC18; IPC_IPCARH_SRCC19; IPC_IPCARH_SRCC20; IPC_IPCARH_SRCC21; IPC_IPCARH_SRCC22; IPC_IPCARH_SRCC23; IPC_IPCARH_SRCC24; IPC_IPCARH_SRCC25; IPC_IPCARH_SRCC26; IPC_IPCARH_SRCC27

Example

        Uint32  srcId = 2;
        Uint32  retVal;

        retVal = CSL_IPC_isHostInterruptAckSet (srcId);
     

=============================================================================

CSL_IDEF_INLINE Uint32 CSL_IPC_isHostInterruptSourceSet ( Uint32  srcId  ) 

============================================================================
CSL_IPC_isHostInterruptSourceSet

Description
This function checks if the SRCSx bit of the IPCGRH register is set. It returns 1 if the SRCSx bit corresponding to the srcId is set in the IPCGRH register. Otherwise it returns 0.

Arguments

        srcId       Indicates which of the 0-27 SRCSx bits needs to be read 
                    in the IPCGRH register. 
	 

Return Value
1 - Indicates that the corresponding SRCSx bit is set and the srcId specified is in fact the source for the IPC Host interrupt.
0 - Indicates that corresponding SRCSx bit not set and the srcId specified is not the IPC source.

Pre Condition
None

Post Condition
None

Reads
IPC_IPCGRH_SRCS0; IPC_IPCGRH_SRCS1; IPC_IPCGRH_SRCS2; IPC_IPCGRH_SRCS3; IPC_IPCGRH_SRCS4; IPC_IPCGRH_SRCS5; IPC_IPCGRH_SRCS6; IPC_IPCGRH_SRCS7; IPC_IPCGRH_SRCS8; IPC_IPCGRH_SRCS9; IPC_IPCGRH_SRCS10; IPC_IPCGRH_SRCS11; IPC_IPCGRH_SRCS12; IPC_IPCGRH_SRCS13; IPC_IPCGRH_SRCS14; IPC_IPCGRH_SRCS15; IPC_IPCGRH_SRCS16; IPC_IPCGRH_SRCS17; IPC_IPCGRH_SRCS18; IPC_IPCGRH_SRCS19; IPC_IPCGRH_SRCS20; IPC_IPCGRH_SRCS21; IPC_IPCGRH_SRCS22; IPC_IPCGRH_SRCS23; IPC_IPCGRH_SRCS24; IPC_IPCGRH_SRCS25; IPC_IPCGRH_SRCS26; IPC_IPCGRH_SRCS27

Example

        Example 1: Check if the host interrupt's source was set correctly
        to 2, i.e., the Gem 2 the source of the host interrupt.
 
        Uint32	srcId = 2;
        Uint32	retVal;

        retVal = CSL_IPC_isHostInterruptSourceSet (srcId);
        
        if (retVal == 0)
        {
            ...		// Do something.
        }
        else
        {
            ...		// Do the needful processing.
        }
	 

=============================================================================


Copyright 2012, Texas Instruments Incorporated