1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun * Rockchip isp1 driver
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun * Copyright (C) 2017 Rockchip Electronics Co., Ltd.
5*4882a593Smuzhiyun *
6*4882a593Smuzhiyun * This software is available to you under a choice of one of two
7*4882a593Smuzhiyun * licenses. You may choose to be licensed under the terms of the GNU
8*4882a593Smuzhiyun * General Public License (GPL) Version 2, available from the file
9*4882a593Smuzhiyun * COPYING in the main directory of this source tree, or the
10*4882a593Smuzhiyun * OpenIB.org BSD license below:
11*4882a593Smuzhiyun *
12*4882a593Smuzhiyun * Redistribution and use in source and binary forms, with or
13*4882a593Smuzhiyun * without modification, are permitted provided that the following
14*4882a593Smuzhiyun * conditions are met:
15*4882a593Smuzhiyun *
16*4882a593Smuzhiyun * - Redistributions of source code must retain the above
17*4882a593Smuzhiyun * copyright notice, this list of conditions and the following
18*4882a593Smuzhiyun * disclaimer.
19*4882a593Smuzhiyun *
20*4882a593Smuzhiyun * - Redistributions in binary form must reproduce the above
21*4882a593Smuzhiyun * copyright notice, this list of conditions and the following
22*4882a593Smuzhiyun * disclaimer in the documentation and/or other materials
23*4882a593Smuzhiyun * provided with the distribution.
24*4882a593Smuzhiyun *
25*4882a593Smuzhiyun * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
26*4882a593Smuzhiyun * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27*4882a593Smuzhiyun * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
28*4882a593Smuzhiyun * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
29*4882a593Smuzhiyun * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
30*4882a593Smuzhiyun * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
31*4882a593Smuzhiyun * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32*4882a593Smuzhiyun * SOFTWARE.
33*4882a593Smuzhiyun */
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun #ifndef _RKISP_REGS_H
36*4882a593Smuzhiyun #define _RKISP_REGS_H
37*4882a593Smuzhiyun #include "dev.h"
38*4882a593Smuzhiyun #include "regs_v2x.h"
39*4882a593Smuzhiyun #include "regs_v3x.h"
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun #define CIF_ISP_PACK_4BYTE(a, b, c, d) \
42*4882a593Smuzhiyun (((a) & 0xFF) << 0 | ((b) & 0xFF) << 8 | \
43*4882a593Smuzhiyun ((c) & 0xFF) << 16 | ((d) & 0xFF) << 24)
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun #define CIF_ISP_PACK_2SHORT(a, b) \
46*4882a593Smuzhiyun (((a) & 0xFFFF) << 0 | ((b) & 0xFFFF) << 16)
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun /* GRF */
49*4882a593Smuzhiyun #define GRF_VI_CON0 0x430
50*4882a593Smuzhiyun #define ISP_CIF_DATA_WIDTH_MASK 0x60006000
51*4882a593Smuzhiyun #define ISP_CIF_DATA_WIDTH_8B (0 << 13 | 3 << 29)
52*4882a593Smuzhiyun #define ISP_CIF_DATA_WIDTH_10B (BIT(13) | 3 << 29)
53*4882a593Smuzhiyun #define ISP_CIF_DATA_WIDTH_12B (2 << 13 | 3 << 29)
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun /* ISP_CTRL */
56*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_ENABLE BIT(0)
57*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_MODE_RAW_PICT (0 << 1)
58*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_MODE_ITU656 (1 << 1)
59*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_MODE_ITU601 (2 << 1)
60*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_MODE_BAYER_ITU601 (3 << 1)
61*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_MODE_DATA_MODE (4 << 1)
62*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_MODE_BAYER_ITU656 (5 << 1)
63*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_MODE_RAW_PICT_ITU656 (6 << 1)
64*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_INFORM_ENABLE BIT(4)
65*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_GAMMA_IN_ENA BIT(6)
66*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_AWB_ENA BIT(7)
67*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_CFG_UPD_PERMANENT BIT(8)
68*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_CFG_UPD BIT(9)
69*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_GEN_CFG_UPD BIT(10)
70*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_GAMMA_OUT_ENA BIT(11)
71*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_FLASH_MODE_ENA BIT(12)
72*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_CSM_Y_FULL_ENA BIT(13)
73*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_CSM_C_FULL_ENA BIT(14)
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun /* ISP_ACQ_PROP */
76*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_POS_EDGE BIT(0)
77*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_HSYNC_LOW BIT(1)
78*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_VSYNC_LOW BIT(2)
79*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_BAYER_PAT_RGGB (0 << 3)
80*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_BAYER_PAT_GRBG (1 << 3)
81*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_BAYER_PAT_GBRG (2 << 3)
82*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_BAYER_PAT_BGGR (3 << 3)
83*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_BAYER_PAT(pat) ((pat) << 3)
84*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_YCBYCR (0 << 7)
85*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_YCRYCB (1 << 7)
86*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_CBYCRY (2 << 7)
87*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_CRYCBY (3 << 7)
88*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_FIELD_SEL_ALL (0 << 9)
89*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_FIELD_SEL_EVEN (1 << 9)
90*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_FIELD_SEL_ODD (2 << 9)
91*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_IN_SEL_12B (0 << 12)
92*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_IN_SEL_10B_ZERO (1 << 12)
93*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_IN_SEL_10B_MSB (2 << 12)
94*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_IN_SEL_8B_ZERO (3 << 12)
95*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_IN_SEL_8B_MSB (4 << 12)
96*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_DMA_RGB BIT(15)
97*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP_DMA_YUV BIT(16)
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun /* VI_DPCL */
100*4882a593Smuzhiyun #define CIF_VI_DPCL_DMA_JPEG (0 << 0)
101*4882a593Smuzhiyun #define CIF_VI_DPCL_MP_MUX_MRSZ_MI (1 << 0)
102*4882a593Smuzhiyun #define CIF_VI_DPCL_MP_MUX_MRSZ_JPEG (2 << 0)
103*4882a593Smuzhiyun #define CIF_VI_DPCL_CHAN_MODE_MP (1 << 2)
104*4882a593Smuzhiyun #define CIF_VI_DPCL_CHAN_MODE_SP (2 << 2)
105*4882a593Smuzhiyun #define CIF_VI_DPCL_CHAN_MODE_MPSP (3 << 2)
106*4882a593Smuzhiyun #define CIF_VI_DPCL_DMA_SW_SPMUX (0 << 4)
107*4882a593Smuzhiyun #define CIF_VI_DPCL_DMA_SW_SI (1 << 4)
108*4882a593Smuzhiyun #define CIF_VI_DPCL_DMA_SW_IE (2 << 4)
109*4882a593Smuzhiyun #define CIF_VI_DPCL_DMA_SW_JPEG (3 << 4)
110*4882a593Smuzhiyun #define CIF_VI_DPCL_DMA_SW_ISP (4 << 4)
111*4882a593Smuzhiyun #define CIF_VI_DPCL_IF_SEL_PARALLEL (0 << 8)
112*4882a593Smuzhiyun #define CIF_VI_DPCL_IF_SEL_SMIA (1 << 8)
113*4882a593Smuzhiyun #define CIF_VI_DPCL_IF_SEL_MIPI (2 << 8)
114*4882a593Smuzhiyun #define CIF_VI_DPCL_DMA_IE_MUX_DMA BIT(10)
115*4882a593Smuzhiyun #define CIF_VI_DPCL_DMA_SP_MUX_DMA BIT(11)
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun /* ISP_IMSC - ISP_MIS - ISP_RIS - ISP_ICR - ISP_ISR */
118*4882a593Smuzhiyun #define CIF_ISP_OFF BIT(0)
119*4882a593Smuzhiyun #define CIF_ISP_FRAME BIT(1)
120*4882a593Smuzhiyun #define CIF_ISP_DATA_LOSS BIT(2)
121*4882a593Smuzhiyun #define CIF_ISP_PIC_SIZE_ERROR BIT(3)
122*4882a593Smuzhiyun #define CIF_ISP_AWB_DONE BIT(4)
123*4882a593Smuzhiyun #define CIF_ISP_FRAME_IN BIT(5)
124*4882a593Smuzhiyun #define CIF_ISP_V_START BIT(6)
125*4882a593Smuzhiyun #define CIF_ISP_H_START BIT(7)
126*4882a593Smuzhiyun #define CIF_ISP_FLASH_ON BIT(8)
127*4882a593Smuzhiyun #define CIF_ISP_FLASH_OFF BIT(9)
128*4882a593Smuzhiyun #define CIF_ISP_SHUTTER_ON BIT(10)
129*4882a593Smuzhiyun #define CIF_ISP_SHUTTER_OFF BIT(11)
130*4882a593Smuzhiyun #define CIF_ISP_AFM_SUM_OF BIT(12)
131*4882a593Smuzhiyun #define CIF_ISP_AFM_LUM_OF BIT(13)
132*4882a593Smuzhiyun #define CIF_ISP_AFM_FIN BIT(14)
133*4882a593Smuzhiyun #define CIF_ISP_HIST_MEASURE_RDY BIT(15)
134*4882a593Smuzhiyun #define CIF_ISP_FLASH_CAP BIT(17)
135*4882a593Smuzhiyun #define CIF_ISP_EXP_END BIT(18)
136*4882a593Smuzhiyun #define CIF_ISP_VSM_END BIT(19)
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun /* ISP_ERR */
139*4882a593Smuzhiyun #define CIF_ISP_ERR_INFORM_SIZE BIT(0)
140*4882a593Smuzhiyun #define CIF_ISP_ERR_IS_SIZE BIT(1)
141*4882a593Smuzhiyun #define CIF_ISP_ERR_OUTFORM_SIZE BIT(2)
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun /* MI_CTRL */
144*4882a593Smuzhiyun #define CIF_MI_CTRL_MP_ENABLE (1 << 0)
145*4882a593Smuzhiyun #define CIF_MI_CTRL_SP_ENABLE (2 << 0)
146*4882a593Smuzhiyun #define CIF_MI_CTRL_JPEG_ENABLE (4 << 0)
147*4882a593Smuzhiyun #define CIF_MI_CTRL_RAW_ENABLE (8 << 0)
148*4882a593Smuzhiyun #define CIF_MI_CTRL_HFLIP BIT(4)
149*4882a593Smuzhiyun #define CIF_MI_CTRL_VFLIP BIT(5)
150*4882a593Smuzhiyun #define CIF_MI_CTRL_ROT BIT(6)
151*4882a593Smuzhiyun #define CIF_MI_BYTE_SWAP BIT(7)
152*4882a593Smuzhiyun #define CIF_MI_SP_Y_FULL_YUV2RGB BIT(8)
153*4882a593Smuzhiyun #define CIF_MI_SP_CBCR_FULL_YUV2RGB BIT(9)
154*4882a593Smuzhiyun #define CIF_MI_SP_422NONCOSITEED BIT(10)
155*4882a593Smuzhiyun #define CIF_MI_MP_PINGPONG_ENABLE BIT(11)
156*4882a593Smuzhiyun #define CIF_MI_SP_PINGPONG_ENABLE BIT(12)
157*4882a593Smuzhiyun #define CIF_MI_MP_AUTOUPDATE_ENABLE BIT(13)
158*4882a593Smuzhiyun #define CIF_MI_SP_AUTOUPDATE_ENABLE BIT(14)
159*4882a593Smuzhiyun #define CIF_MI_LAST_PIXEL_SIG_ENABLE BIT(15)
160*4882a593Smuzhiyun #define CIF_MI_CTRL_BURST_LEN_LUM_4 (0 << 16)
161*4882a593Smuzhiyun #define CIF_MI_CTRL_BURST_LEN_LUM_8 (1 << 16)
162*4882a593Smuzhiyun #define CIF_MI_CTRL_BURST_LEN_LUM_16 (2 << 16)
163*4882a593Smuzhiyun #define CIF_MI_CTRL_BURST_LEN_CHROM_4 (0 << 18)
164*4882a593Smuzhiyun #define CIF_MI_CTRL_BURST_LEN_CHROM_8 (1 << 18)
165*4882a593Smuzhiyun #define CIF_MI_CTRL_BURST_LEN_CHROM_16 (2 << 18)
166*4882a593Smuzhiyun #define CIF_MI_CTRL_INIT_BASE_EN BIT(20)
167*4882a593Smuzhiyun #define CIF_MI_CTRL_INIT_OFFSET_EN BIT(21)
168*4882a593Smuzhiyun #define MI_CTRL_MP_WRITE_YUV_PLA_OR_RAW8 (0 << 22)
169*4882a593Smuzhiyun #define MI_CTRL_MP_WRITE_YUV_SPLA (1 << 22)
170*4882a593Smuzhiyun #define MI_CTRL_MP_WRITE_YUVINT (2 << 22)
171*4882a593Smuzhiyun #define MI_CTRL_MP_WRITE_RAW12 (2 << 22)
172*4882a593Smuzhiyun #define MI_CTRL_SP_WRITE_PLA (0 << 24)
173*4882a593Smuzhiyun #define MI_CTRL_SP_WRITE_SPLA (1 << 24)
174*4882a593Smuzhiyun #define MI_CTRL_SP_WRITE_INT (2 << 24)
175*4882a593Smuzhiyun #define MI_CTRL_SP_INPUT_YUV400 (0 << 26)
176*4882a593Smuzhiyun #define MI_CTRL_SP_INPUT_YUV420 (1 << 26)
177*4882a593Smuzhiyun #define MI_CTRL_SP_INPUT_YUV422 (2 << 26)
178*4882a593Smuzhiyun #define MI_CTRL_SP_INPUT_YUV444 (3 << 26)
179*4882a593Smuzhiyun #define MI_CTRL_SP_OUTPUT_YUV400 (0 << 28)
180*4882a593Smuzhiyun #define MI_CTRL_SP_OUTPUT_YUV420 (1 << 28)
181*4882a593Smuzhiyun #define MI_CTRL_SP_OUTPUT_YUV422 (2 << 28)
182*4882a593Smuzhiyun #define MI_CTRL_SP_OUTPUT_YUV444 (3 << 28)
183*4882a593Smuzhiyun #define MI_CTRL_SP_OUTPUT_RGB565 (4 << 28)
184*4882a593Smuzhiyun #define MI_CTRL_SP_OUTPUT_RGB666 (5 << 28)
185*4882a593Smuzhiyun #define MI_CTRL_SP_OUTPUT_ARGB888 (6 << 28)
186*4882a593Smuzhiyun #define MI_CTRL_SP_OUTPUT_RGB888 (7 << 28)
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun #define MI_CTRL_MP_FMT_MASK GENMASK(23, 22)
189*4882a593Smuzhiyun #define MI_CTRL_SP_FMT_MASK GENMASK(30, 24)
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun /* MI_INIT */
192*4882a593Smuzhiyun #define CIF_MI_INIT_SKIP BIT(2)
193*4882a593Smuzhiyun #define CIF_MI_INIT_SOFT_UPD BIT(4)
194*4882a593Smuzhiyun
195*4882a593Smuzhiyun /* MI_CTRL_SHD */
196*4882a593Smuzhiyun #define CIF_MI_CTRL_SHD_MP_IN_ENABLED BIT(0)
197*4882a593Smuzhiyun #define CIF_MI_CTRL_SHD_SP_IN_ENABLED BIT(1)
198*4882a593Smuzhiyun #define CIF_MI_CTRL_SHD_JPEG_IN_ENABLED BIT(2)
199*4882a593Smuzhiyun #define CIF_MI_CTRL_SHD_RAW_IN_ENABLED BIT(3)
200*4882a593Smuzhiyun #define CIF_MI_CTRL_SHD_MP_OUT_ENABLED BIT(16)
201*4882a593Smuzhiyun #define CIF_MI_CTRL_SHD_SP_OUT_ENABLED BIT(17)
202*4882a593Smuzhiyun #define CIF_MI_CTRL_SHD_JPEG_OUT_ENABLED BIT(18)
203*4882a593Smuzhiyun #define CIF_MI_CTRL_SHD_RAW_OUT_ENABLED BIT(19)
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun /* MI_CTRL2 */
206*4882a593Smuzhiyun #define CIF_MI_CTRL2_MIPI_RAW0_PINGPONG_EN BIT(2)
207*4882a593Smuzhiyun #define CIF_MI_CTRL2_MIPI_RAW0_AUTO_UPDATE BIT(1)
208*4882a593Smuzhiyun #define CIF_MI_CTRL2_MIPI_RAW0_ENABLE BIT(0)
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun /* RSZ_CTRL */
211*4882a593Smuzhiyun #define CIF_RSZ_CTRL_SCALE_HY_ENABLE BIT(0)
212*4882a593Smuzhiyun #define CIF_RSZ_CTRL_SCALE_HC_ENABLE BIT(1)
213*4882a593Smuzhiyun #define CIF_RSZ_CTRL_SCALE_VY_ENABLE BIT(2)
214*4882a593Smuzhiyun #define CIF_RSZ_CTRL_SCALE_VC_ENABLE BIT(3)
215*4882a593Smuzhiyun #define CIF_RSZ_CTRL_SCALE_HY_UP BIT(4)
216*4882a593Smuzhiyun #define CIF_RSZ_CTRL_SCALE_HC_UP BIT(5)
217*4882a593Smuzhiyun #define CIF_RSZ_CTRL_SCALE_VY_UP BIT(6)
218*4882a593Smuzhiyun #define CIF_RSZ_CTRL_SCALE_VC_UP BIT(7)
219*4882a593Smuzhiyun #define CIF_RSZ_CTRL_CFG_UPD BIT(8)
220*4882a593Smuzhiyun #define CIF_RSZ_CTRL_CFG_UPD_AUTO BIT(9)
221*4882a593Smuzhiyun #define CIF_RSZ_SCALER_FACTOR BIT(16)
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun /* MI_IMSC - MI_MIS - MI_RIS - MI_ICR - MI_ISR */
224*4882a593Smuzhiyun #define CIF_MI_FRAME(stream) ({ \
225*4882a593Smuzhiyun typeof(stream) __stream = (stream); \
226*4882a593Smuzhiyun !__stream->config ? 0 : \
227*4882a593Smuzhiyun __stream->config->frame_end_id; \
228*4882a593Smuzhiyun })
229*4882a593Smuzhiyun #define CIF_MI_MP_FRAME BIT(0)
230*4882a593Smuzhiyun #define CIF_MI_SP_FRAME BIT(1)
231*4882a593Smuzhiyun #define CIF_MI_MBLK_LINE BIT(2)
232*4882a593Smuzhiyun #define CIF_MI_FILL_MP_Y BIT(3)
233*4882a593Smuzhiyun #define CIF_MI_WRAP_MP_Y BIT(4)
234*4882a593Smuzhiyun #define CIF_MI_WRAP_MP_CB BIT(5)
235*4882a593Smuzhiyun #define CIF_MI_WRAP_MP_CR BIT(6)
236*4882a593Smuzhiyun #define CIF_MI_WRAP_SP_Y BIT(7)
237*4882a593Smuzhiyun #define CIF_MI_WRAP_SP_CB BIT(8)
238*4882a593Smuzhiyun #define CIF_MI_WRAP_SP_CR BIT(9)
239*4882a593Smuzhiyun #define CIF_MI_DMA_READY BIT(11)
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun /* MI_STATUS */
242*4882a593Smuzhiyun #define CIF_MI_STATUS_MP_Y_FIFO_FULL BIT(0)
243*4882a593Smuzhiyun #define CIF_MI_STATUS_SP_Y_FIFO_FULL BIT(4)
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun /* MI_DMA_CTRL */
246*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_BURST_LEN_LUM_4 (0 << 0)
247*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_BURST_LEN_LUM_8 BIT(0)
248*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_BURST_LEN_LUM_16 BIT(1)
249*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_BURST_LEN_CHROM_4 (0 << 2)
250*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_BURST_LEN_CHROM_8 BIT(2)
251*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_BURST_LEN_CHROM_16 BIT(3)
252*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_READ_FMT_PLANAR (0 << 4)
253*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_READ_FMT_SPLANAR (1 << 4)
254*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_READ_FMT_PACKED (2 << 4)
255*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_FMT_YUV400 (0 << 6)
256*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_FMT_YUV420 (1 << 6)
257*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_FMT_YUV422 (2 << 6)
258*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_FMT_YUV444 (3 << 6)
259*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_BYTE_SWAP BIT(8)
260*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_CONTINUOUS_ENA BIT(9)
261*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_RGB_BAYER_NO (0 << 12)
262*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_RGB_BAYER_8BIT (1 << 12)
263*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL_RGB_BAYER_16BIT (2 << 12)
264*4882a593Smuzhiyun /* MI_DMA_START */
265*4882a593Smuzhiyun #define CIF_MI_DMA_START_ENABLE BIT(0)
266*4882a593Smuzhiyun /* MI_XTD_FORMAT_CTRL */
267*4882a593Smuzhiyun #define CIF_MI_XTD_FMT_CTRL_MP_CB_CR_SWAP BIT(0)
268*4882a593Smuzhiyun #define CIF_MI_XTD_FMT_CTRL_SP_CB_CR_SWAP BIT(1)
269*4882a593Smuzhiyun #define CIF_MI_XTD_FMT_CTRL_DMA_CB_CR_SWAP BIT(2)
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun /* CCL */
272*4882a593Smuzhiyun #define CIF_CCL_CIF_CLK_DIS BIT(2)
273*4882a593Smuzhiyun /* VI_ISP_CLK_CTRL */
274*4882a593Smuzhiyun #define CIF_CLK_CTRL_ISP_RAW BIT(0)
275*4882a593Smuzhiyun #define CIF_CLK_CTRL_ISP_RGB BIT(1)
276*4882a593Smuzhiyun #define CIF_CLK_CTRL_ISP_YUV BIT(2)
277*4882a593Smuzhiyun #define CIF_CLK_CTRL_ISP_3A BIT(3)
278*4882a593Smuzhiyun #define CIF_CLK_CTRL_MIPI_RAW BIT(4)
279*4882a593Smuzhiyun #define CIF_CLK_CTRL_ISP_IE BIT(5)
280*4882a593Smuzhiyun #define CIF_CLK_CTRL_RSZ_RAM BIT(6)
281*4882a593Smuzhiyun #define CIF_CLK_CTRL_JPEG_RAM BIT(7)
282*4882a593Smuzhiyun #define CIF_CLK_CTRL_ACLK_ISP BIT(8)
283*4882a593Smuzhiyun #define CIF_CLK_CTRL_MI_IDC BIT(9)
284*4882a593Smuzhiyun #define CIF_CLK_CTRL_MI_MP BIT(10)
285*4882a593Smuzhiyun #define CIF_CLK_CTRL_MI_JPEG BIT(11)
286*4882a593Smuzhiyun #define CIF_CLK_CTRL_MI_DP BIT(12)
287*4882a593Smuzhiyun #define CIF_CLK_CTRL_MI_Y12 BIT(13)
288*4882a593Smuzhiyun #define CIF_CLK_CTRL_MI_SP BIT(14)
289*4882a593Smuzhiyun #define CIF_CLK_CTRL_MI_RAW0 BIT(15)
290*4882a593Smuzhiyun #define CIF_CLK_CTRL_MI_RAW1 BIT(16)
291*4882a593Smuzhiyun #define CIF_CLK_CTRL_MI_READ BIT(17)
292*4882a593Smuzhiyun #define CIF_CLK_CTRL_MI_RAWRD BIT(18)
293*4882a593Smuzhiyun #define CIF_CLK_CTRL_CP BIT(19)
294*4882a593Smuzhiyun #define CIF_CLK_CTRL_IE BIT(20)
295*4882a593Smuzhiyun #define CIF_CLK_CTRL_SI BIT(21)
296*4882a593Smuzhiyun #define CIF_CLK_CTRL_RSZM BIT(22)
297*4882a593Smuzhiyun #define CIF_CLK_CTRL_DPMUX BIT(23)
298*4882a593Smuzhiyun #define CIF_CLK_CTRL_JPEG BIT(24)
299*4882a593Smuzhiyun #define CIF_CLK_CTRL_RSZS BIT(25)
300*4882a593Smuzhiyun #define CIF_CLK_CTRL_MIPI BIT(26)
301*4882a593Smuzhiyun #define CIF_CLK_CTRL_MARVINMI BIT(27)
302*4882a593Smuzhiyun /* ICCL */
303*4882a593Smuzhiyun #define CIF_ICCL_ISP_CLK BIT(0)
304*4882a593Smuzhiyun #define CIF_ICCL_CP_CLK BIT(1)
305*4882a593Smuzhiyun #define CIF_ICCL_RES_2 BIT(2)
306*4882a593Smuzhiyun #define CIF_ICCL_MRSZ_CLK BIT(3)
307*4882a593Smuzhiyun #define CIF_ICCL_SRSZ_CLK BIT(4)
308*4882a593Smuzhiyun #define CIF_ICCL_JPEG_CLK BIT(5)
309*4882a593Smuzhiyun #define CIF_ICCL_MI_CLK BIT(6)
310*4882a593Smuzhiyun #define CIF_ICCL_RES_7 BIT(7)
311*4882a593Smuzhiyun #define CIF_ICCL_IE_CLK BIT(8)
312*4882a593Smuzhiyun #define CIF_ICCL_SIMP_CLK BIT(9)
313*4882a593Smuzhiyun #define CIF_ICCL_SMIA_CLK BIT(10)
314*4882a593Smuzhiyun #define CIF_ICCL_MIPI_CLK BIT(11)
315*4882a593Smuzhiyun #define CIF_ICCL_DCROP_CLK BIT(12)
316*4882a593Smuzhiyun /* IRCL */
317*4882a593Smuzhiyun #define CIF_IRCL_ISP_SW_RST BIT(0)
318*4882a593Smuzhiyun #define CIF_IRCL_CP_SW_RST BIT(1)
319*4882a593Smuzhiyun #define CIF_IRCL_YCS_SW_RST BIT(2)
320*4882a593Smuzhiyun #define CIF_IRCL_MRSZ_SW_RST BIT(3)
321*4882a593Smuzhiyun #define CIF_IRCL_SRSZ_SW_RST BIT(4)
322*4882a593Smuzhiyun #define CIF_IRCL_JPEG_SW_RST BIT(5)
323*4882a593Smuzhiyun #define CIF_IRCL_MI_SW_RST BIT(6)
324*4882a593Smuzhiyun #define CIF_IRCL_CIF_SW_RST BIT(7)
325*4882a593Smuzhiyun #define CIF_IRCL_IE_SW_RST BIT(8)
326*4882a593Smuzhiyun #define CIF_IRCL_SI_SW_RST BIT(9)
327*4882a593Smuzhiyun #define CIF_IRCL_MIPI_SW_RST BIT(11)
328*4882a593Smuzhiyun
329*4882a593Smuzhiyun /* C_PROC_CTR */
330*4882a593Smuzhiyun #define CIF_C_PROC_CTR_ENABLE BIT(0)
331*4882a593Smuzhiyun #define CIF_C_PROC_YOUT_FULL BIT(1)
332*4882a593Smuzhiyun #define CIF_C_PROC_YIN_FULL BIT(2)
333*4882a593Smuzhiyun #define CIF_C_PROC_COUT_FULL BIT(3)
334*4882a593Smuzhiyun #define CIF_C_PROC_CTRL_RESERVED 0xFFFFFFFE
335*4882a593Smuzhiyun #define CIF_C_PROC_CONTRAST_RESERVED 0xFFFFFF00
336*4882a593Smuzhiyun #define CIF_C_PROC_BRIGHTNESS_RESERVED 0xFFFFFF00
337*4882a593Smuzhiyun #define CIF_C_PROC_HUE_RESERVED 0xFFFFFF00
338*4882a593Smuzhiyun #define CIF_C_PROC_SATURATION_RESERVED 0xFFFFFF00
339*4882a593Smuzhiyun #define CIF_C_PROC_MACC_RESERVED 0xE000E000
340*4882a593Smuzhiyun #define CIF_C_PROC_TONE_RESERVED 0xF000
341*4882a593Smuzhiyun /* DUAL_CROP_CTRL */
342*4882a593Smuzhiyun #define CIF_DUAL_CROP_MP_MODE_BYPASS (0 << 0)
343*4882a593Smuzhiyun #define CIF_DUAL_CROP_MP_MODE_YUV (1 << 0)
344*4882a593Smuzhiyun #define CIF_DUAL_CROP_MP_MODE_RAW (2 << 0)
345*4882a593Smuzhiyun #define CIF_DUAL_CROP_SP_MODE_BYPASS (0 << 2)
346*4882a593Smuzhiyun #define CIF_DUAL_CROP_SP_MODE_YUV (1 << 2)
347*4882a593Smuzhiyun #define CIF_DUAL_CROP_SP_MODE_RAW (2 << 2)
348*4882a593Smuzhiyun #define CIF_DUAL_CROP_CFG_UPD_PERMANENT BIT(4)
349*4882a593Smuzhiyun #define CIF_DUAL_CROP_CFG_UPD BIT(5)
350*4882a593Smuzhiyun #define CIF_DUAL_CROP_GEN_CFG_UPD BIT(6)
351*4882a593Smuzhiyun
352*4882a593Smuzhiyun /* IMG_EFF_CTRL */
353*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_ENABLE BIT(0)
354*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_BLACKWHITE (0 << 1)
355*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_NEGATIVE (1 << 1)
356*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_SEPIA (2 << 1)
357*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_COLOR_SEL (3 << 1)
358*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_EMBOSS (4 << 1)
359*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_SKETCH (5 << 1)
360*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_SHARPEN (6 << 1)
361*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_RKSHARPEN (7 << 1)
362*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_CFG_UPD BIT(4)
363*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_YCBCR_FULL BIT(5)
364*4882a593Smuzhiyun
365*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_BLACKWHITE_SHIFT 0
366*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_NEGATIVE_SHIFT 1
367*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_SEPIA_SHIFT 2
368*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_COLOR_SEL_SHIFT 3
369*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_EMBOSS_SHIFT 4
370*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_SKETCH_SHIFT 5
371*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_SHARPEN_SHIFT 6
372*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_MODE_MASK 0xE
373*4882a593Smuzhiyun
374*4882a593Smuzhiyun /* IMG_EFF_COLOR_SEL */
375*4882a593Smuzhiyun #define CIF_IMG_EFF_COLOR_RGB 0
376*4882a593Smuzhiyun #define CIF_IMG_EFF_COLOR_B (1 << 0)
377*4882a593Smuzhiyun #define CIF_IMG_EFF_COLOR_G (2 << 0)
378*4882a593Smuzhiyun #define CIF_IMG_EFF_COLOR_GB (3 << 0)
379*4882a593Smuzhiyun #define CIF_IMG_EFF_COLOR_R (4 << 0)
380*4882a593Smuzhiyun #define CIF_IMG_EFF_COLOR_RB (5 << 0)
381*4882a593Smuzhiyun #define CIF_IMG_EFF_COLOR_RG (6 << 0)
382*4882a593Smuzhiyun #define CIF_IMG_EFF_COLOR_RGB2 (7 << 0)
383*4882a593Smuzhiyun
384*4882a593Smuzhiyun /* MIPI_CTRL */
385*4882a593Smuzhiyun #define CIF_MIPI_CTRL_OUTPUT_ENA BIT(0)
386*4882a593Smuzhiyun #define CIF_MIPI_CTRL_FLUSH_FIFO BIT(1)
387*4882a593Smuzhiyun #define CIF_MIPI_CTRL_SHUTDOWNLANES(a) (((a) & 0xF) << 8)
388*4882a593Smuzhiyun #define CIF_MIPI_CTRL_NUM_LANES(a) (((a) & 0x3) << 12)
389*4882a593Smuzhiyun #define CIF_MIPI_CTRL_ERR_SOT_HS_SKIP BIT(16)
390*4882a593Smuzhiyun #define CIF_MIPI_CTRL_ERR_SOT_SYNC_HS_SKIP BIT(17)
391*4882a593Smuzhiyun #define CIF_MIPI_CTRL_CLOCKLANE_ENA BIT(18)
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun /* MIPI_DATA_SEL */
394*4882a593Smuzhiyun #define CIF_MIPI_DATA_SEL_VC(a) (((a) & 0x3) << 6)
395*4882a593Smuzhiyun #define CIF_MIPI_DATA_SEL_DT(a) (((a) & 0x3F) << 0)
396*4882a593Smuzhiyun /* MIPI DATA_TYPE */
397*4882a593Smuzhiyun #define CIF_CSI2_DT_EBD 0x12
398*4882a593Smuzhiyun #define CIF_CSI2_DT_YUV420_8b 0x18
399*4882a593Smuzhiyun #define CIF_CSI2_DT_YUV420_10b 0x19
400*4882a593Smuzhiyun #define CIF_CSI2_DT_YUV422_8b 0x1E
401*4882a593Smuzhiyun #define CIF_CSI2_DT_YUV422_10b 0x1F
402*4882a593Smuzhiyun #define CIF_CSI2_DT_RGB565 0x22
403*4882a593Smuzhiyun #define CIF_CSI2_DT_RGB666 0x23
404*4882a593Smuzhiyun #define CIF_CSI2_DT_RGB888 0x24
405*4882a593Smuzhiyun #define CIF_CSI2_DT_RAW8 0x2A
406*4882a593Smuzhiyun #define CIF_CSI2_DT_RAW10 0x2B
407*4882a593Smuzhiyun #define CIF_CSI2_DT_RAW12 0x2C
408*4882a593Smuzhiyun #define CIF_CSI2_DT_SPD 0x2F
409*4882a593Smuzhiyun
410*4882a593Smuzhiyun /* MIPI_IMSC, MIPI_RIS, MIPI_MIS, MIPI_ICR, MIPI_ISR */
411*4882a593Smuzhiyun #define CIF_MIPI_SYNC_FIFO_OVFLW(a) (((a) & 0xF) << 0)
412*4882a593Smuzhiyun #define CIF_MIPI_ERR_SOT(a) (((a) & 0xF) << 4)
413*4882a593Smuzhiyun #define CIF_MIPI_ERR_SOT_SYNC(a) (((a) & 0xF) << 8)
414*4882a593Smuzhiyun #define CIF_MIPI_ERR_EOT_SYNC(a) (((a) & 0xF) << 12)
415*4882a593Smuzhiyun #define CIF_MIPI_ERR_CTRL(a) (((a) & 0xF) << 16)
416*4882a593Smuzhiyun #define CIF_MIPI_ERR_PROTOCOL BIT(20)
417*4882a593Smuzhiyun #define CIF_MIPI_ERR_ECC1 BIT(21)
418*4882a593Smuzhiyun #define CIF_MIPI_ERR_ECC2 BIT(22)
419*4882a593Smuzhiyun #define CIF_MIPI_ERR_CS BIT(23)
420*4882a593Smuzhiyun #define CIF_MIPI_FRAME_END BIT(24)
421*4882a593Smuzhiyun #define CIF_MIPI_ADD_DATA_OVFLW BIT(25)
422*4882a593Smuzhiyun #define CIF_MIPI_ADD_DATA_WATER_MARK BIT(26)
423*4882a593Smuzhiyun
424*4882a593Smuzhiyun #define CIF_MIPI_ERR_CSI (CIF_MIPI_ERR_PROTOCOL | \
425*4882a593Smuzhiyun CIF_MIPI_ERR_ECC1 | \
426*4882a593Smuzhiyun CIF_MIPI_ERR_ECC2 | \
427*4882a593Smuzhiyun CIF_MIPI_ERR_CS)
428*4882a593Smuzhiyun
429*4882a593Smuzhiyun #define CIF_MIPI_ERR_DPHY (CIF_MIPI_ERR_SOT(0xF) | \
430*4882a593Smuzhiyun CIF_MIPI_ERR_SOT_SYNC(0xF) | \
431*4882a593Smuzhiyun CIF_MIPI_ERR_EOT_SYNC(0xF) | \
432*4882a593Smuzhiyun CIF_MIPI_ERR_CTRL(0xF))
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun /* SUPER_IMPOSE */
435*4882a593Smuzhiyun #define CIF_SUPER_IMP_CTRL_NORMAL_MODE BIT(0)
436*4882a593Smuzhiyun #define CIF_SUPER_IMP_CTRL_REF_IMG_MEM BIT(1)
437*4882a593Smuzhiyun #define CIF_SUPER_IMP_CTRL_TRANSP_DIS BIT(2)
438*4882a593Smuzhiyun
439*4882a593Smuzhiyun /* ISP HISTOGRAM CALCULATION : ISP_HIST_PROP */
440*4882a593Smuzhiyun #define CIF_ISP_HIST_PROP_MODE_DIS_V10 (0 << 0)
441*4882a593Smuzhiyun #define CIF_ISP_HIST_PROP_MODE_RGB_V10 (1 << 0)
442*4882a593Smuzhiyun #define CIF_ISP_HIST_PROP_MODE_RED_V10 (2 << 0)
443*4882a593Smuzhiyun #define CIF_ISP_HIST_PROP_MODE_GREEN_V10 (3 << 0)
444*4882a593Smuzhiyun #define CIF_ISP_HIST_PROP_MODE_BLUE_V10 (4 << 0)
445*4882a593Smuzhiyun #define CIF_ISP_HIST_PROP_MODE_LUM_V10 (5 << 0)
446*4882a593Smuzhiyun #define CIF_ISP_HIST_PROP_MODE_MASK_V10 0x7
447*4882a593Smuzhiyun #define CIF_ISP_HIST_PREDIV_SET_V10(x) (((x) & 0x7F) << 3)
448*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_SET_V10(v0, v1, v2, v3) \
449*4882a593Smuzhiyun (((v0) & 0x1F) | (((v1) & 0x1F) << 8) |\
450*4882a593Smuzhiyun (((v2) & 0x1F) << 16) | \
451*4882a593Smuzhiyun (((v3) & 0x1F) << 24))
452*4882a593Smuzhiyun
453*4882a593Smuzhiyun #define CIF_ISP_HIST_WINDOW_OFFSET_RESERVED_V10 0xFFFFF000
454*4882a593Smuzhiyun #define CIF_ISP_HIST_WINDOW_SIZE_RESERVED_V10 0xFFFFF800
455*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_RESERVED_V10 0xE0E0E0E0
456*4882a593Smuzhiyun #define CIF_ISP_MAX_HIST_PREDIVIDER_V10 0x0000007F
457*4882a593Smuzhiyun #define CIF_ISP_HIST_ROW_NUM_V10 5
458*4882a593Smuzhiyun #define CIF_ISP_HIST_COLUMN_NUM_V10 5
459*4882a593Smuzhiyun
460*4882a593Smuzhiyun /* ISP HISTOGRAM CALCULATION : CIF_ISP_HIST */
461*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_EN_SET_V12(x) (((x) & 0x01) << 0)
462*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_EN_MASK_V12 CIF_ISP_HIST_CTRL_EN_SET_V12(0x01)
463*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_STEPSIZE_SET_V12(x) (((x) & 0x7F) << 1)
464*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_MODE_SET_V12(x) (((x) & 0x07) << 8)
465*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_MODE_MASK_V12 CIF_ISP_HIST_CTRL_MODE_SET_V12(0x07)
466*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_AUTOSTOP_SET_V12(x) (((x) & 0x01) << 11)
467*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_WATERLINE_SET_V12(x) (((x) & 0xFFF) << 12)
468*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_DATASEL_SET_V12(x) (((x) & 0x07) << 24)
469*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_INTRSEL_SET_V12(x) (((x) & 0x01) << 27)
470*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_WNDNUM_SET_V12(x) (((x) & 0x03) << 28)
471*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_DBGEN_SET_V12(x) (((x) & 0x01) << 30)
472*4882a593Smuzhiyun #define CIF_ISP_HIST_ROW_NUM_V12 15
473*4882a593Smuzhiyun #define CIF_ISP_HIST_COLUMN_NUM_V12 15
474*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_REG_SIZE_V12 \
475*4882a593Smuzhiyun (CIF_ISP_HIST_ROW_NUM_V12 * CIF_ISP_HIST_COLUMN_NUM_V12)
476*4882a593Smuzhiyun
477*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_SET_V12(v0, v1, v2, v3) \
478*4882a593Smuzhiyun (((v0) & 0x3F) | (((v1) & 0x3F) << 8) |\
479*4882a593Smuzhiyun (((v2) & 0x3F) << 16) |\
480*4882a593Smuzhiyun (((v3) & 0x3F) << 24))
481*4882a593Smuzhiyun
482*4882a593Smuzhiyun #define CIF_ISP_HIST_OFFS_SET_V12(v0, v1) \
483*4882a593Smuzhiyun (((v0) & 0x1FFF) | (((v1) & 0x1FFF) << 16))
484*4882a593Smuzhiyun #define CIF_ISP_HIST_SIZE_SET_V12(v0, v1) \
485*4882a593Smuzhiyun (((v0) & 0x7FF) | (((v1) & 0x7FF) << 16))
486*4882a593Smuzhiyun
487*4882a593Smuzhiyun #define CIF_ISP_HIST_GET_BIN0_V12(x) \
488*4882a593Smuzhiyun ((x) & 0xFFFF)
489*4882a593Smuzhiyun #define CIF_ISP_HIST_GET_BIN1_V12(x) \
490*4882a593Smuzhiyun (((x) >> 16) & 0xFFFF)
491*4882a593Smuzhiyun
492*4882a593Smuzhiyun /* AUTO FOCUS MEASUREMENT: ISP_AFM_CTRL */
493*4882a593Smuzhiyun #define ISP_AFM_CTRL_ENABLE BIT(0)
494*4882a593Smuzhiyun
495*4882a593Smuzhiyun /* SHUTTER CONTROL */
496*4882a593Smuzhiyun #define CIF_ISP_SH_CTRL_SH_ENA BIT(0)
497*4882a593Smuzhiyun #define CIF_ISP_SH_CTRL_REP_EN BIT(1)
498*4882a593Smuzhiyun #define CIF_ISP_SH_CTRL_SRC_SH_TRIG BIT(2)
499*4882a593Smuzhiyun #define CIF_ISP_SH_CTRL_EDGE_POS BIT(3)
500*4882a593Smuzhiyun #define CIF_ISP_SH_CTRL_POL_LOW BIT(4)
501*4882a593Smuzhiyun
502*4882a593Smuzhiyun /* FLASH MODULE */
503*4882a593Smuzhiyun /* ISP_FLASH_CMD */
504*4882a593Smuzhiyun #define CIF_FLASH_CMD_PRELIGHT_ON BIT(0)
505*4882a593Smuzhiyun #define CIF_FLASH_CMD_FLASH_ON BIT(1)
506*4882a593Smuzhiyun #define CIF_FLASH_CMD_PRE_FLASH_ON BIT(2)
507*4882a593Smuzhiyun /* ISP_FLASH_CONFIG */
508*4882a593Smuzhiyun #define CIF_FLASH_CONFIG_PRELIGHT_END BIT(0)
509*4882a593Smuzhiyun #define CIF_FLASH_CONFIG_VSYNC_POS BIT(1)
510*4882a593Smuzhiyun #define CIF_FLASH_CONFIG_PRELIGHT_LOW BIT(2)
511*4882a593Smuzhiyun #define CIF_FLASH_CONFIG_SRC_FL_TRIG BIT(3)
512*4882a593Smuzhiyun #define CIF_FLASH_CONFIG_DELAY(a) (((a) & 0xF) << 4)
513*4882a593Smuzhiyun
514*4882a593Smuzhiyun /* Demosaic: ISP_DEMOSAIC */
515*4882a593Smuzhiyun #define CIF_ISP_DEMOSAIC_BYPASS BIT(10)
516*4882a593Smuzhiyun #define CIF_ISP_DEMOSAIC_TH(x) ((x) & 0xFF)
517*4882a593Smuzhiyun
518*4882a593Smuzhiyun /* AWB */
519*4882a593Smuzhiyun /* ISP_AWB_PROP */
520*4882a593Smuzhiyun #define CIF_ISP_AWB_YMAX_CMP_EN BIT(2)
521*4882a593Smuzhiyun #define CIF_ISP_AWB_YMAX_READ(x) (((x) >> 2) & 1)
522*4882a593Smuzhiyun #define CIF_ISP_AWB_MODE_RGB_EN ((1 << 31) | (0x2 << 0))
523*4882a593Smuzhiyun #define CIF_ISP_AWB_MODE_YCBCR_EN ((0 << 31) | (0x2 << 0))
524*4882a593Smuzhiyun #define CIF_ISP_AWB_MODE_RGB BIT(31)
525*4882a593Smuzhiyun #define CIF_ISP_AWB_ENABLE (0x2 << 0)
526*4882a593Smuzhiyun #define CIF_ISP_AWB_MODE_MASK_NONE 0xFFFFFFFC
527*4882a593Smuzhiyun #define CIF_ISP_AWB_MODE_READ(x) ((x) & 3)
528*4882a593Smuzhiyun #define CIF_ISP_AWB_SET_FRAMES_V12(x) (((x) & 0x07) << 28)
529*4882a593Smuzhiyun #define CIF_ISP_AWB_SET_FRAMES_MASK_V12 CIF_ISP_AWB_SET_FRAMES_V12(0x07)
530*4882a593Smuzhiyun /* ISP_AWB_GAIN_RB, ISP_AWB_GAIN_G */
531*4882a593Smuzhiyun #define CIF_ISP_AWB_GAIN_R_SET(x) (((x) & 0x3FF) << 16)
532*4882a593Smuzhiyun #define CIF_ISP_AWB_GAIN_R_READ(x) (((x) >> 16) & 0x3FF)
533*4882a593Smuzhiyun #define CIF_ISP_AWB_GAIN_B_SET(x) ((x) & 0x3FF)
534*4882a593Smuzhiyun #define CIF_ISP_AWB_GAIN_B_READ(x) ((x) & 0x3FF)
535*4882a593Smuzhiyun /* ISP_AWB_REF */
536*4882a593Smuzhiyun #define CIF_ISP_AWB_REF_CR_SET(x) (((x) & 0xFF) << 8)
537*4882a593Smuzhiyun #define CIF_ISP_AWB_REF_CR_READ(x) (((x) >> 8) & 0xFF)
538*4882a593Smuzhiyun #define CIF_ISP_AWB_REF_CB_READ(x) ((x) & 0xFF)
539*4882a593Smuzhiyun /* ISP_AWB_THRESH */
540*4882a593Smuzhiyun #define CIF_ISP_AWB_MAX_CS_SET(x) (((x) & 0xFF) << 8)
541*4882a593Smuzhiyun #define CIF_ISP_AWB_MAX_CS_READ(x) (((x) >> 8) & 0xFF)
542*4882a593Smuzhiyun #define CIF_ISP_AWB_MIN_C_READ(x) ((x) & 0xFF)
543*4882a593Smuzhiyun #define CIF_ISP_AWB_MIN_Y_SET(x) (((x) & 0xFF) << 16)
544*4882a593Smuzhiyun #define CIF_ISP_AWB_MIN_Y_READ(x) (((x) >> 16) & 0xFF)
545*4882a593Smuzhiyun #define CIF_ISP_AWB_MAX_Y_SET(x) (((x) & 0xFF) << 24)
546*4882a593Smuzhiyun #define CIF_ISP_AWB_MAX_Y_READ(x) (((x) >> 24) & 0xFF)
547*4882a593Smuzhiyun /* ISP_AWB_MEAN */
548*4882a593Smuzhiyun #define CIF_ISP_AWB_GET_MEAN_CR_R(x) ((x) & 0xFF)
549*4882a593Smuzhiyun #define CIF_ISP_AWB_GET_MEAN_CB_B(x) (((x) >> 8) & 0xFF)
550*4882a593Smuzhiyun #define CIF_ISP_AWB_GET_MEAN_Y_G(x) (((x) >> 16) & 0xFF)
551*4882a593Smuzhiyun /* ISP_AWB_WHITE_CNT */
552*4882a593Smuzhiyun #define CIF_ISP_AWB_GET_PIXEL_CNT(x) ((x) & 0x3FFFFFF)
553*4882a593Smuzhiyun
554*4882a593Smuzhiyun #define CIF_ISP_AWB_GAINS_MAX_VAL 0x000003FF
555*4882a593Smuzhiyun #define CIF_ISP_AWB_WINDOW_OFFSET_MAX 0x00000FFF
556*4882a593Smuzhiyun #define CIF_ISP_AWB_WINDOW_MAX_SIZE 0x00001FFF
557*4882a593Smuzhiyun #define CIF_ISP_AWB_CBCR_MAX_REF 0x000000FF
558*4882a593Smuzhiyun #define CIF_ISP_AWB_THRES_MAX_YC 0x000000FF
559*4882a593Smuzhiyun
560*4882a593Smuzhiyun /* AE */
561*4882a593Smuzhiyun /* ISP_EXP_CTRL */
562*4882a593Smuzhiyun #define CIF_ISP_EXP_ENA BIT(0)
563*4882a593Smuzhiyun #define CIF_ISP_EXP_CTRL_AUTOSTOP BIT(1)
564*4882a593Smuzhiyun #define CIF_ISP_EXP_CTRL_WNDNUM_SET_V12(x) (((x) & 0x03) << 2)
565*4882a593Smuzhiyun /*
566*4882a593Smuzhiyun *'1' luminance calculation according to Y=(R+G+B) x 0.332 (85/256)
567*4882a593Smuzhiyun *'0' luminance calculation according to Y=16+0.25R+0.5G+0.1094B
568*4882a593Smuzhiyun */
569*4882a593Smuzhiyun #define CIF_ISP_EXP_CTRL_MEASMODE_1 BIT(31)
570*4882a593Smuzhiyun
571*4882a593Smuzhiyun /* ISP_EXP_H_SIZE */
572*4882a593Smuzhiyun #define CIF_ISP_EXP_H_SIZE_SET_V10(x) ((x) & 0x7FF)
573*4882a593Smuzhiyun #define CIF_ISP_EXP_HEIGHT_MASK_V10 0x000007FF
574*4882a593Smuzhiyun /* ISP_EXP_V_SIZE : vertical size must be a multiple of 2). */
575*4882a593Smuzhiyun #define CIF_ISP_EXP_V_SIZE_SET_V10(x) ((x) & 0x7FE)
576*4882a593Smuzhiyun
577*4882a593Smuzhiyun /* ISP_EXP_H_OFFSET */
578*4882a593Smuzhiyun #define CIF_ISP_EXP_H_OFFSET_SET_V10(x) ((x) & 0x1FFF)
579*4882a593Smuzhiyun #define CIF_ISP_EXP_MAX_HOFFS_V10 2424
580*4882a593Smuzhiyun /* ISP_EXP_V_OFFSET */
581*4882a593Smuzhiyun #define CIF_ISP_EXP_V_OFFSET_SET_V10(x) ((x) & 0x1FFF)
582*4882a593Smuzhiyun #define CIF_ISP_EXP_MAX_VOFFS_V10 1806
583*4882a593Smuzhiyun
584*4882a593Smuzhiyun #define CIF_ISP_EXP_ROW_NUM_V10 5
585*4882a593Smuzhiyun #define CIF_ISP_EXP_COLUMN_NUM_V10 5
586*4882a593Smuzhiyun #define CIF_ISP_EXP_NUM_LUMA_REGS_V10 \
587*4882a593Smuzhiyun (CIF_ISP_EXP_ROW_NUM_V10 * CIF_ISP_EXP_COLUMN_NUM_V10)
588*4882a593Smuzhiyun #define CIF_ISP_EXP_BLOCK_MAX_HSIZE_V10 516
589*4882a593Smuzhiyun #define CIF_ISP_EXP_BLOCK_MIN_HSIZE_V10 35
590*4882a593Smuzhiyun #define CIF_ISP_EXP_BLOCK_MAX_VSIZE_V10 390
591*4882a593Smuzhiyun #define CIF_ISP_EXP_BLOCK_MIN_VSIZE_V10 28
592*4882a593Smuzhiyun #define CIF_ISP_EXP_MAX_HSIZE_V10 \
593*4882a593Smuzhiyun (CIF_ISP_EXP_BLOCK_MAX_HSIZE_V10 * CIF_ISP_EXP_COLUMN_NUM_V10 + 1)
594*4882a593Smuzhiyun #define CIF_ISP_EXP_MIN_HSIZE_V10 \
595*4882a593Smuzhiyun (CIF_ISP_EXP_BLOCK_MIN_HSIZE_V10 * CIF_ISP_EXP_COLUMN_NUM_V10 + 1)
596*4882a593Smuzhiyun #define CIF_ISP_EXP_MAX_VSIZE_V10 \
597*4882a593Smuzhiyun (CIF_ISP_EXP_BLOCK_MAX_VSIZE_V10 * CIF_ISP_EXP_ROW_NUM_V10 + 1)
598*4882a593Smuzhiyun #define CIF_ISP_EXP_MIN_VSIZE_V10 \
599*4882a593Smuzhiyun (CIF_ISP_EXP_BLOCK_MIN_VSIZE_V10 * CIF_ISP_EXP_ROW_NUM_V10 + 1)
600*4882a593Smuzhiyun
601*4882a593Smuzhiyun /* ISP_EXP_H_SIZE */
602*4882a593Smuzhiyun #define CIF_ISP_EXP_H_SIZE_SET_V12(x) ((x) & 0x7FF)
603*4882a593Smuzhiyun #define CIF_ISP_EXP_HEIGHT_MASK_V12 0x000007FF
604*4882a593Smuzhiyun /* ISP_EXP_V_SIZE : vertical size must be a multiple of 2). */
605*4882a593Smuzhiyun #define CIF_ISP_EXP_V_SIZE_SET_V12(x) (((x) & 0x7FE) << 16)
606*4882a593Smuzhiyun
607*4882a593Smuzhiyun /* ISP_EXP_H_OFFSET */
608*4882a593Smuzhiyun #define CIF_ISP_EXP_H_OFFSET_SET_V12(x) ((x) & 0x1FFF)
609*4882a593Smuzhiyun #define CIF_ISP_EXP_MAX_HOFFS_V12 0x1FFF
610*4882a593Smuzhiyun /* ISP_EXP_V_OFFSET */
611*4882a593Smuzhiyun #define CIF_ISP_EXP_V_OFFSET_SET_V12(x) (((x) & 0x1FFF) << 16)
612*4882a593Smuzhiyun #define CIF_ISP_EXP_MAX_VOFFS_V12 0x1FFF
613*4882a593Smuzhiyun
614*4882a593Smuzhiyun #define CIF_ISP_EXP_ROW_NUM_V12 15
615*4882a593Smuzhiyun #define CIF_ISP_EXP_COLUMN_NUM_V12 15
616*4882a593Smuzhiyun #define CIF_ISP_EXP_NUM_LUMA_REGS_V12 \
617*4882a593Smuzhiyun (CIF_ISP_EXP_ROW_NUM_V12 * CIF_ISP_EXP_COLUMN_NUM_V12)
618*4882a593Smuzhiyun #define CIF_ISP_EXP_BLOCK_MAX_HSIZE_V12 0x7FF
619*4882a593Smuzhiyun #define CIF_ISP_EXP_BLOCK_MIN_HSIZE_V12 0xE
620*4882a593Smuzhiyun #define CIF_ISP_EXP_BLOCK_MAX_VSIZE_V12 0x7FE
621*4882a593Smuzhiyun #define CIF_ISP_EXP_BLOCK_MIN_VSIZE_V12 0xE
622*4882a593Smuzhiyun #define CIF_ISP_EXP_MAX_HSIZE_V12 \
623*4882a593Smuzhiyun (CIF_ISP_EXP_BLOCK_MAX_HSIZE_V12 * CIF_ISP_EXP_COLUMN_NUM_V12 + 1)
624*4882a593Smuzhiyun #define CIF_ISP_EXP_MIN_HSIZE_V12 \
625*4882a593Smuzhiyun (CIF_ISP_EXP_BLOCK_MIN_HSIZE_V12 * CIF_ISP_EXP_COLUMN_NUM_V12 + 1)
626*4882a593Smuzhiyun #define CIF_ISP_EXP_MAX_VSIZE_V12 \
627*4882a593Smuzhiyun (CIF_ISP_EXP_BLOCK_MAX_VSIZE_V12 * CIF_ISP_EXP_ROW_NUM_V12 + 1)
628*4882a593Smuzhiyun #define CIF_ISP_EXP_MIN_VSIZE_V12 \
629*4882a593Smuzhiyun (CIF_ISP_EXP_BLOCK_MIN_VSIZE_V12 * CIF_ISP_EXP_ROW_NUM_V12 + 1)
630*4882a593Smuzhiyun
631*4882a593Smuzhiyun #define CIF_ISP_EXP_GET_MEAN_xy0_V12(x) ((x) & 0xFF)
632*4882a593Smuzhiyun #define CIF_ISP_EXP_GET_MEAN_xy1_V12(x) (((x) >> 8) & 0xFF)
633*4882a593Smuzhiyun #define CIF_ISP_EXP_GET_MEAN_xy2_V12(x) (((x) >> 16) & 0xFF)
634*4882a593Smuzhiyun #define CIF_ISP_EXP_GET_MEAN_xy3_V12(x) (((x) >> 24) & 0xFF)
635*4882a593Smuzhiyun
636*4882a593Smuzhiyun /* LSC: ISP_LSC_CTRL */
637*4882a593Smuzhiyun #define CIF_ISP_LSC_CTRL_ENA BIT(0)
638*4882a593Smuzhiyun #define CIF_ISP_LSC_SECT_SIZE_RESERVED 0xFC00FC00
639*4882a593Smuzhiyun #define CIF_ISP_LSC_GRAD_RESERVED_V10 0xF000F000
640*4882a593Smuzhiyun #define CIF_ISP_LSC_SAMPLE_RESERVED_V10 0xF000F000
641*4882a593Smuzhiyun #define CIF_ISP_LSC_GRAD_RESERVED_V12 0xE000E000
642*4882a593Smuzhiyun #define CIF_ISP_LSC_SAMPLE_RESERVED_V12 0xE000E000
643*4882a593Smuzhiyun #define CIF_ISP_LSC_SECTORS_MAX 17
644*4882a593Smuzhiyun #define CIF_ISP_LSC_TABLE_DATA_V10(v0, v1) \
645*4882a593Smuzhiyun (((v0) & 0xFFF) | (((v1) & 0xFFF) << 12))
646*4882a593Smuzhiyun #define CIF_ISP_LSC_TABLE_DATA_V12(v0, v1) \
647*4882a593Smuzhiyun (((v0) & 0x1FFF) | (((v1) & 0x1FFF) << 13))
648*4882a593Smuzhiyun #define CIF_ISP_LSC_SECT_SIZE(v0, v1) \
649*4882a593Smuzhiyun (((v0) & 0xFFF) | (((v1) & 0xFFF) << 16))
650*4882a593Smuzhiyun #define CIF_ISP_LSC_GRAD_SIZE(v0, v1) \
651*4882a593Smuzhiyun (((v0) & 0xFFF) | (((v1) & 0xFFF) << 16))
652*4882a593Smuzhiyun
653*4882a593Smuzhiyun /* LSC: ISP_LSC_TABLE_SEL */
654*4882a593Smuzhiyun #define CIF_ISP_LSC_TABLE_0 0
655*4882a593Smuzhiyun #define CIF_ISP_LSC_TABLE_1 1
656*4882a593Smuzhiyun
657*4882a593Smuzhiyun /* LSC: ISP_LSC_STATUS */
658*4882a593Smuzhiyun #define CIF_ISP_LSC_ACTIVE_TABLE BIT(1)
659*4882a593Smuzhiyun #define CIF_ISP_LSC_TABLE_ADDRESS_0 0
660*4882a593Smuzhiyun #define CIF_ISP_LSC_TABLE_ADDRESS_153 153
661*4882a593Smuzhiyun
662*4882a593Smuzhiyun /* FLT */
663*4882a593Smuzhiyun /* ISP_FILT_MODE */
664*4882a593Smuzhiyun #define CIF_ISP_FLT_ENA BIT(0)
665*4882a593Smuzhiyun
666*4882a593Smuzhiyun /*
667*4882a593Smuzhiyun * 0: green filter static mode (active filter factor = FILT_FAC_MID)
668*4882a593Smuzhiyun * 1: dynamic noise reduction/sharpen Default
669*4882a593Smuzhiyun */
670*4882a593Smuzhiyun #define CIF_ISP_FLT_MODE_DNR BIT(1)
671*4882a593Smuzhiyun #define CIF_ISP_FLT_MODE_MAX 1
672*4882a593Smuzhiyun #define CIF_ISP_FLT_CHROMA_V_MODE(x) (((x) & 0x3) << 4)
673*4882a593Smuzhiyun #define CIF_ISP_FLT_CHROMA_H_MODE(x) (((x) & 0x3) << 6)
674*4882a593Smuzhiyun #define CIF_ISP_FLT_CHROMA_MODE_MAX 3
675*4882a593Smuzhiyun #define CIF_ISP_FLT_GREEN_STAGE1(x) (((x) & 0xF) << 8)
676*4882a593Smuzhiyun #define CIF_ISP_FLT_GREEN_STAGE1_MAX 8
677*4882a593Smuzhiyun #define CIF_ISP_FLT_THREAD_RESERVED 0xFFFFFC00
678*4882a593Smuzhiyun #define CIF_ISP_FLT_FAC_RESERVED 0xFFFFFFC0
679*4882a593Smuzhiyun #define CIF_ISP_FLT_LUM_WEIGHT_RESERVED 0xFFF80000
680*4882a593Smuzhiyun
681*4882a593Smuzhiyun #define CIF_ISP_CTK_COEFF_RESERVED 0xFFFFF800
682*4882a593Smuzhiyun #define CIF_ISP_XTALK_OFFSET_RESERVED 0xFFFFF000
683*4882a593Smuzhiyun
684*4882a593Smuzhiyun #define CIF_ISP_FLT_LEVEL_OLD_LP BIT(16)
685*4882a593Smuzhiyun
686*4882a593Smuzhiyun /* GOC */
687*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_MODE_EQU BIT(0)
688*4882a593Smuzhiyun #define CIF_ISP_GOC_MODE_MAX 1
689*4882a593Smuzhiyun #define CIF_ISP_GOC_RESERVED 0xFFFFF800
690*4882a593Smuzhiyun /* ISP_CTRL BIT 11*/
691*4882a593Smuzhiyun #define CIF_ISP_CTRL_ISP_GAMMA_OUT_ENA_READ(x) (((x) >> 11) & 1)
692*4882a593Smuzhiyun
693*4882a593Smuzhiyun /* DPCC */
694*4882a593Smuzhiyun /* ISP_DPCC_MODE */
695*4882a593Smuzhiyun #define CIF_ISP_DPCC_ENA BIT(0)
696*4882a593Smuzhiyun #define CIF_ISP_DPCC_MODE_MAX 0x07
697*4882a593Smuzhiyun #define CIF_ISP_DPCC_OUTPUTMODE_MAX 0x0F
698*4882a593Smuzhiyun #define CIF_ISP_DPCC_SETUSE_MAX 0x0F
699*4882a593Smuzhiyun #define CIF_ISP_DPCC_METHODS_SET_RESERVED 0xFFFFE000
700*4882a593Smuzhiyun #define CIF_ISP_DPCC_LINE_THRESH_RESERVED 0xFFFF0000
701*4882a593Smuzhiyun #define CIF_ISP_DPCC_LINE_MAD_FAC_RESERVED 0xFFFFC0C0
702*4882a593Smuzhiyun #define CIF_ISP_DPCC_PG_FAC_RESERVED 0xFFFFC0C0
703*4882a593Smuzhiyun #define CIF_ISP_DPCC_RND_THRESH_RESERVED 0xFFFF0000
704*4882a593Smuzhiyun #define CIF_ISP_DPCC_RG_FAC_RESERVED 0xFFFFC0C0
705*4882a593Smuzhiyun #define CIF_ISP_DPCC_RO_LIMIT_RESERVED 0xFFFFF000
706*4882a593Smuzhiyun #define CIF_ISP_DPCC_RND_OFFS_RESERVED 0xFFFFF000
707*4882a593Smuzhiyun
708*4882a593Smuzhiyun /* BLS */
709*4882a593Smuzhiyun /* ISP_BLS_CTRL */
710*4882a593Smuzhiyun #define CIF_ISP_BLS_ENA BIT(0)
711*4882a593Smuzhiyun #define CIF_ISP_BLS_MODE_MEASURED BIT(1)
712*4882a593Smuzhiyun #define CIF_ISP_BLS_MODE_FIXED 0
713*4882a593Smuzhiyun #define CIF_ISP_BLS_WINDOW_1 (1 << 2)
714*4882a593Smuzhiyun #define CIF_ISP_BLS_WINDOW_2 (2 << 2)
715*4882a593Smuzhiyun
716*4882a593Smuzhiyun /* GAMMA-IN */
717*4882a593Smuzhiyun #define CIFISP_DEGAMMA_X_RESERVED \
718*4882a593Smuzhiyun ((1 << 31) | (1 << 27) | (1 << 23) | (1 << 19) |\
719*4882a593Smuzhiyun (1 << 15) | (1 << 11) | (1 << 7) | (1 << 3))
720*4882a593Smuzhiyun #define CIFISP_DEGAMMA_Y_RESERVED 0xFFFFF000
721*4882a593Smuzhiyun
722*4882a593Smuzhiyun /* GAMMA-OUT */
723*4882a593Smuzhiyun #define CIF_ISP_GAMMA_REG_VALUE_V12(x, y) \
724*4882a593Smuzhiyun (((x) & 0xFFF) << 16 | ((y) & 0xFFF) << 0)
725*4882a593Smuzhiyun
726*4882a593Smuzhiyun /* AFM */
727*4882a593Smuzhiyun #define CIF_ISP_AFM_ENA BIT(0)
728*4882a593Smuzhiyun #define CIF_ISP_AFM_THRES_RESERVED 0xFFFF0000
729*4882a593Smuzhiyun #define CIF_ISP_AFM_VAR_SHIFT_RESERVED 0xFFF8FFF8
730*4882a593Smuzhiyun #define CIF_ISP_AFM_WINDOW_X_RESERVED 0xE000
731*4882a593Smuzhiyun #define CIF_ISP_AFM_WINDOW_Y_RESERVED 0xF000
732*4882a593Smuzhiyun #define CIF_ISP_AFM_WINDOW_X_MIN 0x5
733*4882a593Smuzhiyun #define CIF_ISP_AFM_WINDOW_Y_MIN 0x2
734*4882a593Smuzhiyun #define CIF_ISP_AFM_WINDOW_X(x) (((x) & 0x1FFF) << 16)
735*4882a593Smuzhiyun #define CIF_ISP_AFM_WINDOW_Y(x) ((x) & 0x1FFF)
736*4882a593Smuzhiyun #define CIF_ISP_AFM_SET_SHIFT_a_V12(x, y) (((x) & 0x7) << 16 | ((y) & 0x7) << 0)
737*4882a593Smuzhiyun #define CIF_ISP_AFM_SET_SHIFT_b_V12(x, y) (((x) & 0x7) << 20 | ((y) & 0x7) << 4)
738*4882a593Smuzhiyun #define CIF_ISP_AFM_SET_SHIFT_c_V12(x, y) (((x) & 0x7) << 24 | ((y) & 0x7) << 8)
739*4882a593Smuzhiyun #define CIF_ISP_AFM_GET_LUM_SHIFT_a_V12(x) (((x) & 0x70000) >> 16)
740*4882a593Smuzhiyun #define CIF_ISP_AFM_GET_AFM_SHIFT_a_V12(x) ((x) & 0x7)
741*4882a593Smuzhiyun
742*4882a593Smuzhiyun /* DPF */
743*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE_EN BIT(0)
744*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE_B_FLT_DIS BIT(1)
745*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE_GB_FLT_DIS BIT(2)
746*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE_GR_FLT_DIS BIT(3)
747*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE_R_FLT_DIS BIT(4)
748*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE_RB_FLTSIZE_9x9 BIT(5)
749*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE_NLL_SEGMENTATION BIT(6)
750*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE_AWB_GAIN_COMP BIT(7)
751*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE_LSC_GAIN_COMP BIT(8)
752*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE_USE_NF_GAIN BIT(9)
753*4882a593Smuzhiyun #define CIF_ISP_DPF_NF_GAIN_RESERVED 0xFFFFF000
754*4882a593Smuzhiyun #define CIF_ISP_DPF_SPATIAL_COEFF_MAX 0x1F
755*4882a593Smuzhiyun #define CIF_ISP_DPF_NLL_COEFF_N_MAX 0x3FF
756*4882a593Smuzhiyun
757*4882a593Smuzhiyun /* CSI0 */
758*4882a593Smuzhiyun #define CIF_ISP_CSI0_IMASK_LINECNT BIT(12)
759*4882a593Smuzhiyun #define CIF_ISP_CSI0_IMASK_RAW1_OUT_V_END BIT(11)
760*4882a593Smuzhiyun #define CIF_ISP_CSI0_IMASK_RAW0_OUT_V_END BIT(10)
761*4882a593Smuzhiyun #define CIF_ISP_CSI0_IMASK_FRAME_END(a) (((a) & 0x3F) << 0)
762*4882a593Smuzhiyun
763*4882a593Smuzhiyun #define CIF_ISP_CSI0_IMASK2_PHY_ERRSOTHS(a) (((a) & 0x0F) << 4)
764*4882a593Smuzhiyun #define CIF_ISP_CSI0_IMASK2_PHY_ERRCONTROL(a) (((a) & 0x0F) << 16)
765*4882a593Smuzhiyun #define CIF_ISP_CSI0_IMASK1_PHY_ERRSOTSYNC(a) (((a) & 0x0F) << 8)
766*4882a593Smuzhiyun #define CIF_ISP_CSI0_IMASK1_PHY_ERREOTSYNC(a) (((a) & 0x0F) << 4)
767*4882a593Smuzhiyun
768*4882a593Smuzhiyun #define CIF_ISP_CSI0_DMATX0_VC(a) (((a) & 0xFF) << 8)
769*4882a593Smuzhiyun #define CIF_ISP_CSI0_DMATX0_SIMG_SWP BIT(2)
770*4882a593Smuzhiyun #define CIF_ISP_CSI0_DMATX0_SIMG_MODE BIT(1)
771*4882a593Smuzhiyun #define CIF_ISP_CSI0_DMATX0_EN BIT(0)
772*4882a593Smuzhiyun
773*4882a593Smuzhiyun /* =================================================================== */
774*4882a593Smuzhiyun /* CIF Registers */
775*4882a593Smuzhiyun /* =================================================================== */
776*4882a593Smuzhiyun #define CIF_CTRL_BASE 0x00000000
777*4882a593Smuzhiyun #define CIF_CCL (CIF_CTRL_BASE + 0x00000000)
778*4882a593Smuzhiyun #define CIF_VI_ID (CIF_CTRL_BASE + 0x00000008)
779*4882a593Smuzhiyun #define CIF_VI_ISP_CLK_CTRL_V12 (CIF_CTRL_BASE + 0x0000000C)
780*4882a593Smuzhiyun #define CIF_ICCL (CIF_CTRL_BASE + 0x00000010)
781*4882a593Smuzhiyun #define CIF_IRCL (CIF_CTRL_BASE + 0x00000014)
782*4882a593Smuzhiyun #define CIF_VI_DPCL (CIF_CTRL_BASE + 0x00000018)
783*4882a593Smuzhiyun
784*4882a593Smuzhiyun #define CIF_IMG_EFF_BASE 0x00000200
785*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL (CIF_IMG_EFF_BASE + 0x00000000)
786*4882a593Smuzhiyun #define CIF_IMG_EFF_COLOR_SEL (CIF_IMG_EFF_BASE + 0x00000004)
787*4882a593Smuzhiyun #define CIF_IMG_EFF_MAT_1 (CIF_IMG_EFF_BASE + 0x00000008)
788*4882a593Smuzhiyun #define CIF_IMG_EFF_MAT_2 (CIF_IMG_EFF_BASE + 0x0000000C)
789*4882a593Smuzhiyun #define CIF_IMG_EFF_MAT_3 (CIF_IMG_EFF_BASE + 0x00000010)
790*4882a593Smuzhiyun #define CIF_IMG_EFF_MAT_4 (CIF_IMG_EFF_BASE + 0x00000014)
791*4882a593Smuzhiyun #define CIF_IMG_EFF_MAT_5 (CIF_IMG_EFF_BASE + 0x00000018)
792*4882a593Smuzhiyun #define CIF_IMG_EFF_TINT (CIF_IMG_EFF_BASE + 0x0000001C)
793*4882a593Smuzhiyun #define CIF_IMG_EFF_CTRL_SHD (CIF_IMG_EFF_BASE + 0x00000020)
794*4882a593Smuzhiyun #define CIF_IMG_EFF_SHARPEN (CIF_IMG_EFF_BASE + 0x00000024)
795*4882a593Smuzhiyun
796*4882a593Smuzhiyun #define CIF_RKSHARP_CTRL (CIF_IMG_EFF_BASE + 0x00000030)
797*4882a593Smuzhiyun #define CIF_RKSHARP_YAVG_THR (CIF_IMG_EFF_BASE + 0x00000034)
798*4882a593Smuzhiyun #define CIF_RKSHARP_DELTA_P0_P1 (CIF_IMG_EFF_BASE + 0x00000038)
799*4882a593Smuzhiyun #define CIF_RKSHARP_DELTA_P2_P3 (CIF_IMG_EFF_BASE + 0x0000003c)
800*4882a593Smuzhiyun #define CIF_RKSHARP_DELTA_P4 (CIF_IMG_EFF_BASE + 0x00000040)
801*4882a593Smuzhiyun #define CIF_RKSHARP_NPIXEL_P0_P1_P2_P3 (CIF_IMG_EFF_BASE + 0x00000044)
802*4882a593Smuzhiyun #define CIF_RKSHARP_NPIXEL_P4 (CIF_IMG_EFF_BASE + 0x00000048)
803*4882a593Smuzhiyun #define CIF_RKSHARP_GAUSS_FLAT_COE1 (CIF_IMG_EFF_BASE + 0x0000004c)
804*4882a593Smuzhiyun #define CIF_RKSHARP_GAUSS_FLAT_COE2 (CIF_IMG_EFF_BASE + 0x00000050)
805*4882a593Smuzhiyun #define CIF_RKSHARP_GAUSS_FLAT_COE3 (CIF_IMG_EFF_BASE + 0x00000054)
806*4882a593Smuzhiyun #define CIF_RKSHARP_GAUSS_NOISE_COE1 (CIF_IMG_EFF_BASE + 0x00000058)
807*4882a593Smuzhiyun #define CIF_RKSHARP_GAUSS_NOISE_COE2 (CIF_IMG_EFF_BASE + 0x0000005c)
808*4882a593Smuzhiyun #define CIF_RKSHARP_GAUSS_NOISE_COE3 (CIF_IMG_EFF_BASE + 0x00000060)
809*4882a593Smuzhiyun #define CIF_RKSHARP_GAUSS_OTHER_COE1 (CIF_IMG_EFF_BASE + 0x00000064)
810*4882a593Smuzhiyun #define CIF_RKSHARP_GAUSS_OTHER_COE2 (CIF_IMG_EFF_BASE + 0x00000068)
811*4882a593Smuzhiyun #define CIF_RKSHARP_GAUSS_OTHER_COE3 (CIF_IMG_EFF_BASE + 0x0000006c)
812*4882a593Smuzhiyun #define CIF_RKSHARP_LINE1_FILTER_COE1 (CIF_IMG_EFF_BASE + 0x00000070)
813*4882a593Smuzhiyun #define CIF_RKSHARP_LINE1_FILTER_COE2 (CIF_IMG_EFF_BASE + 0x00000074)
814*4882a593Smuzhiyun #define CIF_RKSHARP_LINE2_FILTER_COE1 (CIF_IMG_EFF_BASE + 0x00000078)
815*4882a593Smuzhiyun #define CIF_RKSHARP_LINE2_FILTER_COE2 (CIF_IMG_EFF_BASE + 0x0000007c)
816*4882a593Smuzhiyun #define CIF_RKSHARP_LINE2_FILTER_COE3 (CIF_IMG_EFF_BASE + 0x00000080)
817*4882a593Smuzhiyun #define CIF_RKSHARP_LINE3_FILTER_COE1 (CIF_IMG_EFF_BASE + 0x00000084)
818*4882a593Smuzhiyun #define CIF_RKSHARP_LINE3_FILTER_COE2 (CIF_IMG_EFF_BASE + 0x00000088)
819*4882a593Smuzhiyun #define CIF_RKSHARP_GRAD_SEQ_P0_P1 (CIF_IMG_EFF_BASE + 0x0000008c)
820*4882a593Smuzhiyun #define CIF_RKSHARP_GRAD_SEQ_P2_P3 (CIF_IMG_EFF_BASE + 0x00000090)
821*4882a593Smuzhiyun #define CIF_RKSHARP_SHARP_FACTOR_P0_P1_P2 (CIF_IMG_EFF_BASE + 0x00000094)
822*4882a593Smuzhiyun #define CIF_RKSHARP_SHARP_FACTOR_P3_P4 (CIF_IMG_EFF_BASE + 0x00000098)
823*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_FLAT_COE11_COE14 (CIF_IMG_EFF_BASE + 0x0000009c)
824*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_FLAT_COE15_COE23 (CIF_IMG_EFF_BASE + 0x000000a0)
825*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_FLAT_COE24_COE32 (CIF_IMG_EFF_BASE + 0x000000a4)
826*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_FLAT_COE33_COE35 (CIF_IMG_EFF_BASE + 0x000000a8)
827*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_NOISE_COE11_COE14 (CIF_IMG_EFF_BASE + 0x000000ac)
828*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_NOISE_COE15_COE23 (CIF_IMG_EFF_BASE + 0x000000b0)
829*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_NOISE_COE24_COE32 (CIF_IMG_EFF_BASE + 0x000000b4)
830*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_NOISE_COE33_COE35 (CIF_IMG_EFF_BASE + 0x000000b8)
831*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_OTHER_COE11_COE14 (CIF_IMG_EFF_BASE + 0x000000bc)
832*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_OTHER_COE15_COE23 (CIF_IMG_EFF_BASE + 0x000000c0)
833*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_OTHER_COE24_COE32 (CIF_IMG_EFF_BASE + 0x000000c4)
834*4882a593Smuzhiyun #define CIF_RKSHARP_UV_GAUSS_OTHER_COE33_COE35 (CIF_IMG_EFF_BASE + 0x000000c8)
835*4882a593Smuzhiyun
836*4882a593Smuzhiyun #define CIF_SUPER_IMP_BASE 0x00000300
837*4882a593Smuzhiyun #define CIF_SUPER_IMP_CTRL (CIF_SUPER_IMP_BASE + 0x00000000)
838*4882a593Smuzhiyun #define CIF_SUPER_IMP_OFFSET_X (CIF_SUPER_IMP_BASE + 0x00000004)
839*4882a593Smuzhiyun #define CIF_SUPER_IMP_OFFSET_Y (CIF_SUPER_IMP_BASE + 0x00000008)
840*4882a593Smuzhiyun #define CIF_SUPER_IMP_COLOR_Y (CIF_SUPER_IMP_BASE + 0x0000000C)
841*4882a593Smuzhiyun #define CIF_SUPER_IMP_COLOR_CB (CIF_SUPER_IMP_BASE + 0x00000010)
842*4882a593Smuzhiyun #define CIF_SUPER_IMP_COLOR_CR (CIF_SUPER_IMP_BASE + 0x00000014)
843*4882a593Smuzhiyun
844*4882a593Smuzhiyun #define CIF_ISP_BASE 0x00000400
845*4882a593Smuzhiyun #define CIF_ISP_CTRL (CIF_ISP_BASE + 0x00000000)
846*4882a593Smuzhiyun #define CIF_ISP_ACQ_PROP (CIF_ISP_BASE + 0x00000004)
847*4882a593Smuzhiyun #define CIF_ISP_ACQ_H_OFFS (CIF_ISP_BASE + 0x00000008)
848*4882a593Smuzhiyun #define CIF_ISP_ACQ_V_OFFS (CIF_ISP_BASE + 0x0000000C)
849*4882a593Smuzhiyun #define CIF_ISP_ACQ_H_SIZE (CIF_ISP_BASE + 0x00000010)
850*4882a593Smuzhiyun #define CIF_ISP_ACQ_V_SIZE (CIF_ISP_BASE + 0x00000014)
851*4882a593Smuzhiyun #define CIF_ISP_ACQ_NR_FRAMES (CIF_ISP_BASE + 0x00000018)
852*4882a593Smuzhiyun #define CIF_ISP_GAMMA_DX_LO (CIF_ISP_BASE + 0x0000001C)
853*4882a593Smuzhiyun #define CIF_ISP_GAMMA_DX_HI (CIF_ISP_BASE + 0x00000020)
854*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y0 (CIF_ISP_BASE + 0x00000024)
855*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y1 (CIF_ISP_BASE + 0x00000028)
856*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y2 (CIF_ISP_BASE + 0x0000002C)
857*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y3 (CIF_ISP_BASE + 0x00000030)
858*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y4 (CIF_ISP_BASE + 0x00000034)
859*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y5 (CIF_ISP_BASE + 0x00000038)
860*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y6 (CIF_ISP_BASE + 0x0000003C)
861*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y7 (CIF_ISP_BASE + 0x00000040)
862*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y8 (CIF_ISP_BASE + 0x00000044)
863*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y9 (CIF_ISP_BASE + 0x00000048)
864*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y10 (CIF_ISP_BASE + 0x0000004C)
865*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y11 (CIF_ISP_BASE + 0x00000050)
866*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y12 (CIF_ISP_BASE + 0x00000054)
867*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y13 (CIF_ISP_BASE + 0x00000058)
868*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y14 (CIF_ISP_BASE + 0x0000005C)
869*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y15 (CIF_ISP_BASE + 0x00000060)
870*4882a593Smuzhiyun #define CIF_ISP_GAMMA_R_Y16 (CIF_ISP_BASE + 0x00000064)
871*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y0 (CIF_ISP_BASE + 0x00000068)
872*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y1 (CIF_ISP_BASE + 0x0000006C)
873*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y2 (CIF_ISP_BASE + 0x00000070)
874*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y3 (CIF_ISP_BASE + 0x00000074)
875*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y4 (CIF_ISP_BASE + 0x00000078)
876*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y5 (CIF_ISP_BASE + 0x0000007C)
877*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y6 (CIF_ISP_BASE + 0x00000080)
878*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y7 (CIF_ISP_BASE + 0x00000084)
879*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y8 (CIF_ISP_BASE + 0x00000088)
880*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y9 (CIF_ISP_BASE + 0x0000008C)
881*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y10 (CIF_ISP_BASE + 0x00000090)
882*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y11 (CIF_ISP_BASE + 0x00000094)
883*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y12 (CIF_ISP_BASE + 0x00000098)
884*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y13 (CIF_ISP_BASE + 0x0000009C)
885*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y14 (CIF_ISP_BASE + 0x000000A0)
886*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y15 (CIF_ISP_BASE + 0x000000A4)
887*4882a593Smuzhiyun #define CIF_ISP_GAMMA_G_Y16 (CIF_ISP_BASE + 0x000000A8)
888*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y0 (CIF_ISP_BASE + 0x000000AC)
889*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y1 (CIF_ISP_BASE + 0x000000B0)
890*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y2 (CIF_ISP_BASE + 0x000000B4)
891*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y3 (CIF_ISP_BASE + 0x000000B8)
892*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y4 (CIF_ISP_BASE + 0x000000BC)
893*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y5 (CIF_ISP_BASE + 0x000000C0)
894*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y6 (CIF_ISP_BASE + 0x000000C4)
895*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y7 (CIF_ISP_BASE + 0x000000C8)
896*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y8 (CIF_ISP_BASE + 0x000000CC)
897*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y9 (CIF_ISP_BASE + 0x000000D0)
898*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y10 (CIF_ISP_BASE + 0x000000D4)
899*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y11 (CIF_ISP_BASE + 0x000000D8)
900*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y12 (CIF_ISP_BASE + 0x000000DC)
901*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y13 (CIF_ISP_BASE + 0x000000E0)
902*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y14 (CIF_ISP_BASE + 0x000000E4)
903*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y15 (CIF_ISP_BASE + 0x000000E8)
904*4882a593Smuzhiyun #define CIF_ISP_GAMMA_B_Y16 (CIF_ISP_BASE + 0x000000EC)
905*4882a593Smuzhiyun
906*4882a593Smuzhiyun #define CIF_ISP_AWB_PROP_V10 (CIF_ISP_BASE + 0x00000110)
907*4882a593Smuzhiyun #define CIF_ISP_AWB_WND_H_OFFS_V10 (CIF_ISP_BASE + 0x00000114)
908*4882a593Smuzhiyun #define CIF_ISP_AWB_WND_V_OFFS_V10 (CIF_ISP_BASE + 0x00000118)
909*4882a593Smuzhiyun #define CIF_ISP_AWB_WND_H_SIZE_V10 (CIF_ISP_BASE + 0x0000011C)
910*4882a593Smuzhiyun #define CIF_ISP_AWB_WND_V_SIZE_V10 (CIF_ISP_BASE + 0x00000120)
911*4882a593Smuzhiyun #define CIF_ISP_AWB_FRAMES_V10 (CIF_ISP_BASE + 0x00000124)
912*4882a593Smuzhiyun #define CIF_ISP_AWB_REF_V10 (CIF_ISP_BASE + 0x00000128)
913*4882a593Smuzhiyun #define CIF_ISP_AWB_THRESH_V10 (CIF_ISP_BASE + 0x0000012C)
914*4882a593Smuzhiyun #define CIF_ISP_AWB_GAIN_G_V10 (CIF_ISP_BASE + 0x00000138)
915*4882a593Smuzhiyun #define CIF_ISP_AWB_GAIN_RB_V10 (CIF_ISP_BASE + 0x0000013C)
916*4882a593Smuzhiyun #define CIF_ISP_AWB_WHITE_CNT_V10 (CIF_ISP_BASE + 0x00000140)
917*4882a593Smuzhiyun #define CIF_ISP_AWB_MEAN_V10 (CIF_ISP_BASE + 0x00000144)
918*4882a593Smuzhiyun
919*4882a593Smuzhiyun #define CIF_ISP_AWB_PROP_V12 (CIF_ISP_BASE + 0x00000110)
920*4882a593Smuzhiyun #define CIF_ISP_AWB_SIZE_V12 (CIF_ISP_BASE + 0x00000114)
921*4882a593Smuzhiyun #define CIF_ISP_AWB_OFFS_V12 (CIF_ISP_BASE + 0x00000118)
922*4882a593Smuzhiyun #define CIF_ISP_AWB_REF_V12 (CIF_ISP_BASE + 0x0000011C)
923*4882a593Smuzhiyun #define CIF_ISP_AWB_THRESH_V12 (CIF_ISP_BASE + 0x00000120)
924*4882a593Smuzhiyun #define CIF_ISP_X_COOR12_V12 (CIF_ISP_BASE + 0x00000124)
925*4882a593Smuzhiyun #define CIF_ISP_X_COOR34_V12 (CIF_ISP_BASE + 0x00000128)
926*4882a593Smuzhiyun #define CIF_ISP_AWB_WHITE_CNT_V12 (CIF_ISP_BASE + 0x0000012C)
927*4882a593Smuzhiyun #define CIF_ISP_AWB_MEAN_V12 (CIF_ISP_BASE + 0x00000130)
928*4882a593Smuzhiyun #define CIF_ISP_DEGAIN_V12 (CIF_ISP_BASE + 0x00000134)
929*4882a593Smuzhiyun #define CIF_ISP_AWB_GAIN_G_V12 (CIF_ISP_BASE + 0x00000138)
930*4882a593Smuzhiyun #define CIF_ISP_AWB_GAIN_RB_V12 (CIF_ISP_BASE + 0x0000013C)
931*4882a593Smuzhiyun #define CIF_ISP_REGION_LINE_V12 (CIF_ISP_BASE + 0x00000140)
932*4882a593Smuzhiyun #define CIF_ISP_WP_CNT_REGION0_V12 (CIF_ISP_BASE + 0x00000160)
933*4882a593Smuzhiyun #define CIF_ISP_WP_CNT_REGION1_V12 (CIF_ISP_BASE + 0x00000164)
934*4882a593Smuzhiyun #define CIF_ISP_WP_CNT_REGION2_V12 (CIF_ISP_BASE + 0x00000168)
935*4882a593Smuzhiyun #define CIF_ISP_WP_CNT_REGION3_V12 (CIF_ISP_BASE + 0x0000016C)
936*4882a593Smuzhiyun
937*4882a593Smuzhiyun #define CIF_ISP_CC_COEFF_0 (CIF_ISP_BASE + 0x00000170)
938*4882a593Smuzhiyun #define CIF_ISP_CC_COEFF_1 (CIF_ISP_BASE + 0x00000174)
939*4882a593Smuzhiyun #define CIF_ISP_CC_COEFF_2 (CIF_ISP_BASE + 0x00000178)
940*4882a593Smuzhiyun #define CIF_ISP_CC_COEFF_3 (CIF_ISP_BASE + 0x0000017C)
941*4882a593Smuzhiyun #define CIF_ISP_CC_COEFF_4 (CIF_ISP_BASE + 0x00000180)
942*4882a593Smuzhiyun #define CIF_ISP_CC_COEFF_5 (CIF_ISP_BASE + 0x00000184)
943*4882a593Smuzhiyun #define CIF_ISP_CC_COEFF_6 (CIF_ISP_BASE + 0x00000188)
944*4882a593Smuzhiyun #define CIF_ISP_CC_COEFF_7 (CIF_ISP_BASE + 0x0000018C)
945*4882a593Smuzhiyun #define CIF_ISP_CC_COEFF_8 (CIF_ISP_BASE + 0x00000190)
946*4882a593Smuzhiyun #define CIF_ISP_OUT_H_OFFS (CIF_ISP_BASE + 0x00000194)
947*4882a593Smuzhiyun #define CIF_ISP_OUT_V_OFFS (CIF_ISP_BASE + 0x00000198)
948*4882a593Smuzhiyun #define CIF_ISP_OUT_H_SIZE (CIF_ISP_BASE + 0x0000019C)
949*4882a593Smuzhiyun #define CIF_ISP_OUT_V_SIZE (CIF_ISP_BASE + 0x000001A0)
950*4882a593Smuzhiyun #define CIF_ISP_DEMOSAIC (CIF_ISP_BASE + 0x000001A4)
951*4882a593Smuzhiyun #define CIF_ISP_FLAGS_SHD (CIF_ISP_BASE + 0x000001A8)
952*4882a593Smuzhiyun #define CIF_ISP_OUT_H_OFFS_SHD (CIF_ISP_BASE + 0x000001AC)
953*4882a593Smuzhiyun #define CIF_ISP_OUT_V_OFFS_SHD (CIF_ISP_BASE + 0x000001B0)
954*4882a593Smuzhiyun #define CIF_ISP_OUT_H_SIZE_SHD (CIF_ISP_BASE + 0x000001B4)
955*4882a593Smuzhiyun #define CIF_ISP_OUT_V_SIZE_SHD (CIF_ISP_BASE + 0x000001B8)
956*4882a593Smuzhiyun #define CIF_ISP_IMSC (CIF_ISP_BASE + 0x000001BC)
957*4882a593Smuzhiyun #define CIF_ISP_RIS (CIF_ISP_BASE + 0x000001C0)
958*4882a593Smuzhiyun #define CIF_ISP_MIS (CIF_ISP_BASE + 0x000001C4)
959*4882a593Smuzhiyun #define CIF_ISP_ICR (CIF_ISP_BASE + 0x000001C8)
960*4882a593Smuzhiyun #define CIF_ISP_ISR (CIF_ISP_BASE + 0x000001CC)
961*4882a593Smuzhiyun #define CIF_ISP_CT_COEFF_0 (CIF_ISP_BASE + 0x000001D0)
962*4882a593Smuzhiyun #define CIF_ISP_CT_COEFF_1 (CIF_ISP_BASE + 0x000001D4)
963*4882a593Smuzhiyun #define CIF_ISP_CT_COEFF_2 (CIF_ISP_BASE + 0x000001D8)
964*4882a593Smuzhiyun #define CIF_ISP_CT_COEFF_3 (CIF_ISP_BASE + 0x000001DC)
965*4882a593Smuzhiyun #define CIF_ISP_CT_COEFF_4 (CIF_ISP_BASE + 0x000001E0)
966*4882a593Smuzhiyun #define CIF_ISP_CT_COEFF_5 (CIF_ISP_BASE + 0x000001E4)
967*4882a593Smuzhiyun #define CIF_ISP_CT_COEFF_6 (CIF_ISP_BASE + 0x000001E8)
968*4882a593Smuzhiyun #define CIF_ISP_CT_COEFF_7 (CIF_ISP_BASE + 0x000001EC)
969*4882a593Smuzhiyun #define CIF_ISP_CT_COEFF_8 (CIF_ISP_BASE + 0x000001F0)
970*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_MODE_V10 (CIF_ISP_BASE + 0x000001F4)
971*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_0_V10 (CIF_ISP_BASE + 0x000001F8)
972*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_1_V10 (CIF_ISP_BASE + 0x000001FC)
973*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_2_V10 (CIF_ISP_BASE + 0x00000200)
974*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_3_V10 (CIF_ISP_BASE + 0x00000204)
975*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_4_V10 (CIF_ISP_BASE + 0x00000208)
976*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_5_V10 (CIF_ISP_BASE + 0x0000020C)
977*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_6_V10 (CIF_ISP_BASE + 0x00000210)
978*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_7_V10 (CIF_ISP_BASE + 0x00000214)
979*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_8_V10 (CIF_ISP_BASE + 0x00000218)
980*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_9_V10 (CIF_ISP_BASE + 0x0000021C)
981*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_10_V10 (CIF_ISP_BASE + 0x00000220)
982*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_11_V10 (CIF_ISP_BASE + 0x00000224)
983*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_12_V10 (CIF_ISP_BASE + 0x00000228)
984*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_13_V10 (CIF_ISP_BASE + 0x0000022C)
985*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_14_V10 (CIF_ISP_BASE + 0x00000230)
986*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_15_V10 (CIF_ISP_BASE + 0x00000234)
987*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_16_V10 (CIF_ISP_BASE + 0x00000238)
988*4882a593Smuzhiyun #define CIF_ISP_ERR (CIF_ISP_BASE + 0x0000023C)
989*4882a593Smuzhiyun #define CIF_ISP_ERR_CLR (CIF_ISP_BASE + 0x00000240)
990*4882a593Smuzhiyun #define CIF_ISP_FRAME_COUNT (CIF_ISP_BASE + 0x00000244)
991*4882a593Smuzhiyun #define CIF_ISP_CT_OFFSET_R (CIF_ISP_BASE + 0x00000248)
992*4882a593Smuzhiyun #define CIF_ISP_CT_OFFSET_G (CIF_ISP_BASE + 0x0000024C)
993*4882a593Smuzhiyun #define CIF_ISP_CT_OFFSET_B (CIF_ISP_BASE + 0x00000250)
994*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_MODE_V12 (CIF_ISP_BASE + 0x00000300)
995*4882a593Smuzhiyun #define CIF_ISP_GAMMA_OUT_Y_0_V12 (CIF_ISP_BASE + 0x00000304)
996*4882a593Smuzhiyun
997*4882a593Smuzhiyun #define CIF_ISP_FLASH_BASE 0x00000660
998*4882a593Smuzhiyun #define CIF_ISP_FLASH_CMD (CIF_ISP_FLASH_BASE + 0x00000000)
999*4882a593Smuzhiyun #define CIF_ISP_FLASH_CONFIG (CIF_ISP_FLASH_BASE + 0x00000004)
1000*4882a593Smuzhiyun #define CIF_ISP_FLASH_PREDIV (CIF_ISP_FLASH_BASE + 0x00000008)
1001*4882a593Smuzhiyun #define CIF_ISP_FLASH_DELAY (CIF_ISP_FLASH_BASE + 0x0000000C)
1002*4882a593Smuzhiyun #define CIF_ISP_FLASH_TIME (CIF_ISP_FLASH_BASE + 0x00000010)
1003*4882a593Smuzhiyun #define CIF_ISP_FLASH_MAXP (CIF_ISP_FLASH_BASE + 0x00000014)
1004*4882a593Smuzhiyun
1005*4882a593Smuzhiyun #define CIF_ISP_SH_BASE 0x00000680
1006*4882a593Smuzhiyun #define CIF_ISP_SH_CTRL (CIF_ISP_SH_BASE + 0x00000000)
1007*4882a593Smuzhiyun #define CIF_ISP_SH_PREDIV (CIF_ISP_SH_BASE + 0x00000004)
1008*4882a593Smuzhiyun #define CIF_ISP_SH_DELAY (CIF_ISP_SH_BASE + 0x00000008)
1009*4882a593Smuzhiyun #define CIF_ISP_SH_TIME (CIF_ISP_SH_BASE + 0x0000000C)
1010*4882a593Smuzhiyun
1011*4882a593Smuzhiyun #define CIF_C_PROC_BASE 0x00000800
1012*4882a593Smuzhiyun #define CIF_C_PROC_CTRL (CIF_C_PROC_BASE + 0x00000000)
1013*4882a593Smuzhiyun #define CIF_C_PROC_CONTRAST (CIF_C_PROC_BASE + 0x00000004)
1014*4882a593Smuzhiyun #define CIF_C_PROC_BRIGHTNESS (CIF_C_PROC_BASE + 0x00000008)
1015*4882a593Smuzhiyun #define CIF_C_PROC_SATURATION (CIF_C_PROC_BASE + 0x0000000C)
1016*4882a593Smuzhiyun #define CIF_C_PROC_HUE (CIF_C_PROC_BASE + 0x00000010)
1017*4882a593Smuzhiyun
1018*4882a593Smuzhiyun #define CIF_DUAL_CROP_BASE 0x00000880
1019*4882a593Smuzhiyun #define CIF_DUAL_CROP_CTRL (CIF_DUAL_CROP_BASE + 0x00000000)
1020*4882a593Smuzhiyun #define CIF_DUAL_CROP_M_H_OFFS (CIF_DUAL_CROP_BASE + 0x00000004)
1021*4882a593Smuzhiyun #define CIF_DUAL_CROP_M_V_OFFS (CIF_DUAL_CROP_BASE + 0x00000008)
1022*4882a593Smuzhiyun #define CIF_DUAL_CROP_M_H_SIZE (CIF_DUAL_CROP_BASE + 0x0000000C)
1023*4882a593Smuzhiyun #define CIF_DUAL_CROP_M_V_SIZE (CIF_DUAL_CROP_BASE + 0x00000010)
1024*4882a593Smuzhiyun #define CIF_DUAL_CROP_S_H_OFFS (CIF_DUAL_CROP_BASE + 0x00000014)
1025*4882a593Smuzhiyun #define CIF_DUAL_CROP_S_V_OFFS (CIF_DUAL_CROP_BASE + 0x00000018)
1026*4882a593Smuzhiyun #define CIF_DUAL_CROP_S_H_SIZE (CIF_DUAL_CROP_BASE + 0x0000001C)
1027*4882a593Smuzhiyun #define CIF_DUAL_CROP_S_V_SIZE (CIF_DUAL_CROP_BASE + 0x00000020)
1028*4882a593Smuzhiyun #define CIF_DUAL_CROP_M_H_OFFS_SHD (CIF_DUAL_CROP_BASE + 0x00000024)
1029*4882a593Smuzhiyun #define CIF_DUAL_CROP_M_V_OFFS_SHD (CIF_DUAL_CROP_BASE + 0x00000028)
1030*4882a593Smuzhiyun #define CIF_DUAL_CROP_M_H_SIZE_SHD (CIF_DUAL_CROP_BASE + 0x0000002C)
1031*4882a593Smuzhiyun #define CIF_DUAL_CROP_M_V_SIZE_SHD (CIF_DUAL_CROP_BASE + 0x00000030)
1032*4882a593Smuzhiyun #define CIF_DUAL_CROP_S_H_OFFS_SHD (CIF_DUAL_CROP_BASE + 0x00000034)
1033*4882a593Smuzhiyun #define CIF_DUAL_CROP_S_V_OFFS_SHD (CIF_DUAL_CROP_BASE + 0x00000038)
1034*4882a593Smuzhiyun #define CIF_DUAL_CROP_S_H_SIZE_SHD (CIF_DUAL_CROP_BASE + 0x0000003C)
1035*4882a593Smuzhiyun #define CIF_DUAL_CROP_S_V_SIZE_SHD (CIF_DUAL_CROP_BASE + 0x00000040)
1036*4882a593Smuzhiyun
1037*4882a593Smuzhiyun #define CIF_MRSZ_BASE 0x00000C00
1038*4882a593Smuzhiyun #define CIF_MRSZ_CTRL (CIF_MRSZ_BASE + 0x00000000)
1039*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_HY (CIF_MRSZ_BASE + 0x00000004)
1040*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_HCB (CIF_MRSZ_BASE + 0x00000008)
1041*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_HCR (CIF_MRSZ_BASE + 0x0000000C)
1042*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_VY (CIF_MRSZ_BASE + 0x00000010)
1043*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_VC (CIF_MRSZ_BASE + 0x00000014)
1044*4882a593Smuzhiyun #define CIF_MRSZ_PHASE_HY (CIF_MRSZ_BASE + 0x00000018)
1045*4882a593Smuzhiyun #define CIF_MRSZ_PHASE_HC (CIF_MRSZ_BASE + 0x0000001C)
1046*4882a593Smuzhiyun #define CIF_MRSZ_PHASE_VY (CIF_MRSZ_BASE + 0x00000020)
1047*4882a593Smuzhiyun #define CIF_MRSZ_PHASE_VC (CIF_MRSZ_BASE + 0x00000024)
1048*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_LUT_ADDR (CIF_MRSZ_BASE + 0x00000028)
1049*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_LUT (CIF_MRSZ_BASE + 0x0000002C)
1050*4882a593Smuzhiyun #define CIF_MRSZ_CTRL_SHD (CIF_MRSZ_BASE + 0x00000030)
1051*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_HY_SHD (CIF_MRSZ_BASE + 0x00000034)
1052*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_HCB_SHD (CIF_MRSZ_BASE + 0x00000038)
1053*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_HCR_SHD (CIF_MRSZ_BASE + 0x0000003C)
1054*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_VY_SHD (CIF_MRSZ_BASE + 0x00000040)
1055*4882a593Smuzhiyun #define CIF_MRSZ_SCALE_VC_SHD (CIF_MRSZ_BASE + 0x00000044)
1056*4882a593Smuzhiyun #define CIF_MRSZ_PHASE_HY_SHD (CIF_MRSZ_BASE + 0x00000048)
1057*4882a593Smuzhiyun #define CIF_MRSZ_PHASE_HC_SHD (CIF_MRSZ_BASE + 0x0000004C)
1058*4882a593Smuzhiyun #define CIF_MRSZ_PHASE_VY_SHD (CIF_MRSZ_BASE + 0x00000050)
1059*4882a593Smuzhiyun #define CIF_MRSZ_PHASE_VC_SHD (CIF_MRSZ_BASE + 0x00000054)
1060*4882a593Smuzhiyun
1061*4882a593Smuzhiyun #define CIF_SRSZ_BASE 0x00001000
1062*4882a593Smuzhiyun #define CIF_SRSZ_CTRL (CIF_SRSZ_BASE + 0x00000000)
1063*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_HY (CIF_SRSZ_BASE + 0x00000004)
1064*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_HCB (CIF_SRSZ_BASE + 0x00000008)
1065*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_HCR (CIF_SRSZ_BASE + 0x0000000C)
1066*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_VY (CIF_SRSZ_BASE + 0x00000010)
1067*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_VC (CIF_SRSZ_BASE + 0x00000014)
1068*4882a593Smuzhiyun #define CIF_SRSZ_PHASE_HY (CIF_SRSZ_BASE + 0x00000018)
1069*4882a593Smuzhiyun #define CIF_SRSZ_PHASE_HC (CIF_SRSZ_BASE + 0x0000001C)
1070*4882a593Smuzhiyun #define CIF_SRSZ_PHASE_VY (CIF_SRSZ_BASE + 0x00000020)
1071*4882a593Smuzhiyun #define CIF_SRSZ_PHASE_VC (CIF_SRSZ_BASE + 0x00000024)
1072*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_LUT_ADDR (CIF_SRSZ_BASE + 0x00000028)
1073*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_LUT (CIF_SRSZ_BASE + 0x0000002C)
1074*4882a593Smuzhiyun #define CIF_SRSZ_CTRL_SHD (CIF_SRSZ_BASE + 0x00000030)
1075*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_HY_SHD (CIF_SRSZ_BASE + 0x00000034)
1076*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_HCB_SHD (CIF_SRSZ_BASE + 0x00000038)
1077*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_HCR_SHD (CIF_SRSZ_BASE + 0x0000003C)
1078*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_VY_SHD (CIF_SRSZ_BASE + 0x00000040)
1079*4882a593Smuzhiyun #define CIF_SRSZ_SCALE_VC_SHD (CIF_SRSZ_BASE + 0x00000044)
1080*4882a593Smuzhiyun #define CIF_SRSZ_PHASE_HY_SHD (CIF_SRSZ_BASE + 0x00000048)
1081*4882a593Smuzhiyun #define CIF_SRSZ_PHASE_HC_SHD (CIF_SRSZ_BASE + 0x0000004C)
1082*4882a593Smuzhiyun #define CIF_SRSZ_PHASE_VY_SHD (CIF_SRSZ_BASE + 0x00000050)
1083*4882a593Smuzhiyun #define CIF_SRSZ_PHASE_VC_SHD (CIF_SRSZ_BASE + 0x00000054)
1084*4882a593Smuzhiyun
1085*4882a593Smuzhiyun #define CIF_MI_BASE 0x00001400
1086*4882a593Smuzhiyun #define CIF_MI_CTRL (CIF_MI_BASE + 0x00000000)
1087*4882a593Smuzhiyun #define CIF_MI_INIT (CIF_MI_BASE + 0x00000004)
1088*4882a593Smuzhiyun #define CIF_MI_MP_Y_BASE_AD_INIT (CIF_MI_BASE + 0x00000008)
1089*4882a593Smuzhiyun #define CIF_MI_MP_Y_SIZE_INIT (CIF_MI_BASE + 0x0000000C)
1090*4882a593Smuzhiyun #define CIF_MI_MP_Y_OFFS_CNT_INIT (CIF_MI_BASE + 0x00000010)
1091*4882a593Smuzhiyun #define CIF_MI_MP_Y_OFFS_CNT_START (CIF_MI_BASE + 0x00000014)
1092*4882a593Smuzhiyun #define CIF_MI_MP_Y_IRQ_OFFS_INIT (CIF_MI_BASE + 0x00000018)
1093*4882a593Smuzhiyun #define CIF_MI_MP_CB_BASE_AD_INIT (CIF_MI_BASE + 0x0000001C)
1094*4882a593Smuzhiyun #define CIF_MI_MP_CB_SIZE_INIT (CIF_MI_BASE + 0x00000020)
1095*4882a593Smuzhiyun #define CIF_MI_MP_CB_OFFS_CNT_INIT (CIF_MI_BASE + 0x00000024)
1096*4882a593Smuzhiyun #define CIF_MI_MP_CB_OFFS_CNT_START (CIF_MI_BASE + 0x00000028)
1097*4882a593Smuzhiyun #define CIF_MI_MP_CR_BASE_AD_INIT (CIF_MI_BASE + 0x0000002C)
1098*4882a593Smuzhiyun #define CIF_MI_MP_CR_SIZE_INIT (CIF_MI_BASE + 0x00000030)
1099*4882a593Smuzhiyun #define CIF_MI_MP_CR_OFFS_CNT_INIT (CIF_MI_BASE + 0x00000034)
1100*4882a593Smuzhiyun #define CIF_MI_MP_CR_OFFS_CNT_START (CIF_MI_BASE + 0x00000038)
1101*4882a593Smuzhiyun #define CIF_MI_SP_Y_BASE_AD_INIT (CIF_MI_BASE + 0x0000003C)
1102*4882a593Smuzhiyun #define CIF_MI_SP_Y_SIZE_INIT (CIF_MI_BASE + 0x00000040)
1103*4882a593Smuzhiyun #define CIF_MI_SP_Y_OFFS_CNT_INIT (CIF_MI_BASE + 0x00000044)
1104*4882a593Smuzhiyun #define CIF_MI_SP_Y_OFFS_CNT_START (CIF_MI_BASE + 0x00000048)
1105*4882a593Smuzhiyun #define CIF_MI_SP_Y_LLENGTH (CIF_MI_BASE + 0x0000004C)
1106*4882a593Smuzhiyun #define CIF_MI_SP_CB_BASE_AD_INIT (CIF_MI_BASE + 0x00000050)
1107*4882a593Smuzhiyun #define CIF_MI_SP_CB_SIZE_INIT (CIF_MI_BASE + 0x00000054)
1108*4882a593Smuzhiyun #define CIF_MI_SP_CB_OFFS_CNT_INIT (CIF_MI_BASE + 0x00000058)
1109*4882a593Smuzhiyun #define CIF_MI_SP_CB_OFFS_CNT_START (CIF_MI_BASE + 0x0000005C)
1110*4882a593Smuzhiyun #define CIF_MI_SP_CR_BASE_AD_INIT (CIF_MI_BASE + 0x00000060)
1111*4882a593Smuzhiyun #define CIF_MI_SP_CR_SIZE_INIT (CIF_MI_BASE + 0x00000064)
1112*4882a593Smuzhiyun #define CIF_MI_SP_CR_OFFS_CNT_INIT (CIF_MI_BASE + 0x00000068)
1113*4882a593Smuzhiyun #define CIF_MI_SP_CR_OFFS_CNT_START (CIF_MI_BASE + 0x0000006C)
1114*4882a593Smuzhiyun #define CIF_MI_BYTE_CNT (CIF_MI_BASE + 0x00000070)
1115*4882a593Smuzhiyun #define CIF_MI_CTRL_SHD (CIF_MI_BASE + 0x00000074)
1116*4882a593Smuzhiyun #define CIF_MI_MP_Y_BASE_AD_SHD (CIF_MI_BASE + 0x00000078)
1117*4882a593Smuzhiyun #define CIF_MI_MP_Y_SIZE_SHD (CIF_MI_BASE + 0x0000007C)
1118*4882a593Smuzhiyun #define CIF_MI_MP_Y_OFFS_CNT_SHD (CIF_MI_BASE + 0x00000080)
1119*4882a593Smuzhiyun #define CIF_MI_MP_Y_IRQ_OFFS_SHD (CIF_MI_BASE + 0x00000084)
1120*4882a593Smuzhiyun #define CIF_MI_MP_CB_BASE_AD_SHD (CIF_MI_BASE + 0x00000088)
1121*4882a593Smuzhiyun #define CIF_MI_MP_CB_SIZE_SHD (CIF_MI_BASE + 0x0000008C)
1122*4882a593Smuzhiyun #define CIF_MI_MP_CB_OFFS_CNT_SHD (CIF_MI_BASE + 0x00000090)
1123*4882a593Smuzhiyun #define CIF_MI_MP_CR_BASE_AD_SHD (CIF_MI_BASE + 0x00000094)
1124*4882a593Smuzhiyun #define CIF_MI_MP_CR_SIZE_SHD (CIF_MI_BASE + 0x00000098)
1125*4882a593Smuzhiyun #define CIF_MI_MP_CR_OFFS_CNT_SHD (CIF_MI_BASE + 0x0000009C)
1126*4882a593Smuzhiyun #define CIF_MI_SP_Y_BASE_AD_SHD (CIF_MI_BASE + 0x000000A0)
1127*4882a593Smuzhiyun #define CIF_MI_SP_Y_SIZE_SHD (CIF_MI_BASE + 0x000000A4)
1128*4882a593Smuzhiyun #define CIF_MI_SP_Y_OFFS_CNT_SHD (CIF_MI_BASE + 0x000000A8)
1129*4882a593Smuzhiyun #define CIF_MI_SP_CB_BASE_AD_SHD (CIF_MI_BASE + 0x000000B0)
1130*4882a593Smuzhiyun #define CIF_MI_SP_CB_SIZE_SHD (CIF_MI_BASE + 0x000000B4)
1131*4882a593Smuzhiyun #define CIF_MI_SP_CB_OFFS_CNT_SHD (CIF_MI_BASE + 0x000000B8)
1132*4882a593Smuzhiyun #define CIF_MI_SP_CR_BASE_AD_SHD (CIF_MI_BASE + 0x000000BC)
1133*4882a593Smuzhiyun #define CIF_MI_SP_CR_SIZE_SHD (CIF_MI_BASE + 0x000000C0)
1134*4882a593Smuzhiyun #define CIF_MI_SP_CR_OFFS_CNT_SHD (CIF_MI_BASE + 0x000000C4)
1135*4882a593Smuzhiyun #define CIF_MI_DMA_Y_PIC_START_AD (CIF_MI_BASE + 0x000000C8)
1136*4882a593Smuzhiyun #define CIF_MI_DMA_Y_PIC_WIDTH (CIF_MI_BASE + 0x000000CC)
1137*4882a593Smuzhiyun #define CIF_MI_DMA_Y_LLENGTH (CIF_MI_BASE + 0x000000D0)
1138*4882a593Smuzhiyun #define CIF_MI_DMA_Y_PIC_SIZE (CIF_MI_BASE + 0x000000D4)
1139*4882a593Smuzhiyun #define CIF_MI_DMA_CB_PIC_START_AD (CIF_MI_BASE + 0x000000D8)
1140*4882a593Smuzhiyun #define CIF_MI_DMA_CR_PIC_START_AD (CIF_MI_BASE + 0x000000E8)
1141*4882a593Smuzhiyun #define CIF_MI_IMSC (CIF_MI_BASE + 0x000000F8)
1142*4882a593Smuzhiyun #define CIF_MI_RIS (CIF_MI_BASE + 0x000000FC)
1143*4882a593Smuzhiyun #define CIF_MI_MIS (CIF_MI_BASE + 0x00000100)
1144*4882a593Smuzhiyun #define CIF_MI_ICR (CIF_MI_BASE + 0x00000104)
1145*4882a593Smuzhiyun #define CIF_MI_ISR (CIF_MI_BASE + 0x00000108)
1146*4882a593Smuzhiyun #define CIF_MI_STATUS (CIF_MI_BASE + 0x0000010C)
1147*4882a593Smuzhiyun #define CIF_MI_STATUS_CLR (CIF_MI_BASE + 0x00000110)
1148*4882a593Smuzhiyun #define CIF_MI_SP_Y_PIC_WIDTH (CIF_MI_BASE + 0x00000114)
1149*4882a593Smuzhiyun #define CIF_MI_SP_Y_PIC_HEIGHT (CIF_MI_BASE + 0x00000118)
1150*4882a593Smuzhiyun #define CIF_MI_SP_Y_PIC_SIZE (CIF_MI_BASE + 0x0000011C)
1151*4882a593Smuzhiyun #define CIF_MI_DMA_CTRL (CIF_MI_BASE + 0x00000120)
1152*4882a593Smuzhiyun #define CIF_MI_DMA_START (CIF_MI_BASE + 0x00000124)
1153*4882a593Smuzhiyun #define CIF_MI_DMA_STATUS (CIF_MI_BASE + 0x00000128)
1154*4882a593Smuzhiyun #define CIF_MI_PIXEL_COUNT (CIF_MI_BASE + 0x0000012C)
1155*4882a593Smuzhiyun #define CIF_MI_MP_Y_BASE_AD_INIT2 (CIF_MI_BASE + 0x00000130)
1156*4882a593Smuzhiyun #define CIF_MI_MP_CB_BASE_AD_INIT2 (CIF_MI_BASE + 0x00000134)
1157*4882a593Smuzhiyun #define CIF_MI_MP_CR_BASE_AD_INIT2 (CIF_MI_BASE + 0x00000138)
1158*4882a593Smuzhiyun #define CIF_MI_SP_Y_BASE_AD_INIT2 (CIF_MI_BASE + 0x0000013C)
1159*4882a593Smuzhiyun #define CIF_MI_SP_CB_BASE_AD_INIT2 (CIF_MI_BASE + 0x00000140)
1160*4882a593Smuzhiyun #define CIF_MI_SP_CR_BASE_AD_INIT2 (CIF_MI_BASE + 0x00000144)
1161*4882a593Smuzhiyun #define CIF_MI_XTD_FORMAT_CTRL (CIF_MI_BASE + 0x00000148)
1162*4882a593Smuzhiyun #define CIF_MI_CTRL2 (CIF_MI_BASE + 0x00000150)
1163*4882a593Smuzhiyun #define CIF_MI_RAW0_BASE_AD_INIT (CIF_MI_BASE + 0x00000160)
1164*4882a593Smuzhiyun #define CIF_MI_RAW0_BASE_AD_INIT2 (CIF_MI_BASE + 0x00000164)
1165*4882a593Smuzhiyun #define CIF_MI_RAW0_IRQ_OFFS_INIT (CIF_MI_BASE + 0x00000168)
1166*4882a593Smuzhiyun #define CIF_MI_RAW0_SIZE_INIT (CIF_MI_BASE + 0x0000016c)
1167*4882a593Smuzhiyun #define CIF_MI_RAW0_OFFS_CNT_INIT (CIF_MI_BASE + 0x00000170)
1168*4882a593Smuzhiyun #define CIF_MI_RAW0_LENGTH (CIF_MI_BASE + 0x00000174)
1169*4882a593Smuzhiyun #define CIF_MI_RAW0_OFFS_CNT_START_SHD (CIF_MI_BASE + 0x00000178)
1170*4882a593Smuzhiyun #define CIF_MI_RAW0_BASE_AS_SHD (CIF_MI_BASE + 0x00000180)
1171*4882a593Smuzhiyun #define CIF_MI_RAW0_IRQ_OFFS_INI_SHD (CIF_MI_BASE + 0x00000184)
1172*4882a593Smuzhiyun #define CIF_MI_RAW0_SIZE_INIT_SHD (CIF_MI_BASE + 0x00000188)
1173*4882a593Smuzhiyun #define CIF_MI_RAW0_OFFS_CNT_INIT_SHD (CIF_MI_BASE + 0x0000018c)
1174*4882a593Smuzhiyun
1175*4882a593Smuzhiyun #define CIF_SMIA_BASE 0x00001A00
1176*4882a593Smuzhiyun #define CIF_SMIA_CTRL (CIF_SMIA_BASE + 0x00000000)
1177*4882a593Smuzhiyun #define CIF_SMIA_STATUS (CIF_SMIA_BASE + 0x00000004)
1178*4882a593Smuzhiyun #define CIF_SMIA_IMSC (CIF_SMIA_BASE + 0x00000008)
1179*4882a593Smuzhiyun #define CIF_SMIA_RIS (CIF_SMIA_BASE + 0x0000000C)
1180*4882a593Smuzhiyun #define CIF_SMIA_MIS (CIF_SMIA_BASE + 0x00000010)
1181*4882a593Smuzhiyun #define CIF_SMIA_ICR (CIF_SMIA_BASE + 0x00000014)
1182*4882a593Smuzhiyun #define CIF_SMIA_ISR (CIF_SMIA_BASE + 0x00000018)
1183*4882a593Smuzhiyun #define CIF_SMIA_DATA_FORMAT_SEL (CIF_SMIA_BASE + 0x0000001C)
1184*4882a593Smuzhiyun #define CIF_SMIA_SOF_EMB_DATA_LINES (CIF_SMIA_BASE + 0x00000020)
1185*4882a593Smuzhiyun #define CIF_SMIA_EMB_HSTART (CIF_SMIA_BASE + 0x00000024)
1186*4882a593Smuzhiyun #define CIF_SMIA_EMB_HSIZE (CIF_SMIA_BASE + 0x00000028)
1187*4882a593Smuzhiyun #define CIF_SMIA_EMB_VSTART (CIF_SMIA_BASE + 0x0000002c)
1188*4882a593Smuzhiyun #define CIF_SMIA_NUM_LINES (CIF_SMIA_BASE + 0x00000030)
1189*4882a593Smuzhiyun #define CIF_SMIA_EMB_DATA_FIFO (CIF_SMIA_BASE + 0x00000034)
1190*4882a593Smuzhiyun #define CIF_SMIA_EMB_DATA_WATERMARK (CIF_SMIA_BASE + 0x00000038)
1191*4882a593Smuzhiyun
1192*4882a593Smuzhiyun #define CIF_MIPI_BASE 0x00001C00
1193*4882a593Smuzhiyun #define CIF_MIPI_CTRL (CIF_MIPI_BASE + 0x00000000)
1194*4882a593Smuzhiyun #define CIF_MIPI_STATUS (CIF_MIPI_BASE + 0x00000004)
1195*4882a593Smuzhiyun #define CIF_MIPI_IMSC (CIF_MIPI_BASE + 0x00000008)
1196*4882a593Smuzhiyun #define CIF_MIPI_RIS (CIF_MIPI_BASE + 0x0000000C)
1197*4882a593Smuzhiyun #define CIF_MIPI_MIS (CIF_MIPI_BASE + 0x00000010)
1198*4882a593Smuzhiyun #define CIF_MIPI_ICR (CIF_MIPI_BASE + 0x00000014)
1199*4882a593Smuzhiyun #define CIF_MIPI_ISR (CIF_MIPI_BASE + 0x00000018)
1200*4882a593Smuzhiyun #define CIF_MIPI_CUR_DATA_ID (CIF_MIPI_BASE + 0x0000001C)
1201*4882a593Smuzhiyun #define CIF_MIPI_IMG_DATA_SEL (CIF_MIPI_BASE + 0x00000020)
1202*4882a593Smuzhiyun #define CIF_MIPI_ADD_DATA_SEL_1 (CIF_MIPI_BASE + 0x00000024)
1203*4882a593Smuzhiyun #define CIF_MIPI_ADD_DATA_SEL_2 (CIF_MIPI_BASE + 0x00000028)
1204*4882a593Smuzhiyun #define CIF_MIPI_ADD_DATA_SEL_3 (CIF_MIPI_BASE + 0x0000002C)
1205*4882a593Smuzhiyun #define CIF_MIPI_ADD_DATA_SEL_4 (CIF_MIPI_BASE + 0x00000030)
1206*4882a593Smuzhiyun #define CIF_MIPI_ADD_DATA_FIFO (CIF_MIPI_BASE + 0x00000034)
1207*4882a593Smuzhiyun #define CIF_MIPI_FIFO_FILL_LEVEL (CIF_MIPI_BASE + 0x00000038)
1208*4882a593Smuzhiyun #define CIF_MIPI_COMPRESSED_MODE (CIF_MIPI_BASE + 0x0000003C)
1209*4882a593Smuzhiyun #define CIF_MIPI_FRAME (CIF_MIPI_BASE + 0x00000040)
1210*4882a593Smuzhiyun #define CIF_MIPI_GEN_SHORT_DT (CIF_MIPI_BASE + 0x00000044)
1211*4882a593Smuzhiyun #define CIF_MIPI_GEN_SHORT_8_9 (CIF_MIPI_BASE + 0x00000048)
1212*4882a593Smuzhiyun #define CIF_MIPI_GEN_SHORT_A_B (CIF_MIPI_BASE + 0x0000004C)
1213*4882a593Smuzhiyun #define CIF_MIPI_GEN_SHORT_C_D (CIF_MIPI_BASE + 0x00000050)
1214*4882a593Smuzhiyun #define CIF_MIPI_GEN_SHORT_E_F (CIF_MIPI_BASE + 0x00000054)
1215*4882a593Smuzhiyun
1216*4882a593Smuzhiyun #define CIF_ISP_AFM_BASE 0x00002000
1217*4882a593Smuzhiyun #define CIF_ISP_AFM_CTRL (CIF_ISP_AFM_BASE + 0x00000000)
1218*4882a593Smuzhiyun #define CIF_ISP_AFM_LT_A (CIF_ISP_AFM_BASE + 0x00000004)
1219*4882a593Smuzhiyun #define CIF_ISP_AFM_RB_A (CIF_ISP_AFM_BASE + 0x00000008)
1220*4882a593Smuzhiyun #define CIF_ISP_AFM_LT_B (CIF_ISP_AFM_BASE + 0x0000000C)
1221*4882a593Smuzhiyun #define CIF_ISP_AFM_RB_B (CIF_ISP_AFM_BASE + 0x00000010)
1222*4882a593Smuzhiyun #define CIF_ISP_AFM_LT_C (CIF_ISP_AFM_BASE + 0x00000014)
1223*4882a593Smuzhiyun #define CIF_ISP_AFM_RB_C (CIF_ISP_AFM_BASE + 0x00000018)
1224*4882a593Smuzhiyun #define CIF_ISP_AFM_THRES (CIF_ISP_AFM_BASE + 0x0000001C)
1225*4882a593Smuzhiyun #define CIF_ISP_AFM_VAR_SHIFT (CIF_ISP_AFM_BASE + 0x00000020)
1226*4882a593Smuzhiyun #define CIF_ISP_AFM_SUM_A (CIF_ISP_AFM_BASE + 0x00000024)
1227*4882a593Smuzhiyun #define CIF_ISP_AFM_SUM_B (CIF_ISP_AFM_BASE + 0x00000028)
1228*4882a593Smuzhiyun #define CIF_ISP_AFM_SUM_C (CIF_ISP_AFM_BASE + 0x0000002C)
1229*4882a593Smuzhiyun #define CIF_ISP_AFM_LUM_A (CIF_ISP_AFM_BASE + 0x00000030)
1230*4882a593Smuzhiyun #define CIF_ISP_AFM_LUM_B (CIF_ISP_AFM_BASE + 0x00000034)
1231*4882a593Smuzhiyun #define CIF_ISP_AFM_LUM_C (CIF_ISP_AFM_BASE + 0x00000038)
1232*4882a593Smuzhiyun
1233*4882a593Smuzhiyun #define CIF_ISP_LSC_BASE 0x00002200
1234*4882a593Smuzhiyun #define CIF_ISP_LSC_CTRL (CIF_ISP_LSC_BASE + 0x00000000)
1235*4882a593Smuzhiyun #define CIF_ISP_LSC_R_TABLE_ADDR (CIF_ISP_LSC_BASE + 0x00000004)
1236*4882a593Smuzhiyun #define CIF_ISP_LSC_GR_TABLE_ADDR (CIF_ISP_LSC_BASE + 0x00000008)
1237*4882a593Smuzhiyun #define CIF_ISP_LSC_B_TABLE_ADDR (CIF_ISP_LSC_BASE + 0x0000000C)
1238*4882a593Smuzhiyun #define CIF_ISP_LSC_GB_TABLE_ADDR (CIF_ISP_LSC_BASE + 0x00000010)
1239*4882a593Smuzhiyun #define CIF_ISP_LSC_R_TABLE_DATA (CIF_ISP_LSC_BASE + 0x00000014)
1240*4882a593Smuzhiyun #define CIF_ISP_LSC_GR_TABLE_DATA (CIF_ISP_LSC_BASE + 0x00000018)
1241*4882a593Smuzhiyun #define CIF_ISP_LSC_B_TABLE_DATA (CIF_ISP_LSC_BASE + 0x0000001C)
1242*4882a593Smuzhiyun #define CIF_ISP_LSC_GB_TABLE_DATA (CIF_ISP_LSC_BASE + 0x00000020)
1243*4882a593Smuzhiyun #define CIF_ISP_LSC_XGRAD_01 (CIF_ISP_LSC_BASE + 0x00000024)
1244*4882a593Smuzhiyun #define CIF_ISP_LSC_XGRAD_23 (CIF_ISP_LSC_BASE + 0x00000028)
1245*4882a593Smuzhiyun #define CIF_ISP_LSC_XGRAD_45 (CIF_ISP_LSC_BASE + 0x0000002C)
1246*4882a593Smuzhiyun #define CIF_ISP_LSC_XGRAD_67 (CIF_ISP_LSC_BASE + 0x00000030)
1247*4882a593Smuzhiyun #define CIF_ISP_LSC_YGRAD_01 (CIF_ISP_LSC_BASE + 0x00000034)
1248*4882a593Smuzhiyun #define CIF_ISP_LSC_YGRAD_23 (CIF_ISP_LSC_BASE + 0x00000038)
1249*4882a593Smuzhiyun #define CIF_ISP_LSC_YGRAD_45 (CIF_ISP_LSC_BASE + 0x0000003C)
1250*4882a593Smuzhiyun #define CIF_ISP_LSC_YGRAD_67 (CIF_ISP_LSC_BASE + 0x00000040)
1251*4882a593Smuzhiyun #define CIF_ISP_LSC_XSIZE_01 (CIF_ISP_LSC_BASE + 0x00000044)
1252*4882a593Smuzhiyun #define CIF_ISP_LSC_XSIZE_23 (CIF_ISP_LSC_BASE + 0x00000048)
1253*4882a593Smuzhiyun #define CIF_ISP_LSC_XSIZE_45 (CIF_ISP_LSC_BASE + 0x0000004C)
1254*4882a593Smuzhiyun #define CIF_ISP_LSC_XSIZE_67 (CIF_ISP_LSC_BASE + 0x00000050)
1255*4882a593Smuzhiyun #define CIF_ISP_LSC_YSIZE_01 (CIF_ISP_LSC_BASE + 0x00000054)
1256*4882a593Smuzhiyun #define CIF_ISP_LSC_YSIZE_23 (CIF_ISP_LSC_BASE + 0x00000058)
1257*4882a593Smuzhiyun #define CIF_ISP_LSC_YSIZE_45 (CIF_ISP_LSC_BASE + 0x0000005C)
1258*4882a593Smuzhiyun #define CIF_ISP_LSC_YSIZE_67 (CIF_ISP_LSC_BASE + 0x00000060)
1259*4882a593Smuzhiyun #define CIF_ISP_LSC_TABLE_SEL (CIF_ISP_LSC_BASE + 0x00000064)
1260*4882a593Smuzhiyun #define CIF_ISP_LSC_STATUS (CIF_ISP_LSC_BASE + 0x00000068)
1261*4882a593Smuzhiyun
1262*4882a593Smuzhiyun #define CIF_ISP_IS_BASE 0x00002300
1263*4882a593Smuzhiyun #define CIF_ISP_IS_CTRL (CIF_ISP_IS_BASE + 0x00000000)
1264*4882a593Smuzhiyun #define CIF_ISP_IS_RECENTER (CIF_ISP_IS_BASE + 0x00000004)
1265*4882a593Smuzhiyun #define CIF_ISP_IS_H_OFFS (CIF_ISP_IS_BASE + 0x00000008)
1266*4882a593Smuzhiyun #define CIF_ISP_IS_V_OFFS (CIF_ISP_IS_BASE + 0x0000000C)
1267*4882a593Smuzhiyun #define CIF_ISP_IS_H_SIZE (CIF_ISP_IS_BASE + 0x00000010)
1268*4882a593Smuzhiyun #define CIF_ISP_IS_V_SIZE (CIF_ISP_IS_BASE + 0x00000014)
1269*4882a593Smuzhiyun #define CIF_ISP_IS_MAX_DX (CIF_ISP_IS_BASE + 0x00000018)
1270*4882a593Smuzhiyun #define CIF_ISP_IS_MAX_DY (CIF_ISP_IS_BASE + 0x0000001C)
1271*4882a593Smuzhiyun #define CIF_ISP_IS_DISPLACE (CIF_ISP_IS_BASE + 0x00000020)
1272*4882a593Smuzhiyun #define CIF_ISP_IS_H_OFFS_SHD (CIF_ISP_IS_BASE + 0x00000024)
1273*4882a593Smuzhiyun #define CIF_ISP_IS_V_OFFS_SHD (CIF_ISP_IS_BASE + 0x00000028)
1274*4882a593Smuzhiyun #define CIF_ISP_IS_H_SIZE_SHD (CIF_ISP_IS_BASE + 0x0000002C)
1275*4882a593Smuzhiyun #define CIF_ISP_IS_V_SIZE_SHD (CIF_ISP_IS_BASE + 0x00000030)
1276*4882a593Smuzhiyun
1277*4882a593Smuzhiyun #define CIF_ISP_HIST_BASE_V10 0x00002400
1278*4882a593Smuzhiyun #define CIF_ISP_HIST_PROP_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000000)
1279*4882a593Smuzhiyun #define CIF_ISP_HIST_H_OFFS_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000004)
1280*4882a593Smuzhiyun #define CIF_ISP_HIST_V_OFFS_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000008)
1281*4882a593Smuzhiyun #define CIF_ISP_HIST_H_SIZE_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000000C)
1282*4882a593Smuzhiyun #define CIF_ISP_HIST_V_SIZE_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000010)
1283*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_0_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000014)
1284*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_1_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000018)
1285*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_2_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000001C)
1286*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_3_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000020)
1287*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_4_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000024)
1288*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_5_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000028)
1289*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_6_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000002C)
1290*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_7_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000030)
1291*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_8_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000034)
1292*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_9_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000038)
1293*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_10_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000003C)
1294*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_11_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000040)
1295*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_12_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000044)
1296*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_13_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000048)
1297*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_14_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000004C)
1298*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_15_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000050)
1299*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_00TO30_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000054)
1300*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_40TO21_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000058)
1301*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_31TO12_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000005C)
1302*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_22TO03_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000060)
1303*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_13TO43_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000064)
1304*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_04TO34_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000068)
1305*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_44_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000006C)
1306*4882a593Smuzhiyun
1307*4882a593Smuzhiyun #define CIF_ISP_FILT_BASE 0x00002500
1308*4882a593Smuzhiyun #define CIF_ISP_FILT_MODE (CIF_ISP_FILT_BASE + 0x00000000)
1309*4882a593Smuzhiyun #define CIF_ISP_FILT_THRESH_BL0 (CIF_ISP_FILT_BASE + 0x00000028)
1310*4882a593Smuzhiyun #define CIF_ISP_FILT_THRESH_BL1 (CIF_ISP_FILT_BASE + 0x0000002c)
1311*4882a593Smuzhiyun #define CIF_ISP_FILT_THRESH_SH0 (CIF_ISP_FILT_BASE + 0x00000030)
1312*4882a593Smuzhiyun #define CIF_ISP_FILT_THRESH_SH1 (CIF_ISP_FILT_BASE + 0x00000034)
1313*4882a593Smuzhiyun #define CIF_ISP_FILT_LUM_WEIGHT (CIF_ISP_FILT_BASE + 0x00000038)
1314*4882a593Smuzhiyun #define CIF_ISP_FILT_FAC_SH1 (CIF_ISP_FILT_BASE + 0x0000003c)
1315*4882a593Smuzhiyun #define CIF_ISP_FILT_FAC_SH0 (CIF_ISP_FILT_BASE + 0x00000040)
1316*4882a593Smuzhiyun #define CIF_ISP_FILT_FAC_MID (CIF_ISP_FILT_BASE + 0x00000044)
1317*4882a593Smuzhiyun #define CIF_ISP_FILT_FAC_BL0 (CIF_ISP_FILT_BASE + 0x00000048)
1318*4882a593Smuzhiyun #define CIF_ISP_FILT_FAC_BL1 (CIF_ISP_FILT_BASE + 0x0000004C)
1319*4882a593Smuzhiyun #define CIF_ISP_FILT_ISP_CAC_CTRL (CIF_ISP_FILT_BASE + 0x00000080)
1320*4882a593Smuzhiyun #define CIF_ISP_FILT_CAC_COUNT_START (CIF_ISP_FILT_BASE + 0x00000084)
1321*4882a593Smuzhiyun #define CIF_ISP_FILT_CAC_A (CIF_ISP_FILT_BASE + 0x00000088)
1322*4882a593Smuzhiyun #define CIF_ISP_FILT_CAC_B (CIF_ISP_FILT_BASE + 0x0000008c)
1323*4882a593Smuzhiyun #define CIF_ISP_FILT_CAC_C (CIF_ISP_FILT_BASE + 0x00000090)
1324*4882a593Smuzhiyun #define CIF_ISP_FILT_CAC_X_NORM (CIF_ISP_FILT_BASE + 0x00000094)
1325*4882a593Smuzhiyun #define CIF_ISP_FILT_CAC_Y_NORM (CIF_ISP_FILT_BASE + 0x00000098)
1326*4882a593Smuzhiyun #define CIF_ISP_FILT_LU_DIVID (CIF_ISP_FILT_BASE + 0x000000a0)
1327*4882a593Smuzhiyun #define CIF_ISP_FILT_THGRAD_DIVID0123 (CIF_ISP_FILT_BASE + 0x000000a4)
1328*4882a593Smuzhiyun #define CIF_ISP_FILT_THGRAD_DIVID4 (CIF_ISP_FILT_BASE + 0x000000a8)
1329*4882a593Smuzhiyun #define CIF_ISP_FILT_THDIFF_DIVID0123 (CIF_ISP_FILT_BASE + 0x000000ac)
1330*4882a593Smuzhiyun #define CIF_ISP_FILT_THDIFF_DIVID4 (CIF_ISP_FILT_BASE + 0x000000b0)
1331*4882a593Smuzhiyun #define CIF_ISP_FILT_THCSC_DIVID0123 (CIF_ISP_FILT_BASE + 0x000000b4)
1332*4882a593Smuzhiyun #define CIF_ISP_FILT_THCSC_DIVID4 (CIF_ISP_FILT_BASE + 0x000000b8)
1333*4882a593Smuzhiyun #define CIF_ISP_FILT_THVAR_DIVID01 (CIF_ISP_FILT_BASE + 0x000000bc)
1334*4882a593Smuzhiyun #define CIF_ISP_FILT_THVAR_DIVID23 (CIF_ISP_FILT_BASE + 0x000000c0)
1335*4882a593Smuzhiyun #define CIF_ISP_FILT_THVAR_DIVID4 (CIF_ISP_FILT_BASE + 0x000000c4)
1336*4882a593Smuzhiyun #define CIF_ISP_FILT_TH_GRAD (CIF_ISP_FILT_BASE + 0x000000c8)
1337*4882a593Smuzhiyun #define CIF_ISP_FILT_TH_DIFF (CIF_ISP_FILT_BASE + 0x000000cc)
1338*4882a593Smuzhiyun #define CIF_ISP_FILT_TH_CSC (CIF_ISP_FILT_BASE + 0x000000d0)
1339*4882a593Smuzhiyun #define CIF_ISP_FILT_TH_VAR (CIF_ISP_FILT_BASE + 0x000000d4)
1340*4882a593Smuzhiyun #define CIF_ISP_FILT_LELEL_SEL (CIF_ISP_FILT_BASE + 0x000000d8)
1341*4882a593Smuzhiyun #define CIF_ISP_FILT_R_FCT (CIF_ISP_FILT_BASE + 0x000000dc)
1342*4882a593Smuzhiyun #define CIF_ISP_FILT_B_FCT (CIF_ISP_FILT_BASE + 0x000000e0)
1343*4882a593Smuzhiyun
1344*4882a593Smuzhiyun #define CIF_ISP_CAC_BASE 0x00002580
1345*4882a593Smuzhiyun #define CIF_ISP_CAC_CTRL (CIF_ISP_CAC_BASE + 0x00000000)
1346*4882a593Smuzhiyun #define CIF_ISP_CAC_COUNT_START (CIF_ISP_CAC_BASE + 0x00000004)
1347*4882a593Smuzhiyun #define CIF_ISP_CAC_A (CIF_ISP_CAC_BASE + 0x00000008)
1348*4882a593Smuzhiyun #define CIF_ISP_CAC_B (CIF_ISP_CAC_BASE + 0x0000000C)
1349*4882a593Smuzhiyun #define CIF_ISP_CAC_C (CIF_ISP_CAC_BASE + 0x00000010)
1350*4882a593Smuzhiyun #define CIF_ISP_X_NORM (CIF_ISP_CAC_BASE + 0x00000014)
1351*4882a593Smuzhiyun #define CIF_ISP_Y_NORM (CIF_ISP_CAC_BASE + 0x00000018)
1352*4882a593Smuzhiyun
1353*4882a593Smuzhiyun #define CIF_ISP_EXP_BASE 0x00002600
1354*4882a593Smuzhiyun #define CIF_ISP_EXP_CTRL (CIF_ISP_EXP_BASE + 0x00000000)
1355*4882a593Smuzhiyun #define CIF_ISP_EXP_H_OFFSET_V10 (CIF_ISP_EXP_BASE + 0x00000004)
1356*4882a593Smuzhiyun #define CIF_ISP_EXP_V_OFFSET_V10 (CIF_ISP_EXP_BASE + 0x00000008)
1357*4882a593Smuzhiyun #define CIF_ISP_EXP_H_SIZE_V10 (CIF_ISP_EXP_BASE + 0x0000000C)
1358*4882a593Smuzhiyun #define CIF_ISP_EXP_V_SIZE_V10 (CIF_ISP_EXP_BASE + 0x00000010)
1359*4882a593Smuzhiyun #define CIF_ISP_EXP_SIZE_V12 (CIF_ISP_EXP_BASE + 0x00000004)
1360*4882a593Smuzhiyun #define CIF_ISP_EXP_OFFS_V12 (CIF_ISP_EXP_BASE + 0x00000008)
1361*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_V12 (CIF_ISP_EXP_BASE + 0x0000000c)
1362*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_00_V10 (CIF_ISP_EXP_BASE + 0x00000014)
1363*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_10_V10 (CIF_ISP_EXP_BASE + 0x00000018)
1364*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_20_V10 (CIF_ISP_EXP_BASE + 0x0000001c)
1365*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_30_V10 (CIF_ISP_EXP_BASE + 0x00000020)
1366*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_40_V10 (CIF_ISP_EXP_BASE + 0x00000024)
1367*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_01_V10 (CIF_ISP_EXP_BASE + 0x00000028)
1368*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_11_V10 (CIF_ISP_EXP_BASE + 0x0000002c)
1369*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_21_V10 (CIF_ISP_EXP_BASE + 0x00000030)
1370*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_31_V10 (CIF_ISP_EXP_BASE + 0x00000034)
1371*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_41_V10 (CIF_ISP_EXP_BASE + 0x00000038)
1372*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_02_V10 (CIF_ISP_EXP_BASE + 0x0000003c)
1373*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_12_V10 (CIF_ISP_EXP_BASE + 0x00000040)
1374*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_22_V10 (CIF_ISP_EXP_BASE + 0x00000044)
1375*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_32_V10 (CIF_ISP_EXP_BASE + 0x00000048)
1376*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_42_V10 (CIF_ISP_EXP_BASE + 0x0000004c)
1377*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_03_V10 (CIF_ISP_EXP_BASE + 0x00000050)
1378*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_13_V10 (CIF_ISP_EXP_BASE + 0x00000054)
1379*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_23_V10 (CIF_ISP_EXP_BASE + 0x00000058)
1380*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_33_V10 (CIF_ISP_EXP_BASE + 0x0000005c)
1381*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_43_V10 (CIF_ISP_EXP_BASE + 0x00000060)
1382*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_04_V10 (CIF_ISP_EXP_BASE + 0x00000064)
1383*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_14_V10 (CIF_ISP_EXP_BASE + 0x00000068)
1384*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_24_V10 (CIF_ISP_EXP_BASE + 0x0000006c)
1385*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_34_V10 (CIF_ISP_EXP_BASE + 0x00000070)
1386*4882a593Smuzhiyun #define CIF_ISP_EXP_MEAN_44_V10 (CIF_ISP_EXP_BASE + 0x00000074)
1387*4882a593Smuzhiyun
1388*4882a593Smuzhiyun #define CIF_ISP_BLS_BASE 0x00002700
1389*4882a593Smuzhiyun #define CIF_ISP_BLS_CTRL (CIF_ISP_BLS_BASE + 0x00000000)
1390*4882a593Smuzhiyun #define CIF_ISP_BLS_SAMPLES (CIF_ISP_BLS_BASE + 0x00000004)
1391*4882a593Smuzhiyun #define CIF_ISP_BLS_H1_START (CIF_ISP_BLS_BASE + 0x00000008)
1392*4882a593Smuzhiyun #define CIF_ISP_BLS_H1_STOP (CIF_ISP_BLS_BASE + 0x0000000c)
1393*4882a593Smuzhiyun #define CIF_ISP_BLS_V1_START (CIF_ISP_BLS_BASE + 0x00000010)
1394*4882a593Smuzhiyun #define CIF_ISP_BLS_V1_STOP (CIF_ISP_BLS_BASE + 0x00000014)
1395*4882a593Smuzhiyun #define CIF_ISP_BLS_H2_START (CIF_ISP_BLS_BASE + 0x00000018)
1396*4882a593Smuzhiyun #define CIF_ISP_BLS_H2_STOP (CIF_ISP_BLS_BASE + 0x0000001c)
1397*4882a593Smuzhiyun #define CIF_ISP_BLS_V2_START (CIF_ISP_BLS_BASE + 0x00000020)
1398*4882a593Smuzhiyun #define CIF_ISP_BLS_V2_STOP (CIF_ISP_BLS_BASE + 0x00000024)
1399*4882a593Smuzhiyun #define CIF_ISP_BLS_A_FIXED (CIF_ISP_BLS_BASE + 0x00000028)
1400*4882a593Smuzhiyun #define CIF_ISP_BLS_B_FIXED (CIF_ISP_BLS_BASE + 0x0000002c)
1401*4882a593Smuzhiyun #define CIF_ISP_BLS_C_FIXED (CIF_ISP_BLS_BASE + 0x00000030)
1402*4882a593Smuzhiyun #define CIF_ISP_BLS_D_FIXED (CIF_ISP_BLS_BASE + 0x00000034)
1403*4882a593Smuzhiyun #define CIF_ISP_BLS_A_MEASURED (CIF_ISP_BLS_BASE + 0x00000038)
1404*4882a593Smuzhiyun #define CIF_ISP_BLS_B_MEASURED (CIF_ISP_BLS_BASE + 0x0000003c)
1405*4882a593Smuzhiyun #define CIF_ISP_BLS_C_MEASURED (CIF_ISP_BLS_BASE + 0x00000040)
1406*4882a593Smuzhiyun #define CIF_ISP_BLS_D_MEASURED (CIF_ISP_BLS_BASE + 0x00000044)
1407*4882a593Smuzhiyun
1408*4882a593Smuzhiyun #define CIF_ISP_DPF_BASE 0x00002800
1409*4882a593Smuzhiyun #define CIF_ISP_DPF_MODE (CIF_ISP_DPF_BASE + 0x00000000)
1410*4882a593Smuzhiyun #define CIF_ISP_DPF_STRENGTH_R (CIF_ISP_DPF_BASE + 0x00000004)
1411*4882a593Smuzhiyun #define CIF_ISP_DPF_STRENGTH_G (CIF_ISP_DPF_BASE + 0x00000008)
1412*4882a593Smuzhiyun #define CIF_ISP_DPF_STRENGTH_B (CIF_ISP_DPF_BASE + 0x0000000C)
1413*4882a593Smuzhiyun #define CIF_ISP_DPF_S_WEIGHT_G_1_4 (CIF_ISP_DPF_BASE + 0x00000010)
1414*4882a593Smuzhiyun #define CIF_ISP_DPF_S_WEIGHT_G_5_6 (CIF_ISP_DPF_BASE + 0x00000014)
1415*4882a593Smuzhiyun #define CIF_ISP_DPF_S_WEIGHT_RB_1_4 (CIF_ISP_DPF_BASE + 0x00000018)
1416*4882a593Smuzhiyun #define CIF_ISP_DPF_S_WEIGHT_RB_5_6 (CIF_ISP_DPF_BASE + 0x0000001C)
1417*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_0 (CIF_ISP_DPF_BASE + 0x00000020)
1418*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_1 (CIF_ISP_DPF_BASE + 0x00000024)
1419*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_2 (CIF_ISP_DPF_BASE + 0x00000028)
1420*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_3 (CIF_ISP_DPF_BASE + 0x0000002C)
1421*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_4 (CIF_ISP_DPF_BASE + 0x00000030)
1422*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_5 (CIF_ISP_DPF_BASE + 0x00000034)
1423*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_6 (CIF_ISP_DPF_BASE + 0x00000038)
1424*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_7 (CIF_ISP_DPF_BASE + 0x0000003C)
1425*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_8 (CIF_ISP_DPF_BASE + 0x00000040)
1426*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_9 (CIF_ISP_DPF_BASE + 0x00000044)
1427*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_10 (CIF_ISP_DPF_BASE + 0x00000048)
1428*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_11 (CIF_ISP_DPF_BASE + 0x0000004C)
1429*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_12 (CIF_ISP_DPF_BASE + 0x00000050)
1430*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_13 (CIF_ISP_DPF_BASE + 0x00000054)
1431*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_14 (CIF_ISP_DPF_BASE + 0x00000058)
1432*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_15 (CIF_ISP_DPF_BASE + 0x0000005C)
1433*4882a593Smuzhiyun #define CIF_ISP_DPF_NULL_COEFF_16 (CIF_ISP_DPF_BASE + 0x00000060)
1434*4882a593Smuzhiyun #define CIF_ISP_DPF_NF_GAIN_R (CIF_ISP_DPF_BASE + 0x00000064)
1435*4882a593Smuzhiyun #define CIF_ISP_DPF_NF_GAIN_GR (CIF_ISP_DPF_BASE + 0x00000068)
1436*4882a593Smuzhiyun #define CIF_ISP_DPF_NF_GAIN_GB (CIF_ISP_DPF_BASE + 0x0000006C)
1437*4882a593Smuzhiyun #define CIF_ISP_DPF_NF_GAIN_B (CIF_ISP_DPF_BASE + 0x00000070)
1438*4882a593Smuzhiyun
1439*4882a593Smuzhiyun #define CIF_ISP_DPCC_BASE 0x00002900
1440*4882a593Smuzhiyun #define CIF_ISP_DPCC_MODE (CIF_ISP_DPCC_BASE + 0x00000000)
1441*4882a593Smuzhiyun #define CIF_ISP_DPCC_OUTPUT_MODE (CIF_ISP_DPCC_BASE + 0x00000004)
1442*4882a593Smuzhiyun #define CIF_ISP_DPCC_SET_USE (CIF_ISP_DPCC_BASE + 0x00000008)
1443*4882a593Smuzhiyun #define CIF_ISP_DPCC_METHODS_SET_1 (CIF_ISP_DPCC_BASE + 0x0000000C)
1444*4882a593Smuzhiyun #define CIF_ISP_DPCC_METHODS_SET_2 (CIF_ISP_DPCC_BASE + 0x00000010)
1445*4882a593Smuzhiyun #define CIF_ISP_DPCC_METHODS_SET_3 (CIF_ISP_DPCC_BASE + 0x00000014)
1446*4882a593Smuzhiyun #define CIF_ISP_DPCC_LINE_THRESH_1 (CIF_ISP_DPCC_BASE + 0x00000018)
1447*4882a593Smuzhiyun #define CIF_ISP_DPCC_LINE_MAD_FAC_1 (CIF_ISP_DPCC_BASE + 0x0000001C)
1448*4882a593Smuzhiyun #define CIF_ISP_DPCC_PG_FAC_1 (CIF_ISP_DPCC_BASE + 0x00000020)
1449*4882a593Smuzhiyun #define CIF_ISP_DPCC_RND_THRESH_1 (CIF_ISP_DPCC_BASE + 0x00000024)
1450*4882a593Smuzhiyun #define CIF_ISP_DPCC_RG_FAC_1 (CIF_ISP_DPCC_BASE + 0x00000028)
1451*4882a593Smuzhiyun #define CIF_ISP_DPCC_LINE_THRESH_2 (CIF_ISP_DPCC_BASE + 0x0000002C)
1452*4882a593Smuzhiyun #define CIF_ISP_DPCC_LINE_MAD_FAC_2 (CIF_ISP_DPCC_BASE + 0x00000030)
1453*4882a593Smuzhiyun #define CIF_ISP_DPCC_PG_FAC_2 (CIF_ISP_DPCC_BASE + 0x00000034)
1454*4882a593Smuzhiyun #define CIF_ISP_DPCC_RND_THRESH_2 (CIF_ISP_DPCC_BASE + 0x00000038)
1455*4882a593Smuzhiyun #define CIF_ISP_DPCC_RG_FAC_2 (CIF_ISP_DPCC_BASE + 0x0000003C)
1456*4882a593Smuzhiyun #define CIF_ISP_DPCC_LINE_THRESH_3 (CIF_ISP_DPCC_BASE + 0x00000040)
1457*4882a593Smuzhiyun #define CIF_ISP_DPCC_LINE_MAD_FAC_3 (CIF_ISP_DPCC_BASE + 0x00000044)
1458*4882a593Smuzhiyun #define CIF_ISP_DPCC_PG_FAC_3 (CIF_ISP_DPCC_BASE + 0x00000048)
1459*4882a593Smuzhiyun #define CIF_ISP_DPCC_RND_THRESH_3 (CIF_ISP_DPCC_BASE + 0x0000004C)
1460*4882a593Smuzhiyun #define CIF_ISP_DPCC_RG_FAC_3 (CIF_ISP_DPCC_BASE + 0x00000050)
1461*4882a593Smuzhiyun #define CIF_ISP_DPCC_RO_LIMITS (CIF_ISP_DPCC_BASE + 0x00000054)
1462*4882a593Smuzhiyun #define CIF_ISP_DPCC_RND_OFFS (CIF_ISP_DPCC_BASE + 0x00000058)
1463*4882a593Smuzhiyun #define CIF_ISP_DPCC_BPT_CTRL (CIF_ISP_DPCC_BASE + 0x0000005C)
1464*4882a593Smuzhiyun #define CIF_ISP_DPCC_BPT_NUMBER (CIF_ISP_DPCC_BASE + 0x00000060)
1465*4882a593Smuzhiyun #define CIF_ISP_DPCC_BPT_ADDR (CIF_ISP_DPCC_BASE + 0x00000064)
1466*4882a593Smuzhiyun #define CIF_ISP_DPCC_BPT_DATA (CIF_ISP_DPCC_BASE + 0x00000068)
1467*4882a593Smuzhiyun
1468*4882a593Smuzhiyun #define CIF_ISP_WDR_BASE 0x00002A00
1469*4882a593Smuzhiyun #define CIF_ISP_WDR_CTRL (CIF_ISP_WDR_BASE + 0x00000000)
1470*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_1 (CIF_ISP_WDR_BASE + 0x00000004)
1471*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_2 (CIF_ISP_WDR_BASE + 0x00000008)
1472*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_3 (CIF_ISP_WDR_BASE + 0x0000000C)
1473*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_4 (CIF_ISP_WDR_BASE + 0x00000010)
1474*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_0 (CIF_ISP_WDR_BASE + 0x00000014)
1475*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_1 (CIF_ISP_WDR_BASE + 0x00000018)
1476*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_2 (CIF_ISP_WDR_BASE + 0x0000001C)
1477*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_3 (CIF_ISP_WDR_BASE + 0x00000020)
1478*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_4 (CIF_ISP_WDR_BASE + 0x00000024)
1479*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_5 (CIF_ISP_WDR_BASE + 0x00000028)
1480*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_6 (CIF_ISP_WDR_BASE + 0x0000002C)
1481*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_7 (CIF_ISP_WDR_BASE + 0x00000030)
1482*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_8 (CIF_ISP_WDR_BASE + 0x00000034)
1483*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_9 (CIF_ISP_WDR_BASE + 0x00000038)
1484*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_10 (CIF_ISP_WDR_BASE + 0x0000003C)
1485*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_11 (CIF_ISP_WDR_BASE + 0x00000040)
1486*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_12 (CIF_ISP_WDR_BASE + 0x00000044)
1487*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_13 (CIF_ISP_WDR_BASE + 0x00000048)
1488*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_14 (CIF_ISP_WDR_BASE + 0x0000004C)
1489*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_15 (CIF_ISP_WDR_BASE + 0x00000050)
1490*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_16 (CIF_ISP_WDR_BASE + 0x00000054)
1491*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_17 (CIF_ISP_WDR_BASE + 0x00000058)
1492*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_18 (CIF_ISP_WDR_BASE + 0x0000005C)
1493*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_19 (CIF_ISP_WDR_BASE + 0x00000060)
1494*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_20 (CIF_ISP_WDR_BASE + 0x00000064)
1495*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_21 (CIF_ISP_WDR_BASE + 0x00000068)
1496*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_22 (CIF_ISP_WDR_BASE + 0x0000006C)
1497*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_23 (CIF_ISP_WDR_BASE + 0x00000070)
1498*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_24 (CIF_ISP_WDR_BASE + 0x00000074)
1499*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_25 (CIF_ISP_WDR_BASE + 0x00000078)
1500*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_26 (CIF_ISP_WDR_BASE + 0x0000007C)
1501*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_27 (CIF_ISP_WDR_BASE + 0x00000080)
1502*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_28 (CIF_ISP_WDR_BASE + 0x00000084)
1503*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_29 (CIF_ISP_WDR_BASE + 0x00000088)
1504*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_30 (CIF_ISP_WDR_BASE + 0x0000008C)
1505*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_31 (CIF_ISP_WDR_BASE + 0x00000090)
1506*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_32 (CIF_ISP_WDR_BASE + 0x00000094)
1507*4882a593Smuzhiyun #define CIF_ISP_WDR_OFFSET (CIF_ISP_WDR_BASE + 0x00000098)
1508*4882a593Smuzhiyun #define CIF_ISP_WDR_DELTAMIN (CIF_ISP_WDR_BASE + 0x0000009C)
1509*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_1_SHD (CIF_ISP_WDR_BASE + 0x000000A0)
1510*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_2_SHD (CIF_ISP_WDR_BASE + 0x000000A4)
1511*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_3_SHD (CIF_ISP_WDR_BASE + 0x000000A8)
1512*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_4_SHD (CIF_ISP_WDR_BASE + 0x000000AC)
1513*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_0_SHD (CIF_ISP_WDR_BASE + 0x000000B0)
1514*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_1_SHD (CIF_ISP_WDR_BASE + 0x000000B4)
1515*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_2_SHD (CIF_ISP_WDR_BASE + 0x000000B8)
1516*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_3_SHD (CIF_ISP_WDR_BASE + 0x000000BC)
1517*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_4_SHD (CIF_ISP_WDR_BASE + 0x000000C0)
1518*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_5_SHD (CIF_ISP_WDR_BASE + 0x000000C4)
1519*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_6_SHD (CIF_ISP_WDR_BASE + 0x000000C8)
1520*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_7_SHD (CIF_ISP_WDR_BASE + 0x000000CC)
1521*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_8_SHD (CIF_ISP_WDR_BASE + 0x000000D0)
1522*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_9_SHD (CIF_ISP_WDR_BASE + 0x000000D4)
1523*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_10_SHD (CIF_ISP_WDR_BASE + 0x000000D8)
1524*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_11_SHD (CIF_ISP_WDR_BASE + 0x000000DC)
1525*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_12_SHD (CIF_ISP_WDR_BASE + 0x000000E0)
1526*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_13_SHD (CIF_ISP_WDR_BASE + 0x000000E4)
1527*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_14_SHD (CIF_ISP_WDR_BASE + 0x000000E8)
1528*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_15_SHD (CIF_ISP_WDR_BASE + 0x000000EC)
1529*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_16_SHD (CIF_ISP_WDR_BASE + 0x000000F0)
1530*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_17_SHD (CIF_ISP_WDR_BASE + 0x000000F4)
1531*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_18_SHD (CIF_ISP_WDR_BASE + 0x000000F8)
1532*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_19_SHD (CIF_ISP_WDR_BASE + 0x000000FC)
1533*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_20_SHD (CIF_ISP_WDR_BASE + 0x00000100)
1534*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_21_SHD (CIF_ISP_WDR_BASE + 0x00000104)
1535*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_22_SHD (CIF_ISP_WDR_BASE + 0x00000108)
1536*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_23_SHD (CIF_ISP_WDR_BASE + 0x0000010C)
1537*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_24_SHD (CIF_ISP_WDR_BASE + 0x00000110)
1538*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_25_SHD (CIF_ISP_WDR_BASE + 0x00000114)
1539*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_26_SHD (CIF_ISP_WDR_BASE + 0x00000118)
1540*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_27_SHD (CIF_ISP_WDR_BASE + 0x0000011C)
1541*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_28_SHD (CIF_ISP_WDR_BASE + 0x00000120)
1542*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_29_SHD (CIF_ISP_WDR_BASE + 0x00000124)
1543*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_30_SHD (CIF_ISP_WDR_BASE + 0x00000128)
1544*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_31_SHD (CIF_ISP_WDR_BASE + 0x0000012C)
1545*4882a593Smuzhiyun #define CIF_ISP_WDR_TONECURVE_YM_32_SHD (CIF_ISP_WDR_BASE + 0x00000130)
1546*4882a593Smuzhiyun
1547*4882a593Smuzhiyun #define CIF_ISP_RKWDR_CTRL0 (CIF_ISP_WDR_BASE + 0x00000150)
1548*4882a593Smuzhiyun #define CIF_ISP_RKWDR_CTRL1 (CIF_ISP_WDR_BASE + 0x00000154)
1549*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKOFF0 (CIF_ISP_WDR_BASE + 0x00000158)
1550*4882a593Smuzhiyun #define CIF_ISP_RKWDR_AVGCLIP (CIF_ISP_WDR_BASE + 0x0000015c)
1551*4882a593Smuzhiyun #define CIF_ISP_RKWDR_COE_0 (CIF_ISP_WDR_BASE + 0x00000160)
1552*4882a593Smuzhiyun #define CIF_ISP_RKWDR_COE_1 (CIF_ISP_WDR_BASE + 0x00000164)
1553*4882a593Smuzhiyun #define CIF_ISP_RKWDR_COE_2 (CIF_ISP_WDR_BASE + 0x00000168)
1554*4882a593Smuzhiyun #define CIF_ISP_RKWDR_COE_OFF (CIF_ISP_WDR_BASE + 0x0000016c)
1555*4882a593Smuzhiyun #define CIF_ISP_RKWDR_OVERL (CIF_ISP_WDR_BASE + 0x00000170)
1556*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKOFF1 (CIF_ISP_WDR_BASE + 0x00000174)
1557*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW0_0TO3 (CIF_ISP_WDR_BASE + 0x00000180)
1558*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW0_4TO7 (CIF_ISP_WDR_BASE + 0x00000184)
1559*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW1_0TO3 (CIF_ISP_WDR_BASE + 0x00000188)
1560*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW1_4TO7 (CIF_ISP_WDR_BASE + 0x0000018c)
1561*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW2_0TO3 (CIF_ISP_WDR_BASE + 0x00000190)
1562*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW2_4TO7 (CIF_ISP_WDR_BASE + 0x00000194)
1563*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW3_0TO3 (CIF_ISP_WDR_BASE + 0x00000198)
1564*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW3_4TO7 (CIF_ISP_WDR_BASE + 0x0000019c)
1565*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW4_0TO3 (CIF_ISP_WDR_BASE + 0x000001a0)
1566*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW4_4TO7 (CIF_ISP_WDR_BASE + 0x000001a4)
1567*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW5_0TO3 (CIF_ISP_WDR_BASE + 0x000001a8)
1568*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW5_4TO7 (CIF_ISP_WDR_BASE + 0x000001ac)
1569*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW6_0TO3 (CIF_ISP_WDR_BASE + 0x000001b0)
1570*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW6_4TO7 (CIF_ISP_WDR_BASE + 0x000001b4)
1571*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW7_0TO3 (CIF_ISP_WDR_BASE + 0x000001b8)
1572*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW7_4TO7 (CIF_ISP_WDR_BASE + 0x000001bc)
1573*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW8_0TO3 (CIF_ISP_WDR_BASE + 0x000001c0)
1574*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW8_4TO7 (CIF_ISP_WDR_BASE + 0x000001c4)
1575*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW9_0TO3 (CIF_ISP_WDR_BASE + 0x000001c8)
1576*4882a593Smuzhiyun #define CIF_ISP_RKWDR_BLKMEAN8_ROW9_4TO7 (CIF_ISP_WDR_BASE + 0x000001cc)
1577*4882a593Smuzhiyun
1578*4882a593Smuzhiyun #define CIF_ISP_HIST_BASE_V12 0x00002C00
1579*4882a593Smuzhiyun #define CIF_ISP_HIST_CTRL_V12 (CIF_ISP_HIST_BASE_V12 + 0x00000000)
1580*4882a593Smuzhiyun #define CIF_ISP_HIST_SIZE_V12 (CIF_ISP_HIST_BASE_V12 + 0x00000004)
1581*4882a593Smuzhiyun #define CIF_ISP_HIST_OFFS_V12 (CIF_ISP_HIST_BASE_V12 + 0x00000008)
1582*4882a593Smuzhiyun #define CIF_ISP_HIST_DBG1_V12 (CIF_ISP_HIST_BASE_V12 + 0x0000000C)
1583*4882a593Smuzhiyun #define CIF_ISP_HIST_DBG2_V12 (CIF_ISP_HIST_BASE_V12 + 0x0000001C)
1584*4882a593Smuzhiyun #define CIF_ISP_HIST_DBG3_V12 (CIF_ISP_HIST_BASE_V12 + 0x0000002C)
1585*4882a593Smuzhiyun #define CIF_ISP_HIST_WEIGHT_V12 (CIF_ISP_HIST_BASE_V12 + 0x0000003C)
1586*4882a593Smuzhiyun #define CIF_ISP_HIST_BIN_V12 (CIF_ISP_HIST_BASE_V12 + 0x00000120)
1587*4882a593Smuzhiyun
1588*4882a593Smuzhiyun #define CIF_ISP_VSM_BASE 0x00002F00
1589*4882a593Smuzhiyun #define CIF_ISP_VSM_MODE (CIF_ISP_VSM_BASE + 0x00000000)
1590*4882a593Smuzhiyun #define CIF_ISP_VSM_H_OFFS (CIF_ISP_VSM_BASE + 0x00000004)
1591*4882a593Smuzhiyun #define CIF_ISP_VSM_V_OFFS (CIF_ISP_VSM_BASE + 0x00000008)
1592*4882a593Smuzhiyun #define CIF_ISP_VSM_H_SIZE (CIF_ISP_VSM_BASE + 0x0000000C)
1593*4882a593Smuzhiyun #define CIF_ISP_VSM_V_SIZE (CIF_ISP_VSM_BASE + 0x00000010)
1594*4882a593Smuzhiyun #define CIF_ISP_VSM_H_SEGMENTS (CIF_ISP_VSM_BASE + 0x00000014)
1595*4882a593Smuzhiyun #define CIF_ISP_VSM_V_SEGMENTS (CIF_ISP_VSM_BASE + 0x00000018)
1596*4882a593Smuzhiyun #define CIF_ISP_VSM_DELTA_H (CIF_ISP_VSM_BASE + 0x0000001C)
1597*4882a593Smuzhiyun #define CIF_ISP_VSM_DELTA_V (CIF_ISP_VSM_BASE + 0x00000020)
1598*4882a593Smuzhiyun
1599*4882a593Smuzhiyun #define CIF_ISP_CSI0_BASE 0x00007000
1600*4882a593Smuzhiyun #define CIF_ISP_CSI0_CTRL0 (CIF_ISP_CSI0_BASE + 0x00000000)
1601*4882a593Smuzhiyun #define CIF_ISP_CSI0_CTRL1 (CIF_ISP_CSI0_BASE + 0x00000004)
1602*4882a593Smuzhiyun #define CIF_ISP_CSI0_CTRL2 (CIF_ISP_CSI0_BASE + 0x00000008)
1603*4882a593Smuzhiyun #define CIF_ISP_CSI0_CSI2_RESETN (CIF_ISP_CSI0_BASE + 0x00000010)
1604*4882a593Smuzhiyun #define CIF_ISP_CSI0_PHY_STATE_RO (CIF_ISP_CSI0_BASE + 0x00000014)
1605*4882a593Smuzhiyun #define CIF_ISP_CSI0_DATA_IDS_1 (CIF_ISP_CSI0_BASE + 0x00000018)
1606*4882a593Smuzhiyun #define CIF_ISP_CSI0_DATA_IDS_2 (CIF_ISP_CSI0_BASE + 0x0000001c)
1607*4882a593Smuzhiyun #define CIF_ISP_CSI0_ERR1 (CIF_ISP_CSI0_BASE + 0x00000020)
1608*4882a593Smuzhiyun #define CIF_ISP_CSI0_ERR2 (CIF_ISP_CSI0_BASE + 0x00000024)
1609*4882a593Smuzhiyun #define CIF_ISP_CSI0_ERR3 (CIF_ISP_CSI0_BASE + 0x00000028)
1610*4882a593Smuzhiyun #define CIF_ISP_CSI0_MASK1 (CIF_ISP_CSI0_BASE + 0x0000002c)
1611*4882a593Smuzhiyun #define CIF_ISP_CSI0_MASK2 (CIF_ISP_CSI0_BASE + 0x00000030)
1612*4882a593Smuzhiyun #define CIF_ISP_CSI0_MASK3 (CIF_ISP_CSI0_BASE + 0x00000034)
1613*4882a593Smuzhiyun #define CIF_ISP_CSI0_SET_HEARDER (CIF_ISP_CSI0_BASE + 0x00000038)
1614*4882a593Smuzhiyun #define CIF_ISP_CSI0_CUR_HEADER_RO (CIF_ISP_CSI0_BASE + 0x0000003c)
1615*4882a593Smuzhiyun #define CIF_ISP_CSI0_DMATX0_CTRL (CIF_ISP_CSI0_BASE + 0x00000040)
1616*4882a593Smuzhiyun #define CIF_ISP_CSI0_DMATX0_LINECNT_RO (CIF_ISP_CSI0_BASE + 0x00000044)
1617*4882a593Smuzhiyun #define CIF_ISP_CSI0_DMATX0_PIC_SIZE (CIF_ISP_CSI0_BASE + 0x00000048)
1618*4882a593Smuzhiyun #define CIF_ISP_CSI0_DMATX0_PIC_OFF (CIF_ISP_CSI0_BASE + 0x0000004c)
1619*4882a593Smuzhiyun #define CIF_ISP_CSI0_FRAME_NUM_RO (CIF_ISP_CSI0_BASE + 0x00000070)
1620*4882a593Smuzhiyun #define CIF_ISP_CSI0_ISP_LINECNT_RO (CIF_ISP_CSI0_BASE + 0x00000074)
1621*4882a593Smuzhiyun #define CIF_ISP_CSI0_TX_IBUF_STATUS_RO (CIF_ISP_CSI0_BASE + 0x00000078)
1622*4882a593Smuzhiyun #define CIF_ISP_CSI0_VERSION (CIF_ISP_CSI0_BASE + 0x0000007c)
1623*4882a593Smuzhiyun
1624*4882a593Smuzhiyun void rkisp_disable_dcrop(struct rkisp_stream *stream, bool async);
1625*4882a593Smuzhiyun void rkisp_config_dcrop(struct rkisp_stream *stream, struct v4l2_rect *rect, bool async);
1626*4882a593Smuzhiyun
1627*4882a593Smuzhiyun void rkisp_dump_rsz_regs(struct rkisp_stream *stream);
1628*4882a593Smuzhiyun void rkisp_disable_rsz(struct rkisp_stream *stream, bool async);
1629*4882a593Smuzhiyun void rkisp_config_rsz(struct rkisp_stream *stream, struct v4l2_rect *in_y,
1630*4882a593Smuzhiyun struct v4l2_rect *in_c, struct v4l2_rect *out_y,
1631*4882a593Smuzhiyun struct v4l2_rect *out_c, bool async);
1632*4882a593Smuzhiyun
config_mi_ctrl(struct rkisp_stream * stream,u32 burst)1633*4882a593Smuzhiyun static inline void config_mi_ctrl(struct rkisp_stream *stream, u32 burst)
1634*4882a593Smuzhiyun {
1635*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
1636*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1637*4882a593Smuzhiyun u32 reg;
1638*4882a593Smuzhiyun
1639*4882a593Smuzhiyun reg = readl(addr) & ~GENMASK(19, 16);
1640*4882a593Smuzhiyun writel(reg | burst, addr);
1641*4882a593Smuzhiyun reg = readl(addr);
1642*4882a593Smuzhiyun writel(reg | CIF_MI_CTRL_INIT_BASE_EN, addr);
1643*4882a593Smuzhiyun reg = readl(addr);
1644*4882a593Smuzhiyun writel(reg | CIF_MI_CTRL_INIT_OFFSET_EN, addr);
1645*4882a593Smuzhiyun }
1646*4882a593Smuzhiyun
mp_is_stream_stopped(struct rkisp_stream * stream)1647*4882a593Smuzhiyun static inline bool mp_is_stream_stopped(struct rkisp_stream *stream)
1648*4882a593Smuzhiyun {
1649*4882a593Smuzhiyun u32 en = CIF_MI_CTRL_SHD_MP_OUT_ENABLED | CIF_MI_CTRL_SHD_RAW_OUT_ENABLED;
1650*4882a593Smuzhiyun u32 reg = CIF_MI_CTRL_SHD;
1651*4882a593Smuzhiyun bool is_direct = true;
1652*4882a593Smuzhiyun
1653*4882a593Smuzhiyun if (!stream->ispdev->hw_dev->is_single) {
1654*4882a593Smuzhiyun is_direct = false;
1655*4882a593Smuzhiyun reg = CIF_MI_CTRL;
1656*4882a593Smuzhiyun en = CIF_MI_CTRL_MP_ENABLE | CIF_MI_CTRL_RAW_ENABLE;
1657*4882a593Smuzhiyun }
1658*4882a593Smuzhiyun
1659*4882a593Smuzhiyun return !(rkisp_read(stream->ispdev, reg, is_direct) & en);
1660*4882a593Smuzhiyun }
1661*4882a593Smuzhiyun
sp_is_stream_stopped(struct rkisp_stream * stream)1662*4882a593Smuzhiyun static inline bool sp_is_stream_stopped(struct rkisp_stream *stream)
1663*4882a593Smuzhiyun {
1664*4882a593Smuzhiyun u32 reg = CIF_MI_CTRL_SHD, en = CIF_MI_CTRL_SHD_SP_OUT_ENABLED;
1665*4882a593Smuzhiyun bool is_direct = true;
1666*4882a593Smuzhiyun
1667*4882a593Smuzhiyun if (!stream->ispdev->hw_dev->is_single) {
1668*4882a593Smuzhiyun is_direct = false;
1669*4882a593Smuzhiyun reg = CIF_MI_CTRL;
1670*4882a593Smuzhiyun en = CIF_MI_CTRL_SP_ENABLE;
1671*4882a593Smuzhiyun }
1672*4882a593Smuzhiyun
1673*4882a593Smuzhiyun return !(rkisp_read(stream->ispdev, reg, is_direct) & en);
1674*4882a593Smuzhiyun }
1675*4882a593Smuzhiyun
isp_set_bits(void __iomem * addr,u32 bit_mask,u32 val)1676*4882a593Smuzhiyun static inline void isp_set_bits(void __iomem *addr, u32 bit_mask, u32 val)
1677*4882a593Smuzhiyun {
1678*4882a593Smuzhiyun u32 tmp = readl(addr) & ~bit_mask;
1679*4882a593Smuzhiyun
1680*4882a593Smuzhiyun writel(tmp | val, addr);
1681*4882a593Smuzhiyun }
1682*4882a593Smuzhiyun
isp_clear_bits(void __iomem * addr,u32 bit_mask)1683*4882a593Smuzhiyun static inline void isp_clear_bits(void __iomem *addr, u32 bit_mask)
1684*4882a593Smuzhiyun {
1685*4882a593Smuzhiyun u32 val = readl(addr);
1686*4882a593Smuzhiyun
1687*4882a593Smuzhiyun writel(val & ~bit_mask, addr);
1688*4882a593Smuzhiyun }
1689*4882a593Smuzhiyun
mi_set_y_size(struct rkisp_stream * stream,int val)1690*4882a593Smuzhiyun static inline void mi_set_y_size(struct rkisp_stream *stream, int val)
1691*4882a593Smuzhiyun {
1692*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
1693*4882a593Smuzhiyun
1694*4882a593Smuzhiyun writel(val, base + stream->config->mi.y_size_init);
1695*4882a593Smuzhiyun }
1696*4882a593Smuzhiyun
mi_set_cb_size(struct rkisp_stream * stream,int val)1697*4882a593Smuzhiyun static inline void mi_set_cb_size(struct rkisp_stream *stream, int val)
1698*4882a593Smuzhiyun {
1699*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
1700*4882a593Smuzhiyun
1701*4882a593Smuzhiyun writel(val, base + stream->config->mi.cb_size_init);
1702*4882a593Smuzhiyun }
1703*4882a593Smuzhiyun
mi_set_cr_size(struct rkisp_stream * stream,int val)1704*4882a593Smuzhiyun static inline void mi_set_cr_size(struct rkisp_stream *stream, int val)
1705*4882a593Smuzhiyun {
1706*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
1707*4882a593Smuzhiyun
1708*4882a593Smuzhiyun writel(val, base + stream->config->mi.cr_size_init);
1709*4882a593Smuzhiyun }
1710*4882a593Smuzhiyun
mi_set_y_addr(struct rkisp_stream * stream,int val)1711*4882a593Smuzhiyun static inline void mi_set_y_addr(struct rkisp_stream *stream, int val)
1712*4882a593Smuzhiyun {
1713*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
1714*4882a593Smuzhiyun
1715*4882a593Smuzhiyun writel(val, base + stream->config->mi.y_base_ad_init);
1716*4882a593Smuzhiyun }
1717*4882a593Smuzhiyun
mi_set_cb_addr(struct rkisp_stream * stream,int val)1718*4882a593Smuzhiyun static inline void mi_set_cb_addr(struct rkisp_stream *stream, int val)
1719*4882a593Smuzhiyun {
1720*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
1721*4882a593Smuzhiyun
1722*4882a593Smuzhiyun writel(val, base + stream->config->mi.cb_base_ad_init);
1723*4882a593Smuzhiyun }
1724*4882a593Smuzhiyun
mi_set_cr_addr(struct rkisp_stream * stream,int val)1725*4882a593Smuzhiyun static inline void mi_set_cr_addr(struct rkisp_stream *stream, int val)
1726*4882a593Smuzhiyun {
1727*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
1728*4882a593Smuzhiyun
1729*4882a593Smuzhiyun writel(val, base + stream->config->mi.cr_base_ad_init);
1730*4882a593Smuzhiyun }
1731*4882a593Smuzhiyun
mi_set_y_offset(struct rkisp_stream * stream,int val)1732*4882a593Smuzhiyun static inline void mi_set_y_offset(struct rkisp_stream *stream, int val)
1733*4882a593Smuzhiyun {
1734*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
1735*4882a593Smuzhiyun
1736*4882a593Smuzhiyun writel(val, base + stream->config->mi.y_offs_cnt_init);
1737*4882a593Smuzhiyun }
1738*4882a593Smuzhiyun
mi_set_cb_offset(struct rkisp_stream * stream,int val)1739*4882a593Smuzhiyun static inline void mi_set_cb_offset(struct rkisp_stream *stream, int val)
1740*4882a593Smuzhiyun {
1741*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
1742*4882a593Smuzhiyun
1743*4882a593Smuzhiyun writel(val, base + stream->config->mi.cb_offs_cnt_init);
1744*4882a593Smuzhiyun }
1745*4882a593Smuzhiyun
mi_set_cr_offset(struct rkisp_stream * stream,int val)1746*4882a593Smuzhiyun static inline void mi_set_cr_offset(struct rkisp_stream *stream, int val)
1747*4882a593Smuzhiyun {
1748*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
1749*4882a593Smuzhiyun
1750*4882a593Smuzhiyun writel(val, base + stream->config->mi.cr_offs_cnt_init);
1751*4882a593Smuzhiyun }
1752*4882a593Smuzhiyun
mi_frame_end_int_enable(struct rkisp_stream * stream)1753*4882a593Smuzhiyun static inline void mi_frame_end_int_enable(struct rkisp_stream *stream)
1754*4882a593Smuzhiyun {
1755*4882a593Smuzhiyun struct rkisp_hw_dev *hw = stream->ispdev->hw_dev;
1756*4882a593Smuzhiyun void __iomem *base = !hw->is_unite ?
1757*4882a593Smuzhiyun hw->base_addr : hw->base_next_addr;
1758*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_IMSC;
1759*4882a593Smuzhiyun
1760*4882a593Smuzhiyun writel(CIF_MI_FRAME(stream) | readl(addr), addr);
1761*4882a593Smuzhiyun }
1762*4882a593Smuzhiyun
mi_frame_end_int_disable(struct rkisp_stream * stream)1763*4882a593Smuzhiyun static inline void mi_frame_end_int_disable(struct rkisp_stream *stream)
1764*4882a593Smuzhiyun {
1765*4882a593Smuzhiyun struct rkisp_hw_dev *hw = stream->ispdev->hw_dev;
1766*4882a593Smuzhiyun void __iomem *base = !hw->is_unite ?
1767*4882a593Smuzhiyun hw->base_addr : hw->base_next_addr;
1768*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_IMSC;
1769*4882a593Smuzhiyun
1770*4882a593Smuzhiyun writel(~CIF_MI_FRAME(stream) & readl(addr), addr);
1771*4882a593Smuzhiyun }
1772*4882a593Smuzhiyun
mi_frame_end_int_clear(struct rkisp_stream * stream)1773*4882a593Smuzhiyun static inline void mi_frame_end_int_clear(struct rkisp_stream *stream)
1774*4882a593Smuzhiyun {
1775*4882a593Smuzhiyun struct rkisp_hw_dev *hw = stream->ispdev->hw_dev;
1776*4882a593Smuzhiyun void __iomem *base = !hw->is_unite ?
1777*4882a593Smuzhiyun hw->base_addr : hw->base_next_addr;
1778*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_ICR;
1779*4882a593Smuzhiyun
1780*4882a593Smuzhiyun writel(CIF_MI_FRAME(stream), addr);
1781*4882a593Smuzhiyun }
1782*4882a593Smuzhiyun
stream_data_path(struct rkisp_stream * stream)1783*4882a593Smuzhiyun static inline void stream_data_path(struct rkisp_stream *stream)
1784*4882a593Smuzhiyun {
1785*4882a593Smuzhiyun struct rkisp_device *dev = stream->ispdev;
1786*4882a593Smuzhiyun bool is_unite = dev->hw_dev->is_unite;
1787*4882a593Smuzhiyun u32 dpcl = 0;
1788*4882a593Smuzhiyun
1789*4882a593Smuzhiyun if (stream->id == RKISP_STREAM_MP)
1790*4882a593Smuzhiyun dpcl |= CIF_VI_DPCL_CHAN_MODE_MP | CIF_VI_DPCL_MP_MUX_MRSZ_MI;
1791*4882a593Smuzhiyun else if (stream->id == RKISP_STREAM_SP)
1792*4882a593Smuzhiyun dpcl |= CIF_VI_DPCL_CHAN_MODE_SP;
1793*4882a593Smuzhiyun
1794*4882a593Smuzhiyun if (dpcl)
1795*4882a593Smuzhiyun rkisp_unite_set_bits(dev, CIF_VI_DPCL, 0, dpcl, true, is_unite);
1796*4882a593Smuzhiyun }
1797*4882a593Smuzhiyun
mp_set_uv_swap(void __iomem * base)1798*4882a593Smuzhiyun static inline void mp_set_uv_swap(void __iomem *base)
1799*4882a593Smuzhiyun {
1800*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_XTD_FORMAT_CTRL;
1801*4882a593Smuzhiyun u32 reg = readl(addr) & ~BIT(0);
1802*4882a593Smuzhiyun
1803*4882a593Smuzhiyun writel(reg | CIF_MI_XTD_FMT_CTRL_MP_CB_CR_SWAP, addr);
1804*4882a593Smuzhiyun }
1805*4882a593Smuzhiyun
sp_set_uv_swap(void __iomem * base)1806*4882a593Smuzhiyun static inline void sp_set_uv_swap(void __iomem *base)
1807*4882a593Smuzhiyun {
1808*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_XTD_FORMAT_CTRL;
1809*4882a593Smuzhiyun u32 reg = readl(addr) & ~BIT(1);
1810*4882a593Smuzhiyun
1811*4882a593Smuzhiyun writel(reg | CIF_MI_XTD_FMT_CTRL_SP_CB_CR_SWAP, addr);
1812*4882a593Smuzhiyun }
1813*4882a593Smuzhiyun
sp_set_y_width(void __iomem * base,u32 val)1814*4882a593Smuzhiyun static inline void sp_set_y_width(void __iomem *base, u32 val)
1815*4882a593Smuzhiyun {
1816*4882a593Smuzhiyun writel(val, base + CIF_MI_SP_Y_PIC_WIDTH);
1817*4882a593Smuzhiyun }
1818*4882a593Smuzhiyun
sp_set_y_height(void __iomem * base,u32 val)1819*4882a593Smuzhiyun static inline void sp_set_y_height(void __iomem *base, u32 val)
1820*4882a593Smuzhiyun {
1821*4882a593Smuzhiyun writel(val, base + CIF_MI_SP_Y_PIC_HEIGHT);
1822*4882a593Smuzhiyun }
1823*4882a593Smuzhiyun
sp_set_y_line_length(void __iomem * base,u32 val)1824*4882a593Smuzhiyun static inline void sp_set_y_line_length(void __iomem *base, u32 val)
1825*4882a593Smuzhiyun {
1826*4882a593Smuzhiyun writel(val, base + CIF_MI_SP_Y_LLENGTH);
1827*4882a593Smuzhiyun }
1828*4882a593Smuzhiyun
mp_mi_ctrl_set_format(void __iomem * base,u32 val)1829*4882a593Smuzhiyun static inline void mp_mi_ctrl_set_format(void __iomem *base, u32 val)
1830*4882a593Smuzhiyun {
1831*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1832*4882a593Smuzhiyun u32 reg = readl(addr) & ~MI_CTRL_MP_FMT_MASK;
1833*4882a593Smuzhiyun
1834*4882a593Smuzhiyun writel(reg | val, addr);
1835*4882a593Smuzhiyun }
1836*4882a593Smuzhiyun
sp_mi_ctrl_set_format(void __iomem * base,u32 val)1837*4882a593Smuzhiyun static inline void sp_mi_ctrl_set_format(void __iomem *base, u32 val)
1838*4882a593Smuzhiyun {
1839*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1840*4882a593Smuzhiyun u32 reg = readl(addr) & ~MI_CTRL_SP_FMT_MASK;
1841*4882a593Smuzhiyun
1842*4882a593Smuzhiyun writel(reg | val, addr);
1843*4882a593Smuzhiyun }
1844*4882a593Smuzhiyun
mi_ctrl_mpyuv_enable(void __iomem * base)1845*4882a593Smuzhiyun static inline void mi_ctrl_mpyuv_enable(void __iomem *base)
1846*4882a593Smuzhiyun {
1847*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1848*4882a593Smuzhiyun
1849*4882a593Smuzhiyun writel(CIF_MI_CTRL_MP_ENABLE | readl(addr), addr);
1850*4882a593Smuzhiyun }
1851*4882a593Smuzhiyun
mi_ctrl_mpyuv_disable(void __iomem * base)1852*4882a593Smuzhiyun static inline void mi_ctrl_mpyuv_disable(void __iomem *base)
1853*4882a593Smuzhiyun {
1854*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1855*4882a593Smuzhiyun
1856*4882a593Smuzhiyun writel(~CIF_MI_CTRL_MP_ENABLE & readl(addr), addr);
1857*4882a593Smuzhiyun }
1858*4882a593Smuzhiyun
mi_ctrl_mp_disable(void __iomem * base)1859*4882a593Smuzhiyun static inline void mi_ctrl_mp_disable(void __iomem *base)
1860*4882a593Smuzhiyun {
1861*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1862*4882a593Smuzhiyun
1863*4882a593Smuzhiyun writel(~(CIF_MI_CTRL_MP_ENABLE | CIF_MI_CTRL_RAW_ENABLE) & readl(addr),
1864*4882a593Smuzhiyun addr);
1865*4882a593Smuzhiyun }
1866*4882a593Smuzhiyun
mi_ctrl_spyuv_enable(void __iomem * base)1867*4882a593Smuzhiyun static inline void mi_ctrl_spyuv_enable(void __iomem *base)
1868*4882a593Smuzhiyun {
1869*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1870*4882a593Smuzhiyun
1871*4882a593Smuzhiyun writel(CIF_MI_CTRL_SP_ENABLE | readl(addr), addr);
1872*4882a593Smuzhiyun }
1873*4882a593Smuzhiyun
mi_ctrl_spyuv_disable(void __iomem * base)1874*4882a593Smuzhiyun static inline void mi_ctrl_spyuv_disable(void __iomem *base)
1875*4882a593Smuzhiyun {
1876*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1877*4882a593Smuzhiyun
1878*4882a593Smuzhiyun writel(~CIF_MI_CTRL_SP_ENABLE & readl(addr), addr);
1879*4882a593Smuzhiyun }
1880*4882a593Smuzhiyun
mi_ctrl_sp_disable(void __iomem * base)1881*4882a593Smuzhiyun static inline void mi_ctrl_sp_disable(void __iomem *base)
1882*4882a593Smuzhiyun {
1883*4882a593Smuzhiyun mi_ctrl_spyuv_disable(base);
1884*4882a593Smuzhiyun }
1885*4882a593Smuzhiyun
mi_ctrl_mpraw_enable(void __iomem * base)1886*4882a593Smuzhiyun static inline void mi_ctrl_mpraw_enable(void __iomem *base)
1887*4882a593Smuzhiyun {
1888*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1889*4882a593Smuzhiyun
1890*4882a593Smuzhiyun writel(CIF_MI_CTRL_RAW_ENABLE | readl(addr), addr);
1891*4882a593Smuzhiyun }
1892*4882a593Smuzhiyun
mi_ctrl_mpraw_disable(void __iomem * base)1893*4882a593Smuzhiyun static inline void mi_ctrl_mpraw_disable(void __iomem *base)
1894*4882a593Smuzhiyun {
1895*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1896*4882a593Smuzhiyun
1897*4882a593Smuzhiyun writel(~CIF_MI_CTRL_RAW_ENABLE & readl(addr), addr);
1898*4882a593Smuzhiyun }
1899*4882a593Smuzhiyun
mp_mi_ctrl_autoupdate_en(void __iomem * base)1900*4882a593Smuzhiyun static inline void mp_mi_ctrl_autoupdate_en(void __iomem *base)
1901*4882a593Smuzhiyun {
1902*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1903*4882a593Smuzhiyun
1904*4882a593Smuzhiyun writel(readl(addr) | CIF_MI_MP_AUTOUPDATE_ENABLE, addr);
1905*4882a593Smuzhiyun }
1906*4882a593Smuzhiyun
sp_mi_ctrl_autoupdate_en(void __iomem * base)1907*4882a593Smuzhiyun static inline void sp_mi_ctrl_autoupdate_en(void __iomem *base)
1908*4882a593Smuzhiyun {
1909*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL;
1910*4882a593Smuzhiyun
1911*4882a593Smuzhiyun writel(readl(addr) | CIF_MI_SP_AUTOUPDATE_ENABLE, addr);
1912*4882a593Smuzhiyun }
1913*4882a593Smuzhiyun
force_cfg_update(struct rkisp_device * dev)1914*4882a593Smuzhiyun static inline void force_cfg_update(struct rkisp_device *dev)
1915*4882a593Smuzhiyun {
1916*4882a593Smuzhiyun u32 val = CIF_MI_CTRL_INIT_OFFSET_EN | CIF_MI_CTRL_INIT_BASE_EN;
1917*4882a593Smuzhiyun bool is_unite = dev->hw_dev->is_unite;
1918*4882a593Smuzhiyun
1919*4882a593Smuzhiyun if (dev->isp_ver == ISP_V21) {
1920*4882a593Smuzhiyun val |= rkisp_read_reg_cache(dev, CIF_MI_CTRL);
1921*4882a593Smuzhiyun rkisp_write(dev, CIF_MI_CTRL, val, true);
1922*4882a593Smuzhiyun }
1923*4882a593Smuzhiyun dev->hw_dev->is_mi_update = true;
1924*4882a593Smuzhiyun rkisp_unite_set_bits(dev, CIF_MI_CTRL, 0, val, false, is_unite);
1925*4882a593Smuzhiyun val = CIF_MI_INIT_SOFT_UPD;
1926*4882a593Smuzhiyun rkisp_unite_write(dev, CIF_MI_INIT, val, true, is_unite);
1927*4882a593Smuzhiyun }
1928*4882a593Smuzhiyun
dmatx0_ctrl(void __iomem * base,u32 val)1929*4882a593Smuzhiyun static inline void dmatx0_ctrl(void __iomem *base, u32 val)
1930*4882a593Smuzhiyun {
1931*4882a593Smuzhiyun writel(val, base + CIF_ISP_CSI0_DMATX0_CTRL);
1932*4882a593Smuzhiyun }
1933*4882a593Smuzhiyun
dmatx0_enable(void __iomem * base)1934*4882a593Smuzhiyun static inline void dmatx0_enable(void __iomem *base)
1935*4882a593Smuzhiyun {
1936*4882a593Smuzhiyun void __iomem *addr = base + CIF_ISP_CSI0_DMATX0_CTRL;
1937*4882a593Smuzhiyun
1938*4882a593Smuzhiyun writel(CIF_ISP_CSI0_DMATX0_EN | readl(addr), addr);
1939*4882a593Smuzhiyun }
1940*4882a593Smuzhiyun
dmatx0_disable(void __iomem * base)1941*4882a593Smuzhiyun static inline void dmatx0_disable(void __iomem *base)
1942*4882a593Smuzhiyun {
1943*4882a593Smuzhiyun void __iomem *addr = base + CIF_ISP_CSI0_DMATX0_CTRL;
1944*4882a593Smuzhiyun
1945*4882a593Smuzhiyun writel(~CIF_ISP_CSI0_DMATX0_EN & readl(addr), addr);
1946*4882a593Smuzhiyun }
1947*4882a593Smuzhiyun
dmatx0_set_pic_size(void __iomem * base,u32 width,u32 height)1948*4882a593Smuzhiyun static inline void dmatx0_set_pic_size(void __iomem *base,
1949*4882a593Smuzhiyun u32 width, u32 height)
1950*4882a593Smuzhiyun {
1951*4882a593Smuzhiyun writel(height << 16 | width,
1952*4882a593Smuzhiyun base + CIF_ISP_CSI0_DMATX0_PIC_SIZE);
1953*4882a593Smuzhiyun }
1954*4882a593Smuzhiyun
dmatx0_set_pic_off(void __iomem * base,u32 val)1955*4882a593Smuzhiyun static inline void dmatx0_set_pic_off(void __iomem *base, u32 val)
1956*4882a593Smuzhiyun {
1957*4882a593Smuzhiyun writel(val, base + CIF_ISP_CSI0_DMATX0_PIC_OFF);
1958*4882a593Smuzhiyun }
1959*4882a593Smuzhiyun
mi_raw0_set_size(void __iomem * base,u32 val)1960*4882a593Smuzhiyun static inline void mi_raw0_set_size(void __iomem *base, u32 val)
1961*4882a593Smuzhiyun {
1962*4882a593Smuzhiyun writel(val, base + CIF_MI_RAW0_SIZE_INIT);
1963*4882a593Smuzhiyun }
1964*4882a593Smuzhiyun
mi_raw0_set_offs(void __iomem * base,u32 val)1965*4882a593Smuzhiyun static inline void mi_raw0_set_offs(void __iomem *base, u32 val)
1966*4882a593Smuzhiyun {
1967*4882a593Smuzhiyun writel(val, base + CIF_MI_RAW0_OFFS_CNT_INIT);
1968*4882a593Smuzhiyun }
1969*4882a593Smuzhiyun
mi_raw0_set_length(void __iomem * base,u32 val)1970*4882a593Smuzhiyun static inline void mi_raw0_set_length(void __iomem *base, u32 val)
1971*4882a593Smuzhiyun {
1972*4882a593Smuzhiyun writel(val, base + CIF_MI_RAW0_LENGTH);
1973*4882a593Smuzhiyun }
1974*4882a593Smuzhiyun
mi_raw0_set_irq_offs(void __iomem * base,u32 val)1975*4882a593Smuzhiyun static inline void mi_raw0_set_irq_offs(void __iomem *base, u32 val)
1976*4882a593Smuzhiyun {
1977*4882a593Smuzhiyun writel(val, base + CIF_MI_RAW0_IRQ_OFFS_INIT);
1978*4882a593Smuzhiyun }
1979*4882a593Smuzhiyun
mi_raw0_set_addr(void __iomem * base,u32 val)1980*4882a593Smuzhiyun static inline void mi_raw0_set_addr(void __iomem *base, u32 val)
1981*4882a593Smuzhiyun {
1982*4882a593Smuzhiyun writel(val, base + CIF_MI_RAW0_BASE_AD_INIT);
1983*4882a593Smuzhiyun }
1984*4882a593Smuzhiyun
mi_mipi_raw0_enable(void __iomem * base)1985*4882a593Smuzhiyun static inline void mi_mipi_raw0_enable(void __iomem *base)
1986*4882a593Smuzhiyun {
1987*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL2;
1988*4882a593Smuzhiyun
1989*4882a593Smuzhiyun writel(CIF_MI_CTRL2_MIPI_RAW0_ENABLE | readl(addr), addr);
1990*4882a593Smuzhiyun }
1991*4882a593Smuzhiyun
mi_mipi_raw0_disable(void __iomem * base)1992*4882a593Smuzhiyun static inline void mi_mipi_raw0_disable(void __iomem *base)
1993*4882a593Smuzhiyun {
1994*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_CTRL2;
1995*4882a593Smuzhiyun
1996*4882a593Smuzhiyun writel(~CIF_MI_CTRL2_MIPI_RAW0_ENABLE & readl(addr), addr);
1997*4882a593Smuzhiyun }
1998*4882a593Smuzhiyun
mi_ctrl2(void __iomem * base,u32 val)1999*4882a593Smuzhiyun static inline void mi_ctrl2(void __iomem *base, u32 val)
2000*4882a593Smuzhiyun {
2001*4882a593Smuzhiyun writel(val, base + CIF_MI_CTRL2);
2002*4882a593Smuzhiyun }
2003*4882a593Smuzhiyun
mi_dmarx_ready_enable(struct rkisp_stream * stream)2004*4882a593Smuzhiyun static inline void mi_dmarx_ready_enable(struct rkisp_stream *stream)
2005*4882a593Smuzhiyun {
2006*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
2007*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_IMSC;
2008*4882a593Smuzhiyun
2009*4882a593Smuzhiyun writel(CIF_MI_DMA_READY | readl(addr), addr);
2010*4882a593Smuzhiyun }
2011*4882a593Smuzhiyun
mi_dmarx_ready_disable(struct rkisp_stream * stream)2012*4882a593Smuzhiyun static inline void mi_dmarx_ready_disable(struct rkisp_stream *stream)
2013*4882a593Smuzhiyun {
2014*4882a593Smuzhiyun void __iomem *base = stream->ispdev->base_addr;
2015*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_IMSC;
2016*4882a593Smuzhiyun
2017*4882a593Smuzhiyun writel(~CIF_MI_DMA_READY & readl(addr), addr);
2018*4882a593Smuzhiyun }
2019*4882a593Smuzhiyun
dmarx_set_uv_swap(void __iomem * base)2020*4882a593Smuzhiyun static inline void dmarx_set_uv_swap(void __iomem *base)
2021*4882a593Smuzhiyun {
2022*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_XTD_FORMAT_CTRL;
2023*4882a593Smuzhiyun u32 reg = readl(addr) & ~BIT(2);
2024*4882a593Smuzhiyun
2025*4882a593Smuzhiyun writel(reg | CIF_MI_XTD_FMT_CTRL_DMA_CB_CR_SWAP, addr);
2026*4882a593Smuzhiyun }
2027*4882a593Smuzhiyun
dmarx_set_y_width(void __iomem * base,u32 val)2028*4882a593Smuzhiyun static inline void dmarx_set_y_width(void __iomem *base, u32 val)
2029*4882a593Smuzhiyun {
2030*4882a593Smuzhiyun writel(val, base + CIF_MI_DMA_Y_PIC_WIDTH);
2031*4882a593Smuzhiyun }
2032*4882a593Smuzhiyun
dmarx_set_y_line_length(void __iomem * base,u32 val)2033*4882a593Smuzhiyun static inline void dmarx_set_y_line_length(void __iomem *base, u32 val)
2034*4882a593Smuzhiyun {
2035*4882a593Smuzhiyun writel(val, base + CIF_MI_DMA_Y_LLENGTH);
2036*4882a593Smuzhiyun }
2037*4882a593Smuzhiyun
dmarx_ctrl(void __iomem * base,u32 val)2038*4882a593Smuzhiyun static inline void dmarx_ctrl(void __iomem *base, u32 val)
2039*4882a593Smuzhiyun {
2040*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_DMA_CTRL;
2041*4882a593Smuzhiyun
2042*4882a593Smuzhiyun writel(val | readl(addr), addr);
2043*4882a593Smuzhiyun }
2044*4882a593Smuzhiyun
mi_dmarx_start(void __iomem * base)2045*4882a593Smuzhiyun static inline void mi_dmarx_start(void __iomem *base)
2046*4882a593Smuzhiyun {
2047*4882a593Smuzhiyun void __iomem *addr = base + CIF_MI_DMA_START;
2048*4882a593Smuzhiyun
2049*4882a593Smuzhiyun writel(CIF_MI_DMA_START_ENABLE, addr);
2050*4882a593Smuzhiyun }
2051*4882a593Smuzhiyun
2052*4882a593Smuzhiyun #endif /* _RKISP_REGS_H */
2053