0001 #ifndef DSI_XML
0002 #define DSI_XML
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056 enum dsi_traffic_mode {
0057 NON_BURST_SYNCH_PULSE = 0,
0058 NON_BURST_SYNCH_EVENT = 1,
0059 BURST_MODE = 2,
0060 };
0061
0062 enum dsi_vid_dst_format {
0063 VID_DST_FORMAT_RGB565 = 0,
0064 VID_DST_FORMAT_RGB666 = 1,
0065 VID_DST_FORMAT_RGB666_LOOSE = 2,
0066 VID_DST_FORMAT_RGB888 = 3,
0067 };
0068
0069 enum dsi_rgb_swap {
0070 SWAP_RGB = 0,
0071 SWAP_RBG = 1,
0072 SWAP_BGR = 2,
0073 SWAP_BRG = 3,
0074 SWAP_GRB = 4,
0075 SWAP_GBR = 5,
0076 };
0077
0078 enum dsi_cmd_trigger {
0079 TRIGGER_NONE = 0,
0080 TRIGGER_SEOF = 1,
0081 TRIGGER_TE = 2,
0082 TRIGGER_SW = 4,
0083 TRIGGER_SW_SEOF = 5,
0084 TRIGGER_SW_TE = 6,
0085 };
0086
0087 enum dsi_cmd_dst_format {
0088 CMD_DST_FORMAT_RGB111 = 0,
0089 CMD_DST_FORMAT_RGB332 = 3,
0090 CMD_DST_FORMAT_RGB444 = 4,
0091 CMD_DST_FORMAT_RGB565 = 6,
0092 CMD_DST_FORMAT_RGB666 = 7,
0093 CMD_DST_FORMAT_RGB888 = 8,
0094 };
0095
0096 enum dsi_lane_swap {
0097 LANE_SWAP_0123 = 0,
0098 LANE_SWAP_3012 = 1,
0099 LANE_SWAP_2301 = 2,
0100 LANE_SWAP_1230 = 3,
0101 LANE_SWAP_0321 = 4,
0102 LANE_SWAP_1032 = 5,
0103 LANE_SWAP_2103 = 6,
0104 LANE_SWAP_3210 = 7,
0105 };
0106
0107 enum video_config_bpp {
0108 VIDEO_CONFIG_18BPP = 0,
0109 VIDEO_CONFIG_24BPP = 1,
0110 };
0111
0112 enum video_pattern_sel {
0113 VID_PRBS = 0,
0114 VID_INCREMENTAL = 1,
0115 VID_FIXED = 2,
0116 VID_MDSS_GENERAL_PATTERN = 3,
0117 };
0118
0119 enum cmd_mdp_stream0_pattern_sel {
0120 CMD_MDP_PRBS = 0,
0121 CMD_MDP_INCREMENTAL = 1,
0122 CMD_MDP_FIXED = 2,
0123 CMD_MDP_MDSS_GENERAL_PATTERN = 3,
0124 };
0125
0126 enum cmd_dma_pattern_sel {
0127 CMD_DMA_PRBS = 0,
0128 CMD_DMA_INCREMENTAL = 1,
0129 CMD_DMA_FIXED = 2,
0130 CMD_DMA_CUSTOM_PATTERN_DMA_FIFO = 3,
0131 };
0132
0133 #define DSI_IRQ_CMD_DMA_DONE 0x00000001
0134 #define DSI_IRQ_MASK_CMD_DMA_DONE 0x00000002
0135 #define DSI_IRQ_CMD_MDP_DONE 0x00000100
0136 #define DSI_IRQ_MASK_CMD_MDP_DONE 0x00000200
0137 #define DSI_IRQ_VIDEO_DONE 0x00010000
0138 #define DSI_IRQ_MASK_VIDEO_DONE 0x00020000
0139 #define DSI_IRQ_BTA_DONE 0x00100000
0140 #define DSI_IRQ_MASK_BTA_DONE 0x00200000
0141 #define DSI_IRQ_ERROR 0x01000000
0142 #define DSI_IRQ_MASK_ERROR 0x02000000
0143 #define REG_DSI_6G_HW_VERSION 0x00000000
0144 #define DSI_6G_HW_VERSION_MAJOR__MASK 0xf0000000
0145 #define DSI_6G_HW_VERSION_MAJOR__SHIFT 28
0146 static inline uint32_t DSI_6G_HW_VERSION_MAJOR(uint32_t val)
0147 {
0148 return ((val) << DSI_6G_HW_VERSION_MAJOR__SHIFT) & DSI_6G_HW_VERSION_MAJOR__MASK;
0149 }
0150 #define DSI_6G_HW_VERSION_MINOR__MASK 0x0fff0000
0151 #define DSI_6G_HW_VERSION_MINOR__SHIFT 16
0152 static inline uint32_t DSI_6G_HW_VERSION_MINOR(uint32_t val)
0153 {
0154 return ((val) << DSI_6G_HW_VERSION_MINOR__SHIFT) & DSI_6G_HW_VERSION_MINOR__MASK;
0155 }
0156 #define DSI_6G_HW_VERSION_STEP__MASK 0x0000ffff
0157 #define DSI_6G_HW_VERSION_STEP__SHIFT 0
0158 static inline uint32_t DSI_6G_HW_VERSION_STEP(uint32_t val)
0159 {
0160 return ((val) << DSI_6G_HW_VERSION_STEP__SHIFT) & DSI_6G_HW_VERSION_STEP__MASK;
0161 }
0162
0163 #define REG_DSI_CTRL 0x00000000
0164 #define DSI_CTRL_ENABLE 0x00000001
0165 #define DSI_CTRL_VID_MODE_EN 0x00000002
0166 #define DSI_CTRL_CMD_MODE_EN 0x00000004
0167 #define DSI_CTRL_LANE0 0x00000010
0168 #define DSI_CTRL_LANE1 0x00000020
0169 #define DSI_CTRL_LANE2 0x00000040
0170 #define DSI_CTRL_LANE3 0x00000080
0171 #define DSI_CTRL_CLK_EN 0x00000100
0172 #define DSI_CTRL_ECC_CHECK 0x00100000
0173 #define DSI_CTRL_CRC_CHECK 0x01000000
0174
0175 #define REG_DSI_STATUS0 0x00000004
0176 #define DSI_STATUS0_CMD_MODE_ENGINE_BUSY 0x00000001
0177 #define DSI_STATUS0_CMD_MODE_DMA_BUSY 0x00000002
0178 #define DSI_STATUS0_CMD_MODE_MDP_BUSY 0x00000004
0179 #define DSI_STATUS0_VIDEO_MODE_ENGINE_BUSY 0x00000008
0180 #define DSI_STATUS0_DSI_BUSY 0x00000010
0181 #define DSI_STATUS0_INTERLEAVE_OP_CONTENTION 0x80000000
0182
0183 #define REG_DSI_FIFO_STATUS 0x00000008
0184 #define DSI_FIFO_STATUS_VIDEO_MDP_FIFO_OVERFLOW 0x00000001
0185 #define DSI_FIFO_STATUS_VIDEO_MDP_FIFO_UNDERFLOW 0x00000008
0186 #define DSI_FIFO_STATUS_CMD_MDP_FIFO_UNDERFLOW 0x00000080
0187 #define DSI_FIFO_STATUS_CMD_DMA_FIFO_RD_WATERMARK_REACH 0x00000100
0188 #define DSI_FIFO_STATUS_CMD_DMA_FIFO_WR_WATERMARK_REACH 0x00000200
0189 #define DSI_FIFO_STATUS_CMD_DMA_FIFO_UNDERFLOW 0x00000400
0190 #define DSI_FIFO_STATUS_DLN0_LP_FIFO_EMPTY 0x00001000
0191 #define DSI_FIFO_STATUS_DLN0_LP_FIFO_FULL 0x00002000
0192 #define DSI_FIFO_STATUS_DLN0_LP_FIFO_OVERFLOW 0x00004000
0193 #define DSI_FIFO_STATUS_DLN0_HS_FIFO_EMPTY 0x00010000
0194 #define DSI_FIFO_STATUS_DLN0_HS_FIFO_FULL 0x00020000
0195 #define DSI_FIFO_STATUS_DLN0_HS_FIFO_OVERFLOW 0x00040000
0196 #define DSI_FIFO_STATUS_DLN0_HS_FIFO_UNDERFLOW 0x00080000
0197 #define DSI_FIFO_STATUS_DLN1_HS_FIFO_EMPTY 0x00100000
0198 #define DSI_FIFO_STATUS_DLN1_HS_FIFO_FULL 0x00200000
0199 #define DSI_FIFO_STATUS_DLN1_HS_FIFO_OVERFLOW 0x00400000
0200 #define DSI_FIFO_STATUS_DLN1_HS_FIFO_UNDERFLOW 0x00800000
0201 #define DSI_FIFO_STATUS_DLN2_HS_FIFO_EMPTY 0x01000000
0202 #define DSI_FIFO_STATUS_DLN2_HS_FIFO_FULL 0x02000000
0203 #define DSI_FIFO_STATUS_DLN2_HS_FIFO_OVERFLOW 0x04000000
0204 #define DSI_FIFO_STATUS_DLN2_HS_FIFO_UNDERFLOW 0x08000000
0205 #define DSI_FIFO_STATUS_DLN3_HS_FIFO_EMPTY 0x10000000
0206 #define DSI_FIFO_STATUS_DLN3_HS_FIFO_FULL 0x20000000
0207 #define DSI_FIFO_STATUS_DLN3_HS_FIFO_OVERFLOW 0x40000000
0208 #define DSI_FIFO_STATUS_DLN3_HS_FIFO_UNDERFLOW 0x80000000
0209
0210 #define REG_DSI_VID_CFG0 0x0000000c
0211 #define DSI_VID_CFG0_VIRT_CHANNEL__MASK 0x00000003
0212 #define DSI_VID_CFG0_VIRT_CHANNEL__SHIFT 0
0213 static inline uint32_t DSI_VID_CFG0_VIRT_CHANNEL(uint32_t val)
0214 {
0215 return ((val) << DSI_VID_CFG0_VIRT_CHANNEL__SHIFT) & DSI_VID_CFG0_VIRT_CHANNEL__MASK;
0216 }
0217 #define DSI_VID_CFG0_DST_FORMAT__MASK 0x00000030
0218 #define DSI_VID_CFG0_DST_FORMAT__SHIFT 4
0219 static inline uint32_t DSI_VID_CFG0_DST_FORMAT(enum dsi_vid_dst_format val)
0220 {
0221 return ((val) << DSI_VID_CFG0_DST_FORMAT__SHIFT) & DSI_VID_CFG0_DST_FORMAT__MASK;
0222 }
0223 #define DSI_VID_CFG0_TRAFFIC_MODE__MASK 0x00000300
0224 #define DSI_VID_CFG0_TRAFFIC_MODE__SHIFT 8
0225 static inline uint32_t DSI_VID_CFG0_TRAFFIC_MODE(enum dsi_traffic_mode val)
0226 {
0227 return ((val) << DSI_VID_CFG0_TRAFFIC_MODE__SHIFT) & DSI_VID_CFG0_TRAFFIC_MODE__MASK;
0228 }
0229 #define DSI_VID_CFG0_BLLP_POWER_STOP 0x00001000
0230 #define DSI_VID_CFG0_EOF_BLLP_POWER_STOP 0x00008000
0231 #define DSI_VID_CFG0_HSA_POWER_STOP 0x00010000
0232 #define DSI_VID_CFG0_HBP_POWER_STOP 0x00100000
0233 #define DSI_VID_CFG0_HFP_POWER_STOP 0x01000000
0234 #define DSI_VID_CFG0_PULSE_MODE_HSA_HE 0x10000000
0235
0236 #define REG_DSI_VID_CFG1 0x0000001c
0237 #define DSI_VID_CFG1_R_SEL 0x00000001
0238 #define DSI_VID_CFG1_G_SEL 0x00000010
0239 #define DSI_VID_CFG1_B_SEL 0x00000100
0240 #define DSI_VID_CFG1_RGB_SWAP__MASK 0x00007000
0241 #define DSI_VID_CFG1_RGB_SWAP__SHIFT 12
0242 static inline uint32_t DSI_VID_CFG1_RGB_SWAP(enum dsi_rgb_swap val)
0243 {
0244 return ((val) << DSI_VID_CFG1_RGB_SWAP__SHIFT) & DSI_VID_CFG1_RGB_SWAP__MASK;
0245 }
0246
0247 #define REG_DSI_ACTIVE_H 0x00000020
0248 #define DSI_ACTIVE_H_START__MASK 0x00000fff
0249 #define DSI_ACTIVE_H_START__SHIFT 0
0250 static inline uint32_t DSI_ACTIVE_H_START(uint32_t val)
0251 {
0252 return ((val) << DSI_ACTIVE_H_START__SHIFT) & DSI_ACTIVE_H_START__MASK;
0253 }
0254 #define DSI_ACTIVE_H_END__MASK 0x0fff0000
0255 #define DSI_ACTIVE_H_END__SHIFT 16
0256 static inline uint32_t DSI_ACTIVE_H_END(uint32_t val)
0257 {
0258 return ((val) << DSI_ACTIVE_H_END__SHIFT) & DSI_ACTIVE_H_END__MASK;
0259 }
0260
0261 #define REG_DSI_ACTIVE_V 0x00000024
0262 #define DSI_ACTIVE_V_START__MASK 0x00000fff
0263 #define DSI_ACTIVE_V_START__SHIFT 0
0264 static inline uint32_t DSI_ACTIVE_V_START(uint32_t val)
0265 {
0266 return ((val) << DSI_ACTIVE_V_START__SHIFT) & DSI_ACTIVE_V_START__MASK;
0267 }
0268 #define DSI_ACTIVE_V_END__MASK 0x0fff0000
0269 #define DSI_ACTIVE_V_END__SHIFT 16
0270 static inline uint32_t DSI_ACTIVE_V_END(uint32_t val)
0271 {
0272 return ((val) << DSI_ACTIVE_V_END__SHIFT) & DSI_ACTIVE_V_END__MASK;
0273 }
0274
0275 #define REG_DSI_TOTAL 0x00000028
0276 #define DSI_TOTAL_H_TOTAL__MASK 0x00000fff
0277 #define DSI_TOTAL_H_TOTAL__SHIFT 0
0278 static inline uint32_t DSI_TOTAL_H_TOTAL(uint32_t val)
0279 {
0280 return ((val) << DSI_TOTAL_H_TOTAL__SHIFT) & DSI_TOTAL_H_TOTAL__MASK;
0281 }
0282 #define DSI_TOTAL_V_TOTAL__MASK 0x0fff0000
0283 #define DSI_TOTAL_V_TOTAL__SHIFT 16
0284 static inline uint32_t DSI_TOTAL_V_TOTAL(uint32_t val)
0285 {
0286 return ((val) << DSI_TOTAL_V_TOTAL__SHIFT) & DSI_TOTAL_V_TOTAL__MASK;
0287 }
0288
0289 #define REG_DSI_ACTIVE_HSYNC 0x0000002c
0290 #define DSI_ACTIVE_HSYNC_START__MASK 0x00000fff
0291 #define DSI_ACTIVE_HSYNC_START__SHIFT 0
0292 static inline uint32_t DSI_ACTIVE_HSYNC_START(uint32_t val)
0293 {
0294 return ((val) << DSI_ACTIVE_HSYNC_START__SHIFT) & DSI_ACTIVE_HSYNC_START__MASK;
0295 }
0296 #define DSI_ACTIVE_HSYNC_END__MASK 0x0fff0000
0297 #define DSI_ACTIVE_HSYNC_END__SHIFT 16
0298 static inline uint32_t DSI_ACTIVE_HSYNC_END(uint32_t val)
0299 {
0300 return ((val) << DSI_ACTIVE_HSYNC_END__SHIFT) & DSI_ACTIVE_HSYNC_END__MASK;
0301 }
0302
0303 #define REG_DSI_ACTIVE_VSYNC_HPOS 0x00000030
0304 #define DSI_ACTIVE_VSYNC_HPOS_START__MASK 0x00000fff
0305 #define DSI_ACTIVE_VSYNC_HPOS_START__SHIFT 0
0306 static inline uint32_t DSI_ACTIVE_VSYNC_HPOS_START(uint32_t val)
0307 {
0308 return ((val) << DSI_ACTIVE_VSYNC_HPOS_START__SHIFT) & DSI_ACTIVE_VSYNC_HPOS_START__MASK;
0309 }
0310 #define DSI_ACTIVE_VSYNC_HPOS_END__MASK 0x0fff0000
0311 #define DSI_ACTIVE_VSYNC_HPOS_END__SHIFT 16
0312 static inline uint32_t DSI_ACTIVE_VSYNC_HPOS_END(uint32_t val)
0313 {
0314 return ((val) << DSI_ACTIVE_VSYNC_HPOS_END__SHIFT) & DSI_ACTIVE_VSYNC_HPOS_END__MASK;
0315 }
0316
0317 #define REG_DSI_ACTIVE_VSYNC_VPOS 0x00000034
0318 #define DSI_ACTIVE_VSYNC_VPOS_START__MASK 0x00000fff
0319 #define DSI_ACTIVE_VSYNC_VPOS_START__SHIFT 0
0320 static inline uint32_t DSI_ACTIVE_VSYNC_VPOS_START(uint32_t val)
0321 {
0322 return ((val) << DSI_ACTIVE_VSYNC_VPOS_START__SHIFT) & DSI_ACTIVE_VSYNC_VPOS_START__MASK;
0323 }
0324 #define DSI_ACTIVE_VSYNC_VPOS_END__MASK 0x0fff0000
0325 #define DSI_ACTIVE_VSYNC_VPOS_END__SHIFT 16
0326 static inline uint32_t DSI_ACTIVE_VSYNC_VPOS_END(uint32_t val)
0327 {
0328 return ((val) << DSI_ACTIVE_VSYNC_VPOS_END__SHIFT) & DSI_ACTIVE_VSYNC_VPOS_END__MASK;
0329 }
0330
0331 #define REG_DSI_CMD_DMA_CTRL 0x00000038
0332 #define DSI_CMD_DMA_CTRL_BROADCAST_EN 0x80000000
0333 #define DSI_CMD_DMA_CTRL_FROM_FRAME_BUFFER 0x10000000
0334 #define DSI_CMD_DMA_CTRL_LOW_POWER 0x04000000
0335
0336 #define REG_DSI_CMD_CFG0 0x0000003c
0337 #define DSI_CMD_CFG0_DST_FORMAT__MASK 0x0000000f
0338 #define DSI_CMD_CFG0_DST_FORMAT__SHIFT 0
0339 static inline uint32_t DSI_CMD_CFG0_DST_FORMAT(enum dsi_cmd_dst_format val)
0340 {
0341 return ((val) << DSI_CMD_CFG0_DST_FORMAT__SHIFT) & DSI_CMD_CFG0_DST_FORMAT__MASK;
0342 }
0343 #define DSI_CMD_CFG0_R_SEL 0x00000010
0344 #define DSI_CMD_CFG0_G_SEL 0x00000100
0345 #define DSI_CMD_CFG0_B_SEL 0x00001000
0346 #define DSI_CMD_CFG0_INTERLEAVE_MAX__MASK 0x00f00000
0347 #define DSI_CMD_CFG0_INTERLEAVE_MAX__SHIFT 20
0348 static inline uint32_t DSI_CMD_CFG0_INTERLEAVE_MAX(uint32_t val)
0349 {
0350 return ((val) << DSI_CMD_CFG0_INTERLEAVE_MAX__SHIFT) & DSI_CMD_CFG0_INTERLEAVE_MAX__MASK;
0351 }
0352 #define DSI_CMD_CFG0_RGB_SWAP__MASK 0x00070000
0353 #define DSI_CMD_CFG0_RGB_SWAP__SHIFT 16
0354 static inline uint32_t DSI_CMD_CFG0_RGB_SWAP(enum dsi_rgb_swap val)
0355 {
0356 return ((val) << DSI_CMD_CFG0_RGB_SWAP__SHIFT) & DSI_CMD_CFG0_RGB_SWAP__MASK;
0357 }
0358
0359 #define REG_DSI_CMD_CFG1 0x00000040
0360 #define DSI_CMD_CFG1_WR_MEM_START__MASK 0x000000ff
0361 #define DSI_CMD_CFG1_WR_MEM_START__SHIFT 0
0362 static inline uint32_t DSI_CMD_CFG1_WR_MEM_START(uint32_t val)
0363 {
0364 return ((val) << DSI_CMD_CFG1_WR_MEM_START__SHIFT) & DSI_CMD_CFG1_WR_MEM_START__MASK;
0365 }
0366 #define DSI_CMD_CFG1_WR_MEM_CONTINUE__MASK 0x0000ff00
0367 #define DSI_CMD_CFG1_WR_MEM_CONTINUE__SHIFT 8
0368 static inline uint32_t DSI_CMD_CFG1_WR_MEM_CONTINUE(uint32_t val)
0369 {
0370 return ((val) << DSI_CMD_CFG1_WR_MEM_CONTINUE__SHIFT) & DSI_CMD_CFG1_WR_MEM_CONTINUE__MASK;
0371 }
0372 #define DSI_CMD_CFG1_INSERT_DCS_COMMAND 0x00010000
0373
0374 #define REG_DSI_DMA_BASE 0x00000044
0375
0376 #define REG_DSI_DMA_LEN 0x00000048
0377
0378 #define REG_DSI_CMD_MDP_STREAM0_CTRL 0x00000054
0379 #define DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__MASK 0x0000003f
0380 #define DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__SHIFT 0
0381 static inline uint32_t DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE(uint32_t val)
0382 {
0383 return ((val) << DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__SHIFT) & DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__MASK;
0384 }
0385 #define DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__MASK 0x00000300
0386 #define DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__SHIFT 8
0387 static inline uint32_t DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL(uint32_t val)
0388 {
0389 return ((val) << DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__SHIFT) & DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__MASK;
0390 }
0391 #define DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__MASK 0xffff0000
0392 #define DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__SHIFT 16
0393 static inline uint32_t DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT(uint32_t val)
0394 {
0395 return ((val) << DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__SHIFT) & DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__MASK;
0396 }
0397
0398 #define REG_DSI_CMD_MDP_STREAM0_TOTAL 0x00000058
0399 #define DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__MASK 0x00000fff
0400 #define DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__SHIFT 0
0401 static inline uint32_t DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL(uint32_t val)
0402 {
0403 return ((val) << DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__MASK;
0404 }
0405 #define DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__MASK 0x0fff0000
0406 #define DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__SHIFT 16
0407 static inline uint32_t DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL(uint32_t val)
0408 {
0409 return ((val) << DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__MASK;
0410 }
0411
0412 #define REG_DSI_CMD_MDP_STREAM1_CTRL 0x0000005c
0413 #define DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__MASK 0x0000003f
0414 #define DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__SHIFT 0
0415 static inline uint32_t DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE(uint32_t val)
0416 {
0417 return ((val) << DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__SHIFT) & DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__MASK;
0418 }
0419 #define DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__MASK 0x00000300
0420 #define DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__SHIFT 8
0421 static inline uint32_t DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL(uint32_t val)
0422 {
0423 return ((val) << DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__SHIFT) & DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__MASK;
0424 }
0425 #define DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__MASK 0xffff0000
0426 #define DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__SHIFT 16
0427 static inline uint32_t DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT(uint32_t val)
0428 {
0429 return ((val) << DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__SHIFT) & DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__MASK;
0430 }
0431
0432 #define REG_DSI_CMD_MDP_STREAM1_TOTAL 0x00000060
0433 #define DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__MASK 0x0000ffff
0434 #define DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__SHIFT 0
0435 static inline uint32_t DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL(uint32_t val)
0436 {
0437 return ((val) << DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__MASK;
0438 }
0439 #define DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__MASK 0xffff0000
0440 #define DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__SHIFT 16
0441 static inline uint32_t DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL(uint32_t val)
0442 {
0443 return ((val) << DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__MASK;
0444 }
0445
0446 #define REG_DSI_ACK_ERR_STATUS 0x00000064
0447
0448 static inline uint32_t REG_DSI_RDBK(uint32_t i0) { return 0x00000068 + 0x4*i0; }
0449
0450 static inline uint32_t REG_DSI_RDBK_DATA(uint32_t i0) { return 0x00000068 + 0x4*i0; }
0451
0452 #define REG_DSI_TRIG_CTRL 0x00000080
0453 #define DSI_TRIG_CTRL_DMA_TRIGGER__MASK 0x00000007
0454 #define DSI_TRIG_CTRL_DMA_TRIGGER__SHIFT 0
0455 static inline uint32_t DSI_TRIG_CTRL_DMA_TRIGGER(enum dsi_cmd_trigger val)
0456 {
0457 return ((val) << DSI_TRIG_CTRL_DMA_TRIGGER__SHIFT) & DSI_TRIG_CTRL_DMA_TRIGGER__MASK;
0458 }
0459 #define DSI_TRIG_CTRL_MDP_TRIGGER__MASK 0x00000070
0460 #define DSI_TRIG_CTRL_MDP_TRIGGER__SHIFT 4
0461 static inline uint32_t DSI_TRIG_CTRL_MDP_TRIGGER(enum dsi_cmd_trigger val)
0462 {
0463 return ((val) << DSI_TRIG_CTRL_MDP_TRIGGER__SHIFT) & DSI_TRIG_CTRL_MDP_TRIGGER__MASK;
0464 }
0465 #define DSI_TRIG_CTRL_STREAM__MASK 0x00000300
0466 #define DSI_TRIG_CTRL_STREAM__SHIFT 8
0467 static inline uint32_t DSI_TRIG_CTRL_STREAM(uint32_t val)
0468 {
0469 return ((val) << DSI_TRIG_CTRL_STREAM__SHIFT) & DSI_TRIG_CTRL_STREAM__MASK;
0470 }
0471 #define DSI_TRIG_CTRL_BLOCK_DMA_WITHIN_FRAME 0x00001000
0472 #define DSI_TRIG_CTRL_TE 0x80000000
0473
0474 #define REG_DSI_TRIG_DMA 0x0000008c
0475
0476 #define REG_DSI_DLN0_PHY_ERR 0x000000b0
0477 #define DSI_DLN0_PHY_ERR_DLN0_ERR_ESC 0x00000001
0478 #define DSI_DLN0_PHY_ERR_DLN0_ERR_SYNC_ESC 0x00000010
0479 #define DSI_DLN0_PHY_ERR_DLN0_ERR_CONTROL 0x00000100
0480 #define DSI_DLN0_PHY_ERR_DLN0_ERR_CONTENTION_LP0 0x00001000
0481 #define DSI_DLN0_PHY_ERR_DLN0_ERR_CONTENTION_LP1 0x00010000
0482
0483 #define REG_DSI_LP_TIMER_CTRL 0x000000b4
0484 #define DSI_LP_TIMER_CTRL_LP_RX_TO__MASK 0x0000ffff
0485 #define DSI_LP_TIMER_CTRL_LP_RX_TO__SHIFT 0
0486 static inline uint32_t DSI_LP_TIMER_CTRL_LP_RX_TO(uint32_t val)
0487 {
0488 return ((val) << DSI_LP_TIMER_CTRL_LP_RX_TO__SHIFT) & DSI_LP_TIMER_CTRL_LP_RX_TO__MASK;
0489 }
0490 #define DSI_LP_TIMER_CTRL_BTA_TO__MASK 0xffff0000
0491 #define DSI_LP_TIMER_CTRL_BTA_TO__SHIFT 16
0492 static inline uint32_t DSI_LP_TIMER_CTRL_BTA_TO(uint32_t val)
0493 {
0494 return ((val) << DSI_LP_TIMER_CTRL_BTA_TO__SHIFT) & DSI_LP_TIMER_CTRL_BTA_TO__MASK;
0495 }
0496
0497 #define REG_DSI_HS_TIMER_CTRL 0x000000b8
0498 #define DSI_HS_TIMER_CTRL_HS_TX_TO__MASK 0x0000ffff
0499 #define DSI_HS_TIMER_CTRL_HS_TX_TO__SHIFT 0
0500 static inline uint32_t DSI_HS_TIMER_CTRL_HS_TX_TO(uint32_t val)
0501 {
0502 return ((val) << DSI_HS_TIMER_CTRL_HS_TX_TO__SHIFT) & DSI_HS_TIMER_CTRL_HS_TX_TO__MASK;
0503 }
0504 #define DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__MASK 0x000f0000
0505 #define DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__SHIFT 16
0506 static inline uint32_t DSI_HS_TIMER_CTRL_TIMER_RESOLUTION(uint32_t val)
0507 {
0508 return ((val) << DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__SHIFT) & DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__MASK;
0509 }
0510 #define DSI_HS_TIMER_CTRL_HS_TX_TO_STOP_EN 0x10000000
0511
0512 #define REG_DSI_TIMEOUT_STATUS 0x000000bc
0513
0514 #define REG_DSI_CLKOUT_TIMING_CTRL 0x000000c0
0515 #define DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__MASK 0x0000003f
0516 #define DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__SHIFT 0
0517 static inline uint32_t DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE(uint32_t val)
0518 {
0519 return ((val) << DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__SHIFT) & DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__MASK;
0520 }
0521 #define DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__MASK 0x00003f00
0522 #define DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__SHIFT 8
0523 static inline uint32_t DSI_CLKOUT_TIMING_CTRL_T_CLK_POST(uint32_t val)
0524 {
0525 return ((val) << DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__SHIFT) & DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__MASK;
0526 }
0527
0528 #define REG_DSI_EOT_PACKET_CTRL 0x000000c8
0529 #define DSI_EOT_PACKET_CTRL_TX_EOT_APPEND 0x00000001
0530 #define DSI_EOT_PACKET_CTRL_RX_EOT_IGNORE 0x00000010
0531
0532 #define REG_DSI_LANE_STATUS 0x000000a4
0533 #define DSI_LANE_STATUS_DLN0_STOPSTATE 0x00000001
0534 #define DSI_LANE_STATUS_DLN1_STOPSTATE 0x00000002
0535 #define DSI_LANE_STATUS_DLN2_STOPSTATE 0x00000004
0536 #define DSI_LANE_STATUS_DLN3_STOPSTATE 0x00000008
0537 #define DSI_LANE_STATUS_CLKLN_STOPSTATE 0x00000010
0538 #define DSI_LANE_STATUS_DLN0_ULPS_ACTIVE_NOT 0x00000100
0539 #define DSI_LANE_STATUS_DLN1_ULPS_ACTIVE_NOT 0x00000200
0540 #define DSI_LANE_STATUS_DLN2_ULPS_ACTIVE_NOT 0x00000400
0541 #define DSI_LANE_STATUS_DLN3_ULPS_ACTIVE_NOT 0x00000800
0542 #define DSI_LANE_STATUS_CLKLN_ULPS_ACTIVE_NOT 0x00001000
0543 #define DSI_LANE_STATUS_DLN0_DIRECTION 0x00010000
0544
0545 #define REG_DSI_LANE_CTRL 0x000000a8
0546 #define DSI_LANE_CTRL_HS_REQ_SEL_PHY 0x01000000
0547 #define DSI_LANE_CTRL_CLKLN_HS_FORCE_REQUEST 0x10000000
0548
0549 #define REG_DSI_LANE_SWAP_CTRL 0x000000ac
0550 #define DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL__MASK 0x00000007
0551 #define DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL__SHIFT 0
0552 static inline uint32_t DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL(enum dsi_lane_swap val)
0553 {
0554 return ((val) << DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL__SHIFT) & DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL__MASK;
0555 }
0556
0557 #define REG_DSI_ERR_INT_MASK0 0x00000108
0558
0559 #define REG_DSI_INTR_CTRL 0x0000010c
0560
0561 #define REG_DSI_RESET 0x00000114
0562
0563 #define REG_DSI_CLK_CTRL 0x00000118
0564 #define DSI_CLK_CTRL_AHBS_HCLK_ON 0x00000001
0565 #define DSI_CLK_CTRL_AHBM_SCLK_ON 0x00000002
0566 #define DSI_CLK_CTRL_PCLK_ON 0x00000004
0567 #define DSI_CLK_CTRL_DSICLK_ON 0x00000008
0568 #define DSI_CLK_CTRL_BYTECLK_ON 0x00000010
0569 #define DSI_CLK_CTRL_ESCCLK_ON 0x00000020
0570 #define DSI_CLK_CTRL_FORCE_ON_DYN_AHBM_HCLK 0x00000200
0571
0572 #define REG_DSI_CLK_STATUS 0x0000011c
0573 #define DSI_CLK_STATUS_DSI_AON_AHBM_HCLK_ACTIVE 0x00000001
0574 #define DSI_CLK_STATUS_DSI_DYN_AHBM_HCLK_ACTIVE 0x00000002
0575 #define DSI_CLK_STATUS_DSI_AON_AHBS_HCLK_ACTIVE 0x00000004
0576 #define DSI_CLK_STATUS_DSI_DYN_AHBS_HCLK_ACTIVE 0x00000008
0577 #define DSI_CLK_STATUS_DSI_AON_DSICLK_ACTIVE 0x00000010
0578 #define DSI_CLK_STATUS_DSI_DYN_DSICLK_ACTIVE 0x00000020
0579 #define DSI_CLK_STATUS_DSI_AON_BYTECLK_ACTIVE 0x00000040
0580 #define DSI_CLK_STATUS_DSI_DYN_BYTECLK_ACTIVE 0x00000080
0581 #define DSI_CLK_STATUS_DSI_AON_ESCCLK_ACTIVE 0x00000100
0582 #define DSI_CLK_STATUS_DSI_AON_PCLK_ACTIVE 0x00000200
0583 #define DSI_CLK_STATUS_DSI_DYN_PCLK_ACTIVE 0x00000400
0584 #define DSI_CLK_STATUS_DSI_DYN_CMD_PCLK_ACTIVE 0x00001000
0585 #define DSI_CLK_STATUS_DSI_CMD_PCLK_ACTIVE 0x00002000
0586 #define DSI_CLK_STATUS_DSI_VID_PCLK_ACTIVE 0x00004000
0587 #define DSI_CLK_STATUS_DSI_CAM_BIST_PCLK_ACT 0x00008000
0588 #define DSI_CLK_STATUS_PLL_UNLOCKED 0x00010000
0589
0590 #define REG_DSI_PHY_RESET 0x00000128
0591 #define DSI_PHY_RESET_RESET 0x00000001
0592
0593 #define REG_DSI_TEST_PATTERN_GEN_VIDEO_INIT_VAL 0x00000160
0594
0595 #define REG_DSI_TPG_MAIN_CONTROL 0x00000198
0596 #define DSI_TPG_MAIN_CONTROL_CHECKERED_RECTANGLE_PATTERN 0x00000100
0597
0598 #define REG_DSI_TPG_VIDEO_CONFIG 0x000001a0
0599 #define DSI_TPG_VIDEO_CONFIG_BPP__MASK 0x00000003
0600 #define DSI_TPG_VIDEO_CONFIG_BPP__SHIFT 0
0601 static inline uint32_t DSI_TPG_VIDEO_CONFIG_BPP(enum video_config_bpp val)
0602 {
0603 return ((val) << DSI_TPG_VIDEO_CONFIG_BPP__SHIFT) & DSI_TPG_VIDEO_CONFIG_BPP__MASK;
0604 }
0605 #define DSI_TPG_VIDEO_CONFIG_RGB 0x00000004
0606
0607 #define REG_DSI_TEST_PATTERN_GEN_CTRL 0x00000158
0608 #define DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_PATTERN_SEL__MASK 0x00030000
0609 #define DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_PATTERN_SEL__SHIFT 16
0610 static inline uint32_t DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_PATTERN_SEL(enum cmd_dma_pattern_sel val)
0611 {
0612 return ((val) << DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_PATTERN_SEL__SHIFT) & DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_PATTERN_SEL__MASK;
0613 }
0614 #define DSI_TEST_PATTERN_GEN_CTRL_CMD_MDP_STREAM0_PATTERN_SEL__MASK 0x00000300
0615 #define DSI_TEST_PATTERN_GEN_CTRL_CMD_MDP_STREAM0_PATTERN_SEL__SHIFT 8
0616 static inline uint32_t DSI_TEST_PATTERN_GEN_CTRL_CMD_MDP_STREAM0_PATTERN_SEL(enum cmd_mdp_stream0_pattern_sel val)
0617 {
0618 return ((val) << DSI_TEST_PATTERN_GEN_CTRL_CMD_MDP_STREAM0_PATTERN_SEL__SHIFT) & DSI_TEST_PATTERN_GEN_CTRL_CMD_MDP_STREAM0_PATTERN_SEL__MASK;
0619 }
0620 #define DSI_TEST_PATTERN_GEN_CTRL_VIDEO_PATTERN_SEL__MASK 0x00000030
0621 #define DSI_TEST_PATTERN_GEN_CTRL_VIDEO_PATTERN_SEL__SHIFT 4
0622 static inline uint32_t DSI_TEST_PATTERN_GEN_CTRL_VIDEO_PATTERN_SEL(enum video_pattern_sel val)
0623 {
0624 return ((val) << DSI_TEST_PATTERN_GEN_CTRL_VIDEO_PATTERN_SEL__SHIFT) & DSI_TEST_PATTERN_GEN_CTRL_VIDEO_PATTERN_SEL__MASK;
0625 }
0626 #define DSI_TEST_PATTERN_GEN_CTRL_TPG_DMA_FIFO_MODE 0x00000004
0627 #define DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_TPG_EN 0x00000002
0628 #define DSI_TEST_PATTERN_GEN_CTRL_EN 0x00000001
0629
0630 #define REG_DSI_TEST_PATTERN_GEN_CMD_MDP_INIT_VAL0 0x00000168
0631
0632 #define REG_DSI_TEST_PATTERN_GEN_CMD_STREAM0_TRIGGER 0x00000180
0633 #define DSI_TEST_PATTERN_GEN_CMD_STREAM0_TRIGGER_SW_TRIGGER 0x00000001
0634
0635 #define REG_DSI_TPG_MAIN_CONTROL2 0x0000019c
0636 #define DSI_TPG_MAIN_CONTROL2_CMD_MDP0_CHECKERED_RECTANGLE_PATTERN 0x00000080
0637 #define DSI_TPG_MAIN_CONTROL2_CMD_MDP1_CHECKERED_RECTANGLE_PATTERN 0x00010000
0638 #define DSI_TPG_MAIN_CONTROL2_CMD_MDP2_CHECKERED_RECTANGLE_PATTERN 0x02000000
0639
0640 #define REG_DSI_T_CLK_PRE_EXTEND 0x0000017c
0641 #define DSI_T_CLK_PRE_EXTEND_INC_BY_2_BYTECLK 0x00000001
0642
0643 #define REG_DSI_CMD_MODE_MDP_CTRL2 0x000001b4
0644 #define DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__MASK 0x0000000f
0645 #define DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__SHIFT 0
0646 static inline uint32_t DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2(enum dsi_cmd_dst_format val)
0647 {
0648 return ((val) << DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__SHIFT) & DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__MASK;
0649 }
0650 #define DSI_CMD_MODE_MDP_CTRL2_R_SEL 0x00000010
0651 #define DSI_CMD_MODE_MDP_CTRL2_G_SEL 0x00000020
0652 #define DSI_CMD_MODE_MDP_CTRL2_B_SEL 0x00000040
0653 #define DSI_CMD_MODE_MDP_CTRL2_BYTE_MSB_LSB_FLIP 0x00000080
0654 #define DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__MASK 0x00000700
0655 #define DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__SHIFT 8
0656 static inline uint32_t DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP(enum dsi_rgb_swap val)
0657 {
0658 return ((val) << DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__SHIFT) & DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__MASK;
0659 }
0660 #define DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__MASK 0x00007000
0661 #define DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__SHIFT 12
0662 static inline uint32_t DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP(enum dsi_rgb_swap val)
0663 {
0664 return ((val) << DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__SHIFT) & DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__MASK;
0665 }
0666 #define DSI_CMD_MODE_MDP_CTRL2_BURST_MODE 0x00010000
0667
0668 #define REG_DSI_CMD_MODE_MDP_STREAM2_CTRL 0x000001b8
0669 #define DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__MASK 0x0000003f
0670 #define DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__SHIFT 0
0671 static inline uint32_t DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE(uint32_t val)
0672 {
0673 return ((val) << DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__SHIFT) & DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__MASK;
0674 }
0675 #define DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__MASK 0x00000300
0676 #define DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__SHIFT 8
0677 static inline uint32_t DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL(uint32_t val)
0678 {
0679 return ((val) << DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__SHIFT) & DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__MASK;
0680 }
0681 #define DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__MASK 0xffff0000
0682 #define DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__SHIFT 16
0683 static inline uint32_t DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT(uint32_t val)
0684 {
0685 return ((val) << DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__SHIFT) & DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__MASK;
0686 }
0687
0688 #define REG_DSI_RDBK_DATA_CTRL 0x000001d0
0689 #define DSI_RDBK_DATA_CTRL_COUNT__MASK 0x00ff0000
0690 #define DSI_RDBK_DATA_CTRL_COUNT__SHIFT 16
0691 static inline uint32_t DSI_RDBK_DATA_CTRL_COUNT(uint32_t val)
0692 {
0693 return ((val) << DSI_RDBK_DATA_CTRL_COUNT__SHIFT) & DSI_RDBK_DATA_CTRL_COUNT__MASK;
0694 }
0695 #define DSI_RDBK_DATA_CTRL_CLR 0x00000001
0696
0697 #define REG_DSI_VERSION 0x000001f0
0698 #define DSI_VERSION_MAJOR__MASK 0xff000000
0699 #define DSI_VERSION_MAJOR__SHIFT 24
0700 static inline uint32_t DSI_VERSION_MAJOR(uint32_t val)
0701 {
0702 return ((val) << DSI_VERSION_MAJOR__SHIFT) & DSI_VERSION_MAJOR__MASK;
0703 }
0704
0705 #define REG_DSI_CPHY_MODE_CTRL 0x000002d4
0706
0707 #define REG_DSI_VIDEO_COMPRESSION_MODE_CTRL 0x0000029c
0708 #define DSI_VIDEO_COMPRESSION_MODE_CTRL_WC__MASK 0xffff0000
0709 #define DSI_VIDEO_COMPRESSION_MODE_CTRL_WC__SHIFT 16
0710 static inline uint32_t DSI_VIDEO_COMPRESSION_MODE_CTRL_WC(uint32_t val)
0711 {
0712 return ((val) << DSI_VIDEO_COMPRESSION_MODE_CTRL_WC__SHIFT) & DSI_VIDEO_COMPRESSION_MODE_CTRL_WC__MASK;
0713 }
0714 #define DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE__MASK 0x00003f00
0715 #define DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE__SHIFT 8
0716 static inline uint32_t DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE(uint32_t val)
0717 {
0718 return ((val) << DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE__SHIFT) & DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE__MASK;
0719 }
0720 #define DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE__MASK 0x000000c0
0721 #define DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE__SHIFT 6
0722 static inline uint32_t DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE(uint32_t val)
0723 {
0724 return ((val) << DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE__SHIFT) & DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE__MASK;
0725 }
0726 #define DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM__MASK 0x00000030
0727 #define DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM__SHIFT 4
0728 static inline uint32_t DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM(uint32_t val)
0729 {
0730 return ((val) << DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM__SHIFT) & DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM__MASK;
0731 }
0732 #define DSI_VIDEO_COMPRESSION_MODE_CTRL_EN 0x00000001
0733
0734 #define REG_DSI_COMMAND_COMPRESSION_MODE_CTRL 0x000002a4
0735 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_DATATYPE__MASK 0x3f000000
0736 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_DATATYPE__SHIFT 24
0737 static inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_DATATYPE(uint32_t val)
0738 {
0739 return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_DATATYPE__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_DATATYPE__MASK;
0740 }
0741 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_PKT_PER_LINE__MASK 0x00c00000
0742 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_PKT_PER_LINE__SHIFT 22
0743 static inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_PKT_PER_LINE(uint32_t val)
0744 {
0745 return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_PKT_PER_LINE__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_PKT_PER_LINE__MASK;
0746 }
0747 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EOL_BYTE_NUM__MASK 0x00300000
0748 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EOL_BYTE_NUM__SHIFT 20
0749 static inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EOL_BYTE_NUM(uint32_t val)
0750 {
0751 return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EOL_BYTE_NUM__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EOL_BYTE_NUM__MASK;
0752 }
0753 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EN 0x00010000
0754 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE__MASK 0x00003f00
0755 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE__SHIFT 8
0756 static inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE(uint32_t val)
0757 {
0758 return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE__MASK;
0759 }
0760 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_PKT_PER_LINE__MASK 0x000000c0
0761 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_PKT_PER_LINE__SHIFT 6
0762 static inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_PKT_PER_LINE(uint32_t val)
0763 {
0764 return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_PKT_PER_LINE__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_PKT_PER_LINE__MASK;
0765 }
0766 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EOL_BYTE_NUM__MASK 0x00000030
0767 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EOL_BYTE_NUM__SHIFT 4
0768 static inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EOL_BYTE_NUM(uint32_t val)
0769 {
0770 return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EOL_BYTE_NUM__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EOL_BYTE_NUM__MASK;
0771 }
0772 #define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EN 0x00000001
0773
0774 #define REG_DSI_COMMAND_COMPRESSION_MODE_CTRL2 0x000002a8
0775 #define DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM1_SLICE_WIDTH__MASK 0xffff0000
0776 #define DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM1_SLICE_WIDTH__SHIFT 16
0777 static inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM1_SLICE_WIDTH(uint32_t val)
0778 {
0779 return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM1_SLICE_WIDTH__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM1_SLICE_WIDTH__MASK;
0780 }
0781 #define DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH__MASK 0x0000ffff
0782 #define DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH__SHIFT 0
0783 static inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH(uint32_t val)
0784 {
0785 return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH__MASK;
0786 }
0787
0788 #endif