123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- /*
- * @file hv_app_DdcciFactory.h
- * @brief Header file of hisense ddcci factory.
- *
- * @verbatim
- * ==============================================================================
- * ##### How to use #####
- * ==============================================================================
- * (+) Use
- *
- * @author HiView SoC Software Team
- * @version 1.0.0
- * @date 2023-12-20
- */
- #ifndef _HV_APP_DDCCI_HISENSE_FACTORY_H
- #define _HV_APP_DDCCI_HISENSE_FACTORY_H
- #include "hv_comm_DataType.h"
- #include "hv_vos_Comm.h"
- #include "hv_comm_Define.h"
- /*
- Standard Examples
- Read:
- ddc cmd: [7] = 51 84 01 f8 e1 54 f7
- ddc send long [11] = 6e 88 02 00 f8 00 00 00 00 00 4c
- Read:
- ddc cmd: [6] = 51 83 f3 01 04 4a
- ddc send long [32] =
- 00000000: 6e 9d e3 01 04 20 38 30 20 38 31 20 38 32 20 38
- 00000010: 33 20 38 34 20 38 35 20 38 36 20 38 37 20 38 5d
- Set:
- ddc cmd: [9] = 51 86 03 f8 e1 59 00 01 fb
- */
- //Read Reg: 51 CmdType CmdH CmdL LenH LenL AddrMsb Addr2nd Addr3rd AddrLsb StartBit StopBit Crc (LenH LenL: 00 09)
- //response: 6E CmdType CmdH CmdL LenH LenL AddrMsb Addr2nd Addr3rd AddrLsb StartBit StopBit ValMsb Val2nd Val3rd ValLsb Crc (LenH LenL: 00 0D)
- //Write Reg: 51 CmdType CmdH CmdL LenH LenL AddrMsb Addr2nd Addr3rd AddrLsb StartBit StopBit ValMsb Val2nd Val3rd ValLsb Crc (LenH LenL: 00 0D)
- //response: 6E CmdType CmdH CmdL LenH LenL AddrMsb Addr2nd Addr3rd AddrLsb StartBit StopBit RC Crc (LenH LenL: 00 0A)
- //Read DDR: 51 CmdType CmdH CmdL LenH LenL AddrMsb Addr2nd Addr3rd AddrLsb ReadLenH ReadLenL Crc (LenH LenL: 00 09)
- //response: 6E CmdType CmdH CmdL LenH LenL AddrMsb Addr2nd Addr3rd AddrLsb ReadLenH ReadLenL Data[ReadLen] Crc (LenH LenL: ReadLen + 9, Total:ReadLen + 9 + 4)
- //Write DDR: 51 CmdType CmdH CmdL LenH LenL AddrMsb Addr2nd Addr3rd AddrLsb Data[WriteLen] Crc (LenH LenL: WriteLen + 7 + 4)
- //response: 6E CmdType CmdH CmdL LenH LenL AddrMsb Addr2nd Addr3rd AddrLsb RC Crc (LenH LenL: 00 08)
- //PQ CMD Read: 51 CmdType CmdH CmdL LenH LenL Crc (LenH LenL: 00 03)
- //response: 6E CmdType CmdH CmdL LenH LenL ValMsb Val2nd Val3rd ValLsb Crc (LenH LenL: 00 07)
- //PQ CMD Write: 51 CmdType CmdH CmdL LenH LenL ValMsb Val2nd Val3rd ValLsb Crc
- //response: 6E CmdType CmdH CmdL LenH LenL RC Crc (LenH LenL: 00 04)
- //PQ CMD Write Long: 51 CmdType CmdH CmdL LenH LenL Data[WriteLen] Crc
- //response: 6E CmdType CmdH CmdL LenH LenL RC Crc (LenH LenL: 00 04)
- //Write GammaLut: 51 CmdType CmdH CmdL LenH LenL Data[3 * 1025] Crc (LenH LenL: 3 * 1025 * 4 + 3)
- //response: 6E CmdType CmdH CmdL LenH LenL RC Crc (LenH LenL: 00 04)
- //Write Gamma Unit: 51 CmdType CmdH CmdL LenH LenL Val0 Val1 Val2 Val3 Row ColH ColL Crc
- //response: 6E CmdType CmdH CmdL LenH LenL RC Crc (LenH LenL: 00 04)
- #define DDCCI_FAC_RC_SUCCESS 0xE0
- #define DDCCI_FAC_RC_FAIL 0xCC
- #define DDCCI_FAC_DDC_HEADER_LEN 4 // 51 LenH LenL + CRC
- #define DDCCI_FAC_DDC_CMD_LEN 3 // CmdType CmdH CmdL
- #define DDCCI_FAC_DDC_CMD_FIX_LEN 7 // CmdType CmdH CmdL AddrMsb Addr2nd Addr3rd AddrLsb
- #define DDCCI_FAC_READ_REG_RSP_LEN 17
- #define DDCCI_FAC_WRITE_REG_RSP_LEN 14
- #define DDCCI_FAC_WRITE_DDR_RSP_LEN 12
- #define DDCCI_FAC_READ_PQ_CMD_RSP_LEN 11
- #define DDCCI_FAC_WRITE_PQ_CMD_RSP_LEN 8
- #define DDCCI_FAC_OFFSET_SRC 0 // 0x51
- #define DDCCI_FAC_OFFSET_CMD_TYPE 1
- #define DDCCI_FAC_OFFSET_CMD_HIGH 2
- #define DDCCI_FAC_OFFSET_CMD_LOW 3
- #define DDCCI_FAC_OFFSET_ADDR_MSB 6
- #define DDCCI_FAC_OFFSET_ADDR_2ND 7
- #define DDCCI_FAC_OFFSET_ADDR_3RD 8
- #define DDCCI_FAC_OFFSET_ADDR_LSB 9
- #define DDCCI_FAC_OFFSET_W_LONG_DATA 6
- #define DDCCI_FAC_OFFSET_W_DDR_DATA_START 10
- #define DDCCI_FAC_OFFSET_READ_DDR_LEN_HIGH 10
- #define DDCCI_FAC_OFFSET_READ_DDR_LEN_LOW 11
- #define DDCCI_FAC_OFFSET_R_DDR_RSP_DATA_START 12
- #define DDCCI_FAC_OFFSET_REG_START_BIT 10
- #define DDCCI_FAC_OFFSET_REG_STOP_BIT 11
- #define DDCCI_FAC_OFFSET_REG_VALUE_MSB 12
- #define DDCCI_FAC_OFFSET_REG_VALUE_2ND 13
- #define DDCCI_FAC_OFFSET_REG_VALUE_3RD 14
- #define DDCCI_FAC_OFFSET_REG_VALUE_LSB 15
- #define DDCCI_FAC_OFFSET_PQ_CMD_VALUE_MSB 6
- #define DDCCI_FAC_OFFSET_PQ_CMD_VALUE_2ND 7
- #define DDCCI_FAC_OFFSET_PQ_CMD_VALUE_3RD 8
- #define DDCCI_FAC_OFFSET_PQ_CMD_VALUE_LSB 9
- #define DDCCI_FAC_OFFSET_PQ_CMD_RC 6
- //PQ CMD Write: 51 LenH LenL CmdType CmdH CmdL Val Crc
- //response: 6E LenH LenL CmdType CmdH CmdL RC Crc (LenH LenL: 00 04)
- #define DDCCI_FAC_CMD_PQ_PREPARE 1
- #define DDCCI_FAC_CMD_PQ_FINISH 0
- typedef enum
- {
- DDCCI_FAC_CMD_GAMMAT = 0x00,
- DDCCI_FAC_CMD_HDCP = 0x01,
- DDCCI_FAC_CMD_SN = 0x02,
- DDCCI_FAC_CMD_FACWEEK = 0x03,
- DDCCI_FAC_CMD_FACYEAR = 0x04,
- DDCCI_FAC_CMD_HDMIEDID = 0x05,
- DDCCI_FAC_CMD_HDMI1EDID = 0x06,
- DDCCI_FAC_CMD_DPEDID = 0x07,
- DDCCI_FAC_CMD_DP1EDID = 0x08,
- DDCCI_FAC_CMD_COLORTEMP_COOL = 0x09,
- DDCCI_FAC_CMD_COLORTEMP_WARM = 0x0A,
- DDCCI_FAC_CMD_COLORTEMP_STANDARD = 0x0B,
- DDCCI_FAC_CMD_COLORTEMP_P3 = 0x0C,
- DDCCI_FAC_CMD_COLORTEMP_SRGB = 0x0D,
- DDCCI_FAC_CMD_COLORTEMP_EYECARE = 0x0E,
- DDCCI_FAC_CMD_GAMUT_NATIVE = 0x0F,
- DDCCI_FAC_CMD_GAMUT_SRGB = 0x10,
- DDCCI_FAC_CMD_GAMUT_709 = 0x11,
- DDCCI_FAC_CMD_GAMUT_P3 = 0x12,
- DDCCI_FAC_CMD_GAMUT_HDR = 0x13,
- DDCCI_FAC_CMD_GAMUT_ADOBE = 0x14,
- DDCCI_FAC_CMD_FACBRIGHTNESS = 0x15,
- DDCCI_FAC_CMD_FACCONTRAST = 0x16,
- DDCCI_FAC_CMD_ENERGY = 0x17,
- DDCCI_FAC_CMD_DEFAULT_LANG = 0x18,
- DDCCI_FAC_CMD_SHARPNESS = 0x19,
- DDCCI_FAC_CMD_DATABASE_SYNC = 0x1A,
- DDCCI_FAC_CMD_CM64 = 0x1B,
- DDCCI_FAC_CMD_GMACOMPRESS = 0x1C,
- DDCCI_FAC_CMD_HDCP_ALL = 0x1D,
- DDCCI_FAC_CMD_GAMUT_DISPLAY_P3 = 0x1E,
- DDCCI_FAC_CMD_GAMUT_USER0 = 0x1F,
- DDCCI_FAC_CMD_GAMUT_USER1 = 0x20,
- DDCCI_FAC_CMD_GAMUT_USER2 = 0x21,
- DDCCI_FAC_CMD_HUE = 0x200,
- DDCCI_FAC_CMD_SATURATION = 0x201,
- DDCCI_FAC_CMD_CONTRAST = 0x202,
- DDCCI_FAC_CMD_DLC = 0x203,
- DDCCI_FAC_CMD_DCR = 0x204,
- DDCCI_FAC_CMD_COLORSPACE = 0x205,
- DDCCI_FAC_CMD_RGAIN = 0x206,
- DDCCI_FAC_CMD_GGAIN = 0x207,
- DDCCI_FAC_CMD_BGAIN = 0x208,
- DDCCI_FAC_CMD_ROFFSET = 0x209,
- DDCCI_FAC_CMD_GOFFSET = 0x20A,
- DDCCI_FAC_CMD_BOFFSET = 0x20B,
- DDCCI_FAC_CMD_RED_HUE = 0x20C,
- DDCCI_FAC_CMD_RED_SAT = 0x20D,
- DDCCI_FAC_CMD_RED_LUM = 0x20E,
- DDCCI_FAC_CMD_GREEN_HUE = 0x20F,
- DDCCI_FAC_CMD_GREEN_SAT = 0x210,
- DDCCI_FAC_CMD_GREEN_LUM = 0x211,
- DDCCI_FAC_CMD_BLUE_HUE = 0x212,
- DDCCI_FAC_CMD_BLUE_SAT = 0x213,
- DDCCI_FAC_CMD_BLUE_LUM = 0x214,
- DDCCI_FAC_CMD_CYAN_HUE = 0x215,
- DDCCI_FAC_CMD_CYAN_SAT = 0x216,
- DDCCI_FAC_CMD_CYAN_LUM = 0x217,
- DDCCI_FAC_CMD_YELLOW_HUE = 0x218,
- DDCCI_FAC_CMD_YELLOW_SAT = 0x219,
- DDCCI_FAC_CMD_YELLOW_LUM = 0x21A,
- DDCCI_FAC_CMD_MAGENTA_HUE = 0x21B,
- DDCCI_FAC_CMD_MAGENTA_SAT = 0x21C,
- DDCCI_FAC_CMD_MAGENTA_LUM = 0x21D,
- DDCCI_FAC_CMD_PWM = 0x21E,
- DDCCI_FAC_CMD_SET_FR = 0x21F,
- DDCCI_FAC_CMD_SIMKEY0 = 0x220,
- DDCCI_FAC_CMD_SIMKEY1 = 0x221,
- DDCCI_FAC_CMD_SIMKEY2 = 0x222,
- DDCCI_FAC_CMD_SIMKEY3 = 0x223,
- DDCCI_FAC_CMD_SIMKEY4 = 0x224,
- DDCCI_FAC_CMD_GAMMA_MEA = 0x225,
- DDCCI_FAC_CMD_DELTAE_MEA = 0x226,
- DDCCI_FAC_CMD_DYNAMICPANEL = 0x227,
- DDCCI_FAC_CMD_FACTORYMODE = 0x228,
- DDCCI_FAC_CMD_LUTINIT = 0x229,
- DDCCI_FAC_CMD_BRIGHTNESS = 0x22A,
- DDCCI_FAC_CMD_BRIGHTNESS_NIT = 0x22B,
- DDCCI_FAC_CMD_WCG_3D_LUT = 0x22C,
- DDCCI_FAC_CMD_SETBURNOSD = 0x22D,
- DDCCI_FAC_CMD_SETEDIDSN = 0x22E,
- DDCCI_FAC_CMD_SWITCH_GAMMA = 0x239,
- DDCCI_FAC_CMD_REGISTER = 0x8881,
- DDCCI_FAC_CMD_DDR = 0x8883,
- DDCCI_FAC_CMD_GAMMA_LUT = 0x8884,
- DDCCI_FAC_CMD_GAMMA_UNIT_WRITE = 0x8885,
- DDCCI_FAC_CMD_GAMMA_ACTION = 0x8886, //0xEE,0x88,0x86+0x01:Prepare, 0x00:Finish
- DDCCI_FAC_CMD_COLORSPACE_ACTION = 0x8887, //0xEE,0x88,0x87+0x01:Prepare, 0x00:Finish
- DDCCI_FAC_CMD_WCG_ACTION = 0x8889, //0xEE,0x88,0x89+0x01:On, 0x00:Off
- DDCCI_FAC_CMD_COLORTEMP_ACTION = 0x8890, //0xEE,0x88,0x90+0x01:Prepare, 0x00:Finish
- DDCCI_FAC_CMD_PATTERN_ACTION = 0x8891, //0xEE,0x88,0x91+0x01:Prepare, 0x00:Finish
- DDCCI_FAC_CMD_COLORSPACE_DATA1 = 0x8892, //0xEE,0x88,0x92+18个16bit数值,高位在前
- DDCCI_FAC_CMD_COLORSPACE_DATA2 = 0x8893, //0xEE,0x88,0x93+18个16bit数值,高位在前
- DDCCI_FAC_CMD_COLORSPACE_DATA3 = 0x8894, //0xEE,0x88,0x94+18个16bit数值,高位在前
- DDCCI_FAC_CMD_COLORSPACE_DATA4 = 0x8895, //0xEE,0x88,0x95+18个16bit数值,高位在前
- DDCCI_FAC_CMD_COLORSPACE_DATA5 = 0x8896, //0xEE,0x88,0x96+18个16bit数值,高位在前
- DDCCI_FAC_CMD_PQ_TRAINING_START = 0x88A0, //0xEE,0x88,0xA0+0x01, training start; 0x00-training stop
- DDCCI_FAC_CMD_PQ_RGB_COEF = 0x88A1, //0xEE,0x88,0xA1+RHigh RLow GHigh GLow BHigh BLow
- DDCCI_FAC_CMD_PQ_WEEK_YEAR = 0x88A2, //0xEE,0x88,0xA2+week+year
-
- DDCCI_FAC_CMD_START_OR_END = 0x88F0,
- } DdcciFacCmdItem;
- VOID Hv_App_Ddcci_ProcFactoryMsg(UCHAR8 ucSource, UCHAR8 *pucData, USHORT16 usLen);
- UCHAR8 Hv_App_Ddcci_VerifyFactoryCheckSum(UCHAR8 *pucData);
- VOID Hv_App_GmaCompress(UINT32 *puiInput, UCHAR8 *pucOut);
- #endif
|