123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335 |
- /**
- * @file drv_hdmi_inc.h
- * @brief HDMI RX driver layer interface.
- * @verbatim
- * ==============================================================================
- * ##### How to use this driver #####
- * ==============================================================================
- * (+) Use HS_HAL_WDT_Start(...) to start the wdt immediately.
- * (+) Use HS_HAL_WDT_Stop(...) to stop the wdt immediately.
- * (+) Use HS_HAL_WDT_Feed(...) to feed the watchdog and it will restart the counter immediately.
- * @endverbatim
- *
- * @author HiView SoC Software Team
- * @version 0.0.1
- * @date 2022-08-22
- */
- #ifndef __HV_DRV_HDMIINC_H__
- #define __HV_DRV_HDMIINC_H__
- #include "Common/hv_comm_DataType.h"
- #include "hv_cal_HdmiRx.h"
- #define CEC_ACTIVE_SOURCE 0x82 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_IMAGE_VIEW_ON 0x04 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_TEXT_VIEW_ON 0x0d /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_REQUEST_ACTIVE_SOURCE 0x85 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_STANDBY 0x36 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_GIVE_PHYSICAL_ADDRESS 0x83 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_GET_MENU_LANGUAGE 0x91 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_REPORT_PHYSICAL_ADDRESS 0x84 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_SET_MENU_LANGUAGE 0x32 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_DEVICE_VENDOR_ID 0x87 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_GIVE_DEVICE_VENDOR_ID 0x8c /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_VENDOR_COMMAND 0x89 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_VENDOR_RC_BUTTON_DOWN 0x8a /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_VENDOR_RC_BUTTON_UP 0x8b /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_SET_OSD_STRING 0x64 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_GIVE_OSD_NAME 0x46 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_SET_OSD_NAME 0x47 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_MENU_REQUEST 0x8d /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_MENU_STATUS 0x8e /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_USER_CONTROL_PRESSED 0x44 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_USER_CONTROL_RELEASED 0x45 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_GIVE_DEVICE_POWER_STATUS 0x8f /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_REPORT_POWER_STATUS 0x90 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_FEATURE_ABORT 0x00 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_RECORD_OFF 0x0b /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_RECORD_ON 0x09 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_RECORD_STATUS 0x0a /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_RECORD_TV_SCREEN 0x0f /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_SELECT_DIGITAL_SOURCE 0x93 /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_INACTIVE_SOURCE 0x9D /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_VERSION 0x9E /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_GET_VERSION 0x9F /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_INITIATE_ARC 0xC0
- #define CEC_REPORT_ARC_INITIATED 0xC1
- #define CEC_ABORT_TEST 0xff /*!< CEC command ID. Please refer to the HDMI spec. */
- #define CEC_CMD_NULL 0x00
- #define CEC_PWR_ON 0x01
- #define CEC_PWR_OFF 0x02
- #define CEC_PWR_ONOFF 0x03
- #define CEC_USER_CTRL_POWER 0x40 /*!< Power command of CEC user control. */
- #if 0
- typedef enum _CEC_COMMAND
- {
- eFeatureAbort =0x00,
- // One Touch Play Feature
- eActiveSource =0x82, // follower:TV, switch --> Broadcst , Directly address
- eImageViewOn =0x04, // follower:TV, switch --> Broadcst
- eTextViewOn =0x0D, // follower:TV
- // Routing Control Feature
- eRoutingChange =0x80, // follower:TV, switch --> Broadcst
- eRoutingInformation =0x81, // follower:switch --> Broadcst
- eRequestActiveSource =0x85, // follower:switch --> Broadcst , AVR to request active source when Audio ocntrol feature is active
- eSetStreamPath =0x86, // follower:switch --> Broadcst
- eInactiveSource =0x9D, //
- eStandBy =0x36, // follower:All --> Broadcst
- // One Touch Record Feature
- eRecordOff =0x0B,
- eRecordOn =0x09,
- eRecordStatus =0x0A,
- eRecordTVScreen =0x0F,
- // Timer Programming Feature
- eClearAnalogueTimer =0x33,
- eClearDigitalTimer =0x99,
- eClearExternalTimer =0xA1,
- eSetAnalogueTimer =0x34,
- eSetDigitalTimer =0x97,
- eSetExternalTimer =0xA2,
- eSetTimerProgramTitle =0x67,
- eTimerClearedStatus =0x43,
- eTimerStatus =0x35,
- // System Information Feature
- eCECVersioin =0x9E,
- eGetCECVersion =0x9F,
- eGivePhysicalAddress =0x83, // follower:All
- eGetMenuLanguage =0x91, // follower:TV
- eReportPhysicalAddress =0x84, // follower:TV
- eSetMenuLanguage =0x32, // follower:All, Initiator:TV
- eReportFeatures =0xA6,
- eGiveFeatures =0xA5,
- // Deck Control Feature
- eDeckControl =0x42,
- eDeckStatus =0x1B,
- eGiveDeckStatus =0x1A,
- ePlay =0x41,
- // Tuner Control Featuer
- eGiveTunerDeviceStatus =0x08,
- eSelectAnalogueService =0x92,
- eSelectDigitalService =0x93,
- eTunerDeviceStatus =0x07,
- eTunerStepDecrement =0x06,
- eTunerStepIncrement =0x05,
- // Vendor Specific Commands Feature
- eDeviceVendorID =0x87,
- eGiveDeviceVendorID =0x8C,
- eVendorCommand =0x89,
- eGiveDevicePowerStatus =0x8F,
- eReportPowerStatus =0x90,
- eVendorCommandWithID =0xA0,
- eRemoteButtonDown =0x8A,
- eRemoteButtonUp =0x8B,
- // OSD Display Feature
- eSetOSDString =0x64,
- // Device OSD Transfer Feature
- eGiveOSDName =0x46,
- eSetOSDName =0x47,
- // Device Menu Control Feature
- eMenuRequest =0x8D,
- eMenuStatus =0x8E,
- eUserControlPressed =0x44,
- eUserControlReleased =0x45,
- // System Audio Control Feature
- eSystemAudioModeRequest =0x70,
- eGiveAudioStatus =0x71,
- eSetSystemAudioMode =0x72,
- eReportAudioStatus =0x7A,
- eGiveSystemAudioModeStatus =0x7D,
- eSystemAudioModeStatus =0x7E,
- eReportAudioDescriptor =0xA3,
- eRequestAudioDescriptor =0xA4,
- // Audio Rate Control Feature
- eSetAudioRate =0x9A,
- // ACR
- eInitiateARC =0xC0,
- eReportARCInitiated =0xC1,
- eReportARCTerminated =0xC2,
- eRequestARCInitiation =0xC3,
- eRequestARCTermination =0xC4,
- eTerminateARC =0xC5,
- // Dynamic Auto Lipsync Featuer
- eRequestCurrentLatency =0xA7,
- eReportCurrentLatency =0xA8,
- // HEC
- eCDCMessage =0xF8,
- //Audio Format Feature
- eReportShortAudioDescription = 0xA3 ,
- eRequestShortAudioDescription = 0xA4 ,
- // Polling Mesage
- ePollingMessage,
- eAbort =0xff,
- eCECNone
- } eCEC_CMD;
- #endif
- typedef enum{
- eCDCFeature = 0,
- eOTPFeature,
- eRoutingCtlFeature,
- eStandByFeature,
- eOTRFeature,
- eTimerProgFeature,
- eSysInfoFeature,
- eDeckCtrlFeature,
- eTunerCtrlFeature,
- eVenSpecCmdFeature,
- eOSDDisplayFeature,
- eDevOSDTransferFeature,
- eDevMenuCtrlFeature,
- eRemoteCtlPassthroughFeature,
- ePowerStatusFeature,
- eGeneralProtocolMessage,
- eSysAudioCtlFeature,
- eAudioRateCtrlFeature,
- eARCFeature,
- eDynAutoLipsyncFeature,
- eHECFeature,
- eAudioFormatFeature ,
- eNoneFeature
- }CECOpCodeType;
- typedef enum {
- eCecPowerStatusOn = 0x00,
- eCecPowerStatusOff = 0x01,
- eCecPowerStatusOnToOff = 0x02,
- eCecPowerStatusOffToOn = 0x03
- }CECPowerStatus;
- typedef enum {
- eSelect = 0x00 ,
- eUp = 0x01 ,
- eDown = 0x02 ,
- eLeft = 0x03 ,
- eRight = 0x04 ,
- eRightUp = 0x05 ,
- eRightDown = 0x06 ,
- eLeftUp = 0x07 ,
- eLeftDown = 0x08 ,
- eRootMenu = 0x09 ,
- eSetupMenu = 0x0A ,
- eContentsMenu = 0x0B ,
- eFavoriteMenu = 0x0C ,
- eExit = 0x0D ,
- eMediaTopMenu = 0x10 ,
- eMediaContentSensitiveMenu = 0x11 ,
- eNumberEntryMode = 0x1D ,
- eDot = 0x2A ,
- eEnter = 0x2B ,
- eClear = 0x2C ,
- eNextFavorite = 0x2F ,
- eChannelUp = 0x30 ,
- eChannelDown= 0x31 ,
- ePreViousChannel = 0x32 ,
- eSoundSelect= 0x33 ,
- eInputSelect= 0x34 ,
- eDisplayInformation = 0x35 ,
- eHelp = 0x36,
- ePageUp = 0x37,
- ePageDown = 0x38,
- ePower = 0x40,
- eVolumeUp = 0x41 ,
- eVolumeDown = 0x42 ,
- eMute = 0x43 ,
- ePlayCmd = 0x44 ,
- eStop = 0x45 ,
- ePause = 0x46 ,
- eRecord = 0x47 ,
- eRewind = 0x48 ,
- eFastForward= 0x49 ,
- eEject = 0x4A ,
- eForward = 0x4B ,
- eBackward = 0x4C ,
- eStopRecord = 0x4D ,
- ePauseRecord= 0x4E ,
- eAngle = 0x50 ,
- eSubPicture = 0x51 ,
- eVideoOnDemand = 0x52 ,
- eElectronicProgramGuide = 0x53 ,
- etimerProgramming = 0x54 ,
- einitialConfiguration = 0x55 ,
- eSelectBroadcastType = 0x56 ,
- eSelectSoundPresentation = 0x57 ,
- ePlayFunction = 0x60 ,
- ePausePlayFunction = 0x61 ,
- eRecordFunction = 0x62 ,
- ePauseRecordFunction = 0x63 ,
- eStopFunction = 0x64 ,
- eMuteFunction = 0x65 ,
- eRestoreVolumnFunction = 0x66 ,
- eTuneFunction = 0x67 ,
- eSelectMediaFunction = 0x68 ,
- eSelectAVInputFunction = 0x69 ,
- eSelectAudioInputFunction = 0x6A ,
- ePowerToggleFunction = 0x6B ,
- ePowerOffFunction = 0x6C ,
- ePowerOnFunction = 0x6D ,
- }CECUICmd;
- typedef enum _CEC_Logic_DEVICE_ID_t
- {
- DEVICE_ID_TV=0,
- DEVICE_ID_RECORDING1, // 1
- DEVICE_ID_RECORDING2, // 2
- DEVICE_ID_TUNER1, // 3
- DEVICE_ID_PLAYBACK1, // 4
- DEVICE_ID_AUDIO, // 5
- DEVICE_ID_TUNER2, // 6
- DEVICE_ID_TUNER3, // 7
- DEVICE_ID_PLAYBACK2, // 8
- DEVICE_ID_RECORDING3, // 9
- DEVICE_ID_TUNER4, // 10
- DEVICE_ID_PLAYBACK3, // 11
- DEVICE_ID_RESERVED1, // 12
- DEVICE_ID_RESERVED2, // 13
- DEVICE_ID_FREEUSE, // 14
- DEVICE_ID_BROADCAST, // 15
- DEVICE_ID_MAX
- } CEC_Logic_DEVICE_ID_t;
- typedef struct
- {
- UCHAR8 ucHeader;
- UCHAR8 ucOPCode;
- UCHAR8 aucOperandBuf[14];
- }SCecMsg;
- typedef struct
- {
- UCHAR8 ucGet;
- UCHAR8 ucPut;
- UCHAR8 aucCmdBuf[DCEC_CMD_CACHE_NUM];
- }SCecCmd;
- typedef struct
- {
- UCHAR8 ucDestinationLA;
- SCecCmd stCecCmd;
- HV_VOS_QUEUE_S *pstCECMsgQueue;
- }SCecControl;
- #endif
|