drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic()
[drm/drm-misc.git] / drivers / media / platform / nxp / imx8-isi / imx8-isi-regs.h
blob1b65eccdf0da4bbc3a77c91e06fccc35d6c7e022
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3 * Copyright 2019-2020 NXP
4 */
6 #ifndef __IMX8_ISI_REGS_H__
7 #define __IMX8_ISI_REGS_H__
9 #include <linux/bits.h>
11 /* ISI Registers Define */
12 /* Channel Control Register */
13 #define CHNL_CTRL 0x0000
14 #define CHNL_CTRL_CHNL_EN BIT(31)
15 #define CHNL_CTRL_CLK_EN BIT(30)
16 #define CHNL_CTRL_CHNL_BYPASS BIT(29)
17 #define CHNL_CTRL_CHAIN_BUF(n) ((n) << 25)
18 #define CHNL_CTRL_CHAIN_BUF_MASK GENMASK(26, 25)
19 #define CHNL_CTRL_CHAIN_BUF_NO_CHAIN 0
20 #define CHNL_CTRL_CHAIN_BUF_2_CHAIN 1
21 #define CHNL_CTRL_SW_RST BIT(24)
22 #define CHNL_CTRL_BLANK_PXL(n) ((n) << 16)
23 #define CHNL_CTRL_BLANK_PXL_MASK GENMASK(23, 16)
24 #define CHNL_CTRL_MIPI_VC_ID(n) ((n) << 6)
25 #define CHNL_CTRL_MIPI_VC_ID_MASK GENMASK(7, 6)
26 #define CHNL_CTRL_SRC_TYPE(n) ((n) << 4)
27 #define CHNL_CTRL_SRC_TYPE_MASK BIT(4)
28 #define CHNL_CTRL_SRC_TYPE_DEVICE 0
29 #define CHNL_CTRL_SRC_TYPE_MEMORY 1
30 #define CHNL_CTRL_SRC_INPUT(n) ((n) << 0)
31 #define CHNL_CTRL_SRC_INPUT_MASK GENMASK(2, 0)
33 /* Channel Image Control Register */
34 #define CHNL_IMG_CTRL 0x0004
35 #define CHNL_IMG_CTRL_FORMAT(n) ((n) << 24)
36 #define CHNL_IMG_CTRL_FORMAT_MASK GENMASK(29, 24)
37 #define CHNL_IMG_CTRL_FORMAT_RGBA8888 0x00
38 #define CHNL_IMG_CTRL_FORMAT_ABGR8888 0x01
39 #define CHNL_IMG_CTRL_FORMAT_ARGB8888 0x02
40 #define CHNL_IMG_CTRL_FORMAT_RGBX888 0x03
41 #define CHNL_IMG_CTRL_FORMAT_XBGR888 0x04
42 #define CHNL_IMG_CTRL_FORMAT_XRGB888 0x05
43 #define CHNL_IMG_CTRL_FORMAT_RGB888P 0x06
44 #define CHNL_IMG_CTRL_FORMAT_BGR888P 0x07
45 #define CHNL_IMG_CTRL_FORMAT_A2BGR10 0x08
46 #define CHNL_IMG_CTRL_FORMAT_A2RGB10 0x09
47 #define CHNL_IMG_CTRL_FORMAT_RGB565 0x0a
48 #define CHNL_IMG_CTRL_FORMAT_RAW8 0x0b
49 #define CHNL_IMG_CTRL_FORMAT_RAW10 0x0c
50 #define CHNL_IMG_CTRL_FORMAT_RAW10P 0x0d
51 #define CHNL_IMG_CTRL_FORMAT_RAW12 0x0e
52 #define CHNL_IMG_CTRL_FORMAT_RAW16 0x0f
53 #define CHNL_IMG_CTRL_FORMAT_YUV444_1P8P 0x10
54 #define CHNL_IMG_CTRL_FORMAT_YUV444_2P8P 0x11
55 #define CHNL_IMG_CTRL_FORMAT_YUV444_3P8P 0x12
56 #define CHNL_IMG_CTRL_FORMAT_YUV444_1P8 0x13
57 #define CHNL_IMG_CTRL_FORMAT_YUV444_1P10 0x14
58 #define CHNL_IMG_CTRL_FORMAT_YUV444_2P10 0x15
59 #define CHNL_IMG_CTRL_FORMAT_YUV444_3P10 0x16
60 #define CHNL_IMG_CTRL_FORMAT_YUV444_1P10P 0x18
61 #define CHNL_IMG_CTRL_FORMAT_YUV444_2P10P 0x19
62 #define CHNL_IMG_CTRL_FORMAT_YUV444_3P10P 0x1a
63 #define CHNL_IMG_CTRL_FORMAT_YUV444_1P12 0x1c
64 #define CHNL_IMG_CTRL_FORMAT_YUV444_2P12 0x1d
65 #define CHNL_IMG_CTRL_FORMAT_YUV444_3P12 0x1e
66 #define CHNL_IMG_CTRL_FORMAT_YUV422_1P8P 0x20
67 #define CHNL_IMG_CTRL_FORMAT_YUV422_2P8P 0x21
68 #define CHNL_IMG_CTRL_FORMAT_YUV422_3P8P 0x22
69 #define CHNL_IMG_CTRL_FORMAT_YUV422_1P10 0x24
70 #define CHNL_IMG_CTRL_FORMAT_YUV422_2P10 0x25
71 #define CHNL_IMG_CTRL_FORMAT_YUV422_3P10 0x26
72 #define CHNL_IMG_CTRL_FORMAT_YUV422_1P10P 0x28
73 #define CHNL_IMG_CTRL_FORMAT_YUV422_2P10P 0x29
74 #define CHNL_IMG_CTRL_FORMAT_YUV422_3P10P 0x2a
75 #define CHNL_IMG_CTRL_FORMAT_YUV422_1P12 0x2c
76 #define CHNL_IMG_CTRL_FORMAT_YUV422_2P12 0x2d
77 #define CHNL_IMG_CTRL_FORMAT_YUV422_3P12 0x2e
78 #define CHNL_IMG_CTRL_FORMAT_YUV420_2P8P 0x31
79 #define CHNL_IMG_CTRL_FORMAT_YUV420_3P8P 0x32
80 #define CHNL_IMG_CTRL_FORMAT_YUV420_2P10 0x35
81 #define CHNL_IMG_CTRL_FORMAT_YUV420_3P10 0x36
82 #define CHNL_IMG_CTRL_FORMAT_YUV420_2P10P 0x39
83 #define CHNL_IMG_CTRL_FORMAT_YUV420_3P10P 0x3a
84 #define CHNL_IMG_CTRL_FORMAT_YUV420_2P12 0x3d
85 #define CHNL_IMG_CTRL_FORMAT_YUV420_3P12 0x3e
86 #define CHNL_IMG_CTRL_GBL_ALPHA_VAL(n) ((n) << 16)
87 #define CHNL_IMG_CTRL_GBL_ALPHA_VAL_MASK GENMASK(23, 16)
88 #define CHNL_IMG_CTRL_GBL_ALPHA_EN BIT(15)
89 #define CHNL_IMG_CTRL_DEINT(n) ((n) << 12)
90 #define CHNL_IMG_CTRL_DEINT_MASK GENMASK(14, 12)
91 #define CHNL_IMG_CTRL_DEINT_WEAVE_ODD_EVEN 2
92 #define CHNL_IMG_CTRL_DEINT_WEAVE_EVEN_ODD 3
93 #define CHNL_IMG_CTRL_DEINT_BLEND_ODD_EVEN 4
94 #define CHNL_IMG_CTRL_DEINT_BLEND_EVEN_ODD 5
95 #define CHNL_IMG_CTRL_DEINT_LDOUBLE_ODD_EVEN 6
96 #define CHNL_IMG_CTRL_DEINT_LDOUBLE_EVEN_ODD 7
97 #define CHNL_IMG_CTRL_DEC_X(n) ((n) << 10)
98 #define CHNL_IMG_CTRL_DEC_X_MASK GENMASK(11, 10)
99 #define CHNL_IMG_CTRL_DEC_Y(n) ((n) << 8)
100 #define CHNL_IMG_CTRL_DEC_Y_MASK GENMASK(9, 8)
101 #define CHNL_IMG_CTRL_CROP_EN BIT(7)
102 #define CHNL_IMG_CTRL_VFLIP_EN BIT(6)
103 #define CHNL_IMG_CTRL_HFLIP_EN BIT(5)
104 #define CHNL_IMG_CTRL_YCBCR_MODE BIT(3)
105 #define CHNL_IMG_CTRL_CSC_MODE(n) ((n) << 1)
106 #define CHNL_IMG_CTRL_CSC_MODE_MASK GENMASK(2, 1)
107 #define CHNL_IMG_CTRL_CSC_MODE_YUV2RGB 0
108 #define CHNL_IMG_CTRL_CSC_MODE_YCBCR2RGB 1
109 #define CHNL_IMG_CTRL_CSC_MODE_RGB2YUV 2
110 #define CHNL_IMG_CTRL_CSC_MODE_RGB2YCBCR 3
111 #define CHNL_IMG_CTRL_CSC_BYPASS BIT(0)
113 /* Channel Output Buffer Control Register */
114 #define CHNL_OUT_BUF_CTRL 0x0008
115 #define CHNL_OUT_BUF_CTRL_LOAD_BUF2_ADDR BIT(15)
116 #define CHNL_OUT_BUF_CTRL_LOAD_BUF1_ADDR BIT(14)
117 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_V(n) ((n) << 6)
118 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_V_MASK GENMASK(7, 6)
119 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_V_NO_PANIC 0
120 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_V_PANIC_25 1
121 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_V_PANIC_50 2
122 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_V_PANIC_75 3
123 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_U(n) ((n) << 3)
124 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_U_MASK GENMASK(4, 3)
125 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_U_NO_PANIC 0
126 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_U_PANIC_25 1
127 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_U_PANIC_50 2
128 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_U_PANIC_75 3
129 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_Y(n) ((n) << 0)
130 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_Y_MASK GENMASK(1, 0)
131 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_Y_NO_PANIC 0
132 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_Y_PANIC_25 1
133 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_Y_PANIC_50 2
134 #define CHNL_OUT_BUF_CTRL_OFLW_PANIC_SET_THD_Y_PANIC_75 3
136 /* Channel Image Configuration */
137 #define CHNL_IMG_CFG 0x000c
138 #define CHNL_IMG_CFG_HEIGHT(n) ((n) << 16)
139 #define CHNL_IMG_CFG_HEIGHT_MASK GENMASK(28, 16)
140 #define CHNL_IMG_CFG_WIDTH(n) ((n) << 0)
141 #define CHNL_IMG_CFG_WIDTH_MASK GENMASK(12, 0)
143 /* Channel Interrupt Enable Register */
144 #define CHNL_IER 0x0010
145 #define CHNL_IER_MEM_RD_DONE_EN BIT(31)
146 #define CHNL_IER_LINE_RCVD_EN BIT(30)
147 #define CHNL_IER_FRM_RCVD_EN BIT(29)
148 #define CHNL_IER_AXI_WR_ERR_V_EN BIT(28)
149 #define CHNL_IER_AXI_WR_ERR_U_EN BIT(27)
150 #define CHNL_IER_AXI_WR_ERR_Y_EN BIT(26)
151 #define CHNL_IER_AXI_RD_ERR_EN BIT(25)
153 /* Channel Status Register */
154 #define CHNL_STS 0x0014
155 #define CHNL_STS_MEM_RD_DONE BIT(31)
156 #define CHNL_STS_LINE_STRD BIT(30)
157 #define CHNL_STS_FRM_STRD BIT(29)
158 #define CHNL_STS_AXI_WR_ERR_V BIT(28)
159 #define CHNL_STS_AXI_WR_ERR_U BIT(27)
160 #define CHNL_STS_AXI_WR_ERR_Y BIT(26)
161 #define CHNL_STS_AXI_RD_ERR BIT(25)
162 #define CHNL_STS_OFLW_PANIC_V_BUF BIT(24)
163 #define CHNL_STS_EXCS_OFLW_V_BUF BIT(23)
164 #define CHNL_STS_OFLW_V_BUF BIT(22)
165 #define CHNL_STS_OFLW_PANIC_U_BUF BIT(21)
166 #define CHNL_STS_EXCS_OFLW_U_BUF BIT(20)
167 #define CHNL_STS_OFLW_U_BUF BIT(19)
168 #define CHNL_STS_OFLW_PANIC_Y_BUF BIT(18)
169 #define CHNL_STS_EXCS_OFLW_Y_BUF BIT(17)
170 #define CHNL_STS_OFLW_Y_BUF BIT(16)
171 #define CHNL_STS_EARLY_VSYNC_ERR BIT(15)
172 #define CHNL_STS_LATE_VSYNC_ERR BIT(14)
173 #define CHNL_STS_MEM_RD_OFLOW BIT(10)
174 #define CHNL_STS_BUF2_ACTIVE BIT(9)
175 #define CHNL_STS_BUF1_ACTIVE BIT(8)
176 #define CHNL_STS_OFLW_BYTES(n) ((n) << 0)
177 #define CHNL_STS_OFLW_BYTES_MASK GENMASK(7, 0)
179 /* Channel Scale Factor Register */
180 #define CHNL_SCALE_FACTOR 0x0018
181 #define CHNL_SCALE_FACTOR_Y_SCALE(n) ((n) << 16)
182 #define CHNL_SCALE_FACTOR_Y_SCALE_MASK GENMASK(29, 16)
183 #define CHNL_SCALE_FACTOR_X_SCALE(n) ((n) << 0)
184 #define CHNL_SCALE_FACTOR_X_SCALE_MASK GENMASK(13, 0)
186 /* Channel Scale Offset Register */
187 #define CHNL_SCALE_OFFSET 0x001c
188 #define CHNL_SCALE_OFFSET_Y_SCALE(n) ((n) << 16)
189 #define CHNL_SCALE_OFFSET_Y_SCALE_MASK GENMASK(27, 16)
190 #define CHNL_SCALE_OFFSET_X_SCALE(n) ((n) << 0)
191 #define CHNL_SCALE_OFFSET_X_SCALE_MASK GENMASK(11, 0)
193 /* Channel Crop Upper Left Corner Coordinate Register */
194 #define CHNL_CROP_ULC 0x0020
195 #define CHNL_CROP_ULC_X(n) ((n) << 16)
196 #define CHNL_CROP_ULC_X_MASK GENMASK(27, 16)
197 #define CHNL_CROP_ULC_Y(n) ((n) << 0)
198 #define CHNL_CROP_ULC_Y_MASK GENMASK(11, 0)
200 /* Channel Crop Lower Right Corner Coordinate Register */
201 #define CHNL_CROP_LRC 0x0024
202 #define CHNL_CROP_LRC_X(n) ((n) << 16)
203 #define CHNL_CROP_LRC_X_MASK GENMASK(27, 16)
204 #define CHNL_CROP_LRC_Y(n) ((n) << 0)
205 #define CHNL_CROP_LRC_Y_MASK GENMASK(11, 0)
207 /* Channel Color Space Conversion Coefficient Register 0 */
208 #define CHNL_CSC_COEFF0 0x0028
209 #define CHNL_CSC_COEFF0_A2(n) ((n) << 16)
210 #define CHNL_CSC_COEFF0_A2_MASK GENMASK(26, 16)
211 #define CHNL_CSC_COEFF0_A1(n) ((n) << 0)
212 #define CHNL_CSC_COEFF0_A1_MASK GENMASK(10, 0)
214 /* Channel Color Space Conversion Coefficient Register 1 */
215 #define CHNL_CSC_COEFF1 0x002c
216 #define CHNL_CSC_COEFF1_B1(n) ((n) << 16)
217 #define CHNL_CSC_COEFF1_B1_MASK GENMASK(26, 16)
218 #define CHNL_CSC_COEFF1_A3(n) ((n) << 0)
219 #define CHNL_CSC_COEFF1_A3_MASK GENMASK(10, 0)
221 /* Channel Color Space Conversion Coefficient Register 2 */
222 #define CHNL_CSC_COEFF2 0x0030
223 #define CHNL_CSC_COEFF2_B3(n) ((n) << 16)
224 #define CHNL_CSC_COEFF2_B3_MASK GENMASK(26, 16)
225 #define CHNL_CSC_COEFF2_B2(n) ((n) << 0)
226 #define CHNL_CSC_COEFF2_B2_MASK GENMASK(10, 0)
228 /* Channel Color Space Conversion Coefficient Register 3 */
229 #define CHNL_CSC_COEFF3 0x0034
230 #define CHNL_CSC_COEFF3_C2(n) ((n) << 16)
231 #define CHNL_CSC_COEFF3_C2_MASK GENMASK(26, 16)
232 #define CHNL_CSC_COEFF3_C1(n) ((n) << 0)
233 #define CHNL_CSC_COEFF3_C1_MASK GENMASK(10, 0)
235 /* Channel Color Space Conversion Coefficient Register 4 */
236 #define CHNL_CSC_COEFF4 0x0038
237 #define CHNL_CSC_COEFF4_D1(n) ((n) << 16)
238 #define CHNL_CSC_COEFF4_D1_MASK GENMASK(24, 16)
239 #define CHNL_CSC_COEFF4_C3(n) ((n) << 0)
240 #define CHNL_CSC_COEFF4_C3_MASK GENMASK(10, 0)
242 /* Channel Color Space Conversion Coefficient Register 5 */
243 #define CHNL_CSC_COEFF5 0x003c
244 #define CHNL_CSC_COEFF5_D3(n) ((n) << 16)
245 #define CHNL_CSC_COEFF5_D3_MASK GENMASK(24, 16)
246 #define CHNL_CSC_COEFF5_D2(n) ((n) << 0)
247 #define CHNL_CSC_COEFF5_D2_MASK GENMASK(8, 0)
249 /* Channel Alpha Value Register for ROI 0 */
250 #define CHNL_ROI_0_ALPHA 0x0040
251 #define CHNL_ROI_0_ALPHA_VAL(n) ((n) << 24)
252 #define CHNL_ROI_0_ALPHA_MASK GENMASK(31, 24)
253 #define CHNL_ROI_0_ALPHA_EN BIT(16)
255 /* Channel Upper Left Coordinate Register for ROI 0 */
256 #define CHNL_ROI_0_ULC 0x0044
257 #define CHNL_ROI_0_ULC_X(n) ((n) << 16)
258 #define CHNL_ROI_0_ULC_X_MASK GENMASK(27, 16)
259 #define CHNL_ROI_0_ULC_Y(n) ((n) << 0)
260 #define CHNL_ROI_0_ULC_Y_MASK GENMASK(11, 0)
262 /* Channel Lower Right Coordinate Register for ROI 0 */
263 #define CHNL_ROI_0_LRC 0x0048
264 #define CHNL_ROI_0_LRC_X(n) ((n) << 16)
265 #define CHNL_ROI_0_LRC_X_MASK GENMASK(27, 16)
266 #define CHNL_ROI_0_LRC_Y(n) ((n) << 0)
267 #define CHNL_ROI_0_LRC_Y_MASK GENMASK(11, 0)
269 /* Channel Alpha Value Register for ROI 1 */
270 #define CHNL_ROI_1_ALPHA 0x004c
271 #define CHNL_ROI_1_ALPHA_VAL(n) ((n) << 24)
272 #define CHNL_ROI_1_ALPHA_MASK GENMASK(31, 24)
273 #define CHNL_ROI_1_ALPHA_EN BIT(16)
275 /* Channel Upper Left Coordinate Register for ROI 1 */
276 #define CHNL_ROI_1_ULC 0x0050
277 #define CHNL_ROI_1_ULC_X(n) ((n) << 16)
278 #define CHNL_ROI_1_ULC_X_MASK GENMASK(27, 16)
279 #define CHNL_ROI_1_ULC_Y(n) ((n) << 0)
280 #define CHNL_ROI_1_ULC_Y_MASK GENMASK(11, 0)
282 /* Channel Lower Right Coordinate Register for ROI 1 */
283 #define CHNL_ROI_1_LRC 0x0054
284 #define CHNL_ROI_1_LRC_X(n) ((n) << 16)
285 #define CHNL_ROI_1_LRC_X_MASK GENMASK(27, 16)
286 #define CHNL_ROI_1_LRC_Y(n) ((n) << 0)
287 #define CHNL_ROI_1_LRC_Y_MASK GENMASK(11, 0)
289 /* Channel Alpha Value Register for ROI 2 */
290 #define CHNL_ROI_2_ALPHA 0x0058
291 #define CHNL_ROI_2_ALPHA_VAL(n) ((n) << 24)
292 #define CHNL_ROI_2_ALPHA_MASK GENMASK(31, 24)
293 #define CHNL_ROI_2_ALPHA_EN BIT(16)
295 /* Channel Upper Left Coordinate Register for ROI 2 */
296 #define CHNL_ROI_2_ULC 0x005c
297 #define CHNL_ROI_2_ULC_X(n) ((n) << 16)
298 #define CHNL_ROI_2_ULC_X_MASK GENMASK(27, 16)
299 #define CHNL_ROI_2_ULC_Y(n) ((n) << 0)
300 #define CHNL_ROI_2_ULC_Y_MASK GENMASK(11, 0)
302 /* Channel Lower Right Coordinate Register for ROI 2 */
303 #define CHNL_ROI_2_LRC 0x0060
304 #define CHNL_ROI_2_LRC_X(n) ((n) << 16)
305 #define CHNL_ROI_2_LRC_X_MASK GENMASK(27, 16)
306 #define CHNL_ROI_2_LRC_Y(n) ((n) << 0)
307 #define CHNL_ROI_2_LRC_Y_MASK GENMASK(11, 0)
309 /* Channel Alpha Value Register for ROI 3 */
310 #define CHNL_ROI_3_ALPHA 0x0064
311 #define CHNL_ROI_3_ALPHA_VAL(n) ((n) << 24)
312 #define CHNL_ROI_3_ALPHA_MASK GENMASK(31, 24)
313 #define CHNL_ROI_3_ALPHA_EN BIT(16)
315 /* Channel Upper Left Coordinate Register for ROI 3 */
316 #define CHNL_ROI_3_ULC 0x0068
317 #define CHNL_ROI_3_ULC_X(n) ((n) << 16)
318 #define CHNL_ROI_3_ULC_X_MASK GENMASK(27, 16)
319 #define CHNL_ROI_3_ULC_Y(n) ((n) << 0)
320 #define CHNL_ROI_3_ULC_Y_MASK GENMASK(11, 0)
322 /* Channel Lower Right Coordinate Register for ROI 3 */
323 #define CHNL_ROI_3_LRC 0x006c
324 #define CHNL_ROI_3_LRC_X(n) ((n) << 16)
325 #define CHNL_ROI_3_LRC_X_MASK GENMASK(27, 16)
326 #define CHNL_ROI_3_LRC_Y(n) ((n) << 0)
327 #define CHNL_ROI_3_LRC_Y_MASK GENMASK(11, 0)
328 /* Channel RGB or Luma (Y) Output Buffer 1 Address */
329 #define CHNL_OUT_BUF1_ADDR_Y 0x0070
331 /* Channel Chroma (U/Cb/UV/CbCr) Output Buffer 1 Address */
332 #define CHNL_OUT_BUF1_ADDR_U 0x0074
334 /* Channel Chroma (V/Cr) Output Buffer 1 Address */
335 #define CHNL_OUT_BUF1_ADDR_V 0x0078
337 /* Channel Output Buffer Pitch */
338 #define CHNL_OUT_BUF_PITCH 0x007c
339 #define CHNL_OUT_BUF_PITCH_LINE_PITCH(n) ((n) << 0)
340 #define CHNL_OUT_BUF_PITCH_LINE_PITCH_MASK GENMASK(15, 0)
342 /* Channel Input Buffer Address */
343 #define CHNL_IN_BUF_ADDR 0x0080
345 /* Channel Input Buffer Pitch */
346 #define CHNL_IN_BUF_PITCH 0x0084
347 #define CHNL_IN_BUF_PITCH_FRM_PITCH(n) ((n) << 16)
348 #define CHNL_IN_BUF_PITCH_FRM_PITCH_MASK GENMASK(31, 16)
349 #define CHNL_IN_BUF_PITCH_LINE_PITCH(n) ((n) << 0)
350 #define CHNL_IN_BUF_PITCH_LINE_PITCH_MASK GENMASK(15, 0)
352 /* Channel Memory Read Control */
353 #define CHNL_MEM_RD_CTRL 0x0088
354 #define CHNL_MEM_RD_CTRL_IMG_TYPE(n) ((n) << 28)
355 #define CHNL_MEM_RD_CTRL_IMG_TYPE_MASK GENMASK(31, 28)
356 #define CHNL_MEM_RD_CTRL_IMG_TYPE_BGR8P 0x00
357 #define CHNL_MEM_RD_CTRL_IMG_TYPE_RGB8P 0x01
358 #define CHNL_MEM_RD_CTRL_IMG_TYPE_XRGB8 0x02
359 #define CHNL_MEM_RD_CTRL_IMG_TYPE_RGBX8 0x03
360 #define CHNL_MEM_RD_CTRL_IMG_TYPE_XBGR8 0x04
361 #define CHNL_MEM_RD_CTRL_IMG_TYPE_RGB565 0x05
362 #define CHNL_MEM_RD_CTRL_IMG_TYPE_A2BGR10 0x06
363 #define CHNL_MEM_RD_CTRL_IMG_TYPE_A2RGB10 0x07
364 #define CHNL_MEM_RD_CTRL_IMG_TYPE_YUV444_1P8P 0x08
365 #define CHNL_MEM_RD_CTRL_IMG_TYPE_YUV444_1P10 0x09
366 #define CHNL_MEM_RD_CTRL_IMG_TYPE_YUV444_1P10P 0x0a
367 #define CHNL_MEM_RD_CTRL_IMG_TYPE_YUV444_1P12 0x0b
368 #define CHNL_MEM_RD_CTRL_IMG_TYPE_YUV444_1P8 0x0c
369 #define CHNL_MEM_RD_CTRL_IMG_TYPE_YUV422_1P8P 0x0d
370 #define CHNL_MEM_RD_CTRL_IMG_TYPE_YUV422_1P10 0x0e
371 #define CHNL_MEM_RD_CTRL_IMG_TYPE_YUV422_1P12 0x0f
372 #define CHNL_MEM_RD_CTRL_READ_MEM BIT(0)
374 /* Channel RGB or Luma (Y) Output Buffer 2 Address */
375 #define CHNL_OUT_BUF2_ADDR_Y 0x008c
377 /* Channel Chroma (U/Cb/UV/CbCr) Output Buffer 2 Address */
378 #define CHNL_OUT_BUF2_ADDR_U 0x0090
380 /* Channel Chroma (V/Cr) Output Buffer 2 Address */
381 #define CHNL_OUT_BUF2_ADDR_V 0x0094
383 /* Channel scale image config */
384 #define CHNL_SCL_IMG_CFG 0x0098
385 #define CHNL_SCL_IMG_CFG_HEIGHT(n) ((n) << 16)
386 #define CHNL_SCL_IMG_CFG_HEIGHT_MASK GENMASK(28, 16)
387 #define CHNL_SCL_IMG_CFG_WIDTH(n) ((n) << 0)
388 #define CHNL_SCL_IMG_CFG_WIDTH_MASK GENMASK(12, 0)
390 /* Channel Flow Control Register */
391 #define CHNL_FLOW_CTRL 0x009c
392 #define CHNL_FLOW_CTRL_FC_DENOM_MASK GENMASK(7, 0)
393 #define CHNL_FLOW_CTRL_FC_DENOM(n) ((n) << 0)
394 #define CHNL_FLOW_CTRL_FC_NUMER_MASK GENMASK(23, 16)
395 #define CHNL_FLOW_CTRL_FC_NUMER(n) ((n) << 0)
397 /* Channel Output Y-Buffer 1 Extended Address Bits */
398 #define CHNL_Y_BUF1_XTND_ADDR 0x00a0
400 /* Channel Output U-Buffer 1 Extended Address Bits */
401 #define CHNL_U_BUF1_XTND_ADDR 0x00a4
403 /* Channel Output V-Buffer 1 Extended Address Bits */
404 #define CHNL_V_BUF1_XTND_ADDR 0x00a8
406 /* Channel Output Y-Buffer 2 Extended Address Bits */
407 #define CHNL_Y_BUF2_XTND_ADDR 0x00ac
409 /* Channel Output U-Buffer 2 Extended Address Bits */
410 #define CHNL_U_BUF2_XTND_ADDR 0x00b0
412 /* Channel Output V-Buffer 2 Extended Address Bits */
413 #define CHNL_V_BUF2_XTND_ADDR 0x00b4
415 /* Channel Input Buffer Extended Address Bits */
416 #define CHNL_IN_BUF_XTND_ADDR 0x00b8
418 #endif /* __IMX8_ISI_REGS_H__ */