ddk750_display.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #ifndef DDK750_DISPLAY_H__
  2. #define DDK750_DISPLAY_H__
  3. /* panel path select
  4. 80000[29:28]
  5. */
  6. #define PNL_2_OFFSET 0
  7. #define PNL_2_MASK (3 << PNL_2_OFFSET)
  8. #define PNL_2_USAGE (PNL_2_MASK << 16)
  9. #define PNL_2_PRI ((0 << PNL_2_OFFSET)|PNL_2_USAGE)
  10. #define PNL_2_SEC ((2 << PNL_2_OFFSET)|PNL_2_USAGE)
  11. /* primary timing & plane enable bit
  12. 1: 80000[8] & 80000[2] on
  13. 0: both off
  14. */
  15. #define PRI_TP_OFFSET 4
  16. #define PRI_TP_MASK BIT(PRI_TP_OFFSET)
  17. #define PRI_TP_USAGE (PRI_TP_MASK << 16)
  18. #define PRI_TP_ON ((0x1 << PRI_TP_OFFSET)|PRI_TP_USAGE)
  19. #define PRI_TP_OFF ((0x0 << PRI_TP_OFFSET)|PRI_TP_USAGE)
  20. /* panel sequency status
  21. 80000[27:24]
  22. */
  23. #define PNL_SEQ_OFFSET 6
  24. #define PNL_SEQ_MASK BIT(PNL_SEQ_OFFSET)
  25. #define PNL_SEQ_USAGE (PNL_SEQ_MASK << 16)
  26. #define PNL_SEQ_ON (BIT(PNL_SEQ_OFFSET)|PNL_SEQ_USAGE)
  27. #define PNL_SEQ_OFF ((0 << PNL_SEQ_OFFSET)|PNL_SEQ_USAGE)
  28. /* dual digital output
  29. 80000[19]
  30. */
  31. #define DUAL_TFT_OFFSET 8
  32. #define DUAL_TFT_MASK BIT(DUAL_TFT_OFFSET)
  33. #define DUAL_TFT_USAGE (DUAL_TFT_MASK << 16)
  34. #define DUAL_TFT_ON (BIT(DUAL_TFT_OFFSET)|DUAL_TFT_USAGE)
  35. #define DUAL_TFT_OFF ((0 << DUAL_TFT_OFFSET)|DUAL_TFT_USAGE)
  36. /* secondary timing & plane enable bit
  37. 1:80200[8] & 80200[2] on
  38. 0: both off
  39. */
  40. #define SEC_TP_OFFSET 5
  41. #define SEC_TP_MASK BIT(SEC_TP_OFFSET)
  42. #define SEC_TP_USAGE (SEC_TP_MASK << 16)
  43. #define SEC_TP_ON ((0x1 << SEC_TP_OFFSET)|SEC_TP_USAGE)
  44. #define SEC_TP_OFF ((0x0 << SEC_TP_OFFSET)|SEC_TP_USAGE)
  45. /* crt path select
  46. 80200[19:18]
  47. */
  48. #define CRT_2_OFFSET 2
  49. #define CRT_2_MASK (3 << CRT_2_OFFSET)
  50. #define CRT_2_USAGE (CRT_2_MASK << 16)
  51. #define CRT_2_PRI ((0x0 << CRT_2_OFFSET)|CRT_2_USAGE)
  52. #define CRT_2_SEC ((0x2 << CRT_2_OFFSET)|CRT_2_USAGE)
  53. /* DAC affect both DVI and DSUB
  54. 4[20]
  55. */
  56. #define DAC_OFFSET 7
  57. #define DAC_MASK BIT(DAC_OFFSET)
  58. #define DAC_USAGE (DAC_MASK << 16)
  59. #define DAC_ON ((0x0 << DAC_OFFSET)|DAC_USAGE)
  60. #define DAC_OFF ((0x1 << DAC_OFFSET)|DAC_USAGE)
  61. /* DPMS only affect D-SUB head
  62. 0[31:30]
  63. */
  64. #define DPMS_OFFSET 9
  65. #define DPMS_MASK (3 << DPMS_OFFSET)
  66. #define DPMS_USAGE (DPMS_MASK << 16)
  67. #define DPMS_OFF ((3 << DPMS_OFFSET)|DPMS_USAGE)
  68. #define DPMS_ON ((0 << DPMS_OFFSET)|DPMS_USAGE)
  69. /*
  70. LCD1 means panel path TFT1 & panel path DVI (so enable DAC)
  71. CRT means crt path DSUB
  72. */
  73. typedef enum _disp_output_t {
  74. do_LCD1_PRI = PNL_2_PRI|PRI_TP_ON|PNL_SEQ_ON|DAC_ON,
  75. do_LCD1_SEC = PNL_2_SEC|SEC_TP_ON|PNL_SEQ_ON|DAC_ON,
  76. do_LCD2_PRI = CRT_2_PRI|PRI_TP_ON|DUAL_TFT_ON,
  77. do_LCD2_SEC = CRT_2_SEC|SEC_TP_ON|DUAL_TFT_ON,
  78. /*
  79. do_DSUB_PRI = CRT_2_PRI|PRI_TP_ON|DPMS_ON|DAC_ON,
  80. do_DSUB_SEC = CRT_2_SEC|SEC_TP_ON|DPMS_ON|DAC_ON,
  81. */
  82. do_CRT_PRI = CRT_2_PRI|PRI_TP_ON|DPMS_ON|DAC_ON,
  83. do_CRT_SEC = CRT_2_SEC|SEC_TP_ON|DPMS_ON|DAC_ON,
  84. }
  85. disp_output_t;
  86. void ddk750_setLogicalDispOut(disp_output_t);
  87. #endif