cdn-dp-reg.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (C) Fuzhou Rockchip Electronics Co.Ltd
  4. * Author: Chris Zhong <[email protected]>
  5. */
  6. #ifndef _CDN_DP_REG_H
  7. #define _CDN_DP_REG_H
  8. #include <linux/bitops.h>
  9. #define ADDR_IMEM 0x10000
  10. #define ADDR_DMEM 0x20000
  11. /* APB CFG addr */
  12. #define APB_CTRL 0
  13. #define XT_INT_CTRL 0x04
  14. #define MAILBOX_FULL_ADDR 0x08
  15. #define MAILBOX_EMPTY_ADDR 0x0c
  16. #define MAILBOX0_WR_DATA 0x10
  17. #define MAILBOX0_RD_DATA 0x14
  18. #define KEEP_ALIVE 0x18
  19. #define VER_L 0x1c
  20. #define VER_H 0x20
  21. #define VER_LIB_L_ADDR 0x24
  22. #define VER_LIB_H_ADDR 0x28
  23. #define SW_DEBUG_L 0x2c
  24. #define SW_DEBUG_H 0x30
  25. #define MAILBOX_INT_MASK 0x34
  26. #define MAILBOX_INT_STATUS 0x38
  27. #define SW_CLK_L 0x3c
  28. #define SW_CLK_H 0x40
  29. #define SW_EVENTS0 0x44
  30. #define SW_EVENTS1 0x48
  31. #define SW_EVENTS2 0x4c
  32. #define SW_EVENTS3 0x50
  33. #define XT_OCD_CTRL 0x60
  34. #define APB_INT_MASK 0x6c
  35. #define APB_STATUS_MASK 0x70
  36. /* audio decoder addr */
  37. #define AUDIO_SRC_CNTL 0x30000
  38. #define AUDIO_SRC_CNFG 0x30004
  39. #define COM_CH_STTS_BITS 0x30008
  40. #define STTS_BIT_CH(x) (0x3000c + ((x) << 2))
  41. #define SPDIF_CTRL_ADDR 0x3004c
  42. #define SPDIF_CH1_CS_3100_ADDR 0x30050
  43. #define SPDIF_CH1_CS_6332_ADDR 0x30054
  44. #define SPDIF_CH1_CS_9564_ADDR 0x30058
  45. #define SPDIF_CH1_CS_12796_ADDR 0x3005c
  46. #define SPDIF_CH1_CS_159128_ADDR 0x30060
  47. #define SPDIF_CH1_CS_191160_ADDR 0x30064
  48. #define SPDIF_CH2_CS_3100_ADDR 0x30068
  49. #define SPDIF_CH2_CS_6332_ADDR 0x3006c
  50. #define SPDIF_CH2_CS_9564_ADDR 0x30070
  51. #define SPDIF_CH2_CS_12796_ADDR 0x30074
  52. #define SPDIF_CH2_CS_159128_ADDR 0x30078
  53. #define SPDIF_CH2_CS_191160_ADDR 0x3007c
  54. #define SMPL2PKT_CNTL 0x30080
  55. #define SMPL2PKT_CNFG 0x30084
  56. #define FIFO_CNTL 0x30088
  57. #define FIFO_STTS 0x3008c
  58. /* source pif addr */
  59. #define SOURCE_PIF_WR_ADDR 0x30800
  60. #define SOURCE_PIF_WR_REQ 0x30804
  61. #define SOURCE_PIF_RD_ADDR 0x30808
  62. #define SOURCE_PIF_RD_REQ 0x3080c
  63. #define SOURCE_PIF_DATA_WR 0x30810
  64. #define SOURCE_PIF_DATA_RD 0x30814
  65. #define SOURCE_PIF_FIFO1_FLUSH 0x30818
  66. #define SOURCE_PIF_FIFO2_FLUSH 0x3081c
  67. #define SOURCE_PIF_STATUS 0x30820
  68. #define SOURCE_PIF_INTERRUPT_SOURCE 0x30824
  69. #define SOURCE_PIF_INTERRUPT_MASK 0x30828
  70. #define SOURCE_PIF_PKT_ALLOC_REG 0x3082c
  71. #define SOURCE_PIF_PKT_ALLOC_WR_EN 0x30830
  72. #define SOURCE_PIF_SW_RESET 0x30834
  73. /* bellow registers need access by mailbox */
  74. /* source car addr */
  75. #define SOURCE_HDTX_CAR 0x0900
  76. #define SOURCE_DPTX_CAR 0x0904
  77. #define SOURCE_PHY_CAR 0x0908
  78. #define SOURCE_CEC_CAR 0x090c
  79. #define SOURCE_CBUS_CAR 0x0910
  80. #define SOURCE_PKT_CAR 0x0918
  81. #define SOURCE_AIF_CAR 0x091c
  82. #define SOURCE_CIPHER_CAR 0x0920
  83. #define SOURCE_CRYPTO_CAR 0x0924
  84. /* clock meters addr */
  85. #define CM_CTRL 0x0a00
  86. #define CM_I2S_CTRL 0x0a04
  87. #define CM_SPDIF_CTRL 0x0a08
  88. #define CM_VID_CTRL 0x0a0c
  89. #define CM_LANE_CTRL 0x0a10
  90. #define I2S_NM_STABLE 0x0a14
  91. #define I2S_NCTS_STABLE 0x0a18
  92. #define SPDIF_NM_STABLE 0x0a1c
  93. #define SPDIF_NCTS_STABLE 0x0a20
  94. #define NMVID_MEAS_STABLE 0x0a24
  95. #define I2S_MEAS 0x0a40
  96. #define SPDIF_MEAS 0x0a80
  97. #define NMVID_MEAS 0x0ac0
  98. /* source vif addr */
  99. #define BND_HSYNC2VSYNC 0x0b00
  100. #define HSYNC2VSYNC_F1_L1 0x0b04
  101. #define HSYNC2VSYNC_F2_L1 0x0b08
  102. #define HSYNC2VSYNC_STATUS 0x0b0c
  103. #define HSYNC2VSYNC_POL_CTRL 0x0b10
  104. /* dptx phy addr */
  105. #define DP_TX_PHY_CONFIG_REG 0x2000
  106. #define DP_TX_PHY_SW_RESET 0x2004
  107. #define DP_TX_PHY_SCRAMBLER_SEED 0x2008
  108. #define DP_TX_PHY_TRAINING_01_04 0x200c
  109. #define DP_TX_PHY_TRAINING_05_08 0x2010
  110. #define DP_TX_PHY_TRAINING_09_10 0x2014
  111. #define TEST_COR 0x23fc
  112. /* dptx hpd addr */
  113. #define HPD_IRQ_DET_MIN_TIMER 0x2100
  114. #define HPD_IRQ_DET_MAX_TIMER 0x2104
  115. #define HPD_UNPLGED_DET_MIN_TIMER 0x2108
  116. #define HPD_STABLE_TIMER 0x210c
  117. #define HPD_FILTER_TIMER 0x2110
  118. #define HPD_EVENT_MASK 0x211c
  119. #define HPD_EVENT_DET 0x2120
  120. /* dpyx framer addr */
  121. #define DP_FRAMER_GLOBAL_CONFIG 0x2200
  122. #define DP_SW_RESET 0x2204
  123. #define DP_FRAMER_TU 0x2208
  124. #define DP_FRAMER_PXL_REPR 0x220c
  125. #define DP_FRAMER_SP 0x2210
  126. #define AUDIO_PACK_CONTROL 0x2214
  127. #define DP_VC_TABLE(x) (0x2218 + ((x) << 2))
  128. #define DP_VB_ID 0x2258
  129. #define DP_MTPH_LVP_CONTROL 0x225c
  130. #define DP_MTPH_SYMBOL_VALUES 0x2260
  131. #define DP_MTPH_ECF_CONTROL 0x2264
  132. #define DP_MTPH_ACT_CONTROL 0x2268
  133. #define DP_MTPH_STATUS 0x226c
  134. #define DP_INTERRUPT_SOURCE 0x2270
  135. #define DP_INTERRUPT_MASK 0x2274
  136. #define DP_FRONT_BACK_PORCH 0x2278
  137. #define DP_BYTE_COUNT 0x227c
  138. /* dptx stream addr */
  139. #define MSA_HORIZONTAL_0 0x2280
  140. #define MSA_HORIZONTAL_1 0x2284
  141. #define MSA_VERTICAL_0 0x2288
  142. #define MSA_VERTICAL_1 0x228c
  143. #define MSA_MISC 0x2290
  144. #define STREAM_CONFIG 0x2294
  145. #define AUDIO_PACK_STATUS 0x2298
  146. #define VIF_STATUS 0x229c
  147. #define PCK_STUFF_STATUS_0 0x22a0
  148. #define PCK_STUFF_STATUS_1 0x22a4
  149. #define INFO_PACK_STATUS 0x22a8
  150. #define RATE_GOVERNOR_STATUS 0x22ac
  151. #define DP_HORIZONTAL 0x22b0
  152. #define DP_VERTICAL_0 0x22b4
  153. #define DP_VERTICAL_1 0x22b8
  154. #define DP_BLOCK_SDP 0x22bc
  155. /* dptx glbl addr */
  156. #define DPTX_LANE_EN 0x2300
  157. #define DPTX_ENHNCD 0x2304
  158. #define DPTX_INT_MASK 0x2308
  159. #define DPTX_INT_STATUS 0x230c
  160. /* dp aux addr */
  161. #define DP_AUX_HOST_CONTROL 0x2800
  162. #define DP_AUX_INTERRUPT_SOURCE 0x2804
  163. #define DP_AUX_INTERRUPT_MASK 0x2808
  164. #define DP_AUX_SWAP_INVERSION_CONTROL 0x280c
  165. #define DP_AUX_SEND_NACK_TRANSACTION 0x2810
  166. #define DP_AUX_CLEAR_RX 0x2814
  167. #define DP_AUX_CLEAR_TX 0x2818
  168. #define DP_AUX_TIMER_STOP 0x281c
  169. #define DP_AUX_TIMER_CLEAR 0x2820
  170. #define DP_AUX_RESET_SW 0x2824
  171. #define DP_AUX_DIVIDE_2M 0x2828
  172. #define DP_AUX_TX_PREACHARGE_LENGTH 0x282c
  173. #define DP_AUX_FREQUENCY_1M_MAX 0x2830
  174. #define DP_AUX_FREQUENCY_1M_MIN 0x2834
  175. #define DP_AUX_RX_PRE_MIN 0x2838
  176. #define DP_AUX_RX_PRE_MAX 0x283c
  177. #define DP_AUX_TIMER_PRESET 0x2840
  178. #define DP_AUX_NACK_FORMAT 0x2844
  179. #define DP_AUX_TX_DATA 0x2848
  180. #define DP_AUX_RX_DATA 0x284c
  181. #define DP_AUX_TX_STATUS 0x2850
  182. #define DP_AUX_RX_STATUS 0x2854
  183. #define DP_AUX_RX_CYCLE_COUNTER 0x2858
  184. #define DP_AUX_MAIN_STATES 0x285c
  185. #define DP_AUX_MAIN_TIMER 0x2860
  186. #define DP_AUX_AFE_OUT 0x2864
  187. /* crypto addr */
  188. #define CRYPTO_HDCP_REVISION 0x5800
  189. #define HDCP_CRYPTO_CONFIG 0x5804
  190. #define CRYPTO_INTERRUPT_SOURCE 0x5808
  191. #define CRYPTO_INTERRUPT_MASK 0x580c
  192. #define CRYPTO22_CONFIG 0x5818
  193. #define CRYPTO22_STATUS 0x581c
  194. #define SHA_256_DATA_IN 0x583c
  195. #define SHA_256_DATA_OUT_(x) (0x5850 + ((x) << 2))
  196. #define AES_32_KEY_(x) (0x5870 + ((x) << 2))
  197. #define AES_32_DATA_IN 0x5880
  198. #define AES_32_DATA_OUT_(x) (0x5884 + ((x) << 2))
  199. #define CRYPTO14_CONFIG 0x58a0
  200. #define CRYPTO14_STATUS 0x58a4
  201. #define CRYPTO14_PRNM_OUT 0x58a8
  202. #define CRYPTO14_KM_0 0x58ac
  203. #define CRYPTO14_KM_1 0x58b0
  204. #define CRYPTO14_AN_0 0x58b4
  205. #define CRYPTO14_AN_1 0x58b8
  206. #define CRYPTO14_YOUR_KSV_0 0x58bc
  207. #define CRYPTO14_YOUR_KSV_1 0x58c0
  208. #define CRYPTO14_MI_0 0x58c4
  209. #define CRYPTO14_MI_1 0x58c8
  210. #define CRYPTO14_TI_0 0x58cc
  211. #define CRYPTO14_KI_0 0x58d0
  212. #define CRYPTO14_KI_1 0x58d4
  213. #define CRYPTO14_BLOCKS_NUM 0x58d8
  214. #define CRYPTO14_KEY_MEM_DATA_0 0x58dc
  215. #define CRYPTO14_KEY_MEM_DATA_1 0x58e0
  216. #define CRYPTO14_SHA1_MSG_DATA 0x58e4
  217. #define CRYPTO14_SHA1_V_VALUE_(x) (0x58e8 + ((x) << 2))
  218. #define TRNG_CTRL 0x58fc
  219. #define TRNG_DATA_RDY 0x5900
  220. #define TRNG_DATA 0x5904
  221. /* cipher addr */
  222. #define HDCP_REVISION 0x60000
  223. #define INTERRUPT_SOURCE 0x60004
  224. #define INTERRUPT_MASK 0x60008
  225. #define HDCP_CIPHER_CONFIG 0x6000c
  226. #define AES_128_KEY_0 0x60010
  227. #define AES_128_KEY_1 0x60014
  228. #define AES_128_KEY_2 0x60018
  229. #define AES_128_KEY_3 0x6001c
  230. #define AES_128_RANDOM_0 0x60020
  231. #define AES_128_RANDOM_1 0x60024
  232. #define CIPHER14_KM_0 0x60028
  233. #define CIPHER14_KM_1 0x6002c
  234. #define CIPHER14_STATUS 0x60030
  235. #define CIPHER14_RI_PJ_STATUS 0x60034
  236. #define CIPHER_MODE 0x60038
  237. #define CIPHER14_AN_0 0x6003c
  238. #define CIPHER14_AN_1 0x60040
  239. #define CIPHER22_AUTH 0x60044
  240. #define CIPHER14_R0_DP_STATUS 0x60048
  241. #define CIPHER14_BOOTSTRAP 0x6004c
  242. #define DPTX_FRMR_DATA_CLK_RSTN_EN BIT(11)
  243. #define DPTX_FRMR_DATA_CLK_EN BIT(10)
  244. #define DPTX_PHY_DATA_RSTN_EN BIT(9)
  245. #define DPTX_PHY_DATA_CLK_EN BIT(8)
  246. #define DPTX_PHY_CHAR_RSTN_EN BIT(7)
  247. #define DPTX_PHY_CHAR_CLK_EN BIT(6)
  248. #define SOURCE_AUX_SYS_CLK_RSTN_EN BIT(5)
  249. #define SOURCE_AUX_SYS_CLK_EN BIT(4)
  250. #define DPTX_SYS_CLK_RSTN_EN BIT(3)
  251. #define DPTX_SYS_CLK_EN BIT(2)
  252. #define CFG_DPTX_VIF_CLK_RSTN_EN BIT(1)
  253. #define CFG_DPTX_VIF_CLK_EN BIT(0)
  254. #define SOURCE_PHY_RSTN_EN BIT(1)
  255. #define SOURCE_PHY_CLK_EN BIT(0)
  256. #define SOURCE_PKT_SYS_RSTN_EN BIT(3)
  257. #define SOURCE_PKT_SYS_CLK_EN BIT(2)
  258. #define SOURCE_PKT_DATA_RSTN_EN BIT(1)
  259. #define SOURCE_PKT_DATA_CLK_EN BIT(0)
  260. #define SPDIF_CDR_CLK_RSTN_EN BIT(5)
  261. #define SPDIF_CDR_CLK_EN BIT(4)
  262. #define SOURCE_AIF_SYS_RSTN_EN BIT(3)
  263. #define SOURCE_AIF_SYS_CLK_EN BIT(2)
  264. #define SOURCE_AIF_CLK_RSTN_EN BIT(1)
  265. #define SOURCE_AIF_CLK_EN BIT(0)
  266. #define SOURCE_CIPHER_SYSTEM_CLK_RSTN_EN BIT(3)
  267. #define SOURCE_CIPHER_SYS_CLK_EN BIT(2)
  268. #define SOURCE_CIPHER_CHAR_CLK_RSTN_EN BIT(1)
  269. #define SOURCE_CIPHER_CHAR_CLK_EN BIT(0)
  270. #define SOURCE_CRYPTO_SYS_CLK_RSTN_EN BIT(1)
  271. #define SOURCE_CRYPTO_SYS_CLK_EN BIT(0)
  272. #define APB_IRAM_PATH BIT(2)
  273. #define APB_DRAM_PATH BIT(1)
  274. #define APB_XT_RESET BIT(0)
  275. #define MAILBOX_INT_MASK_BIT BIT(1)
  276. #define PIF_INT_MASK_BIT BIT(0)
  277. #define ALL_INT_MASK 3
  278. /* mailbox */
  279. #define MB_OPCODE_ID 0
  280. #define MB_MODULE_ID 1
  281. #define MB_SIZE_MSB_ID 2
  282. #define MB_SIZE_LSB_ID 3
  283. #define MB_DATA_ID 4
  284. #define MB_MODULE_ID_DP_TX 0x01
  285. #define MB_MODULE_ID_HDCP_TX 0x07
  286. #define MB_MODULE_ID_HDCP_RX 0x08
  287. #define MB_MODULE_ID_HDCP_GENERAL 0x09
  288. #define MB_MODULE_ID_GENERAL 0x0a
  289. /* general opcode */
  290. #define GENERAL_MAIN_CONTROL 0x01
  291. #define GENERAL_TEST_ECHO 0x02
  292. #define GENERAL_BUS_SETTINGS 0x03
  293. #define GENERAL_TEST_ACCESS 0x04
  294. #define DPTX_SET_POWER_MNG 0x00
  295. #define DPTX_SET_HOST_CAPABILITIES 0x01
  296. #define DPTX_GET_EDID 0x02
  297. #define DPTX_READ_DPCD 0x03
  298. #define DPTX_WRITE_DPCD 0x04
  299. #define DPTX_ENABLE_EVENT 0x05
  300. #define DPTX_WRITE_REGISTER 0x06
  301. #define DPTX_READ_REGISTER 0x07
  302. #define DPTX_WRITE_FIELD 0x08
  303. #define DPTX_TRAINING_CONTROL 0x09
  304. #define DPTX_READ_EVENT 0x0a
  305. #define DPTX_READ_LINK_STAT 0x0b
  306. #define DPTX_SET_VIDEO 0x0c
  307. #define DPTX_SET_AUDIO 0x0d
  308. #define DPTX_GET_LAST_AUX_STAUS 0x0e
  309. #define DPTX_SET_LINK_BREAK_POINT 0x0f
  310. #define DPTX_FORCE_LANES 0x10
  311. #define DPTX_HPD_STATE 0x11
  312. #define FW_STANDBY 0
  313. #define FW_ACTIVE 1
  314. #define DPTX_EVENT_ENABLE_HPD BIT(0)
  315. #define DPTX_EVENT_ENABLE_TRAINING BIT(1)
  316. #define LINK_TRAINING_NOT_ACTIVE 0
  317. #define LINK_TRAINING_RUN 1
  318. #define LINK_TRAINING_RESTART 2
  319. #define CONTROL_VIDEO_IDLE 0
  320. #define CONTROL_VIDEO_VALID 1
  321. #define TU_CNT_RST_EN BIT(15)
  322. #define VIF_BYPASS_INTERLACE BIT(13)
  323. #define INTERLACE_FMT_DET BIT(12)
  324. #define INTERLACE_DTCT_WIN 0x20
  325. #define DP_FRAMER_SP_INTERLACE_EN BIT(2)
  326. #define DP_FRAMER_SP_HSP BIT(1)
  327. #define DP_FRAMER_SP_VSP BIT(0)
  328. /* capability */
  329. #define AUX_HOST_INVERT 3
  330. #define FAST_LT_SUPPORT 1
  331. #define FAST_LT_NOT_SUPPORT 0
  332. #define LANE_MAPPING_NORMAL 0x1b
  333. #define LANE_MAPPING_FLIPPED 0xe4
  334. #define ENHANCED 1
  335. #define SCRAMBLER_EN BIT(4)
  336. #define FULL_LT_STARTED BIT(0)
  337. #define FASE_LT_STARTED BIT(1)
  338. #define CLK_RECOVERY_FINISHED BIT(2)
  339. #define EQ_PHASE_FINISHED BIT(3)
  340. #define FASE_LT_START_FINISHED BIT(4)
  341. #define CLK_RECOVERY_FAILED BIT(5)
  342. #define EQ_PHASE_FAILED BIT(6)
  343. #define FASE_LT_FAILED BIT(7)
  344. #define DPTX_HPD_EVENT BIT(0)
  345. #define DPTX_TRAINING_EVENT BIT(1)
  346. #define HDCP_TX_STATUS_EVENT BIT(4)
  347. #define HDCP2_TX_IS_KM_STORED_EVENT BIT(5)
  348. #define HDCP2_TX_STORE_KM_EVENT BIT(6)
  349. #define HDCP_TX_IS_RECEIVER_ID_VALID_EVENT BIT(7)
  350. #define TU_SIZE 30
  351. #define CDN_DP_MAX_LINK_RATE DP_LINK_BW_5_4
  352. /* audio */
  353. #define AUDIO_PACK_EN BIT(8)
  354. #define SAMPLING_FREQ(x) (((x) & 0xf) << 16)
  355. #define ORIGINAL_SAMP_FREQ(x) (((x) & 0xf) << 24)
  356. #define SYNC_WR_TO_CH_ZERO BIT(1)
  357. #define I2S_DEC_START BIT(1)
  358. #define AUDIO_SW_RST BIT(0)
  359. #define SMPL2PKT_EN BIT(1)
  360. #define MAX_NUM_CH(x) (((x) & 0x1f) - 1)
  361. #define NUM_OF_I2S_PORTS(x) ((((x) / 2 - 1) & 0x3) << 5)
  362. #define AUDIO_TYPE_LPCM (2 << 7)
  363. #define CFG_SUB_PCKT_NUM(x) ((((x) - 1) & 0x7) << 11)
  364. #define AUDIO_CH_NUM(x) ((((x) - 1) & 0x1f) << 2)
  365. #define TRANS_SMPL_WIDTH_16 0
  366. #define TRANS_SMPL_WIDTH_24 BIT(11)
  367. #define TRANS_SMPL_WIDTH_32 (2 << 11)
  368. #define I2S_DEC_PORT_EN(x) (((x) & 0xf) << 17)
  369. #define SPDIF_ENABLE BIT(21)
  370. #define SPDIF_AVG_SEL BIT(20)
  371. #define SPDIF_JITTER_BYPASS BIT(19)
  372. #define SPDIF_FIFO_MID_RANGE(x) (((x) & 0xff) << 11)
  373. #define SPDIF_JITTER_THRSH(x) (((x) & 0xff) << 3)
  374. #define SPDIF_JITTER_AVG_WIN(x) ((x) & 0x7)
  375. /* Reference cycles when using lane clock as reference */
  376. #define LANE_REF_CYC 0x8000
  377. enum voltage_swing_level {
  378. VOLTAGE_LEVEL_0,
  379. VOLTAGE_LEVEL_1,
  380. VOLTAGE_LEVEL_2,
  381. VOLTAGE_LEVEL_3,
  382. };
  383. enum pre_emphasis_level {
  384. PRE_EMPHASIS_LEVEL_0,
  385. PRE_EMPHASIS_LEVEL_1,
  386. PRE_EMPHASIS_LEVEL_2,
  387. PRE_EMPHASIS_LEVEL_3,
  388. };
  389. enum pattern_set {
  390. PTS1 = BIT(0),
  391. PTS2 = BIT(1),
  392. PTS3 = BIT(2),
  393. PTS4 = BIT(3),
  394. DP_NONE = BIT(4)
  395. };
  396. enum vic_color_depth {
  397. BCS_6 = 0x1,
  398. BCS_8 = 0x2,
  399. BCS_10 = 0x4,
  400. BCS_12 = 0x8,
  401. BCS_16 = 0x10,
  402. };
  403. enum vic_bt_type {
  404. BT_601 = 0x0,
  405. BT_709 = 0x1,
  406. };
  407. void cdn_dp_clock_reset(struct cdn_dp_device *dp);
  408. void cdn_dp_set_fw_clk(struct cdn_dp_device *dp, unsigned long clk);
  409. int cdn_dp_load_firmware(struct cdn_dp_device *dp, const u32 *i_mem,
  410. u32 i_size, const u32 *d_mem, u32 d_size);
  411. int cdn_dp_set_firmware_active(struct cdn_dp_device *dp, bool enable);
  412. int cdn_dp_set_host_cap(struct cdn_dp_device *dp, u8 lanes, bool flip);
  413. int cdn_dp_event_config(struct cdn_dp_device *dp);
  414. u32 cdn_dp_get_event(struct cdn_dp_device *dp);
  415. int cdn_dp_get_hpd_status(struct cdn_dp_device *dp);
  416. int cdn_dp_dpcd_write(struct cdn_dp_device *dp, u32 addr, u8 value);
  417. int cdn_dp_dpcd_read(struct cdn_dp_device *dp, u32 addr, u8 *data, u16 len);
  418. int cdn_dp_get_edid_block(void *dp, u8 *edid,
  419. unsigned int block, size_t length);
  420. int cdn_dp_train_link(struct cdn_dp_device *dp);
  421. int cdn_dp_set_video_status(struct cdn_dp_device *dp, int active);
  422. int cdn_dp_config_video(struct cdn_dp_device *dp);
  423. int cdn_dp_audio_stop(struct cdn_dp_device *dp, struct audio_info *audio);
  424. int cdn_dp_audio_mute(struct cdn_dp_device *dp, bool enable);
  425. int cdn_dp_audio_config(struct cdn_dp_device *dp, struct audio_info *audio);
  426. #endif /* _CDN_DP_REG_H */