dpcd_defs.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. /*
  2. * Copyright 2012-15 Advanced Micro Devices, Inc.
  3. *
  4. * Permission is hereby granted, free of charge, to any person obtaining a
  5. * copy of this software and associated documentation files (the "Software"),
  6. * to deal in the Software without restriction, including without limitation
  7. * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8. * and/or sell copies of the Software, and to permit persons to whom the
  9. * Software is furnished to do so, subject to the following conditions:
  10. *
  11. * The above copyright notice and this permission notice shall be included in
  12. * all copies or substantial portions of the Software.
  13. *
  14. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  17. * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
  18. * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  19. * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  20. * OTHER DEALINGS IN THE SOFTWARE.
  21. *
  22. * Authors: AMD
  23. *
  24. */
  25. #ifndef __DAL_DPCD_DEFS_H__
  26. #define __DAL_DPCD_DEFS_H__
  27. #include <drm/drm_dp_helper.h>
  28. #ifndef DP_SINK_HW_REVISION_START // can remove this once the define gets into linux drm_dp_helper.h
  29. #define DP_SINK_HW_REVISION_START 0x409
  30. #endif
  31. enum dpcd_revision {
  32. DPCD_REV_10 = 0x10,
  33. DPCD_REV_11 = 0x11,
  34. DPCD_REV_12 = 0x12,
  35. DPCD_REV_13 = 0x13,
  36. DPCD_REV_14 = 0x14
  37. };
  38. /* these are the types stored at DOWNSTREAMPORT_PRESENT */
  39. enum dpcd_downstream_port_type {
  40. DOWNSTREAM_DP = 0,
  41. DOWNSTREAM_VGA,
  42. DOWNSTREAM_DVI_HDMI,
  43. DOWNSTREAM_NONDDC /* has no EDID (TV,CV) */
  44. };
  45. enum dpcd_link_test_patterns {
  46. LINK_TEST_PATTERN_NONE = 0,
  47. LINK_TEST_PATTERN_COLOR_RAMP,
  48. LINK_TEST_PATTERN_VERTICAL_BARS,
  49. LINK_TEST_PATTERN_COLOR_SQUARES
  50. };
  51. enum dpcd_test_color_format {
  52. TEST_COLOR_FORMAT_RGB = 0,
  53. TEST_COLOR_FORMAT_YCBCR422,
  54. TEST_COLOR_FORMAT_YCBCR444
  55. };
  56. enum dpcd_test_bit_depth {
  57. TEST_BIT_DEPTH_6 = 0,
  58. TEST_BIT_DEPTH_8,
  59. TEST_BIT_DEPTH_10,
  60. TEST_BIT_DEPTH_12,
  61. TEST_BIT_DEPTH_16
  62. };
  63. /* PHY (encoder) test patterns
  64. The order of test patterns follows DPCD register PHY_TEST_PATTERN (0x248)
  65. */
  66. enum dpcd_phy_test_patterns {
  67. PHY_TEST_PATTERN_NONE = 0,
  68. PHY_TEST_PATTERN_D10_2,
  69. PHY_TEST_PATTERN_SYMBOL_ERROR,
  70. PHY_TEST_PATTERN_PRBS7,
  71. PHY_TEST_PATTERN_80BIT_CUSTOM,/* For DP1.2 only */
  72. PHY_TEST_PATTERN_CP2520_1,
  73. PHY_TEST_PATTERN_CP2520_2,
  74. PHY_TEST_PATTERN_CP2520_3, /* same as TPS4 */
  75. };
  76. enum dpcd_test_dyn_range {
  77. TEST_DYN_RANGE_VESA = 0,
  78. TEST_DYN_RANGE_CEA
  79. };
  80. enum dpcd_audio_test_pattern {
  81. AUDIO_TEST_PATTERN_OPERATOR_DEFINED = 0,/* direct HW translation */
  82. AUDIO_TEST_PATTERN_SAWTOOTH
  83. };
  84. enum dpcd_audio_sampling_rate {
  85. AUDIO_SAMPLING_RATE_32KHZ = 0,/* direct HW translation */
  86. AUDIO_SAMPLING_RATE_44_1KHZ,
  87. AUDIO_SAMPLING_RATE_48KHZ,
  88. AUDIO_SAMPLING_RATE_88_2KHZ,
  89. AUDIO_SAMPLING_RATE_96KHZ,
  90. AUDIO_SAMPLING_RATE_176_4KHZ,
  91. AUDIO_SAMPLING_RATE_192KHZ
  92. };
  93. enum dpcd_audio_channels {
  94. AUDIO_CHANNELS_1 = 0,/* direct HW translation */
  95. AUDIO_CHANNELS_2,
  96. AUDIO_CHANNELS_3,
  97. AUDIO_CHANNELS_4,
  98. AUDIO_CHANNELS_5,
  99. AUDIO_CHANNELS_6,
  100. AUDIO_CHANNELS_7,
  101. AUDIO_CHANNELS_8,
  102. AUDIO_CHANNELS_COUNT
  103. };
  104. enum dpcd_audio_test_pattern_periods {
  105. DPCD_AUDIO_TEST_PATTERN_PERIOD_NOTUSED = 0,/* direct HW translation */
  106. DPCD_AUDIO_TEST_PATTERN_PERIOD_3,
  107. DPCD_AUDIO_TEST_PATTERN_PERIOD_6,
  108. DPCD_AUDIO_TEST_PATTERN_PERIOD_12,
  109. DPCD_AUDIO_TEST_PATTERN_PERIOD_24,
  110. DPCD_AUDIO_TEST_PATTERN_PERIOD_48,
  111. DPCD_AUDIO_TEST_PATTERN_PERIOD_96,
  112. DPCD_AUDIO_TEST_PATTERN_PERIOD_192,
  113. DPCD_AUDIO_TEST_PATTERN_PERIOD_384,
  114. DPCD_AUDIO_TEST_PATTERN_PERIOD_768,
  115. DPCD_AUDIO_TEST_PATTERN_PERIOD_1536
  116. };
  117. /* This enum is for programming DPCD TRAINING_PATTERN_SET */
  118. enum dpcd_training_patterns {
  119. DPCD_TRAINING_PATTERN_VIDEOIDLE = 0,/* direct HW translation! */
  120. DPCD_TRAINING_PATTERN_1,
  121. DPCD_TRAINING_PATTERN_2,
  122. DPCD_TRAINING_PATTERN_3,
  123. DPCD_TRAINING_PATTERN_4 = 7
  124. };
  125. /* This enum is for use with PsrSinkPsrStatus.bits.sinkSelfRefreshStatus
  126. It defines the possible PSR states. */
  127. enum dpcd_psr_sink_states {
  128. PSR_SINK_STATE_INACTIVE = 0,
  129. PSR_SINK_STATE_ACTIVE_CAPTURE_DISPLAY_ON_SOURCE_TIMING = 1,
  130. PSR_SINK_STATE_ACTIVE_DISPLAY_FROM_SINK_RFB = 2,
  131. PSR_SINK_STATE_ACTIVE_CAPTURE_DISPLAY_ON_SINK_TIMING = 3,
  132. PSR_SINK_STATE_ACTIVE_CAPTURE_TIMING_RESYNC = 4,
  133. PSR_SINK_STATE_SINK_INTERNAL_ERROR = 7,
  134. };
  135. #endif /* __DAL_DPCD_DEFS_H__ */