0001
0002
0003
0004
0005
0006 #ifndef __ICL_DSI_REGS_H__
0007 #define __ICL_DSI_REGS_H__
0008
0009 #include "i915_reg_defs.h"
0010
0011
0012 #define _MMIO_DSI(tc, dsi0, dsi1) _MMIO_TRANS((tc) - TRANSCODER_DSI_0, \
0013 dsi0, dsi1)
0014 #define _ICL_DSI_ESC_CLK_DIV0 0x6b090
0015 #define _ICL_DSI_ESC_CLK_DIV1 0x6b890
0016 #define ICL_DSI_ESC_CLK_DIV(port) _MMIO_PORT((port), \
0017 _ICL_DSI_ESC_CLK_DIV0, \
0018 _ICL_DSI_ESC_CLK_DIV1)
0019 #define _ICL_DPHY_ESC_CLK_DIV0 0x162190
0020 #define _ICL_DPHY_ESC_CLK_DIV1 0x6C190
0021 #define ICL_DPHY_ESC_CLK_DIV(port) _MMIO_PORT((port), \
0022 _ICL_DPHY_ESC_CLK_DIV0, \
0023 _ICL_DPHY_ESC_CLK_DIV1)
0024 #define ICL_BYTE_CLK_PER_ESC_CLK_MASK (0x1f << 16)
0025 #define ICL_BYTE_CLK_PER_ESC_CLK_SHIFT 16
0026 #define ICL_ESC_CLK_DIV_MASK 0x1ff
0027 #define ICL_ESC_CLK_DIV_SHIFT 0
0028 #define DSI_MAX_ESC_CLK 20000
0029
0030 #define _ADL_MIPIO_REG 0x180
0031 #define ADL_MIPIO_DW(port, dw) _MMIO(_ICL_COMBOPHY(port) + _ADL_MIPIO_REG + 4 * (dw))
0032 #define TX_ESC_CLK_DIV_PHY_SEL REGBIT(16)
0033 #define TX_ESC_CLK_DIV_PHY_MASK REG_GENMASK(23, 16)
0034 #define TX_ESC_CLK_DIV_PHY REG_FIELD_PREP(TX_ESC_CLK_DIV_PHY_MASK, 0x7f)
0035
0036 #define _DSI_CMD_FRMCTL_0 0x6b034
0037 #define _DSI_CMD_FRMCTL_1 0x6b834
0038 #define DSI_CMD_FRMCTL(port) _MMIO_PORT(port, \
0039 _DSI_CMD_FRMCTL_0,\
0040 _DSI_CMD_FRMCTL_1)
0041 #define DSI_FRAME_UPDATE_REQUEST (1 << 31)
0042 #define DSI_PERIODIC_FRAME_UPDATE_ENABLE (1 << 29)
0043 #define DSI_NULL_PACKET_ENABLE (1 << 28)
0044 #define DSI_FRAME_IN_PROGRESS (1 << 0)
0045
0046 #define _DSI_INTR_MASK_REG_0 0x6b070
0047 #define _DSI_INTR_MASK_REG_1 0x6b870
0048 #define DSI_INTR_MASK_REG(port) _MMIO_PORT(port, \
0049 _DSI_INTR_MASK_REG_0,\
0050 _DSI_INTR_MASK_REG_1)
0051
0052 #define _DSI_INTR_IDENT_REG_0 0x6b074
0053 #define _DSI_INTR_IDENT_REG_1 0x6b874
0054 #define DSI_INTR_IDENT_REG(port) _MMIO_PORT(port, \
0055 _DSI_INTR_IDENT_REG_0,\
0056 _DSI_INTR_IDENT_REG_1)
0057 #define DSI_TE_EVENT (1 << 31)
0058 #define DSI_RX_DATA_OR_BTA_TERMINATED (1 << 30)
0059 #define DSI_TX_DATA (1 << 29)
0060 #define DSI_ULPS_ENTRY_DONE (1 << 28)
0061 #define DSI_NON_TE_TRIGGER_RECEIVED (1 << 27)
0062 #define DSI_HOST_CHKSUM_ERROR (1 << 26)
0063 #define DSI_HOST_MULTI_ECC_ERROR (1 << 25)
0064 #define DSI_HOST_SINGL_ECC_ERROR (1 << 24)
0065 #define DSI_HOST_CONTENTION_DETECTED (1 << 23)
0066 #define DSI_HOST_FALSE_CONTROL_ERROR (1 << 22)
0067 #define DSI_HOST_TIMEOUT_ERROR (1 << 21)
0068 #define DSI_HOST_LOW_POWER_TX_SYNC_ERROR (1 << 20)
0069 #define DSI_HOST_ESCAPE_MODE_ENTRY_ERROR (1 << 19)
0070 #define DSI_FRAME_UPDATE_DONE (1 << 16)
0071 #define DSI_PROTOCOL_VIOLATION_REPORTED (1 << 15)
0072 #define DSI_INVALID_TX_LENGTH (1 << 13)
0073 #define DSI_INVALID_VC (1 << 12)
0074 #define DSI_INVALID_DATA_TYPE (1 << 11)
0075 #define DSI_PERIPHERAL_CHKSUM_ERROR (1 << 10)
0076 #define DSI_PERIPHERAL_MULTI_ECC_ERROR (1 << 9)
0077 #define DSI_PERIPHERAL_SINGLE_ECC_ERROR (1 << 8)
0078 #define DSI_PERIPHERAL_CONTENTION_DETECTED (1 << 7)
0079 #define DSI_PERIPHERAL_FALSE_CTRL_ERROR (1 << 6)
0080 #define DSI_PERIPHERAL_TIMEOUT_ERROR (1 << 5)
0081 #define DSI_PERIPHERAL_LP_TX_SYNC_ERROR (1 << 4)
0082 #define DSI_PERIPHERAL_ESC_MODE_ENTRY_CMD_ERR (1 << 3)
0083 #define DSI_EOT_SYNC_ERROR (1 << 2)
0084 #define DSI_SOT_SYNC_ERROR (1 << 1)
0085 #define DSI_SOT_ERROR (1 << 0)
0086
0087
0088 #define _ICL_DSI_IO_MODECTL_0 0x6B094
0089 #define _ICL_DSI_IO_MODECTL_1 0x6B894
0090 #define ICL_DSI_IO_MODECTL(port) _MMIO_PORT(port, \
0091 _ICL_DSI_IO_MODECTL_0, \
0092 _ICL_DSI_IO_MODECTL_1)
0093 #define COMBO_PHY_MODE_DSI (1 << 0)
0094
0095
0096 #define _TGL_DSI_CHKN_REG_0 0x6B0C0
0097 #define _TGL_DSI_CHKN_REG_1 0x6B8C0
0098 #define TGL_DSI_CHKN_REG(port) _MMIO_PORT(port, \
0099 _TGL_DSI_CHKN_REG_0, \
0100 _TGL_DSI_CHKN_REG_1)
0101 #define TGL_DSI_CHKN_LSHS_GB_MASK REG_GENMASK(15, 12)
0102 #define TGL_DSI_CHKN_LSHS_GB(byte_clocks) REG_FIELD_PREP(TGL_DSI_CHKN_LSHS_GB_MASK, \
0103 (byte_clocks))
0104 #define _ICL_DSI_T_INIT_MASTER_0 0x6b088
0105 #define _ICL_DSI_T_INIT_MASTER_1 0x6b888
0106 #define ICL_DSI_T_INIT_MASTER(port) _MMIO_PORT(port, \
0107 _ICL_DSI_T_INIT_MASTER_0,\
0108 _ICL_DSI_T_INIT_MASTER_1)
0109 #define DSI_T_INIT_MASTER_MASK REG_GENMASK(15, 0)
0110
0111 #define _DPHY_CLK_TIMING_PARAM_0 0x162180
0112 #define _DPHY_CLK_TIMING_PARAM_1 0x6c180
0113 #define DPHY_CLK_TIMING_PARAM(port) _MMIO_PORT(port, \
0114 _DPHY_CLK_TIMING_PARAM_0,\
0115 _DPHY_CLK_TIMING_PARAM_1)
0116 #define _DSI_CLK_TIMING_PARAM_0 0x6b080
0117 #define _DSI_CLK_TIMING_PARAM_1 0x6b880
0118 #define DSI_CLK_TIMING_PARAM(port) _MMIO_PORT(port, \
0119 _DSI_CLK_TIMING_PARAM_0,\
0120 _DSI_CLK_TIMING_PARAM_1)
0121 #define CLK_PREPARE_OVERRIDE (1 << 31)
0122 #define CLK_PREPARE(x) ((x) << 28)
0123 #define CLK_PREPARE_MASK (0x7 << 28)
0124 #define CLK_PREPARE_SHIFT 28
0125 #define CLK_ZERO_OVERRIDE (1 << 27)
0126 #define CLK_ZERO(x) ((x) << 20)
0127 #define CLK_ZERO_MASK (0xf << 20)
0128 #define CLK_ZERO_SHIFT 20
0129 #define CLK_PRE_OVERRIDE (1 << 19)
0130 #define CLK_PRE(x) ((x) << 16)
0131 #define CLK_PRE_MASK (0x3 << 16)
0132 #define CLK_PRE_SHIFT 16
0133 #define CLK_POST_OVERRIDE (1 << 15)
0134 #define CLK_POST(x) ((x) << 8)
0135 #define CLK_POST_MASK (0x7 << 8)
0136 #define CLK_POST_SHIFT 8
0137 #define CLK_TRAIL_OVERRIDE (1 << 7)
0138 #define CLK_TRAIL(x) ((x) << 0)
0139 #define CLK_TRAIL_MASK (0xf << 0)
0140 #define CLK_TRAIL_SHIFT 0
0141
0142 #define _DPHY_DATA_TIMING_PARAM_0 0x162184
0143 #define _DPHY_DATA_TIMING_PARAM_1 0x6c184
0144 #define DPHY_DATA_TIMING_PARAM(port) _MMIO_PORT(port, \
0145 _DPHY_DATA_TIMING_PARAM_0,\
0146 _DPHY_DATA_TIMING_PARAM_1)
0147 #define _DSI_DATA_TIMING_PARAM_0 0x6B084
0148 #define _DSI_DATA_TIMING_PARAM_1 0x6B884
0149 #define DSI_DATA_TIMING_PARAM(port) _MMIO_PORT(port, \
0150 _DSI_DATA_TIMING_PARAM_0,\
0151 _DSI_DATA_TIMING_PARAM_1)
0152 #define HS_PREPARE_OVERRIDE (1 << 31)
0153 #define HS_PREPARE(x) ((x) << 24)
0154 #define HS_PREPARE_MASK (0x7 << 24)
0155 #define HS_PREPARE_SHIFT 24
0156 #define HS_ZERO_OVERRIDE (1 << 23)
0157 #define HS_ZERO(x) ((x) << 16)
0158 #define HS_ZERO_MASK (0xf << 16)
0159 #define HS_ZERO_SHIFT 16
0160 #define HS_TRAIL_OVERRIDE (1 << 15)
0161 #define HS_TRAIL(x) ((x) << 8)
0162 #define HS_TRAIL_MASK (0x7 << 8)
0163 #define HS_TRAIL_SHIFT 8
0164 #define HS_EXIT_OVERRIDE (1 << 7)
0165 #define HS_EXIT(x) ((x) << 0)
0166 #define HS_EXIT_MASK (0x7 << 0)
0167 #define HS_EXIT_SHIFT 0
0168
0169 #define _DPHY_TA_TIMING_PARAM_0 0x162188
0170 #define _DPHY_TA_TIMING_PARAM_1 0x6c188
0171 #define DPHY_TA_TIMING_PARAM(port) _MMIO_PORT(port, \
0172 _DPHY_TA_TIMING_PARAM_0,\
0173 _DPHY_TA_TIMING_PARAM_1)
0174 #define _DSI_TA_TIMING_PARAM_0 0x6b098
0175 #define _DSI_TA_TIMING_PARAM_1 0x6b898
0176 #define DSI_TA_TIMING_PARAM(port) _MMIO_PORT(port, \
0177 _DSI_TA_TIMING_PARAM_0,\
0178 _DSI_TA_TIMING_PARAM_1)
0179 #define TA_SURE_OVERRIDE (1 << 31)
0180 #define TA_SURE(x) ((x) << 16)
0181 #define TA_SURE_MASK (0x1f << 16)
0182 #define TA_SURE_SHIFT 16
0183 #define TA_GO_OVERRIDE (1 << 15)
0184 #define TA_GO(x) ((x) << 8)
0185 #define TA_GO_MASK (0xf << 8)
0186 #define TA_GO_SHIFT 8
0187 #define TA_GET_OVERRIDE (1 << 7)
0188 #define TA_GET(x) ((x) << 0)
0189 #define TA_GET_MASK (0xf << 0)
0190 #define TA_GET_SHIFT 0
0191
0192
0193 #define _DSI_TRANS_FUNC_CONF_0 0x6b030
0194 #define _DSI_TRANS_FUNC_CONF_1 0x6b830
0195 #define DSI_TRANS_FUNC_CONF(tc) _MMIO_DSI(tc, \
0196 _DSI_TRANS_FUNC_CONF_0,\
0197 _DSI_TRANS_FUNC_CONF_1)
0198 #define OP_MODE_MASK (0x3 << 28)
0199 #define OP_MODE_SHIFT 28
0200 #define CMD_MODE_NO_GATE (0x0 << 28)
0201 #define CMD_MODE_TE_GATE (0x1 << 28)
0202 #define VIDEO_MODE_SYNC_EVENT (0x2 << 28)
0203 #define VIDEO_MODE_SYNC_PULSE (0x3 << 28)
0204 #define TE_SOURCE_GPIO (1 << 27)
0205 #define LINK_READY (1 << 20)
0206 #define PIX_FMT_MASK (0x3 << 16)
0207 #define PIX_FMT_SHIFT 16
0208 #define PIX_FMT_RGB565 (0x0 << 16)
0209 #define PIX_FMT_RGB666_PACKED (0x1 << 16)
0210 #define PIX_FMT_RGB666_LOOSE (0x2 << 16)
0211 #define PIX_FMT_RGB888 (0x3 << 16)
0212 #define PIX_FMT_RGB101010 (0x4 << 16)
0213 #define PIX_FMT_RGB121212 (0x5 << 16)
0214 #define PIX_FMT_COMPRESSED (0x6 << 16)
0215 #define BGR_TRANSMISSION (1 << 15)
0216 #define PIX_VIRT_CHAN(x) ((x) << 12)
0217 #define PIX_VIRT_CHAN_MASK (0x3 << 12)
0218 #define PIX_VIRT_CHAN_SHIFT 12
0219 #define PIX_BUF_THRESHOLD_MASK (0x3 << 10)
0220 #define PIX_BUF_THRESHOLD_SHIFT 10
0221 #define PIX_BUF_THRESHOLD_1_4 (0x0 << 10)
0222 #define PIX_BUF_THRESHOLD_1_2 (0x1 << 10)
0223 #define PIX_BUF_THRESHOLD_3_4 (0x2 << 10)
0224 #define PIX_BUF_THRESHOLD_FULL (0x3 << 10)
0225 #define CONTINUOUS_CLK_MASK (0x3 << 8)
0226 #define CONTINUOUS_CLK_SHIFT 8
0227 #define CLK_ENTER_LP_AFTER_DATA (0x0 << 8)
0228 #define CLK_HS_OR_LP (0x2 << 8)
0229 #define CLK_HS_CONTINUOUS (0x3 << 8)
0230 #define LINK_CALIBRATION_MASK (0x3 << 4)
0231 #define LINK_CALIBRATION_SHIFT 4
0232 #define CALIBRATION_DISABLED (0x0 << 4)
0233 #define CALIBRATION_ENABLED_INITIAL_ONLY (0x2 << 4)
0234 #define CALIBRATION_ENABLED_INITIAL_PERIODIC (0x3 << 4)
0235 #define BLANKING_PACKET_ENABLE (1 << 2)
0236 #define S3D_ORIENTATION_LANDSCAPE (1 << 1)
0237 #define EOTP_DISABLED (1 << 0)
0238
0239 #define _DSI_CMD_RXCTL_0 0x6b0d4
0240 #define _DSI_CMD_RXCTL_1 0x6b8d4
0241 #define DSI_CMD_RXCTL(tc) _MMIO_DSI(tc, \
0242 _DSI_CMD_RXCTL_0,\
0243 _DSI_CMD_RXCTL_1)
0244 #define READ_UNLOADS_DW (1 << 16)
0245 #define RECEIVED_UNASSIGNED_TRIGGER (1 << 15)
0246 #define RECEIVED_ACKNOWLEDGE_TRIGGER (1 << 14)
0247 #define RECEIVED_TEAR_EFFECT_TRIGGER (1 << 13)
0248 #define RECEIVED_RESET_TRIGGER (1 << 12)
0249 #define RECEIVED_PAYLOAD_WAS_LOST (1 << 11)
0250 #define RECEIVED_CRC_WAS_LOST (1 << 10)
0251 #define NUMBER_RX_PLOAD_DW_MASK (0xff << 0)
0252 #define NUMBER_RX_PLOAD_DW_SHIFT 0
0253
0254 #define _DSI_CMD_TXCTL_0 0x6b0d0
0255 #define _DSI_CMD_TXCTL_1 0x6b8d0
0256 #define DSI_CMD_TXCTL(tc) _MMIO_DSI(tc, \
0257 _DSI_CMD_TXCTL_0,\
0258 _DSI_CMD_TXCTL_1)
0259 #define KEEP_LINK_IN_HS (1 << 24)
0260 #define FREE_HEADER_CREDIT_MASK (0x1f << 8)
0261 #define FREE_HEADER_CREDIT_SHIFT 0x8
0262 #define FREE_PLOAD_CREDIT_MASK (0xff << 0)
0263 #define FREE_PLOAD_CREDIT_SHIFT 0
0264 #define MAX_HEADER_CREDIT 0x10
0265 #define MAX_PLOAD_CREDIT 0x40
0266
0267 #define _DSI_CMD_TXHDR_0 0x6b100
0268 #define _DSI_CMD_TXHDR_1 0x6b900
0269 #define DSI_CMD_TXHDR(tc) _MMIO_DSI(tc, \
0270 _DSI_CMD_TXHDR_0,\
0271 _DSI_CMD_TXHDR_1)
0272 #define PAYLOAD_PRESENT (1 << 31)
0273 #define LP_DATA_TRANSFER (1 << 30)
0274 #define VBLANK_FENCE (1 << 29)
0275 #define PARAM_WC_MASK (0xffff << 8)
0276 #define PARAM_WC_LOWER_SHIFT 8
0277 #define PARAM_WC_UPPER_SHIFT 16
0278 #define VC_MASK (0x3 << 6)
0279 #define VC_SHIFT 6
0280 #define DT_MASK (0x3f << 0)
0281 #define DT_SHIFT 0
0282
0283 #define _DSI_CMD_TXPYLD_0 0x6b104
0284 #define _DSI_CMD_TXPYLD_1 0x6b904
0285 #define DSI_CMD_TXPYLD(tc) _MMIO_DSI(tc, \
0286 _DSI_CMD_TXPYLD_0,\
0287 _DSI_CMD_TXPYLD_1)
0288
0289 #define _DSI_LP_MSG_0 0x6b0d8
0290 #define _DSI_LP_MSG_1 0x6b8d8
0291 #define DSI_LP_MSG(tc) _MMIO_DSI(tc, \
0292 _DSI_LP_MSG_0,\
0293 _DSI_LP_MSG_1)
0294 #define LPTX_IN_PROGRESS (1 << 17)
0295 #define LINK_IN_ULPS (1 << 16)
0296 #define LINK_ULPS_TYPE_LP11 (1 << 8)
0297 #define LINK_ENTER_ULPS (1 << 0)
0298
0299
0300 #define _DSI_HSTX_TO_0 0x6b044
0301 #define _DSI_HSTX_TO_1 0x6b844
0302 #define DSI_HSTX_TO(tc) _MMIO_DSI(tc, \
0303 _DSI_HSTX_TO_0,\
0304 _DSI_HSTX_TO_1)
0305 #define HSTX_TIMEOUT_VALUE_MASK (0xffff << 16)
0306 #define HSTX_TIMEOUT_VALUE_SHIFT 16
0307 #define HSTX_TIMEOUT_VALUE(x) ((x) << 16)
0308 #define HSTX_TIMED_OUT (1 << 0)
0309
0310 #define _DSI_LPRX_HOST_TO_0 0x6b048
0311 #define _DSI_LPRX_HOST_TO_1 0x6b848
0312 #define DSI_LPRX_HOST_TO(tc) _MMIO_DSI(tc, \
0313 _DSI_LPRX_HOST_TO_0,\
0314 _DSI_LPRX_HOST_TO_1)
0315 #define LPRX_TIMED_OUT (1 << 16)
0316 #define LPRX_TIMEOUT_VALUE_MASK (0xffff << 0)
0317 #define LPRX_TIMEOUT_VALUE_SHIFT 0
0318 #define LPRX_TIMEOUT_VALUE(x) ((x) << 0)
0319
0320 #define _DSI_PWAIT_TO_0 0x6b040
0321 #define _DSI_PWAIT_TO_1 0x6b840
0322 #define DSI_PWAIT_TO(tc) _MMIO_DSI(tc, \
0323 _DSI_PWAIT_TO_0,\
0324 _DSI_PWAIT_TO_1)
0325 #define PRESET_TIMEOUT_VALUE_MASK (0xffff << 16)
0326 #define PRESET_TIMEOUT_VALUE_SHIFT 16
0327 #define PRESET_TIMEOUT_VALUE(x) ((x) << 16)
0328 #define PRESPONSE_TIMEOUT_VALUE_MASK (0xffff << 0)
0329 #define PRESPONSE_TIMEOUT_VALUE_SHIFT 0
0330 #define PRESPONSE_TIMEOUT_VALUE(x) ((x) << 0)
0331
0332 #define _DSI_TA_TO_0 0x6b04c
0333 #define _DSI_TA_TO_1 0x6b84c
0334 #define DSI_TA_TO(tc) _MMIO_DSI(tc, \
0335 _DSI_TA_TO_0,\
0336 _DSI_TA_TO_1)
0337 #define TA_TIMED_OUT (1 << 16)
0338 #define TA_TIMEOUT_VALUE_MASK (0xffff << 0)
0339 #define TA_TIMEOUT_VALUE_SHIFT 0
0340 #define TA_TIMEOUT_VALUE(x) ((x) << 0)
0341
0342 #endif