sde_rotator_r1_hwio.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
  4. */
  5. #ifndef SDE_ROTATOR_R1_HWIO_H
  6. #define SDE_ROTATOR_R1_HWIO_H
  7. #include <linux/bitops.h>
  8. #define SDE_MDP_FETCH_CONFIG_RESET_VALUE 0x00000087
  9. #define SDE_MDP_REG_HW_VERSION 0x0
  10. #define SDE_MDP_REG_INTR_EN 0x00010
  11. #define SDE_MDP_REG_INTR_STATUS 0x00014
  12. #define SDE_MDP_REG_INTR_CLEAR 0x00018
  13. #define SDE_MDP_INTR_WB_0_DONE BIT(0)
  14. #define SDE_MDP_INTR_WB_1_DONE BIT(1)
  15. enum mdss_mdp_intr_type {
  16. SDE_MDP_IRQ_WB_ROT_COMP = 0,
  17. SDE_MDP_IRQ_WB_WFD = 4,
  18. SDE_MDP_IRQ_PING_PONG_COMP = 8,
  19. SDE_MDP_IRQ_PING_PONG_RD_PTR = 12,
  20. SDE_MDP_IRQ_PING_PONG_WR_PTR = 16,
  21. SDE_MDP_IRQ_PING_PONG_AUTO_REF = 20,
  22. SDE_MDP_IRQ_INTF_UNDER_RUN = 24,
  23. SDE_MDP_IRQ_INTF_VSYNC = 25,
  24. };
  25. enum mdss_mdp_ctl_index {
  26. SDE_MDP_CTL0,
  27. SDE_MDP_CTL1,
  28. SDE_MDP_CTL2,
  29. SDE_MDP_CTL3,
  30. SDE_MDP_CTL4,
  31. SDE_MDP_CTL5,
  32. SDE_MDP_MAX_CTL
  33. };
  34. #define SDE_MDP_REG_CTL_LAYER(lm) \
  35. ((lm == 5) ? (0x024) : ((lm) * 0x004))
  36. #define SDE_MDP_REG_CTL_TOP 0x014
  37. #define SDE_MDP_REG_CTL_FLUSH 0x018
  38. #define SDE_MDP_REG_CTL_START 0x01C
  39. #define SDE_MDP_CTL_OP_ROT0_MODE 0x1
  40. #define SDE_MDP_CTL_OP_ROT1_MODE 0x2
  41. enum sde_mdp_sspp_index {
  42. SDE_MDP_SSPP_VIG0,
  43. SDE_MDP_SSPP_VIG1,
  44. SDE_MDP_SSPP_VIG2,
  45. SDE_MDP_SSPP_RGB0,
  46. SDE_MDP_SSPP_RGB1,
  47. SDE_MDP_SSPP_RGB2,
  48. SDE_MDP_SSPP_DMA0,
  49. SDE_MDP_SSPP_DMA1,
  50. SDE_MDP_SSPP_VIG3,
  51. SDE_MDP_SSPP_RGB3,
  52. SDE_MDP_SSPP_CURSOR0,
  53. SDE_MDP_SSPP_CURSOR1,
  54. SDE_MDP_MAX_SSPP
  55. };
  56. #define SDE_MDP_REG_SSPP_SRC_SIZE 0x000
  57. #define SDE_MDP_REG_SSPP_SRC_IMG_SIZE 0x004
  58. #define SDE_MDP_REG_SSPP_SRC_XY 0x008
  59. #define SDE_MDP_REG_SSPP_OUT_SIZE 0x00C
  60. #define SDE_MDP_REG_SSPP_OUT_XY 0x010
  61. #define SDE_MDP_REG_SSPP_SRC0_ADDR 0x014
  62. #define SDE_MDP_REG_SSPP_SRC1_ADDR 0x018
  63. #define SDE_MDP_REG_SSPP_SRC2_ADDR 0x01C
  64. #define SDE_MDP_REG_SSPP_SRC3_ADDR 0x020
  65. #define SDE_MDP_REG_SSPP_SRC_YSTRIDE0 0x024
  66. #define SDE_MDP_REG_SSPP_SRC_YSTRIDE1 0x028
  67. #define SDE_MDP_REG_SSPP_STILE_FRAME_SIZE 0x02C
  68. #define SDE_MDP_REG_SSPP_SRC_FORMAT 0x030
  69. #define SDE_MDP_REG_SSPP_SRC_UNPACK_PATTERN 0x034
  70. #define SDE_MDP_REG_SSPP_SRC_CONSTANT_COLOR 0x03C
  71. #define SDE_MDP_REG_SSPP_REQPRIO_FIFO_WM_0 0x050
  72. #define SDE_MDP_REG_SSPP_REQPRIO_FIFO_WM_1 0x054
  73. #define SDE_MDP_REG_SSPP_REQPRIO_FIFO_WM_2 0x058
  74. #define SDE_MDP_REG_SSPP_DANGER_LUT 0x060
  75. #define SDE_MDP_REG_SSPP_SAFE_LUT 0x064
  76. #define SDE_MDP_REG_SSPP_CREQ_LUT 0x068
  77. #define SDE_MDP_REG_SSPP_QOS_CTRL 0x06C
  78. #define SDE_MDP_REG_SSPP_CDP_CTRL 0x134
  79. #define SDE_MDP_REG_SSPP_UBWC_ERROR_STATUS 0x138
  80. #define SDE_MDP_REG_SSPP_SRC_OP_MODE 0x038
  81. #define SDE_MDP_OP_FLIP_UD BIT(14)
  82. #define SDE_MDP_OP_FLIP_LR BIT(13)
  83. #define SDE_MDP_OP_BWC_EN BIT(0)
  84. #define SDE_MDP_OP_BWC_LOSSLESS (0 << 1)
  85. #define SDE_MDP_OP_BWC_Q_HIGH (1 << 1)
  86. #define SDE_MDP_OP_BWC_Q_MED (2 << 1)
  87. #define SDE_MDP_REG_SSPP_SRC_CONSTANT_COLOR 0x03C
  88. #define SDE_MDP_REG_SSPP_FETCH_CONFIG 0x048
  89. #define SDE_MDP_REG_SSPP_VC1_RANGE 0x04C
  90. #define SDE_MDP_REG_SSPP_SRC_ADDR_SW_STATUS 0x070
  91. #define SDE_MDP_REG_SSPP_CURRENT_SRC0_ADDR 0x0A4
  92. #define SDE_MDP_REG_SSPP_CURRENT_SRC1_ADDR 0x0A8
  93. #define SDE_MDP_REG_SSPP_CURRENT_SRC2_ADDR 0x0AC
  94. #define SDE_MDP_REG_SSPP_CURRENT_SRC3_ADDR 0x0B0
  95. #define SDE_MDP_REG_SSPP_DECIMATION_CONFIG 0x0B4
  96. enum sde_mdp_mixer_wb_index {
  97. SDE_MDP_WB_LAYERMIXER0,
  98. SDE_MDP_WB_LAYERMIXER1,
  99. SDE_MDP_WB_MAX_LAYERMIXER,
  100. };
  101. enum mdss_mdp_writeback_index {
  102. SDE_MDP_WRITEBACK0,
  103. SDE_MDP_WRITEBACK1,
  104. SDE_MDP_WRITEBACK2,
  105. SDE_MDP_WRITEBACK3,
  106. SDE_MDP_WRITEBACK4,
  107. SDE_MDP_MAX_WRITEBACK
  108. };
  109. #define SDE_MDP_REG_WB_DST_FORMAT 0x000
  110. #define SDE_MDP_REG_WB_DST_OP_MODE 0x004
  111. #define SDE_MDP_REG_WB_DST_PACK_PATTERN 0x008
  112. #define SDE_MDP_REG_WB_DST0_ADDR 0x00C
  113. #define SDE_MDP_REG_WB_DST1_ADDR 0x010
  114. #define SDE_MDP_REG_WB_DST2_ADDR 0x014
  115. #define SDE_MDP_REG_WB_DST3_ADDR 0x018
  116. #define SDE_MDP_REG_WB_DST_YSTRIDE0 0x01C
  117. #define SDE_MDP_REG_WB_DST_YSTRIDE1 0x020
  118. #define SDE_MDP_REG_WB_DST_WRITE_CONFIG 0x048
  119. #define SDE_MDP_REG_WB_ROTATION_DNSCALER 0x050
  120. #define SDE_MDP_REG_WB_ROTATOR_PIPE_DOWNSCALER 0x054
  121. #define SDE_MDP_REG_WB_OUT_SIZE 0x074
  122. #define SDE_MDP_REG_WB_ALPHA_X_VALUE 0x078
  123. #define SDE_MDP_REG_WB_DST_ADDR_SW_STATUS 0x2B0
  124. #endif