/* * API.h * * This module provides C callable APIs for each of the command supported by LightCrafter4500 platform and detailed in the programmer's guide. * * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ * ALL RIGHTS RESERVED * */ #ifndef API_H #define API_H /* Bit masks. */ #define BIT0 0x01 #define BIT1 0x02 #define BIT2 0x04 #define BIT3 0x08 #define BIT4 0x10 #define BIT5 0x20 #define BIT6 0x40 #define BIT7 0x80 #define BIT8 0x0100 #define BIT9 0x0200 #define BIT10 0x0400 #define BIT11 0x0800 #define BIT12 0x1000 #define BIT13 0x2000 #define BIT14 0x4000 #define BIT15 0x8000 #define BIT16 0x00010000 #define BIT17 0x00020000 #define BIT18 0x00040000 #define BIT19 0x00080000 #define BIT20 0x00100000 #define BIT21 0x00200000 #define BIT22 0x00400000 #define BIT23 0x00800000 #define BIT24 0x01000000 #define BIT25 0x02000000 #define BIT26 0x04000000 #define BIT27 0x08000000 #define BIT28 0x10000000 #define BIT29 0x20000000 #define BIT30 0x40000000 #define BIT31 0x80000000 #define STAT_BIT_FLASH_BUSY BIT3 #define HID_MESSAGE_MAX_SIZE 512 typedef struct _hidmessageStruct { struct _hidhead { struct _packetcontrolStruct { unsigned char dest :3; /* 0 - ProjCtrl; 1 - RFC; 7 - Debugmsg */ unsigned char reserved :2; unsigned char nack :1; /* Command Handler Error */ unsigned char reply :1; /* Host wants a reply from device */ unsigned char rw :1; /* Write = 0; Read = 1 */ }flags; unsigned char seq; unsigned short length; }head; union { unsigned short cmd; unsigned char data[HID_MESSAGE_MAX_SIZE]; }text; }hidMessageStruct; typedef struct _readCmdData { unsigned char CMD2; unsigned char CMD3; unsigned short len; }CmdFormat; typedef struct _rectangle { unsigned short firstPixel; unsigned short firstLine; unsigned short pixelsPerLine; unsigned short linesPerFrame; }rectangle; typedef enum { SOURCE_SEL, PIXEL_FORMAT, CLK_SEL, CHANNEL_SWAP, FPD_MODE, CURTAIN_COLOR, POWER_CONTROL, FLIP_LONG, FLIP_SHORT, TPG_SEL, PWM_INVERT, LED_ENABLE, GET_VERSION, SW_RESET, DMD_PARK, BUFFER_FREEZE, STATUS_HW, STATUS_SYS, STATUS_MAIN, CSC_DATA, GAMMA_CTL, BC_CTL, PWM_ENABLE, PWM_SETUP, PWM_CAPTURE_CONFIG, GPIO_CONFIG, LED_CURRENT, DISP_CONFIG, TEMP_CONFIG, TEMP_READ, MEM_CONTROL, I2C_CONTROL, LUT_VALID, DISP_MODE, TRIG_OUT1_CTL, TRIG_OUT2_CTL, RED_STROBE_DLY, GRN_STROBE_DLY, BLU_STROBE_DLY, PAT_DISP_MODE, PAT_TRIG_MODE, PAT_START_STOP, BUFFER_SWAP, BUFFER_WR_DISABLE, CURRENT_RD_BUFFER, PAT_EXPO_PRD, INVERT_DATA, PAT_CONFIG, MBOX_ADDRESS, MBOX_CONTROL, MBOX_DATA, TRIG_IN1_DELAY, TRIG_IN2_CONTROL, SPLASH_LOAD, SPLASH_LOAD_TIMING, GPCLK_CONFIG, PULSE_GPIO_23, ENABLE_LCR_DEBUG, TPG_COLOR, PWM_CAPTURE_READ, PROG_MODE, BL_STATUS, BL_SPL_MODE, BL_GET_MANID, BL_GET_DEVID, BL_GET_CHKSUM, BL_SET_SECTADDR, BL_SECT_ERASE, BL_SET_DNLDSIZE, BL_DNLD_DATA, BL_FLASH_TYPE, BL_CALC_CHKSUM, BL_PROG_MODE, }LCR_CMD; int LCR_SetInputSource(unsigned int source, unsigned int portWidth); int LCR_GetInputSource(unsigned int *pSource, unsigned int *portWidth); int LCR_SetPixelFormat(unsigned int format); int LCR_GetPixelFormat(unsigned int *pFormat); int LCR_SetPortClock(unsigned int clock); int LCR_GetPortClock(unsigned int *pClock); int LCR_SetDataChannelSwap(unsigned int port, unsigned int swap); int LCR_GetDataChannelSwap(unsigned int *pPort, unsigned int *pSwap); int LCR_SetFPD_Mode_Field(unsigned int PixelMappingMode, bool SwapPolarity, unsigned int FieldSignalSelect); int LCR_GetFPD_Mode_Field(unsigned int *pPixelMappingMode, bool *pSwapPolarity, unsigned int *pFieldSignalSelect); int LCR_SetPowerMode(bool); int LCR_SetLongAxisImageFlip(bool); bool LCR_GetLongAxisImageFlip(); int LCR_SetShortAxisImageFlip(bool); bool LCR_GetShortAxisImageFlip(); int LCR_SetTPGSelect(unsigned int pattern); int LCR_GetTPGSelect(unsigned int *pPattern); int LCR_SetPWMInvert(bool invert); int LCR_GetPWMInvert(bool *inverted); int LCR_SetLedEnables(bool SeqCtrl, bool Red, bool Green, bool Blue); int LCR_GetLedEnables(bool *pSeqCtrl, bool *pRed, bool *pGreen, bool *pBlue); int LCR_GetVersion(unsigned int *pApp_ver, unsigned int *pAPI_ver, unsigned int *pSWConfig_ver, unsigned int *pSeqConfig_ver); int LCR_SoftwareReset(void); int LCR_GetStatus(unsigned char *pHWStatus, unsigned char *pSysStatus, unsigned char *pMainStatus); int LCR_SetPWMEnable(unsigned int channel, bool Enable); int LCR_GetPWMEnable(unsigned int channel, bool *pEnable); int LCR_SetPWMConfig(unsigned int channel, unsigned int pulsePeriod, unsigned int dutyCycle); int LCR_GetPWMConfig(unsigned int channel, unsigned int *pPulsePeriod, unsigned int *pDutyCycle); int LCR_SetPWMCaptureConfig(unsigned int channel, bool enable, unsigned int sampleRate); int LCR_GetPWMCaptureConfig(unsigned int channel, bool *pEnabled, unsigned int *pSampleRate); int LCR_SetGPIOConfig(unsigned int pinNum, bool enAltFunc, bool altFunc1, bool dirOutput, bool outTypeOpenDrain, bool pinState); int LCR_GetGPIOConfig(unsigned int pinNum, bool *pEnAltFunc, bool *pAltFunc1, bool *pDirOutput, bool *pOutTypeOpenDrain, bool *pState); int LCR_GetLedCurrents(unsigned char *pRed, unsigned char *pGreen, unsigned char *pBlue); int LCR_SetLedCurrents(unsigned char RedCurrent, unsigned char GreenCurrent, unsigned char BlueCurrent); int LCR_SetDisplay(rectangle croppedArea, rectangle displayArea); int LCR_GetDisplay(rectangle *pCroppedArea, rectangle *pDisplayArea); int LCR_MemRead(unsigned int addr, unsigned int *readWord); int LCR_MemWrite(unsigned int addr, unsigned int data); int LCR_ValidatePatLutData(unsigned int *pStatus); int LCR_SetPatternDisplayMode(bool external); int LCR_GetPatternDisplayMode(bool *external); int LCR_SetTrigOutConfig(unsigned int trigOutNum, bool invert, unsigned int rising, unsigned int falling); int LCR_GetTrigOutConfig(unsigned int trigOutNum, bool *pInvert,unsigned int *pRising, unsigned int *pFalling); int LCR_SetRedLEDStrobeDelay(unsigned char rising, unsigned char falling); int LCR_SetGreenLEDStrobeDelay(unsigned char rising, unsigned char falling); int LCR_SetBlueLEDStrobeDelay(unsigned char rising, unsigned char falling); int LCR_GetRedLEDStrobeDelay(unsigned char *, unsigned char *); int LCR_GetGreenLEDStrobeDelay(unsigned char *, unsigned char *); int LCR_GetBlueLEDStrobeDelay(unsigned char *, unsigned char *); int LCR_SetProgrammingMode(bool EnterProgMode); int LCR_ExitProgrammingMode(void); int LCR_GetProgrammingMode(bool *ProgMode); int LCR_GetFlashManID(unsigned short *manID); int LCR_GetFlashDevID(unsigned long long *devID); int LCR_GetBLStatus(unsigned char *BL_Status); int LCR_BLSpecialMode(unsigned int Mode); int LCR_SetFlashAddr(unsigned int Addr); int LCR_FlashSectorErase(void); int LCR_SetDownloadSize(unsigned int dataLen); int LCR_DownloadData(unsigned char *pByteArray, unsigned int dataLen); void LCR_WaitForFlashReady(void); int LCR_SetFlashType(unsigned char Type); int LCR_CalculateFlashChecksum(void); int LCR_GetFlashChecksum(unsigned int*checksum); int LCR_SetMode(bool SLmode); int LCR_GetMode(bool *pMode); int LCR_LoadSplash(unsigned int index); int LCR_GetSplashIndex(unsigned int *pIndex); int LCR_SetTPGColor(unsigned short redFG, unsigned short greenFG, unsigned short blueFG, unsigned short redBG, unsigned short greenBG, unsigned short blueBG); int LCR_GetTPGColor(unsigned short *pRedFG, unsigned short *pGreenFG, unsigned short *pBlueFG, unsigned short *pRedBG, unsigned short *pGreenBG, unsigned short *pBlueBG); int LCR_ClearPatLut(void); int LCR_AddToPatLut(int TrigType, int PatNum,int BitDepth,int LEDSelect,bool InvertPat, bool InsertBlack,bool BufSwap, bool trigOutPrev); int LCR_GetPatLutItem(int index, int *pTrigType, int *pPatNum,int *pBitDepth,int *pLEDSelect,bool *pInvertPat, bool *pInsertBlack,bool *pBufSwap, bool *pTrigOutPrev); int LCR_SendPatLut(void); int LCR_SendSplashLut(unsigned char *lutEntries, unsigned int numEntries); int LCR_GetPatLut(int numEntries); int LCR_GetSplashLut(unsigned char *pLut, int numEntries); int LCR_SetPatternTriggerMode(bool); int LCR_GetPatternTriggerMode(bool *); int LCR_PatternDisplay(int Action); int LCR_SetPatternConfig(unsigned int numLutEntries, bool repeat, unsigned int numPatsForTrigOut2, unsigned int numSplash); int LCR_GetPatternConfig(unsigned int *pNumLutEntries, bool *pRepeat, unsigned int *pNumPatsForTrigOut2, unsigned int *pNumSplash); int LCR_SetExpsosure_FramePeriod(unsigned int exposurePeriod, unsigned int framePeriod); int LCR_GetExposure_FramePeriod(unsigned int *pExposure, unsigned int *pFramePeriod); int LCR_SetTrigIn1Delay(unsigned int Delay); int LCR_GetTrigIn1Delay(unsigned int *pDelay); int LCR_SetInvertData(bool invert); int LCR_PWMCaptureRead(unsigned int channel, unsigned int *pLowPeriod, unsigned int *pHighPeriod); int LCR_SetGeneralPurposeClockOutFreq(unsigned int clkId, bool enable, unsigned int clkDivider); int LCR_GetGeneralPurposeClockOutFreq(unsigned int clkId, bool *pEnabled, unsigned int *pClkDivider); int LCR_MeasureSplashLoadTiming(unsigned int startIndex, unsigned int numSplash); int LCR_ReadSplashLoadTiming(unsigned int *pTimingData); #endif // API_H