meson_dw_hdmi.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /*
  2. * Copyright (C) 2016 BayLibre, SAS
  3. * Author: Neil Armstrong <narmstrong@baylibre.com>
  4. * Copyright (C) 2015 Amlogic, Inc. All rights reserved.
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU General Public License as
  8. * published by the Free Software Foundation; either version 2 of the
  9. * License, or (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful, but
  12. * WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program; if not, see <http://www.gnu.org/licenses/>.
  18. */
  19. #ifndef __MESON_DW_HDMI_H
  20. #define __MESON_DW_HDMI_H
  21. /*
  22. * Bit 7 RW Reserved. Default 1.
  23. * Bit 6 RW Reserved. Default 1.
  24. * Bit 5 RW Reserved. Default 1.
  25. * Bit 4 RW sw_reset_phyif: PHY interface. 1=Apply reset; 0=Release from reset.
  26. * Default 1.
  27. * Bit 3 RW sw_reset_intr: interrupt module. 1=Apply reset;
  28. * 0=Release from reset.
  29. * Default 1.
  30. * Bit 2 RW sw_reset_mem: KSV/REVOC mem. 1=Apply reset; 0=Release from reset.
  31. * Default 1.
  32. * Bit 1 RW sw_reset_rnd: random number interface to HDCP. 1=Apply reset;
  33. * 0=Release from reset. Default 1.
  34. * Bit 0 RW sw_reset_core: connects to IP's ~irstz. 1=Apply reset;
  35. * 0=Release from reset. Default 1.
  36. */
  37. #define HDMITX_TOP_SW_RESET (0x000)
  38. /*
  39. * Bit 12 RW i2s_ws_inv:1=Invert i2s_ws; 0=No invert. Default 0.
  40. * Bit 11 RW i2s_clk_inv: 1=Invert i2s_clk; 0=No invert. Default 0.
  41. * Bit 10 RW spdif_clk_inv: 1=Invert spdif_clk; 0=No invert. Default 0.
  42. * Bit 9 RW tmds_clk_inv: 1=Invert tmds_clk; 0=No invert. Default 0.
  43. * Bit 8 RW pixel_clk_inv: 1=Invert pixel_clk; 0=No invert. Default 0.
  44. * Bit 4 RW cec_clk_en: 1=enable cec_clk; 0=disable. Default 0.
  45. * Bit 3 RW i2s_clk_en: 1=enable i2s_clk; 0=disable. Default 0.
  46. * Bit 2 RW spdif_clk_en: 1=enable spdif_clk; 0=disable. Default 0.
  47. * Bit 1 RW tmds_clk_en: 1=enable tmds_clk; 0=disable. Default 0.
  48. * Bit 0 RW pixel_clk_en: 1=enable pixel_clk; 0=disable. Default 0.
  49. */
  50. #define HDMITX_TOP_CLK_CNTL (0x001)
  51. /*
  52. * Bit 11: 0 RW hpd_valid_width: filter out width <= M*1024. Default 0.
  53. * Bit 15:12 RW hpd_glitch_width: filter out glitch <= N. Default 0.
  54. */
  55. #define HDMITX_TOP_HPD_FILTER (0x002)
  56. /*
  57. * intr_maskn: MASK_N, one bit per interrupt source.
  58. * 1=Enable interrupt source; 0=Disable interrupt source. Default 0.
  59. * [ 4] hdcp22_rndnum_err
  60. * [ 3] nonce_rfrsh_rise
  61. * [ 2] hpd_fall_intr
  62. * [ 1] hpd_rise_intr
  63. * [ 0] core_intr
  64. */
  65. #define HDMITX_TOP_INTR_MASKN (0x003)
  66. /*
  67. * Bit 30: 0 RW intr_stat: For each bit, write 1 to manually set the interrupt
  68. * bit, read back the interrupt status.
  69. * Bit 31 R IP interrupt status
  70. * Bit 2 RW hpd_fall
  71. * Bit 1 RW hpd_rise
  72. * Bit 0 RW IP interrupt
  73. */
  74. #define HDMITX_TOP_INTR_STAT (0x004)
  75. /*
  76. * [4] hdcp22_rndnum_err
  77. * [3] nonce_rfrsh_rise
  78. * [2] hpd_fall
  79. * [1] hpd_rise
  80. * [0] core_intr_rise
  81. */
  82. #define HDMITX_TOP_INTR_STAT_CLR (0x005)
  83. #define HDMITX_TOP_INTR_CORE BIT(0)
  84. #define HDMITX_TOP_INTR_HPD_RISE BIT(1)
  85. #define HDMITX_TOP_INTR_HPD_FALL BIT(2)
  86. /* Bit 14:12 RW tmds_sel: 3'b000=Output zero; 3'b001=Output normal TMDS data;
  87. * 3'b010=Output PRBS data; 3'b100=Output shift pattern. Default 0.
  88. * Bit 11: 9 RW shift_pttn_repeat: 0=New pattern every clk cycle; 1=New pattern
  89. * every 2 clk cycles; ...; 7=New pattern every 8 clk cycles. Default 0.
  90. * Bit 8 RW shift_pttn_en: 1= Enable shift pattern generator; 0=Disable.
  91. * Default 0.
  92. * Bit 4: 3 RW prbs_pttn_mode: 0=PRBS11; 1=PRBS15; 2=PRBS7; 3=PRBS31. Default 0.
  93. * Bit 2: 1 RW prbs_pttn_width: 0=idle; 1=output 8-bit pattern;
  94. * 2=Output 1-bit pattern; 3=output 10-bit pattern. Default 0.
  95. * Bit 0 RW prbs_pttn_en: 1=Enable PRBS generator; 0=Disable. Default 0.
  96. */
  97. #define HDMITX_TOP_BIST_CNTL (0x006)
  98. /* Bit 29:20 RW shift_pttn_data[59:50]. Default 0. */
  99. /* Bit 19:10 RW shift_pttn_data[69:60]. Default 0. */
  100. /* Bit 9: 0 RW shift_pttn_data[79:70]. Default 0. */
  101. #define HDMITX_TOP_SHIFT_PTTN_012 (0x007)
  102. /* Bit 29:20 RW shift_pttn_data[29:20]. Default 0. */
  103. /* Bit 19:10 RW shift_pttn_data[39:30]. Default 0. */
  104. /* Bit 9: 0 RW shift_pttn_data[49:40]. Default 0. */
  105. #define HDMITX_TOP_SHIFT_PTTN_345 (0x008)
  106. /* Bit 19:10 RW shift_pttn_data[ 9: 0]. Default 0. */
  107. /* Bit 9: 0 RW shift_pttn_data[19:10]. Default 0. */
  108. #define HDMITX_TOP_SHIFT_PTTN_67 (0x009)
  109. /* Bit 25:16 RW tmds_clk_pttn[19:10]. Default 0. */
  110. /* Bit 9: 0 RW tmds_clk_pttn[ 9: 0]. Default 0. */
  111. #define HDMITX_TOP_TMDS_CLK_PTTN_01 (0x00A)
  112. /* Bit 25:16 RW tmds_clk_pttn[39:30]. Default 0. */
  113. /* Bit 9: 0 RW tmds_clk_pttn[29:20]. Default 0. */
  114. #define HDMITX_TOP_TMDS_CLK_PTTN_23 (0x00B)
  115. /* Bit 1 RW shift_tmds_clk_pttn:1=Enable shifting clk pattern,
  116. * used when TMDS CLK rate = TMDS character rate /4. Default 0.
  117. * Bit 0 R Reserved. Default 0.
  118. * [ 1] shift_tmds_clk_pttn
  119. * [ 0] load_tmds_clk_pttn
  120. */
  121. #define HDMITX_TOP_TMDS_CLK_PTTN_CNTL (0x00C)
  122. /* Bit 0 RW revocmem_wr_fail: Read back 1 to indicate Host write REVOC MEM
  123. * failure, write 1 to clear the failure flag. Default 0.
  124. */
  125. #define HDMITX_TOP_REVOCMEM_STAT (0x00D)
  126. /* Bit 0 R filtered HPD status. */
  127. #define HDMITX_TOP_STAT0 (0x00E)
  128. #endif /* __MESON_DW_HDMI_H */