ark1668e_lcd.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #ifndef ARK_LCD_H
  2. #define ARK_LCD_H
  3. #include <linux/types.h>
  4. #include <common.h>
  5. #include "ark1668e_hardware.h"
  6. #include "ark1668e_sys.h"
  7. //yuv format
  8. #define Y_U_V 0
  9. #define Y_UV 1
  10. //window format
  11. #define SEQ_Y_UV422 20 //Y_UV422 format for video layer
  12. #define SEQ_Y_UV420 21 //Y_UV420 format for video layer
  13. #define SEQ_YUV422 0 //Y_U_V422 format for video layer
  14. #define PALETTE 0 //palette for osd layer
  15. #define SEQ_YUV420 1 //Y_U_V420 format for video layer
  16. #define YUV422 2
  17. #define YUV444 3
  18. #define RGB_I555 4
  19. #define RGB_565 5
  20. #define RGB_a888 6
  21. #define RGB_888 7
  22. #define RGB_a1555 8
  23. #define RGB_a1888 9
  24. #define RGB_a4888 10
  25. #define RGB_666 11
  26. #define RGB_a1666 12
  27. enum DISP_OSD_LAYER_ID
  28. {
  29. OSD1_LAYER,
  30. OSD2_LAYER,
  31. OSD3_LAYER,
  32. };
  33. enum DISP_VIDEO_LAYER_ID
  34. {
  35. VIDEO_LAYER,
  36. VIDEO2_LAYER,
  37. };
  38. enum DISP_OSD_FORMAT
  39. {
  40. DISP_PALETTE = 0,
  41. DISP_BMP24BIT,
  42. DISP_YUV422 = 0x2,
  43. DISP_YUV422_VYUY = 0x2,
  44. DISP_YUV422_UYVY = 0x12,
  45. DISP_YUV422_YVYU = 0x22,
  46. DISP_YUV422_YUYV = 0x32,
  47. DISP_YUV444 = 3,
  48. DISP_RGB_I555,
  49. DISP_RGB_565,
  50. DISP_RGB_a888,
  51. DISP_RGB_888 = 0x7,
  52. DISP_RBG_888 = 0x17,
  53. DISP_GRB_888 = 0x27,
  54. DISP_GBR_888 = 0x37,
  55. DISP_BRG_888 = 0x47,
  56. DISP_BGR_888 = 0x57,
  57. DISP_RGB_a1555 = 8,
  58. DISP_RGB_a1888,
  59. DISP_RGB_a4888,
  60. DISP_RGB_666,
  61. DISP_RGB_a1666
  62. };
  63. enum DISP_VIDEO_FORMAT
  64. {
  65. DISP_SEQ_YUV422 = 0,
  66. DISP_SEQ_Y_U_V422 = 0,
  67. DISP_SEQ_Y_UV422 = 0x10,
  68. DISP_SEQ_YUV420 = 1,
  69. DISP_SEQ_Y_U_V420 = 0x1,
  70. DISP_SEQ_Y_UV420 = 0x11,
  71. };
  72. #define DispGetYUVFormat(format) ((format) & 0xF)
  73. #define DispGetYUVOrder(format) (((format) & 0xF0) >> 4)
  74. enum rgb_format_id {
  75. RGB_FORMAT_RGB0888,
  76. RGB_FORMAT_RGB565,
  77. RGB_FORMAT_NONE = -1,
  78. };
  79. enum lvds_format_id {
  80. LVDS_FORMAT_RGB0888,
  81. LVDS_FORMAT_RGB565,
  82. LVDS_FORMAT_NONE = -1,
  83. };
  84. enum mirror_type {
  85. MIRROR_TYPE_NONE,
  86. MIRROR_TYPE_L2R,//mirror left to right
  87. MIRROR_TYPE_U2D,//mirror up to down
  88. MIRROR_TYPE_L2R_U2D,//mirror left to right and up to down
  89. MIRROR_TYPE_END,
  90. };
  91. void ark_disp_wait_lcd_frame_int(void);
  92. void ark_disp_wait_tvenc_frame_int(void);
  93. void ark_set_osd_image(enum DISP_OSD_LAYER_ID layer_id,int format, int width, int height);
  94. void ark_set_osd_addr(enum DISP_OSD_LAYER_ID layer_id, unsigned int addr);
  95. void ark_disp_set_osd_layer_position(int id, int x, int y);
  96. void ark_osd_en_layer(int id, unsigned int enable);
  97. #endif