hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
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
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd. */
 
#ifndef _RKISPP_REGS_H
#define _RKISPP_REGS_H
 
/* registers */
#define RKISPP_CTRL            0x0000
#define RKISPP_CTRL_STRT        (RKISPP_CTRL + 0x0000)
#define RKISPP_CTRL_UPDATE        (RKISPP_CTRL + 0x0004)
#define RKISPP_CTRL_QUICK        (RKISPP_CTRL + 0x0008)
#define RKISPP_CTRL_RESET        (RKISPP_CTRL + 0x000C)
#define RKISPP_CTRL_CLKGATE        (RKISPP_CTRL + 0x0010)
#define RKISPP_CTRL_SIZE        (RKISPP_CTRL + 0x0014)
#define RKISPP_CTRL_TNR_SIZE        (RKISPP_CTRL + 0x0018)
#define RKISPP_CTRL_IP_VERSION        (RKISPP_CTRL + 0x001C)
#define RKISPP_CTRL_INT_MSK        (RKISPP_CTRL + 0x0020)
#define RKISPP_CTRL_INT_RAW_STA        (RKISPP_CTRL + 0x0024)
#define RKISPP_CTRL_INT_STA        (RKISPP_CTRL + 0x0028)
#define RKISPP_CTRL_INT_SET        (RKISPP_CTRL + 0x002C)
#define RKISPP_CTRL_INT_CLR        (RKISPP_CTRL + 0x0030)
#define RKISPP_QUICK_DIF        (RKISPP_CTRL + 0x0034)
#define RKISPP_CTRL_SYS_STATUS        (RKISPP_CTRL + 0x003C)
#define RKISPP_CTRL_QUICK_FRM_NUM    (RKISPP_CTRL + 0x0040)
#define RKISPP_CTRL_SYS_CTL_STA0    (RKISPP_CTRL + 0x0054)
#define RKISPP_CTRL_SYS_CTL_STA1    (RKISPP_CTRL + 0x0058)
#define RKISPP_CTRL_SYS_CTL_STA2    (RKISPP_CTRL + 0x005C)
#define RKISPP_CTRL_SYS_FRM_CNT0    (RKISPP_CTRL + 0x0060)
#define RKISPP_CTRL_SYS_FRM_CNT1    (RKISPP_CTRL + 0x0064)
 
#define    RKISPP_TNR            0x0200
#define RKISPP_TNR_CTRL            (RKISPP_TNR + 0x0000)
#define RKISPP_TNR_CUR_VIR_STRIDE    (RKISPP_TNR + 0x0004)
#define RKISPP_TNR_CUR_Y_BASE        (RKISPP_TNR + 0x0008)
#define RKISPP_TNR_CUR_UV_BASE        (RKISPP_TNR + 0x000C)
#define RKISPP_TNR_IIR_VIR_STRIDE    (RKISPP_TNR + 0x0010)
#define RKISPP_TNR_IIR_Y_BASE        (RKISPP_TNR + 0x0014)
#define RKISPP_TNR_IIR_UV_BASE        (RKISPP_TNR + 0x0018)
#define RKISPP_TNR_NXT_VIR_STRIDE    (RKISPP_TNR + 0x001C)
#define RKISPP_TNR_NXT_Y_BASE        (RKISPP_TNR + 0x0020)
#define RKISPP_TNR_NXT_UV_BASE        (RKISPP_TNR + 0x0024)
#define RKISPP_TNR_GAIN_CUR_VIR_STRIDE    (RKISPP_TNR + 0x0028)
#define RKISPP_TNR_GAIN_CUR_Y_BASE    (RKISPP_TNR + 0x002C)
#define RKISPP_TNR_GAIN_NXT_VIR_STRIDE    (RKISPP_TNR + 0x0030)
#define RKISPP_TNR_GAIN_NXT_Y_BASE    (RKISPP_TNR + 0x0034)
#define RKISPP_TNR_GAIN_KG_VIR_STRIDE    (RKISPP_TNR + 0x0038)
#define RKISPP_TNR_GAIN_KG_Y_BASE    (RKISPP_TNR + 0x003C)
#define RKISPP_TNR_WR_VIR_STRIDE    (RKISPP_TNR + 0x0040)
#define RKISPP_TNR_WR_Y_BASE        (RKISPP_TNR + 0x0044)
#define RKISPP_TNR_WR_UV_BASE        (RKISPP_TNR + 0x0048)
#define RKISPP_TNR_GAIN_WR_VIR_STRIDE    (RKISPP_TNR + 0x004C)
#define RKISPP_TNR_GAIN_WR_Y_BASE    (RKISPP_TNR + 0x0050)
#define RKISPP_TNR_CUR_Y_BASE_SHD    (RKISPP_TNR + 0x0054)
#define RKISPP_TNR_CUR_UV_BASE_SHD    (RKISPP_TNR + 0x0058)
#define RKISPP_TNR_IIR_Y_BASE_SHD    (RKISPP_TNR + 0x005C)
#define RKISPP_TNR_IIR_UV_BASE_SHD    (RKISPP_TNR + 0x0060)
#define RKISPP_TNR_NXT_Y_BASE_SHD    (RKISPP_TNR + 0x0064)
#define RKISPP_TNR_NXT_UV_BASE_SHD    (RKISPP_TNR + 0x0068)
#define RKISPP_TNR_GAIN_CUR_Y_BASE_SHD    (RKISPP_TNR + 0x006C)
#define RKISPP_TNR_GAIN_NXT_Y_BASE_SHD    (RKISPP_TNR + 0x0070)
#define RKISPP_TNR_WR_Y_BASE_SHD    (RKISPP_TNR + 0x0074)
#define RKISPP_TNR_WR_UV_BASE_SHD    (RKISPP_TNR + 0x0078)
#define RKISPP_TNR_GAIN_WR_Y_BASE_SHD    (RKISPP_TNR + 0x007C)
#define RKISPP_TNR_CORE_CTRL        (RKISPP_TNR + 0x0080)
#define RKISPP_TNR_CORE_PK0        (RKISPP_TNR + 0x0088)
#define RKISPP_TNR_CORE_GLB_GAIN    (RKISPP_TNR + 0x008C)
#define RKISPP_TNR_CORE_GLB_GAIN_DIV    (RKISPP_TNR + 0x0090)
#define RKISPP_TNR_CORE_SIG_X18        (RKISPP_TNR + 0x0094)
#define RKISPP_TNR_CORE_SIG_X910    (RKISPP_TNR + 0x0098)
#define RKISPP_TNR_CORE_SIG_Y01        (RKISPP_TNR + 0x009C)
#define RKISPP_TNR_CORE_SIG_Y23        (RKISPP_TNR + 0x00A0)
#define RKISPP_TNR_CORE_SIG_Y45        (RKISPP_TNR + 0x00A4)
#define RKISPP_TNR_CORE_SIG_Y67        (RKISPP_TNR + 0x00A8)
#define RKISPP_TNR_CORE_SIG_Y89        (RKISPP_TNR + 0x00AC)
#define RKISPP_TNR_CORE_SIG_YAB        (RKISPP_TNR + 0x00B0)
#define RKISPP_TNR_CORE_SIG_YCD        (RKISPP_TNR + 0x00B4)
#define RKISPP_TNR_CORE_SIG_YEF        (RKISPP_TNR + 0x00B8)
#define RKISPP_TNR_CORE_SIG_Y10        (RKISPP_TNR + 0x00BC)
#define RKISPP_TNR_CORE_LUMACURVE_Y01    (RKISPP_TNR + 0x00C4)
#define RKISPP_TNR_CORE_LUMACURVE_Y23    (RKISPP_TNR + 0x00C8)
#define RKISPP_TNR_CORE_LUMACURVE_Y45    (RKISPP_TNR + 0x00CC)
#define RKISPP_TNR_CORE_TH_Y        (RKISPP_TNR + 0x00D0)
#define RKISPP_TNR_CORE_TH_C        (RKISPP_TNR + 0x00D4)
#define RKISPP_TNR_CORE_TH_DLT        (RKISPP_TNR + 0x00D8)
#define RKISPP_TNR_CORE_GFCOEF_Y0_0    (RKISPP_TNR + 0x00DC)
#define RKISPP_TNR_CORE_GFCOEF_Y0_1    (RKISPP_TNR + 0x00E0)
#define RKISPP_TNR_CORE_GFCOEF_Y1    (RKISPP_TNR + 0x00E4)
#define RKISPP_TNR_CORE_GFCOEF_Y2    (RKISPP_TNR + 0x00E8)
#define RKISPP_TNR_CORE_GFCOEF_Y3    (RKISPP_TNR + 0x00EC)
#define RKISPP_TNR_CORE_GFCOEF_YG0_0    (RKISPP_TNR + 0x00F0)
#define RKISPP_TNR_CORE_GFCOEF_YG0_1    (RKISPP_TNR + 0x00F4)
#define RKISPP_TNR_CORE_GFCOEF_YG1    (RKISPP_TNR + 0x00F8)
#define RKISPP_TNR_CORE_GFCOEF_YG2    (RKISPP_TNR + 0x00FC)
#define RKISPP_TNR_CORE_GFCOEF_YG3    (RKISPP_TNR + 0x0100)
#define RKISPP_TNR_CORE_GFCOEF_YL0_0    (RKISPP_TNR + 0x0104)
#define RKISPP_TNR_CORE_GFCOEF_YL0_1    (RKISPP_TNR + 0x0108)
#define RKISPP_TNR_CORE_GFCOEF_YL1    (RKISPP_TNR + 0x010C)
#define RKISPP_TNR_CORE_GFCOEF_YL2    (RKISPP_TNR + 0x0110)
#define RKISPP_TNR_CORE_GFCOEF_CG0_0    (RKISPP_TNR + 0x0114)
#define RKISPP_TNR_CORE_GFCOEF_CG0_1    (RKISPP_TNR + 0x0118)
#define RKISPP_TNR_CORE_GFCOEF_CG1    (RKISPP_TNR + 0x011C)
#define RKISPP_TNR_CORE_GFCOEF_CG2    (RKISPP_TNR + 0x0120)
#define RKISPP_TNR_CORE_GFCOEF_CL0_0    (RKISPP_TNR + 0x0124)
#define RKISPP_TNR_CORE_GFCOEF_CL0_1    (RKISPP_TNR + 0x0128)
#define RKISPP_TNR_CORE_GFCOEF_CL1    (RKISPP_TNR + 0x012C)
#define RKISPP_TNR_CORE_SCALE_YG01    (RKISPP_TNR + 0x0130)
#define RKISPP_TNR_CORE_SCALE_YG23    (RKISPP_TNR + 0x0134)
#define RKISPP_TNR_CORE_SCALE_YL01    (RKISPP_TNR + 0x0138)
#define RKISPP_TNR_CORE_SCALE_YL2    (RKISPP_TNR + 0x013c)
#define RKISPP_TNR_CORE_SCALE_CG0    (RKISPP_TNR + 0x0140)
#define RKISPP_TNR_CORE_SCALE_CG1    (RKISPP_TNR + 0x0144)
#define RKISPP_TNR_CORE_SCALE_CG2    (RKISPP_TNR + 0x0148)
#define RKISPP_TNR_CORE_SCALE_CL0    (RKISPP_TNR + 0x014C)
#define RKISPP_TNR_CORE_SCALE_CL1    (RKISPP_TNR + 0x0150)
#define RKISPP_TNR_CORE_SCALE_CL2    (RKISPP_TNR + 0x0154)
#define RKISPP_TNR_CORE_WEIGHT        (RKISPP_TNR + 0x0158)
#define RKISPP_TNR_TILE_CNT        (RKISPP_TNR + 0x01c0)
#define RKISPP_TNR_STATE        (RKISPP_TNR + 0x01c4)
 
#define RKISPP_NR            0x0400
#define RKISPP_NR_CTRL            (RKISPP_NR + 0x0000)
#define RKISPP_NR_VIR_STRIDE        (RKISPP_NR + 0x0004)
#define RKISPP_NR_ADDR_BASE_Y        (RKISPP_NR + 0x0008)
#define RKISPP_NR_ADDR_BASE_UV        (RKISPP_NR + 0x000C)
#define RKISPP_NR_VIR_STRIDE_GAIN    (RKISPP_NR + 0x001C)
#define RKISPP_NR_ADDR_BASE_GAIN    (RKISPP_NR + 0x0020)
#define RKISPP_NR_ADDR_BASE_Y_SHD    (RKISPP_NR + 0x0024)
#define RKISPP_NR_ADDR_BASE_UV_SHD    (RKISPP_NR + 0x0028)
#define RKISPP_FBC_VIR_HEIGHT        (RKISPP_NR + 0x002C)
#define RKISPP_NR_UVNR_CTRL_PARA    (RKISPP_NR + 0x0080)
#define RKISPP_NR_UVNR_GAIN_1SIGMA    (RKISPP_NR + 0x0084)
#define RKISPP_NR_UVNR_GAIN_OFFSET    (RKISPP_NR + 0x0088)
#define RKISPP_NR_UVNR_GAIN_GBLGAIN    (RKISPP_NR + 0x008C)
#define RKISPP_NR_UVNR_T1GEN_M3ALPHA    (RKISPP_NR + 0x0090)
#define RKISPP_NR_UVNR_T1FLT_MODE    (RKISPP_NR + 0x0094)
#define RKISPP_NR_UVNR_T1FLT_MSIGMA    (RKISPP_NR + 0x0098)
#define RKISPP_NR_UVNR_T1FLT_WTP    (RKISPP_NR + 0x009C)
#define RKISPP_NR_UVNR_T1FLT_WTQ0    (RKISPP_NR + 0x00A0)
#define RKISPP_NR_UVNR_T1FLT_WTQ1    (RKISPP_NR + 0x00A4)
#define RKISPP_NR_UVNR_T2GEN_M3ALPHA    (RKISPP_NR + 0x00A8)
#define RKISPP_NR_UVNR_T2GEN_MSIGMA    (RKISPP_NR + 0x00AC)
#define RKISPP_NR_UVNR_T2GEN_WTP    (RKISPP_NR + 0x00B0)
#define RKISPP_NR_UVNR_T2GEN_WTQ    (RKISPP_NR + 0x00B4)
#define RKISPP_NR_UVNR_T2FLT_MSIGMA    (RKISPP_NR + 0x00B8)
#define RKISPP_NR_UVNR_T2FLT_WT        (RKISPP_NR + 0x00BC)
#define RKISPP_NR_YNR_SGM_DX_1_8    (RKISPP_NR + 0x0104)
#define RKISPP_NR_YNR_SGM_DX_9_16    (RKISPP_NR + 0x0108)
#define RKISPP_NR_YNR_LSGM_Y_0_1    (RKISPP_NR + 0x010C)
#define RKISPP_NR_YNR_LSGM_Y_2_3    (RKISPP_NR + 0x0110)
#define RKISPP_NR_YNR_LSGM_Y_4_5    (RKISPP_NR + 0x0114)
#define RKISPP_NR_YNR_LSGM_Y_6_7    (RKISPP_NR + 0x0118)
#define RKISPP_NR_YNR_LSGM_Y_8_9    (RKISPP_NR + 0x011C)
#define RKISPP_NR_YNR_LSGM_Y_10_11    (RKISPP_NR + 0x0120)
#define RKISPP_NR_YNR_LSGM_Y_12_13    (RKISPP_NR + 0x0124)
#define RKISPP_NR_YNR_LSGM_Y_14_15    (RKISPP_NR + 0x0128)
#define RKISPP_NR_YNR_LSGM_Y_16        (RKISPP_NR + 0x012C)
#define RKISPP_NR_YNR_LCI        (RKISPP_NR + 0x0130)
#define RKISPP_NR_YNR_LGAIN_DIRE_MIN    (RKISPP_NR + 0x0134)
#define RKISPP_NR_YNR_IGAIN_DIRE_MAX    (RKISPP_NR + 0x0138)
#define RKISPP_NR_YNR_LMERGE        (RKISPP_NR + 0x013C)
#define RKISPP_NR_YNR_LWEIT_FLT        (RKISPP_NR + 0x0140)
#define RKISPP_NR_YNR_HSGM_Y_0_1    (RKISPP_NR + 0x0144)
#define RKISPP_NR_YNR_HSGM_Y_2_3    (RKISPP_NR + 0x0148)
#define RKISPP_NR_YNR_HSGM_Y_4_5    (RKISPP_NR + 0x014C)
#define RKISPP_NR_YNR_HSGM_Y_6_7    (RKISPP_NR + 0x0150)
#define RKISPP_NR_YNR_HSGM_Y_8_9    (RKISPP_NR + 0x0154)
#define RKISPP_NR_YNR_HSGM_Y_10_11    (RKISPP_NR + 0x0158)
#define RKISPP_NR_YNR_HSGM_Y_12_13    (RKISPP_NR + 0x015C)
#define RKISPP_NR_YNR_HSGM_Y_14_15    (RKISPP_NR + 0x0160)
#define RKISPP_NR_YNR_HSGM_Y_16        (RKISPP_NR + 0x0164)
#define RKISPP_NR_YNR_HLCI        (RKISPP_NR + 0x0168)
#define RKISPP_NR_YNR_LHCI        (RKISPP_NR + 0x016C)
#define RKISPP_NR_YNR_HHCI        (RKISPP_NR + 0x0170)
#define RKISPP_NR_YNR_HGAIN_SGM        (RKISPP_NR + 0x0174)
#define RKISPP_NR_YNR_HWEIT_D0        (RKISPP_NR + 0x0178)
#define RKISPP_NR_YNR_HWEIT_D1        (RKISPP_NR + 0x017C)
#define RKISPP_NR_YNR_HWEIT_D2        (RKISPP_NR + 0x0180)
#define RKISPP_NR_YNR_HWEIT_D3        (RKISPP_NR + 0x0184)
#define RKISPP_NR_YNR_HWEIT_D4        (RKISPP_NR + 0x0188)
#define RKISPP_NR_YNR_HGRAD_Y0        (RKISPP_NR + 0x018C)
#define RKISPP_NR_YNR_HGRAD_Y1        (RKISPP_NR + 0x0190)
#define RKISPP_NR_YNR_HGRAD_Y2        (RKISPP_NR + 0x0194)
#define RKISPP_NR_YNR_HGRAD_Y3        (RKISPP_NR + 0x0198)
#define RKISPP_NR_YNR_HGRAD_Y4        (RKISPP_NR + 0x019C)
#define RKISPP_NR_YNR_HGRAD_Y5        (RKISPP_NR + 0x01A0)
#define RKISPP_NR_YNR_HWEIT_1_2        (RKISPP_NR + 0x01A4)
#define RKISPP_NR_YNR_HWEIT_3_4        (RKISPP_NR + 0x01A8)
#define RKISPP_NR_YNR_HADJUST_EXGAIN    (RKISPP_NR + 0x01AC)
#define RKISPP_NR_YNR_HMAX_ADJUST    (RKISPP_NR + 0x01B0)
#define RKISPP_NR_YNR_HSTRENGTH        (RKISPP_NR + 0x01B4)
#define RKISPP_NR_YNR_LWEIT_CMP        (RKISPP_NR + 0x01B8)
#define RKISPP_NR_YNR_LMAXGAIN_LV4    (RKISPP_NR + 0x01BC)
#define RKISPP_NR_YNR_HSTV_Y_0_1    (RKISPP_NR + 0x01C0)
#define RKISPP_NR_YNR_HSTV_Y_2_3    (RKISPP_NR + 0x01C4)
#define RKISPP_NR_YNR_HSTV_Y_4_5    (RKISPP_NR + 0x01C8)
#define RKISPP_NR_YNR_HSTV_Y_6_7    (RKISPP_NR + 0x01CC)
#define RKISPP_NR_YNR_HSTV_Y_8_9    (RKISPP_NR + 0x01D0)
#define RKISPP_NR_YNR_HSTV_Y_10_11    (RKISPP_NR + 0x01D4)
#define RKISPP_NR_YNR_HSTV_Y_12_13    (RKISPP_NR + 0x01D8)
#define RKISPP_NR_YNR_HSTV_Y_14_15    (RKISPP_NR + 0x01DC)
#define RKISPP_NR_YNR_HSTV_Y_16        (RKISPP_NR + 0x01E0)
#define RKISPP_NR_YNR_ST_SCALE_LV1_LV2    (RKISPP_NR + 0x01E4)
#define RKISPP_NR_YNR_ST_SCALE_LV3    (RKISPP_NR + 0x01E8)
#define RKISPP_NR_BLOCK_CNT        (RKISPP_NR + 0x01f0)
#define RKISPP_NR_BUFFER_READY        (RKISPP_NR + 0x01f4)
 
#define RKISPP_SHARP            0x0600
#define RKISPP_SHARP_CTRL        (RKISPP_SHARP + 0x0000)
#define RKISPP_SHARP_WR_VIR_STRIDE    (RKISPP_SHARP + 0x0004)
#define RKISPP_SHARP_WR_Y_BASE        (RKISPP_SHARP + 0x0008)
#define RKISPP_SHARP_WR_UV_BASE        (RKISPP_SHARP + 0x000C)
#define RKISPP_SHARP_SC_DOWN        (RKISPP_SHARP + 0x0010)
#define RKISPP_SHARP_TMP_YUV_BASE    (RKISPP_SHARP + 0x0014)
#define RKISPP_SHARP_WR_Y_BASE_SHD    (RKISPP_SHARP + 0x0024)
#define RKISPP_SHARP_WR_UV_BASE_SHD    (RKISPP_SHARP + 0x0028)
#define RKISPP_SHARP_TILE_IDX        (RKISPP_SHARP + 0x0030)
#define RKISPP_SHARP_CORE_CTRL        (RKISPP_SHARP + 0x0080)
#define RKISPP_SHARP_HBF_FACTOR        (RKISPP_SHARP + 0x0084)
#define RKISPP_SHARP_EDGE_TH        (RKISPP_SHARP + 0x0088)
#define RKISPP_SHARP_EDGE_ALPHA        (RKISPP_SHARP + 0x008C)
#define RKISPP_SHARP_PBF_KERNEL        (RKISPP_SHARP + 0x0090)
#define RKISPP_SHARP_MRF_KERNEL0    (RKISPP_SHARP + 0x0094)
#define RKISPP_SHARP_MRF_KERNEL1    (RKISPP_SHARP + 0x0098)
#define RKISPP_SHARP_MBF_KERNEL0    (RKISPP_SHARP + 0x009C)
#define RKISPP_SHARP_MBF_KERNEL1    (RKISPP_SHARP + 0x00A0)
#define RKISPP_SHARP_MBF_KERNEL2    (RKISPP_SHARP + 0x00A4)
#define RKISPP_SHARP_HRF_KERNEL0    (RKISPP_SHARP + 0x00A8)
#define RKISPP_SHARP_HRF_KERNEL1    (RKISPP_SHARP + 0x00AC)
#define RKISPP_SHARP_HBF_KERNEL        (RKISPP_SHARP + 0x00B0)
#define RKISPP_SHARP_EDGE_COEF        (RKISPP_SHARP + 0x00B4)
#define RKISPP_SHARP_EDGE_SMOTH        (RKISPP_SHARP + 0x00B8)
#define RKISPP_SHARP_EDGE_GAUS0        (RKISPP_SHARP + 0x00BC)
#define RKISPP_SHARP_EDGE_GAUS1        (RKISPP_SHARP + 0x00C0)
#define RKISPP_SHARP_DOG_KERNEL0    (RKISPP_SHARP + 0x00C4)
#define RKISPP_SHARP_DOG_KERNEL1    (RKISPP_SHARP + 0x00C8)
#define RKISPP_SHARP_LUM_POINT0        (RKISPP_SHARP + 0x00CC)
#define RKISPP_SHARP_LUM_POINT1        (RKISPP_SHARP + 0x00D0)
#define RKISPP_SHARP_SHF_BITS        (RKISPP_SHARP + 0x00D4)
#define RKISPP_SHARP_PBF_SIGMA_INV0    (RKISPP_SHARP + 0x00D8)
#define RKISPP_SHARP_PBF_SIGMA_INV1    (RKISPP_SHARP + 0x00DC)
#define RKISPP_SHARP_LUM_CLP_M0        (RKISPP_SHARP + 0x00E0)
#define RKISPP_SHARP_LUM_CLP_M1        (RKISPP_SHARP + 0x00E4)
#define RKISPP_SHARP_LUM_MIN_M0        (RKISPP_SHARP + 0x00E8)
#define RKISPP_SHARP_LUM_MIN_M1        (RKISPP_SHARP + 0x00EC)
#define RKISPP_SHARP_MBF_SIGMA_INV0    (RKISPP_SHARP + 0x00F0)
#define RKISPP_SHARP_MBF_SIGMA_INV1    (RKISPP_SHARP + 0x00F4)
#define RKISPP_SHARP_LUM_CLP_H0        (RKISPP_SHARP + 0x00F8)
#define RKISPP_SHARP_LUM_CLP_H1        (RKISPP_SHARP + 0x00FC)
#define RKISPP_SHARP_HBF_SIGMA_INV0    (RKISPP_SHARP + 0x0100)
#define RKISPP_SHARP_HBF_SIGMA_INV1    (RKISPP_SHARP + 0x0104)
#define RKISPP_SHARP_EDGE_LUM_THED0    (RKISPP_SHARP + 0x0108)
#define RKISPP_SHARP_EDGE_LUM_THED1    (RKISPP_SHARP + 0x010C)
#define RKISPP_SHARP_CLAMP_POS_DOG0    (RKISPP_SHARP + 0x0110)
#define RKISPP_SHARP_CLAMP_POS_DOG1    (RKISPP_SHARP + 0x0114)
#define RKISPP_SHARP_CLAMP_NEG_DOG0    (RKISPP_SHARP + 0x0118)
#define RKISPP_SHARP_CLAMP_NEG_DOG1    (RKISPP_SHARP + 0x011C)
#define RKISPP_SHARP_DETAIL_ALPHA_DOG0    (RKISPP_SHARP + 0x0120)
#define RKISPP_SHARP_DETAIL_ALPHA_DOG1    (RKISPP_SHARP + 0x0124)
#define RKISPP_SHARP_RF_RATIO        (RKISPP_SHARP + 0x0128)
#define RKISPP_SHARP_GRAD_RATIO        (RKISPP_SHARP + 0x012C)
 
#define RKISPP_SCL0            0x0800
#define RKISPP_SCL0_CTRL        (RKISPP_SCL0 + 0x0000)
#define RKISPP_SCL0_CUR_VIR_STRIDE    (RKISPP_SCL0 + 0x0004)
#define RKISPP_SCL0_CUR_Y_BASE        (RKISPP_SCL0 + 0x0008)
#define RKISPP_SCL0_CUR_UV_BASE        (RKISPP_SCL0 + 0x000C)
#define RKISPP_SCL0_CUR_Y_BASE_SHD    (RKISPP_SCL0 + 0x0010)
#define RKISPP_SCL0_CUR_UV_BASE_SHD    (RKISPP_SCL0 + 0x0014)
#define RKISPP_SCL0_FACTOR        (RKISPP_SCL0 + 0x0018)
 
#define RKISPP_SCL1            0x0900
#define RKISPP_SCL1_CTRL        (RKISPP_SCL1 + 0x0000)
#define RKISPP_SCL1_CUR_VIR_STRIDE    (RKISPP_SCL1 + 0x0004)
#define RKISPP_SCL1_CUR_Y_BASE        (RKISPP_SCL1 + 0x0008)
#define RKISPP_SCL1_CUR_UV_BASE        (RKISPP_SCL1 + 0x000C)
#define RKISPP_SCL1_CUR_Y_BASE_SHD    (RKISPP_SCL1 + 0x0010)
#define RKISPP_SCL1_CUR_UV_BASE_SHD    (RKISPP_SCL1 + 0x0014)
#define RKISPP_SCL1_FACTOR        (RKISPP_SCL1 + 0x0018)
 
#define RKISPP_SCL2            0x0A00
#define RKISPP_SCL2_CTRL        (RKISPP_SCL2 + 0x0000)
#define RKISPP_SCL2_CUR_VIR_STRIDE    (RKISPP_SCL2 + 0x0004)
#define RKISPP_SCL2_CUR_Y_BASE        (RKISPP_SCL2 + 0x0008)
#define RKISPP_SCL2_CUR_UV_BASE        (RKISPP_SCL2 + 0x000C)
#define RKISPP_SCL2_CUR_Y_BASE_SHD    (RKISPP_SCL2 + 0x0010)
#define RKISPP_SCL2_CUR_UV_BASE_SHD    (RKISPP_SCL2 + 0x0014)
#define RKISPP_SCL2_FACTOR        (RKISPP_SCL2 + 0x0018)
 
#define RKISPP_ORB            0x0B00
#define RKISPP_ORB_WR_BASE        (RKISPP_ORB + 0x0004)
#define RKISPP_ORB_WR_BASE_SHD        (RKISPP_ORB + 0x0008)
#define RKISPP_ORB_TOTAL_NUM        (RKISPP_ORB + 0x000c)
#define RKISPP_ORB_CORE_CTRL        (RKISPP_ORB + 0x0080)
#define RKISPP_ORB_LIMIT_VALUE        (RKISPP_ORB + 0x0084)
#define RKISPP_ORB_MAX_FEATURE        (RKISPP_ORB + 0x0088)
 
#define RKISPP_FEC            0x0C00
#define RKISPP_FEC_CTRL            (RKISPP_FEC + 0x0000)
#define RKISPP_FEC_RD_VIR_STRIDE    (RKISPP_FEC + 0x0004)
#define RKISPP_FEC_RD_Y_BASE        (RKISPP_FEC + 0x0008)
#define RKISPP_FEC_RD_UV_BASE        (RKISPP_FEC + 0x000C)
#define RKISPP_FEC_MESH_XINT_BASE    (RKISPP_FEC + 0x0010)
#define RKISPP_FEC_MESH_XFRA_BASE    (RKISPP_FEC + 0x0014)
#define RKISPP_FEC_MESH_YINT_BASE    (RKISPP_FEC + 0x0018)
#define RKISPP_FEC_MESH_YFRA_BASE    (RKISPP_FEC + 0x001C)
#define RKISPP_FEC_WR_VIR_STRIDE    (RKISPP_FEC + 0x0020)
#define RKISPP_FEC_WR_Y_BASE        (RKISPP_FEC + 0x0024)
#define RKISPP_FEC_WR_UV_BASE        (RKISPP_FEC + 0x0028)
#define RKISPP_FEC_RD_Y_BASE_SHD    (RKISPP_FEC + 0x002C)
#define RKISPP_FEC_RD_UV_BASE_SHD    (RKISPP_FEC + 0x0030)
#define RKISPP_FEC_MESH_XINT_BASE_SHD    (RKISPP_FEC + 0x0034)
#define RKISPP_FEC_MESH_XFRA_BASE_SHD    (RKISPP_FEC + 0x0038)
#define RKISPP_FEC_MESH_YINT_BASE_SHD    (RKISPP_FEC + 0x003C)
#define RKISPP_FEC_MESH_YFRA_BASE_SHD    (RKISPP_FEC + 0x0040)
#define RKISPP_FEC_WR_Y_BASE_SHD    (RKISPP_FEC + 0x0044)
#define RKISPP_FEC_WR_UV_BASE_SHD    (RKISPP_FEC + 0x0048)
#define RKISPP_FEC_FBCE_HEAD_OFFSET    (RKISPP_FEC + 0x0050)
#define RKISPP_FEC_CORE_CTRL        (RKISPP_FEC + 0x0080)
#define RKISPP_FEC_PIC_SIZE        (RKISPP_FEC + 0x0088)
#define RKISPP_FEC_DST_SIZE        (RKISPP_FEC + 0x0088)
#define RKISPP_FEC_MESH_SIZE        (RKISPP_FEC + 0x008C)
#define RKISPP_FEC_DMA_STATUS        (RKISPP_FEC + 0x0090)
#define RKISPP_FEC_CROP            (RKISPP_FEC + 0x0094)
#define RKISPP_FEC_SRC_SIZE        (RKISPP_FEC + 0x0098)
 
#define FMT_WR_MASK            GENMASK(7, 4)
#define FMT_RD_MASK            GENMASK(3, 0)
#define FMT_YUV420            0
#define FMT_YC_SWAP            BIT(3)
#define FMT_YUYV            BIT(2)
#define FMT_YUV422            BIT(1)
#define FMT_FBC                BIT(0)
 
#define NR_NEW_ALGO            BIT(16)
 
/* ISPP_STRT */
#define FEC_ST                BIT(2)
#define NR_SHP_ST            BIT(1)
#define TNR_ST                BIT(0)
 
/* ISPP_UPDATE */
#define ALL_FORCE_UPD (FEC_FORCE_UPD | TNR_FORCE_UPD | OTHER_FORCE_UPD)
#define FEC_FORCE_UPD            BIT(2)
#define TNR_FORCE_UPD            BIT(1)
#define OTHER_FORCE_UPD            BIT(0)
 
/* ISPP_CTRL_QUICK */
#define GLB_QUICK_MODE_MASK        GENMASK(9, 8)
#define SW_PP_FBC_MODE_DIS        BIT(30)
#define SW_PP_MMU_PLUS_DIS        BIT(29)
#define SW_PP2ISP_HOLD_SEL        BIT(28)
#define GLB_FEC2SCL_EN            BIT(11)
#define GLB_NR_SD32_TNR            BIT(10)
#define GLB_QUICK_MODE(a)        (((a) & 0x3) << 8)
#define GLB_NOC_HURRY(a)        (((a) & 0x3) << 4)
#define GLB_TNR_RDY_DIS            BIT(3)
#define GLB_TNR2NR_RDY_MODE        BIT(2)
#define GLB_DIRECT_MODE            BIT(1)
#define GLB_QUICK_EN            BIT(0)
 
/* ISPP_CTRL_RESET */
#define FBCD_ERR_PROTECT_DIS        BIT(12)
#define GLB_SOFT_RST_SCL        BIT(11)
#define GLB_SOFT_RST_SHP        BIT(10)
#define GLB_SOFT_RST_NR            BIT(9)
#define GLB_SOFT_RST_TNR        BIT(8)
#define RST_PROTECT_DIS            BIT(1)
#define GLB_SOFT_RST_ALL        BIT(0)
 
/* ISPP_CLKGATE */
#define GATE_DIS_ALL            0xff
#define GATE_DIS_GLOBAL_RAM_CLK        BIT(7)
#define GATE_DIS_SWS            BIT(6)
#define GATE_DIS_FEC            BIT(5)
#define GATE_DIS_SCL            BIT(4)
#define GATE_DIS_SHP            BIT(3)
#define GATE_DIS_NR            BIT(2)
#define GATE_DIS_TNR            BIT(1)
#define GATE_DIS_GLB            BIT(0)
 
/* INT_MASK INT_RAW_STA INT_STA INT_SET INT_CLR */
#define INT_FRAME(stream) \
   ((stream)->config->frame_end_id)
#define NR_LOST_ERR            BIT(26)
#define TNR_LOST_ERR            BIT(25)
#define UVNR_MONITOR_ERR        BIT(24)
#define FBCH_EMPTY_NR            BIT(23)
#define FBCH_EMPTY_TNR            BIT(22)
#define FBCD_DEC_ERR_NR            BIT(21)
#define FBCD_DEC_ERR_TNR        BIT(20)
#define BUS_ERR_NR            BIT(17)
#define BUS_ERR_TNR            BIT(16)
#define CMD_NR_SHP_ST_DONE        BIT(12)
#define CMD_TNR_ST_DONE            BIT(11)
#define SCL2_INT            BIT(10)
#define SCL1_INT            BIT(9)
#define SCL0_INT            BIT(8)
#define FEC_INT                BIT(7)
#define ORB_INT                BIT(6)
#define SHP_INT                BIT(4)
#define NR_INT                BIT(3)
#define TNR_INT                BIT(2)
#define FRAME_INT            BIT(1)
#define QUICK_INT            BIT(0)
 
/* ISPP_QUICK_DIF */
#define GLB_TNR2NR_DIF(a)        (((a) & 0xff) << 16)
#define GLB_ISP2NR_DIF(a)        (((a) & 0xff) << 8)
#define GLB_NR2FEC_DIF(a)        ((a) & 0xff)
 
/* SYS_STATUS */
#define TNR_WORKING            BIT(0)
#define NR_WORKING            BIT(1)
#define SHP_WORKING            BIT(2)
#define ORB_WORKING            BIT(3)
#define SCL0_WORKING            BIT(4)
#define SCL1_WORKING            BIT(5)
#define SCL2_WORKING            BIT(6)
#define FEC_WORKING            BIT(7)
 
/* SYS_CTL_STA0 */
#define TNR_TILE_LINE_CNT_MASK        GENMASK(6, 0)
#define NR_TILE_LINE_CNT_MASK        GENMASK(14, 8)
#define FEC_TILE_LINE_CNT_MASK        GENMASK(22, 16)
 
/* TNR CTRL */
#define SW_TNR_WR_FORMAT_MASK        GENMASK(7, 4)
#define SW_TNR_RD_FORMAT_MASK        GENMASK(3, 0)
#define SW_TNR_THROUGH_MODE        BIT(10)
#define SW_TNR_1ST_FRM            BIT(9)
#define SW_TNR_RD_PINGPONG2TO1        BIT(8)
#define SW_TNR_WR_YUYV_YCSWAP        BIT(7)
#define SW_TNR_WR_YUYV_FORMAT        BIT(6)
#define SW_TNR_WR_YUV_FORMAT        BIT(5)
#define SW_TNR_WR_FBCE_MODE        BIT(4)
#define SW_TNR_RD_YUYV_YCSWAP        BIT(3)
#define SW_TNR_RD_YUYV_FORMAT        BIT(2)
#define SW_TNR_RD_YUV_FORMAT        BIT(1)
#define SW_TNR_FBCD_MODE        BIT(0)
 
/* CORE_CTRL */
#define SW_TNR_GLB_GAIN_EN_SHD        BIT(28)
#define SW_TNR_OPTC_EN_SHD        BIT(27)
#define SW_TNR_OPTY_EN_SHD        BIT(26)
#define SW_TNR_MODE_SHD            BIT(25)
#define SW_TNR_EN_SHD            BIT(24)
#define SW_TNR_GLB_GAIN_EN        BIT(4)
#define SW_TNR_OPTC_EN            BIT(3)
#define SW_TNR_OPTY_EN            BIT(2)
#define SW_TNR_MODE            BIT(1)
#define SW_TNR_EN            BIT(0)
 
/* NR CTRL */
#define SW_NR_RD_FBCD_READ_MODE        BIT(31)
#define SW_NR_NEW_ALGORITHM        BIT(16)
#define SW_UVNR_1ST_FRM_SELF_MODE    BIT(10)
#define SW_UVNR_1ST_FRM_SELF        BIT(9)
#define SW_NR_RD_YUYV_YCSWAP        BIT(3)
#define SW_NR_RD_YUYV_FORMAT        BIT(2)
#define SW_NR_RD_YUV_FORMAT        BIT(1)
#define SW_NR_RD_FBCD_MODE        BIT(0)
 
/* NR_CTRL_PARA */
#define SW_UVNR_BIG_EN            BIT(6)
#define SW_UVNR_NOBIG_EN        BIT(5)
#define SW_UVNR_SD32_SELF_EN        BIT(4)
#define SW_NR_GAIN_BYPASS        BIT(3)
#define SW_UVNR_STEP2_ON        BIT(2)
#define SW_UVNR_STEP1_ON        BIT(1)
#define SW_NR_EN            BIT(0)
 
/* SHP CTRL*/
#define SW_SHP_WR_FORMAT_MASK        GENMASK(3, 0)
#define SW_SHP_WR_ROT_MODE(a)        (((a) & 0x3) << 5)
#define SW_SHP_WR_YUV_LIMIT        BIT(4)
#define SW_SHP_WR_YUYV_YCSWAP        BIT(3)
#define SW_SHP_WR_YUYV_FORMAT        BIT(2)
#define SW_SHP_WR_YUY_FORMAT        BIT(1)
#define SW_SHP_WR_FBCE_MODE        BIT(0)
 
/* CORE_CTRL */
#define SW_SHP_EDGE_AVG_EN        BIT(4)
#define SW_SHP_YIN_FLT_EN        BIT(3)
#define SW_SHP_DMA_DIS            BIT(2)
#define SW_SHP_ALPHA_ADP_EN        BIT(1)
#define SW_SHP_EN            BIT(0)
 
/* SCL_CTRL */
#define SW_SCL_BYPASS_SHD        BIT(31)
#define SW_SCL_ENABLE_SHD        BIT(30)
#define SW_SCL_RAM_CLK_ON        BIT(8)
#define SW_SCL_WR_YUV_LIMIT        BIT(7)
#define SW_SCL_WR_YUYV_YCSWAP        BIT(6)
#define SW_SCL_WR_YUYV_FORMAT        BIT(5)
#define SW_SCL_WR_YUV_FORMAT        BIT(4)
#define SW_SCL_WR_UV_DIS        BIT(3)
#define SW_SCL_FIRST_MODE        BIT(2)
#define SW_SCL_BYPASS            BIT(1)
#define SW_SCL_ENABLE            BIT(0)
 
/* FEC_CTRL*/
#define SW_FEC_WR_YUV_LIMIT        BIT(8)
#define SW_FEC_WR_YUYV_YC_SWAP        BIT(7)
#define SW_FEC_WR_YUYV_FORMAT        BIT(6)
#define SW_FEC_WR_YUV_FORMAT        BIT(5)
#define SW_FEC_WR_FBCE_MODE        BIT(4)
#define SW_FEC_RD_YUYV_YCSWAP        BIT(3)
#define SW_FEC_RD_YUYV_FORMAT        BIT(2)
#define SW_FEC_RD_YUV_FORMAT        BIT(1)
 
/* FEC_CORE_CTRL */
#define SW_FEC_EN_SHD            BIT(31)
#define SW_OFFSET_ENABLE        BIT(31)
#define SW_MINBUF_NON_UPDATE_SHD    BIT(30)
#define SW_MINBUF_NON_UPDATE        BIT(6)
#define SW_MESH_DENSITY            BIT(5)
#define SW_BIC_MODE            GENMASK(4, 3)
#define SW_FEC2DDR_DIS            BIT(1)
#define SW_FEC_EN            BIT(0)
 
/* ORB_CORE_CTRL */
#define SW_ORB_EN            BIT(0)
 
#endif /* _RKISPP_REGS_H */