drv_cec_external.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef _CEC_INTERFACE_H_
  2. #define _CEC_INTERFACE_H_
  3. #include "drv_types.h"
  4. #include <linux/ioctl.h>
  5. #define FRAMEMAX 40
  6. typedef enum
  7. {
  8. CEC_STATUS_TXSENDING = 0,
  9. CEC_STATUS_TXEOMDONE,
  10. CEC_STATUS_TXNOARBIT,
  11. CEC_STATUS_TXNOACK,
  12. CEC_STATUS_TXERROR,
  13. CEC_STATUS_TXBUSY,
  14. CEC_STATUS_TXINVALIDMSG
  15. } CEC_STATUS_t;
  16. typedef struct _FRAME_t
  17. {
  18. UINT8 block_num;
  19. UINT8 status;
  20. union
  21. {
  22. UINT8 block[17];
  23. struct
  24. {
  25. UINT8 dst: 4;
  26. UINT8 src: 4;
  27. UINT8 opcode;
  28. UINT8 param[15];
  29. };
  30. };
  31. } FRAME_t, *pFRAME_t;
  32. typedef struct _CEC_MSG_t
  33. {
  34. BOOL bHotPlugChange; // Hot Plug in/off
  35. BOOL bMessageDone; // Message had done
  36. FRAME_t txMsg;
  37. UINT8 rxBlock_ptr;
  38. UINT8 rxFifo_cnt;
  39. BOOL bMsg;
  40. BOOL bOverwrite;
  41. UINT8 Rp;
  42. UINT8 Wp;
  43. FRAME_t rxMsg[FRAMEMAX];
  44. }CEC_MSG_t,*pCEC_MSG_t;
  45. #define FC_SIG 36
  46. #define CEC_SIG 37
  47. #define CEC_MAGIC 'k'
  48. #define CEC_REGISTER _IOWR(CEC_MAGIC,0,INT32)
  49. #define CEC_DEBUGLOG _IOWR(CEC_MAGIC,1,BOOL)
  50. #define CEC_SENDMSG _IO(CEC_MAGIC,2)
  51. #define CEC_DEBUG _IO(CEC_MAGIC,3)
  52. #define CEC_ReportARCInitiation _IOWR(CEC_MAGIC,4,UINT32)
  53. #define CEC_ReportARCTermination _IOWR(CEC_MAGIC,5,UINT32)
  54. #define CEC_CECEnable _IOWR(CEC_MAGIC,6,UINT32)
  55. #define CEC_ARC_PORT_HPD_TOGGLE _IOWR(CEC_MAGIC,7,UINT32)
  56. #endif