]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/performance-audio-sr.git/blobdiff - pdk_k2g_1_0_1/packages/ti/csl/csl_vcp2.h
Change pdk_k2g_1_0_1 directory name in preparation for updating RSTC plugin
[processor-sdk/performance-audio-sr.git] / pdk_k2g_1_0_1 / packages / ti / csl / csl_vcp2.h
diff --git a/pdk_k2g_1_0_1/packages/ti/csl/csl_vcp2.h b/pdk_k2g_1_0_1/packages/ti/csl/csl_vcp2.h
deleted file mode 100644 (file)
index 3533969..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-/* ============================================================================
- *   Copyright (c) Texas Instruments Incorporated 2008, 2009
- * 
- *  Redistribution and use in source and binary forms, with or without 
- *  modification, are permitted provided that the following conditions 
- *  are met:
- *
- *    Redistributions of source code must retain the above copyright 
- *    notice, this list of conditions and the following disclaimer.
- *
- *    Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the 
- *    documentation and/or other materials provided with the   
- *    distribution.
- *
- *    Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
- *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
- *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
-*/
-
-/** 
- *   @file  csl_vcp2.h
- *
- *   @brief  
- *      Header file with data structure and API declarations for VCP2 
- *      CSL module.
- * 
- *  \par
- *  ============================================================================
- *  @n   (C) Copyright 2008, 2009, Texas Instruments, Inc.
- *  @n   Use of this software is controlled by the terms and conditions found 
- *  @n   in the license agreement under which this software has been supplied.
- *  ===========================================================================
- *  \par
- */
-/** @defgroup CSL_VCP2_API VCP2
- *
- * @section Introduction
- *
- * @subsection xxx Overview
- * Channel decoding of voice and low bit-rate data channels found in cellular standards such as 2.5G, 3G,
- * and WiMAX requires the decoding of convolutional encoded data. The Viterbi-decoder coprocessor 2
- * (VCP2) provided in the TCI648x devices performs Viterbi decoding for IS2000 and 3GPP wireless
- * standards. The VCP2 coprocessor also performs forward-error correction for 2G and 3G wireless systems.
- * The VCP2 coprocessor offers a very cost effective and synergistic solution when combined with Texas
- * Instruments (TI) DSPs. The VCP2 supports 1941 12.2 Kbps class A 3G voice channels running at
- * 333 MHz.
- *
- * @subsection References
- *    -# VCP2 User's Guide SPRUE09A.pdf (May 2006 - Revised April 2008)
- *
- */
-#ifndef CSL_VCP2__H
-#define CSL_VCP2__H
-
-#include <ti/csl/csl.h>
-#include <ti/csl/cslr_vcp2.h>
-#include <ti/csl/soc.h>
-
-/**
-@defgroup CSL_VCP2_SYMBOL  VCP2 Symbols Defined
-@ingroup CSL_VCP2_API
-*/
-/**
-@defgroup CSL_VCP2_DATASTRUCT  VCP2 Data Structures
-@ingroup CSL_VCP2_API
-*/
-/**
-@defgroup CSL_VCP2_FUNCTION  VCP2 Functions
-@ingroup CSL_VCP2_API
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/**
-@addtogroup CSL_VCP2_SYMBOL
-@{
-*/
-
-/******************************************************************************
- *  VCP Macros
- *****************************************************************************/
-/** Code rate = 2 */
-#define VCP2_RATE_1_2                (2U)
-/** Code rate = 3 */
-#define VCP2_RATE_1_3                (3U)
-/** Code rate = 4 */
-#define VCP2_RATE_1_4                (4U)
-
-/** Speed critical */
-#define VCP2_SPEED_CRITICAL          (0U)
-/** Speed most critical */
-#define VCP2_SPEED_MOST_CRITICAL     (1U)
-/** Performance critical */
-#define VCP2_PERF_CRITICAL           (2U)
-/** Performance most critical */
-#define VCP2_PERF_MOST_CRITICAL      (3U)
-/** Default value */
-#define VCP2_PERF_DEFAULT            (VCP2_SPEED_CRITICAL)
-
-/** Out order of VCP output for decoded data : 0 to 31 */
-#define VCP2_OUTORDER_0_31           (CSL_VCP2_VCPIC3_OUT_ORDER_LSB)
-/** Out order of VCP output for decoded data : 31 to 0 */
-#define VCP2_OUTORDER_31_0           (CSL_VCP2_VCPIC3_OUT_ORDER_MSB)
-
-/** Output decision type : Hard decisions */
-#define VCP2_DECISION_HARD           (CSL_VCP2_VCPIC5_SDHD_HARD)
-/** Output decision type : Soft decisions */
-#define VCP2_DECISION_SOFT           (CSL_VCP2_VCPIC5_SDHD_SOFT)
-
-/** Output parameters read flag : VCP read event is not generated */
-#define VCP2_OUTF_NO                 (CSL_VCP2_VCPIC5_OUTF_NO)
-/** Output parameters read flag : VCP read event is generated */
-#define VCP2_OUTF_YES                (CSL_VCP2_VCPIC5_OUTF_YES)
-
-/** No trace back allowed */
-#define VCP2_TRACEBACK_NONE          (CSL_VCP2_VCPIC5_TB_NO)
-/** Traceback mode : Tailed */
-#define VCP2_TRACEBACK_TAILED        (CSL_VCP2_VCPIC5_TB_TAIL)
-/** Traceback mode : Convergent */
-#define VCP2_TRACEBACK_CONVERGENT    (CSL_VCP2_VCPIC5_TB_CONV)
-/** Traceback mode : Mixed */
-#define VCP2_TRACEBACK_MIXED         (CSL_VCP2_VCPIC5_TB_MIX)
-
-/**
- * VCP unpause type : VCP restarts and processes one sliding window before
- * pausing again
- */
-#define VCP2_UNPAUSE_ONESW           (CSL_VCP2_VCPEXE_COMMAND_RESTART_PAUSE)
-/** VCP unpause type : VCP restarts */
-#define VCP2_UNPAUSE_NORMAL          (CSL_VCP2_VCPEXE_COMMAND_RESTART)
-
-/** Soft decisions memory format : 32-bit word packed */
-#define VCP2_END_PACKED32            (CSL_VCP2_VCPEND_SD_32BIT)
-/** Soft decisions memory format : Native (8 bits) */
-#define VCP2_END_NATIVE              (CSL_VCP2_VCPEND_SD_NATIVE)
-
-/** EMU mode : VCP halts at the end of completion of the current window of
- *  state metric processing or at the end of a frame */
-#define VCP2_EMUHALT_DEFAULT         (CSL_VCP2_VCPEMU_SOFT_HALT_DEFAULT)
-/**
- * EMU mode : VCP halts at the end of completion of the processing of the
- * frame
- */
-#define VCP2_EMUHALT_FRAMEEND        (CSL_VCP2_VCPEMU_SOFT_HALT_FRAMEEND)
-
-/***************************************************************************
- *  Following are Polynomials used in GSM/Edge/GPRS
- **************************************************************************/
-
-/**
- *  GSM/Edge/GPRS generator polynomial 0
- */
-#define VCP2_GEN_POLY_0    0x30
-
-/**
- *  GSM/Edge/GPRS generator polynomial 1
- */
-#define VCP2_GEN_POLY_1    0xB0
-
-/**
- *  GSM/Edge/GPRS generator polynomial 2
- */
-#define VCP2_GEN_POLY_2    0x50
-
-/**
- *  GSM/Edge/GPRS generator polynomial 3
- */
-#define VCP2_GEN_POLY_3    0xF0
-
-/**
- *  GSM/Edge/GPRS generator polynomial 4
- */
-#define VCP2_GEN_POLY_4    0x6C
-
-/**
- *  GSM/Edge/GPRS generator polynomial 5
- */
-#define VCP2_GEN_POLY_5    0x94
-
-/**
- *  GSM/Edge/GPRS generator polynomial 6
- */
-#define VCP2_GEN_POLY_6    0xF4
-
-/**
- *  GSM/Edge/GPRS generator polynomial 7
- */
-#define VCP2_GEN_POLY_7    0xE4
-
-/**
- *  NULL generator polynomial for GSM/Edge/GPRS
- */
-#define VCP2_GEN_POLY_GNULL 0x00
-
-/**
-@}
-*/
-
-/** @addtogroup CSL_VCP2_DATASTRUCT
- @{ */
-
-/** VCP Peripheral ID structure */
-typedef struct
-{
-    /** Peripheral type */
-    Uint8 type;
-    /** Peripheral class */
-    Uint8 pid_class;
-    /** Peripheral revision */
-    Uint8 rev;
-} VCP2_PID;
-
-/**
- *  VCP code rate type
- */
-typedef Uint32 VCP2_Rate;
-
-/**
- *  VCP input configuration structure that holds all of the configuration
- *  values that are to be transferred to the VCP via the EDMA.
- */
-typedef struct
-{
-    /** Value of VCP input configuration register 0 */
-    Uint32 ic0;
-    /** Value of VCP input configuration register 1 */
-    Uint32 ic1;
-    /** Value of VCP input configuration register 2 */
-    Uint32 ic2;
-    /** Value of VCP input configuration register 3 */
-    Uint32 ic3;
-    /** Value of VCP input configuration register 4 */
-    Uint32 ic4;
-    /** Value of VCP input configuration register 5 */
-    Uint32 ic5;
-} VCP2_ConfigIc;
-
-/**
- *  VCP channel parameters structure that holds all of the information
- *  concerning the user channel. These values are used to generate the
- *  appropriate input configuration values for the VCP and to program
- *  the EDMA.
- */
-typedef struct
-{
-    /** Code rate */
-    VCP2_Rate rate;
-    /** Constraint length */
-    Uint8 constLen;
-    /** Polynomial 0 */
-    Uint8 poly0;
-    /** Polynomial 1 */
-    Uint8 poly1;
-    /** Polynomial 2 */
-    Uint8 poly2;
-    /** Polynomial 3 */
-    Uint8 poly3;
-    /** Yamamoto threshold value*/
-    Uint16 yamTh;
-    /** Frame length i.e. number of symbols in a frame*/
-    Uint16 frameLen;
-    /** Reliability length */
-    Uint16 relLen;
-    /** Convergence distance */
-    Uint16 convDist;
-    /** Traceback state index */
-    Uint16 traceBackIndex;
-    /** Traceback state index enable/disable */
-    Bool traceBackEn;
-    /** Hard decision output ordering */
-    Uint16 outOrder;
-    /** Maximum initial state metric */
-    Int16 maxSm;
-    /** Minimum initial state metric */
-    Int16 minSm;
-    /** State index set to the maximum initial state metric*/
-    Uint8 stateNum;
-    /** Branch metrics buffer length in input FIFO */
-    Uint8 bmBuffLen;
-    /** Decisions buffer length in output FIFO */
-    Uint8 decBuffLen;
-    /** Traceback mode */
-    Uint8 traceBack;
-    /** Output parameters read flag */
-    Uint8 readFlag;
-    /** Decision selection: hard or soft */
-    Uint8 decision;
-    /** Number of branch metric frames*/
-    Uint16 numBmFrames;
-    /** Number of decision frames */
-    Uint16 numDecFrames;
-} VCP2_Params;
-
-/**
- *  VCP base parameter structure that is used to configure the VCP parameters
- *  structure with the given values using VCP2_genParams() function.
- */
-typedef struct
-{
-    /** Code rate */
-    VCP2_Rate rate;
-    /** Constraint length */
-    Uint8 constLen;
-    /** Frame length */
-    Uint16 frameLen;
-    /** Yamamoto threshold value */
-    Uint16 yamTh;
-    /** Maximum initial state metric value */
-    Uint8 stateNum;
-    /** Traceback convergement mode */
-    Bool tbConvrgMode;
-    /** Output decision type */
-    Uint8 decision;
-    /** Output parameters read flag */
-    Uint8 readFlag;
-    /** Enable/Disable tail biting */
-    Bool tailBitEnable;
-    /** Tailbiting traceback index mode */
-    Uint16 traceBackIndex;
-    /** Hard decision output ordering */
-    Uint8 outOrder;
-    /** Performance and speed */
-    Uint8 perf;
-} VCP2_BaseParams;
-
-/** VCP Error structure */
-typedef struct
-{
-    /** Traceback mode error */
-    Bool tbnaErr;
-    /** Frame length error */
-    Bool ftlErr;
-    /** Reliability + convergence distance error */
-    Bool fctlErr;
-    /** Max-Min error */
-    Bool maxminErr;
-    /** SYMX error */
-    Bool symxErr;
-    /** SYMR error */
-    Bool symrErr;
-} VCP2_Errors;
-
-/** VCP generator polynomials structure */
-typedef struct
-{
-    /** Generator polynomial 0 */
-    Uint8 poly0;
-    /** Generator polynomial 1 */
-    Uint8 poly1;
-    /** Generator polynomial 2 */
-    Uint8 poly2;
-    /** Generator polynomial 3 */
-    Uint8 poly3;
-} VCP2_Poly;
-
-/**************************************************************************\
-* Overlay structure typedef definition
-\**************************************************************************/
-typedef volatile CSL_Vcp2EdmaRegs           *CSL_Vcp2RegsOvly;
-typedef volatile CSL_Vcp2ConfigRegs         *CSL_Vcp2CfgRegsOvly;
-
-
-/**
- * This will have the base-address information for the peripheral instance
- */
-typedef struct {
-    /** Base-address of the registers of VCP2  */
-    CSL_Vcp2RegsOvly    regs;
-    /** Base-address of the Configuration registers of VCP2  */
-    CSL_Vcp2CfgRegsOvly cfgregs;
-} VCP2BaseAddress;
-
-/**
- * This structure/object holds the context of the instance of VCP2
- * opened using VCP2_init() function.
- *
- * Pointer to this object is passed as VCP2 Handle to all VCP2 CSL APIs.
- * VCP2_init() function intializes this structure based on the parameters
- * passed
- */
-typedef struct VCP2Obj_s {
-    /** Pointer to the register overlay structure of the Tcp2 */
-    CSL_Vcp2RegsOvly    regs;
-    /** Pointer to the Configuration registers overlay structure of the Tcp2 */
-    CSL_Vcp2CfgRegsOvly cfgregs;
-    /** Instance of TCP2 being referred by this object  */
-    CSL_InstNum         perNum;
-} VCP2Obj;
-
-/** This is a pointer to Vcp2Obj and is passed as the first
- *  parameter to all VCP2 CSL APIs
- */
-typedef struct VCP2Obj_s *VCP2Handle;
-
-/* @} */
-
-/** @addtogroup CSL_VCP2_FUNCTION
- @{ */
-
-/******************************************************************************
- * VCP2 global function declarations
- *****************************************************************************/
-
-extern void VCP2_genParams (
-    const VCP2_BaseParams * pConfigBase,
-    VCP2_Params           * pConfigParams
-);
-
-extern void VCP2_genIc (
-    const VCP2_Params     * pConfigParams,
-    VCP2_ConfigIc         * pConfigIc
-);
-
-extern VCP2Handle VCP2_init(
-    VCP2Obj         * pVcp2Obj,
-    Int32             instNum, 
-    Int32           * pStatus
-);
-
-extern CSL_Status  VCP2_Close (
-    VCP2Handle      hVcp2
-);
-
-/* @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif