www.pudn.com > H265+_C64X_2008.8.rar > TVP5150.c
/* /////////////////////////////////////////////////////////////////////////////// // // // Copyright (C) 2006-2008 Beijing, pengzhen (pengzhenxp@yahoo.com.cn) // // // /////////////////////////////////////////////////////////////////////////////// */ #include#include #include #include #include #include "_iic.h" #include "_TVP5150.h" static I2C_Handle hI2C[2] = {INV, INV}; /* * ======== TVP5150_open ======== */ static EDC_Handle TVP5150_open(String devName, Arg optArg) { Int devId = 0 ; /* Check if the addresse is correct */ if(devName[0] != '/') { devId = -1; } else if(devName[1] == '0') { devId = 0; } else if(devName[1] == '1'){ devId = 1; } return (EDC_Handle)devId; } /* * ======== TVP5150_close ======== */ static Int TVP5150_close(EDC_Handle handle) { Int devId = (int)handle; Uint8 addrI2C = (devId == 0) ? _TVP5150_IIC_ADDR0 : _TVP5150_IIC_ADDR1; Int nValue = 0 ; /*First Check if the Handle is correct */ if(devId == 0 || devId == 1) { /*Put _TVP5150 in power down mode */ nValue = 0x01 ; _IIC_write(hI2C[devId], addrI2C,SoftwareReset,(Uint8 *)&nValue, 1); return EDC_SUCCESS; } else { return EDC_FAILED; } } /* * ======== TVP5150_ctrl ======== */ static Int TVP5150_ctrl(EDC_Handle handle, TVP5150_Cmd cmd, Arg arg) { Int devId = (int)handle; Uint8 addrI2C = (devId == 0) ? _TVP5150_IIC_ADDR0 : _TVP5150_IIC_ADDR1; Int nValue ; //genericPtr = &_TVP5150_settingsDef[devId].generics; /*First Check if the Handle is correct */ if(devId != 0 && devId != 1) { devId =0 ; } switch(cmd) { case EDC_CONFIG: { TVP5150_ConfParams *TVP5150Params = (TVP5150_ConfParams *)arg; hI2C[devId] = TVP5150Params->hI2C; //enableIPortOutput(devId, TVP5150Params->enableIPortOutput); //setupUserDefResolution(arg); //configTVP5150(devId, TVP5150Params->inMode, TVP5150Params->outMode, // TVP5150Params->aFmt); //setTVP5150SyncMode(devId, TVP5150Params->enableBT656Sync); } nValue = 23 ; _IIC_write(hI2C[devId], addrI2C,VerticalBlankStart,(Uint8 *)&nValue, 1); /* PAL */ //nValue = 20 ; _IIC_write(hI2C[devId], addrI2C,VerticalBlankStart,(Uint8 *)&nValue, 1); /* NTSC */ nValue = 0x00 ; _IIC_write(hI2C[devId], addrI2C,AnalogInputControl1,(Uint8 *)&nValue, 1); /* */ nValue = 0x7F ; _IIC_write(hI2C[devId], addrI2C,LuminanceControl,(Uint8 *)&nValue, 1); /* */ nValue = 0x29 ; _IIC_write(hI2C[devId], addrI2C,MiscellaneousControls,(Uint8 *)&nValue, 1); break; case EDC_RESET: //nValue = 0x01 ; _IIC_write(hI2C[devId], addrI2C,SoftwareReset,(Uint8 *)&nValue, 1); nValue = 0x00 ; _IIC_write(hI2C[devId], addrI2C,SoftwareReset,(Uint8 *)&nValue, 1); break; /* case TVP5150_POWERDOWN: nValue = 0x00 ; _IIC_write(hI2C[devId], addrI2C,SoftwareReset,(Uint8 *)&nValue, 1); break; case TVP5150_POWERUP: nValue = 0x00 ; _IIC_write(hI2C[devId], addrI2C,SoftwareReset,(Uint8 *)&nValue, 1); break; case TVP5150_SET_AMUXMODE: if( (int)(arg) >= 6) { // svideo input nValue = 0x01 ; _IIC_write(hI2C[devId], addrI2C,AnalogInputControl1,(Uint8 *)&nValue, 1); nValue = 0x80 ; _IIC_write(hI2C[devId], addrI2C,LuminanceControl,(Uint8 *)&nValue, 1); }else { nValue = 0x00 ; _IIC_write(hI2C[devId], addrI2C,AnalogInputControl1,(Uint8 *)&nValue, 1); //nValue = 0x7F ; _IIC_write(hI2C[devId], addrI2C,LuminanceControl,(Uint8 *)&nValue, 1); } break;*/ } return EDC_SUCCESS; } /**************************************************************************/ /* End of file */ /**************************************************************************/ EDC_Fxns TVP5150_Fxns = { TVP5150_open, TVP5150_close, TVP5150_ctrl }; /**************************************************************************/ /* End of file */ /**************************************************************************/