00001 /* 00002 * Copyright 2013 by Texas Instruments Incorporated. 00003 * 00004 */ 00005 00006 /* 00007 * Copyright (c) 2012, Texas Instruments Incorporated 00008 * All rights reserved. 00009 * 00010 * Redistribution and use in source and binary forms, with or without 00011 * modification, are permitted provided that the following conditions 00012 * are met: 00013 * 00014 * * Redistributions of source code must retain the above copyright 00015 * notice, this list of conditions and the following disclaimer. 00016 * 00017 * * Redistributions in binary form must reproduce the above copyright 00018 * notice, this list of conditions and the following disclaimer in the 00019 * documentation and/or other materials provided with the distribution. 00020 * 00021 * * Neither the name of Texas Instruments Incorporated nor the names of 00022 * its contributors may be used to endorse or promote products derived 00023 * from this software without specific prior written permission. 00024 * 00025 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00026 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 00027 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00028 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 00029 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00030 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00031 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 00032 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00033 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00034 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 00035 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00036 * 00037 */ 00053 #ifndef ti_sdo_fc_ires_vicp_IRES_VICP_ 00054 #define ti_sdo_fc_ires_vicp_IRES_VICP_ 00055 00058 00059 00060 #ifdef __cplusplus 00061 extern "C" { 00062 #endif 00063 00064 #include <ti/xdais/ires_common.h> 00065 00066 /* 00067 * @brief Maximum number of VICP resources(components) to be managed 00068 */ 00069 #define IRES_VICP_MAXRESOURCES 1 00070 00074 #define IRES_VICP_PROTOCOLNAME "ti.sdo.fc.ires.vicp" 00075 00084 #define VICP_MODNAME "ti.sdo.fc.ires.vicp" 00085 00086 /* 00087 * Note, we wrap the PROTOCOLVERSION in an ifdef so the 00088 * resource managers and algs get this version data placed in their object 00089 * files. Apps, which include rman.h, will have this 'NOPROTOCOLREV' defined. 00090 */ 00091 #ifndef ti_sdo_fc_ires_NOPROTOCOLREV 00092 00096 static IRES_ProtocolRevision IRES_VICP_PROTOCOLREVISION = {1, 0, 0}; 00097 00098 #endif 00099 00103 typedef struct IRES_VICP_Obj *IRES_VICP_Handle; 00104 00108 typedef struct IRES_VICP_ProtocolArgs { 00109 00110 int size; 00111 IRES_RequestMode mode; /* persistent or scratch resource requested */ 00112 short requestIMX; /* value of 1 to indicate resource requested, 00113 0 otherwise */ 00114 short requestVLCD; 00115 short requestSEQ; 00116 00117 } IRES_VICP_ProtocolArgs; 00118 00124 typedef struct IRES_VICP_Obj { 00125 00126 IRES_Obj ires; 00127 short assignedIMX; 00128 short assignedVLCD; 00129 short assignedSEQ; 00130 00131 } IRES_VICP_Obj; 00132 00133 00134 /* 00135 * @brief VICP Register Layout 00136 */ 00137 typedef struct IRES_VICP_Registers { 00138 00139 int size; 00141 unsigned char *vicp_umap1_base; 00142 unsigned char *vicp_cfg_base; 00143 00144 unsigned char *imgBuf_base; 00145 unsigned char *imgBufA_base; 00146 unsigned char *imgBufB_base; 00147 unsigned char *imxCoeffBuff_base; 00148 unsigned char *imxCmdBuf_base; 00149 unsigned char *vlcdDataBuf_base; 00150 unsigned char *qiqBuf_base; 00151 unsigned char *vlcdBuf_base; 00152 unsigned char *seqProgMem_base; 00153 unsigned char *seqDataMem_base; 00154 00155 unsigned int imgBuf_length; 00156 unsigned int imgBufA_length; 00157 unsigned int imgBufB_length; 00158 unsigned int imxCoeffBuff_length; 00159 unsigned int imxCmdBuf_length; 00160 unsigned int vlcdDataBuf_length; 00161 unsigned int qiqBuf_length; 00162 unsigned int vlcdBuf_length; 00163 unsigned int seqProgMem_length; 00164 unsigned int seqDataMem_length; 00165 00166 /* . . . */ 00167 00168 } IRES_VICP_Registers; 00169 00170 00171 /* 00172 * @brief Static Resource Properties 00173 */ 00174 typedef struct IRES_VICP_Properties { 00175 00176 int size; 00177 00178 IRES_VICP_Registers *globalRegs; 00179 00180 } IRES_VICP_Properties; 00181 00182 00183 #ifdef __cplusplus 00184 } 00185 #endif /* extern "C" */ 00186 00187 00190 #endif 00191 /* 00192 * @(#) ti.sdo.fc.ires.vicp; 1, 0, 1,3; 7-23-2013 14:12:18; /db/atree/library/trees/fc/fc-t12/src/ xlibrary 00193 00194 */ 00195