mt8193ddc.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #ifndef __mt8193ddc_h__
  2. #define __mt8193ddc_h__
  3. #ifdef HDMI_MT8193_SUPPORT
  4. #define EDID_BLOCK_LEN 128
  5. #define EDID_SIZE 512
  6. #define SIF1_CLOK 260 /* 27M/432 = 62.5Khz */
  7. #define EDID_ID 0x50 /* 0xA0 */
  8. #define EDID_ID1 0x51 /* 0xA2 */
  9. #define EDID_ADDR_HEADER 0x00
  10. #define EDID_ADDR_VERSION 0x12
  11. #define EDID_ADDR_REVISION 0x13
  12. #define EDID_IMAGE_HORIZONTAL_SIZE 0x15
  13. #define EDID_IMAGE_VERTICAL_SIZE 0x16
  14. #define EDID_ADDR_FEATURE_SUPPORT 0x18
  15. #define EDID_ADDR_TIMING_DSPR_1 0x36
  16. #define EDID_ADDR_TIMING_DSPR_2 0x48
  17. #define EDID_ADDR_MONITOR_DSPR_1 0x5A
  18. #define EDID_ADDR_MONITOR_DSPR_2 0x6C
  19. #define EDID_ADDR_EXT_BLOCK_FLAG 0x7E
  20. #define EDID_ADDR_EXTEND_BYTE3 0x03 /* EDID address: 0x83 */
  21. /* for ID receiver if RGB, YCbCr 4:2:2 or 4:4:4 */
  22. /* Extension Block 1: */
  23. #define EXTEDID_ADDR_TAG 0x00
  24. #define EXTEDID_ADDR_REVISION 0x01
  25. #define EXTEDID_ADDR_OFST_TIME_DSPR 0x02
  26. /* ddcci master */
  27. #define DDC_DDCMCTL0 ((unsigned int)0x0)
  28. #define DDCM_ODRAIN ((unsigned int)0x1<<31)
  29. #define DDCM_CLK_DIV_OFFSET ((unsigned int)16)
  30. #define DDCM_CLK_DIV_MASK ((unsigned int)0xFFF<<16)
  31. #define DDCM_CS_STATUS ((unsigned int)0x1<<4)
  32. #define DDCM_SCL_STATE ((unsigned int)0x1<<3)
  33. #define DDCM_SDA_STATE ((unsigned int)0x1<<2)
  34. #define DDCM_SM0EN ((unsigned int)0x1<<1)
  35. #define DDCM_SCL_STRECH ((unsigned int)0x1<<0)
  36. #define DDC_DDCMCTL1 ((unsigned int)0x4)
  37. #define DDCM_ACK_OFFSET ((unsigned int)16)
  38. #define DDCM_ACK_MASK ((unsigned int)0xFF<<16)
  39. #define DDCM_PGLEN_OFFSET ((unsigned int)8)
  40. #define DDCM_PGLEN_MASK ((unsigned int)0x7<<8)
  41. #define DDCM_SIF_MODE_OFFSET ((unsigned int)4)
  42. #define DDCM_SIF_MODE_MASK ((unsigned int)0x7<<4)
  43. #define DDCM_START ((unsigned int)0x1)
  44. #define DDCM_WRITE_DATA ((unsigned int)0x2)
  45. #define DDCM_STOP ((unsigned int)0x3)
  46. #define DDCM_READ_DATA_NO_ACK ((unsigned int)0x4)
  47. #define DDCM_READ_DATA_ACK ((unsigned int)0x5)
  48. #define DDCM_TRI ((unsigned int)0x1<<0)
  49. #define DDC_DDCMD0 ((unsigned int)0x8)
  50. #define DDCM_DATA3 ((unsigned int)0xFF<<24)
  51. #define DDCM_DATA2 ((unsigned int)0xFF<<16)
  52. #define DDCM_DATA1 ((unsigned int)0xFF<<8)
  53. #define DDCM_DATA0 ((unsigned int)0xFF<<0)
  54. #define DDC_DDCMD1 ((unsigned int)0xC)
  55. #define DDCM_DATA7 ((unsigned int)0xFF<<24)
  56. #define DDCM_DATA6 ((unsigned int)0xFF<<16)
  57. #define DDCM_DATA5 ((unsigned int)0xFF<<8)
  58. #define DDCM_DATA4 ((unsigned int)0xFF<<0)
  59. enum _SIF_BIT_T {
  60. SIF_8_BIT, /* /< [8 bits data address.] */
  61. SIF_16_BIT, /* /< [16 bits data address.] */
  62. };
  63. #define SIF_BIT_T enum _SIF_BIT_T
  64. enum _SIF_TYPE_T {
  65. SIF_NORMAL, /* /< [Normal, always select this.] */
  66. SIF_OTHER, /* /< [Other.] */
  67. };
  68. #define SIF_TYPE_T enum _SIF_TYPE_T
  69. /* / [Sif control mode select.] */
  70. struct _SIF_MODE_T {
  71. SIF_BIT_T eBit; /* /< [The data address type. ] */
  72. SIF_TYPE_T eType; /* /< [The control mode.] */
  73. };
  74. #define SIF_MODE_T struct _SIF_MODE_T
  75. extern unsigned char fgDDCDataRead(unsigned char bDevice,
  76. unsigned char bData_Addr, unsigned char bDataCount, unsigned char *prData);
  77. extern unsigned char fgDDCDataWrite(unsigned char bDevice,
  78. unsigned char bData_Addr, unsigned char bDataCount, unsigned char *prData);
  79. #endif
  80. #endif