cec.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #ifndef __CEC_H__
  2. #define __CEC_H__
  3. #include "hdmi_mapping.h"
  4. #include "hdmi_cfg.h"
  5. #include "drv_hdmi_external.h"
  6. typedef enum
  7. {
  8. DRV_5V_LEVEL_LOW = 0x00,
  9. DRV_5V_LEVEL_HIGH,
  10. } DRV_5V_LEVEL_e;
  11. typedef struct
  12. {
  13. HDMI_PORT_T ePort;
  14. DRV_5V_LEVEL_e eLevel;
  15. } DRV_5V_DET_t;
  16. typedef enum
  17. {
  18. HDMI_CALBE_DISCONT = 0x00,
  19. HDMI_CALBE_CONNECT ,
  20. } HDMI_CABLE_T;
  21. #pragma pack(push,1)
  22. //for CEC interrupt
  23. typedef struct{
  24. union{
  25. UINT32 dCECReg0000_0003;
  26. struct{
  27. UINT8 rxData:8;
  28. UINT8 rxData_EOM:1;
  29. UINT8 rxData_ACK:1;
  30. UINT8 rxData_sbit:1;
  31. UINT8 R_INTR_Status_rx_ddc5v_2_rise:1;
  32. UINT8 Rx_FIFO_POP_done:1;
  33. UINT8 R_INTR_Status_rx_ddc5v_2_fall:1;
  34. UINT8 R_INTR_Status_rx_ddc5v_3_rise:1;
  35. UINT8 R_INTR_Status_rx_ddc5v_3_fall:1;
  36. UINT8 ists_tx_noarbit:1;
  37. UINT8 ists_tx_noack:1;
  38. UINT8 ists_tx_eom_done:1;
  39. UINT8 ists_rfifo_overflow:1;
  40. UINT8 ists_rfifo_ready:1;
  41. UINT8 ists_rx_pop_done:1;
  42. UINT8 ists_rx_discon:1;
  43. UINT8 ists_rx_eom:1;
  44. UINT8 ists_ddc5v_0_rise:1;
  45. UINT8 ists_ddc5v_0_fall:1;
  46. UINT8 ists_ddc5v_1_rise:1;
  47. UINT8 ists_ddc5v_1_fall:1;
  48. UINT8 Rx_FIFO_count:3;
  49. UINT8 Rx_FIFO_overflow:1;
  50. };
  51. };
  52. }CEC_REG0000_t;
  53. #pragma pack(pop)
  54. INT32 DRV_CEC_Init(void);
  55. void DRV_CEC_Exit(void);
  56. #ifdef HDMI_DDC5V_WORKAROUND
  57. DRV_5V_LEVEL_e CEC_Get_SW5V(HDMI_PORT_T ePort);
  58. #endif
  59. void DRV_Set_GPIO5V_ARCPort(GPIOPin_t eGpio5V_Pin, HDMI_PORT_T eARCPort);
  60. HDMI_PORT_T DRV_Get_GPIO5V_ARCPort(void);
  61. UINT8 CEC_BootUpByOneTouchPlay(void);
  62. HDMI_CABLE_T DRV_GPIO5V_GET_CABLE_CONNECT_STATE(void);
  63. #endif