hc
2024-08-09 3d911568f3069a842249d4de3843d281d5af84d6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
/* SPDX-License-Identifier: GPL-2.0+
 *
 * Copyright (c) 2016 Linaro Limited.
 * Copyright (c) 2014-2016 Hisilicon Limited.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 */
#ifndef __KIRIN_DPE_REG_H__
#define __KIRIN_DPE_REG_H__
 
#define BIT_MMU_IRPT_NS                  BIT(28)
#define BIT_ITF0_INTS                    BIT(16)
#define BIT_DPP_INTS                     BIT(15)
#define BIT_VACTIVE0_END                 BIT(8)
#define BIT_VACTIVE0_START               BIT(7)
#define BIT_VSYNC                        BIT(4)
#define BIT_LDI_UNFLOW                   BIT(2)
 
#define DFS_TIME                         (80)
#define DFS_TIME_MIN                     (50)
#define DFS_TIME_MIN_4K                  (10)
#define DBUF0_DEPTH                      (1408)
#define DBUF_WIDTH_BIT                   (144)
#define PERRSTDIS3                       (0x088)
 
#define DPE_GLB0_OFFSET                  (0x12000)
#define DPE_DBG_OFFSET                   (0x11000)
#define DPE_CMDLIST_OFFSET               (0x02000)
#define DPE_SMMU_OFFSET                  (0x08000)
#define DPE_MIF_OFFSET                   (0x0A000)
#define DPE_MCTRL_SYS_OFFSET             (0x10000)
#define DPE_MCTRL_CTL0_OFFSET            (0x10800)
#define DPE_RCH_VG0_DMA_OFFSET           (0x20000)
#define DPE_RCH_VG0_SCL_OFFSET           (0x20200)
#define DPE_RCH_VG0_ARSR_OFFSET          (0x20300)
#define DPE_RCH_VG1_DMA_OFFSET           (0x28000)
#define DPE_RCH_VG1_SCL_OFFSET           (0x28200)
#define DPE_RCH_VG2_DMA_OFFSET           (0x30000)
#define DPE_RCH_VG2_SCL_OFFSET           (0x30200)
#define DPE_RCH_G0_DMA_OFFSET            (0x38000)
#define DPE_RCH_G0_SCL_OFFSET            (0x38200)
#define DPE_RCH_G1_DMA_OFFSET            (0x40000)
#define DPE_RCH_G1_SCL_OFFSET            (0x40200)
#define DPE_RCH_D2_DMA_OFFSET            (0x50000)
#define DPE_RCH_D3_DMA_OFFSET            (0x51000)
#define DPE_RCH_D0_DMA_OFFSET            (0x52000)
#define DPE_RCH_D0_DFC_OFFSET            (0x52100)
#define DPE_RCH_D1_DMA_OFFSET            (0x53000)
#define DPE_WCH0_DMA_OFFSET              (0x5A000)
#define DPE_WCH1_DMA_OFFSET              (0x5C000)
#define DPE_WCH2_DMA_OFFSET              (0x5E000)
#define DPE_WCH2_DFC_OFFSET              (0x5E100)
#define DPE_OVL0_OFFSET                  (0x60000)
#define DPE_DBUF0_OFFSET                 (0x6D000)
#define DPE_DPP_OFFSET                   (0x70000)
#define DPE_DPP_DITHER_OFFSET            (0x70200)
#define DPE_LDI0_OFFSET                  (0x7D000)
#define DPE_IFBC_OFFSET                  (0x7D800)
#define DPE_DSC_OFFSET                   (0x7DC00)
 
#define GLB_CPU_PDP_INTS                 (DPE_GLB0_OFFSET + 0x224)
#define GLB_CPU_PDP_INT_MSK              (DPE_GLB0_OFFSET + 0x228)
#define GLB_CPU_SDP_INTS                 (DPE_GLB0_OFFSET + 0x22C)
#define GLB_CPU_SDP_INT_MSK              (DPE_GLB0_OFFSET + 0x230)
 
#define DBG_MCTL_INTS                    (0x023C)
#define DBG_MCTL_INT_MSK                 (0x0240)
#define DBG_WCH0_INTS                    (0x0244)
#define DBG_WCH0_INT_MSK                 (0x0248)
#define DBG_WCH1_INTS                    (0x024C)
#define DBG_WCH1_INT_MSK                 (0x0250)
#define DBG_RCH0_INTS                    (0x0254)
#define DBG_RCH0_INT_MSK                 (0x0258)
#define DBG_RCH1_INTS                    (0x025C)
#define DBG_RCH1_INT_MSK                 (0x0260)
#define DBG_RCH2_INTS                    (0x0264)
#define DBG_RCH2_INT_MSK                 (0x0268)
#define DBG_RCH3_INTS                    (0x026C)
#define DBG_RCH3_INT_MSK                 (0x0270)
#define DBG_RCH4_INTS                    (0x0274)
#define DBG_RCH4_INT_MSK                 (0x0278)
#define DBG_RCH5_INTS                    (0x027C)
#define DBG_RCH5_INT_MSK                 (0x0280)
#define DBG_RCH6_INTS                    (0x0284)
#define DBG_RCH6_INT_MSK                 (0x0288)
#define DBG_RCH7_INTS                    (0x028C)
#define DBG_RCH7_INT_MSK                 (0x0290)
#define DBG_DPE_GLB_INTS                 (0x0294)
#define DBG_DPE_GLB_INT_MSK              (0x0298)
 
#define AIF0_CH0_OFFSET                  (0x7000)
#define AIF0_CH0_ADD_OFFSET              (0x7004)
 
#define MIF_ENABLE                       (0x0000)
#define MIF_MEM_CTRL                     (0x0004)
#define MIF_CTRL0                        (0x0000)
#define MIF_CTRL1                        (0x0004)
#define MIF_CTRL2                        (0x0008)
#define MIF_CTRL3                        (0x000C)
#define MIF_CTRL4                        (0x0010)
#define MIF_CTRL5                        (0x0014)
#define MIF_CTRL_OFFSET                  (0x0020)
#define MIF_CH0_OFFSET                   (DPE_MIF_OFFSET + MIF_CTRL_OFFSET * 1)
 
#define SMMU_SCR                         (0x0000)
#define SMMU_MEMCTRL                     (0x0004)
#define SMMU_LP_CTRL                     (0x0008)
#define SMMU_INTMASK_NS                  (0x0010)
#define SMMU_INTRAW_NS                   (0x0014)
#define SMMU_INTSTAT_NS                  (0x0018)
#define SMMU_INTCLR_NS                   (0x001C)
#define SMMU_SMRx_NS                     (0x0020)
 
#define DMA_OFT_X0                       (0x0000)
#define DMA_OFT_Y0                       (0x0004)
#define DMA_OFT_X1                       (0x0008)
#define DMA_OFT_Y1                       (0x000C)
#define DMA_MASK0                        (0x0010)
#define DMA_MASK1                        (0x0014)
#define DMA_STRETCH_SIZE_VRT             (0x0018)
#define DMA_CTRL                         (0x001C)
#define DMA_TILE_SCRAM                   (0x0020)
#define DMA_PULSE                        (0x0028)
#define DMA_CORE_GT                      (0x002C)
#define DMA_DATA_ADDR0                   (0x0060)
#define DMA_STRIDE0                      (0x0064)
#define DMA_STRETCH_STRIDE0              (0x0068)
#define DMA_DATA_NUM0                    (0x006C)
#define DMA_CH_CTL                       (0x00D4)
#define DMA_CH_REG_DEFAULT               (0x0A00)
#define DMA_ALIGN_BYTES                  (128 / BITS_PER_BYTE)
#define DMA_ADDR_ALIGN                   (128 / BITS_PER_BYTE)
#define DMA_STRIDE_ALIGN                 (128 / BITS_PER_BYTE)
 
#define DFC_DISP_SIZE                    (0x0000)
#define DFC_PIX_IN_NUM                   (0x0004)
#define DFC_GLB_ALPHA                    (0x0008)
#define DFC_DISP_FMT                     (0x000C)
#define DFC_CLIP_CTL_HRZ                 (0x0010)
#define DFC_CLIP_CTL_VRZ                 (0x0014)
#define DFC_CTL_CLIP_EN                  (0x0018)
#define DFC_ICG_MODULE                   (0x001C)
#define DFC_DITHER_ENABLE                (0x0020)
#define DFC_PADDING_CTL                  (0x0024)
 
#define MCTL_CTL_EN                      (0x0000)
#define MCTL_CTL_MUTEX                   (0x0004)
#define MCTL_CTL_MUTEX_STATUS            (0x0008)
#define MCTL_CTL_MUTEX_ITF               (0x000C)
#define MCTL_CTL_MUTEX_DBUF              (0x0010)
#define MCTL_CTL_MUTEX_SCF               (0x0014)
#define MCTL_CTL_MUTEX_OV                (0x0018)
#define MCTL_CTL_MUTEX_WCH0              (0x0020)
#define MCTL_CTL_MUTEX_RCH0              (0x0030)
#define MCTL_CTL_TOP                     (0x0050)
#define MCTL_CTL_DBG                     (0x00E0)
#define MCTL_RCH0_FLUSH_EN               (0x0100)
#define MCTL_OV0_FLUSH_EN                (0x0128)
#define MCTL_RCH0_OV_OEN                 (0x0160)
#define MCTL_RCH_OV0_SEL                 (0x0180)
 
#define OVL_SIZE                         (0x0000)
#define OVL_BG_COLOR                     (0x0004)
#define OVL_DST_STARTPOS                 (0x0008)
#define OVL_DST_ENDPOS                   (0x000C)
#define OVL_GCFG                         (0x0010)
#define OVL_LAYER0_POS                   (0x0014)
#define OVL_LAYER0_SIZE                  (0x0018)
#define OVL_LAYER0_ALPHA                 (0x0030)
#define OVL_LAYER0_CFG                   (0x0034)
#define OVL6_REG_DEFAULT                 (0x01A8)
 
#define DBUF_FRM_SIZE                    (0x0000)
#define DBUF_FRM_HSIZE                   (0x0004)
#define DBUF_SRAM_VALID_NUM              (0x0008)
#define DBUF_WBE_EN                      (0x000C)
#define DBUF_THD_FILL_LEV0               (0x0010)
#define DBUF_DFS_FILL_LEV1               (0x0014)
#define DBUF_THD_RQOS                    (0x0018)
#define DBUF_THD_WQOS                    (0x001C)
#define DBUF_THD_CG                      (0x0020)
#define DBUF_THD_OTHER                   (0x0024)
#define DBUF_ONLINE_FILL_LEVEL           (0x003C)
#define DBUF_WB_FILL_LEVEL               (0x0040)
#define DBUF_DFS_STATUS                  (0x0044)
#define DBUF_THD_FLUX_REQ_BEF            (0x0048)
#define DBUF_DFS_LP_CTRL                 (0x004C)
#define DBUF_RD_SHADOW_SEL               (0x0050)
#define DBUF_MEM_CTRL                    (0x0054)
#define DBUF_THD_FLUX_REQ_AFT            (0x0064)
#define DBUF_THD_DFS_OK                  (0x0068)
#define DBUF_FLUX_REQ_CTRL               (0x006C)
#define DBUF_REG_DEFAULT                 (0x00A4)
 
#define DPP_IMG_SIZE_BEF_SR              (0x000C)
#define DPP_IMG_SIZE_AFT_SR              (0x0010)
#define DPP_INTS                         (0x0040)
#define DPP_INT_MSK                      (0x0044)
 
#define SCF_COEF_MEM_CTRL                (0x0018)
#define IFBC_MEM_CTRL                    (0x001C)
#define DITHER_MEM_CTRL                  (0x002C)
#define DSC_MEM_CTRL                     (0x0084)
#define ARSR2P_LB_MEM_CTRL               (0x0084)
#define SCF_LB_MEM_CTRL                  (0x0090)
#define ROT_MEM_CTRL                     (0x0538)
#define VPP_MEM_CTRL                     (0x0704)
#define CMD_MEM_CTRL                     (0x073C)
#define DMA_BUF_MEM_CTRL                 (0x0854)
#define AFBCD_MEM_CTRL                   (0x093C)
#define AFBCE_MEM_CTRL                   (0x0924)
 
#define LDI_DPI0_HRZ_CTRL0               (0x0000)
#define LDI_DPI0_HRZ_CTRL1               (0x0004)
#define LDI_DPI0_HRZ_CTRL2               (0x0008)
#define LDI_VRT_CTRL0                    (0x000C)
#define LDI_VRT_CTRL1                    (0x0010)
#define LDI_VRT_CTRL2                    (0x0014)
#define LDI_PLR_CTRL                     (0x0018)
#define LDI_CTRL                         (0x0024)
#define LDI_WORK_MODE                    (0x0028)
#define LDI_DSI_CMD_MOD_CTRL             (0x0030)
#define LDI_VINACT_MSK_LEN               (0x0050)
#define LDI_CMD_EVENT_SEL                (0x0060)
#define LDI_MEM_CTRL                     (0x0100)
#define LDI_PXL0_DIV2_GT_EN              (0x0210)
#define LDI_PXL0_DIV4_GT_EN              (0x0214)
#define LDI_PXL0_GT_EN                   (0x0218)
#define LDI_PXL0_DSI_GT_EN               (0x021C)
#define LDI_PXL0_DIVXCFG                 (0x0220)
#define LDI_VESA_CLK_SEL                 (0x0228)
#define LDI_CPU_ITF_INTS                 (0x0248)
#define LDI_CPU_ITF_INT_MSK              (0x024C)
 
#define MIPIDSI_VERSION_OFFSET           (0x0000)
#define MIPIDSI_PWR_UP_OFFSET            (0x0004)
#define MIPIDSI_CLKMGR_CFG_OFFSET        (0x0008)
#define MIPIDSI_DPI_VCID_OFFSET          (0x000c)
#define MIPIDSI_DPI_COLOR_CODING_OFFSET  (0x0010)
#define MIPIDSI_DPI_CFG_POL_OFFSET       (0x0014)
#define MIPIDSI_DPI_LP_CMD_TIM_OFFSET    (0x0018)
#define MIPIDSI_PCKHDL_CFG_OFFSET        (0x002c)
#define MIPIDSI_GEN_VCID_OFFSET          (0x0030)
#define MIPIDSI_MODE_CFG_OFFSET          (0x0034)
#define MIPIDSI_VID_MODE_CFG_OFFSET      (0x0038)
#define MIPIDSI_VID_PKT_SIZE_OFFSET      (0x003c)
#define MIPIDSI_VID_NUM_CHUNKS_OFFSET    (0x0040)
#define MIPIDSI_VID_NULL_SIZE_OFFSET     (0x0044)
#define MIPIDSI_VID_HSA_TIME_OFFSET      (0x0048)
#define MIPIDSI_VID_HBP_TIME_OFFSET      (0x004c)
#define MIPIDSI_VID_HLINE_TIME_OFFSET    (0x0050)
#define MIPIDSI_VID_VSA_LINES_OFFSET     (0x0054)
#define MIPIDSI_VID_VBP_LINES_OFFSET     (0x0058)
#define MIPIDSI_VID_VFP_LINES_OFFSET     (0x005c)
#define MIPIDSI_VID_VACTIVE_LINES_OFFSET (0x0060)
#define MIPIDSI_EDPI_CMD_SIZE_OFFSET     (0x0064)
#define MIPIDSI_CMD_MODE_CFG_OFFSET      (0x0068)
#define MIPIDSI_GEN_HDR_OFFSET           (0x006c)
#define MIPIDSI_GEN_PLD_DATA_OFFSET      (0x0070)
#define MIPIDSI_CMD_PKT_STATUS_OFFSET    (0x0074)
#define MIPIDSI_TO_CNT_CFG_OFFSET        (0x0078)
#define MIPIDSI_BTA_TO_CNT_OFFSET        (0x008C)
#define MIPIDSI_SDF_3D_OFFSET            (0x0090)
#define MIPIDSI_LPCLK_CTRL_OFFSET        (0x0094)
#define MIPIDSI_PHY_TMR_LPCLK_CFG_OFFSET (0x0098)
#define MIPIDSI_PHY_TMR_CFG_OFFSET       (0x009c)
#define MIPIDSI_PHY_RSTZ_OFFSET          (0x00a0)
#define MIPIDSI_PHY_IF_CFG_OFFSET        (0x00a4)
#define MIPIDSI_PHY_ULPS_CTRL_OFFSET     (0x00a8)
#define MIPIDSI_PHY_TX_TRIGGERS_OFFSET   (0x00ac)
#define MIPIDSI_PHY_STATUS_OFFSET        (0x00b0)
#define MIPIDSI_PHY_TST_CTRL0_OFFSET     (0x00b4)
#define MIPIDSI_PHY_TST_CTRL1_OFFSET     (0x00b8)
#define MIPIDSI_PHY_TMR_RD_CFG_OFFSET    (0x00f4)
 
enum XRES_DIV {
   XRES_DIV_1 = 1,
   XRES_DIV_2,
};
 
enum YRES_DIV {
   YRES_DIV_1 = 1,
   YRES_DIV_2,
};
 
enum PXL0_DIVCFG {
   PXL0_DIVCFG_0 = 0,
   PXL0_DIVCFG_1,
};
 
enum PXL0_DIV2_GT_EN {
   PXL0_DIV2_GT_EN_CLOSE = 0,
   PXL0_DIV2_GT_EN_OPEN,
};
 
enum PXL0_DIV4_GT_EN {
   PXL0_DIV4_GT_EN_CLOSE = 0,
   PXL0_DIV4_GT_EN_OPEN,
};
 
enum PXL0_DSI_GT_EN {
   PXL0_DSI_GT_EN_0 = 0,
   PXL0_DSI_GT_EN_1,
};
 
enum lcd_format {
   LCD_RGB888 = 0,
   LCD_RGB101010,
   LCD_RGB565,
};
 
enum lcd_rgb_order {
   LCD_RGB = 0,
   LCD_BGR,
};
 
enum dpe_dfc_format {
   DFC_PIXEL_FORMAT_RGB_565 = 0,
   DFC_PIXEL_FORMAT_XRGB_4444,
   DFC_PIXEL_FORMAT_ARGB_4444,
   DFC_PIXEL_FORMAT_XRGB_5551,
   DFC_PIXEL_FORMAT_ARGB_5551,
   DFC_PIXEL_FORMAT_XRGB_8888,
   DFC_PIXEL_FORMAT_ARGB_8888,
   DFC_PIXEL_FORMAT_BGR_565,
   DFC_PIXEL_FORMAT_XBGR_4444,
   DFC_PIXEL_FORMAT_ABGR_4444,
   DFC_PIXEL_FORMAT_XBGR_5551,
   DFC_PIXEL_FORMAT_ABGR_5551,
   DFC_PIXEL_FORMAT_XBGR_8888,
   DFC_PIXEL_FORMAT_ABGR_8888,
   DFC_PIXEL_FORMAT_YUV444,
   DFC_PIXEL_FORMAT_YVU444,
   DFC_PIXEL_FORMAT_YUYV422,
   DFC_PIXEL_FORMAT_YVYU422,
   DFC_PIXEL_FORMAT_VYUY422,
   DFC_PIXEL_FORMAT_UYVY422,
};
 
enum dpe_dma_format {
   DMA_PIXEL_FORMAT_RGB_565 = 0,
   DMA_PIXEL_FORMAT_ARGB_4444,
   DMA_PIXEL_FORMAT_XRGB_4444,
   DMA_PIXEL_FORMAT_ARGB_5551,
   DMA_PIXEL_FORMAT_XRGB_5551,
   DMA_PIXEL_FORMAT_ARGB_8888,
   DMA_PIXEL_FORMAT_XRGB_8888,
   DMA_PIXEL_FORMAT_RESERVED0,
   DMA_PIXEL_FORMAT_YUYV_422_Pkg,
   DMA_PIXEL_FORMAT_YUV_420_SP_HP,
   DMA_PIXEL_FORMAT_YUV_420_P_HP,
   DMA_PIXEL_FORMAT_YUV_422_SP_HP,
   DMA_PIXEL_FORMAT_YUV_422_P_HP,
   DMA_PIXEL_FORMAT_AYUV_4444,
};
 
enum dpe_fb_format {
   DPE_RGB_565 = 0,
   DPE_RGBX_4444,
   DPE_RGBA_4444,
   DPE_RGBX_5551,
   DPE_RGBA_5551,
   DPE_RGBX_8888,
   DPE_RGBA_8888,
   DPE_BGR_565,
   DPE_BGRX_4444,
   DPE_BGRA_4444,
   DPE_BGRX_5551,
   DPE_BGRA_5551,
   DPE_BGRX_8888,
   DPE_BGRA_8888,
   DPE_YUV_422_I,
   /* YUV Semi-planar */
   DPE_YCbCr_422_SP,
   DPE_YCrCb_422_SP,
   DPE_YCbCr_420_SP,
   DPE_YCrCb_420_SP,
   /* YUV Planar */
   DPE_YCbCr_422_P,
   DPE_YCrCb_422_P,
   DPE_YCbCr_420_P,
   DPE_YCrCb_420_P,
   /* YUV Package */
   DPE_YUYV_422_Pkg,
   DPE_UYVY_422_Pkg,
   DPE_YVYU_422_Pkg,
   DPE_VYUY_422_Pkg,
};
 
#endif