hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
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
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
 * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd
 *
 * author:
 *    Alpha Lin, alpha.lin@rock-chips.com
 *
 */
 
#ifndef __ROCKCHIP_IEP2_REGS_H__
#define __ROCKCHIP_IEP2_REGS_H__
 
#define IEP2_REG_FRM_START            0x0000
#define     IEP2_REG_FRM_EN                             BIT(0)
#define IEP2_REG_IEP_CONFIG0            0x0004
#define     IEP2_REG_CCLK_SRESET_P            BIT(22)
#define     IEP2_REG_ACLK_SRESET_P            BIT(21)
#define     IEP2_REG_HANDSAVE_P                BIT(20)
#define     IEP2_REG_RST_PROTECT_EN            BIT(19)
#define     IEP2_REG_DEBUG_DATA_EN            BIT(16)
#define     IEP2_REG_DST_YUV_SWAP(x)            (((x) & 3) << 12)
#define     IEP2_REG_DST_FMT(x)                (((x) & 3) << 8)
#define     IEP2_REG_SRC_YUV_SWAP(x)            (((x) & 3) << 4)
#define     IEP2_REG_SRC_FMT(x)                ((x) & 3)
#define IEP2_REG_WORK_MODE            0x0008
#define     IEP2_REG_IEP2_MODE                BIT(0)
#define IEP2_REG_GATING_CTRL            0x0010
#define     IEP2_REG_REG_CLK_ON                BIT(11)
#define     IEP2_REG_DMA_CLK_ON                BIT(10)
#define     IEP2_REG_RAM_CLK_ON                BIT(9)
#define     IEP2_REG_CTRL_CLK_ON            BIT(8)
#define     IEP2_REG_OUT_CLK_ON                BIT(7)
#define     IEP2_REG_BLE_CLK_ON                BIT(6)
#define     IEP2_REG_EEDI_CLK_ON            BIT(5)
#define     IEP2_REG_MC_CLK_ON                BIT(4)
#define     IEP2_REG_ME_CLK_ON                BIT(3)
#define     IEP2_REG_DECT_CLK_ON            BIT(2)
#define     IEP2_REG_MD_CLK_ON                BIT(1)
#define     IEP2_REG_CLK_ON                BIT(0)
#define IEP2_REG_STATUS                0x0014
#define     IEP2_REG_ARST_FINISH_DONE                   BIT(0)
#define IEP2_REG_INT_EN                0x0020
#define     IEP2_REG_TIMEOUT_EN                    BIT(5)
#define     IEP2_REG_BUS_ERROR_EN            BIT(4)
#define     IEP2_REG_OSD_MAX_EN                BIT(1)
#define     IEP2_REG_FRM_DONE_EN            BIT(0)
#define IEP2_REG_INT_CLR            0x0024
#define     IEP2_REG_TIMEOUT_CLR            BIT(5)
#define     IEP2_REG_BUS_ERROR_CLR            BIT(4)
#define     IEP2_REG_OSD_MAX_CLR            BIT(1)
#define     IEP2_REG_FRM_DONE_CLR            BIT(0)
#define IEP2_REG_INT_STS            0x0028
#define     IEP2_REG_RO_TIMEOUT_STS(x)                ((x) & BIT(5))
#define     IEP2_REG_RO_BUS_ERROR_STS(x)        ((x) & BIT(4))
#define     IEP2_REG_RO_OSD_MAX_STS(x)            ((x) & BIT(1))
#define     IEP2_REG_RO_FRM_DONE_STS(x)            ((x) & BIT(0))
#define     IEP2_REG_RO_VALID_INT_STS(x)        ((x) & (BIT(5) | BIT(4) | BIT(0)))
#define IEP2_REG_INT_RAW_STS            0x002c
#define IEP2_REG_VIR_SRC_IMG_WIDTH        0x0030
#define     IEP2_REG_SRC_VIR_UV_STRIDE(x)        (((x) & 0xffff) << 16)
#define     IEP2_REG_SRC_VIR_Y_STRIDE(x)        ((x) & 0xffff)
#define IEP2_REG_VIR_DST_IMG_WIDTH        0x0034
#define     IEP2_REG_DST_VIR_STRIDE(x)            ((x) & 0xffff)
#define IEP2_REG_SRC_IMG_SIZE            0x0038
#define     IEP2_REG_SRC_PIC_HEIGHT(x)            (((x) & 0x7ff) << 16)
#define     IEP2_REG_SRC_PIC_WIDTH(x)            ((x) & 0x7ff)
#define IEP2_REG_DIL_CONFIG0            0x0040
#define     IEP2_REG_DIL_MV_HIST_EN            BIT(17)
#define     IEP2_REG_DIL_ROI_EN                BIT(16)
#define     IEP2_REG_DIL_COMB_EN            BIT(15)
#define     IEP2_REG_DIL_BLE_EN                BIT(14)
#define     IEP2_REG_DIL_EEDI_EN            BIT(13)
#define     IEP2_REG_DIL_MEMC_EN            BIT(12)
#define     IEP2_REG_DIL_OSD_EN                BIT(11)
#define     IEP2_REG_DIL_PD_EN                BIT(10)
#define     IEP2_REG_DIL_FF_EN                BIT(9)
#define     IEP2_REG_DIL_MD_PRE_EN            BIT(8)
#define     IEP2_REG_DIL_FIELD_ORDER(x)            (((x) & 1) << 5)
#define     IEP2_REG_DIL_OUT_MODE(x)            (((x) & 1) << 4)
#define     IEP2_REG_DIL_MODE(x)            ((x) & 0xf)
#define IEP2_REG_TIMEOUT_CFG                    0x0050
#define     IEP2_REG_TIMEOUT_CFG_EN            BIT(31)
#define IEP2_REG_DBG_FRM_CNT            0x0058
#define IEP2_REG_DBG_TIMEOUT_CNT        0x005c
#define IEP2_REG_SRC_ADDR_CURY            0x0060
#define IEP2_REG_SRC_ADDR_NXTY            0x0064
#define IEP2_REG_SRC_ADDR_PREY            0x0068
#define IEP2_REG_SRC_ADDR_CURUV            0x006c
#define IEP2_REG_SRC_ADDR_CURV            0x0070
#define IEP2_REG_SRC_ADDR_NXTUV            0x0074
#define IEP2_REG_SRC_ADDR_NXTV            0x0078
#define IEP2_REG_SRC_ADDR_PREUV            0x007c
#define IEP2_REG_SRC_ADDR_PREV            0x0080
#define IEP2_REG_SRC_ADDR_MD            0x0084
#define IEP2_REG_SRC_ADDR_MV            0x0088
#define IEP2_REG_ROI_ADDR            0x008c
#define IEP2_REG_DST_ADDR_TOPY            0x00b0
#define IEP2_REG_DST_ADDR_BOTY            0x00b4
#define IEP2_REG_DST_ADDR_TOPC            0x00b8
#define IEP2_REG_DST_ADDR_BOTC            0x00bc
#define IEP2_REG_DST_ADDR_MD            0x00c0
#define IEP2_REG_DST_ADDR_MV            0x00c4
#define IEP2_REG_MD_CONFIG0            0x00e0
#define     IEP2_REG_MD_THETA(x)            (((x) & 3) << 8)
#define     IEP2_REG_MD_R(x)                (((x) & 0xf) << 4)
#define     IEP2_REG_MD_LAMBDA(x)            ((x) & 0xf)
#define IEP2_REG_DECT_CONFIG0            0x00e4
#define     IEP2_REG_OSD_GRADV_THR(x)            (((x) & 0xff) << 24)
#define     IEP2_REG_OSD_GRADH_THR(x)            (((x) & 0xff) << 16)
#define     IEP2_REG_OSD_AREA_NUM(x)            (((x) & 0xf) << 8)
#define     IEP2_REG_DECT_RESI_THR(x)            ((x) & 0xff)
#define IEP2_REG_OSD_LIMIT_CONFIG        0x00f0
#define     IEP2_REG_OSD_POS_LIMIT_NUM(x)        (((x) & 7) << 4)
#define     IEP2_REG_OSD_POS_LIMIT_EN            BIT(0)
#define IEP2_REG_OSD_LIMIT_AREA(i)        (0x00f4 + ((i) * 4))
#define IEP2_REG_OSD_CONFIG0            0x00fc
#define     IEP2_REG_OSD_LINE_NUM(x)            (((x) & 0x1ff) << 16)
#define     IEP2_REG_OSD_PEC_THR(x)            ((x) & 0x7ff)
#define IEP2_REG_OSD_AREA_CONF(i)        (0x0100 + ((i) * 4))
#define     IEP2_REG_OSD_Y_END(x)            (((x) & 0x1ff) << 23)
#define     IEP2_REG_OSD_Y_STA(x)            (((x) & 0x1ff) << 14)
#define     IEP2_REG_OSD_X_END(x)            (((x) & 0x7f) << 7)
#define     IEP2_REG_OSD_X_STA(x)            ((x) & 0x7f)
#define IEP2_REG_ME_CONFIG0            0x0120
#define     IEP2_REG_ME_THR_OFFSET(x)            (((x) & 0xff) << 16)
#define     IEP2_REG_MV_SIMILAR_NUM_THR0(x)        (((x) & 0xf) << 12)
#define     IEP2_REG_MV_SIMILAR_THR(x)            (((x) & 0xf) << 8)
#define     IEP2_REG_MV_BONUS(x)            (((x) & 0xf) << 4)
#define     IEP2_REG_ME_PENA(x)                ((x) & 0xf)
#define IEP2_REG_ME_LIMIT_CONFIG        0x0124
#define     IEP2_REG_MV_RIGHT_LIMIT(x)            (((x) & 0x3f) << 8)
#define     IEP2_REG_MV_LEFT_LIMIT(x)            ((x) & 0x3f)
#define IEP2_REG_MV_TRU_LIST(i)            (0x0128 + ((i) * 4))
#define     IEP2_REG_MV_TRU_LIST3_7(x)            (((x) & 0x3f) << 26)
#define     IEP2_REG_MV_TRU_LIST3_7_VLD            BIT(24)
#define     IEP2_REG_MV_TRU_LIST2_6(x)            (((x) & 0x3f) << 18)
#define     IEP2_REG_MV_TRU_LIST2_6_VLD            BIT(16)
#define     IEP2_REG_MV_TRU_LIST1_5(x)            (((x) & 0x3f) << 10)
#define     IEP2_REG_MV_TRU_LIST1_5_VLD            BIT(8)
#define     IEP2_REG_MV_TRU_LIST0_4(x)            (((x) & 0x3f) << 2)
#define     IEP2_REG_MV_TRU_LIST0_4_VLD            BIT(0)
#define IEP2_REG_EEDI_CONFIG0            0x0130
#define     IEP2_REG_EEDI_THR0(x)            ((x) & 0x1f)
#define IEP2_REG_BLE_CONFIG0            0x0134
#define     IEP2_REG_BLE_BACKTOMA_NUM(x)        ((x) & 7)
#define IEP2_REG_COMB_CONFIG0            0x0138
#define     IEP2_REG_COMB_CNT_THR(x)            (((x) & 0xf) << 24)
#define     IEP2_REG_COMB_FEATRUE_THR(x)        (((x) & 0x3f) << 16)
#define     IEP2_REG_COMB_T_THR(x)            (((x) & 0xff) << 8)
#define     IEP2_REG_COMB_OSD_VLD(i)            BIT(i)
#define IEP2_REG_DIL_MTN_TAB(i)            (0x0140 + ((i) * 4))
#define     IEP2_REG_MTN_SUB_TAB3_7_11_15(x)        (((x) & 0x7f) << 24)
#define     IEP2_REG_MTN_SUB_TAB2_6_10_14(x)        (((x) & 0x7f) << 16)
#define     IEP2_REG_MTN_SUB_TAB1_5_9_13(x)        (((x) & 0x7f) << 8)
#define     IEP2_REG_MTN_SUB_TAB0_4_8_12(x)        ((x) & 0x7f)
#define IEP2_REG_RO_PD_TCNT            0x0400
#define IEP2_REG_RO_PD_BCNT            0x0404
#define IEP2_REG_RO_FF_CUR_TCNT            0x0408
#define IEP2_REG_RO_FF_CUR_BCNT            0x040c
#define IEP2_REG_RO_FF_NXT_TCNT            0x0410
#define IEP2_REG_RO_FF_NXT_BCNT            0x0414
#define IEP2_REG_RO_FF_BLE_TCNT            0x0418
#define IEP2_REG_RO_FF_BLE_BCNT            0x041c
#define IEP2_REG_RO_FF_COMB_NZ            0x0420
#define IEP2_REG_RO_FF_COMB_F            0x0424
#define IEP2_REG_RO_OSD_NUM            0x0428
#define IEP2_REG_RO_COMB_CNT            0x042c
#define     IEP2_REG_RO_OUT_OSD_COMB_CNT(x)        ((x) >> 16)
#define     IEP2_REG_RO_OUT_COMB_CNT(x)            ((x) & 0xffff)
#define IEP2_REG_RO_FF_GRADT_TCNT        0x0430
#define IEP2_REG_RO_FF_GRADT_BCNT        0x0434
#define IEP2_REG_RO_OSD_AREA_X(i)        (0x0440 + ((i) * 8))
#define     IEP2_REG_RO_X_END(x)            (((x) >> 16) & 0x7ff)
#define     IEP2_REG_RO_X_STA(x)            ((x) & 0x7ff)
#define IEP2_REG_RO_OSD_AREA_Y(i)        (0x0444 + ((i) * 8))
#define     IEP2_REG_RO_Y_END(x)            (((x) >> 16) & 0x7ff)
#define     IEP2_REG_RO_Y_STA(x)            ((x) & 0x7ff)
#define IEP2_REG_RO_MV_HIST_BIN(i)        (0x480 + ((i) * 4))
#define     IEP2_REG_RO_MV_HIST_ODD(x)            ((x) >> 16)
#define     IEP2_REG_RO_MV_HIST_EVEN(x)            ((x) & 0xffff)
 
#endif