123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- //***************************************************************************
- //@file cbus_enums.h
- //@brief CBUS API Enums
- //
- //***************************************************************************/
- #ifndef _CBUS_ENUMS_H_
- #define _CBUS_ENUMS_H_
- #define CBUS_NOCHANNEL (0xFF)
- #define CBUS_NOPORT (0xFF)
- //Adopter ID
- #define ADOPTER_ID_SAMSUNG (0x4101)
- #define ADOPTER_ID_HTC (0x6f01)
- #define ADOPTER_ID_SONY (0xa703)
- #define ADOPTER_ID_SIMPLAY (0x4201)
- #define ADOPTER_ID_LG (0x6402)
- #define DEVICE_ID_SIMPLAY (0x4082)
- #define DEVICE_ID_LG_E975W (0x3483)
- // MSC_MSG sub commands
- enum
- {
- MHL_MSC_MSG_ERR = 0x02, // MSC_MSG Error sub-command
- MHL_MSC_MSG_RCP = 0x10, // Romote Control Protocol sub-command
- MHL_MSC_MSG_RCPK = 0x11, // RCP Acknowledge sub-command
- MHL_MSC_MSG_RCPE = 0x12, // RCP Error sub-command
- MHL_MSC_MSG_RAP = 0x20, // Request Action Protocol sub-command
- MHL_MSC_MSG_RAPK = 0x21, // RAP Acknowledge sub-command
- MHL_MSC_MSG_UCP = 0x30, // UTF-8 Character Protocol sub-command
- MHL_MSC_MSG_UCPK = 0x31, // UCP Acknowledge sub-command
- MHL_MSC_MSG_UCPE = 0x32, // UCP Error sub-command
- };
- // Status codes of RCPE sub commands
- typedef enum _MHL_RCPE_STATUS_e
- {
- MHL_MSC_MSG_RCP_NO_ERROR = 0x00, // RCP No Error
- MHL_MSC_MSG_INEFFECTIVE_KEY_CODE = 0x01, // The key code in the RCP sub-command is not recognized
- MHL_MSC_MSG_RESPONDER_BUSY = 0x02, // RCP Response busy
- }MHL_RCPE_STATUS_e;
- //RAPK sub commands
- typedef enum _MHL_RAPE_STATUS_e
- {
- MHL_MSC_MSG_RAP_NO_ERROR = 0x00, // RAP No Error
- MHL_MSC_MSG_RAP_UNRECOGNIZED_ACT_CODE = 0x01,
- MHL_MSC_MSG_RAP_UNSUPPORTED_ACT_CODE = 0x02,
- MHL_MSC_MSG_RAP_RESPONDER_BUSY = 0x03,
- }MHL_RAPE_STATUS_e;
- //DDC ERROR CODE
- typedef enum _MHL_DDC_CH_ERRCODE_e
- {
- MHL_DDC_CH_NO_ERROR = 0x00, // Normal response, no error
- MHL_DDC_CH_RETRY_EXCEED = 0x01, // Re-try threshold exceeded
- MHL_DDC_CH_PROROCOL_ERR = 0x02, // Protocol error
- MHL_DDC_CH_PEER_TIMEOUT = 0x03, //Peer Timed Out
- }MHL_DDC_CH_ERRCODE_e;
- //MSC ERROR CODE
- typedef enum _MHL_MSC_CH_ERRCODE_e
- {
- MHL_MSC_CH_NO_ERROR = 0x00, // Normal response, no error
- MHL_MSC_CH_RETRY_EXCEED = 0x01, // Re-try threshold exceeded
- MHL_MSC_CH_PROROCOL_ERR = 0x02, // Protocol error
- MHL_MSC_CH_PEER_TIMEOUT = 0x03, //Peer Timed Out
- MHL_MSC_CH_INVALID_OPCODE = 0x04, //Invalid Op Code
- MHL_MSC_CH_BAD_OFFSET = 0x05, //Bad Offset in Command
- MHL_MSC_CH_PEER_BUSY = 0x06, //Peer is busy, cannot process new request
- }MHL_MSC_CH_ERRCODE_e;
- typedef enum _MHL_RCP_CMD_e
- {
- MHL_RCP_CMD_SELECT = 0x00,
- MHL_RCP_CMD_UP = 0x01,
- MHL_RCP_CMD_DOWN = 0x02,
- MHL_RCP_CMD_LEFT = 0x03,
- MHL_RCP_CMD_RIGHT = 0x04,
- MHL_RCP_CMD_RIGHT_UP = 0x05,
- MHL_RCP_CMD_RIGHT_DOWN = 0x06,
- MHL_RCP_CMD_LEFT_UP = 0x07,
- MHL_RCP_CMD_LEFT_DOWN = 0x08,
- MHL_RCP_CMD_ROOT_MENU = 0x09,
- MHL_RCP_CMD_SETUP_MENU = 0x0A,
- MHL_RCP_CMD_CONTENTS_MENU = 0x0B,
- MHL_RCP_CMD_FAVORITE_MENU = 0x0C,
- MHL_RCP_CMD_EXIT = 0x0D,
- //0x0E - 0x1F are reserved
- MHL_RCP_CMD_NUM_0 = 0x20,
- MHL_RCP_CMD_NUM_1 = 0x21,
- MHL_RCP_CMD_NUM_2 = 0x22,
- MHL_RCP_CMD_NUM_3 = 0x23,
- MHL_RCP_CMD_NUM_4 = 0x24,
- MHL_RCP_CMD_NUM_5 = 0x25,
- MHL_RCP_CMD_NUM_6 = 0x26,
- MHL_RCP_CMD_NUM_7 = 0x27,
- MHL_RCP_CMD_NUM_8 = 0x28,
- MHL_RCP_CMD_NUM_9 = 0x29,
- MHL_RCP_CMD_DOT = 0x2A,
- MHL_RCP_CMD_ENTER = 0x2B,
- MHL_RCP_CMD_CLEAR = 0x2C,
- //0x2D - 0x2F are reserved
- MHL_RCP_CMD_CH_UP = 0x30,
- MHL_RCP_CMD_CH_DOWN = 0x31,
- MHL_RCP_CMD_PRE_CH = 0x32,
- MHL_RCP_CMD_SOUND_SELECT = 0x33,
- MHL_RCP_CMD_INPUT_SELECT = 0x34,
- MHL_RCP_CMD_SHOW_INFO = 0x35,
- MHL_RCP_CMD_HELP = 0x36,
- MHL_RCP_CMD_PAGE_UP = 0x37,
- MHL_RCP_CMD_PAGE_DOWN = 0x38,
- //0x39 - 0x40 are reserved
- MHL_RCP_CMD_VOL_UP = 0x41,
- MHL_RCP_CMD_VOL_DOWN = 0x42,
- MHL_RCP_CMD_MUTE = 0x43,
- MHL_RCP_CMD_PLAY = 0x44,
- MHL_RCP_CMD_STOP = 0x45,
- MHL_RCP_CMD_PAUSE = 0x46,
- MHL_RCP_CMD_RECORD = 0x47,
- MHL_RCP_CMD_REWIND = 0x48,
- MHL_RCP_CMD_FAST_FWD = 0x49,
- MHL_RCP_CMD_EJECT = 0x4A,
- MHL_RCP_CMD_FWD = 0x4B,
- MHL_RCP_CMD_BKWD = 0x4C,
- //0x4D - 0x4F are reserved
- MHL_RCP_CMD_ANGLE = 0x50,
- MHL_RCP_CMD_SUBPICTURE = 0x51,
- //0x52 - 0x5F are reserved
- MHL_RCP_CMD_PLAY_FUNC = 0x60,
- MHL_RCP_CMD_PAUSE_PLAY_FUNC = 0x61,
- MHL_RCP_CMD_RECORD_FUNC = 0x62,
- MHL_RCP_CMD_PAUSE_REC_FUNC = 0x63,
- MHL_RCP_CMD_STOP_FUNC = 0x64,
- MHL_RCP_CMD_MUTE_FUNC = 0x65,
- MHL_RCP_CMD_RESTORE_VOLUME_FUNC = 0x66,
- MHL_RCP_CMD_TUNE_FUNC = 0x67,
- MHL_RCP_CMD_MEDIA_FUNC = 0x68,
- //0x69 - 0x70 are reserved
- MHL_RCP_CMD_F1_BLUE = 0x71,
- MHL_RCP_CMD_F2_RED = 0x72,
- MHL_RCP_CMD_F3_GREEN = 0x73,
- MHL_RCP_CMD_F4_YELLOW = 0x74,
- MHL_RCP_CMD_F5 = 0x75,
- //0x76 - 0x7D are reserved
- MHL_RCP_CMD_VS = 0x7E,
- MHL_RCP_CMD_RSVD = 0x7F,
- }MHL_RCP_CMD_e;
- typedef enum _MHL_RAP_SUBCMD_e
- {
- MHL_RAP_CMD_POLL = 0x00,
- MHL_RAP_CONTENT_ON = 0x10,
- MHL_RAP_CONTENT_OFF = 0x11,
- MHL_RAP_CMD_END = 0x12
- }MHL_RAP_SUBCMD_e;
- enum
- {
- MHL_ACK = 0x33, // Command or Data byte acknowledge
- MHL_NACK = 0x34, // Command or Data byte not acknowledge
- MHL_ABORT = 0x35, // Transaction abort
- MHL_WRITE_STAT = 0x60 | 0x80, // Write one status register strip top bit
- MHL_SET_INT = 0x60, // Write one interrupt register
- MHL_READ_DEVCAP = 0x61, // Read one register
- MHL_GET_STATE = 0x62, // Read CBUS revision level from follower
- MHL_GET_VENDOR_ID = 0x63, // Read vendor ID value from follower.
- MHL_SET_HPD = 0x64, // Set Hot Plug Detect in follower
- MHL_CLR_HPD = 0x65, // Clear Hot Plug Detect in follower
- MHL_SET_CAP_ID = 0x66, // Set Capture ID for downstream device.
- MHL_GET_CAP_ID = 0x67, // Get Capture ID from downstream device.
- MHL_MSC_MSG = 0x68, // VS command to send RCP, RAP or UCP sub-commands
- MHL_GET_SC1_ERRORCODE = 0x69, // Get Vendor-Specific command error code.
- MHL_GET_DDC_ERRORCODE = 0x6A, // Get DDC channel command error code.
- MHL_GET_MSC_ERRORCODE = 0x6B, // Get MSC command error code.
- MHL_WRITE_BURST = 0x6C, // Write 1-16 bytes to responder?s scratchpad.
- MHL_GET_SC3_ERRORCODE = 0x6D, // Get channel 3 command error code.
- };
- enum
- {
- CBUS_TASK_IDLE,
- CBUS_TASK_TRANSLATION_LAYER_DONE,
- CBUS_TASK_WAIT_FOR_RESPONSE,
- };
- //
- // CBUS module reports these error types
- //
- typedef enum _CBUS_SW_ERR_e
- {
- CBUS_SUCCESS = 0,
- ERROR_CBUS_CAN_RETRY,
- ERROR_CBUS_ABORT,
- ERROR_CBUS_TIMEOUT,
- ERROR_CBUS_LINK_DOWN,
- ERROR_INVALID,
- ERROR_INIT,
- ERROR_WRITE_FAILED,
- ERROR_NACK_FROM_PEER,
- ERROR_ABORT_FROM_PEER,
- ERROR_INEFFECT_CODE_FROM_PEER,
- ERROR_NO_HEARTBEAT,
- } CBUS_SW_ERR_e;
- typedef enum _CBUS_STATE_e
- {
- CBUS_IDLE = 0, // BUS idle
- CBUS_SENT_WAIT_RESPONSE, // Command sent, and wait response
- // CBUS_XFR_DONE, // Translation layer complete
- // CBUS_WAIT_RESPONSE, // Waiting for response
- // CBUS_RECEIVED, // Message received, verify and send ACK
- } CBUS_STATE_e;
- typedef enum _CBUS_REQ_e
- {
- CBUS_REQ_IDLE = 0,
- CBUS_REQ_PENDING, // Request is waiting to be sent
- CBUS_REQ_SENT, // Request has been sent
- // CBUS_REQ_RECEIVED, // Request data has been received
- } CBUS_REQ_e;
- //Bryan Add temp2013.02.05
- typedef enum _CEC_RC_e // Remote Control Pass-through and UI command codes
- {
- CEC_RC_SELECT = 0x00,
- CEC_RC_UP = 0x01,
- CEC_RC_DOWN = 0x02,
- CEC_RC_LEFT = 0x03,
- CEC_RC_RIGHT = 0x04,
- CEC_RC_RIGHT_UP = 0x05,
- CEC_RC_RIGHT_DOWN = 0x06,
- CEC_RC_LEFT_UP = 0x07,
- CEC_RC_LEFT_DOWN = 0x08,
- CEC_RC_ROOT_MENU = 0x09,
- CEC_RC_SETUP_MENU = 0x0A,
- CEC_RC_CONTENTS_MENU = 0x0B,
- CEC_RC_FAVORITE_MENU = 0x0C,
- CEC_RC_EXIT = 0x0D,
- // 0x0E - 0x1F Reserved
- CEC_RC_0 = 0x20,
- CEC_RC_1 = 0x21,
- CEC_RC_2 = 0x22,
- CEC_RC_3 = 0x23,
- CEC_RC_4 = 0x24,
- CEC_RC_5 = 0x25,
- CEC_RC_6 = 0x26,
- CEC_RC_7 = 0x27,
- CEC_RC_8 = 0x28,
- CEC_RC_9 = 0x29,
- CEC_RC_DOT = 0x2A,
- CEC_RC_ENTER = 0x2B,
- CEC_RC_CLEAR = 0x2C,
- // 0x2D - 0x2F Reserved
- CEC_RC_CHANNEL_UP = 0x30,
- CEC_RC_CHANNEL_DOWN = 0x31,
- CEC_RC_PREVIOUS_CHANNEL = 0x32,
- CEC_RC_SOUND_SELECT = 0x33,
- CEC_RC_INPUT_SELECT = 0x34,
- CEC_RC_DISPLAY_INFORMATION = 0x35,
- CEC_RC_HELP = 0x36,
- CEC_RC_PAGE_UP = 0x37,
- CEC_RC_PAGE_DOWN = 0x38,
- // 0x39 - 0x3F Reserved
- CEC_RC_POWER = 0x40,
- CEC_RC_VOLUME_UP = 0x41,
- CEC_RC_VOLUME_DOWN = 0x42,
- CEC_RC_MUTE = 0x43,
- CEC_RC_PLAY = 0x44,
- CEC_RC_STOP = 0x45,
- CEC_RC_PAUSE = 0x46,
- CEC_RC_RECORD = 0x47,
- CEC_RC_REWIND = 0x48,
- CEC_RC_FAST_FORWARD = 0x49,
- CEC_RC_EJECT = 0x4A,
- CEC_RC_FORWARD = 0x4B,
- CEC_RC_BACKWARD = 0x4C,
- CEC_RC_STOP_RECORD = 0x4D,
- CEC_RC_PAUSE_RECORD = 0x4E,
- // 0x4F Reserved
- CEC_RC_ANGLE = 0x50,
- CEC_RC_SUB_PICTURE = 0x51,
- CEC_RC_VIDEO_ON_DEMAND = 0x52,
- CEC_RC_ELECTRONIC_PROGRAM_GUIDE = 0x53,
- CEC_RC_TIMER_PGRMING = 0x54,
- CEC_RC_INITIAL_CONFIGURATION = 0x55,
- CEC_RC_SELECT_BROADCAST_TYPE = 0x56,
- CEC_RC_SELECT_SOUND_PRESENTATION = 0x57,
- // 0x58 - 0x5F Reserved
- CEC_RC_PLAY_FUNCTION = 0x60,
- CEC_RC_PAUSE_PLAY_FUNCTION = 0x61,
- CEC_RC_RECORD_FUNCTION = 0x62,
- CEC_RC_PAUSE_RECORD_FUNCTION = 0x63,
- CEC_RC_STOP_FUNCTION = 0x64,
- CEC_RC_MUTE_FUNCTION = 0x65,
- CEC_RC_RESTORE_VOLUME_FUNCTION = 0x66,
- CEC_RC_TUNE_FUNCTION = 0x67,
- CEC_RC_SELECT_DISK_FUNCTION = 0x68,
- CEC_RC_SELECT_AV_INPUT_FUNCTION = 0x69,
- CEC_RC_SELECT_AUDIO_INPUT_FUNCTION = 0x6A,
- CEC_RC_POWER_TOGGLE_FUNCTION = 0x6B,
- CEC_RC_POWER_OFF_FUNCTION = 0x6C,
- CEC_RC_POWER_ON_FUNCTION = 0x6D,
- // 0x6E - 0x70 Reserved
- CEC_RC_F1_BLUE = 0x71,
- CEC_RC_F2_RED = 0x72,
- CEC_RC_F3_GREEN = 0x73,
- CEC_RC_F4_YELLOW = 0x74,
- CEC_RC_F5 = 0x75,
- CEC_RC_DATA = 0x76
- // 0x77 - 0x7F Reserved
- } CEC_RC_e;
- typedef enum _CBUS_DRV_STATUS_e
- {
- CBUS_INT = 0x0001, // A CBUS interrupt has occurred
- CBUS_TRANS_INT = 0x0002, // A CBUS Translation Layer interrupt has occurred
- CBUS_NACK_RECEIVED_FM_PEER = 0x0004, // Peer sent a NACK
- CBUS_ABORT_RECEIVED_FM_PEER = 0x0008, // Peer sent a ABORT
- CBUS_INEFFECT_CODE_RECEIVED_FM_PEER = 0x0010, // Peer sent a INEFFECT CODE
- CBUS_SCRATCHPAD_WRITTEN_BY_PEER = 0x0020, // peer writes into scratchpad
- CBUS_DCAP_RDY_RECEIVED_FM_PEER = 0x0040, // DCAP_RDY received
- CBUS_DCAP_CHG_RECEIVED_FM_PEER = 0x0080, // DCAP_CHG received
- CBUS_REQ_WRT_RECEIVED_FM_PEER = 0x0100, // REQ_WRT received
- CBUS_GRT_WRT_RECEIVED_FM_PEER = 0x0200, // GRT_WRT received
- CBUS_3D_REQ_RECEIVED_FM_PEER = 0x0400, // 3D_REQ received
- CBUS_LINK_INT = 0x0800, // A CBUS Link Layer interrupt has occurred
- CBUS_WAKE_INT = 0x1000, // A CBUS wake_int interrupt has occurred
- CBUS_DISCV_INT = 0x2000, // A CBUS discv_intr interrupt has occurred
- CBUS_CONNT_INT = 0x4000, // A CBUS connt_int__p has occurred
- CBUS_ATTACH_INT = 0x8000, // A CBUS HDMIRX_CBUS_attach_int__p has occurred
- CBUS_DEATCH_INT = 0x10000, // A CBUS HDMIRX_CBUS_detach_int__p has occurred
- CBUS_WRT_BURST_ACK_RECEIVED_FM_PEER = 0x20000, // the ACK of request Write_Burst received
- CBUS_WRT_STATE_ACK_RECEIVED_FM_PEER = 0x40000, //the ACK of request Write_State received
- CBUS_SRC_DISCONT_INT = 0x80000,
- } CBUS_DRV_STATUS_e;
- typedef enum _CBUS_3D_FSM_STATE_e
- {
- CBUS_3D_FSM_IDLE = 0,
- CBUS_3D_FSM_SEND_REQ_WRT = 1,
- CBUS_3D_FSM_WAIT_REQ_WRT_ACK = 2,
- CBUS_3D_FSM_WAIT_GRT_WRT = 3,
- CBUS_3D_FSM_SEND_BURST_WRT = 4,
- CBUS_3D_FSM_WAIT_BURST_WRT_ACK= 5,
- CBUS_3D_FSM_SEND_DSCR_CHG = 6,
- CBUS_3D_FSM_WAIT_DSCR_CHG_ACK = 7,
- CBUS_3D_FSM_FINISHED = 8,
- } CBUS_3D_FSM_STATE_e;
- //------------------------------------------------------------------------------
- // MHL Application Instance Data
- //------------------------------------------------------------------------------
- typedef struct MHLAppInstanceData
- {
- CBUS_DRV_STATUS_e statusFlags;
- // CBUS App-specific
- BOOL discvDetect;
- BOOL srcDiscont;
- BOOL cbusCableSense;
- BOOL cbusConnected;
- } MHLAppInstanceData_t;
- #endif /* SI_CBUS_ENUMS_H_ */
|