xref: /OK3568_Linux_fs/kernel/drivers/media/platform/rockchip/isp1/regs.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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