mt8186-mmsys.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. #ifndef __SOC_MEDIATEK_MT8186_MMSYS_H
  3. #define __SOC_MEDIATEK_MT8186_MMSYS_H
  4. /* Values for DPI configuration in MMSYS address space */
  5. #define MT8186_MMSYS_DPI_OUTPUT_FORMAT 0x400
  6. #define DPI_FORMAT_MASK 0x1
  7. #define DPI_RGB888_DDR_CON BIT(0)
  8. #define DPI_RGB565_SDR_CON BIT(1)
  9. #define MT8186_MMSYS_OVL_CON 0xF04
  10. #define MT8186_MMSYS_OVL0_CON_MASK 0x3
  11. #define MT8186_MMSYS_OVL0_2L_CON_MASK 0xC
  12. #define MT8186_OVL0_GO_BLEND BIT(0)
  13. #define MT8186_OVL0_GO_BG BIT(1)
  14. #define MT8186_OVL0_2L_GO_BLEND BIT(2)
  15. #define MT8186_OVL0_2L_GO_BG BIT(3)
  16. #define MT8186_DISP_RDMA0_SOUT_SEL 0xF0C
  17. #define MT8186_RDMA0_SOUT_SEL_MASK 0xF
  18. #define MT8186_RDMA0_SOUT_TO_DSI0 (0)
  19. #define MT8186_RDMA0_SOUT_TO_COLOR0 (1)
  20. #define MT8186_RDMA0_SOUT_TO_DPI0 (2)
  21. #define MT8186_DISP_OVL0_2L_MOUT_EN 0xF14
  22. #define MT8186_OVL0_2L_MOUT_EN_MASK 0xF
  23. #define MT8186_OVL0_2L_MOUT_TO_RDMA0 BIT(0)
  24. #define MT8186_OVL0_2L_MOUT_TO_RDMA1 BIT(3)
  25. #define MT8186_DISP_OVL0_MOUT_EN 0xF18
  26. #define MT8186_OVL0_MOUT_EN_MASK 0xF
  27. #define MT8186_OVL0_MOUT_TO_RDMA0 BIT(0)
  28. #define MT8186_OVL0_MOUT_TO_RDMA1 BIT(3)
  29. #define MT8186_DISP_DITHER0_MOUT_EN 0xF20
  30. #define MT8186_DITHER0_MOUT_EN_MASK 0xF
  31. #define MT8186_DITHER0_MOUT_TO_DSI0 BIT(0)
  32. #define MT8186_DITHER0_MOUT_TO_RDMA1 BIT(2)
  33. #define MT8186_DITHER0_MOUT_TO_DPI0 BIT(3)
  34. #define MT8186_DISP_RDMA0_SEL_IN 0xF28
  35. #define MT8186_RDMA0_SEL_IN_MASK 0xF
  36. #define MT8186_RDMA0_FROM_OVL0 0
  37. #define MT8186_RDMA0_FROM_OVL0_2L 2
  38. #define MT8186_DISP_DSI0_SEL_IN 0xF30
  39. #define MT8186_DSI0_SEL_IN_MASK 0xF
  40. #define MT8186_DSI0_FROM_RDMA0 0
  41. #define MT8186_DSI0_FROM_DITHER0 1
  42. #define MT8186_DSI0_FROM_RDMA1 2
  43. #define MT8186_DISP_RDMA1_MOUT_EN 0xF3C
  44. #define MT8186_RDMA1_MOUT_EN_MASK 0xF
  45. #define MT8186_RDMA1_MOUT_TO_DPI0_SEL BIT(0)
  46. #define MT8186_RDMA1_MOUT_TO_DSI0_SEL BIT(2)
  47. #define MT8186_DISP_RDMA1_SEL_IN 0xF40
  48. #define MT8186_RDMA1_SEL_IN_MASK 0xF
  49. #define MT8186_RDMA1_FROM_OVL0 0
  50. #define MT8186_RDMA1_FROM_OVL0_2L 2
  51. #define MT8186_RDMA1_FROM_DITHER0 3
  52. #define MT8186_DISP_DPI0_SEL_IN 0xF44
  53. #define MT8186_DPI0_SEL_IN_MASK 0xF
  54. #define MT8186_DPI0_FROM_RDMA1 0
  55. #define MT8186_DPI0_FROM_DITHER0 1
  56. #define MT8186_DPI0_FROM_RDMA0 2
  57. #define MT8186_MMSYS_SW0_RST_B 0x160
  58. static const struct mtk_mmsys_routes mmsys_mt8186_routing_table[] = {
  59. {
  60. DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0,
  61. MT8186_DISP_OVL0_MOUT_EN, MT8186_OVL0_MOUT_EN_MASK,
  62. MT8186_OVL0_MOUT_TO_RDMA0
  63. },
  64. {
  65. DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0,
  66. MT8186_DISP_RDMA0_SEL_IN, MT8186_RDMA0_SEL_IN_MASK,
  67. MT8186_RDMA0_FROM_OVL0
  68. },
  69. {
  70. DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0,
  71. MT8186_MMSYS_OVL_CON, MT8186_MMSYS_OVL0_CON_MASK,
  72. MT8186_OVL0_GO_BLEND
  73. },
  74. {
  75. DDP_COMPONENT_RDMA0, DDP_COMPONENT_COLOR0,
  76. MT8186_DISP_RDMA0_SOUT_SEL, MT8186_RDMA0_SOUT_SEL_MASK,
  77. MT8186_RDMA0_SOUT_TO_COLOR0
  78. },
  79. {
  80. DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSI0,
  81. MT8186_DISP_DITHER0_MOUT_EN, MT8186_DITHER0_MOUT_EN_MASK,
  82. MT8186_DITHER0_MOUT_TO_DSI0,
  83. },
  84. {
  85. DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSI0,
  86. MT8186_DISP_DSI0_SEL_IN, MT8186_DSI0_SEL_IN_MASK,
  87. MT8186_DSI0_FROM_DITHER0
  88. },
  89. {
  90. DDP_COMPONENT_OVL_2L0, DDP_COMPONENT_RDMA1,
  91. MT8186_DISP_OVL0_2L_MOUT_EN, MT8186_OVL0_2L_MOUT_EN_MASK,
  92. MT8186_OVL0_2L_MOUT_TO_RDMA1
  93. },
  94. {
  95. DDP_COMPONENT_OVL_2L0, DDP_COMPONENT_RDMA1,
  96. MT8186_DISP_RDMA1_SEL_IN, MT8186_RDMA1_SEL_IN_MASK,
  97. MT8186_RDMA1_FROM_OVL0_2L
  98. },
  99. {
  100. DDP_COMPONENT_OVL_2L0, DDP_COMPONENT_RDMA1,
  101. MT8186_MMSYS_OVL_CON, MT8186_MMSYS_OVL0_2L_CON_MASK,
  102. MT8186_OVL0_2L_GO_BLEND
  103. },
  104. {
  105. DDP_COMPONENT_RDMA1, DDP_COMPONENT_DPI0,
  106. MT8186_DISP_RDMA1_MOUT_EN, MT8186_RDMA1_MOUT_EN_MASK,
  107. MT8186_RDMA1_MOUT_TO_DPI0_SEL
  108. },
  109. {
  110. DDP_COMPONENT_RDMA1, DDP_COMPONENT_DPI0,
  111. MT8186_DISP_DPI0_SEL_IN, MT8186_DPI0_SEL_IN_MASK,
  112. MT8186_DPI0_FROM_RDMA1
  113. },
  114. };
  115. #endif /* __SOC_MEDIATEK_MT8186_MMSYS_H */