Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Copyright (C) Fuzhou Rockchip Electronics Co.Ltd
0004  * Author: Chris Zhong <zyw@rock-chips.com>
0005  */
0006 
0007 #ifndef _CDN_DP_REG_H
0008 #define _CDN_DP_REG_H
0009 
0010 #include <linux/bitops.h>
0011 
0012 #define ADDR_IMEM       0x10000
0013 #define ADDR_DMEM       0x20000
0014 
0015 /* APB CFG addr */
0016 #define APB_CTRL            0
0017 #define XT_INT_CTRL         0x04
0018 #define MAILBOX_FULL_ADDR       0x08
0019 #define MAILBOX_EMPTY_ADDR      0x0c
0020 #define MAILBOX0_WR_DATA        0x10
0021 #define MAILBOX0_RD_DATA        0x14
0022 #define KEEP_ALIVE          0x18
0023 #define VER_L               0x1c
0024 #define VER_H               0x20
0025 #define VER_LIB_L_ADDR          0x24
0026 #define VER_LIB_H_ADDR          0x28
0027 #define SW_DEBUG_L          0x2c
0028 #define SW_DEBUG_H          0x30
0029 #define MAILBOX_INT_MASK        0x34
0030 #define MAILBOX_INT_STATUS      0x38
0031 #define SW_CLK_L            0x3c
0032 #define SW_CLK_H            0x40
0033 #define SW_EVENTS0          0x44
0034 #define SW_EVENTS1          0x48
0035 #define SW_EVENTS2          0x4c
0036 #define SW_EVENTS3          0x50
0037 #define XT_OCD_CTRL         0x60
0038 #define APB_INT_MASK            0x6c
0039 #define APB_STATUS_MASK         0x70
0040 
0041 /* audio decoder addr */
0042 #define AUDIO_SRC_CNTL          0x30000
0043 #define AUDIO_SRC_CNFG          0x30004
0044 #define COM_CH_STTS_BITS        0x30008
0045 #define STTS_BIT_CH(x)          (0x3000c + ((x) << 2))
0046 #define SPDIF_CTRL_ADDR         0x3004c
0047 #define SPDIF_CH1_CS_3100_ADDR      0x30050
0048 #define SPDIF_CH1_CS_6332_ADDR      0x30054
0049 #define SPDIF_CH1_CS_9564_ADDR      0x30058
0050 #define SPDIF_CH1_CS_12796_ADDR     0x3005c
0051 #define SPDIF_CH1_CS_159128_ADDR    0x30060
0052 #define SPDIF_CH1_CS_191160_ADDR    0x30064
0053 #define SPDIF_CH2_CS_3100_ADDR      0x30068
0054 #define SPDIF_CH2_CS_6332_ADDR      0x3006c
0055 #define SPDIF_CH2_CS_9564_ADDR      0x30070
0056 #define SPDIF_CH2_CS_12796_ADDR     0x30074
0057 #define SPDIF_CH2_CS_159128_ADDR    0x30078
0058 #define SPDIF_CH2_CS_191160_ADDR    0x3007c
0059 #define SMPL2PKT_CNTL           0x30080
0060 #define SMPL2PKT_CNFG           0x30084
0061 #define FIFO_CNTL           0x30088
0062 #define FIFO_STTS           0x3008c
0063 
0064 /* source pif addr */
0065 #define SOURCE_PIF_WR_ADDR      0x30800
0066 #define SOURCE_PIF_WR_REQ       0x30804
0067 #define SOURCE_PIF_RD_ADDR      0x30808
0068 #define SOURCE_PIF_RD_REQ       0x3080c
0069 #define SOURCE_PIF_DATA_WR      0x30810
0070 #define SOURCE_PIF_DATA_RD      0x30814
0071 #define SOURCE_PIF_FIFO1_FLUSH      0x30818
0072 #define SOURCE_PIF_FIFO2_FLUSH      0x3081c
0073 #define SOURCE_PIF_STATUS       0x30820
0074 #define SOURCE_PIF_INTERRUPT_SOURCE 0x30824
0075 #define SOURCE_PIF_INTERRUPT_MASK   0x30828
0076 #define SOURCE_PIF_PKT_ALLOC_REG    0x3082c
0077 #define SOURCE_PIF_PKT_ALLOC_WR_EN  0x30830
0078 #define SOURCE_PIF_SW_RESET     0x30834
0079 
0080 /* bellow registers need access by mailbox */
0081 /* source car addr */
0082 #define SOURCE_HDTX_CAR         0x0900
0083 #define SOURCE_DPTX_CAR         0x0904
0084 #define SOURCE_PHY_CAR          0x0908
0085 #define SOURCE_CEC_CAR          0x090c
0086 #define SOURCE_CBUS_CAR         0x0910
0087 #define SOURCE_PKT_CAR          0x0918
0088 #define SOURCE_AIF_CAR          0x091c
0089 #define SOURCE_CIPHER_CAR       0x0920
0090 #define SOURCE_CRYPTO_CAR       0x0924
0091 
0092 /* clock meters addr */
0093 #define CM_CTRL             0x0a00
0094 #define CM_I2S_CTRL         0x0a04
0095 #define CM_SPDIF_CTRL           0x0a08
0096 #define CM_VID_CTRL         0x0a0c
0097 #define CM_LANE_CTRL            0x0a10
0098 #define I2S_NM_STABLE           0x0a14
0099 #define I2S_NCTS_STABLE         0x0a18
0100 #define SPDIF_NM_STABLE         0x0a1c
0101 #define SPDIF_NCTS_STABLE       0x0a20
0102 #define NMVID_MEAS_STABLE       0x0a24
0103 #define I2S_MEAS            0x0a40
0104 #define SPDIF_MEAS          0x0a80
0105 #define NMVID_MEAS          0x0ac0
0106 
0107 /* source vif addr */
0108 #define BND_HSYNC2VSYNC         0x0b00
0109 #define HSYNC2VSYNC_F1_L1       0x0b04
0110 #define HSYNC2VSYNC_F2_L1       0x0b08
0111 #define HSYNC2VSYNC_STATUS      0x0b0c
0112 #define HSYNC2VSYNC_POL_CTRL        0x0b10
0113 
0114 /* dptx phy addr */
0115 #define DP_TX_PHY_CONFIG_REG        0x2000
0116 #define DP_TX_PHY_SW_RESET      0x2004
0117 #define DP_TX_PHY_SCRAMBLER_SEED    0x2008
0118 #define DP_TX_PHY_TRAINING_01_04    0x200c
0119 #define DP_TX_PHY_TRAINING_05_08    0x2010
0120 #define DP_TX_PHY_TRAINING_09_10    0x2014
0121 #define TEST_COR            0x23fc
0122 
0123 /* dptx hpd addr */
0124 #define HPD_IRQ_DET_MIN_TIMER       0x2100
0125 #define HPD_IRQ_DET_MAX_TIMER       0x2104
0126 #define HPD_UNPLGED_DET_MIN_TIMER   0x2108
0127 #define HPD_STABLE_TIMER        0x210c
0128 #define HPD_FILTER_TIMER        0x2110
0129 #define HPD_EVENT_MASK          0x211c
0130 #define HPD_EVENT_DET           0x2120
0131 
0132 /* dpyx framer addr */
0133 #define DP_FRAMER_GLOBAL_CONFIG     0x2200
0134 #define DP_SW_RESET         0x2204
0135 #define DP_FRAMER_TU            0x2208
0136 #define DP_FRAMER_PXL_REPR      0x220c
0137 #define DP_FRAMER_SP            0x2210
0138 #define AUDIO_PACK_CONTROL      0x2214
0139 #define DP_VC_TABLE(x)          (0x2218 + ((x) << 2))
0140 #define DP_VB_ID            0x2258
0141 #define DP_MTPH_LVP_CONTROL     0x225c
0142 #define DP_MTPH_SYMBOL_VALUES       0x2260
0143 #define DP_MTPH_ECF_CONTROL     0x2264
0144 #define DP_MTPH_ACT_CONTROL     0x2268
0145 #define DP_MTPH_STATUS          0x226c
0146 #define DP_INTERRUPT_SOURCE     0x2270
0147 #define DP_INTERRUPT_MASK       0x2274
0148 #define DP_FRONT_BACK_PORCH     0x2278
0149 #define DP_BYTE_COUNT           0x227c
0150 
0151 /* dptx stream addr */
0152 #define MSA_HORIZONTAL_0        0x2280
0153 #define MSA_HORIZONTAL_1        0x2284
0154 #define MSA_VERTICAL_0          0x2288
0155 #define MSA_VERTICAL_1          0x228c
0156 #define MSA_MISC            0x2290
0157 #define STREAM_CONFIG           0x2294
0158 #define AUDIO_PACK_STATUS       0x2298
0159 #define VIF_STATUS          0x229c
0160 #define PCK_STUFF_STATUS_0      0x22a0
0161 #define PCK_STUFF_STATUS_1      0x22a4
0162 #define INFO_PACK_STATUS        0x22a8
0163 #define RATE_GOVERNOR_STATUS        0x22ac
0164 #define DP_HORIZONTAL           0x22b0
0165 #define DP_VERTICAL_0           0x22b4
0166 #define DP_VERTICAL_1           0x22b8
0167 #define DP_BLOCK_SDP            0x22bc
0168 
0169 /* dptx glbl addr */
0170 #define DPTX_LANE_EN            0x2300
0171 #define DPTX_ENHNCD         0x2304
0172 #define DPTX_INT_MASK           0x2308
0173 #define DPTX_INT_STATUS         0x230c
0174 
0175 /* dp aux addr */
0176 #define DP_AUX_HOST_CONTROL     0x2800
0177 #define DP_AUX_INTERRUPT_SOURCE     0x2804
0178 #define DP_AUX_INTERRUPT_MASK       0x2808
0179 #define DP_AUX_SWAP_INVERSION_CONTROL   0x280c
0180 #define DP_AUX_SEND_NACK_TRANSACTION    0x2810
0181 #define DP_AUX_CLEAR_RX         0x2814
0182 #define DP_AUX_CLEAR_TX         0x2818
0183 #define DP_AUX_TIMER_STOP       0x281c
0184 #define DP_AUX_TIMER_CLEAR      0x2820
0185 #define DP_AUX_RESET_SW         0x2824
0186 #define DP_AUX_DIVIDE_2M        0x2828
0187 #define DP_AUX_TX_PREACHARGE_LENGTH 0x282c
0188 #define DP_AUX_FREQUENCY_1M_MAX     0x2830
0189 #define DP_AUX_FREQUENCY_1M_MIN     0x2834
0190 #define DP_AUX_RX_PRE_MIN       0x2838
0191 #define DP_AUX_RX_PRE_MAX       0x283c
0192 #define DP_AUX_TIMER_PRESET     0x2840
0193 #define DP_AUX_NACK_FORMAT      0x2844
0194 #define DP_AUX_TX_DATA          0x2848
0195 #define DP_AUX_RX_DATA          0x284c
0196 #define DP_AUX_TX_STATUS        0x2850
0197 #define DP_AUX_RX_STATUS        0x2854
0198 #define DP_AUX_RX_CYCLE_COUNTER     0x2858
0199 #define DP_AUX_MAIN_STATES      0x285c
0200 #define DP_AUX_MAIN_TIMER       0x2860
0201 #define DP_AUX_AFE_OUT          0x2864
0202 
0203 /* crypto addr */
0204 #define CRYPTO_HDCP_REVISION        0x5800
0205 #define HDCP_CRYPTO_CONFIG      0x5804
0206 #define CRYPTO_INTERRUPT_SOURCE     0x5808
0207 #define CRYPTO_INTERRUPT_MASK       0x580c
0208 #define CRYPTO22_CONFIG         0x5818
0209 #define CRYPTO22_STATUS         0x581c
0210 #define SHA_256_DATA_IN         0x583c
0211 #define SHA_256_DATA_OUT_(x)        (0x5850 + ((x) << 2))
0212 #define AES_32_KEY_(x)          (0x5870 + ((x) << 2))
0213 #define AES_32_DATA_IN          0x5880
0214 #define AES_32_DATA_OUT_(x)     (0x5884 + ((x) << 2))
0215 #define CRYPTO14_CONFIG         0x58a0
0216 #define CRYPTO14_STATUS         0x58a4
0217 #define CRYPTO14_PRNM_OUT       0x58a8
0218 #define CRYPTO14_KM_0           0x58ac
0219 #define CRYPTO14_KM_1           0x58b0
0220 #define CRYPTO14_AN_0           0x58b4
0221 #define CRYPTO14_AN_1           0x58b8
0222 #define CRYPTO14_YOUR_KSV_0     0x58bc
0223 #define CRYPTO14_YOUR_KSV_1     0x58c0
0224 #define CRYPTO14_MI_0           0x58c4
0225 #define CRYPTO14_MI_1           0x58c8
0226 #define CRYPTO14_TI_0           0x58cc
0227 #define CRYPTO14_KI_0           0x58d0
0228 #define CRYPTO14_KI_1           0x58d4
0229 #define CRYPTO14_BLOCKS_NUM     0x58d8
0230 #define CRYPTO14_KEY_MEM_DATA_0     0x58dc
0231 #define CRYPTO14_KEY_MEM_DATA_1     0x58e0
0232 #define CRYPTO14_SHA1_MSG_DATA      0x58e4
0233 #define CRYPTO14_SHA1_V_VALUE_(x)   (0x58e8 + ((x) << 2))
0234 #define TRNG_CTRL           0x58fc
0235 #define TRNG_DATA_RDY           0x5900
0236 #define TRNG_DATA           0x5904
0237 
0238 /* cipher addr */
0239 #define HDCP_REVISION           0x60000
0240 #define INTERRUPT_SOURCE        0x60004
0241 #define INTERRUPT_MASK          0x60008
0242 #define HDCP_CIPHER_CONFIG      0x6000c
0243 #define AES_128_KEY_0           0x60010
0244 #define AES_128_KEY_1           0x60014
0245 #define AES_128_KEY_2           0x60018
0246 #define AES_128_KEY_3           0x6001c
0247 #define AES_128_RANDOM_0        0x60020
0248 #define AES_128_RANDOM_1        0x60024
0249 #define CIPHER14_KM_0           0x60028
0250 #define CIPHER14_KM_1           0x6002c
0251 #define CIPHER14_STATUS         0x60030
0252 #define CIPHER14_RI_PJ_STATUS       0x60034
0253 #define CIPHER_MODE         0x60038
0254 #define CIPHER14_AN_0           0x6003c
0255 #define CIPHER14_AN_1           0x60040
0256 #define CIPHER22_AUTH           0x60044
0257 #define CIPHER14_R0_DP_STATUS       0x60048
0258 #define CIPHER14_BOOTSTRAP      0x6004c
0259 
0260 #define DPTX_FRMR_DATA_CLK_RSTN_EN  BIT(11)
0261 #define DPTX_FRMR_DATA_CLK_EN       BIT(10)
0262 #define DPTX_PHY_DATA_RSTN_EN       BIT(9)
0263 #define DPTX_PHY_DATA_CLK_EN        BIT(8)
0264 #define DPTX_PHY_CHAR_RSTN_EN       BIT(7)
0265 #define DPTX_PHY_CHAR_CLK_EN        BIT(6)
0266 #define SOURCE_AUX_SYS_CLK_RSTN_EN  BIT(5)
0267 #define SOURCE_AUX_SYS_CLK_EN       BIT(4)
0268 #define DPTX_SYS_CLK_RSTN_EN        BIT(3)
0269 #define DPTX_SYS_CLK_EN         BIT(2)
0270 #define CFG_DPTX_VIF_CLK_RSTN_EN    BIT(1)
0271 #define CFG_DPTX_VIF_CLK_EN     BIT(0)
0272 
0273 #define SOURCE_PHY_RSTN_EN      BIT(1)
0274 #define SOURCE_PHY_CLK_EN       BIT(0)
0275 
0276 #define SOURCE_PKT_SYS_RSTN_EN      BIT(3)
0277 #define SOURCE_PKT_SYS_CLK_EN       BIT(2)
0278 #define SOURCE_PKT_DATA_RSTN_EN     BIT(1)
0279 #define SOURCE_PKT_DATA_CLK_EN      BIT(0)
0280 
0281 #define SPDIF_CDR_CLK_RSTN_EN       BIT(5)
0282 #define SPDIF_CDR_CLK_EN        BIT(4)
0283 #define SOURCE_AIF_SYS_RSTN_EN      BIT(3)
0284 #define SOURCE_AIF_SYS_CLK_EN       BIT(2)
0285 #define SOURCE_AIF_CLK_RSTN_EN      BIT(1)
0286 #define SOURCE_AIF_CLK_EN       BIT(0)
0287 
0288 #define SOURCE_CIPHER_SYSTEM_CLK_RSTN_EN    BIT(3)
0289 #define SOURCE_CIPHER_SYS_CLK_EN        BIT(2)
0290 #define SOURCE_CIPHER_CHAR_CLK_RSTN_EN      BIT(1)
0291 #define SOURCE_CIPHER_CHAR_CLK_EN       BIT(0)
0292 
0293 #define SOURCE_CRYPTO_SYS_CLK_RSTN_EN   BIT(1)
0294 #define SOURCE_CRYPTO_SYS_CLK_EN    BIT(0)
0295 
0296 #define APB_IRAM_PATH           BIT(2)
0297 #define APB_DRAM_PATH           BIT(1)
0298 #define APB_XT_RESET            BIT(0)
0299 
0300 #define MAILBOX_INT_MASK_BIT        BIT(1)
0301 #define PIF_INT_MASK_BIT        BIT(0)
0302 #define ALL_INT_MASK            3
0303 
0304 /* mailbox */
0305 #define MB_OPCODE_ID            0
0306 #define MB_MODULE_ID            1
0307 #define MB_SIZE_MSB_ID          2
0308 #define MB_SIZE_LSB_ID          3
0309 #define MB_DATA_ID          4
0310 
0311 #define MB_MODULE_ID_DP_TX      0x01
0312 #define MB_MODULE_ID_HDCP_TX        0x07
0313 #define MB_MODULE_ID_HDCP_RX        0x08
0314 #define MB_MODULE_ID_HDCP_GENERAL   0x09
0315 #define MB_MODULE_ID_GENERAL        0x0a
0316 
0317 /* general opcode */
0318 #define GENERAL_MAIN_CONTROL            0x01
0319 #define GENERAL_TEST_ECHO               0x02
0320 #define GENERAL_BUS_SETTINGS            0x03
0321 #define GENERAL_TEST_ACCESS             0x04
0322 
0323 #define DPTX_SET_POWER_MNG          0x00
0324 #define DPTX_SET_HOST_CAPABILITIES      0x01
0325 #define DPTX_GET_EDID               0x02
0326 #define DPTX_READ_DPCD              0x03
0327 #define DPTX_WRITE_DPCD             0x04
0328 #define DPTX_ENABLE_EVENT           0x05
0329 #define DPTX_WRITE_REGISTER         0x06
0330 #define DPTX_READ_REGISTER          0x07
0331 #define DPTX_WRITE_FIELD            0x08
0332 #define DPTX_TRAINING_CONTROL           0x09
0333 #define DPTX_READ_EVENT             0x0a
0334 #define DPTX_READ_LINK_STAT         0x0b
0335 #define DPTX_SET_VIDEO              0x0c
0336 #define DPTX_SET_AUDIO              0x0d
0337 #define DPTX_GET_LAST_AUX_STAUS         0x0e
0338 #define DPTX_SET_LINK_BREAK_POINT       0x0f
0339 #define DPTX_FORCE_LANES            0x10
0340 #define DPTX_HPD_STATE              0x11
0341 
0342 #define FW_STANDBY              0
0343 #define FW_ACTIVE               1
0344 
0345 #define DPTX_EVENT_ENABLE_HPD           BIT(0)
0346 #define DPTX_EVENT_ENABLE_TRAINING      BIT(1)
0347 
0348 #define LINK_TRAINING_NOT_ACTIVE        0
0349 #define LINK_TRAINING_RUN           1
0350 #define LINK_TRAINING_RESTART           2
0351 
0352 #define CONTROL_VIDEO_IDLE          0
0353 #define CONTROL_VIDEO_VALID         1
0354 
0355 #define TU_CNT_RST_EN               BIT(15)
0356 #define VIF_BYPASS_INTERLACE            BIT(13)
0357 #define INTERLACE_FMT_DET           BIT(12)
0358 #define INTERLACE_DTCT_WIN          0x20
0359 
0360 #define DP_FRAMER_SP_INTERLACE_EN       BIT(2)
0361 #define DP_FRAMER_SP_HSP            BIT(1)
0362 #define DP_FRAMER_SP_VSP            BIT(0)
0363 
0364 /* capability */
0365 #define AUX_HOST_INVERT             3
0366 #define FAST_LT_SUPPORT             1
0367 #define FAST_LT_NOT_SUPPORT         0
0368 #define LANE_MAPPING_NORMAL         0x1b
0369 #define LANE_MAPPING_FLIPPED            0xe4
0370 #define ENHANCED                1
0371 #define SCRAMBLER_EN                BIT(4)
0372 
0373 #define FULL_LT_STARTED             BIT(0)
0374 #define FASE_LT_STARTED             BIT(1)
0375 #define CLK_RECOVERY_FINISHED           BIT(2)
0376 #define EQ_PHASE_FINISHED           BIT(3)
0377 #define FASE_LT_START_FINISHED          BIT(4)
0378 #define CLK_RECOVERY_FAILED         BIT(5)
0379 #define EQ_PHASE_FAILED             BIT(6)
0380 #define FASE_LT_FAILED              BIT(7)
0381 
0382 #define DPTX_HPD_EVENT              BIT(0)
0383 #define DPTX_TRAINING_EVENT         BIT(1)
0384 #define HDCP_TX_STATUS_EVENT            BIT(4)
0385 #define HDCP2_TX_IS_KM_STORED_EVENT     BIT(5)
0386 #define HDCP2_TX_STORE_KM_EVENT         BIT(6)
0387 #define HDCP_TX_IS_RECEIVER_ID_VALID_EVENT  BIT(7)
0388 
0389 #define TU_SIZE                 30
0390 #define CDN_DP_MAX_LINK_RATE            DP_LINK_BW_5_4
0391 
0392 /* audio */
0393 #define AUDIO_PACK_EN               BIT(8)
0394 #define SAMPLING_FREQ(x)            (((x) & 0xf) << 16)
0395 #define ORIGINAL_SAMP_FREQ(x)           (((x) & 0xf) << 24)
0396 #define SYNC_WR_TO_CH_ZERO          BIT(1)
0397 #define I2S_DEC_START               BIT(1)
0398 #define AUDIO_SW_RST                BIT(0)
0399 #define SMPL2PKT_EN             BIT(1)
0400 #define MAX_NUM_CH(x)               (((x) & 0x1f) - 1)
0401 #define NUM_OF_I2S_PORTS(x)         ((((x) / 2 - 1) & 0x3) << 5)
0402 #define AUDIO_TYPE_LPCM             (2 << 7)
0403 #define CFG_SUB_PCKT_NUM(x)         ((((x) - 1) & 0x7) << 11)
0404 #define AUDIO_CH_NUM(x)             ((((x) - 1) & 0x1f) << 2)
0405 #define TRANS_SMPL_WIDTH_16         0
0406 #define TRANS_SMPL_WIDTH_24         BIT(11)
0407 #define TRANS_SMPL_WIDTH_32         (2 << 11)
0408 #define I2S_DEC_PORT_EN(x)          (((x) & 0xf) << 17)
0409 #define SPDIF_ENABLE                BIT(21)
0410 #define SPDIF_AVG_SEL               BIT(20)
0411 #define SPDIF_JITTER_BYPASS         BIT(19)
0412 #define SPDIF_FIFO_MID_RANGE(x)         (((x) & 0xff) << 11)
0413 #define SPDIF_JITTER_THRSH(x)           (((x) & 0xff) << 3)
0414 #define SPDIF_JITTER_AVG_WIN(x)         ((x) & 0x7)
0415 
0416 /* Reference cycles when using lane clock as reference */
0417 #define LANE_REF_CYC                0x8000
0418 
0419 enum voltage_swing_level {
0420     VOLTAGE_LEVEL_0,
0421     VOLTAGE_LEVEL_1,
0422     VOLTAGE_LEVEL_2,
0423     VOLTAGE_LEVEL_3,
0424 };
0425 
0426 enum pre_emphasis_level {
0427     PRE_EMPHASIS_LEVEL_0,
0428     PRE_EMPHASIS_LEVEL_1,
0429     PRE_EMPHASIS_LEVEL_2,
0430     PRE_EMPHASIS_LEVEL_3,
0431 };
0432 
0433 enum pattern_set {
0434     PTS1        = BIT(0),
0435     PTS2        = BIT(1),
0436     PTS3        = BIT(2),
0437     PTS4        = BIT(3),
0438     DP_NONE     = BIT(4)
0439 };
0440 
0441 enum vic_color_depth {
0442     BCS_6 = 0x1,
0443     BCS_8 = 0x2,
0444     BCS_10 = 0x4,
0445     BCS_12 = 0x8,
0446     BCS_16 = 0x10,
0447 };
0448 
0449 enum vic_bt_type {
0450     BT_601 = 0x0,
0451     BT_709 = 0x1,
0452 };
0453 
0454 void cdn_dp_clock_reset(struct cdn_dp_device *dp);
0455 
0456 void cdn_dp_set_fw_clk(struct cdn_dp_device *dp, unsigned long clk);
0457 int cdn_dp_load_firmware(struct cdn_dp_device *dp, const u32 *i_mem,
0458              u32 i_size, const u32 *d_mem, u32 d_size);
0459 int cdn_dp_set_firmware_active(struct cdn_dp_device *dp, bool enable);
0460 int cdn_dp_set_host_cap(struct cdn_dp_device *dp, u8 lanes, bool flip);
0461 int cdn_dp_event_config(struct cdn_dp_device *dp);
0462 u32 cdn_dp_get_event(struct cdn_dp_device *dp);
0463 int cdn_dp_get_hpd_status(struct cdn_dp_device *dp);
0464 int cdn_dp_dpcd_write(struct cdn_dp_device *dp, u32 addr, u8 value);
0465 int cdn_dp_dpcd_read(struct cdn_dp_device *dp, u32 addr, u8 *data, u16 len);
0466 int cdn_dp_get_edid_block(void *dp, u8 *edid,
0467               unsigned int block, size_t length);
0468 int cdn_dp_train_link(struct cdn_dp_device *dp);
0469 int cdn_dp_set_video_status(struct cdn_dp_device *dp, int active);
0470 int cdn_dp_config_video(struct cdn_dp_device *dp);
0471 int cdn_dp_audio_stop(struct cdn_dp_device *dp, struct audio_info *audio);
0472 int cdn_dp_audio_mute(struct cdn_dp_device *dp, bool enable);
0473 int cdn_dp_audio_config(struct cdn_dp_device *dp, struct audio_info *audio);
0474 #endif /* _CDN_DP_REG_H */