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