hv_drv_Mailbox.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /**
  2. * @file hv_drv_Mailbox.h
  3. * @brief hv_drv_Mailbox header file.
  4. * @details This file provides the following functions: \n
  5. * @author HiView SoC Software Team
  6. * @version 1.0.0
  7. * @date 2022-09-06
  8. * @copyright Copyright(c),2022-8, Hiview Software. All rights reserved.
  9. * @par History:
  10. * <table>
  11. * <tr><th>Author <th>Date <th>Change Description
  12. * <tr><td>HiView SoC Software Team <td>2022-09-06 <td>create
  13. * </table>
  14. */
  15. #ifndef __HV_DRV_MAILBOX_H__
  16. #define __HV_DRV_MAILBOX_H__
  17. #include "Common/hv_comm_DataType.h"
  18. /* mailbox param */
  19. #define MAILBOX_MSG_LEN_MAX 12
  20. typedef enum _MailboxMsgType
  21. {
  22. E_MAILBOX_CMD_NULL = 0,
  23. E_MAILBOX_CMD_PM_TO_RISC_KEY_VAL = 1,
  24. E_MAILBOX_CMD_PM_TO_RISC_KEY_UPSPRING = 2,
  25. E_MAILBOX_CMD_PM_TO_RISC_KEY_COMBO = 3,
  26. E_MAILBOX_CMD_PM_TO_RISC_WAKEUP = 4,
  27. E_MAILBOX_CMD_RISC_TO_PM_POWER_OFF_ACK = 5,
  28. E_MAILBOX_CMD_RISC_TO_PM_STAND_BY = 6,
  29. E_MAILBOX_CMD_RISC_TO_PM_NORMAL = 7,
  30. E_MAILBOX_CMD_PM_TO_RISC_IR_VAL = 8,
  31. E_MAILBOX_CMD_PM_TO_RISC_IR_REPEAT = 9,
  32. E_MAILBOX_CMD_PM_TO_RISC_POWER_OFF = 10,
  33. E_MAILBOX_CMD_PM_TO_RISC_HEART_MONITOR = 11,
  34. E_MAILBOX_CMD_PM_TO_RISC_FACTORY_MODE = 12,
  35. E_MAILBOX_CMD_RISC_TO_PM_LED_MODE_OFF = 13,
  36. E_MAILBOX_CMD_RISC_TO_PM_LED_MODE_ON = 14,
  37. E_MAILBOX_CMD_RISC_TO_PM_FIX_MODE_OFF = 15,
  38. E_MAILBOX_CMD_RISC_TO_PM_FIX_MODE_ON = 16,
  39. E_MAILBOX_CMD_RISC_TO_PM_CUR_MAIN_CHANNEL_HDMI0 = 17,
  40. E_MAILBOX_CMD_RISC_TO_PM_CUR_MAIN_CHANNEL_HDMI1 = 18,
  41. E_MAILBOX_CMD_RISC_TO_PM_CUR_MAIN_CHANNEL_DP0 = 19,
  42. E_MAILBOX_CMD_RISC_TO_PM_CUR_MAIN_CHANNEL_DP1 = 20,
  43. E_MAILBOX_CMD_RISC_TO_PM_FACTORY_OFF = 21,
  44. E_MAILBOX_CMD_RISC_TO_PM_FACTORY_ON = 22,
  45. E_MAILBOX_CMD_RISC_TO_PM_CUR_SUB_CHANNEL_HDMI0 = 23,
  46. E_MAILBOX_CMD_RISC_TO_PM_CUR_SUB_CHANNEL_HDMI1 = 24,
  47. E_MAILBOX_CMD_RISC_TO_PM_CUR_SUB_CHANNEL_DP0 = 25,
  48. E_MAILBOX_CMD_RISC_TO_PM_CUR_SUB_CHANNEL_DP1 = 26,
  49. E_MAILBOX_CMD_RISC_TO_PM_SET_LED_OFF = 27,
  50. E_MAILBOX_CMD_RISC_TO_PM_SET_LED_ON = 28,
  51. E_MAILBOX_CMD_RISC_TO_PM_SET_LED_BREATH = 29,
  52. E_MAILBOX_CMD_RISC_TO_PM_SET_LED_ON1 = 30,
  53. E_MAILBOX_CMD_RISC_TO_PM_SET_LED_ON2 = 31,
  54. E_MAILBOX_CMD_RISC_TO_PM_SET_LED_ON3 = 32,
  55. E_MAILBOX_CMD_PM_TO_RISC_LOCK_MODE = 33,
  56. E_MAILBOX_CMD_MAX = 127
  57. }MailboxMsgType;
  58. typedef enum _WakeUPType
  59. {
  60. E_WAKE_UP_TYPE_POWER_ON = 0,
  61. E_WAKE_UP_TYPE_HDMI_CABLE,
  62. E_WAKE_UP_TYPE_DP_CABLE,
  63. E_WAKE_UP_TYPE_TYPE_C_CABLE,
  64. E_WAKE_UP_TYPE_HDMI_TMDS,
  65. E_WAKE_UP_TYPE_HDMI_CEC,
  66. E_WAKE_UP_TYPE_DP_AUX,
  67. E_WAKE_UP_TYPE_TYPE_C_CC_CMD,
  68. E_WAKE_UP_TYPE_KEY,
  69. E_WAKE_UP_TYPE_IR,
  70. E_WAKE_UP_TYPE_DP_GPIO,
  71. E_WAKE_UP_TYPE_STANDBY_TO_POWEROFF,
  72. }WakeUPType;
  73. typedef struct _MailboxMsgHeader
  74. {
  75. UCHAR8 u8MsgType;
  76. USHORT16 u16MsgLen; /**< little endien */
  77. UCHAR8 u8Crc;
  78. }__attribute__((packed))MailboxMsgHeader;
  79. typedef struct _MailboxMsg
  80. {
  81. MailboxMsgHeader stMsgHeader;
  82. UCHAR8 au8MsgBody[MAILBOX_MSG_LEN_MAX];
  83. }MailboxMsg;
  84. Status Hv_Drv_MailboxRecvMsg(MailboxMsg *pstMsg);
  85. Status Hv_Drv_MailboxSendMsg(MailboxMsg *pstMsg);
  86. Status Hv_Drv_MailboxGetKeyValue(MailboxMsg *pstMsg, UCHAR8 *pucKeyValue);
  87. Status Hv_Drv_MailboxGetIRKeyValue(MailboxMsg *pstMsg, UCHAR8 *pucSysCode, UCHAR8 *pucKeyValue);
  88. UINT32 Hv_Drv_Mailbox_GetPQToolCmdPort(VOID);
  89. UINT32 Hv_Drv_Mailbox_GetSwIntStatus(VOID);
  90. VOID Hv_Drv_Mailbox_ClearSwIntStatus(UINT32 uiSwintStatus);
  91. #endif /**< __HV_DRV_MAILBOX_H__ */