mt8186-mmsys.h 3.9 KB

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