亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tvp51xx.c

?? DM642算法例程 視頻回放 基于DSPBIOS
?? C
字號:
/*
 *  Copyright 2004 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/* August 2004 */
/**************************************************************************/
/* tvp51xx.c file */
/**************************************************************************/
#include <std.h>
#include <csl_i2c.h>      
#include <csl_stdinc.h>
#include <edc.h>
#include <tvp51xx.h>
                           

#include "_iic.h"
#include "_tvp51xx.h"

#define _SAA7113A_IIC_ADDR       (0x48>>1) 
#define _SAA7113B_IIC_ADDR       (0x4A>>1)

#define	NTSC_VL	525
#define PAL_VL	625
#define AutoDetect
typedef enum {INTERLACED = TRUE, PROGRESSIVE = FALSE} FrameType ;   

static void configTVP5150(Arg arg);
static void configTVP5146(Arg arg);
static void powerdownTVP51XX(Int channel, Bool powerDownEnable);
static void resetTVP51XX(int devId);
static void setTVP5146AMuxMode(int devId, int Arg);
static void setTVP5150AMuxMode(int devId, int Arg);
static Int TVP51XX_ctrl(EDC_Handle handle, TVP51XX_Cmd cmd, Arg arg);
static Int TVP51XX_close(EDC_Handle handle);
static EDC_Handle TVP51XX_open(String devName, Arg optArg);



EDC_Fxns TVP51XX_Fxns = {
    TVP51XX_open,
    TVP51XX_close,
    TVP51XX_ctrl                   
};

static I2C_Handle hI2C[2] = {INV, INV};


static void configSaa7113(Arg arg)
{
    Uint8 addrI2C=_SAA7113B_IIC_ADDR;
    Uint8 *p;
    TVP51XX_ConfParams *TVP51XXParams = (TVP51XX_ConfParams *)arg;

		
static Uint8 saa7113_table[] = 
	   {0x08,0xc3,0x33,0x00,0x00,0xe9,0x0d,0x00,//01-08
		0x01,0x80,0x47,0x40,0x00,0x01,0x2a,0x08,//09-10
		0x0c,0x7e,0x02,0x00,0x17,0x35,0x02,0x00,//11-18
		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//19-20
		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//21-28	
		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//29-30
		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//31-38	
		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,//39-40
		0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//41-48
		0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//49-50
		0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,//51-58	
		0x54,0x07,0x83,0x00,0x00,0x00,0x00		//59-5f 00
	   };

    _IIC_write(TVP51XXParams->hI2C, addrI2C,0x01, saa7113_table,0x5f);
}


/*
 * ======== configTVP5150 ========
 */
static void configTVP5150(Arg arg)
{
    Uint8 addrI2C=_TVP5150_IIC_ADDR;
	Uint8 misc_ctrl = 0x6D;
	Uint8 output_format = 0x07;
	Uint8 input_sel = 0x00;	// for cvbs port1
	Uint8 pin_cfg = 0x00;
	Uint8 chro_ctrl_2 = 0x14;
	Uint8 nFandVMode = 0x15;

	
    TVP51XX_ConfParams *TVP51XXParams = (TVP51XX_ConfParams *)arg;
		
#ifdef	AutoDetect	
	Uint16 verticalline = NTSC_VL;
	Uint8 temp;
	
	_IIC_read(TVP51XXParams->hI2C, addrI2C, 0x84, &temp, 1);
	verticalline = temp;
	_IIC_read(TVP51XXParams->hI2C, addrI2C, 0x85, &temp, 1);
	verticalline = verticalline|(temp<<8);
	
	
	if(verticalline == NTSC_VL)
	{
		TVP51XXParams->videoMode = TVP51XX_MODE_NTSCSqp;
	}
	else
	{
		TVP51XXParams->videoMode = TVP51XX_MODE_PALSqp;
	};
#endif
	
    if(TVP51XXParams->videoMode == TVP51XX_MODE_PAL601 || TVP51XXParams->videoMode == TVP51XX_MODE_PALSqp)
    {
    	chro_ctrl_2 = 0x54;
    }

	if(TVP51XXParams->inputPort)
		input_sel = 0x02;	//CVBS port2
	else
		input_sel = 0x0;	//CVBS port1

    _IIC_write(TVP51XXParams->hI2C, addrI2C,0x00, &input_sel,0x1);
    _IIC_write(TVP51XXParams->hI2C, addrI2C,0x03, &misc_ctrl,0x1);
    _IIC_write(TVP51XXParams->hI2C, addrI2C,0x0D, &output_format,0x1);
    _IIC_write(TVP51XXParams->hI2C, addrI2C,0x0F, &pin_cfg,0x1);
    _IIC_write(TVP51XXParams->hI2C, addrI2C,0x1B, &chro_ctrl_2,0x1);

	//Set F and V bits mode to "Toggle F Bit Always"
	_IIC_write(TVP51XXParams->hI2C, addrI2C,0x15, &nFandVMode, 1);

}

/*
 * ======== configTVP5146 ========
 */
static void configTVP5146(Arg arg)
{
    TVP51XX_ConfParams *TVP51XXParams = (TVP51XX_ConfParams *)arg;
    Uint8 addrI2C = _TVP5146_IIC_ADDR;

	Uint8 input_sel = 0x05;
	Uint8 output2 = 0x11;
	Uint8 output3 = 0xFE;
	Uint8 output4 = 0xFF;
	Uint8 output1 = 0x40;
	
	Uint8 nFandVMode = 0x16;

	

#ifdef	AutoDetect	
	Uint16 verticalline = NTSC_VL;
	Uint8 *externalsyn;
	Uint8 temp;
	int	i;
	
	_IIC_read(TVP51XXParams->hI2C, addrI2C, 0x42, &temp, 1);
	verticalline = temp;
	_IIC_read(TVP51XXParams->hI2C, addrI2C, 0x43, &temp, 1);
	verticalline = verticalline|(temp<<8);
	
	
	if(verticalline == NTSC_VL)
	{
		if(TVP51XXParams->videoMode == TVP51XX_MODE_NTSC601)
			externalsyn = (Uint8 *)NTSC601_EXEC;
		else
		{
			TVP51XXParams->videoMode = TVP51XX_MODE_NTSCSqp;
			externalsyn = (Uint8 *)NTSCSGP_EXEC;
		}
			
	}
	else
	{
		if(TVP51XXParams->videoMode == TVP51XX_MODE_PAL601)
			externalsyn = (Uint8 *)PAL601_EXEC;
		else
			{
				TVP51XXParams->videoMode = TVP51XX_MODE_PALSqp;
				externalsyn = (Uint8 *)PALSGP_EXEC;
			}
	};
	if (!TVP51XXParams->enableBT656Sync)
	{
		output1 = 0x43;//10bit YCbCr with separate syn
    	output4 = 0xAF;
    	temp = 0x16;
    	for(i =0; i<16; i++)
    	_IIC_write(TVP51XXParams->hI2C, addrI2C, temp++, externalsyn++, 1);
	}

#else
	Uint8 temp	=	0x16;
	Uint8 *externalsyn;
	Uint8 ext1;
	int	i;

	switch(TVP51XXParams->videoMode)
	{
		case	TVP51XX_MODE_NTSC601:
			externalsyn = (Uint8 *)NTSC601_EXEC;
			break;
		case	TVP51XX_MODE_NTSCSqp:
			externalsyn = (Uint8 *)NTSCSGP_EXEC;
			break;
		case	TVP51XX_MODE_PAL601:
			externalsyn = (Uint8 *)PAL601_EXEC;
			break;
		case	TVP51XX_MODE_PALSqp:
			externalsyn = (Uint8 *)PALSGP_EXEC;
			break;
	};
	
	if (!TVP51XXParams->enableBT656Sync)
	{
		output1 = 0x43;//10bit YCbCr with separate syn
    	output4 = 0xAF;
    	
    	for(i =0; i<16; i++)    	
    	_IIC_write(TVP51XXParams->hI2C, addrI2C, temp++, externalsyn++, 1);
    	
	}
	
#endif
    switch(TVP51XXParams->aFmt)
    {
		case TVP51XX_AFMT_COMPOSITE:
			input_sel = 0x05;
			break;
		case TVP51XX_AFMT_SVIDEO:
			input_sel = 0x46;
			break;
		case TVP51XX_AFMT_RGB:
			input_sel = 0x85;
			break;
		case TVP51XX_AFMT_YPBPR:
			input_sel = 0x95;
			break;
	}
	_IIC_write(TVP51XXParams->hI2C, addrI2C,0x00, &input_sel,0x1);	
	_IIC_write(TVP51XXParams->hI2C, addrI2C,0x33, &output1,0x1);
    _IIC_write(TVP51XXParams->hI2C, addrI2C,0x34, &output2,0x1);
    _IIC_write(TVP51XXParams->hI2C, addrI2C,0x35, &output3,0x1);
	_IIC_write(TVP51XXParams->hI2C, addrI2C,0x36, &output4,0x1);

	//Set F and V bits mode to "Toggle F Bit Always"
	_IIC_write(TVP51XXParams->hI2C, addrI2C,0x75, &nFandVMode, 1);

}



/*
 * ======== powerdownTVP51XX ========
 */
static void powerdownTVP51XX(int devId, Bool powerDownEnable)
{
    Uint8 powerdownSettings = 0x01;


    /*Put _TVP51XX in power down mode */
    if(!powerDownEnable) {
        powerdownSettings = 0x00;
    }
    if (devId)
    	_IIC_write(hI2C[devId], _TVP5150_IIC_ADDR,0x02,&powerdownSettings,1);
    else
    	_IIC_write(hI2C[devId], _TVP5146_IIC_ADDR,0x03,&powerdownSettings,1);
}

/*
 * ======== resetTVP5150A ========
 */
static void resetTVP51XX(int devId)
{
/***************************************************************/
/* Reset 51xx */
/***************************************************************/
    powerdownTVP51XX(devId, FALSE);
}

static void setTVP5150AMuxMode(int devId, int arg)
{
	Uint8 input_sel = (Uint8)arg * 2;	

    _IIC_write(hI2C[devId], _TVP5150_IIC_ADDR, 0x00, &input_sel,0x1);
}

static void setTVP5146AMuxMode(int devId, int arg)
{
	Uint8 input_sel;
	
	if(arg == 1){	/* composite */
		input_sel = 0x05; 
    }
	else if(arg == 0) { /* s-video */
		input_sel = 0x46;
	} else {
	    return;
	}
	_IIC_write(hI2C[devId], _TVP5146_IIC_ADDR,0x00, &input_sel,0x1);	
}



/*
 * ======== TVP51XX_close ========
 */
static Int TVP51XX_close(EDC_Handle edcHandle) 
{
	

    /*First Check if the Handle is correct */
	if((int)edcHandle > 0x1 || (int)edcHandle < 0)
	{
        return EDC_FAILED;
    }
    else
    {
        /*Put _TVP51XX in power down mode */
        powerdownTVP51XX((int)edcHandle, TRUE);
        return EDC_SUCCESS;    
    }
}

/*
 * ======== TVP51XX_ctrl ========
 */
static Int TVP51XX_ctrl(EDC_Handle edcHandle, TVP51XX_Cmd cmd, Arg arg)
{
    Int devId = (int)edcHandle;
    
    switch(cmd) 
    {
        case EDC_CONFIG:  
        {
            hI2C[devId] = ((TVP51XX_ConfParams *)arg)->hI2C;

			if(devId==1) 
				configTVP5150(arg);
				//configSaa7113(arg);
            else   
       			configTVP5146(arg);
            
        	break;
        }
        case EDC_RESET:
        	resetTVP51XX(devId);
        	break;
        case TVP51XX_POWERDOWN:
        	powerdownTVP51XX(devId, TRUE);
        	break;                 
        case TVP51XX_POWERUP:
        	powerdownTVP51XX(devId, FALSE);
        	break;                         
        case TVP51XX_SET_AMUXMODE:
			if(devId) 
				setTVP5150AMuxMode(devId, arg);
            else
            	setTVP5146AMuxMode(devId, arg);
        	break;
    }                          
    return EDC_SUCCESS;
}

 
/*
 * ======== TVP51XX_open ========
 */
static EDC_Handle TVP51XX_open(String devName, Arg optArg)
{
    int handle;

    /* Check if the addresse is correct */
    if(devName[0] != '/') 
    {
        handle = -1;
    }
    else
    {
    	handle = (int)(devName[1] - '0');
    }
    
    if (handle < 0||handle >1)
    {
    	return (EDC_Handle)EDC_FAILED;
    }
    
   return (EDC_Handle)handle;
}


/**************************************************************************/
/* End of file                                                                            */
/**************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看91视频| 欧美放荡的少妇| 91色视频在线| 欧美在线观看18| 欧美日韩亚洲综合在线 | 欧美日韩激情一区| 欧美性生交片4| 色偷偷久久一区二区三区| 欧美在线一区二区三区| 日韩一区二区免费视频| 久久久久久久综合| 亚洲视频一区在线| 一区二区成人在线| 麻豆精品久久久| 精品在线观看免费| 波波电影院一区二区三区| 国产精品一区二区果冻传媒| 99久久er热在这里只有精品66| 亚洲午夜久久久| 日韩精品一区二区三区中文不卡 | 亚洲123区在线观看| 一本色道久久综合亚洲aⅴ蜜桃 | 成人免费在线视频| 美女视频一区二区三区| 在线视频观看一区| 中国av一区二区三区| 日产欧产美韩系列久久99| 91同城在线观看| 精品国精品国产尤物美女| 亚洲va天堂va国产va久| 91玉足脚交白嫩脚丫在线播放| 日韩色视频在线观看| 亚洲午夜羞羞片| 国产电影精品久久禁18| 日韩三级精品电影久久久| 亚洲一区二区视频在线观看| 成人国产精品免费观看动漫| 久久只精品国产| 极品美女销魂一区二区三区| 91精品国产一区二区| 日日夜夜免费精品视频| 欧美性色综合网| 一区二区三区四区不卡在线| 91免费观看视频| 国产精品久久久久久一区二区三区 | 91精品久久久久久久91蜜桃| 亚洲综合色噜噜狠狠| 色综合久久六月婷婷中文字幕| 欧美经典一区二区三区| 国产精品一区二区免费不卡 | 亚洲大片在线观看| 欧美亚洲一区二区在线| 亚洲一区在线电影| 欧美精选一区二区| 蜜臀久久99精品久久久久久9 | 中文字幕一区二区在线观看| 成人午夜av影视| 中文字幕中文字幕一区二区| 99国产精品国产精品久久| 国产精品乱码久久久久久| 成人高清免费观看| 亚洲人成亚洲人成在线观看图片 | 国产成人啪午夜精品网站男同| 日韩你懂的在线观看| 日韩va欧美va亚洲va久久| 精品日韩欧美在线| 国产激情精品久久久第一区二区 | 欧美三级日韩三级国产三级| 午夜精品福利在线| 欧美一区二区视频免费观看| 国内精品久久久久影院一蜜桃| 国产亚洲欧洲997久久综合| 床上的激情91.| 亚洲精品视频一区二区| 欧美日韩在线综合| 精品在线亚洲视频| 中文字幕一区二区三区四区不卡| 在线观看视频91| 青青草国产精品97视觉盛宴| 久久综合久久综合久久综合| 成人黄色网址在线观看| 亚洲综合一区二区精品导航| 日韩欧美在线123| 国产成人av一区二区三区在线 | 国产精品午夜久久| 欧美探花视频资源| 久久99精品久久久久久动态图| 欧美激情综合五月色丁香| 在线观看一区日韩| 久久超级碰视频| 夜夜嗨av一区二区三区网页| 欧美电视剧在线看免费| 91免费视频网| 国产一区二区三区在线观看免费视频| 中文字幕在线一区免费| 欧美一区二区精品在线| 不卡的电影网站| 日韩成人免费看| 中文字幕中文乱码欧美一区二区| 5566中文字幕一区二区电影| 成人激情动漫在线观看| 久久精品久久综合| 亚洲第一会所有码转帖| 国产精品欧美综合在线| 91麻豆精品国产自产在线观看一区 | 国产精品不卡一区| 精品久久久久久无| 欧美色男人天堂| www.亚洲色图.com| 国产一区二区三区黄视频| 日日夜夜免费精品| 夜夜嗨av一区二区三区| 国产精品日韩精品欧美在线| 日韩精品一区二区三区蜜臀| 欧美少妇性性性| 一本色道久久综合亚洲精品按摩| 高清国产午夜精品久久久久久| 六月丁香婷婷色狠狠久久| 五月综合激情日本mⅴ| 洋洋av久久久久久久一区| 国产精品成人在线观看| 国产亚洲制服色| 久久网站热最新地址| 日韩一级欧美一级| 91精品蜜臀在线一区尤物| 欧美日韩国产美| 欧美日韩免费观看一区二区三区 | 亚洲国产成人av好男人在线观看| 国产精品热久久久久夜色精品三区| 日韩欧美成人午夜| 日韩一级二级三级精品视频| 欧美精品xxxxbbbb| 欧美一级淫片007| 欧美精品v日韩精品v韩国精品v| 欧日韩精品视频| 日本道色综合久久| 色综合久久中文综合久久97 | 久久精品国内一区二区三区| 日韩精品欧美精品| 美国十次综合导航| 美女任你摸久久| 久久草av在线| 国产精品小仙女| 成人app下载| 色综合色狠狠综合色| 91久久线看在观草草青青| 色噜噜狠狠成人网p站| 欧美性色综合网| 91精品国产丝袜白色高跟鞋| 欧美一卡2卡3卡4卡| 久久这里只有精品6| 欧美高清在线精品一区| ...xxx性欧美| 亚洲福利一区二区| 美日韩黄色大片| 成人性视频网站| 一本色道久久综合精品竹菊| 欧美日韩国产高清一区二区| 欧美精品tushy高清| 日韩女优视频免费观看| 中文无字幕一区二区三区| 亚洲欧洲无码一区二区三区| 一个色妞综合视频在线观看| 免费人成网站在线观看欧美高清| 狠狠网亚洲精品| 91香蕉视频污| 日韩欧美国产麻豆| 国产欧美精品区一区二区三区 | 日本大香伊一区二区三区| 欧美日韩国产首页| 久久蜜臀中文字幕| 一区二区三区国产豹纹内裤在线| 首页国产欧美日韩丝袜| 国产成人av一区| 欧美日韩国产欧美日美国产精品| 日韩精品一区二区三区蜜臀| 中文字幕亚洲电影| 免费观看一级特黄欧美大片| 成人免费观看视频| 欧美一区二区三区四区在线观看| 国产人成亚洲第一网站在线播放| 亚洲精品中文字幕乱码三区| 蜜臀久久99精品久久久久久9| 波多野结衣中文一区| 日韩三级精品电影久久久| 自拍偷拍亚洲欧美日韩| 激情深爱一区二区| 在线观看www91| 日本一区二区三区在线观看| 日产国产高清一区二区三区| 国产91综合一区在线观看| 欧美三级三级三级| 国产精品的网站| 韩国精品免费视频| 欧美日韩国产另类不卡| 亚洲三级在线看| 福利91精品一区二区三区| 日韩一区二区在线观看| 亚洲欧美日本在线| 成人在线一区二区三区|