zx_plane_regs.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /*
  2. * Copyright 2016 Linaro Ltd.
  3. * Copyright 2016 ZTE Corporation.
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License version 2 as
  7. * published by the Free Software Foundation.
  8. *
  9. */
  10. #ifndef __ZX_PLANE_REGS_H__
  11. #define __ZX_PLANE_REGS_H__
  12. /* GL registers */
  13. #define GL_CTRL0 0x00
  14. #define GL_UPDATE BIT(5)
  15. #define GL_CTRL1 0x04
  16. #define GL_DATA_FMT_SHIFT 0
  17. #define GL_DATA_FMT_MASK (0xf << GL_DATA_FMT_SHIFT)
  18. #define GL_FMT_ARGB8888 0
  19. #define GL_FMT_RGB888 1
  20. #define GL_FMT_RGB565 2
  21. #define GL_FMT_ARGB1555 3
  22. #define GL_FMT_ARGB4444 4
  23. #define GL_CTRL2 0x08
  24. #define GL_GLOBAL_ALPHA_SHIFT 8
  25. #define GL_GLOBAL_ALPHA_MASK (0xff << GL_GLOBAL_ALPHA_SHIFT)
  26. #define GL_CTRL3 0x0c
  27. #define GL_SCALER_BYPASS_MODE BIT(0)
  28. #define GL_STRIDE 0x18
  29. #define GL_ADDR 0x1c
  30. #define GL_SRC_SIZE 0x38
  31. #define GL_SRC_W_SHIFT 16
  32. #define GL_SRC_W_MASK (0x3fff << GL_SRC_W_SHIFT)
  33. #define GL_SRC_H_SHIFT 0
  34. #define GL_SRC_H_MASK (0x3fff << GL_SRC_H_SHIFT)
  35. #define GL_POS_START 0x9c
  36. #define GL_POS_END 0xa0
  37. #define GL_POS_X_SHIFT 16
  38. #define GL_POS_X_MASK (0x1fff << GL_POS_X_SHIFT)
  39. #define GL_POS_Y_SHIFT 0
  40. #define GL_POS_Y_MASK (0x1fff << GL_POS_Y_SHIFT)
  41. #define GL_SRC_W(x) (((x) << GL_SRC_W_SHIFT) & GL_SRC_W_MASK)
  42. #define GL_SRC_H(x) (((x) << GL_SRC_H_SHIFT) & GL_SRC_H_MASK)
  43. #define GL_POS_X(x) (((x) << GL_POS_X_SHIFT) & GL_POS_X_MASK)
  44. #define GL_POS_Y(x) (((x) << GL_POS_Y_SHIFT) & GL_POS_Y_MASK)
  45. /* VL registers */
  46. #define VL_CTRL0 0x00
  47. #define VL_UPDATE BIT(3)
  48. #define VL_CTRL1 0x04
  49. #define VL_YUV420_PLANAR BIT(5)
  50. #define VL_YUV422_SHIFT 3
  51. #define VL_YUV422_YUYV (0 << VL_YUV422_SHIFT)
  52. #define VL_YUV422_YVYU (1 << VL_YUV422_SHIFT)
  53. #define VL_YUV422_UYVY (2 << VL_YUV422_SHIFT)
  54. #define VL_YUV422_VYUY (3 << VL_YUV422_SHIFT)
  55. #define VL_FMT_YUV420 0
  56. #define VL_FMT_YUV422 1
  57. #define VL_FMT_YUV420_P010 2
  58. #define VL_FMT_YUV420_HANTRO 3
  59. #define VL_FMT_YUV444_8BIT 4
  60. #define VL_FMT_YUV444_10BIT 5
  61. #define VL_CTRL2 0x08
  62. #define VL_SCALER_BYPASS_MODE BIT(0)
  63. #define VL_STRIDE 0x0c
  64. #define LUMA_STRIDE_SHIFT 16
  65. #define LUMA_STRIDE_MASK (0xffff << LUMA_STRIDE_SHIFT)
  66. #define CHROMA_STRIDE_SHIFT 0
  67. #define CHROMA_STRIDE_MASK (0xffff << CHROMA_STRIDE_SHIFT)
  68. #define VL_SRC_SIZE 0x10
  69. #define VL_Y 0x14
  70. #define VL_POS_START 0x30
  71. #define VL_POS_END 0x34
  72. #define LUMA_STRIDE(x) (((x) << LUMA_STRIDE_SHIFT) & LUMA_STRIDE_MASK)
  73. #define CHROMA_STRIDE(x) (((x) << CHROMA_STRIDE_SHIFT) & CHROMA_STRIDE_MASK)
  74. /* RSZ registers */
  75. #define RSZ_SRC_CFG 0x00
  76. #define RSZ_DEST_CFG 0x04
  77. #define RSZ_ENABLE_CFG 0x14
  78. #define RSZ_VL_LUMA_HOR 0x08
  79. #define RSZ_VL_LUMA_VER 0x0c
  80. #define RSZ_VL_CHROMA_HOR 0x10
  81. #define RSZ_VL_CHROMA_VER 0x14
  82. #define RSZ_VL_CTRL_CFG 0x18
  83. #define RSZ_VL_FMT_SHIFT 3
  84. #define RSZ_VL_FMT_MASK (0x3 << RSZ_VL_FMT_SHIFT)
  85. #define RSZ_VL_FMT_YCBCR420 (0x0 << RSZ_VL_FMT_SHIFT)
  86. #define RSZ_VL_FMT_YCBCR422 (0x1 << RSZ_VL_FMT_SHIFT)
  87. #define RSZ_VL_FMT_YCBCR444 (0x2 << RSZ_VL_FMT_SHIFT)
  88. #define RSZ_VL_ENABLE_CFG 0x1c
  89. #define RSZ_VER_SHIFT 16
  90. #define RSZ_VER_MASK (0xffff << RSZ_VER_SHIFT)
  91. #define RSZ_HOR_SHIFT 0
  92. #define RSZ_HOR_MASK (0xffff << RSZ_HOR_SHIFT)
  93. #define RSZ_VER(x) (((x) << RSZ_VER_SHIFT) & RSZ_VER_MASK)
  94. #define RSZ_HOR(x) (((x) << RSZ_HOR_SHIFT) & RSZ_HOR_MASK)
  95. #define RSZ_DATA_STEP_SHIFT 16
  96. #define RSZ_DATA_STEP_MASK (0xffff << RSZ_DATA_STEP_SHIFT)
  97. #define RSZ_PARA_STEP_SHIFT 0
  98. #define RSZ_PARA_STEP_MASK (0xffff << RSZ_PARA_STEP_SHIFT)
  99. #define RSZ_DATA_STEP(x) (((x) << RSZ_DATA_STEP_SHIFT) & RSZ_DATA_STEP_MASK)
  100. #define RSZ_PARA_STEP(x) (((x) << RSZ_PARA_STEP_SHIFT) & RSZ_PARA_STEP_MASK)
  101. /* HBSC registers */
  102. #define HBSC_SATURATION 0x00
  103. #define HBSC_HUE 0x04
  104. #define HBSC_BRIGHT 0x08
  105. #define HBSC_CONTRAST 0x0c
  106. #define HBSC_THRESHOLD_COL1 0x10
  107. #define HBSC_THRESHOLD_COL2 0x14
  108. #define HBSC_THRESHOLD_COL3 0x18
  109. #define HBSC_CTRL0 0x28
  110. #define HBSC_CTRL_EN BIT(2)
  111. #endif /* __ZX_PLANE_REGS_H__ */