• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 *
3 * SPDX-License-Identifier: GPL-2.0
4 *
5 * Copyright (C) 2011-2018 ARM or its affiliates
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; version 2.
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * for more details.
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 *
18 */
19 
20 #ifndef __ACAMERA_ISP1_CONFIG_H__
21 #define __ACAMERA_ISP1_CONFIG_H__
22 
23 
24 #include "system_sw_io.h"
25 
26 #include "system_hw_io.h"
27 
28 // ------------------------------------------------------------------------------ //
29 // Instance 'isp1' of module 'single_context_config'
30 // ------------------------------------------------------------------------------ //
31 
32 #define ACAMERA_ISP1_BASE_ADDR (0x18e88L)
33 #define ACAMERA_ISP1_SIZE (0x4000)
34 
35 // ------------------------------------------------------------------------------ //
36 // Group: top
37 // ------------------------------------------------------------------------------ //
38 
39 // ------------------------------------------------------------------------------ //
40 // Miscellaneous top-level ISP controls
41 // ------------------------------------------------------------------------------ //
42 
43 // ------------------------------------------------------------------------------ //
44 // Register: Active Width
45 // ------------------------------------------------------------------------------ //
46 
47 // ------------------------------------------------------------------------------ //
48 // Active video width in pixels
49 // ------------------------------------------------------------------------------ //
50 
51 #define ACAMERA_ISP_TOP_ACTIVE_WIDTH_DEFAULT (0x780)
52 #define ACAMERA_ISP_TOP_ACTIVE_WIDTH_DATASIZE (16)
53 #define ACAMERA_ISP_TOP_ACTIVE_WIDTH_OFFSET (0x0)
54 #define ACAMERA_ISP_TOP_ACTIVE_WIDTH_MASK (0xffff)
55 
56 // args: data (16-bit)
acamera_isp_top_active_width_write(uintptr_t base,uint16_t data)57 static __inline void acamera_isp_top_active_width_write(uintptr_t base, uint16_t data) {
58     uint32_t curr = system_sw_read_32(base + 0x18e88L);
59     system_sw_write_32(base + 0x18e88L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
60 }
acamera_isp_top_active_width_read(uintptr_t base)61 static __inline uint16_t acamera_isp_top_active_width_read(uintptr_t base) {
62     return (uint16_t)((system_sw_read_32(base + 0x18e88L) & 0xffff) >> 0);
63 }
64 // ------------------------------------------------------------------------------ //
65 // Register: Active Height
66 // ------------------------------------------------------------------------------ //
67 
68 // ------------------------------------------------------------------------------ //
69 // Active video height in lines
70 // ------------------------------------------------------------------------------ //
71 
72 #define ACAMERA_ISP_TOP_ACTIVE_HEIGHT_DEFAULT (0x438)
73 #define ACAMERA_ISP_TOP_ACTIVE_HEIGHT_DATASIZE (16)
74 #define ACAMERA_ISP_TOP_ACTIVE_HEIGHT_OFFSET (0x0)
75 #define ACAMERA_ISP_TOP_ACTIVE_HEIGHT_MASK (0xffff0000)
76 
77 // args: data (16-bit)
acamera_isp_top_active_height_write(uintptr_t base,uint16_t data)78 static __inline void acamera_isp_top_active_height_write(uintptr_t base, uint16_t data) {
79     uint32_t curr = system_sw_read_32(base + 0x18e88L);
80     system_sw_write_32(base + 0x18e88L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
81 }
acamera_isp_top_active_height_read(uintptr_t base)82 static __inline uint16_t acamera_isp_top_active_height_read(uintptr_t base) {
83     return (uint16_t)((system_sw_read_32(base + 0x18e88L) & 0xffff0000) >> 16);
84 }
85 // ------------------------------------------------------------------------------ //
86 // Register: RGGB start pre mirror
87 // ------------------------------------------------------------------------------ //
88 
89 // ------------------------------------------------------------------------------ //
90 // Starting color of the rggb pattern for all the modules before mirror
91 // ------------------------------------------------------------------------------ //
92 
93 #define ACAMERA_ISP_TOP_RGGB_START_PRE_MIRROR_DEFAULT (0x0)
94 #define ACAMERA_ISP_TOP_RGGB_START_PRE_MIRROR_DATASIZE (2)
95 #define ACAMERA_ISP_TOP_RGGB_START_PRE_MIRROR_OFFSET (0x4)
96 #define ACAMERA_ISP_TOP_RGGB_START_PRE_MIRROR_MASK (0x3)
97 #define ACAMERA_ISP_TOP_RGGB_START_PRE_MIRROR_R_GR_GB_B (0)
98 #define ACAMERA_ISP_TOP_RGGB_START_PRE_MIRROR_GR_R_B_GB (1)
99 #define ACAMERA_ISP_TOP_RGGB_START_PRE_MIRROR_GB_B_R_GR (2)
100 #define ACAMERA_ISP_TOP_RGGB_START_PRE_MIRROR_B_GB_GR_R (3)
101 
102 // args: data (2-bit)
acamera_isp_top_rggb_start_pre_mirror_write(uintptr_t base,uint8_t data)103 static __inline void acamera_isp_top_rggb_start_pre_mirror_write(uintptr_t base, uint8_t data) {
104     uint32_t curr = system_sw_read_32(base + 0x18e8cL);
105     system_sw_write_32(base + 0x18e8cL, (((uint32_t) (data & 0x3)) << 0) | (curr & 0xfffffffc));
106 }
acamera_isp_top_rggb_start_pre_mirror_read(uintptr_t base)107 static __inline uint8_t acamera_isp_top_rggb_start_pre_mirror_read(uintptr_t base) {
108     return (uint8_t)((system_sw_read_32(base + 0x18e8cL) & 0x3) >> 0);
109 }
110 // ------------------------------------------------------------------------------ //
111 // Register: RGGB start post mirror
112 // ------------------------------------------------------------------------------ //
113 
114 // ------------------------------------------------------------------------------ //
115 // Starting color of the rggb pattern for all the modules after mirror
116 //        this must be same as RGGB start pre mirror if mirror is bypassed
117 //
118 // ------------------------------------------------------------------------------ //
119 
120 #define ACAMERA_ISP_TOP_RGGB_START_POST_MIRROR_DEFAULT (0x0)
121 #define ACAMERA_ISP_TOP_RGGB_START_POST_MIRROR_DATASIZE (2)
122 #define ACAMERA_ISP_TOP_RGGB_START_POST_MIRROR_OFFSET (0x4)
123 #define ACAMERA_ISP_TOP_RGGB_START_POST_MIRROR_MASK (0x300)
124 
125 // args: data (2-bit)
acamera_isp_top_rggb_start_post_mirror_write(uintptr_t base,uint8_t data)126 static __inline void acamera_isp_top_rggb_start_post_mirror_write(uintptr_t base, uint8_t data) {
127     uint32_t curr = system_sw_read_32(base + 0x18e8cL);
128     system_sw_write_32(base + 0x18e8cL, (((uint32_t) (data & 0x3)) << 8) | (curr & 0xfffffcff));
129 }
acamera_isp_top_rggb_start_post_mirror_read(uintptr_t base)130 static __inline uint8_t acamera_isp_top_rggb_start_post_mirror_read(uintptr_t base) {
131     return (uint8_t)((system_sw_read_32(base + 0x18e8cL) & 0x300) >> 8);
132 }
133 // ------------------------------------------------------------------------------ //
134 // Register: Cfa pattern
135 // ------------------------------------------------------------------------------ //
136 
137 // ------------------------------------------------------------------------------ //
138 // The pixel arrangement of the CFA array on the sensor. Set in the Top register group and used by several blocks in the pipeline:
139 // ------------------------------------------------------------------------------ //
140 
141 #define ACAMERA_ISP_TOP_CFA_PATTERN_DEFAULT (0x0)
142 #define ACAMERA_ISP_TOP_CFA_PATTERN_DATASIZE (2)
143 #define ACAMERA_ISP_TOP_CFA_PATTERN_OFFSET (0x4)
144 #define ACAMERA_ISP_TOP_CFA_PATTERN_MASK (0x30000)
145 #define ACAMERA_ISP_TOP_CFA_PATTERN_RGGB (0)
146 #define ACAMERA_ISP_TOP_CFA_PATTERN_RESERVED (1)
147 #define ACAMERA_ISP_TOP_CFA_PATTERN_RIRGB (2)
148 #define ACAMERA_ISP_TOP_CFA_PATTERN_RGIRB (3)
149 
150 // args: data (2-bit)
acamera_isp_top_cfa_pattern_write(uintptr_t base,uint8_t data)151 static __inline void acamera_isp_top_cfa_pattern_write(uintptr_t base, uint8_t data) {
152     uint32_t curr = system_sw_read_32(base + 0x18e8cL);
153     system_sw_write_32(base + 0x18e8cL, (((uint32_t) (data & 0x3)) << 16) | (curr & 0xfffcffff));
154 }
acamera_isp_top_cfa_pattern_read(uintptr_t base)155 static __inline uint8_t acamera_isp_top_cfa_pattern_read(uintptr_t base) {
156     return (uint8_t)((system_sw_read_32(base + 0x18e8cL) & 0x30000) >> 16);
157 }
158 // ------------------------------------------------------------------------------ //
159 // Register: Linear data src
160 // ------------------------------------------------------------------------------ //
161 
162 // ------------------------------------------------------------------------------ //
163 // Linear data src
164 // ------------------------------------------------------------------------------ //
165 
166 #define ACAMERA_ISP_TOP_LINEAR_DATA_SRC_DEFAULT (0x0)
167 #define ACAMERA_ISP_TOP_LINEAR_DATA_SRC_DATASIZE (2)
168 #define ACAMERA_ISP_TOP_LINEAR_DATA_SRC_OFFSET (0x4)
169 #define ACAMERA_ISP_TOP_LINEAR_DATA_SRC_MASK (0x3000000)
170 #define ACAMERA_ISP_TOP_LINEAR_DATA_SRC_SENSOR_STITCHED_AND_LINEAR_DATA_DIRECTLY_COMING_FROM_SENSOR (0)
171 #define ACAMERA_ISP_TOP_LINEAR_DATA_SRC_LINEAR_DATA_FROM_FRAME_STITCH (1)
172 #define ACAMERA_ISP_TOP_LINEAR_DATA_SRC_SENSOR_COMPANDED_DATA_LINEARISED_THROUGH_DECOMPANDER (2)
173 #define ACAMERA_ISP_TOP_LINEAR_DATA_SRC_RESERVED (3)
174 
175 // args: data (2-bit)
acamera_isp_top_linear_data_src_write(uintptr_t base,uint8_t data)176 static __inline void acamera_isp_top_linear_data_src_write(uintptr_t base, uint8_t data) {
177     uint32_t curr = system_sw_read_32(base + 0x18e8cL);
178     system_sw_write_32(base + 0x18e8cL, (((uint32_t) (data & 0x3)) << 24) | (curr & 0xfcffffff));
179 }
acamera_isp_top_linear_data_src_read(uintptr_t base)180 static __inline uint8_t acamera_isp_top_linear_data_src_read(uintptr_t base) {
181     return (uint8_t)((system_sw_read_32(base + 0x18e8cL) & 0x3000000) >> 24);
182 }
183 // ------------------------------------------------------------------------------ //
184 // Register: Bypass video test gen
185 // ------------------------------------------------------------------------------ //
186 
187 // ------------------------------------------------------------------------------ //
188 // Bypass video test generator
189 // ------------------------------------------------------------------------------ //
190 
191 #define ACAMERA_ISP_TOP_BYPASS_VIDEO_TEST_GEN_DEFAULT (0)
192 #define ACAMERA_ISP_TOP_BYPASS_VIDEO_TEST_GEN_DATASIZE (1)
193 #define ACAMERA_ISP_TOP_BYPASS_VIDEO_TEST_GEN_OFFSET (0x24)
194 #define ACAMERA_ISP_TOP_BYPASS_VIDEO_TEST_GEN_MASK (0x1)
195 
196 // args: data (1-bit)
acamera_isp_top_bypass_video_test_gen_write(uintptr_t base,uint8_t data)197 static __inline void acamera_isp_top_bypass_video_test_gen_write(uintptr_t base, uint8_t data) {
198     uint32_t curr = system_sw_read_32(base + 0x18eacL);
199     system_sw_write_32(base + 0x18eacL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
200 }
acamera_isp_top_bypass_video_test_gen_read(uintptr_t base)201 static __inline uint8_t acamera_isp_top_bypass_video_test_gen_read(uintptr_t base) {
202     return (uint8_t)((system_sw_read_32(base + 0x18eacL) & 0x1) >> 0);
203 }
204 // ------------------------------------------------------------------------------ //
205 // Register: Bypass input formatter
206 // ------------------------------------------------------------------------------ //
207 
208 // ------------------------------------------------------------------------------ //
209 // Bypass input formatter module.
210 // ------------------------------------------------------------------------------ //
211 
212 #define ACAMERA_ISP_TOP_BYPASS_INPUT_FORMATTER_DEFAULT (0)
213 #define ACAMERA_ISP_TOP_BYPASS_INPUT_FORMATTER_DATASIZE (1)
214 #define ACAMERA_ISP_TOP_BYPASS_INPUT_FORMATTER_OFFSET (0x24)
215 #define ACAMERA_ISP_TOP_BYPASS_INPUT_FORMATTER_MASK (0x2)
216 
217 // args: data (1-bit)
acamera_isp_top_bypass_input_formatter_write(uintptr_t base,uint8_t data)218 static __inline void acamera_isp_top_bypass_input_formatter_write(uintptr_t base, uint8_t data) {
219     uint32_t curr = system_sw_read_32(base + 0x18eacL);
220     system_sw_write_32(base + 0x18eacL, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
221 }
acamera_isp_top_bypass_input_formatter_read(uintptr_t base)222 static __inline uint8_t acamera_isp_top_bypass_input_formatter_read(uintptr_t base) {
223     return (uint8_t)((system_sw_read_32(base + 0x18eacL) & 0x2) >> 1);
224 }
225 // ------------------------------------------------------------------------------ //
226 // Register: Bypass decompander
227 // ------------------------------------------------------------------------------ //
228 
229 // ------------------------------------------------------------------------------ //
230 // Bypass front end decompander
231 // ------------------------------------------------------------------------------ //
232 
233 #define ACAMERA_ISP_TOP_BYPASS_DECOMPANDER_DEFAULT (0)
234 #define ACAMERA_ISP_TOP_BYPASS_DECOMPANDER_DATASIZE (1)
235 #define ACAMERA_ISP_TOP_BYPASS_DECOMPANDER_OFFSET (0x24)
236 #define ACAMERA_ISP_TOP_BYPASS_DECOMPANDER_MASK (0x4)
237 
238 // args: data (1-bit)
acamera_isp_top_bypass_decompander_write(uintptr_t base,uint8_t data)239 static __inline void acamera_isp_top_bypass_decompander_write(uintptr_t base, uint8_t data) {
240     uint32_t curr = system_sw_read_32(base + 0x18eacL);
241     system_sw_write_32(base + 0x18eacL, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
242 }
acamera_isp_top_bypass_decompander_read(uintptr_t base)243 static __inline uint8_t acamera_isp_top_bypass_decompander_read(uintptr_t base) {
244     return (uint8_t)((system_sw_read_32(base + 0x18eacL) & 0x4) >> 2);
245 }
246 // ------------------------------------------------------------------------------ //
247 // Register: Bypass sensor offset wdr
248 // ------------------------------------------------------------------------------ //
249 
250 // ------------------------------------------------------------------------------ //
251 // Bypass sensor offset wdr
252 // ------------------------------------------------------------------------------ //
253 
254 #define ACAMERA_ISP_TOP_BYPASS_SENSOR_OFFSET_WDR_DEFAULT (0)
255 #define ACAMERA_ISP_TOP_BYPASS_SENSOR_OFFSET_WDR_DATASIZE (1)
256 #define ACAMERA_ISP_TOP_BYPASS_SENSOR_OFFSET_WDR_OFFSET (0x24)
257 #define ACAMERA_ISP_TOP_BYPASS_SENSOR_OFFSET_WDR_MASK (0x8)
258 
259 // args: data (1-bit)
acamera_isp_top_bypass_sensor_offset_wdr_write(uintptr_t base,uint8_t data)260 static __inline void acamera_isp_top_bypass_sensor_offset_wdr_write(uintptr_t base, uint8_t data) {
261     uint32_t curr = system_sw_read_32(base + 0x18eacL);
262     system_sw_write_32(base + 0x18eacL, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
263 }
acamera_isp_top_bypass_sensor_offset_wdr_read(uintptr_t base)264 static __inline uint8_t acamera_isp_top_bypass_sensor_offset_wdr_read(uintptr_t base) {
265     return (uint8_t)((system_sw_read_32(base + 0x18eacL) & 0x8) >> 3);
266 }
267 // ------------------------------------------------------------------------------ //
268 // Register: Bypass gain wdr
269 // ------------------------------------------------------------------------------ //
270 
271 // ------------------------------------------------------------------------------ //
272 // Bypass gain wdr
273 // ------------------------------------------------------------------------------ //
274 
275 #define ACAMERA_ISP_TOP_BYPASS_GAIN_WDR_DEFAULT (0)
276 #define ACAMERA_ISP_TOP_BYPASS_GAIN_WDR_DATASIZE (1)
277 #define ACAMERA_ISP_TOP_BYPASS_GAIN_WDR_OFFSET (0x24)
278 #define ACAMERA_ISP_TOP_BYPASS_GAIN_WDR_MASK (0x10)
279 
280 // args: data (1-bit)
acamera_isp_top_bypass_gain_wdr_write(uintptr_t base,uint8_t data)281 static __inline void acamera_isp_top_bypass_gain_wdr_write(uintptr_t base, uint8_t data) {
282     uint32_t curr = system_sw_read_32(base + 0x18eacL);
283     system_sw_write_32(base + 0x18eacL, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
284 }
acamera_isp_top_bypass_gain_wdr_read(uintptr_t base)285 static __inline uint8_t acamera_isp_top_bypass_gain_wdr_read(uintptr_t base) {
286     return (uint8_t)((system_sw_read_32(base + 0x18eacL) & 0x10) >> 4);
287 }
288 // ------------------------------------------------------------------------------ //
289 // Register: Bypass frame stitch
290 // ------------------------------------------------------------------------------ //
291 
292 // ------------------------------------------------------------------------------ //
293 // Bypass frame stitching logic
294 // ------------------------------------------------------------------------------ //
295 
296 #define ACAMERA_ISP_TOP_BYPASS_FRAME_STITCH_DEFAULT (0)
297 #define ACAMERA_ISP_TOP_BYPASS_FRAME_STITCH_DATASIZE (1)
298 #define ACAMERA_ISP_TOP_BYPASS_FRAME_STITCH_OFFSET (0x24)
299 #define ACAMERA_ISP_TOP_BYPASS_FRAME_STITCH_MASK (0x20)
300 
301 // args: data (1-bit)
acamera_isp_top_bypass_frame_stitch_write(uintptr_t base,uint8_t data)302 static __inline void acamera_isp_top_bypass_frame_stitch_write(uintptr_t base, uint8_t data) {
303     uint32_t curr = system_sw_read_32(base + 0x18eacL);
304     system_sw_write_32(base + 0x18eacL, (((uint32_t) (data & 0x1)) << 5) | (curr & 0xffffffdf));
305 }
acamera_isp_top_bypass_frame_stitch_read(uintptr_t base)306 static __inline uint8_t acamera_isp_top_bypass_frame_stitch_read(uintptr_t base) {
307     return (uint8_t)((system_sw_read_32(base + 0x18eacL) & 0x20) >> 5);
308 }
309 // ------------------------------------------------------------------------------ //
310 // Register: Bypass digital gain
311 // ------------------------------------------------------------------------------ //
312 
313 // ------------------------------------------------------------------------------ //
314 // Bypass digital gain module
315 // ------------------------------------------------------------------------------ //
316 
317 #define ACAMERA_ISP_TOP_BYPASS_DIGITAL_GAIN_DEFAULT (0)
318 #define ACAMERA_ISP_TOP_BYPASS_DIGITAL_GAIN_DATASIZE (1)
319 #define ACAMERA_ISP_TOP_BYPASS_DIGITAL_GAIN_OFFSET (0x28)
320 #define ACAMERA_ISP_TOP_BYPASS_DIGITAL_GAIN_MASK (0x1)
321 
322 // args: data (1-bit)
acamera_isp_top_bypass_digital_gain_write(uintptr_t base,uint8_t data)323 static __inline void acamera_isp_top_bypass_digital_gain_write(uintptr_t base, uint8_t data) {
324     uint32_t curr = system_sw_read_32(base + 0x18eb0L);
325     system_sw_write_32(base + 0x18eb0L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
326 }
acamera_isp_top_bypass_digital_gain_read(uintptr_t base)327 static __inline uint8_t acamera_isp_top_bypass_digital_gain_read(uintptr_t base) {
328     return (uint8_t)((system_sw_read_32(base + 0x18eb0L) & 0x1) >> 0);
329 }
330 // ------------------------------------------------------------------------------ //
331 // Register: Bypass frontend sensor offset
332 // ------------------------------------------------------------------------------ //
333 
334 // ------------------------------------------------------------------------------ //
335 // Bypass digital gain module
336 // ------------------------------------------------------------------------------ //
337 
338 #define ACAMERA_ISP_TOP_BYPASS_FRONTEND_SENSOR_OFFSET_DEFAULT (0)
339 #define ACAMERA_ISP_TOP_BYPASS_FRONTEND_SENSOR_OFFSET_DATASIZE (1)
340 #define ACAMERA_ISP_TOP_BYPASS_FRONTEND_SENSOR_OFFSET_OFFSET (0x28)
341 #define ACAMERA_ISP_TOP_BYPASS_FRONTEND_SENSOR_OFFSET_MASK (0x2)
342 
343 // args: data (1-bit)
acamera_isp_top_bypass_frontend_sensor_offset_write(uintptr_t base,uint8_t data)344 static __inline void acamera_isp_top_bypass_frontend_sensor_offset_write(uintptr_t base, uint8_t data) {
345     uint32_t curr = system_sw_read_32(base + 0x18eb0L);
346     system_sw_write_32(base + 0x18eb0L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
347 }
acamera_isp_top_bypass_frontend_sensor_offset_read(uintptr_t base)348 static __inline uint8_t acamera_isp_top_bypass_frontend_sensor_offset_read(uintptr_t base) {
349     return (uint8_t)((system_sw_read_32(base + 0x18eb0L) & 0x2) >> 1);
350 }
351 // ------------------------------------------------------------------------------ //
352 // Register: Bypass fe sqrt
353 // ------------------------------------------------------------------------------ //
354 
355 // ------------------------------------------------------------------------------ //
356 // Bypass square root function before raw frontend
357 // ------------------------------------------------------------------------------ //
358 
359 #define ACAMERA_ISP_TOP_BYPASS_FE_SQRT_DEFAULT (1)
360 #define ACAMERA_ISP_TOP_BYPASS_FE_SQRT_DATASIZE (1)
361 #define ACAMERA_ISP_TOP_BYPASS_FE_SQRT_OFFSET (0x28)
362 #define ACAMERA_ISP_TOP_BYPASS_FE_SQRT_MASK (0x4)
363 
364 // args: data (1-bit)
acamera_isp_top_bypass_fe_sqrt_write(uintptr_t base,uint8_t data)365 static __inline void acamera_isp_top_bypass_fe_sqrt_write(uintptr_t base, uint8_t data) {
366     uint32_t curr = system_sw_read_32(base + 0x18eb0L);
367     system_sw_write_32(base + 0x18eb0L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
368 }
acamera_isp_top_bypass_fe_sqrt_read(uintptr_t base)369 static __inline uint8_t acamera_isp_top_bypass_fe_sqrt_read(uintptr_t base) {
370     return (uint8_t)((system_sw_read_32(base + 0x18eb0L) & 0x4) >> 2);
371 }
372 // ------------------------------------------------------------------------------ //
373 // Register: Bypass RAW frontend
374 // ------------------------------------------------------------------------------ //
375 
376 // ------------------------------------------------------------------------------ //
377 // Bypass RAW frontend (green equalization and dynamic defect pixel)
378 // ------------------------------------------------------------------------------ //
379 
380 #define ACAMERA_ISP_TOP_BYPASS_RAW_FRONTEND_DEFAULT (0)
381 #define ACAMERA_ISP_TOP_BYPASS_RAW_FRONTEND_DATASIZE (1)
382 #define ACAMERA_ISP_TOP_BYPASS_RAW_FRONTEND_OFFSET (0x28)
383 #define ACAMERA_ISP_TOP_BYPASS_RAW_FRONTEND_MASK (0x8)
384 
385 // args: data (1-bit)
acamera_isp_top_bypass_raw_frontend_write(uintptr_t base,uint8_t data)386 static __inline void acamera_isp_top_bypass_raw_frontend_write(uintptr_t base, uint8_t data) {
387     uint32_t curr = system_sw_read_32(base + 0x18eb0L);
388     system_sw_write_32(base + 0x18eb0L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
389 }
acamera_isp_top_bypass_raw_frontend_read(uintptr_t base)390 static __inline uint8_t acamera_isp_top_bypass_raw_frontend_read(uintptr_t base) {
391     return (uint8_t)((system_sw_read_32(base + 0x18eb0L) & 0x8) >> 3);
392 }
393 // ------------------------------------------------------------------------------ //
394 // Register: Bypass defect pixel
395 // ------------------------------------------------------------------------------ //
396 
397 // ------------------------------------------------------------------------------ //
398 // Bypass static defect pixel
399 // ------------------------------------------------------------------------------ //
400 
401 #define ACAMERA_ISP_TOP_BYPASS_DEFECT_PIXEL_DEFAULT (0)
402 #define ACAMERA_ISP_TOP_BYPASS_DEFECT_PIXEL_DATASIZE (1)
403 #define ACAMERA_ISP_TOP_BYPASS_DEFECT_PIXEL_OFFSET (0x28)
404 #define ACAMERA_ISP_TOP_BYPASS_DEFECT_PIXEL_MASK (0x10)
405 
406 // args: data (1-bit)
acamera_isp_top_bypass_defect_pixel_write(uintptr_t base,uint8_t data)407 static __inline void acamera_isp_top_bypass_defect_pixel_write(uintptr_t base, uint8_t data) {
408     uint32_t curr = system_sw_read_32(base + 0x18eb0L);
409     system_sw_write_32(base + 0x18eb0L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
410 }
acamera_isp_top_bypass_defect_pixel_read(uintptr_t base)411 static __inline uint8_t acamera_isp_top_bypass_defect_pixel_read(uintptr_t base) {
412     return (uint8_t)((system_sw_read_32(base + 0x18eb0L) & 0x10) >> 4);
413 }
414 // ------------------------------------------------------------------------------ //
415 // Register: Bypass sinter
416 // ------------------------------------------------------------------------------ //
417 
418 // ------------------------------------------------------------------------------ //
419 // Bypass sinter
420 // ------------------------------------------------------------------------------ //
421 
422 #define ACAMERA_ISP_TOP_BYPASS_SINTER_DEFAULT (0)
423 #define ACAMERA_ISP_TOP_BYPASS_SINTER_DATASIZE (1)
424 #define ACAMERA_ISP_TOP_BYPASS_SINTER_OFFSET (0x30)
425 #define ACAMERA_ISP_TOP_BYPASS_SINTER_MASK (0x1)
426 
427 // args: data (1-bit)
acamera_isp_top_bypass_sinter_write(uintptr_t base,uint8_t data)428 static __inline void acamera_isp_top_bypass_sinter_write(uintptr_t base, uint8_t data) {
429     uint32_t curr = system_sw_read_32(base + 0x18eb8L);
430     system_sw_write_32(base + 0x18eb8L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
431 }
acamera_isp_top_bypass_sinter_read(uintptr_t base)432 static __inline uint8_t acamera_isp_top_bypass_sinter_read(uintptr_t base) {
433     return (uint8_t)((system_sw_read_32(base + 0x18eb8L) & 0x1) >> 0);
434 }
435 // ------------------------------------------------------------------------------ //
436 // Register: Bypass temper
437 // ------------------------------------------------------------------------------ //
438 
439 // ------------------------------------------------------------------------------ //
440 // Bypass temper
441 // ------------------------------------------------------------------------------ //
442 
443 #define ACAMERA_ISP_TOP_BYPASS_TEMPER_DEFAULT (1)
444 #define ACAMERA_ISP_TOP_BYPASS_TEMPER_DATASIZE (1)
445 #define ACAMERA_ISP_TOP_BYPASS_TEMPER_OFFSET (0x30)
446 #define ACAMERA_ISP_TOP_BYPASS_TEMPER_MASK (0x2)
447 
448 // args: data (1-bit)
acamera_isp_top_bypass_temper_write(uintptr_t base,uint8_t data)449 static __inline void acamera_isp_top_bypass_temper_write(uintptr_t base, uint8_t data) {
450     uint32_t curr = system_sw_read_32(base + 0x18eb8L);
451     system_sw_write_32(base + 0x18eb8L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
452 }
acamera_isp_top_bypass_temper_read(uintptr_t base)453 static __inline uint8_t acamera_isp_top_bypass_temper_read(uintptr_t base) {
454     return (uint8_t)((system_sw_read_32(base + 0x18eb8L) & 0x2) >> 1);
455 }
456 // ------------------------------------------------------------------------------ //
457 // Register: Bypass ca correction
458 // ------------------------------------------------------------------------------ //
459 
460 // ------------------------------------------------------------------------------ //
461 // Bypass chromatic abberation correction
462 // ------------------------------------------------------------------------------ //
463 
464 #define ACAMERA_ISP_TOP_BYPASS_CA_CORRECTION_DEFAULT (0)
465 #define ACAMERA_ISP_TOP_BYPASS_CA_CORRECTION_DATASIZE (1)
466 #define ACAMERA_ISP_TOP_BYPASS_CA_CORRECTION_OFFSET (0x30)
467 #define ACAMERA_ISP_TOP_BYPASS_CA_CORRECTION_MASK (0x4)
468 
469 // args: data (1-bit)
acamera_isp_top_bypass_ca_correction_write(uintptr_t base,uint8_t data)470 static __inline void acamera_isp_top_bypass_ca_correction_write(uintptr_t base, uint8_t data) {
471     uint32_t curr = system_sw_read_32(base + 0x18eb8L);
472     system_sw_write_32(base + 0x18eb8L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
473 }
acamera_isp_top_bypass_ca_correction_read(uintptr_t base)474 static __inline uint8_t acamera_isp_top_bypass_ca_correction_read(uintptr_t base) {
475     return (uint8_t)((system_sw_read_32(base + 0x18eb8L) & 0x4) >> 2);
476 }
477 // ------------------------------------------------------------------------------ //
478 // Register: Bypass square_be
479 // ------------------------------------------------------------------------------ //
480 
481 // ------------------------------------------------------------------------------ //
482 // Bypass backend square
483 // ------------------------------------------------------------------------------ //
484 
485 #define ACAMERA_ISP_TOP_BYPASS_SQUARE_BE_DEFAULT (0)
486 #define ACAMERA_ISP_TOP_BYPASS_SQUARE_BE_DATASIZE (1)
487 #define ACAMERA_ISP_TOP_BYPASS_SQUARE_BE_OFFSET (0x34)
488 #define ACAMERA_ISP_TOP_BYPASS_SQUARE_BE_MASK (0x1)
489 
490 // args: data (1-bit)
acamera_isp_top_bypass_square_be_write(uintptr_t base,uint8_t data)491 static __inline void acamera_isp_top_bypass_square_be_write(uintptr_t base, uint8_t data) {
492     uint32_t curr = system_sw_read_32(base + 0x18ebcL);
493     system_sw_write_32(base + 0x18ebcL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
494 }
acamera_isp_top_bypass_square_be_read(uintptr_t base)495 static __inline uint8_t acamera_isp_top_bypass_square_be_read(uintptr_t base) {
496     return (uint8_t)((system_sw_read_32(base + 0x18ebcL) & 0x1) >> 0);
497 }
498 // ------------------------------------------------------------------------------ //
499 // Register: Bypass sensor_offset_pre_shading
500 // ------------------------------------------------------------------------------ //
501 
502 // ------------------------------------------------------------------------------ //
503 // Bypass sensor offset pre shading
504 // ------------------------------------------------------------------------------ //
505 
506 #define ACAMERA_ISP_TOP_BYPASS_SENSOR_OFFSET_PRE_SHADING_DEFAULT (0)
507 #define ACAMERA_ISP_TOP_BYPASS_SENSOR_OFFSET_PRE_SHADING_DATASIZE (1)
508 #define ACAMERA_ISP_TOP_BYPASS_SENSOR_OFFSET_PRE_SHADING_OFFSET (0x34)
509 #define ACAMERA_ISP_TOP_BYPASS_SENSOR_OFFSET_PRE_SHADING_MASK (0x2)
510 
511 // args: data (1-bit)
acamera_isp_top_bypass_sensor_offset_pre_shading_write(uintptr_t base,uint8_t data)512 static __inline void acamera_isp_top_bypass_sensor_offset_pre_shading_write(uintptr_t base, uint8_t data) {
513     uint32_t curr = system_sw_read_32(base + 0x18ebcL);
514     system_sw_write_32(base + 0x18ebcL, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
515 }
acamera_isp_top_bypass_sensor_offset_pre_shading_read(uintptr_t base)516 static __inline uint8_t acamera_isp_top_bypass_sensor_offset_pre_shading_read(uintptr_t base) {
517     return (uint8_t)((system_sw_read_32(base + 0x18ebcL) & 0x2) >> 1);
518 }
519 // ------------------------------------------------------------------------------ //
520 // Register: Bypass radial shading
521 // ------------------------------------------------------------------------------ //
522 
523 // ------------------------------------------------------------------------------ //
524 // Bypass radial shading
525 // ------------------------------------------------------------------------------ //
526 
527 #define ACAMERA_ISP_TOP_BYPASS_RADIAL_SHADING_DEFAULT (0)
528 #define ACAMERA_ISP_TOP_BYPASS_RADIAL_SHADING_DATASIZE (1)
529 #define ACAMERA_ISP_TOP_BYPASS_RADIAL_SHADING_OFFSET (0x34)
530 #define ACAMERA_ISP_TOP_BYPASS_RADIAL_SHADING_MASK (0x4)
531 
532 // args: data (1-bit)
acamera_isp_top_bypass_radial_shading_write(uintptr_t base,uint8_t data)533 static __inline void acamera_isp_top_bypass_radial_shading_write(uintptr_t base, uint8_t data) {
534     uint32_t curr = system_sw_read_32(base + 0x18ebcL);
535     system_sw_write_32(base + 0x18ebcL, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
536 }
acamera_isp_top_bypass_radial_shading_read(uintptr_t base)537 static __inline uint8_t acamera_isp_top_bypass_radial_shading_read(uintptr_t base) {
538     return (uint8_t)((system_sw_read_32(base + 0x18ebcL) & 0x4) >> 2);
539 }
540 // ------------------------------------------------------------------------------ //
541 // Register: Bypass mesh shading
542 // ------------------------------------------------------------------------------ //
543 
544 // ------------------------------------------------------------------------------ //
545 // Bypass mesh ashading
546 // ------------------------------------------------------------------------------ //
547 
548 #define ACAMERA_ISP_TOP_BYPASS_MESH_SHADING_DEFAULT (0)
549 #define ACAMERA_ISP_TOP_BYPASS_MESH_SHADING_DATASIZE (1)
550 #define ACAMERA_ISP_TOP_BYPASS_MESH_SHADING_OFFSET (0x34)
551 #define ACAMERA_ISP_TOP_BYPASS_MESH_SHADING_MASK (0x8)
552 
553 // args: data (1-bit)
acamera_isp_top_bypass_mesh_shading_write(uintptr_t base,uint8_t data)554 static __inline void acamera_isp_top_bypass_mesh_shading_write(uintptr_t base, uint8_t data) {
555     uint32_t curr = system_sw_read_32(base + 0x18ebcL);
556     system_sw_write_32(base + 0x18ebcL, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
557 }
acamera_isp_top_bypass_mesh_shading_read(uintptr_t base)558 static __inline uint8_t acamera_isp_top_bypass_mesh_shading_read(uintptr_t base) {
559     return (uint8_t)((system_sw_read_32(base + 0x18ebcL) & 0x8) >> 3);
560 }
561 // ------------------------------------------------------------------------------ //
562 // Register: Bypass white balance
563 // ------------------------------------------------------------------------------ //
564 
565 // ------------------------------------------------------------------------------ //
566 // Bypass white balance
567 // ------------------------------------------------------------------------------ //
568 
569 #define ACAMERA_ISP_TOP_BYPASS_WHITE_BALANCE_DEFAULT (0)
570 #define ACAMERA_ISP_TOP_BYPASS_WHITE_BALANCE_DATASIZE (1)
571 #define ACAMERA_ISP_TOP_BYPASS_WHITE_BALANCE_OFFSET (0x34)
572 #define ACAMERA_ISP_TOP_BYPASS_WHITE_BALANCE_MASK (0x10)
573 
574 // args: data (1-bit)
acamera_isp_top_bypass_white_balance_write(uintptr_t base,uint8_t data)575 static __inline void acamera_isp_top_bypass_white_balance_write(uintptr_t base, uint8_t data) {
576     uint32_t curr = system_sw_read_32(base + 0x18ebcL);
577     system_sw_write_32(base + 0x18ebcL, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
578 }
acamera_isp_top_bypass_white_balance_read(uintptr_t base)579 static __inline uint8_t acamera_isp_top_bypass_white_balance_read(uintptr_t base) {
580     return (uint8_t)((system_sw_read_32(base + 0x18ebcL) & 0x10) >> 4);
581 }
582 // ------------------------------------------------------------------------------ //
583 // Register: Bypass iridix gain
584 // ------------------------------------------------------------------------------ //
585 
586 // ------------------------------------------------------------------------------ //
587 // Bypass
588 // ------------------------------------------------------------------------------ //
589 
590 #define ACAMERA_ISP_TOP_BYPASS_IRIDIX_GAIN_DEFAULT (0)
591 #define ACAMERA_ISP_TOP_BYPASS_IRIDIX_GAIN_DATASIZE (1)
592 #define ACAMERA_ISP_TOP_BYPASS_IRIDIX_GAIN_OFFSET (0x34)
593 #define ACAMERA_ISP_TOP_BYPASS_IRIDIX_GAIN_MASK (0x20)
594 
595 // args: data (1-bit)
acamera_isp_top_bypass_iridix_gain_write(uintptr_t base,uint8_t data)596 static __inline void acamera_isp_top_bypass_iridix_gain_write(uintptr_t base, uint8_t data) {
597     uint32_t curr = system_sw_read_32(base + 0x18ebcL);
598     system_sw_write_32(base + 0x18ebcL, (((uint32_t) (data & 0x1)) << 5) | (curr & 0xffffffdf));
599 }
acamera_isp_top_bypass_iridix_gain_read(uintptr_t base)600 static __inline uint8_t acamera_isp_top_bypass_iridix_gain_read(uintptr_t base) {
601     return (uint8_t)((system_sw_read_32(base + 0x18ebcL) & 0x20) >> 5);
602 }
603 // ------------------------------------------------------------------------------ //
604 // Register: Bypass iridix
605 // ------------------------------------------------------------------------------ //
606 
607 // ------------------------------------------------------------------------------ //
608 // Bypass
609 // ------------------------------------------------------------------------------ //
610 
611 #define ACAMERA_ISP_TOP_BYPASS_IRIDIX_DEFAULT (0)
612 #define ACAMERA_ISP_TOP_BYPASS_IRIDIX_DATASIZE (1)
613 #define ACAMERA_ISP_TOP_BYPASS_IRIDIX_OFFSET (0x34)
614 #define ACAMERA_ISP_TOP_BYPASS_IRIDIX_MASK (0x40)
615 
616 // args: data (1-bit)
acamera_isp_top_bypass_iridix_write(uintptr_t base,uint8_t data)617 static __inline void acamera_isp_top_bypass_iridix_write(uintptr_t base, uint8_t data) {
618     uint32_t curr = system_sw_read_32(base + 0x18ebcL);
619     system_sw_write_32(base + 0x18ebcL, (((uint32_t) (data & 0x1)) << 6) | (curr & 0xffffffbf));
620 }
acamera_isp_top_bypass_iridix_read(uintptr_t base)621 static __inline uint8_t acamera_isp_top_bypass_iridix_read(uintptr_t base) {
622     return (uint8_t)((system_sw_read_32(base + 0x18ebcL) & 0x40) >> 6);
623 }
624 // ------------------------------------------------------------------------------ //
625 // Register: Bypass mirror
626 // ------------------------------------------------------------------------------ //
627 
628 // ------------------------------------------------------------------------------ //
629 // Bypass EW mirror
630 // ------------------------------------------------------------------------------ //
631 
632 #define ACAMERA_ISP_TOP_BYPASS_MIRROR_DEFAULT (0)
633 #define ACAMERA_ISP_TOP_BYPASS_MIRROR_DATASIZE (1)
634 #define ACAMERA_ISP_TOP_BYPASS_MIRROR_OFFSET (0x38)
635 #define ACAMERA_ISP_TOP_BYPASS_MIRROR_MASK (0x1)
636 
637 // args: data (1-bit)
acamera_isp_top_bypass_mirror_write(uintptr_t base,uint8_t data)638 static __inline void acamera_isp_top_bypass_mirror_write(uintptr_t base, uint8_t data) {
639     uint32_t curr = system_sw_read_32(base + 0x18ec0L);
640     system_sw_write_32(base + 0x18ec0L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
641 }
acamera_isp_top_bypass_mirror_read(uintptr_t base)642 static __inline uint8_t acamera_isp_top_bypass_mirror_read(uintptr_t base) {
643     return (uint8_t)((system_sw_read_32(base + 0x18ec0L) & 0x1) >> 0);
644 }
645 // ------------------------------------------------------------------------------ //
646 // Register: Bypass demosaic rgb
647 // ------------------------------------------------------------------------------ //
648 
649 // ------------------------------------------------------------------------------ //
650 // Bypass demosaic rgb
651 // ------------------------------------------------------------------------------ //
652 
653 #define ACAMERA_ISP_TOP_BYPASS_DEMOSAIC_RGB_DEFAULT (0)
654 #define ACAMERA_ISP_TOP_BYPASS_DEMOSAIC_RGB_DATASIZE (1)
655 #define ACAMERA_ISP_TOP_BYPASS_DEMOSAIC_RGB_OFFSET (0x38)
656 #define ACAMERA_ISP_TOP_BYPASS_DEMOSAIC_RGB_MASK (0x2)
657 
658 // args: data (1-bit)
acamera_isp_top_bypass_demosaic_rgb_write(uintptr_t base,uint8_t data)659 static __inline void acamera_isp_top_bypass_demosaic_rgb_write(uintptr_t base, uint8_t data) {
660     uint32_t curr = system_sw_read_32(base + 0x18ec0L);
661     system_sw_write_32(base + 0x18ec0L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
662 }
acamera_isp_top_bypass_demosaic_rgb_read(uintptr_t base)663 static __inline uint8_t acamera_isp_top_bypass_demosaic_rgb_read(uintptr_t base) {
664     return (uint8_t)((system_sw_read_32(base + 0x18ec0L) & 0x2) >> 1);
665 }
666 // ------------------------------------------------------------------------------ //
667 // Register: Bypass demosaic rgbir
668 // ------------------------------------------------------------------------------ //
669 
670 // ------------------------------------------------------------------------------ //
671 // Bypass demosaic rgbir
672 // ------------------------------------------------------------------------------ //
673 
674 #define ACAMERA_ISP_TOP_BYPASS_DEMOSAIC_RGBIR_DEFAULT (0)
675 #define ACAMERA_ISP_TOP_BYPASS_DEMOSAIC_RGBIR_DATASIZE (1)
676 #define ACAMERA_ISP_TOP_BYPASS_DEMOSAIC_RGBIR_OFFSET (0x38)
677 #define ACAMERA_ISP_TOP_BYPASS_DEMOSAIC_RGBIR_MASK (0x4)
678 
679 // args: data (1-bit)
acamera_isp_top_bypass_demosaic_rgbir_write(uintptr_t base,uint8_t data)680 static __inline void acamera_isp_top_bypass_demosaic_rgbir_write(uintptr_t base, uint8_t data) {
681     uint32_t curr = system_sw_read_32(base + 0x18ec0L);
682     system_sw_write_32(base + 0x18ec0L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
683 }
acamera_isp_top_bypass_demosaic_rgbir_read(uintptr_t base)684 static __inline uint8_t acamera_isp_top_bypass_demosaic_rgbir_read(uintptr_t base) {
685     return (uint8_t)((system_sw_read_32(base + 0x18ec0L) & 0x4) >> 2);
686 }
687 // ------------------------------------------------------------------------------ //
688 // Register: Bypass pf correction
689 // ------------------------------------------------------------------------------ //
690 
691 // ------------------------------------------------------------------------------ //
692 // Bypass pf correction
693 // ------------------------------------------------------------------------------ //
694 
695 #define ACAMERA_ISP_TOP_BYPASS_PF_CORRECTION_DEFAULT (0)
696 #define ACAMERA_ISP_TOP_BYPASS_PF_CORRECTION_DATASIZE (1)
697 #define ACAMERA_ISP_TOP_BYPASS_PF_CORRECTION_OFFSET (0x38)
698 #define ACAMERA_ISP_TOP_BYPASS_PF_CORRECTION_MASK (0x8)
699 
700 // args: data (1-bit)
acamera_isp_top_bypass_pf_correction_write(uintptr_t base,uint8_t data)701 static __inline void acamera_isp_top_bypass_pf_correction_write(uintptr_t base, uint8_t data) {
702     uint32_t curr = system_sw_read_32(base + 0x18ec0L);
703     system_sw_write_32(base + 0x18ec0L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
704 }
acamera_isp_top_bypass_pf_correction_read(uintptr_t base)705 static __inline uint8_t acamera_isp_top_bypass_pf_correction_read(uintptr_t base) {
706     return (uint8_t)((system_sw_read_32(base + 0x18ec0L) & 0x8) >> 3);
707 }
708 // ------------------------------------------------------------------------------ //
709 // Register: Bypass CCM
710 // ------------------------------------------------------------------------------ //
711 
712 // ------------------------------------------------------------------------------ //
713 // Bypass CCM
714 // ------------------------------------------------------------------------------ //
715 
716 #define ACAMERA_ISP_TOP_BYPASS_CCM_DEFAULT (0)
717 #define ACAMERA_ISP_TOP_BYPASS_CCM_DATASIZE (1)
718 #define ACAMERA_ISP_TOP_BYPASS_CCM_OFFSET (0x38)
719 #define ACAMERA_ISP_TOP_BYPASS_CCM_MASK (0x10)
720 
721 // args: data (1-bit)
acamera_isp_top_bypass_ccm_write(uintptr_t base,uint8_t data)722 static __inline void acamera_isp_top_bypass_ccm_write(uintptr_t base, uint8_t data) {
723     uint32_t curr = system_sw_read_32(base + 0x18ec0L);
724     system_sw_write_32(base + 0x18ec0L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
725 }
acamera_isp_top_bypass_ccm_read(uintptr_t base)726 static __inline uint8_t acamera_isp_top_bypass_ccm_read(uintptr_t base) {
727     return (uint8_t)((system_sw_read_32(base + 0x18ec0L) & 0x10) >> 4);
728 }
729 // ------------------------------------------------------------------------------ //
730 // Register: Bypass CNR
731 // ------------------------------------------------------------------------------ //
732 
733 // ------------------------------------------------------------------------------ //
734 // Bypass CNR
735 // ------------------------------------------------------------------------------ //
736 
737 #define ACAMERA_ISP_TOP_BYPASS_CNR_DEFAULT (0)
738 #define ACAMERA_ISP_TOP_BYPASS_CNR_DATASIZE (1)
739 #define ACAMERA_ISP_TOP_BYPASS_CNR_OFFSET (0x38)
740 #define ACAMERA_ISP_TOP_BYPASS_CNR_MASK (0x20)
741 
742 // args: data (1-bit)
acamera_isp_top_bypass_cnr_write(uintptr_t base,uint8_t data)743 static __inline void acamera_isp_top_bypass_cnr_write(uintptr_t base, uint8_t data) {
744     uint32_t curr = system_sw_read_32(base + 0x18ec0L);
745     system_sw_write_32(base + 0x18ec0L, (((uint32_t) (data & 0x1)) << 5) | (curr & 0xffffffdf));
746 }
acamera_isp_top_bypass_cnr_read(uintptr_t base)747 static __inline uint8_t acamera_isp_top_bypass_cnr_read(uintptr_t base) {
748     return (uint8_t)((system_sw_read_32(base + 0x18ec0L) & 0x20) >> 5);
749 }
750 // ------------------------------------------------------------------------------ //
751 // Register: Bypass 3D lut
752 // ------------------------------------------------------------------------------ //
753 
754 // ------------------------------------------------------------------------------ //
755 // Bypass 3d lut
756 // ------------------------------------------------------------------------------ //
757 
758 #define ACAMERA_ISP_TOP_BYPASS_3D_LUT_DEFAULT (0)
759 #define ACAMERA_ISP_TOP_BYPASS_3D_LUT_DATASIZE (1)
760 #define ACAMERA_ISP_TOP_BYPASS_3D_LUT_OFFSET (0x38)
761 #define ACAMERA_ISP_TOP_BYPASS_3D_LUT_MASK (0x40)
762 
763 // args: data (1-bit)
acamera_isp_top_bypass_3d_lut_write(uintptr_t base,uint8_t data)764 static __inline void acamera_isp_top_bypass_3d_lut_write(uintptr_t base, uint8_t data) {
765     uint32_t curr = system_sw_read_32(base + 0x18ec0L);
766     system_sw_write_32(base + 0x18ec0L, (((uint32_t) (data & 0x1)) << 6) | (curr & 0xffffffbf));
767 }
acamera_isp_top_bypass_3d_lut_read(uintptr_t base)768 static __inline uint8_t acamera_isp_top_bypass_3d_lut_read(uintptr_t base) {
769     return (uint8_t)((system_sw_read_32(base + 0x18ec0L) & 0x40) >> 6);
770 }
771 // ------------------------------------------------------------------------------ //
772 // Register: Bypass nonequ gamma
773 // ------------------------------------------------------------------------------ //
774 
775 // ------------------------------------------------------------------------------ //
776 // Bypass nonequ gamma
777 // ------------------------------------------------------------------------------ //
778 
779 #define ACAMERA_ISP_TOP_BYPASS_NONEQU_GAMMA_DEFAULT (0)
780 #define ACAMERA_ISP_TOP_BYPASS_NONEQU_GAMMA_DATASIZE (1)
781 #define ACAMERA_ISP_TOP_BYPASS_NONEQU_GAMMA_OFFSET (0x38)
782 #define ACAMERA_ISP_TOP_BYPASS_NONEQU_GAMMA_MASK (0x80)
783 
784 // args: data (1-bit)
acamera_isp_top_bypass_nonequ_gamma_write(uintptr_t base,uint8_t data)785 static __inline void acamera_isp_top_bypass_nonequ_gamma_write(uintptr_t base, uint8_t data) {
786     uint32_t curr = system_sw_read_32(base + 0x18ec0L);
787     system_sw_write_32(base + 0x18ec0L, (((uint32_t) (data & 0x1)) << 7) | (curr & 0xffffff7f));
788 }
acamera_isp_top_bypass_nonequ_gamma_read(uintptr_t base)789 static __inline uint8_t acamera_isp_top_bypass_nonequ_gamma_read(uintptr_t base) {
790     return (uint8_t)((system_sw_read_32(base + 0x18ec0L) & 0x80) >> 7);
791 }
792 // ------------------------------------------------------------------------------ //
793 // Register: Bypass fr crop
794 // ------------------------------------------------------------------------------ //
795 
796 // ------------------------------------------------------------------------------ //
797 // Bypass fr crop
798 // ------------------------------------------------------------------------------ //
799 
800 #define ACAMERA_ISP_TOP_BYPASS_FR_CROP_DEFAULT (0)
801 #define ACAMERA_ISP_TOP_BYPASS_FR_CROP_DATASIZE (1)
802 #define ACAMERA_ISP_TOP_BYPASS_FR_CROP_OFFSET (0x3c)
803 #define ACAMERA_ISP_TOP_BYPASS_FR_CROP_MASK (0x1)
804 
805 // args: data (1-bit)
acamera_isp_top_bypass_fr_crop_write(uintptr_t base,uint8_t data)806 static __inline void acamera_isp_top_bypass_fr_crop_write(uintptr_t base, uint8_t data) {
807     uint32_t curr = system_sw_read_32(base + 0x18ec4L);
808     system_sw_write_32(base + 0x18ec4L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
809 }
acamera_isp_top_bypass_fr_crop_read(uintptr_t base)810 static __inline uint8_t acamera_isp_top_bypass_fr_crop_read(uintptr_t base) {
811     return (uint8_t)((system_sw_read_32(base + 0x18ec4L) & 0x1) >> 0);
812 }
813 // ------------------------------------------------------------------------------ //
814 // Register: Bypass fr gamma rgb
815 // ------------------------------------------------------------------------------ //
816 
817 // ------------------------------------------------------------------------------ //
818 // Bypass fr gamma rgb
819 // ------------------------------------------------------------------------------ //
820 
821 #define ACAMERA_ISP_TOP_BYPASS_FR_GAMMA_RGB_DEFAULT (0)
822 #define ACAMERA_ISP_TOP_BYPASS_FR_GAMMA_RGB_DATASIZE (1)
823 #define ACAMERA_ISP_TOP_BYPASS_FR_GAMMA_RGB_OFFSET (0x3c)
824 #define ACAMERA_ISP_TOP_BYPASS_FR_GAMMA_RGB_MASK (0x2)
825 
826 // args: data (1-bit)
acamera_isp_top_bypass_fr_gamma_rgb_write(uintptr_t base,uint8_t data)827 static __inline void acamera_isp_top_bypass_fr_gamma_rgb_write(uintptr_t base, uint8_t data) {
828     uint32_t curr = system_sw_read_32(base + 0x18ec4L);
829     system_sw_write_32(base + 0x18ec4L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
830 }
acamera_isp_top_bypass_fr_gamma_rgb_read(uintptr_t base)831 static __inline uint8_t acamera_isp_top_bypass_fr_gamma_rgb_read(uintptr_t base) {
832     return (uint8_t)((system_sw_read_32(base + 0x18ec4L) & 0x2) >> 1);
833 }
834 // ------------------------------------------------------------------------------ //
835 // Register: Bypass fr sharpen
836 // ------------------------------------------------------------------------------ //
837 
838 // ------------------------------------------------------------------------------ //
839 // Bypass fr sharpen
840 // ------------------------------------------------------------------------------ //
841 
842 #define ACAMERA_ISP_TOP_BYPASS_FR_SHARPEN_DEFAULT (0)
843 #define ACAMERA_ISP_TOP_BYPASS_FR_SHARPEN_DATASIZE (1)
844 #define ACAMERA_ISP_TOP_BYPASS_FR_SHARPEN_OFFSET (0x3c)
845 #define ACAMERA_ISP_TOP_BYPASS_FR_SHARPEN_MASK (0x4)
846 
847 // args: data (1-bit)
acamera_isp_top_bypass_fr_sharpen_write(uintptr_t base,uint8_t data)848 static __inline void acamera_isp_top_bypass_fr_sharpen_write(uintptr_t base, uint8_t data) {
849     uint32_t curr = system_sw_read_32(base + 0x18ec4L);
850     system_sw_write_32(base + 0x18ec4L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
851 }
acamera_isp_top_bypass_fr_sharpen_read(uintptr_t base)852 static __inline uint8_t acamera_isp_top_bypass_fr_sharpen_read(uintptr_t base) {
853     return (uint8_t)((system_sw_read_32(base + 0x18ec4L) & 0x4) >> 2);
854 }
855 // ------------------------------------------------------------------------------ //
856 // Register: Bypass fr cs conv
857 // ------------------------------------------------------------------------------ //
858 
859 // ------------------------------------------------------------------------------ //
860 // Bypass fr cs conv
861 // ------------------------------------------------------------------------------ //
862 
863 #define ACAMERA_ISP_TOP_BYPASS_FR_CS_CONV_DEFAULT (0)
864 #define ACAMERA_ISP_TOP_BYPASS_FR_CS_CONV_DATASIZE (1)
865 #define ACAMERA_ISP_TOP_BYPASS_FR_CS_CONV_OFFSET (0x3c)
866 #define ACAMERA_ISP_TOP_BYPASS_FR_CS_CONV_MASK (0x8)
867 
868 // args: data (1-bit)
acamera_isp_top_bypass_fr_cs_conv_write(uintptr_t base,uint8_t data)869 static __inline void acamera_isp_top_bypass_fr_cs_conv_write(uintptr_t base, uint8_t data) {
870     uint32_t curr = system_sw_read_32(base + 0x18ec4L);
871     system_sw_write_32(base + 0x18ec4L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
872 }
acamera_isp_top_bypass_fr_cs_conv_read(uintptr_t base)873 static __inline uint8_t acamera_isp_top_bypass_fr_cs_conv_read(uintptr_t base) {
874     return (uint8_t)((system_sw_read_32(base + 0x18ec4L) & 0x8) >> 3);
875 }
876 // ------------------------------------------------------------------------------ //
877 // Register: Bypass ds crop
878 // ------------------------------------------------------------------------------ //
879 
880 // ------------------------------------------------------------------------------ //
881 // Bypass ds crop
882 // ------------------------------------------------------------------------------ //
883 
884 #define ACAMERA_ISP_TOP_BYPASS_DS1_CROP_DEFAULT (0)
885 #define ACAMERA_ISP_TOP_BYPASS_DS1_CROP_DATASIZE (1)
886 #define ACAMERA_ISP_TOP_BYPASS_DS1_CROP_OFFSET (0x40)
887 #define ACAMERA_ISP_TOP_BYPASS_DS1_CROP_MASK (0x1)
888 
889 // args: data (1-bit)
acamera_isp_top_bypass_ds1_crop_write(uintptr_t base,uint8_t data)890 static __inline void acamera_isp_top_bypass_ds1_crop_write(uintptr_t base, uint8_t data) {
891     uint32_t curr = system_sw_read_32(base + 0x18ec8L);
892     system_sw_write_32(base + 0x18ec8L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
893 }
acamera_isp_top_bypass_ds1_crop_read(uintptr_t base)894 static __inline uint8_t acamera_isp_top_bypass_ds1_crop_read(uintptr_t base) {
895     return (uint8_t)((system_sw_read_32(base + 0x18ec8L) & 0x1) >> 0);
896 }
897 // ------------------------------------------------------------------------------ //
898 // Register: Bypass ds scaler
899 // ------------------------------------------------------------------------------ //
900 
901 // ------------------------------------------------------------------------------ //
902 // Bypass ds scaler
903 // ------------------------------------------------------------------------------ //
904 
905 #define ACAMERA_ISP_TOP_BYPASS_DS1_SCALER_DEFAULT (0)
906 #define ACAMERA_ISP_TOP_BYPASS_DS1_SCALER_DATASIZE (1)
907 #define ACAMERA_ISP_TOP_BYPASS_DS1_SCALER_OFFSET (0x40)
908 #define ACAMERA_ISP_TOP_BYPASS_DS1_SCALER_MASK (0x2)
909 
910 // args: data (1-bit)
acamera_isp_top_bypass_ds1_scaler_write(uintptr_t base,uint8_t data)911 static __inline void acamera_isp_top_bypass_ds1_scaler_write(uintptr_t base, uint8_t data) {
912     uint32_t curr = system_sw_read_32(base + 0x18ec8L);
913     system_sw_write_32(base + 0x18ec8L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
914 }
acamera_isp_top_bypass_ds1_scaler_read(uintptr_t base)915 static __inline uint8_t acamera_isp_top_bypass_ds1_scaler_read(uintptr_t base) {
916     return (uint8_t)((system_sw_read_32(base + 0x18ec8L) & 0x2) >> 1);
917 }
918 // ------------------------------------------------------------------------------ //
919 // Register: Bypass ds gamma rgb
920 // ------------------------------------------------------------------------------ //
921 
922 // ------------------------------------------------------------------------------ //
923 // Bypass ds gamma rgb
924 // ------------------------------------------------------------------------------ //
925 
926 #define ACAMERA_ISP_TOP_BYPASS_DS1_GAMMA_RGB_DEFAULT (0)
927 #define ACAMERA_ISP_TOP_BYPASS_DS1_GAMMA_RGB_DATASIZE (1)
928 #define ACAMERA_ISP_TOP_BYPASS_DS1_GAMMA_RGB_OFFSET (0x40)
929 #define ACAMERA_ISP_TOP_BYPASS_DS1_GAMMA_RGB_MASK (0x4)
930 
931 // args: data (1-bit)
acamera_isp_top_bypass_ds1_gamma_rgb_write(uintptr_t base,uint8_t data)932 static __inline void acamera_isp_top_bypass_ds1_gamma_rgb_write(uintptr_t base, uint8_t data) {
933     uint32_t curr = system_sw_read_32(base + 0x18ec8L);
934     system_sw_write_32(base + 0x18ec8L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
935 }
acamera_isp_top_bypass_ds1_gamma_rgb_read(uintptr_t base)936 static __inline uint8_t acamera_isp_top_bypass_ds1_gamma_rgb_read(uintptr_t base) {
937     return (uint8_t)((system_sw_read_32(base + 0x18ec8L) & 0x4) >> 2);
938 }
939 // ------------------------------------------------------------------------------ //
940 // Register: Bypass ds sharpen
941 // ------------------------------------------------------------------------------ //
942 
943 // ------------------------------------------------------------------------------ //
944 // Bypass ds sharpen
945 // ------------------------------------------------------------------------------ //
946 
947 #define ACAMERA_ISP_TOP_BYPASS_DS1_SHARPEN_DEFAULT (0)
948 #define ACAMERA_ISP_TOP_BYPASS_DS1_SHARPEN_DATASIZE (1)
949 #define ACAMERA_ISP_TOP_BYPASS_DS1_SHARPEN_OFFSET (0x40)
950 #define ACAMERA_ISP_TOP_BYPASS_DS1_SHARPEN_MASK (0x8)
951 
952 // args: data (1-bit)
acamera_isp_top_bypass_ds1_sharpen_write(uintptr_t base,uint8_t data)953 static __inline void acamera_isp_top_bypass_ds1_sharpen_write(uintptr_t base, uint8_t data) {
954     uint32_t curr = system_sw_read_32(base + 0x18ec8L);
955     system_sw_write_32(base + 0x18ec8L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
956 }
acamera_isp_top_bypass_ds1_sharpen_read(uintptr_t base)957 static __inline uint8_t acamera_isp_top_bypass_ds1_sharpen_read(uintptr_t base) {
958     return (uint8_t)((system_sw_read_32(base + 0x18ec8L) & 0x8) >> 3);
959 }
960 // ------------------------------------------------------------------------------ //
961 // Register: Bypass ds cs conv
962 // ------------------------------------------------------------------------------ //
963 
964 // ------------------------------------------------------------------------------ //
965 // Bypass ds cs conv
966 // ------------------------------------------------------------------------------ //
967 
968 #define ACAMERA_ISP_TOP_BYPASS_DS1_CS_CONV_DEFAULT (0)
969 #define ACAMERA_ISP_TOP_BYPASS_DS1_CS_CONV_DATASIZE (1)
970 #define ACAMERA_ISP_TOP_BYPASS_DS1_CS_CONV_OFFSET (0x40)
971 #define ACAMERA_ISP_TOP_BYPASS_DS1_CS_CONV_MASK (0x10)
972 
973 // args: data (1-bit)
acamera_isp_top_bypass_ds1_cs_conv_write(uintptr_t base,uint8_t data)974 static __inline void acamera_isp_top_bypass_ds1_cs_conv_write(uintptr_t base, uint8_t data) {
975     uint32_t curr = system_sw_read_32(base + 0x18ec8L);
976     system_sw_write_32(base + 0x18ec8L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
977 }
acamera_isp_top_bypass_ds1_cs_conv_read(uintptr_t base)978 static __inline uint8_t acamera_isp_top_bypass_ds1_cs_conv_read(uintptr_t base) {
979     return (uint8_t)((system_sw_read_32(base + 0x18ec8L) & 0x10) >> 4);
980 }
981 // ------------------------------------------------------------------------------ //
982 // Register: ISP RAW bypass
983 // ------------------------------------------------------------------------------ //
984 
985 // ------------------------------------------------------------------------------ //
986 //   Used to select between normal ISP processing with image sensor data and up to 12 bit RGB input.
987 //                         In the latler case data is reinserted into pipeline after purple fringing correction block.
988 //
989 // ------------------------------------------------------------------------------ //
990 
991 #define ACAMERA_ISP_TOP_ISP_RAW_BYPASS_DEFAULT (0)
992 #define ACAMERA_ISP_TOP_ISP_RAW_BYPASS_DATASIZE (1)
993 #define ACAMERA_ISP_TOP_ISP_RAW_BYPASS_OFFSET (0x44)
994 #define ACAMERA_ISP_TOP_ISP_RAW_BYPASS_MASK (0x1)
995 #define ACAMERA_ISP_TOP_ISP_RAW_BYPASS_SELECT_PROCESSED (0)
996 #define ACAMERA_ISP_TOP_ISP_RAW_BYPASS_BYPASS_ISP_RAW_PROCESSING (1)
997 
998 // args: data (1-bit)
acamera_isp_top_isp_raw_bypass_write(uintptr_t base,uint8_t data)999 static __inline void acamera_isp_top_isp_raw_bypass_write(uintptr_t base, uint8_t data) {
1000     uint32_t curr = system_sw_read_32(base + 0x18eccL);
1001     system_sw_write_32(base + 0x18eccL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
1002 }
acamera_isp_top_isp_raw_bypass_read(uintptr_t base)1003 static __inline uint8_t acamera_isp_top_isp_raw_bypass_read(uintptr_t base) {
1004     return (uint8_t)((system_sw_read_32(base + 0x18eccL) & 0x1) >> 0);
1005 }
1006 // ------------------------------------------------------------------------------ //
1007 // Register: ISP downscale pipe disable
1008 // ------------------------------------------------------------------------------ //
1009 
1010 // ------------------------------------------------------------------------------ //
1011 //
1012 //            0: Downscale pipeline is enabled
1013 //            1: Downscale pipeline is disabled. No data is sent out in DMA and streaming channel
1014 //
1015 // ------------------------------------------------------------------------------ //
1016 
1017 #define ACAMERA_ISP_TOP_ISP_DOWNSCALE_PIPE_DISABLE_DEFAULT (0)
1018 #define ACAMERA_ISP_TOP_ISP_DOWNSCALE_PIPE_DISABLE_DATASIZE (1)
1019 #define ACAMERA_ISP_TOP_ISP_DOWNSCALE_PIPE_DISABLE_OFFSET (0x44)
1020 #define ACAMERA_ISP_TOP_ISP_DOWNSCALE_PIPE_DISABLE_MASK (0x2)
1021 #define ACAMERA_ISP_TOP_ISP_DOWNSCALE_PIPE_DISABLE_SELECT_PROCESSED (0)
1022 #define ACAMERA_ISP_TOP_ISP_DOWNSCALE_PIPE_DISABLE_BYPASS_ISP_RAW_PROCESSING (1)
1023 
1024 // args: data (1-bit)
acamera_isp_top_isp_downscale_pipe_disable_write(uintptr_t base,uint8_t data)1025 static __inline void acamera_isp_top_isp_downscale_pipe_disable_write(uintptr_t base, uint8_t data) {
1026     uint32_t curr = system_sw_read_32(base + 0x18eccL);
1027     system_sw_write_32(base + 0x18eccL, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
1028 }
acamera_isp_top_isp_downscale_pipe_disable_read(uintptr_t base)1029 static __inline uint8_t acamera_isp_top_isp_downscale_pipe_disable_read(uintptr_t base) {
1030     return (uint8_t)((system_sw_read_32(base + 0x18eccL) & 0x2) >> 1);
1031 }
1032 // ------------------------------------------------------------------------------ //
1033 // Register: ISP processing fr bypass mode
1034 // ------------------------------------------------------------------------------ //
1035 
1036 // ------------------------------------------------------------------------------ //
1037 //
1038 //              ISP FR bypass modes.  For debug purposes only. Should be set to 0 during normal operation.
1039 //              Used to bypass entire ISP after input port or to pass the stitched image directly to the output.
1040 //
1041 // ------------------------------------------------------------------------------ //
1042 
1043 #define ACAMERA_ISP_TOP_ISP_PROCESSING_FR_BYPASS_MODE_DEFAULT (0)
1044 #define ACAMERA_ISP_TOP_ISP_PROCESSING_FR_BYPASS_MODE_DATASIZE (2)
1045 #define ACAMERA_ISP_TOP_ISP_PROCESSING_FR_BYPASS_MODE_OFFSET (0x44)
1046 #define ACAMERA_ISP_TOP_ISP_PROCESSING_FR_BYPASS_MODE_MASK (0x300)
1047 #define ACAMERA_ISP_TOP_ISP_PROCESSING_FR_BYPASS_MODE_FULL_PROCESSING (0)
1048 #define ACAMERA_ISP_TOP_ISP_PROCESSING_FR_BYPASS_MODE_BYPASS_ENTIRE_ISP_PROCESSING_AND_OUTPUT_194_OF_RAW_SENSOR_DATA_AFTER_VIDEO_TEST_GEN (1)
1049 #define ACAMERA_ISP_TOP_ISP_PROCESSING_FR_BYPASS_MODE_BYPASS_ENTIRE_ISP_PROCESSING_AND_OUTPUT_LSB_10BITS_BITS_OF_RAW_SENSOR_DATA_AFTER_VIDEO_TEST_GEN_DATA_MUST_BE_MSB_ALIGNED (2)
1050 
1051 // args: data (2-bit)
acamera_isp_top_isp_processing_fr_bypass_mode_write(uintptr_t base,uint8_t data)1052 static __inline void acamera_isp_top_isp_processing_fr_bypass_mode_write(uintptr_t base, uint8_t data) {
1053     uint32_t curr = system_sw_read_32(base + 0x18eccL);
1054     system_sw_write_32(base + 0x18eccL, (((uint32_t) (data & 0x3)) << 8) | (curr & 0xfffffcff));
1055 }
acamera_isp_top_isp_processing_fr_bypass_mode_read(uintptr_t base)1056 static __inline uint8_t acamera_isp_top_isp_processing_fr_bypass_mode_read(uintptr_t base) {
1057     return (uint8_t)((system_sw_read_32(base + 0x18eccL) & 0x300) >> 8);
1058 }
1059 // ------------------------------------------------------------------------------ //
1060 // Register: AE 5bin hist disable
1061 // ------------------------------------------------------------------------------ //
1062 
1063 // ------------------------------------------------------------------------------ //
1064 //
1065 //        0: AEXP 5-bin histogram enabled
1066 //        1: AEXP 5-bin histogram disabled
1067 //
1068 // ------------------------------------------------------------------------------ //
1069 
1070 #define ACAMERA_ISP_TOP_AE_5BIN_HIST_DISABLE_DEFAULT (0)
1071 #define ACAMERA_ISP_TOP_AE_5BIN_HIST_DISABLE_DATASIZE (1)
1072 #define ACAMERA_ISP_TOP_AE_5BIN_HIST_DISABLE_OFFSET (0x48)
1073 #define ACAMERA_ISP_TOP_AE_5BIN_HIST_DISABLE_MASK (0x1)
1074 
1075 // args: data (1-bit)
acamera_isp_top_ae_5bin_hist_disable_write(uintptr_t base,uint8_t data)1076 static __inline void acamera_isp_top_ae_5bin_hist_disable_write(uintptr_t base, uint8_t data) {
1077     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1078     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
1079 }
acamera_isp_top_ae_5bin_hist_disable_read(uintptr_t base)1080 static __inline uint8_t acamera_isp_top_ae_5bin_hist_disable_read(uintptr_t base) {
1081     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x1) >> 0);
1082 }
1083 // ------------------------------------------------------------------------------ //
1084 // Register: AE switch
1085 // ------------------------------------------------------------------------------ //
1086 
1087 // ------------------------------------------------------------------------------ //
1088 // AE 5bin histogram tap in the pipeline.  Location of AE statistic collection.
1089 // ------------------------------------------------------------------------------ //
1090 
1091 #define ACAMERA_ISP_TOP_AE_SWITCH_DEFAULT (0)
1092 #define ACAMERA_ISP_TOP_AE_SWITCH_DATASIZE (2)
1093 #define ACAMERA_ISP_TOP_AE_SWITCH_OFFSET (0x48)
1094 #define ACAMERA_ISP_TOP_AE_SWITCH_MASK (0x6)
1095 #define ACAMERA_ISP_TOP_AE_SWITCH_AFTER_STATIC_WHITE_BALANCE_WHOSE_POSITION_IS_SELECTED_BY_AEXP_SRC_SIGNAL (0)
1096 #define ACAMERA_ISP_TOP_AE_SWITCH_AFTER_WDR_FRAME_STITCH_IF_ITS_SENSOR_COMPANDED_DATA_THEN_USE_DECOMPANDED_OUTPUT_IF_ITS_SENSOR_LINEARISED_DATA_THEN_USE_IT_DIRECTLY (1)
1097 #define ACAMERA_ISP_TOP_AE_SWITCH_AFTER_VTPG (2)
1098 #define ACAMERA_ISP_TOP_AE_SWITCH_RESERVED (3)
1099 
1100 // args: data (2-bit)
acamera_isp_top_ae_switch_write(uintptr_t base,uint8_t data)1101 static __inline void acamera_isp_top_ae_switch_write(uintptr_t base, uint8_t data) {
1102     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1103     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x3)) << 1) | (curr & 0xfffffff9));
1104 }
acamera_isp_top_ae_switch_read(uintptr_t base)1105 static __inline uint8_t acamera_isp_top_ae_switch_read(uintptr_t base) {
1106     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x6) >> 1);
1107 }
1108 // ------------------------------------------------------------------------------ //
1109 // Register: AF disable
1110 // ------------------------------------------------------------------------------ //
1111 
1112 // ------------------------------------------------------------------------------ //
1113 //
1114 //        0: AF enabled
1115 //        1: AF disabled
1116 //
1117 // ------------------------------------------------------------------------------ //
1118 
1119 #define ACAMERA_ISP_TOP_AF_DISABLE_DEFAULT (0)
1120 #define ACAMERA_ISP_TOP_AF_DISABLE_DATASIZE (1)
1121 #define ACAMERA_ISP_TOP_AF_DISABLE_OFFSET (0x48)
1122 #define ACAMERA_ISP_TOP_AF_DISABLE_MASK (0x10)
1123 
1124 // args: data (1-bit)
acamera_isp_top_af_disable_write(uintptr_t base,uint8_t data)1125 static __inline void acamera_isp_top_af_disable_write(uintptr_t base, uint8_t data) {
1126     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1127     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
1128 }
acamera_isp_top_af_disable_read(uintptr_t base)1129 static __inline uint8_t acamera_isp_top_af_disable_read(uintptr_t base) {
1130     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x10) >> 4);
1131 }
1132 // ------------------------------------------------------------------------------ //
1133 // Register: AF switch
1134 // ------------------------------------------------------------------------------ //
1135 
1136 // ------------------------------------------------------------------------------ //
1137 // AF tap in the pipeline.  .
1138 // ------------------------------------------------------------------------------ //
1139 
1140 #define ACAMERA_ISP_TOP_AF_SWITCH_DEFAULT (0)
1141 #define ACAMERA_ISP_TOP_AF_SWITCH_DATASIZE (1)
1142 #define ACAMERA_ISP_TOP_AF_SWITCH_OFFSET (0x48)
1143 #define ACAMERA_ISP_TOP_AF_SWITCH_MASK (0x20)
1144 #define ACAMERA_ISP_TOP_AF_SWITCH_AFTER_SINTER (0)
1145 #define ACAMERA_ISP_TOP_AF_SWITCH_BEFORE_SINTER (1)
1146 
1147 // args: data (1-bit)
acamera_isp_top_af_switch_write(uintptr_t base,uint8_t data)1148 static __inline void acamera_isp_top_af_switch_write(uintptr_t base, uint8_t data) {
1149     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1150     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x1)) << 5) | (curr & 0xffffffdf));
1151 }
acamera_isp_top_af_switch_read(uintptr_t base)1152 static __inline uint8_t acamera_isp_top_af_switch_read(uintptr_t base) {
1153     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x20) >> 5);
1154 }
1155 // ------------------------------------------------------------------------------ //
1156 // Register: AWB disable
1157 // ------------------------------------------------------------------------------ //
1158 
1159 // ------------------------------------------------------------------------------ //
1160 //
1161 //        0: AWB enabled
1162 //        1: AWB disabled
1163 //
1164 // ------------------------------------------------------------------------------ //
1165 
1166 #define ACAMERA_ISP_TOP_AWB_DISABLE_DEFAULT (0)
1167 #define ACAMERA_ISP_TOP_AWB_DISABLE_DATASIZE (1)
1168 #define ACAMERA_ISP_TOP_AWB_DISABLE_OFFSET (0x48)
1169 #define ACAMERA_ISP_TOP_AWB_DISABLE_MASK (0x100)
1170 
1171 // args: data (1-bit)
acamera_isp_top_awb_disable_write(uintptr_t base,uint8_t data)1172 static __inline void acamera_isp_top_awb_disable_write(uintptr_t base, uint8_t data) {
1173     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1174     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x1)) << 8) | (curr & 0xfffffeff));
1175 }
acamera_isp_top_awb_disable_read(uintptr_t base)1176 static __inline uint8_t acamera_isp_top_awb_disable_read(uintptr_t base) {
1177     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x100) >> 8);
1178 }
1179 // ------------------------------------------------------------------------------ //
1180 // Register: AWB switch
1181 // ------------------------------------------------------------------------------ //
1182 
1183 // ------------------------------------------------------------------------------ //
1184 // AWB tap in the pipeline.  Location of AWB statistics collection.
1185 // ------------------------------------------------------------------------------ //
1186 
1187 #define ACAMERA_ISP_TOP_AWB_SWITCH_DEFAULT (0)
1188 #define ACAMERA_ISP_TOP_AWB_SWITCH_DATASIZE (1)
1189 #define ACAMERA_ISP_TOP_AWB_SWITCH_OFFSET (0x48)
1190 #define ACAMERA_ISP_TOP_AWB_SWITCH_MASK (0x200)
1191 #define ACAMERA_ISP_TOP_AWB_SWITCH_IMMEDIATELY_AFTER_DEMOSAIC (0)
1192 #define ACAMERA_ISP_TOP_AWB_SWITCH_IMMEDIATELY_AFTER_CNR (1)
1193 
1194 // args: data (1-bit)
acamera_isp_top_awb_switch_write(uintptr_t base,uint8_t data)1195 static __inline void acamera_isp_top_awb_switch_write(uintptr_t base, uint8_t data) {
1196     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1197     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x1)) << 9) | (curr & 0xfffffdff));
1198 }
acamera_isp_top_awb_switch_read(uintptr_t base)1199 static __inline uint8_t acamera_isp_top_awb_switch_read(uintptr_t base) {
1200     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x200) >> 9);
1201 }
1202 // ------------------------------------------------------------------------------ //
1203 // Register: AEXP hist disable
1204 // ------------------------------------------------------------------------------ //
1205 
1206 // ------------------------------------------------------------------------------ //
1207 //
1208 //        0: AEXP 1024-bin histogram enabled
1209 //        1: AEXP 1024-bin histogram disabled
1210 //
1211 // ------------------------------------------------------------------------------ //
1212 
1213 #define ACAMERA_ISP_TOP_AEXP_HIST_DISABLE_DEFAULT (0)
1214 #define ACAMERA_ISP_TOP_AEXP_HIST_DISABLE_DATASIZE (1)
1215 #define ACAMERA_ISP_TOP_AEXP_HIST_DISABLE_OFFSET (0x48)
1216 #define ACAMERA_ISP_TOP_AEXP_HIST_DISABLE_MASK (0x1000)
1217 
1218 // args: data (1-bit)
acamera_isp_top_aexp_hist_disable_write(uintptr_t base,uint8_t data)1219 static __inline void acamera_isp_top_aexp_hist_disable_write(uintptr_t base, uint8_t data) {
1220     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1221     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x1)) << 12) | (curr & 0xffffefff));
1222 }
acamera_isp_top_aexp_hist_disable_read(uintptr_t base)1223 static __inline uint8_t acamera_isp_top_aexp_hist_disable_read(uintptr_t base) {
1224     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x1000) >> 12);
1225 }
1226 // ------------------------------------------------------------------------------ //
1227 // Register: AEXP Histogram switch
1228 // ------------------------------------------------------------------------------ //
1229 
1230 // ------------------------------------------------------------------------------ //
1231 // AE global histogram tap in the pipeline.  Location of statistics gathering for 1024 bin global histogram
1232 // ------------------------------------------------------------------------------ //
1233 
1234 #define ACAMERA_ISP_TOP_AEXP_HISTOGRAM_SWITCH_DEFAULT (0)
1235 #define ACAMERA_ISP_TOP_AEXP_HISTOGRAM_SWITCH_DATASIZE (2)
1236 #define ACAMERA_ISP_TOP_AEXP_HISTOGRAM_SWITCH_OFFSET (0x48)
1237 #define ACAMERA_ISP_TOP_AEXP_HISTOGRAM_SWITCH_MASK (0x6000)
1238 #define ACAMERA_ISP_TOP_AEXP_HISTOGRAM_SWITCH_AFTER_STATIC_WHITE_BALANCE_WHOSE_POSITION_IS_SELECTED_BY_AEXP_SRC_SIGNAL (0)
1239 #define ACAMERA_ISP_TOP_AEXP_HISTOGRAM_SWITCH_AFTER_WDR_FRAME_STITCH_IF_ITS_SENSOR_COMPANDED_DATA_THEN_USE_DECOMPANDED_OUTPUT_IF_ITS_SENSOR_LINEARISED_DATA_THEN_USE_IT_DIRECTLY (1)
1240 #define ACAMERA_ISP_TOP_AEXP_HISTOGRAM_SWITCH_AFTER_VTPG (2)
1241 #define ACAMERA_ISP_TOP_AEXP_HISTOGRAM_SWITCH_RESERVED (3)
1242 
1243 // args: data (2-bit)
acamera_isp_top_aexp_histogram_switch_write(uintptr_t base,uint8_t data)1244 static __inline void acamera_isp_top_aexp_histogram_switch_write(uintptr_t base, uint8_t data) {
1245     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1246     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x3)) << 13) | (curr & 0xffff9fff));
1247 }
acamera_isp_top_aexp_histogram_switch_read(uintptr_t base)1248 static __inline uint8_t acamera_isp_top_aexp_histogram_switch_read(uintptr_t base) {
1249     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x6000) >> 13);
1250 }
1251 // ------------------------------------------------------------------------------ //
1252 // Register: iHist disable
1253 // ------------------------------------------------------------------------------ //
1254 
1255 // ------------------------------------------------------------------------------ //
1256 // Post iridix histogram enable.  Enables statistics gathering for global histogram
1257 // ------------------------------------------------------------------------------ //
1258 
1259 #define ACAMERA_ISP_TOP_IHIST_DISABLE_DEFAULT (1)
1260 #define ACAMERA_ISP_TOP_IHIST_DISABLE_DATASIZE (1)
1261 #define ACAMERA_ISP_TOP_IHIST_DISABLE_OFFSET (0x48)
1262 #define ACAMERA_ISP_TOP_IHIST_DISABLE_MASK (0x10000)
1263 #define ACAMERA_ISP_TOP_IHIST_DISABLE_ENABLED (0)
1264 #define ACAMERA_ISP_TOP_IHIST_DISABLE_DISABLED (1)
1265 
1266 // args: data (1-bit)
acamera_isp_top_ihist_disable_write(uintptr_t base,uint8_t data)1267 static __inline void acamera_isp_top_ihist_disable_write(uintptr_t base, uint8_t data) {
1268     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1269     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x1)) << 16) | (curr & 0xfffeffff));
1270 }
acamera_isp_top_ihist_disable_read(uintptr_t base)1271 static __inline uint8_t acamera_isp_top_ihist_disable_read(uintptr_t base) {
1272     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x10000) >> 16);
1273 }
1274 // ------------------------------------------------------------------------------ //
1275 // Register: Lumavar Disable
1276 // ------------------------------------------------------------------------------ //
1277 
1278 #define ACAMERA_ISP_TOP_LUMAVAR_DISABLE_DEFAULT (0)
1279 #define ACAMERA_ISP_TOP_LUMAVAR_DISABLE_DATASIZE (1)
1280 #define ACAMERA_ISP_TOP_LUMAVAR_DISABLE_OFFSET (0x48)
1281 #define ACAMERA_ISP_TOP_LUMAVAR_DISABLE_MASK (0x40000)
1282 #define ACAMERA_ISP_TOP_LUMAVAR_DISABLE_ENABLED (0)
1283 #define ACAMERA_ISP_TOP_LUMAVAR_DISABLE_DISABLED (1)
1284 
1285 // args: data (1-bit)
acamera_isp_top_lumavar_disable_write(uintptr_t base,uint8_t data)1286 static __inline void acamera_isp_top_lumavar_disable_write(uintptr_t base, uint8_t data) {
1287     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1288     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x1)) << 18) | (curr & 0xfffbffff));
1289 }
acamera_isp_top_lumavar_disable_read(uintptr_t base)1290 static __inline uint8_t acamera_isp_top_lumavar_disable_read(uintptr_t base) {
1291     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x40000) >> 18);
1292 }
1293 // ------------------------------------------------------------------------------ //
1294 // Register: Lumavar switch
1295 // ------------------------------------------------------------------------------ //
1296 
1297 // ------------------------------------------------------------------------------ //
1298 // Luma variance tap in the pipeline.
1299 // ------------------------------------------------------------------------------ //
1300 
1301 #define ACAMERA_ISP_TOP_LUMAVAR_SWITCH_DEFAULT (0)
1302 #define ACAMERA_ISP_TOP_LUMAVAR_SWITCH_DATASIZE (1)
1303 #define ACAMERA_ISP_TOP_LUMAVAR_SWITCH_OFFSET (0x48)
1304 #define ACAMERA_ISP_TOP_LUMAVAR_SWITCH_MASK (0x80000)
1305 #define ACAMERA_ISP_TOP_LUMAVAR_SWITCH_FULL_RESOLUTION_PIPELINE (0)
1306 #define ACAMERA_ISP_TOP_LUMAVAR_SWITCH_DOWNSCALED_PIPELINE (1)
1307 
1308 // args: data (1-bit)
acamera_isp_top_lumavar_switch_write(uintptr_t base,uint8_t data)1309 static __inline void acamera_isp_top_lumavar_switch_write(uintptr_t base, uint8_t data) {
1310     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1311     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x1)) << 19) | (curr & 0xfff7ffff));
1312 }
acamera_isp_top_lumavar_switch_read(uintptr_t base)1313 static __inline uint8_t acamera_isp_top_lumavar_switch_read(uintptr_t base) {
1314     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x80000) >> 19);
1315 }
1316 // ------------------------------------------------------------------------------ //
1317 // Register: aexp_src
1318 // ------------------------------------------------------------------------------ //
1319 
1320 // ------------------------------------------------------------------------------ //
1321 //
1322 //
1323 // ------------------------------------------------------------------------------ //
1324 
1325 #define ACAMERA_ISP_TOP_AEXP_SRC_DEFAULT (0)
1326 #define ACAMERA_ISP_TOP_AEXP_SRC_DATASIZE (1)
1327 #define ACAMERA_ISP_TOP_AEXP_SRC_OFFSET (0x48)
1328 #define ACAMERA_ISP_TOP_AEXP_SRC_MASK (0x1000000)
1329 #define ACAMERA_ISP_TOP_AEXP_SRC_AFTER_STATIC_WHITE_BALANCE_WHEN_APPLIED_BEFORE_SHADING (0)
1330 #define ACAMERA_ISP_TOP_AEXP_SRC_AFTER_STATIC_WHITE_BALANCE_WHEN_APPLIED_AFTER_SHADING (1)
1331 
1332 // args: data (1-bit)
acamera_isp_top_aexp_src_write(uintptr_t base,uint8_t data)1333 static __inline void acamera_isp_top_aexp_src_write(uintptr_t base, uint8_t data) {
1334     uint32_t curr = system_sw_read_32(base + 0x18ed0L);
1335     system_sw_write_32(base + 0x18ed0L, (((uint32_t) (data & 0x1)) << 24) | (curr & 0xfeffffff));
1336 }
acamera_isp_top_aexp_src_read(uintptr_t base)1337 static __inline uint8_t acamera_isp_top_aexp_src_read(uintptr_t base) {
1338     return (uint8_t)((system_sw_read_32(base + 0x18ed0L) & 0x1000000) >> 24);
1339 }
1340 // ------------------------------------------------------------------------------ //
1341 // Group: crossbar
1342 // ------------------------------------------------------------------------------ //
1343 
1344 // ------------------------------------------------------------------------------ //
1345 // Register: channel1_select
1346 // ------------------------------------------------------------------------------ //
1347 
1348 // ------------------------------------------------------------------------------ //
1349 // channel0 selection from the input 4 channels
1350 // ------------------------------------------------------------------------------ //
1351 
1352 #define ACAMERA_ISP_CROSSBAR_CHANNEL1_SELECT_DEFAULT (0x0)
1353 #define ACAMERA_ISP_CROSSBAR_CHANNEL1_SELECT_DATASIZE (2)
1354 #define ACAMERA_ISP_CROSSBAR_CHANNEL1_SELECT_OFFSET (0x4c)
1355 #define ACAMERA_ISP_CROSSBAR_CHANNEL1_SELECT_MASK (0x3)
1356 
1357 // args: data (2-bit)
acamera_isp_crossbar_channel1_select_write(uintptr_t base,uint8_t data)1358 static __inline void acamera_isp_crossbar_channel1_select_write(uintptr_t base, uint8_t data) {
1359     uint32_t curr = system_sw_read_32(base + 0x18ed4L);
1360     system_sw_write_32(base + 0x18ed4L, (((uint32_t) (data & 0x3)) << 0) | (curr & 0xfffffffc));
1361 }
acamera_isp_crossbar_channel1_select_read(uintptr_t base)1362 static __inline uint8_t acamera_isp_crossbar_channel1_select_read(uintptr_t base) {
1363     return (uint8_t)((system_sw_read_32(base + 0x18ed4L) & 0x3) >> 0);
1364 }
1365 // ------------------------------------------------------------------------------ //
1366 // Register: channel2_select
1367 // ------------------------------------------------------------------------------ //
1368 
1369 // ------------------------------------------------------------------------------ //
1370 // channel1 selection from the input 4 channels
1371 // ------------------------------------------------------------------------------ //
1372 
1373 #define ACAMERA_ISP_CROSSBAR_CHANNEL2_SELECT_DEFAULT (0x1)
1374 #define ACAMERA_ISP_CROSSBAR_CHANNEL2_SELECT_DATASIZE (2)
1375 #define ACAMERA_ISP_CROSSBAR_CHANNEL2_SELECT_OFFSET (0x4c)
1376 #define ACAMERA_ISP_CROSSBAR_CHANNEL2_SELECT_MASK (0x300)
1377 
1378 // args: data (2-bit)
acamera_isp_crossbar_channel2_select_write(uintptr_t base,uint8_t data)1379 static __inline void acamera_isp_crossbar_channel2_select_write(uintptr_t base, uint8_t data) {
1380     uint32_t curr = system_sw_read_32(base + 0x18ed4L);
1381     system_sw_write_32(base + 0x18ed4L, (((uint32_t) (data & 0x3)) << 8) | (curr & 0xfffffcff));
1382 }
acamera_isp_crossbar_channel2_select_read(uintptr_t base)1383 static __inline uint8_t acamera_isp_crossbar_channel2_select_read(uintptr_t base) {
1384     return (uint8_t)((system_sw_read_32(base + 0x18ed4L) & 0x300) >> 8);
1385 }
1386 // ------------------------------------------------------------------------------ //
1387 // Register: channel3_select
1388 // ------------------------------------------------------------------------------ //
1389 
1390 // ------------------------------------------------------------------------------ //
1391 // channel2 selection from the input 4 channels
1392 // ------------------------------------------------------------------------------ //
1393 
1394 #define ACAMERA_ISP_CROSSBAR_CHANNEL3_SELECT_DEFAULT (0x2)
1395 #define ACAMERA_ISP_CROSSBAR_CHANNEL3_SELECT_DATASIZE (2)
1396 #define ACAMERA_ISP_CROSSBAR_CHANNEL3_SELECT_OFFSET (0x4c)
1397 #define ACAMERA_ISP_CROSSBAR_CHANNEL3_SELECT_MASK (0x30000)
1398 
1399 // args: data (2-bit)
acamera_isp_crossbar_channel3_select_write(uintptr_t base,uint8_t data)1400 static __inline void acamera_isp_crossbar_channel3_select_write(uintptr_t base, uint8_t data) {
1401     uint32_t curr = system_sw_read_32(base + 0x18ed4L);
1402     system_sw_write_32(base + 0x18ed4L, (((uint32_t) (data & 0x3)) << 16) | (curr & 0xfffcffff));
1403 }
acamera_isp_crossbar_channel3_select_read(uintptr_t base)1404 static __inline uint8_t acamera_isp_crossbar_channel3_select_read(uintptr_t base) {
1405     return (uint8_t)((system_sw_read_32(base + 0x18ed4L) & 0x30000) >> 16);
1406 }
1407 // ------------------------------------------------------------------------------ //
1408 // Register: channel4_select
1409 // ------------------------------------------------------------------------------ //
1410 
1411 // ------------------------------------------------------------------------------ //
1412 // channel4 selection from the input 4 channels
1413 // ------------------------------------------------------------------------------ //
1414 
1415 #define ACAMERA_ISP_CROSSBAR_CHANNEL4_SELECT_DEFAULT (0x3)
1416 #define ACAMERA_ISP_CROSSBAR_CHANNEL4_SELECT_DATASIZE (2)
1417 #define ACAMERA_ISP_CROSSBAR_CHANNEL4_SELECT_OFFSET (0x4c)
1418 #define ACAMERA_ISP_CROSSBAR_CHANNEL4_SELECT_MASK (0x3000000)
1419 
1420 // args: data (2-bit)
acamera_isp_crossbar_channel4_select_write(uintptr_t base,uint8_t data)1421 static __inline void acamera_isp_crossbar_channel4_select_write(uintptr_t base, uint8_t data) {
1422     uint32_t curr = system_sw_read_32(base + 0x18ed4L);
1423     system_sw_write_32(base + 0x18ed4L, (((uint32_t) (data & 0x3)) << 24) | (curr & 0xfcffffff));
1424 }
acamera_isp_crossbar_channel4_select_read(uintptr_t base)1425 static __inline uint8_t acamera_isp_crossbar_channel4_select_read(uintptr_t base) {
1426     return (uint8_t)((system_sw_read_32(base + 0x18ed4L) & 0x3000000) >> 24);
1427 }
1428 // ------------------------------------------------------------------------------ //
1429 // Group: video test gen ch0
1430 // ------------------------------------------------------------------------------ //
1431 
1432 // ------------------------------------------------------------------------------ //
1433 // Video test generator controls.  See ISP Guide for further details
1434 // ------------------------------------------------------------------------------ //
1435 
1436 // ------------------------------------------------------------------------------ //
1437 // Register: test_pattern_off on
1438 // ------------------------------------------------------------------------------ //
1439 
1440 // ------------------------------------------------------------------------------ //
1441 // Test pattern off-on: 0=off, 1=on
1442 // ------------------------------------------------------------------------------ //
1443 
1444 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_TEST_PATTERN_OFF_ON_DEFAULT (0)
1445 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_TEST_PATTERN_OFF_ON_DATASIZE (1)
1446 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_TEST_PATTERN_OFF_ON_OFFSET (0x50)
1447 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_TEST_PATTERN_OFF_ON_MASK (0x1)
1448 
1449 // args: data (1-bit)
acamera_isp_video_test_gen_ch0_test_pattern_off_on_write(uintptr_t base,uint8_t data)1450 static __inline void acamera_isp_video_test_gen_ch0_test_pattern_off_on_write(uintptr_t base, uint8_t data) {
1451     uint32_t curr = system_sw_read_32(base + 0x18ed8L);
1452     system_sw_write_32(base + 0x18ed8L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
1453 }
acamera_isp_video_test_gen_ch0_test_pattern_off_on_read(uintptr_t base)1454 static __inline uint8_t acamera_isp_video_test_gen_ch0_test_pattern_off_on_read(uintptr_t base) {
1455     return (uint8_t)((system_sw_read_32(base + 0x18ed8L) & 0x1) >> 0);
1456 }
1457 // ------------------------------------------------------------------------------ //
1458 // Register: bayer_rgb_i sel
1459 // ------------------------------------------------------------------------------ //
1460 
1461 // ------------------------------------------------------------------------------ //
1462 // Bayer or rgb select for input video: 0=bayer, 1=rgb
1463 // ------------------------------------------------------------------------------ //
1464 
1465 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_BAYER_RGB_I_SEL_DEFAULT (0)
1466 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_BAYER_RGB_I_SEL_DATASIZE (1)
1467 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_BAYER_RGB_I_SEL_OFFSET (0x50)
1468 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_BAYER_RGB_I_SEL_MASK (0x2)
1469 
1470 // args: data (1-bit)
acamera_isp_video_test_gen_ch0_bayer_rgb_i_sel_write(uintptr_t base,uint8_t data)1471 static __inline void acamera_isp_video_test_gen_ch0_bayer_rgb_i_sel_write(uintptr_t base, uint8_t data) {
1472     uint32_t curr = system_sw_read_32(base + 0x18ed8L);
1473     system_sw_write_32(base + 0x18ed8L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
1474 }
acamera_isp_video_test_gen_ch0_bayer_rgb_i_sel_read(uintptr_t base)1475 static __inline uint8_t acamera_isp_video_test_gen_ch0_bayer_rgb_i_sel_read(uintptr_t base) {
1476     return (uint8_t)((system_sw_read_32(base + 0x18ed8L) & 0x2) >> 1);
1477 }
1478 // ------------------------------------------------------------------------------ //
1479 // Register: bayer_rgb_o sel
1480 // ------------------------------------------------------------------------------ //
1481 
1482 // ------------------------------------------------------------------------------ //
1483 // Bayer or rgb select for output video: 0=bayer, 1=rgb
1484 // ------------------------------------------------------------------------------ //
1485 
1486 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_BAYER_RGB_O_SEL_DEFAULT (0)
1487 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_BAYER_RGB_O_SEL_DATASIZE (1)
1488 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_BAYER_RGB_O_SEL_OFFSET (0x50)
1489 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_BAYER_RGB_O_SEL_MASK (0x4)
1490 
1491 // args: data (1-bit)
acamera_isp_video_test_gen_ch0_bayer_rgb_o_sel_write(uintptr_t base,uint8_t data)1492 static __inline void acamera_isp_video_test_gen_ch0_bayer_rgb_o_sel_write(uintptr_t base, uint8_t data) {
1493     uint32_t curr = system_sw_read_32(base + 0x18ed8L);
1494     system_sw_write_32(base + 0x18ed8L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
1495 }
acamera_isp_video_test_gen_ch0_bayer_rgb_o_sel_read(uintptr_t base)1496 static __inline uint8_t acamera_isp_video_test_gen_ch0_bayer_rgb_o_sel_read(uintptr_t base) {
1497     return (uint8_t)((system_sw_read_32(base + 0x18ed8L) & 0x4) >> 2);
1498 }
1499 // ------------------------------------------------------------------------------ //
1500 // Register: Generate mode
1501 // ------------------------------------------------------------------------------ //
1502 
1503 // ------------------------------------------------------------------------------ //
1504 // 0 = One Shot (on request) generation. 1 = free run (continuous) generation
1505 // ------------------------------------------------------------------------------ //
1506 
1507 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_GENERATE_MODE_DEFAULT (0)
1508 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_GENERATE_MODE_DATASIZE (1)
1509 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_GENERATE_MODE_OFFSET (0x50)
1510 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_GENERATE_MODE_MASK (0x8)
1511 
1512 // args: data (1-bit)
acamera_isp_video_test_gen_ch0_generate_mode_write(uintptr_t base,uint8_t data)1513 static __inline void acamera_isp_video_test_gen_ch0_generate_mode_write(uintptr_t base, uint8_t data) {
1514     uint32_t curr = system_sw_read_32(base + 0x18ed8L);
1515     system_sw_write_32(base + 0x18ed8L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
1516 }
acamera_isp_video_test_gen_ch0_generate_mode_read(uintptr_t base)1517 static __inline uint8_t acamera_isp_video_test_gen_ch0_generate_mode_read(uintptr_t base) {
1518     return (uint8_t)((system_sw_read_32(base + 0x18ed8L) & 0x8) >> 3);
1519 }
1520 // ------------------------------------------------------------------------------ //
1521 // Register: Video source
1522 // ------------------------------------------------------------------------------ //
1523 
1524 // ------------------------------------------------------------------------------ //
1525 // 0 = Video in interface 1 = Internal Video generation
1526 // ------------------------------------------------------------------------------ //
1527 
1528 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_VIDEO_SOURCE_DEFAULT (0)
1529 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_VIDEO_SOURCE_DATASIZE (1)
1530 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_VIDEO_SOURCE_OFFSET (0x50)
1531 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_VIDEO_SOURCE_MASK (0x10)
1532 
1533 // args: data (1-bit)
acamera_isp_video_test_gen_ch0_video_source_write(uintptr_t base,uint8_t data)1534 static __inline void acamera_isp_video_test_gen_ch0_video_source_write(uintptr_t base, uint8_t data) {
1535     uint32_t curr = system_sw_read_32(base + 0x18ed8L);
1536     system_sw_write_32(base + 0x18ed8L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
1537 }
acamera_isp_video_test_gen_ch0_video_source_read(uintptr_t base)1538 static __inline uint8_t acamera_isp_video_test_gen_ch0_video_source_read(uintptr_t base) {
1539     return (uint8_t)((system_sw_read_32(base + 0x18ed8L) & 0x10) >> 4);
1540 }
1541 // ------------------------------------------------------------------------------ //
1542 // Register: pattern type
1543 // ------------------------------------------------------------------------------ //
1544 
1545 // ------------------------------------------------------------------------------ //
1546 // Pattern type select: 0=Flat field,1=Horizontal gradient,2=Vertical Gradient,3=Vertical Bars,4=Rectangle,5-255=Default white frame on black
1547 // ------------------------------------------------------------------------------ //
1548 
1549 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_PATTERN_TYPE_DEFAULT (0x03)
1550 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_PATTERN_TYPE_DATASIZE (8)
1551 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_PATTERN_TYPE_OFFSET (0x54)
1552 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_PATTERN_TYPE_MASK (0xff)
1553 
1554 // args: data (8-bit)
acamera_isp_video_test_gen_ch0_pattern_type_write(uintptr_t base,uint8_t data)1555 static __inline void acamera_isp_video_test_gen_ch0_pattern_type_write(uintptr_t base, uint8_t data) {
1556     uint32_t curr = system_sw_read_32(base + 0x18edcL);
1557     system_sw_write_32(base + 0x18edcL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
1558 }
acamera_isp_video_test_gen_ch0_pattern_type_read(uintptr_t base)1559 static __inline uint8_t acamera_isp_video_test_gen_ch0_pattern_type_read(uintptr_t base) {
1560     return (uint8_t)((system_sw_read_32(base + 0x18edcL) & 0xff) >> 0);
1561 }
1562 // ------------------------------------------------------------------------------ //
1563 // Register: r backgnd
1564 // ------------------------------------------------------------------------------ //
1565 
1566 // ------------------------------------------------------------------------------ //
1567 // Red background  value 16bit, MSB aligned to used width
1568 // ------------------------------------------------------------------------------ //
1569 
1570 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_R_BACKGND_DEFAULT (0xFFFF)
1571 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_R_BACKGND_DATASIZE (20)
1572 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_R_BACKGND_OFFSET (0x58)
1573 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_R_BACKGND_MASK (0xfffff)
1574 
1575 // args: data (20-bit)
acamera_isp_video_test_gen_ch0_r_backgnd_write(uintptr_t base,uint32_t data)1576 static __inline void acamera_isp_video_test_gen_ch0_r_backgnd_write(uintptr_t base, uint32_t data) {
1577     uint32_t curr = system_sw_read_32(base + 0x18ee0L);
1578     system_sw_write_32(base + 0x18ee0L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
1579 }
acamera_isp_video_test_gen_ch0_r_backgnd_read(uintptr_t base)1580 static __inline uint32_t acamera_isp_video_test_gen_ch0_r_backgnd_read(uintptr_t base) {
1581     return (uint32_t)((system_sw_read_32(base + 0x18ee0L) & 0xfffff) >> 0);
1582 }
1583 // ------------------------------------------------------------------------------ //
1584 // Register: g backgnd
1585 // ------------------------------------------------------------------------------ //
1586 
1587 // ------------------------------------------------------------------------------ //
1588 // Green background value 16bit, MSB aligned to used width
1589 // ------------------------------------------------------------------------------ //
1590 
1591 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_G_BACKGND_DEFAULT (0xFFFF)
1592 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_G_BACKGND_DATASIZE (20)
1593 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_G_BACKGND_OFFSET (0x5c)
1594 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_G_BACKGND_MASK (0xfffff)
1595 
1596 // args: data (20-bit)
acamera_isp_video_test_gen_ch0_g_backgnd_write(uintptr_t base,uint32_t data)1597 static __inline void acamera_isp_video_test_gen_ch0_g_backgnd_write(uintptr_t base, uint32_t data) {
1598     uint32_t curr = system_sw_read_32(base + 0x18ee4L);
1599     system_sw_write_32(base + 0x18ee4L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
1600 }
acamera_isp_video_test_gen_ch0_g_backgnd_read(uintptr_t base)1601 static __inline uint32_t acamera_isp_video_test_gen_ch0_g_backgnd_read(uintptr_t base) {
1602     return (uint32_t)((system_sw_read_32(base + 0x18ee4L) & 0xfffff) >> 0);
1603 }
1604 // ------------------------------------------------------------------------------ //
1605 // Register: b backgnd
1606 // ------------------------------------------------------------------------------ //
1607 
1608 // ------------------------------------------------------------------------------ //
1609 // Blue background value 16bit, MSB aligned to used width
1610 // ------------------------------------------------------------------------------ //
1611 
1612 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_B_BACKGND_DEFAULT (0xFFFF)
1613 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_B_BACKGND_DATASIZE (20)
1614 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_B_BACKGND_OFFSET (0x60)
1615 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_B_BACKGND_MASK (0xfffff)
1616 
1617 // args: data (20-bit)
acamera_isp_video_test_gen_ch0_b_backgnd_write(uintptr_t base,uint32_t data)1618 static __inline void acamera_isp_video_test_gen_ch0_b_backgnd_write(uintptr_t base, uint32_t data) {
1619     uint32_t curr = system_sw_read_32(base + 0x18ee8L);
1620     system_sw_write_32(base + 0x18ee8L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
1621 }
acamera_isp_video_test_gen_ch0_b_backgnd_read(uintptr_t base)1622 static __inline uint32_t acamera_isp_video_test_gen_ch0_b_backgnd_read(uintptr_t base) {
1623     return (uint32_t)((system_sw_read_32(base + 0x18ee8L) & 0xfffff) >> 0);
1624 }
1625 // ------------------------------------------------------------------------------ //
1626 // Register: r foregnd
1627 // ------------------------------------------------------------------------------ //
1628 
1629 // ------------------------------------------------------------------------------ //
1630 // Red foreground  value 16bit, MSB aligned to used width
1631 // ------------------------------------------------------------------------------ //
1632 
1633 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_R_FOREGND_DEFAULT (0x8FFF)
1634 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_R_FOREGND_DATASIZE (20)
1635 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_R_FOREGND_OFFSET (0x64)
1636 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_R_FOREGND_MASK (0xfffff)
1637 
1638 // args: data (20-bit)
acamera_isp_video_test_gen_ch0_r_foregnd_write(uintptr_t base,uint32_t data)1639 static __inline void acamera_isp_video_test_gen_ch0_r_foregnd_write(uintptr_t base, uint32_t data) {
1640     uint32_t curr = system_sw_read_32(base + 0x18eecL);
1641     system_sw_write_32(base + 0x18eecL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
1642 }
acamera_isp_video_test_gen_ch0_r_foregnd_read(uintptr_t base)1643 static __inline uint32_t acamera_isp_video_test_gen_ch0_r_foregnd_read(uintptr_t base) {
1644     return (uint32_t)((system_sw_read_32(base + 0x18eecL) & 0xfffff) >> 0);
1645 }
1646 // ------------------------------------------------------------------------------ //
1647 // Register: g foregnd
1648 // ------------------------------------------------------------------------------ //
1649 
1650 // ------------------------------------------------------------------------------ //
1651 // Green foreground value 16bit, MSB aligned to used width
1652 // ------------------------------------------------------------------------------ //
1653 
1654 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_G_FOREGND_DEFAULT (0x8FFF)
1655 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_G_FOREGND_DATASIZE (20)
1656 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_G_FOREGND_OFFSET (0x68)
1657 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_G_FOREGND_MASK (0xfffff)
1658 
1659 // args: data (20-bit)
acamera_isp_video_test_gen_ch0_g_foregnd_write(uintptr_t base,uint32_t data)1660 static __inline void acamera_isp_video_test_gen_ch0_g_foregnd_write(uintptr_t base, uint32_t data) {
1661     uint32_t curr = system_sw_read_32(base + 0x18ef0L);
1662     system_sw_write_32(base + 0x18ef0L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
1663 }
acamera_isp_video_test_gen_ch0_g_foregnd_read(uintptr_t base)1664 static __inline uint32_t acamera_isp_video_test_gen_ch0_g_foregnd_read(uintptr_t base) {
1665     return (uint32_t)((system_sw_read_32(base + 0x18ef0L) & 0xfffff) >> 0);
1666 }
1667 // ------------------------------------------------------------------------------ //
1668 // Register: b foregnd
1669 // ------------------------------------------------------------------------------ //
1670 
1671 // ------------------------------------------------------------------------------ //
1672 // Blue foreground value 16bit, MSB aligned to used width
1673 // ------------------------------------------------------------------------------ //
1674 
1675 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_B_FOREGND_DEFAULT (0x8FFF)
1676 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_B_FOREGND_DATASIZE (20)
1677 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_B_FOREGND_OFFSET (0x6c)
1678 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_B_FOREGND_MASK (0xfffff)
1679 
1680 // args: data (20-bit)
acamera_isp_video_test_gen_ch0_b_foregnd_write(uintptr_t base,uint32_t data)1681 static __inline void acamera_isp_video_test_gen_ch0_b_foregnd_write(uintptr_t base, uint32_t data) {
1682     uint32_t curr = system_sw_read_32(base + 0x18ef4L);
1683     system_sw_write_32(base + 0x18ef4L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
1684 }
acamera_isp_video_test_gen_ch0_b_foregnd_read(uintptr_t base)1685 static __inline uint32_t acamera_isp_video_test_gen_ch0_b_foregnd_read(uintptr_t base) {
1686     return (uint32_t)((system_sw_read_32(base + 0x18ef4L) & 0xfffff) >> 0);
1687 }
1688 // ------------------------------------------------------------------------------ //
1689 // Register: rgb gradient
1690 // ------------------------------------------------------------------------------ //
1691 
1692 // ------------------------------------------------------------------------------ //
1693 // RGB gradient increment per pixel (0-15) for first channel
1694 // ------------------------------------------------------------------------------ //
1695 
1696 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RGB_GRADIENT_DEFAULT (0x3CAA)
1697 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RGB_GRADIENT_DATASIZE (16)
1698 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RGB_GRADIENT_OFFSET (0x70)
1699 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RGB_GRADIENT_MASK (0xffff)
1700 
1701 // args: data (16-bit)
acamera_isp_video_test_gen_ch0_rgb_gradient_write(uintptr_t base,uint16_t data)1702 static __inline void acamera_isp_video_test_gen_ch0_rgb_gradient_write(uintptr_t base, uint16_t data) {
1703     uint32_t curr = system_sw_read_32(base + 0x18ef8L);
1704     system_sw_write_32(base + 0x18ef8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
1705 }
acamera_isp_video_test_gen_ch0_rgb_gradient_read(uintptr_t base)1706 static __inline uint16_t acamera_isp_video_test_gen_ch0_rgb_gradient_read(uintptr_t base) {
1707     return (uint16_t)((system_sw_read_32(base + 0x18ef8L) & 0xffff) >> 0);
1708 }
1709 // ------------------------------------------------------------------------------ //
1710 // Register: rgb_gradient start
1711 // ------------------------------------------------------------------------------ //
1712 
1713 // ------------------------------------------------------------------------------ //
1714 // RGB gradient start value for first channel 16bit, MSB aligned to used width
1715 // ------------------------------------------------------------------------------ //
1716 
1717 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RGB_GRADIENT_START_DEFAULT (0x0000)
1718 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RGB_GRADIENT_START_DATASIZE (20)
1719 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RGB_GRADIENT_START_OFFSET (0x74)
1720 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RGB_GRADIENT_START_MASK (0xfffff)
1721 
1722 // args: data (20-bit)
acamera_isp_video_test_gen_ch0_rgb_gradient_start_write(uintptr_t base,uint32_t data)1723 static __inline void acamera_isp_video_test_gen_ch0_rgb_gradient_start_write(uintptr_t base, uint32_t data) {
1724     uint32_t curr = system_sw_read_32(base + 0x18efcL);
1725     system_sw_write_32(base + 0x18efcL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
1726 }
acamera_isp_video_test_gen_ch0_rgb_gradient_start_read(uintptr_t base)1727 static __inline uint32_t acamera_isp_video_test_gen_ch0_rgb_gradient_start_read(uintptr_t base) {
1728     return (uint32_t)((system_sw_read_32(base + 0x18efcL) & 0xfffff) >> 0);
1729 }
1730 // ------------------------------------------------------------------------------ //
1731 // Register: rect top
1732 // ------------------------------------------------------------------------------ //
1733 
1734 // ------------------------------------------------------------------------------ //
1735 //  Rectangle top line number 1-n
1736 // ------------------------------------------------------------------------------ //
1737 
1738 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_TOP_DEFAULT (0x0001)
1739 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_TOP_DATASIZE (14)
1740 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_TOP_OFFSET (0x78)
1741 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_TOP_MASK (0x3fff)
1742 
1743 // args: data (14-bit)
acamera_isp_video_test_gen_ch0_rect_top_write(uintptr_t base,uint16_t data)1744 static __inline void acamera_isp_video_test_gen_ch0_rect_top_write(uintptr_t base, uint16_t data) {
1745     uint32_t curr = system_sw_read_32(base + 0x18f00L);
1746     system_sw_write_32(base + 0x18f00L, (((uint32_t) (data & 0x3fff)) << 0) | (curr & 0xffffc000));
1747 }
acamera_isp_video_test_gen_ch0_rect_top_read(uintptr_t base)1748 static __inline uint16_t acamera_isp_video_test_gen_ch0_rect_top_read(uintptr_t base) {
1749     return (uint16_t)((system_sw_read_32(base + 0x18f00L) & 0x3fff) >> 0);
1750 }
1751 // ------------------------------------------------------------------------------ //
1752 // Register: rect bot
1753 // ------------------------------------------------------------------------------ //
1754 
1755 // ------------------------------------------------------------------------------ //
1756 //  Rectangle bottom line number 1-n
1757 // ------------------------------------------------------------------------------ //
1758 
1759 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_BOT_DEFAULT (0x0100)
1760 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_BOT_DATASIZE (14)
1761 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_BOT_OFFSET (0x78)
1762 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_BOT_MASK (0x3fff0000)
1763 
1764 // args: data (14-bit)
acamera_isp_video_test_gen_ch0_rect_bot_write(uintptr_t base,uint16_t data)1765 static __inline void acamera_isp_video_test_gen_ch0_rect_bot_write(uintptr_t base, uint16_t data) {
1766     uint32_t curr = system_sw_read_32(base + 0x18f00L);
1767     system_sw_write_32(base + 0x18f00L, (((uint32_t) (data & 0x3fff)) << 16) | (curr & 0xc000ffff));
1768 }
acamera_isp_video_test_gen_ch0_rect_bot_read(uintptr_t base)1769 static __inline uint16_t acamera_isp_video_test_gen_ch0_rect_bot_read(uintptr_t base) {
1770     return (uint16_t)((system_sw_read_32(base + 0x18f00L) & 0x3fff0000) >> 16);
1771 }
1772 // ------------------------------------------------------------------------------ //
1773 // Register: rect left
1774 // ------------------------------------------------------------------------------ //
1775 
1776 // ------------------------------------------------------------------------------ //
1777 //  Rectangle left pixel number 1-n
1778 // ------------------------------------------------------------------------------ //
1779 
1780 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_LEFT_DEFAULT (0x0001)
1781 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_LEFT_DATASIZE (14)
1782 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_LEFT_OFFSET (0x7c)
1783 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_LEFT_MASK (0x3fff)
1784 
1785 // args: data (14-bit)
acamera_isp_video_test_gen_ch0_rect_left_write(uintptr_t base,uint16_t data)1786 static __inline void acamera_isp_video_test_gen_ch0_rect_left_write(uintptr_t base, uint16_t data) {
1787     uint32_t curr = system_sw_read_32(base + 0x18f04L);
1788     system_sw_write_32(base + 0x18f04L, (((uint32_t) (data & 0x3fff)) << 0) | (curr & 0xffffc000));
1789 }
acamera_isp_video_test_gen_ch0_rect_left_read(uintptr_t base)1790 static __inline uint16_t acamera_isp_video_test_gen_ch0_rect_left_read(uintptr_t base) {
1791     return (uint16_t)((system_sw_read_32(base + 0x18f04L) & 0x3fff) >> 0);
1792 }
1793 // ------------------------------------------------------------------------------ //
1794 // Register: rect right
1795 // ------------------------------------------------------------------------------ //
1796 
1797 // ------------------------------------------------------------------------------ //
1798 //  Rectangle right pixel number 1-n
1799 // ------------------------------------------------------------------------------ //
1800 
1801 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_RIGHT_DEFAULT (0x0100)
1802 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_RIGHT_DATASIZE (14)
1803 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_RIGHT_OFFSET (0x7c)
1804 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH0_RECT_RIGHT_MASK (0x3fff0000)
1805 
1806 // args: data (14-bit)
acamera_isp_video_test_gen_ch0_rect_right_write(uintptr_t base,uint16_t data)1807 static __inline void acamera_isp_video_test_gen_ch0_rect_right_write(uintptr_t base, uint16_t data) {
1808     uint32_t curr = system_sw_read_32(base + 0x18f04L);
1809     system_sw_write_32(base + 0x18f04L, (((uint32_t) (data & 0x3fff)) << 16) | (curr & 0xc000ffff));
1810 }
acamera_isp_video_test_gen_ch0_rect_right_read(uintptr_t base)1811 static __inline uint16_t acamera_isp_video_test_gen_ch0_rect_right_read(uintptr_t base) {
1812     return (uint16_t)((system_sw_read_32(base + 0x18f04L) & 0x3fff0000) >> 16);
1813 }
1814 // ------------------------------------------------------------------------------ //
1815 // Group: video test gen ch1
1816 // ------------------------------------------------------------------------------ //
1817 
1818 // ------------------------------------------------------------------------------ //
1819 // Video test generator controls.  See ISP Guide for further details
1820 // ------------------------------------------------------------------------------ //
1821 
1822 // ------------------------------------------------------------------------------ //
1823 // Register: test_pattern_off on
1824 // ------------------------------------------------------------------------------ //
1825 
1826 // ------------------------------------------------------------------------------ //
1827 // Test pattern off-on: 0=off, 1=on
1828 // ------------------------------------------------------------------------------ //
1829 
1830 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_TEST_PATTERN_OFF_ON_DEFAULT (0)
1831 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_TEST_PATTERN_OFF_ON_DATASIZE (1)
1832 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_TEST_PATTERN_OFF_ON_OFFSET (0x80)
1833 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_TEST_PATTERN_OFF_ON_MASK (0x1)
1834 
1835 // args: data (1-bit)
acamera_isp_video_test_gen_ch1_test_pattern_off_on_write(uintptr_t base,uint8_t data)1836 static __inline void acamera_isp_video_test_gen_ch1_test_pattern_off_on_write(uintptr_t base, uint8_t data) {
1837     uint32_t curr = system_sw_read_32(base + 0x18f08L);
1838     system_sw_write_32(base + 0x18f08L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
1839 }
acamera_isp_video_test_gen_ch1_test_pattern_off_on_read(uintptr_t base)1840 static __inline uint8_t acamera_isp_video_test_gen_ch1_test_pattern_off_on_read(uintptr_t base) {
1841     return (uint8_t)((system_sw_read_32(base + 0x18f08L) & 0x1) >> 0);
1842 }
1843 // ------------------------------------------------------------------------------ //
1844 // Register: bayer_rgb_i sel
1845 // ------------------------------------------------------------------------------ //
1846 
1847 // ------------------------------------------------------------------------------ //
1848 // Bayer or rgb select for input video: 0=bayer, 1=rgb
1849 // ------------------------------------------------------------------------------ //
1850 
1851 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_BAYER_RGB_I_SEL_DEFAULT (0)
1852 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_BAYER_RGB_I_SEL_DATASIZE (1)
1853 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_BAYER_RGB_I_SEL_OFFSET (0x80)
1854 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_BAYER_RGB_I_SEL_MASK (0x2)
1855 
1856 // args: data (1-bit)
acamera_isp_video_test_gen_ch1_bayer_rgb_i_sel_write(uintptr_t base,uint8_t data)1857 static __inline void acamera_isp_video_test_gen_ch1_bayer_rgb_i_sel_write(uintptr_t base, uint8_t data) {
1858     uint32_t curr = system_sw_read_32(base + 0x18f08L);
1859     system_sw_write_32(base + 0x18f08L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
1860 }
acamera_isp_video_test_gen_ch1_bayer_rgb_i_sel_read(uintptr_t base)1861 static __inline uint8_t acamera_isp_video_test_gen_ch1_bayer_rgb_i_sel_read(uintptr_t base) {
1862     return (uint8_t)((system_sw_read_32(base + 0x18f08L) & 0x2) >> 1);
1863 }
1864 // ------------------------------------------------------------------------------ //
1865 // Register: bayer_rgb_o sel
1866 // ------------------------------------------------------------------------------ //
1867 
1868 // ------------------------------------------------------------------------------ //
1869 // Bayer or rgb select for output video: 0=bayer, 1=rgb
1870 // ------------------------------------------------------------------------------ //
1871 
1872 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_BAYER_RGB_O_SEL_DEFAULT (0)
1873 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_BAYER_RGB_O_SEL_DATASIZE (1)
1874 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_BAYER_RGB_O_SEL_OFFSET (0x80)
1875 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_BAYER_RGB_O_SEL_MASK (0x4)
1876 
1877 // args: data (1-bit)
acamera_isp_video_test_gen_ch1_bayer_rgb_o_sel_write(uintptr_t base,uint8_t data)1878 static __inline void acamera_isp_video_test_gen_ch1_bayer_rgb_o_sel_write(uintptr_t base, uint8_t data) {
1879     uint32_t curr = system_sw_read_32(base + 0x18f08L);
1880     system_sw_write_32(base + 0x18f08L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
1881 }
acamera_isp_video_test_gen_ch1_bayer_rgb_o_sel_read(uintptr_t base)1882 static __inline uint8_t acamera_isp_video_test_gen_ch1_bayer_rgb_o_sel_read(uintptr_t base) {
1883     return (uint8_t)((system_sw_read_32(base + 0x18f08L) & 0x4) >> 2);
1884 }
1885 // ------------------------------------------------------------------------------ //
1886 // Register: Generate mode
1887 // ------------------------------------------------------------------------------ //
1888 
1889 // ------------------------------------------------------------------------------ //
1890 // 0 = One Shot (on request) generation. 1 = free run (continuous) generation
1891 // ------------------------------------------------------------------------------ //
1892 
1893 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_GENERATE_MODE_DEFAULT (0)
1894 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_GENERATE_MODE_DATASIZE (1)
1895 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_GENERATE_MODE_OFFSET (0x80)
1896 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_GENERATE_MODE_MASK (0x8)
1897 
1898 // args: data (1-bit)
acamera_isp_video_test_gen_ch1_generate_mode_write(uintptr_t base,uint8_t data)1899 static __inline void acamera_isp_video_test_gen_ch1_generate_mode_write(uintptr_t base, uint8_t data) {
1900     uint32_t curr = system_sw_read_32(base + 0x18f08L);
1901     system_sw_write_32(base + 0x18f08L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
1902 }
acamera_isp_video_test_gen_ch1_generate_mode_read(uintptr_t base)1903 static __inline uint8_t acamera_isp_video_test_gen_ch1_generate_mode_read(uintptr_t base) {
1904     return (uint8_t)((system_sw_read_32(base + 0x18f08L) & 0x8) >> 3);
1905 }
1906 // ------------------------------------------------------------------------------ //
1907 // Register: Video source
1908 // ------------------------------------------------------------------------------ //
1909 
1910 // ------------------------------------------------------------------------------ //
1911 // 0 = Video in interface 1 = Internal Video generation
1912 // ------------------------------------------------------------------------------ //
1913 
1914 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_VIDEO_SOURCE_DEFAULT (0)
1915 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_VIDEO_SOURCE_DATASIZE (1)
1916 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_VIDEO_SOURCE_OFFSET (0x80)
1917 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_VIDEO_SOURCE_MASK (0x10)
1918 
1919 // args: data (1-bit)
acamera_isp_video_test_gen_ch1_video_source_write(uintptr_t base,uint8_t data)1920 static __inline void acamera_isp_video_test_gen_ch1_video_source_write(uintptr_t base, uint8_t data) {
1921     uint32_t curr = system_sw_read_32(base + 0x18f08L);
1922     system_sw_write_32(base + 0x18f08L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
1923 }
acamera_isp_video_test_gen_ch1_video_source_read(uintptr_t base)1924 static __inline uint8_t acamera_isp_video_test_gen_ch1_video_source_read(uintptr_t base) {
1925     return (uint8_t)((system_sw_read_32(base + 0x18f08L) & 0x10) >> 4);
1926 }
1927 // ------------------------------------------------------------------------------ //
1928 // Register: pattern type
1929 // ------------------------------------------------------------------------------ //
1930 
1931 // ------------------------------------------------------------------------------ //
1932 // Pattern type select: 0=Flat field,1=Horizontal gradient,2=Vertical Gradient,3=Vertical Bars,4=Rectangle,5-255=Default white frame on black
1933 // ------------------------------------------------------------------------------ //
1934 
1935 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_PATTERN_TYPE_DEFAULT (0x03)
1936 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_PATTERN_TYPE_DATASIZE (8)
1937 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_PATTERN_TYPE_OFFSET (0x84)
1938 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_PATTERN_TYPE_MASK (0xff)
1939 
1940 // args: data (8-bit)
acamera_isp_video_test_gen_ch1_pattern_type_write(uintptr_t base,uint8_t data)1941 static __inline void acamera_isp_video_test_gen_ch1_pattern_type_write(uintptr_t base, uint8_t data) {
1942     uint32_t curr = system_sw_read_32(base + 0x18f0cL);
1943     system_sw_write_32(base + 0x18f0cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
1944 }
acamera_isp_video_test_gen_ch1_pattern_type_read(uintptr_t base)1945 static __inline uint8_t acamera_isp_video_test_gen_ch1_pattern_type_read(uintptr_t base) {
1946     return (uint8_t)((system_sw_read_32(base + 0x18f0cL) & 0xff) >> 0);
1947 }
1948 // ------------------------------------------------------------------------------ //
1949 // Register: r backgnd
1950 // ------------------------------------------------------------------------------ //
1951 
1952 // ------------------------------------------------------------------------------ //
1953 // Red background  value 16bit, MSB aligned to used width
1954 // ------------------------------------------------------------------------------ //
1955 
1956 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_R_BACKGND_DEFAULT (0xFFFF)
1957 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_R_BACKGND_DATASIZE (20)
1958 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_R_BACKGND_OFFSET (0x88)
1959 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_R_BACKGND_MASK (0xfffff)
1960 
1961 // args: data (20-bit)
acamera_isp_video_test_gen_ch1_r_backgnd_write(uintptr_t base,uint32_t data)1962 static __inline void acamera_isp_video_test_gen_ch1_r_backgnd_write(uintptr_t base, uint32_t data) {
1963     uint32_t curr = system_sw_read_32(base + 0x18f10L);
1964     system_sw_write_32(base + 0x18f10L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
1965 }
acamera_isp_video_test_gen_ch1_r_backgnd_read(uintptr_t base)1966 static __inline uint32_t acamera_isp_video_test_gen_ch1_r_backgnd_read(uintptr_t base) {
1967     return (uint32_t)((system_sw_read_32(base + 0x18f10L) & 0xfffff) >> 0);
1968 }
1969 // ------------------------------------------------------------------------------ //
1970 // Register: g backgnd
1971 // ------------------------------------------------------------------------------ //
1972 
1973 // ------------------------------------------------------------------------------ //
1974 // Green background value 16bit, MSB aligned to used width
1975 // ------------------------------------------------------------------------------ //
1976 
1977 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_G_BACKGND_DEFAULT (0xFFFF)
1978 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_G_BACKGND_DATASIZE (20)
1979 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_G_BACKGND_OFFSET (0x8c)
1980 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_G_BACKGND_MASK (0xfffff)
1981 
1982 // args: data (20-bit)
acamera_isp_video_test_gen_ch1_g_backgnd_write(uintptr_t base,uint32_t data)1983 static __inline void acamera_isp_video_test_gen_ch1_g_backgnd_write(uintptr_t base, uint32_t data) {
1984     uint32_t curr = system_sw_read_32(base + 0x18f14L);
1985     system_sw_write_32(base + 0x18f14L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
1986 }
acamera_isp_video_test_gen_ch1_g_backgnd_read(uintptr_t base)1987 static __inline uint32_t acamera_isp_video_test_gen_ch1_g_backgnd_read(uintptr_t base) {
1988     return (uint32_t)((system_sw_read_32(base + 0x18f14L) & 0xfffff) >> 0);
1989 }
1990 // ------------------------------------------------------------------------------ //
1991 // Register: b backgnd
1992 // ------------------------------------------------------------------------------ //
1993 
1994 // ------------------------------------------------------------------------------ //
1995 // Blue background value 16bit, MSB aligned to used width
1996 // ------------------------------------------------------------------------------ //
1997 
1998 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_B_BACKGND_DEFAULT (0xFFFF)
1999 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_B_BACKGND_DATASIZE (20)
2000 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_B_BACKGND_OFFSET (0x90)
2001 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_B_BACKGND_MASK (0xfffff)
2002 
2003 // args: data (20-bit)
acamera_isp_video_test_gen_ch1_b_backgnd_write(uintptr_t base,uint32_t data)2004 static __inline void acamera_isp_video_test_gen_ch1_b_backgnd_write(uintptr_t base, uint32_t data) {
2005     uint32_t curr = system_sw_read_32(base + 0x18f18L);
2006     system_sw_write_32(base + 0x18f18L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2007 }
acamera_isp_video_test_gen_ch1_b_backgnd_read(uintptr_t base)2008 static __inline uint32_t acamera_isp_video_test_gen_ch1_b_backgnd_read(uintptr_t base) {
2009     return (uint32_t)((system_sw_read_32(base + 0x18f18L) & 0xfffff) >> 0);
2010 }
2011 // ------------------------------------------------------------------------------ //
2012 // Register: r foregnd
2013 // ------------------------------------------------------------------------------ //
2014 
2015 // ------------------------------------------------------------------------------ //
2016 // Red foreground  value 16bit, MSB aligned to used width
2017 // ------------------------------------------------------------------------------ //
2018 
2019 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_R_FOREGND_DEFAULT (0x8FFF)
2020 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_R_FOREGND_DATASIZE (20)
2021 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_R_FOREGND_OFFSET (0x94)
2022 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_R_FOREGND_MASK (0xfffff)
2023 
2024 // args: data (20-bit)
acamera_isp_video_test_gen_ch1_r_foregnd_write(uintptr_t base,uint32_t data)2025 static __inline void acamera_isp_video_test_gen_ch1_r_foregnd_write(uintptr_t base, uint32_t data) {
2026     uint32_t curr = system_sw_read_32(base + 0x18f1cL);
2027     system_sw_write_32(base + 0x18f1cL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2028 }
acamera_isp_video_test_gen_ch1_r_foregnd_read(uintptr_t base)2029 static __inline uint32_t acamera_isp_video_test_gen_ch1_r_foregnd_read(uintptr_t base) {
2030     return (uint32_t)((system_sw_read_32(base + 0x18f1cL) & 0xfffff) >> 0);
2031 }
2032 // ------------------------------------------------------------------------------ //
2033 // Register: g foregnd
2034 // ------------------------------------------------------------------------------ //
2035 
2036 // ------------------------------------------------------------------------------ //
2037 // Green foreground value 16bit, MSB aligned to used width
2038 // ------------------------------------------------------------------------------ //
2039 
2040 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_G_FOREGND_DEFAULT (0x8FFF)
2041 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_G_FOREGND_DATASIZE (20)
2042 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_G_FOREGND_OFFSET (0x98)
2043 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_G_FOREGND_MASK (0xfffff)
2044 
2045 // args: data (20-bit)
acamera_isp_video_test_gen_ch1_g_foregnd_write(uintptr_t base,uint32_t data)2046 static __inline void acamera_isp_video_test_gen_ch1_g_foregnd_write(uintptr_t base, uint32_t data) {
2047     uint32_t curr = system_sw_read_32(base + 0x18f20L);
2048     system_sw_write_32(base + 0x18f20L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2049 }
acamera_isp_video_test_gen_ch1_g_foregnd_read(uintptr_t base)2050 static __inline uint32_t acamera_isp_video_test_gen_ch1_g_foregnd_read(uintptr_t base) {
2051     return (uint32_t)((system_sw_read_32(base + 0x18f20L) & 0xfffff) >> 0);
2052 }
2053 // ------------------------------------------------------------------------------ //
2054 // Register: b foregnd
2055 // ------------------------------------------------------------------------------ //
2056 
2057 // ------------------------------------------------------------------------------ //
2058 // Blue foreground value 16bit, MSB aligned to used width
2059 // ------------------------------------------------------------------------------ //
2060 
2061 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_B_FOREGND_DEFAULT (0x8FFF)
2062 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_B_FOREGND_DATASIZE (20)
2063 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_B_FOREGND_OFFSET (0x9c)
2064 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_B_FOREGND_MASK (0xfffff)
2065 
2066 // args: data (20-bit)
acamera_isp_video_test_gen_ch1_b_foregnd_write(uintptr_t base,uint32_t data)2067 static __inline void acamera_isp_video_test_gen_ch1_b_foregnd_write(uintptr_t base, uint32_t data) {
2068     uint32_t curr = system_sw_read_32(base + 0x18f24L);
2069     system_sw_write_32(base + 0x18f24L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2070 }
acamera_isp_video_test_gen_ch1_b_foregnd_read(uintptr_t base)2071 static __inline uint32_t acamera_isp_video_test_gen_ch1_b_foregnd_read(uintptr_t base) {
2072     return (uint32_t)((system_sw_read_32(base + 0x18f24L) & 0xfffff) >> 0);
2073 }
2074 // ------------------------------------------------------------------------------ //
2075 // Register: rgb gradient
2076 // ------------------------------------------------------------------------------ //
2077 
2078 // ------------------------------------------------------------------------------ //
2079 // RGB gradient increment per pixel (0-15) for first channel
2080 // ------------------------------------------------------------------------------ //
2081 
2082 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RGB_GRADIENT_DEFAULT (0x3CAA)
2083 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RGB_GRADIENT_DATASIZE (16)
2084 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RGB_GRADIENT_OFFSET (0xa0)
2085 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RGB_GRADIENT_MASK (0xffff)
2086 
2087 // args: data (16-bit)
acamera_isp_video_test_gen_ch1_rgb_gradient_write(uintptr_t base,uint16_t data)2088 static __inline void acamera_isp_video_test_gen_ch1_rgb_gradient_write(uintptr_t base, uint16_t data) {
2089     uint32_t curr = system_sw_read_32(base + 0x18f28L);
2090     system_sw_write_32(base + 0x18f28L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
2091 }
acamera_isp_video_test_gen_ch1_rgb_gradient_read(uintptr_t base)2092 static __inline uint16_t acamera_isp_video_test_gen_ch1_rgb_gradient_read(uintptr_t base) {
2093     return (uint16_t)((system_sw_read_32(base + 0x18f28L) & 0xffff) >> 0);
2094 }
2095 // ------------------------------------------------------------------------------ //
2096 // Register: rgb_gradient start
2097 // ------------------------------------------------------------------------------ //
2098 
2099 // ------------------------------------------------------------------------------ //
2100 // RGB gradient start value for first channel 16bit, MSB aligned to used width
2101 // ------------------------------------------------------------------------------ //
2102 
2103 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RGB_GRADIENT_START_DEFAULT (0x0000)
2104 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RGB_GRADIENT_START_DATASIZE (20)
2105 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RGB_GRADIENT_START_OFFSET (0xa4)
2106 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RGB_GRADIENT_START_MASK (0xfffff)
2107 
2108 // args: data (20-bit)
acamera_isp_video_test_gen_ch1_rgb_gradient_start_write(uintptr_t base,uint32_t data)2109 static __inline void acamera_isp_video_test_gen_ch1_rgb_gradient_start_write(uintptr_t base, uint32_t data) {
2110     uint32_t curr = system_sw_read_32(base + 0x18f2cL);
2111     system_sw_write_32(base + 0x18f2cL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2112 }
acamera_isp_video_test_gen_ch1_rgb_gradient_start_read(uintptr_t base)2113 static __inline uint32_t acamera_isp_video_test_gen_ch1_rgb_gradient_start_read(uintptr_t base) {
2114     return (uint32_t)((system_sw_read_32(base + 0x18f2cL) & 0xfffff) >> 0);
2115 }
2116 // ------------------------------------------------------------------------------ //
2117 // Register: rect top
2118 // ------------------------------------------------------------------------------ //
2119 
2120 // ------------------------------------------------------------------------------ //
2121 //  Rectangle top line number 1-n
2122 // ------------------------------------------------------------------------------ //
2123 
2124 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_TOP_DEFAULT (0x0001)
2125 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_TOP_DATASIZE (14)
2126 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_TOP_OFFSET (0xa8)
2127 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_TOP_MASK (0x3fff)
2128 
2129 // args: data (14-bit)
acamera_isp_video_test_gen_ch1_rect_top_write(uintptr_t base,uint16_t data)2130 static __inline void acamera_isp_video_test_gen_ch1_rect_top_write(uintptr_t base, uint16_t data) {
2131     uint32_t curr = system_sw_read_32(base + 0x18f30L);
2132     system_sw_write_32(base + 0x18f30L, (((uint32_t) (data & 0x3fff)) << 0) | (curr & 0xffffc000));
2133 }
acamera_isp_video_test_gen_ch1_rect_top_read(uintptr_t base)2134 static __inline uint16_t acamera_isp_video_test_gen_ch1_rect_top_read(uintptr_t base) {
2135     return (uint16_t)((system_sw_read_32(base + 0x18f30L) & 0x3fff) >> 0);
2136 }
2137 // ------------------------------------------------------------------------------ //
2138 // Register: rect bot
2139 // ------------------------------------------------------------------------------ //
2140 
2141 // ------------------------------------------------------------------------------ //
2142 //  Rectangle bottom line number 1-n
2143 // ------------------------------------------------------------------------------ //
2144 
2145 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_BOT_DEFAULT (0x0100)
2146 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_BOT_DATASIZE (14)
2147 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_BOT_OFFSET (0xa8)
2148 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_BOT_MASK (0x3fff0000)
2149 
2150 // args: data (14-bit)
acamera_isp_video_test_gen_ch1_rect_bot_write(uintptr_t base,uint16_t data)2151 static __inline void acamera_isp_video_test_gen_ch1_rect_bot_write(uintptr_t base, uint16_t data) {
2152     uint32_t curr = system_sw_read_32(base + 0x18f30L);
2153     system_sw_write_32(base + 0x18f30L, (((uint32_t) (data & 0x3fff)) << 16) | (curr & 0xc000ffff));
2154 }
acamera_isp_video_test_gen_ch1_rect_bot_read(uintptr_t base)2155 static __inline uint16_t acamera_isp_video_test_gen_ch1_rect_bot_read(uintptr_t base) {
2156     return (uint16_t)((system_sw_read_32(base + 0x18f30L) & 0x3fff0000) >> 16);
2157 }
2158 // ------------------------------------------------------------------------------ //
2159 // Register: rect left
2160 // ------------------------------------------------------------------------------ //
2161 
2162 // ------------------------------------------------------------------------------ //
2163 //  Rectangle left pixel number 1-n
2164 // ------------------------------------------------------------------------------ //
2165 
2166 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_LEFT_DEFAULT (0x0001)
2167 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_LEFT_DATASIZE (14)
2168 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_LEFT_OFFSET (0xac)
2169 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_LEFT_MASK (0x3fff)
2170 
2171 // args: data (14-bit)
acamera_isp_video_test_gen_ch1_rect_left_write(uintptr_t base,uint16_t data)2172 static __inline void acamera_isp_video_test_gen_ch1_rect_left_write(uintptr_t base, uint16_t data) {
2173     uint32_t curr = system_sw_read_32(base + 0x18f34L);
2174     system_sw_write_32(base + 0x18f34L, (((uint32_t) (data & 0x3fff)) << 0) | (curr & 0xffffc000));
2175 }
acamera_isp_video_test_gen_ch1_rect_left_read(uintptr_t base)2176 static __inline uint16_t acamera_isp_video_test_gen_ch1_rect_left_read(uintptr_t base) {
2177     return (uint16_t)((system_sw_read_32(base + 0x18f34L) & 0x3fff) >> 0);
2178 }
2179 // ------------------------------------------------------------------------------ //
2180 // Register: rect right
2181 // ------------------------------------------------------------------------------ //
2182 
2183 // ------------------------------------------------------------------------------ //
2184 //  Rectangle right pixel number 1-n
2185 // ------------------------------------------------------------------------------ //
2186 
2187 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_RIGHT_DEFAULT (0x0100)
2188 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_RIGHT_DATASIZE (14)
2189 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_RIGHT_OFFSET (0xac)
2190 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH1_RECT_RIGHT_MASK (0x3fff0000)
2191 
2192 // args: data (14-bit)
acamera_isp_video_test_gen_ch1_rect_right_write(uintptr_t base,uint16_t data)2193 static __inline void acamera_isp_video_test_gen_ch1_rect_right_write(uintptr_t base, uint16_t data) {
2194     uint32_t curr = system_sw_read_32(base + 0x18f34L);
2195     system_sw_write_32(base + 0x18f34L, (((uint32_t) (data & 0x3fff)) << 16) | (curr & 0xc000ffff));
2196 }
acamera_isp_video_test_gen_ch1_rect_right_read(uintptr_t base)2197 static __inline uint16_t acamera_isp_video_test_gen_ch1_rect_right_read(uintptr_t base) {
2198     return (uint16_t)((system_sw_read_32(base + 0x18f34L) & 0x3fff0000) >> 16);
2199 }
2200 // ------------------------------------------------------------------------------ //
2201 // Group: video test gen ch2
2202 // ------------------------------------------------------------------------------ //
2203 
2204 // ------------------------------------------------------------------------------ //
2205 // Video test generator controls.  See ISP Guide for further details
2206 // ------------------------------------------------------------------------------ //
2207 
2208 // ------------------------------------------------------------------------------ //
2209 // Register: test_pattern_off on
2210 // ------------------------------------------------------------------------------ //
2211 
2212 // ------------------------------------------------------------------------------ //
2213 // Test pattern off-on: 0=off, 1=on
2214 // ------------------------------------------------------------------------------ //
2215 
2216 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_TEST_PATTERN_OFF_ON_DEFAULT (0)
2217 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_TEST_PATTERN_OFF_ON_DATASIZE (1)
2218 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_TEST_PATTERN_OFF_ON_OFFSET (0xb0)
2219 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_TEST_PATTERN_OFF_ON_MASK (0x1)
2220 
2221 // args: data (1-bit)
acamera_isp_video_test_gen_ch2_test_pattern_off_on_write(uintptr_t base,uint8_t data)2222 static __inline void acamera_isp_video_test_gen_ch2_test_pattern_off_on_write(uintptr_t base, uint8_t data) {
2223     uint32_t curr = system_sw_read_32(base + 0x18f38L);
2224     system_sw_write_32(base + 0x18f38L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
2225 }
acamera_isp_video_test_gen_ch2_test_pattern_off_on_read(uintptr_t base)2226 static __inline uint8_t acamera_isp_video_test_gen_ch2_test_pattern_off_on_read(uintptr_t base) {
2227     return (uint8_t)((system_sw_read_32(base + 0x18f38L) & 0x1) >> 0);
2228 }
2229 // ------------------------------------------------------------------------------ //
2230 // Register: bayer_rgb_i sel
2231 // ------------------------------------------------------------------------------ //
2232 
2233 // ------------------------------------------------------------------------------ //
2234 // Bayer or rgb select for input video: 0=bayer, 1=rgb
2235 // ------------------------------------------------------------------------------ //
2236 
2237 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_BAYER_RGB_I_SEL_DEFAULT (0)
2238 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_BAYER_RGB_I_SEL_DATASIZE (1)
2239 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_BAYER_RGB_I_SEL_OFFSET (0xb0)
2240 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_BAYER_RGB_I_SEL_MASK (0x2)
2241 
2242 // args: data (1-bit)
acamera_isp_video_test_gen_ch2_bayer_rgb_i_sel_write(uintptr_t base,uint8_t data)2243 static __inline void acamera_isp_video_test_gen_ch2_bayer_rgb_i_sel_write(uintptr_t base, uint8_t data) {
2244     uint32_t curr = system_sw_read_32(base + 0x18f38L);
2245     system_sw_write_32(base + 0x18f38L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
2246 }
acamera_isp_video_test_gen_ch2_bayer_rgb_i_sel_read(uintptr_t base)2247 static __inline uint8_t acamera_isp_video_test_gen_ch2_bayer_rgb_i_sel_read(uintptr_t base) {
2248     return (uint8_t)((system_sw_read_32(base + 0x18f38L) & 0x2) >> 1);
2249 }
2250 // ------------------------------------------------------------------------------ //
2251 // Register: bayer_rgb_o sel
2252 // ------------------------------------------------------------------------------ //
2253 
2254 // ------------------------------------------------------------------------------ //
2255 // Bayer or rgb select for output video: 0=bayer, 1=rgb
2256 // ------------------------------------------------------------------------------ //
2257 
2258 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_BAYER_RGB_O_SEL_DEFAULT (0)
2259 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_BAYER_RGB_O_SEL_DATASIZE (1)
2260 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_BAYER_RGB_O_SEL_OFFSET (0xb0)
2261 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_BAYER_RGB_O_SEL_MASK (0x4)
2262 
2263 // args: data (1-bit)
acamera_isp_video_test_gen_ch2_bayer_rgb_o_sel_write(uintptr_t base,uint8_t data)2264 static __inline void acamera_isp_video_test_gen_ch2_bayer_rgb_o_sel_write(uintptr_t base, uint8_t data) {
2265     uint32_t curr = system_sw_read_32(base + 0x18f38L);
2266     system_sw_write_32(base + 0x18f38L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
2267 }
acamera_isp_video_test_gen_ch2_bayer_rgb_o_sel_read(uintptr_t base)2268 static __inline uint8_t acamera_isp_video_test_gen_ch2_bayer_rgb_o_sel_read(uintptr_t base) {
2269     return (uint8_t)((system_sw_read_32(base + 0x18f38L) & 0x4) >> 2);
2270 }
2271 // ------------------------------------------------------------------------------ //
2272 // Register: Generate mode
2273 // ------------------------------------------------------------------------------ //
2274 
2275 // ------------------------------------------------------------------------------ //
2276 // 0 = One Shot (on request) generation. 1 = free run (continuous) generation
2277 // ------------------------------------------------------------------------------ //
2278 
2279 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_GENERATE_MODE_DEFAULT (0)
2280 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_GENERATE_MODE_DATASIZE (1)
2281 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_GENERATE_MODE_OFFSET (0xb0)
2282 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_GENERATE_MODE_MASK (0x8)
2283 
2284 // args: data (1-bit)
acamera_isp_video_test_gen_ch2_generate_mode_write(uintptr_t base,uint8_t data)2285 static __inline void acamera_isp_video_test_gen_ch2_generate_mode_write(uintptr_t base, uint8_t data) {
2286     uint32_t curr = system_sw_read_32(base + 0x18f38L);
2287     system_sw_write_32(base + 0x18f38L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
2288 }
acamera_isp_video_test_gen_ch2_generate_mode_read(uintptr_t base)2289 static __inline uint8_t acamera_isp_video_test_gen_ch2_generate_mode_read(uintptr_t base) {
2290     return (uint8_t)((system_sw_read_32(base + 0x18f38L) & 0x8) >> 3);
2291 }
2292 // ------------------------------------------------------------------------------ //
2293 // Register: Video source
2294 // ------------------------------------------------------------------------------ //
2295 
2296 // ------------------------------------------------------------------------------ //
2297 // 0 = Video in interface 1 = Internal Video generation
2298 // ------------------------------------------------------------------------------ //
2299 
2300 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_VIDEO_SOURCE_DEFAULT (0)
2301 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_VIDEO_SOURCE_DATASIZE (1)
2302 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_VIDEO_SOURCE_OFFSET (0xb0)
2303 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_VIDEO_SOURCE_MASK (0x10)
2304 
2305 // args: data (1-bit)
acamera_isp_video_test_gen_ch2_video_source_write(uintptr_t base,uint8_t data)2306 static __inline void acamera_isp_video_test_gen_ch2_video_source_write(uintptr_t base, uint8_t data) {
2307     uint32_t curr = system_sw_read_32(base + 0x18f38L);
2308     system_sw_write_32(base + 0x18f38L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
2309 }
acamera_isp_video_test_gen_ch2_video_source_read(uintptr_t base)2310 static __inline uint8_t acamera_isp_video_test_gen_ch2_video_source_read(uintptr_t base) {
2311     return (uint8_t)((system_sw_read_32(base + 0x18f38L) & 0x10) >> 4);
2312 }
2313 // ------------------------------------------------------------------------------ //
2314 // Register: pattern type
2315 // ------------------------------------------------------------------------------ //
2316 
2317 // ------------------------------------------------------------------------------ //
2318 // Pattern type select: 0=Flat field,1=Horizontal gradient,2=Vertical Gradient,3=Vertical Bars,4=Rectangle,5-255=Default white frame on black
2319 // ------------------------------------------------------------------------------ //
2320 
2321 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_PATTERN_TYPE_DEFAULT (0x03)
2322 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_PATTERN_TYPE_DATASIZE (8)
2323 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_PATTERN_TYPE_OFFSET (0xb4)
2324 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_PATTERN_TYPE_MASK (0xff)
2325 
2326 // args: data (8-bit)
acamera_isp_video_test_gen_ch2_pattern_type_write(uintptr_t base,uint8_t data)2327 static __inline void acamera_isp_video_test_gen_ch2_pattern_type_write(uintptr_t base, uint8_t data) {
2328     uint32_t curr = system_sw_read_32(base + 0x18f3cL);
2329     system_sw_write_32(base + 0x18f3cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
2330 }
acamera_isp_video_test_gen_ch2_pattern_type_read(uintptr_t base)2331 static __inline uint8_t acamera_isp_video_test_gen_ch2_pattern_type_read(uintptr_t base) {
2332     return (uint8_t)((system_sw_read_32(base + 0x18f3cL) & 0xff) >> 0);
2333 }
2334 // ------------------------------------------------------------------------------ //
2335 // Register: r backgnd
2336 // ------------------------------------------------------------------------------ //
2337 
2338 // ------------------------------------------------------------------------------ //
2339 // Red background  value 16bit, MSB aligned to used width
2340 // ------------------------------------------------------------------------------ //
2341 
2342 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_R_BACKGND_DEFAULT (0xFFFF)
2343 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_R_BACKGND_DATASIZE (20)
2344 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_R_BACKGND_OFFSET (0xb8)
2345 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_R_BACKGND_MASK (0xfffff)
2346 
2347 // args: data (20-bit)
acamera_isp_video_test_gen_ch2_r_backgnd_write(uintptr_t base,uint32_t data)2348 static __inline void acamera_isp_video_test_gen_ch2_r_backgnd_write(uintptr_t base, uint32_t data) {
2349     uint32_t curr = system_sw_read_32(base + 0x18f40L);
2350     system_sw_write_32(base + 0x18f40L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2351 }
acamera_isp_video_test_gen_ch2_r_backgnd_read(uintptr_t base)2352 static __inline uint32_t acamera_isp_video_test_gen_ch2_r_backgnd_read(uintptr_t base) {
2353     return (uint32_t)((system_sw_read_32(base + 0x18f40L) & 0xfffff) >> 0);
2354 }
2355 // ------------------------------------------------------------------------------ //
2356 // Register: g backgnd
2357 // ------------------------------------------------------------------------------ //
2358 
2359 // ------------------------------------------------------------------------------ //
2360 // Green background value 16bit, MSB aligned to used width
2361 // ------------------------------------------------------------------------------ //
2362 
2363 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_G_BACKGND_DEFAULT (0xFFFF)
2364 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_G_BACKGND_DATASIZE (20)
2365 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_G_BACKGND_OFFSET (0xbc)
2366 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_G_BACKGND_MASK (0xfffff)
2367 
2368 // args: data (20-bit)
acamera_isp_video_test_gen_ch2_g_backgnd_write(uintptr_t base,uint32_t data)2369 static __inline void acamera_isp_video_test_gen_ch2_g_backgnd_write(uintptr_t base, uint32_t data) {
2370     uint32_t curr = system_sw_read_32(base + 0x18f44L);
2371     system_sw_write_32(base + 0x18f44L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2372 }
acamera_isp_video_test_gen_ch2_g_backgnd_read(uintptr_t base)2373 static __inline uint32_t acamera_isp_video_test_gen_ch2_g_backgnd_read(uintptr_t base) {
2374     return (uint32_t)((system_sw_read_32(base + 0x18f44L) & 0xfffff) >> 0);
2375 }
2376 // ------------------------------------------------------------------------------ //
2377 // Register: b backgnd
2378 // ------------------------------------------------------------------------------ //
2379 
2380 // ------------------------------------------------------------------------------ //
2381 // Blue background value 16bit, MSB aligned to used width
2382 // ------------------------------------------------------------------------------ //
2383 
2384 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_B_BACKGND_DEFAULT (0xFFFF)
2385 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_B_BACKGND_DATASIZE (20)
2386 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_B_BACKGND_OFFSET (0xc0)
2387 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_B_BACKGND_MASK (0xfffff)
2388 
2389 // args: data (20-bit)
acamera_isp_video_test_gen_ch2_b_backgnd_write(uintptr_t base,uint32_t data)2390 static __inline void acamera_isp_video_test_gen_ch2_b_backgnd_write(uintptr_t base, uint32_t data) {
2391     uint32_t curr = system_sw_read_32(base + 0x18f48L);
2392     system_sw_write_32(base + 0x18f48L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2393 }
acamera_isp_video_test_gen_ch2_b_backgnd_read(uintptr_t base)2394 static __inline uint32_t acamera_isp_video_test_gen_ch2_b_backgnd_read(uintptr_t base) {
2395     return (uint32_t)((system_sw_read_32(base + 0x18f48L) & 0xfffff) >> 0);
2396 }
2397 // ------------------------------------------------------------------------------ //
2398 // Register: r foregnd
2399 // ------------------------------------------------------------------------------ //
2400 
2401 // ------------------------------------------------------------------------------ //
2402 // Red foreground  value 16bit, MSB aligned to used width
2403 // ------------------------------------------------------------------------------ //
2404 
2405 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_R_FOREGND_DEFAULT (0x8FFF)
2406 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_R_FOREGND_DATASIZE (20)
2407 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_R_FOREGND_OFFSET (0xc4)
2408 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_R_FOREGND_MASK (0xfffff)
2409 
2410 // args: data (20-bit)
acamera_isp_video_test_gen_ch2_r_foregnd_write(uintptr_t base,uint32_t data)2411 static __inline void acamera_isp_video_test_gen_ch2_r_foregnd_write(uintptr_t base, uint32_t data) {
2412     uint32_t curr = system_sw_read_32(base + 0x18f4cL);
2413     system_sw_write_32(base + 0x18f4cL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2414 }
acamera_isp_video_test_gen_ch2_r_foregnd_read(uintptr_t base)2415 static __inline uint32_t acamera_isp_video_test_gen_ch2_r_foregnd_read(uintptr_t base) {
2416     return (uint32_t)((system_sw_read_32(base + 0x18f4cL) & 0xfffff) >> 0);
2417 }
2418 // ------------------------------------------------------------------------------ //
2419 // Register: g foregnd
2420 // ------------------------------------------------------------------------------ //
2421 
2422 // ------------------------------------------------------------------------------ //
2423 // Green foreground value 16bit, MSB aligned to used width
2424 // ------------------------------------------------------------------------------ //
2425 
2426 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_G_FOREGND_DEFAULT (0x8FFF)
2427 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_G_FOREGND_DATASIZE (20)
2428 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_G_FOREGND_OFFSET (0xc8)
2429 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_G_FOREGND_MASK (0xfffff)
2430 
2431 // args: data (20-bit)
acamera_isp_video_test_gen_ch2_g_foregnd_write(uintptr_t base,uint32_t data)2432 static __inline void acamera_isp_video_test_gen_ch2_g_foregnd_write(uintptr_t base, uint32_t data) {
2433     uint32_t curr = system_sw_read_32(base + 0x18f50L);
2434     system_sw_write_32(base + 0x18f50L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2435 }
acamera_isp_video_test_gen_ch2_g_foregnd_read(uintptr_t base)2436 static __inline uint32_t acamera_isp_video_test_gen_ch2_g_foregnd_read(uintptr_t base) {
2437     return (uint32_t)((system_sw_read_32(base + 0x18f50L) & 0xfffff) >> 0);
2438 }
2439 // ------------------------------------------------------------------------------ //
2440 // Register: b foregnd
2441 // ------------------------------------------------------------------------------ //
2442 
2443 // ------------------------------------------------------------------------------ //
2444 // Blue foreground value 16bit, MSB aligned to used width
2445 // ------------------------------------------------------------------------------ //
2446 
2447 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_B_FOREGND_DEFAULT (0x8FFF)
2448 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_B_FOREGND_DATASIZE (20)
2449 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_B_FOREGND_OFFSET (0xcc)
2450 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_B_FOREGND_MASK (0xfffff)
2451 
2452 // args: data (20-bit)
acamera_isp_video_test_gen_ch2_b_foregnd_write(uintptr_t base,uint32_t data)2453 static __inline void acamera_isp_video_test_gen_ch2_b_foregnd_write(uintptr_t base, uint32_t data) {
2454     uint32_t curr = system_sw_read_32(base + 0x18f54L);
2455     system_sw_write_32(base + 0x18f54L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2456 }
acamera_isp_video_test_gen_ch2_b_foregnd_read(uintptr_t base)2457 static __inline uint32_t acamera_isp_video_test_gen_ch2_b_foregnd_read(uintptr_t base) {
2458     return (uint32_t)((system_sw_read_32(base + 0x18f54L) & 0xfffff) >> 0);
2459 }
2460 // ------------------------------------------------------------------------------ //
2461 // Register: rgb gradient
2462 // ------------------------------------------------------------------------------ //
2463 
2464 // ------------------------------------------------------------------------------ //
2465 // RGB gradient increment per pixel (0-15) for first channel
2466 // ------------------------------------------------------------------------------ //
2467 
2468 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RGB_GRADIENT_DEFAULT (0x3CAA)
2469 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RGB_GRADIENT_DATASIZE (16)
2470 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RGB_GRADIENT_OFFSET (0xd0)
2471 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RGB_GRADIENT_MASK (0xffff)
2472 
2473 // args: data (16-bit)
acamera_isp_video_test_gen_ch2_rgb_gradient_write(uintptr_t base,uint16_t data)2474 static __inline void acamera_isp_video_test_gen_ch2_rgb_gradient_write(uintptr_t base, uint16_t data) {
2475     uint32_t curr = system_sw_read_32(base + 0x18f58L);
2476     system_sw_write_32(base + 0x18f58L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
2477 }
acamera_isp_video_test_gen_ch2_rgb_gradient_read(uintptr_t base)2478 static __inline uint16_t acamera_isp_video_test_gen_ch2_rgb_gradient_read(uintptr_t base) {
2479     return (uint16_t)((system_sw_read_32(base + 0x18f58L) & 0xffff) >> 0);
2480 }
2481 // ------------------------------------------------------------------------------ //
2482 // Register: rgb_gradient start
2483 // ------------------------------------------------------------------------------ //
2484 
2485 // ------------------------------------------------------------------------------ //
2486 // RGB gradient start value for first channel 16bit, MSB aligned to used width
2487 // ------------------------------------------------------------------------------ //
2488 
2489 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RGB_GRADIENT_START_DEFAULT (0x0000)
2490 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RGB_GRADIENT_START_DATASIZE (20)
2491 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RGB_GRADIENT_START_OFFSET (0xd4)
2492 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RGB_GRADIENT_START_MASK (0xfffff)
2493 
2494 // args: data (20-bit)
acamera_isp_video_test_gen_ch2_rgb_gradient_start_write(uintptr_t base,uint32_t data)2495 static __inline void acamera_isp_video_test_gen_ch2_rgb_gradient_start_write(uintptr_t base, uint32_t data) {
2496     uint32_t curr = system_sw_read_32(base + 0x18f5cL);
2497     system_sw_write_32(base + 0x18f5cL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2498 }
acamera_isp_video_test_gen_ch2_rgb_gradient_start_read(uintptr_t base)2499 static __inline uint32_t acamera_isp_video_test_gen_ch2_rgb_gradient_start_read(uintptr_t base) {
2500     return (uint32_t)((system_sw_read_32(base + 0x18f5cL) & 0xfffff) >> 0);
2501 }
2502 // ------------------------------------------------------------------------------ //
2503 // Register: rect top
2504 // ------------------------------------------------------------------------------ //
2505 
2506 // ------------------------------------------------------------------------------ //
2507 //  Rectangle top line number 1-n
2508 // ------------------------------------------------------------------------------ //
2509 
2510 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_TOP_DEFAULT (0x0001)
2511 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_TOP_DATASIZE (14)
2512 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_TOP_OFFSET (0xd8)
2513 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_TOP_MASK (0x3fff)
2514 
2515 // args: data (14-bit)
acamera_isp_video_test_gen_ch2_rect_top_write(uintptr_t base,uint16_t data)2516 static __inline void acamera_isp_video_test_gen_ch2_rect_top_write(uintptr_t base, uint16_t data) {
2517     uint32_t curr = system_sw_read_32(base + 0x18f60L);
2518     system_sw_write_32(base + 0x18f60L, (((uint32_t) (data & 0x3fff)) << 0) | (curr & 0xffffc000));
2519 }
acamera_isp_video_test_gen_ch2_rect_top_read(uintptr_t base)2520 static __inline uint16_t acamera_isp_video_test_gen_ch2_rect_top_read(uintptr_t base) {
2521     return (uint16_t)((system_sw_read_32(base + 0x18f60L) & 0x3fff) >> 0);
2522 }
2523 // ------------------------------------------------------------------------------ //
2524 // Register: rect bot
2525 // ------------------------------------------------------------------------------ //
2526 
2527 // ------------------------------------------------------------------------------ //
2528 //  Rectangle bottom line number 1-n
2529 // ------------------------------------------------------------------------------ //
2530 
2531 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_BOT_DEFAULT (0x0100)
2532 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_BOT_DATASIZE (14)
2533 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_BOT_OFFSET (0xd8)
2534 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_BOT_MASK (0x3fff0000)
2535 
2536 // args: data (14-bit)
acamera_isp_video_test_gen_ch2_rect_bot_write(uintptr_t base,uint16_t data)2537 static __inline void acamera_isp_video_test_gen_ch2_rect_bot_write(uintptr_t base, uint16_t data) {
2538     uint32_t curr = system_sw_read_32(base + 0x18f60L);
2539     system_sw_write_32(base + 0x18f60L, (((uint32_t) (data & 0x3fff)) << 16) | (curr & 0xc000ffff));
2540 }
acamera_isp_video_test_gen_ch2_rect_bot_read(uintptr_t base)2541 static __inline uint16_t acamera_isp_video_test_gen_ch2_rect_bot_read(uintptr_t base) {
2542     return (uint16_t)((system_sw_read_32(base + 0x18f60L) & 0x3fff0000) >> 16);
2543 }
2544 // ------------------------------------------------------------------------------ //
2545 // Register: rect left
2546 // ------------------------------------------------------------------------------ //
2547 
2548 // ------------------------------------------------------------------------------ //
2549 //  Rectangle left pixel number 1-n
2550 // ------------------------------------------------------------------------------ //
2551 
2552 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_LEFT_DEFAULT (0x0001)
2553 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_LEFT_DATASIZE (14)
2554 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_LEFT_OFFSET (0xdc)
2555 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_LEFT_MASK (0x3fff)
2556 
2557 // args: data (14-bit)
acamera_isp_video_test_gen_ch2_rect_left_write(uintptr_t base,uint16_t data)2558 static __inline void acamera_isp_video_test_gen_ch2_rect_left_write(uintptr_t base, uint16_t data) {
2559     uint32_t curr = system_sw_read_32(base + 0x18f64L);
2560     system_sw_write_32(base + 0x18f64L, (((uint32_t) (data & 0x3fff)) << 0) | (curr & 0xffffc000));
2561 }
acamera_isp_video_test_gen_ch2_rect_left_read(uintptr_t base)2562 static __inline uint16_t acamera_isp_video_test_gen_ch2_rect_left_read(uintptr_t base) {
2563     return (uint16_t)((system_sw_read_32(base + 0x18f64L) & 0x3fff) >> 0);
2564 }
2565 // ------------------------------------------------------------------------------ //
2566 // Register: rect right
2567 // ------------------------------------------------------------------------------ //
2568 
2569 // ------------------------------------------------------------------------------ //
2570 //  Rectangle right pixel number 1-n
2571 // ------------------------------------------------------------------------------ //
2572 
2573 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_RIGHT_DEFAULT (0x0100)
2574 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_RIGHT_DATASIZE (14)
2575 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_RIGHT_OFFSET (0xdc)
2576 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH2_RECT_RIGHT_MASK (0x3fff0000)
2577 
2578 // args: data (14-bit)
acamera_isp_video_test_gen_ch2_rect_right_write(uintptr_t base,uint16_t data)2579 static __inline void acamera_isp_video_test_gen_ch2_rect_right_write(uintptr_t base, uint16_t data) {
2580     uint32_t curr = system_sw_read_32(base + 0x18f64L);
2581     system_sw_write_32(base + 0x18f64L, (((uint32_t) (data & 0x3fff)) << 16) | (curr & 0xc000ffff));
2582 }
acamera_isp_video_test_gen_ch2_rect_right_read(uintptr_t base)2583 static __inline uint16_t acamera_isp_video_test_gen_ch2_rect_right_read(uintptr_t base) {
2584     return (uint16_t)((system_sw_read_32(base + 0x18f64L) & 0x3fff0000) >> 16);
2585 }
2586 // ------------------------------------------------------------------------------ //
2587 // Group: video test gen ch3
2588 // ------------------------------------------------------------------------------ //
2589 
2590 // ------------------------------------------------------------------------------ //
2591 // Video test generator controls.  See ISP Guide for further details
2592 // ------------------------------------------------------------------------------ //
2593 
2594 // ------------------------------------------------------------------------------ //
2595 // Register: test_pattern_off on
2596 // ------------------------------------------------------------------------------ //
2597 
2598 // ------------------------------------------------------------------------------ //
2599 // Test pattern off-on: 0=off, 1=on
2600 // ------------------------------------------------------------------------------ //
2601 
2602 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_TEST_PATTERN_OFF_ON_DEFAULT (0)
2603 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_TEST_PATTERN_OFF_ON_DATASIZE (1)
2604 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_TEST_PATTERN_OFF_ON_OFFSET (0xe0)
2605 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_TEST_PATTERN_OFF_ON_MASK (0x1)
2606 
2607 // args: data (1-bit)
acamera_isp_video_test_gen_ch3_test_pattern_off_on_write(uintptr_t base,uint8_t data)2608 static __inline void acamera_isp_video_test_gen_ch3_test_pattern_off_on_write(uintptr_t base, uint8_t data) {
2609     uint32_t curr = system_sw_read_32(base + 0x18f68L);
2610     system_sw_write_32(base + 0x18f68L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
2611 }
acamera_isp_video_test_gen_ch3_test_pattern_off_on_read(uintptr_t base)2612 static __inline uint8_t acamera_isp_video_test_gen_ch3_test_pattern_off_on_read(uintptr_t base) {
2613     return (uint8_t)((system_sw_read_32(base + 0x18f68L) & 0x1) >> 0);
2614 }
2615 // ------------------------------------------------------------------------------ //
2616 // Register: bayer_rgb_i sel
2617 // ------------------------------------------------------------------------------ //
2618 
2619 // ------------------------------------------------------------------------------ //
2620 // Bayer or rgb select for input video: 0=bayer, 1=rgb
2621 // ------------------------------------------------------------------------------ //
2622 
2623 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_BAYER_RGB_I_SEL_DEFAULT (0)
2624 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_BAYER_RGB_I_SEL_DATASIZE (1)
2625 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_BAYER_RGB_I_SEL_OFFSET (0xe0)
2626 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_BAYER_RGB_I_SEL_MASK (0x2)
2627 
2628 // args: data (1-bit)
acamera_isp_video_test_gen_ch3_bayer_rgb_i_sel_write(uintptr_t base,uint8_t data)2629 static __inline void acamera_isp_video_test_gen_ch3_bayer_rgb_i_sel_write(uintptr_t base, uint8_t data) {
2630     uint32_t curr = system_sw_read_32(base + 0x18f68L);
2631     system_sw_write_32(base + 0x18f68L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
2632 }
acamera_isp_video_test_gen_ch3_bayer_rgb_i_sel_read(uintptr_t base)2633 static __inline uint8_t acamera_isp_video_test_gen_ch3_bayer_rgb_i_sel_read(uintptr_t base) {
2634     return (uint8_t)((system_sw_read_32(base + 0x18f68L) & 0x2) >> 1);
2635 }
2636 // ------------------------------------------------------------------------------ //
2637 // Register: bayer_rgb_o sel
2638 // ------------------------------------------------------------------------------ //
2639 
2640 // ------------------------------------------------------------------------------ //
2641 // Bayer or rgb select for output video: 0=bayer, 1=rgb
2642 // ------------------------------------------------------------------------------ //
2643 
2644 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_BAYER_RGB_O_SEL_DEFAULT (0)
2645 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_BAYER_RGB_O_SEL_DATASIZE (1)
2646 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_BAYER_RGB_O_SEL_OFFSET (0xe0)
2647 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_BAYER_RGB_O_SEL_MASK (0x4)
2648 
2649 // args: data (1-bit)
acamera_isp_video_test_gen_ch3_bayer_rgb_o_sel_write(uintptr_t base,uint8_t data)2650 static __inline void acamera_isp_video_test_gen_ch3_bayer_rgb_o_sel_write(uintptr_t base, uint8_t data) {
2651     uint32_t curr = system_sw_read_32(base + 0x18f68L);
2652     system_sw_write_32(base + 0x18f68L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
2653 }
acamera_isp_video_test_gen_ch3_bayer_rgb_o_sel_read(uintptr_t base)2654 static __inline uint8_t acamera_isp_video_test_gen_ch3_bayer_rgb_o_sel_read(uintptr_t base) {
2655     return (uint8_t)((system_sw_read_32(base + 0x18f68L) & 0x4) >> 2);
2656 }
2657 // ------------------------------------------------------------------------------ //
2658 // Register: Generate mode
2659 // ------------------------------------------------------------------------------ //
2660 
2661 // ------------------------------------------------------------------------------ //
2662 // 0 = One Shot (on request) generation. 1 = free run (continuous) generation
2663 // ------------------------------------------------------------------------------ //
2664 
2665 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_GENERATE_MODE_DEFAULT (0)
2666 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_GENERATE_MODE_DATASIZE (1)
2667 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_GENERATE_MODE_OFFSET (0xe0)
2668 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_GENERATE_MODE_MASK (0x8)
2669 
2670 // args: data (1-bit)
acamera_isp_video_test_gen_ch3_generate_mode_write(uintptr_t base,uint8_t data)2671 static __inline void acamera_isp_video_test_gen_ch3_generate_mode_write(uintptr_t base, uint8_t data) {
2672     uint32_t curr = system_sw_read_32(base + 0x18f68L);
2673     system_sw_write_32(base + 0x18f68L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
2674 }
acamera_isp_video_test_gen_ch3_generate_mode_read(uintptr_t base)2675 static __inline uint8_t acamera_isp_video_test_gen_ch3_generate_mode_read(uintptr_t base) {
2676     return (uint8_t)((system_sw_read_32(base + 0x18f68L) & 0x8) >> 3);
2677 }
2678 // ------------------------------------------------------------------------------ //
2679 // Register: Video source
2680 // ------------------------------------------------------------------------------ //
2681 
2682 // ------------------------------------------------------------------------------ //
2683 // 0 = Video in interface 1 = Internal Video generation
2684 // ------------------------------------------------------------------------------ //
2685 
2686 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_VIDEO_SOURCE_DEFAULT (0)
2687 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_VIDEO_SOURCE_DATASIZE (1)
2688 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_VIDEO_SOURCE_OFFSET (0xe0)
2689 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_VIDEO_SOURCE_MASK (0x10)
2690 
2691 // args: data (1-bit)
acamera_isp_video_test_gen_ch3_video_source_write(uintptr_t base,uint8_t data)2692 static __inline void acamera_isp_video_test_gen_ch3_video_source_write(uintptr_t base, uint8_t data) {
2693     uint32_t curr = system_sw_read_32(base + 0x18f68L);
2694     system_sw_write_32(base + 0x18f68L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
2695 }
acamera_isp_video_test_gen_ch3_video_source_read(uintptr_t base)2696 static __inline uint8_t acamera_isp_video_test_gen_ch3_video_source_read(uintptr_t base) {
2697     return (uint8_t)((system_sw_read_32(base + 0x18f68L) & 0x10) >> 4);
2698 }
2699 // ------------------------------------------------------------------------------ //
2700 // Register: pattern type
2701 // ------------------------------------------------------------------------------ //
2702 
2703 // ------------------------------------------------------------------------------ //
2704 // Pattern type select: 0=Flat field,1=Horizontal gradient,2=Vertical Gradient,3=Vertical Bars,4=Rectangle,5-255=Default white frame on black
2705 // ------------------------------------------------------------------------------ //
2706 
2707 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_PATTERN_TYPE_DEFAULT (0x03)
2708 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_PATTERN_TYPE_DATASIZE (8)
2709 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_PATTERN_TYPE_OFFSET (0xe4)
2710 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_PATTERN_TYPE_MASK (0xff)
2711 
2712 // args: data (8-bit)
acamera_isp_video_test_gen_ch3_pattern_type_write(uintptr_t base,uint8_t data)2713 static __inline void acamera_isp_video_test_gen_ch3_pattern_type_write(uintptr_t base, uint8_t data) {
2714     uint32_t curr = system_sw_read_32(base + 0x18f6cL);
2715     system_sw_write_32(base + 0x18f6cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
2716 }
acamera_isp_video_test_gen_ch3_pattern_type_read(uintptr_t base)2717 static __inline uint8_t acamera_isp_video_test_gen_ch3_pattern_type_read(uintptr_t base) {
2718     return (uint8_t)((system_sw_read_32(base + 0x18f6cL) & 0xff) >> 0);
2719 }
2720 // ------------------------------------------------------------------------------ //
2721 // Register: r backgnd
2722 // ------------------------------------------------------------------------------ //
2723 
2724 // ------------------------------------------------------------------------------ //
2725 // Red background  value 16bit, MSB aligned to used width
2726 // ------------------------------------------------------------------------------ //
2727 
2728 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_R_BACKGND_DEFAULT (0xFFFF)
2729 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_R_BACKGND_DATASIZE (20)
2730 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_R_BACKGND_OFFSET (0xe8)
2731 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_R_BACKGND_MASK (0xfffff)
2732 
2733 // args: data (20-bit)
acamera_isp_video_test_gen_ch3_r_backgnd_write(uintptr_t base,uint32_t data)2734 static __inline void acamera_isp_video_test_gen_ch3_r_backgnd_write(uintptr_t base, uint32_t data) {
2735     uint32_t curr = system_sw_read_32(base + 0x18f70L);
2736     system_sw_write_32(base + 0x18f70L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2737 }
acamera_isp_video_test_gen_ch3_r_backgnd_read(uintptr_t base)2738 static __inline uint32_t acamera_isp_video_test_gen_ch3_r_backgnd_read(uintptr_t base) {
2739     return (uint32_t)((system_sw_read_32(base + 0x18f70L) & 0xfffff) >> 0);
2740 }
2741 // ------------------------------------------------------------------------------ //
2742 // Register: g backgnd
2743 // ------------------------------------------------------------------------------ //
2744 
2745 // ------------------------------------------------------------------------------ //
2746 // Green background value 16bit, MSB aligned to used width
2747 // ------------------------------------------------------------------------------ //
2748 
2749 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_G_BACKGND_DEFAULT (0xFFFF)
2750 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_G_BACKGND_DATASIZE (20)
2751 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_G_BACKGND_OFFSET (0xec)
2752 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_G_BACKGND_MASK (0xfffff)
2753 
2754 // args: data (20-bit)
acamera_isp_video_test_gen_ch3_g_backgnd_write(uintptr_t base,uint32_t data)2755 static __inline void acamera_isp_video_test_gen_ch3_g_backgnd_write(uintptr_t base, uint32_t data) {
2756     uint32_t curr = system_sw_read_32(base + 0x18f74L);
2757     system_sw_write_32(base + 0x18f74L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2758 }
acamera_isp_video_test_gen_ch3_g_backgnd_read(uintptr_t base)2759 static __inline uint32_t acamera_isp_video_test_gen_ch3_g_backgnd_read(uintptr_t base) {
2760     return (uint32_t)((system_sw_read_32(base + 0x18f74L) & 0xfffff) >> 0);
2761 }
2762 // ------------------------------------------------------------------------------ //
2763 // Register: b backgnd
2764 // ------------------------------------------------------------------------------ //
2765 
2766 // ------------------------------------------------------------------------------ //
2767 // Blue background value 16bit, MSB aligned to used width
2768 // ------------------------------------------------------------------------------ //
2769 
2770 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_B_BACKGND_DEFAULT (0xFFFF)
2771 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_B_BACKGND_DATASIZE (20)
2772 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_B_BACKGND_OFFSET (0xf0)
2773 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_B_BACKGND_MASK (0xfffff)
2774 
2775 // args: data (20-bit)
acamera_isp_video_test_gen_ch3_b_backgnd_write(uintptr_t base,uint32_t data)2776 static __inline void acamera_isp_video_test_gen_ch3_b_backgnd_write(uintptr_t base, uint32_t data) {
2777     uint32_t curr = system_sw_read_32(base + 0x18f78L);
2778     system_sw_write_32(base + 0x18f78L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2779 }
acamera_isp_video_test_gen_ch3_b_backgnd_read(uintptr_t base)2780 static __inline uint32_t acamera_isp_video_test_gen_ch3_b_backgnd_read(uintptr_t base) {
2781     return (uint32_t)((system_sw_read_32(base + 0x18f78L) & 0xfffff) >> 0);
2782 }
2783 // ------------------------------------------------------------------------------ //
2784 // Register: r foregnd
2785 // ------------------------------------------------------------------------------ //
2786 
2787 // ------------------------------------------------------------------------------ //
2788 // Red foreground  value 16bit, MSB aligned to used width
2789 // ------------------------------------------------------------------------------ //
2790 
2791 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_R_FOREGND_DEFAULT (0x8FFF)
2792 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_R_FOREGND_DATASIZE (20)
2793 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_R_FOREGND_OFFSET (0xf4)
2794 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_R_FOREGND_MASK (0xfffff)
2795 
2796 // args: data (20-bit)
acamera_isp_video_test_gen_ch3_r_foregnd_write(uintptr_t base,uint32_t data)2797 static __inline void acamera_isp_video_test_gen_ch3_r_foregnd_write(uintptr_t base, uint32_t data) {
2798     uint32_t curr = system_sw_read_32(base + 0x18f7cL);
2799     system_sw_write_32(base + 0x18f7cL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2800 }
acamera_isp_video_test_gen_ch3_r_foregnd_read(uintptr_t base)2801 static __inline uint32_t acamera_isp_video_test_gen_ch3_r_foregnd_read(uintptr_t base) {
2802     return (uint32_t)((system_sw_read_32(base + 0x18f7cL) & 0xfffff) >> 0);
2803 }
2804 // ------------------------------------------------------------------------------ //
2805 // Register: g foregnd
2806 // ------------------------------------------------------------------------------ //
2807 
2808 // ------------------------------------------------------------------------------ //
2809 // Green foreground value 16bit, MSB aligned to used width
2810 // ------------------------------------------------------------------------------ //
2811 
2812 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_G_FOREGND_DEFAULT (0x8FFF)
2813 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_G_FOREGND_DATASIZE (20)
2814 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_G_FOREGND_OFFSET (0xf8)
2815 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_G_FOREGND_MASK (0xfffff)
2816 
2817 // args: data (20-bit)
acamera_isp_video_test_gen_ch3_g_foregnd_write(uintptr_t base,uint32_t data)2818 static __inline void acamera_isp_video_test_gen_ch3_g_foregnd_write(uintptr_t base, uint32_t data) {
2819     uint32_t curr = system_sw_read_32(base + 0x18f80L);
2820     system_sw_write_32(base + 0x18f80L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2821 }
acamera_isp_video_test_gen_ch3_g_foregnd_read(uintptr_t base)2822 static __inline uint32_t acamera_isp_video_test_gen_ch3_g_foregnd_read(uintptr_t base) {
2823     return (uint32_t)((system_sw_read_32(base + 0x18f80L) & 0xfffff) >> 0);
2824 }
2825 // ------------------------------------------------------------------------------ //
2826 // Register: b foregnd
2827 // ------------------------------------------------------------------------------ //
2828 
2829 // ------------------------------------------------------------------------------ //
2830 // Blue foreground value 16bit, MSB aligned to used width
2831 // ------------------------------------------------------------------------------ //
2832 
2833 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_B_FOREGND_DEFAULT (0x8FFF)
2834 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_B_FOREGND_DATASIZE (20)
2835 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_B_FOREGND_OFFSET (0xfc)
2836 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_B_FOREGND_MASK (0xfffff)
2837 
2838 // args: data (20-bit)
acamera_isp_video_test_gen_ch3_b_foregnd_write(uintptr_t base,uint32_t data)2839 static __inline void acamera_isp_video_test_gen_ch3_b_foregnd_write(uintptr_t base, uint32_t data) {
2840     uint32_t curr = system_sw_read_32(base + 0x18f84L);
2841     system_sw_write_32(base + 0x18f84L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2842 }
acamera_isp_video_test_gen_ch3_b_foregnd_read(uintptr_t base)2843 static __inline uint32_t acamera_isp_video_test_gen_ch3_b_foregnd_read(uintptr_t base) {
2844     return (uint32_t)((system_sw_read_32(base + 0x18f84L) & 0xfffff) >> 0);
2845 }
2846 // ------------------------------------------------------------------------------ //
2847 // Register: rgb gradient
2848 // ------------------------------------------------------------------------------ //
2849 
2850 // ------------------------------------------------------------------------------ //
2851 // RGB gradient increment per pixel (0-15) for first channel
2852 // ------------------------------------------------------------------------------ //
2853 
2854 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RGB_GRADIENT_DEFAULT (0x3CAA)
2855 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RGB_GRADIENT_DATASIZE (16)
2856 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RGB_GRADIENT_OFFSET (0x100)
2857 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RGB_GRADIENT_MASK (0xffff)
2858 
2859 // args: data (16-bit)
acamera_isp_video_test_gen_ch3_rgb_gradient_write(uintptr_t base,uint16_t data)2860 static __inline void acamera_isp_video_test_gen_ch3_rgb_gradient_write(uintptr_t base, uint16_t data) {
2861     uint32_t curr = system_sw_read_32(base + 0x18f88L);
2862     system_sw_write_32(base + 0x18f88L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
2863 }
acamera_isp_video_test_gen_ch3_rgb_gradient_read(uintptr_t base)2864 static __inline uint16_t acamera_isp_video_test_gen_ch3_rgb_gradient_read(uintptr_t base) {
2865     return (uint16_t)((system_sw_read_32(base + 0x18f88L) & 0xffff) >> 0);
2866 }
2867 // ------------------------------------------------------------------------------ //
2868 // Register: rgb_gradient start
2869 // ------------------------------------------------------------------------------ //
2870 
2871 // ------------------------------------------------------------------------------ //
2872 // RGB gradient start value for first channel 16bit, MSB aligned to used width
2873 // ------------------------------------------------------------------------------ //
2874 
2875 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RGB_GRADIENT_START_DEFAULT (0x0000)
2876 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RGB_GRADIENT_START_DATASIZE (20)
2877 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RGB_GRADIENT_START_OFFSET (0x104)
2878 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RGB_GRADIENT_START_MASK (0xfffff)
2879 
2880 // args: data (20-bit)
acamera_isp_video_test_gen_ch3_rgb_gradient_start_write(uintptr_t base,uint32_t data)2881 static __inline void acamera_isp_video_test_gen_ch3_rgb_gradient_start_write(uintptr_t base, uint32_t data) {
2882     uint32_t curr = system_sw_read_32(base + 0x18f8cL);
2883     system_sw_write_32(base + 0x18f8cL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
2884 }
acamera_isp_video_test_gen_ch3_rgb_gradient_start_read(uintptr_t base)2885 static __inline uint32_t acamera_isp_video_test_gen_ch3_rgb_gradient_start_read(uintptr_t base) {
2886     return (uint32_t)((system_sw_read_32(base + 0x18f8cL) & 0xfffff) >> 0);
2887 }
2888 // ------------------------------------------------------------------------------ //
2889 // Register: rect top
2890 // ------------------------------------------------------------------------------ //
2891 
2892 // ------------------------------------------------------------------------------ //
2893 //  Rectangle top line number 1-n
2894 // ------------------------------------------------------------------------------ //
2895 
2896 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_TOP_DEFAULT (0x0001)
2897 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_TOP_DATASIZE (14)
2898 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_TOP_OFFSET (0x108)
2899 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_TOP_MASK (0x3fff)
2900 
2901 // args: data (14-bit)
acamera_isp_video_test_gen_ch3_rect_top_write(uintptr_t base,uint16_t data)2902 static __inline void acamera_isp_video_test_gen_ch3_rect_top_write(uintptr_t base, uint16_t data) {
2903     uint32_t curr = system_sw_read_32(base + 0x18f90L);
2904     system_sw_write_32(base + 0x18f90L, (((uint32_t) (data & 0x3fff)) << 0) | (curr & 0xffffc000));
2905 }
acamera_isp_video_test_gen_ch3_rect_top_read(uintptr_t base)2906 static __inline uint16_t acamera_isp_video_test_gen_ch3_rect_top_read(uintptr_t base) {
2907     return (uint16_t)((system_sw_read_32(base + 0x18f90L) & 0x3fff) >> 0);
2908 }
2909 // ------------------------------------------------------------------------------ //
2910 // Register: rect bot
2911 // ------------------------------------------------------------------------------ //
2912 
2913 // ------------------------------------------------------------------------------ //
2914 //  Rectangle bottom line number 1-n
2915 // ------------------------------------------------------------------------------ //
2916 
2917 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_BOT_DEFAULT (0x0100)
2918 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_BOT_DATASIZE (14)
2919 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_BOT_OFFSET (0x108)
2920 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_BOT_MASK (0x3fff0000)
2921 
2922 // args: data (14-bit)
acamera_isp_video_test_gen_ch3_rect_bot_write(uintptr_t base,uint16_t data)2923 static __inline void acamera_isp_video_test_gen_ch3_rect_bot_write(uintptr_t base, uint16_t data) {
2924     uint32_t curr = system_sw_read_32(base + 0x18f90L);
2925     system_sw_write_32(base + 0x18f90L, (((uint32_t) (data & 0x3fff)) << 16) | (curr & 0xc000ffff));
2926 }
acamera_isp_video_test_gen_ch3_rect_bot_read(uintptr_t base)2927 static __inline uint16_t acamera_isp_video_test_gen_ch3_rect_bot_read(uintptr_t base) {
2928     return (uint16_t)((system_sw_read_32(base + 0x18f90L) & 0x3fff0000) >> 16);
2929 }
2930 // ------------------------------------------------------------------------------ //
2931 // Register: rect left
2932 // ------------------------------------------------------------------------------ //
2933 
2934 // ------------------------------------------------------------------------------ //
2935 //  Rectangle left pixel number 1-n
2936 // ------------------------------------------------------------------------------ //
2937 
2938 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_LEFT_DEFAULT (0x0001)
2939 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_LEFT_DATASIZE (14)
2940 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_LEFT_OFFSET (0x10c)
2941 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_LEFT_MASK (0x3fff)
2942 
2943 // args: data (14-bit)
acamera_isp_video_test_gen_ch3_rect_left_write(uintptr_t base,uint16_t data)2944 static __inline void acamera_isp_video_test_gen_ch3_rect_left_write(uintptr_t base, uint16_t data) {
2945     uint32_t curr = system_sw_read_32(base + 0x18f94L);
2946     system_sw_write_32(base + 0x18f94L, (((uint32_t) (data & 0x3fff)) << 0) | (curr & 0xffffc000));
2947 }
acamera_isp_video_test_gen_ch3_rect_left_read(uintptr_t base)2948 static __inline uint16_t acamera_isp_video_test_gen_ch3_rect_left_read(uintptr_t base) {
2949     return (uint16_t)((system_sw_read_32(base + 0x18f94L) & 0x3fff) >> 0);
2950 }
2951 // ------------------------------------------------------------------------------ //
2952 // Register: rect right
2953 // ------------------------------------------------------------------------------ //
2954 
2955 // ------------------------------------------------------------------------------ //
2956 //  Rectangle right pixel number 1-n
2957 // ------------------------------------------------------------------------------ //
2958 
2959 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_RIGHT_DEFAULT (0x0100)
2960 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_RIGHT_DATASIZE (14)
2961 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_RIGHT_OFFSET (0x10c)
2962 #define ACAMERA_ISP_VIDEO_TEST_GEN_CH3_RECT_RIGHT_MASK (0x3fff0000)
2963 
2964 // args: data (14-bit)
acamera_isp_video_test_gen_ch3_rect_right_write(uintptr_t base,uint16_t data)2965 static __inline void acamera_isp_video_test_gen_ch3_rect_right_write(uintptr_t base, uint16_t data) {
2966     uint32_t curr = system_sw_read_32(base + 0x18f94L);
2967     system_sw_write_32(base + 0x18f94L, (((uint32_t) (data & 0x3fff)) << 16) | (curr & 0xc000ffff));
2968 }
acamera_isp_video_test_gen_ch3_rect_right_read(uintptr_t base)2969 static __inline uint16_t acamera_isp_video_test_gen_ch3_rect_right_read(uintptr_t base) {
2970     return (uint16_t)((system_sw_read_32(base + 0x18f94L) & 0x3fff0000) >> 16);
2971 }
2972 // ------------------------------------------------------------------------------ //
2973 // Group: input formatter
2974 // ------------------------------------------------------------------------------ //
2975 
2976 // ------------------------------------------------------------------------------ //
2977 //
2978 //        Adapts received data format to ISP format see ISP guide for a table of setting to be used for various sensors/modes.
2979 //
2980 // ------------------------------------------------------------------------------ //
2981 
2982 // ------------------------------------------------------------------------------ //
2983 // Register: mode in
2984 // ------------------------------------------------------------------------------ //
2985 
2986 // ------------------------------------------------------------------------------ //
2987 //  Input mode
2988 // ------------------------------------------------------------------------------ //
2989 
2990 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_DEFAULT (0)
2991 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_DATASIZE (3)
2992 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_OFFSET (0x110)
2993 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_MASK (0x7)
2994 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_LINEAR_DATA (0)
2995 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_23_MULTIPLE_EXPOSURE_MULTIPLEXING (1)
2996 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_LOGARITHMIC_ENCODING (2)
2997 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_COMPANDING_CURVE_WITH_KNEE_POINTS (3)
2998 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_16BIT_LINEAR_12BIT_VS (4)
2999 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_12BIT_COMPANDED__12BIT_VS (5)
3000 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_RESERVED (6)
3001 #define ACAMERA_ISP_INPUT_FORMATTER_MODE_IN_PASS_THROUGH_MODE (7)
3002 
3003 // args: data (3-bit)
acamera_isp_input_formatter_mode_in_write(uintptr_t base,uint8_t data)3004 static __inline void acamera_isp_input_formatter_mode_in_write(uintptr_t base, uint8_t data) {
3005     uint32_t curr = system_sw_read_32(base + 0x18f98L);
3006     system_sw_write_32(base + 0x18f98L, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
3007 }
acamera_isp_input_formatter_mode_in_read(uintptr_t base)3008 static __inline uint8_t acamera_isp_input_formatter_mode_in_read(uintptr_t base) {
3009     return (uint8_t)((system_sw_read_32(base + 0x18f98L) & 0x7) >> 0);
3010 }
3011 // ------------------------------------------------------------------------------ //
3012 // Register: input bitwidth select
3013 // ------------------------------------------------------------------------------ //
3014 
3015 // ------------------------------------------------------------------------------ //
3016 //  Input bitwidth select
3017 //
3018 // ------------------------------------------------------------------------------ //
3019 
3020 #define ACAMERA_ISP_INPUT_FORMATTER_INPUT_BITWIDTH_SELECT_DEFAULT (2)
3021 #define ACAMERA_ISP_INPUT_FORMATTER_INPUT_BITWIDTH_SELECT_DATASIZE (3)
3022 #define ACAMERA_ISP_INPUT_FORMATTER_INPUT_BITWIDTH_SELECT_OFFSET (0x110)
3023 #define ACAMERA_ISP_INPUT_FORMATTER_INPUT_BITWIDTH_SELECT_MASK (0x70000)
3024 #define ACAMERA_ISP_INPUT_FORMATTER_INPUT_BITWIDTH_SELECT_8_BITS (0)
3025 #define ACAMERA_ISP_INPUT_FORMATTER_INPUT_BITWIDTH_SELECT_10_BITS (1)
3026 #define ACAMERA_ISP_INPUT_FORMATTER_INPUT_BITWIDTH_SELECT_12_BITS (2)
3027 #define ACAMERA_ISP_INPUT_FORMATTER_INPUT_BITWIDTH_SELECT_14_BITS (3)
3028 #define ACAMERA_ISP_INPUT_FORMATTER_INPUT_BITWIDTH_SELECT_16_BITS (4)
3029 #define ACAMERA_ISP_INPUT_FORMATTER_INPUT_BITWIDTH_SELECT_20_BITS_NO_18_BITS (5)
3030 
3031 // args: data (3-bit)
acamera_isp_input_formatter_input_bitwidth_select_write(uintptr_t base,uint8_t data)3032 static __inline void acamera_isp_input_formatter_input_bitwidth_select_write(uintptr_t base, uint8_t data) {
3033     uint32_t curr = system_sw_read_32(base + 0x18f98L);
3034     system_sw_write_32(base + 0x18f98L, (((uint32_t) (data & 0x7)) << 16) | (curr & 0xfff8ffff));
3035 }
acamera_isp_input_formatter_input_bitwidth_select_read(uintptr_t base)3036 static __inline uint8_t acamera_isp_input_formatter_input_bitwidth_select_read(uintptr_t base) {
3037     return (uint8_t)((system_sw_read_32(base + 0x18f98L) & 0x70000) >> 16);
3038 }
3039 // ------------------------------------------------------------------------------ //
3040 // Register: factor ML
3041 // ------------------------------------------------------------------------------ //
3042 
3043 // ------------------------------------------------------------------------------ //
3044 //  18 bit, 6.12 fix point - ratio between long and medium exposure for 2:3 multiplexed mode
3045 // ------------------------------------------------------------------------------ //
3046 
3047 #define ACAMERA_ISP_INPUT_FORMATTER_FACTOR_ML_DEFAULT (0x1000)
3048 #define ACAMERA_ISP_INPUT_FORMATTER_FACTOR_ML_DATASIZE (18)
3049 #define ACAMERA_ISP_INPUT_FORMATTER_FACTOR_ML_OFFSET (0x114)
3050 #define ACAMERA_ISP_INPUT_FORMATTER_FACTOR_ML_MASK (0x3ffff)
3051 
3052 // args: data (18-bit)
acamera_isp_input_formatter_factor_ml_write(uintptr_t base,uint32_t data)3053 static __inline void acamera_isp_input_formatter_factor_ml_write(uintptr_t base, uint32_t data) {
3054     uint32_t curr = system_sw_read_32(base + 0x18f9cL);
3055     system_sw_write_32(base + 0x18f9cL, (((uint32_t) (data & 0x3ffff)) << 0) | (curr & 0xfffc0000));
3056 }
acamera_isp_input_formatter_factor_ml_read(uintptr_t base)3057 static __inline uint32_t acamera_isp_input_formatter_factor_ml_read(uintptr_t base) {
3058     return (uint32_t)((system_sw_read_32(base + 0x18f9cL) & 0x3ffff) >> 0);
3059 }
3060 // ------------------------------------------------------------------------------ //
3061 // Register: factor MS
3062 // ------------------------------------------------------------------------------ //
3063 
3064 // ------------------------------------------------------------------------------ //
3065 //  13 bit, 1.12 fix point - ratio between short and medium exposure for 2:3 multiplexed mode
3066 // ------------------------------------------------------------------------------ //
3067 
3068 #define ACAMERA_ISP_INPUT_FORMATTER_FACTOR_MS_DEFAULT (0x1000)
3069 #define ACAMERA_ISP_INPUT_FORMATTER_FACTOR_MS_DATASIZE (13)
3070 #define ACAMERA_ISP_INPUT_FORMATTER_FACTOR_MS_OFFSET (0x118)
3071 #define ACAMERA_ISP_INPUT_FORMATTER_FACTOR_MS_MASK (0x1fff)
3072 
3073 // args: data (13-bit)
acamera_isp_input_formatter_factor_ms_write(uintptr_t base,uint16_t data)3074 static __inline void acamera_isp_input_formatter_factor_ms_write(uintptr_t base, uint16_t data) {
3075     uint32_t curr = system_sw_read_32(base + 0x18fa0L);
3076     system_sw_write_32(base + 0x18fa0L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
3077 }
acamera_isp_input_formatter_factor_ms_read(uintptr_t base)3078 static __inline uint16_t acamera_isp_input_formatter_factor_ms_read(uintptr_t base) {
3079     return (uint16_t)((system_sw_read_32(base + 0x18fa0L) & 0x1fff) >> 0);
3080 }
3081 // ------------------------------------------------------------------------------ //
3082 // Register: black level
3083 // ------------------------------------------------------------------------------ //
3084 
3085 // ------------------------------------------------------------------------------ //
3086 //  Black level of sensor data for 2:3 multiplexed mode
3087 // ------------------------------------------------------------------------------ //
3088 
3089 #define ACAMERA_ISP_INPUT_FORMATTER_BLACK_LEVEL_DEFAULT (0)
3090 #define ACAMERA_ISP_INPUT_FORMATTER_BLACK_LEVEL_DATASIZE (12)
3091 #define ACAMERA_ISP_INPUT_FORMATTER_BLACK_LEVEL_OFFSET (0x11c)
3092 #define ACAMERA_ISP_INPUT_FORMATTER_BLACK_LEVEL_MASK (0xfff)
3093 
3094 // args: data (12-bit)
acamera_isp_input_formatter_black_level_write(uintptr_t base,uint16_t data)3095 static __inline void acamera_isp_input_formatter_black_level_write(uintptr_t base, uint16_t data) {
3096     uint32_t curr = system_sw_read_32(base + 0x18fa4L);
3097     system_sw_write_32(base + 0x18fa4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3098 }
acamera_isp_input_formatter_black_level_read(uintptr_t base)3099 static __inline uint16_t acamera_isp_input_formatter_black_level_read(uintptr_t base) {
3100     return (uint16_t)((system_sw_read_32(base + 0x18fa4L) & 0xfff) >> 0);
3101 }
3102 // ------------------------------------------------------------------------------ //
3103 // Register: knee point0
3104 // ------------------------------------------------------------------------------ //
3105 
3106 // ------------------------------------------------------------------------------ //
3107 //  First knee point
3108 // ------------------------------------------------------------------------------ //
3109 
3110 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT0_DEFAULT (512)
3111 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT0_DATASIZE (16)
3112 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT0_OFFSET (0x120)
3113 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT0_MASK (0xffff)
3114 
3115 // args: data (16-bit)
acamera_isp_input_formatter_knee_point0_write(uintptr_t base,uint16_t data)3116 static __inline void acamera_isp_input_formatter_knee_point0_write(uintptr_t base, uint16_t data) {
3117     uint32_t curr = system_sw_read_32(base + 0x18fa8L);
3118     system_sw_write_32(base + 0x18fa8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
3119 }
acamera_isp_input_formatter_knee_point0_read(uintptr_t base)3120 static __inline uint16_t acamera_isp_input_formatter_knee_point0_read(uintptr_t base) {
3121     return (uint16_t)((system_sw_read_32(base + 0x18fa8L) & 0xffff) >> 0);
3122 }
3123 // ------------------------------------------------------------------------------ //
3124 // Register: knee point1
3125 // ------------------------------------------------------------------------------ //
3126 
3127 // ------------------------------------------------------------------------------ //
3128 //  Second knee point
3129 // ------------------------------------------------------------------------------ //
3130 
3131 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT1_DEFAULT (1408)
3132 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT1_DATASIZE (16)
3133 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT1_OFFSET (0x120)
3134 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT1_MASK (0xffff0000)
3135 
3136 // args: data (16-bit)
acamera_isp_input_formatter_knee_point1_write(uintptr_t base,uint16_t data)3137 static __inline void acamera_isp_input_formatter_knee_point1_write(uintptr_t base, uint16_t data) {
3138     uint32_t curr = system_sw_read_32(base + 0x18fa8L);
3139     system_sw_write_32(base + 0x18fa8L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
3140 }
acamera_isp_input_formatter_knee_point1_read(uintptr_t base)3141 static __inline uint16_t acamera_isp_input_formatter_knee_point1_read(uintptr_t base) {
3142     return (uint16_t)((system_sw_read_32(base + 0x18fa8L) & 0xffff0000) >> 16);
3143 }
3144 // ------------------------------------------------------------------------------ //
3145 // Register: knee point2
3146 // ------------------------------------------------------------------------------ //
3147 
3148 // ------------------------------------------------------------------------------ //
3149 //  Third knee point
3150 // ------------------------------------------------------------------------------ //
3151 
3152 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT2_DEFAULT (2177)
3153 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT2_DATASIZE (16)
3154 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT2_OFFSET (0x124)
3155 #define ACAMERA_ISP_INPUT_FORMATTER_KNEE_POINT2_MASK (0xffff)
3156 
3157 // args: data (16-bit)
acamera_isp_input_formatter_knee_point2_write(uintptr_t base,uint16_t data)3158 static __inline void acamera_isp_input_formatter_knee_point2_write(uintptr_t base, uint16_t data) {
3159     uint32_t curr = system_sw_read_32(base + 0x18facL);
3160     system_sw_write_32(base + 0x18facL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
3161 }
acamera_isp_input_formatter_knee_point2_read(uintptr_t base)3162 static __inline uint16_t acamera_isp_input_formatter_knee_point2_read(uintptr_t base) {
3163     return (uint16_t)((system_sw_read_32(base + 0x18facL) & 0xffff) >> 0);
3164 }
3165 // ------------------------------------------------------------------------------ //
3166 // Register: slope0 select
3167 // ------------------------------------------------------------------------------ //
3168 
3169 // ------------------------------------------------------------------------------ //
3170 //  First slope for companding table segments
3171 // ------------------------------------------------------------------------------ //
3172 
3173 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_DEFAULT (2)
3174 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_DATASIZE (4)
3175 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_OFFSET (0x128)
3176 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_MASK (0xf)
3177 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_1X (0)
3178 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_2X (1)
3179 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_4X (2)
3180 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_8X (3)
3181 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_16X (4)
3182 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_32X (5)
3183 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_64X (6)
3184 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_128X (7)
3185 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_256X (8)
3186 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_512X (9)
3187 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_1024X (10)
3188 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_2048X (11)
3189 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_4096X (12)
3190 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_8192X (13)
3191 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_16384X (14)
3192 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE0_SELECT_32768X (15)
3193 
3194 // args: data (4-bit)
acamera_isp_input_formatter_slope0_select_write(uintptr_t base,uint8_t data)3195 static __inline void acamera_isp_input_formatter_slope0_select_write(uintptr_t base, uint8_t data) {
3196     uint32_t curr = system_sw_read_32(base + 0x18fb0L);
3197     system_sw_write_32(base + 0x18fb0L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
3198 }
acamera_isp_input_formatter_slope0_select_read(uintptr_t base)3199 static __inline uint8_t acamera_isp_input_formatter_slope0_select_read(uintptr_t base) {
3200     return (uint8_t)((system_sw_read_32(base + 0x18fb0L) & 0xf) >> 0);
3201 }
3202 // ------------------------------------------------------------------------------ //
3203 // Register: slope1 select
3204 // ------------------------------------------------------------------------------ //
3205 
3206 // ------------------------------------------------------------------------------ //
3207 //  Second slope for companding table segments (encoding is the same as slope0 select)
3208 // ------------------------------------------------------------------------------ //
3209 
3210 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE1_SELECT_DEFAULT (4)
3211 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE1_SELECT_DATASIZE (4)
3212 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE1_SELECT_OFFSET (0x128)
3213 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE1_SELECT_MASK (0xf00)
3214 
3215 // args: data (4-bit)
acamera_isp_input_formatter_slope1_select_write(uintptr_t base,uint8_t data)3216 static __inline void acamera_isp_input_formatter_slope1_select_write(uintptr_t base, uint8_t data) {
3217     uint32_t curr = system_sw_read_32(base + 0x18fb0L);
3218     system_sw_write_32(base + 0x18fb0L, (((uint32_t) (data & 0xf)) << 8) | (curr & 0xfffff0ff));
3219 }
acamera_isp_input_formatter_slope1_select_read(uintptr_t base)3220 static __inline uint8_t acamera_isp_input_formatter_slope1_select_read(uintptr_t base) {
3221     return (uint8_t)((system_sw_read_32(base + 0x18fb0L) & 0xf00) >> 8);
3222 }
3223 // ------------------------------------------------------------------------------ //
3224 // Register: slope2 select
3225 // ------------------------------------------------------------------------------ //
3226 
3227 // ------------------------------------------------------------------------------ //
3228 //  Third slope for companding table segments (encoding is the same as slope0 select)
3229 // ------------------------------------------------------------------------------ //
3230 
3231 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE2_SELECT_DEFAULT (6)
3232 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE2_SELECT_DATASIZE (4)
3233 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE2_SELECT_OFFSET (0x128)
3234 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE2_SELECT_MASK (0xf0000)
3235 
3236 // args: data (4-bit)
acamera_isp_input_formatter_slope2_select_write(uintptr_t base,uint8_t data)3237 static __inline void acamera_isp_input_formatter_slope2_select_write(uintptr_t base, uint8_t data) {
3238     uint32_t curr = system_sw_read_32(base + 0x18fb0L);
3239     system_sw_write_32(base + 0x18fb0L, (((uint32_t) (data & 0xf)) << 16) | (curr & 0xfff0ffff));
3240 }
acamera_isp_input_formatter_slope2_select_read(uintptr_t base)3241 static __inline uint8_t acamera_isp_input_formatter_slope2_select_read(uintptr_t base) {
3242     return (uint8_t)((system_sw_read_32(base + 0x18fb0L) & 0xf0000) >> 16);
3243 }
3244 // ------------------------------------------------------------------------------ //
3245 // Register: slope3 select
3246 // ------------------------------------------------------------------------------ //
3247 
3248 // ------------------------------------------------------------------------------ //
3249 //  Last slope for companding table segments (encoding is the same as slope0 select)
3250 // ------------------------------------------------------------------------------ //
3251 
3252 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE3_SELECT_DEFAULT (9)
3253 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE3_SELECT_DATASIZE (4)
3254 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE3_SELECT_OFFSET (0x128)
3255 #define ACAMERA_ISP_INPUT_FORMATTER_SLOPE3_SELECT_MASK (0xf000000)
3256 
3257 // args: data (4-bit)
acamera_isp_input_formatter_slope3_select_write(uintptr_t base,uint8_t data)3258 static __inline void acamera_isp_input_formatter_slope3_select_write(uintptr_t base, uint8_t data) {
3259     uint32_t curr = system_sw_read_32(base + 0x18fb0L);
3260     system_sw_write_32(base + 0x18fb0L, (((uint32_t) (data & 0xf)) << 24) | (curr & 0xf0ffffff));
3261 }
acamera_isp_input_formatter_slope3_select_read(uintptr_t base)3262 static __inline uint8_t acamera_isp_input_formatter_slope3_select_read(uintptr_t base) {
3263     return (uint8_t)((system_sw_read_32(base + 0x18fb0L) & 0xf000000) >> 24);
3264 }
3265 // ------------------------------------------------------------------------------ //
3266 // Group: sensor offset wdr l
3267 // ------------------------------------------------------------------------------ //
3268 
3269 // ------------------------------------------------------------------------------ //
3270 // offset offset subtraction for each color channel and exposure
3271 // ------------------------------------------------------------------------------ //
3272 
3273 // ------------------------------------------------------------------------------ //
3274 // Register: offset 00
3275 // ------------------------------------------------------------------------------ //
3276 
3277 // ------------------------------------------------------------------------------ //
3278 // offset offset for color channel 00 (R)
3279 // ------------------------------------------------------------------------------ //
3280 
3281 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_00_DEFAULT (0x00)
3282 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_00_DATASIZE (12)
3283 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_00_OFFSET (0x12c)
3284 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_00_MASK (0xfff)
3285 
3286 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_l_offset_00_write(uintptr_t base,uint16_t data)3287 static __inline void acamera_isp_sensor_offset_wdr_l_offset_00_write(uintptr_t base, uint16_t data) {
3288     uint32_t curr = system_sw_read_32(base + 0x18fb4L);
3289     system_sw_write_32(base + 0x18fb4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3290 }
acamera_isp_sensor_offset_wdr_l_offset_00_read(uintptr_t base)3291 static __inline uint16_t acamera_isp_sensor_offset_wdr_l_offset_00_read(uintptr_t base) {
3292     return (uint16_t)((system_sw_read_32(base + 0x18fb4L) & 0xfff) >> 0);
3293 }
3294 // ------------------------------------------------------------------------------ //
3295 // Register: offset 01
3296 // ------------------------------------------------------------------------------ //
3297 
3298 // ------------------------------------------------------------------------------ //
3299 // offset offset for color channel 01 (Gr)
3300 // ------------------------------------------------------------------------------ //
3301 
3302 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_01_DEFAULT (0x00)
3303 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_01_DATASIZE (12)
3304 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_01_OFFSET (0x12c)
3305 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_01_MASK (0xfff0000)
3306 
3307 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_l_offset_01_write(uintptr_t base,uint16_t data)3308 static __inline void acamera_isp_sensor_offset_wdr_l_offset_01_write(uintptr_t base, uint16_t data) {
3309     uint32_t curr = system_sw_read_32(base + 0x18fb4L);
3310     system_sw_write_32(base + 0x18fb4L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3311 }
acamera_isp_sensor_offset_wdr_l_offset_01_read(uintptr_t base)3312 static __inline uint16_t acamera_isp_sensor_offset_wdr_l_offset_01_read(uintptr_t base) {
3313     return (uint16_t)((system_sw_read_32(base + 0x18fb4L) & 0xfff0000) >> 16);
3314 }
3315 // ------------------------------------------------------------------------------ //
3316 // Register: offset 10
3317 // ------------------------------------------------------------------------------ //
3318 
3319 // ------------------------------------------------------------------------------ //
3320 // offset offset for color channel 10 (Gb)
3321 // ------------------------------------------------------------------------------ //
3322 
3323 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_10_DEFAULT (0x00)
3324 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_10_DATASIZE (12)
3325 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_10_OFFSET (0x130)
3326 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_10_MASK (0xfff)
3327 
3328 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_l_offset_10_write(uintptr_t base,uint16_t data)3329 static __inline void acamera_isp_sensor_offset_wdr_l_offset_10_write(uintptr_t base, uint16_t data) {
3330     uint32_t curr = system_sw_read_32(base + 0x18fb8L);
3331     system_sw_write_32(base + 0x18fb8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3332 }
acamera_isp_sensor_offset_wdr_l_offset_10_read(uintptr_t base)3333 static __inline uint16_t acamera_isp_sensor_offset_wdr_l_offset_10_read(uintptr_t base) {
3334     return (uint16_t)((system_sw_read_32(base + 0x18fb8L) & 0xfff) >> 0);
3335 }
3336 // ------------------------------------------------------------------------------ //
3337 // Register: offset 11
3338 // ------------------------------------------------------------------------------ //
3339 
3340 // ------------------------------------------------------------------------------ //
3341 // offset offset for color channel 11 (B)
3342 // ------------------------------------------------------------------------------ //
3343 
3344 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_11_DEFAULT (0x00)
3345 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_11_DATASIZE (12)
3346 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_11_OFFSET (0x130)
3347 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_L_OFFSET_11_MASK (0xfff0000)
3348 
3349 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_l_offset_11_write(uintptr_t base,uint16_t data)3350 static __inline void acamera_isp_sensor_offset_wdr_l_offset_11_write(uintptr_t base, uint16_t data) {
3351     uint32_t curr = system_sw_read_32(base + 0x18fb8L);
3352     system_sw_write_32(base + 0x18fb8L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3353 }
acamera_isp_sensor_offset_wdr_l_offset_11_read(uintptr_t base)3354 static __inline uint16_t acamera_isp_sensor_offset_wdr_l_offset_11_read(uintptr_t base) {
3355     return (uint16_t)((system_sw_read_32(base + 0x18fb8L) & 0xfff0000) >> 16);
3356 }
3357 // ------------------------------------------------------------------------------ //
3358 // Group: sensor offset wdr m
3359 // ------------------------------------------------------------------------------ //
3360 
3361 // ------------------------------------------------------------------------------ //
3362 // offset offset subtraction for each color channel and exposure
3363 // ------------------------------------------------------------------------------ //
3364 
3365 // ------------------------------------------------------------------------------ //
3366 // Register: offset 00
3367 // ------------------------------------------------------------------------------ //
3368 
3369 // ------------------------------------------------------------------------------ //
3370 // offset offset for color channel 00 (R)
3371 // ------------------------------------------------------------------------------ //
3372 
3373 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_00_DEFAULT (0x00)
3374 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_00_DATASIZE (12)
3375 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_00_OFFSET (0x134)
3376 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_00_MASK (0xfff)
3377 
3378 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_m_offset_00_write(uintptr_t base,uint16_t data)3379 static __inline void acamera_isp_sensor_offset_wdr_m_offset_00_write(uintptr_t base, uint16_t data) {
3380     uint32_t curr = system_sw_read_32(base + 0x18fbcL);
3381     system_sw_write_32(base + 0x18fbcL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3382 }
acamera_isp_sensor_offset_wdr_m_offset_00_read(uintptr_t base)3383 static __inline uint16_t acamera_isp_sensor_offset_wdr_m_offset_00_read(uintptr_t base) {
3384     return (uint16_t)((system_sw_read_32(base + 0x18fbcL) & 0xfff) >> 0);
3385 }
3386 // ------------------------------------------------------------------------------ //
3387 // Register: offset 01
3388 // ------------------------------------------------------------------------------ //
3389 
3390 // ------------------------------------------------------------------------------ //
3391 // offset offset for color channel 01 (Gr)
3392 // ------------------------------------------------------------------------------ //
3393 
3394 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_01_DEFAULT (0x00)
3395 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_01_DATASIZE (12)
3396 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_01_OFFSET (0x134)
3397 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_01_MASK (0xfff0000)
3398 
3399 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_m_offset_01_write(uintptr_t base,uint16_t data)3400 static __inline void acamera_isp_sensor_offset_wdr_m_offset_01_write(uintptr_t base, uint16_t data) {
3401     uint32_t curr = system_sw_read_32(base + 0x18fbcL);
3402     system_sw_write_32(base + 0x18fbcL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3403 }
acamera_isp_sensor_offset_wdr_m_offset_01_read(uintptr_t base)3404 static __inline uint16_t acamera_isp_sensor_offset_wdr_m_offset_01_read(uintptr_t base) {
3405     return (uint16_t)((system_sw_read_32(base + 0x18fbcL) & 0xfff0000) >> 16);
3406 }
3407 // ------------------------------------------------------------------------------ //
3408 // Register: offset 10
3409 // ------------------------------------------------------------------------------ //
3410 
3411 // ------------------------------------------------------------------------------ //
3412 // offset offset for color channel 10 (Gb)
3413 // ------------------------------------------------------------------------------ //
3414 
3415 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_10_DEFAULT (0x00)
3416 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_10_DATASIZE (12)
3417 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_10_OFFSET (0x138)
3418 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_10_MASK (0xfff)
3419 
3420 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_m_offset_10_write(uintptr_t base,uint16_t data)3421 static __inline void acamera_isp_sensor_offset_wdr_m_offset_10_write(uintptr_t base, uint16_t data) {
3422     uint32_t curr = system_sw_read_32(base + 0x18fc0L);
3423     system_sw_write_32(base + 0x18fc0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3424 }
acamera_isp_sensor_offset_wdr_m_offset_10_read(uintptr_t base)3425 static __inline uint16_t acamera_isp_sensor_offset_wdr_m_offset_10_read(uintptr_t base) {
3426     return (uint16_t)((system_sw_read_32(base + 0x18fc0L) & 0xfff) >> 0);
3427 }
3428 // ------------------------------------------------------------------------------ //
3429 // Register: offset 11
3430 // ------------------------------------------------------------------------------ //
3431 
3432 // ------------------------------------------------------------------------------ //
3433 // offset offset for color channel 11 (B)
3434 // ------------------------------------------------------------------------------ //
3435 
3436 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_11_DEFAULT (0x00)
3437 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_11_DATASIZE (12)
3438 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_11_OFFSET (0x138)
3439 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_M_OFFSET_11_MASK (0xfff0000)
3440 
3441 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_m_offset_11_write(uintptr_t base,uint16_t data)3442 static __inline void acamera_isp_sensor_offset_wdr_m_offset_11_write(uintptr_t base, uint16_t data) {
3443     uint32_t curr = system_sw_read_32(base + 0x18fc0L);
3444     system_sw_write_32(base + 0x18fc0L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3445 }
acamera_isp_sensor_offset_wdr_m_offset_11_read(uintptr_t base)3446 static __inline uint16_t acamera_isp_sensor_offset_wdr_m_offset_11_read(uintptr_t base) {
3447     return (uint16_t)((system_sw_read_32(base + 0x18fc0L) & 0xfff0000) >> 16);
3448 }
3449 // ------------------------------------------------------------------------------ //
3450 // Group: sensor offset wdr s
3451 // ------------------------------------------------------------------------------ //
3452 
3453 // ------------------------------------------------------------------------------ //
3454 // offset offset subtraction for each color channel and exposure
3455 // ------------------------------------------------------------------------------ //
3456 
3457 // ------------------------------------------------------------------------------ //
3458 // Register: offset 00
3459 // ------------------------------------------------------------------------------ //
3460 
3461 // ------------------------------------------------------------------------------ //
3462 // offset offset for color channel 00 (R)
3463 // ------------------------------------------------------------------------------ //
3464 
3465 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_00_DEFAULT (0x00)
3466 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_00_DATASIZE (12)
3467 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_00_OFFSET (0x13c)
3468 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_00_MASK (0xfff)
3469 
3470 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_s_offset_00_write(uintptr_t base,uint16_t data)3471 static __inline void acamera_isp_sensor_offset_wdr_s_offset_00_write(uintptr_t base, uint16_t data) {
3472     uint32_t curr = system_sw_read_32(base + 0x18fc4L);
3473     system_sw_write_32(base + 0x18fc4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3474 }
acamera_isp_sensor_offset_wdr_s_offset_00_read(uintptr_t base)3475 static __inline uint16_t acamera_isp_sensor_offset_wdr_s_offset_00_read(uintptr_t base) {
3476     return (uint16_t)((system_sw_read_32(base + 0x18fc4L) & 0xfff) >> 0);
3477 }
3478 // ------------------------------------------------------------------------------ //
3479 // Register: offset 01
3480 // ------------------------------------------------------------------------------ //
3481 
3482 // ------------------------------------------------------------------------------ //
3483 // offset offset for color channel 01 (Gr)
3484 // ------------------------------------------------------------------------------ //
3485 
3486 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_01_DEFAULT (0x00)
3487 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_01_DATASIZE (12)
3488 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_01_OFFSET (0x13c)
3489 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_01_MASK (0xfff0000)
3490 
3491 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_s_offset_01_write(uintptr_t base,uint16_t data)3492 static __inline void acamera_isp_sensor_offset_wdr_s_offset_01_write(uintptr_t base, uint16_t data) {
3493     uint32_t curr = system_sw_read_32(base + 0x18fc4L);
3494     system_sw_write_32(base + 0x18fc4L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3495 }
acamera_isp_sensor_offset_wdr_s_offset_01_read(uintptr_t base)3496 static __inline uint16_t acamera_isp_sensor_offset_wdr_s_offset_01_read(uintptr_t base) {
3497     return (uint16_t)((system_sw_read_32(base + 0x18fc4L) & 0xfff0000) >> 16);
3498 }
3499 // ------------------------------------------------------------------------------ //
3500 // Register: offset 10
3501 // ------------------------------------------------------------------------------ //
3502 
3503 // ------------------------------------------------------------------------------ //
3504 // offset offset for color channel 10 (Gb)
3505 // ------------------------------------------------------------------------------ //
3506 
3507 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_10_DEFAULT (0x00)
3508 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_10_DATASIZE (12)
3509 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_10_OFFSET (0x140)
3510 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_10_MASK (0xfff)
3511 
3512 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_s_offset_10_write(uintptr_t base,uint16_t data)3513 static __inline void acamera_isp_sensor_offset_wdr_s_offset_10_write(uintptr_t base, uint16_t data) {
3514     uint32_t curr = system_sw_read_32(base + 0x18fc8L);
3515     system_sw_write_32(base + 0x18fc8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3516 }
acamera_isp_sensor_offset_wdr_s_offset_10_read(uintptr_t base)3517 static __inline uint16_t acamera_isp_sensor_offset_wdr_s_offset_10_read(uintptr_t base) {
3518     return (uint16_t)((system_sw_read_32(base + 0x18fc8L) & 0xfff) >> 0);
3519 }
3520 // ------------------------------------------------------------------------------ //
3521 // Register: offset 11
3522 // ------------------------------------------------------------------------------ //
3523 
3524 // ------------------------------------------------------------------------------ //
3525 // offset offset for color channel 11 (B)
3526 // ------------------------------------------------------------------------------ //
3527 
3528 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_11_DEFAULT (0x00)
3529 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_11_DATASIZE (12)
3530 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_11_OFFSET (0x140)
3531 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_S_OFFSET_11_MASK (0xfff0000)
3532 
3533 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_s_offset_11_write(uintptr_t base,uint16_t data)3534 static __inline void acamera_isp_sensor_offset_wdr_s_offset_11_write(uintptr_t base, uint16_t data) {
3535     uint32_t curr = system_sw_read_32(base + 0x18fc8L);
3536     system_sw_write_32(base + 0x18fc8L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3537 }
acamera_isp_sensor_offset_wdr_s_offset_11_read(uintptr_t base)3538 static __inline uint16_t acamera_isp_sensor_offset_wdr_s_offset_11_read(uintptr_t base) {
3539     return (uint16_t)((system_sw_read_32(base + 0x18fc8L) & 0xfff0000) >> 16);
3540 }
3541 // ------------------------------------------------------------------------------ //
3542 // Group: sensor offset wdr vs
3543 // ------------------------------------------------------------------------------ //
3544 
3545 // ------------------------------------------------------------------------------ //
3546 // offset offset subtraction for each color channel and exposure
3547 // ------------------------------------------------------------------------------ //
3548 
3549 // ------------------------------------------------------------------------------ //
3550 // Register: offset 00
3551 // ------------------------------------------------------------------------------ //
3552 
3553 // ------------------------------------------------------------------------------ //
3554 // offset offset for color channel 00 (R)
3555 // ------------------------------------------------------------------------------ //
3556 
3557 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_00_DEFAULT (0x00)
3558 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_00_DATASIZE (12)
3559 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_00_OFFSET (0x144)
3560 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_00_MASK (0xfff)
3561 
3562 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_vs_offset_00_write(uintptr_t base,uint16_t data)3563 static __inline void acamera_isp_sensor_offset_wdr_vs_offset_00_write(uintptr_t base, uint16_t data) {
3564     uint32_t curr = system_sw_read_32(base + 0x18fccL);
3565     system_sw_write_32(base + 0x18fccL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3566 }
acamera_isp_sensor_offset_wdr_vs_offset_00_read(uintptr_t base)3567 static __inline uint16_t acamera_isp_sensor_offset_wdr_vs_offset_00_read(uintptr_t base) {
3568     return (uint16_t)((system_sw_read_32(base + 0x18fccL) & 0xfff) >> 0);
3569 }
3570 // ------------------------------------------------------------------------------ //
3571 // Register: offset 01
3572 // ------------------------------------------------------------------------------ //
3573 
3574 // ------------------------------------------------------------------------------ //
3575 // offset offset for color channel 01 (Gr)
3576 // ------------------------------------------------------------------------------ //
3577 
3578 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_01_DEFAULT (0x00)
3579 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_01_DATASIZE (12)
3580 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_01_OFFSET (0x144)
3581 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_01_MASK (0xfff0000)
3582 
3583 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_vs_offset_01_write(uintptr_t base,uint16_t data)3584 static __inline void acamera_isp_sensor_offset_wdr_vs_offset_01_write(uintptr_t base, uint16_t data) {
3585     uint32_t curr = system_sw_read_32(base + 0x18fccL);
3586     system_sw_write_32(base + 0x18fccL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3587 }
acamera_isp_sensor_offset_wdr_vs_offset_01_read(uintptr_t base)3588 static __inline uint16_t acamera_isp_sensor_offset_wdr_vs_offset_01_read(uintptr_t base) {
3589     return (uint16_t)((system_sw_read_32(base + 0x18fccL) & 0xfff0000) >> 16);
3590 }
3591 // ------------------------------------------------------------------------------ //
3592 // Register: offset 10
3593 // ------------------------------------------------------------------------------ //
3594 
3595 // ------------------------------------------------------------------------------ //
3596 // offset offset for color channel 10 (Gb)
3597 // ------------------------------------------------------------------------------ //
3598 
3599 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_10_DEFAULT (0x00)
3600 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_10_DATASIZE (12)
3601 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_10_OFFSET (0x148)
3602 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_10_MASK (0xfff)
3603 
3604 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_vs_offset_10_write(uintptr_t base,uint16_t data)3605 static __inline void acamera_isp_sensor_offset_wdr_vs_offset_10_write(uintptr_t base, uint16_t data) {
3606     uint32_t curr = system_sw_read_32(base + 0x18fd0L);
3607     system_sw_write_32(base + 0x18fd0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3608 }
acamera_isp_sensor_offset_wdr_vs_offset_10_read(uintptr_t base)3609 static __inline uint16_t acamera_isp_sensor_offset_wdr_vs_offset_10_read(uintptr_t base) {
3610     return (uint16_t)((system_sw_read_32(base + 0x18fd0L) & 0xfff) >> 0);
3611 }
3612 // ------------------------------------------------------------------------------ //
3613 // Register: offset 11
3614 // ------------------------------------------------------------------------------ //
3615 
3616 // ------------------------------------------------------------------------------ //
3617 // offset offset for color channel 11 (B)
3618 // ------------------------------------------------------------------------------ //
3619 
3620 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_11_DEFAULT (0x00)
3621 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_11_DATASIZE (12)
3622 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_11_OFFSET (0x148)
3623 #define ACAMERA_ISP_SENSOR_OFFSET_WDR_VS_OFFSET_11_MASK (0xfff0000)
3624 
3625 // args: data (12-bit)
acamera_isp_sensor_offset_wdr_vs_offset_11_write(uintptr_t base,uint16_t data)3626 static __inline void acamera_isp_sensor_offset_wdr_vs_offset_11_write(uintptr_t base, uint16_t data) {
3627     uint32_t curr = system_sw_read_32(base + 0x18fd0L);
3628     system_sw_write_32(base + 0x18fd0L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3629 }
acamera_isp_sensor_offset_wdr_vs_offset_11_read(uintptr_t base)3630 static __inline uint16_t acamera_isp_sensor_offset_wdr_vs_offset_11_read(uintptr_t base) {
3631     return (uint16_t)((system_sw_read_32(base + 0x18fd0L) & 0xfff0000) >> 16);
3632 }
3633 // ------------------------------------------------------------------------------ //
3634 // Group: gain wdr
3635 // ------------------------------------------------------------------------------ //
3636 
3637 // ------------------------------------------------------------------------------ //
3638 // Gain adjustment for the WDR stitching
3639 // ------------------------------------------------------------------------------ //
3640 
3641 // ------------------------------------------------------------------------------ //
3642 // Register: Gain_l
3643 // ------------------------------------------------------------------------------ //
3644 
3645 // ------------------------------------------------------------------------------ //
3646 // Gain applied to ch-long data in 5.8 format
3647 // ------------------------------------------------------------------------------ //
3648 
3649 #define ACAMERA_ISP_GAIN_WDR_GAIN_L_DEFAULT (0x100)
3650 #define ACAMERA_ISP_GAIN_WDR_GAIN_L_DATASIZE (13)
3651 #define ACAMERA_ISP_GAIN_WDR_GAIN_L_OFFSET (0x14c)
3652 #define ACAMERA_ISP_GAIN_WDR_GAIN_L_MASK (0x1fff)
3653 
3654 // args: data (13-bit)
acamera_isp_gain_wdr_gain_l_write(uintptr_t base,uint16_t data)3655 static __inline void acamera_isp_gain_wdr_gain_l_write(uintptr_t base, uint16_t data) {
3656     uint32_t curr = system_sw_read_32(base + 0x18fd4L);
3657     system_sw_write_32(base + 0x18fd4L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
3658 }
acamera_isp_gain_wdr_gain_l_read(uintptr_t base)3659 static __inline uint16_t acamera_isp_gain_wdr_gain_l_read(uintptr_t base) {
3660     return (uint16_t)((system_sw_read_32(base + 0x18fd4L) & 0x1fff) >> 0);
3661 }
3662 // ------------------------------------------------------------------------------ //
3663 // Register: Gain_m
3664 // ------------------------------------------------------------------------------ //
3665 
3666 // ------------------------------------------------------------------------------ //
3667 // Gain applied to ch-medium data in 5.8 format
3668 // ------------------------------------------------------------------------------ //
3669 
3670 #define ACAMERA_ISP_GAIN_WDR_GAIN_M_DEFAULT (0x100)
3671 #define ACAMERA_ISP_GAIN_WDR_GAIN_M_DATASIZE (13)
3672 #define ACAMERA_ISP_GAIN_WDR_GAIN_M_OFFSET (0x14c)
3673 #define ACAMERA_ISP_GAIN_WDR_GAIN_M_MASK (0x1fff0000)
3674 
3675 // args: data (13-bit)
acamera_isp_gain_wdr_gain_m_write(uintptr_t base,uint16_t data)3676 static __inline void acamera_isp_gain_wdr_gain_m_write(uintptr_t base, uint16_t data) {
3677     uint32_t curr = system_sw_read_32(base + 0x18fd4L);
3678     system_sw_write_32(base + 0x18fd4L, (((uint32_t) (data & 0x1fff)) << 16) | (curr & 0xe000ffff));
3679 }
acamera_isp_gain_wdr_gain_m_read(uintptr_t base)3680 static __inline uint16_t acamera_isp_gain_wdr_gain_m_read(uintptr_t base) {
3681     return (uint16_t)((system_sw_read_32(base + 0x18fd4L) & 0x1fff0000) >> 16);
3682 }
3683 // ------------------------------------------------------------------------------ //
3684 // Register: Gain_s
3685 // ------------------------------------------------------------------------------ //
3686 
3687 // ------------------------------------------------------------------------------ //
3688 // Gain applied to ch-short data in 5.8 format
3689 // ------------------------------------------------------------------------------ //
3690 
3691 #define ACAMERA_ISP_GAIN_WDR_GAIN_S_DEFAULT (0x100)
3692 #define ACAMERA_ISP_GAIN_WDR_GAIN_S_DATASIZE (13)
3693 #define ACAMERA_ISP_GAIN_WDR_GAIN_S_OFFSET (0x150)
3694 #define ACAMERA_ISP_GAIN_WDR_GAIN_S_MASK (0x1fff)
3695 
3696 // args: data (13-bit)
acamera_isp_gain_wdr_gain_s_write(uintptr_t base,uint16_t data)3697 static __inline void acamera_isp_gain_wdr_gain_s_write(uintptr_t base, uint16_t data) {
3698     uint32_t curr = system_sw_read_32(base + 0x18fd8L);
3699     system_sw_write_32(base + 0x18fd8L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
3700 }
acamera_isp_gain_wdr_gain_s_read(uintptr_t base)3701 static __inline uint16_t acamera_isp_gain_wdr_gain_s_read(uintptr_t base) {
3702     return (uint16_t)((system_sw_read_32(base + 0x18fd8L) & 0x1fff) >> 0);
3703 }
3704 // ------------------------------------------------------------------------------ //
3705 // Register: Gain_vs
3706 // ------------------------------------------------------------------------------ //
3707 
3708 // ------------------------------------------------------------------------------ //
3709 // Gain applied to ch-vs data in 5.8 format
3710 // ------------------------------------------------------------------------------ //
3711 
3712 #define ACAMERA_ISP_GAIN_WDR_GAIN_VS_DEFAULT (0x100)
3713 #define ACAMERA_ISP_GAIN_WDR_GAIN_VS_DATASIZE (13)
3714 #define ACAMERA_ISP_GAIN_WDR_GAIN_VS_OFFSET (0x150)
3715 #define ACAMERA_ISP_GAIN_WDR_GAIN_VS_MASK (0x1fff0000)
3716 
3717 // args: data (13-bit)
acamera_isp_gain_wdr_gain_vs_write(uintptr_t base,uint16_t data)3718 static __inline void acamera_isp_gain_wdr_gain_vs_write(uintptr_t base, uint16_t data) {
3719     uint32_t curr = system_sw_read_32(base + 0x18fd8L);
3720     system_sw_write_32(base + 0x18fd8L, (((uint32_t) (data & 0x1fff)) << 16) | (curr & 0xe000ffff));
3721 }
acamera_isp_gain_wdr_gain_vs_read(uintptr_t base)3722 static __inline uint16_t acamera_isp_gain_wdr_gain_vs_read(uintptr_t base) {
3723     return (uint16_t)((system_sw_read_32(base + 0x18fd8L) & 0x1fff0000) >> 16);
3724 }
3725 // ------------------------------------------------------------------------------ //
3726 // Register: black_level_l
3727 // ------------------------------------------------------------------------------ //
3728 
3729 // ------------------------------------------------------------------------------ //
3730 // Sensor offset applied to ch-long data
3731 // ------------------------------------------------------------------------------ //
3732 
3733 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_L_DEFAULT (0x0000)
3734 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_L_DATASIZE (12)
3735 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_L_OFFSET (0x154)
3736 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_L_MASK (0xfff)
3737 
3738 // args: data (12-bit)
acamera_isp_gain_wdr_black_level_l_write(uintptr_t base,uint16_t data)3739 static __inline void acamera_isp_gain_wdr_black_level_l_write(uintptr_t base, uint16_t data) {
3740     uint32_t curr = system_sw_read_32(base + 0x18fdcL);
3741     system_sw_write_32(base + 0x18fdcL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3742 }
acamera_isp_gain_wdr_black_level_l_read(uintptr_t base)3743 static __inline uint16_t acamera_isp_gain_wdr_black_level_l_read(uintptr_t base) {
3744     return (uint16_t)((system_sw_read_32(base + 0x18fdcL) & 0xfff) >> 0);
3745 }
3746 // ------------------------------------------------------------------------------ //
3747 // Register: black_level_m
3748 // ------------------------------------------------------------------------------ //
3749 
3750 // ------------------------------------------------------------------------------ //
3751 // Sensor offset applied to ch-medium data
3752 // ------------------------------------------------------------------------------ //
3753 
3754 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_M_DEFAULT (0x0000)
3755 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_M_DATASIZE (12)
3756 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_M_OFFSET (0x154)
3757 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_M_MASK (0xfff0000)
3758 
3759 // args: data (12-bit)
acamera_isp_gain_wdr_black_level_m_write(uintptr_t base,uint16_t data)3760 static __inline void acamera_isp_gain_wdr_black_level_m_write(uintptr_t base, uint16_t data) {
3761     uint32_t curr = system_sw_read_32(base + 0x18fdcL);
3762     system_sw_write_32(base + 0x18fdcL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3763 }
acamera_isp_gain_wdr_black_level_m_read(uintptr_t base)3764 static __inline uint16_t acamera_isp_gain_wdr_black_level_m_read(uintptr_t base) {
3765     return (uint16_t)((system_sw_read_32(base + 0x18fdcL) & 0xfff0000) >> 16);
3766 }
3767 // ------------------------------------------------------------------------------ //
3768 // Register: black_level_s
3769 // ------------------------------------------------------------------------------ //
3770 
3771 // ------------------------------------------------------------------------------ //
3772 // Sensor offset applied to ch-short data
3773 // ------------------------------------------------------------------------------ //
3774 
3775 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_S_DEFAULT (0x0000)
3776 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_S_DATASIZE (12)
3777 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_S_OFFSET (0x158)
3778 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_S_MASK (0xfff)
3779 
3780 // args: data (12-bit)
acamera_isp_gain_wdr_black_level_s_write(uintptr_t base,uint16_t data)3781 static __inline void acamera_isp_gain_wdr_black_level_s_write(uintptr_t base, uint16_t data) {
3782     uint32_t curr = system_sw_read_32(base + 0x18fe0L);
3783     system_sw_write_32(base + 0x18fe0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3784 }
acamera_isp_gain_wdr_black_level_s_read(uintptr_t base)3785 static __inline uint16_t acamera_isp_gain_wdr_black_level_s_read(uintptr_t base) {
3786     return (uint16_t)((system_sw_read_32(base + 0x18fe0L) & 0xfff) >> 0);
3787 }
3788 // ------------------------------------------------------------------------------ //
3789 // Register: black_level_vs
3790 // ------------------------------------------------------------------------------ //
3791 
3792 // ------------------------------------------------------------------------------ //
3793 // Sensor offset applied to ch-veryshort data
3794 // ------------------------------------------------------------------------------ //
3795 
3796 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_VS_DEFAULT (0x0000)
3797 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_VS_DATASIZE (12)
3798 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_VS_OFFSET (0x158)
3799 #define ACAMERA_ISP_GAIN_WDR_BLACK_LEVEL_VS_MASK (0xfff0000)
3800 
3801 // args: data (12-bit)
acamera_isp_gain_wdr_black_level_vs_write(uintptr_t base,uint16_t data)3802 static __inline void acamera_isp_gain_wdr_black_level_vs_write(uintptr_t base, uint16_t data) {
3803     uint32_t curr = system_sw_read_32(base + 0x18fe0L);
3804     system_sw_write_32(base + 0x18fe0L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3805 }
acamera_isp_gain_wdr_black_level_vs_read(uintptr_t base)3806 static __inline uint16_t acamera_isp_gain_wdr_black_level_vs_read(uintptr_t base) {
3807     return (uint16_t)((system_sw_read_32(base + 0x18fe0L) & 0xfff0000) >> 16);
3808 }
3809 // ------------------------------------------------------------------------------ //
3810 // Group: frame stitch
3811 // ------------------------------------------------------------------------------ //
3812 
3813 // ------------------------------------------------------------------------------ //
3814 //
3815 //                4-exposure wide-dynamic-range blending
3816 //
3817 //                NOTE:
3818 //                    If the WDR is configured to stitch 2 exposures, then the configuration must be done through the LM_ pair
3819 //                    the short exposures black level must be programmed through the med_black_level register so that the LM pair
3820 //                    can be used.
3821 //
3822 //
3823 //
3824 // ------------------------------------------------------------------------------ //
3825 
3826 // ------------------------------------------------------------------------------ //
3827 // Register: mode_in
3828 // ------------------------------------------------------------------------------ //
3829 
3830 // ------------------------------------------------------------------------------ //
3831 //  0 : 4-exposure
3832 //                          1 : 2-exposure
3833 //                          2 : 3-exposure
3834 //                          3 : 4-exposure
3835 //
3836 // ------------------------------------------------------------------------------ //
3837 
3838 #define ACAMERA_ISP_FRAME_STITCH_MODE_IN_DEFAULT (0)
3839 #define ACAMERA_ISP_FRAME_STITCH_MODE_IN_DATASIZE (2)
3840 #define ACAMERA_ISP_FRAME_STITCH_MODE_IN_OFFSET (0x15c)
3841 #define ACAMERA_ISP_FRAME_STITCH_MODE_IN_MASK (0x3)
3842 
3843 // args: data (2-bit)
acamera_isp_frame_stitch_mode_in_write(uintptr_t base,uint8_t data)3844 static __inline void acamera_isp_frame_stitch_mode_in_write(uintptr_t base, uint8_t data) {
3845     uint32_t curr = system_sw_read_32(base + 0x18fe4L);
3846     system_sw_write_32(base + 0x18fe4L, (((uint32_t) (data & 0x3)) << 0) | (curr & 0xfffffffc));
3847 }
acamera_isp_frame_stitch_mode_in_read(uintptr_t base)3848 static __inline uint8_t acamera_isp_frame_stitch_mode_in_read(uintptr_t base) {
3849     return (uint8_t)((system_sw_read_32(base + 0x18fe4L) & 0x3) >> 0);
3850 }
3851 // ------------------------------------------------------------------------------ //
3852 // Register: output_select
3853 // ------------------------------------------------------------------------------ //
3854 
3855 // ------------------------------------------------------------------------------ //
3856 //
3857 //            This register is only for debug purpose. for normal operation it must be kept in its default value (0)
3858 //            0 : normal stitched output
3859 //            1 : long data routed out
3860 //            2 : medium data routed out
3861 //            4 : short data routed out
3862 //            8 : very short data routed out
3863 //            16: LM stitched output taken out
3864 //            32: MS stitched output taken out
3865 //            64: SVS stitched output taken out
3866 //            others: reserved
3867 //
3868 // ------------------------------------------------------------------------------ //
3869 
3870 #define ACAMERA_ISP_FRAME_STITCH_OUTPUT_SELECT_DEFAULT (0)
3871 #define ACAMERA_ISP_FRAME_STITCH_OUTPUT_SELECT_DATASIZE (8)
3872 #define ACAMERA_ISP_FRAME_STITCH_OUTPUT_SELECT_OFFSET (0x15c)
3873 #define ACAMERA_ISP_FRAME_STITCH_OUTPUT_SELECT_MASK (0xff00)
3874 
3875 // args: data (8-bit)
acamera_isp_frame_stitch_output_select_write(uintptr_t base,uint8_t data)3876 static __inline void acamera_isp_frame_stitch_output_select_write(uintptr_t base, uint8_t data) {
3877     uint32_t curr = system_sw_read_32(base + 0x18fe4L);
3878     system_sw_write_32(base + 0x18fe4L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
3879 }
acamera_isp_frame_stitch_output_select_read(uintptr_t base)3880 static __inline uint8_t acamera_isp_frame_stitch_output_select_read(uintptr_t base) {
3881     return (uint8_t)((system_sw_read_32(base + 0x18fe4L) & 0xff00) >> 8);
3882 }
3883 // ------------------------------------------------------------------------------ //
3884 // Register: LM_Exposure_Ratio
3885 // ------------------------------------------------------------------------------ //
3886 
3887 // ------------------------------------------------------------------------------ //
3888 // Sets ratio between long and medium exposures - this must match the actual exposure ratio on the sensor
3889 // ------------------------------------------------------------------------------ //
3890 
3891 #define ACAMERA_ISP_FRAME_STITCH_LM_EXPOSURE_RATIO_DEFAULT (0x100)
3892 #define ACAMERA_ISP_FRAME_STITCH_LM_EXPOSURE_RATIO_DATASIZE (12)
3893 #define ACAMERA_ISP_FRAME_STITCH_LM_EXPOSURE_RATIO_OFFSET (0x160)
3894 #define ACAMERA_ISP_FRAME_STITCH_LM_EXPOSURE_RATIO_MASK (0xfff)
3895 
3896 // args: data (12-bit)
acamera_isp_frame_stitch_lm_exposure_ratio_write(uintptr_t base,uint16_t data)3897 static __inline void acamera_isp_frame_stitch_lm_exposure_ratio_write(uintptr_t base, uint16_t data) {
3898     uint32_t curr = system_sw_read_32(base + 0x18fe8L);
3899     system_sw_write_32(base + 0x18fe8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3900 }
acamera_isp_frame_stitch_lm_exposure_ratio_read(uintptr_t base)3901 static __inline uint16_t acamera_isp_frame_stitch_lm_exposure_ratio_read(uintptr_t base) {
3902     return (uint16_t)((system_sw_read_32(base + 0x18fe8L) & 0xfff) >> 0);
3903 }
3904 // ------------------------------------------------------------------------------ //
3905 // Register: MS_Exposure_Ratio
3906 // ------------------------------------------------------------------------------ //
3907 
3908 // ------------------------------------------------------------------------------ //
3909 // Sets ratio between medium and short exposures - this must match the actual exposure ratio on the sensor
3910 // ------------------------------------------------------------------------------ //
3911 
3912 #define ACAMERA_ISP_FRAME_STITCH_MS_EXPOSURE_RATIO_DEFAULT (0x100)
3913 #define ACAMERA_ISP_FRAME_STITCH_MS_EXPOSURE_RATIO_DATASIZE (12)
3914 #define ACAMERA_ISP_FRAME_STITCH_MS_EXPOSURE_RATIO_OFFSET (0x160)
3915 #define ACAMERA_ISP_FRAME_STITCH_MS_EXPOSURE_RATIO_MASK (0xfff0000)
3916 
3917 // args: data (12-bit)
acamera_isp_frame_stitch_ms_exposure_ratio_write(uintptr_t base,uint16_t data)3918 static __inline void acamera_isp_frame_stitch_ms_exposure_ratio_write(uintptr_t base, uint16_t data) {
3919     uint32_t curr = system_sw_read_32(base + 0x18fe8L);
3920     system_sw_write_32(base + 0x18fe8L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3921 }
acamera_isp_frame_stitch_ms_exposure_ratio_read(uintptr_t base)3922 static __inline uint16_t acamera_isp_frame_stitch_ms_exposure_ratio_read(uintptr_t base) {
3923     return (uint16_t)((system_sw_read_32(base + 0x18fe8L) & 0xfff0000) >> 16);
3924 }
3925 // ------------------------------------------------------------------------------ //
3926 // Register: SVS_Exposure_Ratio
3927 // ------------------------------------------------------------------------------ //
3928 
3929 // ------------------------------------------------------------------------------ //
3930 // Sets ratio between short and very short exposures - this must match the actual exposure ratio on the sensor
3931 // ------------------------------------------------------------------------------ //
3932 
3933 #define ACAMERA_ISP_FRAME_STITCH_SVS_EXPOSURE_RATIO_DEFAULT (0x100)
3934 #define ACAMERA_ISP_FRAME_STITCH_SVS_EXPOSURE_RATIO_DATASIZE (12)
3935 #define ACAMERA_ISP_FRAME_STITCH_SVS_EXPOSURE_RATIO_OFFSET (0x164)
3936 #define ACAMERA_ISP_FRAME_STITCH_SVS_EXPOSURE_RATIO_MASK (0xfff)
3937 
3938 // args: data (12-bit)
acamera_isp_frame_stitch_svs_exposure_ratio_write(uintptr_t base,uint16_t data)3939 static __inline void acamera_isp_frame_stitch_svs_exposure_ratio_write(uintptr_t base, uint16_t data) {
3940     uint32_t curr = system_sw_read_32(base + 0x18fecL);
3941     system_sw_write_32(base + 0x18fecL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3942 }
acamera_isp_frame_stitch_svs_exposure_ratio_read(uintptr_t base)3943 static __inline uint16_t acamera_isp_frame_stitch_svs_exposure_ratio_read(uintptr_t base) {
3944     return (uint16_t)((system_sw_read_32(base + 0x18fecL) & 0xfff) >> 0);
3945 }
3946 // ------------------------------------------------------------------------------ //
3947 // Register: LM_Thresh_high
3948 // ------------------------------------------------------------------------------ //
3949 
3950 // ------------------------------------------------------------------------------ //
3951 //
3952 //            These two thresholds are for LM pairs. Both are with respect to the longer stitches.
3953 //            Data above this threshold will be taken from short exposure only
3954 // ------------------------------------------------------------------------------ //
3955 
3956 #define ACAMERA_ISP_FRAME_STITCH_LM_THRESH_HIGH_DEFAULT (0x0F00)
3957 #define ACAMERA_ISP_FRAME_STITCH_LM_THRESH_HIGH_DATASIZE (12)
3958 #define ACAMERA_ISP_FRAME_STITCH_LM_THRESH_HIGH_OFFSET (0x168)
3959 #define ACAMERA_ISP_FRAME_STITCH_LM_THRESH_HIGH_MASK (0xfff)
3960 
3961 // args: data (12-bit)
acamera_isp_frame_stitch_lm_thresh_high_write(uintptr_t base,uint16_t data)3962 static __inline void acamera_isp_frame_stitch_lm_thresh_high_write(uintptr_t base, uint16_t data) {
3963     uint32_t curr = system_sw_read_32(base + 0x18ff0L);
3964     system_sw_write_32(base + 0x18ff0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
3965 }
acamera_isp_frame_stitch_lm_thresh_high_read(uintptr_t base)3966 static __inline uint16_t acamera_isp_frame_stitch_lm_thresh_high_read(uintptr_t base) {
3967     return (uint16_t)((system_sw_read_32(base + 0x18ff0L) & 0xfff) >> 0);
3968 }
3969 // ------------------------------------------------------------------------------ //
3970 // Register: LM_Thresh_low
3971 // ------------------------------------------------------------------------------ //
3972 
3973 // ------------------------------------------------------------------------------ //
3974 //
3975 //            Data below this threshold will be taken from long exposure only
3976 //
3977 // ------------------------------------------------------------------------------ //
3978 
3979 #define ACAMERA_ISP_FRAME_STITCH_LM_THRESH_LOW_DEFAULT (0x0C00)
3980 #define ACAMERA_ISP_FRAME_STITCH_LM_THRESH_LOW_DATASIZE (12)
3981 #define ACAMERA_ISP_FRAME_STITCH_LM_THRESH_LOW_OFFSET (0x168)
3982 #define ACAMERA_ISP_FRAME_STITCH_LM_THRESH_LOW_MASK (0xfff0000)
3983 
3984 // args: data (12-bit)
acamera_isp_frame_stitch_lm_thresh_low_write(uintptr_t base,uint16_t data)3985 static __inline void acamera_isp_frame_stitch_lm_thresh_low_write(uintptr_t base, uint16_t data) {
3986     uint32_t curr = system_sw_read_32(base + 0x18ff0L);
3987     system_sw_write_32(base + 0x18ff0L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
3988 }
acamera_isp_frame_stitch_lm_thresh_low_read(uintptr_t base)3989 static __inline uint16_t acamera_isp_frame_stitch_lm_thresh_low_read(uintptr_t base) {
3990     return (uint16_t)((system_sw_read_32(base + 0x18ff0L) & 0xfff0000) >> 16);
3991 }
3992 // ------------------------------------------------------------------------------ //
3993 // Register: MS_Thresh_high
3994 // ------------------------------------------------------------------------------ //
3995 
3996 // ------------------------------------------------------------------------------ //
3997 //
3998 //            These two thresholds are for MS pairs. Both are with respect to the longer stitches.
3999 //            Data above this threshold will be taken from short exposure only
4000 //
4001 // ------------------------------------------------------------------------------ //
4002 
4003 #define ACAMERA_ISP_FRAME_STITCH_MS_THRESH_HIGH_DEFAULT (0x0F00)
4004 #define ACAMERA_ISP_FRAME_STITCH_MS_THRESH_HIGH_DATASIZE (12)
4005 #define ACAMERA_ISP_FRAME_STITCH_MS_THRESH_HIGH_OFFSET (0x16c)
4006 #define ACAMERA_ISP_FRAME_STITCH_MS_THRESH_HIGH_MASK (0xfff)
4007 
4008 // args: data (12-bit)
acamera_isp_frame_stitch_ms_thresh_high_write(uintptr_t base,uint16_t data)4009 static __inline void acamera_isp_frame_stitch_ms_thresh_high_write(uintptr_t base, uint16_t data) {
4010     uint32_t curr = system_sw_read_32(base + 0x18ff4L);
4011     system_sw_write_32(base + 0x18ff4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4012 }
acamera_isp_frame_stitch_ms_thresh_high_read(uintptr_t base)4013 static __inline uint16_t acamera_isp_frame_stitch_ms_thresh_high_read(uintptr_t base) {
4014     return (uint16_t)((system_sw_read_32(base + 0x18ff4L) & 0xfff) >> 0);
4015 }
4016 // ------------------------------------------------------------------------------ //
4017 // Register: MS_Thresh_low
4018 // ------------------------------------------------------------------------------ //
4019 
4020 // ------------------------------------------------------------------------------ //
4021 //
4022 //            Data below this threshold will be taken from long exposure only
4023 //
4024 // ------------------------------------------------------------------------------ //
4025 
4026 #define ACAMERA_ISP_FRAME_STITCH_MS_THRESH_LOW_DEFAULT (0x0C00)
4027 #define ACAMERA_ISP_FRAME_STITCH_MS_THRESH_LOW_DATASIZE (12)
4028 #define ACAMERA_ISP_FRAME_STITCH_MS_THRESH_LOW_OFFSET (0x16c)
4029 #define ACAMERA_ISP_FRAME_STITCH_MS_THRESH_LOW_MASK (0xfff0000)
4030 
4031 // args: data (12-bit)
acamera_isp_frame_stitch_ms_thresh_low_write(uintptr_t base,uint16_t data)4032 static __inline void acamera_isp_frame_stitch_ms_thresh_low_write(uintptr_t base, uint16_t data) {
4033     uint32_t curr = system_sw_read_32(base + 0x18ff4L);
4034     system_sw_write_32(base + 0x18ff4L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4035 }
acamera_isp_frame_stitch_ms_thresh_low_read(uintptr_t base)4036 static __inline uint16_t acamera_isp_frame_stitch_ms_thresh_low_read(uintptr_t base) {
4037     return (uint16_t)((system_sw_read_32(base + 0x18ff4L) & 0xfff0000) >> 16);
4038 }
4039 // ------------------------------------------------------------------------------ //
4040 // Register: SVS_Thresh_high
4041 // ------------------------------------------------------------------------------ //
4042 
4043 // ------------------------------------------------------------------------------ //
4044 //
4045 //            These two thresholds are for SVS pairs. Both are with respect to the longer stitches.
4046 //            Data above this threshold will be taken from short exposure only
4047 //
4048 // ------------------------------------------------------------------------------ //
4049 
4050 #define ACAMERA_ISP_FRAME_STITCH_SVS_THRESH_HIGH_DEFAULT (0x0F00)
4051 #define ACAMERA_ISP_FRAME_STITCH_SVS_THRESH_HIGH_DATASIZE (12)
4052 #define ACAMERA_ISP_FRAME_STITCH_SVS_THRESH_HIGH_OFFSET (0x170)
4053 #define ACAMERA_ISP_FRAME_STITCH_SVS_THRESH_HIGH_MASK (0xfff)
4054 
4055 // args: data (12-bit)
acamera_isp_frame_stitch_svs_thresh_high_write(uintptr_t base,uint16_t data)4056 static __inline void acamera_isp_frame_stitch_svs_thresh_high_write(uintptr_t base, uint16_t data) {
4057     uint32_t curr = system_sw_read_32(base + 0x18ff8L);
4058     system_sw_write_32(base + 0x18ff8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4059 }
acamera_isp_frame_stitch_svs_thresh_high_read(uintptr_t base)4060 static __inline uint16_t acamera_isp_frame_stitch_svs_thresh_high_read(uintptr_t base) {
4061     return (uint16_t)((system_sw_read_32(base + 0x18ff8L) & 0xfff) >> 0);
4062 }
4063 // ------------------------------------------------------------------------------ //
4064 // Register: SVS_Thresh_low
4065 // ------------------------------------------------------------------------------ //
4066 
4067 // ------------------------------------------------------------------------------ //
4068 //
4069 //            Data below this threshold will be taken from long exposure only
4070 //
4071 // ------------------------------------------------------------------------------ //
4072 
4073 #define ACAMERA_ISP_FRAME_STITCH_SVS_THRESH_LOW_DEFAULT (0x0C00)
4074 #define ACAMERA_ISP_FRAME_STITCH_SVS_THRESH_LOW_DATASIZE (12)
4075 #define ACAMERA_ISP_FRAME_STITCH_SVS_THRESH_LOW_OFFSET (0x170)
4076 #define ACAMERA_ISP_FRAME_STITCH_SVS_THRESH_LOW_MASK (0xfff0000)
4077 
4078 // args: data (12-bit)
acamera_isp_frame_stitch_svs_thresh_low_write(uintptr_t base,uint16_t data)4079 static __inline void acamera_isp_frame_stitch_svs_thresh_low_write(uintptr_t base, uint16_t data) {
4080     uint32_t curr = system_sw_read_32(base + 0x18ff8L);
4081     system_sw_write_32(base + 0x18ff8L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4082 }
acamera_isp_frame_stitch_svs_thresh_low_read(uintptr_t base)4083 static __inline uint16_t acamera_isp_frame_stitch_svs_thresh_low_read(uintptr_t base) {
4084     return (uint16_t)((system_sw_read_32(base + 0x18ff8L) & 0xfff0000) >> 16);
4085 }
4086 // ------------------------------------------------------------------------------ //
4087 // Register: Black_level_long
4088 // ------------------------------------------------------------------------------ //
4089 
4090 // ------------------------------------------------------------------------------ //
4091 //
4092 //            Black level for long exposure input
4093 //
4094 // ------------------------------------------------------------------------------ //
4095 
4096 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_LONG_DEFAULT (0x000)
4097 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_LONG_DATASIZE (12)
4098 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_LONG_OFFSET (0x174)
4099 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_LONG_MASK (0xfff)
4100 
4101 // args: data (12-bit)
acamera_isp_frame_stitch_black_level_long_write(uintptr_t base,uint16_t data)4102 static __inline void acamera_isp_frame_stitch_black_level_long_write(uintptr_t base, uint16_t data) {
4103     uint32_t curr = system_sw_read_32(base + 0x18ffcL);
4104     system_sw_write_32(base + 0x18ffcL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4105 }
acamera_isp_frame_stitch_black_level_long_read(uintptr_t base)4106 static __inline uint16_t acamera_isp_frame_stitch_black_level_long_read(uintptr_t base) {
4107     return (uint16_t)((system_sw_read_32(base + 0x18ffcL) & 0xfff) >> 0);
4108 }
4109 // ------------------------------------------------------------------------------ //
4110 // Register: Black_level_Medium
4111 // ------------------------------------------------------------------------------ //
4112 
4113 // ------------------------------------------------------------------------------ //
4114 //
4115 //            Black level for medium exposure input
4116 //            *** NOTE ***:
4117 //            If the wdr unit is configured to use as 2-exposure, THIS REGISTER POSITION must contain the black level of
4118 //            short exposure as the LM pair is used for all other configurations
4119 //
4120 // ------------------------------------------------------------------------------ //
4121 
4122 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_MEDIUM_DEFAULT (0x00)
4123 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_MEDIUM_DATASIZE (12)
4124 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_MEDIUM_OFFSET (0x174)
4125 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_MEDIUM_MASK (0xfff0000)
4126 
4127 // args: data (12-bit)
acamera_isp_frame_stitch_black_level_medium_write(uintptr_t base,uint16_t data)4128 static __inline void acamera_isp_frame_stitch_black_level_medium_write(uintptr_t base, uint16_t data) {
4129     uint32_t curr = system_sw_read_32(base + 0x18ffcL);
4130     system_sw_write_32(base + 0x18ffcL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4131 }
acamera_isp_frame_stitch_black_level_medium_read(uintptr_t base)4132 static __inline uint16_t acamera_isp_frame_stitch_black_level_medium_read(uintptr_t base) {
4133     return (uint16_t)((system_sw_read_32(base + 0x18ffcL) & 0xfff0000) >> 16);
4134 }
4135 // ------------------------------------------------------------------------------ //
4136 // Register: Black_level_Short
4137 // ------------------------------------------------------------------------------ //
4138 
4139 // ------------------------------------------------------------------------------ //
4140 //
4141 //            Black level for short exposure input
4142 //
4143 // ------------------------------------------------------------------------------ //
4144 
4145 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_SHORT_DEFAULT (0x00)
4146 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_SHORT_DATASIZE (12)
4147 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_SHORT_OFFSET (0x178)
4148 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_SHORT_MASK (0xfff)
4149 
4150 // args: data (12-bit)
acamera_isp_frame_stitch_black_level_short_write(uintptr_t base,uint16_t data)4151 static __inline void acamera_isp_frame_stitch_black_level_short_write(uintptr_t base, uint16_t data) {
4152     uint32_t curr = system_sw_read_32(base + 0x19000L);
4153     system_sw_write_32(base + 0x19000L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4154 }
acamera_isp_frame_stitch_black_level_short_read(uintptr_t base)4155 static __inline uint16_t acamera_isp_frame_stitch_black_level_short_read(uintptr_t base) {
4156     return (uint16_t)((system_sw_read_32(base + 0x19000L) & 0xfff) >> 0);
4157 }
4158 // ------------------------------------------------------------------------------ //
4159 // Register: Black_level_very_Short
4160 // ------------------------------------------------------------------------------ //
4161 
4162 // ------------------------------------------------------------------------------ //
4163 //
4164 //            Black level for very short exposure input
4165 //
4166 // ------------------------------------------------------------------------------ //
4167 
4168 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_VERY_SHORT_DEFAULT (0x00)
4169 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_VERY_SHORT_DATASIZE (12)
4170 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_VERY_SHORT_OFFSET (0x178)
4171 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_VERY_SHORT_MASK (0xfff0000)
4172 
4173 // args: data (12-bit)
acamera_isp_frame_stitch_black_level_very_short_write(uintptr_t base,uint16_t data)4174 static __inline void acamera_isp_frame_stitch_black_level_very_short_write(uintptr_t base, uint16_t data) {
4175     uint32_t curr = system_sw_read_32(base + 0x19000L);
4176     system_sw_write_32(base + 0x19000L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4177 }
acamera_isp_frame_stitch_black_level_very_short_read(uintptr_t base)4178 static __inline uint16_t acamera_isp_frame_stitch_black_level_very_short_read(uintptr_t base) {
4179     return (uint16_t)((system_sw_read_32(base + 0x19000L) & 0xfff0000) >> 16);
4180 }
4181 // ------------------------------------------------------------------------------ //
4182 // Register: Black_level_Out
4183 // ------------------------------------------------------------------------------ //
4184 
4185 // ------------------------------------------------------------------------------ //
4186 //
4187 //            Black level for module output
4188 //
4189 // ------------------------------------------------------------------------------ //
4190 
4191 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_OUT_DEFAULT (0x000)
4192 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_OUT_DATASIZE (20)
4193 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_OUT_OFFSET (0x17c)
4194 #define ACAMERA_ISP_FRAME_STITCH_BLACK_LEVEL_OUT_MASK (0xfffff)
4195 
4196 // args: data (20-bit)
acamera_isp_frame_stitch_black_level_out_write(uintptr_t base,uint32_t data)4197 static __inline void acamera_isp_frame_stitch_black_level_out_write(uintptr_t base, uint32_t data) {
4198     uint32_t curr = system_sw_read_32(base + 0x19004L);
4199     system_sw_write_32(base + 0x19004L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
4200 }
acamera_isp_frame_stitch_black_level_out_read(uintptr_t base)4201 static __inline uint32_t acamera_isp_frame_stitch_black_level_out_read(uintptr_t base) {
4202     return (uint32_t)((system_sw_read_32(base + 0x19004L) & 0xfffff) >> 0);
4203 }
4204 // ------------------------------------------------------------------------------ //
4205 // Register: LM_NP_mult
4206 // ------------------------------------------------------------------------------ //
4207 
4208 // ------------------------------------------------------------------------------ //
4209 //
4210 //            The noise profile weights are multiplied by this value to give expected noise amplitude.
4211 //
4212 // ------------------------------------------------------------------------------ //
4213 
4214 #define ACAMERA_ISP_FRAME_STITCH_LM_NP_MULT_DEFAULT (0x180)
4215 #define ACAMERA_ISP_FRAME_STITCH_LM_NP_MULT_DATASIZE (12)
4216 #define ACAMERA_ISP_FRAME_STITCH_LM_NP_MULT_OFFSET (0x180)
4217 #define ACAMERA_ISP_FRAME_STITCH_LM_NP_MULT_MASK (0xfff)
4218 
4219 // args: data (12-bit)
acamera_isp_frame_stitch_lm_np_mult_write(uintptr_t base,uint16_t data)4220 static __inline void acamera_isp_frame_stitch_lm_np_mult_write(uintptr_t base, uint16_t data) {
4221     uint32_t curr = system_sw_read_32(base + 0x19008L);
4222     system_sw_write_32(base + 0x19008L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4223 }
acamera_isp_frame_stitch_lm_np_mult_read(uintptr_t base)4224 static __inline uint16_t acamera_isp_frame_stitch_lm_np_mult_read(uintptr_t base) {
4225     return (uint16_t)((system_sw_read_32(base + 0x19008L) & 0xfff) >> 0);
4226 }
4227 // ------------------------------------------------------------------------------ //
4228 // Register: MS_NP_mult
4229 // ------------------------------------------------------------------------------ //
4230 
4231 // ------------------------------------------------------------------------------ //
4232 //
4233 //            The noise profile weights are multiplied by this value to give expected noise amplitude.
4234 //
4235 // ------------------------------------------------------------------------------ //
4236 
4237 #define ACAMERA_ISP_FRAME_STITCH_MS_NP_MULT_DEFAULT (0x600)
4238 #define ACAMERA_ISP_FRAME_STITCH_MS_NP_MULT_DATASIZE (12)
4239 #define ACAMERA_ISP_FRAME_STITCH_MS_NP_MULT_OFFSET (0x180)
4240 #define ACAMERA_ISP_FRAME_STITCH_MS_NP_MULT_MASK (0xfff0000)
4241 
4242 // args: data (12-bit)
acamera_isp_frame_stitch_ms_np_mult_write(uintptr_t base,uint16_t data)4243 static __inline void acamera_isp_frame_stitch_ms_np_mult_write(uintptr_t base, uint16_t data) {
4244     uint32_t curr = system_sw_read_32(base + 0x19008L);
4245     system_sw_write_32(base + 0x19008L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4246 }
acamera_isp_frame_stitch_ms_np_mult_read(uintptr_t base)4247 static __inline uint16_t acamera_isp_frame_stitch_ms_np_mult_read(uintptr_t base) {
4248     return (uint16_t)((system_sw_read_32(base + 0x19008L) & 0xfff0000) >> 16);
4249 }
4250 // ------------------------------------------------------------------------------ //
4251 // Register: SVS_NP_mult
4252 // ------------------------------------------------------------------------------ //
4253 
4254 // ------------------------------------------------------------------------------ //
4255 //
4256 //            The noise profile weights are multiplied by this value to give expected noise amplitude.
4257 //
4258 // ------------------------------------------------------------------------------ //
4259 
4260 #define ACAMERA_ISP_FRAME_STITCH_SVS_NP_MULT_DEFAULT (0x600)
4261 #define ACAMERA_ISP_FRAME_STITCH_SVS_NP_MULT_DATASIZE (12)
4262 #define ACAMERA_ISP_FRAME_STITCH_SVS_NP_MULT_OFFSET (0x184)
4263 #define ACAMERA_ISP_FRAME_STITCH_SVS_NP_MULT_MASK (0xfff)
4264 
4265 // args: data (12-bit)
acamera_isp_frame_stitch_svs_np_mult_write(uintptr_t base,uint16_t data)4266 static __inline void acamera_isp_frame_stitch_svs_np_mult_write(uintptr_t base, uint16_t data) {
4267     uint32_t curr = system_sw_read_32(base + 0x1900cL);
4268     system_sw_write_32(base + 0x1900cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4269 }
acamera_isp_frame_stitch_svs_np_mult_read(uintptr_t base)4270 static __inline uint16_t acamera_isp_frame_stitch_svs_np_mult_read(uintptr_t base) {
4271     return (uint16_t)((system_sw_read_32(base + 0x1900cL) & 0xfff) >> 0);
4272 }
4273 // ------------------------------------------------------------------------------ //
4274 // Register: LM_Alpha_MOV_slope
4275 // ------------------------------------------------------------------------------ //
4276 
4277 // ------------------------------------------------------------------------------ //
4278 //
4279 //            This defines the gradient of the motion alpha ramp. Higher values mean a steeper ramp and so a more rapid transition between
4280 //            non-motion-corrected and motion-corrected regions.
4281 //
4282 // ------------------------------------------------------------------------------ //
4283 
4284 #define ACAMERA_ISP_FRAME_STITCH_LM_ALPHA_MOV_SLOPE_DEFAULT (0xC00)
4285 #define ACAMERA_ISP_FRAME_STITCH_LM_ALPHA_MOV_SLOPE_DATASIZE (12)
4286 #define ACAMERA_ISP_FRAME_STITCH_LM_ALPHA_MOV_SLOPE_OFFSET (0x184)
4287 #define ACAMERA_ISP_FRAME_STITCH_LM_ALPHA_MOV_SLOPE_MASK (0xfff0000)
4288 
4289 // args: data (12-bit)
acamera_isp_frame_stitch_lm_alpha_mov_slope_write(uintptr_t base,uint16_t data)4290 static __inline void acamera_isp_frame_stitch_lm_alpha_mov_slope_write(uintptr_t base, uint16_t data) {
4291     uint32_t curr = system_sw_read_32(base + 0x1900cL);
4292     system_sw_write_32(base + 0x1900cL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4293 }
acamera_isp_frame_stitch_lm_alpha_mov_slope_read(uintptr_t base)4294 static __inline uint16_t acamera_isp_frame_stitch_lm_alpha_mov_slope_read(uintptr_t base) {
4295     return (uint16_t)((system_sw_read_32(base + 0x1900cL) & 0xfff0000) >> 16);
4296 }
4297 // ------------------------------------------------------------------------------ //
4298 // Register: MS_Alpha_MOV_slope
4299 // ------------------------------------------------------------------------------ //
4300 
4301 // ------------------------------------------------------------------------------ //
4302 //
4303 //            his defines the gradient of the motion alpha ramp. Higher values mean a steeper ramp and so a more rapid transition between
4304 //            non-motion-corrected and motion-corrected regions.
4305 //
4306 // ------------------------------------------------------------------------------ //
4307 
4308 #define ACAMERA_ISP_FRAME_STITCH_MS_ALPHA_MOV_SLOPE_DEFAULT (0x180)
4309 #define ACAMERA_ISP_FRAME_STITCH_MS_ALPHA_MOV_SLOPE_DATASIZE (12)
4310 #define ACAMERA_ISP_FRAME_STITCH_MS_ALPHA_MOV_SLOPE_OFFSET (0x188)
4311 #define ACAMERA_ISP_FRAME_STITCH_MS_ALPHA_MOV_SLOPE_MASK (0xfff)
4312 
4313 // args: data (12-bit)
acamera_isp_frame_stitch_ms_alpha_mov_slope_write(uintptr_t base,uint16_t data)4314 static __inline void acamera_isp_frame_stitch_ms_alpha_mov_slope_write(uintptr_t base, uint16_t data) {
4315     uint32_t curr = system_sw_read_32(base + 0x19010L);
4316     system_sw_write_32(base + 0x19010L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4317 }
acamera_isp_frame_stitch_ms_alpha_mov_slope_read(uintptr_t base)4318 static __inline uint16_t acamera_isp_frame_stitch_ms_alpha_mov_slope_read(uintptr_t base) {
4319     return (uint16_t)((system_sw_read_32(base + 0x19010L) & 0xfff) >> 0);
4320 }
4321 // ------------------------------------------------------------------------------ //
4322 // Register: SVS_Alpha_MOV_slope
4323 // ------------------------------------------------------------------------------ //
4324 
4325 // ------------------------------------------------------------------------------ //
4326 //
4327 //            his defines the gradient of the motion alpha ramp. Higher values mean a steeper ramp and so a more rapid transition between
4328 //            non-motion-corrected and motion-corrected regions.
4329 //
4330 // ------------------------------------------------------------------------------ //
4331 
4332 #define ACAMERA_ISP_FRAME_STITCH_SVS_ALPHA_MOV_SLOPE_DEFAULT (0x180)
4333 #define ACAMERA_ISP_FRAME_STITCH_SVS_ALPHA_MOV_SLOPE_DATASIZE (12)
4334 #define ACAMERA_ISP_FRAME_STITCH_SVS_ALPHA_MOV_SLOPE_OFFSET (0x188)
4335 #define ACAMERA_ISP_FRAME_STITCH_SVS_ALPHA_MOV_SLOPE_MASK (0xfff0000)
4336 
4337 // args: data (12-bit)
acamera_isp_frame_stitch_svs_alpha_mov_slope_write(uintptr_t base,uint16_t data)4338 static __inline void acamera_isp_frame_stitch_svs_alpha_mov_slope_write(uintptr_t base, uint16_t data) {
4339     uint32_t curr = system_sw_read_32(base + 0x19010L);
4340     system_sw_write_32(base + 0x19010L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4341 }
acamera_isp_frame_stitch_svs_alpha_mov_slope_read(uintptr_t base)4342 static __inline uint16_t acamera_isp_frame_stitch_svs_alpha_mov_slope_read(uintptr_t base) {
4343     return (uint16_t)((system_sw_read_32(base + 0x19010L) & 0xfff0000) >> 16);
4344 }
4345 // ------------------------------------------------------------------------------ //
4346 // Register: Gain_R
4347 // ------------------------------------------------------------------------------ //
4348 
4349 // ------------------------------------------------------------------------------ //
4350 //
4351 //            Multiplier for color channel R
4352 //
4353 // ------------------------------------------------------------------------------ //
4354 
4355 #define ACAMERA_ISP_FRAME_STITCH_GAIN_R_DEFAULT (0x100)
4356 #define ACAMERA_ISP_FRAME_STITCH_GAIN_R_DATASIZE (12)
4357 #define ACAMERA_ISP_FRAME_STITCH_GAIN_R_OFFSET (0x18c)
4358 #define ACAMERA_ISP_FRAME_STITCH_GAIN_R_MASK (0xfff)
4359 
4360 // args: data (12-bit)
acamera_isp_frame_stitch_gain_r_write(uintptr_t base,uint16_t data)4361 static __inline void acamera_isp_frame_stitch_gain_r_write(uintptr_t base, uint16_t data) {
4362     uint32_t curr = system_sw_read_32(base + 0x19014L);
4363     system_sw_write_32(base + 0x19014L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4364 }
acamera_isp_frame_stitch_gain_r_read(uintptr_t base)4365 static __inline uint16_t acamera_isp_frame_stitch_gain_r_read(uintptr_t base) {
4366     return (uint16_t)((system_sw_read_32(base + 0x19014L) & 0xfff) >> 0);
4367 }
4368 // ------------------------------------------------------------------------------ //
4369 // Register: Gain_B
4370 // ------------------------------------------------------------------------------ //
4371 
4372 // ------------------------------------------------------------------------------ //
4373 //
4374 //            Multiplier for color channel B
4375 //
4376 // ------------------------------------------------------------------------------ //
4377 
4378 #define ACAMERA_ISP_FRAME_STITCH_GAIN_B_DEFAULT (0x100)
4379 #define ACAMERA_ISP_FRAME_STITCH_GAIN_B_DATASIZE (12)
4380 #define ACAMERA_ISP_FRAME_STITCH_GAIN_B_OFFSET (0x18c)
4381 #define ACAMERA_ISP_FRAME_STITCH_GAIN_B_MASK (0xfff0000)
4382 
4383 // args: data (12-bit)
acamera_isp_frame_stitch_gain_b_write(uintptr_t base,uint16_t data)4384 static __inline void acamera_isp_frame_stitch_gain_b_write(uintptr_t base, uint16_t data) {
4385     uint32_t curr = system_sw_read_32(base + 0x19014L);
4386     system_sw_write_32(base + 0x19014L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4387 }
acamera_isp_frame_stitch_gain_b_read(uintptr_t base)4388 static __inline uint16_t acamera_isp_frame_stitch_gain_b_read(uintptr_t base) {
4389     return (uint16_t)((system_sw_read_32(base + 0x19014L) & 0xfff0000) >> 16);
4390 }
4391 // ------------------------------------------------------------------------------ //
4392 // Register: Consistency_thresh_mov
4393 // ------------------------------------------------------------------------------ //
4394 
4395 // ------------------------------------------------------------------------------ //
4396 //
4397 //            Pixel consistency reporting - motion threshold
4398 //
4399 // ------------------------------------------------------------------------------ //
4400 
4401 #define ACAMERA_ISP_FRAME_STITCH_CONSISTENCY_THRESH_MOV_DEFAULT (0x100)
4402 #define ACAMERA_ISP_FRAME_STITCH_CONSISTENCY_THRESH_MOV_DATASIZE (12)
4403 #define ACAMERA_ISP_FRAME_STITCH_CONSISTENCY_THRESH_MOV_OFFSET (0x190)
4404 #define ACAMERA_ISP_FRAME_STITCH_CONSISTENCY_THRESH_MOV_MASK (0xfff)
4405 
4406 // args: data (12-bit)
acamera_isp_frame_stitch_consistency_thresh_mov_write(uintptr_t base,uint16_t data)4407 static __inline void acamera_isp_frame_stitch_consistency_thresh_mov_write(uintptr_t base, uint16_t data) {
4408     uint32_t curr = system_sw_read_32(base + 0x19018L);
4409     system_sw_write_32(base + 0x19018L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4410 }
acamera_isp_frame_stitch_consistency_thresh_mov_read(uintptr_t base)4411 static __inline uint16_t acamera_isp_frame_stitch_consistency_thresh_mov_read(uintptr_t base) {
4412     return (uint16_t)((system_sw_read_32(base + 0x19018L) & 0xfff) >> 0);
4413 }
4414 // ------------------------------------------------------------------------------ //
4415 // Register: Consistency_thresh_lvl
4416 // ------------------------------------------------------------------------------ //
4417 
4418 // ------------------------------------------------------------------------------ //
4419 //
4420 //            Pixel consistency reporting - flicker threshold
4421 //
4422 // ------------------------------------------------------------------------------ //
4423 
4424 #define ACAMERA_ISP_FRAME_STITCH_CONSISTENCY_THRESH_LVL_DEFAULT (0x80000)
4425 #define ACAMERA_ISP_FRAME_STITCH_CONSISTENCY_THRESH_LVL_DATASIZE (20)
4426 #define ACAMERA_ISP_FRAME_STITCH_CONSISTENCY_THRESH_LVL_OFFSET (0x194)
4427 #define ACAMERA_ISP_FRAME_STITCH_CONSISTENCY_THRESH_LVL_MASK (0xfffff)
4428 
4429 // args: data (20-bit)
acamera_isp_frame_stitch_consistency_thresh_lvl_write(uintptr_t base,uint32_t data)4430 static __inline void acamera_isp_frame_stitch_consistency_thresh_lvl_write(uintptr_t base, uint32_t data) {
4431     uint32_t curr = system_sw_read_32(base + 0x1901cL);
4432     system_sw_write_32(base + 0x1901cL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
4433 }
acamera_isp_frame_stitch_consistency_thresh_lvl_read(uintptr_t base)4434 static __inline uint32_t acamera_isp_frame_stitch_consistency_thresh_lvl_read(uintptr_t base) {
4435     return (uint32_t)((system_sw_read_32(base + 0x1901cL) & 0xfffff) >> 0);
4436 }
4437 // ------------------------------------------------------------------------------ //
4438 // Register: lm_noise_thresh
4439 // ------------------------------------------------------------------------------ //
4440 
4441 // ------------------------------------------------------------------------------ //
4442 //
4443 //              Higher values make it more likely to interpret differences between the long and medium exposures as noise (and thus do no motion correction).
4444 //
4445 // ------------------------------------------------------------------------------ //
4446 
4447 #define ACAMERA_ISP_FRAME_STITCH_LM_NOISE_THRESH_DEFAULT (0x0)
4448 #define ACAMERA_ISP_FRAME_STITCH_LM_NOISE_THRESH_DATASIZE (6)
4449 #define ACAMERA_ISP_FRAME_STITCH_LM_NOISE_THRESH_OFFSET (0x198)
4450 #define ACAMERA_ISP_FRAME_STITCH_LM_NOISE_THRESH_MASK (0x3f)
4451 
4452 // args: data (6-bit)
acamera_isp_frame_stitch_lm_noise_thresh_write(uintptr_t base,uint8_t data)4453 static __inline void acamera_isp_frame_stitch_lm_noise_thresh_write(uintptr_t base, uint8_t data) {
4454     uint32_t curr = system_sw_read_32(base + 0x19020L);
4455     system_sw_write_32(base + 0x19020L, (((uint32_t) (data & 0x3f)) << 0) | (curr & 0xffffffc0));
4456 }
acamera_isp_frame_stitch_lm_noise_thresh_read(uintptr_t base)4457 static __inline uint8_t acamera_isp_frame_stitch_lm_noise_thresh_read(uintptr_t base) {
4458     return (uint8_t)((system_sw_read_32(base + 0x19020L) & 0x3f) >> 0);
4459 }
4460 // ------------------------------------------------------------------------------ //
4461 // Register: lm_pos_weight
4462 // ------------------------------------------------------------------------------ //
4463 
4464 // ------------------------------------------------------------------------------ //
4465 //
4466 //              Lower values make it more likely to interpret  differences between the long and medium exposures as noise (and thus do no motion correction).
4467 //
4468 // ------------------------------------------------------------------------------ //
4469 
4470 #define ACAMERA_ISP_FRAME_STITCH_LM_POS_WEIGHT_DEFAULT (0x0)
4471 #define ACAMERA_ISP_FRAME_STITCH_LM_POS_WEIGHT_DATASIZE (6)
4472 #define ACAMERA_ISP_FRAME_STITCH_LM_POS_WEIGHT_OFFSET (0x198)
4473 #define ACAMERA_ISP_FRAME_STITCH_LM_POS_WEIGHT_MASK (0x3f00)
4474 
4475 // args: data (6-bit)
acamera_isp_frame_stitch_lm_pos_weight_write(uintptr_t base,uint8_t data)4476 static __inline void acamera_isp_frame_stitch_lm_pos_weight_write(uintptr_t base, uint8_t data) {
4477     uint32_t curr = system_sw_read_32(base + 0x19020L);
4478     system_sw_write_32(base + 0x19020L, (((uint32_t) (data & 0x3f)) << 8) | (curr & 0xffffc0ff));
4479 }
acamera_isp_frame_stitch_lm_pos_weight_read(uintptr_t base)4480 static __inline uint8_t acamera_isp_frame_stitch_lm_pos_weight_read(uintptr_t base) {
4481     return (uint8_t)((system_sw_read_32(base + 0x19020L) & 0x3f00) >> 8);
4482 }
4483 // ------------------------------------------------------------------------------ //
4484 // Register: lm_neg_weight
4485 // ------------------------------------------------------------------------------ //
4486 
4487 // ------------------------------------------------------------------------------ //
4488 //
4489 //              Higher values make it more likely to interpret differences between the long and medium exposures as noise (and thus do no motion correction).
4490 //
4491 // ------------------------------------------------------------------------------ //
4492 
4493 #define ACAMERA_ISP_FRAME_STITCH_LM_NEG_WEIGHT_DEFAULT (0x0)
4494 #define ACAMERA_ISP_FRAME_STITCH_LM_NEG_WEIGHT_DATASIZE (6)
4495 #define ACAMERA_ISP_FRAME_STITCH_LM_NEG_WEIGHT_OFFSET (0x198)
4496 #define ACAMERA_ISP_FRAME_STITCH_LM_NEG_WEIGHT_MASK (0x3f0000)
4497 
4498 // args: data (6-bit)
acamera_isp_frame_stitch_lm_neg_weight_write(uintptr_t base,uint8_t data)4499 static __inline void acamera_isp_frame_stitch_lm_neg_weight_write(uintptr_t base, uint8_t data) {
4500     uint32_t curr = system_sw_read_32(base + 0x19020L);
4501     system_sw_write_32(base + 0x19020L, (((uint32_t) (data & 0x3f)) << 16) | (curr & 0xffc0ffff));
4502 }
acamera_isp_frame_stitch_lm_neg_weight_read(uintptr_t base)4503 static __inline uint8_t acamera_isp_frame_stitch_lm_neg_weight_read(uintptr_t base) {
4504     return (uint8_t)((system_sw_read_32(base + 0x19020L) & 0x3f0000) >> 16);
4505 }
4506 // ------------------------------------------------------------------------------ //
4507 // Register: lm_med_noise_alpha_thresh
4508 // ------------------------------------------------------------------------------ //
4509 
4510 // ------------------------------------------------------------------------------ //
4511 //
4512 //
4513 // ------------------------------------------------------------------------------ //
4514 
4515 #define ACAMERA_ISP_FRAME_STITCH_LM_MED_NOISE_ALPHA_THRESH_DEFAULT (0x0)
4516 #define ACAMERA_ISP_FRAME_STITCH_LM_MED_NOISE_ALPHA_THRESH_DATASIZE (12)
4517 #define ACAMERA_ISP_FRAME_STITCH_LM_MED_NOISE_ALPHA_THRESH_OFFSET (0x19c)
4518 #define ACAMERA_ISP_FRAME_STITCH_LM_MED_NOISE_ALPHA_THRESH_MASK (0xfff)
4519 
4520 // args: data (12-bit)
acamera_isp_frame_stitch_lm_med_noise_alpha_thresh_write(uintptr_t base,uint16_t data)4521 static __inline void acamera_isp_frame_stitch_lm_med_noise_alpha_thresh_write(uintptr_t base, uint16_t data) {
4522     uint32_t curr = system_sw_read_32(base + 0x19024L);
4523     system_sw_write_32(base + 0x19024L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4524 }
acamera_isp_frame_stitch_lm_med_noise_alpha_thresh_read(uintptr_t base)4525 static __inline uint16_t acamera_isp_frame_stitch_lm_med_noise_alpha_thresh_read(uintptr_t base) {
4526     return (uint16_t)((system_sw_read_32(base + 0x19024L) & 0xfff) >> 0);
4527 }
4528 // ------------------------------------------------------------------------------ //
4529 // Register: lm_med_noise_intensity_thresh
4530 // ------------------------------------------------------------------------------ //
4531 
4532 // ------------------------------------------------------------------------------ //
4533 //
4534 //
4535 // ------------------------------------------------------------------------------ //
4536 
4537 #define ACAMERA_ISP_FRAME_STITCH_LM_MED_NOISE_INTENSITY_THRESH_DEFAULT (0x0)
4538 #define ACAMERA_ISP_FRAME_STITCH_LM_MED_NOISE_INTENSITY_THRESH_DATASIZE (12)
4539 #define ACAMERA_ISP_FRAME_STITCH_LM_MED_NOISE_INTENSITY_THRESH_OFFSET (0x19c)
4540 #define ACAMERA_ISP_FRAME_STITCH_LM_MED_NOISE_INTENSITY_THRESH_MASK (0xfff0000)
4541 
4542 // args: data (12-bit)
acamera_isp_frame_stitch_lm_med_noise_intensity_thresh_write(uintptr_t base,uint16_t data)4543 static __inline void acamera_isp_frame_stitch_lm_med_noise_intensity_thresh_write(uintptr_t base, uint16_t data) {
4544     uint32_t curr = system_sw_read_32(base + 0x19024L);
4545     system_sw_write_32(base + 0x19024L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4546 }
acamera_isp_frame_stitch_lm_med_noise_intensity_thresh_read(uintptr_t base)4547 static __inline uint16_t acamera_isp_frame_stitch_lm_med_noise_intensity_thresh_read(uintptr_t base) {
4548     return (uint16_t)((system_sw_read_32(base + 0x19024L) & 0xfff0000) >> 16);
4549 }
4550 // ------------------------------------------------------------------------------ //
4551 // Register: lm_mc_blend_slope
4552 // ------------------------------------------------------------------------------ //
4553 
4554 // ------------------------------------------------------------------------------ //
4555 //
4556 //
4557 // ------------------------------------------------------------------------------ //
4558 
4559 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_SLOPE_DEFAULT (0x0)
4560 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_SLOPE_DATASIZE (22)
4561 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_SLOPE_OFFSET (0x1a0)
4562 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_SLOPE_MASK (0x3fffff)
4563 
4564 // args: data (22-bit)
acamera_isp_frame_stitch_lm_mc_blend_slope_write(uintptr_t base,uint32_t data)4565 static __inline void acamera_isp_frame_stitch_lm_mc_blend_slope_write(uintptr_t base, uint32_t data) {
4566     uint32_t curr = system_sw_read_32(base + 0x19028L);
4567     system_sw_write_32(base + 0x19028L, (((uint32_t) (data & 0x3fffff)) << 0) | (curr & 0xffc00000));
4568 }
acamera_isp_frame_stitch_lm_mc_blend_slope_read(uintptr_t base)4569 static __inline uint32_t acamera_isp_frame_stitch_lm_mc_blend_slope_read(uintptr_t base) {
4570     return (uint32_t)((system_sw_read_32(base + 0x19028L) & 0x3fffff) >> 0);
4571 }
4572 // ------------------------------------------------------------------------------ //
4573 // Register: lm_mc_blend_thresh
4574 // ------------------------------------------------------------------------------ //
4575 
4576 // ------------------------------------------------------------------------------ //
4577 //
4578 //
4579 // ------------------------------------------------------------------------------ //
4580 
4581 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_THRESH_DEFAULT (0x0)
4582 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_THRESH_DATASIZE (8)
4583 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_THRESH_OFFSET (0x1a4)
4584 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_THRESH_MASK (0xff)
4585 
4586 // args: data (8-bit)
acamera_isp_frame_stitch_lm_mc_blend_thresh_write(uintptr_t base,uint8_t data)4587 static __inline void acamera_isp_frame_stitch_lm_mc_blend_thresh_write(uintptr_t base, uint8_t data) {
4588     uint32_t curr = system_sw_read_32(base + 0x1902cL);
4589     system_sw_write_32(base + 0x1902cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
4590 }
acamera_isp_frame_stitch_lm_mc_blend_thresh_read(uintptr_t base)4591 static __inline uint8_t acamera_isp_frame_stitch_lm_mc_blend_thresh_read(uintptr_t base) {
4592     return (uint8_t)((system_sw_read_32(base + 0x1902cL) & 0xff) >> 0);
4593 }
4594 // ------------------------------------------------------------------------------ //
4595 // Register: lm_mc_blend_offset
4596 // ------------------------------------------------------------------------------ //
4597 
4598 // ------------------------------------------------------------------------------ //
4599 //
4600 //
4601 // ------------------------------------------------------------------------------ //
4602 
4603 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_OFFSET_DEFAULT (0x0)
4604 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_OFFSET_DATASIZE (12)
4605 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_OFFSET_OFFSET (0x1a4)
4606 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_BLEND_OFFSET_MASK (0xfff0000)
4607 
4608 // args: data (12-bit)
acamera_isp_frame_stitch_lm_mc_blend_offset_write(uintptr_t base,uint16_t data)4609 static __inline void acamera_isp_frame_stitch_lm_mc_blend_offset_write(uintptr_t base, uint16_t data) {
4610     uint32_t curr = system_sw_read_32(base + 0x1902cL);
4611     system_sw_write_32(base + 0x1902cL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4612 }
acamera_isp_frame_stitch_lm_mc_blend_offset_read(uintptr_t base)4613 static __inline uint16_t acamera_isp_frame_stitch_lm_mc_blend_offset_read(uintptr_t base) {
4614     return (uint16_t)((system_sw_read_32(base + 0x1902cL) & 0xfff0000) >> 16);
4615 }
4616 // ------------------------------------------------------------------------------ //
4617 // Register: lm_mc_thresh_slope
4618 // ------------------------------------------------------------------------------ //
4619 
4620 // ------------------------------------------------------------------------------ //
4621 //
4622 //
4623 // ------------------------------------------------------------------------------ //
4624 
4625 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_SLOPE_DEFAULT (0x0)
4626 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_SLOPE_DATASIZE (22)
4627 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_SLOPE_OFFSET (0x1a8)
4628 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_SLOPE_MASK (0x3fffff)
4629 
4630 // args: data (22-bit)
acamera_isp_frame_stitch_lm_mc_thresh_slope_write(uintptr_t base,uint32_t data)4631 static __inline void acamera_isp_frame_stitch_lm_mc_thresh_slope_write(uintptr_t base, uint32_t data) {
4632     uint32_t curr = system_sw_read_32(base + 0x19030L);
4633     system_sw_write_32(base + 0x19030L, (((uint32_t) (data & 0x3fffff)) << 0) | (curr & 0xffc00000));
4634 }
acamera_isp_frame_stitch_lm_mc_thresh_slope_read(uintptr_t base)4635 static __inline uint32_t acamera_isp_frame_stitch_lm_mc_thresh_slope_read(uintptr_t base) {
4636     return (uint32_t)((system_sw_read_32(base + 0x19030L) & 0x3fffff) >> 0);
4637 }
4638 // ------------------------------------------------------------------------------ //
4639 // Register: lm_mc_thresh_thresh
4640 // ------------------------------------------------------------------------------ //
4641 
4642 // ------------------------------------------------------------------------------ //
4643 //
4644 //
4645 // ------------------------------------------------------------------------------ //
4646 
4647 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_THRESH_DEFAULT (0x0)
4648 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_THRESH_DATASIZE (20)
4649 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_THRESH_OFFSET (0x1ac)
4650 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_THRESH_MASK (0xfffff)
4651 
4652 // args: data (20-bit)
acamera_isp_frame_stitch_lm_mc_thresh_thresh_write(uintptr_t base,uint32_t data)4653 static __inline void acamera_isp_frame_stitch_lm_mc_thresh_thresh_write(uintptr_t base, uint32_t data) {
4654     uint32_t curr = system_sw_read_32(base + 0x19034L);
4655     system_sw_write_32(base + 0x19034L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
4656 }
acamera_isp_frame_stitch_lm_mc_thresh_thresh_read(uintptr_t base)4657 static __inline uint32_t acamera_isp_frame_stitch_lm_mc_thresh_thresh_read(uintptr_t base) {
4658     return (uint32_t)((system_sw_read_32(base + 0x19034L) & 0xfffff) >> 0);
4659 }
4660 // ------------------------------------------------------------------------------ //
4661 // Register: lm_mc_thresh_offset
4662 // ------------------------------------------------------------------------------ //
4663 
4664 // ------------------------------------------------------------------------------ //
4665 //
4666 //
4667 // ------------------------------------------------------------------------------ //
4668 
4669 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_OFFSET_DEFAULT (0x0)
4670 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_OFFSET_DATASIZE (12)
4671 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_OFFSET_OFFSET (0x1b0)
4672 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_THRESH_OFFSET_MASK (0xfff)
4673 
4674 // args: data (12-bit)
acamera_isp_frame_stitch_lm_mc_thresh_offset_write(uintptr_t base,uint16_t data)4675 static __inline void acamera_isp_frame_stitch_lm_mc_thresh_offset_write(uintptr_t base, uint16_t data) {
4676     uint32_t curr = system_sw_read_32(base + 0x19038L);
4677     system_sw_write_32(base + 0x19038L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4678 }
acamera_isp_frame_stitch_lm_mc_thresh_offset_read(uintptr_t base)4679 static __inline uint16_t acamera_isp_frame_stitch_lm_mc_thresh_offset_read(uintptr_t base) {
4680     return (uint16_t)((system_sw_read_32(base + 0x19038L) & 0xfff) >> 0);
4681 }
4682 // ------------------------------------------------------------------------------ //
4683 // Register: lm_mc_mag_thresh_slope
4684 // ------------------------------------------------------------------------------ //
4685 
4686 // ------------------------------------------------------------------------------ //
4687 //
4688 //
4689 // ------------------------------------------------------------------------------ //
4690 
4691 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_SLOPE_DEFAULT (0x0)
4692 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_SLOPE_DATASIZE (22)
4693 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_SLOPE_OFFSET (0x1b4)
4694 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_SLOPE_MASK (0x3fffff)
4695 
4696 // args: data (22-bit)
acamera_isp_frame_stitch_lm_mc_mag_thresh_slope_write(uintptr_t base,uint32_t data)4697 static __inline void acamera_isp_frame_stitch_lm_mc_mag_thresh_slope_write(uintptr_t base, uint32_t data) {
4698     uint32_t curr = system_sw_read_32(base + 0x1903cL);
4699     system_sw_write_32(base + 0x1903cL, (((uint32_t) (data & 0x3fffff)) << 0) | (curr & 0xffc00000));
4700 }
acamera_isp_frame_stitch_lm_mc_mag_thresh_slope_read(uintptr_t base)4701 static __inline uint32_t acamera_isp_frame_stitch_lm_mc_mag_thresh_slope_read(uintptr_t base) {
4702     return (uint32_t)((system_sw_read_32(base + 0x1903cL) & 0x3fffff) >> 0);
4703 }
4704 // ------------------------------------------------------------------------------ //
4705 // Register: lm_mc_mag_thresh_thresh
4706 // ------------------------------------------------------------------------------ //
4707 
4708 // ------------------------------------------------------------------------------ //
4709 //
4710 //
4711 // ------------------------------------------------------------------------------ //
4712 
4713 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_THRESH_DEFAULT (0x0)
4714 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_THRESH_DATASIZE (20)
4715 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_THRESH_OFFSET (0x1b8)
4716 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_THRESH_MASK (0xfffff)
4717 
4718 // args: data (20-bit)
acamera_isp_frame_stitch_lm_mc_mag_thresh_thresh_write(uintptr_t base,uint32_t data)4719 static __inline void acamera_isp_frame_stitch_lm_mc_mag_thresh_thresh_write(uintptr_t base, uint32_t data) {
4720     uint32_t curr = system_sw_read_32(base + 0x19040L);
4721     system_sw_write_32(base + 0x19040L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
4722 }
acamera_isp_frame_stitch_lm_mc_mag_thresh_thresh_read(uintptr_t base)4723 static __inline uint32_t acamera_isp_frame_stitch_lm_mc_mag_thresh_thresh_read(uintptr_t base) {
4724     return (uint32_t)((system_sw_read_32(base + 0x19040L) & 0xfffff) >> 0);
4725 }
4726 // ------------------------------------------------------------------------------ //
4727 // Register: lm_mc_mag_thresh_offset
4728 // ------------------------------------------------------------------------------ //
4729 
4730 // ------------------------------------------------------------------------------ //
4731 //
4732 //
4733 // ------------------------------------------------------------------------------ //
4734 
4735 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_OFFSET_DEFAULT (0x0)
4736 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_OFFSET_DATASIZE (12)
4737 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_OFFSET_OFFSET (0x1bc)
4738 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_THRESH_OFFSET_MASK (0xfff)
4739 
4740 // args: data (12-bit)
acamera_isp_frame_stitch_lm_mc_mag_thresh_offset_write(uintptr_t base,uint16_t data)4741 static __inline void acamera_isp_frame_stitch_lm_mc_mag_thresh_offset_write(uintptr_t base, uint16_t data) {
4742     uint32_t curr = system_sw_read_32(base + 0x19044L);
4743     system_sw_write_32(base + 0x19044L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4744 }
acamera_isp_frame_stitch_lm_mc_mag_thresh_offset_read(uintptr_t base)4745 static __inline uint16_t acamera_isp_frame_stitch_lm_mc_mag_thresh_offset_read(uintptr_t base) {
4746     return (uint16_t)((system_sw_read_32(base + 0x19044L) & 0xfff) >> 0);
4747 }
4748 // ------------------------------------------------------------------------------ //
4749 // Register: lm_mc_mag_lblend_thresh
4750 // ------------------------------------------------------------------------------ //
4751 
4752 // ------------------------------------------------------------------------------ //
4753 //
4754 //
4755 // ------------------------------------------------------------------------------ //
4756 
4757 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_LBLEND_THRESH_DEFAULT (0x0)
4758 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_LBLEND_THRESH_DATASIZE (12)
4759 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_LBLEND_THRESH_OFFSET (0x1bc)
4760 #define ACAMERA_ISP_FRAME_STITCH_LM_MC_MAG_LBLEND_THRESH_MASK (0xfff0000)
4761 
4762 // args: data (12-bit)
acamera_isp_frame_stitch_lm_mc_mag_lblend_thresh_write(uintptr_t base,uint16_t data)4763 static __inline void acamera_isp_frame_stitch_lm_mc_mag_lblend_thresh_write(uintptr_t base, uint16_t data) {
4764     uint32_t curr = system_sw_read_32(base + 0x19044L);
4765     system_sw_write_32(base + 0x19044L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4766 }
acamera_isp_frame_stitch_lm_mc_mag_lblend_thresh_read(uintptr_t base)4767 static __inline uint16_t acamera_isp_frame_stitch_lm_mc_mag_lblend_thresh_read(uintptr_t base) {
4768     return (uint16_t)((system_sw_read_32(base + 0x19044L) & 0xfff0000) >> 16);
4769 }
4770 // ------------------------------------------------------------------------------ //
4771 // Register: MCoff WB offset
4772 // ------------------------------------------------------------------------------ //
4773 
4774 // ------------------------------------------------------------------------------ //
4775 //
4776 //
4777 // ------------------------------------------------------------------------------ //
4778 
4779 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_WB_OFFSET_DEFAULT (0x0)
4780 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_WB_OFFSET_DATASIZE (12)
4781 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_WB_OFFSET_OFFSET (0x1c0)
4782 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_WB_OFFSET_MASK (0xfff)
4783 
4784 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_wb_offset_write(uintptr_t base,uint16_t data)4785 static __inline void acamera_isp_frame_stitch_mcoff_wb_offset_write(uintptr_t base, uint16_t data) {
4786     uint32_t curr = system_sw_read_32(base + 0x19048L);
4787     system_sw_write_32(base + 0x19048L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4788 }
acamera_isp_frame_stitch_mcoff_wb_offset_read(uintptr_t base)4789 static __inline uint16_t acamera_isp_frame_stitch_mcoff_wb_offset_read(uintptr_t base) {
4790     return (uint16_t)((system_sw_read_32(base + 0x19048L) & 0xfff) >> 0);
4791 }
4792 // ------------------------------------------------------------------------------ //
4793 // Register: Exposure_mask_thresh
4794 // ------------------------------------------------------------------------------ //
4795 
4796 // ------------------------------------------------------------------------------ //
4797 //
4798 //              Threshold for selection of exposure mask in blending regions.
4799 //              Where the alpha value is above this value the shorter exposure will be indicated.
4800 //
4801 // ------------------------------------------------------------------------------ //
4802 
4803 #define ACAMERA_ISP_FRAME_STITCH_EXPOSURE_MASK_THRESH_DEFAULT (0x20)
4804 #define ACAMERA_ISP_FRAME_STITCH_EXPOSURE_MASK_THRESH_DATASIZE (8)
4805 #define ACAMERA_ISP_FRAME_STITCH_EXPOSURE_MASK_THRESH_OFFSET (0x1c0)
4806 #define ACAMERA_ISP_FRAME_STITCH_EXPOSURE_MASK_THRESH_MASK (0xff0000)
4807 
4808 // args: data (8-bit)
acamera_isp_frame_stitch_exposure_mask_thresh_write(uintptr_t base,uint8_t data)4809 static __inline void acamera_isp_frame_stitch_exposure_mask_thresh_write(uintptr_t base, uint8_t data) {
4810     uint32_t curr = system_sw_read_32(base + 0x19048L);
4811     system_sw_write_32(base + 0x19048L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
4812 }
acamera_isp_frame_stitch_exposure_mask_thresh_read(uintptr_t base)4813 static __inline uint8_t acamera_isp_frame_stitch_exposure_mask_thresh_read(uintptr_t base) {
4814     return (uint8_t)((system_sw_read_32(base + 0x19048L) & 0xff0000) >> 16);
4815 }
4816 // ------------------------------------------------------------------------------ //
4817 // Register: bwb_select
4818 // ------------------------------------------------------------------------------ //
4819 
4820 // ------------------------------------------------------------------------------ //
4821 //
4822 //
4823 // ------------------------------------------------------------------------------ //
4824 
4825 #define ACAMERA_ISP_FRAME_STITCH_BWB_SELECT_DEFAULT (0x0)
4826 #define ACAMERA_ISP_FRAME_STITCH_BWB_SELECT_DATASIZE (1)
4827 #define ACAMERA_ISP_FRAME_STITCH_BWB_SELECT_OFFSET (0x1c4)
4828 #define ACAMERA_ISP_FRAME_STITCH_BWB_SELECT_MASK (0x1)
4829 
4830 // args: data (1-bit)
acamera_isp_frame_stitch_bwb_select_write(uintptr_t base,uint8_t data)4831 static __inline void acamera_isp_frame_stitch_bwb_select_write(uintptr_t base, uint8_t data) {
4832     uint32_t curr = system_sw_read_32(base + 0x1904cL);
4833     system_sw_write_32(base + 0x1904cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
4834 }
acamera_isp_frame_stitch_bwb_select_read(uintptr_t base)4835 static __inline uint8_t acamera_isp_frame_stitch_bwb_select_read(uintptr_t base) {
4836     return (uint8_t)((system_sw_read_32(base + 0x1904cL) & 0x1) >> 0);
4837 }
4838 // ------------------------------------------------------------------------------ //
4839 // Register: use_3x3_max
4840 // ------------------------------------------------------------------------------ //
4841 
4842 // ------------------------------------------------------------------------------ //
4843 //
4844 //
4845 // ------------------------------------------------------------------------------ //
4846 
4847 #define ACAMERA_ISP_FRAME_STITCH_USE_3X3_MAX_DEFAULT (0x0)
4848 #define ACAMERA_ISP_FRAME_STITCH_USE_3X3_MAX_DATASIZE (1)
4849 #define ACAMERA_ISP_FRAME_STITCH_USE_3X3_MAX_OFFSET (0x1c4)
4850 #define ACAMERA_ISP_FRAME_STITCH_USE_3X3_MAX_MASK (0x2)
4851 
4852 // args: data (1-bit)
acamera_isp_frame_stitch_use_3x3_max_write(uintptr_t base,uint8_t data)4853 static __inline void acamera_isp_frame_stitch_use_3x3_max_write(uintptr_t base, uint8_t data) {
4854     uint32_t curr = system_sw_read_32(base + 0x1904cL);
4855     system_sw_write_32(base + 0x1904cL, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
4856 }
acamera_isp_frame_stitch_use_3x3_max_read(uintptr_t base)4857 static __inline uint8_t acamera_isp_frame_stitch_use_3x3_max_read(uintptr_t base) {
4858     return (uint8_t)((system_sw_read_32(base + 0x1904cL) & 0x2) >> 1);
4859 }
4860 // ------------------------------------------------------------------------------ //
4861 // Register: mcoff mode enable
4862 // ------------------------------------------------------------------------------ //
4863 
4864 // ------------------------------------------------------------------------------ //
4865 //
4866 //
4867 // ------------------------------------------------------------------------------ //
4868 
4869 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_MODE_ENABLE_DEFAULT (0x0)
4870 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_MODE_ENABLE_DATASIZE (1)
4871 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_MODE_ENABLE_OFFSET (0x1c4)
4872 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_MODE_ENABLE_MASK (0x100)
4873 
4874 // args: data (1-bit)
acamera_isp_frame_stitch_mcoff_mode_enable_write(uintptr_t base,uint8_t data)4875 static __inline void acamera_isp_frame_stitch_mcoff_mode_enable_write(uintptr_t base, uint8_t data) {
4876     uint32_t curr = system_sw_read_32(base + 0x1904cL);
4877     system_sw_write_32(base + 0x1904cL, (((uint32_t) (data & 0x1)) << 8) | (curr & 0xfffffeff));
4878 }
acamera_isp_frame_stitch_mcoff_mode_enable_read(uintptr_t base)4879 static __inline uint8_t acamera_isp_frame_stitch_mcoff_mode_enable_read(uintptr_t base) {
4880     return (uint8_t)((system_sw_read_32(base + 0x1904cL) & 0x100) >> 8);
4881 }
4882 // ------------------------------------------------------------------------------ //
4883 // Register: lm_alg_select
4884 // ------------------------------------------------------------------------------ //
4885 
4886 // ------------------------------------------------------------------------------ //
4887 //
4888 //              Select which L/M stitching algorithm to use.
4889 //
4890 // ------------------------------------------------------------------------------ //
4891 
4892 #define ACAMERA_ISP_FRAME_STITCH_LM_ALG_SELECT_DEFAULT (0x0)
4893 #define ACAMERA_ISP_FRAME_STITCH_LM_ALG_SELECT_DATASIZE (1)
4894 #define ACAMERA_ISP_FRAME_STITCH_LM_ALG_SELECT_OFFSET (0x1c4)
4895 #define ACAMERA_ISP_FRAME_STITCH_LM_ALG_SELECT_MASK (0x10000)
4896 
4897 // args: data (1-bit)
acamera_isp_frame_stitch_lm_alg_select_write(uintptr_t base,uint8_t data)4898 static __inline void acamera_isp_frame_stitch_lm_alg_select_write(uintptr_t base, uint8_t data) {
4899     uint32_t curr = system_sw_read_32(base + 0x1904cL);
4900     system_sw_write_32(base + 0x1904cL, (((uint32_t) (data & 0x1)) << 16) | (curr & 0xfffeffff));
4901 }
acamera_isp_frame_stitch_lm_alg_select_read(uintptr_t base)4902 static __inline uint8_t acamera_isp_frame_stitch_lm_alg_select_read(uintptr_t base) {
4903     return (uint8_t)((system_sw_read_32(base + 0x1904cL) & 0x10000) >> 16);
4904 }
4905 // ------------------------------------------------------------------------------ //
4906 // Register: MCoff NC Enable
4907 // ------------------------------------------------------------------------------ //
4908 
4909 // ------------------------------------------------------------------------------ //
4910 //
4911 //
4912 // ------------------------------------------------------------------------------ //
4913 
4914 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_ENABLE_DEFAULT (0x0)
4915 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_ENABLE_DATASIZE (1)
4916 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_ENABLE_OFFSET (0x1c4)
4917 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_ENABLE_MASK (0x4)
4918 
4919 // args: data (1-bit)
acamera_isp_frame_stitch_mcoff_nc_enable_write(uintptr_t base,uint8_t data)4920 static __inline void acamera_isp_frame_stitch_mcoff_nc_enable_write(uintptr_t base, uint8_t data) {
4921     uint32_t curr = system_sw_read_32(base + 0x1904cL);
4922     system_sw_write_32(base + 0x1904cL, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
4923 }
acamera_isp_frame_stitch_mcoff_nc_enable_read(uintptr_t base)4924 static __inline uint8_t acamera_isp_frame_stitch_mcoff_nc_enable_read(uintptr_t base) {
4925     return (uint8_t)((system_sw_read_32(base + 0x1904cL) & 0x4) >> 2);
4926 }
4927 // ------------------------------------------------------------------------------ //
4928 // Register: MCoff L max
4929 // ------------------------------------------------------------------------------ //
4930 
4931 // ------------------------------------------------------------------------------ //
4932 //
4933 //
4934 // ------------------------------------------------------------------------------ //
4935 
4936 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_L_MAX_DEFAULT (0x0)
4937 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_L_MAX_DATASIZE (12)
4938 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_L_MAX_OFFSET (0x1c8)
4939 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_L_MAX_MASK (0xfff)
4940 
4941 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_l_max_write(uintptr_t base,uint16_t data)4942 static __inline void acamera_isp_frame_stitch_mcoff_l_max_write(uintptr_t base, uint16_t data) {
4943     uint32_t curr = system_sw_read_32(base + 0x19050L);
4944     system_sw_write_32(base + 0x19050L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4945 }
acamera_isp_frame_stitch_mcoff_l_max_read(uintptr_t base)4946 static __inline uint16_t acamera_isp_frame_stitch_mcoff_l_max_read(uintptr_t base) {
4947     return (uint16_t)((system_sw_read_32(base + 0x19050L) & 0xfff) >> 0);
4948 }
4949 // ------------------------------------------------------------------------------ //
4950 // Register: MCoff M max
4951 // ------------------------------------------------------------------------------ //
4952 
4953 // ------------------------------------------------------------------------------ //
4954 //
4955 //
4956 // ------------------------------------------------------------------------------ //
4957 
4958 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_M_MAX_DEFAULT (0x0)
4959 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_M_MAX_DATASIZE (12)
4960 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_M_MAX_OFFSET (0x1c8)
4961 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_M_MAX_MASK (0xfff0000)
4962 
4963 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_m_max_write(uintptr_t base,uint16_t data)4964 static __inline void acamera_isp_frame_stitch_mcoff_m_max_write(uintptr_t base, uint16_t data) {
4965     uint32_t curr = system_sw_read_32(base + 0x19050L);
4966     system_sw_write_32(base + 0x19050L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
4967 }
acamera_isp_frame_stitch_mcoff_m_max_read(uintptr_t base)4968 static __inline uint16_t acamera_isp_frame_stitch_mcoff_m_max_read(uintptr_t base) {
4969     return (uint16_t)((system_sw_read_32(base + 0x19050L) & 0xfff0000) >> 16);
4970 }
4971 // ------------------------------------------------------------------------------ //
4972 // Register: MCoff S max
4973 // ------------------------------------------------------------------------------ //
4974 
4975 // ------------------------------------------------------------------------------ //
4976 //
4977 //
4978 // ------------------------------------------------------------------------------ //
4979 
4980 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_S_MAX_DEFAULT (0x0)
4981 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_S_MAX_DATASIZE (12)
4982 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_S_MAX_OFFSET (0x1cc)
4983 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_S_MAX_MASK (0xfff)
4984 
4985 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_s_max_write(uintptr_t base,uint16_t data)4986 static __inline void acamera_isp_frame_stitch_mcoff_s_max_write(uintptr_t base, uint16_t data) {
4987     uint32_t curr = system_sw_read_32(base + 0x19054L);
4988     system_sw_write_32(base + 0x19054L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
4989 }
acamera_isp_frame_stitch_mcoff_s_max_read(uintptr_t base)4990 static __inline uint16_t acamera_isp_frame_stitch_mcoff_s_max_read(uintptr_t base) {
4991     return (uint16_t)((system_sw_read_32(base + 0x19054L) & 0xfff) >> 0);
4992 }
4993 // ------------------------------------------------------------------------------ //
4994 // Register: MCoff vs max
4995 // ------------------------------------------------------------------------------ //
4996 
4997 // ------------------------------------------------------------------------------ //
4998 //
4999 //
5000 // ------------------------------------------------------------------------------ //
5001 
5002 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_VS_MAX_DEFAULT (0x0)
5003 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_VS_MAX_DATASIZE (12)
5004 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_VS_MAX_OFFSET (0x1cc)
5005 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_VS_MAX_MASK (0xfff0000)
5006 
5007 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_vs_max_write(uintptr_t base,uint16_t data)5008 static __inline void acamera_isp_frame_stitch_mcoff_vs_max_write(uintptr_t base, uint16_t data) {
5009     uint32_t curr = system_sw_read_32(base + 0x19054L);
5010     system_sw_write_32(base + 0x19054L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
5011 }
acamera_isp_frame_stitch_mcoff_vs_max_read(uintptr_t base)5012 static __inline uint16_t acamera_isp_frame_stitch_mcoff_vs_max_read(uintptr_t base) {
5013     return (uint16_t)((system_sw_read_32(base + 0x19054L) & 0xfff0000) >> 16);
5014 }
5015 // ------------------------------------------------------------------------------ //
5016 // Register: MCoff L scaler
5017 // ------------------------------------------------------------------------------ //
5018 
5019 // ------------------------------------------------------------------------------ //
5020 //
5021 //
5022 // ------------------------------------------------------------------------------ //
5023 
5024 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_L_SCALER_DEFAULT (0x0)
5025 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_L_SCALER_DATASIZE (12)
5026 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_L_SCALER_OFFSET (0x1d0)
5027 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_L_SCALER_MASK (0xfff)
5028 
5029 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_l_scaler_write(uintptr_t base,uint16_t data)5030 static __inline void acamera_isp_frame_stitch_mcoff_l_scaler_write(uintptr_t base, uint16_t data) {
5031     uint32_t curr = system_sw_read_32(base + 0x19058L);
5032     system_sw_write_32(base + 0x19058L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
5033 }
acamera_isp_frame_stitch_mcoff_l_scaler_read(uintptr_t base)5034 static __inline uint16_t acamera_isp_frame_stitch_mcoff_l_scaler_read(uintptr_t base) {
5035     return (uint16_t)((system_sw_read_32(base + 0x19058L) & 0xfff) >> 0);
5036 }
5037 // ------------------------------------------------------------------------------ //
5038 // Register: MCoff LM scaler
5039 // ------------------------------------------------------------------------------ //
5040 
5041 // ------------------------------------------------------------------------------ //
5042 //
5043 //
5044 // ------------------------------------------------------------------------------ //
5045 
5046 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_LM_SCALER_DEFAULT (0x0)
5047 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_LM_SCALER_DATASIZE (12)
5048 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_LM_SCALER_OFFSET (0x1d0)
5049 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_LM_SCALER_MASK (0xfff0000)
5050 
5051 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_lm_scaler_write(uintptr_t base,uint16_t data)5052 static __inline void acamera_isp_frame_stitch_mcoff_lm_scaler_write(uintptr_t base, uint16_t data) {
5053     uint32_t curr = system_sw_read_32(base + 0x19058L);
5054     system_sw_write_32(base + 0x19058L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
5055 }
acamera_isp_frame_stitch_mcoff_lm_scaler_read(uintptr_t base)5056 static __inline uint16_t acamera_isp_frame_stitch_mcoff_lm_scaler_read(uintptr_t base) {
5057     return (uint16_t)((system_sw_read_32(base + 0x19058L) & 0xfff0000) >> 16);
5058 }
5059 // ------------------------------------------------------------------------------ //
5060 // Register: MCoff LMS scaler
5061 // ------------------------------------------------------------------------------ //
5062 
5063 // ------------------------------------------------------------------------------ //
5064 //
5065 //
5066 // ------------------------------------------------------------------------------ //
5067 
5068 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_LMS_SCALER_DEFAULT (0x0)
5069 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_LMS_SCALER_DATASIZE (12)
5070 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_LMS_SCALER_OFFSET (0x1d4)
5071 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_LMS_SCALER_MASK (0xfff)
5072 
5073 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_lms_scaler_write(uintptr_t base,uint16_t data)5074 static __inline void acamera_isp_frame_stitch_mcoff_lms_scaler_write(uintptr_t base, uint16_t data) {
5075     uint32_t curr = system_sw_read_32(base + 0x1905cL);
5076     system_sw_write_32(base + 0x1905cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
5077 }
acamera_isp_frame_stitch_mcoff_lms_scaler_read(uintptr_t base)5078 static __inline uint16_t acamera_isp_frame_stitch_mcoff_lms_scaler_read(uintptr_t base) {
5079     return (uint16_t)((system_sw_read_32(base + 0x1905cL) & 0xfff) >> 0);
5080 }
5081 // ------------------------------------------------------------------------------ //
5082 // Register: MCoff NC thresh low
5083 // ------------------------------------------------------------------------------ //
5084 
5085 // ------------------------------------------------------------------------------ //
5086 //
5087 //
5088 // ------------------------------------------------------------------------------ //
5089 
5090 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_THRESH_LOW_DEFAULT (0x0)
5091 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_THRESH_LOW_DATASIZE (12)
5092 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_THRESH_LOW_OFFSET (0x1d4)
5093 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_THRESH_LOW_MASK (0xfff0000)
5094 
5095 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_nc_thresh_low_write(uintptr_t base,uint16_t data)5096 static __inline void acamera_isp_frame_stitch_mcoff_nc_thresh_low_write(uintptr_t base, uint16_t data) {
5097     uint32_t curr = system_sw_read_32(base + 0x1905cL);
5098     system_sw_write_32(base + 0x1905cL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
5099 }
acamera_isp_frame_stitch_mcoff_nc_thresh_low_read(uintptr_t base)5100 static __inline uint16_t acamera_isp_frame_stitch_mcoff_nc_thresh_low_read(uintptr_t base) {
5101     return (uint16_t)((system_sw_read_32(base + 0x1905cL) & 0xfff0000) >> 16);
5102 }
5103 // ------------------------------------------------------------------------------ //
5104 // Register: MCoff NC thresh high
5105 // ------------------------------------------------------------------------------ //
5106 
5107 // ------------------------------------------------------------------------------ //
5108 //
5109 //
5110 // ------------------------------------------------------------------------------ //
5111 
5112 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_THRESH_HIGH_DEFAULT (0x0)
5113 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_THRESH_HIGH_DATASIZE (12)
5114 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_THRESH_HIGH_OFFSET (0x1d8)
5115 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_THRESH_HIGH_MASK (0xfff)
5116 
5117 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_nc_thresh_high_write(uintptr_t base,uint16_t data)5118 static __inline void acamera_isp_frame_stitch_mcoff_nc_thresh_high_write(uintptr_t base, uint16_t data) {
5119     uint32_t curr = system_sw_read_32(base + 0x19060L);
5120     system_sw_write_32(base + 0x19060L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
5121 }
acamera_isp_frame_stitch_mcoff_nc_thresh_high_read(uintptr_t base)5122 static __inline uint16_t acamera_isp_frame_stitch_mcoff_nc_thresh_high_read(uintptr_t base) {
5123     return (uint16_t)((system_sw_read_32(base + 0x19060L) & 0xfff) >> 0);
5124 }
5125 // ------------------------------------------------------------------------------ //
5126 // Register: MCoff NC scale
5127 // ------------------------------------------------------------------------------ //
5128 
5129 // ------------------------------------------------------------------------------ //
5130 //
5131 //
5132 // ------------------------------------------------------------------------------ //
5133 
5134 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_SCALE_DEFAULT (0x0)
5135 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_SCALE_DATASIZE (12)
5136 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_SCALE_OFFSET (0x1d8)
5137 #define ACAMERA_ISP_FRAME_STITCH_MCOFF_NC_SCALE_MASK (0xfff0000)
5138 
5139 // args: data (12-bit)
acamera_isp_frame_stitch_mcoff_nc_scale_write(uintptr_t base,uint16_t data)5140 static __inline void acamera_isp_frame_stitch_mcoff_nc_scale_write(uintptr_t base, uint16_t data) {
5141     uint32_t curr = system_sw_read_32(base + 0x19060L);
5142     system_sw_write_32(base + 0x19060L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
5143 }
acamera_isp_frame_stitch_mcoff_nc_scale_read(uintptr_t base)5144 static __inline uint16_t acamera_isp_frame_stitch_mcoff_nc_scale_read(uintptr_t base) {
5145     return (uint16_t)((system_sw_read_32(base + 0x19060L) & 0xfff0000) >> 16);
5146 }
5147 // ------------------------------------------------------------------------------ //
5148 // Group: frame stitch NP LUT VS
5149 // ------------------------------------------------------------------------------ //
5150 
5151 // ------------------------------------------------------------------------------ //
5152 // Noise profile for short exposure data at frame stitch
5153 // ------------------------------------------------------------------------------ //
5154 
5155 // ------------------------------------------------------------------------------ //
5156 // Register: Weight lut
5157 // ------------------------------------------------------------------------------ //
5158 
5159 // ------------------------------------------------------------------------------ //
5160 // Noise profile LUT.  Calculated during calibration process.
5161 // ------------------------------------------------------------------------------ //
5162 
5163 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_VS_WEIGHT_LUT_DEFAULT (0x0)
5164 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_VS_WEIGHT_LUT_DATASIZE (8)
5165 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_VS_WEIGHT_LUT_OFFSET (0x1dc)
5166 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_VS_WEIGHT_LUT_MASK (0xff)
5167 
5168 // index (0-127), args: data (8-bit)
acamera_isp_frame_stitch_np_lut_vs_weight_lut_write(uintptr_t base,uint32_t index,uint8_t data)5169 static __inline void acamera_isp_frame_stitch_np_lut_vs_weight_lut_write( uintptr_t base, uint32_t index,uint8_t data) {
5170     uintptr_t addr = base + 0x19064L + (index & 0xFFFFFFFC);
5171     uint8_t offset = (index & 3) << 3;
5172     uint32_t curr = system_sw_read_32(addr);
5173     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
5174 }
acamera_isp_frame_stitch_np_lut_vs_weight_lut_read(uintptr_t base,uint32_t index)5175 static __inline uint8_t acamera_isp_frame_stitch_np_lut_vs_weight_lut_read( uintptr_t base, uint32_t index) {
5176     uintptr_t addr = base + 0x19064L + (index & 0xFFFFFFFC);
5177     uint8_t offset = (index & 3) << 3;
5178     return (uint8_t)(system_sw_read_32(addr) >> offset);
5179 }
5180 // ------------------------------------------------------------------------------ //
5181 // Group: frame stitch NP LUT S
5182 // ------------------------------------------------------------------------------ //
5183 
5184 // ------------------------------------------------------------------------------ //
5185 // Noise profile for med2 exposure data at frame stitch
5186 // ------------------------------------------------------------------------------ //
5187 
5188 // ------------------------------------------------------------------------------ //
5189 // Register: Weight lut
5190 // ------------------------------------------------------------------------------ //
5191 
5192 // ------------------------------------------------------------------------------ //
5193 // Noise profile LUT.  Calculated during calibration process.
5194 // ------------------------------------------------------------------------------ //
5195 
5196 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_S_WEIGHT_LUT_DEFAULT (0x0)
5197 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_S_WEIGHT_LUT_DATASIZE (8)
5198 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_S_WEIGHT_LUT_OFFSET (0x25c)
5199 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_S_WEIGHT_LUT_MASK (0xff)
5200 
5201 // index (0-127), args: data (8-bit)
acamera_isp_frame_stitch_np_lut_s_weight_lut_write(uintptr_t base,uint32_t index,uint8_t data)5202 static __inline void acamera_isp_frame_stitch_np_lut_s_weight_lut_write( uintptr_t base, uint32_t index,uint8_t data) {
5203     uintptr_t addr = base + 0x190e4L + (index & 0xFFFFFFFC);
5204     uint8_t offset = (index & 3) << 3;
5205     uint32_t curr = system_sw_read_32(addr);
5206     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
5207 }
acamera_isp_frame_stitch_np_lut_s_weight_lut_read(uintptr_t base,uint32_t index)5208 static __inline uint8_t acamera_isp_frame_stitch_np_lut_s_weight_lut_read( uintptr_t base, uint32_t index) {
5209     uintptr_t addr = base + 0x190e4L + (index & 0xFFFFFFFC);
5210     uint8_t offset = (index & 3) << 3;
5211     return (uint8_t)(system_sw_read_32(addr) >> offset);
5212 }
5213 // ------------------------------------------------------------------------------ //
5214 // Group: frame stitch NP LUT M
5215 // ------------------------------------------------------------------------------ //
5216 
5217 // ------------------------------------------------------------------------------ //
5218 // Noise profile for med1 exposure data at frame stitch
5219 // ------------------------------------------------------------------------------ //
5220 
5221 // ------------------------------------------------------------------------------ //
5222 // Register: Weight lut
5223 // ------------------------------------------------------------------------------ //
5224 
5225 // ------------------------------------------------------------------------------ //
5226 // Noise profile LUT.  Calculated during calibration process.
5227 // ------------------------------------------------------------------------------ //
5228 
5229 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_M_WEIGHT_LUT_DEFAULT (0x0)
5230 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_M_WEIGHT_LUT_DATASIZE (8)
5231 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_M_WEIGHT_LUT_OFFSET (0x2dc)
5232 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_M_WEIGHT_LUT_MASK (0xff)
5233 
5234 // index (0-127), args: data (8-bit)
acamera_isp_frame_stitch_np_lut_m_weight_lut_write(uintptr_t base,uint32_t index,uint8_t data)5235 static __inline void acamera_isp_frame_stitch_np_lut_m_weight_lut_write( uintptr_t base, uint32_t index,uint8_t data) {
5236     uintptr_t addr = base + 0x19164L + (index & 0xFFFFFFFC);
5237     uint8_t offset = (index & 3) << 3;
5238     uint32_t curr = system_sw_read_32(addr);
5239     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
5240 }
acamera_isp_frame_stitch_np_lut_m_weight_lut_read(uintptr_t base,uint32_t index)5241 static __inline uint8_t acamera_isp_frame_stitch_np_lut_m_weight_lut_read( uintptr_t base, uint32_t index) {
5242     uintptr_t addr = base + 0x19164L + (index & 0xFFFFFFFC);
5243     uint8_t offset = (index & 3) << 3;
5244     return (uint8_t)(system_sw_read_32(addr) >> offset);
5245 }
5246 // ------------------------------------------------------------------------------ //
5247 // Group: frame stitch NP LUT L
5248 // ------------------------------------------------------------------------------ //
5249 
5250 // ------------------------------------------------------------------------------ //
5251 // Noise profile for long exposure data at frame stitch
5252 // ------------------------------------------------------------------------------ //
5253 
5254 // ------------------------------------------------------------------------------ //
5255 // Register: Weight lut
5256 // ------------------------------------------------------------------------------ //
5257 
5258 // ------------------------------------------------------------------------------ //
5259 // Noise profile LUT.  Calculated during calibration process.
5260 // ------------------------------------------------------------------------------ //
5261 
5262 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_L_WEIGHT_LUT_DEFAULT (0x0)
5263 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_L_WEIGHT_LUT_DATASIZE (8)
5264 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_L_WEIGHT_LUT_OFFSET (0x35c)
5265 #define ACAMERA_ISP_FRAME_STITCH_NP_LUT_L_WEIGHT_LUT_MASK (0xff)
5266 
5267 // index (0-127), args: data (8-bit)
acamera_isp_frame_stitch_np_lut_l_weight_lut_write(uintptr_t base,uint32_t index,uint8_t data)5268 static __inline void acamera_isp_frame_stitch_np_lut_l_weight_lut_write( uintptr_t base, uint32_t index,uint8_t data) {
5269     uintptr_t addr = base + 0x191e4L + (index & 0xFFFFFFFC);
5270     uint8_t offset = (index & 3) << 3;
5271     uint32_t curr = system_sw_read_32(addr);
5272     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
5273 }
acamera_isp_frame_stitch_np_lut_l_weight_lut_read(uintptr_t base,uint32_t index)5274 static __inline uint8_t acamera_isp_frame_stitch_np_lut_l_weight_lut_read( uintptr_t base, uint32_t index) {
5275     uintptr_t addr = base + 0x191e4L + (index & 0xFFFFFFFC);
5276     uint8_t offset = (index & 3) << 3;
5277     return (uint8_t)(system_sw_read_32(addr) >> offset);
5278 }
5279 // ------------------------------------------------------------------------------ //
5280 // Group: decompander0
5281 // ------------------------------------------------------------------------------ //
5282 
5283 // ------------------------------------------------------------------------------ //
5284 // Frontend lookup (for companded WDR sensor inputs)
5285 // ------------------------------------------------------------------------------ //
5286 
5287 // ------------------------------------------------------------------------------ //
5288 // Register: Enable
5289 // ------------------------------------------------------------------------------ //
5290 
5291 // ------------------------------------------------------------------------------ //
5292 // Frontend lookup0 enable: 0=off 1=on
5293 // ------------------------------------------------------------------------------ //
5294 
5295 #define ACAMERA_ISP_DECOMPANDER0_ENABLE_DEFAULT (0)
5296 #define ACAMERA_ISP_DECOMPANDER0_ENABLE_DATASIZE (1)
5297 #define ACAMERA_ISP_DECOMPANDER0_ENABLE_OFFSET (0x3dc)
5298 #define ACAMERA_ISP_DECOMPANDER0_ENABLE_MASK (0x1)
5299 
5300 // args: data (1-bit)
acamera_isp_decompander0_enable_write(uintptr_t base,uint8_t data)5301 static __inline void acamera_isp_decompander0_enable_write(uintptr_t base, uint8_t data) {
5302     uint32_t curr = system_sw_read_32(base + 0x19264L);
5303     system_sw_write_32(base + 0x19264L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
5304 }
acamera_isp_decompander0_enable_read(uintptr_t base)5305 static __inline uint8_t acamera_isp_decompander0_enable_read(uintptr_t base) {
5306     return (uint8_t)((system_sw_read_32(base + 0x19264L) & 0x1) >> 0);
5307 }
5308 // ------------------------------------------------------------------------------ //
5309 // Register: Offset Mode
5310 // ------------------------------------------------------------------------------ //
5311 
5312 // ------------------------------------------------------------------------------ //
5313 //
5314 //          Lookup0 reflection mode for black offset region
5315 //          0 = Manual curve reflection
5316 //          1 = Automatic curve reflection
5317 //
5318 // ------------------------------------------------------------------------------ //
5319 
5320 #define ACAMERA_ISP_DECOMPANDER0_OFFSET_MODE_DEFAULT (0)
5321 #define ACAMERA_ISP_DECOMPANDER0_OFFSET_MODE_DATASIZE (1)
5322 #define ACAMERA_ISP_DECOMPANDER0_OFFSET_MODE_OFFSET (0x3dc)
5323 #define ACAMERA_ISP_DECOMPANDER0_OFFSET_MODE_MASK (0x10)
5324 
5325 // args: data (1-bit)
acamera_isp_decompander0_offset_mode_write(uintptr_t base,uint8_t data)5326 static __inline void acamera_isp_decompander0_offset_mode_write(uintptr_t base, uint8_t data) {
5327     uint32_t curr = system_sw_read_32(base + 0x19264L);
5328     system_sw_write_32(base + 0x19264L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
5329 }
acamera_isp_decompander0_offset_mode_read(uintptr_t base)5330 static __inline uint8_t acamera_isp_decompander0_offset_mode_read(uintptr_t base) {
5331     return (uint8_t)((system_sw_read_32(base + 0x19264L) & 0x10) >> 4);
5332 }
5333 // ------------------------------------------------------------------------------ //
5334 // Group: decompander1
5335 // ------------------------------------------------------------------------------ //
5336 
5337 // ------------------------------------------------------------------------------ //
5338 // Frontend lookup (for companded WDR sensor inputs)
5339 // ------------------------------------------------------------------------------ //
5340 
5341 // ------------------------------------------------------------------------------ //
5342 // Register: Enable
5343 // ------------------------------------------------------------------------------ //
5344 
5345 // ------------------------------------------------------------------------------ //
5346 // Frontend lookup0 enable: 0=off 1=on
5347 // ------------------------------------------------------------------------------ //
5348 
5349 #define ACAMERA_ISP_DECOMPANDER1_ENABLE_DEFAULT (0)
5350 #define ACAMERA_ISP_DECOMPANDER1_ENABLE_DATASIZE (1)
5351 #define ACAMERA_ISP_DECOMPANDER1_ENABLE_OFFSET (0x3e0)
5352 #define ACAMERA_ISP_DECOMPANDER1_ENABLE_MASK (0x1)
5353 
5354 // args: data (1-bit)
acamera_isp_decompander1_enable_write(uintptr_t base,uint8_t data)5355 static __inline void acamera_isp_decompander1_enable_write(uintptr_t base, uint8_t data) {
5356     uint32_t curr = system_sw_read_32(base + 0x19268L);
5357     system_sw_write_32(base + 0x19268L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
5358 }
acamera_isp_decompander1_enable_read(uintptr_t base)5359 static __inline uint8_t acamera_isp_decompander1_enable_read(uintptr_t base) {
5360     return (uint8_t)((system_sw_read_32(base + 0x19268L) & 0x1) >> 0);
5361 }
5362 // ------------------------------------------------------------------------------ //
5363 // Register: Offset Mode
5364 // ------------------------------------------------------------------------------ //
5365 
5366 // ------------------------------------------------------------------------------ //
5367 //
5368 //          Lookup0 reflection mode for black offset region
5369 //          0 = Manual curve reflection
5370 //          1 = Automatic curve reflection
5371 //
5372 // ------------------------------------------------------------------------------ //
5373 
5374 #define ACAMERA_ISP_DECOMPANDER1_OFFSET_MODE_DEFAULT (0)
5375 #define ACAMERA_ISP_DECOMPANDER1_OFFSET_MODE_DATASIZE (1)
5376 #define ACAMERA_ISP_DECOMPANDER1_OFFSET_MODE_OFFSET (0x3e0)
5377 #define ACAMERA_ISP_DECOMPANDER1_OFFSET_MODE_MASK (0x10)
5378 
5379 // args: data (1-bit)
acamera_isp_decompander1_offset_mode_write(uintptr_t base,uint8_t data)5380 static __inline void acamera_isp_decompander1_offset_mode_write(uintptr_t base, uint8_t data) {
5381     uint32_t curr = system_sw_read_32(base + 0x19268L);
5382     system_sw_write_32(base + 0x19268L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
5383 }
acamera_isp_decompander1_offset_mode_read(uintptr_t base)5384 static __inline uint8_t acamera_isp_decompander1_offset_mode_read(uintptr_t base) {
5385     return (uint8_t)((system_sw_read_32(base + 0x19268L) & 0x10) >> 4);
5386 }
5387 // ------------------------------------------------------------------------------ //
5388 // Group: digital gain
5389 // ------------------------------------------------------------------------------ //
5390 
5391 // ------------------------------------------------------------------------------ //
5392 // Digital gain for RAW sensor data
5393 // ------------------------------------------------------------------------------ //
5394 
5395 // ------------------------------------------------------------------------------ //
5396 // Register: Gain
5397 // ------------------------------------------------------------------------------ //
5398 
5399 // ------------------------------------------------------------------------------ //
5400 // Gain applied to data in 5.8 format
5401 // ------------------------------------------------------------------------------ //
5402 
5403 #define ACAMERA_ISP_DIGITAL_GAIN_GAIN_DEFAULT (0x100)
5404 #define ACAMERA_ISP_DIGITAL_GAIN_GAIN_DATASIZE (13)
5405 #define ACAMERA_ISP_DIGITAL_GAIN_GAIN_OFFSET (0x3e4)
5406 #define ACAMERA_ISP_DIGITAL_GAIN_GAIN_MASK (0x1fff)
5407 
5408 // args: data (13-bit)
acamera_isp_digital_gain_gain_write(uintptr_t base,uint16_t data)5409 static __inline void acamera_isp_digital_gain_gain_write(uintptr_t base, uint16_t data) {
5410     uint32_t curr = system_sw_read_32(base + 0x1926cL);
5411     system_sw_write_32(base + 0x1926cL, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
5412 }
acamera_isp_digital_gain_gain_read(uintptr_t base)5413 static __inline uint16_t acamera_isp_digital_gain_gain_read(uintptr_t base) {
5414     return (uint16_t)((system_sw_read_32(base + 0x1926cL) & 0x1fff) >> 0);
5415 }
5416 // ------------------------------------------------------------------------------ //
5417 // Register: Offset
5418 // ------------------------------------------------------------------------------ //
5419 
5420 // ------------------------------------------------------------------------------ //
5421 // Data black level
5422 // ------------------------------------------------------------------------------ //
5423 
5424 #define ACAMERA_ISP_DIGITAL_GAIN_OFFSET_DEFAULT (0x000)
5425 #define ACAMERA_ISP_DIGITAL_GAIN_OFFSET_DATASIZE (20)
5426 #define ACAMERA_ISP_DIGITAL_GAIN_OFFSET_OFFSET (0x3e8)
5427 #define ACAMERA_ISP_DIGITAL_GAIN_OFFSET_MASK (0xfffff)
5428 
5429 // args: data (20-bit)
acamera_isp_digital_gain_offset_write(uintptr_t base,uint32_t data)5430 static __inline void acamera_isp_digital_gain_offset_write(uintptr_t base, uint32_t data) {
5431     uint32_t curr = system_sw_read_32(base + 0x19270L);
5432     system_sw_write_32(base + 0x19270L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
5433 }
acamera_isp_digital_gain_offset_read(uintptr_t base)5434 static __inline uint32_t acamera_isp_digital_gain_offset_read(uintptr_t base) {
5435     return (uint32_t)((system_sw_read_32(base + 0x19270L) & 0xfffff) >> 0);
5436 }
5437 // ------------------------------------------------------------------------------ //
5438 // Group: sensor offset fe
5439 // ------------------------------------------------------------------------------ //
5440 
5441 // ------------------------------------------------------------------------------ //
5442 // offset offset subtraction for each color channel and exposure
5443 // ------------------------------------------------------------------------------ //
5444 
5445 // ------------------------------------------------------------------------------ //
5446 // Register: offset 00
5447 // ------------------------------------------------------------------------------ //
5448 
5449 // ------------------------------------------------------------------------------ //
5450 // offset offset for color channel 00 (R)
5451 // ------------------------------------------------------------------------------ //
5452 
5453 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_00_DEFAULT (0x00)
5454 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_00_DATASIZE (20)
5455 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_00_OFFSET (0x3ec)
5456 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_00_MASK (0xfffff)
5457 
5458 // args: data (20-bit)
acamera_isp_sensor_offset_fe_offset_00_write(uintptr_t base,uint32_t data)5459 static __inline void acamera_isp_sensor_offset_fe_offset_00_write(uintptr_t base, uint32_t data) {
5460     uint32_t curr = system_sw_read_32(base + 0x19274L);
5461     system_sw_write_32(base + 0x19274L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
5462 }
acamera_isp_sensor_offset_fe_offset_00_read(uintptr_t base)5463 static __inline uint32_t acamera_isp_sensor_offset_fe_offset_00_read(uintptr_t base) {
5464     return (uint32_t)((system_sw_read_32(base + 0x19274L) & 0xfffff) >> 0);
5465 }
5466 // ------------------------------------------------------------------------------ //
5467 // Register: offset 01
5468 // ------------------------------------------------------------------------------ //
5469 
5470 // ------------------------------------------------------------------------------ //
5471 // offset offset for color channel 01 (Gr)
5472 // ------------------------------------------------------------------------------ //
5473 
5474 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_01_DEFAULT (0x00)
5475 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_01_DATASIZE (20)
5476 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_01_OFFSET (0x3f0)
5477 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_01_MASK (0xfffff)
5478 
5479 // args: data (20-bit)
acamera_isp_sensor_offset_fe_offset_01_write(uintptr_t base,uint32_t data)5480 static __inline void acamera_isp_sensor_offset_fe_offset_01_write(uintptr_t base, uint32_t data) {
5481     uint32_t curr = system_sw_read_32(base + 0x19278L);
5482     system_sw_write_32(base + 0x19278L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
5483 }
acamera_isp_sensor_offset_fe_offset_01_read(uintptr_t base)5484 static __inline uint32_t acamera_isp_sensor_offset_fe_offset_01_read(uintptr_t base) {
5485     return (uint32_t)((system_sw_read_32(base + 0x19278L) & 0xfffff) >> 0);
5486 }
5487 // ------------------------------------------------------------------------------ //
5488 // Register: offset 10
5489 // ------------------------------------------------------------------------------ //
5490 
5491 // ------------------------------------------------------------------------------ //
5492 // offset offset for color channel 10 (Gb)
5493 // ------------------------------------------------------------------------------ //
5494 
5495 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_10_DEFAULT (0x00)
5496 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_10_DATASIZE (20)
5497 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_10_OFFSET (0x3f4)
5498 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_10_MASK (0xfffff)
5499 
5500 // args: data (20-bit)
acamera_isp_sensor_offset_fe_offset_10_write(uintptr_t base,uint32_t data)5501 static __inline void acamera_isp_sensor_offset_fe_offset_10_write(uintptr_t base, uint32_t data) {
5502     uint32_t curr = system_sw_read_32(base + 0x1927cL);
5503     system_sw_write_32(base + 0x1927cL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
5504 }
acamera_isp_sensor_offset_fe_offset_10_read(uintptr_t base)5505 static __inline uint32_t acamera_isp_sensor_offset_fe_offset_10_read(uintptr_t base) {
5506     return (uint32_t)((system_sw_read_32(base + 0x1927cL) & 0xfffff) >> 0);
5507 }
5508 // ------------------------------------------------------------------------------ //
5509 // Register: offset 11
5510 // ------------------------------------------------------------------------------ //
5511 
5512 // ------------------------------------------------------------------------------ //
5513 // offset offset for color channel 11 (B)
5514 // ------------------------------------------------------------------------------ //
5515 
5516 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_11_DEFAULT (0x00)
5517 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_11_DATASIZE (20)
5518 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_11_OFFSET (0x3f8)
5519 #define ACAMERA_ISP_SENSOR_OFFSET_FE_OFFSET_11_MASK (0xfffff)
5520 
5521 // args: data (20-bit)
acamera_isp_sensor_offset_fe_offset_11_write(uintptr_t base,uint32_t data)5522 static __inline void acamera_isp_sensor_offset_fe_offset_11_write(uintptr_t base, uint32_t data) {
5523     uint32_t curr = system_sw_read_32(base + 0x19280L);
5524     system_sw_write_32(base + 0x19280L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
5525 }
acamera_isp_sensor_offset_fe_offset_11_read(uintptr_t base)5526 static __inline uint32_t acamera_isp_sensor_offset_fe_offset_11_read(uintptr_t base) {
5527     return (uint32_t)((system_sw_read_32(base + 0x19280L) & 0xfffff) >> 0);
5528 }
5529 // ------------------------------------------------------------------------------ //
5530 // Group: sqrt
5531 // ------------------------------------------------------------------------------ //
5532 
5533 // ------------------------------------------------------------------------------ //
5534 // sensor offset for the sqrt module
5535 // ------------------------------------------------------------------------------ //
5536 
5537 // ------------------------------------------------------------------------------ //
5538 // Register: black_level_in
5539 // ------------------------------------------------------------------------------ //
5540 
5541 // ------------------------------------------------------------------------------ //
5542 // input Data black level
5543 // ------------------------------------------------------------------------------ //
5544 
5545 #define ACAMERA_ISP_SQRT_BLACK_LEVEL_IN_DEFAULT (0x000)
5546 #define ACAMERA_ISP_SQRT_BLACK_LEVEL_IN_DATASIZE (20)
5547 #define ACAMERA_ISP_SQRT_BLACK_LEVEL_IN_OFFSET (0x3fc)
5548 #define ACAMERA_ISP_SQRT_BLACK_LEVEL_IN_MASK (0xfffff)
5549 
5550 // args: data (20-bit)
acamera_isp_sqrt_black_level_in_write(uintptr_t base,uint32_t data)5551 static __inline void acamera_isp_sqrt_black_level_in_write(uintptr_t base, uint32_t data) {
5552     uint32_t curr = system_sw_read_32(base + 0x19284L);
5553     system_sw_write_32(base + 0x19284L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
5554 }
acamera_isp_sqrt_black_level_in_read(uintptr_t base)5555 static __inline uint32_t acamera_isp_sqrt_black_level_in_read(uintptr_t base) {
5556     return (uint32_t)((system_sw_read_32(base + 0x19284L) & 0xfffff) >> 0);
5557 }
5558 // ------------------------------------------------------------------------------ //
5559 // Register: black_level_out
5560 // ------------------------------------------------------------------------------ //
5561 
5562 // ------------------------------------------------------------------------------ //
5563 // output Data black level
5564 // ------------------------------------------------------------------------------ //
5565 
5566 #define ACAMERA_ISP_SQRT_BLACK_LEVEL_OUT_DEFAULT (0x000)
5567 #define ACAMERA_ISP_SQRT_BLACK_LEVEL_OUT_DATASIZE (16)
5568 #define ACAMERA_ISP_SQRT_BLACK_LEVEL_OUT_OFFSET (0x400)
5569 #define ACAMERA_ISP_SQRT_BLACK_LEVEL_OUT_MASK (0xffff)
5570 
5571 // args: data (16-bit)
acamera_isp_sqrt_black_level_out_write(uintptr_t base,uint16_t data)5572 static __inline void acamera_isp_sqrt_black_level_out_write(uintptr_t base, uint16_t data) {
5573     uint32_t curr = system_sw_read_32(base + 0x19288L);
5574     system_sw_write_32(base + 0x19288L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
5575 }
acamera_isp_sqrt_black_level_out_read(uintptr_t base)5576 static __inline uint16_t acamera_isp_sqrt_black_level_out_read(uintptr_t base) {
5577     return (uint16_t)((system_sw_read_32(base + 0x19288L) & 0xffff) >> 0);
5578 }
5579 // ------------------------------------------------------------------------------ //
5580 // Group: raw frontend
5581 // ------------------------------------------------------------------------------ //
5582 
5583 // ------------------------------------------------------------------------------ //
5584 // RAW frontend processing
5585 // ------------------------------------------------------------------------------ //
5586 
5587 // ------------------------------------------------------------------------------ //
5588 // Register: ge enable
5589 // ------------------------------------------------------------------------------ //
5590 
5591 // ------------------------------------------------------------------------------ //
5592 // Green equalization enable: 0=off, 1=on
5593 // ------------------------------------------------------------------------------ //
5594 
5595 #define ACAMERA_ISP_RAW_FRONTEND_GE_ENABLE_DEFAULT (1)
5596 #define ACAMERA_ISP_RAW_FRONTEND_GE_ENABLE_DATASIZE (1)
5597 #define ACAMERA_ISP_RAW_FRONTEND_GE_ENABLE_OFFSET (0x404)
5598 #define ACAMERA_ISP_RAW_FRONTEND_GE_ENABLE_MASK (0x1)
5599 
5600 // args: data (1-bit)
acamera_isp_raw_frontend_ge_enable_write(uintptr_t base,uint8_t data)5601 static __inline void acamera_isp_raw_frontend_ge_enable_write(uintptr_t base, uint8_t data) {
5602     uint32_t curr = system_sw_read_32(base + 0x1928cL);
5603     system_sw_write_32(base + 0x1928cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
5604 }
acamera_isp_raw_frontend_ge_enable_read(uintptr_t base)5605 static __inline uint8_t acamera_isp_raw_frontend_ge_enable_read(uintptr_t base) {
5606     return (uint8_t)((system_sw_read_32(base + 0x1928cL) & 0x1) >> 0);
5607 }
5608 // ------------------------------------------------------------------------------ //
5609 // Register: dp enable
5610 // ------------------------------------------------------------------------------ //
5611 
5612 // ------------------------------------------------------------------------------ //
5613 // Dynamic Defect Pixel enable: 0=off, 1=on
5614 // ------------------------------------------------------------------------------ //
5615 
5616 #define ACAMERA_ISP_RAW_FRONTEND_DP_ENABLE_DEFAULT (1)
5617 #define ACAMERA_ISP_RAW_FRONTEND_DP_ENABLE_DATASIZE (1)
5618 #define ACAMERA_ISP_RAW_FRONTEND_DP_ENABLE_OFFSET (0x404)
5619 #define ACAMERA_ISP_RAW_FRONTEND_DP_ENABLE_MASK (0x4)
5620 
5621 // args: data (1-bit)
acamera_isp_raw_frontend_dp_enable_write(uintptr_t base,uint8_t data)5622 static __inline void acamera_isp_raw_frontend_dp_enable_write(uintptr_t base, uint8_t data) {
5623     uint32_t curr = system_sw_read_32(base + 0x1928cL);
5624     system_sw_write_32(base + 0x1928cL, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
5625 }
acamera_isp_raw_frontend_dp_enable_read(uintptr_t base)5626 static __inline uint8_t acamera_isp_raw_frontend_dp_enable_read(uintptr_t base) {
5627     return (uint8_t)((system_sw_read_32(base + 0x1928cL) & 0x4) >> 2);
5628 }
5629 // ------------------------------------------------------------------------------ //
5630 // Register: show dynamic defect pixel
5631 // ------------------------------------------------------------------------------ //
5632 
5633 // ------------------------------------------------------------------------------ //
5634 // Show Defect Pixel: 0=off, 1=on
5635 // ------------------------------------------------------------------------------ //
5636 
5637 #define ACAMERA_ISP_RAW_FRONTEND_SHOW_DYNAMIC_DEFECT_PIXEL_DEFAULT (0)
5638 #define ACAMERA_ISP_RAW_FRONTEND_SHOW_DYNAMIC_DEFECT_PIXEL_DATASIZE (1)
5639 #define ACAMERA_ISP_RAW_FRONTEND_SHOW_DYNAMIC_DEFECT_PIXEL_OFFSET (0x404)
5640 #define ACAMERA_ISP_RAW_FRONTEND_SHOW_DYNAMIC_DEFECT_PIXEL_MASK (0x8)
5641 
5642 // args: data (1-bit)
acamera_isp_raw_frontend_show_dynamic_defect_pixel_write(uintptr_t base,uint8_t data)5643 static __inline void acamera_isp_raw_frontend_show_dynamic_defect_pixel_write(uintptr_t base, uint8_t data) {
5644     uint32_t curr = system_sw_read_32(base + 0x1928cL);
5645     system_sw_write_32(base + 0x1928cL, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
5646 }
acamera_isp_raw_frontend_show_dynamic_defect_pixel_read(uintptr_t base)5647 static __inline uint8_t acamera_isp_raw_frontend_show_dynamic_defect_pixel_read(uintptr_t base) {
5648     return (uint8_t)((system_sw_read_32(base + 0x1928cL) & 0x8) >> 3);
5649 }
5650 // ------------------------------------------------------------------------------ //
5651 // Register: dark disable
5652 // ------------------------------------------------------------------------------ //
5653 
5654 // ------------------------------------------------------------------------------ //
5655 // Disable detection of dark pixels
5656 // ------------------------------------------------------------------------------ //
5657 
5658 #define ACAMERA_ISP_RAW_FRONTEND_DARK_DISABLE_DEFAULT (0)
5659 #define ACAMERA_ISP_RAW_FRONTEND_DARK_DISABLE_DATASIZE (1)
5660 #define ACAMERA_ISP_RAW_FRONTEND_DARK_DISABLE_OFFSET (0x404)
5661 #define ACAMERA_ISP_RAW_FRONTEND_DARK_DISABLE_MASK (0x40)
5662 
5663 // args: data (1-bit)
acamera_isp_raw_frontend_dark_disable_write(uintptr_t base,uint8_t data)5664 static __inline void acamera_isp_raw_frontend_dark_disable_write(uintptr_t base, uint8_t data) {
5665     uint32_t curr = system_sw_read_32(base + 0x1928cL);
5666     system_sw_write_32(base + 0x1928cL, (((uint32_t) (data & 0x1)) << 6) | (curr & 0xffffffbf));
5667 }
acamera_isp_raw_frontend_dark_disable_read(uintptr_t base)5668 static __inline uint8_t acamera_isp_raw_frontend_dark_disable_read(uintptr_t base) {
5669     return (uint8_t)((system_sw_read_32(base + 0x1928cL) & 0x40) >> 6);
5670 }
5671 // ------------------------------------------------------------------------------ //
5672 // Register: bright disable
5673 // ------------------------------------------------------------------------------ //
5674 
5675 // ------------------------------------------------------------------------------ //
5676 // Disable detection of bright pixels
5677 // ------------------------------------------------------------------------------ //
5678 
5679 #define ACAMERA_ISP_RAW_FRONTEND_BRIGHT_DISABLE_DEFAULT (0)
5680 #define ACAMERA_ISP_RAW_FRONTEND_BRIGHT_DISABLE_DATASIZE (1)
5681 #define ACAMERA_ISP_RAW_FRONTEND_BRIGHT_DISABLE_OFFSET (0x404)
5682 #define ACAMERA_ISP_RAW_FRONTEND_BRIGHT_DISABLE_MASK (0x80)
5683 
5684 // args: data (1-bit)
acamera_isp_raw_frontend_bright_disable_write(uintptr_t base,uint8_t data)5685 static __inline void acamera_isp_raw_frontend_bright_disable_write(uintptr_t base, uint8_t data) {
5686     uint32_t curr = system_sw_read_32(base + 0x1928cL);
5687     system_sw_write_32(base + 0x1928cL, (((uint32_t) (data & 0x1)) << 7) | (curr & 0xffffff7f));
5688 }
acamera_isp_raw_frontend_bright_disable_read(uintptr_t base)5689 static __inline uint8_t acamera_isp_raw_frontend_bright_disable_read(uintptr_t base) {
5690     return (uint8_t)((system_sw_read_32(base + 0x1928cL) & 0x80) >> 7);
5691 }
5692 // ------------------------------------------------------------------------------ //
5693 // Register: debug sel
5694 // ------------------------------------------------------------------------------ //
5695 
5696 // ------------------------------------------------------------------------------ //
5697 // Debug selection port
5698 // ------------------------------------------------------------------------------ //
5699 
5700 #define ACAMERA_ISP_RAW_FRONTEND_DEBUG_SEL_DEFAULT (0x0)
5701 #define ACAMERA_ISP_RAW_FRONTEND_DEBUG_SEL_DATASIZE (16)
5702 #define ACAMERA_ISP_RAW_FRONTEND_DEBUG_SEL_OFFSET (0x408)
5703 #define ACAMERA_ISP_RAW_FRONTEND_DEBUG_SEL_MASK (0xffff)
5704 
5705 // args: data (16-bit)
acamera_isp_raw_frontend_debug_sel_write(uintptr_t base,uint16_t data)5706 static __inline void acamera_isp_raw_frontend_debug_sel_write(uintptr_t base, uint16_t data) {
5707     uint32_t curr = system_sw_read_32(base + 0x19290L);
5708     system_sw_write_32(base + 0x19290L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
5709 }
acamera_isp_raw_frontend_debug_sel_read(uintptr_t base)5710 static __inline uint16_t acamera_isp_raw_frontend_debug_sel_read(uintptr_t base) {
5711     return (uint16_t)((system_sw_read_32(base + 0x19290L) & 0xffff) >> 0);
5712 }
5713 // ------------------------------------------------------------------------------ //
5714 // Register: dp slope
5715 // ------------------------------------------------------------------------------ //
5716 
5717 // ------------------------------------------------------------------------------ //
5718 // Slope for HP Mask function
5719 // ------------------------------------------------------------------------------ //
5720 
5721 #define ACAMERA_ISP_RAW_FRONTEND_DP_SLOPE_DEFAULT (0x200)
5722 #define ACAMERA_ISP_RAW_FRONTEND_DP_SLOPE_DATASIZE (12)
5723 #define ACAMERA_ISP_RAW_FRONTEND_DP_SLOPE_OFFSET (0x40c)
5724 #define ACAMERA_ISP_RAW_FRONTEND_DP_SLOPE_MASK (0xfff)
5725 
5726 // args: data (12-bit)
acamera_isp_raw_frontend_dp_slope_write(uintptr_t base,uint16_t data)5727 static __inline void acamera_isp_raw_frontend_dp_slope_write(uintptr_t base, uint16_t data) {
5728     uint32_t curr = system_sw_read_32(base + 0x19294L);
5729     system_sw_write_32(base + 0x19294L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
5730 }
acamera_isp_raw_frontend_dp_slope_read(uintptr_t base)5731 static __inline uint16_t acamera_isp_raw_frontend_dp_slope_read(uintptr_t base) {
5732     return (uint16_t)((system_sw_read_32(base + 0x19294L) & 0xfff) >> 0);
5733 }
5734 // ------------------------------------------------------------------------------ //
5735 // Register: dp threshold
5736 // ------------------------------------------------------------------------------ //
5737 
5738 // ------------------------------------------------------------------------------ //
5739 // Defect pixel threshold.
5740 // ------------------------------------------------------------------------------ //
5741 
5742 #define ACAMERA_ISP_RAW_FRONTEND_DP_THRESHOLD_DEFAULT (0x040)
5743 #define ACAMERA_ISP_RAW_FRONTEND_DP_THRESHOLD_DATASIZE (12)
5744 #define ACAMERA_ISP_RAW_FRONTEND_DP_THRESHOLD_OFFSET (0x40c)
5745 #define ACAMERA_ISP_RAW_FRONTEND_DP_THRESHOLD_MASK (0xfff0000)
5746 
5747 // args: data (12-bit)
acamera_isp_raw_frontend_dp_threshold_write(uintptr_t base,uint16_t data)5748 static __inline void acamera_isp_raw_frontend_dp_threshold_write(uintptr_t base, uint16_t data) {
5749     uint32_t curr = system_sw_read_32(base + 0x19294L);
5750     system_sw_write_32(base + 0x19294L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
5751 }
acamera_isp_raw_frontend_dp_threshold_read(uintptr_t base)5752 static __inline uint16_t acamera_isp_raw_frontend_dp_threshold_read(uintptr_t base) {
5753     return (uint16_t)((system_sw_read_32(base + 0x19294L) & 0xfff0000) >> 16);
5754 }
5755 // ------------------------------------------------------------------------------ //
5756 // Register: dpdev threshold
5757 // ------------------------------------------------------------------------------ //
5758 
5759 // ------------------------------------------------------------------------------ //
5760 // Controls the aggressiveness of the dynamic defect pixel correction near edges.
5761 // ------------------------------------------------------------------------------ //
5762 
5763 #define ACAMERA_ISP_RAW_FRONTEND_HPDEV_THRESHOLD_DEFAULT (0x266)
5764 #define ACAMERA_ISP_RAW_FRONTEND_HPDEV_THRESHOLD_DATASIZE (16)
5765 #define ACAMERA_ISP_RAW_FRONTEND_HPDEV_THRESHOLD_OFFSET (0x410)
5766 #define ACAMERA_ISP_RAW_FRONTEND_HPDEV_THRESHOLD_MASK (0xffff)
5767 
5768 // args: data (16-bit)
acamera_isp_raw_frontend_hpdev_threshold_write(uintptr_t base,uint16_t data)5769 static __inline void acamera_isp_raw_frontend_hpdev_threshold_write(uintptr_t base, uint16_t data) {
5770     uint32_t curr = system_sw_read_32(base + 0x19298L);
5771     system_sw_write_32(base + 0x19298L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
5772 }
acamera_isp_raw_frontend_hpdev_threshold_read(uintptr_t base)5773 static __inline uint16_t acamera_isp_raw_frontend_hpdev_threshold_read(uintptr_t base) {
5774     return (uint16_t)((system_sw_read_32(base + 0x19298L) & 0xffff) >> 0);
5775 }
5776 // ------------------------------------------------------------------------------ //
5777 // Register: dp blend
5778 // ------------------------------------------------------------------------------ //
5779 
5780 // ------------------------------------------------------------------------------ //
5781 //
5782 //        Controls blending between non-directional and directional replacement values in dynamic defect pixel correction.
5783 //        0x00 Replace detected defects with non-directional replacement value
5784 //        0xFF Replace detected defects with directional replacement value
5785 //
5786 // ------------------------------------------------------------------------------ //
5787 
5788 #define ACAMERA_ISP_RAW_FRONTEND_HP_BLEND_DEFAULT (0x00)
5789 #define ACAMERA_ISP_RAW_FRONTEND_HP_BLEND_DATASIZE (8)
5790 #define ACAMERA_ISP_RAW_FRONTEND_HP_BLEND_OFFSET (0x410)
5791 #define ACAMERA_ISP_RAW_FRONTEND_HP_BLEND_MASK (0xff0000)
5792 
5793 // args: data (8-bit)
acamera_isp_raw_frontend_hp_blend_write(uintptr_t base,uint8_t data)5794 static __inline void acamera_isp_raw_frontend_hp_blend_write(uintptr_t base, uint8_t data) {
5795     uint32_t curr = system_sw_read_32(base + 0x19298L);
5796     system_sw_write_32(base + 0x19298L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
5797 }
acamera_isp_raw_frontend_hp_blend_read(uintptr_t base)5798 static __inline uint8_t acamera_isp_raw_frontend_hp_blend_read(uintptr_t base) {
5799     return (uint8_t)((system_sw_read_32(base + 0x19298L) & 0xff0000) >> 16);
5800 }
5801 // ------------------------------------------------------------------------------ //
5802 // Register: ge strength
5803 // ------------------------------------------------------------------------------ //
5804 
5805 // ------------------------------------------------------------------------------ //
5806 // Controls strength of Green equalization.  Set during calibration.
5807 // ------------------------------------------------------------------------------ //
5808 
5809 #define ACAMERA_ISP_RAW_FRONTEND_GE_STRENGTH_DEFAULT (0x00)
5810 #define ACAMERA_ISP_RAW_FRONTEND_GE_STRENGTH_DATASIZE (8)
5811 #define ACAMERA_ISP_RAW_FRONTEND_GE_STRENGTH_OFFSET (0x414)
5812 #define ACAMERA_ISP_RAW_FRONTEND_GE_STRENGTH_MASK (0xff)
5813 
5814 // args: data (8-bit)
acamera_isp_raw_frontend_ge_strength_write(uintptr_t base,uint8_t data)5815 static __inline void acamera_isp_raw_frontend_ge_strength_write(uintptr_t base, uint8_t data) {
5816     uint32_t curr = system_sw_read_32(base + 0x1929cL);
5817     system_sw_write_32(base + 0x1929cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
5818 }
acamera_isp_raw_frontend_ge_strength_read(uintptr_t base)5819 static __inline uint8_t acamera_isp_raw_frontend_ge_strength_read(uintptr_t base) {
5820     return (uint8_t)((system_sw_read_32(base + 0x1929cL) & 0xff) >> 0);
5821 }
5822 // ------------------------------------------------------------------------------ //
5823 // Register: ge threshold
5824 // ------------------------------------------------------------------------------ //
5825 
5826 // ------------------------------------------------------------------------------ //
5827 // green equalization threshold
5828 // ------------------------------------------------------------------------------ //
5829 
5830 #define ACAMERA_ISP_RAW_FRONTEND_GE_THRESHOLD_DEFAULT (0x400)
5831 #define ACAMERA_ISP_RAW_FRONTEND_GE_THRESHOLD_DATASIZE (16)
5832 #define ACAMERA_ISP_RAW_FRONTEND_GE_THRESHOLD_OFFSET (0x414)
5833 #define ACAMERA_ISP_RAW_FRONTEND_GE_THRESHOLD_MASK (0xffff0000)
5834 
5835 // args: data (16-bit)
acamera_isp_raw_frontend_ge_threshold_write(uintptr_t base,uint16_t data)5836 static __inline void acamera_isp_raw_frontend_ge_threshold_write(uintptr_t base, uint16_t data) {
5837     uint32_t curr = system_sw_read_32(base + 0x1929cL);
5838     system_sw_write_32(base + 0x1929cL, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
5839 }
acamera_isp_raw_frontend_ge_threshold_read(uintptr_t base)5840 static __inline uint16_t acamera_isp_raw_frontend_ge_threshold_read(uintptr_t base) {
5841     return (uint16_t)((system_sw_read_32(base + 0x1929cL) & 0xffff0000) >> 16);
5842 }
5843 // ------------------------------------------------------------------------------ //
5844 // Register: ge slope
5845 // ------------------------------------------------------------------------------ //
5846 
5847 // ------------------------------------------------------------------------------ //
5848 // Slope for GE Mask function
5849 // ------------------------------------------------------------------------------ //
5850 
5851 #define ACAMERA_ISP_RAW_FRONTEND_GE_SLOPE_DEFAULT (0x0AA)
5852 #define ACAMERA_ISP_RAW_FRONTEND_GE_SLOPE_DATASIZE (12)
5853 #define ACAMERA_ISP_RAW_FRONTEND_GE_SLOPE_OFFSET (0x418)
5854 #define ACAMERA_ISP_RAW_FRONTEND_GE_SLOPE_MASK (0xfff)
5855 
5856 // args: data (12-bit)
acamera_isp_raw_frontend_ge_slope_write(uintptr_t base,uint16_t data)5857 static __inline void acamera_isp_raw_frontend_ge_slope_write(uintptr_t base, uint16_t data) {
5858     uint32_t curr = system_sw_read_32(base + 0x192a0L);
5859     system_sw_write_32(base + 0x192a0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
5860 }
acamera_isp_raw_frontend_ge_slope_read(uintptr_t base)5861 static __inline uint16_t acamera_isp_raw_frontend_ge_slope_read(uintptr_t base) {
5862     return (uint16_t)((system_sw_read_32(base + 0x192a0L) & 0xfff) >> 0);
5863 }
5864 // ------------------------------------------------------------------------------ //
5865 // Register: ge sens
5866 // ------------------------------------------------------------------------------ //
5867 
5868 // ------------------------------------------------------------------------------ //
5869 // Controls the sensitivity of green equalization to edges.
5870 // ------------------------------------------------------------------------------ //
5871 
5872 #define ACAMERA_ISP_RAW_FRONTEND_GE_SENS_DEFAULT (0x80)
5873 #define ACAMERA_ISP_RAW_FRONTEND_GE_SENS_DATASIZE (8)
5874 #define ACAMERA_ISP_RAW_FRONTEND_GE_SENS_OFFSET (0x418)
5875 #define ACAMERA_ISP_RAW_FRONTEND_GE_SENS_MASK (0xff0000)
5876 
5877 // args: data (8-bit)
acamera_isp_raw_frontend_ge_sens_write(uintptr_t base,uint8_t data)5878 static __inline void acamera_isp_raw_frontend_ge_sens_write(uintptr_t base, uint8_t data) {
5879     uint32_t curr = system_sw_read_32(base + 0x192a0L);
5880     system_sw_write_32(base + 0x192a0L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
5881 }
acamera_isp_raw_frontend_ge_sens_read(uintptr_t base)5882 static __inline uint8_t acamera_isp_raw_frontend_ge_sens_read(uintptr_t base) {
5883     return (uint8_t)((system_sw_read_32(base + 0x192a0L) & 0xff0000) >> 16);
5884 }
5885 // ------------------------------------------------------------------------------ //
5886 // Register: line thresh
5887 // ------------------------------------------------------------------------------ //
5888 
5889 // ------------------------------------------------------------------------------ //
5890 // Controls the directional nature of the dynamic defect pixel correction near edges..
5891 // ------------------------------------------------------------------------------ //
5892 
5893 #define ACAMERA_ISP_RAW_FRONTEND_LINE_THRESH_DEFAULT (0x150)
5894 #define ACAMERA_ISP_RAW_FRONTEND_LINE_THRESH_DATASIZE (16)
5895 #define ACAMERA_ISP_RAW_FRONTEND_LINE_THRESH_OFFSET (0x41c)
5896 #define ACAMERA_ISP_RAW_FRONTEND_LINE_THRESH_MASK (0xffff)
5897 
5898 // args: data (16-bit)
acamera_isp_raw_frontend_line_thresh_write(uintptr_t base,uint16_t data)5899 static __inline void acamera_isp_raw_frontend_line_thresh_write(uintptr_t base, uint16_t data) {
5900     uint32_t curr = system_sw_read_32(base + 0x192a4L);
5901     system_sw_write_32(base + 0x192a4L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
5902 }
acamera_isp_raw_frontend_line_thresh_read(uintptr_t base)5903 static __inline uint16_t acamera_isp_raw_frontend_line_thresh_read(uintptr_t base) {
5904     return (uint16_t)((system_sw_read_32(base + 0x192a4L) & 0xffff) >> 0);
5905 }
5906 // ------------------------------------------------------------------------------ //
5907 // Register: Sigma In
5908 // ------------------------------------------------------------------------------ //
5909 
5910 // ------------------------------------------------------------------------------ //
5911 // Manual override of noise estimation
5912 // ------------------------------------------------------------------------------ //
5913 
5914 #define ACAMERA_ISP_RAW_FRONTEND_SIGMA_IN_DEFAULT (0x00)
5915 #define ACAMERA_ISP_RAW_FRONTEND_SIGMA_IN_DATASIZE (16)
5916 #define ACAMERA_ISP_RAW_FRONTEND_SIGMA_IN_OFFSET (0x41c)
5917 #define ACAMERA_ISP_RAW_FRONTEND_SIGMA_IN_MASK (0xffff0000)
5918 
5919 // args: data (16-bit)
acamera_isp_raw_frontend_sigma_in_write(uintptr_t base,uint16_t data)5920 static __inline void acamera_isp_raw_frontend_sigma_in_write(uintptr_t base, uint16_t data) {
5921     uint32_t curr = system_sw_read_32(base + 0x192a4L);
5922     system_sw_write_32(base + 0x192a4L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
5923 }
acamera_isp_raw_frontend_sigma_in_read(uintptr_t base)5924 static __inline uint16_t acamera_isp_raw_frontend_sigma_in_read(uintptr_t base) {
5925     return (uint16_t)((system_sw_read_32(base + 0x192a4L) & 0xffff0000) >> 16);
5926 }
5927 // ------------------------------------------------------------------------------ //
5928 // Register: Thresh Short
5929 // ------------------------------------------------------------------------------ //
5930 
5931 // ------------------------------------------------------------------------------ //
5932 // Noise threshold for short exposure data
5933 // ------------------------------------------------------------------------------ //
5934 
5935 #define ACAMERA_ISP_RAW_FRONTEND_THRESH_SHORT_DEFAULT (0x00)
5936 #define ACAMERA_ISP_RAW_FRONTEND_THRESH_SHORT_DATASIZE (8)
5937 #define ACAMERA_ISP_RAW_FRONTEND_THRESH_SHORT_OFFSET (0x420)
5938 #define ACAMERA_ISP_RAW_FRONTEND_THRESH_SHORT_MASK (0xff)
5939 
5940 // args: data (8-bit)
acamera_isp_raw_frontend_thresh_short_write(uintptr_t base,uint8_t data)5941 static __inline void acamera_isp_raw_frontend_thresh_short_write(uintptr_t base, uint8_t data) {
5942     uint32_t curr = system_sw_read_32(base + 0x192a8L);
5943     system_sw_write_32(base + 0x192a8L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
5944 }
acamera_isp_raw_frontend_thresh_short_read(uintptr_t base)5945 static __inline uint8_t acamera_isp_raw_frontend_thresh_short_read(uintptr_t base) {
5946     return (uint8_t)((system_sw_read_32(base + 0x192a8L) & 0xff) >> 0);
5947 }
5948 // ------------------------------------------------------------------------------ //
5949 // Register: Thresh Long
5950 // ------------------------------------------------------------------------------ //
5951 
5952 // ------------------------------------------------------------------------------ //
5953 // Noise threshold for long exposure data
5954 // ------------------------------------------------------------------------------ //
5955 
5956 #define ACAMERA_ISP_RAW_FRONTEND_THRESH_LONG_DEFAULT (0x30)
5957 #define ACAMERA_ISP_RAW_FRONTEND_THRESH_LONG_DATASIZE (8)
5958 #define ACAMERA_ISP_RAW_FRONTEND_THRESH_LONG_OFFSET (0x420)
5959 #define ACAMERA_ISP_RAW_FRONTEND_THRESH_LONG_MASK (0xff00)
5960 
5961 // args: data (8-bit)
acamera_isp_raw_frontend_thresh_long_write(uintptr_t base,uint8_t data)5962 static __inline void acamera_isp_raw_frontend_thresh_long_write(uintptr_t base, uint8_t data) {
5963     uint32_t curr = system_sw_read_32(base + 0x192a8L);
5964     system_sw_write_32(base + 0x192a8L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
5965 }
acamera_isp_raw_frontend_thresh_long_read(uintptr_t base)5966 static __inline uint8_t acamera_isp_raw_frontend_thresh_long_read(uintptr_t base) {
5967     return (uint8_t)((system_sw_read_32(base + 0x192a8L) & 0xff00) >> 8);
5968 }
5969 // ------------------------------------------------------------------------------ //
5970 // Group: raw frontend np
5971 // ------------------------------------------------------------------------------ //
5972 
5973 // ------------------------------------------------------------------------------ //
5974 // Noise profile controls for RAW frontend
5975 // ------------------------------------------------------------------------------ //
5976 
5977 // ------------------------------------------------------------------------------ //
5978 // Register: Exp Thresh
5979 // ------------------------------------------------------------------------------ //
5980 
5981 // ------------------------------------------------------------------------------ //
5982 // Threshold for determining long/short exposure data
5983 // ------------------------------------------------------------------------------ //
5984 
5985 #define ACAMERA_ISP_RAW_FRONTEND_NP_EXP_THRESH_DEFAULT (0xffff)
5986 #define ACAMERA_ISP_RAW_FRONTEND_NP_EXP_THRESH_DATASIZE (16)
5987 #define ACAMERA_ISP_RAW_FRONTEND_NP_EXP_THRESH_OFFSET (0x424)
5988 #define ACAMERA_ISP_RAW_FRONTEND_NP_EXP_THRESH_MASK (0xffff)
5989 
5990 // args: data (16-bit)
acamera_isp_raw_frontend_np_exp_thresh_write(uintptr_t base,uint16_t data)5991 static __inline void acamera_isp_raw_frontend_np_exp_thresh_write(uintptr_t base, uint16_t data) {
5992     uint32_t curr = system_sw_read_32(base + 0x192acL);
5993     system_sw_write_32(base + 0x192acL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
5994 }
acamera_isp_raw_frontend_np_exp_thresh_read(uintptr_t base)5995 static __inline uint16_t acamera_isp_raw_frontend_np_exp_thresh_read(uintptr_t base) {
5996     return (uint16_t)((system_sw_read_32(base + 0x192acL) & 0xffff) >> 0);
5997 }
5998 // ------------------------------------------------------------------------------ //
5999 // Register: Short Ratio
6000 // ------------------------------------------------------------------------------ //
6001 
6002 // ------------------------------------------------------------------------------ //
6003 // Multiplier applied to short exposure data for noise profile calculation
6004 // ------------------------------------------------------------------------------ //
6005 
6006 #define ACAMERA_ISP_RAW_FRONTEND_NP_SHORT_RATIO_DEFAULT (0x20)
6007 #define ACAMERA_ISP_RAW_FRONTEND_NP_SHORT_RATIO_DATASIZE (8)
6008 #define ACAMERA_ISP_RAW_FRONTEND_NP_SHORT_RATIO_OFFSET (0x428)
6009 #define ACAMERA_ISP_RAW_FRONTEND_NP_SHORT_RATIO_MASK (0xff)
6010 
6011 // args: data (8-bit)
acamera_isp_raw_frontend_np_short_ratio_write(uintptr_t base,uint8_t data)6012 static __inline void acamera_isp_raw_frontend_np_short_ratio_write(uintptr_t base, uint8_t data) {
6013     uint32_t curr = system_sw_read_32(base + 0x192b0L);
6014     system_sw_write_32(base + 0x192b0L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
6015 }
acamera_isp_raw_frontend_np_short_ratio_read(uintptr_t base)6016 static __inline uint8_t acamera_isp_raw_frontend_np_short_ratio_read(uintptr_t base) {
6017     return (uint8_t)((system_sw_read_32(base + 0x192b0L) & 0xff) >> 0);
6018 }
6019 // ------------------------------------------------------------------------------ //
6020 // Register: Long Ratio
6021 // ------------------------------------------------------------------------------ //
6022 
6023 // ------------------------------------------------------------------------------ //
6024 // Multiplier applied to long exposure data for noise profile calculation
6025 // ------------------------------------------------------------------------------ //
6026 
6027 #define ACAMERA_ISP_RAW_FRONTEND_NP_LONG_RATIO_DEFAULT (0x04)
6028 #define ACAMERA_ISP_RAW_FRONTEND_NP_LONG_RATIO_DATASIZE (8)
6029 #define ACAMERA_ISP_RAW_FRONTEND_NP_LONG_RATIO_OFFSET (0x428)
6030 #define ACAMERA_ISP_RAW_FRONTEND_NP_LONG_RATIO_MASK (0xff00)
6031 
6032 // args: data (8-bit)
acamera_isp_raw_frontend_np_long_ratio_write(uintptr_t base,uint8_t data)6033 static __inline void acamera_isp_raw_frontend_np_long_ratio_write(uintptr_t base, uint8_t data) {
6034     uint32_t curr = system_sw_read_32(base + 0x192b0L);
6035     system_sw_write_32(base + 0x192b0L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
6036 }
acamera_isp_raw_frontend_np_long_ratio_read(uintptr_t base)6037 static __inline uint8_t acamera_isp_raw_frontend_np_long_ratio_read(uintptr_t base) {
6038     return (uint8_t)((system_sw_read_32(base + 0x192b0L) & 0xff00) >> 8);
6039 }
6040 // ------------------------------------------------------------------------------ //
6041 // Register: NP off
6042 // ------------------------------------------------------------------------------ //
6043 
6044 // ------------------------------------------------------------------------------ //
6045 // Noise profile black level offset
6046 // ------------------------------------------------------------------------------ //
6047 
6048 #define ACAMERA_ISP_RAW_FRONTEND_NP_NP_OFF_DEFAULT (0)
6049 #define ACAMERA_ISP_RAW_FRONTEND_NP_NP_OFF_DATASIZE (7)
6050 #define ACAMERA_ISP_RAW_FRONTEND_NP_NP_OFF_OFFSET (0x42c)
6051 #define ACAMERA_ISP_RAW_FRONTEND_NP_NP_OFF_MASK (0x7f)
6052 
6053 // args: data (7-bit)
acamera_isp_raw_frontend_np_np_off_write(uintptr_t base,uint8_t data)6054 static __inline void acamera_isp_raw_frontend_np_np_off_write(uintptr_t base, uint8_t data) {
6055     uint32_t curr = system_sw_read_32(base + 0x192b4L);
6056     system_sw_write_32(base + 0x192b4L, (((uint32_t) (data & 0x7f)) << 0) | (curr & 0xffffff80));
6057 }
acamera_isp_raw_frontend_np_np_off_read(uintptr_t base)6058 static __inline uint8_t acamera_isp_raw_frontend_np_np_off_read(uintptr_t base) {
6059     return (uint8_t)((system_sw_read_32(base + 0x192b4L) & 0x7f) >> 0);
6060 }
6061 // ------------------------------------------------------------------------------ //
6062 // Register: NP off reflect
6063 // ------------------------------------------------------------------------------ //
6064 
6065 // ------------------------------------------------------------------------------ //
6066 //
6067 //          Defines how values below black level are obtained.
6068 //          0: Repeat the first table entry.
6069 //          1: Reflect the noise profile curve below black level.
6070 //
6071 // ------------------------------------------------------------------------------ //
6072 
6073 #define ACAMERA_ISP_RAW_FRONTEND_NP_NP_OFF_REFLECT_DEFAULT (0)
6074 #define ACAMERA_ISP_RAW_FRONTEND_NP_NP_OFF_REFLECT_DATASIZE (1)
6075 #define ACAMERA_ISP_RAW_FRONTEND_NP_NP_OFF_REFLECT_OFFSET (0x42c)
6076 #define ACAMERA_ISP_RAW_FRONTEND_NP_NP_OFF_REFLECT_MASK (0x100)
6077 
6078 // args: data (1-bit)
acamera_isp_raw_frontend_np_np_off_reflect_write(uintptr_t base,uint8_t data)6079 static __inline void acamera_isp_raw_frontend_np_np_off_reflect_write(uintptr_t base, uint8_t data) {
6080     uint32_t curr = system_sw_read_32(base + 0x192b4L);
6081     system_sw_write_32(base + 0x192b4L, (((uint32_t) (data & 0x1)) << 8) | (curr & 0xfffffeff));
6082 }
acamera_isp_raw_frontend_np_np_off_reflect_read(uintptr_t base)6083 static __inline uint8_t acamera_isp_raw_frontend_np_np_off_reflect_read(uintptr_t base) {
6084     return (uint8_t)((system_sw_read_32(base + 0x192b4L) & 0x100) >> 8);
6085 }
6086 // ------------------------------------------------------------------------------ //
6087 // Group: raw frontend np lut
6088 // ------------------------------------------------------------------------------ //
6089 
6090 // ------------------------------------------------------------------------------ //
6091 // Noise profile controls for RAW frontend
6092 // ------------------------------------------------------------------------------ //
6093 
6094 // ------------------------------------------------------------------------------ //
6095 // Register: Weight lut
6096 // ------------------------------------------------------------------------------ //
6097 
6098 // ------------------------------------------------------------------------------ //
6099 // Noise profile LUT.  Calculated during calibration process.
6100 // ------------------------------------------------------------------------------ //
6101 
6102 #define ACAMERA_ISP_RAW_FRONTEND_NP_LUT_WEIGHT_LUT_DEFAULT (0x0)
6103 #define ACAMERA_ISP_RAW_FRONTEND_NP_LUT_WEIGHT_LUT_DATASIZE (8)
6104 #define ACAMERA_ISP_RAW_FRONTEND_NP_LUT_WEIGHT_LUT_OFFSET (0x430)
6105 #define ACAMERA_ISP_RAW_FRONTEND_NP_LUT_WEIGHT_LUT_MASK (0xff)
6106 
6107 // index (0-127), args: data (8-bit)
acamera_isp_raw_frontend_np_lut_weight_lut_write(uintptr_t base,uint32_t index,uint8_t data)6108 static __inline void acamera_isp_raw_frontend_np_lut_weight_lut_write( uintptr_t base, uint32_t index,uint8_t data) {
6109     uintptr_t addr = base + 0x192b8L + (index & 0xFFFFFFFC);
6110     uint8_t offset = (index & 3) << 3;
6111     uint32_t curr = system_sw_read_32(addr);
6112     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
6113 }
acamera_isp_raw_frontend_np_lut_weight_lut_read(uintptr_t base,uint32_t index)6114 static __inline uint8_t acamera_isp_raw_frontend_np_lut_weight_lut_read( uintptr_t base, uint32_t index) {
6115     uintptr_t addr = base + 0x192b8L + (index & 0xFFFFFFFC);
6116     uint8_t offset = (index & 3) << 3;
6117     return (uint8_t)(system_sw_read_32(addr) >> offset);
6118 }
6119 // ------------------------------------------------------------------------------ //
6120 // Group: defect pixel
6121 // ------------------------------------------------------------------------------ //
6122 
6123 // ------------------------------------------------------------------------------ //
6124 // Detection and processing of static defect-pixels
6125 // ------------------------------------------------------------------------------ //
6126 
6127 // ------------------------------------------------------------------------------ //
6128 // Register: Pointer Reset
6129 // ------------------------------------------------------------------------------ //
6130 
6131 // ------------------------------------------------------------------------------ //
6132 // Reset static defect-pixel table pointer each frame - set this when defect-pixel table has been written from mcu
6133 // ------------------------------------------------------------------------------ //
6134 
6135 #define ACAMERA_ISP_DEFECT_PIXEL_POINTER_RESET_DEFAULT (0)
6136 #define ACAMERA_ISP_DEFECT_PIXEL_POINTER_RESET_DATASIZE (1)
6137 #define ACAMERA_ISP_DEFECT_PIXEL_POINTER_RESET_OFFSET (0x4b0)
6138 #define ACAMERA_ISP_DEFECT_PIXEL_POINTER_RESET_MASK (0x1)
6139 
6140 // args: data (1-bit)
acamera_isp_defect_pixel_pointer_reset_write(uintptr_t base,uint8_t data)6141 static __inline void acamera_isp_defect_pixel_pointer_reset_write(uintptr_t base, uint8_t data) {
6142     uint32_t curr = system_sw_read_32(base + 0x19338L);
6143     system_sw_write_32(base + 0x19338L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
6144 }
acamera_isp_defect_pixel_pointer_reset_read(uintptr_t base)6145 static __inline uint8_t acamera_isp_defect_pixel_pointer_reset_read(uintptr_t base) {
6146     return (uint8_t)((system_sw_read_32(base + 0x19338L) & 0x1) >> 0);
6147 }
6148 // ------------------------------------------------------------------------------ //
6149 // Register: Show Reference
6150 // ------------------------------------------------------------------------------ //
6151 
6152 // ------------------------------------------------------------------------------ //
6153 // For debug purposes.  Show reference values which are compared with actual values to detect bad pixels
6154 // ------------------------------------------------------------------------------ //
6155 
6156 #define ACAMERA_ISP_DEFECT_PIXEL_SHOW_REFERENCE_DEFAULT (0)
6157 #define ACAMERA_ISP_DEFECT_PIXEL_SHOW_REFERENCE_DATASIZE (1)
6158 #define ACAMERA_ISP_DEFECT_PIXEL_SHOW_REFERENCE_OFFSET (0x4b4)
6159 #define ACAMERA_ISP_DEFECT_PIXEL_SHOW_REFERENCE_MASK (0x1)
6160 
6161 // args: data (1-bit)
acamera_isp_defect_pixel_show_reference_write(uintptr_t base,uint8_t data)6162 static __inline void acamera_isp_defect_pixel_show_reference_write(uintptr_t base, uint8_t data) {
6163     uint32_t curr = system_sw_read_32(base + 0x1933cL);
6164     system_sw_write_32(base + 0x1933cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
6165 }
acamera_isp_defect_pixel_show_reference_read(uintptr_t base)6166 static __inline uint8_t acamera_isp_defect_pixel_show_reference_read(uintptr_t base) {
6167     return (uint8_t)((system_sw_read_32(base + 0x1933cL) & 0x1) >> 0);
6168 }
6169 // ------------------------------------------------------------------------------ //
6170 // Register: Correction Enable
6171 // ------------------------------------------------------------------------------ //
6172 
6173 // ------------------------------------------------------------------------------ //
6174 // Correction enable: 0=off 1=on
6175 // ------------------------------------------------------------------------------ //
6176 
6177 #define ACAMERA_ISP_DEFECT_PIXEL_CORRECTION_ENABLE_DEFAULT (0)
6178 #define ACAMERA_ISP_DEFECT_PIXEL_CORRECTION_ENABLE_DATASIZE (1)
6179 #define ACAMERA_ISP_DEFECT_PIXEL_CORRECTION_ENABLE_OFFSET (0x4b4)
6180 #define ACAMERA_ISP_DEFECT_PIXEL_CORRECTION_ENABLE_MASK (0x2)
6181 
6182 // args: data (1-bit)
acamera_isp_defect_pixel_correction_enable_write(uintptr_t base,uint8_t data)6183 static __inline void acamera_isp_defect_pixel_correction_enable_write(uintptr_t base, uint8_t data) {
6184     uint32_t curr = system_sw_read_32(base + 0x1933cL);
6185     system_sw_write_32(base + 0x1933cL, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
6186 }
acamera_isp_defect_pixel_correction_enable_read(uintptr_t base)6187 static __inline uint8_t acamera_isp_defect_pixel_correction_enable_read(uintptr_t base) {
6188     return (uint8_t)((system_sw_read_32(base + 0x1933cL) & 0x2) >> 1);
6189 }
6190 // ------------------------------------------------------------------------------ //
6191 // Register: Show Static Defect Pixels
6192 // ------------------------------------------------------------------------------ //
6193 
6194 // ------------------------------------------------------------------------------ //
6195 // Show which pixels have been detected as bad
6196 // ------------------------------------------------------------------------------ //
6197 
6198 #define ACAMERA_ISP_DEFECT_PIXEL_SHOW_STATIC_DEFECT_PIXELS_DEFAULT (0)
6199 #define ACAMERA_ISP_DEFECT_PIXEL_SHOW_STATIC_DEFECT_PIXELS_DATASIZE (1)
6200 #define ACAMERA_ISP_DEFECT_PIXEL_SHOW_STATIC_DEFECT_PIXELS_OFFSET (0x4b4)
6201 #define ACAMERA_ISP_DEFECT_PIXEL_SHOW_STATIC_DEFECT_PIXELS_MASK (0x4)
6202 
6203 // args: data (1-bit)
acamera_isp_defect_pixel_show_static_defect_pixels_write(uintptr_t base,uint8_t data)6204 static __inline void acamera_isp_defect_pixel_show_static_defect_pixels_write(uintptr_t base, uint8_t data) {
6205     uint32_t curr = system_sw_read_32(base + 0x1933cL);
6206     system_sw_write_32(base + 0x1933cL, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
6207 }
acamera_isp_defect_pixel_show_static_defect_pixels_read(uintptr_t base)6208 static __inline uint8_t acamera_isp_defect_pixel_show_static_defect_pixels_read(uintptr_t base) {
6209     return (uint8_t)((system_sw_read_32(base + 0x1933cL) & 0x4) >> 2);
6210 }
6211 // ------------------------------------------------------------------------------ //
6212 // Register: Detection enable
6213 // ------------------------------------------------------------------------------ //
6214 
6215 // ------------------------------------------------------------------------------ //
6216 // Starts detection
6217 // ------------------------------------------------------------------------------ //
6218 
6219 #define ACAMERA_ISP_DEFECT_PIXEL_DETECTION_ENABLE_DEFAULT (0)
6220 #define ACAMERA_ISP_DEFECT_PIXEL_DETECTION_ENABLE_DATASIZE (1)
6221 #define ACAMERA_ISP_DEFECT_PIXEL_DETECTION_ENABLE_OFFSET (0x4b4)
6222 #define ACAMERA_ISP_DEFECT_PIXEL_DETECTION_ENABLE_MASK (0x8)
6223 
6224 // args: data (1-bit)
acamera_isp_defect_pixel_detection_enable_write(uintptr_t base,uint8_t data)6225 static __inline void acamera_isp_defect_pixel_detection_enable_write(uintptr_t base, uint8_t data) {
6226     uint32_t curr = system_sw_read_32(base + 0x1933cL);
6227     system_sw_write_32(base + 0x1933cL, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
6228 }
acamera_isp_defect_pixel_detection_enable_read(uintptr_t base)6229 static __inline uint8_t acamera_isp_defect_pixel_detection_enable_read(uintptr_t base) {
6230     return (uint8_t)((system_sw_read_32(base + 0x1933cL) & 0x8) >> 3);
6231 }
6232 // ------------------------------------------------------------------------------ //
6233 // Register: Overflow
6234 // ------------------------------------------------------------------------------ //
6235 
6236 // ------------------------------------------------------------------------------ //
6237 // Table overflow flag
6238 // ------------------------------------------------------------------------------ //
6239 
6240 #define ACAMERA_ISP_DEFECT_PIXEL_OVERFLOW_DEFAULT (0x0)
6241 #define ACAMERA_ISP_DEFECT_PIXEL_OVERFLOW_DATASIZE (1)
6242 #define ACAMERA_ISP_DEFECT_PIXEL_OVERFLOW_OFFSET (0x4b8)
6243 #define ACAMERA_ISP_DEFECT_PIXEL_OVERFLOW_MASK (0x1)
6244 
6245 // args: data (1-bit)
acamera_isp_defect_pixel_overflow_read(uintptr_t base)6246 static __inline uint8_t acamera_isp_defect_pixel_overflow_read(uintptr_t base) {
6247     return (uint8_t)((system_sw_read_32(base + 0x19340L) & 0x1) >> 0);
6248 }
6249 // ------------------------------------------------------------------------------ //
6250 // Register: Defect Pixel Count
6251 // ------------------------------------------------------------------------------ //
6252 
6253 // ------------------------------------------------------------------------------ //
6254 // Number of defect-pixels detected
6255 // ------------------------------------------------------------------------------ //
6256 
6257 #define ACAMERA_ISP_DEFECT_PIXEL_DEFECT_PIXEL_COUNT_DEFAULT (0x0)
6258 #define ACAMERA_ISP_DEFECT_PIXEL_DEFECT_PIXEL_COUNT_DATASIZE (12)
6259 #define ACAMERA_ISP_DEFECT_PIXEL_DEFECT_PIXEL_COUNT_OFFSET (0x4b8)
6260 #define ACAMERA_ISP_DEFECT_PIXEL_DEFECT_PIXEL_COUNT_MASK (0x1ffe)
6261 
6262 // args: data (12-bit)
acamera_isp_defect_pixel_defect_pixel_count_read(uintptr_t base)6263 static __inline uint16_t acamera_isp_defect_pixel_defect_pixel_count_read(uintptr_t base) {
6264     return (uint16_t)((system_sw_read_32(base + 0x19340L) & 0x1ffe) >> 1);
6265 }
6266 // ------------------------------------------------------------------------------ //
6267 // Register: Table Start
6268 // ------------------------------------------------------------------------------ //
6269 
6270 // ------------------------------------------------------------------------------ //
6271 // Address of first defect-pixel in defect-pixel store
6272 // ------------------------------------------------------------------------------ //
6273 
6274 #define ACAMERA_ISP_DEFECT_PIXEL_TABLE_START_DEFAULT (0x0)
6275 #define ACAMERA_ISP_DEFECT_PIXEL_TABLE_START_DATASIZE (12)
6276 #define ACAMERA_ISP_DEFECT_PIXEL_TABLE_START_OFFSET (0x4b8)
6277 #define ACAMERA_ISP_DEFECT_PIXEL_TABLE_START_MASK (0xfff0000)
6278 
6279 // args: data (12-bit)
acamera_isp_defect_pixel_table_start_read(uintptr_t base)6280 static __inline uint16_t acamera_isp_defect_pixel_table_start_read(uintptr_t base) {
6281     return (uint16_t)((system_sw_read_32(base + 0x19340L) & 0xfff0000) >> 16);
6282 }
6283 // ------------------------------------------------------------------------------ //
6284 // Register: Defect Pixel Count In
6285 // ------------------------------------------------------------------------------ //
6286 
6287 // ------------------------------------------------------------------------------ //
6288 // Number of defect-pixels in the written table
6289 // ------------------------------------------------------------------------------ //
6290 
6291 #define ACAMERA_ISP_DEFECT_PIXEL_DEFECT_PIXEL_COUNT_IN_DEFAULT (0x0)
6292 #define ACAMERA_ISP_DEFECT_PIXEL_DEFECT_PIXEL_COUNT_IN_DATASIZE (12)
6293 #define ACAMERA_ISP_DEFECT_PIXEL_DEFECT_PIXEL_COUNT_IN_OFFSET (0x4bc)
6294 #define ACAMERA_ISP_DEFECT_PIXEL_DEFECT_PIXEL_COUNT_IN_MASK (0xfff)
6295 
6296 // args: data (12-bit)
acamera_isp_defect_pixel_defect_pixel_count_in_write(uintptr_t base,uint16_t data)6297 static __inline void acamera_isp_defect_pixel_defect_pixel_count_in_write(uintptr_t base, uint16_t data) {
6298     uint32_t curr = system_sw_read_32(base + 0x19344L);
6299     system_sw_write_32(base + 0x19344L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
6300 }
acamera_isp_defect_pixel_defect_pixel_count_in_read(uintptr_t base)6301 static __inline uint16_t acamera_isp_defect_pixel_defect_pixel_count_in_read(uintptr_t base) {
6302     return (uint16_t)((system_sw_read_32(base + 0x19344L) & 0xfff) >> 0);
6303 }
6304 // ------------------------------------------------------------------------------ //
6305 // Group: sinter
6306 // ------------------------------------------------------------------------------ //
6307 
6308 // ------------------------------------------------------------------------------ //
6309 // Spatial noise reduction
6310 // ------------------------------------------------------------------------------ //
6311 
6312 // ------------------------------------------------------------------------------ //
6313 // Register: Config1
6314 // ------------------------------------------------------------------------------ //
6315 
6316 #define ACAMERA_ISP_SINTER_CONFIG1_DEFAULT (0x0)
6317 #define ACAMERA_ISP_SINTER_CONFIG1_DATASIZE (8)
6318 #define ACAMERA_ISP_SINTER_CONFIG1_OFFSET (0x4c0)
6319 #define ACAMERA_ISP_SINTER_CONFIG1_MASK (0xff)
6320 
6321 // args: data (8-bit)
acamera_isp_sinter_config1_write(uintptr_t base,uint8_t data)6322 static __inline void acamera_isp_sinter_config1_write(uintptr_t base, uint8_t data) {
6323     uint32_t curr = system_sw_read_32(base + 0x19348L);
6324     system_sw_write_32(base + 0x19348L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
6325 }
acamera_isp_sinter_config1_read(uintptr_t base)6326 static __inline uint8_t acamera_isp_sinter_config1_read(uintptr_t base) {
6327     return (uint8_t)((system_sw_read_32(base + 0x19348L) & 0xff) >> 0);
6328 }
6329 // ------------------------------------------------------------------------------ //
6330 // Register: Enable
6331 // ------------------------------------------------------------------------------ //
6332 
6333 // ------------------------------------------------------------------------------ //
6334 // Sinter enable: 0=off 1=on
6335 // ------------------------------------------------------------------------------ //
6336 
6337 #define ACAMERA_ISP_SINTER_ENABLE_DEFAULT (1)
6338 #define ACAMERA_ISP_SINTER_ENABLE_DATASIZE (1)
6339 #define ACAMERA_ISP_SINTER_ENABLE_OFFSET (0x4c0)
6340 #define ACAMERA_ISP_SINTER_ENABLE_MASK (0x10)
6341 
6342 // args: data (1-bit)
acamera_isp_sinter_enable_write(uintptr_t base,uint8_t data)6343 static __inline void acamera_isp_sinter_enable_write(uintptr_t base, uint8_t data) {
6344     uint32_t curr = system_sw_read_32(base + 0x19348L);
6345     system_sw_write_32(base + 0x19348L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
6346 }
acamera_isp_sinter_enable_read(uintptr_t base)6347 static __inline uint8_t acamera_isp_sinter_enable_read(uintptr_t base) {
6348     return (uint8_t)((system_sw_read_32(base + 0x19348L) & 0x10) >> 4);
6349 }
6350 // ------------------------------------------------------------------------------ //
6351 // Register: View Filter
6352 // ------------------------------------------------------------------------------ //
6353 
6354 // ------------------------------------------------------------------------------ //
6355 // For debug purposes only. Set to zero for normal operation
6356 // ------------------------------------------------------------------------------ //
6357 
6358 #define ACAMERA_ISP_SINTER_VIEW_FILTER_DEFAULT (0)
6359 #define ACAMERA_ISP_SINTER_VIEW_FILTER_DATASIZE (2)
6360 #define ACAMERA_ISP_SINTER_VIEW_FILTER_OFFSET (0x4c0)
6361 #define ACAMERA_ISP_SINTER_VIEW_FILTER_MASK (0x3)
6362 
6363 // args: data (2-bit)
acamera_isp_sinter_view_filter_write(uintptr_t base,uint8_t data)6364 static __inline void acamera_isp_sinter_view_filter_write(uintptr_t base, uint8_t data) {
6365     uint32_t curr = system_sw_read_32(base + 0x19348L);
6366     system_sw_write_32(base + 0x19348L, (((uint32_t) (data & 0x3)) << 0) | (curr & 0xfffffffc));
6367 }
acamera_isp_sinter_view_filter_read(uintptr_t base)6368 static __inline uint8_t acamera_isp_sinter_view_filter_read(uintptr_t base) {
6369     return (uint8_t)((system_sw_read_32(base + 0x19348L) & 0x3) >> 0);
6370 }
6371 // ------------------------------------------------------------------------------ //
6372 // Register: Scale Mode
6373 // ------------------------------------------------------------------------------ //
6374 
6375 // ------------------------------------------------------------------------------ //
6376 // For debug purposes only. Set to 3 for normal operation
6377 // ------------------------------------------------------------------------------ //
6378 
6379 #define ACAMERA_ISP_SINTER_SCALE_MODE_DEFAULT (3)
6380 #define ACAMERA_ISP_SINTER_SCALE_MODE_DATASIZE (2)
6381 #define ACAMERA_ISP_SINTER_SCALE_MODE_OFFSET (0x4c0)
6382 #define ACAMERA_ISP_SINTER_SCALE_MODE_MASK (0xc)
6383 #define ACAMERA_ISP_SINTER_SCALE_MODE_USE_FILTER_0_ONLY (0)
6384 #define ACAMERA_ISP_SINTER_SCALE_MODE_USE_FILTERS_0_AND_2_ONLY (1)
6385 #define ACAMERA_ISP_SINTER_SCALE_MODE_USE_FILTERS_0_2_AND_4_ONLY (2)
6386 #define ACAMERA_ISP_SINTER_SCALE_MODE_USE_ALL_FILTERS (3)
6387 
6388 // args: data (2-bit)
acamera_isp_sinter_scale_mode_write(uintptr_t base,uint8_t data)6389 static __inline void acamera_isp_sinter_scale_mode_write(uintptr_t base, uint8_t data) {
6390     uint32_t curr = system_sw_read_32(base + 0x19348L);
6391     system_sw_write_32(base + 0x19348L, (((uint32_t) (data & 0x3)) << 2) | (curr & 0xfffffff3));
6392 }
acamera_isp_sinter_scale_mode_read(uintptr_t base)6393 static __inline uint8_t acamera_isp_sinter_scale_mode_read(uintptr_t base) {
6394     return (uint8_t)((system_sw_read_32(base + 0x19348L) & 0xc) >> 2);
6395 }
6396 // ------------------------------------------------------------------------------ //
6397 // Register: Filter select
6398 // ------------------------------------------------------------------------------ //
6399 
6400 // ------------------------------------------------------------------------------ //
6401 // Sinter filter fine tuning.  Should not be modified from suggested values.
6402 // ------------------------------------------------------------------------------ //
6403 
6404 #define ACAMERA_ISP_SINTER_FILTER_SELECT_DEFAULT (0)
6405 #define ACAMERA_ISP_SINTER_FILTER_SELECT_DATASIZE (1)
6406 #define ACAMERA_ISP_SINTER_FILTER_SELECT_OFFSET (0x4c0)
6407 #define ACAMERA_ISP_SINTER_FILTER_SELECT_MASK (0x20)
6408 
6409 // args: data (1-bit)
acamera_isp_sinter_filter_select_write(uintptr_t base,uint8_t data)6410 static __inline void acamera_isp_sinter_filter_select_write(uintptr_t base, uint8_t data) {
6411     uint32_t curr = system_sw_read_32(base + 0x19348L);
6412     system_sw_write_32(base + 0x19348L, (((uint32_t) (data & 0x1)) << 5) | (curr & 0xffffffdf));
6413 }
acamera_isp_sinter_filter_select_read(uintptr_t base)6414 static __inline uint8_t acamera_isp_sinter_filter_select_read(uintptr_t base) {
6415     return (uint8_t)((system_sw_read_32(base + 0x19348L) & 0x20) >> 5);
6416 }
6417 // ------------------------------------------------------------------------------ //
6418 // Register: Int select
6419 // ------------------------------------------------------------------------------ //
6420 
6421 // ------------------------------------------------------------------------------ //
6422 // Select intensity filter.  Should not be modified from suggested values.
6423 // ------------------------------------------------------------------------------ //
6424 
6425 #define ACAMERA_ISP_SINTER_INT_SELECT_DEFAULT (0)
6426 #define ACAMERA_ISP_SINTER_INT_SELECT_DATASIZE (1)
6427 #define ACAMERA_ISP_SINTER_INT_SELECT_OFFSET (0x4c0)
6428 #define ACAMERA_ISP_SINTER_INT_SELECT_MASK (0x40)
6429 
6430 // args: data (1-bit)
acamera_isp_sinter_int_select_write(uintptr_t base,uint8_t data)6431 static __inline void acamera_isp_sinter_int_select_write(uintptr_t base, uint8_t data) {
6432     uint32_t curr = system_sw_read_32(base + 0x19348L);
6433     system_sw_write_32(base + 0x19348L, (((uint32_t) (data & 0x1)) << 6) | (curr & 0xffffffbf));
6434 }
acamera_isp_sinter_int_select_read(uintptr_t base)6435 static __inline uint8_t acamera_isp_sinter_int_select_read(uintptr_t base) {
6436     return (uint8_t)((system_sw_read_32(base + 0x19348L) & 0x40) >> 6);
6437 }
6438 // ------------------------------------------------------------------------------ //
6439 // Register: rm_enable
6440 // ------------------------------------------------------------------------------ //
6441 
6442 // ------------------------------------------------------------------------------ //
6443 //
6444 //            Adjusts sinter strength radially from center to compensate for Lens shading correction.
6445 //            enable: 0=off, 1=on
6446 //
6447 // ------------------------------------------------------------------------------ //
6448 
6449 #define ACAMERA_ISP_SINTER_RM_ENABLE_DEFAULT (0)
6450 #define ACAMERA_ISP_SINTER_RM_ENABLE_DATASIZE (1)
6451 #define ACAMERA_ISP_SINTER_RM_ENABLE_OFFSET (0x4c0)
6452 #define ACAMERA_ISP_SINTER_RM_ENABLE_MASK (0x80)
6453 
6454 // args: data (1-bit)
acamera_isp_sinter_rm_enable_write(uintptr_t base,uint8_t data)6455 static __inline void acamera_isp_sinter_rm_enable_write(uintptr_t base, uint8_t data) {
6456     uint32_t curr = system_sw_read_32(base + 0x19348L);
6457     system_sw_write_32(base + 0x19348L, (((uint32_t) (data & 0x1)) << 7) | (curr & 0xffffff7f));
6458 }
acamera_isp_sinter_rm_enable_read(uintptr_t base)6459 static __inline uint8_t acamera_isp_sinter_rm_enable_read(uintptr_t base) {
6460     return (uint8_t)((system_sw_read_32(base + 0x19348L) & 0x80) >> 7);
6461 }
6462 // ------------------------------------------------------------------------------ //
6463 // Register: Config2
6464 // ------------------------------------------------------------------------------ //
6465 
6466 #define ACAMERA_ISP_SINTER_CONFIG2_DEFAULT (0x0)
6467 #define ACAMERA_ISP_SINTER_CONFIG2_DATASIZE (8)
6468 #define ACAMERA_ISP_SINTER_CONFIG2_OFFSET (0x4c4)
6469 #define ACAMERA_ISP_SINTER_CONFIG2_MASK (0xff)
6470 
6471 // args: data (8-bit)
acamera_isp_sinter_config2_write(uintptr_t base,uint8_t data)6472 static __inline void acamera_isp_sinter_config2_write(uintptr_t base, uint8_t data) {
6473     uint32_t curr = system_sw_read_32(base + 0x1934cL);
6474     system_sw_write_32(base + 0x1934cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
6475 }
acamera_isp_sinter_config2_read(uintptr_t base)6476 static __inline uint8_t acamera_isp_sinter_config2_read(uintptr_t base) {
6477     return (uint8_t)((system_sw_read_32(base + 0x1934cL) & 0xff) >> 0);
6478 }
6479 // ------------------------------------------------------------------------------ //
6480 // Register: int_config
6481 // ------------------------------------------------------------------------------ //
6482 
6483 // ------------------------------------------------------------------------------ //
6484 // Intensity blending with mosaic raw
6485 // ------------------------------------------------------------------------------ //
6486 
6487 #define ACAMERA_ISP_SINTER_INT_CONFIG_DEFAULT (0x4)
6488 #define ACAMERA_ISP_SINTER_INT_CONFIG_DATASIZE (4)
6489 #define ACAMERA_ISP_SINTER_INT_CONFIG_OFFSET (0x4c4)
6490 #define ACAMERA_ISP_SINTER_INT_CONFIG_MASK (0xf)
6491 
6492 // args: data (4-bit)
acamera_isp_sinter_int_config_write(uintptr_t base,uint8_t data)6493 static __inline void acamera_isp_sinter_int_config_write(uintptr_t base, uint8_t data) {
6494     uint32_t curr = system_sw_read_32(base + 0x1934cL);
6495     system_sw_write_32(base + 0x1934cL, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
6496 }
acamera_isp_sinter_int_config_read(uintptr_t base)6497 static __inline uint8_t acamera_isp_sinter_int_config_read(uintptr_t base) {
6498     return (uint8_t)((system_sw_read_32(base + 0x1934cL) & 0xf) >> 0);
6499 }
6500 // ------------------------------------------------------------------------------ //
6501 // Register: nlm_en
6502 // ------------------------------------------------------------------------------ //
6503 
6504 // ------------------------------------------------------------------------------ //
6505 //
6506 //            This config is only valid fr sinter3
6507 //            Enables (1) or disables (0) the NLM filter
6508 //
6509 // ------------------------------------------------------------------------------ //
6510 
6511 #define ACAMERA_ISP_SINTER_NLM_EN_DEFAULT (1)
6512 #define ACAMERA_ISP_SINTER_NLM_EN_DATASIZE (1)
6513 #define ACAMERA_ISP_SINTER_NLM_EN_OFFSET (0x4c4)
6514 #define ACAMERA_ISP_SINTER_NLM_EN_MASK (0x10)
6515 
6516 // args: data (1-bit)
acamera_isp_sinter_nlm_en_write(uintptr_t base,uint8_t data)6517 static __inline void acamera_isp_sinter_nlm_en_write(uintptr_t base, uint8_t data) {
6518     uint32_t curr = system_sw_read_32(base + 0x1934cL);
6519     system_sw_write_32(base + 0x1934cL, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
6520 }
acamera_isp_sinter_nlm_en_read(uintptr_t base)6521 static __inline uint8_t acamera_isp_sinter_nlm_en_read(uintptr_t base) {
6522     return (uint8_t)((system_sw_read_32(base + 0x1934cL) & 0x10) >> 4);
6523 }
6524 // ------------------------------------------------------------------------------ //
6525 // Register: nonlinear_wkgen
6526 // ------------------------------------------------------------------------------ //
6527 
6528 // ------------------------------------------------------------------------------ //
6529 //
6530 //            This config is only valid fr sinter3
6531 //            Enables (1) or disables (0) nonlinear weight generation
6532 //
6533 // ------------------------------------------------------------------------------ //
6534 
6535 #define ACAMERA_ISP_SINTER_NONLINEAR_WKGEN_DEFAULT (1)
6536 #define ACAMERA_ISP_SINTER_NONLINEAR_WKGEN_DATASIZE (1)
6537 #define ACAMERA_ISP_SINTER_NONLINEAR_WKGEN_OFFSET (0x4c4)
6538 #define ACAMERA_ISP_SINTER_NONLINEAR_WKGEN_MASK (0x20)
6539 
6540 // args: data (1-bit)
acamera_isp_sinter_nonlinear_wkgen_write(uintptr_t base,uint8_t data)6541 static __inline void acamera_isp_sinter_nonlinear_wkgen_write(uintptr_t base, uint8_t data) {
6542     uint32_t curr = system_sw_read_32(base + 0x1934cL);
6543     system_sw_write_32(base + 0x1934cL, (((uint32_t) (data & 0x1)) << 5) | (curr & 0xffffffdf));
6544 }
acamera_isp_sinter_nonlinear_wkgen_read(uintptr_t base)6545 static __inline uint8_t acamera_isp_sinter_nonlinear_wkgen_read(uintptr_t base) {
6546     return (uint8_t)((system_sw_read_32(base + 0x1934cL) & 0x20) >> 5);
6547 }
6548 // ------------------------------------------------------------------------------ //
6549 // Register: sad_filt_thresh
6550 // ------------------------------------------------------------------------------ //
6551 
6552 // ------------------------------------------------------------------------------ //
6553 // Block match difference filtering threshold
6554 // ------------------------------------------------------------------------------ //
6555 
6556 #define ACAMERA_ISP_SINTER_SAD_FILT_THRESH_DEFAULT (0x09)
6557 #define ACAMERA_ISP_SINTER_SAD_FILT_THRESH_DATASIZE (8)
6558 #define ACAMERA_ISP_SINTER_SAD_FILT_THRESH_OFFSET (0x4c8)
6559 #define ACAMERA_ISP_SINTER_SAD_FILT_THRESH_MASK (0xff)
6560 
6561 // args: data (8-bit)
acamera_isp_sinter_sad_filt_thresh_write(uintptr_t base,uint8_t data)6562 static __inline void acamera_isp_sinter_sad_filt_thresh_write(uintptr_t base, uint8_t data) {
6563     uint32_t curr = system_sw_read_32(base + 0x19350L);
6564     system_sw_write_32(base + 0x19350L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
6565 }
acamera_isp_sinter_sad_filt_thresh_read(uintptr_t base)6566 static __inline uint8_t acamera_isp_sinter_sad_filt_thresh_read(uintptr_t base) {
6567     return (uint8_t)((system_sw_read_32(base + 0x19350L) & 0xff) >> 0);
6568 }
6569 // ------------------------------------------------------------------------------ //
6570 // Register: rm_center_x
6571 // ------------------------------------------------------------------------------ //
6572 
6573 // ------------------------------------------------------------------------------ //
6574 // Center x coordinate of shading map
6575 // ------------------------------------------------------------------------------ //
6576 
6577 #define ACAMERA_ISP_SINTER_RM_CENTER_X_DEFAULT (0x280)
6578 #define ACAMERA_ISP_SINTER_RM_CENTER_X_DATASIZE (16)
6579 #define ACAMERA_ISP_SINTER_RM_CENTER_X_OFFSET (0x4cc)
6580 #define ACAMERA_ISP_SINTER_RM_CENTER_X_MASK (0xffff)
6581 
6582 // args: data (16-bit)
acamera_isp_sinter_rm_center_x_write(uintptr_t base,uint16_t data)6583 static __inline void acamera_isp_sinter_rm_center_x_write(uintptr_t base, uint16_t data) {
6584     uint32_t curr = system_sw_read_32(base + 0x19354L);
6585     system_sw_write_32(base + 0x19354L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
6586 }
acamera_isp_sinter_rm_center_x_read(uintptr_t base)6587 static __inline uint16_t acamera_isp_sinter_rm_center_x_read(uintptr_t base) {
6588     return (uint16_t)((system_sw_read_32(base + 0x19354L) & 0xffff) >> 0);
6589 }
6590 // ------------------------------------------------------------------------------ //
6591 // Register: rm_center_y
6592 // ------------------------------------------------------------------------------ //
6593 
6594 // ------------------------------------------------------------------------------ //
6595 // Center y coordinate of shading map
6596 // ------------------------------------------------------------------------------ //
6597 
6598 #define ACAMERA_ISP_SINTER_RM_CENTER_Y_DEFAULT (0x168)
6599 #define ACAMERA_ISP_SINTER_RM_CENTER_Y_DATASIZE (16)
6600 #define ACAMERA_ISP_SINTER_RM_CENTER_Y_OFFSET (0x4cc)
6601 #define ACAMERA_ISP_SINTER_RM_CENTER_Y_MASK (0xffff0000)
6602 
6603 // args: data (16-bit)
acamera_isp_sinter_rm_center_y_write(uintptr_t base,uint16_t data)6604 static __inline void acamera_isp_sinter_rm_center_y_write(uintptr_t base, uint16_t data) {
6605     uint32_t curr = system_sw_read_32(base + 0x19354L);
6606     system_sw_write_32(base + 0x19354L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
6607 }
acamera_isp_sinter_rm_center_y_read(uintptr_t base)6608 static __inline uint16_t acamera_isp_sinter_rm_center_y_read(uintptr_t base) {
6609     return (uint16_t)((system_sw_read_32(base + 0x19354L) & 0xffff0000) >> 16);
6610 }
6611 // ------------------------------------------------------------------------------ //
6612 // Register: rm_off_center_mult
6613 // ------------------------------------------------------------------------------ //
6614 
6615 // ------------------------------------------------------------------------------ //
6616 //
6617 //          Normalizing factor which scales the radial table to the edge of the image.
6618 //          Calculated as 2^31/R^2 where R is the furthest distance from the center coordinate to the edge of the image in pixels.
6619 //
6620 // ------------------------------------------------------------------------------ //
6621 
6622 #define ACAMERA_ISP_SINTER_RM_OFF_CENTER_MULT_DEFAULT (0x0100)
6623 #define ACAMERA_ISP_SINTER_RM_OFF_CENTER_MULT_DATASIZE (16)
6624 #define ACAMERA_ISP_SINTER_RM_OFF_CENTER_MULT_OFFSET (0x4d0)
6625 #define ACAMERA_ISP_SINTER_RM_OFF_CENTER_MULT_MASK (0xffff)
6626 
6627 // args: data (16-bit)
acamera_isp_sinter_rm_off_center_mult_write(uintptr_t base,uint16_t data)6628 static __inline void acamera_isp_sinter_rm_off_center_mult_write(uintptr_t base, uint16_t data) {
6629     uint32_t curr = system_sw_read_32(base + 0x19358L);
6630     system_sw_write_32(base + 0x19358L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
6631 }
acamera_isp_sinter_rm_off_center_mult_read(uintptr_t base)6632 static __inline uint16_t acamera_isp_sinter_rm_off_center_mult_read(uintptr_t base) {
6633     return (uint16_t)((system_sw_read_32(base + 0x19358L) & 0xffff) >> 0);
6634 }
6635 // ------------------------------------------------------------------------------ //
6636 // Register: Thresh 0h
6637 // ------------------------------------------------------------------------------ //
6638 
6639 // ------------------------------------------------------------------------------ //
6640 // Noise threshold for high horizontal spatial frequencies
6641 // ------------------------------------------------------------------------------ //
6642 
6643 #define ACAMERA_ISP_SINTER_THRESH_0H_DEFAULT (0x00)
6644 #define ACAMERA_ISP_SINTER_THRESH_0H_DATASIZE (8)
6645 #define ACAMERA_ISP_SINTER_THRESH_0H_OFFSET (0x4d4)
6646 #define ACAMERA_ISP_SINTER_THRESH_0H_MASK (0xff)
6647 
6648 // args: data (8-bit)
acamera_isp_sinter_thresh_0h_write(uintptr_t base,uint8_t data)6649 static __inline void acamera_isp_sinter_thresh_0h_write(uintptr_t base, uint8_t data) {
6650     uint32_t curr = system_sw_read_32(base + 0x1935cL);
6651     system_sw_write_32(base + 0x1935cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
6652 }
acamera_isp_sinter_thresh_0h_read(uintptr_t base)6653 static __inline uint8_t acamera_isp_sinter_thresh_0h_read(uintptr_t base) {
6654     return (uint8_t)((system_sw_read_32(base + 0x1935cL) & 0xff) >> 0);
6655 }
6656 // ------------------------------------------------------------------------------ //
6657 // Register: Thresh 1h
6658 // ------------------------------------------------------------------------------ //
6659 
6660 // ------------------------------------------------------------------------------ //
6661 // Noise threshold for high horizontal spatial frequencies
6662 // ------------------------------------------------------------------------------ //
6663 
6664 #define ACAMERA_ISP_SINTER_THRESH_1H_DEFAULT (0x00)
6665 #define ACAMERA_ISP_SINTER_THRESH_1H_DATASIZE (8)
6666 #define ACAMERA_ISP_SINTER_THRESH_1H_OFFSET (0x4d4)
6667 #define ACAMERA_ISP_SINTER_THRESH_1H_MASK (0xff00)
6668 
6669 // args: data (8-bit)
acamera_isp_sinter_thresh_1h_write(uintptr_t base,uint8_t data)6670 static __inline void acamera_isp_sinter_thresh_1h_write(uintptr_t base, uint8_t data) {
6671     uint32_t curr = system_sw_read_32(base + 0x1935cL);
6672     system_sw_write_32(base + 0x1935cL, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
6673 }
acamera_isp_sinter_thresh_1h_read(uintptr_t base)6674 static __inline uint8_t acamera_isp_sinter_thresh_1h_read(uintptr_t base) {
6675     return (uint8_t)((system_sw_read_32(base + 0x1935cL) & 0xff00) >> 8);
6676 }
6677 // ------------------------------------------------------------------------------ //
6678 // Register: Thresh 2h
6679 // ------------------------------------------------------------------------------ //
6680 
6681 // ------------------------------------------------------------------------------ //
6682 // Noise threshold for low horizontal spatial frequencies
6683 // ------------------------------------------------------------------------------ //
6684 
6685 #define ACAMERA_ISP_SINTER_THRESH_2H_DEFAULT (0x00)
6686 #define ACAMERA_ISP_SINTER_THRESH_2H_DATASIZE (8)
6687 #define ACAMERA_ISP_SINTER_THRESH_2H_OFFSET (0x4d4)
6688 #define ACAMERA_ISP_SINTER_THRESH_2H_MASK (0xff0000)
6689 
6690 // args: data (8-bit)
acamera_isp_sinter_thresh_2h_write(uintptr_t base,uint8_t data)6691 static __inline void acamera_isp_sinter_thresh_2h_write(uintptr_t base, uint8_t data) {
6692     uint32_t curr = system_sw_read_32(base + 0x1935cL);
6693     system_sw_write_32(base + 0x1935cL, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
6694 }
acamera_isp_sinter_thresh_2h_read(uintptr_t base)6695 static __inline uint8_t acamera_isp_sinter_thresh_2h_read(uintptr_t base) {
6696     return (uint8_t)((system_sw_read_32(base + 0x1935cL) & 0xff0000) >> 16);
6697 }
6698 // ------------------------------------------------------------------------------ //
6699 // Register: Thresh 4h
6700 // ------------------------------------------------------------------------------ //
6701 
6702 // ------------------------------------------------------------------------------ //
6703 // Noise threshold for low horizontal spatial frequencies
6704 // ------------------------------------------------------------------------------ //
6705 
6706 #define ACAMERA_ISP_SINTER_THRESH_4H_DEFAULT (0x00)
6707 #define ACAMERA_ISP_SINTER_THRESH_4H_DATASIZE (8)
6708 #define ACAMERA_ISP_SINTER_THRESH_4H_OFFSET (0x4d4)
6709 #define ACAMERA_ISP_SINTER_THRESH_4H_MASK (0xff000000)
6710 
6711 // args: data (8-bit)
acamera_isp_sinter_thresh_4h_write(uintptr_t base,uint8_t data)6712 static __inline void acamera_isp_sinter_thresh_4h_write(uintptr_t base, uint8_t data) {
6713     uint32_t curr = system_sw_read_32(base + 0x1935cL);
6714     system_sw_write_32(base + 0x1935cL, (((uint32_t) (data & 0xff)) << 24) | (curr & 0xffffff));
6715 }
acamera_isp_sinter_thresh_4h_read(uintptr_t base)6716 static __inline uint8_t acamera_isp_sinter_thresh_4h_read(uintptr_t base) {
6717     return (uint8_t)((system_sw_read_32(base + 0x1935cL) & 0xff000000) >> 24);
6718 }
6719 // ------------------------------------------------------------------------------ //
6720 // Register: Thresh 0v
6721 // ------------------------------------------------------------------------------ //
6722 
6723 // ------------------------------------------------------------------------------ //
6724 // Noise threshold for high vertical spatial frequencies
6725 // ------------------------------------------------------------------------------ //
6726 
6727 #define ACAMERA_ISP_SINTER_THRESH_0V_DEFAULT (0x00)
6728 #define ACAMERA_ISP_SINTER_THRESH_0V_DATASIZE (8)
6729 #define ACAMERA_ISP_SINTER_THRESH_0V_OFFSET (0x4d8)
6730 #define ACAMERA_ISP_SINTER_THRESH_0V_MASK (0xff)
6731 
6732 // args: data (8-bit)
acamera_isp_sinter_thresh_0v_write(uintptr_t base,uint8_t data)6733 static __inline void acamera_isp_sinter_thresh_0v_write(uintptr_t base, uint8_t data) {
6734     uint32_t curr = system_sw_read_32(base + 0x19360L);
6735     system_sw_write_32(base + 0x19360L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
6736 }
acamera_isp_sinter_thresh_0v_read(uintptr_t base)6737 static __inline uint8_t acamera_isp_sinter_thresh_0v_read(uintptr_t base) {
6738     return (uint8_t)((system_sw_read_32(base + 0x19360L) & 0xff) >> 0);
6739 }
6740 // ------------------------------------------------------------------------------ //
6741 // Register: Thresh 1v
6742 // ------------------------------------------------------------------------------ //
6743 
6744 // ------------------------------------------------------------------------------ //
6745 // Noise threshold for high vertical spatial frequencies
6746 // ------------------------------------------------------------------------------ //
6747 
6748 #define ACAMERA_ISP_SINTER_THRESH_1V_DEFAULT (0x00)
6749 #define ACAMERA_ISP_SINTER_THRESH_1V_DATASIZE (8)
6750 #define ACAMERA_ISP_SINTER_THRESH_1V_OFFSET (0x4d8)
6751 #define ACAMERA_ISP_SINTER_THRESH_1V_MASK (0xff00)
6752 
6753 // args: data (8-bit)
acamera_isp_sinter_thresh_1v_write(uintptr_t base,uint8_t data)6754 static __inline void acamera_isp_sinter_thresh_1v_write(uintptr_t base, uint8_t data) {
6755     uint32_t curr = system_sw_read_32(base + 0x19360L);
6756     system_sw_write_32(base + 0x19360L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
6757 }
acamera_isp_sinter_thresh_1v_read(uintptr_t base)6758 static __inline uint8_t acamera_isp_sinter_thresh_1v_read(uintptr_t base) {
6759     return (uint8_t)((system_sw_read_32(base + 0x19360L) & 0xff00) >> 8);
6760 }
6761 // ------------------------------------------------------------------------------ //
6762 // Register: Thresh 2v
6763 // ------------------------------------------------------------------------------ //
6764 
6765 // ------------------------------------------------------------------------------ //
6766 // Noise threshold for low vertical spatial frequencies
6767 // ------------------------------------------------------------------------------ //
6768 
6769 #define ACAMERA_ISP_SINTER_THRESH_2V_DEFAULT (0x00)
6770 #define ACAMERA_ISP_SINTER_THRESH_2V_DATASIZE (8)
6771 #define ACAMERA_ISP_SINTER_THRESH_2V_OFFSET (0x4d8)
6772 #define ACAMERA_ISP_SINTER_THRESH_2V_MASK (0xff0000)
6773 
6774 // args: data (8-bit)
acamera_isp_sinter_thresh_2v_write(uintptr_t base,uint8_t data)6775 static __inline void acamera_isp_sinter_thresh_2v_write(uintptr_t base, uint8_t data) {
6776     uint32_t curr = system_sw_read_32(base + 0x19360L);
6777     system_sw_write_32(base + 0x19360L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
6778 }
acamera_isp_sinter_thresh_2v_read(uintptr_t base)6779 static __inline uint8_t acamera_isp_sinter_thresh_2v_read(uintptr_t base) {
6780     return (uint8_t)((system_sw_read_32(base + 0x19360L) & 0xff0000) >> 16);
6781 }
6782 // ------------------------------------------------------------------------------ //
6783 // Register: Thresh 4v
6784 // ------------------------------------------------------------------------------ //
6785 
6786 // ------------------------------------------------------------------------------ //
6787 // Noise threshold for low vertical spatial frequencies
6788 // ------------------------------------------------------------------------------ //
6789 
6790 #define ACAMERA_ISP_SINTER_THRESH_4V_DEFAULT (0x00)
6791 #define ACAMERA_ISP_SINTER_THRESH_4V_DATASIZE (8)
6792 #define ACAMERA_ISP_SINTER_THRESH_4V_OFFSET (0x4d8)
6793 #define ACAMERA_ISP_SINTER_THRESH_4V_MASK (0xff000000)
6794 
6795 // args: data (8-bit)
acamera_isp_sinter_thresh_4v_write(uintptr_t base,uint8_t data)6796 static __inline void acamera_isp_sinter_thresh_4v_write(uintptr_t base, uint8_t data) {
6797     uint32_t curr = system_sw_read_32(base + 0x19360L);
6798     system_sw_write_32(base + 0x19360L, (((uint32_t) (data & 0xff)) << 24) | (curr & 0xffffff));
6799 }
acamera_isp_sinter_thresh_4v_read(uintptr_t base)6800 static __inline uint8_t acamera_isp_sinter_thresh_4v_read(uintptr_t base) {
6801     return (uint8_t)((system_sw_read_32(base + 0x19360L) & 0xff000000) >> 24);
6802 }
6803 // ------------------------------------------------------------------------------ //
6804 // Register: Strength 0
6805 // ------------------------------------------------------------------------------ //
6806 
6807 // ------------------------------------------------------------------------------ //
6808 // Unused - no effect
6809 // ------------------------------------------------------------------------------ //
6810 
6811 #define ACAMERA_ISP_SINTER_STRENGTH_0_DEFAULT (0xFF)
6812 #define ACAMERA_ISP_SINTER_STRENGTH_0_DATASIZE (8)
6813 #define ACAMERA_ISP_SINTER_STRENGTH_0_OFFSET (0x4dc)
6814 #define ACAMERA_ISP_SINTER_STRENGTH_0_MASK (0xff)
6815 
6816 // args: data (8-bit)
acamera_isp_sinter_strength_0_write(uintptr_t base,uint8_t data)6817 static __inline void acamera_isp_sinter_strength_0_write(uintptr_t base, uint8_t data) {
6818     uint32_t curr = system_sw_read_32(base + 0x19364L);
6819     system_sw_write_32(base + 0x19364L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
6820 }
acamera_isp_sinter_strength_0_read(uintptr_t base)6821 static __inline uint8_t acamera_isp_sinter_strength_0_read(uintptr_t base) {
6822     return (uint8_t)((system_sw_read_32(base + 0x19364L) & 0xff) >> 0);
6823 }
6824 // ------------------------------------------------------------------------------ //
6825 // Register: Strength 1
6826 // ------------------------------------------------------------------------------ //
6827 
6828 // ------------------------------------------------------------------------------ //
6829 // Noise reduction effect for high spatial frequencies
6830 // ------------------------------------------------------------------------------ //
6831 
6832 #define ACAMERA_ISP_SINTER_STRENGTH_1_DEFAULT (0xFF)
6833 #define ACAMERA_ISP_SINTER_STRENGTH_1_DATASIZE (8)
6834 #define ACAMERA_ISP_SINTER_STRENGTH_1_OFFSET (0x4dc)
6835 #define ACAMERA_ISP_SINTER_STRENGTH_1_MASK (0xff00)
6836 
6837 // args: data (8-bit)
acamera_isp_sinter_strength_1_write(uintptr_t base,uint8_t data)6838 static __inline void acamera_isp_sinter_strength_1_write(uintptr_t base, uint8_t data) {
6839     uint32_t curr = system_sw_read_32(base + 0x19364L);
6840     system_sw_write_32(base + 0x19364L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
6841 }
acamera_isp_sinter_strength_1_read(uintptr_t base)6842 static __inline uint8_t acamera_isp_sinter_strength_1_read(uintptr_t base) {
6843     return (uint8_t)((system_sw_read_32(base + 0x19364L) & 0xff00) >> 8);
6844 }
6845 // ------------------------------------------------------------------------------ //
6846 // Register: Strength 2
6847 // ------------------------------------------------------------------------------ //
6848 
6849 // ------------------------------------------------------------------------------ //
6850 // Unused - no effect
6851 // ------------------------------------------------------------------------------ //
6852 
6853 #define ACAMERA_ISP_SINTER_STRENGTH_2_DEFAULT (0xFF)
6854 #define ACAMERA_ISP_SINTER_STRENGTH_2_DATASIZE (8)
6855 #define ACAMERA_ISP_SINTER_STRENGTH_2_OFFSET (0x4dc)
6856 #define ACAMERA_ISP_SINTER_STRENGTH_2_MASK (0xff0000)
6857 
6858 // args: data (8-bit)
acamera_isp_sinter_strength_2_write(uintptr_t base,uint8_t data)6859 static __inline void acamera_isp_sinter_strength_2_write(uintptr_t base, uint8_t data) {
6860     uint32_t curr = system_sw_read_32(base + 0x19364L);
6861     system_sw_write_32(base + 0x19364L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
6862 }
acamera_isp_sinter_strength_2_read(uintptr_t base)6863 static __inline uint8_t acamera_isp_sinter_strength_2_read(uintptr_t base) {
6864     return (uint8_t)((system_sw_read_32(base + 0x19364L) & 0xff0000) >> 16);
6865 }
6866 // ------------------------------------------------------------------------------ //
6867 // Register: Strength 4
6868 // ------------------------------------------------------------------------------ //
6869 
6870 // ------------------------------------------------------------------------------ //
6871 // Noise reduction effect for low spatial frequencies
6872 // ------------------------------------------------------------------------------ //
6873 
6874 #define ACAMERA_ISP_SINTER_STRENGTH_4_DEFAULT (0xFF)
6875 #define ACAMERA_ISP_SINTER_STRENGTH_4_DATASIZE (8)
6876 #define ACAMERA_ISP_SINTER_STRENGTH_4_OFFSET (0x4dc)
6877 #define ACAMERA_ISP_SINTER_STRENGTH_4_MASK (0xff000000)
6878 
6879 // args: data (8-bit)
acamera_isp_sinter_strength_4_write(uintptr_t base,uint8_t data)6880 static __inline void acamera_isp_sinter_strength_4_write(uintptr_t base, uint8_t data) {
6881     uint32_t curr = system_sw_read_32(base + 0x19364L);
6882     system_sw_write_32(base + 0x19364L, (((uint32_t) (data & 0xff)) << 24) | (curr & 0xffffff));
6883 }
acamera_isp_sinter_strength_4_read(uintptr_t base)6884 static __inline uint8_t acamera_isp_sinter_strength_4_read(uintptr_t base) {
6885     return (uint8_t)((system_sw_read_32(base + 0x19364L) & 0xff000000) >> 24);
6886 }
6887 // ------------------------------------------------------------------------------ //
6888 // Group: sinter Noise Profile
6889 // ------------------------------------------------------------------------------ //
6890 
6891 // ------------------------------------------------------------------------------ //
6892 // Noise profile controls for Sinter
6893 // ------------------------------------------------------------------------------ //
6894 
6895 // ------------------------------------------------------------------------------ //
6896 // Register: use LUT
6897 // ------------------------------------------------------------------------------ //
6898 
6899 // ------------------------------------------------------------------------------ //
6900 //
6901 //            1 = use LUT data
6902 //			0 = use exposure mask provided by Frame stitching or threshold
6903 //
6904 // ------------------------------------------------------------------------------ //
6905 
6906 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_USE_LUT_DEFAULT (1)
6907 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_USE_LUT_DATASIZE (1)
6908 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_USE_LUT_OFFSET (0x4e0)
6909 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_USE_LUT_MASK (0x1)
6910 
6911 // args: data (1-bit)
acamera_isp_sinter_noise_profile_use_lut_write(uintptr_t base,uint8_t data)6912 static __inline void acamera_isp_sinter_noise_profile_use_lut_write(uintptr_t base, uint8_t data) {
6913     uint32_t curr = system_sw_read_32(base + 0x19368L);
6914     system_sw_write_32(base + 0x19368L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
6915 }
acamera_isp_sinter_noise_profile_use_lut_read(uintptr_t base)6916 static __inline uint8_t acamera_isp_sinter_noise_profile_use_lut_read(uintptr_t base) {
6917     return (uint8_t)((system_sw_read_32(base + 0x19368L) & 0x1) >> 0);
6918 }
6919 // ------------------------------------------------------------------------------ //
6920 // Register: use_exp_mask
6921 // ------------------------------------------------------------------------------ //
6922 
6923 // ------------------------------------------------------------------------------ //
6924 //
6925 //			1 = use exposure mask provided by Frame stitching or threshold
6926 //
6927 // ------------------------------------------------------------------------------ //
6928 
6929 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_USE_EXP_MASK_DEFAULT (1)
6930 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_USE_EXP_MASK_DATASIZE (1)
6931 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_USE_EXP_MASK_OFFSET (0x4e0)
6932 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_USE_EXP_MASK_MASK (0x2)
6933 
6934 // args: data (1-bit)
acamera_isp_sinter_noise_profile_use_exp_mask_write(uintptr_t base,uint8_t data)6935 static __inline void acamera_isp_sinter_noise_profile_use_exp_mask_write(uintptr_t base, uint8_t data) {
6936     uint32_t curr = system_sw_read_32(base + 0x19368L);
6937     system_sw_write_32(base + 0x19368L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
6938 }
acamera_isp_sinter_noise_profile_use_exp_mask_read(uintptr_t base)6939 static __inline uint8_t acamera_isp_sinter_noise_profile_use_exp_mask_read(uintptr_t base) {
6940     return (uint8_t)((system_sw_read_32(base + 0x19368L) & 0x2) >> 1);
6941 }
6942 // ------------------------------------------------------------------------------ //
6943 // Register: Black Reflect
6944 // ------------------------------------------------------------------------------ //
6945 
6946 // ------------------------------------------------------------------------------ //
6947 // Specifies how to deal with data below black level. 0: Clip to zero, 1: Reflect.
6948 // ------------------------------------------------------------------------------ //
6949 
6950 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_BLACK_REFLECT_DEFAULT (0x0)
6951 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_BLACK_REFLECT_DATASIZE (1)
6952 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_BLACK_REFLECT_OFFSET (0x4e0)
6953 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_BLACK_REFLECT_MASK (0x4)
6954 
6955 // args: data (1-bit)
acamera_isp_sinter_noise_profile_black_reflect_write(uintptr_t base,uint8_t data)6956 static __inline void acamera_isp_sinter_noise_profile_black_reflect_write(uintptr_t base, uint8_t data) {
6957     uint32_t curr = system_sw_read_32(base + 0x19368L);
6958     system_sw_write_32(base + 0x19368L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
6959 }
acamera_isp_sinter_noise_profile_black_reflect_read(uintptr_t base)6960 static __inline uint8_t acamera_isp_sinter_noise_profile_black_reflect_read(uintptr_t base) {
6961     return (uint8_t)((system_sw_read_32(base + 0x19368L) & 0x4) >> 2);
6962 }
6963 // ------------------------------------------------------------------------------ //
6964 // Register: global offset
6965 // ------------------------------------------------------------------------------ //
6966 
6967 // ------------------------------------------------------------------------------ //
6968 // A global offset that will be added to each of the hlog... values above..
6969 // ------------------------------------------------------------------------------ //
6970 
6971 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_GLOBAL_OFFSET_DEFAULT (0x08)
6972 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_GLOBAL_OFFSET_DATASIZE (8)
6973 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_GLOBAL_OFFSET_OFFSET (0x4e0)
6974 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_GLOBAL_OFFSET_MASK (0xff00)
6975 
6976 // args: data (8-bit)
acamera_isp_sinter_noise_profile_global_offset_write(uintptr_t base,uint8_t data)6977 static __inline void acamera_isp_sinter_noise_profile_global_offset_write(uintptr_t base, uint8_t data) {
6978     uint32_t curr = system_sw_read_32(base + 0x19368L);
6979     system_sw_write_32(base + 0x19368L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
6980 }
acamera_isp_sinter_noise_profile_global_offset_read(uintptr_t base)6981 static __inline uint8_t acamera_isp_sinter_noise_profile_global_offset_read(uintptr_t base) {
6982     return (uint8_t)((system_sw_read_32(base + 0x19368L) & 0xff00) >> 8);
6983 }
6984 // ------------------------------------------------------------------------------ //
6985 // Register: Black Level
6986 // ------------------------------------------------------------------------------ //
6987 
6988 // ------------------------------------------------------------------------------ //
6989 // Black level offset for Mode 0
6990 // ------------------------------------------------------------------------------ //
6991 
6992 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_BLACK_LEVEL_DEFAULT (0x0)
6993 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_BLACK_LEVEL_DATASIZE (16)
6994 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_BLACK_LEVEL_OFFSET (0x4e4)
6995 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_BLACK_LEVEL_MASK (0xffff)
6996 
6997 // args: data (16-bit)
acamera_isp_sinter_noise_profile_black_level_write(uintptr_t base,uint16_t data)6998 static __inline void acamera_isp_sinter_noise_profile_black_level_write(uintptr_t base, uint16_t data) {
6999     uint32_t curr = system_sw_read_32(base + 0x1936cL);
7000     system_sw_write_32(base + 0x1936cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
7001 }
acamera_isp_sinter_noise_profile_black_level_read(uintptr_t base)7002 static __inline uint16_t acamera_isp_sinter_noise_profile_black_level_read(uintptr_t base) {
7003     return (uint16_t)((system_sw_read_32(base + 0x1936cL) & 0xffff) >> 0);
7004 }
7005 // ------------------------------------------------------------------------------ //
7006 // Register: Thresh1
7007 // ------------------------------------------------------------------------------ //
7008 
7009 // ------------------------------------------------------------------------------ //
7010 //
7011 //		  Exposure thresholds. Used to determine which exposure generated the current pixel.
7012 //		  Pixels with a value greater than or equal to a given threshold will be deemed to have been generated by the shorter exposure.
7013 //		  Pixels with a value less than a given threshold will be deemed to have been generated by the longer exposure.
7014 //
7015 //		  E.G. Where 4 exposures are used:
7016 //		    VS >= Thresh 3 > S >= Thresh 2 > M >= Thresh 1 > L
7017 //
7018 //		  For 3 exposures set Thresh 1 to 0
7019 //		  For 2 exposures set Thresh 1 and Thresh 2 to 0
7020 //		  For 1 exposures set all exposure thresholds to 0
7021 //
7022 // ------------------------------------------------------------------------------ //
7023 
7024 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH1_DEFAULT (0x4000)
7025 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH1_DATASIZE (16)
7026 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH1_OFFSET (0x4e8)
7027 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH1_MASK (0xffff)
7028 
7029 // args: data (16-bit)
acamera_isp_sinter_noise_profile_thresh1_write(uintptr_t base,uint16_t data)7030 static __inline void acamera_isp_sinter_noise_profile_thresh1_write(uintptr_t base, uint16_t data) {
7031     uint32_t curr = system_sw_read_32(base + 0x19370L);
7032     system_sw_write_32(base + 0x19370L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
7033 }
acamera_isp_sinter_noise_profile_thresh1_read(uintptr_t base)7034 static __inline uint16_t acamera_isp_sinter_noise_profile_thresh1_read(uintptr_t base) {
7035     return (uint16_t)((system_sw_read_32(base + 0x19370L) & 0xffff) >> 0);
7036 }
7037 // ------------------------------------------------------------------------------ //
7038 // Register: Thresh2
7039 // ------------------------------------------------------------------------------ //
7040 
7041 // ------------------------------------------------------------------------------ //
7042 // See above.
7043 // ------------------------------------------------------------------------------ //
7044 
7045 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH2_DEFAULT (0x8000)
7046 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH2_DATASIZE (16)
7047 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH2_OFFSET (0x4ec)
7048 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH2_MASK (0xffff)
7049 
7050 // args: data (16-bit)
acamera_isp_sinter_noise_profile_thresh2_write(uintptr_t base,uint16_t data)7051 static __inline void acamera_isp_sinter_noise_profile_thresh2_write(uintptr_t base, uint16_t data) {
7052     uint32_t curr = system_sw_read_32(base + 0x19374L);
7053     system_sw_write_32(base + 0x19374L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
7054 }
acamera_isp_sinter_noise_profile_thresh2_read(uintptr_t base)7055 static __inline uint16_t acamera_isp_sinter_noise_profile_thresh2_read(uintptr_t base) {
7056     return (uint16_t)((system_sw_read_32(base + 0x19374L) & 0xffff) >> 0);
7057 }
7058 // ------------------------------------------------------------------------------ //
7059 // Register: Thresh3
7060 // ------------------------------------------------------------------------------ //
7061 
7062 // ------------------------------------------------------------------------------ //
7063 // See above.
7064 // ------------------------------------------------------------------------------ //
7065 
7066 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH3_DEFAULT (0xC000)
7067 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH3_DATASIZE (16)
7068 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH3_OFFSET (0x4f0)
7069 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_THRESH3_MASK (0xffff)
7070 
7071 // args: data (16-bit)
acamera_isp_sinter_noise_profile_thresh3_write(uintptr_t base,uint16_t data)7072 static __inline void acamera_isp_sinter_noise_profile_thresh3_write(uintptr_t base, uint16_t data) {
7073     uint32_t curr = system_sw_read_32(base + 0x19378L);
7074     system_sw_write_32(base + 0x19378L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
7075 }
acamera_isp_sinter_noise_profile_thresh3_read(uintptr_t base)7076 static __inline uint16_t acamera_isp_sinter_noise_profile_thresh3_read(uintptr_t base) {
7077     return (uint16_t)((system_sw_read_32(base + 0x19378L) & 0xffff) >> 0);
7078 }
7079 // ------------------------------------------------------------------------------ //
7080 // Register: noise_level_0
7081 // ------------------------------------------------------------------------------ //
7082 
7083 // ------------------------------------------------------------------------------ //
7084 // Noise level of VS exposure
7085 // ------------------------------------------------------------------------------ //
7086 
7087 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_0_DEFAULT (0x0)
7088 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_0_DATASIZE (8)
7089 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_0_OFFSET (0x4f4)
7090 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_0_MASK (0xff)
7091 
7092 // args: data (8-bit)
acamera_isp_sinter_noise_profile_noise_level_0_write(uintptr_t base,uint8_t data)7093 static __inline void acamera_isp_sinter_noise_profile_noise_level_0_write(uintptr_t base, uint8_t data) {
7094     uint32_t curr = system_sw_read_32(base + 0x1937cL);
7095     system_sw_write_32(base + 0x1937cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
7096 }
acamera_isp_sinter_noise_profile_noise_level_0_read(uintptr_t base)7097 static __inline uint8_t acamera_isp_sinter_noise_profile_noise_level_0_read(uintptr_t base) {
7098     return (uint8_t)((system_sw_read_32(base + 0x1937cL) & 0xff) >> 0);
7099 }
7100 // ------------------------------------------------------------------------------ //
7101 // Register: noise_level_1
7102 // ------------------------------------------------------------------------------ //
7103 
7104 // ------------------------------------------------------------------------------ //
7105 // Noise level of S exposure
7106 // ------------------------------------------------------------------------------ //
7107 
7108 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_1_DEFAULT (0x0)
7109 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_1_DATASIZE (8)
7110 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_1_OFFSET (0x4f4)
7111 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_1_MASK (0xff00)
7112 
7113 // args: data (8-bit)
acamera_isp_sinter_noise_profile_noise_level_1_write(uintptr_t base,uint8_t data)7114 static __inline void acamera_isp_sinter_noise_profile_noise_level_1_write(uintptr_t base, uint8_t data) {
7115     uint32_t curr = system_sw_read_32(base + 0x1937cL);
7116     system_sw_write_32(base + 0x1937cL, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
7117 }
acamera_isp_sinter_noise_profile_noise_level_1_read(uintptr_t base)7118 static __inline uint8_t acamera_isp_sinter_noise_profile_noise_level_1_read(uintptr_t base) {
7119     return (uint8_t)((system_sw_read_32(base + 0x1937cL) & 0xff00) >> 8);
7120 }
7121 // ------------------------------------------------------------------------------ //
7122 // Register: noise_level_2
7123 // ------------------------------------------------------------------------------ //
7124 
7125 // ------------------------------------------------------------------------------ //
7126 // Noise level of M exposure
7127 // ------------------------------------------------------------------------------ //
7128 
7129 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_2_DEFAULT (0x0)
7130 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_2_DATASIZE (8)
7131 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_2_OFFSET (0x4f4)
7132 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_2_MASK (0xff0000)
7133 
7134 // args: data (8-bit)
acamera_isp_sinter_noise_profile_noise_level_2_write(uintptr_t base,uint8_t data)7135 static __inline void acamera_isp_sinter_noise_profile_noise_level_2_write(uintptr_t base, uint8_t data) {
7136     uint32_t curr = system_sw_read_32(base + 0x1937cL);
7137     system_sw_write_32(base + 0x1937cL, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
7138 }
acamera_isp_sinter_noise_profile_noise_level_2_read(uintptr_t base)7139 static __inline uint8_t acamera_isp_sinter_noise_profile_noise_level_2_read(uintptr_t base) {
7140     return (uint8_t)((system_sw_read_32(base + 0x1937cL) & 0xff0000) >> 16);
7141 }
7142 // ------------------------------------------------------------------------------ //
7143 // Register: noise_level_3
7144 // ------------------------------------------------------------------------------ //
7145 
7146 // ------------------------------------------------------------------------------ //
7147 // Noise level of L exposure
7148 // ------------------------------------------------------------------------------ //
7149 
7150 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_3_DEFAULT (0x0)
7151 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_3_DATASIZE (8)
7152 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_3_OFFSET (0x4f4)
7153 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_NOISE_LEVEL_3_MASK (0xff000000)
7154 
7155 // args: data (8-bit)
acamera_isp_sinter_noise_profile_noise_level_3_write(uintptr_t base,uint8_t data)7156 static __inline void acamera_isp_sinter_noise_profile_noise_level_3_write(uintptr_t base, uint8_t data) {
7157     uint32_t curr = system_sw_read_32(base + 0x1937cL);
7158     system_sw_write_32(base + 0x1937cL, (((uint32_t) (data & 0xff)) << 24) | (curr & 0xffffff));
7159 }
acamera_isp_sinter_noise_profile_noise_level_3_read(uintptr_t base)7160 static __inline uint8_t acamera_isp_sinter_noise_profile_noise_level_3_read(uintptr_t base) {
7161     return (uint8_t)((system_sw_read_32(base + 0x1937cL) & 0xff000000) >> 24);
7162 }
7163 // ------------------------------------------------------------------------------ //
7164 // Group: sinter Noise Profile LUT
7165 // ------------------------------------------------------------------------------ //
7166 
7167 // ------------------------------------------------------------------------------ //
7168 // Register: Weight lut
7169 // ------------------------------------------------------------------------------ //
7170 
7171 // ------------------------------------------------------------------------------ //
7172 // Noise profile LUT.  Calculated during calibration process.
7173 // ------------------------------------------------------------------------------ //
7174 
7175 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_LUT_WEIGHT_LUT_DEFAULT (0x0)
7176 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_LUT_WEIGHT_LUT_DATASIZE (8)
7177 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_LUT_WEIGHT_LUT_OFFSET (0x5b0)
7178 #define ACAMERA_ISP_SINTER_NOISE_PROFILE_LUT_WEIGHT_LUT_MASK (0xff)
7179 
7180 // index (0-127), args: data (8-bit)
acamera_isp_sinter_noise_profile_lut_weight_lut_write(uintptr_t base,uint32_t index,uint8_t data)7181 static __inline void acamera_isp_sinter_noise_profile_lut_weight_lut_write( uintptr_t base, uint32_t index,uint8_t data) {
7182     uintptr_t addr = base + 0x19438L + (index & 0xFFFFFFFC);
7183     uint8_t offset = (index & 3) << 3;
7184     uint32_t curr = system_sw_read_32(addr);
7185     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
7186 }
acamera_isp_sinter_noise_profile_lut_weight_lut_read(uintptr_t base,uint32_t index)7187 static __inline uint8_t acamera_isp_sinter_noise_profile_lut_weight_lut_read( uintptr_t base, uint32_t index) {
7188     uintptr_t addr = base + 0x19438L + (index & 0xFFFFFFFC);
7189     uint8_t offset = (index & 3) << 3;
7190     return (uint8_t)(system_sw_read_32(addr) >> offset);
7191 }
7192 // ------------------------------------------------------------------------------ //
7193 // Group: sinter shading
7194 // ------------------------------------------------------------------------------ //
7195 
7196 // ------------------------------------------------------------------------------ //
7197 // LUT: rm_shading_lut
7198 // ------------------------------------------------------------------------------ //
7199 
7200 // ------------------------------------------------------------------------------ //
7201 // Radial Sinter LUT.  See ISP guide for more details
7202 // ------------------------------------------------------------------------------ //
7203 
7204 #define ACAMERA_ISP_SINTER_SHADING_RM_SHADING_LUT_NODES (33)
7205 #define ACAMERA_ISP_SINTER_SHADING_RM_SHADING_LUT_ADDRBITS (6)
7206 #define ACAMERA_ISP_SINTER_SHADING_RM_SHADING_LUT_DATASIZE (8)
7207 #define ACAMERA_ISP_SINTER_SHADING_RM_SHADING_LUT_OFFSET (0x1a9f8L)
7208 
7209 // args: index (0-32), data (8-bit)
acamera_isp_sinter_shading_rm_shading_lut_write(uintptr_t base,uint8_t index,uint8_t data)7210 static __inline void acamera_isp_sinter_shading_rm_shading_lut_write( uintptr_t base, uint8_t index,uint8_t data) {
7211     uintptr_t addr = base + 0x1a9f8L + (index & 0xFFFFFFFC);
7212     uint8_t offset = (index & 3) << 3;
7213     uint32_t curr = system_sw_read_32(addr);
7214     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
7215 }
acamera_isp_sinter_shading_rm_shading_lut_read(uintptr_t base,uint8_t index)7216 static __inline uint8_t acamera_isp_sinter_shading_rm_shading_lut_read( uintptr_t base, uint8_t index) {
7217     uintptr_t addr = base + 0x1a9f8L + (index & 0xFFFFFFFC);
7218     uint8_t offset = (index & 3) << 3;
7219     return (uint8_t)(system_sw_read_32(addr) >> offset);
7220 }
7221 // ------------------------------------------------------------------------------ //
7222 // Group: temper
7223 // ------------------------------------------------------------------------------ //
7224 
7225 // ------------------------------------------------------------------------------ //
7226 //
7227 //				Temporal noise reduction
7228 //
7229 // ------------------------------------------------------------------------------ //
7230 
7231 // ------------------------------------------------------------------------------ //
7232 // Register: Enable
7233 // ------------------------------------------------------------------------------ //
7234 
7235 // ------------------------------------------------------------------------------ //
7236 //
7237 //					Temper enable: 0=off 1=on
7238 //
7239 // ------------------------------------------------------------------------------ //
7240 
7241 #define ACAMERA_ISP_TEMPER_ENABLE_DEFAULT (0)
7242 #define ACAMERA_ISP_TEMPER_ENABLE_DATASIZE (1)
7243 #define ACAMERA_ISP_TEMPER_ENABLE_OFFSET (0x1b94)
7244 #define ACAMERA_ISP_TEMPER_ENABLE_MASK (0x1)
7245 
7246 // args: data (1-bit)
acamera_isp_temper_enable_write(uintptr_t base,uint8_t data)7247 static __inline void acamera_isp_temper_enable_write(uintptr_t base, uint8_t data) {
7248     uint32_t curr = system_sw_read_32(base + 0x1aa1cL);
7249     system_sw_write_32(base + 0x1aa1cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
7250 }
acamera_isp_temper_enable_read(uintptr_t base)7251 static __inline uint8_t acamera_isp_temper_enable_read(uintptr_t base) {
7252     return (uint8_t)((system_sw_read_32(base + 0x1aa1cL) & 0x1) >> 0);
7253 }
7254 // ------------------------------------------------------------------------------ //
7255 // Register: Temper2 Mode
7256 // ------------------------------------------------------------------------------ //
7257 
7258 // ------------------------------------------------------------------------------ //
7259 //
7260 //					0: 0=Temper3 mode 1=Temper2 mode
7261 //
7262 // ------------------------------------------------------------------------------ //
7263 
7264 #define ACAMERA_ISP_TEMPER_TEMPER2_MODE_DEFAULT (0)
7265 #define ACAMERA_ISP_TEMPER_TEMPER2_MODE_DATASIZE (1)
7266 #define ACAMERA_ISP_TEMPER_TEMPER2_MODE_OFFSET (0x1b94)
7267 #define ACAMERA_ISP_TEMPER_TEMPER2_MODE_MASK (0x2)
7268 
7269 // args: data (1-bit)
acamera_isp_temper_temper2_mode_write(uintptr_t base,uint8_t data)7270 static __inline void acamera_isp_temper_temper2_mode_write(uintptr_t base, uint8_t data) {
7271     uint32_t curr = system_sw_read_32(base + 0x1aa1cL);
7272     system_sw_write_32(base + 0x1aa1cL, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
7273 }
acamera_isp_temper_temper2_mode_read(uintptr_t base)7274 static __inline uint8_t acamera_isp_temper_temper2_mode_read(uintptr_t base) {
7275     return (uint8_t)((system_sw_read_32(base + 0x1aa1cL) & 0x2) >> 1);
7276 }
7277 // ------------------------------------------------------------------------------ //
7278 // Register: Frame delay
7279 // ------------------------------------------------------------------------------ //
7280 
7281 // ------------------------------------------------------------------------------ //
7282 //
7283 //					Extra output delay: 0=normal output 1=delayed by 1 frame
7284 //
7285 // ------------------------------------------------------------------------------ //
7286 
7287 #define ACAMERA_ISP_TEMPER_FRAME_DELAY_DEFAULT (0)
7288 #define ACAMERA_ISP_TEMPER_FRAME_DELAY_DATASIZE (1)
7289 #define ACAMERA_ISP_TEMPER_FRAME_DELAY_OFFSET (0x1b98)
7290 #define ACAMERA_ISP_TEMPER_FRAME_DELAY_MASK (0x1)
7291 
7292 // args: data (1-bit)
acamera_isp_temper_frame_delay_write(uintptr_t base,uint8_t data)7293 static __inline void acamera_isp_temper_frame_delay_write(uintptr_t base, uint8_t data) {
7294     uint32_t curr = system_sw_read_32(base + 0x1aa20L);
7295     system_sw_write_32(base + 0x1aa20L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
7296 }
acamera_isp_temper_frame_delay_read(uintptr_t base)7297 static __inline uint8_t acamera_isp_temper_frame_delay_read(uintptr_t base) {
7298     return (uint8_t)((system_sw_read_32(base + 0x1aa20L) & 0x1) >> 0);
7299 }
7300 // ------------------------------------------------------------------------------ //
7301 // Register: Log Enable
7302 // ------------------------------------------------------------------------------ //
7303 
7304 // ------------------------------------------------------------------------------ //
7305 //
7306 //					1=Normal operation, 0=disable logarithmic weighting function for debug
7307 //
7308 // ------------------------------------------------------------------------------ //
7309 
7310 #define ACAMERA_ISP_TEMPER_LOG_ENABLE_DEFAULT (1)
7311 #define ACAMERA_ISP_TEMPER_LOG_ENABLE_DATASIZE (1)
7312 #define ACAMERA_ISP_TEMPER_LOG_ENABLE_OFFSET (0x1b98)
7313 #define ACAMERA_ISP_TEMPER_LOG_ENABLE_MASK (0x2)
7314 
7315 // args: data (1-bit)
acamera_isp_temper_log_enable_write(uintptr_t base,uint8_t data)7316 static __inline void acamera_isp_temper_log_enable_write(uintptr_t base, uint8_t data) {
7317     uint32_t curr = system_sw_read_32(base + 0x1aa20L);
7318     system_sw_write_32(base + 0x1aa20L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
7319 }
acamera_isp_temper_log_enable_read(uintptr_t base)7320 static __inline uint8_t acamera_isp_temper_log_enable_read(uintptr_t base) {
7321     return (uint8_t)((system_sw_read_32(base + 0x1aa20L) & 0x2) >> 1);
7322 }
7323 // ------------------------------------------------------------------------------ //
7324 // Register: Show Alpha
7325 // ------------------------------------------------------------------------------ //
7326 
7327 // ------------------------------------------------------------------------------ //
7328 //
7329 //					0=Normal operation, 1=output alpha channel for debug
7330 //
7331 // ------------------------------------------------------------------------------ //
7332 
7333 #define ACAMERA_ISP_TEMPER_SHOW_ALPHA_DEFAULT (0)
7334 #define ACAMERA_ISP_TEMPER_SHOW_ALPHA_DATASIZE (1)
7335 #define ACAMERA_ISP_TEMPER_SHOW_ALPHA_OFFSET (0x1b98)
7336 #define ACAMERA_ISP_TEMPER_SHOW_ALPHA_MASK (0x4)
7337 
7338 // args: data (1-bit)
acamera_isp_temper_show_alpha_write(uintptr_t base,uint8_t data)7339 static __inline void acamera_isp_temper_show_alpha_write(uintptr_t base, uint8_t data) {
7340     uint32_t curr = system_sw_read_32(base + 0x1aa20L);
7341     system_sw_write_32(base + 0x1aa20L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
7342 }
acamera_isp_temper_show_alpha_read(uintptr_t base)7343 static __inline uint8_t acamera_isp_temper_show_alpha_read(uintptr_t base) {
7344     return (uint8_t)((system_sw_read_32(base + 0x1aa20L) & 0x4) >> 2);
7345 }
7346 // ------------------------------------------------------------------------------ //
7347 // Register: Show AlphaAB
7348 // ------------------------------------------------------------------------------ //
7349 
7350 // ------------------------------------------------------------------------------ //
7351 //
7352 //					0=Normal operation, 1=output alpha channel for debug
7353 //
7354 // ------------------------------------------------------------------------------ //
7355 
7356 #define ACAMERA_ISP_TEMPER_SHOW_ALPHAAB_DEFAULT (0)
7357 #define ACAMERA_ISP_TEMPER_SHOW_ALPHAAB_DATASIZE (1)
7358 #define ACAMERA_ISP_TEMPER_SHOW_ALPHAAB_OFFSET (0x1b98)
7359 #define ACAMERA_ISP_TEMPER_SHOW_ALPHAAB_MASK (0x8)
7360 
7361 // args: data (1-bit)
acamera_isp_temper_show_alphaab_write(uintptr_t base,uint8_t data)7362 static __inline void acamera_isp_temper_show_alphaab_write(uintptr_t base, uint8_t data) {
7363     uint32_t curr = system_sw_read_32(base + 0x1aa20L);
7364     system_sw_write_32(base + 0x1aa20L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
7365 }
acamera_isp_temper_show_alphaab_read(uintptr_t base)7366 static __inline uint8_t acamera_isp_temper_show_alphaab_read(uintptr_t base) {
7367     return (uint8_t)((system_sw_read_32(base + 0x1aa20L) & 0x8) >> 3);
7368 }
7369 // ------------------------------------------------------------------------------ //
7370 // Register: Mixer Select
7371 // ------------------------------------------------------------------------------ //
7372 
7373 // ------------------------------------------------------------------------------ //
7374 //
7375 //					Debug mixer select(Only active when Temper disabled): 0=Input video stream, 1=Frame buffer video stream
7376 //
7377 // ------------------------------------------------------------------------------ //
7378 
7379 #define ACAMERA_ISP_TEMPER_MIXER_SELECT_DEFAULT (0)
7380 #define ACAMERA_ISP_TEMPER_MIXER_SELECT_DATASIZE (1)
7381 #define ACAMERA_ISP_TEMPER_MIXER_SELECT_OFFSET (0x1b98)
7382 #define ACAMERA_ISP_TEMPER_MIXER_SELECT_MASK (0x10)
7383 
7384 // args: data (1-bit)
acamera_isp_temper_mixer_select_write(uintptr_t base,uint8_t data)7385 static __inline void acamera_isp_temper_mixer_select_write(uintptr_t base, uint8_t data) {
7386     uint32_t curr = system_sw_read_32(base + 0x1aa20L);
7387     system_sw_write_32(base + 0x1aa20L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
7388 }
acamera_isp_temper_mixer_select_read(uintptr_t base)7389 static __inline uint8_t acamera_isp_temper_mixer_select_read(uintptr_t base) {
7390     return (uint8_t)((system_sw_read_32(base + 0x1aa20L) & 0x10) >> 4);
7391 }
7392 // ------------------------------------------------------------------------------ //
7393 // Register: Recursion Limit
7394 // ------------------------------------------------------------------------------ //
7395 
7396 // ------------------------------------------------------------------------------ //
7397 //
7398 //					 Controls length of filter history. Low values result in longer history and stronger temporal filtering.
7399 //
7400 // ------------------------------------------------------------------------------ //
7401 
7402 #define ACAMERA_ISP_TEMPER_RECURSION_LIMIT_DEFAULT (0x2)
7403 #define ACAMERA_ISP_TEMPER_RECURSION_LIMIT_DATASIZE (4)
7404 #define ACAMERA_ISP_TEMPER_RECURSION_LIMIT_OFFSET (0x1b9c)
7405 #define ACAMERA_ISP_TEMPER_RECURSION_LIMIT_MASK (0xf)
7406 
7407 // args: data (4-bit)
acamera_isp_temper_recursion_limit_write(uintptr_t base,uint8_t data)7408 static __inline void acamera_isp_temper_recursion_limit_write(uintptr_t base, uint8_t data) {
7409     uint32_t curr = system_sw_read_32(base + 0x1aa24L);
7410     system_sw_write_32(base + 0x1aa24L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
7411 }
acamera_isp_temper_recursion_limit_read(uintptr_t base)7412 static __inline uint8_t acamera_isp_temper_recursion_limit_read(uintptr_t base) {
7413     return (uint8_t)((system_sw_read_32(base + 0x1aa24L) & 0xf) >> 0);
7414 }
7415 // ------------------------------------------------------------------------------ //
7416 // Register: Delta
7417 // ------------------------------------------------------------------------------ //
7418 
7419 // ------------------------------------------------------------------------------ //
7420 //
7421 //
7422 // ------------------------------------------------------------------------------ //
7423 
7424 #define ACAMERA_ISP_TEMPER_DELTA_DEFAULT (0x2)
7425 #define ACAMERA_ISP_TEMPER_DELTA_DATASIZE (8)
7426 #define ACAMERA_ISP_TEMPER_DELTA_OFFSET (0x1b9c)
7427 #define ACAMERA_ISP_TEMPER_DELTA_MASK (0xff00)
7428 
7429 // args: data (8-bit)
acamera_isp_temper_delta_write(uintptr_t base,uint8_t data)7430 static __inline void acamera_isp_temper_delta_write(uintptr_t base, uint8_t data) {
7431     uint32_t curr = system_sw_read_32(base + 0x1aa24L);
7432     system_sw_write_32(base + 0x1aa24L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
7433 }
acamera_isp_temper_delta_read(uintptr_t base)7434 static __inline uint8_t acamera_isp_temper_delta_read(uintptr_t base) {
7435     return (uint8_t)((system_sw_read_32(base + 0x1aa24L) & 0xff00) >> 8);
7436 }
7437 // ------------------------------------------------------------------------------ //
7438 // Group: temper Noise Profile
7439 // ------------------------------------------------------------------------------ //
7440 
7441 // ------------------------------------------------------------------------------ //
7442 // Noise profile controls for Temper
7443 // ------------------------------------------------------------------------------ //
7444 
7445 // ------------------------------------------------------------------------------ //
7446 // Register: use LUT
7447 // ------------------------------------------------------------------------------ //
7448 
7449 // ------------------------------------------------------------------------------ //
7450 //
7451 //            1 = use LUT data
7452 //			0 = use exposure mask provided by Frame stitching or threshold
7453 //
7454 // ------------------------------------------------------------------------------ //
7455 
7456 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_USE_LUT_DEFAULT (1)
7457 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_USE_LUT_DATASIZE (1)
7458 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_USE_LUT_OFFSET (0x1ba0)
7459 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_USE_LUT_MASK (0x1)
7460 
7461 // args: data (1-bit)
acamera_isp_temper_noise_profile_use_lut_write(uintptr_t base,uint8_t data)7462 static __inline void acamera_isp_temper_noise_profile_use_lut_write(uintptr_t base, uint8_t data) {
7463     uint32_t curr = system_sw_read_32(base + 0x1aa28L);
7464     system_sw_write_32(base + 0x1aa28L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
7465 }
acamera_isp_temper_noise_profile_use_lut_read(uintptr_t base)7466 static __inline uint8_t acamera_isp_temper_noise_profile_use_lut_read(uintptr_t base) {
7467     return (uint8_t)((system_sw_read_32(base + 0x1aa28L) & 0x1) >> 0);
7468 }
7469 // ------------------------------------------------------------------------------ //
7470 // Register: use_exp_mask
7471 // ------------------------------------------------------------------------------ //
7472 
7473 // ------------------------------------------------------------------------------ //
7474 //
7475 //			1 = use exposure mask provided by Frame stitching or threshold
7476 //
7477 // ------------------------------------------------------------------------------ //
7478 
7479 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_USE_EXP_MASK_DEFAULT (1)
7480 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_USE_EXP_MASK_DATASIZE (1)
7481 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_USE_EXP_MASK_OFFSET (0x1ba0)
7482 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_USE_EXP_MASK_MASK (0x2)
7483 
7484 // args: data (1-bit)
acamera_isp_temper_noise_profile_use_exp_mask_write(uintptr_t base,uint8_t data)7485 static __inline void acamera_isp_temper_noise_profile_use_exp_mask_write(uintptr_t base, uint8_t data) {
7486     uint32_t curr = system_sw_read_32(base + 0x1aa28L);
7487     system_sw_write_32(base + 0x1aa28L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
7488 }
acamera_isp_temper_noise_profile_use_exp_mask_read(uintptr_t base)7489 static __inline uint8_t acamera_isp_temper_noise_profile_use_exp_mask_read(uintptr_t base) {
7490     return (uint8_t)((system_sw_read_32(base + 0x1aa28L) & 0x2) >> 1);
7491 }
7492 // ------------------------------------------------------------------------------ //
7493 // Register: Black Reflect
7494 // ------------------------------------------------------------------------------ //
7495 
7496 // ------------------------------------------------------------------------------ //
7497 // Specifies how to deal with data below black level. 0: Clip to zero, 1: Reflect.
7498 // ------------------------------------------------------------------------------ //
7499 
7500 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_BLACK_REFLECT_DEFAULT (0x0)
7501 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_BLACK_REFLECT_DATASIZE (1)
7502 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_BLACK_REFLECT_OFFSET (0x1ba0)
7503 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_BLACK_REFLECT_MASK (0x4)
7504 
7505 // args: data (1-bit)
acamera_isp_temper_noise_profile_black_reflect_write(uintptr_t base,uint8_t data)7506 static __inline void acamera_isp_temper_noise_profile_black_reflect_write(uintptr_t base, uint8_t data) {
7507     uint32_t curr = system_sw_read_32(base + 0x1aa28L);
7508     system_sw_write_32(base + 0x1aa28L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
7509 }
acamera_isp_temper_noise_profile_black_reflect_read(uintptr_t base)7510 static __inline uint8_t acamera_isp_temper_noise_profile_black_reflect_read(uintptr_t base) {
7511     return (uint8_t)((system_sw_read_32(base + 0x1aa28L) & 0x4) >> 2);
7512 }
7513 // ------------------------------------------------------------------------------ //
7514 // Register: global offset
7515 // ------------------------------------------------------------------------------ //
7516 
7517 // ------------------------------------------------------------------------------ //
7518 // A global offset that will be added to each of the hlog... values above..
7519 // ------------------------------------------------------------------------------ //
7520 
7521 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_GLOBAL_OFFSET_DEFAULT (0x08)
7522 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_GLOBAL_OFFSET_DATASIZE (8)
7523 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_GLOBAL_OFFSET_OFFSET (0x1ba0)
7524 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_GLOBAL_OFFSET_MASK (0xff00)
7525 
7526 // args: data (8-bit)
acamera_isp_temper_noise_profile_global_offset_write(uintptr_t base,uint8_t data)7527 static __inline void acamera_isp_temper_noise_profile_global_offset_write(uintptr_t base, uint8_t data) {
7528     uint32_t curr = system_sw_read_32(base + 0x1aa28L);
7529     system_sw_write_32(base + 0x1aa28L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
7530 }
acamera_isp_temper_noise_profile_global_offset_read(uintptr_t base)7531 static __inline uint8_t acamera_isp_temper_noise_profile_global_offset_read(uintptr_t base) {
7532     return (uint8_t)((system_sw_read_32(base + 0x1aa28L) & 0xff00) >> 8);
7533 }
7534 // ------------------------------------------------------------------------------ //
7535 // Register: Black Level
7536 // ------------------------------------------------------------------------------ //
7537 
7538 // ------------------------------------------------------------------------------ //
7539 // Black level offset for Mode 0
7540 // ------------------------------------------------------------------------------ //
7541 
7542 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_BLACK_LEVEL_DEFAULT (0x0)
7543 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_BLACK_LEVEL_DATASIZE (16)
7544 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_BLACK_LEVEL_OFFSET (0x1ba4)
7545 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_BLACK_LEVEL_MASK (0xffff)
7546 
7547 // args: data (16-bit)
acamera_isp_temper_noise_profile_black_level_write(uintptr_t base,uint16_t data)7548 static __inline void acamera_isp_temper_noise_profile_black_level_write(uintptr_t base, uint16_t data) {
7549     uint32_t curr = system_sw_read_32(base + 0x1aa2cL);
7550     system_sw_write_32(base + 0x1aa2cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
7551 }
acamera_isp_temper_noise_profile_black_level_read(uintptr_t base)7552 static __inline uint16_t acamera_isp_temper_noise_profile_black_level_read(uintptr_t base) {
7553     return (uint16_t)((system_sw_read_32(base + 0x1aa2cL) & 0xffff) >> 0);
7554 }
7555 // ------------------------------------------------------------------------------ //
7556 // Register: Thresh1
7557 // ------------------------------------------------------------------------------ //
7558 
7559 // ------------------------------------------------------------------------------ //
7560 //
7561 //		  Exposure thresholds. Used to determine which exposure generated the current pixel.
7562 //		  Pixels with a value greater than or equal to a given threshold will be deemed to have been generated by the shorter exposure.
7563 //		  Pixels with a value less than a given threshold will be deemed to have been generated by the longer exposure.
7564 //
7565 //		  E.G. Where 4 exposures are used:
7566 //		    VS >= Thresh 3 > S >= Thresh 2 > M >= Thresh 1 > L
7567 //
7568 //		  For 3 exposures set Thresh 1 to 0
7569 //		  For 2 exposures set Thresh 1 and Thresh 2 to 0
7570 //		  For 1 exposures set all exposure thresholds to 0
7571 //
7572 // ------------------------------------------------------------------------------ //
7573 
7574 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH1_DEFAULT (0x4000)
7575 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH1_DATASIZE (16)
7576 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH1_OFFSET (0x1ba8)
7577 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH1_MASK (0xffff)
7578 
7579 // args: data (16-bit)
acamera_isp_temper_noise_profile_thresh1_write(uintptr_t base,uint16_t data)7580 static __inline void acamera_isp_temper_noise_profile_thresh1_write(uintptr_t base, uint16_t data) {
7581     uint32_t curr = system_sw_read_32(base + 0x1aa30L);
7582     system_sw_write_32(base + 0x1aa30L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
7583 }
acamera_isp_temper_noise_profile_thresh1_read(uintptr_t base)7584 static __inline uint16_t acamera_isp_temper_noise_profile_thresh1_read(uintptr_t base) {
7585     return (uint16_t)((system_sw_read_32(base + 0x1aa30L) & 0xffff) >> 0);
7586 }
7587 // ------------------------------------------------------------------------------ //
7588 // Register: Thresh2
7589 // ------------------------------------------------------------------------------ //
7590 
7591 // ------------------------------------------------------------------------------ //
7592 // See above.
7593 // ------------------------------------------------------------------------------ //
7594 
7595 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH2_DEFAULT (0x8000)
7596 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH2_DATASIZE (16)
7597 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH2_OFFSET (0x1bac)
7598 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH2_MASK (0xffff)
7599 
7600 // args: data (16-bit)
acamera_isp_temper_noise_profile_thresh2_write(uintptr_t base,uint16_t data)7601 static __inline void acamera_isp_temper_noise_profile_thresh2_write(uintptr_t base, uint16_t data) {
7602     uint32_t curr = system_sw_read_32(base + 0x1aa34L);
7603     system_sw_write_32(base + 0x1aa34L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
7604 }
acamera_isp_temper_noise_profile_thresh2_read(uintptr_t base)7605 static __inline uint16_t acamera_isp_temper_noise_profile_thresh2_read(uintptr_t base) {
7606     return (uint16_t)((system_sw_read_32(base + 0x1aa34L) & 0xffff) >> 0);
7607 }
7608 // ------------------------------------------------------------------------------ //
7609 // Register: Thresh3
7610 // ------------------------------------------------------------------------------ //
7611 
7612 // ------------------------------------------------------------------------------ //
7613 // See above.
7614 // ------------------------------------------------------------------------------ //
7615 
7616 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH3_DEFAULT (0xC000)
7617 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH3_DATASIZE (16)
7618 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH3_OFFSET (0x1bb0)
7619 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_THRESH3_MASK (0xffff)
7620 
7621 // args: data (16-bit)
acamera_isp_temper_noise_profile_thresh3_write(uintptr_t base,uint16_t data)7622 static __inline void acamera_isp_temper_noise_profile_thresh3_write(uintptr_t base, uint16_t data) {
7623     uint32_t curr = system_sw_read_32(base + 0x1aa38L);
7624     system_sw_write_32(base + 0x1aa38L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
7625 }
acamera_isp_temper_noise_profile_thresh3_read(uintptr_t base)7626 static __inline uint16_t acamera_isp_temper_noise_profile_thresh3_read(uintptr_t base) {
7627     return (uint16_t)((system_sw_read_32(base + 0x1aa38L) & 0xffff) >> 0);
7628 }
7629 // ------------------------------------------------------------------------------ //
7630 // Register: noise_level_0
7631 // ------------------------------------------------------------------------------ //
7632 
7633 // ------------------------------------------------------------------------------ //
7634 // Noise level of VS exposure
7635 // ------------------------------------------------------------------------------ //
7636 
7637 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_0_DEFAULT (0x0)
7638 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_0_DATASIZE (8)
7639 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_0_OFFSET (0x1bb4)
7640 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_0_MASK (0xff)
7641 
7642 // args: data (8-bit)
acamera_isp_temper_noise_profile_noise_level_0_write(uintptr_t base,uint8_t data)7643 static __inline void acamera_isp_temper_noise_profile_noise_level_0_write(uintptr_t base, uint8_t data) {
7644     uint32_t curr = system_sw_read_32(base + 0x1aa3cL);
7645     system_sw_write_32(base + 0x1aa3cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
7646 }
acamera_isp_temper_noise_profile_noise_level_0_read(uintptr_t base)7647 static __inline uint8_t acamera_isp_temper_noise_profile_noise_level_0_read(uintptr_t base) {
7648     return (uint8_t)((system_sw_read_32(base + 0x1aa3cL) & 0xff) >> 0);
7649 }
7650 // ------------------------------------------------------------------------------ //
7651 // Register: noise_level_1
7652 // ------------------------------------------------------------------------------ //
7653 
7654 // ------------------------------------------------------------------------------ //
7655 // Noise level of S exposure
7656 // ------------------------------------------------------------------------------ //
7657 
7658 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_1_DEFAULT (0x0)
7659 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_1_DATASIZE (8)
7660 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_1_OFFSET (0x1bb4)
7661 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_1_MASK (0xff00)
7662 
7663 // args: data (8-bit)
acamera_isp_temper_noise_profile_noise_level_1_write(uintptr_t base,uint8_t data)7664 static __inline void acamera_isp_temper_noise_profile_noise_level_1_write(uintptr_t base, uint8_t data) {
7665     uint32_t curr = system_sw_read_32(base + 0x1aa3cL);
7666     system_sw_write_32(base + 0x1aa3cL, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
7667 }
acamera_isp_temper_noise_profile_noise_level_1_read(uintptr_t base)7668 static __inline uint8_t acamera_isp_temper_noise_profile_noise_level_1_read(uintptr_t base) {
7669     return (uint8_t)((system_sw_read_32(base + 0x1aa3cL) & 0xff00) >> 8);
7670 }
7671 // ------------------------------------------------------------------------------ //
7672 // Register: noise_level_2
7673 // ------------------------------------------------------------------------------ //
7674 
7675 // ------------------------------------------------------------------------------ //
7676 // Noise level of M exposure
7677 // ------------------------------------------------------------------------------ //
7678 
7679 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_2_DEFAULT (0x0)
7680 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_2_DATASIZE (8)
7681 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_2_OFFSET (0x1bb4)
7682 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_2_MASK (0xff0000)
7683 
7684 // args: data (8-bit)
acamera_isp_temper_noise_profile_noise_level_2_write(uintptr_t base,uint8_t data)7685 static __inline void acamera_isp_temper_noise_profile_noise_level_2_write(uintptr_t base, uint8_t data) {
7686     uint32_t curr = system_sw_read_32(base + 0x1aa3cL);
7687     system_sw_write_32(base + 0x1aa3cL, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
7688 }
acamera_isp_temper_noise_profile_noise_level_2_read(uintptr_t base)7689 static __inline uint8_t acamera_isp_temper_noise_profile_noise_level_2_read(uintptr_t base) {
7690     return (uint8_t)((system_sw_read_32(base + 0x1aa3cL) & 0xff0000) >> 16);
7691 }
7692 // ------------------------------------------------------------------------------ //
7693 // Register: noise_level_3
7694 // ------------------------------------------------------------------------------ //
7695 
7696 // ------------------------------------------------------------------------------ //
7697 // Noise level of L exposure
7698 // ------------------------------------------------------------------------------ //
7699 
7700 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_3_DEFAULT (0x0)
7701 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_3_DATASIZE (8)
7702 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_3_OFFSET (0x1bb4)
7703 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_NOISE_LEVEL_3_MASK (0xff000000)
7704 
7705 // args: data (8-bit)
acamera_isp_temper_noise_profile_noise_level_3_write(uintptr_t base,uint8_t data)7706 static __inline void acamera_isp_temper_noise_profile_noise_level_3_write(uintptr_t base, uint8_t data) {
7707     uint32_t curr = system_sw_read_32(base + 0x1aa3cL);
7708     system_sw_write_32(base + 0x1aa3cL, (((uint32_t) (data & 0xff)) << 24) | (curr & 0xffffff));
7709 }
acamera_isp_temper_noise_profile_noise_level_3_read(uintptr_t base)7710 static __inline uint8_t acamera_isp_temper_noise_profile_noise_level_3_read(uintptr_t base) {
7711     return (uint8_t)((system_sw_read_32(base + 0x1aa3cL) & 0xff000000) >> 24);
7712 }
7713 // ------------------------------------------------------------------------------ //
7714 // Group: temper Noise Profile LUT
7715 // ------------------------------------------------------------------------------ //
7716 
7717 // ------------------------------------------------------------------------------ //
7718 // Register: Weight lut
7719 // ------------------------------------------------------------------------------ //
7720 
7721 // ------------------------------------------------------------------------------ //
7722 // Noise profile LUT.  Calculated during calibration process.
7723 // ------------------------------------------------------------------------------ //
7724 
7725 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_LUT_WEIGHT_LUT_DEFAULT (0x0)
7726 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_LUT_WEIGHT_LUT_DATASIZE (8)
7727 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_LUT_WEIGHT_LUT_OFFSET (0x1c70)
7728 #define ACAMERA_ISP_TEMPER_NOISE_PROFILE_LUT_WEIGHT_LUT_MASK (0xff)
7729 
7730 // index (0-127), args: data (8-bit)
acamera_isp_temper_noise_profile_lut_weight_lut_write(uintptr_t base,uint32_t index,uint8_t data)7731 static __inline void acamera_isp_temper_noise_profile_lut_weight_lut_write( uintptr_t base, uint32_t index,uint8_t data) {
7732     uintptr_t addr = base + 0x1aaf8L + (index & 0xFFFFFFFC);
7733     uint8_t offset = (index & 3) << 3;
7734     uint32_t curr = system_sw_read_32(addr);
7735     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
7736 }
acamera_isp_temper_noise_profile_lut_weight_lut_read(uintptr_t base,uint32_t index)7737 static __inline uint8_t acamera_isp_temper_noise_profile_lut_weight_lut_read( uintptr_t base, uint32_t index) {
7738     uintptr_t addr = base + 0x1aaf8L + (index & 0xFFFFFFFC);
7739     uint8_t offset = (index & 3) << 3;
7740     return (uint8_t)(system_sw_read_32(addr) >> offset);
7741 }
7742 // ------------------------------------------------------------------------------ //
7743 // Group: temper dma
7744 // ------------------------------------------------------------------------------ //
7745 
7746 // ------------------------------------------------------------------------------ //
7747 // Register: Frame write on MSB dma
7748 // ------------------------------------------------------------------------------ //
7749 
7750 // ------------------------------------------------------------------------------ //
7751 // This must be set to 1 only in Temper-3 mode
7752 // ------------------------------------------------------------------------------ //
7753 
7754 #define ACAMERA_ISP_TEMPER_DMA_FRAME_WRITE_ON_MSB_DMA_DEFAULT (1)
7755 #define ACAMERA_ISP_TEMPER_DMA_FRAME_WRITE_ON_MSB_DMA_DATASIZE (1)
7756 #define ACAMERA_ISP_TEMPER_DMA_FRAME_WRITE_ON_MSB_DMA_OFFSET (0x1cf0)
7757 #define ACAMERA_ISP_TEMPER_DMA_FRAME_WRITE_ON_MSB_DMA_MASK (0x1)
7758 
7759 // args: data (1-bit)
acamera_isp_temper_dma_frame_write_on_msb_dma_write(uintptr_t base,uint8_t data)7760 static __inline void acamera_isp_temper_dma_frame_write_on_msb_dma_write(uintptr_t base, uint8_t data) {
7761     uint32_t curr = system_sw_read_32(base + 0x1ab78L);
7762     system_sw_write_32(base + 0x1ab78L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
7763 }
acamera_isp_temper_dma_frame_write_on_msb_dma_read(uintptr_t base)7764 static __inline uint8_t acamera_isp_temper_dma_frame_write_on_msb_dma_read(uintptr_t base) {
7765     return (uint8_t)((system_sw_read_32(base + 0x1ab78L) & 0x1) >> 0);
7766 }
7767 // ------------------------------------------------------------------------------ //
7768 // Register: Frame write on LSB dma
7769 // ------------------------------------------------------------------------------ //
7770 
7771 // ------------------------------------------------------------------------------ //
7772 // This must be set to 1 whenever Temper (either T2 or T3 mode) is enabled
7773 // ------------------------------------------------------------------------------ //
7774 
7775 #define ACAMERA_ISP_TEMPER_DMA_FRAME_WRITE_ON_LSB_DMA_DEFAULT (1)
7776 #define ACAMERA_ISP_TEMPER_DMA_FRAME_WRITE_ON_LSB_DMA_DATASIZE (1)
7777 #define ACAMERA_ISP_TEMPER_DMA_FRAME_WRITE_ON_LSB_DMA_OFFSET (0x1cf0)
7778 #define ACAMERA_ISP_TEMPER_DMA_FRAME_WRITE_ON_LSB_DMA_MASK (0x2)
7779 
7780 // args: data (1-bit)
acamera_isp_temper_dma_frame_write_on_lsb_dma_write(uintptr_t base,uint8_t data)7781 static __inline void acamera_isp_temper_dma_frame_write_on_lsb_dma_write(uintptr_t base, uint8_t data) {
7782     uint32_t curr = system_sw_read_32(base + 0x1ab78L);
7783     system_sw_write_32(base + 0x1ab78L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
7784 }
acamera_isp_temper_dma_frame_write_on_lsb_dma_read(uintptr_t base)7785 static __inline uint8_t acamera_isp_temper_dma_frame_write_on_lsb_dma_read(uintptr_t base) {
7786     return (uint8_t)((system_sw_read_32(base + 0x1ab78L) & 0x2) >> 1);
7787 }
7788 // ------------------------------------------------------------------------------ //
7789 // Register: Frame read on MSB dma
7790 // ------------------------------------------------------------------------------ //
7791 
7792 // ------------------------------------------------------------------------------ //
7793 // This must be set to 1 only in Temper-3 mode
7794 // ------------------------------------------------------------------------------ //
7795 
7796 #define ACAMERA_ISP_TEMPER_DMA_FRAME_READ_ON_MSB_DMA_DEFAULT (1)
7797 #define ACAMERA_ISP_TEMPER_DMA_FRAME_READ_ON_MSB_DMA_DATASIZE (1)
7798 #define ACAMERA_ISP_TEMPER_DMA_FRAME_READ_ON_MSB_DMA_OFFSET (0x1cf0)
7799 #define ACAMERA_ISP_TEMPER_DMA_FRAME_READ_ON_MSB_DMA_MASK (0x4)
7800 
7801 // args: data (1-bit)
acamera_isp_temper_dma_frame_read_on_msb_dma_write(uintptr_t base,uint8_t data)7802 static __inline void acamera_isp_temper_dma_frame_read_on_msb_dma_write(uintptr_t base, uint8_t data) {
7803     uint32_t curr = system_sw_read_32(base + 0x1ab78L);
7804     system_sw_write_32(base + 0x1ab78L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
7805 }
acamera_isp_temper_dma_frame_read_on_msb_dma_read(uintptr_t base)7806 static __inline uint8_t acamera_isp_temper_dma_frame_read_on_msb_dma_read(uintptr_t base) {
7807     return (uint8_t)((system_sw_read_32(base + 0x1ab78L) & 0x4) >> 2);
7808 }
7809 // ------------------------------------------------------------------------------ //
7810 // Register: Frame read on LSB dma
7811 // ------------------------------------------------------------------------------ //
7812 
7813 // ------------------------------------------------------------------------------ //
7814 // This must be set to 1 whenever Temper (either T2 or T3 mode) is enabled
7815 // ------------------------------------------------------------------------------ //
7816 
7817 #define ACAMERA_ISP_TEMPER_DMA_FRAME_READ_ON_LSB_DMA_DEFAULT (1)
7818 #define ACAMERA_ISP_TEMPER_DMA_FRAME_READ_ON_LSB_DMA_DATASIZE (1)
7819 #define ACAMERA_ISP_TEMPER_DMA_FRAME_READ_ON_LSB_DMA_OFFSET (0x1cf0)
7820 #define ACAMERA_ISP_TEMPER_DMA_FRAME_READ_ON_LSB_DMA_MASK (0x8)
7821 
7822 // args: data (1-bit)
acamera_isp_temper_dma_frame_read_on_lsb_dma_write(uintptr_t base,uint8_t data)7823 static __inline void acamera_isp_temper_dma_frame_read_on_lsb_dma_write(uintptr_t base, uint8_t data) {
7824     uint32_t curr = system_sw_read_32(base + 0x1ab78L);
7825     system_sw_write_32(base + 0x1ab78L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
7826 }
acamera_isp_temper_dma_frame_read_on_lsb_dma_read(uintptr_t base)7827 static __inline uint8_t acamera_isp_temper_dma_frame_read_on_lsb_dma_read(uintptr_t base) {
7828     return (uint8_t)((system_sw_read_32(base + 0x1ab78L) & 0x8) >> 3);
7829 }
7830 // ------------------------------------------------------------------------------ //
7831 // Register: temper_dw
7832 // ------------------------------------------------------------------------------ //
7833 
7834 // ------------------------------------------------------------------------------ //
7835 //
7836 //            0: 16bit valid data
7837 //            1: upto 12 bit valid data, MSB aligened to 16 bit
7838 //
7839 // ------------------------------------------------------------------------------ //
7840 
7841 #define ACAMERA_ISP_TEMPER_DMA_TEMPER_DW_DEFAULT (0)
7842 #define ACAMERA_ISP_TEMPER_DMA_TEMPER_DW_DATASIZE (1)
7843 #define ACAMERA_ISP_TEMPER_DMA_TEMPER_DW_OFFSET (0x1cf0)
7844 #define ACAMERA_ISP_TEMPER_DMA_TEMPER_DW_MASK (0x400)
7845 
7846 // args: data (1-bit)
acamera_isp_temper_dma_temper_dw_write(uintptr_t base,uint8_t data)7847 static __inline void acamera_isp_temper_dma_temper_dw_write(uintptr_t base, uint8_t data) {
7848     uint32_t curr = system_sw_read_32(base + 0x1ab78L);
7849     system_sw_write_32(base + 0x1ab78L, (((uint32_t) (data & 0x1)) << 10) | (curr & 0xfffffbff));
7850 }
acamera_isp_temper_dma_temper_dw_read(uintptr_t base)7851 static __inline uint8_t acamera_isp_temper_dma_temper_dw_read(uintptr_t base) {
7852     return (uint8_t)((system_sw_read_32(base + 0x1ab78L) & 0x400) >> 10);
7853 }
7854 // ------------------------------------------------------------------------------ //
7855 // Register: format
7856 // ------------------------------------------------------------------------------ //
7857 
7858 // ------------------------------------------------------------------------------ //
7859 //
7860 //        20: for 16bit data both in T3 and T2 modes
7861 //        6 : for 12bit data both in T3 and T2 modes
7862 //
7863 // ------------------------------------------------------------------------------ //
7864 
7865 #define ACAMERA_ISP_TEMPER_DMA_FORMAT_DEFAULT (20)
7866 #define ACAMERA_ISP_TEMPER_DMA_FORMAT_DATASIZE (8)
7867 #define ACAMERA_ISP_TEMPER_DMA_FORMAT_OFFSET (0x1cf4)
7868 #define ACAMERA_ISP_TEMPER_DMA_FORMAT_MASK (0xff)
7869 
7870 // args: data (8-bit)
acamera_isp_temper_dma_format_write(uintptr_t base,uint8_t data)7871 static __inline void acamera_isp_temper_dma_format_write(uintptr_t base, uint8_t data) {
7872     uint32_t curr = system_sw_read_32(base + 0x1ab7cL);
7873     system_sw_write_32(base + 0x1ab7cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
7874 }
acamera_isp_temper_dma_format_read(uintptr_t base)7875 static __inline uint8_t acamera_isp_temper_dma_format_read(uintptr_t base) {
7876     return (uint8_t)((system_sw_read_32(base + 0x1ab7cL) & 0xff) >> 0);
7877 }
7878 // ------------------------------------------------------------------------------ //
7879 // Register: blk_status
7880 // ------------------------------------------------------------------------------ //
7881 
7882 // ------------------------------------------------------------------------------ //
7883 //
7884 //          The bits are defined as follows:
7885 //          0     Write FIFO Fail (Full)
7886 //          1     Write FIFO Fail (Empty)
7887 //          2     Read FIFO Fail (Full)
7888 //          3     Read FIFO Fail (Empty)
7889 //          4     Pack Fail (Overflow)
7890 //          5     Unpack Fail (Overflow)
7891 //          6     Writer fail (Active Width)
7892 //          7     Writer fail (Active Height)
7893 //          8     Writer fail (Interline blanking)
7894 //          9     Writer fail (Interframe blanking)
7895 //          10    Reader fail (Active Width)
7896 //          11    Reader fail (Active Height)
7897 //          12    Reader fail (Interline blanking)
7898 //          13    Reader fail (Interframe blanking)
7899 //          14    0
7900 //          15    0
7901 //          16    Writer fail (A resp)
7902 //          17    Writer fail (AW wait)
7903 //          18    Writer fail (W wait)
7904 //          19    Writer fail (Outstanding Transactions)
7905 //          20    Reader fail (AR wait)
7906 //          21    Reader fail (R resp)
7907 //          22    Reader fail (Oustanding Transfers)
7908 //          23    0
7909 //          24    intw_fail_user_intfc_sig
7910 //          25    intr_fail_user_intfc_sig
7911 //          26    0
7912 //          27    0
7913 //          28    0
7914 //          29    0
7915 //          30    0
7916 //          31    0
7917 //
7918 // ------------------------------------------------------------------------------ //
7919 
7920 #define ACAMERA_ISP_TEMPER_DMA_BLK_STATUS_DEFAULT (0x0000)
7921 #define ACAMERA_ISP_TEMPER_DMA_BLK_STATUS_DATASIZE (32)
7922 #define ACAMERA_ISP_TEMPER_DMA_BLK_STATUS_OFFSET (0x1cf8)
7923 #define ACAMERA_ISP_TEMPER_DMA_BLK_STATUS_MASK (0xffffffff)
7924 
7925 // args: data (32-bit)
acamera_isp_temper_dma_blk_status_read(uintptr_t base)7926 static __inline uint32_t acamera_isp_temper_dma_blk_status_read(uintptr_t base) {
7927     return system_sw_read_32(base + 0x1ab80L);
7928 }
7929 // ------------------------------------------------------------------------------ //
7930 // Register: msb_bank_base_writer
7931 // ------------------------------------------------------------------------------ //
7932 
7933 // ------------------------------------------------------------------------------ //
7934 //
7935 //            base address for frame buffer, should be word-aligned. This is used only in 16bit temper3 mode.
7936 //            In 16bit temper3 mode, each 40 bit temper data (32bit data+8bit meta data) is split into 2 chunks and each
7937 //            is stored in one of the buffers. The MSB part is stored into this buffer
7938 //
7939 // ------------------------------------------------------------------------------ //
7940 
7941 #define ACAMERA_ISP_TEMPER_DMA_MSB_BANK_BASE_WRITER_DEFAULT (0x0)
7942 #define ACAMERA_ISP_TEMPER_DMA_MSB_BANK_BASE_WRITER_DATASIZE (32)
7943 #define ACAMERA_ISP_TEMPER_DMA_MSB_BANK_BASE_WRITER_OFFSET (0x1cfc)
7944 #define ACAMERA_ISP_TEMPER_DMA_MSB_BANK_BASE_WRITER_MASK (0xffffffff)
7945 
7946 // args: data (32-bit)
acamera_isp_temper_dma_msb_bank_base_writer_write(uintptr_t base,uint32_t data)7947 static __inline void acamera_isp_temper_dma_msb_bank_base_writer_write(uintptr_t base, uint32_t data) {
7948     system_sw_write_32(base + 0x1ab84L, data);
7949 }
acamera_isp_temper_dma_msb_bank_base_writer_read(uintptr_t base)7950 static __inline uint32_t acamera_isp_temper_dma_msb_bank_base_writer_read(uintptr_t base) {
7951     return system_sw_read_32(base + 0x1ab84L);
7952 }
7953 // ------------------------------------------------------------------------------ //
7954 // Register: lsb_bank_base_writer
7955 // ------------------------------------------------------------------------------ //
7956 
7957 // ------------------------------------------------------------------------------ //
7958 //
7959 //            base address for frame buffer, should be word-aligned. This is used all the times temper is used..
7960 //            In 16bit temper3 mode, each 40 bit temper data (32bit data+8bit meta data) is split into 2 chunks and each
7961 //            is stored in one of the buffers. The LSB part is stored into this buffer.
7962 //
7963 // ------------------------------------------------------------------------------ //
7964 
7965 #define ACAMERA_ISP_TEMPER_DMA_LSB_BANK_BASE_WRITER_DEFAULT (0x0)
7966 #define ACAMERA_ISP_TEMPER_DMA_LSB_BANK_BASE_WRITER_DATASIZE (32)
7967 #define ACAMERA_ISP_TEMPER_DMA_LSB_BANK_BASE_WRITER_OFFSET (0x1d00)
7968 #define ACAMERA_ISP_TEMPER_DMA_LSB_BANK_BASE_WRITER_MASK (0xffffffff)
7969 
7970 // args: data (32-bit)
acamera_isp_temper_dma_lsb_bank_base_writer_write(uintptr_t base,uint32_t data)7971 static __inline void acamera_isp_temper_dma_lsb_bank_base_writer_write(uintptr_t base, uint32_t data) {
7972     system_sw_write_32(base + 0x1ab88L, data);
7973 }
acamera_isp_temper_dma_lsb_bank_base_writer_read(uintptr_t base)7974 static __inline uint32_t acamera_isp_temper_dma_lsb_bank_base_writer_read(uintptr_t base) {
7975     return system_sw_read_32(base + 0x1ab88L);
7976 }
7977 // ------------------------------------------------------------------------------ //
7978 // Register: msb_bank_base_reader
7979 // ------------------------------------------------------------------------------ //
7980 
7981 // ------------------------------------------------------------------------------ //
7982 //
7983 //            base address for frame buffer, should be word-aligned. This is used only in 16bit temper3 mode.
7984 //            In 16bit temper3 mode, each 40 bit temper data (32bit data+8bit meta data) is split into 2 chunks and each
7985 //            is stored in one of the buffers. The MSB part is stored into this buffer
7986 //
7987 // ------------------------------------------------------------------------------ //
7988 
7989 #define ACAMERA_ISP_TEMPER_DMA_MSB_BANK_BASE_READER_DEFAULT (0x0)
7990 #define ACAMERA_ISP_TEMPER_DMA_MSB_BANK_BASE_READER_DATASIZE (32)
7991 #define ACAMERA_ISP_TEMPER_DMA_MSB_BANK_BASE_READER_OFFSET (0x1d04)
7992 #define ACAMERA_ISP_TEMPER_DMA_MSB_BANK_BASE_READER_MASK (0xffffffff)
7993 
7994 // args: data (32-bit)
acamera_isp_temper_dma_msb_bank_base_reader_write(uintptr_t base,uint32_t data)7995 static __inline void acamera_isp_temper_dma_msb_bank_base_reader_write(uintptr_t base, uint32_t data) {
7996     system_sw_write_32(base + 0x1ab8cL, data);
7997 }
acamera_isp_temper_dma_msb_bank_base_reader_read(uintptr_t base)7998 static __inline uint32_t acamera_isp_temper_dma_msb_bank_base_reader_read(uintptr_t base) {
7999     return system_sw_read_32(base + 0x1ab8cL);
8000 }
8001 // ------------------------------------------------------------------------------ //
8002 // Register: lsb_bank_base_reader
8003 // ------------------------------------------------------------------------------ //
8004 
8005 // ------------------------------------------------------------------------------ //
8006 //
8007 //            base address for frame buffer, should be word-aligned. This is used all the times temper is used..
8008 //            In 16bit temper3 mode, each 40 bit temper data (32bit data+8bit meta data) is split into 2 chunks and each
8009 //            is stored in one of the buffers. The LSB part is stored into this buffer.
8010 //
8011 // ------------------------------------------------------------------------------ //
8012 
8013 #define ACAMERA_ISP_TEMPER_DMA_LSB_BANK_BASE_READER_DEFAULT (0x0)
8014 #define ACAMERA_ISP_TEMPER_DMA_LSB_BANK_BASE_READER_DATASIZE (32)
8015 #define ACAMERA_ISP_TEMPER_DMA_LSB_BANK_BASE_READER_OFFSET (0x1d08)
8016 #define ACAMERA_ISP_TEMPER_DMA_LSB_BANK_BASE_READER_MASK (0xffffffff)
8017 
8018 // args: data (32-bit)
acamera_isp_temper_dma_lsb_bank_base_reader_write(uintptr_t base,uint32_t data)8019 static __inline void acamera_isp_temper_dma_lsb_bank_base_reader_write(uintptr_t base, uint32_t data) {
8020     system_sw_write_32(base + 0x1ab90L, data);
8021 }
acamera_isp_temper_dma_lsb_bank_base_reader_read(uintptr_t base)8022 static __inline uint32_t acamera_isp_temper_dma_lsb_bank_base_reader_read(uintptr_t base) {
8023     return system_sw_read_32(base + 0x1ab90L);
8024 }
8025 // ------------------------------------------------------------------------------ //
8026 // Register: Line_offset
8027 // ------------------------------------------------------------------------------ //
8028 
8029 // ------------------------------------------------------------------------------ //
8030 //
8031 //          Indicates the offset in bytes from the start of one line to the next line.
8032 //          This value should be equal to or larger than one line of image data and should be word-aligned
8033 //
8034 // ------------------------------------------------------------------------------ //
8035 
8036 #define ACAMERA_ISP_TEMPER_DMA_LINE_OFFSET_DEFAULT (0x1000)
8037 #define ACAMERA_ISP_TEMPER_DMA_LINE_OFFSET_DATASIZE (32)
8038 #define ACAMERA_ISP_TEMPER_DMA_LINE_OFFSET_OFFSET (0x1d0c)
8039 #define ACAMERA_ISP_TEMPER_DMA_LINE_OFFSET_MASK (0xffffffff)
8040 
8041 // args: data (32-bit)
acamera_isp_temper_dma_line_offset_write(uintptr_t base,uint32_t data)8042 static __inline void acamera_isp_temper_dma_line_offset_write(uintptr_t base, uint32_t data) {
8043     system_sw_write_32(base + 0x1ab94L, data);
8044 }
acamera_isp_temper_dma_line_offset_read(uintptr_t base)8045 static __inline uint32_t acamera_isp_temper_dma_line_offset_read(uintptr_t base) {
8046     return system_sw_read_32(base + 0x1ab94L);
8047 }
8048 // ------------------------------------------------------------------------------ //
8049 // Register: linetick_eol
8050 // ------------------------------------------------------------------------------ //
8051 
8052 // ------------------------------------------------------------------------------ //
8053 // linetick start/end of line control. 0 = use start of line, 1 = use end of line
8054 // ------------------------------------------------------------------------------ //
8055 
8056 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_EOL_DEFAULT (1)
8057 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_EOL_DATASIZE (1)
8058 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_EOL_OFFSET (0x1d10)
8059 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_EOL_MASK (0x2)
8060 
8061 // args: data (1-bit)
acamera_isp_temper_dma_linetick_eol_write(uintptr_t base,uint8_t data)8062 static __inline void acamera_isp_temper_dma_linetick_eol_write(uintptr_t base, uint8_t data) {
8063     uint32_t curr = system_sw_read_32(base + 0x1ab98L);
8064     system_sw_write_32(base + 0x1ab98L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
8065 }
acamera_isp_temper_dma_linetick_eol_read(uintptr_t base)8066 static __inline uint8_t acamera_isp_temper_dma_linetick_eol_read(uintptr_t base) {
8067     return (uint8_t)((system_sw_read_32(base + 0x1ab98L) & 0x2) >> 1);
8068 }
8069 // ------------------------------------------------------------------------------ //
8070 // Register: Lines_wrapped
8071 // ------------------------------------------------------------------------------ //
8072 
8073 // ------------------------------------------------------------------------------ //
8074 // number of lines to write from base address before wrapping back to base address
8075 // ------------------------------------------------------------------------------ //
8076 
8077 #define ACAMERA_ISP_TEMPER_DMA_LINES_WRAPPED_DEFAULT (0x0000)
8078 #define ACAMERA_ISP_TEMPER_DMA_LINES_WRAPPED_DATASIZE (16)
8079 #define ACAMERA_ISP_TEMPER_DMA_LINES_WRAPPED_OFFSET (0x1d14)
8080 #define ACAMERA_ISP_TEMPER_DMA_LINES_WRAPPED_MASK (0xffff)
8081 
8082 // args: data (16-bit)
acamera_isp_temper_dma_lines_wrapped_write(uintptr_t base,uint16_t data)8083 static __inline void acamera_isp_temper_dma_lines_wrapped_write(uintptr_t base, uint16_t data) {
8084     uint32_t curr = system_sw_read_32(base + 0x1ab9cL);
8085     system_sw_write_32(base + 0x1ab9cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
8086 }
acamera_isp_temper_dma_lines_wrapped_read(uintptr_t base)8087 static __inline uint16_t acamera_isp_temper_dma_lines_wrapped_read(uintptr_t base) {
8088     return (uint16_t)((system_sw_read_32(base + 0x1ab9cL) & 0xffff) >> 0);
8089 }
8090 // ------------------------------------------------------------------------------ //
8091 // Register: fifo_maxfill
8092 // ------------------------------------------------------------------------------ //
8093 
8094 // ------------------------------------------------------------------------------ //
8095 // max fill level of fifo to allow
8096 // ------------------------------------------------------------------------------ //
8097 
8098 #define ACAMERA_ISP_TEMPER_DMA_FIFO_MAXFILL_DEFAULT (0x0000)
8099 #define ACAMERA_ISP_TEMPER_DMA_FIFO_MAXFILL_DATASIZE (16)
8100 #define ACAMERA_ISP_TEMPER_DMA_FIFO_MAXFILL_OFFSET (0x1d14)
8101 #define ACAMERA_ISP_TEMPER_DMA_FIFO_MAXFILL_MASK (0xffff0000)
8102 
8103 // args: data (16-bit)
acamera_isp_temper_dma_fifo_maxfill_write(uintptr_t base,uint16_t data)8104 static __inline void acamera_isp_temper_dma_fifo_maxfill_write(uintptr_t base, uint16_t data) {
8105     uint32_t curr = system_sw_read_32(base + 0x1ab9cL);
8106     system_sw_write_32(base + 0x1ab9cL, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
8107 }
acamera_isp_temper_dma_fifo_maxfill_read(uintptr_t base)8108 static __inline uint16_t acamera_isp_temper_dma_fifo_maxfill_read(uintptr_t base) {
8109     return (uint16_t)((system_sw_read_32(base + 0x1ab9cL) & 0xffff0000) >> 16);
8110 }
8111 // ------------------------------------------------------------------------------ //
8112 // Register: linetick_first
8113 // ------------------------------------------------------------------------------ //
8114 
8115 // ------------------------------------------------------------------------------ //
8116 // line number of first linetick. 0  = no linetick
8117 // ------------------------------------------------------------------------------ //
8118 
8119 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_FIRST_DEFAULT (0x0040)
8120 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_FIRST_DATASIZE (16)
8121 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_FIRST_OFFSET (0x1d18)
8122 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_FIRST_MASK (0xffff)
8123 
8124 // args: data (16-bit)
acamera_isp_temper_dma_linetick_first_write(uintptr_t base,uint16_t data)8125 static __inline void acamera_isp_temper_dma_linetick_first_write(uintptr_t base, uint16_t data) {
8126     uint32_t curr = system_sw_read_32(base + 0x1aba0L);
8127     system_sw_write_32(base + 0x1aba0L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
8128 }
acamera_isp_temper_dma_linetick_first_read(uintptr_t base)8129 static __inline uint16_t acamera_isp_temper_dma_linetick_first_read(uintptr_t base) {
8130     return (uint16_t)((system_sw_read_32(base + 0x1aba0L) & 0xffff) >> 0);
8131 }
8132 // ------------------------------------------------------------------------------ //
8133 // Register: linetick_repeat
8134 // ------------------------------------------------------------------------------ //
8135 
8136 // ------------------------------------------------------------------------------ //
8137 // line number of first linetick. 0 = no repeat
8138 // ------------------------------------------------------------------------------ //
8139 
8140 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_REPEAT_DEFAULT (0x0000)
8141 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_REPEAT_DATASIZE (16)
8142 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_REPEAT_OFFSET (0x1d18)
8143 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_REPEAT_MASK (0xffff0000)
8144 
8145 // args: data (16-bit)
acamera_isp_temper_dma_linetick_repeat_write(uintptr_t base,uint16_t data)8146 static __inline void acamera_isp_temper_dma_linetick_repeat_write(uintptr_t base, uint16_t data) {
8147     uint32_t curr = system_sw_read_32(base + 0x1aba0L);
8148     system_sw_write_32(base + 0x1aba0L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
8149 }
acamera_isp_temper_dma_linetick_repeat_read(uintptr_t base)8150 static __inline uint16_t acamera_isp_temper_dma_linetick_repeat_read(uintptr_t base) {
8151     return (uint16_t)((system_sw_read_32(base + 0x1aba0L) & 0xffff0000) >> 16);
8152 }
8153 // ------------------------------------------------------------------------------ //
8154 // Register: linetick_delay
8155 // ------------------------------------------------------------------------------ //
8156 
8157 // ------------------------------------------------------------------------------ //
8158 // linetick delay in vcke cycles to add
8159 // ------------------------------------------------------------------------------ //
8160 
8161 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_DELAY_DEFAULT (0x0000)
8162 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_DELAY_DATASIZE (16)
8163 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_DELAY_OFFSET (0x1d1c)
8164 #define ACAMERA_ISP_TEMPER_DMA_LINETICK_DELAY_MASK (0xffff)
8165 
8166 // args: data (16-bit)
acamera_isp_temper_dma_linetick_delay_write(uintptr_t base,uint16_t data)8167 static __inline void acamera_isp_temper_dma_linetick_delay_write(uintptr_t base, uint16_t data) {
8168     uint32_t curr = system_sw_read_32(base + 0x1aba4L);
8169     system_sw_write_32(base + 0x1aba4L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
8170 }
acamera_isp_temper_dma_linetick_delay_read(uintptr_t base)8171 static __inline uint16_t acamera_isp_temper_dma_linetick_delay_read(uintptr_t base) {
8172     return (uint16_t)((system_sw_read_32(base + 0x1aba4L) & 0xffff) >> 0);
8173 }
8174 // ------------------------------------------------------------------------------ //
8175 // Register: msb_writer_axi_id_value
8176 // ------------------------------------------------------------------------------ //
8177 
8178 // ------------------------------------------------------------------------------ //
8179 //
8180 //        value to send for awid, wid and expected on bid.
8181 //
8182 // ------------------------------------------------------------------------------ //
8183 
8184 #define ACAMERA_ISP_TEMPER_DMA_MSB_WRITER_AXI_ID_VALUE_DEFAULT (0x0)
8185 #define ACAMERA_ISP_TEMPER_DMA_MSB_WRITER_AXI_ID_VALUE_DATASIZE (4)
8186 #define ACAMERA_ISP_TEMPER_DMA_MSB_WRITER_AXI_ID_VALUE_OFFSET (0x1d20)
8187 #define ACAMERA_ISP_TEMPER_DMA_MSB_WRITER_AXI_ID_VALUE_MASK (0xf)
8188 
8189 // args: data (4-bit)
acamera_isp_temper_dma_msb_writer_axi_id_value_write(uintptr_t base,uint8_t data)8190 static __inline void acamera_isp_temper_dma_msb_writer_axi_id_value_write(uintptr_t base, uint8_t data) {
8191     uint32_t curr = system_sw_read_32(base + 0x1aba8L);
8192     system_sw_write_32(base + 0x1aba8L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
8193 }
acamera_isp_temper_dma_msb_writer_axi_id_value_read(uintptr_t base)8194 static __inline uint8_t acamera_isp_temper_dma_msb_writer_axi_id_value_read(uintptr_t base) {
8195     return (uint8_t)((system_sw_read_32(base + 0x1aba8L) & 0xf) >> 0);
8196 }
8197 // ------------------------------------------------------------------------------ //
8198 // Register: lsb_writer_axi_id_value
8199 // ------------------------------------------------------------------------------ //
8200 
8201 // ------------------------------------------------------------------------------ //
8202 //
8203 //        value to send for awid, wid and expected on bid.
8204 //
8205 // ------------------------------------------------------------------------------ //
8206 
8207 #define ACAMERA_ISP_TEMPER_DMA_LSB_WRITER_AXI_ID_VALUE_DEFAULT (0x0)
8208 #define ACAMERA_ISP_TEMPER_DMA_LSB_WRITER_AXI_ID_VALUE_DATASIZE (4)
8209 #define ACAMERA_ISP_TEMPER_DMA_LSB_WRITER_AXI_ID_VALUE_OFFSET (0x1d20)
8210 #define ACAMERA_ISP_TEMPER_DMA_LSB_WRITER_AXI_ID_VALUE_MASK (0xf0)
8211 
8212 // args: data (4-bit)
acamera_isp_temper_dma_lsb_writer_axi_id_value_write(uintptr_t base,uint8_t data)8213 static __inline void acamera_isp_temper_dma_lsb_writer_axi_id_value_write(uintptr_t base, uint8_t data) {
8214     uint32_t curr = system_sw_read_32(base + 0x1aba8L);
8215     system_sw_write_32(base + 0x1aba8L, (((uint32_t) (data & 0xf)) << 4) | (curr & 0xffffff0f));
8216 }
acamera_isp_temper_dma_lsb_writer_axi_id_value_read(uintptr_t base)8217 static __inline uint8_t acamera_isp_temper_dma_lsb_writer_axi_id_value_read(uintptr_t base) {
8218     return (uint8_t)((system_sw_read_32(base + 0x1aba8L) & 0xf0) >> 4);
8219 }
8220 // ------------------------------------------------------------------------------ //
8221 // Register: writer_axi_id_multi
8222 // ------------------------------------------------------------------------------ //
8223 
8224 // ------------------------------------------------------------------------------ //
8225 //
8226 //        0= static value (axi_id_value) for awid/wid, 1 = incrementing value per transaction for awid/wid wrapping to 0 after axi_id_value
8227 //
8228 // ------------------------------------------------------------------------------ //
8229 
8230 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_ID_MULTI_DEFAULT (0)
8231 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_ID_MULTI_DATASIZE (1)
8232 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_ID_MULTI_OFFSET (0x1d20)
8233 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_ID_MULTI_MASK (0x100)
8234 
8235 // args: data (1-bit)
acamera_isp_temper_dma_writer_axi_id_multi_write(uintptr_t base,uint8_t data)8236 static __inline void acamera_isp_temper_dma_writer_axi_id_multi_write(uintptr_t base, uint8_t data) {
8237     uint32_t curr = system_sw_read_32(base + 0x1aba8L);
8238     system_sw_write_32(base + 0x1aba8L, (((uint32_t) (data & 0x1)) << 8) | (curr & 0xfffffeff));
8239 }
acamera_isp_temper_dma_writer_axi_id_multi_read(uintptr_t base)8240 static __inline uint8_t acamera_isp_temper_dma_writer_axi_id_multi_read(uintptr_t base) {
8241     return (uint8_t)((system_sw_read_32(base + 0x1aba8L) & 0x100) >> 8);
8242 }
8243 // ------------------------------------------------------------------------------ //
8244 // Register: writer_axi_burstsplit
8245 // ------------------------------------------------------------------------------ //
8246 
8247 // ------------------------------------------------------------------------------ //
8248 //
8249 //        memory boundary that splits bursts: 0=2Transfers,1=4Transfers,2=8Transfers,3=16Transfers. (for axi_data_w=128,  16transfers=256Bytes). Good default = 11
8250 //
8251 // ------------------------------------------------------------------------------ //
8252 
8253 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_BURSTSPLIT_DEFAULT (0x3)
8254 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_BURSTSPLIT_DATASIZE (2)
8255 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_BURSTSPLIT_OFFSET (0x1d20)
8256 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_BURSTSPLIT_MASK (0x600)
8257 
8258 // args: data (2-bit)
acamera_isp_temper_dma_writer_axi_burstsplit_write(uintptr_t base,uint8_t data)8259 static __inline void acamera_isp_temper_dma_writer_axi_burstsplit_write(uintptr_t base, uint8_t data) {
8260     uint32_t curr = system_sw_read_32(base + 0x1aba8L);
8261     system_sw_write_32(base + 0x1aba8L, (((uint32_t) (data & 0x3)) << 9) | (curr & 0xfffff9ff));
8262 }
acamera_isp_temper_dma_writer_axi_burstsplit_read(uintptr_t base)8263 static __inline uint8_t acamera_isp_temper_dma_writer_axi_burstsplit_read(uintptr_t base) {
8264     return (uint8_t)((system_sw_read_32(base + 0x1aba8L) & 0x600) >> 9);
8265 }
8266 // ------------------------------------------------------------------------------ //
8267 // Register: writer_axi_cache_value
8268 // ------------------------------------------------------------------------------ //
8269 
8270 // ------------------------------------------------------------------------------ //
8271 //
8272 //        value to send for awcache. Good default = 1111
8273 //
8274 // ------------------------------------------------------------------------------ //
8275 
8276 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_CACHE_VALUE_DEFAULT (0xf)
8277 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_CACHE_VALUE_DATASIZE (4)
8278 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_CACHE_VALUE_OFFSET (0x1d20)
8279 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_CACHE_VALUE_MASK (0x7800)
8280 
8281 // args: data (4-bit)
acamera_isp_temper_dma_writer_axi_cache_value_write(uintptr_t base,uint8_t data)8282 static __inline void acamera_isp_temper_dma_writer_axi_cache_value_write(uintptr_t base, uint8_t data) {
8283     uint32_t curr = system_sw_read_32(base + 0x1aba8L);
8284     system_sw_write_32(base + 0x1aba8L, (((uint32_t) (data & 0xf)) << 11) | (curr & 0xffff87ff));
8285 }
acamera_isp_temper_dma_writer_axi_cache_value_read(uintptr_t base)8286 static __inline uint8_t acamera_isp_temper_dma_writer_axi_cache_value_read(uintptr_t base) {
8287     return (uint8_t)((system_sw_read_32(base + 0x1aba8L) & 0x7800) >> 11);
8288 }
8289 // ------------------------------------------------------------------------------ //
8290 // Register: writer_axi_maxostand
8291 // ------------------------------------------------------------------------------ //
8292 
8293 // ------------------------------------------------------------------------------ //
8294 //
8295 //        max outstanding write transactions (bursts) allowed. zero means no maximum(uses internal limit of 2048).
8296 //
8297 // ------------------------------------------------------------------------------ //
8298 
8299 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_MAXOSTAND_DEFAULT (0x00)
8300 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_MAXOSTAND_DATASIZE (8)
8301 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_MAXOSTAND_OFFSET (0x1d20)
8302 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_MAXOSTAND_MASK (0xff0000)
8303 
8304 // args: data (8-bit)
acamera_isp_temper_dma_writer_axi_maxostand_write(uintptr_t base,uint8_t data)8305 static __inline void acamera_isp_temper_dma_writer_axi_maxostand_write(uintptr_t base, uint8_t data) {
8306     uint32_t curr = system_sw_read_32(base + 0x1aba8L);
8307     system_sw_write_32(base + 0x1aba8L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
8308 }
acamera_isp_temper_dma_writer_axi_maxostand_read(uintptr_t base)8309 static __inline uint8_t acamera_isp_temper_dma_writer_axi_maxostand_read(uintptr_t base) {
8310     return (uint8_t)((system_sw_read_32(base + 0x1aba8L) & 0xff0000) >> 16);
8311 }
8312 // ------------------------------------------------------------------------------ //
8313 // Register: writer_axi_max_awlen
8314 // ------------------------------------------------------------------------------ //
8315 
8316 // ------------------------------------------------------------------------------ //
8317 //
8318 //        max value to use for awlen (axi burst length). 0000= max 1 transfer/burst , upto 1111= max 16 transfers/burst
8319 //
8320 // ------------------------------------------------------------------------------ //
8321 
8322 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_MAX_AWLEN_DEFAULT (0xf)
8323 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_MAX_AWLEN_DATASIZE (4)
8324 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_MAX_AWLEN_OFFSET (0x1d20)
8325 #define ACAMERA_ISP_TEMPER_DMA_WRITER_AXI_MAX_AWLEN_MASK (0xf000000)
8326 
8327 // args: data (4-bit)
acamera_isp_temper_dma_writer_axi_max_awlen_write(uintptr_t base,uint8_t data)8328 static __inline void acamera_isp_temper_dma_writer_axi_max_awlen_write(uintptr_t base, uint8_t data) {
8329     uint32_t curr = system_sw_read_32(base + 0x1aba8L);
8330     system_sw_write_32(base + 0x1aba8L, (((uint32_t) (data & 0xf)) << 24) | (curr & 0xf0ffffff));
8331 }
acamera_isp_temper_dma_writer_axi_max_awlen_read(uintptr_t base)8332 static __inline uint8_t acamera_isp_temper_dma_writer_axi_max_awlen_read(uintptr_t base) {
8333     return (uint8_t)((system_sw_read_32(base + 0x1aba8L) & 0xf000000) >> 24);
8334 }
8335 // ------------------------------------------------------------------------------ //
8336 // Register: writer_pagewarm_on
8337 // ------------------------------------------------------------------------------ //
8338 
8339 // ------------------------------------------------------------------------------ //
8340 //
8341 //        active high, enables posting of pagewarm dummy writes to SMMU for early page translation of upcomming 4K pages.
8342 //        Recommend SMMU has min 8 page cache to avoid translation miss. Pagewarms are posted as dummy writes with wstrb= 0
8343 //
8344 // ------------------------------------------------------------------------------ //
8345 
8346 #define ACAMERA_ISP_TEMPER_DMA_WRITER_PAGEWARM_ON_DEFAULT (0)
8347 #define ACAMERA_ISP_TEMPER_DMA_WRITER_PAGEWARM_ON_DATASIZE (1)
8348 #define ACAMERA_ISP_TEMPER_DMA_WRITER_PAGEWARM_ON_OFFSET (0x1d20)
8349 #define ACAMERA_ISP_TEMPER_DMA_WRITER_PAGEWARM_ON_MASK (0x10000000)
8350 
8351 // args: data (1-bit)
acamera_isp_temper_dma_writer_pagewarm_on_write(uintptr_t base,uint8_t data)8352 static __inline void acamera_isp_temper_dma_writer_pagewarm_on_write(uintptr_t base, uint8_t data) {
8353     uint32_t curr = system_sw_read_32(base + 0x1aba8L);
8354     system_sw_write_32(base + 0x1aba8L, (((uint32_t) (data & 0x1)) << 28) | (curr & 0xefffffff));
8355 }
acamera_isp_temper_dma_writer_pagewarm_on_read(uintptr_t base)8356 static __inline uint8_t acamera_isp_temper_dma_writer_pagewarm_on_read(uintptr_t base) {
8357     return (uint8_t)((system_sw_read_32(base + 0x1aba8L) & 0x10000000) >> 28);
8358 }
8359 // ------------------------------------------------------------------------------ //
8360 // Register: msb_reader_axi_id_value
8361 // ------------------------------------------------------------------------------ //
8362 
8363 // ------------------------------------------------------------------------------ //
8364 //
8365 //        value to send for awid, wid and expected on bid. Good default = "0000"
8366 //
8367 // ------------------------------------------------------------------------------ //
8368 
8369 #define ACAMERA_ISP_TEMPER_DMA_MSB_READER_AXI_ID_VALUE_DEFAULT (0x0)
8370 #define ACAMERA_ISP_TEMPER_DMA_MSB_READER_AXI_ID_VALUE_DATASIZE (4)
8371 #define ACAMERA_ISP_TEMPER_DMA_MSB_READER_AXI_ID_VALUE_OFFSET (0x1d24)
8372 #define ACAMERA_ISP_TEMPER_DMA_MSB_READER_AXI_ID_VALUE_MASK (0xf)
8373 
8374 // args: data (4-bit)
acamera_isp_temper_dma_msb_reader_axi_id_value_write(uintptr_t base,uint8_t data)8375 static __inline void acamera_isp_temper_dma_msb_reader_axi_id_value_write(uintptr_t base, uint8_t data) {
8376     uint32_t curr = system_sw_read_32(base + 0x1abacL);
8377     system_sw_write_32(base + 0x1abacL, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
8378 }
acamera_isp_temper_dma_msb_reader_axi_id_value_read(uintptr_t base)8379 static __inline uint8_t acamera_isp_temper_dma_msb_reader_axi_id_value_read(uintptr_t base) {
8380     return (uint8_t)((system_sw_read_32(base + 0x1abacL) & 0xf) >> 0);
8381 }
8382 // ------------------------------------------------------------------------------ //
8383 // Register: lsb_reader_axi_id_value
8384 // ------------------------------------------------------------------------------ //
8385 
8386 // ------------------------------------------------------------------------------ //
8387 //
8388 //        value to send for awid, wid and expected on bid. Good default = "0000"
8389 //
8390 // ------------------------------------------------------------------------------ //
8391 
8392 #define ACAMERA_ISP_TEMPER_DMA_LSB_READER_AXI_ID_VALUE_DEFAULT (0x0)
8393 #define ACAMERA_ISP_TEMPER_DMA_LSB_READER_AXI_ID_VALUE_DATASIZE (4)
8394 #define ACAMERA_ISP_TEMPER_DMA_LSB_READER_AXI_ID_VALUE_OFFSET (0x1d24)
8395 #define ACAMERA_ISP_TEMPER_DMA_LSB_READER_AXI_ID_VALUE_MASK (0xf0)
8396 
8397 // args: data (4-bit)
acamera_isp_temper_dma_lsb_reader_axi_id_value_write(uintptr_t base,uint8_t data)8398 static __inline void acamera_isp_temper_dma_lsb_reader_axi_id_value_write(uintptr_t base, uint8_t data) {
8399     uint32_t curr = system_sw_read_32(base + 0x1abacL);
8400     system_sw_write_32(base + 0x1abacL, (((uint32_t) (data & 0xf)) << 4) | (curr & 0xffffff0f));
8401 }
acamera_isp_temper_dma_lsb_reader_axi_id_value_read(uintptr_t base)8402 static __inline uint8_t acamera_isp_temper_dma_lsb_reader_axi_id_value_read(uintptr_t base) {
8403     return (uint8_t)((system_sw_read_32(base + 0x1abacL) & 0xf0) >> 4);
8404 }
8405 // ------------------------------------------------------------------------------ //
8406 // Register: reader_axi_burstsplit
8407 // ------------------------------------------------------------------------------ //
8408 
8409 // ------------------------------------------------------------------------------ //
8410 //
8411 //        memory boundary that splits bursts: 0=2Transfers,1=4Transfers,2=8Transfers,3=16Transfers. (for axi_data_w=128,  16transfers=256Bytes). Good default = 11
8412 //
8413 // ------------------------------------------------------------------------------ //
8414 
8415 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_BURSTSPLIT_DEFAULT (0x3)
8416 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_BURSTSPLIT_DATASIZE (2)
8417 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_BURSTSPLIT_OFFSET (0x1d24)
8418 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_BURSTSPLIT_MASK (0x600)
8419 
8420 // args: data (2-bit)
acamera_isp_temper_dma_reader_axi_burstsplit_write(uintptr_t base,uint8_t data)8421 static __inline void acamera_isp_temper_dma_reader_axi_burstsplit_write(uintptr_t base, uint8_t data) {
8422     uint32_t curr = system_sw_read_32(base + 0x1abacL);
8423     system_sw_write_32(base + 0x1abacL, (((uint32_t) (data & 0x3)) << 9) | (curr & 0xfffff9ff));
8424 }
acamera_isp_temper_dma_reader_axi_burstsplit_read(uintptr_t base)8425 static __inline uint8_t acamera_isp_temper_dma_reader_axi_burstsplit_read(uintptr_t base) {
8426     return (uint8_t)((system_sw_read_32(base + 0x1abacL) & 0x600) >> 9);
8427 }
8428 // ------------------------------------------------------------------------------ //
8429 // Register: reader_axi_cache_value
8430 // ------------------------------------------------------------------------------ //
8431 
8432 // ------------------------------------------------------------------------------ //
8433 //
8434 //        value to send for awcache. Good default = 1111
8435 //
8436 // ------------------------------------------------------------------------------ //
8437 
8438 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_CACHE_VALUE_DEFAULT (0xf)
8439 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_CACHE_VALUE_DATASIZE (4)
8440 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_CACHE_VALUE_OFFSET (0x1d24)
8441 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_CACHE_VALUE_MASK (0x7800)
8442 
8443 // args: data (4-bit)
acamera_isp_temper_dma_reader_axi_cache_value_write(uintptr_t base,uint8_t data)8444 static __inline void acamera_isp_temper_dma_reader_axi_cache_value_write(uintptr_t base, uint8_t data) {
8445     uint32_t curr = system_sw_read_32(base + 0x1abacL);
8446     system_sw_write_32(base + 0x1abacL, (((uint32_t) (data & 0xf)) << 11) | (curr & 0xffff87ff));
8447 }
acamera_isp_temper_dma_reader_axi_cache_value_read(uintptr_t base)8448 static __inline uint8_t acamera_isp_temper_dma_reader_axi_cache_value_read(uintptr_t base) {
8449     return (uint8_t)((system_sw_read_32(base + 0x1abacL) & 0x7800) >> 11);
8450 }
8451 // ------------------------------------------------------------------------------ //
8452 // Register: reader_axi_maxostand
8453 // ------------------------------------------------------------------------------ //
8454 
8455 // ------------------------------------------------------------------------------ //
8456 //
8457 //        max outstanding write transactions (bursts) allowed. zero means no maximum(uses internal limit of 2048).
8458 //
8459 // ------------------------------------------------------------------------------ //
8460 
8461 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_MAXOSTAND_DEFAULT (0x00)
8462 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_MAXOSTAND_DATASIZE (8)
8463 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_MAXOSTAND_OFFSET (0x1d24)
8464 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_MAXOSTAND_MASK (0xff0000)
8465 
8466 // args: data (8-bit)
acamera_isp_temper_dma_reader_axi_maxostand_write(uintptr_t base,uint8_t data)8467 static __inline void acamera_isp_temper_dma_reader_axi_maxostand_write(uintptr_t base, uint8_t data) {
8468     uint32_t curr = system_sw_read_32(base + 0x1abacL);
8469     system_sw_write_32(base + 0x1abacL, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
8470 }
acamera_isp_temper_dma_reader_axi_maxostand_read(uintptr_t base)8471 static __inline uint8_t acamera_isp_temper_dma_reader_axi_maxostand_read(uintptr_t base) {
8472     return (uint8_t)((system_sw_read_32(base + 0x1abacL) & 0xff0000) >> 16);
8473 }
8474 // ------------------------------------------------------------------------------ //
8475 // Register: reader_axi_max_arlen
8476 // ------------------------------------------------------------------------------ //
8477 
8478 // ------------------------------------------------------------------------------ //
8479 //
8480 //        max value to use for awlen (axi burst length). 0000= max 1 transfer/burst , upto 1111= max 16 transfers/burst
8481 //
8482 // ------------------------------------------------------------------------------ //
8483 
8484 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_MAX_ARLEN_DEFAULT (0xf)
8485 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_MAX_ARLEN_DATASIZE (4)
8486 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_MAX_ARLEN_OFFSET (0x1d24)
8487 #define ACAMERA_ISP_TEMPER_DMA_READER_AXI_MAX_ARLEN_MASK (0xf000000)
8488 
8489 // args: data (4-bit)
acamera_isp_temper_dma_reader_axi_max_arlen_write(uintptr_t base,uint8_t data)8490 static __inline void acamera_isp_temper_dma_reader_axi_max_arlen_write(uintptr_t base, uint8_t data) {
8491     uint32_t curr = system_sw_read_32(base + 0x1abacL);
8492     system_sw_write_32(base + 0x1abacL, (((uint32_t) (data & 0xf)) << 24) | (curr & 0xf0ffffff));
8493 }
acamera_isp_temper_dma_reader_axi_max_arlen_read(uintptr_t base)8494 static __inline uint8_t acamera_isp_temper_dma_reader_axi_max_arlen_read(uintptr_t base) {
8495     return (uint8_t)((system_sw_read_32(base + 0x1abacL) & 0xf000000) >> 24);
8496 }
8497 // ------------------------------------------------------------------------------ //
8498 // Register: reader_pagewarm_on
8499 // ------------------------------------------------------------------------------ //
8500 
8501 // ------------------------------------------------------------------------------ //
8502 //
8503 //        active high, enables posting of pagewarm dummy writes to SMMU for early page translation of upcomming 4K pages.
8504 //        Recommend SMMU has min 8 page cache to avoid translation miss. Pagewarms are posted as dummy writes with wstrb= 0
8505 //
8506 // ------------------------------------------------------------------------------ //
8507 
8508 #define ACAMERA_ISP_TEMPER_DMA_READER_PAGEWARM_ON_DEFAULT (0)
8509 #define ACAMERA_ISP_TEMPER_DMA_READER_PAGEWARM_ON_DATASIZE (1)
8510 #define ACAMERA_ISP_TEMPER_DMA_READER_PAGEWARM_ON_OFFSET (0x1d24)
8511 #define ACAMERA_ISP_TEMPER_DMA_READER_PAGEWARM_ON_MASK (0x10000000)
8512 
8513 // args: data (1-bit)
acamera_isp_temper_dma_reader_pagewarm_on_write(uintptr_t base,uint8_t data)8514 static __inline void acamera_isp_temper_dma_reader_pagewarm_on_write(uintptr_t base, uint8_t data) {
8515     uint32_t curr = system_sw_read_32(base + 0x1abacL);
8516     system_sw_write_32(base + 0x1abacL, (((uint32_t) (data & 0x1)) << 28) | (curr & 0xefffffff));
8517 }
acamera_isp_temper_dma_reader_pagewarm_on_read(uintptr_t base)8518 static __inline uint8_t acamera_isp_temper_dma_reader_pagewarm_on_read(uintptr_t base) {
8519     return (uint8_t)((system_sw_read_32(base + 0x1abacL) & 0x10000000) >> 28);
8520 }
8521 // ------------------------------------------------------------------------------ //
8522 // Group: ca correction
8523 // ------------------------------------------------------------------------------ //
8524 
8525 // ------------------------------------------------------------------------------ //
8526 // Ca Correction
8527 // ------------------------------------------------------------------------------ //
8528 
8529 // ------------------------------------------------------------------------------ //
8530 // Register: Enable
8531 // ------------------------------------------------------------------------------ //
8532 
8533 // ------------------------------------------------------------------------------ //
8534 // module enable, if 0 the data_i(dw*(kh-1)/2+dw-1 downto dw*(kh-1)/2) is presented at data_o after pipeline length
8535 // ------------------------------------------------------------------------------ //
8536 
8537 #define ACAMERA_ISP_CA_CORRECTION_ENABLE_DEFAULT (0x0)
8538 #define ACAMERA_ISP_CA_CORRECTION_ENABLE_DATASIZE (1)
8539 #define ACAMERA_ISP_CA_CORRECTION_ENABLE_OFFSET (0x1d28)
8540 #define ACAMERA_ISP_CA_CORRECTION_ENABLE_MASK (0x1)
8541 
8542 // args: data (1-bit)
acamera_isp_ca_correction_enable_write(uintptr_t base,uint8_t data)8543 static __inline void acamera_isp_ca_correction_enable_write(uintptr_t base, uint8_t data) {
8544     uint32_t curr = system_sw_read_32(base + 0x1abb0L);
8545     system_sw_write_32(base + 0x1abb0L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
8546 }
acamera_isp_ca_correction_enable_read(uintptr_t base)8547 static __inline uint8_t acamera_isp_ca_correction_enable_read(uintptr_t base) {
8548     return (uint8_t)((system_sw_read_32(base + 0x1abb0L) & 0x1) >> 0);
8549 }
8550 // ------------------------------------------------------------------------------ //
8551 // Register: Mesh Scale
8552 // ------------------------------------------------------------------------------ //
8553 
8554 // ------------------------------------------------------------------------------ //
8555 // extra shift of mesh data: 00- no shift, 01- shift left by 1, ..., 11- shift left by 3, used to increase the range at cost of accuracy
8556 // ------------------------------------------------------------------------------ //
8557 
8558 #define ACAMERA_ISP_CA_CORRECTION_MESH_SCALE_DEFAULT (0x0)
8559 #define ACAMERA_ISP_CA_CORRECTION_MESH_SCALE_DATASIZE (2)
8560 #define ACAMERA_ISP_CA_CORRECTION_MESH_SCALE_OFFSET (0x1d28)
8561 #define ACAMERA_ISP_CA_CORRECTION_MESH_SCALE_MASK (0x30)
8562 
8563 // args: data (2-bit)
acamera_isp_ca_correction_mesh_scale_write(uintptr_t base,uint8_t data)8564 static __inline void acamera_isp_ca_correction_mesh_scale_write(uintptr_t base, uint8_t data) {
8565     uint32_t curr = system_sw_read_32(base + 0x1abb0L);
8566     system_sw_write_32(base + 0x1abb0L, (((uint32_t) (data & 0x3)) << 4) | (curr & 0xffffffcf));
8567 }
acamera_isp_ca_correction_mesh_scale_read(uintptr_t base)8568 static __inline uint8_t acamera_isp_ca_correction_mesh_scale_read(uintptr_t base) {
8569     return (uint8_t)((system_sw_read_32(base + 0x1abb0L) & 0x30) >> 4);
8570 }
8571 // ------------------------------------------------------------------------------ //
8572 // Register: Mesh Width
8573 // ------------------------------------------------------------------------------ //
8574 
8575 // ------------------------------------------------------------------------------ //
8576 //
8577 //       		    number of tiles across. Maximum supported mesh width is 64.
8578 //
8579 // ------------------------------------------------------------------------------ //
8580 
8581 #define ACAMERA_ISP_CA_CORRECTION_MESH_WIDTH_DEFAULT (64)
8582 #define ACAMERA_ISP_CA_CORRECTION_MESH_WIDTH_DATASIZE (7)
8583 #define ACAMERA_ISP_CA_CORRECTION_MESH_WIDTH_OFFSET (0x1d2c)
8584 #define ACAMERA_ISP_CA_CORRECTION_MESH_WIDTH_MASK (0x7f)
8585 
8586 // args: data (7-bit)
acamera_isp_ca_correction_mesh_width_write(uintptr_t base,uint8_t data)8587 static __inline void acamera_isp_ca_correction_mesh_width_write(uintptr_t base, uint8_t data) {
8588     uint32_t curr = system_sw_read_32(base + 0x1abb4L);
8589     system_sw_write_32(base + 0x1abb4L, (((uint32_t) (data & 0x7f)) << 0) | (curr & 0xffffff80));
8590 }
acamera_isp_ca_correction_mesh_width_read(uintptr_t base)8591 static __inline uint8_t acamera_isp_ca_correction_mesh_width_read(uintptr_t base) {
8592     return (uint8_t)((system_sw_read_32(base + 0x1abb4L) & 0x7f) >> 0);
8593 }
8594 // ------------------------------------------------------------------------------ //
8595 // Register: Mesh Height
8596 // ------------------------------------------------------------------------------ //
8597 
8598 // ------------------------------------------------------------------------------ //
8599 //
8600 //       		number of tiles vertically. Maximum supported mesh height is 64 for RGGB sensor and 42 for RGBIr sensors.
8601 //
8602 // ------------------------------------------------------------------------------ //
8603 
8604 #define ACAMERA_ISP_CA_CORRECTION_MESH_HEIGHT_DEFAULT (64)
8605 #define ACAMERA_ISP_CA_CORRECTION_MESH_HEIGHT_DATASIZE (7)
8606 #define ACAMERA_ISP_CA_CORRECTION_MESH_HEIGHT_OFFSET (0x1d2c)
8607 #define ACAMERA_ISP_CA_CORRECTION_MESH_HEIGHT_MASK (0x7f0000)
8608 
8609 // args: data (7-bit)
acamera_isp_ca_correction_mesh_height_write(uintptr_t base,uint8_t data)8610 static __inline void acamera_isp_ca_correction_mesh_height_write(uintptr_t base, uint8_t data) {
8611     uint32_t curr = system_sw_read_32(base + 0x1abb4L);
8612     system_sw_write_32(base + 0x1abb4L, (((uint32_t) (data & 0x7f)) << 16) | (curr & 0xff80ffff));
8613 }
acamera_isp_ca_correction_mesh_height_read(uintptr_t base)8614 static __inline uint8_t acamera_isp_ca_correction_mesh_height_read(uintptr_t base) {
8615     return (uint8_t)((system_sw_read_32(base + 0x1abb4L) & 0x7f0000) >> 16);
8616 }
8617 // ------------------------------------------------------------------------------ //
8618 // Register: Line Offset
8619 // ------------------------------------------------------------------------------ //
8620 
8621 // ------------------------------------------------------------------------------ //
8622 // offset between lines of tiles, can differ from mesh_width, but its safe to keep same as mesh width
8623 // ------------------------------------------------------------------------------ //
8624 
8625 #define ACAMERA_ISP_CA_CORRECTION_LINE_OFFSET_DEFAULT (64)
8626 #define ACAMERA_ISP_CA_CORRECTION_LINE_OFFSET_DATASIZE (13)
8627 #define ACAMERA_ISP_CA_CORRECTION_LINE_OFFSET_OFFSET (0x1d30)
8628 #define ACAMERA_ISP_CA_CORRECTION_LINE_OFFSET_MASK (0x1fff)
8629 
8630 // args: data (13-bit)
acamera_isp_ca_correction_line_offset_write(uintptr_t base,uint16_t data)8631 static __inline void acamera_isp_ca_correction_line_offset_write(uintptr_t base, uint16_t data) {
8632     uint32_t curr = system_sw_read_32(base + 0x1abb8L);
8633     system_sw_write_32(base + 0x1abb8L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
8634 }
acamera_isp_ca_correction_line_offset_read(uintptr_t base)8635 static __inline uint16_t acamera_isp_ca_correction_line_offset_read(uintptr_t base) {
8636     return (uint16_t)((system_sw_read_32(base + 0x1abb8L) & 0x1fff) >> 0);
8637 }
8638 // ------------------------------------------------------------------------------ //
8639 // Register: Plane Offset
8640 // ------------------------------------------------------------------------------ //
8641 
8642 // ------------------------------------------------------------------------------ //
8643 // offset between colour planes, can differ from line_offset*mesh_height
8644 // ------------------------------------------------------------------------------ //
8645 
8646 #define ACAMERA_ISP_CA_CORRECTION_PLANE_OFFSET_DEFAULT (64)
8647 #define ACAMERA_ISP_CA_CORRECTION_PLANE_OFFSET_DATASIZE (13)
8648 #define ACAMERA_ISP_CA_CORRECTION_PLANE_OFFSET_OFFSET (0x1d30)
8649 #define ACAMERA_ISP_CA_CORRECTION_PLANE_OFFSET_MASK (0x1fff0000)
8650 
8651 // args: data (13-bit)
acamera_isp_ca_correction_plane_offset_write(uintptr_t base,uint16_t data)8652 static __inline void acamera_isp_ca_correction_plane_offset_write(uintptr_t base, uint16_t data) {
8653     uint32_t curr = system_sw_read_32(base + 0x1abb8L);
8654     system_sw_write_32(base + 0x1abb8L, (((uint32_t) (data & 0x1fff)) << 16) | (curr & 0xe000ffff));
8655 }
acamera_isp_ca_correction_plane_offset_read(uintptr_t base)8656 static __inline uint16_t acamera_isp_ca_correction_plane_offset_read(uintptr_t base) {
8657     return (uint16_t)((system_sw_read_32(base + 0x1abb8L) & 0x1fff0000) >> 16);
8658 }
8659 // ------------------------------------------------------------------------------ //
8660 // Register: Mesh Reload
8661 // ------------------------------------------------------------------------------ //
8662 
8663 // ------------------------------------------------------------------------------ //
8664 // 0-1 triggers mesh and filter coefficient reload in the internal cache. Used after RAM is updated by CPU Chromatic Aberration correction module
8665 // ------------------------------------------------------------------------------ //
8666 
8667 #define ACAMERA_ISP_CA_CORRECTION_MESH_RELOAD_DEFAULT (0x0)
8668 #define ACAMERA_ISP_CA_CORRECTION_MESH_RELOAD_DATASIZE (1)
8669 #define ACAMERA_ISP_CA_CORRECTION_MESH_RELOAD_OFFSET (0x1d34)
8670 #define ACAMERA_ISP_CA_CORRECTION_MESH_RELOAD_MASK (0x1)
8671 
8672 // args: data (1-bit)
acamera_isp_ca_correction_mesh_reload_write(uintptr_t base,uint8_t data)8673 static __inline void acamera_isp_ca_correction_mesh_reload_write(uintptr_t base, uint8_t data) {
8674     uint32_t curr = system_sw_read_32(base + 0x1abbcL);
8675     system_sw_write_32(base + 0x1abbcL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
8676 }
acamera_isp_ca_correction_mesh_reload_read(uintptr_t base)8677 static __inline uint8_t acamera_isp_ca_correction_mesh_reload_read(uintptr_t base) {
8678     return (uint8_t)((system_sw_read_32(base + 0x1abbcL) & 0x1) >> 0);
8679 }
8680 // ------------------------------------------------------------------------------ //
8681 // Group: square be
8682 // ------------------------------------------------------------------------------ //
8683 
8684 // ------------------------------------------------------------------------------ //
8685 // sensor offset for the square module
8686 // ------------------------------------------------------------------------------ //
8687 
8688 // ------------------------------------------------------------------------------ //
8689 // Register: black_level_in
8690 // ------------------------------------------------------------------------------ //
8691 
8692 // ------------------------------------------------------------------------------ //
8693 // input Data black level
8694 // ------------------------------------------------------------------------------ //
8695 
8696 #define ACAMERA_ISP_SQUARE_BE_BLACK_LEVEL_IN_DEFAULT (0x000)
8697 #define ACAMERA_ISP_SQUARE_BE_BLACK_LEVEL_IN_DATASIZE (16)
8698 #define ACAMERA_ISP_SQUARE_BE_BLACK_LEVEL_IN_OFFSET (0x1d38)
8699 #define ACAMERA_ISP_SQUARE_BE_BLACK_LEVEL_IN_MASK (0xffff)
8700 
8701 // args: data (16-bit)
acamera_isp_square_be_black_level_in_write(uintptr_t base,uint16_t data)8702 static __inline void acamera_isp_square_be_black_level_in_write(uintptr_t base, uint16_t data) {
8703     uint32_t curr = system_sw_read_32(base + 0x1abc0L);
8704     system_sw_write_32(base + 0x1abc0L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
8705 }
acamera_isp_square_be_black_level_in_read(uintptr_t base)8706 static __inline uint16_t acamera_isp_square_be_black_level_in_read(uintptr_t base) {
8707     return (uint16_t)((system_sw_read_32(base + 0x1abc0L) & 0xffff) >> 0);
8708 }
8709 // ------------------------------------------------------------------------------ //
8710 // Register: black_level_out
8711 // ------------------------------------------------------------------------------ //
8712 
8713 // ------------------------------------------------------------------------------ //
8714 // output Data black level
8715 // ------------------------------------------------------------------------------ //
8716 
8717 #define ACAMERA_ISP_SQUARE_BE_BLACK_LEVEL_OUT_DEFAULT (0x000)
8718 #define ACAMERA_ISP_SQUARE_BE_BLACK_LEVEL_OUT_DATASIZE (20)
8719 #define ACAMERA_ISP_SQUARE_BE_BLACK_LEVEL_OUT_OFFSET (0x1d3c)
8720 #define ACAMERA_ISP_SQUARE_BE_BLACK_LEVEL_OUT_MASK (0xfffff)
8721 
8722 // args: data (20-bit)
acamera_isp_square_be_black_level_out_write(uintptr_t base,uint32_t data)8723 static __inline void acamera_isp_square_be_black_level_out_write(uintptr_t base, uint32_t data) {
8724     uint32_t curr = system_sw_read_32(base + 0x1abc4L);
8725     system_sw_write_32(base + 0x1abc4L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
8726 }
acamera_isp_square_be_black_level_out_read(uintptr_t base)8727 static __inline uint32_t acamera_isp_square_be_black_level_out_read(uintptr_t base) {
8728     return (uint32_t)((system_sw_read_32(base + 0x1abc4L) & 0xfffff) >> 0);
8729 }
8730 // ------------------------------------------------------------------------------ //
8731 // Group: sensor offset pre shading
8732 // ------------------------------------------------------------------------------ //
8733 
8734 // ------------------------------------------------------------------------------ //
8735 // offset offset subtraction for each color channel and exposure
8736 // ------------------------------------------------------------------------------ //
8737 
8738 // ------------------------------------------------------------------------------ //
8739 // Register: offset 00
8740 // ------------------------------------------------------------------------------ //
8741 
8742 // ------------------------------------------------------------------------------ //
8743 // offset offset for color channel 00 (R)
8744 // ------------------------------------------------------------------------------ //
8745 
8746 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_00_DEFAULT (0x00)
8747 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_00_DATASIZE (20)
8748 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_00_OFFSET (0x1d40)
8749 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_00_MASK (0xfffff)
8750 
8751 // args: data (20-bit)
acamera_isp_sensor_offset_pre_shading_offset_00_write(uintptr_t base,uint32_t data)8752 static __inline void acamera_isp_sensor_offset_pre_shading_offset_00_write(uintptr_t base, uint32_t data) {
8753     uint32_t curr = system_sw_read_32(base + 0x1abc8L);
8754     system_sw_write_32(base + 0x1abc8L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
8755 }
acamera_isp_sensor_offset_pre_shading_offset_00_read(uintptr_t base)8756 static __inline uint32_t acamera_isp_sensor_offset_pre_shading_offset_00_read(uintptr_t base) {
8757     return (uint32_t)((system_sw_read_32(base + 0x1abc8L) & 0xfffff) >> 0);
8758 }
8759 // ------------------------------------------------------------------------------ //
8760 // Register: offset 01
8761 // ------------------------------------------------------------------------------ //
8762 
8763 // ------------------------------------------------------------------------------ //
8764 // offset offset for color channel 01 (Gr)
8765 // ------------------------------------------------------------------------------ //
8766 
8767 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_01_DEFAULT (0x00)
8768 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_01_DATASIZE (20)
8769 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_01_OFFSET (0x1d44)
8770 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_01_MASK (0xfffff)
8771 
8772 // args: data (20-bit)
acamera_isp_sensor_offset_pre_shading_offset_01_write(uintptr_t base,uint32_t data)8773 static __inline void acamera_isp_sensor_offset_pre_shading_offset_01_write(uintptr_t base, uint32_t data) {
8774     uint32_t curr = system_sw_read_32(base + 0x1abccL);
8775     system_sw_write_32(base + 0x1abccL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
8776 }
acamera_isp_sensor_offset_pre_shading_offset_01_read(uintptr_t base)8777 static __inline uint32_t acamera_isp_sensor_offset_pre_shading_offset_01_read(uintptr_t base) {
8778     return (uint32_t)((system_sw_read_32(base + 0x1abccL) & 0xfffff) >> 0);
8779 }
8780 // ------------------------------------------------------------------------------ //
8781 // Register: offset 10
8782 // ------------------------------------------------------------------------------ //
8783 
8784 // ------------------------------------------------------------------------------ //
8785 // offset offset for color channel 10 (Gb)
8786 // ------------------------------------------------------------------------------ //
8787 
8788 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_10_DEFAULT (0x00)
8789 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_10_DATASIZE (20)
8790 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_10_OFFSET (0x1d48)
8791 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_10_MASK (0xfffff)
8792 
8793 // args: data (20-bit)
acamera_isp_sensor_offset_pre_shading_offset_10_write(uintptr_t base,uint32_t data)8794 static __inline void acamera_isp_sensor_offset_pre_shading_offset_10_write(uintptr_t base, uint32_t data) {
8795     uint32_t curr = system_sw_read_32(base + 0x1abd0L);
8796     system_sw_write_32(base + 0x1abd0L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
8797 }
acamera_isp_sensor_offset_pre_shading_offset_10_read(uintptr_t base)8798 static __inline uint32_t acamera_isp_sensor_offset_pre_shading_offset_10_read(uintptr_t base) {
8799     return (uint32_t)((system_sw_read_32(base + 0x1abd0L) & 0xfffff) >> 0);
8800 }
8801 // ------------------------------------------------------------------------------ //
8802 // Register: offset 11
8803 // ------------------------------------------------------------------------------ //
8804 
8805 // ------------------------------------------------------------------------------ //
8806 // offset offset for color channel 11 (B)
8807 // ------------------------------------------------------------------------------ //
8808 
8809 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_11_DEFAULT (0x00)
8810 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_11_DATASIZE (20)
8811 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_11_OFFSET (0x1d4c)
8812 #define ACAMERA_ISP_SENSOR_OFFSET_PRE_SHADING_OFFSET_11_MASK (0xfffff)
8813 
8814 // args: data (20-bit)
acamera_isp_sensor_offset_pre_shading_offset_11_write(uintptr_t base,uint32_t data)8815 static __inline void acamera_isp_sensor_offset_pre_shading_offset_11_write(uintptr_t base, uint32_t data) {
8816     uint32_t curr = system_sw_read_32(base + 0x1abd4L);
8817     system_sw_write_32(base + 0x1abd4L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
8818 }
acamera_isp_sensor_offset_pre_shading_offset_11_read(uintptr_t base)8819 static __inline uint32_t acamera_isp_sensor_offset_pre_shading_offset_11_read(uintptr_t base) {
8820     return (uint32_t)((system_sw_read_32(base + 0x1abd4L) & 0xfffff) >> 0);
8821 }
8822 // ------------------------------------------------------------------------------ //
8823 // Group: radial shading
8824 // ------------------------------------------------------------------------------ //
8825 
8826 // ------------------------------------------------------------------------------ //
8827 // Radial Lens shading correction
8828 // ------------------------------------------------------------------------------ //
8829 
8830 // ------------------------------------------------------------------------------ //
8831 // Register: Enable
8832 // ------------------------------------------------------------------------------ //
8833 
8834 // ------------------------------------------------------------------------------ //
8835 // Lens shading correction enable: 0=off, 1=on
8836 // ------------------------------------------------------------------------------ //
8837 
8838 #define ACAMERA_ISP_RADIAL_SHADING_ENABLE_DEFAULT (0)
8839 #define ACAMERA_ISP_RADIAL_SHADING_ENABLE_DATASIZE (1)
8840 #define ACAMERA_ISP_RADIAL_SHADING_ENABLE_OFFSET (0x1d50)
8841 #define ACAMERA_ISP_RADIAL_SHADING_ENABLE_MASK (0x1)
8842 
8843 // args: data (1-bit)
acamera_isp_radial_shading_enable_write(uintptr_t base,uint8_t data)8844 static __inline void acamera_isp_radial_shading_enable_write(uintptr_t base, uint8_t data) {
8845     uint32_t curr = system_sw_read_32(base + 0x1abd8L);
8846     system_sw_write_32(base + 0x1abd8L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
8847 }
acamera_isp_radial_shading_enable_read(uintptr_t base)8848 static __inline uint8_t acamera_isp_radial_shading_enable_read(uintptr_t base) {
8849     return (uint8_t)((system_sw_read_32(base + 0x1abd8L) & 0x1) >> 0);
8850 }
8851 // ------------------------------------------------------------------------------ //
8852 // Register: centerR x
8853 // ------------------------------------------------------------------------------ //
8854 
8855 // ------------------------------------------------------------------------------ //
8856 // Center x coordinate of the red shading map
8857 // ------------------------------------------------------------------------------ //
8858 
8859 #define ACAMERA_ISP_RADIAL_SHADING_CENTERR_X_DEFAULT (0x3C0)
8860 #define ACAMERA_ISP_RADIAL_SHADING_CENTERR_X_DATASIZE (16)
8861 #define ACAMERA_ISP_RADIAL_SHADING_CENTERR_X_OFFSET (0x1d54)
8862 #define ACAMERA_ISP_RADIAL_SHADING_CENTERR_X_MASK (0xffff)
8863 
8864 // args: data (16-bit)
acamera_isp_radial_shading_centerr_x_write(uintptr_t base,uint16_t data)8865 static __inline void acamera_isp_radial_shading_centerr_x_write(uintptr_t base, uint16_t data) {
8866     uint32_t curr = system_sw_read_32(base + 0x1abdcL);
8867     system_sw_write_32(base + 0x1abdcL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
8868 }
acamera_isp_radial_shading_centerr_x_read(uintptr_t base)8869 static __inline uint16_t acamera_isp_radial_shading_centerr_x_read(uintptr_t base) {
8870     return (uint16_t)((system_sw_read_32(base + 0x1abdcL) & 0xffff) >> 0);
8871 }
8872 // ------------------------------------------------------------------------------ //
8873 // Register: centerR y
8874 // ------------------------------------------------------------------------------ //
8875 
8876 // ------------------------------------------------------------------------------ //
8877 // Center y coordinate of the red shading map
8878 // ------------------------------------------------------------------------------ //
8879 
8880 #define ACAMERA_ISP_RADIAL_SHADING_CENTERR_Y_DEFAULT (0x21C)
8881 #define ACAMERA_ISP_RADIAL_SHADING_CENTERR_Y_DATASIZE (16)
8882 #define ACAMERA_ISP_RADIAL_SHADING_CENTERR_Y_OFFSET (0x1d54)
8883 #define ACAMERA_ISP_RADIAL_SHADING_CENTERR_Y_MASK (0xffff0000)
8884 
8885 // args: data (16-bit)
acamera_isp_radial_shading_centerr_y_write(uintptr_t base,uint16_t data)8886 static __inline void acamera_isp_radial_shading_centerr_y_write(uintptr_t base, uint16_t data) {
8887     uint32_t curr = system_sw_read_32(base + 0x1abdcL);
8888     system_sw_write_32(base + 0x1abdcL, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
8889 }
acamera_isp_radial_shading_centerr_y_read(uintptr_t base)8890 static __inline uint16_t acamera_isp_radial_shading_centerr_y_read(uintptr_t base) {
8891     return (uint16_t)((system_sw_read_32(base + 0x1abdcL) & 0xffff0000) >> 16);
8892 }
8893 // ------------------------------------------------------------------------------ //
8894 // Register: centerG x
8895 // ------------------------------------------------------------------------------ //
8896 
8897 // ------------------------------------------------------------------------------ //
8898 // Center x coordinate of the green shading map
8899 // ------------------------------------------------------------------------------ //
8900 
8901 #define ACAMERA_ISP_RADIAL_SHADING_CENTERG_X_DEFAULT (0x3C0)
8902 #define ACAMERA_ISP_RADIAL_SHADING_CENTERG_X_DATASIZE (16)
8903 #define ACAMERA_ISP_RADIAL_SHADING_CENTERG_X_OFFSET (0x1d58)
8904 #define ACAMERA_ISP_RADIAL_SHADING_CENTERG_X_MASK (0xffff)
8905 
8906 // args: data (16-bit)
acamera_isp_radial_shading_centerg_x_write(uintptr_t base,uint16_t data)8907 static __inline void acamera_isp_radial_shading_centerg_x_write(uintptr_t base, uint16_t data) {
8908     uint32_t curr = system_sw_read_32(base + 0x1abe0L);
8909     system_sw_write_32(base + 0x1abe0L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
8910 }
acamera_isp_radial_shading_centerg_x_read(uintptr_t base)8911 static __inline uint16_t acamera_isp_radial_shading_centerg_x_read(uintptr_t base) {
8912     return (uint16_t)((system_sw_read_32(base + 0x1abe0L) & 0xffff) >> 0);
8913 }
8914 // ------------------------------------------------------------------------------ //
8915 // Register: centerG y
8916 // ------------------------------------------------------------------------------ //
8917 
8918 // ------------------------------------------------------------------------------ //
8919 // Center y coordinate of the green shading map
8920 // ------------------------------------------------------------------------------ //
8921 
8922 #define ACAMERA_ISP_RADIAL_SHADING_CENTERG_Y_DEFAULT (0x21C)
8923 #define ACAMERA_ISP_RADIAL_SHADING_CENTERG_Y_DATASIZE (16)
8924 #define ACAMERA_ISP_RADIAL_SHADING_CENTERG_Y_OFFSET (0x1d58)
8925 #define ACAMERA_ISP_RADIAL_SHADING_CENTERG_Y_MASK (0xffff0000)
8926 
8927 // args: data (16-bit)
acamera_isp_radial_shading_centerg_y_write(uintptr_t base,uint16_t data)8928 static __inline void acamera_isp_radial_shading_centerg_y_write(uintptr_t base, uint16_t data) {
8929     uint32_t curr = system_sw_read_32(base + 0x1abe0L);
8930     system_sw_write_32(base + 0x1abe0L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
8931 }
acamera_isp_radial_shading_centerg_y_read(uintptr_t base)8932 static __inline uint16_t acamera_isp_radial_shading_centerg_y_read(uintptr_t base) {
8933     return (uint16_t)((system_sw_read_32(base + 0x1abe0L) & 0xffff0000) >> 16);
8934 }
8935 // ------------------------------------------------------------------------------ //
8936 // Register: centerB x
8937 // ------------------------------------------------------------------------------ //
8938 
8939 // ------------------------------------------------------------------------------ //
8940 // Center x coordinate of the blue shading map
8941 // ------------------------------------------------------------------------------ //
8942 
8943 #define ACAMERA_ISP_RADIAL_SHADING_CENTERB_X_DEFAULT (0x3C0)
8944 #define ACAMERA_ISP_RADIAL_SHADING_CENTERB_X_DATASIZE (16)
8945 #define ACAMERA_ISP_RADIAL_SHADING_CENTERB_X_OFFSET (0x1d5c)
8946 #define ACAMERA_ISP_RADIAL_SHADING_CENTERB_X_MASK (0xffff)
8947 
8948 // args: data (16-bit)
acamera_isp_radial_shading_centerb_x_write(uintptr_t base,uint16_t data)8949 static __inline void acamera_isp_radial_shading_centerb_x_write(uintptr_t base, uint16_t data) {
8950     uint32_t curr = system_sw_read_32(base + 0x1abe4L);
8951     system_sw_write_32(base + 0x1abe4L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
8952 }
acamera_isp_radial_shading_centerb_x_read(uintptr_t base)8953 static __inline uint16_t acamera_isp_radial_shading_centerb_x_read(uintptr_t base) {
8954     return (uint16_t)((system_sw_read_32(base + 0x1abe4L) & 0xffff) >> 0);
8955 }
8956 // ------------------------------------------------------------------------------ //
8957 // Register: centerB y
8958 // ------------------------------------------------------------------------------ //
8959 
8960 // ------------------------------------------------------------------------------ //
8961 // Center y coordinate of the blue shading map
8962 // ------------------------------------------------------------------------------ //
8963 
8964 #define ACAMERA_ISP_RADIAL_SHADING_CENTERB_Y_DEFAULT (0x21C)
8965 #define ACAMERA_ISP_RADIAL_SHADING_CENTERB_Y_DATASIZE (16)
8966 #define ACAMERA_ISP_RADIAL_SHADING_CENTERB_Y_OFFSET (0x1d5c)
8967 #define ACAMERA_ISP_RADIAL_SHADING_CENTERB_Y_MASK (0xffff0000)
8968 
8969 // args: data (16-bit)
acamera_isp_radial_shading_centerb_y_write(uintptr_t base,uint16_t data)8970 static __inline void acamera_isp_radial_shading_centerb_y_write(uintptr_t base, uint16_t data) {
8971     uint32_t curr = system_sw_read_32(base + 0x1abe4L);
8972     system_sw_write_32(base + 0x1abe4L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
8973 }
acamera_isp_radial_shading_centerb_y_read(uintptr_t base)8974 static __inline uint16_t acamera_isp_radial_shading_centerb_y_read(uintptr_t base) {
8975     return (uint16_t)((system_sw_read_32(base + 0x1abe4L) & 0xffff0000) >> 16);
8976 }
8977 // ------------------------------------------------------------------------------ //
8978 // Register: centerIr x
8979 // ------------------------------------------------------------------------------ //
8980 
8981 // ------------------------------------------------------------------------------ //
8982 // Center x coordinate of the IR shading map
8983 // ------------------------------------------------------------------------------ //
8984 
8985 #define ACAMERA_ISP_RADIAL_SHADING_CENTERIR_X_DEFAULT (0x3C0)
8986 #define ACAMERA_ISP_RADIAL_SHADING_CENTERIR_X_DATASIZE (16)
8987 #define ACAMERA_ISP_RADIAL_SHADING_CENTERIR_X_OFFSET (0x1d60)
8988 #define ACAMERA_ISP_RADIAL_SHADING_CENTERIR_X_MASK (0xffff)
8989 
8990 // args: data (16-bit)
acamera_isp_radial_shading_centerir_x_write(uintptr_t base,uint16_t data)8991 static __inline void acamera_isp_radial_shading_centerir_x_write(uintptr_t base, uint16_t data) {
8992     uint32_t curr = system_sw_read_32(base + 0x1abe8L);
8993     system_sw_write_32(base + 0x1abe8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
8994 }
acamera_isp_radial_shading_centerir_x_read(uintptr_t base)8995 static __inline uint16_t acamera_isp_radial_shading_centerir_x_read(uintptr_t base) {
8996     return (uint16_t)((system_sw_read_32(base + 0x1abe8L) & 0xffff) >> 0);
8997 }
8998 // ------------------------------------------------------------------------------ //
8999 // Register: centerIr y
9000 // ------------------------------------------------------------------------------ //
9001 
9002 // ------------------------------------------------------------------------------ //
9003 // Center y coordinate of the IR shading map
9004 // ------------------------------------------------------------------------------ //
9005 
9006 #define ACAMERA_ISP_RADIAL_SHADING_CENTERIR_Y_DEFAULT (0x21C)
9007 #define ACAMERA_ISP_RADIAL_SHADING_CENTERIR_Y_DATASIZE (16)
9008 #define ACAMERA_ISP_RADIAL_SHADING_CENTERIR_Y_OFFSET (0x1d60)
9009 #define ACAMERA_ISP_RADIAL_SHADING_CENTERIR_Y_MASK (0xffff0000)
9010 
9011 // args: data (16-bit)
acamera_isp_radial_shading_centerir_y_write(uintptr_t base,uint16_t data)9012 static __inline void acamera_isp_radial_shading_centerir_y_write(uintptr_t base, uint16_t data) {
9013     uint32_t curr = system_sw_read_32(base + 0x1abe8L);
9014     system_sw_write_32(base + 0x1abe8L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
9015 }
acamera_isp_radial_shading_centerir_y_read(uintptr_t base)9016 static __inline uint16_t acamera_isp_radial_shading_centerir_y_read(uintptr_t base) {
9017     return (uint16_t)((system_sw_read_32(base + 0x1abe8L) & 0xffff0000) >> 16);
9018 }
9019 // ------------------------------------------------------------------------------ //
9020 // Register: off center multRx
9021 // ------------------------------------------------------------------------------ //
9022 
9023 // ------------------------------------------------------------------------------ //
9024 //
9025 //        Normalizing X factor which scales the Red radial table to the edge of the image.
9026 //        Calculated as 2^31/R^2 where R is the furthest distance from the center coordinate to the edge of the image in pixels.
9027 //
9028 // ------------------------------------------------------------------------------ //
9029 
9030 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTRX_DEFAULT (0x06EA)
9031 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTRX_DATASIZE (16)
9032 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTRX_OFFSET (0x1d64)
9033 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTRX_MASK (0xffff)
9034 
9035 // args: data (16-bit)
acamera_isp_radial_shading_off_center_multrx_write(uintptr_t base,uint16_t data)9036 static __inline void acamera_isp_radial_shading_off_center_multrx_write(uintptr_t base, uint16_t data) {
9037     uint32_t curr = system_sw_read_32(base + 0x1abecL);
9038     system_sw_write_32(base + 0x1abecL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
9039 }
acamera_isp_radial_shading_off_center_multrx_read(uintptr_t base)9040 static __inline uint16_t acamera_isp_radial_shading_off_center_multrx_read(uintptr_t base) {
9041     return (uint16_t)((system_sw_read_32(base + 0x1abecL) & 0xffff) >> 0);
9042 }
9043 // ------------------------------------------------------------------------------ //
9044 // Register: off center multRy
9045 // ------------------------------------------------------------------------------ //
9046 
9047 // ------------------------------------------------------------------------------ //
9048 //
9049 //        Normalizing Y factor which scales the Red radial table to the edge of the image.
9050 //        Calculated as 2^31/R^2 where R is the furthest distance from the center coordinate to the edge of the image in pixels.
9051 //
9052 // ------------------------------------------------------------------------------ //
9053 
9054 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTRY_DEFAULT (0x06EA)
9055 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTRY_DATASIZE (16)
9056 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTRY_OFFSET (0x1d64)
9057 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTRY_MASK (0xffff0000)
9058 
9059 // args: data (16-bit)
acamera_isp_radial_shading_off_center_multry_write(uintptr_t base,uint16_t data)9060 static __inline void acamera_isp_radial_shading_off_center_multry_write(uintptr_t base, uint16_t data) {
9061     uint32_t curr = system_sw_read_32(base + 0x1abecL);
9062     system_sw_write_32(base + 0x1abecL, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
9063 }
acamera_isp_radial_shading_off_center_multry_read(uintptr_t base)9064 static __inline uint16_t acamera_isp_radial_shading_off_center_multry_read(uintptr_t base) {
9065     return (uint16_t)((system_sw_read_32(base + 0x1abecL) & 0xffff0000) >> 16);
9066 }
9067 // ------------------------------------------------------------------------------ //
9068 // Register: off center multGx
9069 // ------------------------------------------------------------------------------ //
9070 
9071 // ------------------------------------------------------------------------------ //
9072 //
9073 //        Normalizing X factor which scales the green radial table to the edge of the image.
9074 //        Calculated as 2^31/R^2 where R is the furthest distance from the center coordinate to the edge of the image in pixels.
9075 //
9076 // ------------------------------------------------------------------------------ //
9077 
9078 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTGX_DEFAULT (0x06EA)
9079 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTGX_DATASIZE (16)
9080 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTGX_OFFSET (0x1d68)
9081 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTGX_MASK (0xffff)
9082 
9083 // args: data (16-bit)
acamera_isp_radial_shading_off_center_multgx_write(uintptr_t base,uint16_t data)9084 static __inline void acamera_isp_radial_shading_off_center_multgx_write(uintptr_t base, uint16_t data) {
9085     uint32_t curr = system_sw_read_32(base + 0x1abf0L);
9086     system_sw_write_32(base + 0x1abf0L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
9087 }
acamera_isp_radial_shading_off_center_multgx_read(uintptr_t base)9088 static __inline uint16_t acamera_isp_radial_shading_off_center_multgx_read(uintptr_t base) {
9089     return (uint16_t)((system_sw_read_32(base + 0x1abf0L) & 0xffff) >> 0);
9090 }
9091 // ------------------------------------------------------------------------------ //
9092 // Register: off center multGy
9093 // ------------------------------------------------------------------------------ //
9094 
9095 // ------------------------------------------------------------------------------ //
9096 //
9097 //        Normalizing Y factor which scales the green radial table to the edge of the image.
9098 //        Calculated as 2^31/R^2 where R is the furthest distance from the center coordinate to the edge of the image in pixels.
9099 //
9100 // ------------------------------------------------------------------------------ //
9101 
9102 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTGY_DEFAULT (0x06EA)
9103 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTGY_DATASIZE (16)
9104 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTGY_OFFSET (0x1d68)
9105 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTGY_MASK (0xffff0000)
9106 
9107 // args: data (16-bit)
acamera_isp_radial_shading_off_center_multgy_write(uintptr_t base,uint16_t data)9108 static __inline void acamera_isp_radial_shading_off_center_multgy_write(uintptr_t base, uint16_t data) {
9109     uint32_t curr = system_sw_read_32(base + 0x1abf0L);
9110     system_sw_write_32(base + 0x1abf0L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
9111 }
acamera_isp_radial_shading_off_center_multgy_read(uintptr_t base)9112 static __inline uint16_t acamera_isp_radial_shading_off_center_multgy_read(uintptr_t base) {
9113     return (uint16_t)((system_sw_read_32(base + 0x1abf0L) & 0xffff0000) >> 16);
9114 }
9115 // ------------------------------------------------------------------------------ //
9116 // Register: off center multBx
9117 // ------------------------------------------------------------------------------ //
9118 
9119 // ------------------------------------------------------------------------------ //
9120 //
9121 //        Normalizing X factor which scales the blue radial table to the edge of the image.
9122 //        Calculated as 2^31/R^2 where R is the furthest distance from the center coordinate to the edge of the image in pixels.
9123 //
9124 // ------------------------------------------------------------------------------ //
9125 
9126 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTBX_DEFAULT (0x06EA)
9127 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTBX_DATASIZE (16)
9128 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTBX_OFFSET (0x1d6c)
9129 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTBX_MASK (0xffff)
9130 
9131 // args: data (16-bit)
acamera_isp_radial_shading_off_center_multbx_write(uintptr_t base,uint16_t data)9132 static __inline void acamera_isp_radial_shading_off_center_multbx_write(uintptr_t base, uint16_t data) {
9133     uint32_t curr = system_sw_read_32(base + 0x1abf4L);
9134     system_sw_write_32(base + 0x1abf4L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
9135 }
acamera_isp_radial_shading_off_center_multbx_read(uintptr_t base)9136 static __inline uint16_t acamera_isp_radial_shading_off_center_multbx_read(uintptr_t base) {
9137     return (uint16_t)((system_sw_read_32(base + 0x1abf4L) & 0xffff) >> 0);
9138 }
9139 // ------------------------------------------------------------------------------ //
9140 // Register: off center multBy
9141 // ------------------------------------------------------------------------------ //
9142 
9143 // ------------------------------------------------------------------------------ //
9144 //
9145 //        Normalizing Y factor which scales the blue radial table to the edge of the image.
9146 //        Calculated as 2^31/R^2 where R is the furthest distance from the center coordinate to the edge of the image in pixels.
9147 //
9148 // ------------------------------------------------------------------------------ //
9149 
9150 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTBY_DEFAULT (0x06EA)
9151 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTBY_DATASIZE (16)
9152 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTBY_OFFSET (0x1d6c)
9153 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTBY_MASK (0xffff0000)
9154 
9155 // args: data (16-bit)
acamera_isp_radial_shading_off_center_multby_write(uintptr_t base,uint16_t data)9156 static __inline void acamera_isp_radial_shading_off_center_multby_write(uintptr_t base, uint16_t data) {
9157     uint32_t curr = system_sw_read_32(base + 0x1abf4L);
9158     system_sw_write_32(base + 0x1abf4L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
9159 }
acamera_isp_radial_shading_off_center_multby_read(uintptr_t base)9160 static __inline uint16_t acamera_isp_radial_shading_off_center_multby_read(uintptr_t base) {
9161     return (uint16_t)((system_sw_read_32(base + 0x1abf4L) & 0xffff0000) >> 16);
9162 }
9163 // ------------------------------------------------------------------------------ //
9164 // Register: off center multIRx
9165 // ------------------------------------------------------------------------------ //
9166 
9167 // ------------------------------------------------------------------------------ //
9168 //
9169 //        Normalizing X factor which scales the Ir radial table to the edge of the image.
9170 //        Calculated as 2^31/R^2 where R is the furthest distance from the center coordinate to the edge of the image in pixels.
9171 //
9172 // ------------------------------------------------------------------------------ //
9173 
9174 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTIRX_DEFAULT (0x06EA)
9175 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTIRX_DATASIZE (16)
9176 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTIRX_OFFSET (0x1d70)
9177 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTIRX_MASK (0xffff)
9178 
9179 // args: data (16-bit)
acamera_isp_radial_shading_off_center_multirx_write(uintptr_t base,uint16_t data)9180 static __inline void acamera_isp_radial_shading_off_center_multirx_write(uintptr_t base, uint16_t data) {
9181     uint32_t curr = system_sw_read_32(base + 0x1abf8L);
9182     system_sw_write_32(base + 0x1abf8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
9183 }
acamera_isp_radial_shading_off_center_multirx_read(uintptr_t base)9184 static __inline uint16_t acamera_isp_radial_shading_off_center_multirx_read(uintptr_t base) {
9185     return (uint16_t)((system_sw_read_32(base + 0x1abf8L) & 0xffff) >> 0);
9186 }
9187 // ------------------------------------------------------------------------------ //
9188 // Register: off center multIRy
9189 // ------------------------------------------------------------------------------ //
9190 
9191 // ------------------------------------------------------------------------------ //
9192 //
9193 //        Normalizing Y factor which scales the Ir radial table to the edge of the image.
9194 //        Calculated as 2^31/R^2 where R is the furthest distance from the center coordinate to the edge of the image in pixels.
9195 //
9196 // ------------------------------------------------------------------------------ //
9197 
9198 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTIRY_DEFAULT (0x06EA)
9199 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTIRY_DATASIZE (16)
9200 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTIRY_OFFSET (0x1d70)
9201 #define ACAMERA_ISP_RADIAL_SHADING_OFF_CENTER_MULTIRY_MASK (0xffff0000)
9202 
9203 // args: data (16-bit)
acamera_isp_radial_shading_off_center_multiry_write(uintptr_t base,uint16_t data)9204 static __inline void acamera_isp_radial_shading_off_center_multiry_write(uintptr_t base, uint16_t data) {
9205     uint32_t curr = system_sw_read_32(base + 0x1abf8L);
9206     system_sw_write_32(base + 0x1abf8L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
9207 }
acamera_isp_radial_shading_off_center_multiry_read(uintptr_t base)9208 static __inline uint16_t acamera_isp_radial_shading_off_center_multiry_read(uintptr_t base) {
9209     return (uint16_t)((system_sw_read_32(base + 0x1abf8L) & 0xffff0000) >> 16);
9210 }
9211 // ------------------------------------------------------------------------------ //
9212 // Group: mesh shading
9213 // ------------------------------------------------------------------------------ //
9214 
9215 // ------------------------------------------------------------------------------ //
9216 // Mesh Lens shading correction
9217 // ------------------------------------------------------------------------------ //
9218 
9219 // ------------------------------------------------------------------------------ //
9220 // Register: Enable
9221 // ------------------------------------------------------------------------------ //
9222 
9223 // ------------------------------------------------------------------------------ //
9224 // Lens shading correction enable: 0=off, 1=on
9225 // ------------------------------------------------------------------------------ //
9226 
9227 #define ACAMERA_ISP_MESH_SHADING_ENABLE_DEFAULT (0)
9228 #define ACAMERA_ISP_MESH_SHADING_ENABLE_DATASIZE (1)
9229 #define ACAMERA_ISP_MESH_SHADING_ENABLE_OFFSET (0x1d74)
9230 #define ACAMERA_ISP_MESH_SHADING_ENABLE_MASK (0x1)
9231 
9232 // args: data (1-bit)
acamera_isp_mesh_shading_enable_write(uintptr_t base,uint8_t data)9233 static __inline void acamera_isp_mesh_shading_enable_write(uintptr_t base, uint8_t data) {
9234     uint32_t curr = system_sw_read_32(base + 0x1abfcL);
9235     system_sw_write_32(base + 0x1abfcL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
9236 }
acamera_isp_mesh_shading_enable_read(uintptr_t base)9237 static __inline uint8_t acamera_isp_mesh_shading_enable_read(uintptr_t base) {
9238     return (uint8_t)((system_sw_read_32(base + 0x1abfcL) & 0x1) >> 0);
9239 }
9240 // ------------------------------------------------------------------------------ //
9241 // Register: Mesh show
9242 // ------------------------------------------------------------------------------ //
9243 
9244 // ------------------------------------------------------------------------------ //
9245 // Lens shading correction debug: 0=off, 1=on (show mesh data)
9246 // ------------------------------------------------------------------------------ //
9247 
9248 #define ACAMERA_ISP_MESH_SHADING_MESH_SHOW_DEFAULT (1)
9249 #define ACAMERA_ISP_MESH_SHADING_MESH_SHOW_DATASIZE (1)
9250 #define ACAMERA_ISP_MESH_SHADING_MESH_SHOW_OFFSET (0x1d74)
9251 #define ACAMERA_ISP_MESH_SHADING_MESH_SHOW_MASK (0x2)
9252 
9253 // args: data (1-bit)
acamera_isp_mesh_shading_mesh_show_write(uintptr_t base,uint8_t data)9254 static __inline void acamera_isp_mesh_shading_mesh_show_write(uintptr_t base, uint8_t data) {
9255     uint32_t curr = system_sw_read_32(base + 0x1abfcL);
9256     system_sw_write_32(base + 0x1abfcL, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
9257 }
acamera_isp_mesh_shading_mesh_show_read(uintptr_t base)9258 static __inline uint8_t acamera_isp_mesh_shading_mesh_show_read(uintptr_t base) {
9259     return (uint8_t)((system_sw_read_32(base + 0x1abfcL) & 0x2) >> 1);
9260 }
9261 // ------------------------------------------------------------------------------ //
9262 // Register: Mesh scale
9263 // ------------------------------------------------------------------------------ //
9264 
9265 // ------------------------------------------------------------------------------ //
9266 //
9267 //        Selects the precision and maximal gain range of mesh shading correction
9268 //        Gain range:    00- 0..2; 01- 0..4; 02- 0..8; 03- 0..16; 04- 1..2; 05- 1..3; 06- 1..5; 07- 1..9(float)
9269 //
9270 // ------------------------------------------------------------------------------ //
9271 
9272 #define ACAMERA_ISP_MESH_SHADING_MESH_SCALE_DEFAULT (1)
9273 #define ACAMERA_ISP_MESH_SHADING_MESH_SCALE_DATASIZE (3)
9274 #define ACAMERA_ISP_MESH_SHADING_MESH_SCALE_OFFSET (0x1d74)
9275 #define ACAMERA_ISP_MESH_SHADING_MESH_SCALE_MASK (0x1c)
9276 
9277 // args: data (3-bit)
acamera_isp_mesh_shading_mesh_scale_write(uintptr_t base,uint8_t data)9278 static __inline void acamera_isp_mesh_shading_mesh_scale_write(uintptr_t base, uint8_t data) {
9279     uint32_t curr = system_sw_read_32(base + 0x1abfcL);
9280     system_sw_write_32(base + 0x1abfcL, (((uint32_t) (data & 0x7)) << 2) | (curr & 0xffffffe3));
9281 }
acamera_isp_mesh_shading_mesh_scale_read(uintptr_t base)9282 static __inline uint8_t acamera_isp_mesh_shading_mesh_scale_read(uintptr_t base) {
9283     return (uint8_t)((system_sw_read_32(base + 0x1abfcL) & 0x1c) >> 2);
9284 }
9285 // ------------------------------------------------------------------------------ //
9286 // Register: Mesh alpha mode
9287 // ------------------------------------------------------------------------------ //
9288 
9289 // ------------------------------------------------------------------------------ //
9290 //
9291 //        Sets alpha blending between mesh shading tables.
9292 //        0 = no alpha blending;
9293 //        1=2 banks (odd/even bytes)
9294 //        2=4 banks (one per 8 bit lane in each dword)
9295 // ------------------------------------------------------------------------------ //
9296 
9297 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_MODE_DEFAULT (0)
9298 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_MODE_DATASIZE (2)
9299 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_MODE_OFFSET (0x1d74)
9300 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_MODE_MASK (0x60)
9301 
9302 // args: data (2-bit)
acamera_isp_mesh_shading_mesh_alpha_mode_write(uintptr_t base,uint8_t data)9303 static __inline void acamera_isp_mesh_shading_mesh_alpha_mode_write(uintptr_t base, uint8_t data) {
9304     uint32_t curr = system_sw_read_32(base + 0x1abfcL);
9305     system_sw_write_32(base + 0x1abfcL, (((uint32_t) (data & 0x3)) << 5) | (curr & 0xffffff9f));
9306 }
acamera_isp_mesh_shading_mesh_alpha_mode_read(uintptr_t base)9307 static __inline uint8_t acamera_isp_mesh_shading_mesh_alpha_mode_read(uintptr_t base) {
9308     return (uint8_t)((system_sw_read_32(base + 0x1abfcL) & 0x60) >> 5);
9309 }
9310 // ------------------------------------------------------------------------------ //
9311 // Register: Mesh page R
9312 // ------------------------------------------------------------------------------ //
9313 
9314 // ------------------------------------------------------------------------------ //
9315 // Selects memory page for red pixels correction.  See ISP guide for further details
9316 // ------------------------------------------------------------------------------ //
9317 
9318 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_R_DEFAULT (0)
9319 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_R_DATASIZE (2)
9320 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_R_OFFSET (0x1d74)
9321 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_R_MASK (0x300)
9322 
9323 // args: data (2-bit)
acamera_isp_mesh_shading_mesh_page_r_write(uintptr_t base,uint8_t data)9324 static __inline void acamera_isp_mesh_shading_mesh_page_r_write(uintptr_t base, uint8_t data) {
9325     uint32_t curr = system_sw_read_32(base + 0x1abfcL);
9326     system_sw_write_32(base + 0x1abfcL, (((uint32_t) (data & 0x3)) << 8) | (curr & 0xfffffcff));
9327 }
acamera_isp_mesh_shading_mesh_page_r_read(uintptr_t base)9328 static __inline uint8_t acamera_isp_mesh_shading_mesh_page_r_read(uintptr_t base) {
9329     return (uint8_t)((system_sw_read_32(base + 0x1abfcL) & 0x300) >> 8);
9330 }
9331 // ------------------------------------------------------------------------------ //
9332 // Register: Mesh page G
9333 // ------------------------------------------------------------------------------ //
9334 
9335 // ------------------------------------------------------------------------------ //
9336 // Selects memory page for green pixels correction.  See ISP guide for further details
9337 // ------------------------------------------------------------------------------ //
9338 
9339 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_G_DEFAULT (1)
9340 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_G_DATASIZE (2)
9341 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_G_OFFSET (0x1d74)
9342 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_G_MASK (0xc00)
9343 
9344 // args: data (2-bit)
acamera_isp_mesh_shading_mesh_page_g_write(uintptr_t base,uint8_t data)9345 static __inline void acamera_isp_mesh_shading_mesh_page_g_write(uintptr_t base, uint8_t data) {
9346     uint32_t curr = system_sw_read_32(base + 0x1abfcL);
9347     system_sw_write_32(base + 0x1abfcL, (((uint32_t) (data & 0x3)) << 10) | (curr & 0xfffff3ff));
9348 }
acamera_isp_mesh_shading_mesh_page_g_read(uintptr_t base)9349 static __inline uint8_t acamera_isp_mesh_shading_mesh_page_g_read(uintptr_t base) {
9350     return (uint8_t)((system_sw_read_32(base + 0x1abfcL) & 0xc00) >> 10);
9351 }
9352 // ------------------------------------------------------------------------------ //
9353 // Register: Mesh page B
9354 // ------------------------------------------------------------------------------ //
9355 
9356 // ------------------------------------------------------------------------------ //
9357 // Selects memory page for blue pixels correction.  See ISP guide for further details
9358 // ------------------------------------------------------------------------------ //
9359 
9360 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_B_DEFAULT (2)
9361 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_B_DATASIZE (2)
9362 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_B_OFFSET (0x1d74)
9363 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_B_MASK (0x3000)
9364 
9365 // args: data (2-bit)
acamera_isp_mesh_shading_mesh_page_b_write(uintptr_t base,uint8_t data)9366 static __inline void acamera_isp_mesh_shading_mesh_page_b_write(uintptr_t base, uint8_t data) {
9367     uint32_t curr = system_sw_read_32(base + 0x1abfcL);
9368     system_sw_write_32(base + 0x1abfcL, (((uint32_t) (data & 0x3)) << 12) | (curr & 0xffffcfff));
9369 }
acamera_isp_mesh_shading_mesh_page_b_read(uintptr_t base)9370 static __inline uint8_t acamera_isp_mesh_shading_mesh_page_b_read(uintptr_t base) {
9371     return (uint8_t)((system_sw_read_32(base + 0x1abfcL) & 0x3000) >> 12);
9372 }
9373 // ------------------------------------------------------------------------------ //
9374 // Register: Mesh page Ir
9375 // ------------------------------------------------------------------------------ //
9376 
9377 // ------------------------------------------------------------------------------ //
9378 // Selects memory page for IR pixels correction.  See ISP guide for further details
9379 // ------------------------------------------------------------------------------ //
9380 
9381 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_IR_DEFAULT (3)
9382 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_IR_DATASIZE (2)
9383 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_IR_OFFSET (0x1d74)
9384 #define ACAMERA_ISP_MESH_SHADING_MESH_PAGE_IR_MASK (0xc000)
9385 
9386 // args: data (2-bit)
acamera_isp_mesh_shading_mesh_page_ir_write(uintptr_t base,uint8_t data)9387 static __inline void acamera_isp_mesh_shading_mesh_page_ir_write(uintptr_t base, uint8_t data) {
9388     uint32_t curr = system_sw_read_32(base + 0x1abfcL);
9389     system_sw_write_32(base + 0x1abfcL, (((uint32_t) (data & 0x3)) << 14) | (curr & 0xffff3fff));
9390 }
acamera_isp_mesh_shading_mesh_page_ir_read(uintptr_t base)9391 static __inline uint8_t acamera_isp_mesh_shading_mesh_page_ir_read(uintptr_t base) {
9392     return (uint8_t)((system_sw_read_32(base + 0x1abfcL) & 0xc000) >> 14);
9393 }
9394 // ------------------------------------------------------------------------------ //
9395 // Register: Mesh width
9396 // ------------------------------------------------------------------------------ //
9397 
9398 // ------------------------------------------------------------------------------ //
9399 // Number of horizontal nodes minus 1
9400 // ------------------------------------------------------------------------------ //
9401 
9402 #define ACAMERA_ISP_MESH_SHADING_MESH_WIDTH_DEFAULT (63)
9403 #define ACAMERA_ISP_MESH_SHADING_MESH_WIDTH_DATASIZE (6)
9404 #define ACAMERA_ISP_MESH_SHADING_MESH_WIDTH_OFFSET (0x1d74)
9405 #define ACAMERA_ISP_MESH_SHADING_MESH_WIDTH_MASK (0x3f0000)
9406 
9407 // args: data (6-bit)
acamera_isp_mesh_shading_mesh_width_write(uintptr_t base,uint8_t data)9408 static __inline void acamera_isp_mesh_shading_mesh_width_write(uintptr_t base, uint8_t data) {
9409     uint32_t curr = system_sw_read_32(base + 0x1abfcL);
9410     system_sw_write_32(base + 0x1abfcL, (((uint32_t) (data & 0x3f)) << 16) | (curr & 0xffc0ffff));
9411 }
acamera_isp_mesh_shading_mesh_width_read(uintptr_t base)9412 static __inline uint8_t acamera_isp_mesh_shading_mesh_width_read(uintptr_t base) {
9413     return (uint8_t)((system_sw_read_32(base + 0x1abfcL) & 0x3f0000) >> 16);
9414 }
9415 // ------------------------------------------------------------------------------ //
9416 // Register: Mesh height
9417 // ------------------------------------------------------------------------------ //
9418 
9419 // ------------------------------------------------------------------------------ //
9420 // Number of vertical nodes minus 1
9421 // ------------------------------------------------------------------------------ //
9422 
9423 #define ACAMERA_ISP_MESH_SHADING_MESH_HEIGHT_DEFAULT (63)
9424 #define ACAMERA_ISP_MESH_SHADING_MESH_HEIGHT_DATASIZE (6)
9425 #define ACAMERA_ISP_MESH_SHADING_MESH_HEIGHT_OFFSET (0x1d74)
9426 #define ACAMERA_ISP_MESH_SHADING_MESH_HEIGHT_MASK (0x3f000000)
9427 
9428 // args: data (6-bit)
acamera_isp_mesh_shading_mesh_height_write(uintptr_t base,uint8_t data)9429 static __inline void acamera_isp_mesh_shading_mesh_height_write(uintptr_t base, uint8_t data) {
9430     uint32_t curr = system_sw_read_32(base + 0x1abfcL);
9431     system_sw_write_32(base + 0x1abfcL, (((uint32_t) (data & 0x3f)) << 24) | (curr & 0xc0ffffff));
9432 }
acamera_isp_mesh_shading_mesh_height_read(uintptr_t base)9433 static __inline uint8_t acamera_isp_mesh_shading_mesh_height_read(uintptr_t base) {
9434     return (uint8_t)((system_sw_read_32(base + 0x1abfcL) & 0x3f000000) >> 24);
9435 }
9436 // ------------------------------------------------------------------------------ //
9437 // Register: Mesh reload
9438 // ------------------------------------------------------------------------------ //
9439 
9440 // ------------------------------------------------------------------------------ //
9441 // 0-1 triggers cache reload
9442 // ------------------------------------------------------------------------------ //
9443 
9444 #define ACAMERA_ISP_MESH_SHADING_MESH_RELOAD_DEFAULT (0)
9445 #define ACAMERA_ISP_MESH_SHADING_MESH_RELOAD_DATASIZE (1)
9446 #define ACAMERA_ISP_MESH_SHADING_MESH_RELOAD_OFFSET (0x1d78)
9447 #define ACAMERA_ISP_MESH_SHADING_MESH_RELOAD_MASK (0x1)
9448 
9449 // args: data (1-bit)
acamera_isp_mesh_shading_mesh_reload_write(uintptr_t base,uint8_t data)9450 static __inline void acamera_isp_mesh_shading_mesh_reload_write(uintptr_t base, uint8_t data) {
9451     uint32_t curr = system_sw_read_32(base + 0x1ac00L);
9452     system_sw_write_32(base + 0x1ac00L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
9453 }
acamera_isp_mesh_shading_mesh_reload_read(uintptr_t base)9454 static __inline uint8_t acamera_isp_mesh_shading_mesh_reload_read(uintptr_t base) {
9455     return (uint8_t)((system_sw_read_32(base + 0x1ac00L) & 0x1) >> 0);
9456 }
9457 // ------------------------------------------------------------------------------ //
9458 // Register: Mesh alpha bank R
9459 // ------------------------------------------------------------------------------ //
9460 
9461 // ------------------------------------------------------------------------------ //
9462 // Bank selection for R blend: 0: 0+1; 1: 1+2; 2: 2:3; 3: 3+0; 4:0+2; 5: 1+3; 6,7: reserved
9463 // ------------------------------------------------------------------------------ //
9464 
9465 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_R_DEFAULT (0)
9466 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_R_DATASIZE (3)
9467 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_R_OFFSET (0x1d7c)
9468 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_R_MASK (0x7)
9469 
9470 // args: data (3-bit)
acamera_isp_mesh_shading_mesh_alpha_bank_r_write(uintptr_t base,uint8_t data)9471 static __inline void acamera_isp_mesh_shading_mesh_alpha_bank_r_write(uintptr_t base, uint8_t data) {
9472     uint32_t curr = system_sw_read_32(base + 0x1ac04L);
9473     system_sw_write_32(base + 0x1ac04L, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
9474 }
acamera_isp_mesh_shading_mesh_alpha_bank_r_read(uintptr_t base)9475 static __inline uint8_t acamera_isp_mesh_shading_mesh_alpha_bank_r_read(uintptr_t base) {
9476     return (uint8_t)((system_sw_read_32(base + 0x1ac04L) & 0x7) >> 0);
9477 }
9478 // ------------------------------------------------------------------------------ //
9479 // Register: Mesh alpha bank G
9480 // ------------------------------------------------------------------------------ //
9481 
9482 // ------------------------------------------------------------------------------ //
9483 // Bank selection for G blend: 0: 0+1; 1: 1+2; 2: 2:3; 3: 3+0; 4:0+2; 5: 1+3; 6,7: reserved:
9484 // ------------------------------------------------------------------------------ //
9485 
9486 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_G_DEFAULT (0)
9487 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_G_DATASIZE (3)
9488 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_G_OFFSET (0x1d7c)
9489 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_G_MASK (0x38)
9490 
9491 // args: data (3-bit)
acamera_isp_mesh_shading_mesh_alpha_bank_g_write(uintptr_t base,uint8_t data)9492 static __inline void acamera_isp_mesh_shading_mesh_alpha_bank_g_write(uintptr_t base, uint8_t data) {
9493     uint32_t curr = system_sw_read_32(base + 0x1ac04L);
9494     system_sw_write_32(base + 0x1ac04L, (((uint32_t) (data & 0x7)) << 3) | (curr & 0xffffffc7));
9495 }
acamera_isp_mesh_shading_mesh_alpha_bank_g_read(uintptr_t base)9496 static __inline uint8_t acamera_isp_mesh_shading_mesh_alpha_bank_g_read(uintptr_t base) {
9497     return (uint8_t)((system_sw_read_32(base + 0x1ac04L) & 0x38) >> 3);
9498 }
9499 // ------------------------------------------------------------------------------ //
9500 // Register: Mesh alpha bank B
9501 // ------------------------------------------------------------------------------ //
9502 
9503 // ------------------------------------------------------------------------------ //
9504 // Bank selection for B blend: 0: 0+1; 1: 1+2; 2: 2:3; 3: 3+0; 4:0+2; 5: 1+3; 6,7: reserved
9505 // ------------------------------------------------------------------------------ //
9506 
9507 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_B_DEFAULT (0)
9508 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_B_DATASIZE (3)
9509 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_B_OFFSET (0x1d7c)
9510 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_B_MASK (0x1c0)
9511 
9512 // args: data (3-bit)
acamera_isp_mesh_shading_mesh_alpha_bank_b_write(uintptr_t base,uint8_t data)9513 static __inline void acamera_isp_mesh_shading_mesh_alpha_bank_b_write(uintptr_t base, uint8_t data) {
9514     uint32_t curr = system_sw_read_32(base + 0x1ac04L);
9515     system_sw_write_32(base + 0x1ac04L, (((uint32_t) (data & 0x7)) << 6) | (curr & 0xfffffe3f));
9516 }
acamera_isp_mesh_shading_mesh_alpha_bank_b_read(uintptr_t base)9517 static __inline uint8_t acamera_isp_mesh_shading_mesh_alpha_bank_b_read(uintptr_t base) {
9518     return (uint8_t)((system_sw_read_32(base + 0x1ac04L) & 0x1c0) >> 6);
9519 }
9520 // ------------------------------------------------------------------------------ //
9521 // Register: Mesh alpha bank Ir
9522 // ------------------------------------------------------------------------------ //
9523 
9524 // ------------------------------------------------------------------------------ //
9525 // Bank selection for Ir blend: 0: 0+1; 1: 1+2; 2: 2:3; 3: 3+0; 4:0+2; 5: 1+3; 6,7: reserved
9526 // ------------------------------------------------------------------------------ //
9527 
9528 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_IR_DEFAULT (0)
9529 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_IR_DATASIZE (3)
9530 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_IR_OFFSET (0x1d7c)
9531 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_BANK_IR_MASK (0xe00)
9532 
9533 // args: data (3-bit)
acamera_isp_mesh_shading_mesh_alpha_bank_ir_write(uintptr_t base,uint8_t data)9534 static __inline void acamera_isp_mesh_shading_mesh_alpha_bank_ir_write(uintptr_t base, uint8_t data) {
9535     uint32_t curr = system_sw_read_32(base + 0x1ac04L);
9536     system_sw_write_32(base + 0x1ac04L, (((uint32_t) (data & 0x7)) << 9) | (curr & 0xfffff1ff));
9537 }
acamera_isp_mesh_shading_mesh_alpha_bank_ir_read(uintptr_t base)9538 static __inline uint8_t acamera_isp_mesh_shading_mesh_alpha_bank_ir_read(uintptr_t base) {
9539     return (uint8_t)((system_sw_read_32(base + 0x1ac04L) & 0xe00) >> 9);
9540 }
9541 // ------------------------------------------------------------------------------ //
9542 // Register: Mesh alpha R
9543 // ------------------------------------------------------------------------------ //
9544 
9545 // ------------------------------------------------------------------------------ //
9546 // Alpha blend coeff for R
9547 // ------------------------------------------------------------------------------ //
9548 
9549 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_R_DEFAULT (0)
9550 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_R_DATASIZE (8)
9551 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_R_OFFSET (0x1d80)
9552 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_R_MASK (0xff)
9553 
9554 // args: data (8-bit)
acamera_isp_mesh_shading_mesh_alpha_r_write(uintptr_t base,uint8_t data)9555 static __inline void acamera_isp_mesh_shading_mesh_alpha_r_write(uintptr_t base, uint8_t data) {
9556     uint32_t curr = system_sw_read_32(base + 0x1ac08L);
9557     system_sw_write_32(base + 0x1ac08L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
9558 }
acamera_isp_mesh_shading_mesh_alpha_r_read(uintptr_t base)9559 static __inline uint8_t acamera_isp_mesh_shading_mesh_alpha_r_read(uintptr_t base) {
9560     return (uint8_t)((system_sw_read_32(base + 0x1ac08L) & 0xff) >> 0);
9561 }
9562 // ------------------------------------------------------------------------------ //
9563 // Register: Mesh alpha G
9564 // ------------------------------------------------------------------------------ //
9565 
9566 // ------------------------------------------------------------------------------ //
9567 // Alpha blend coeff for G
9568 // ------------------------------------------------------------------------------ //
9569 
9570 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_G_DEFAULT (0)
9571 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_G_DATASIZE (8)
9572 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_G_OFFSET (0x1d80)
9573 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_G_MASK (0xff00)
9574 
9575 // args: data (8-bit)
acamera_isp_mesh_shading_mesh_alpha_g_write(uintptr_t base,uint8_t data)9576 static __inline void acamera_isp_mesh_shading_mesh_alpha_g_write(uintptr_t base, uint8_t data) {
9577     uint32_t curr = system_sw_read_32(base + 0x1ac08L);
9578     system_sw_write_32(base + 0x1ac08L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
9579 }
acamera_isp_mesh_shading_mesh_alpha_g_read(uintptr_t base)9580 static __inline uint8_t acamera_isp_mesh_shading_mesh_alpha_g_read(uintptr_t base) {
9581     return (uint8_t)((system_sw_read_32(base + 0x1ac08L) & 0xff00) >> 8);
9582 }
9583 // ------------------------------------------------------------------------------ //
9584 // Register: Mesh alpha B
9585 // ------------------------------------------------------------------------------ //
9586 
9587 // ------------------------------------------------------------------------------ //
9588 // Alpha blend coeff for B
9589 // ------------------------------------------------------------------------------ //
9590 
9591 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_B_DEFAULT (0)
9592 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_B_DATASIZE (8)
9593 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_B_OFFSET (0x1d80)
9594 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_B_MASK (0xff0000)
9595 
9596 // args: data (8-bit)
acamera_isp_mesh_shading_mesh_alpha_b_write(uintptr_t base,uint8_t data)9597 static __inline void acamera_isp_mesh_shading_mesh_alpha_b_write(uintptr_t base, uint8_t data) {
9598     uint32_t curr = system_sw_read_32(base + 0x1ac08L);
9599     system_sw_write_32(base + 0x1ac08L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
9600 }
acamera_isp_mesh_shading_mesh_alpha_b_read(uintptr_t base)9601 static __inline uint8_t acamera_isp_mesh_shading_mesh_alpha_b_read(uintptr_t base) {
9602     return (uint8_t)((system_sw_read_32(base + 0x1ac08L) & 0xff0000) >> 16);
9603 }
9604 // ------------------------------------------------------------------------------ //
9605 // Register: Mesh alpha Ir
9606 // ------------------------------------------------------------------------------ //
9607 
9608 // ------------------------------------------------------------------------------ //
9609 // Alpha blend coeff for IR
9610 // ------------------------------------------------------------------------------ //
9611 
9612 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_IR_DEFAULT (0)
9613 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_IR_DATASIZE (8)
9614 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_IR_OFFSET (0x1d80)
9615 #define ACAMERA_ISP_MESH_SHADING_MESH_ALPHA_IR_MASK (0xff000000)
9616 
9617 // args: data (8-bit)
acamera_isp_mesh_shading_mesh_alpha_ir_write(uintptr_t base,uint8_t data)9618 static __inline void acamera_isp_mesh_shading_mesh_alpha_ir_write(uintptr_t base, uint8_t data) {
9619     uint32_t curr = system_sw_read_32(base + 0x1ac08L);
9620     system_sw_write_32(base + 0x1ac08L, (((uint32_t) (data & 0xff)) << 24) | (curr & 0xffffff));
9621 }
acamera_isp_mesh_shading_mesh_alpha_ir_read(uintptr_t base)9622 static __inline uint8_t acamera_isp_mesh_shading_mesh_alpha_ir_read(uintptr_t base) {
9623     return (uint8_t)((system_sw_read_32(base + 0x1ac08L) & 0xff000000) >> 24);
9624 }
9625 // ------------------------------------------------------------------------------ //
9626 // Register: Mesh strength
9627 // ------------------------------------------------------------------------------ //
9628 
9629 // ------------------------------------------------------------------------------ //
9630 // Mesh strength in 4.12 format, e.g. 0 - no correction, 4096 - correction to match mesh data. Can be used to reduce shading correction based on AE.
9631 // ------------------------------------------------------------------------------ //
9632 
9633 #define ACAMERA_ISP_MESH_SHADING_MESH_STRENGTH_DEFAULT (0x1000)
9634 #define ACAMERA_ISP_MESH_SHADING_MESH_STRENGTH_DATASIZE (16)
9635 #define ACAMERA_ISP_MESH_SHADING_MESH_STRENGTH_OFFSET (0x1d84)
9636 #define ACAMERA_ISP_MESH_SHADING_MESH_STRENGTH_MASK (0xffff)
9637 
9638 // args: data (16-bit)
acamera_isp_mesh_shading_mesh_strength_write(uintptr_t base,uint16_t data)9639 static __inline void acamera_isp_mesh_shading_mesh_strength_write(uintptr_t base, uint16_t data) {
9640     uint32_t curr = system_sw_read_32(base + 0x1ac0cL);
9641     system_sw_write_32(base + 0x1ac0cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
9642 }
acamera_isp_mesh_shading_mesh_strength_read(uintptr_t base)9643 static __inline uint16_t acamera_isp_mesh_shading_mesh_strength_read(uintptr_t base) {
9644     return (uint16_t)((system_sw_read_32(base + 0x1ac0cL) & 0xffff) >> 0);
9645 }
9646 // ------------------------------------------------------------------------------ //
9647 // Group: white balance
9648 // ------------------------------------------------------------------------------ //
9649 
9650 // ------------------------------------------------------------------------------ //
9651 // Static white balance - independent gain for each color channel
9652 //
9653 // ------------------------------------------------------------------------------ //
9654 
9655 // ------------------------------------------------------------------------------ //
9656 // Register: Gain 00
9657 // ------------------------------------------------------------------------------ //
9658 
9659 // ------------------------------------------------------------------------------ //
9660 // Multiplier for color channel 00 (R)
9661 // ------------------------------------------------------------------------------ //
9662 
9663 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_00_DEFAULT (0x100)
9664 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_00_DATASIZE (12)
9665 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_00_OFFSET (0x1d88)
9666 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_00_MASK (0xfff)
9667 
9668 // args: data (12-bit)
acamera_isp_white_balance_gain_00_write(uintptr_t base,uint16_t data)9669 static __inline void acamera_isp_white_balance_gain_00_write(uintptr_t base, uint16_t data) {
9670     uint32_t curr = system_sw_read_32(base + 0x1ac10L);
9671     system_sw_write_32(base + 0x1ac10L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
9672 }
acamera_isp_white_balance_gain_00_read(uintptr_t base)9673 static __inline uint16_t acamera_isp_white_balance_gain_00_read(uintptr_t base) {
9674     return (uint16_t)((system_sw_read_32(base + 0x1ac10L) & 0xfff) >> 0);
9675 }
9676 // ------------------------------------------------------------------------------ //
9677 // Register: Gain 01
9678 // ------------------------------------------------------------------------------ //
9679 
9680 // ------------------------------------------------------------------------------ //
9681 // Multiplier for color channel 01 (Gr)
9682 // ------------------------------------------------------------------------------ //
9683 
9684 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_01_DEFAULT (0x100)
9685 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_01_DATASIZE (12)
9686 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_01_OFFSET (0x1d88)
9687 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_01_MASK (0xfff0000)
9688 
9689 // args: data (12-bit)
acamera_isp_white_balance_gain_01_write(uintptr_t base,uint16_t data)9690 static __inline void acamera_isp_white_balance_gain_01_write(uintptr_t base, uint16_t data) {
9691     uint32_t curr = system_sw_read_32(base + 0x1ac10L);
9692     system_sw_write_32(base + 0x1ac10L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
9693 }
acamera_isp_white_balance_gain_01_read(uintptr_t base)9694 static __inline uint16_t acamera_isp_white_balance_gain_01_read(uintptr_t base) {
9695     return (uint16_t)((system_sw_read_32(base + 0x1ac10L) & 0xfff0000) >> 16);
9696 }
9697 // ------------------------------------------------------------------------------ //
9698 // Register: Gain 10
9699 // ------------------------------------------------------------------------------ //
9700 
9701 // ------------------------------------------------------------------------------ //
9702 // Multiplier for color channel 10 (Gb)
9703 // ------------------------------------------------------------------------------ //
9704 
9705 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_10_DEFAULT (0x100)
9706 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_10_DATASIZE (12)
9707 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_10_OFFSET (0x1d8c)
9708 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_10_MASK (0xfff)
9709 
9710 // args: data (12-bit)
acamera_isp_white_balance_gain_10_write(uintptr_t base,uint16_t data)9711 static __inline void acamera_isp_white_balance_gain_10_write(uintptr_t base, uint16_t data) {
9712     uint32_t curr = system_sw_read_32(base + 0x1ac14L);
9713     system_sw_write_32(base + 0x1ac14L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
9714 }
acamera_isp_white_balance_gain_10_read(uintptr_t base)9715 static __inline uint16_t acamera_isp_white_balance_gain_10_read(uintptr_t base) {
9716     return (uint16_t)((system_sw_read_32(base + 0x1ac14L) & 0xfff) >> 0);
9717 }
9718 // ------------------------------------------------------------------------------ //
9719 // Register: Gain 11
9720 // ------------------------------------------------------------------------------ //
9721 
9722 // ------------------------------------------------------------------------------ //
9723 // Multiplier for color channel 11 (B)
9724 // ------------------------------------------------------------------------------ //
9725 
9726 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_11_DEFAULT (0x100)
9727 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_11_DATASIZE (12)
9728 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_11_OFFSET (0x1d8c)
9729 #define ACAMERA_ISP_WHITE_BALANCE_GAIN_11_MASK (0xfff0000)
9730 
9731 // args: data (12-bit)
acamera_isp_white_balance_gain_11_write(uintptr_t base,uint16_t data)9732 static __inline void acamera_isp_white_balance_gain_11_write(uintptr_t base, uint16_t data) {
9733     uint32_t curr = system_sw_read_32(base + 0x1ac14L);
9734     system_sw_write_32(base + 0x1ac14L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
9735 }
acamera_isp_white_balance_gain_11_read(uintptr_t base)9736 static __inline uint16_t acamera_isp_white_balance_gain_11_read(uintptr_t base) {
9737     return (uint16_t)((system_sw_read_32(base + 0x1ac14L) & 0xfff0000) >> 16);
9738 }
9739 // ------------------------------------------------------------------------------ //
9740 // Group: white balance aexp
9741 // ------------------------------------------------------------------------------ //
9742 
9743 // ------------------------------------------------------------------------------ //
9744 // Static white balance - independent gain for each color channel
9745 //
9746 // ------------------------------------------------------------------------------ //
9747 
9748 // ------------------------------------------------------------------------------ //
9749 // Register: Gain 00
9750 // ------------------------------------------------------------------------------ //
9751 
9752 // ------------------------------------------------------------------------------ //
9753 // Multiplier for color channel 00 (R)
9754 // ------------------------------------------------------------------------------ //
9755 
9756 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_00_DEFAULT (0x100)
9757 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_00_DATASIZE (12)
9758 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_00_OFFSET (0x1d90)
9759 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_00_MASK (0xfff)
9760 
9761 // args: data (12-bit)
acamera_isp_white_balance_aexp_gain_00_write(uintptr_t base,uint16_t data)9762 static __inline void acamera_isp_white_balance_aexp_gain_00_write(uintptr_t base, uint16_t data) {
9763     uint32_t curr = system_sw_read_32(base + 0x1ac18L);
9764     system_sw_write_32(base + 0x1ac18L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
9765 }
acamera_isp_white_balance_aexp_gain_00_read(uintptr_t base)9766 static __inline uint16_t acamera_isp_white_balance_aexp_gain_00_read(uintptr_t base) {
9767     return (uint16_t)((system_sw_read_32(base + 0x1ac18L) & 0xfff) >> 0);
9768 }
9769 // ------------------------------------------------------------------------------ //
9770 // Register: Gain 01
9771 // ------------------------------------------------------------------------------ //
9772 
9773 // ------------------------------------------------------------------------------ //
9774 // Multiplier for color channel 01 (Gr)
9775 // ------------------------------------------------------------------------------ //
9776 
9777 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_01_DEFAULT (0x100)
9778 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_01_DATASIZE (12)
9779 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_01_OFFSET (0x1d90)
9780 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_01_MASK (0xfff0000)
9781 
9782 // args: data (12-bit)
acamera_isp_white_balance_aexp_gain_01_write(uintptr_t base,uint16_t data)9783 static __inline void acamera_isp_white_balance_aexp_gain_01_write(uintptr_t base, uint16_t data) {
9784     uint32_t curr = system_sw_read_32(base + 0x1ac18L);
9785     system_sw_write_32(base + 0x1ac18L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
9786 }
acamera_isp_white_balance_aexp_gain_01_read(uintptr_t base)9787 static __inline uint16_t acamera_isp_white_balance_aexp_gain_01_read(uintptr_t base) {
9788     return (uint16_t)((system_sw_read_32(base + 0x1ac18L) & 0xfff0000) >> 16);
9789 }
9790 // ------------------------------------------------------------------------------ //
9791 // Register: Gain 10
9792 // ------------------------------------------------------------------------------ //
9793 
9794 // ------------------------------------------------------------------------------ //
9795 // Multiplier for color channel 10 (Gb)
9796 // ------------------------------------------------------------------------------ //
9797 
9798 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_10_DEFAULT (0x100)
9799 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_10_DATASIZE (12)
9800 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_10_OFFSET (0x1d94)
9801 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_10_MASK (0xfff)
9802 
9803 // args: data (12-bit)
acamera_isp_white_balance_aexp_gain_10_write(uintptr_t base,uint16_t data)9804 static __inline void acamera_isp_white_balance_aexp_gain_10_write(uintptr_t base, uint16_t data) {
9805     uint32_t curr = system_sw_read_32(base + 0x1ac1cL);
9806     system_sw_write_32(base + 0x1ac1cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
9807 }
acamera_isp_white_balance_aexp_gain_10_read(uintptr_t base)9808 static __inline uint16_t acamera_isp_white_balance_aexp_gain_10_read(uintptr_t base) {
9809     return (uint16_t)((system_sw_read_32(base + 0x1ac1cL) & 0xfff) >> 0);
9810 }
9811 // ------------------------------------------------------------------------------ //
9812 // Register: Gain 11
9813 // ------------------------------------------------------------------------------ //
9814 
9815 // ------------------------------------------------------------------------------ //
9816 // Multiplier for color channel 11 (B)
9817 // ------------------------------------------------------------------------------ //
9818 
9819 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_11_DEFAULT (0x100)
9820 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_11_DATASIZE (12)
9821 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_11_OFFSET (0x1d94)
9822 #define ACAMERA_ISP_WHITE_BALANCE_AEXP_GAIN_11_MASK (0xfff0000)
9823 
9824 // args: data (12-bit)
acamera_isp_white_balance_aexp_gain_11_write(uintptr_t base,uint16_t data)9825 static __inline void acamera_isp_white_balance_aexp_gain_11_write(uintptr_t base, uint16_t data) {
9826     uint32_t curr = system_sw_read_32(base + 0x1ac1cL);
9827     system_sw_write_32(base + 0x1ac1cL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
9828 }
acamera_isp_white_balance_aexp_gain_11_read(uintptr_t base)9829 static __inline uint16_t acamera_isp_white_balance_aexp_gain_11_read(uintptr_t base) {
9830     return (uint16_t)((system_sw_read_32(base + 0x1ac1cL) & 0xfff0000) >> 16);
9831 }
9832 // ------------------------------------------------------------------------------ //
9833 // Group: iridix gain
9834 // ------------------------------------------------------------------------------ //
9835 
9836 // ------------------------------------------------------------------------------ //
9837 // Digital gain for RAW sensor data
9838 // ------------------------------------------------------------------------------ //
9839 
9840 // ------------------------------------------------------------------------------ //
9841 // Register: Gain
9842 // ------------------------------------------------------------------------------ //
9843 
9844 // ------------------------------------------------------------------------------ //
9845 // Gain applied to data in 4.8 format
9846 // ------------------------------------------------------------------------------ //
9847 
9848 #define ACAMERA_ISP_IRIDIX_GAIN_GAIN_DEFAULT (0x100)
9849 #define ACAMERA_ISP_IRIDIX_GAIN_GAIN_DATASIZE (12)
9850 #define ACAMERA_ISP_IRIDIX_GAIN_GAIN_OFFSET (0x1d98)
9851 #define ACAMERA_ISP_IRIDIX_GAIN_GAIN_MASK (0xfff)
9852 
9853 // args: data (12-bit)
acamera_isp_iridix_gain_gain_write(uintptr_t base,uint16_t data)9854 static __inline void acamera_isp_iridix_gain_gain_write(uintptr_t base, uint16_t data) {
9855     uint32_t curr = system_sw_read_32(base + 0x1ac20L);
9856     system_sw_write_32(base + 0x1ac20L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
9857 }
acamera_isp_iridix_gain_gain_read(uintptr_t base)9858 static __inline uint16_t acamera_isp_iridix_gain_gain_read(uintptr_t base) {
9859     return (uint16_t)((system_sw_read_32(base + 0x1ac20L) & 0xfff) >> 0);
9860 }
9861 // ------------------------------------------------------------------------------ //
9862 // Register: Offset
9863 // ------------------------------------------------------------------------------ //
9864 
9865 // ------------------------------------------------------------------------------ //
9866 // Data black level
9867 // ------------------------------------------------------------------------------ //
9868 
9869 #define ACAMERA_ISP_IRIDIX_GAIN_OFFSET_DEFAULT (0x000)
9870 #define ACAMERA_ISP_IRIDIX_GAIN_OFFSET_DATASIZE (20)
9871 #define ACAMERA_ISP_IRIDIX_GAIN_OFFSET_OFFSET (0x1d9c)
9872 #define ACAMERA_ISP_IRIDIX_GAIN_OFFSET_MASK (0xfffff)
9873 
9874 // args: data (20-bit)
acamera_isp_iridix_gain_offset_write(uintptr_t base,uint32_t data)9875 static __inline void acamera_isp_iridix_gain_offset_write(uintptr_t base, uint32_t data) {
9876     uint32_t curr = system_sw_read_32(base + 0x1ac24L);
9877     system_sw_write_32(base + 0x1ac24L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
9878 }
acamera_isp_iridix_gain_offset_read(uintptr_t base)9879 static __inline uint32_t acamera_isp_iridix_gain_offset_read(uintptr_t base) {
9880     return (uint32_t)((system_sw_read_32(base + 0x1ac24L) & 0xfffff) >> 0);
9881 }
9882 // ------------------------------------------------------------------------------ //
9883 // Group: iridix
9884 // ------------------------------------------------------------------------------ //
9885 
9886 // ------------------------------------------------------------------------------ //
9887 //
9888 //                 Iridix is an adaptive, space-variant tone mapping engine.
9889 //                 It is used to maintain or enhance shadow detail while preserving highlights.
9890 //
9891 // ------------------------------------------------------------------------------ //
9892 
9893 // ------------------------------------------------------------------------------ //
9894 // Register: iridix_on
9895 // ------------------------------------------------------------------------------ //
9896 
9897 // ------------------------------------------------------------------------------ //
9898 // Iridix enable: 0=off 1=on
9899 // ------------------------------------------------------------------------------ //
9900 
9901 #define ACAMERA_ISP_IRIDIX_ENABLE_DEFAULT (0x1)
9902 #define ACAMERA_ISP_IRIDIX_ENABLE_DATASIZE (1)
9903 #define ACAMERA_ISP_IRIDIX_ENABLE_OFFSET (0x1da0)
9904 #define ACAMERA_ISP_IRIDIX_ENABLE_MASK (0x1)
9905 
9906 // args: data (1-bit)
acamera_isp_iridix_enable_write(uintptr_t base,uint8_t data)9907 static __inline void acamera_isp_iridix_enable_write(uintptr_t base, uint8_t data) {
9908     uint32_t curr = system_sw_read_32(base + 0x1ac28L);
9909     system_sw_write_32(base + 0x1ac28L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
9910 }
acamera_isp_iridix_enable_read(uintptr_t base)9911 static __inline uint8_t acamera_isp_iridix_enable_read(uintptr_t base) {
9912     return (uint8_t)((system_sw_read_32(base + 0x1ac28L) & 0x1) >> 0);
9913 }
9914 // ------------------------------------------------------------------------------ //
9915 // Register: max_alg_type
9916 // ------------------------------------------------------------------------------ //
9917 
9918 // ------------------------------------------------------------------------------ //
9919 // Max Bayer Algorithm Type.
9920 // ------------------------------------------------------------------------------ //
9921 
9922 #define ACAMERA_ISP_IRIDIX_MAX_ALG_TYPE_DEFAULT (0x1)
9923 #define ACAMERA_ISP_IRIDIX_MAX_ALG_TYPE_DATASIZE (1)
9924 #define ACAMERA_ISP_IRIDIX_MAX_ALG_TYPE_OFFSET (0x1da0)
9925 #define ACAMERA_ISP_IRIDIX_MAX_ALG_TYPE_MASK (0x8)
9926 
9927 // args: data (1-bit)
acamera_isp_iridix_max_alg_type_write(uintptr_t base,uint8_t data)9928 static __inline void acamera_isp_iridix_max_alg_type_write(uintptr_t base, uint8_t data) {
9929     uint32_t curr = system_sw_read_32(base + 0x1ac28L);
9930     system_sw_write_32(base + 0x1ac28L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
9931 }
acamera_isp_iridix_max_alg_type_read(uintptr_t base)9932 static __inline uint8_t acamera_isp_iridix_max_alg_type_read(uintptr_t base) {
9933     return (uint8_t)((system_sw_read_32(base + 0x1ac28L) & 0x8) >> 3);
9934 }
9935 // ------------------------------------------------------------------------------ //
9936 // Register: black_level_amp0
9937 // ------------------------------------------------------------------------------ //
9938 
9939 // ------------------------------------------------------------------------------ //
9940 // 1=Ignore Black level (set to zero) in amplificator. 0=Use Black level value.
9941 // ------------------------------------------------------------------------------ //
9942 
9943 #define ACAMERA_ISP_IRIDIX_BLACK_LEVEL_AMP0_DEFAULT (0x1)
9944 #define ACAMERA_ISP_IRIDIX_BLACK_LEVEL_AMP0_DATASIZE (1)
9945 #define ACAMERA_ISP_IRIDIX_BLACK_LEVEL_AMP0_OFFSET (0x1da0)
9946 #define ACAMERA_ISP_IRIDIX_BLACK_LEVEL_AMP0_MASK (0x20)
9947 
9948 // args: data (1-bit)
acamera_isp_iridix_black_level_amp0_write(uintptr_t base,uint8_t data)9949 static __inline void acamera_isp_iridix_black_level_amp0_write(uintptr_t base, uint8_t data) {
9950     uint32_t curr = system_sw_read_32(base + 0x1ac28L);
9951     system_sw_write_32(base + 0x1ac28L, (((uint32_t) (data & 0x1)) << 5) | (curr & 0xffffffdf));
9952 }
acamera_isp_iridix_black_level_amp0_read(uintptr_t base)9953 static __inline uint8_t acamera_isp_iridix_black_level_amp0_read(uintptr_t base) {
9954     return (uint8_t)((system_sw_read_32(base + 0x1ac28L) & 0x20) >> 5);
9955 }
9956 // ------------------------------------------------------------------------------ //
9957 // Register: postgamma_pos
9958 // ------------------------------------------------------------------------------ //
9959 
9960 // ------------------------------------------------------------------------------ //
9961 // PosGamma application  0=gain 1=data
9962 // ------------------------------------------------------------------------------ //
9963 
9964 #define ACAMERA_ISP_IRIDIX_POSTGAMMA_POS_DEFAULT (0x0)
9965 #define ACAMERA_ISP_IRIDIX_POSTGAMMA_POS_DATASIZE (1)
9966 #define ACAMERA_ISP_IRIDIX_POSTGAMMA_POS_OFFSET (0x1da0)
9967 #define ACAMERA_ISP_IRIDIX_POSTGAMMA_POS_MASK (0x40)
9968 
9969 // args: data (1-bit)
acamera_isp_iridix_postgamma_pos_write(uintptr_t base,uint8_t data)9970 static __inline void acamera_isp_iridix_postgamma_pos_write(uintptr_t base, uint8_t data) {
9971     uint32_t curr = system_sw_read_32(base + 0x1ac28L);
9972     system_sw_write_32(base + 0x1ac28L, (((uint32_t) (data & 0x1)) << 6) | (curr & 0xffffffbf));
9973 }
acamera_isp_iridix_postgamma_pos_read(uintptr_t base)9974 static __inline uint8_t acamera_isp_iridix_postgamma_pos_read(uintptr_t base) {
9975     return (uint8_t)((system_sw_read_32(base + 0x1ac28L) & 0x40) >> 6);
9976 }
9977 // ------------------------------------------------------------------------------ //
9978 // Register: collect_ovl
9979 // ------------------------------------------------------------------------------ //
9980 
9981 #define ACAMERA_ISP_IRIDIX_COLLECT_OVL_DEFAULT (0x0)
9982 #define ACAMERA_ISP_IRIDIX_COLLECT_OVL_DATASIZE (1)
9983 #define ACAMERA_ISP_IRIDIX_COLLECT_OVL_OFFSET (0x1da0)
9984 #define ACAMERA_ISP_IRIDIX_COLLECT_OVL_MASK (0x100)
9985 
9986 // args: data (1-bit)
acamera_isp_iridix_collect_ovl_write(uintptr_t base,uint8_t data)9987 static __inline void acamera_isp_iridix_collect_ovl_write(uintptr_t base, uint8_t data) {
9988     uint32_t curr = system_sw_read_32(base + 0x1ac28L);
9989     system_sw_write_32(base + 0x1ac28L, (((uint32_t) (data & 0x1)) << 8) | (curr & 0xfffffeff));
9990 }
acamera_isp_iridix_collect_ovl_read(uintptr_t base)9991 static __inline uint8_t acamera_isp_iridix_collect_ovl_read(uintptr_t base) {
9992     return (uint8_t)((system_sw_read_32(base + 0x1ac28L) & 0x100) >> 8);
9993 }
9994 // ------------------------------------------------------------------------------ //
9995 // Register: collect_rnd
9996 // ------------------------------------------------------------------------------ //
9997 
9998 #define ACAMERA_ISP_IRIDIX_COLLECT_RND_DEFAULT (0x1)
9999 #define ACAMERA_ISP_IRIDIX_COLLECT_RND_DATASIZE (1)
10000 #define ACAMERA_ISP_IRIDIX_COLLECT_RND_OFFSET (0x1da0)
10001 #define ACAMERA_ISP_IRIDIX_COLLECT_RND_MASK (0x200)
10002 
10003 // args: data (1-bit)
acamera_isp_iridix_collect_rnd_write(uintptr_t base,uint8_t data)10004 static __inline void acamera_isp_iridix_collect_rnd_write(uintptr_t base, uint8_t data) {
10005     uint32_t curr = system_sw_read_32(base + 0x1ac28L);
10006     system_sw_write_32(base + 0x1ac28L, (((uint32_t) (data & 0x1)) << 9) | (curr & 0xfffffdff));
10007 }
acamera_isp_iridix_collect_rnd_read(uintptr_t base)10008 static __inline uint8_t acamera_isp_iridix_collect_rnd_read(uintptr_t base) {
10009     return (uint8_t)((system_sw_read_32(base + 0x1ac28L) & 0x200) >> 9);
10010 }
10011 // ------------------------------------------------------------------------------ //
10012 // Register: stat_norm
10013 // ------------------------------------------------------------------------------ //
10014 
10015 #define ACAMERA_ISP_IRIDIX_STAT_NORM_DEFAULT (0x1)
10016 #define ACAMERA_ISP_IRIDIX_STAT_NORM_DATASIZE (1)
10017 #define ACAMERA_ISP_IRIDIX_STAT_NORM_OFFSET (0x1da0)
10018 #define ACAMERA_ISP_IRIDIX_STAT_NORM_MASK (0x400)
10019 
10020 // args: data (1-bit)
acamera_isp_iridix_stat_norm_write(uintptr_t base,uint8_t data)10021 static __inline void acamera_isp_iridix_stat_norm_write(uintptr_t base, uint8_t data) {
10022     uint32_t curr = system_sw_read_32(base + 0x1ac28L);
10023     system_sw_write_32(base + 0x1ac28L, (((uint32_t) (data & 0x1)) << 10) | (curr & 0xfffffbff));
10024 }
acamera_isp_iridix_stat_norm_read(uintptr_t base)10025 static __inline uint8_t acamera_isp_iridix_stat_norm_read(uintptr_t base) {
10026     return (uint8_t)((system_sw_read_32(base + 0x1ac28L) & 0x400) >> 10);
10027 }
10028 // ------------------------------------------------------------------------------ //
10029 // Register: stat_mult
10030 // ------------------------------------------------------------------------------ //
10031 
10032 #define ACAMERA_ISP_IRIDIX_STAT_MULT_DEFAULT (0x1)
10033 #define ACAMERA_ISP_IRIDIX_STAT_MULT_DATASIZE (2)
10034 #define ACAMERA_ISP_IRIDIX_STAT_MULT_OFFSET (0x1da0)
10035 #define ACAMERA_ISP_IRIDIX_STAT_MULT_MASK (0xc000)
10036 
10037 // args: data (2-bit)
acamera_isp_iridix_stat_mult_write(uintptr_t base,uint8_t data)10038 static __inline void acamera_isp_iridix_stat_mult_write(uintptr_t base, uint8_t data) {
10039     uint32_t curr = system_sw_read_32(base + 0x1ac28L);
10040     system_sw_write_32(base + 0x1ac28L, (((uint32_t) (data & 0x3)) << 14) | (curr & 0xffff3fff));
10041 }
acamera_isp_iridix_stat_mult_read(uintptr_t base)10042 static __inline uint8_t acamera_isp_iridix_stat_mult_read(uintptr_t base) {
10043     return (uint8_t)((system_sw_read_32(base + 0x1ac28L) & 0xc000) >> 14);
10044 }
10045 // ------------------------------------------------------------------------------ //
10046 // Register: variance_space
10047 // ------------------------------------------------------------------------------ //
10048 
10049 // ------------------------------------------------------------------------------ //
10050 // Sets the degree of spatial sensitivity of the algorithm(Irdx7F)
10051 // ------------------------------------------------------------------------------ //
10052 
10053 #define ACAMERA_ISP_IRIDIX_VARIANCE_SPACE_DEFAULT (0x2)
10054 #define ACAMERA_ISP_IRIDIX_VARIANCE_SPACE_DATASIZE (4)
10055 #define ACAMERA_ISP_IRIDIX_VARIANCE_SPACE_OFFSET (0x1da4)
10056 #define ACAMERA_ISP_IRIDIX_VARIANCE_SPACE_MASK (0xf)
10057 
10058 // args: data (4-bit)
acamera_isp_iridix_variance_space_write(uintptr_t base,uint8_t data)10059 static __inline void acamera_isp_iridix_variance_space_write(uintptr_t base, uint8_t data) {
10060     uint32_t curr = system_sw_read_32(base + 0x1ac2cL);
10061     system_sw_write_32(base + 0x1ac2cL, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
10062 }
acamera_isp_iridix_variance_space_read(uintptr_t base)10063 static __inline uint8_t acamera_isp_iridix_variance_space_read(uintptr_t base) {
10064     return (uint8_t)((system_sw_read_32(base + 0x1ac2cL) & 0xf) >> 0);
10065 }
10066 // ------------------------------------------------------------------------------ //
10067 // Register: variance_intensity
10068 // ------------------------------------------------------------------------------ //
10069 
10070 // ------------------------------------------------------------------------------ //
10071 // Sets the degree of luminance sensitivity of the algorithm(Irdx7F)
10072 // ------------------------------------------------------------------------------ //
10073 
10074 #define ACAMERA_ISP_IRIDIX_VARIANCE_INTENSITY_DEFAULT (0x1)
10075 #define ACAMERA_ISP_IRIDIX_VARIANCE_INTENSITY_DATASIZE (4)
10076 #define ACAMERA_ISP_IRIDIX_VARIANCE_INTENSITY_OFFSET (0x1da4)
10077 #define ACAMERA_ISP_IRIDIX_VARIANCE_INTENSITY_MASK (0xf0)
10078 
10079 // args: data (4-bit)
acamera_isp_iridix_variance_intensity_write(uintptr_t base,uint8_t data)10080 static __inline void acamera_isp_iridix_variance_intensity_write(uintptr_t base, uint8_t data) {
10081     uint32_t curr = system_sw_read_32(base + 0x1ac2cL);
10082     system_sw_write_32(base + 0x1ac2cL, (((uint32_t) (data & 0xf)) << 4) | (curr & 0xffffff0f));
10083 }
acamera_isp_iridix_variance_intensity_read(uintptr_t base)10084 static __inline uint8_t acamera_isp_iridix_variance_intensity_read(uintptr_t base) {
10085     return (uint8_t)((system_sw_read_32(base + 0x1ac2cL) & 0xf0) >> 4);
10086 }
10087 // ------------------------------------------------------------------------------ //
10088 // Register: slope_max
10089 // ------------------------------------------------------------------------------ //
10090 
10091 // ------------------------------------------------------------------------------ //
10092 // Restricts the maximum slope (gain) which can be generated by the adaptive algorithm
10093 // ------------------------------------------------------------------------------ //
10094 
10095 #define ACAMERA_ISP_IRIDIX_SLOPE_MAX_DEFAULT (0x80)
10096 #define ACAMERA_ISP_IRIDIX_SLOPE_MAX_DATASIZE (8)
10097 #define ACAMERA_ISP_IRIDIX_SLOPE_MAX_OFFSET (0x1da4)
10098 #define ACAMERA_ISP_IRIDIX_SLOPE_MAX_MASK (0xff00)
10099 
10100 // args: data (8-bit)
acamera_isp_iridix_slope_max_write(uintptr_t base,uint8_t data)10101 static __inline void acamera_isp_iridix_slope_max_write(uintptr_t base, uint8_t data) {
10102     uint32_t curr = system_sw_read_32(base + 0x1ac2cL);
10103     system_sw_write_32(base + 0x1ac2cL, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
10104 }
acamera_isp_iridix_slope_max_read(uintptr_t base)10105 static __inline uint8_t acamera_isp_iridix_slope_max_read(uintptr_t base) {
10106     return (uint8_t)((system_sw_read_32(base + 0x1ac2cL) & 0xff00) >> 8);
10107 }
10108 // ------------------------------------------------------------------------------ //
10109 // Register: slope_min
10110 // ------------------------------------------------------------------------------ //
10111 
10112 // ------------------------------------------------------------------------------ //
10113 // Restricts the minimum slope (gain) which can be generated by the adaptive algorithm
10114 // ------------------------------------------------------------------------------ //
10115 
10116 #define ACAMERA_ISP_IRIDIX_SLOPE_MIN_DEFAULT (0x40)
10117 #define ACAMERA_ISP_IRIDIX_SLOPE_MIN_DATASIZE (8)
10118 #define ACAMERA_ISP_IRIDIX_SLOPE_MIN_OFFSET (0x1da4)
10119 #define ACAMERA_ISP_IRIDIX_SLOPE_MIN_MASK (0xff0000)
10120 
10121 // args: data (8-bit)
acamera_isp_iridix_slope_min_write(uintptr_t base,uint8_t data)10122 static __inline void acamera_isp_iridix_slope_min_write(uintptr_t base, uint8_t data) {
10123     uint32_t curr = system_sw_read_32(base + 0x1ac2cL);
10124     system_sw_write_32(base + 0x1ac2cL, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
10125 }
acamera_isp_iridix_slope_min_read(uintptr_t base)10126 static __inline uint8_t acamera_isp_iridix_slope_min_read(uintptr_t base) {
10127     return (uint8_t)((system_sw_read_32(base + 0x1ac2cL) & 0xff0000) >> 16);
10128 }
10129 // ------------------------------------------------------------------------------ //
10130 // Register: black_level
10131 // ------------------------------------------------------------------------------ //
10132 
10133 // ------------------------------------------------------------------------------ //
10134 // Iridix black level. Values below this will not be affected by Iridix.
10135 // ------------------------------------------------------------------------------ //
10136 
10137 #define ACAMERA_ISP_IRIDIX_BLACK_LEVEL_DEFAULT (0x0000)
10138 #define ACAMERA_ISP_IRIDIX_BLACK_LEVEL_DATASIZE (20)
10139 #define ACAMERA_ISP_IRIDIX_BLACK_LEVEL_OFFSET (0x1da8)
10140 #define ACAMERA_ISP_IRIDIX_BLACK_LEVEL_MASK (0xfffff)
10141 
10142 // args: data (20-bit)
acamera_isp_iridix_black_level_write(uintptr_t base,uint32_t data)10143 static __inline void acamera_isp_iridix_black_level_write(uintptr_t base, uint32_t data) {
10144     uint32_t curr = system_sw_read_32(base + 0x1ac30L);
10145     system_sw_write_32(base + 0x1ac30L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
10146 }
acamera_isp_iridix_black_level_read(uintptr_t base)10147 static __inline uint32_t acamera_isp_iridix_black_level_read(uintptr_t base) {
10148     return (uint32_t)((system_sw_read_32(base + 0x1ac30L) & 0xfffff) >> 0);
10149 }
10150 // ------------------------------------------------------------------------------ //
10151 // Register: white_level
10152 // ------------------------------------------------------------------------------ //
10153 
10154 // ------------------------------------------------------------------------------ //
10155 // Iridix white level. Values above this will not be affected by Iridix.
10156 // ------------------------------------------------------------------------------ //
10157 
10158 #define ACAMERA_ISP_IRIDIX_WHITE_LEVEL_DEFAULT (0xFFFF)
10159 #define ACAMERA_ISP_IRIDIX_WHITE_LEVEL_DATASIZE (20)
10160 #define ACAMERA_ISP_IRIDIX_WHITE_LEVEL_OFFSET (0x1dac)
10161 #define ACAMERA_ISP_IRIDIX_WHITE_LEVEL_MASK (0xfffff)
10162 
10163 // args: data (20-bit)
acamera_isp_iridix_white_level_write(uintptr_t base,uint32_t data)10164 static __inline void acamera_isp_iridix_white_level_write(uintptr_t base, uint32_t data) {
10165     uint32_t curr = system_sw_read_32(base + 0x1ac34L);
10166     system_sw_write_32(base + 0x1ac34L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
10167 }
acamera_isp_iridix_white_level_read(uintptr_t base)10168 static __inline uint32_t acamera_isp_iridix_white_level_read(uintptr_t base) {
10169     return (uint32_t)((system_sw_read_32(base + 0x1ac34L) & 0xfffff) >> 0);
10170 }
10171 // ------------------------------------------------------------------------------ //
10172 // Register: collection_correction
10173 // ------------------------------------------------------------------------------ //
10174 
10175 #define ACAMERA_ISP_IRIDIX_COLLECTION_CORRECTION_DEFAULT (0x100)
10176 #define ACAMERA_ISP_IRIDIX_COLLECTION_CORRECTION_DATASIZE (12)
10177 #define ACAMERA_ISP_IRIDIX_COLLECTION_CORRECTION_OFFSET (0x1db0)
10178 #define ACAMERA_ISP_IRIDIX_COLLECTION_CORRECTION_MASK (0xfff)
10179 
10180 // args: data (12-bit)
acamera_isp_iridix_collection_correction_write(uintptr_t base,uint16_t data)10181 static __inline void acamera_isp_iridix_collection_correction_write(uintptr_t base, uint16_t data) {
10182     uint32_t curr = system_sw_read_32(base + 0x1ac38L);
10183     system_sw_write_32(base + 0x1ac38L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
10184 }
acamera_isp_iridix_collection_correction_read(uintptr_t base)10185 static __inline uint16_t acamera_isp_iridix_collection_correction_read(uintptr_t base) {
10186     return (uint16_t)((system_sw_read_32(base + 0x1ac38L) & 0xfff) >> 0);
10187 }
10188 // ------------------------------------------------------------------------------ //
10189 // Register: fwd_percept_control
10190 // ------------------------------------------------------------------------------ //
10191 
10192 // ------------------------------------------------------------------------------ //
10193 // Iridix gamma processing select: 0=pass through 1=gamma_dl 2=sqrt 3=gamma_lut.
10194 // ------------------------------------------------------------------------------ //
10195 
10196 #define ACAMERA_ISP_IRIDIX_FWD_PERCEPT_CONTROL_DEFAULT (0x1)
10197 #define ACAMERA_ISP_IRIDIX_FWD_PERCEPT_CONTROL_DATASIZE (2)
10198 #define ACAMERA_ISP_IRIDIX_FWD_PERCEPT_CONTROL_OFFSET (0x1db4)
10199 #define ACAMERA_ISP_IRIDIX_FWD_PERCEPT_CONTROL_MASK (0x3)
10200 
10201 // args: data (2-bit)
acamera_isp_iridix_fwd_percept_control_write(uintptr_t base,uint8_t data)10202 static __inline void acamera_isp_iridix_fwd_percept_control_write(uintptr_t base, uint8_t data) {
10203     uint32_t curr = system_sw_read_32(base + 0x1ac3cL);
10204     system_sw_write_32(base + 0x1ac3cL, (((uint32_t) (data & 0x3)) << 0) | (curr & 0xfffffffc));
10205 }
acamera_isp_iridix_fwd_percept_control_read(uintptr_t base)10206 static __inline uint8_t acamera_isp_iridix_fwd_percept_control_read(uintptr_t base) {
10207     return (uint8_t)((system_sw_read_32(base + 0x1ac3cL) & 0x3) >> 0);
10208 }
10209 // ------------------------------------------------------------------------------ //
10210 // Register: rev_percept_control
10211 // ------------------------------------------------------------------------------ //
10212 
10213 // ------------------------------------------------------------------------------ //
10214 // Iridix gamma processing select: 0=pass through 1=gamma_dl 2=sqrt 3=gamma_lut.
10215 // ------------------------------------------------------------------------------ //
10216 
10217 #define ACAMERA_ISP_IRIDIX_REV_PERCEPT_CONTROL_DEFAULT (0x1)
10218 #define ACAMERA_ISP_IRIDIX_REV_PERCEPT_CONTROL_DATASIZE (2)
10219 #define ACAMERA_ISP_IRIDIX_REV_PERCEPT_CONTROL_OFFSET (0x1db4)
10220 #define ACAMERA_ISP_IRIDIX_REV_PERCEPT_CONTROL_MASK (0x300)
10221 
10222 // args: data (2-bit)
acamera_isp_iridix_rev_percept_control_write(uintptr_t base,uint8_t data)10223 static __inline void acamera_isp_iridix_rev_percept_control_write(uintptr_t base, uint8_t data) {
10224     uint32_t curr = system_sw_read_32(base + 0x1ac3cL);
10225     system_sw_write_32(base + 0x1ac3cL, (((uint32_t) (data & 0x3)) << 8) | (curr & 0xfffffcff));
10226 }
acamera_isp_iridix_rev_percept_control_read(uintptr_t base)10227 static __inline uint8_t acamera_isp_iridix_rev_percept_control_read(uintptr_t base) {
10228     return (uint8_t)((system_sw_read_32(base + 0x1ac3cL) & 0x300) >> 8);
10229 }
10230 // ------------------------------------------------------------------------------ //
10231 // Register: strength_inroi
10232 // ------------------------------------------------------------------------------ //
10233 
10234 // ------------------------------------------------------------------------------ //
10235 // Manual Strength value for inside of ROI
10236 // ------------------------------------------------------------------------------ //
10237 
10238 #define ACAMERA_ISP_IRIDIX_STRENGTH_INROI_DEFAULT (0x200)
10239 #define ACAMERA_ISP_IRIDIX_STRENGTH_INROI_DATASIZE (10)
10240 #define ACAMERA_ISP_IRIDIX_STRENGTH_INROI_OFFSET (0x1db4)
10241 #define ACAMERA_ISP_IRIDIX_STRENGTH_INROI_MASK (0x3ff0000)
10242 
10243 // args: data (10-bit)
acamera_isp_iridix_strength_inroi_write(uintptr_t base,uint16_t data)10244 static __inline void acamera_isp_iridix_strength_inroi_write(uintptr_t base, uint16_t data) {
10245     uint32_t curr = system_sw_read_32(base + 0x1ac3cL);
10246     system_sw_write_32(base + 0x1ac3cL, (((uint32_t) (data & 0x3ff)) << 16) | (curr & 0xfc00ffff));
10247 }
acamera_isp_iridix_strength_inroi_read(uintptr_t base)10248 static __inline uint16_t acamera_isp_iridix_strength_inroi_read(uintptr_t base) {
10249     return (uint16_t)((system_sw_read_32(base + 0x1ac3cL) & 0x3ff0000) >> 16);
10250 }
10251 // ------------------------------------------------------------------------------ //
10252 // Register: strength_outroi
10253 // ------------------------------------------------------------------------------ //
10254 
10255 // ------------------------------------------------------------------------------ //
10256 // Manual Strength value for outside of ROI
10257 // ------------------------------------------------------------------------------ //
10258 
10259 #define ACAMERA_ISP_IRIDIX_STRENGTH_OUTROI_DEFAULT (0x200)
10260 #define ACAMERA_ISP_IRIDIX_STRENGTH_OUTROI_DATASIZE (10)
10261 #define ACAMERA_ISP_IRIDIX_STRENGTH_OUTROI_OFFSET (0x1db8)
10262 #define ACAMERA_ISP_IRIDIX_STRENGTH_OUTROI_MASK (0x3ff)
10263 
10264 // args: data (10-bit)
acamera_isp_iridix_strength_outroi_write(uintptr_t base,uint16_t data)10265 static __inline void acamera_isp_iridix_strength_outroi_write(uintptr_t base, uint16_t data) {
10266     uint32_t curr = system_sw_read_32(base + 0x1ac40L);
10267     system_sw_write_32(base + 0x1ac40L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
10268 }
acamera_isp_iridix_strength_outroi_read(uintptr_t base)10269 static __inline uint16_t acamera_isp_iridix_strength_outroi_read(uintptr_t base) {
10270     return (uint16_t)((system_sw_read_32(base + 0x1ac40L) & 0x3ff) >> 0);
10271 }
10272 // ------------------------------------------------------------------------------ //
10273 // Register: roi_hor_start
10274 // ------------------------------------------------------------------------------ //
10275 
10276 // ------------------------------------------------------------------------------ //
10277 // Horizontal starting point of ROI
10278 // ------------------------------------------------------------------------------ //
10279 
10280 #define ACAMERA_ISP_IRIDIX_ROI_HOR_START_DEFAULT (0x0000)
10281 #define ACAMERA_ISP_IRIDIX_ROI_HOR_START_DATASIZE (16)
10282 #define ACAMERA_ISP_IRIDIX_ROI_HOR_START_OFFSET (0x1dbc)
10283 #define ACAMERA_ISP_IRIDIX_ROI_HOR_START_MASK (0xffff)
10284 
10285 // args: data (16-bit)
acamera_isp_iridix_roi_hor_start_write(uintptr_t base,uint16_t data)10286 static __inline void acamera_isp_iridix_roi_hor_start_write(uintptr_t base, uint16_t data) {
10287     uint32_t curr = system_sw_read_32(base + 0x1ac44L);
10288     system_sw_write_32(base + 0x1ac44L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
10289 }
acamera_isp_iridix_roi_hor_start_read(uintptr_t base)10290 static __inline uint16_t acamera_isp_iridix_roi_hor_start_read(uintptr_t base) {
10291     return (uint16_t)((system_sw_read_32(base + 0x1ac44L) & 0xffff) >> 0);
10292 }
10293 // ------------------------------------------------------------------------------ //
10294 // Register: roi_hor_end
10295 // ------------------------------------------------------------------------------ //
10296 
10297 // ------------------------------------------------------------------------------ //
10298 // Horizontal ending point of ROI
10299 // ------------------------------------------------------------------------------ //
10300 
10301 #define ACAMERA_ISP_IRIDIX_ROI_HOR_END_DEFAULT (0xFFFF)
10302 #define ACAMERA_ISP_IRIDIX_ROI_HOR_END_DATASIZE (16)
10303 #define ACAMERA_ISP_IRIDIX_ROI_HOR_END_OFFSET (0x1dbc)
10304 #define ACAMERA_ISP_IRIDIX_ROI_HOR_END_MASK (0xffff0000)
10305 
10306 // args: data (16-bit)
acamera_isp_iridix_roi_hor_end_write(uintptr_t base,uint16_t data)10307 static __inline void acamera_isp_iridix_roi_hor_end_write(uintptr_t base, uint16_t data) {
10308     uint32_t curr = system_sw_read_32(base + 0x1ac44L);
10309     system_sw_write_32(base + 0x1ac44L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
10310 }
acamera_isp_iridix_roi_hor_end_read(uintptr_t base)10311 static __inline uint16_t acamera_isp_iridix_roi_hor_end_read(uintptr_t base) {
10312     return (uint16_t)((system_sw_read_32(base + 0x1ac44L) & 0xffff0000) >> 16);
10313 }
10314 // ------------------------------------------------------------------------------ //
10315 // Register: roi_ver_start
10316 // ------------------------------------------------------------------------------ //
10317 
10318 // ------------------------------------------------------------------------------ //
10319 // Vertical starting point of ROI
10320 // ------------------------------------------------------------------------------ //
10321 
10322 #define ACAMERA_ISP_IRIDIX_ROI_VER_START_DEFAULT (0x0000)
10323 #define ACAMERA_ISP_IRIDIX_ROI_VER_START_DATASIZE (16)
10324 #define ACAMERA_ISP_IRIDIX_ROI_VER_START_OFFSET (0x1dc0)
10325 #define ACAMERA_ISP_IRIDIX_ROI_VER_START_MASK (0xffff)
10326 
10327 // args: data (16-bit)
acamera_isp_iridix_roi_ver_start_write(uintptr_t base,uint16_t data)10328 static __inline void acamera_isp_iridix_roi_ver_start_write(uintptr_t base, uint16_t data) {
10329     uint32_t curr = system_sw_read_32(base + 0x1ac48L);
10330     system_sw_write_32(base + 0x1ac48L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
10331 }
acamera_isp_iridix_roi_ver_start_read(uintptr_t base)10332 static __inline uint16_t acamera_isp_iridix_roi_ver_start_read(uintptr_t base) {
10333     return (uint16_t)((system_sw_read_32(base + 0x1ac48L) & 0xffff) >> 0);
10334 }
10335 // ------------------------------------------------------------------------------ //
10336 // Register: roi_ver_end
10337 // ------------------------------------------------------------------------------ //
10338 
10339 // ------------------------------------------------------------------------------ //
10340 // Vertical ending point of ROI
10341 // ------------------------------------------------------------------------------ //
10342 
10343 #define ACAMERA_ISP_IRIDIX_ROI_VER_END_DEFAULT (0xFFFF)
10344 #define ACAMERA_ISP_IRIDIX_ROI_VER_END_DATASIZE (16)
10345 #define ACAMERA_ISP_IRIDIX_ROI_VER_END_OFFSET (0x1dc0)
10346 #define ACAMERA_ISP_IRIDIX_ROI_VER_END_MASK (0xffff0000)
10347 
10348 // args: data (16-bit)
acamera_isp_iridix_roi_ver_end_write(uintptr_t base,uint16_t data)10349 static __inline void acamera_isp_iridix_roi_ver_end_write(uintptr_t base, uint16_t data) {
10350     uint32_t curr = system_sw_read_32(base + 0x1ac48L);
10351     system_sw_write_32(base + 0x1ac48L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
10352 }
acamera_isp_iridix_roi_ver_end_read(uintptr_t base)10353 static __inline uint16_t acamera_isp_iridix_roi_ver_end_read(uintptr_t base) {
10354     return (uint16_t)((system_sw_read_32(base + 0x1ac48L) & 0xffff0000) >> 16);
10355 }
10356 // ------------------------------------------------------------------------------ //
10357 // Register: filter_mux
10358 // ------------------------------------------------------------------------------ //
10359 
10360 // ------------------------------------------------------------------------------ //
10361 // Selects between Iridix8 and Iridix7, 1=Iridix8 and 0=Iridix7
10362 // ------------------------------------------------------------------------------ //
10363 
10364 #define ACAMERA_ISP_IRIDIX_FILTER_MUX_DEFAULT (0x1)
10365 #define ACAMERA_ISP_IRIDIX_FILTER_MUX_DATASIZE (1)
10366 #define ACAMERA_ISP_IRIDIX_FILTER_MUX_OFFSET (0x1dc4)
10367 #define ACAMERA_ISP_IRIDIX_FILTER_MUX_MASK (0x1)
10368 
10369 // args: data (1-bit)
acamera_isp_iridix_filter_mux_write(uintptr_t base,uint8_t data)10370 static __inline void acamera_isp_iridix_filter_mux_write(uintptr_t base, uint8_t data) {
10371     uint32_t curr = system_sw_read_32(base + 0x1ac4cL);
10372     system_sw_write_32(base + 0x1ac4cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
10373 }
acamera_isp_iridix_filter_mux_read(uintptr_t base)10374 static __inline uint8_t acamera_isp_iridix_filter_mux_read(uintptr_t base) {
10375     return (uint8_t)((system_sw_read_32(base + 0x1ac4cL) & 0x1) >> 0);
10376 }
10377 // ------------------------------------------------------------------------------ //
10378 // Register: svariance
10379 // ------------------------------------------------------------------------------ //
10380 
10381 // ------------------------------------------------------------------------------ //
10382 // Iridix8 transform sensitivity to different areas of image
10383 // ------------------------------------------------------------------------------ //
10384 
10385 #define ACAMERA_ISP_IRIDIX_SVARIANCE_DEFAULT (0x0)
10386 #define ACAMERA_ISP_IRIDIX_SVARIANCE_DATASIZE (4)
10387 #define ACAMERA_ISP_IRIDIX_SVARIANCE_OFFSET (0x1dc4)
10388 #define ACAMERA_ISP_IRIDIX_SVARIANCE_MASK (0xf00)
10389 
10390 // args: data (4-bit)
acamera_isp_iridix_svariance_write(uintptr_t base,uint8_t data)10391 static __inline void acamera_isp_iridix_svariance_write(uintptr_t base, uint8_t data) {
10392     uint32_t curr = system_sw_read_32(base + 0x1ac4cL);
10393     system_sw_write_32(base + 0x1ac4cL, (((uint32_t) (data & 0xf)) << 8) | (curr & 0xfffff0ff));
10394 }
acamera_isp_iridix_svariance_read(uintptr_t base)10395 static __inline uint8_t acamera_isp_iridix_svariance_read(uintptr_t base) {
10396     return (uint8_t)((system_sw_read_32(base + 0x1ac4cL) & 0xf00) >> 8);
10397 }
10398 // ------------------------------------------------------------------------------ //
10399 // Register: bright_pr
10400 // ------------------------------------------------------------------------------ //
10401 
10402 // ------------------------------------------------------------------------------ //
10403 // Manual Bright_Preserve value to control Iridix core
10404 // ------------------------------------------------------------------------------ //
10405 
10406 #define ACAMERA_ISP_IRIDIX_BRIGHT_PR_DEFAULT (0xA0)
10407 #define ACAMERA_ISP_IRIDIX_BRIGHT_PR_DATASIZE (8)
10408 #define ACAMERA_ISP_IRIDIX_BRIGHT_PR_OFFSET (0x1dc4)
10409 #define ACAMERA_ISP_IRIDIX_BRIGHT_PR_MASK (0xff0000)
10410 
10411 // args: data (8-bit)
acamera_isp_iridix_bright_pr_write(uintptr_t base,uint8_t data)10412 static __inline void acamera_isp_iridix_bright_pr_write(uintptr_t base, uint8_t data) {
10413     uint32_t curr = system_sw_read_32(base + 0x1ac4cL);
10414     system_sw_write_32(base + 0x1ac4cL, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
10415 }
acamera_isp_iridix_bright_pr_read(uintptr_t base)10416 static __inline uint8_t acamera_isp_iridix_bright_pr_read(uintptr_t base) {
10417     return (uint8_t)((system_sw_read_32(base + 0x1ac4cL) & 0xff0000) >> 16);
10418 }
10419 // ------------------------------------------------------------------------------ //
10420 // Register: contrast
10421 // ------------------------------------------------------------------------------ //
10422 
10423 // ------------------------------------------------------------------------------ //
10424 // Iridix8 contrast control parameter
10425 // ------------------------------------------------------------------------------ //
10426 
10427 #define ACAMERA_ISP_IRIDIX_CONTRAST_DEFAULT (0xB0)
10428 #define ACAMERA_ISP_IRIDIX_CONTRAST_DATASIZE (8)
10429 #define ACAMERA_ISP_IRIDIX_CONTRAST_OFFSET (0x1dc4)
10430 #define ACAMERA_ISP_IRIDIX_CONTRAST_MASK (0xff000000)
10431 
10432 // args: data (8-bit)
acamera_isp_iridix_contrast_write(uintptr_t base,uint8_t data)10433 static __inline void acamera_isp_iridix_contrast_write(uintptr_t base, uint8_t data) {
10434     uint32_t curr = system_sw_read_32(base + 0x1ac4cL);
10435     system_sw_write_32(base + 0x1ac4cL, (((uint32_t) (data & 0xff)) << 24) | (curr & 0xffffff));
10436 }
acamera_isp_iridix_contrast_read(uintptr_t base)10437 static __inline uint8_t acamera_isp_iridix_contrast_read(uintptr_t base) {
10438     return (uint8_t)((system_sw_read_32(base + 0x1ac4cL) & 0xff000000) >> 24);
10439 }
10440 // ------------------------------------------------------------------------------ //
10441 // Register: dark_enh
10442 // ------------------------------------------------------------------------------ //
10443 
10444 // ------------------------------------------------------------------------------ //
10445 // Manual Dark_Enhance value to control Iridix core
10446 // ------------------------------------------------------------------------------ //
10447 
10448 #define ACAMERA_ISP_IRIDIX_DARK_ENH_DEFAULT (0x1000)
10449 #define ACAMERA_ISP_IRIDIX_DARK_ENH_DATASIZE (16)
10450 #define ACAMERA_ISP_IRIDIX_DARK_ENH_OFFSET (0x1dc8)
10451 #define ACAMERA_ISP_IRIDIX_DARK_ENH_MASK (0xffff)
10452 
10453 // args: data (16-bit)
acamera_isp_iridix_dark_enh_write(uintptr_t base,uint16_t data)10454 static __inline void acamera_isp_iridix_dark_enh_write(uintptr_t base, uint16_t data) {
10455     uint32_t curr = system_sw_read_32(base + 0x1ac50L);
10456     system_sw_write_32(base + 0x1ac50L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
10457 }
acamera_isp_iridix_dark_enh_read(uintptr_t base)10458 static __inline uint16_t acamera_isp_iridix_dark_enh_read(uintptr_t base) {
10459     return (uint16_t)((system_sw_read_32(base + 0x1ac50L) & 0xffff) >> 0);
10460 }
10461 // ------------------------------------------------------------------------------ //
10462 // Register: fwd_alpha
10463 // ------------------------------------------------------------------------------ //
10464 
10465 // ------------------------------------------------------------------------------ //
10466 // alpha for gamma_dl
10467 // ------------------------------------------------------------------------------ //
10468 
10469 #define ACAMERA_ISP_IRIDIX_FWD_ALPHA_DEFAULT (0x0100)
10470 #define ACAMERA_ISP_IRIDIX_FWD_ALPHA_DATASIZE (18)
10471 #define ACAMERA_ISP_IRIDIX_FWD_ALPHA_OFFSET (0x1dcc)
10472 #define ACAMERA_ISP_IRIDIX_FWD_ALPHA_MASK (0x3ffff)
10473 
10474 // args: data (18-bit)
acamera_isp_iridix_fwd_alpha_write(uintptr_t base,uint32_t data)10475 static __inline void acamera_isp_iridix_fwd_alpha_write(uintptr_t base, uint32_t data) {
10476     uint32_t curr = system_sw_read_32(base + 0x1ac54L);
10477     system_sw_write_32(base + 0x1ac54L, (((uint32_t) (data & 0x3ffff)) << 0) | (curr & 0xfffc0000));
10478 }
acamera_isp_iridix_fwd_alpha_read(uintptr_t base)10479 static __inline uint32_t acamera_isp_iridix_fwd_alpha_read(uintptr_t base) {
10480     return (uint32_t)((system_sw_read_32(base + 0x1ac54L) & 0x3ffff) >> 0);
10481 }
10482 // ------------------------------------------------------------------------------ //
10483 // Register: rev_alpha
10484 // ------------------------------------------------------------------------------ //
10485 
10486 // ------------------------------------------------------------------------------ //
10487 // alpha for gamma_dl
10488 // ------------------------------------------------------------------------------ //
10489 
10490 #define ACAMERA_ISP_IRIDIX_REV_ALPHA_DEFAULT (0x1000)
10491 #define ACAMERA_ISP_IRIDIX_REV_ALPHA_DATASIZE (18)
10492 #define ACAMERA_ISP_IRIDIX_REV_ALPHA_OFFSET (0x1dd0)
10493 #define ACAMERA_ISP_IRIDIX_REV_ALPHA_MASK (0x3ffff)
10494 
10495 // args: data (18-bit)
acamera_isp_iridix_rev_alpha_write(uintptr_t base,uint32_t data)10496 static __inline void acamera_isp_iridix_rev_alpha_write(uintptr_t base, uint32_t data) {
10497     uint32_t curr = system_sw_read_32(base + 0x1ac58L);
10498     system_sw_write_32(base + 0x1ac58L, (((uint32_t) (data & 0x3ffff)) << 0) | (curr & 0xfffc0000));
10499 }
acamera_isp_iridix_rev_alpha_read(uintptr_t base)10500 static __inline uint32_t acamera_isp_iridix_rev_alpha_read(uintptr_t base) {
10501     return (uint32_t)((system_sw_read_32(base + 0x1ac58L) & 0x3ffff) >> 0);
10502 }
10503 // ------------------------------------------------------------------------------ //
10504 // Register: context_no
10505 // ------------------------------------------------------------------------------ //
10506 
10507 // ------------------------------------------------------------------------------ //
10508 // Context id of a input Frame
10509 // ------------------------------------------------------------------------------ //
10510 
10511 #define ACAMERA_ISP_IRIDIX_CONTEXT_NO_DEFAULT (0x0)
10512 #define ACAMERA_ISP_IRIDIX_CONTEXT_NO_DATASIZE (2)
10513 #define ACAMERA_ISP_IRIDIX_CONTEXT_NO_OFFSET (0x1dd4)
10514 #define ACAMERA_ISP_IRIDIX_CONTEXT_NO_MASK (0x3)
10515 
10516 // args: data (2-bit)
acamera_isp_iridix_context_no_write(uintptr_t base,uint8_t data)10517 static __inline void acamera_isp_iridix_context_no_write(uintptr_t base, uint8_t data) {
10518     uint32_t curr = system_sw_read_32(base + 0x1ac5cL);
10519     system_sw_write_32(base + 0x1ac5cL, (((uint32_t) (data & 0x3)) << 0) | (curr & 0xfffffffc));
10520 }
acamera_isp_iridix_context_no_read(uintptr_t base)10521 static __inline uint8_t acamera_isp_iridix_context_no_read(uintptr_t base) {
10522     return (uint8_t)((system_sw_read_32(base + 0x1ac5cL) & 0x3) >> 0);
10523 }
10524 // ------------------------------------------------------------------------------ //
10525 // Register: wb_offset
10526 // ------------------------------------------------------------------------------ //
10527 
10528 // ------------------------------------------------------------------------------ //
10529 // White balance offset
10530 // ------------------------------------------------------------------------------ //
10531 
10532 #define ACAMERA_ISP_IRIDIX_WB_OFFSET_DEFAULT (0x0000)
10533 #define ACAMERA_ISP_IRIDIX_WB_OFFSET_DATASIZE (20)
10534 #define ACAMERA_ISP_IRIDIX_WB_OFFSET_OFFSET (0x1dd8)
10535 #define ACAMERA_ISP_IRIDIX_WB_OFFSET_MASK (0xfffff)
10536 
10537 // args: data (20-bit)
acamera_isp_iridix_wb_offset_write(uintptr_t base,uint32_t data)10538 static __inline void acamera_isp_iridix_wb_offset_write(uintptr_t base, uint32_t data) {
10539     uint32_t curr = system_sw_read_32(base + 0x1ac60L);
10540     system_sw_write_32(base + 0x1ac60L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
10541 }
acamera_isp_iridix_wb_offset_read(uintptr_t base)10542 static __inline uint32_t acamera_isp_iridix_wb_offset_read(uintptr_t base) {
10543     return (uint32_t)((system_sw_read_32(base + 0x1ac60L) & 0xfffff) >> 0);
10544 }
10545 // ------------------------------------------------------------------------------ //
10546 // Register: gain_r
10547 // ------------------------------------------------------------------------------ //
10548 
10549 // ------------------------------------------------------------------------------ //
10550 // White balance gain for R
10551 // ------------------------------------------------------------------------------ //
10552 
10553 #define ACAMERA_ISP_IRIDIX_GAIN_R_DEFAULT (0x100)
10554 #define ACAMERA_ISP_IRIDIX_GAIN_R_DATASIZE (12)
10555 #define ACAMERA_ISP_IRIDIX_GAIN_R_OFFSET (0x1ddc)
10556 #define ACAMERA_ISP_IRIDIX_GAIN_R_MASK (0xfff)
10557 
10558 // args: data (12-bit)
acamera_isp_iridix_gain_r_write(uintptr_t base,uint16_t data)10559 static __inline void acamera_isp_iridix_gain_r_write(uintptr_t base, uint16_t data) {
10560     uint32_t curr = system_sw_read_32(base + 0x1ac64L);
10561     system_sw_write_32(base + 0x1ac64L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
10562 }
acamera_isp_iridix_gain_r_read(uintptr_t base)10563 static __inline uint16_t acamera_isp_iridix_gain_r_read(uintptr_t base) {
10564     return (uint16_t)((system_sw_read_32(base + 0x1ac64L) & 0xfff) >> 0);
10565 }
10566 // ------------------------------------------------------------------------------ //
10567 // Register: gain_gr
10568 // ------------------------------------------------------------------------------ //
10569 
10570 // ------------------------------------------------------------------------------ //
10571 // White balance gain for GR
10572 // ------------------------------------------------------------------------------ //
10573 
10574 #define ACAMERA_ISP_IRIDIX_GAIN_GR_DEFAULT (0x100)
10575 #define ACAMERA_ISP_IRIDIX_GAIN_GR_DATASIZE (12)
10576 #define ACAMERA_ISP_IRIDIX_GAIN_GR_OFFSET (0x1ddc)
10577 #define ACAMERA_ISP_IRIDIX_GAIN_GR_MASK (0xfff0000)
10578 
10579 // args: data (12-bit)
acamera_isp_iridix_gain_gr_write(uintptr_t base,uint16_t data)10580 static __inline void acamera_isp_iridix_gain_gr_write(uintptr_t base, uint16_t data) {
10581     uint32_t curr = system_sw_read_32(base + 0x1ac64L);
10582     system_sw_write_32(base + 0x1ac64L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
10583 }
acamera_isp_iridix_gain_gr_read(uintptr_t base)10584 static __inline uint16_t acamera_isp_iridix_gain_gr_read(uintptr_t base) {
10585     return (uint16_t)((system_sw_read_32(base + 0x1ac64L) & 0xfff0000) >> 16);
10586 }
10587 // ------------------------------------------------------------------------------ //
10588 // Register: gain_gb
10589 // ------------------------------------------------------------------------------ //
10590 
10591 // ------------------------------------------------------------------------------ //
10592 // White balance gain for GB
10593 // ------------------------------------------------------------------------------ //
10594 
10595 #define ACAMERA_ISP_IRIDIX_GAIN_GB_DEFAULT (0x100)
10596 #define ACAMERA_ISP_IRIDIX_GAIN_GB_DATASIZE (12)
10597 #define ACAMERA_ISP_IRIDIX_GAIN_GB_OFFSET (0x1de0)
10598 #define ACAMERA_ISP_IRIDIX_GAIN_GB_MASK (0xfff)
10599 
10600 // args: data (12-bit)
acamera_isp_iridix_gain_gb_write(uintptr_t base,uint16_t data)10601 static __inline void acamera_isp_iridix_gain_gb_write(uintptr_t base, uint16_t data) {
10602     uint32_t curr = system_sw_read_32(base + 0x1ac68L);
10603     system_sw_write_32(base + 0x1ac68L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
10604 }
acamera_isp_iridix_gain_gb_read(uintptr_t base)10605 static __inline uint16_t acamera_isp_iridix_gain_gb_read(uintptr_t base) {
10606     return (uint16_t)((system_sw_read_32(base + 0x1ac68L) & 0xfff) >> 0);
10607 }
10608 // ------------------------------------------------------------------------------ //
10609 // Register: gain_b
10610 // ------------------------------------------------------------------------------ //
10611 
10612 // ------------------------------------------------------------------------------ //
10613 // White balance gain for B
10614 // ------------------------------------------------------------------------------ //
10615 
10616 #define ACAMERA_ISP_IRIDIX_GAIN_B_DEFAULT (0x100)
10617 #define ACAMERA_ISP_IRIDIX_GAIN_B_DATASIZE (12)
10618 #define ACAMERA_ISP_IRIDIX_GAIN_B_OFFSET (0x1de0)
10619 #define ACAMERA_ISP_IRIDIX_GAIN_B_MASK (0xfff0000)
10620 
10621 // args: data (12-bit)
acamera_isp_iridix_gain_b_write(uintptr_t base,uint16_t data)10622 static __inline void acamera_isp_iridix_gain_b_write(uintptr_t base, uint16_t data) {
10623     uint32_t curr = system_sw_read_32(base + 0x1ac68L);
10624     system_sw_write_32(base + 0x1ac68L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
10625 }
acamera_isp_iridix_gain_b_read(uintptr_t base)10626 static __inline uint16_t acamera_isp_iridix_gain_b_read(uintptr_t base) {
10627     return (uint16_t)((system_sw_read_32(base + 0x1ac68L) & 0xfff0000) >> 16);
10628 }
10629 // ------------------------------------------------------------------------------ //
10630 // Register: GTm_select
10631 // ------------------------------------------------------------------------------ //
10632 
10633 // ------------------------------------------------------------------------------ //
10634 // Global Tone map select : 0 : Local TM 1: Full Global TM
10635 // ------------------------------------------------------------------------------ //
10636 
10637 #define ACAMERA_ISP_IRIDIX_GTM_SELECT_DEFAULT (0x0)
10638 #define ACAMERA_ISP_IRIDIX_GTM_SELECT_DATASIZE (1)
10639 #define ACAMERA_ISP_IRIDIX_GTM_SELECT_OFFSET (0x1de4)
10640 #define ACAMERA_ISP_IRIDIX_GTM_SELECT_MASK (0x1)
10641 
10642 // args: data (1-bit)
acamera_isp_iridix_gtm_select_write(uintptr_t base,uint8_t data)10643 static __inline void acamera_isp_iridix_gtm_select_write(uintptr_t base, uint8_t data) {
10644     uint32_t curr = system_sw_read_32(base + 0x1ac6cL);
10645     system_sw_write_32(base + 0x1ac6cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
10646 }
acamera_isp_iridix_gtm_select_read(uintptr_t base)10647 static __inline uint8_t acamera_isp_iridix_gtm_select_read(uintptr_t base) {
10648     return (uint8_t)((system_sw_read_32(base + 0x1ac6cL) & 0x1) >> 0);
10649 }
10650 // ------------------------------------------------------------------------------ //
10651 // Group: iridix LUT
10652 // ------------------------------------------------------------------------------ //
10653 
10654 // ------------------------------------------------------------------------------ //
10655 // LUT: Asymmetry LUT
10656 // ------------------------------------------------------------------------------ //
10657 
10658 // ------------------------------------------------------------------------------ //
10659 // Iridix target curve.
10660 // ------------------------------------------------------------------------------ //
10661 
10662 #define ACAMERA_ISP_IRIDIX_LUT_ASYMMETRY_LUT_NODES (65)
10663 #define ACAMERA_ISP_IRIDIX_LUT_ASYMMETRY_LUT_ADDRBITS (7)
10664 #define ACAMERA_ISP_IRIDIX_LUT_ASYMMETRY_LUT_DATASIZE (20)
10665 #define ACAMERA_ISP_IRIDIX_LUT_ASYMMETRY_LUT_OFFSET (0x1ac70L)
10666 
10667 // args: index (0-64), data (20-bit)
acamera_isp_iridix_lut_asymmetry_lut_write(uintptr_t base,uint8_t index,uint32_t data)10668 static __inline void acamera_isp_iridix_lut_asymmetry_lut_write( uintptr_t base, uint8_t index,uint32_t data) {
10669     uintptr_t addr = base + 0x1ac70L + (index << 2);
10670     system_sw_write_32(addr, data);
10671 }
acamera_isp_iridix_lut_asymmetry_lut_read(uintptr_t base,uint8_t index)10672 static __inline uint32_t acamera_isp_iridix_lut_asymmetry_lut_read( uintptr_t base, uint8_t index) {
10673     uintptr_t addr = base + 0x1ac70L + (index << 2);
10674     return system_sw_read_32(addr);
10675 }
10676 // ------------------------------------------------------------------------------ //
10677 // LUT: GlobalTM X LUT
10678 // ------------------------------------------------------------------------------ //
10679 
10680 #define ACAMERA_ISP_IRIDIX_LUT_GLOBALTM_X_LUT_NODES (33)
10681 #define ACAMERA_ISP_IRIDIX_LUT_GLOBALTM_X_LUT_ADDRBITS (6)
10682 #define ACAMERA_ISP_IRIDIX_LUT_GLOBALTM_X_LUT_DATASIZE (20)
10683 #define ACAMERA_ISP_IRIDIX_LUT_GLOBALTM_X_LUT_OFFSET (0x1ad74L)
10684 
10685 // args: index (0-32), data (20-bit)
acamera_isp_iridix_lut_globaltm_x_lut_write(uintptr_t base,uint8_t index,uint32_t data)10686 static __inline void acamera_isp_iridix_lut_globaltm_x_lut_write( uintptr_t base, uint8_t index,uint32_t data) {
10687     uintptr_t addr = base + 0x1ad74L + (index << 2);
10688     system_sw_write_32(addr, data);
10689 }
acamera_isp_iridix_lut_globaltm_x_lut_read(uintptr_t base,uint8_t index)10690 static __inline uint32_t acamera_isp_iridix_lut_globaltm_x_lut_read( uintptr_t base, uint8_t index) {
10691     uintptr_t addr = base + 0x1ad74L + (index << 2);
10692     return system_sw_read_32(addr);
10693 }
10694 // ------------------------------------------------------------------------------ //
10695 // LUT: GlobalTM Y LUT
10696 // ------------------------------------------------------------------------------ //
10697 
10698 #define ACAMERA_ISP_IRIDIX_LUT_GLOBALTM_Y_LUT_NODES (33)
10699 #define ACAMERA_ISP_IRIDIX_LUT_GLOBALTM_Y_LUT_ADDRBITS (6)
10700 #define ACAMERA_ISP_IRIDIX_LUT_GLOBALTM_Y_LUT_DATASIZE (20)
10701 #define ACAMERA_ISP_IRIDIX_LUT_GLOBALTM_Y_LUT_OFFSET (0x1adf8L)
10702 
10703 // args: index (0-32), data (20-bit)
acamera_isp_iridix_lut_globaltm_y_lut_write(uintptr_t base,uint8_t index,uint32_t data)10704 static __inline void acamera_isp_iridix_lut_globaltm_y_lut_write( uintptr_t base, uint8_t index,uint32_t data) {
10705     uintptr_t addr = base + 0x1adf8L + (index << 2);
10706     system_sw_write_32(addr, data);
10707 }
acamera_isp_iridix_lut_globaltm_y_lut_read(uintptr_t base,uint8_t index)10708 static __inline uint32_t acamera_isp_iridix_lut_globaltm_y_lut_read( uintptr_t base, uint8_t index) {
10709     uintptr_t addr = base + 0x1adf8L + (index << 2);
10710     return system_sw_read_32(addr);
10711 }
10712 // ------------------------------------------------------------------------------ //
10713 // Group: demosaic rgb
10714 // ------------------------------------------------------------------------------ //
10715 
10716 // ------------------------------------------------------------------------------ //
10717 // Bayer Demosaic
10718 // ------------------------------------------------------------------------------ //
10719 
10720 // ------------------------------------------------------------------------------ //
10721 // Register: VH Slope
10722 // ------------------------------------------------------------------------------ //
10723 
10724 // ------------------------------------------------------------------------------ //
10725 // Slope of vertical/horizontal blending threshold in 4.4 logarithmic format.
10726 //        High values will tend to favor one direction over the other (depending on VH Thresh) while lower values will give smoother blending.
10727 //
10728 // ------------------------------------------------------------------------------ //
10729 
10730 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_SLOPE_DEFAULT (0xC0)
10731 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_SLOPE_DATASIZE (8)
10732 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_SLOPE_OFFSET (0x1ff4)
10733 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_SLOPE_MASK (0xff)
10734 
10735 // args: data (8-bit)
acamera_isp_demosaic_rgb_vh_slope_write(uintptr_t base,uint8_t data)10736 static __inline void acamera_isp_demosaic_rgb_vh_slope_write(uintptr_t base, uint8_t data) {
10737     uint32_t curr = system_sw_read_32(base + 0x1ae7cL);
10738     system_sw_write_32(base + 0x1ae7cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
10739 }
acamera_isp_demosaic_rgb_vh_slope_read(uintptr_t base)10740 static __inline uint8_t acamera_isp_demosaic_rgb_vh_slope_read(uintptr_t base) {
10741     return (uint8_t)((system_sw_read_32(base + 0x1ae7cL) & 0xff) >> 0);
10742 }
10743 // ------------------------------------------------------------------------------ //
10744 // Register: AA Slope
10745 // ------------------------------------------------------------------------------ //
10746 
10747 // ------------------------------------------------------------------------------ //
10748 //
10749 //        Slope of angular (45/135) blending threshold in 4.4 format.
10750 //        High values will tend to favor one direction over the other (depending on AA Thresh) while lower values will give smoother blending.
10751 //
10752 // ------------------------------------------------------------------------------ //
10753 
10754 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_SLOPE_DEFAULT (0xC0)
10755 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_SLOPE_DATASIZE (8)
10756 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_SLOPE_OFFSET (0x1ff4)
10757 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_SLOPE_MASK (0xff00)
10758 
10759 // args: data (8-bit)
acamera_isp_demosaic_rgb_aa_slope_write(uintptr_t base,uint8_t data)10760 static __inline void acamera_isp_demosaic_rgb_aa_slope_write(uintptr_t base, uint8_t data) {
10761     uint32_t curr = system_sw_read_32(base + 0x1ae7cL);
10762     system_sw_write_32(base + 0x1ae7cL, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
10763 }
acamera_isp_demosaic_rgb_aa_slope_read(uintptr_t base)10764 static __inline uint8_t acamera_isp_demosaic_rgb_aa_slope_read(uintptr_t base) {
10765     return (uint8_t)((system_sw_read_32(base + 0x1ae7cL) & 0xff00) >> 8);
10766 }
10767 // ------------------------------------------------------------------------------ //
10768 // Register: VA Slope
10769 // ------------------------------------------------------------------------------ //
10770 
10771 // ------------------------------------------------------------------------------ //
10772 // Slope of VH-AA blending threshold in 4.4 log format.
10773 //        High values will tend to favor one direction over the other (depending on VA Thresh)
10774 //        while lower values will give smoother blending.
10775 //
10776 // ------------------------------------------------------------------------------ //
10777 
10778 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_SLOPE_DEFAULT (0xAA)
10779 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_SLOPE_DATASIZE (8)
10780 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_SLOPE_OFFSET (0x1ff4)
10781 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_SLOPE_MASK (0xff0000)
10782 
10783 // args: data (8-bit)
acamera_isp_demosaic_rgb_va_slope_write(uintptr_t base,uint8_t data)10784 static __inline void acamera_isp_demosaic_rgb_va_slope_write(uintptr_t base, uint8_t data) {
10785     uint32_t curr = system_sw_read_32(base + 0x1ae7cL);
10786     system_sw_write_32(base + 0x1ae7cL, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
10787 }
acamera_isp_demosaic_rgb_va_slope_read(uintptr_t base)10788 static __inline uint8_t acamera_isp_demosaic_rgb_va_slope_read(uintptr_t base) {
10789     return (uint8_t)((system_sw_read_32(base + 0x1ae7cL) & 0xff0000) >> 16);
10790 }
10791 // ------------------------------------------------------------------------------ //
10792 // Register: UU Slope
10793 // ------------------------------------------------------------------------------ //
10794 
10795 // ------------------------------------------------------------------------------ //
10796 // Slope of undefined blending threshold in 4.4 logarithmic format
10797 // ------------------------------------------------------------------------------ //
10798 
10799 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SLOPE_DEFAULT (0xAD)
10800 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SLOPE_DATASIZE (8)
10801 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SLOPE_OFFSET (0x1ff4)
10802 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SLOPE_MASK (0xff000000)
10803 
10804 // args: data (8-bit)
acamera_isp_demosaic_rgb_uu_slope_write(uintptr_t base,uint8_t data)10805 static __inline void acamera_isp_demosaic_rgb_uu_slope_write(uintptr_t base, uint8_t data) {
10806     uint32_t curr = system_sw_read_32(base + 0x1ae7cL);
10807     system_sw_write_32(base + 0x1ae7cL, (((uint32_t) (data & 0xff)) << 24) | (curr & 0xffffff));
10808 }
acamera_isp_demosaic_rgb_uu_slope_read(uintptr_t base)10809 static __inline uint8_t acamera_isp_demosaic_rgb_uu_slope_read(uintptr_t base) {
10810     return (uint8_t)((system_sw_read_32(base + 0x1ae7cL) & 0xff000000) >> 24);
10811 }
10812 // ------------------------------------------------------------------------------ //
10813 // Register: Sat Slope
10814 // ------------------------------------------------------------------------------ //
10815 
10816 // ------------------------------------------------------------------------------ //
10817 // Slope of saturation blending threshold in linear format 2.6
10818 // ------------------------------------------------------------------------------ //
10819 
10820 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_SLOPE_DEFAULT (0x5D)
10821 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_SLOPE_DATASIZE (8)
10822 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_SLOPE_OFFSET (0x1ff8)
10823 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_SLOPE_MASK (0xff)
10824 
10825 // args: data (8-bit)
acamera_isp_demosaic_rgb_sat_slope_write(uintptr_t base,uint8_t data)10826 static __inline void acamera_isp_demosaic_rgb_sat_slope_write(uintptr_t base, uint8_t data) {
10827     uint32_t curr = system_sw_read_32(base + 0x1ae80L);
10828     system_sw_write_32(base + 0x1ae80L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
10829 }
acamera_isp_demosaic_rgb_sat_slope_read(uintptr_t base)10830 static __inline uint8_t acamera_isp_demosaic_rgb_sat_slope_read(uintptr_t base) {
10831     return (uint8_t)((system_sw_read_32(base + 0x1ae80L) & 0xff) >> 0);
10832 }
10833 // ------------------------------------------------------------------------------ //
10834 // Register: VH Thresh
10835 // ------------------------------------------------------------------------------ //
10836 
10837 // ------------------------------------------------------------------------------ //
10838 // Threshold for the range of vertical/horizontal blending
10839 //            The threshold defines the difference of vertical and horizontal gradients at which the vertical gradient will
10840 //            start to be taken into account in the blending (if VH Offset is set to 0).
10841 //            Setting the offset not null (or the slope low) will include proportion of the vertical
10842 //            gradient in the blending before even the gradient difference reaches the threshold (see VH Offset for more details).
10843 //
10844 // ------------------------------------------------------------------------------ //
10845 
10846 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_THRESH_DEFAULT (0x131)
10847 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_THRESH_DATASIZE (12)
10848 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_THRESH_OFFSET (0x1ffc)
10849 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_THRESH_MASK (0xfff)
10850 
10851 // args: data (12-bit)
acamera_isp_demosaic_rgb_vh_thresh_write(uintptr_t base,uint16_t data)10852 static __inline void acamera_isp_demosaic_rgb_vh_thresh_write(uintptr_t base, uint16_t data) {
10853     uint32_t curr = system_sw_read_32(base + 0x1ae84L);
10854     system_sw_write_32(base + 0x1ae84L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
10855 }
acamera_isp_demosaic_rgb_vh_thresh_read(uintptr_t base)10856 static __inline uint16_t acamera_isp_demosaic_rgb_vh_thresh_read(uintptr_t base) {
10857     return (uint16_t)((system_sw_read_32(base + 0x1ae84L) & 0xfff) >> 0);
10858 }
10859 // ------------------------------------------------------------------------------ //
10860 // Register: AA Thresh
10861 // ------------------------------------------------------------------------------ //
10862 
10863 // ------------------------------------------------------------------------------ //
10864 // Threshold for the range of angular (45/135) blending.
10865 //        The threshold defines the difference of 45 and 135 gradients at which the 45 gradient will start to be taken into account in the
10866 //        blending (if AA Offset is set to 0).
10867 //        Setting the offset not null (or the slope low) will include proportion of the 45 gradient in the blending before
10868 //        even the gradient difierence reaches the threshold (see AA Offset for more details).
10869 //
10870 // ------------------------------------------------------------------------------ //
10871 
10872 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_THRESH_DEFAULT (0xA0)
10873 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_THRESH_DATASIZE (12)
10874 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_THRESH_OFFSET (0x1ffc)
10875 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_THRESH_MASK (0xfff0000)
10876 
10877 // args: data (12-bit)
acamera_isp_demosaic_rgb_aa_thresh_write(uintptr_t base,uint16_t data)10878 static __inline void acamera_isp_demosaic_rgb_aa_thresh_write(uintptr_t base, uint16_t data) {
10879     uint32_t curr = system_sw_read_32(base + 0x1ae84L);
10880     system_sw_write_32(base + 0x1ae84L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
10881 }
acamera_isp_demosaic_rgb_aa_thresh_read(uintptr_t base)10882 static __inline uint16_t acamera_isp_demosaic_rgb_aa_thresh_read(uintptr_t base) {
10883     return (uint16_t)((system_sw_read_32(base + 0x1ae84L) & 0xfff0000) >> 16);
10884 }
10885 // ------------------------------------------------------------------------------ //
10886 // Register: VA Thresh
10887 // ------------------------------------------------------------------------------ //
10888 
10889 // ------------------------------------------------------------------------------ //
10890 // Threshold for the range of VH-AA blending.
10891 //        The threshold defines the difference of VH and AA gradients at which the VH gradient will start to be taken into account in the blending
10892 //        (if VA Offset is set to 0). Setting the offset not null (or the slope low) will include proportion of the VH gradient
10893 //        in the blending before even the gradient difference reaches the threshold (see VA Offiset for more details).
10894 //
10895 // ------------------------------------------------------------------------------ //
10896 
10897 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_THRESH_DEFAULT (0x70)
10898 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_THRESH_DATASIZE (12)
10899 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_THRESH_OFFSET (0x2000)
10900 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_THRESH_MASK (0xfff)
10901 
10902 // args: data (12-bit)
acamera_isp_demosaic_rgb_va_thresh_write(uintptr_t base,uint16_t data)10903 static __inline void acamera_isp_demosaic_rgb_va_thresh_write(uintptr_t base, uint16_t data) {
10904     uint32_t curr = system_sw_read_32(base + 0x1ae88L);
10905     system_sw_write_32(base + 0x1ae88L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
10906 }
acamera_isp_demosaic_rgb_va_thresh_read(uintptr_t base)10907 static __inline uint16_t acamera_isp_demosaic_rgb_va_thresh_read(uintptr_t base) {
10908     return (uint16_t)((system_sw_read_32(base + 0x1ae88L) & 0xfff) >> 0);
10909 }
10910 // ------------------------------------------------------------------------------ //
10911 // Register: UU Thresh
10912 // ------------------------------------------------------------------------------ //
10913 
10914 // ------------------------------------------------------------------------------ //
10915 // Threshold for the range of undefined blending
10916 // ------------------------------------------------------------------------------ //
10917 
10918 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_THRESH_DEFAULT (0x171)
10919 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_THRESH_DATASIZE (12)
10920 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_THRESH_OFFSET (0x2000)
10921 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_THRESH_MASK (0xfff0000)
10922 
10923 // args: data (12-bit)
acamera_isp_demosaic_rgb_uu_thresh_write(uintptr_t base,uint16_t data)10924 static __inline void acamera_isp_demosaic_rgb_uu_thresh_write(uintptr_t base, uint16_t data) {
10925     uint32_t curr = system_sw_read_32(base + 0x1ae88L);
10926     system_sw_write_32(base + 0x1ae88L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
10927 }
acamera_isp_demosaic_rgb_uu_thresh_read(uintptr_t base)10928 static __inline uint16_t acamera_isp_demosaic_rgb_uu_thresh_read(uintptr_t base) {
10929     return (uint16_t)((system_sw_read_32(base + 0x1ae88L) & 0xfff0000) >> 16);
10930 }
10931 // ------------------------------------------------------------------------------ //
10932 // Register: Sat Thresh
10933 // ------------------------------------------------------------------------------ //
10934 
10935 // ------------------------------------------------------------------------------ //
10936 // Threshold for the range of saturation blending  in signed 2.9 format
10937 // ------------------------------------------------------------------------------ //
10938 
10939 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_THRESH_DEFAULT (0x171)
10940 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_THRESH_DATASIZE (12)
10941 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_THRESH_OFFSET (0x2004)
10942 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_THRESH_MASK (0xfff)
10943 
10944 // args: data (12-bit)
acamera_isp_demosaic_rgb_sat_thresh_write(uintptr_t base,uint16_t data)10945 static __inline void acamera_isp_demosaic_rgb_sat_thresh_write(uintptr_t base, uint16_t data) {
10946     uint32_t curr = system_sw_read_32(base + 0x1ae8cL);
10947     system_sw_write_32(base + 0x1ae8cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
10948 }
acamera_isp_demosaic_rgb_sat_thresh_read(uintptr_t base)10949 static __inline uint16_t acamera_isp_demosaic_rgb_sat_thresh_read(uintptr_t base) {
10950     return (uint16_t)((system_sw_read_32(base + 0x1ae8cL) & 0xfff) >> 0);
10951 }
10952 // ------------------------------------------------------------------------------ //
10953 // Register: lum_thresh
10954 // ------------------------------------------------------------------------------ //
10955 
10956 // ------------------------------------------------------------------------------ //
10957 // Luminance threshold for directional sharpening
10958 // ------------------------------------------------------------------------------ //
10959 
10960 #define ACAMERA_ISP_DEMOSAIC_RGB_LUM_THRESH_DEFAULT (0x060)
10961 #define ACAMERA_ISP_DEMOSAIC_RGB_LUM_THRESH_DATASIZE (12)
10962 #define ACAMERA_ISP_DEMOSAIC_RGB_LUM_THRESH_OFFSET (0x2004)
10963 #define ACAMERA_ISP_DEMOSAIC_RGB_LUM_THRESH_MASK (0xfff0000)
10964 
10965 // args: data (12-bit)
acamera_isp_demosaic_rgb_lum_thresh_write(uintptr_t base,uint16_t data)10966 static __inline void acamera_isp_demosaic_rgb_lum_thresh_write(uintptr_t base, uint16_t data) {
10967     uint32_t curr = system_sw_read_32(base + 0x1ae8cL);
10968     system_sw_write_32(base + 0x1ae8cL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
10969 }
acamera_isp_demosaic_rgb_lum_thresh_read(uintptr_t base)10970 static __inline uint16_t acamera_isp_demosaic_rgb_lum_thresh_read(uintptr_t base) {
10971     return (uint16_t)((system_sw_read_32(base + 0x1ae8cL) & 0xfff0000) >> 16);
10972 }
10973 // ------------------------------------------------------------------------------ //
10974 // Register: VH Offset
10975 // ------------------------------------------------------------------------------ //
10976 
10977 // ------------------------------------------------------------------------------ //
10978 // Offset for vertical/horizontal blending threshold
10979 // ------------------------------------------------------------------------------ //
10980 
10981 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_OFFSET_DEFAULT (0x800)
10982 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_OFFSET_DATASIZE (12)
10983 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_OFFSET_OFFSET (0x2008)
10984 #define ACAMERA_ISP_DEMOSAIC_RGB_VH_OFFSET_MASK (0xfff)
10985 
10986 // args: data (12-bit)
acamera_isp_demosaic_rgb_vh_offset_write(uintptr_t base,uint16_t data)10987 static __inline void acamera_isp_demosaic_rgb_vh_offset_write(uintptr_t base, uint16_t data) {
10988     uint32_t curr = system_sw_read_32(base + 0x1ae90L);
10989     system_sw_write_32(base + 0x1ae90L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
10990 }
acamera_isp_demosaic_rgb_vh_offset_read(uintptr_t base)10991 static __inline uint16_t acamera_isp_demosaic_rgb_vh_offset_read(uintptr_t base) {
10992     return (uint16_t)((system_sw_read_32(base + 0x1ae90L) & 0xfff) >> 0);
10993 }
10994 // ------------------------------------------------------------------------------ //
10995 // Register: AA Offset
10996 // ------------------------------------------------------------------------------ //
10997 
10998 // ------------------------------------------------------------------------------ //
10999 // Offset for angular (A45/A135) blending threshold.
11000 //        This register has great impact on how AA Thresh is used.
11001 //        Setting this register to a value offset tells the blending process to weight the 45 and 135 gradients,
11002 //        at the threshold, with respectively offset/16 and 255 - (offset/16).
11003 //        If AA Thresh not equals to 0, these same blending weights apply from -AA Thresh to +AA Thresh.
11004 //
11005 // ------------------------------------------------------------------------------ //
11006 
11007 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_OFFSET_DEFAULT (0x800)
11008 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_OFFSET_DATASIZE (12)
11009 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_OFFSET_OFFSET (0x2008)
11010 #define ACAMERA_ISP_DEMOSAIC_RGB_AA_OFFSET_MASK (0xfff0000)
11011 
11012 // args: data (12-bit)
acamera_isp_demosaic_rgb_aa_offset_write(uintptr_t base,uint16_t data)11013 static __inline void acamera_isp_demosaic_rgb_aa_offset_write(uintptr_t base, uint16_t data) {
11014     uint32_t curr = system_sw_read_32(base + 0x1ae90L);
11015     system_sw_write_32(base + 0x1ae90L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
11016 }
acamera_isp_demosaic_rgb_aa_offset_read(uintptr_t base)11017 static __inline uint16_t acamera_isp_demosaic_rgb_aa_offset_read(uintptr_t base) {
11018     return (uint16_t)((system_sw_read_32(base + 0x1ae90L) & 0xfff0000) >> 16);
11019 }
11020 // ------------------------------------------------------------------------------ //
11021 // Register: VA Offset
11022 // ------------------------------------------------------------------------------ //
11023 
11024 // ------------------------------------------------------------------------------ //
11025 // Offset for VH-AA blending threshold. This register has great impact on how VA Thresh is used.
11026 //        Setting this register to a value offset tells the blending process to weight the VH and AA gradients,
11027 //        at the threshold, with respectively offset/16 and 255 - (offset/16).
11028 //        If VA Thresh not equals to 0, these same blending weights apply from -VA Thresh to +VA Thresh.
11029 //
11030 // ------------------------------------------------------------------------------ //
11031 
11032 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_OFFSET_DEFAULT (0x800)
11033 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_OFFSET_DATASIZE (12)
11034 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_OFFSET_OFFSET (0x200c)
11035 #define ACAMERA_ISP_DEMOSAIC_RGB_VA_OFFSET_MASK (0xfff)
11036 
11037 // args: data (12-bit)
acamera_isp_demosaic_rgb_va_offset_write(uintptr_t base,uint16_t data)11038 static __inline void acamera_isp_demosaic_rgb_va_offset_write(uintptr_t base, uint16_t data) {
11039     uint32_t curr = system_sw_read_32(base + 0x1ae94L);
11040     system_sw_write_32(base + 0x1ae94L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
11041 }
acamera_isp_demosaic_rgb_va_offset_read(uintptr_t base)11042 static __inline uint16_t acamera_isp_demosaic_rgb_va_offset_read(uintptr_t base) {
11043     return (uint16_t)((system_sw_read_32(base + 0x1ae94L) & 0xfff) >> 0);
11044 }
11045 // ------------------------------------------------------------------------------ //
11046 // Register: UU Offset
11047 // ------------------------------------------------------------------------------ //
11048 
11049 // ------------------------------------------------------------------------------ //
11050 // Offset for undefined blending threshold
11051 // ------------------------------------------------------------------------------ //
11052 
11053 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_OFFSET_DEFAULT (0x000)
11054 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_OFFSET_DATASIZE (12)
11055 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_OFFSET_OFFSET (0x200c)
11056 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_OFFSET_MASK (0xfff0000)
11057 
11058 // args: data (12-bit)
acamera_isp_demosaic_rgb_uu_offset_write(uintptr_t base,uint16_t data)11059 static __inline void acamera_isp_demosaic_rgb_uu_offset_write(uintptr_t base, uint16_t data) {
11060     uint32_t curr = system_sw_read_32(base + 0x1ae94L);
11061     system_sw_write_32(base + 0x1ae94L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
11062 }
acamera_isp_demosaic_rgb_uu_offset_read(uintptr_t base)11063 static __inline uint16_t acamera_isp_demosaic_rgb_uu_offset_read(uintptr_t base) {
11064     return (uint16_t)((system_sw_read_32(base + 0x1ae94L) & 0xfff0000) >> 16);
11065 }
11066 // ------------------------------------------------------------------------------ //
11067 // Register: Sat Offset
11068 // ------------------------------------------------------------------------------ //
11069 
11070 // ------------------------------------------------------------------------------ //
11071 // Offset for saturation blending threshold in signed 2.9 format
11072 // ------------------------------------------------------------------------------ //
11073 
11074 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_OFFSET_DEFAULT (0x000)
11075 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_OFFSET_DATASIZE (12)
11076 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_OFFSET_OFFSET (0x2010)
11077 #define ACAMERA_ISP_DEMOSAIC_RGB_SAT_OFFSET_MASK (0xfff)
11078 
11079 // args: data (12-bit)
acamera_isp_demosaic_rgb_sat_offset_write(uintptr_t base,uint16_t data)11080 static __inline void acamera_isp_demosaic_rgb_sat_offset_write(uintptr_t base, uint16_t data) {
11081     uint32_t curr = system_sw_read_32(base + 0x1ae98L);
11082     system_sw_write_32(base + 0x1ae98L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
11083 }
acamera_isp_demosaic_rgb_sat_offset_read(uintptr_t base)11084 static __inline uint16_t acamera_isp_demosaic_rgb_sat_offset_read(uintptr_t base) {
11085     return (uint16_t)((system_sw_read_32(base + 0x1ae98L) & 0xfff) >> 0);
11086 }
11087 // ------------------------------------------------------------------------------ //
11088 // Register: AC Offset
11089 // ------------------------------------------------------------------------------ //
11090 
11091 // ------------------------------------------------------------------------------ //
11092 // Offset for AC blending threshold in signed 2.9 format
11093 // ------------------------------------------------------------------------------ //
11094 
11095 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_OFFSET_DEFAULT (0x000)
11096 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_OFFSET_DATASIZE (12)
11097 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_OFFSET_OFFSET (0x2010)
11098 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_OFFSET_MASK (0xfff0000)
11099 
11100 // args: data (12-bit)
acamera_isp_demosaic_rgb_ac_offset_write(uintptr_t base,uint16_t data)11101 static __inline void acamera_isp_demosaic_rgb_ac_offset_write(uintptr_t base, uint16_t data) {
11102     uint32_t curr = system_sw_read_32(base + 0x1ae98L);
11103     system_sw_write_32(base + 0x1ae98L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
11104 }
acamera_isp_demosaic_rgb_ac_offset_read(uintptr_t base)11105 static __inline uint16_t acamera_isp_demosaic_rgb_ac_offset_read(uintptr_t base) {
11106     return (uint16_t)((system_sw_read_32(base + 0x1ae98L) & 0xfff0000) >> 16);
11107 }
11108 // ------------------------------------------------------------------------------ //
11109 // Register: sharp_alt_d
11110 // ------------------------------------------------------------------------------ //
11111 
11112 // ------------------------------------------------------------------------------ //
11113 // Directional sharp mask strength in signed 4.4 format
11114 // ------------------------------------------------------------------------------ //
11115 
11116 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_D_DEFAULT (0x30)
11117 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_D_DATASIZE (8)
11118 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_D_OFFSET (0x2014)
11119 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_D_MASK (0xff)
11120 
11121 // args: data (8-bit)
acamera_isp_demosaic_rgb_sharp_alt_d_write(uintptr_t base,uint8_t data)11122 static __inline void acamera_isp_demosaic_rgb_sharp_alt_d_write(uintptr_t base, uint8_t data) {
11123     uint32_t curr = system_sw_read_32(base + 0x1ae9cL);
11124     system_sw_write_32(base + 0x1ae9cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
11125 }
acamera_isp_demosaic_rgb_sharp_alt_d_read(uintptr_t base)11126 static __inline uint8_t acamera_isp_demosaic_rgb_sharp_alt_d_read(uintptr_t base) {
11127     return (uint8_t)((system_sw_read_32(base + 0x1ae9cL) & 0xff) >> 0);
11128 }
11129 // ------------------------------------------------------------------------------ //
11130 // Register: sharp_alt_ud
11131 // ------------------------------------------------------------------------------ //
11132 
11133 // ------------------------------------------------------------------------------ //
11134 // Non-directional sharp mask strength in signed 4.4 format
11135 // ------------------------------------------------------------------------------ //
11136 
11137 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_UD_DEFAULT (0x20)
11138 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_UD_DATASIZE (8)
11139 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_UD_OFFSET (0x2014)
11140 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_UD_MASK (0xff00)
11141 
11142 // args: data (8-bit)
acamera_isp_demosaic_rgb_sharp_alt_ud_write(uintptr_t base,uint8_t data)11143 static __inline void acamera_isp_demosaic_rgb_sharp_alt_ud_write(uintptr_t base, uint8_t data) {
11144     uint32_t curr = system_sw_read_32(base + 0x1ae9cL);
11145     system_sw_write_32(base + 0x1ae9cL, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
11146 }
acamera_isp_demosaic_rgb_sharp_alt_ud_read(uintptr_t base)11147 static __inline uint8_t acamera_isp_demosaic_rgb_sharp_alt_ud_read(uintptr_t base) {
11148     return (uint8_t)((system_sw_read_32(base + 0x1ae9cL) & 0xff00) >> 8);
11149 }
11150 // ------------------------------------------------------------------------------ //
11151 // Register: np_offset
11152 // ------------------------------------------------------------------------------ //
11153 
11154 // ------------------------------------------------------------------------------ //
11155 // Noise profile offset in logarithmic 4.4 format
11156 // ------------------------------------------------------------------------------ //
11157 
11158 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFFSET_DEFAULT (0x00)
11159 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFFSET_DATASIZE (8)
11160 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFFSET_OFFSET (0x2014)
11161 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFFSET_MASK (0xff0000)
11162 
11163 // args: data (8-bit)
acamera_isp_demosaic_rgb_np_offset_write(uintptr_t base,uint8_t data)11164 static __inline void acamera_isp_demosaic_rgb_np_offset_write(uintptr_t base, uint8_t data) {
11165     uint32_t curr = system_sw_read_32(base + 0x1ae9cL);
11166     system_sw_write_32(base + 0x1ae9cL, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
11167 }
acamera_isp_demosaic_rgb_np_offset_read(uintptr_t base)11168 static __inline uint8_t acamera_isp_demosaic_rgb_np_offset_read(uintptr_t base) {
11169     return (uint8_t)((system_sw_read_32(base + 0x1ae9cL) & 0xff0000) >> 16);
11170 }
11171 // ------------------------------------------------------------------------------ //
11172 // Register: Dmsc config
11173 // ------------------------------------------------------------------------------ //
11174 
11175 // ------------------------------------------------------------------------------ //
11176 // Debug output select. Set to 0x00 for normal operation.
11177 // ------------------------------------------------------------------------------ //
11178 
11179 #define ACAMERA_ISP_DEMOSAIC_RGB_DMSC_CONFIG_DEFAULT (0x00)
11180 #define ACAMERA_ISP_DEMOSAIC_RGB_DMSC_CONFIG_DATASIZE (8)
11181 #define ACAMERA_ISP_DEMOSAIC_RGB_DMSC_CONFIG_OFFSET (0x2018)
11182 #define ACAMERA_ISP_DEMOSAIC_RGB_DMSC_CONFIG_MASK (0xff)
11183 
11184 // args: data (8-bit)
acamera_isp_demosaic_rgb_dmsc_config_write(uintptr_t base,uint8_t data)11185 static __inline void acamera_isp_demosaic_rgb_dmsc_config_write(uintptr_t base, uint8_t data) {
11186     uint32_t curr = system_sw_read_32(base + 0x1aea0L);
11187     system_sw_write_32(base + 0x1aea0L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
11188 }
acamera_isp_demosaic_rgb_dmsc_config_read(uintptr_t base)11189 static __inline uint8_t acamera_isp_demosaic_rgb_dmsc_config_read(uintptr_t base) {
11190     return (uint8_t)((system_sw_read_32(base + 0x1aea0L) & 0xff) >> 0);
11191 }
11192 // ------------------------------------------------------------------------------ //
11193 // Register: AC Thresh
11194 // ------------------------------------------------------------------------------ //
11195 
11196 // ------------------------------------------------------------------------------ //
11197 // Threshold for the range of AC blending in signed 2.9 format
11198 // ------------------------------------------------------------------------------ //
11199 
11200 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_THRESH_DEFAULT (0x1B3)
11201 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_THRESH_DATASIZE (12)
11202 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_THRESH_OFFSET (0x201c)
11203 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_THRESH_MASK (0xfff)
11204 
11205 // args: data (12-bit)
acamera_isp_demosaic_rgb_ac_thresh_write(uintptr_t base,uint16_t data)11206 static __inline void acamera_isp_demosaic_rgb_ac_thresh_write(uintptr_t base, uint16_t data) {
11207     uint32_t curr = system_sw_read_32(base + 0x1aea4L);
11208     system_sw_write_32(base + 0x1aea4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
11209 }
acamera_isp_demosaic_rgb_ac_thresh_read(uintptr_t base)11210 static __inline uint16_t acamera_isp_demosaic_rgb_ac_thresh_read(uintptr_t base) {
11211     return (uint16_t)((system_sw_read_32(base + 0x1aea4L) & 0xfff) >> 0);
11212 }
11213 // ------------------------------------------------------------------------------ //
11214 // Register: AC Slope
11215 // ------------------------------------------------------------------------------ //
11216 
11217 // ------------------------------------------------------------------------------ //
11218 // Slope of AC blending threshold in linear format 2.6
11219 // ------------------------------------------------------------------------------ //
11220 
11221 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_SLOPE_DEFAULT (0xCF)
11222 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_SLOPE_DATASIZE (8)
11223 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_SLOPE_OFFSET (0x201c)
11224 #define ACAMERA_ISP_DEMOSAIC_RGB_AC_SLOPE_MASK (0xff0000)
11225 
11226 // args: data (8-bit)
acamera_isp_demosaic_rgb_ac_slope_write(uintptr_t base,uint8_t data)11227 static __inline void acamera_isp_demosaic_rgb_ac_slope_write(uintptr_t base, uint8_t data) {
11228     uint32_t curr = system_sw_read_32(base + 0x1aea4L);
11229     system_sw_write_32(base + 0x1aea4L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
11230 }
acamera_isp_demosaic_rgb_ac_slope_read(uintptr_t base)11231 static __inline uint8_t acamera_isp_demosaic_rgb_ac_slope_read(uintptr_t base) {
11232     return (uint8_t)((system_sw_read_32(base + 0x1aea4L) & 0xff0000) >> 16);
11233 }
11234 // ------------------------------------------------------------------------------ //
11235 // Register: FC Slope
11236 // ------------------------------------------------------------------------------ //
11237 
11238 // ------------------------------------------------------------------------------ //
11239 // Slope (strength) of false color correction
11240 // ------------------------------------------------------------------------------ //
11241 
11242 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_SLOPE_DEFAULT (0x80)
11243 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_SLOPE_DATASIZE (8)
11244 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_SLOPE_OFFSET (0x2020)
11245 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_SLOPE_MASK (0xff)
11246 
11247 // args: data (8-bit)
acamera_isp_demosaic_rgb_fc_slope_write(uintptr_t base,uint8_t data)11248 static __inline void acamera_isp_demosaic_rgb_fc_slope_write(uintptr_t base, uint8_t data) {
11249     uint32_t curr = system_sw_read_32(base + 0x1aea8L);
11250     system_sw_write_32(base + 0x1aea8L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
11251 }
acamera_isp_demosaic_rgb_fc_slope_read(uintptr_t base)11252 static __inline uint8_t acamera_isp_demosaic_rgb_fc_slope_read(uintptr_t base) {
11253     return (uint8_t)((system_sw_read_32(base + 0x1aea8L) & 0xff) >> 0);
11254 }
11255 // ------------------------------------------------------------------------------ //
11256 // Register: FC Alias Slope
11257 // ------------------------------------------------------------------------------ //
11258 
11259 // ------------------------------------------------------------------------------ //
11260 // Slope (strength) of false colour correction after blending with saturation value in 2.6 unsigned format
11261 // ------------------------------------------------------------------------------ //
11262 
11263 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_ALIAS_SLOPE_DEFAULT (0x55)
11264 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_ALIAS_SLOPE_DATASIZE (8)
11265 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_ALIAS_SLOPE_OFFSET (0x2020)
11266 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_ALIAS_SLOPE_MASK (0xff00)
11267 
11268 // args: data (8-bit)
acamera_isp_demosaic_rgb_fc_alias_slope_write(uintptr_t base,uint8_t data)11269 static __inline void acamera_isp_demosaic_rgb_fc_alias_slope_write(uintptr_t base, uint8_t data) {
11270     uint32_t curr = system_sw_read_32(base + 0x1aea8L);
11271     system_sw_write_32(base + 0x1aea8L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
11272 }
acamera_isp_demosaic_rgb_fc_alias_slope_read(uintptr_t base)11273 static __inline uint8_t acamera_isp_demosaic_rgb_fc_alias_slope_read(uintptr_t base) {
11274     return (uint8_t)((system_sw_read_32(base + 0x1aea8L) & 0xff00) >> 8);
11275 }
11276 // ------------------------------------------------------------------------------ //
11277 // Register: FC Alias Thresh
11278 // ------------------------------------------------------------------------------ //
11279 
11280 // ------------------------------------------------------------------------------ //
11281 // Threshold of false colour correction after blending with saturation valuet in in 0.8 unsigned format
11282 // ------------------------------------------------------------------------------ //
11283 
11284 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_ALIAS_THRESH_DEFAULT (0x00)
11285 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_ALIAS_THRESH_DATASIZE (8)
11286 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_ALIAS_THRESH_OFFSET (0x2020)
11287 #define ACAMERA_ISP_DEMOSAIC_RGB_FC_ALIAS_THRESH_MASK (0xff0000)
11288 
11289 // args: data (8-bit)
acamera_isp_demosaic_rgb_fc_alias_thresh_write(uintptr_t base,uint8_t data)11290 static __inline void acamera_isp_demosaic_rgb_fc_alias_thresh_write(uintptr_t base, uint8_t data) {
11291     uint32_t curr = system_sw_read_32(base + 0x1aea8L);
11292     system_sw_write_32(base + 0x1aea8L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
11293 }
acamera_isp_demosaic_rgb_fc_alias_thresh_read(uintptr_t base)11294 static __inline uint8_t acamera_isp_demosaic_rgb_fc_alias_thresh_read(uintptr_t base) {
11295     return (uint8_t)((system_sw_read_32(base + 0x1aea8L) & 0xff0000) >> 16);
11296 }
11297 // ------------------------------------------------------------------------------ //
11298 // Register: NP off
11299 // ------------------------------------------------------------------------------ //
11300 
11301 // ------------------------------------------------------------------------------ //
11302 // Noise profile black level offset
11303 // ------------------------------------------------------------------------------ //
11304 
11305 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFF_DEFAULT (0)
11306 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFF_DATASIZE (7)
11307 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFF_OFFSET (0x2024)
11308 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFF_MASK (0x7f)
11309 
11310 // args: data (7-bit)
acamera_isp_demosaic_rgb_np_off_write(uintptr_t base,uint8_t data)11311 static __inline void acamera_isp_demosaic_rgb_np_off_write(uintptr_t base, uint8_t data) {
11312     uint32_t curr = system_sw_read_32(base + 0x1aeacL);
11313     system_sw_write_32(base + 0x1aeacL, (((uint32_t) (data & 0x7f)) << 0) | (curr & 0xffffff80));
11314 }
acamera_isp_demosaic_rgb_np_off_read(uintptr_t base)11315 static __inline uint8_t acamera_isp_demosaic_rgb_np_off_read(uintptr_t base) {
11316     return (uint8_t)((system_sw_read_32(base + 0x1aeacL) & 0x7f) >> 0);
11317 }
11318 // ------------------------------------------------------------------------------ //
11319 // Register: NP off reflect
11320 // ------------------------------------------------------------------------------ //
11321 
11322 // ------------------------------------------------------------------------------ //
11323 //
11324 //          Defines how values below black level are obtained.
11325 //          0: Repeat the first table entry.
11326 //          1: Reflect the noise profile curve below black level.
11327 //
11328 // ------------------------------------------------------------------------------ //
11329 
11330 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFF_REFLECT_DEFAULT (0)
11331 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFF_REFLECT_DATASIZE (1)
11332 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFF_REFLECT_OFFSET (0x2024)
11333 #define ACAMERA_ISP_DEMOSAIC_RGB_NP_OFF_REFLECT_MASK (0x80)
11334 
11335 // args: data (1-bit)
acamera_isp_demosaic_rgb_np_off_reflect_write(uintptr_t base,uint8_t data)11336 static __inline void acamera_isp_demosaic_rgb_np_off_reflect_write(uintptr_t base, uint8_t data) {
11337     uint32_t curr = system_sw_read_32(base + 0x1aeacL);
11338     system_sw_write_32(base + 0x1aeacL, (((uint32_t) (data & 0x1)) << 7) | (curr & 0xffffff7f));
11339 }
acamera_isp_demosaic_rgb_np_off_reflect_read(uintptr_t base)11340 static __inline uint8_t acamera_isp_demosaic_rgb_np_off_reflect_read(uintptr_t base) {
11341     return (uint8_t)((system_sw_read_32(base + 0x1aeacL) & 0x80) >> 7);
11342 }
11343 // ------------------------------------------------------------------------------ //
11344 // Register: sharp_alt_ld
11345 // ------------------------------------------------------------------------------ //
11346 
11347 // ------------------------------------------------------------------------------ //
11348 // Sharpen strength for L_Ld in unsigned 4.4 format
11349 // ------------------------------------------------------------------------------ //
11350 
11351 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LD_DEFAULT (0x10)
11352 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LD_DATASIZE (8)
11353 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LD_OFFSET (0x2028)
11354 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LD_MASK (0xff)
11355 
11356 // args: data (8-bit)
acamera_isp_demosaic_rgb_sharp_alt_ld_write(uintptr_t base,uint8_t data)11357 static __inline void acamera_isp_demosaic_rgb_sharp_alt_ld_write(uintptr_t base, uint8_t data) {
11358     uint32_t curr = system_sw_read_32(base + 0x1aeb0L);
11359     system_sw_write_32(base + 0x1aeb0L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
11360 }
acamera_isp_demosaic_rgb_sharp_alt_ld_read(uintptr_t base)11361 static __inline uint8_t acamera_isp_demosaic_rgb_sharp_alt_ld_read(uintptr_t base) {
11362     return (uint8_t)((system_sw_read_32(base + 0x1aeb0L) & 0xff) >> 0);
11363 }
11364 // ------------------------------------------------------------------------------ //
11365 // Register: sharp_alt_ldu
11366 // ------------------------------------------------------------------------------ //
11367 
11368 // ------------------------------------------------------------------------------ //
11369 // Sharpen strength for L_Ldu in unsigned 4.4 format
11370 // ------------------------------------------------------------------------------ //
11371 
11372 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LDU_DEFAULT (0x10)
11373 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LDU_DATASIZE (8)
11374 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LDU_OFFSET (0x2028)
11375 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LDU_MASK (0xff00)
11376 
11377 // args: data (8-bit)
acamera_isp_demosaic_rgb_sharp_alt_ldu_write(uintptr_t base,uint8_t data)11378 static __inline void acamera_isp_demosaic_rgb_sharp_alt_ldu_write(uintptr_t base, uint8_t data) {
11379     uint32_t curr = system_sw_read_32(base + 0x1aeb0L);
11380     system_sw_write_32(base + 0x1aeb0L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
11381 }
acamera_isp_demosaic_rgb_sharp_alt_ldu_read(uintptr_t base)11382 static __inline uint8_t acamera_isp_demosaic_rgb_sharp_alt_ldu_read(uintptr_t base) {
11383     return (uint8_t)((system_sw_read_32(base + 0x1aeb0L) & 0xff00) >> 8);
11384 }
11385 // ------------------------------------------------------------------------------ //
11386 // Register: sharp_alt_lu
11387 // ------------------------------------------------------------------------------ //
11388 
11389 // ------------------------------------------------------------------------------ //
11390 // Sharpen strength for L_Lu in unsigned 4.4 format
11391 // ------------------------------------------------------------------------------ //
11392 
11393 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LU_DEFAULT (0x10)
11394 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LU_DATASIZE (8)
11395 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LU_OFFSET (0x2028)
11396 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARP_ALT_LU_MASK (0xff0000)
11397 
11398 // args: data (8-bit)
acamera_isp_demosaic_rgb_sharp_alt_lu_write(uintptr_t base,uint8_t data)11399 static __inline void acamera_isp_demosaic_rgb_sharp_alt_lu_write(uintptr_t base, uint8_t data) {
11400     uint32_t curr = system_sw_read_32(base + 0x1aeb0L);
11401     system_sw_write_32(base + 0x1aeb0L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
11402 }
acamera_isp_demosaic_rgb_sharp_alt_lu_read(uintptr_t base)11403 static __inline uint8_t acamera_isp_demosaic_rgb_sharp_alt_lu_read(uintptr_t base) {
11404     return (uint8_t)((system_sw_read_32(base + 0x1aeb0L) & 0xff0000) >> 16);
11405 }
11406 // ------------------------------------------------------------------------------ //
11407 // Register: sad_amp
11408 // ------------------------------------------------------------------------------ //
11409 
11410 // ------------------------------------------------------------------------------ //
11411 // Sad amplifier in unsigned 4.4 format
11412 // ------------------------------------------------------------------------------ //
11413 
11414 #define ACAMERA_ISP_DEMOSAIC_RGB_SAD_AMP_DEFAULT (0x10)
11415 #define ACAMERA_ISP_DEMOSAIC_RGB_SAD_AMP_DATASIZE (8)
11416 #define ACAMERA_ISP_DEMOSAIC_RGB_SAD_AMP_OFFSET (0x2028)
11417 #define ACAMERA_ISP_DEMOSAIC_RGB_SAD_AMP_MASK (0xff000000)
11418 
11419 // args: data (8-bit)
acamera_isp_demosaic_rgb_sad_amp_write(uintptr_t base,uint8_t data)11420 static __inline void acamera_isp_demosaic_rgb_sad_amp_write(uintptr_t base, uint8_t data) {
11421     uint32_t curr = system_sw_read_32(base + 0x1aeb0L);
11422     system_sw_write_32(base + 0x1aeb0L, (((uint32_t) (data & 0xff)) << 24) | (curr & 0xffffff));
11423 }
acamera_isp_demosaic_rgb_sad_amp_read(uintptr_t base)11424 static __inline uint8_t acamera_isp_demosaic_rgb_sad_amp_read(uintptr_t base) {
11425     return (uint8_t)((system_sw_read_32(base + 0x1aeb0L) & 0xff000000) >> 24);
11426 }
11427 // ------------------------------------------------------------------------------ //
11428 // Register: min_d_strength
11429 // ------------------------------------------------------------------------------ //
11430 
11431 // ------------------------------------------------------------------------------ //
11432 // Min threshold for the directional L_L in signed 2's complement s.12 format
11433 // ------------------------------------------------------------------------------ //
11434 
11435 #define ACAMERA_ISP_DEMOSAIC_RGB_MIN_D_STRENGTH_DEFAULT (0x1F33)
11436 #define ACAMERA_ISP_DEMOSAIC_RGB_MIN_D_STRENGTH_DATASIZE (13)
11437 #define ACAMERA_ISP_DEMOSAIC_RGB_MIN_D_STRENGTH_OFFSET (0x202c)
11438 #define ACAMERA_ISP_DEMOSAIC_RGB_MIN_D_STRENGTH_MASK (0x1fff)
11439 
11440 // args: data (13-bit)
acamera_isp_demosaic_rgb_min_d_strength_write(uintptr_t base,uint16_t data)11441 static __inline void acamera_isp_demosaic_rgb_min_d_strength_write(uintptr_t base, uint16_t data) {
11442     uint32_t curr = system_sw_read_32(base + 0x1aeb4L);
11443     system_sw_write_32(base + 0x1aeb4L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
11444 }
acamera_isp_demosaic_rgb_min_d_strength_read(uintptr_t base)11445 static __inline uint16_t acamera_isp_demosaic_rgb_min_d_strength_read(uintptr_t base) {
11446     return (uint16_t)((system_sw_read_32(base + 0x1aeb4L) & 0x1fff) >> 0);
11447 }
11448 // ------------------------------------------------------------------------------ //
11449 // Register: min_ud_strength
11450 // ------------------------------------------------------------------------------ //
11451 
11452 // ------------------------------------------------------------------------------ //
11453 // Min threshold for the un-directional L_Lu in signed 2's complement s.12 format
11454 // ------------------------------------------------------------------------------ //
11455 
11456 #define ACAMERA_ISP_DEMOSAIC_RGB_MIN_UD_STRENGTH_DEFAULT (0x1F48)
11457 #define ACAMERA_ISP_DEMOSAIC_RGB_MIN_UD_STRENGTH_DATASIZE (13)
11458 #define ACAMERA_ISP_DEMOSAIC_RGB_MIN_UD_STRENGTH_OFFSET (0x2030)
11459 #define ACAMERA_ISP_DEMOSAIC_RGB_MIN_UD_STRENGTH_MASK (0x1fff)
11460 
11461 // args: data (13-bit)
acamera_isp_demosaic_rgb_min_ud_strength_write(uintptr_t base,uint16_t data)11462 static __inline void acamera_isp_demosaic_rgb_min_ud_strength_write(uintptr_t base, uint16_t data) {
11463     uint32_t curr = system_sw_read_32(base + 0x1aeb8L);
11464     system_sw_write_32(base + 0x1aeb8L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
11465 }
acamera_isp_demosaic_rgb_min_ud_strength_read(uintptr_t base)11466 static __inline uint16_t acamera_isp_demosaic_rgb_min_ud_strength_read(uintptr_t base) {
11467     return (uint16_t)((system_sw_read_32(base + 0x1aeb8L) & 0x1fff) >> 0);
11468 }
11469 // ------------------------------------------------------------------------------ //
11470 // Register: sharpen_alg_select
11471 // ------------------------------------------------------------------------------ //
11472 
11473 // ------------------------------------------------------------------------------ //
11474 // To select new sharp algorithm or not
11475 // ------------------------------------------------------------------------------ //
11476 
11477 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARPEN_ALG_SELECT_DEFAULT (0x01)
11478 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARPEN_ALG_SELECT_DATASIZE (1)
11479 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARPEN_ALG_SELECT_OFFSET (0x2034)
11480 #define ACAMERA_ISP_DEMOSAIC_RGB_SHARPEN_ALG_SELECT_MASK (0x1)
11481 
11482 // args: data (1-bit)
acamera_isp_demosaic_rgb_sharpen_alg_select_write(uintptr_t base,uint8_t data)11483 static __inline void acamera_isp_demosaic_rgb_sharpen_alg_select_write(uintptr_t base, uint8_t data) {
11484     uint32_t curr = system_sw_read_32(base + 0x1aebcL);
11485     system_sw_write_32(base + 0x1aebcL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
11486 }
acamera_isp_demosaic_rgb_sharpen_alg_select_read(uintptr_t base)11487 static __inline uint8_t acamera_isp_demosaic_rgb_sharpen_alg_select_read(uintptr_t base) {
11488     return (uint8_t)((system_sw_read_32(base + 0x1aebcL) & 0x1) >> 0);
11489 }
11490 // ------------------------------------------------------------------------------ //
11491 // Register: UU SH Slope
11492 // ------------------------------------------------------------------------------ //
11493 
11494 // ------------------------------------------------------------------------------ //
11495 // Slope of undefined blending threshold in 4.4 logarithmic format
11496 // ------------------------------------------------------------------------------ //
11497 
11498 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_SLOPE_DEFAULT (0x80)
11499 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_SLOPE_DATASIZE (8)
11500 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_SLOPE_OFFSET (0x2038)
11501 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_SLOPE_MASK (0xff)
11502 
11503 // args: data (8-bit)
acamera_isp_demosaic_rgb_uu_sh_slope_write(uintptr_t base,uint8_t data)11504 static __inline void acamera_isp_demosaic_rgb_uu_sh_slope_write(uintptr_t base, uint8_t data) {
11505     uint32_t curr = system_sw_read_32(base + 0x1aec0L);
11506     system_sw_write_32(base + 0x1aec0L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
11507 }
acamera_isp_demosaic_rgb_uu_sh_slope_read(uintptr_t base)11508 static __inline uint8_t acamera_isp_demosaic_rgb_uu_sh_slope_read(uintptr_t base) {
11509     return (uint8_t)((system_sw_read_32(base + 0x1aec0L) & 0xff) >> 0);
11510 }
11511 // ------------------------------------------------------------------------------ //
11512 // Register: lg_det_thresh
11513 // ------------------------------------------------------------------------------ //
11514 
11515 // ------------------------------------------------------------------------------ //
11516 // Level to which the green channel is considered low in which case the gradient is calculated using only the blue and red channels
11517 // ------------------------------------------------------------------------------ //
11518 
11519 #define ACAMERA_ISP_DEMOSAIC_RGB_LG_DET_THRESH_DEFAULT (0x08)
11520 #define ACAMERA_ISP_DEMOSAIC_RGB_LG_DET_THRESH_DATASIZE (8)
11521 #define ACAMERA_ISP_DEMOSAIC_RGB_LG_DET_THRESH_OFFSET (0x2038)
11522 #define ACAMERA_ISP_DEMOSAIC_RGB_LG_DET_THRESH_MASK (0xff00)
11523 
11524 // args: data (8-bit)
acamera_isp_demosaic_rgb_lg_det_thresh_write(uintptr_t base,uint8_t data)11525 static __inline void acamera_isp_demosaic_rgb_lg_det_thresh_write(uintptr_t base, uint8_t data) {
11526     uint32_t curr = system_sw_read_32(base + 0x1aec0L);
11527     system_sw_write_32(base + 0x1aec0L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
11528 }
acamera_isp_demosaic_rgb_lg_det_thresh_read(uintptr_t base)11529 static __inline uint8_t acamera_isp_demosaic_rgb_lg_det_thresh_read(uintptr_t base) {
11530     return (uint8_t)((system_sw_read_32(base + 0x1aec0L) & 0xff00) >> 8);
11531 }
11532 // ------------------------------------------------------------------------------ //
11533 // Register: grey_det_thresh
11534 // ------------------------------------------------------------------------------ //
11535 
11536 // ------------------------------------------------------------------------------ //
11537 // Threshold applied to the inter-channel difference for detecting grey region
11538 // ------------------------------------------------------------------------------ //
11539 
11540 #define ACAMERA_ISP_DEMOSAIC_RGB_GREY_DET_THRESH_DEFAULT (0x08)
11541 #define ACAMERA_ISP_DEMOSAIC_RGB_GREY_DET_THRESH_DATASIZE (8)
11542 #define ACAMERA_ISP_DEMOSAIC_RGB_GREY_DET_THRESH_OFFSET (0x2038)
11543 #define ACAMERA_ISP_DEMOSAIC_RGB_GREY_DET_THRESH_MASK (0xff0000)
11544 
11545 // args: data (8-bit)
acamera_isp_demosaic_rgb_grey_det_thresh_write(uintptr_t base,uint8_t data)11546 static __inline void acamera_isp_demosaic_rgb_grey_det_thresh_write(uintptr_t base, uint8_t data) {
11547     uint32_t curr = system_sw_read_32(base + 0x1aec0L);
11548     system_sw_write_32(base + 0x1aec0L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
11549 }
acamera_isp_demosaic_rgb_grey_det_thresh_read(uintptr_t base)11550 static __inline uint8_t acamera_isp_demosaic_rgb_grey_det_thresh_read(uintptr_t base) {
11551     return (uint8_t)((system_sw_read_32(base + 0x1aec0L) & 0xff0000) >> 16);
11552 }
11553 // ------------------------------------------------------------------------------ //
11554 // Register: UU SH Thresh
11555 // ------------------------------------------------------------------------------ //
11556 
11557 // ------------------------------------------------------------------------------ //
11558 // Threshold for the range of undefined blending
11559 // ------------------------------------------------------------------------------ //
11560 
11561 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_THRESH_DEFAULT (0x8)
11562 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_THRESH_DATASIZE (12)
11563 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_THRESH_OFFSET (0x203c)
11564 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_THRESH_MASK (0xfff)
11565 
11566 // args: data (12-bit)
acamera_isp_demosaic_rgb_uu_sh_thresh_write(uintptr_t base,uint16_t data)11567 static __inline void acamera_isp_demosaic_rgb_uu_sh_thresh_write(uintptr_t base, uint16_t data) {
11568     uint32_t curr = system_sw_read_32(base + 0x1aec4L);
11569     system_sw_write_32(base + 0x1aec4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
11570 }
acamera_isp_demosaic_rgb_uu_sh_thresh_read(uintptr_t base)11571 static __inline uint16_t acamera_isp_demosaic_rgb_uu_sh_thresh_read(uintptr_t base) {
11572     return (uint16_t)((system_sw_read_32(base + 0x1aec4L) & 0xfff) >> 0);
11573 }
11574 // ------------------------------------------------------------------------------ //
11575 // Register: UU SH Offset
11576 // ------------------------------------------------------------------------------ //
11577 
11578 // ------------------------------------------------------------------------------ //
11579 // Offset for undefined blending threshold
11580 // ------------------------------------------------------------------------------ //
11581 
11582 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_OFFSET_DEFAULT (0x000)
11583 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_OFFSET_DATASIZE (12)
11584 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_OFFSET_OFFSET (0x203c)
11585 #define ACAMERA_ISP_DEMOSAIC_RGB_UU_SH_OFFSET_MASK (0xfff0000)
11586 
11587 // args: data (12-bit)
acamera_isp_demosaic_rgb_uu_sh_offset_write(uintptr_t base,uint16_t data)11588 static __inline void acamera_isp_demosaic_rgb_uu_sh_offset_write(uintptr_t base, uint16_t data) {
11589     uint32_t curr = system_sw_read_32(base + 0x1aec4L);
11590     system_sw_write_32(base + 0x1aec4L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
11591 }
acamera_isp_demosaic_rgb_uu_sh_offset_read(uintptr_t base)11592 static __inline uint16_t acamera_isp_demosaic_rgb_uu_sh_offset_read(uintptr_t base) {
11593     return (uint16_t)((system_sw_read_32(base + 0x1aec4L) & 0xfff0000) >> 16);
11594 }
11595 // ------------------------------------------------------------------------------ //
11596 // Register: lg_det_slope
11597 // ------------------------------------------------------------------------------ //
11598 
11599 // ------------------------------------------------------------------------------ //
11600 // Control the ramp of the linear thresholding for the low green detector
11601 // ------------------------------------------------------------------------------ //
11602 
11603 #define ACAMERA_ISP_DEMOSAIC_RGB_LG_DET_SLOPE_DEFAULT (0x8000)
11604 #define ACAMERA_ISP_DEMOSAIC_RGB_LG_DET_SLOPE_DATASIZE (16)
11605 #define ACAMERA_ISP_DEMOSAIC_RGB_LG_DET_SLOPE_OFFSET (0x2040)
11606 #define ACAMERA_ISP_DEMOSAIC_RGB_LG_DET_SLOPE_MASK (0xffff)
11607 
11608 // args: data (16-bit)
acamera_isp_demosaic_rgb_lg_det_slope_write(uintptr_t base,uint16_t data)11609 static __inline void acamera_isp_demosaic_rgb_lg_det_slope_write(uintptr_t base, uint16_t data) {
11610     uint32_t curr = system_sw_read_32(base + 0x1aec8L);
11611     system_sw_write_32(base + 0x1aec8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
11612 }
acamera_isp_demosaic_rgb_lg_det_slope_read(uintptr_t base)11613 static __inline uint16_t acamera_isp_demosaic_rgb_lg_det_slope_read(uintptr_t base) {
11614     return (uint16_t)((system_sw_read_32(base + 0x1aec8L) & 0xffff) >> 0);
11615 }
11616 // ------------------------------------------------------------------------------ //
11617 // Register: grey_det_slope
11618 // ------------------------------------------------------------------------------ //
11619 
11620 // ------------------------------------------------------------------------------ //
11621 // Control the ramp of the linear thresholding for the grey detector
11622 // ------------------------------------------------------------------------------ //
11623 
11624 #define ACAMERA_ISP_DEMOSAIC_RGB_GREY_DET_SLOPE_DEFAULT (0x1068)
11625 #define ACAMERA_ISP_DEMOSAIC_RGB_GREY_DET_SLOPE_DATASIZE (16)
11626 #define ACAMERA_ISP_DEMOSAIC_RGB_GREY_DET_SLOPE_OFFSET (0x2040)
11627 #define ACAMERA_ISP_DEMOSAIC_RGB_GREY_DET_SLOPE_MASK (0xffff0000)
11628 
11629 // args: data (16-bit)
acamera_isp_demosaic_rgb_grey_det_slope_write(uintptr_t base,uint16_t data)11630 static __inline void acamera_isp_demosaic_rgb_grey_det_slope_write(uintptr_t base, uint16_t data) {
11631     uint32_t curr = system_sw_read_32(base + 0x1aec8L);
11632     system_sw_write_32(base + 0x1aec8L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
11633 }
acamera_isp_demosaic_rgb_grey_det_slope_read(uintptr_t base)11634 static __inline uint16_t acamera_isp_demosaic_rgb_grey_det_slope_read(uintptr_t base) {
11635     return (uint16_t)((system_sw_read_32(base + 0x1aec8L) & 0xffff0000) >> 16);
11636 }
11637 // ------------------------------------------------------------------------------ //
11638 // Register: max_d_strength
11639 // ------------------------------------------------------------------------------ //
11640 
11641 // ------------------------------------------------------------------------------ //
11642 // Max threshold for the directional L_L in signed 2's complement s1+0.12 format
11643 // ------------------------------------------------------------------------------ //
11644 
11645 #define ACAMERA_ISP_DEMOSAIC_RGB_MAX_D_STRENGTH_DEFAULT (0x333)
11646 #define ACAMERA_ISP_DEMOSAIC_RGB_MAX_D_STRENGTH_DATASIZE (13)
11647 #define ACAMERA_ISP_DEMOSAIC_RGB_MAX_D_STRENGTH_OFFSET (0x2044)
11648 #define ACAMERA_ISP_DEMOSAIC_RGB_MAX_D_STRENGTH_MASK (0x1fff)
11649 
11650 // args: data (13-bit)
acamera_isp_demosaic_rgb_max_d_strength_write(uintptr_t base,uint16_t data)11651 static __inline void acamera_isp_demosaic_rgb_max_d_strength_write(uintptr_t base, uint16_t data) {
11652     uint32_t curr = system_sw_read_32(base + 0x1aeccL);
11653     system_sw_write_32(base + 0x1aeccL, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
11654 }
acamera_isp_demosaic_rgb_max_d_strength_read(uintptr_t base)11655 static __inline uint16_t acamera_isp_demosaic_rgb_max_d_strength_read(uintptr_t base) {
11656     return (uint16_t)((system_sw_read_32(base + 0x1aeccL) & 0x1fff) >> 0);
11657 }
11658 // ------------------------------------------------------------------------------ //
11659 // Register: max_ud_strength
11660 // ------------------------------------------------------------------------------ //
11661 
11662 // ------------------------------------------------------------------------------ //
11663 // Max threshold for the undirectional L_Lu in signed 2's complement s1+0.12 format
11664 // ------------------------------------------------------------------------------ //
11665 
11666 #define ACAMERA_ISP_DEMOSAIC_RGB_MAX_UD_STRENGTH_DEFAULT (0x333)
11667 #define ACAMERA_ISP_DEMOSAIC_RGB_MAX_UD_STRENGTH_DATASIZE (13)
11668 #define ACAMERA_ISP_DEMOSAIC_RGB_MAX_UD_STRENGTH_OFFSET (0x2044)
11669 #define ACAMERA_ISP_DEMOSAIC_RGB_MAX_UD_STRENGTH_MASK (0x1fff0000)
11670 
11671 // args: data (13-bit)
acamera_isp_demosaic_rgb_max_ud_strength_write(uintptr_t base,uint16_t data)11672 static __inline void acamera_isp_demosaic_rgb_max_ud_strength_write(uintptr_t base, uint16_t data) {
11673     uint32_t curr = system_sw_read_32(base + 0x1aeccL);
11674     system_sw_write_32(base + 0x1aeccL, (((uint32_t) (data & 0x1fff)) << 16) | (curr & 0xe000ffff));
11675 }
acamera_isp_demosaic_rgb_max_ud_strength_read(uintptr_t base)11676 static __inline uint16_t acamera_isp_demosaic_rgb_max_ud_strength_read(uintptr_t base) {
11677     return (uint16_t)((system_sw_read_32(base + 0x1aeccL) & 0x1fff0000) >> 16);
11678 }
11679 // ------------------------------------------------------------------------------ //
11680 // Register: luma_thresh_low_d
11681 // ------------------------------------------------------------------------------ //
11682 
11683 // ------------------------------------------------------------------------------ //
11684 // Intensity values above this value will be sharpen
11685 // ------------------------------------------------------------------------------ //
11686 
11687 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_LOW_D_DEFAULT (0x8)
11688 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_LOW_D_DATASIZE (12)
11689 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_LOW_D_OFFSET (0x2048)
11690 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_LOW_D_MASK (0xfff)
11691 
11692 // args: data (12-bit)
acamera_isp_demosaic_rgb_luma_thresh_low_d_write(uintptr_t base,uint16_t data)11693 static __inline void acamera_isp_demosaic_rgb_luma_thresh_low_d_write(uintptr_t base, uint16_t data) {
11694     uint32_t curr = system_sw_read_32(base + 0x1aed0L);
11695     system_sw_write_32(base + 0x1aed0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
11696 }
acamera_isp_demosaic_rgb_luma_thresh_low_d_read(uintptr_t base)11697 static __inline uint16_t acamera_isp_demosaic_rgb_luma_thresh_low_d_read(uintptr_t base) {
11698     return (uint16_t)((system_sw_read_32(base + 0x1aed0L) & 0xfff) >> 0);
11699 }
11700 // ------------------------------------------------------------------------------ //
11701 // Register: luma_offset_low_d
11702 // ------------------------------------------------------------------------------ //
11703 
11704 // ------------------------------------------------------------------------------ //
11705 // Linear threshold offset corresponding to luma_thresh_low_d
11706 // ------------------------------------------------------------------------------ //
11707 
11708 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_OFFSET_LOW_D_DEFAULT (0x0)
11709 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_OFFSET_LOW_D_DATASIZE (8)
11710 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_OFFSET_LOW_D_OFFSET (0x2048)
11711 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_OFFSET_LOW_D_MASK (0xff0000)
11712 
11713 // args: data (8-bit)
acamera_isp_demosaic_rgb_luma_offset_low_d_write(uintptr_t base,uint8_t data)11714 static __inline void acamera_isp_demosaic_rgb_luma_offset_low_d_write(uintptr_t base, uint8_t data) {
11715     uint32_t curr = system_sw_read_32(base + 0x1aed0L);
11716     system_sw_write_32(base + 0x1aed0L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
11717 }
acamera_isp_demosaic_rgb_luma_offset_low_d_read(uintptr_t base)11718 static __inline uint8_t acamera_isp_demosaic_rgb_luma_offset_low_d_read(uintptr_t base) {
11719     return (uint8_t)((system_sw_read_32(base + 0x1aed0L) & 0xff0000) >> 16);
11720 }
11721 // ------------------------------------------------------------------------------ //
11722 // Register: luma_slope_low_d
11723 // ------------------------------------------------------------------------------ //
11724 
11725 // ------------------------------------------------------------------------------ //
11726 // Linear threshold slope corresponding to luma_thresh_low_d
11727 // ------------------------------------------------------------------------------ //
11728 
11729 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_LOW_D_DEFAULT (0x4000)
11730 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_LOW_D_DATASIZE (20)
11731 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_LOW_D_OFFSET (0x204c)
11732 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_LOW_D_MASK (0xfffff)
11733 
11734 // args: data (20-bit)
acamera_isp_demosaic_rgb_luma_slope_low_d_write(uintptr_t base,uint32_t data)11735 static __inline void acamera_isp_demosaic_rgb_luma_slope_low_d_write(uintptr_t base, uint32_t data) {
11736     uint32_t curr = system_sw_read_32(base + 0x1aed4L);
11737     system_sw_write_32(base + 0x1aed4L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
11738 }
acamera_isp_demosaic_rgb_luma_slope_low_d_read(uintptr_t base)11739 static __inline uint32_t acamera_isp_demosaic_rgb_luma_slope_low_d_read(uintptr_t base) {
11740     return (uint32_t)((system_sw_read_32(base + 0x1aed4L) & 0xfffff) >> 0);
11741 }
11742 // ------------------------------------------------------------------------------ //
11743 // Register: luma_thresh_high_d
11744 // ------------------------------------------------------------------------------ //
11745 
11746 // ------------------------------------------------------------------------------ //
11747 // Intensity values below this value will be sharpen
11748 // ------------------------------------------------------------------------------ //
11749 
11750 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_HIGH_D_DEFAULT (0xFA0)
11751 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_HIGH_D_DATASIZE (12)
11752 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_HIGH_D_OFFSET (0x2050)
11753 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_HIGH_D_MASK (0xfff0000)
11754 
11755 // args: data (12-bit)
acamera_isp_demosaic_rgb_luma_thresh_high_d_write(uintptr_t base,uint16_t data)11756 static __inline void acamera_isp_demosaic_rgb_luma_thresh_high_d_write(uintptr_t base, uint16_t data) {
11757     uint32_t curr = system_sw_read_32(base + 0x1aed8L);
11758     system_sw_write_32(base + 0x1aed8L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
11759 }
acamera_isp_demosaic_rgb_luma_thresh_high_d_read(uintptr_t base)11760 static __inline uint16_t acamera_isp_demosaic_rgb_luma_thresh_high_d_read(uintptr_t base) {
11761     return (uint16_t)((system_sw_read_32(base + 0x1aed8L) & 0xfff0000) >> 16);
11762 }
11763 // ------------------------------------------------------------------------------ //
11764 // Register: luma_slope_high_d
11765 // ------------------------------------------------------------------------------ //
11766 
11767 // ------------------------------------------------------------------------------ //
11768 // Linear threshold slope corresponding to luma_thresh_high_d
11769 // ------------------------------------------------------------------------------ //
11770 
11771 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_HIGH_D_DEFAULT (0x4000)
11772 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_HIGH_D_DATASIZE (20)
11773 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_HIGH_D_OFFSET (0x2054)
11774 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_HIGH_D_MASK (0xfffff)
11775 
11776 // args: data (20-bit)
acamera_isp_demosaic_rgb_luma_slope_high_d_write(uintptr_t base,uint32_t data)11777 static __inline void acamera_isp_demosaic_rgb_luma_slope_high_d_write(uintptr_t base, uint32_t data) {
11778     uint32_t curr = system_sw_read_32(base + 0x1aedcL);
11779     system_sw_write_32(base + 0x1aedcL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
11780 }
acamera_isp_demosaic_rgb_luma_slope_high_d_read(uintptr_t base)11781 static __inline uint32_t acamera_isp_demosaic_rgb_luma_slope_high_d_read(uintptr_t base) {
11782     return (uint32_t)((system_sw_read_32(base + 0x1aedcL) & 0xfffff) >> 0);
11783 }
11784 // ------------------------------------------------------------------------------ //
11785 // Register: luma_thresh_low_ud
11786 // ------------------------------------------------------------------------------ //
11787 
11788 // ------------------------------------------------------------------------------ //
11789 // Intensity values above this value will be sharpen
11790 // ------------------------------------------------------------------------------ //
11791 
11792 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_LOW_UD_DEFAULT (0x8)
11793 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_LOW_UD_DATASIZE (12)
11794 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_LOW_UD_OFFSET (0x2058)
11795 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_LOW_UD_MASK (0xfff)
11796 
11797 // args: data (12-bit)
acamera_isp_demosaic_rgb_luma_thresh_low_ud_write(uintptr_t base,uint16_t data)11798 static __inline void acamera_isp_demosaic_rgb_luma_thresh_low_ud_write(uintptr_t base, uint16_t data) {
11799     uint32_t curr = system_sw_read_32(base + 0x1aee0L);
11800     system_sw_write_32(base + 0x1aee0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
11801 }
acamera_isp_demosaic_rgb_luma_thresh_low_ud_read(uintptr_t base)11802 static __inline uint16_t acamera_isp_demosaic_rgb_luma_thresh_low_ud_read(uintptr_t base) {
11803     return (uint16_t)((system_sw_read_32(base + 0x1aee0L) & 0xfff) >> 0);
11804 }
11805 // ------------------------------------------------------------------------------ //
11806 // Register: luma_offset_low_ud
11807 // ------------------------------------------------------------------------------ //
11808 
11809 // ------------------------------------------------------------------------------ //
11810 // Linear threshold offset corresponding to luma_thresh_low_ud
11811 // ------------------------------------------------------------------------------ //
11812 
11813 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_OFFSET_LOW_UD_DEFAULT (0x0)
11814 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_OFFSET_LOW_UD_DATASIZE (8)
11815 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_OFFSET_LOW_UD_OFFSET (0x2058)
11816 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_OFFSET_LOW_UD_MASK (0xff0000)
11817 
11818 // args: data (8-bit)
acamera_isp_demosaic_rgb_luma_offset_low_ud_write(uintptr_t base,uint8_t data)11819 static __inline void acamera_isp_demosaic_rgb_luma_offset_low_ud_write(uintptr_t base, uint8_t data) {
11820     uint32_t curr = system_sw_read_32(base + 0x1aee0L);
11821     system_sw_write_32(base + 0x1aee0L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
11822 }
acamera_isp_demosaic_rgb_luma_offset_low_ud_read(uintptr_t base)11823 static __inline uint8_t acamera_isp_demosaic_rgb_luma_offset_low_ud_read(uintptr_t base) {
11824     return (uint8_t)((system_sw_read_32(base + 0x1aee0L) & 0xff0000) >> 16);
11825 }
11826 // ------------------------------------------------------------------------------ //
11827 // Register: luma_slope_low_ud
11828 // ------------------------------------------------------------------------------ //
11829 
11830 // ------------------------------------------------------------------------------ //
11831 // Linear threshold slope corresponding to luma_thresh_low_ud
11832 // ------------------------------------------------------------------------------ //
11833 
11834 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_LOW_UD_DEFAULT (0x4000)
11835 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_LOW_UD_DATASIZE (20)
11836 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_LOW_UD_OFFSET (0x205c)
11837 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_LOW_UD_MASK (0xfffff)
11838 
11839 // args: data (20-bit)
acamera_isp_demosaic_rgb_luma_slope_low_ud_write(uintptr_t base,uint32_t data)11840 static __inline void acamera_isp_demosaic_rgb_luma_slope_low_ud_write(uintptr_t base, uint32_t data) {
11841     uint32_t curr = system_sw_read_32(base + 0x1aee4L);
11842     system_sw_write_32(base + 0x1aee4L, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
11843 }
acamera_isp_demosaic_rgb_luma_slope_low_ud_read(uintptr_t base)11844 static __inline uint32_t acamera_isp_demosaic_rgb_luma_slope_low_ud_read(uintptr_t base) {
11845     return (uint32_t)((system_sw_read_32(base + 0x1aee4L) & 0xfffff) >> 0);
11846 }
11847 // ------------------------------------------------------------------------------ //
11848 // Register: luma_thresh_high_ud
11849 // ------------------------------------------------------------------------------ //
11850 
11851 // ------------------------------------------------------------------------------ //
11852 // Intensity values below this value will be sharpen
11853 // ------------------------------------------------------------------------------ //
11854 
11855 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_HIGH_UD_DEFAULT (0xFA0)
11856 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_HIGH_UD_DATASIZE (12)
11857 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_HIGH_UD_OFFSET (0x2060)
11858 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_THRESH_HIGH_UD_MASK (0xfff)
11859 
11860 // args: data (12-bit)
acamera_isp_demosaic_rgb_luma_thresh_high_ud_write(uintptr_t base,uint16_t data)11861 static __inline void acamera_isp_demosaic_rgb_luma_thresh_high_ud_write(uintptr_t base, uint16_t data) {
11862     uint32_t curr = system_sw_read_32(base + 0x1aee8L);
11863     system_sw_write_32(base + 0x1aee8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
11864 }
acamera_isp_demosaic_rgb_luma_thresh_high_ud_read(uintptr_t base)11865 static __inline uint16_t acamera_isp_demosaic_rgb_luma_thresh_high_ud_read(uintptr_t base) {
11866     return (uint16_t)((system_sw_read_32(base + 0x1aee8L) & 0xfff) >> 0);
11867 }
11868 // ------------------------------------------------------------------------------ //
11869 // Register: luma_slope_high_ud
11870 // ------------------------------------------------------------------------------ //
11871 
11872 // ------------------------------------------------------------------------------ //
11873 // Linear threshold slope corresponding to luma_thresh_high_ud
11874 // ------------------------------------------------------------------------------ //
11875 
11876 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_HIGH_UD_DEFAULT (0x4000)
11877 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_HIGH_UD_DATASIZE (20)
11878 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_HIGH_UD_OFFSET (0x2064)
11879 #define ACAMERA_ISP_DEMOSAIC_RGB_LUMA_SLOPE_HIGH_UD_MASK (0xfffff)
11880 
11881 // args: data (20-bit)
acamera_isp_demosaic_rgb_luma_slope_high_ud_write(uintptr_t base,uint32_t data)11882 static __inline void acamera_isp_demosaic_rgb_luma_slope_high_ud_write(uintptr_t base, uint32_t data) {
11883     uint32_t curr = system_sw_read_32(base + 0x1aeecL);
11884     system_sw_write_32(base + 0x1aeecL, (((uint32_t) (data & 0xfffff)) << 0) | (curr & 0xfff00000));
11885 }
acamera_isp_demosaic_rgb_luma_slope_high_ud_read(uintptr_t base)11886 static __inline uint32_t acamera_isp_demosaic_rgb_luma_slope_high_ud_read(uintptr_t base) {
11887     return (uint32_t)((system_sw_read_32(base + 0x1aeecL) & 0xfffff) >> 0);
11888 }
11889 // ------------------------------------------------------------------------------ //
11890 // Group: demosaic rgb Noise Profile
11891 // ------------------------------------------------------------------------------ //
11892 
11893 // ------------------------------------------------------------------------------ //
11894 // Bayer Demosaic lookup
11895 // ------------------------------------------------------------------------------ //
11896 
11897 // ------------------------------------------------------------------------------ //
11898 // Register: Weight lut
11899 // ------------------------------------------------------------------------------ //
11900 
11901 // ------------------------------------------------------------------------------ //
11902 // Noise profile LUT
11903 // ------------------------------------------------------------------------------ //
11904 
11905 #define ACAMERA_ISP_DEMOSAIC_RGB_NOISE_PROFILE_LUT_WEIGHT_LUT_DEFAULT (0x0)
11906 #define ACAMERA_ISP_DEMOSAIC_RGB_NOISE_PROFILE_LUT_WEIGHT_LUT_DATASIZE (8)
11907 #define ACAMERA_ISP_DEMOSAIC_RGB_NOISE_PROFILE_LUT_WEIGHT_LUT_OFFSET (0x2068)
11908 #define ACAMERA_ISP_DEMOSAIC_RGB_NOISE_PROFILE_LUT_WEIGHT_LUT_MASK (0xff)
11909 
11910 // index (0-127), args: data (8-bit)
acamera_isp_demosaic_rgb_noise_profile_lut_weight_lut_write(uintptr_t base,uint32_t index,uint8_t data)11911 static __inline void acamera_isp_demosaic_rgb_noise_profile_lut_weight_lut_write( uintptr_t base, uint32_t index,uint8_t data) {
11912     uintptr_t addr = base + 0x1aef0L + (index & 0xFFFFFFFC);
11913     uint8_t offset = (index & 3) << 3;
11914     uint32_t curr = system_sw_read_32(addr);
11915     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
11916 }
acamera_isp_demosaic_rgb_noise_profile_lut_weight_lut_read(uintptr_t base,uint32_t index)11917 static __inline uint8_t acamera_isp_demosaic_rgb_noise_profile_lut_weight_lut_read( uintptr_t base, uint32_t index) {
11918     uintptr_t addr = base + 0x1aef0L + (index & 0xFFFFFFFC);
11919     uint8_t offset = (index & 3) << 3;
11920     return (uint8_t)(system_sw_read_32(addr) >> offset);
11921 }
11922 // ------------------------------------------------------------------------------ //
11923 // Group: demosaic rgbir
11924 // ------------------------------------------------------------------------------ //
11925 
11926 // ------------------------------------------------------------------------------ //
11927 // Demosaic rgbir Config
11928 // ------------------------------------------------------------------------------ //
11929 
11930 // ------------------------------------------------------------------------------ //
11931 // Register: rgbir_config
11932 // ------------------------------------------------------------------------------ //
11933 
11934 // ------------------------------------------------------------------------------ //
11935 // Debug related configurations to select out different internal signals, and normal RGBIR will be outputted by default
11936 // ------------------------------------------------------------------------------ //
11937 
11938 #define ACAMERA_ISP_DEMOSAIC_RGBIR_RGBIR_CONFIG_DEFAULT (0x0)
11939 #define ACAMERA_ISP_DEMOSAIC_RGBIR_RGBIR_CONFIG_DATASIZE (3)
11940 #define ACAMERA_ISP_DEMOSAIC_RGBIR_RGBIR_CONFIG_OFFSET (0x20e8)
11941 #define ACAMERA_ISP_DEMOSAIC_RGBIR_RGBIR_CONFIG_MASK (0x7)
11942 
11943 // args: data (3-bit)
acamera_isp_demosaic_rgbir_rgbir_config_write(uintptr_t base,uint8_t data)11944 static __inline void acamera_isp_demosaic_rgbir_rgbir_config_write(uintptr_t base, uint8_t data) {
11945     uint32_t curr = system_sw_read_32(base + 0x1af70L);
11946     system_sw_write_32(base + 0x1af70L, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
11947 }
acamera_isp_demosaic_rgbir_rgbir_config_read(uintptr_t base)11948 static __inline uint8_t acamera_isp_demosaic_rgbir_rgbir_config_read(uintptr_t base) {
11949     return (uint8_t)((system_sw_read_32(base + 0x1af70L) & 0x7) >> 0);
11950 }
11951 // ------------------------------------------------------------------------------ //
11952 // Register: clip_level
11953 // ------------------------------------------------------------------------------ //
11954 
11955 // ------------------------------------------------------------------------------ //
11956 // clip level
11957 // ------------------------------------------------------------------------------ //
11958 
11959 #define ACAMERA_ISP_DEMOSAIC_RGBIR_CLIP_LEVEL_DEFAULT (0xe66)
11960 #define ACAMERA_ISP_DEMOSAIC_RGBIR_CLIP_LEVEL_DATASIZE (12)
11961 #define ACAMERA_ISP_DEMOSAIC_RGBIR_CLIP_LEVEL_OFFSET (0x20ec)
11962 #define ACAMERA_ISP_DEMOSAIC_RGBIR_CLIP_LEVEL_MASK (0xfff)
11963 
11964 // args: data (12-bit)
acamera_isp_demosaic_rgbir_clip_level_write(uintptr_t base,uint16_t data)11965 static __inline void acamera_isp_demosaic_rgbir_clip_level_write(uintptr_t base, uint16_t data) {
11966     uint32_t curr = system_sw_read_32(base + 0x1af74L);
11967     system_sw_write_32(base + 0x1af74L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
11968 }
acamera_isp_demosaic_rgbir_clip_level_read(uintptr_t base)11969 static __inline uint16_t acamera_isp_demosaic_rgbir_clip_level_read(uintptr_t base) {
11970     return (uint16_t)((system_sw_read_32(base + 0x1af74L) & 0xfff) >> 0);
11971 }
11972 // ------------------------------------------------------------------------------ //
11973 // Register: clip_debloom
11974 // ------------------------------------------------------------------------------ //
11975 
11976 // ------------------------------------------------------------------------------ //
11977 // clip level for debloom
11978 // ------------------------------------------------------------------------------ //
11979 
11980 #define ACAMERA_ISP_DEMOSAIC_RGBIR_CLIP_DEBLOOM_DEFAULT (0xccd)
11981 #define ACAMERA_ISP_DEMOSAIC_RGBIR_CLIP_DEBLOOM_DATASIZE (12)
11982 #define ACAMERA_ISP_DEMOSAIC_RGBIR_CLIP_DEBLOOM_OFFSET (0x20f0)
11983 #define ACAMERA_ISP_DEMOSAIC_RGBIR_CLIP_DEBLOOM_MASK (0xfff)
11984 
11985 // args: data (12-bit)
acamera_isp_demosaic_rgbir_clip_debloom_write(uintptr_t base,uint16_t data)11986 static __inline void acamera_isp_demosaic_rgbir_clip_debloom_write(uintptr_t base, uint16_t data) {
11987     uint32_t curr = system_sw_read_32(base + 0x1af78L);
11988     system_sw_write_32(base + 0x1af78L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
11989 }
acamera_isp_demosaic_rgbir_clip_debloom_read(uintptr_t base)11990 static __inline uint16_t acamera_isp_demosaic_rgbir_clip_debloom_read(uintptr_t base) {
11991     return (uint16_t)((system_sw_read_32(base + 0x1af78L) & 0xfff) >> 0);
11992 }
11993 // ------------------------------------------------------------------------------ //
11994 // Register: ir_on_blue_row
11995 // ------------------------------------------------------------------------------ //
11996 
11997 // ------------------------------------------------------------------------------ //
11998 // to indicate that the IR is on the same line of Blue
11999 // ------------------------------------------------------------------------------ //
12000 
12001 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_ON_BLUE_ROW_DEFAULT (0x0)
12002 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_ON_BLUE_ROW_DATASIZE (1)
12003 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_ON_BLUE_ROW_OFFSET (0x20f4)
12004 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_ON_BLUE_ROW_MASK (0x1)
12005 
12006 // args: data (1-bit)
acamera_isp_demosaic_rgbir_ir_on_blue_row_write(uintptr_t base,uint8_t data)12007 static __inline void acamera_isp_demosaic_rgbir_ir_on_blue_row_write(uintptr_t base, uint8_t data) {
12008     uint32_t curr = system_sw_read_32(base + 0x1af7cL);
12009     system_sw_write_32(base + 0x1af7cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
12010 }
acamera_isp_demosaic_rgbir_ir_on_blue_row_read(uintptr_t base)12011 static __inline uint8_t acamera_isp_demosaic_rgbir_ir_on_blue_row_read(uintptr_t base) {
12012     return (uint8_t)((system_sw_read_32(base + 0x1af7cL) & 0x1) >> 0);
12013 }
12014 // ------------------------------------------------------------------------------ //
12015 // Register: declip_mode
12016 // ------------------------------------------------------------------------------ //
12017 
12018 // ------------------------------------------------------------------------------ //
12019 // Declip mode
12020 // ------------------------------------------------------------------------------ //
12021 
12022 #define ACAMERA_ISP_DEMOSAIC_RGBIR_DECLIP_MODE_DEFAULT (0x1)
12023 #define ACAMERA_ISP_DEMOSAIC_RGBIR_DECLIP_MODE_DATASIZE (1)
12024 #define ACAMERA_ISP_DEMOSAIC_RGBIR_DECLIP_MODE_OFFSET (0x20f8)
12025 #define ACAMERA_ISP_DEMOSAIC_RGBIR_DECLIP_MODE_MASK (0x1)
12026 
12027 // args: data (1-bit)
acamera_isp_demosaic_rgbir_declip_mode_write(uintptr_t base,uint8_t data)12028 static __inline void acamera_isp_demosaic_rgbir_declip_mode_write(uintptr_t base, uint8_t data) {
12029     uint32_t curr = system_sw_read_32(base + 0x1af80L);
12030     system_sw_write_32(base + 0x1af80L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
12031 }
acamera_isp_demosaic_rgbir_declip_mode_read(uintptr_t base)12032 static __inline uint8_t acamera_isp_demosaic_rgbir_declip_mode_read(uintptr_t base) {
12033     return (uint8_t)((system_sw_read_32(base + 0x1af80L) & 0x1) >> 0);
12034 }
12035 // ------------------------------------------------------------------------------ //
12036 // Register: gain_r
12037 // ------------------------------------------------------------------------------ //
12038 
12039 // ------------------------------------------------------------------------------ //
12040 // gain for red
12041 // ------------------------------------------------------------------------------ //
12042 
12043 #define ACAMERA_ISP_DEMOSAIC_RGBIR_GAIN_R_DEFAULT (0x100)
12044 #define ACAMERA_ISP_DEMOSAIC_RGBIR_GAIN_R_DATASIZE (12)
12045 #define ACAMERA_ISP_DEMOSAIC_RGBIR_GAIN_R_OFFSET (0x20fc)
12046 #define ACAMERA_ISP_DEMOSAIC_RGBIR_GAIN_R_MASK (0xfff)
12047 
12048 // args: data (12-bit)
acamera_isp_demosaic_rgbir_gain_r_write(uintptr_t base,uint16_t data)12049 static __inline void acamera_isp_demosaic_rgbir_gain_r_write(uintptr_t base, uint16_t data) {
12050     uint32_t curr = system_sw_read_32(base + 0x1af84L);
12051     system_sw_write_32(base + 0x1af84L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12052 }
acamera_isp_demosaic_rgbir_gain_r_read(uintptr_t base)12053 static __inline uint16_t acamera_isp_demosaic_rgbir_gain_r_read(uintptr_t base) {
12054     return (uint16_t)((system_sw_read_32(base + 0x1af84L) & 0xfff) >> 0);
12055 }
12056 // ------------------------------------------------------------------------------ //
12057 // Register: gain_b
12058 // ------------------------------------------------------------------------------ //
12059 
12060 // ------------------------------------------------------------------------------ //
12061 // gain for blue
12062 // ------------------------------------------------------------------------------ //
12063 
12064 #define ACAMERA_ISP_DEMOSAIC_RGBIR_GAIN_B_DEFAULT (0x100)
12065 #define ACAMERA_ISP_DEMOSAIC_RGBIR_GAIN_B_DATASIZE (12)
12066 #define ACAMERA_ISP_DEMOSAIC_RGBIR_GAIN_B_OFFSET (0x20fc)
12067 #define ACAMERA_ISP_DEMOSAIC_RGBIR_GAIN_B_MASK (0xfff0000)
12068 
12069 // args: data (12-bit)
acamera_isp_demosaic_rgbir_gain_b_write(uintptr_t base,uint16_t data)12070 static __inline void acamera_isp_demosaic_rgbir_gain_b_write(uintptr_t base, uint16_t data) {
12071     uint32_t curr = system_sw_read_32(base + 0x1af84L);
12072     system_sw_write_32(base + 0x1af84L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12073 }
acamera_isp_demosaic_rgbir_gain_b_read(uintptr_t base)12074 static __inline uint16_t acamera_isp_demosaic_rgbir_gain_b_read(uintptr_t base) {
12075     return (uint16_t)((system_sw_read_32(base + 0x1af84L) & 0xfff0000) >> 16);
12076 }
12077 // ------------------------------------------------------------------------------ //
12078 // Register: static_gain_r
12079 // ------------------------------------------------------------------------------ //
12080 
12081 // ------------------------------------------------------------------------------ //
12082 // static gain for red
12083 // ------------------------------------------------------------------------------ //
12084 
12085 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_R_DEFAULT (0x100)
12086 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_R_DATASIZE (12)
12087 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_R_OFFSET (0x2100)
12088 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_R_MASK (0xfff)
12089 
12090 // args: data (12-bit)
acamera_isp_demosaic_rgbir_static_gain_r_write(uintptr_t base,uint16_t data)12091 static __inline void acamera_isp_demosaic_rgbir_static_gain_r_write(uintptr_t base, uint16_t data) {
12092     uint32_t curr = system_sw_read_32(base + 0x1af88L);
12093     system_sw_write_32(base + 0x1af88L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12094 }
acamera_isp_demosaic_rgbir_static_gain_r_read(uintptr_t base)12095 static __inline uint16_t acamera_isp_demosaic_rgbir_static_gain_r_read(uintptr_t base) {
12096     return (uint16_t)((system_sw_read_32(base + 0x1af88L) & 0xfff) >> 0);
12097 }
12098 // ------------------------------------------------------------------------------ //
12099 // Register: static_gain_b
12100 // ------------------------------------------------------------------------------ //
12101 
12102 // ------------------------------------------------------------------------------ //
12103 // static gain for red
12104 // ------------------------------------------------------------------------------ //
12105 
12106 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_B_DEFAULT (0x100)
12107 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_B_DATASIZE (12)
12108 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_B_OFFSET (0x2100)
12109 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_B_MASK (0xfff0000)
12110 
12111 // args: data (12-bit)
acamera_isp_demosaic_rgbir_static_gain_b_write(uintptr_t base,uint16_t data)12112 static __inline void acamera_isp_demosaic_rgbir_static_gain_b_write(uintptr_t base, uint16_t data) {
12113     uint32_t curr = system_sw_read_32(base + 0x1af88L);
12114     system_sw_write_32(base + 0x1af88L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12115 }
acamera_isp_demosaic_rgbir_static_gain_b_read(uintptr_t base)12116 static __inline uint16_t acamera_isp_demosaic_rgbir_static_gain_b_read(uintptr_t base) {
12117     return (uint16_t)((system_sw_read_32(base + 0x1af88L) & 0xfff0000) >> 16);
12118 }
12119 // ------------------------------------------------------------------------------ //
12120 // Register: static_gain_i
12121 // ------------------------------------------------------------------------------ //
12122 
12123 // ------------------------------------------------------------------------------ //
12124 // static gain for ir
12125 // ------------------------------------------------------------------------------ //
12126 
12127 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_I_DEFAULT (0x100)
12128 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_I_DATASIZE (12)
12129 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_I_OFFSET (0x2104)
12130 #define ACAMERA_ISP_DEMOSAIC_RGBIR_STATIC_GAIN_I_MASK (0xfff)
12131 
12132 // args: data (12-bit)
acamera_isp_demosaic_rgbir_static_gain_i_write(uintptr_t base,uint16_t data)12133 static __inline void acamera_isp_demosaic_rgbir_static_gain_i_write(uintptr_t base, uint16_t data) {
12134     uint32_t curr = system_sw_read_32(base + 0x1af8cL);
12135     system_sw_write_32(base + 0x1af8cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12136 }
acamera_isp_demosaic_rgbir_static_gain_i_read(uintptr_t base)12137 static __inline uint16_t acamera_isp_demosaic_rgbir_static_gain_i_read(uintptr_t base) {
12138     return (uint16_t)((system_sw_read_32(base + 0x1af8cL) & 0xfff) >> 0);
12139 }
12140 // ------------------------------------------------------------------------------ //
12141 // Register: interpolation_directionality
12142 // ------------------------------------------------------------------------------ //
12143 
12144 // ------------------------------------------------------------------------------ //
12145 // Interpolation Directionality
12146 // ------------------------------------------------------------------------------ //
12147 
12148 #define ACAMERA_ISP_DEMOSAIC_RGBIR_INTERPOLATION_DIRECTIONALITY_DEFAULT (0x400)
12149 #define ACAMERA_ISP_DEMOSAIC_RGBIR_INTERPOLATION_DIRECTIONALITY_DATASIZE (12)
12150 #define ACAMERA_ISP_DEMOSAIC_RGBIR_INTERPOLATION_DIRECTIONALITY_OFFSET (0x2108)
12151 #define ACAMERA_ISP_DEMOSAIC_RGBIR_INTERPOLATION_DIRECTIONALITY_MASK (0xfff)
12152 
12153 // args: data (12-bit)
acamera_isp_demosaic_rgbir_interpolation_directionality_write(uintptr_t base,uint16_t data)12154 static __inline void acamera_isp_demosaic_rgbir_interpolation_directionality_write(uintptr_t base, uint16_t data) {
12155     uint32_t curr = system_sw_read_32(base + 0x1af90L);
12156     system_sw_write_32(base + 0x1af90L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12157 }
acamera_isp_demosaic_rgbir_interpolation_directionality_read(uintptr_t base)12158 static __inline uint16_t acamera_isp_demosaic_rgbir_interpolation_directionality_read(uintptr_t base) {
12159     return (uint16_t)((system_sw_read_32(base + 0x1af90L) & 0xfff) >> 0);
12160 }
12161 // ------------------------------------------------------------------------------ //
12162 // Register: sharp_limit
12163 // ------------------------------------------------------------------------------ //
12164 
12165 // ------------------------------------------------------------------------------ //
12166 // sharp limit
12167 // ------------------------------------------------------------------------------ //
12168 
12169 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_LIMIT_DEFAULT (0x5c8)
12170 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_LIMIT_DATASIZE (12)
12171 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_LIMIT_OFFSET (0x210c)
12172 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_LIMIT_MASK (0xfff)
12173 
12174 // args: data (12-bit)
acamera_isp_demosaic_rgbir_sharp_limit_write(uintptr_t base,uint16_t data)12175 static __inline void acamera_isp_demosaic_rgbir_sharp_limit_write(uintptr_t base, uint16_t data) {
12176     uint32_t curr = system_sw_read_32(base + 0x1af94L);
12177     system_sw_write_32(base + 0x1af94L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12178 }
acamera_isp_demosaic_rgbir_sharp_limit_read(uintptr_t base)12179 static __inline uint16_t acamera_isp_demosaic_rgbir_sharp_limit_read(uintptr_t base) {
12180     return (uint16_t)((system_sw_read_32(base + 0x1af94L) & 0xfff) >> 0);
12181 }
12182 // ------------------------------------------------------------------------------ //
12183 // Register: sharp_high
12184 // ------------------------------------------------------------------------------ //
12185 
12186 // ------------------------------------------------------------------------------ //
12187 // sharp high
12188 // ------------------------------------------------------------------------------ //
12189 
12190 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_HIGH_DEFAULT (0x666)
12191 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_HIGH_DATASIZE (12)
12192 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_HIGH_OFFSET (0x2110)
12193 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_HIGH_MASK (0xfff)
12194 
12195 // args: data (12-bit)
acamera_isp_demosaic_rgbir_sharp_high_write(uintptr_t base,uint16_t data)12196 static __inline void acamera_isp_demosaic_rgbir_sharp_high_write(uintptr_t base, uint16_t data) {
12197     uint32_t curr = system_sw_read_32(base + 0x1af98L);
12198     system_sw_write_32(base + 0x1af98L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12199 }
acamera_isp_demosaic_rgbir_sharp_high_read(uintptr_t base)12200 static __inline uint16_t acamera_isp_demosaic_rgbir_sharp_high_read(uintptr_t base) {
12201     return (uint16_t)((system_sw_read_32(base + 0x1af98L) & 0xfff) >> 0);
12202 }
12203 // ------------------------------------------------------------------------------ //
12204 // Register: sharp_low
12205 // ------------------------------------------------------------------------------ //
12206 
12207 // ------------------------------------------------------------------------------ //
12208 // sharp low
12209 // ------------------------------------------------------------------------------ //
12210 
12211 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_LOW_DEFAULT (0x32)
12212 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_LOW_DATASIZE (12)
12213 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_LOW_OFFSET (0x2114)
12214 #define ACAMERA_ISP_DEMOSAIC_RGBIR_SHARP_LOW_MASK (0xfff)
12215 
12216 // args: data (12-bit)
acamera_isp_demosaic_rgbir_sharp_low_write(uintptr_t base,uint16_t data)12217 static __inline void acamera_isp_demosaic_rgbir_sharp_low_write(uintptr_t base, uint16_t data) {
12218     uint32_t curr = system_sw_read_32(base + 0x1af9cL);
12219     system_sw_write_32(base + 0x1af9cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12220 }
acamera_isp_demosaic_rgbir_sharp_low_read(uintptr_t base)12221 static __inline uint16_t acamera_isp_demosaic_rgbir_sharp_low_read(uintptr_t base) {
12222     return (uint16_t)((system_sw_read_32(base + 0x1af9cL) & 0xfff) >> 0);
12223 }
12224 // ------------------------------------------------------------------------------ //
12225 // Register: fc_low
12226 // ------------------------------------------------------------------------------ //
12227 
12228 // ------------------------------------------------------------------------------ //
12229 // fc low
12230 // ------------------------------------------------------------------------------ //
12231 
12232 #define ACAMERA_ISP_DEMOSAIC_RGBIR_FC_LOW_DEFAULT (0x8f2)
12233 #define ACAMERA_ISP_DEMOSAIC_RGBIR_FC_LOW_DATASIZE (12)
12234 #define ACAMERA_ISP_DEMOSAIC_RGBIR_FC_LOW_OFFSET (0x2118)
12235 #define ACAMERA_ISP_DEMOSAIC_RGBIR_FC_LOW_MASK (0xfff)
12236 
12237 // args: data (12-bit)
acamera_isp_demosaic_rgbir_fc_low_write(uintptr_t base,uint16_t data)12238 static __inline void acamera_isp_demosaic_rgbir_fc_low_write(uintptr_t base, uint16_t data) {
12239     uint32_t curr = system_sw_read_32(base + 0x1afa0L);
12240     system_sw_write_32(base + 0x1afa0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12241 }
acamera_isp_demosaic_rgbir_fc_low_read(uintptr_t base)12242 static __inline uint16_t acamera_isp_demosaic_rgbir_fc_low_read(uintptr_t base) {
12243     return (uint16_t)((system_sw_read_32(base + 0x1afa0L) & 0xfff) >> 0);
12244 }
12245 // ------------------------------------------------------------------------------ //
12246 // Register: fc_grad
12247 // ------------------------------------------------------------------------------ //
12248 
12249 // ------------------------------------------------------------------------------ //
12250 // fc grad
12251 // ------------------------------------------------------------------------------ //
12252 
12253 #define ACAMERA_ISP_DEMOSAIC_RGBIR_FC_GRAD_DEFAULT (0xe6)
12254 #define ACAMERA_ISP_DEMOSAIC_RGBIR_FC_GRAD_DATASIZE (12)
12255 #define ACAMERA_ISP_DEMOSAIC_RGBIR_FC_GRAD_OFFSET (0x211c)
12256 #define ACAMERA_ISP_DEMOSAIC_RGBIR_FC_GRAD_MASK (0xfff)
12257 
12258 // args: data (12-bit)
acamera_isp_demosaic_rgbir_fc_grad_write(uintptr_t base,uint16_t data)12259 static __inline void acamera_isp_demosaic_rgbir_fc_grad_write(uintptr_t base, uint16_t data) {
12260     uint32_t curr = system_sw_read_32(base + 0x1afa4L);
12261     system_sw_write_32(base + 0x1afa4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12262 }
acamera_isp_demosaic_rgbir_fc_grad_read(uintptr_t base)12263 static __inline uint16_t acamera_isp_demosaic_rgbir_fc_grad_read(uintptr_t base) {
12264     return (uint16_t)((system_sw_read_32(base + 0x1afa4L) & 0xfff) >> 0);
12265 }
12266 // ------------------------------------------------------------------------------ //
12267 // Register: ir_correct_mat00
12268 // ------------------------------------------------------------------------------ //
12269 
12270 // ------------------------------------------------------------------------------ //
12271 // ir correct mat 00
12272 // ------------------------------------------------------------------------------ //
12273 
12274 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT00_DEFAULT (0x400)
12275 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT00_DATASIZE (12)
12276 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT00_OFFSET (0x2120)
12277 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT00_MASK (0xfff)
12278 
12279 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat00_write(uintptr_t base,uint16_t data)12280 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat00_write(uintptr_t base, uint16_t data) {
12281     uint32_t curr = system_sw_read_32(base + 0x1afa8L);
12282     system_sw_write_32(base + 0x1afa8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12283 }
acamera_isp_demosaic_rgbir_ir_correct_mat00_read(uintptr_t base)12284 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat00_read(uintptr_t base) {
12285     return (uint16_t)((system_sw_read_32(base + 0x1afa8L) & 0xfff) >> 0);
12286 }
12287 // ------------------------------------------------------------------------------ //
12288 // Register: ir_correct_mat01
12289 // ------------------------------------------------------------------------------ //
12290 
12291 // ------------------------------------------------------------------------------ //
12292 // ir correct mat 01
12293 // ------------------------------------------------------------------------------ //
12294 
12295 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT01_DEFAULT (0x000)
12296 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT01_DATASIZE (12)
12297 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT01_OFFSET (0x2120)
12298 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT01_MASK (0xfff0000)
12299 
12300 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat01_write(uintptr_t base,uint16_t data)12301 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat01_write(uintptr_t base, uint16_t data) {
12302     uint32_t curr = system_sw_read_32(base + 0x1afa8L);
12303     system_sw_write_32(base + 0x1afa8L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12304 }
acamera_isp_demosaic_rgbir_ir_correct_mat01_read(uintptr_t base)12305 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat01_read(uintptr_t base) {
12306     return (uint16_t)((system_sw_read_32(base + 0x1afa8L) & 0xfff0000) >> 16);
12307 }
12308 // ------------------------------------------------------------------------------ //
12309 // Register: ir_correct_mat02
12310 // ------------------------------------------------------------------------------ //
12311 
12312 // ------------------------------------------------------------------------------ //
12313 // ir correct mat 02
12314 // ------------------------------------------------------------------------------ //
12315 
12316 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT02_DEFAULT (0x000)
12317 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT02_DATASIZE (12)
12318 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT02_OFFSET (0x2124)
12319 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT02_MASK (0xfff)
12320 
12321 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat02_write(uintptr_t base,uint16_t data)12322 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat02_write(uintptr_t base, uint16_t data) {
12323     uint32_t curr = system_sw_read_32(base + 0x1afacL);
12324     system_sw_write_32(base + 0x1afacL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12325 }
acamera_isp_demosaic_rgbir_ir_correct_mat02_read(uintptr_t base)12326 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat02_read(uintptr_t base) {
12327     return (uint16_t)((system_sw_read_32(base + 0x1afacL) & 0xfff) >> 0);
12328 }
12329 // ------------------------------------------------------------------------------ //
12330 // Register: ir_correct_mat03
12331 // ------------------------------------------------------------------------------ //
12332 
12333 // ------------------------------------------------------------------------------ //
12334 // ir correct mat 03
12335 // ------------------------------------------------------------------------------ //
12336 
12337 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT03_DEFAULT (0x000)
12338 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT03_DATASIZE (12)
12339 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT03_OFFSET (0x2124)
12340 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT03_MASK (0xfff0000)
12341 
12342 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat03_write(uintptr_t base,uint16_t data)12343 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat03_write(uintptr_t base, uint16_t data) {
12344     uint32_t curr = system_sw_read_32(base + 0x1afacL);
12345     system_sw_write_32(base + 0x1afacL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12346 }
acamera_isp_demosaic_rgbir_ir_correct_mat03_read(uintptr_t base)12347 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat03_read(uintptr_t base) {
12348     return (uint16_t)((system_sw_read_32(base + 0x1afacL) & 0xfff0000) >> 16);
12349 }
12350 // ------------------------------------------------------------------------------ //
12351 // Register: ir_correct_mat10
12352 // ------------------------------------------------------------------------------ //
12353 
12354 // ------------------------------------------------------------------------------ //
12355 // ir correct mat 10
12356 // ------------------------------------------------------------------------------ //
12357 
12358 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT10_DEFAULT (0x000)
12359 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT10_DATASIZE (12)
12360 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT10_OFFSET (0x2128)
12361 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT10_MASK (0xfff)
12362 
12363 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat10_write(uintptr_t base,uint16_t data)12364 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat10_write(uintptr_t base, uint16_t data) {
12365     uint32_t curr = system_sw_read_32(base + 0x1afb0L);
12366     system_sw_write_32(base + 0x1afb0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12367 }
acamera_isp_demosaic_rgbir_ir_correct_mat10_read(uintptr_t base)12368 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat10_read(uintptr_t base) {
12369     return (uint16_t)((system_sw_read_32(base + 0x1afb0L) & 0xfff) >> 0);
12370 }
12371 // ------------------------------------------------------------------------------ //
12372 // Register: ir_correct_mat11
12373 // ------------------------------------------------------------------------------ //
12374 
12375 // ------------------------------------------------------------------------------ //
12376 // ir correct mat 11
12377 // ------------------------------------------------------------------------------ //
12378 
12379 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT11_DEFAULT (0x400)
12380 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT11_DATASIZE (12)
12381 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT11_OFFSET (0x2128)
12382 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT11_MASK (0xfff0000)
12383 
12384 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat11_write(uintptr_t base,uint16_t data)12385 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat11_write(uintptr_t base, uint16_t data) {
12386     uint32_t curr = system_sw_read_32(base + 0x1afb0L);
12387     system_sw_write_32(base + 0x1afb0L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12388 }
acamera_isp_demosaic_rgbir_ir_correct_mat11_read(uintptr_t base)12389 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat11_read(uintptr_t base) {
12390     return (uint16_t)((system_sw_read_32(base + 0x1afb0L) & 0xfff0000) >> 16);
12391 }
12392 // ------------------------------------------------------------------------------ //
12393 // Register: ir_correct_mat12
12394 // ------------------------------------------------------------------------------ //
12395 
12396 // ------------------------------------------------------------------------------ //
12397 // ir correct mat 12
12398 // ------------------------------------------------------------------------------ //
12399 
12400 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT12_DEFAULT (0x000)
12401 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT12_DATASIZE (12)
12402 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT12_OFFSET (0x212c)
12403 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT12_MASK (0xfff)
12404 
12405 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat12_write(uintptr_t base,uint16_t data)12406 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat12_write(uintptr_t base, uint16_t data) {
12407     uint32_t curr = system_sw_read_32(base + 0x1afb4L);
12408     system_sw_write_32(base + 0x1afb4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12409 }
acamera_isp_demosaic_rgbir_ir_correct_mat12_read(uintptr_t base)12410 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat12_read(uintptr_t base) {
12411     return (uint16_t)((system_sw_read_32(base + 0x1afb4L) & 0xfff) >> 0);
12412 }
12413 // ------------------------------------------------------------------------------ //
12414 // Register: ir_correct_mat13
12415 // ------------------------------------------------------------------------------ //
12416 
12417 // ------------------------------------------------------------------------------ //
12418 // ir correct mat 13
12419 // ------------------------------------------------------------------------------ //
12420 
12421 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT13_DEFAULT (0x000)
12422 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT13_DATASIZE (12)
12423 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT13_OFFSET (0x212c)
12424 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT13_MASK (0xfff0000)
12425 
12426 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat13_write(uintptr_t base,uint16_t data)12427 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat13_write(uintptr_t base, uint16_t data) {
12428     uint32_t curr = system_sw_read_32(base + 0x1afb4L);
12429     system_sw_write_32(base + 0x1afb4L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12430 }
acamera_isp_demosaic_rgbir_ir_correct_mat13_read(uintptr_t base)12431 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat13_read(uintptr_t base) {
12432     return (uint16_t)((system_sw_read_32(base + 0x1afb4L) & 0xfff0000) >> 16);
12433 }
12434 // ------------------------------------------------------------------------------ //
12435 // Register: ir_correct_mat20
12436 // ------------------------------------------------------------------------------ //
12437 
12438 // ------------------------------------------------------------------------------ //
12439 // ir correct mat 20
12440 // ------------------------------------------------------------------------------ //
12441 
12442 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT20_DEFAULT (0x000)
12443 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT20_DATASIZE (12)
12444 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT20_OFFSET (0x2130)
12445 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT20_MASK (0xfff)
12446 
12447 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat20_write(uintptr_t base,uint16_t data)12448 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat20_write(uintptr_t base, uint16_t data) {
12449     uint32_t curr = system_sw_read_32(base + 0x1afb8L);
12450     system_sw_write_32(base + 0x1afb8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12451 }
acamera_isp_demosaic_rgbir_ir_correct_mat20_read(uintptr_t base)12452 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat20_read(uintptr_t base) {
12453     return (uint16_t)((system_sw_read_32(base + 0x1afb8L) & 0xfff) >> 0);
12454 }
12455 // ------------------------------------------------------------------------------ //
12456 // Register: ir_correct_mat21
12457 // ------------------------------------------------------------------------------ //
12458 
12459 // ------------------------------------------------------------------------------ //
12460 // ir correct mat 21
12461 // ------------------------------------------------------------------------------ //
12462 
12463 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT21_DEFAULT (0x000)
12464 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT21_DATASIZE (12)
12465 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT21_OFFSET (0x2130)
12466 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT21_MASK (0xfff0000)
12467 
12468 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat21_write(uintptr_t base,uint16_t data)12469 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat21_write(uintptr_t base, uint16_t data) {
12470     uint32_t curr = system_sw_read_32(base + 0x1afb8L);
12471     system_sw_write_32(base + 0x1afb8L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12472 }
acamera_isp_demosaic_rgbir_ir_correct_mat21_read(uintptr_t base)12473 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat21_read(uintptr_t base) {
12474     return (uint16_t)((system_sw_read_32(base + 0x1afb8L) & 0xfff0000) >> 16);
12475 }
12476 // ------------------------------------------------------------------------------ //
12477 // Register: ir_correct_mat22
12478 // ------------------------------------------------------------------------------ //
12479 
12480 // ------------------------------------------------------------------------------ //
12481 // ir correct mat 22
12482 // ------------------------------------------------------------------------------ //
12483 
12484 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT22_DEFAULT (0x400)
12485 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT22_DATASIZE (12)
12486 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT22_OFFSET (0x2134)
12487 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT22_MASK (0xfff)
12488 
12489 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat22_write(uintptr_t base,uint16_t data)12490 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat22_write(uintptr_t base, uint16_t data) {
12491     uint32_t curr = system_sw_read_32(base + 0x1afbcL);
12492     system_sw_write_32(base + 0x1afbcL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12493 }
acamera_isp_demosaic_rgbir_ir_correct_mat22_read(uintptr_t base)12494 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat22_read(uintptr_t base) {
12495     return (uint16_t)((system_sw_read_32(base + 0x1afbcL) & 0xfff) >> 0);
12496 }
12497 // ------------------------------------------------------------------------------ //
12498 // Register: ir_correct_mat23
12499 // ------------------------------------------------------------------------------ //
12500 
12501 // ------------------------------------------------------------------------------ //
12502 // ir correct mat 23
12503 // ------------------------------------------------------------------------------ //
12504 
12505 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT23_DEFAULT (0x000)
12506 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT23_DATASIZE (12)
12507 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT23_OFFSET (0x2134)
12508 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT23_MASK (0xfff0000)
12509 
12510 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat23_write(uintptr_t base,uint16_t data)12511 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat23_write(uintptr_t base, uint16_t data) {
12512     uint32_t curr = system_sw_read_32(base + 0x1afbcL);
12513     system_sw_write_32(base + 0x1afbcL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12514 }
acamera_isp_demosaic_rgbir_ir_correct_mat23_read(uintptr_t base)12515 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat23_read(uintptr_t base) {
12516     return (uint16_t)((system_sw_read_32(base + 0x1afbcL) & 0xfff0000) >> 16);
12517 }
12518 // ------------------------------------------------------------------------------ //
12519 // Register: ir_correct_mat30
12520 // ------------------------------------------------------------------------------ //
12521 
12522 // ------------------------------------------------------------------------------ //
12523 // ir correct mat 30
12524 // ------------------------------------------------------------------------------ //
12525 
12526 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT30_DEFAULT (0x000)
12527 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT30_DATASIZE (12)
12528 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT30_OFFSET (0x2138)
12529 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT30_MASK (0xfff)
12530 
12531 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat30_write(uintptr_t base,uint16_t data)12532 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat30_write(uintptr_t base, uint16_t data) {
12533     uint32_t curr = system_sw_read_32(base + 0x1afc0L);
12534     system_sw_write_32(base + 0x1afc0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12535 }
acamera_isp_demosaic_rgbir_ir_correct_mat30_read(uintptr_t base)12536 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat30_read(uintptr_t base) {
12537     return (uint16_t)((system_sw_read_32(base + 0x1afc0L) & 0xfff) >> 0);
12538 }
12539 // ------------------------------------------------------------------------------ //
12540 // Register: ir_correct_mat31
12541 // ------------------------------------------------------------------------------ //
12542 
12543 // ------------------------------------------------------------------------------ //
12544 // ir correct mat 31
12545 // ------------------------------------------------------------------------------ //
12546 
12547 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT31_DEFAULT (0x000)
12548 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT31_DATASIZE (12)
12549 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT31_OFFSET (0x2138)
12550 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT31_MASK (0xfff0000)
12551 
12552 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat31_write(uintptr_t base,uint16_t data)12553 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat31_write(uintptr_t base, uint16_t data) {
12554     uint32_t curr = system_sw_read_32(base + 0x1afc0L);
12555     system_sw_write_32(base + 0x1afc0L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12556 }
acamera_isp_demosaic_rgbir_ir_correct_mat31_read(uintptr_t base)12557 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat31_read(uintptr_t base) {
12558     return (uint16_t)((system_sw_read_32(base + 0x1afc0L) & 0xfff0000) >> 16);
12559 }
12560 // ------------------------------------------------------------------------------ //
12561 // Register: ir_correct_mat32
12562 // ------------------------------------------------------------------------------ //
12563 
12564 // ------------------------------------------------------------------------------ //
12565 // ir correct mat 32
12566 // ------------------------------------------------------------------------------ //
12567 
12568 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT32_DEFAULT (0x000)
12569 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT32_DATASIZE (12)
12570 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT32_OFFSET (0x213c)
12571 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT32_MASK (0xfff)
12572 
12573 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat32_write(uintptr_t base,uint16_t data)12574 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat32_write(uintptr_t base, uint16_t data) {
12575     uint32_t curr = system_sw_read_32(base + 0x1afc4L);
12576     system_sw_write_32(base + 0x1afc4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12577 }
acamera_isp_demosaic_rgbir_ir_correct_mat32_read(uintptr_t base)12578 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat32_read(uintptr_t base) {
12579     return (uint16_t)((system_sw_read_32(base + 0x1afc4L) & 0xfff) >> 0);
12580 }
12581 // ------------------------------------------------------------------------------ //
12582 // Register: ir_correct_mat33
12583 // ------------------------------------------------------------------------------ //
12584 
12585 // ------------------------------------------------------------------------------ //
12586 // ir correct mat 33
12587 // ------------------------------------------------------------------------------ //
12588 
12589 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT33_DEFAULT (0x400)
12590 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT33_DATASIZE (12)
12591 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT33_OFFSET (0x213c)
12592 #define ACAMERA_ISP_DEMOSAIC_RGBIR_IR_CORRECT_MAT33_MASK (0xfff0000)
12593 
12594 // args: data (12-bit)
acamera_isp_demosaic_rgbir_ir_correct_mat33_write(uintptr_t base,uint16_t data)12595 static __inline void acamera_isp_demosaic_rgbir_ir_correct_mat33_write(uintptr_t base, uint16_t data) {
12596     uint32_t curr = system_sw_read_32(base + 0x1afc4L);
12597     system_sw_write_32(base + 0x1afc4L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12598 }
acamera_isp_demosaic_rgbir_ir_correct_mat33_read(uintptr_t base)12599 static __inline uint16_t acamera_isp_demosaic_rgbir_ir_correct_mat33_read(uintptr_t base) {
12600     return (uint16_t)((system_sw_read_32(base + 0x1afc4L) & 0xfff0000) >> 16);
12601 }
12602 // ------------------------------------------------------------------------------ //
12603 // Group: pf correction
12604 // ------------------------------------------------------------------------------ //
12605 
12606 // ------------------------------------------------------------------------------ //
12607 // purple fringing correction
12608 // ------------------------------------------------------------------------------ //
12609 
12610 // ------------------------------------------------------------------------------ //
12611 // Register: use_color_corrected_rgb
12612 // ------------------------------------------------------------------------------ //
12613 
12614 #define ACAMERA_ISP_PF_CORRECTION_USE_COLOR_CORRECTED_RGB_DEFAULT (1)
12615 #define ACAMERA_ISP_PF_CORRECTION_USE_COLOR_CORRECTED_RGB_DATASIZE (1)
12616 #define ACAMERA_ISP_PF_CORRECTION_USE_COLOR_CORRECTED_RGB_OFFSET (0x2140)
12617 #define ACAMERA_ISP_PF_CORRECTION_USE_COLOR_CORRECTED_RGB_MASK (0x1)
12618 
12619 // args: data (1-bit)
acamera_isp_pf_correction_use_color_corrected_rgb_write(uintptr_t base,uint8_t data)12620 static __inline void acamera_isp_pf_correction_use_color_corrected_rgb_write(uintptr_t base, uint8_t data) {
12621     uint32_t curr = system_sw_read_32(base + 0x1afc8L);
12622     system_sw_write_32(base + 0x1afc8L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
12623 }
acamera_isp_pf_correction_use_color_corrected_rgb_read(uintptr_t base)12624 static __inline uint8_t acamera_isp_pf_correction_use_color_corrected_rgb_read(uintptr_t base) {
12625     return (uint8_t)((system_sw_read_32(base + 0x1afc8L) & 0x1) >> 0);
12626 }
12627 // ------------------------------------------------------------------------------ //
12628 // Register: hue_strength
12629 // ------------------------------------------------------------------------------ //
12630 
12631 #define ACAMERA_ISP_PF_CORRECTION_HUE_STRENGTH_DEFAULT (0x200)
12632 #define ACAMERA_ISP_PF_CORRECTION_HUE_STRENGTH_DATASIZE (12)
12633 #define ACAMERA_ISP_PF_CORRECTION_HUE_STRENGTH_OFFSET (0x2144)
12634 #define ACAMERA_ISP_PF_CORRECTION_HUE_STRENGTH_MASK (0xfff)
12635 
12636 // args: data (12-bit)
acamera_isp_pf_correction_hue_strength_write(uintptr_t base,uint16_t data)12637 static __inline void acamera_isp_pf_correction_hue_strength_write(uintptr_t base, uint16_t data) {
12638     uint32_t curr = system_sw_read_32(base + 0x1afccL);
12639     system_sw_write_32(base + 0x1afccL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12640 }
acamera_isp_pf_correction_hue_strength_read(uintptr_t base)12641 static __inline uint16_t acamera_isp_pf_correction_hue_strength_read(uintptr_t base) {
12642     return (uint16_t)((system_sw_read_32(base + 0x1afccL) & 0xfff) >> 0);
12643 }
12644 // ------------------------------------------------------------------------------ //
12645 // Register: sat_strength
12646 // ------------------------------------------------------------------------------ //
12647 
12648 #define ACAMERA_ISP_PF_CORRECTION_SAT_STRENGTH_DEFAULT (0x200)
12649 #define ACAMERA_ISP_PF_CORRECTION_SAT_STRENGTH_DATASIZE (12)
12650 #define ACAMERA_ISP_PF_CORRECTION_SAT_STRENGTH_OFFSET (0x2148)
12651 #define ACAMERA_ISP_PF_CORRECTION_SAT_STRENGTH_MASK (0xfff)
12652 
12653 // args: data (12-bit)
acamera_isp_pf_correction_sat_strength_write(uintptr_t base,uint16_t data)12654 static __inline void acamera_isp_pf_correction_sat_strength_write(uintptr_t base, uint16_t data) {
12655     uint32_t curr = system_sw_read_32(base + 0x1afd0L);
12656     system_sw_write_32(base + 0x1afd0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12657 }
acamera_isp_pf_correction_sat_strength_read(uintptr_t base)12658 static __inline uint16_t acamera_isp_pf_correction_sat_strength_read(uintptr_t base) {
12659     return (uint16_t)((system_sw_read_32(base + 0x1afd0L) & 0xfff) >> 0);
12660 }
12661 // ------------------------------------------------------------------------------ //
12662 // Register: luma_strength
12663 // ------------------------------------------------------------------------------ //
12664 
12665 #define ACAMERA_ISP_PF_CORRECTION_LUMA_STRENGTH_DEFAULT (0x400)
12666 #define ACAMERA_ISP_PF_CORRECTION_LUMA_STRENGTH_DATASIZE (12)
12667 #define ACAMERA_ISP_PF_CORRECTION_LUMA_STRENGTH_OFFSET (0x2148)
12668 #define ACAMERA_ISP_PF_CORRECTION_LUMA_STRENGTH_MASK (0xfff0000)
12669 
12670 // args: data (12-bit)
acamera_isp_pf_correction_luma_strength_write(uintptr_t base,uint16_t data)12671 static __inline void acamera_isp_pf_correction_luma_strength_write(uintptr_t base, uint16_t data) {
12672     uint32_t curr = system_sw_read_32(base + 0x1afd0L);
12673     system_sw_write_32(base + 0x1afd0L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12674 }
acamera_isp_pf_correction_luma_strength_read(uintptr_t base)12675 static __inline uint16_t acamera_isp_pf_correction_luma_strength_read(uintptr_t base) {
12676     return (uint16_t)((system_sw_read_32(base + 0x1afd0L) & 0xfff0000) >> 16);
12677 }
12678 // ------------------------------------------------------------------------------ //
12679 // Register: purple_strength
12680 // ------------------------------------------------------------------------------ //
12681 
12682 #define ACAMERA_ISP_PF_CORRECTION_PURPLE_STRENGTH_DEFAULT (0x400)
12683 #define ACAMERA_ISP_PF_CORRECTION_PURPLE_STRENGTH_DATASIZE (12)
12684 #define ACAMERA_ISP_PF_CORRECTION_PURPLE_STRENGTH_OFFSET (0x214c)
12685 #define ACAMERA_ISP_PF_CORRECTION_PURPLE_STRENGTH_MASK (0xfff)
12686 
12687 // args: data (12-bit)
acamera_isp_pf_correction_purple_strength_write(uintptr_t base,uint16_t data)12688 static __inline void acamera_isp_pf_correction_purple_strength_write(uintptr_t base, uint16_t data) {
12689     uint32_t curr = system_sw_read_32(base + 0x1afd4L);
12690     system_sw_write_32(base + 0x1afd4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12691 }
acamera_isp_pf_correction_purple_strength_read(uintptr_t base)12692 static __inline uint16_t acamera_isp_pf_correction_purple_strength_read(uintptr_t base) {
12693     return (uint16_t)((system_sw_read_32(base + 0x1afd4L) & 0xfff) >> 0);
12694 }
12695 // ------------------------------------------------------------------------------ //
12696 // Register: saturation_strength
12697 // ------------------------------------------------------------------------------ //
12698 
12699 #define ACAMERA_ISP_PF_CORRECTION_SATURATION_STRENGTH_DEFAULT (0x26)
12700 #define ACAMERA_ISP_PF_CORRECTION_SATURATION_STRENGTH_DATASIZE (8)
12701 #define ACAMERA_ISP_PF_CORRECTION_SATURATION_STRENGTH_OFFSET (0x214c)
12702 #define ACAMERA_ISP_PF_CORRECTION_SATURATION_STRENGTH_MASK (0xff0000)
12703 
12704 // args: data (8-bit)
acamera_isp_pf_correction_saturation_strength_write(uintptr_t base,uint8_t data)12705 static __inline void acamera_isp_pf_correction_saturation_strength_write(uintptr_t base, uint8_t data) {
12706     uint32_t curr = system_sw_read_32(base + 0x1afd4L);
12707     system_sw_write_32(base + 0x1afd4L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
12708 }
acamera_isp_pf_correction_saturation_strength_read(uintptr_t base)12709 static __inline uint8_t acamera_isp_pf_correction_saturation_strength_read(uintptr_t base) {
12710     return (uint8_t)((system_sw_read_32(base + 0x1afd4L) & 0xff0000) >> 16);
12711 }
12712 // ------------------------------------------------------------------------------ //
12713 // Register: off_center_mult
12714 // ------------------------------------------------------------------------------ //
12715 
12716 #define ACAMERA_ISP_PF_CORRECTION_OFF_CENTER_MULT_DEFAULT (0xF8F)
12717 #define ACAMERA_ISP_PF_CORRECTION_OFF_CENTER_MULT_DATASIZE (16)
12718 #define ACAMERA_ISP_PF_CORRECTION_OFF_CENTER_MULT_OFFSET (0x2150)
12719 #define ACAMERA_ISP_PF_CORRECTION_OFF_CENTER_MULT_MASK (0xffff)
12720 
12721 // args: data (16-bit)
acamera_isp_pf_correction_off_center_mult_write(uintptr_t base,uint16_t data)12722 static __inline void acamera_isp_pf_correction_off_center_mult_write(uintptr_t base, uint16_t data) {
12723     uint32_t curr = system_sw_read_32(base + 0x1afd8L);
12724     system_sw_write_32(base + 0x1afd8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
12725 }
acamera_isp_pf_correction_off_center_mult_read(uintptr_t base)12726 static __inline uint16_t acamera_isp_pf_correction_off_center_mult_read(uintptr_t base) {
12727     return (uint16_t)((system_sw_read_32(base + 0x1afd8L) & 0xffff) >> 0);
12728 }
12729 // ------------------------------------------------------------------------------ //
12730 // Register: center_x
12731 // ------------------------------------------------------------------------------ //
12732 
12733 #define ACAMERA_ISP_PF_CORRECTION_CENTER_X_DEFAULT (0x168)
12734 #define ACAMERA_ISP_PF_CORRECTION_CENTER_X_DATASIZE (16)
12735 #define ACAMERA_ISP_PF_CORRECTION_CENTER_X_OFFSET (0x2154)
12736 #define ACAMERA_ISP_PF_CORRECTION_CENTER_X_MASK (0xffff)
12737 
12738 // args: data (16-bit)
acamera_isp_pf_correction_center_x_write(uintptr_t base,uint16_t data)12739 static __inline void acamera_isp_pf_correction_center_x_write(uintptr_t base, uint16_t data) {
12740     uint32_t curr = system_sw_read_32(base + 0x1afdcL);
12741     system_sw_write_32(base + 0x1afdcL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
12742 }
acamera_isp_pf_correction_center_x_read(uintptr_t base)12743 static __inline uint16_t acamera_isp_pf_correction_center_x_read(uintptr_t base) {
12744     return (uint16_t)((system_sw_read_32(base + 0x1afdcL) & 0xffff) >> 0);
12745 }
12746 // ------------------------------------------------------------------------------ //
12747 // Register: center_y
12748 // ------------------------------------------------------------------------------ //
12749 
12750 #define ACAMERA_ISP_PF_CORRECTION_CENTER_Y_DEFAULT (0x280)
12751 #define ACAMERA_ISP_PF_CORRECTION_CENTER_Y_DATASIZE (16)
12752 #define ACAMERA_ISP_PF_CORRECTION_CENTER_Y_OFFSET (0x2154)
12753 #define ACAMERA_ISP_PF_CORRECTION_CENTER_Y_MASK (0xffff0000)
12754 
12755 // args: data (16-bit)
acamera_isp_pf_correction_center_y_write(uintptr_t base,uint16_t data)12756 static __inline void acamera_isp_pf_correction_center_y_write(uintptr_t base, uint16_t data) {
12757     uint32_t curr = system_sw_read_32(base + 0x1afdcL);
12758     system_sw_write_32(base + 0x1afdcL, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
12759 }
acamera_isp_pf_correction_center_y_read(uintptr_t base)12760 static __inline uint16_t acamera_isp_pf_correction_center_y_read(uintptr_t base) {
12761     return (uint16_t)((system_sw_read_32(base + 0x1afdcL) & 0xffff0000) >> 16);
12762 }
12763 // ------------------------------------------------------------------------------ //
12764 // Register: ccm_coeff_rr
12765 // ------------------------------------------------------------------------------ //
12766 
12767 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RR_DEFAULT (0x01CB)
12768 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RR_DATASIZE (13)
12769 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RR_OFFSET (0x2158)
12770 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RR_MASK (0x1fff)
12771 
12772 // args: data (13-bit)
acamera_isp_pf_correction_ccm_coeff_rr_write(uintptr_t base,uint16_t data)12773 static __inline void acamera_isp_pf_correction_ccm_coeff_rr_write(uintptr_t base, uint16_t data) {
12774     uint32_t curr = system_sw_read_32(base + 0x1afe0L);
12775     system_sw_write_32(base + 0x1afe0L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
12776 }
acamera_isp_pf_correction_ccm_coeff_rr_read(uintptr_t base)12777 static __inline uint16_t acamera_isp_pf_correction_ccm_coeff_rr_read(uintptr_t base) {
12778     return (uint16_t)((system_sw_read_32(base + 0x1afe0L) & 0x1fff) >> 0);
12779 }
12780 // ------------------------------------------------------------------------------ //
12781 // Register: ccm_coeff_rg
12782 // ------------------------------------------------------------------------------ //
12783 
12784 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RG_DEFAULT (0x10c1)
12785 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RG_DATASIZE (13)
12786 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RG_OFFSET (0x215c)
12787 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RG_MASK (0x1fff)
12788 
12789 // args: data (13-bit)
acamera_isp_pf_correction_ccm_coeff_rg_write(uintptr_t base,uint16_t data)12790 static __inline void acamera_isp_pf_correction_ccm_coeff_rg_write(uintptr_t base, uint16_t data) {
12791     uint32_t curr = system_sw_read_32(base + 0x1afe4L);
12792     system_sw_write_32(base + 0x1afe4L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
12793 }
acamera_isp_pf_correction_ccm_coeff_rg_read(uintptr_t base)12794 static __inline uint16_t acamera_isp_pf_correction_ccm_coeff_rg_read(uintptr_t base) {
12795     return (uint16_t)((system_sw_read_32(base + 0x1afe4L) & 0x1fff) >> 0);
12796 }
12797 // ------------------------------------------------------------------------------ //
12798 // Register: ccm_coeff_rb
12799 // ------------------------------------------------------------------------------ //
12800 
12801 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RB_DEFAULT (0x100A)
12802 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RB_DATASIZE (13)
12803 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RB_OFFSET (0x2160)
12804 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_RB_MASK (0x1fff)
12805 
12806 // args: data (13-bit)
acamera_isp_pf_correction_ccm_coeff_rb_write(uintptr_t base,uint16_t data)12807 static __inline void acamera_isp_pf_correction_ccm_coeff_rb_write(uintptr_t base, uint16_t data) {
12808     uint32_t curr = system_sw_read_32(base + 0x1afe8L);
12809     system_sw_write_32(base + 0x1afe8L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
12810 }
acamera_isp_pf_correction_ccm_coeff_rb_read(uintptr_t base)12811 static __inline uint16_t acamera_isp_pf_correction_ccm_coeff_rb_read(uintptr_t base) {
12812     return (uint16_t)((system_sw_read_32(base + 0x1afe8L) & 0x1fff) >> 0);
12813 }
12814 // ------------------------------------------------------------------------------ //
12815 // Register: ccm_coeff_gr
12816 // ------------------------------------------------------------------------------ //
12817 
12818 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GR_DEFAULT (0x1028)
12819 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GR_DATASIZE (13)
12820 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GR_OFFSET (0x2164)
12821 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GR_MASK (0x1fff)
12822 
12823 // args: data (13-bit)
acamera_isp_pf_correction_ccm_coeff_gr_write(uintptr_t base,uint16_t data)12824 static __inline void acamera_isp_pf_correction_ccm_coeff_gr_write(uintptr_t base, uint16_t data) {
12825     uint32_t curr = system_sw_read_32(base + 0x1afecL);
12826     system_sw_write_32(base + 0x1afecL, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
12827 }
acamera_isp_pf_correction_ccm_coeff_gr_read(uintptr_t base)12828 static __inline uint16_t acamera_isp_pf_correction_ccm_coeff_gr_read(uintptr_t base) {
12829     return (uint16_t)((system_sw_read_32(base + 0x1afecL) & 0x1fff) >> 0);
12830 }
12831 // ------------------------------------------------------------------------------ //
12832 // Register: ccm_coeff_gg
12833 // ------------------------------------------------------------------------------ //
12834 
12835 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GG_DEFAULT (0x16D)
12836 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GG_DATASIZE (13)
12837 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GG_OFFSET (0x2168)
12838 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GG_MASK (0x1fff)
12839 
12840 // args: data (13-bit)
acamera_isp_pf_correction_ccm_coeff_gg_write(uintptr_t base,uint16_t data)12841 static __inline void acamera_isp_pf_correction_ccm_coeff_gg_write(uintptr_t base, uint16_t data) {
12842     uint32_t curr = system_sw_read_32(base + 0x1aff0L);
12843     system_sw_write_32(base + 0x1aff0L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
12844 }
acamera_isp_pf_correction_ccm_coeff_gg_read(uintptr_t base)12845 static __inline uint16_t acamera_isp_pf_correction_ccm_coeff_gg_read(uintptr_t base) {
12846     return (uint16_t)((system_sw_read_32(base + 0x1aff0L) & 0x1fff) >> 0);
12847 }
12848 // ------------------------------------------------------------------------------ //
12849 // Register: ccm_coeff_gb
12850 // ------------------------------------------------------------------------------ //
12851 
12852 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GB_DEFAULT (0x1045)
12853 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GB_DATASIZE (13)
12854 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GB_OFFSET (0x216c)
12855 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_GB_MASK (0x1fff)
12856 
12857 // args: data (13-bit)
acamera_isp_pf_correction_ccm_coeff_gb_write(uintptr_t base,uint16_t data)12858 static __inline void acamera_isp_pf_correction_ccm_coeff_gb_write(uintptr_t base, uint16_t data) {
12859     uint32_t curr = system_sw_read_32(base + 0x1aff4L);
12860     system_sw_write_32(base + 0x1aff4L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
12861 }
acamera_isp_pf_correction_ccm_coeff_gb_read(uintptr_t base)12862 static __inline uint16_t acamera_isp_pf_correction_ccm_coeff_gb_read(uintptr_t base) {
12863     return (uint16_t)((system_sw_read_32(base + 0x1aff4L) & 0x1fff) >> 0);
12864 }
12865 // ------------------------------------------------------------------------------ //
12866 // Register: ccm_coeff_br
12867 // ------------------------------------------------------------------------------ //
12868 
12869 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BR_DEFAULT (0x012)
12870 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BR_DATASIZE (13)
12871 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BR_OFFSET (0x2170)
12872 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BR_MASK (0x1fff)
12873 
12874 // args: data (13-bit)
acamera_isp_pf_correction_ccm_coeff_br_write(uintptr_t base,uint16_t data)12875 static __inline void acamera_isp_pf_correction_ccm_coeff_br_write(uintptr_t base, uint16_t data) {
12876     uint32_t curr = system_sw_read_32(base + 0x1aff8L);
12877     system_sw_write_32(base + 0x1aff8L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
12878 }
acamera_isp_pf_correction_ccm_coeff_br_read(uintptr_t base)12879 static __inline uint16_t acamera_isp_pf_correction_ccm_coeff_br_read(uintptr_t base) {
12880     return (uint16_t)((system_sw_read_32(base + 0x1aff8L) & 0x1fff) >> 0);
12881 }
12882 // ------------------------------------------------------------------------------ //
12883 // Register: ccm_coeff_bg
12884 // ------------------------------------------------------------------------------ //
12885 
12886 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BG_DEFAULT (0x10AC)
12887 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BG_DATASIZE (13)
12888 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BG_OFFSET (0x2174)
12889 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BG_MASK (0x1fff)
12890 
12891 // args: data (13-bit)
acamera_isp_pf_correction_ccm_coeff_bg_write(uintptr_t base,uint16_t data)12892 static __inline void acamera_isp_pf_correction_ccm_coeff_bg_write(uintptr_t base, uint16_t data) {
12893     uint32_t curr = system_sw_read_32(base + 0x1affcL);
12894     system_sw_write_32(base + 0x1affcL, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
12895 }
acamera_isp_pf_correction_ccm_coeff_bg_read(uintptr_t base)12896 static __inline uint16_t acamera_isp_pf_correction_ccm_coeff_bg_read(uintptr_t base) {
12897     return (uint16_t)((system_sw_read_32(base + 0x1affcL) & 0x1fff) >> 0);
12898 }
12899 // ------------------------------------------------------------------------------ //
12900 // Register: ccm_coeff_bb
12901 // ------------------------------------------------------------------------------ //
12902 
12903 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BB_DEFAULT (0x19A)
12904 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BB_DATASIZE (13)
12905 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BB_OFFSET (0x2178)
12906 #define ACAMERA_ISP_PF_CORRECTION_CCM_COEFF_BB_MASK (0x1fff)
12907 
12908 // args: data (13-bit)
acamera_isp_pf_correction_ccm_coeff_bb_write(uintptr_t base,uint16_t data)12909 static __inline void acamera_isp_pf_correction_ccm_coeff_bb_write(uintptr_t base, uint16_t data) {
12910     uint32_t curr = system_sw_read_32(base + 0x1b000L);
12911     system_sw_write_32(base + 0x1b000L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
12912 }
acamera_isp_pf_correction_ccm_coeff_bb_read(uintptr_t base)12913 static __inline uint16_t acamera_isp_pf_correction_ccm_coeff_bb_read(uintptr_t base) {
12914     return (uint16_t)((system_sw_read_32(base + 0x1b000L) & 0x1fff) >> 0);
12915 }
12916 // ------------------------------------------------------------------------------ //
12917 // Register: sad_slope
12918 // ------------------------------------------------------------------------------ //
12919 
12920 #define ACAMERA_ISP_PF_CORRECTION_SAD_SLOPE_DEFAULT (0x001)
12921 #define ACAMERA_ISP_PF_CORRECTION_SAD_SLOPE_DATASIZE (12)
12922 #define ACAMERA_ISP_PF_CORRECTION_SAD_SLOPE_OFFSET (0x217c)
12923 #define ACAMERA_ISP_PF_CORRECTION_SAD_SLOPE_MASK (0xfff)
12924 
12925 // args: data (12-bit)
acamera_isp_pf_correction_sad_slope_write(uintptr_t base,uint16_t data)12926 static __inline void acamera_isp_pf_correction_sad_slope_write(uintptr_t base, uint16_t data) {
12927     uint32_t curr = system_sw_read_32(base + 0x1b004L);
12928     system_sw_write_32(base + 0x1b004L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12929 }
acamera_isp_pf_correction_sad_slope_read(uintptr_t base)12930 static __inline uint16_t acamera_isp_pf_correction_sad_slope_read(uintptr_t base) {
12931     return (uint16_t)((system_sw_read_32(base + 0x1b004L) & 0xfff) >> 0);
12932 }
12933 // ------------------------------------------------------------------------------ //
12934 // Register: sad_offset
12935 // ------------------------------------------------------------------------------ //
12936 
12937 #define ACAMERA_ISP_PF_CORRECTION_SAD_OFFSET_DEFAULT (0x000)
12938 #define ACAMERA_ISP_PF_CORRECTION_SAD_OFFSET_DATASIZE (12)
12939 #define ACAMERA_ISP_PF_CORRECTION_SAD_OFFSET_OFFSET (0x217c)
12940 #define ACAMERA_ISP_PF_CORRECTION_SAD_OFFSET_MASK (0xfff0000)
12941 
12942 // args: data (12-bit)
acamera_isp_pf_correction_sad_offset_write(uintptr_t base,uint16_t data)12943 static __inline void acamera_isp_pf_correction_sad_offset_write(uintptr_t base, uint16_t data) {
12944     uint32_t curr = system_sw_read_32(base + 0x1b004L);
12945     system_sw_write_32(base + 0x1b004L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12946 }
acamera_isp_pf_correction_sad_offset_read(uintptr_t base)12947 static __inline uint16_t acamera_isp_pf_correction_sad_offset_read(uintptr_t base) {
12948     return (uint16_t)((system_sw_read_32(base + 0x1b004L) & 0xfff0000) >> 16);
12949 }
12950 // ------------------------------------------------------------------------------ //
12951 // Register: sad_thresh
12952 // ------------------------------------------------------------------------------ //
12953 
12954 #define ACAMERA_ISP_PF_CORRECTION_SAD_THRESH_DEFAULT (0x148)
12955 #define ACAMERA_ISP_PF_CORRECTION_SAD_THRESH_DATASIZE (12)
12956 #define ACAMERA_ISP_PF_CORRECTION_SAD_THRESH_OFFSET (0x2180)
12957 #define ACAMERA_ISP_PF_CORRECTION_SAD_THRESH_MASK (0xfff)
12958 
12959 // args: data (12-bit)
acamera_isp_pf_correction_sad_thresh_write(uintptr_t base,uint16_t data)12960 static __inline void acamera_isp_pf_correction_sad_thresh_write(uintptr_t base, uint16_t data) {
12961     uint32_t curr = system_sw_read_32(base + 0x1b008L);
12962     system_sw_write_32(base + 0x1b008L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12963 }
acamera_isp_pf_correction_sad_thresh_read(uintptr_t base)12964 static __inline uint16_t acamera_isp_pf_correction_sad_thresh_read(uintptr_t base) {
12965     return (uint16_t)((system_sw_read_32(base + 0x1b008L) & 0xfff) >> 0);
12966 }
12967 // ------------------------------------------------------------------------------ //
12968 // Register: hue_low_slope
12969 // ------------------------------------------------------------------------------ //
12970 
12971 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_SLOPE_DEFAULT (0x131)
12972 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_SLOPE_DATASIZE (12)
12973 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_SLOPE_OFFSET (0x2184)
12974 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_SLOPE_MASK (0xfff)
12975 
12976 // args: data (12-bit)
acamera_isp_pf_correction_hue_low_slope_write(uintptr_t base,uint16_t data)12977 static __inline void acamera_isp_pf_correction_hue_low_slope_write(uintptr_t base, uint16_t data) {
12978     uint32_t curr = system_sw_read_32(base + 0x1b00cL);
12979     system_sw_write_32(base + 0x1b00cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
12980 }
acamera_isp_pf_correction_hue_low_slope_read(uintptr_t base)12981 static __inline uint16_t acamera_isp_pf_correction_hue_low_slope_read(uintptr_t base) {
12982     return (uint16_t)((system_sw_read_32(base + 0x1b00cL) & 0xfff) >> 0);
12983 }
12984 // ------------------------------------------------------------------------------ //
12985 // Register: hue_low_offset
12986 // ------------------------------------------------------------------------------ //
12987 
12988 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_OFFSET_DEFAULT (0x000)
12989 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_OFFSET_DATASIZE (12)
12990 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_OFFSET_OFFSET (0x2184)
12991 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_OFFSET_MASK (0xfff0000)
12992 
12993 // args: data (12-bit)
acamera_isp_pf_correction_hue_low_offset_write(uintptr_t base,uint16_t data)12994 static __inline void acamera_isp_pf_correction_hue_low_offset_write(uintptr_t base, uint16_t data) {
12995     uint32_t curr = system_sw_read_32(base + 0x1b00cL);
12996     system_sw_write_32(base + 0x1b00cL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
12997 }
acamera_isp_pf_correction_hue_low_offset_read(uintptr_t base)12998 static __inline uint16_t acamera_isp_pf_correction_hue_low_offset_read(uintptr_t base) {
12999     return (uint16_t)((system_sw_read_32(base + 0x1b00cL) & 0xfff0000) >> 16);
13000 }
13001 // ------------------------------------------------------------------------------ //
13002 // Register: hue_low_thresh
13003 // ------------------------------------------------------------------------------ //
13004 
13005 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_THRESH_DEFAULT (0x733)
13006 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_THRESH_DATASIZE (12)
13007 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_THRESH_OFFSET (0x2188)
13008 #define ACAMERA_ISP_PF_CORRECTION_HUE_LOW_THRESH_MASK (0xfff)
13009 
13010 // args: data (12-bit)
acamera_isp_pf_correction_hue_low_thresh_write(uintptr_t base,uint16_t data)13011 static __inline void acamera_isp_pf_correction_hue_low_thresh_write(uintptr_t base, uint16_t data) {
13012     uint32_t curr = system_sw_read_32(base + 0x1b010L);
13013     system_sw_write_32(base + 0x1b010L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13014 }
acamera_isp_pf_correction_hue_low_thresh_read(uintptr_t base)13015 static __inline uint16_t acamera_isp_pf_correction_hue_low_thresh_read(uintptr_t base) {
13016     return (uint16_t)((system_sw_read_32(base + 0x1b010L) & 0xfff) >> 0);
13017 }
13018 // ------------------------------------------------------------------------------ //
13019 // Register: hue_high_slope
13020 // ------------------------------------------------------------------------------ //
13021 
13022 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_SLOPE_DEFAULT (0x855)
13023 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_SLOPE_DATASIZE (12)
13024 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_SLOPE_OFFSET (0x218c)
13025 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_SLOPE_MASK (0xfff)
13026 
13027 // args: data (12-bit)
acamera_isp_pf_correction_hue_high_slope_write(uintptr_t base,uint16_t data)13028 static __inline void acamera_isp_pf_correction_hue_high_slope_write(uintptr_t base, uint16_t data) {
13029     uint32_t curr = system_sw_read_32(base + 0x1b014L);
13030     system_sw_write_32(base + 0x1b014L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13031 }
acamera_isp_pf_correction_hue_high_slope_read(uintptr_t base)13032 static __inline uint16_t acamera_isp_pf_correction_hue_high_slope_read(uintptr_t base) {
13033     return (uint16_t)((system_sw_read_32(base + 0x1b014L) & 0xfff) >> 0);
13034 }
13035 // ------------------------------------------------------------------------------ //
13036 // Register: hue_high_offset
13037 // ------------------------------------------------------------------------------ //
13038 
13039 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_OFFSET_DEFAULT (0x000)
13040 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_OFFSET_DATASIZE (12)
13041 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_OFFSET_OFFSET (0x218c)
13042 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_OFFSET_MASK (0xfff0000)
13043 
13044 // args: data (12-bit)
acamera_isp_pf_correction_hue_high_offset_write(uintptr_t base,uint16_t data)13045 static __inline void acamera_isp_pf_correction_hue_high_offset_write(uintptr_t base, uint16_t data) {
13046     uint32_t curr = system_sw_read_32(base + 0x1b014L);
13047     system_sw_write_32(base + 0x1b014L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
13048 }
acamera_isp_pf_correction_hue_high_offset_read(uintptr_t base)13049 static __inline uint16_t acamera_isp_pf_correction_hue_high_offset_read(uintptr_t base) {
13050     return (uint16_t)((system_sw_read_32(base + 0x1b014L) & 0xfff0000) >> 16);
13051 }
13052 // ------------------------------------------------------------------------------ //
13053 // Register: hue_high_thresh
13054 // ------------------------------------------------------------------------------ //
13055 
13056 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_THRESH_DEFAULT (0x8E1)
13057 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_THRESH_DATASIZE (12)
13058 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_THRESH_OFFSET (0x2190)
13059 #define ACAMERA_ISP_PF_CORRECTION_HUE_HIGH_THRESH_MASK (0xfff)
13060 
13061 // args: data (12-bit)
acamera_isp_pf_correction_hue_high_thresh_write(uintptr_t base,uint16_t data)13062 static __inline void acamera_isp_pf_correction_hue_high_thresh_write(uintptr_t base, uint16_t data) {
13063     uint32_t curr = system_sw_read_32(base + 0x1b018L);
13064     system_sw_write_32(base + 0x1b018L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13065 }
acamera_isp_pf_correction_hue_high_thresh_read(uintptr_t base)13066 static __inline uint16_t acamera_isp_pf_correction_hue_high_thresh_read(uintptr_t base) {
13067     return (uint16_t)((system_sw_read_32(base + 0x1b018L) & 0xfff) >> 0);
13068 }
13069 // ------------------------------------------------------------------------------ //
13070 // Register: sat_low_slope
13071 // ------------------------------------------------------------------------------ //
13072 
13073 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_SLOPE_DEFAULT (0x021)
13074 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_SLOPE_DATASIZE (12)
13075 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_SLOPE_OFFSET (0x2194)
13076 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_SLOPE_MASK (0xfff)
13077 
13078 // args: data (12-bit)
acamera_isp_pf_correction_sat_low_slope_write(uintptr_t base,uint16_t data)13079 static __inline void acamera_isp_pf_correction_sat_low_slope_write(uintptr_t base, uint16_t data) {
13080     uint32_t curr = system_sw_read_32(base + 0x1b01cL);
13081     system_sw_write_32(base + 0x1b01cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13082 }
acamera_isp_pf_correction_sat_low_slope_read(uintptr_t base)13083 static __inline uint16_t acamera_isp_pf_correction_sat_low_slope_read(uintptr_t base) {
13084     return (uint16_t)((system_sw_read_32(base + 0x1b01cL) & 0xfff) >> 0);
13085 }
13086 // ------------------------------------------------------------------------------ //
13087 // Register: sat_low_offset
13088 // ------------------------------------------------------------------------------ //
13089 
13090 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_OFFSET_DEFAULT (0x000)
13091 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_OFFSET_DATASIZE (12)
13092 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_OFFSET_OFFSET (0x2194)
13093 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_OFFSET_MASK (0xfff0000)
13094 
13095 // args: data (12-bit)
acamera_isp_pf_correction_sat_low_offset_write(uintptr_t base,uint16_t data)13096 static __inline void acamera_isp_pf_correction_sat_low_offset_write(uintptr_t base, uint16_t data) {
13097     uint32_t curr = system_sw_read_32(base + 0x1b01cL);
13098     system_sw_write_32(base + 0x1b01cL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
13099 }
acamera_isp_pf_correction_sat_low_offset_read(uintptr_t base)13100 static __inline uint16_t acamera_isp_pf_correction_sat_low_offset_read(uintptr_t base) {
13101     return (uint16_t)((system_sw_read_32(base + 0x1b01cL) & 0xfff0000) >> 16);
13102 }
13103 // ------------------------------------------------------------------------------ //
13104 // Register: sat_low_thresh
13105 // ------------------------------------------------------------------------------ //
13106 
13107 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_THRESH_DEFAULT (0x0A4)
13108 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_THRESH_DATASIZE (12)
13109 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_THRESH_OFFSET (0x2198)
13110 #define ACAMERA_ISP_PF_CORRECTION_SAT_LOW_THRESH_MASK (0xfff)
13111 
13112 // args: data (12-bit)
acamera_isp_pf_correction_sat_low_thresh_write(uintptr_t base,uint16_t data)13113 static __inline void acamera_isp_pf_correction_sat_low_thresh_write(uintptr_t base, uint16_t data) {
13114     uint32_t curr = system_sw_read_32(base + 0x1b020L);
13115     system_sw_write_32(base + 0x1b020L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13116 }
acamera_isp_pf_correction_sat_low_thresh_read(uintptr_t base)13117 static __inline uint16_t acamera_isp_pf_correction_sat_low_thresh_read(uintptr_t base) {
13118     return (uint16_t)((system_sw_read_32(base + 0x1b020L) & 0xfff) >> 0);
13119 }
13120 // ------------------------------------------------------------------------------ //
13121 // Register: sat_high_slope
13122 // ------------------------------------------------------------------------------ //
13123 
13124 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_SLOPE_DEFAULT (0x000)
13125 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_SLOPE_DATASIZE (12)
13126 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_SLOPE_OFFSET (0x219c)
13127 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_SLOPE_MASK (0xfff)
13128 
13129 // args: data (12-bit)
acamera_isp_pf_correction_sat_high_slope_write(uintptr_t base,uint16_t data)13130 static __inline void acamera_isp_pf_correction_sat_high_slope_write(uintptr_t base, uint16_t data) {
13131     uint32_t curr = system_sw_read_32(base + 0x1b024L);
13132     system_sw_write_32(base + 0x1b024L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13133 }
acamera_isp_pf_correction_sat_high_slope_read(uintptr_t base)13134 static __inline uint16_t acamera_isp_pf_correction_sat_high_slope_read(uintptr_t base) {
13135     return (uint16_t)((system_sw_read_32(base + 0x1b024L) & 0xfff) >> 0);
13136 }
13137 // ------------------------------------------------------------------------------ //
13138 // Register: sat_high_offset
13139 // ------------------------------------------------------------------------------ //
13140 
13141 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_OFFSET_DEFAULT (0xFFF)
13142 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_OFFSET_DATASIZE (12)
13143 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_OFFSET_OFFSET (0x219c)
13144 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_OFFSET_MASK (0xfff0000)
13145 
13146 // args: data (12-bit)
acamera_isp_pf_correction_sat_high_offset_write(uintptr_t base,uint16_t data)13147 static __inline void acamera_isp_pf_correction_sat_high_offset_write(uintptr_t base, uint16_t data) {
13148     uint32_t curr = system_sw_read_32(base + 0x1b024L);
13149     system_sw_write_32(base + 0x1b024L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
13150 }
acamera_isp_pf_correction_sat_high_offset_read(uintptr_t base)13151 static __inline uint16_t acamera_isp_pf_correction_sat_high_offset_read(uintptr_t base) {
13152     return (uint16_t)((system_sw_read_32(base + 0x1b024L) & 0xfff0000) >> 16);
13153 }
13154 // ------------------------------------------------------------------------------ //
13155 // Register: sat_high_thresh
13156 // ------------------------------------------------------------------------------ //
13157 
13158 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_THRESH_DEFAULT (0x000)
13159 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_THRESH_DATASIZE (12)
13160 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_THRESH_OFFSET (0x21a0)
13161 #define ACAMERA_ISP_PF_CORRECTION_SAT_HIGH_THRESH_MASK (0xfff)
13162 
13163 // args: data (12-bit)
acamera_isp_pf_correction_sat_high_thresh_write(uintptr_t base,uint16_t data)13164 static __inline void acamera_isp_pf_correction_sat_high_thresh_write(uintptr_t base, uint16_t data) {
13165     uint32_t curr = system_sw_read_32(base + 0x1b028L);
13166     system_sw_write_32(base + 0x1b028L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13167 }
acamera_isp_pf_correction_sat_high_thresh_read(uintptr_t base)13168 static __inline uint16_t acamera_isp_pf_correction_sat_high_thresh_read(uintptr_t base) {
13169     return (uint16_t)((system_sw_read_32(base + 0x1b028L) & 0xfff) >> 0);
13170 }
13171 // ------------------------------------------------------------------------------ //
13172 // Register: luma1_low_slope
13173 // ------------------------------------------------------------------------------ //
13174 
13175 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_SLOPE_DEFAULT (0x000)
13176 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_SLOPE_DATASIZE (12)
13177 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_SLOPE_OFFSET (0x21a4)
13178 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_SLOPE_MASK (0xfff)
13179 
13180 // args: data (12-bit)
acamera_isp_pf_correction_luma1_low_slope_write(uintptr_t base,uint16_t data)13181 static __inline void acamera_isp_pf_correction_luma1_low_slope_write(uintptr_t base, uint16_t data) {
13182     uint32_t curr = system_sw_read_32(base + 0x1b02cL);
13183     system_sw_write_32(base + 0x1b02cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13184 }
acamera_isp_pf_correction_luma1_low_slope_read(uintptr_t base)13185 static __inline uint16_t acamera_isp_pf_correction_luma1_low_slope_read(uintptr_t base) {
13186     return (uint16_t)((system_sw_read_32(base + 0x1b02cL) & 0xfff) >> 0);
13187 }
13188 // ------------------------------------------------------------------------------ //
13189 // Register: luma1_low_offset
13190 // ------------------------------------------------------------------------------ //
13191 
13192 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_OFFSET_DEFAULT (0x000)
13193 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_OFFSET_DATASIZE (12)
13194 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_OFFSET_OFFSET (0x21a4)
13195 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_OFFSET_MASK (0xfff0000)
13196 
13197 // args: data (12-bit)
acamera_isp_pf_correction_luma1_low_offset_write(uintptr_t base,uint16_t data)13198 static __inline void acamera_isp_pf_correction_luma1_low_offset_write(uintptr_t base, uint16_t data) {
13199     uint32_t curr = system_sw_read_32(base + 0x1b02cL);
13200     system_sw_write_32(base + 0x1b02cL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
13201 }
acamera_isp_pf_correction_luma1_low_offset_read(uintptr_t base)13202 static __inline uint16_t acamera_isp_pf_correction_luma1_low_offset_read(uintptr_t base) {
13203     return (uint16_t)((system_sw_read_32(base + 0x1b02cL) & 0xfff0000) >> 16);
13204 }
13205 // ------------------------------------------------------------------------------ //
13206 // Register: luma1_low_thresh
13207 // ------------------------------------------------------------------------------ //
13208 
13209 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_THRESH_DEFAULT (0x000)
13210 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_THRESH_DATASIZE (12)
13211 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_THRESH_OFFSET (0x21a8)
13212 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_LOW_THRESH_MASK (0xfff)
13213 
13214 // args: data (12-bit)
acamera_isp_pf_correction_luma1_low_thresh_write(uintptr_t base,uint16_t data)13215 static __inline void acamera_isp_pf_correction_luma1_low_thresh_write(uintptr_t base, uint16_t data) {
13216     uint32_t curr = system_sw_read_32(base + 0x1b030L);
13217     system_sw_write_32(base + 0x1b030L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13218 }
acamera_isp_pf_correction_luma1_low_thresh_read(uintptr_t base)13219 static __inline uint16_t acamera_isp_pf_correction_luma1_low_thresh_read(uintptr_t base) {
13220     return (uint16_t)((system_sw_read_32(base + 0x1b030L) & 0xfff) >> 0);
13221 }
13222 // ------------------------------------------------------------------------------ //
13223 // Register: luma1_high_slope
13224 // ------------------------------------------------------------------------------ //
13225 
13226 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_SLOPE_DEFAULT (0x000)
13227 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_SLOPE_DATASIZE (12)
13228 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_SLOPE_OFFSET (0x21ac)
13229 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_SLOPE_MASK (0xfff)
13230 
13231 // args: data (12-bit)
acamera_isp_pf_correction_luma1_high_slope_write(uintptr_t base,uint16_t data)13232 static __inline void acamera_isp_pf_correction_luma1_high_slope_write(uintptr_t base, uint16_t data) {
13233     uint32_t curr = system_sw_read_32(base + 0x1b034L);
13234     system_sw_write_32(base + 0x1b034L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13235 }
acamera_isp_pf_correction_luma1_high_slope_read(uintptr_t base)13236 static __inline uint16_t acamera_isp_pf_correction_luma1_high_slope_read(uintptr_t base) {
13237     return (uint16_t)((system_sw_read_32(base + 0x1b034L) & 0xfff) >> 0);
13238 }
13239 // ------------------------------------------------------------------------------ //
13240 // Register: luma1_high_offset
13241 // ------------------------------------------------------------------------------ //
13242 
13243 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_OFFSET_DEFAULT (0x000)
13244 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_OFFSET_DATASIZE (12)
13245 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_OFFSET_OFFSET (0x21ac)
13246 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_OFFSET_MASK (0xfff0000)
13247 
13248 // args: data (12-bit)
acamera_isp_pf_correction_luma1_high_offset_write(uintptr_t base,uint16_t data)13249 static __inline void acamera_isp_pf_correction_luma1_high_offset_write(uintptr_t base, uint16_t data) {
13250     uint32_t curr = system_sw_read_32(base + 0x1b034L);
13251     system_sw_write_32(base + 0x1b034L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
13252 }
acamera_isp_pf_correction_luma1_high_offset_read(uintptr_t base)13253 static __inline uint16_t acamera_isp_pf_correction_luma1_high_offset_read(uintptr_t base) {
13254     return (uint16_t)((system_sw_read_32(base + 0x1b034L) & 0xfff0000) >> 16);
13255 }
13256 // ------------------------------------------------------------------------------ //
13257 // Register: luma1_high_thresh
13258 // ------------------------------------------------------------------------------ //
13259 
13260 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_THRESH_DEFAULT (0x000)
13261 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_THRESH_DATASIZE (12)
13262 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_THRESH_OFFSET (0x21b0)
13263 #define ACAMERA_ISP_PF_CORRECTION_LUMA1_HIGH_THRESH_MASK (0xfff)
13264 
13265 // args: data (12-bit)
acamera_isp_pf_correction_luma1_high_thresh_write(uintptr_t base,uint16_t data)13266 static __inline void acamera_isp_pf_correction_luma1_high_thresh_write(uintptr_t base, uint16_t data) {
13267     uint32_t curr = system_sw_read_32(base + 0x1b038L);
13268     system_sw_write_32(base + 0x1b038L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13269 }
acamera_isp_pf_correction_luma1_high_thresh_read(uintptr_t base)13270 static __inline uint16_t acamera_isp_pf_correction_luma1_high_thresh_read(uintptr_t base) {
13271     return (uint16_t)((system_sw_read_32(base + 0x1b038L) & 0xfff) >> 0);
13272 }
13273 // ------------------------------------------------------------------------------ //
13274 // Register: luma2_low_slope
13275 // ------------------------------------------------------------------------------ //
13276 
13277 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_SLOPE_DEFAULT (0x140)
13278 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_SLOPE_DATASIZE (12)
13279 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_SLOPE_OFFSET (0x21b4)
13280 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_SLOPE_MASK (0xfff)
13281 
13282 // args: data (12-bit)
acamera_isp_pf_correction_luma2_low_slope_write(uintptr_t base,uint16_t data)13283 static __inline void acamera_isp_pf_correction_luma2_low_slope_write(uintptr_t base, uint16_t data) {
13284     uint32_t curr = system_sw_read_32(base + 0x1b03cL);
13285     system_sw_write_32(base + 0x1b03cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13286 }
acamera_isp_pf_correction_luma2_low_slope_read(uintptr_t base)13287 static __inline uint16_t acamera_isp_pf_correction_luma2_low_slope_read(uintptr_t base) {
13288     return (uint16_t)((system_sw_read_32(base + 0x1b03cL) & 0xfff) >> 0);
13289 }
13290 // ------------------------------------------------------------------------------ //
13291 // Register: luma2_low_offset
13292 // ------------------------------------------------------------------------------ //
13293 
13294 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_OFFSET_DEFAULT (0x000)
13295 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_OFFSET_DATASIZE (12)
13296 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_OFFSET_OFFSET (0x21b4)
13297 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_OFFSET_MASK (0xfff0000)
13298 
13299 // args: data (12-bit)
acamera_isp_pf_correction_luma2_low_offset_write(uintptr_t base,uint16_t data)13300 static __inline void acamera_isp_pf_correction_luma2_low_offset_write(uintptr_t base, uint16_t data) {
13301     uint32_t curr = system_sw_read_32(base + 0x1b03cL);
13302     system_sw_write_32(base + 0x1b03cL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
13303 }
acamera_isp_pf_correction_luma2_low_offset_read(uintptr_t base)13304 static __inline uint16_t acamera_isp_pf_correction_luma2_low_offset_read(uintptr_t base) {
13305     return (uint16_t)((system_sw_read_32(base + 0x1b03cL) & 0xfff0000) >> 16);
13306 }
13307 // ------------------------------------------------------------------------------ //
13308 // Register: luma2_low_thresh
13309 // ------------------------------------------------------------------------------ //
13310 
13311 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_THRESH_DEFAULT (0x0CD)
13312 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_THRESH_DATASIZE (12)
13313 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_THRESH_OFFSET (0x21b8)
13314 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_LOW_THRESH_MASK (0xfff)
13315 
13316 // args: data (12-bit)
acamera_isp_pf_correction_luma2_low_thresh_write(uintptr_t base,uint16_t data)13317 static __inline void acamera_isp_pf_correction_luma2_low_thresh_write(uintptr_t base, uint16_t data) {
13318     uint32_t curr = system_sw_read_32(base + 0x1b040L);
13319     system_sw_write_32(base + 0x1b040L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13320 }
acamera_isp_pf_correction_luma2_low_thresh_read(uintptr_t base)13321 static __inline uint16_t acamera_isp_pf_correction_luma2_low_thresh_read(uintptr_t base) {
13322     return (uint16_t)((system_sw_read_32(base + 0x1b040L) & 0xfff) >> 0);
13323 }
13324 // ------------------------------------------------------------------------------ //
13325 // Register: luma2_high_slope
13326 // ------------------------------------------------------------------------------ //
13327 
13328 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_SLOPE_DEFAULT (0x026)
13329 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_SLOPE_DATASIZE (12)
13330 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_SLOPE_OFFSET (0x21bc)
13331 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_SLOPE_MASK (0xfff)
13332 
13333 // args: data (12-bit)
acamera_isp_pf_correction_luma2_high_slope_write(uintptr_t base,uint16_t data)13334 static __inline void acamera_isp_pf_correction_luma2_high_slope_write(uintptr_t base, uint16_t data) {
13335     uint32_t curr = system_sw_read_32(base + 0x1b044L);
13336     system_sw_write_32(base + 0x1b044L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13337 }
acamera_isp_pf_correction_luma2_high_slope_read(uintptr_t base)13338 static __inline uint16_t acamera_isp_pf_correction_luma2_high_slope_read(uintptr_t base) {
13339     return (uint16_t)((system_sw_read_32(base + 0x1b044L) & 0xfff) >> 0);
13340 }
13341 // ------------------------------------------------------------------------------ //
13342 // Register: luma2_high_offset
13343 // ------------------------------------------------------------------------------ //
13344 
13345 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_OFFSET_DEFAULT (0x000)
13346 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_OFFSET_DATASIZE (12)
13347 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_OFFSET_OFFSET (0x21bc)
13348 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_OFFSET_MASK (0xfff0000)
13349 
13350 // args: data (12-bit)
acamera_isp_pf_correction_luma2_high_offset_write(uintptr_t base,uint16_t data)13351 static __inline void acamera_isp_pf_correction_luma2_high_offset_write(uintptr_t base, uint16_t data) {
13352     uint32_t curr = system_sw_read_32(base + 0x1b044L);
13353     system_sw_write_32(base + 0x1b044L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
13354 }
acamera_isp_pf_correction_luma2_high_offset_read(uintptr_t base)13355 static __inline uint16_t acamera_isp_pf_correction_luma2_high_offset_read(uintptr_t base) {
13356     return (uint16_t)((system_sw_read_32(base + 0x1b044L) & 0xfff0000) >> 16);
13357 }
13358 // ------------------------------------------------------------------------------ //
13359 // Register: luma2_high_thresh
13360 // ------------------------------------------------------------------------------ //
13361 
13362 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_THRESH_DEFAULT (0x1A0)
13363 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_THRESH_DATASIZE (12)
13364 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_THRESH_OFFSET (0x21c0)
13365 #define ACAMERA_ISP_PF_CORRECTION_LUMA2_HIGH_THRESH_MASK (0xfff)
13366 
13367 // args: data (12-bit)
acamera_isp_pf_correction_luma2_high_thresh_write(uintptr_t base,uint16_t data)13368 static __inline void acamera_isp_pf_correction_luma2_high_thresh_write(uintptr_t base, uint16_t data) {
13369     uint32_t curr = system_sw_read_32(base + 0x1b048L);
13370     system_sw_write_32(base + 0x1b048L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13371 }
acamera_isp_pf_correction_luma2_high_thresh_read(uintptr_t base)13372 static __inline uint16_t acamera_isp_pf_correction_luma2_high_thresh_read(uintptr_t base) {
13373     return (uint16_t)((system_sw_read_32(base + 0x1b048L) & 0xfff) >> 0);
13374 }
13375 // ------------------------------------------------------------------------------ //
13376 // Register: hsl_slope
13377 // ------------------------------------------------------------------------------ //
13378 
13379 #define ACAMERA_ISP_PF_CORRECTION_HSL_SLOPE_DEFAULT (0x024)
13380 #define ACAMERA_ISP_PF_CORRECTION_HSL_SLOPE_DATASIZE (12)
13381 #define ACAMERA_ISP_PF_CORRECTION_HSL_SLOPE_OFFSET (0x21c4)
13382 #define ACAMERA_ISP_PF_CORRECTION_HSL_SLOPE_MASK (0xfff)
13383 
13384 // args: data (12-bit)
acamera_isp_pf_correction_hsl_slope_write(uintptr_t base,uint16_t data)13385 static __inline void acamera_isp_pf_correction_hsl_slope_write(uintptr_t base, uint16_t data) {
13386     uint32_t curr = system_sw_read_32(base + 0x1b04cL);
13387     system_sw_write_32(base + 0x1b04cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13388 }
acamera_isp_pf_correction_hsl_slope_read(uintptr_t base)13389 static __inline uint16_t acamera_isp_pf_correction_hsl_slope_read(uintptr_t base) {
13390     return (uint16_t)((system_sw_read_32(base + 0x1b04cL) & 0xfff) >> 0);
13391 }
13392 // ------------------------------------------------------------------------------ //
13393 // Register: hsl_offset
13394 // ------------------------------------------------------------------------------ //
13395 
13396 #define ACAMERA_ISP_PF_CORRECTION_HSL_OFFSET_DEFAULT (0x000)
13397 #define ACAMERA_ISP_PF_CORRECTION_HSL_OFFSET_DATASIZE (12)
13398 #define ACAMERA_ISP_PF_CORRECTION_HSL_OFFSET_OFFSET (0x21c4)
13399 #define ACAMERA_ISP_PF_CORRECTION_HSL_OFFSET_MASK (0xfff0000)
13400 
13401 // args: data (12-bit)
acamera_isp_pf_correction_hsl_offset_write(uintptr_t base,uint16_t data)13402 static __inline void acamera_isp_pf_correction_hsl_offset_write(uintptr_t base, uint16_t data) {
13403     uint32_t curr = system_sw_read_32(base + 0x1b04cL);
13404     system_sw_write_32(base + 0x1b04cL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
13405 }
acamera_isp_pf_correction_hsl_offset_read(uintptr_t base)13406 static __inline uint16_t acamera_isp_pf_correction_hsl_offset_read(uintptr_t base) {
13407     return (uint16_t)((system_sw_read_32(base + 0x1b04cL) & 0xfff0000) >> 16);
13408 }
13409 // ------------------------------------------------------------------------------ //
13410 // Register: hsl_thresh
13411 // ------------------------------------------------------------------------------ //
13412 
13413 #define ACAMERA_ISP_PF_CORRECTION_HSL_THRESH_DEFAULT (0x000)
13414 #define ACAMERA_ISP_PF_CORRECTION_HSL_THRESH_DATASIZE (12)
13415 #define ACAMERA_ISP_PF_CORRECTION_HSL_THRESH_OFFSET (0x21c8)
13416 #define ACAMERA_ISP_PF_CORRECTION_HSL_THRESH_MASK (0xfff)
13417 
13418 // args: data (12-bit)
acamera_isp_pf_correction_hsl_thresh_write(uintptr_t base,uint16_t data)13419 static __inline void acamera_isp_pf_correction_hsl_thresh_write(uintptr_t base, uint16_t data) {
13420     uint32_t curr = system_sw_read_32(base + 0x1b050L);
13421     system_sw_write_32(base + 0x1b050L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13422 }
acamera_isp_pf_correction_hsl_thresh_read(uintptr_t base)13423 static __inline uint16_t acamera_isp_pf_correction_hsl_thresh_read(uintptr_t base) {
13424     return (uint16_t)((system_sw_read_32(base + 0x1b050L) & 0xfff) >> 0);
13425 }
13426 // ------------------------------------------------------------------------------ //
13427 // Register: debug_sel
13428 // ------------------------------------------------------------------------------ //
13429 
13430 // ------------------------------------------------------------------------------ //
13431 //
13432 //        0: normal operation
13433 //        1: radial weight in 0.8 format
13434 //        2: sad_mask in 0.12 format
13435 //        3: hue mask in 0.12 format
13436 //        4: saturation mask in 0.12 format
13437 //        5: luma mask in 12.0 format
13438 //        6: pf mask in 12.0 format
13439 //
13440 // ------------------------------------------------------------------------------ //
13441 
13442 #define ACAMERA_ISP_PF_CORRECTION_DEBUG_SEL_DEFAULT (0x000)
13443 #define ACAMERA_ISP_PF_CORRECTION_DEBUG_SEL_DATASIZE (8)
13444 #define ACAMERA_ISP_PF_CORRECTION_DEBUG_SEL_OFFSET (0x21cc)
13445 #define ACAMERA_ISP_PF_CORRECTION_DEBUG_SEL_MASK (0xff)
13446 
13447 // args: data (8-bit)
acamera_isp_pf_correction_debug_sel_write(uintptr_t base,uint8_t data)13448 static __inline void acamera_isp_pf_correction_debug_sel_write(uintptr_t base, uint8_t data) {
13449     uint32_t curr = system_sw_read_32(base + 0x1b054L);
13450     system_sw_write_32(base + 0x1b054L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
13451 }
acamera_isp_pf_correction_debug_sel_read(uintptr_t base)13452 static __inline uint8_t acamera_isp_pf_correction_debug_sel_read(uintptr_t base) {
13453     return (uint8_t)((system_sw_read_32(base + 0x1b054L) & 0xff) >> 0);
13454 }
13455 // ------------------------------------------------------------------------------ //
13456 // Group: pf correction Shading
13457 // ------------------------------------------------------------------------------ //
13458 
13459 // ------------------------------------------------------------------------------ //
13460 // LUT: shading_lut
13461 // ------------------------------------------------------------------------------ //
13462 
13463 // ------------------------------------------------------------------------------ //
13464 // Radial Purple Fringe Correction LUT.
13465 // ------------------------------------------------------------------------------ //
13466 
13467 #define ACAMERA_ISP_PF_CORRECTION_SHADING_SHADING_LUT_NODES (33)
13468 #define ACAMERA_ISP_PF_CORRECTION_SHADING_SHADING_LUT_ADDRBITS (6)
13469 #define ACAMERA_ISP_PF_CORRECTION_SHADING_SHADING_LUT_DATASIZE (8)
13470 #define ACAMERA_ISP_PF_CORRECTION_SHADING_SHADING_LUT_OFFSET (0x1b058L)
13471 
13472 // args: index (0-32), data (8-bit)
acamera_isp_pf_correction_shading_shading_lut_write(uintptr_t base,uint8_t index,uint8_t data)13473 static __inline void acamera_isp_pf_correction_shading_shading_lut_write( uintptr_t base, uint8_t index,uint8_t data) {
13474     uintptr_t addr = base + 0x1b058L + (index & 0xFFFFFFFC);
13475     uint8_t offset = (index & 3) << 3;
13476     uint32_t curr = system_sw_read_32(addr);
13477     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
13478 }
acamera_isp_pf_correction_shading_shading_lut_read(uintptr_t base,uint8_t index)13479 static __inline uint8_t acamera_isp_pf_correction_shading_shading_lut_read( uintptr_t base, uint8_t index) {
13480     uintptr_t addr = base + 0x1b058L + (index & 0xFFFFFFFC);
13481     uint8_t offset = (index & 3) << 3;
13482     return (uint8_t)(system_sw_read_32(addr) >> offset);
13483 }
13484 // ------------------------------------------------------------------------------ //
13485 // Group: ccm
13486 // ------------------------------------------------------------------------------ //
13487 
13488 // ------------------------------------------------------------------------------ //
13489 // Color correction on RGB data using a 3x3 color matrix
13490 // ------------------------------------------------------------------------------ //
13491 
13492 // ------------------------------------------------------------------------------ //
13493 // Register: Enable
13494 // ------------------------------------------------------------------------------ //
13495 
13496 // ------------------------------------------------------------------------------ //
13497 // Color matrix enable: 0=off 1=on
13498 // ------------------------------------------------------------------------------ //
13499 
13500 #define ACAMERA_ISP_CCM_ENABLE_DEFAULT (1)
13501 #define ACAMERA_ISP_CCM_ENABLE_DATASIZE (1)
13502 #define ACAMERA_ISP_CCM_ENABLE_OFFSET (0x21f4)
13503 #define ACAMERA_ISP_CCM_ENABLE_MASK (0x1)
13504 
13505 // args: data (1-bit)
acamera_isp_ccm_enable_write(uintptr_t base,uint8_t data)13506 static __inline void acamera_isp_ccm_enable_write(uintptr_t base, uint8_t data) {
13507     uint32_t curr = system_sw_read_32(base + 0x1b07cL);
13508     system_sw_write_32(base + 0x1b07cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
13509 }
acamera_isp_ccm_enable_read(uintptr_t base)13510 static __inline uint8_t acamera_isp_ccm_enable_read(uintptr_t base) {
13511     return (uint8_t)((system_sw_read_32(base + 0x1b07cL) & 0x1) >> 0);
13512 }
13513 // ------------------------------------------------------------------------------ //
13514 // Register: Coefft R-R
13515 // ------------------------------------------------------------------------------ //
13516 
13517 // ------------------------------------------------------------------------------ //
13518 // Matrix coefficient for red-red multiplier
13519 // ------------------------------------------------------------------------------ //
13520 
13521 #define ACAMERA_ISP_CCM_COEFFT_R_R_DEFAULT (0x0100)
13522 #define ACAMERA_ISP_CCM_COEFFT_R_R_DATASIZE (13)
13523 #define ACAMERA_ISP_CCM_COEFFT_R_R_OFFSET (0x21f8)
13524 #define ACAMERA_ISP_CCM_COEFFT_R_R_MASK (0x1fff)
13525 
13526 // args: data (13-bit)
acamera_isp_ccm_coefft_r_r_write(uintptr_t base,uint16_t data)13527 static __inline void acamera_isp_ccm_coefft_r_r_write(uintptr_t base, uint16_t data) {
13528     uint32_t curr = system_sw_read_32(base + 0x1b080L);
13529     system_sw_write_32(base + 0x1b080L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13530 }
acamera_isp_ccm_coefft_r_r_read(uintptr_t base)13531 static __inline uint16_t acamera_isp_ccm_coefft_r_r_read(uintptr_t base) {
13532     return (uint16_t)((system_sw_read_32(base + 0x1b080L) & 0x1fff) >> 0);
13533 }
13534 // ------------------------------------------------------------------------------ //
13535 // Register: Coefft R-G
13536 // ------------------------------------------------------------------------------ //
13537 
13538 // ------------------------------------------------------------------------------ //
13539 // Matrix coefficient for red-green multiplier
13540 // ------------------------------------------------------------------------------ //
13541 
13542 #define ACAMERA_ISP_CCM_COEFFT_R_G_DEFAULT (0x0000)
13543 #define ACAMERA_ISP_CCM_COEFFT_R_G_DATASIZE (13)
13544 #define ACAMERA_ISP_CCM_COEFFT_R_G_OFFSET (0x21fc)
13545 #define ACAMERA_ISP_CCM_COEFFT_R_G_MASK (0x1fff)
13546 
13547 // args: data (13-bit)
acamera_isp_ccm_coefft_r_g_write(uintptr_t base,uint16_t data)13548 static __inline void acamera_isp_ccm_coefft_r_g_write(uintptr_t base, uint16_t data) {
13549     uint32_t curr = system_sw_read_32(base + 0x1b084L);
13550     system_sw_write_32(base + 0x1b084L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13551 }
acamera_isp_ccm_coefft_r_g_read(uintptr_t base)13552 static __inline uint16_t acamera_isp_ccm_coefft_r_g_read(uintptr_t base) {
13553     return (uint16_t)((system_sw_read_32(base + 0x1b084L) & 0x1fff) >> 0);
13554 }
13555 // ------------------------------------------------------------------------------ //
13556 // Register: Coefft R-B
13557 // ------------------------------------------------------------------------------ //
13558 
13559 // ------------------------------------------------------------------------------ //
13560 // Matrix coefficient for red-blue multiplier
13561 // ------------------------------------------------------------------------------ //
13562 
13563 #define ACAMERA_ISP_CCM_COEFFT_R_B_DEFAULT (0x0000)
13564 #define ACAMERA_ISP_CCM_COEFFT_R_B_DATASIZE (13)
13565 #define ACAMERA_ISP_CCM_COEFFT_R_B_OFFSET (0x2200)
13566 #define ACAMERA_ISP_CCM_COEFFT_R_B_MASK (0x1fff)
13567 
13568 // args: data (13-bit)
acamera_isp_ccm_coefft_r_b_write(uintptr_t base,uint16_t data)13569 static __inline void acamera_isp_ccm_coefft_r_b_write(uintptr_t base, uint16_t data) {
13570     uint32_t curr = system_sw_read_32(base + 0x1b088L);
13571     system_sw_write_32(base + 0x1b088L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13572 }
acamera_isp_ccm_coefft_r_b_read(uintptr_t base)13573 static __inline uint16_t acamera_isp_ccm_coefft_r_b_read(uintptr_t base) {
13574     return (uint16_t)((system_sw_read_32(base + 0x1b088L) & 0x1fff) >> 0);
13575 }
13576 // ------------------------------------------------------------------------------ //
13577 // Register: Coefft R-IR
13578 // ------------------------------------------------------------------------------ //
13579 
13580 // ------------------------------------------------------------------------------ //
13581 // Matrix coefficient for red-ir multiplier
13582 // ------------------------------------------------------------------------------ //
13583 
13584 #define ACAMERA_ISP_CCM_COEFFT_R_IR_DEFAULT (0x0000)
13585 #define ACAMERA_ISP_CCM_COEFFT_R_IR_DATASIZE (13)
13586 #define ACAMERA_ISP_CCM_COEFFT_R_IR_OFFSET (0x2204)
13587 #define ACAMERA_ISP_CCM_COEFFT_R_IR_MASK (0x1fff)
13588 
13589 // args: data (13-bit)
acamera_isp_ccm_coefft_r_ir_write(uintptr_t base,uint16_t data)13590 static __inline void acamera_isp_ccm_coefft_r_ir_write(uintptr_t base, uint16_t data) {
13591     uint32_t curr = system_sw_read_32(base + 0x1b08cL);
13592     system_sw_write_32(base + 0x1b08cL, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13593 }
acamera_isp_ccm_coefft_r_ir_read(uintptr_t base)13594 static __inline uint16_t acamera_isp_ccm_coefft_r_ir_read(uintptr_t base) {
13595     return (uint16_t)((system_sw_read_32(base + 0x1b08cL) & 0x1fff) >> 0);
13596 }
13597 // ------------------------------------------------------------------------------ //
13598 // Register: Coefft G-R
13599 // ------------------------------------------------------------------------------ //
13600 
13601 // ------------------------------------------------------------------------------ //
13602 // Matrix coefficient for green-red multiplier
13603 // ------------------------------------------------------------------------------ //
13604 
13605 #define ACAMERA_ISP_CCM_COEFFT_G_R_DEFAULT (0x0000)
13606 #define ACAMERA_ISP_CCM_COEFFT_G_R_DATASIZE (13)
13607 #define ACAMERA_ISP_CCM_COEFFT_G_R_OFFSET (0x2208)
13608 #define ACAMERA_ISP_CCM_COEFFT_G_R_MASK (0x1fff)
13609 
13610 // args: data (13-bit)
acamera_isp_ccm_coefft_g_r_write(uintptr_t base,uint16_t data)13611 static __inline void acamera_isp_ccm_coefft_g_r_write(uintptr_t base, uint16_t data) {
13612     uint32_t curr = system_sw_read_32(base + 0x1b090L);
13613     system_sw_write_32(base + 0x1b090L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13614 }
acamera_isp_ccm_coefft_g_r_read(uintptr_t base)13615 static __inline uint16_t acamera_isp_ccm_coefft_g_r_read(uintptr_t base) {
13616     return (uint16_t)((system_sw_read_32(base + 0x1b090L) & 0x1fff) >> 0);
13617 }
13618 // ------------------------------------------------------------------------------ //
13619 // Register: Coefft G-G
13620 // ------------------------------------------------------------------------------ //
13621 
13622 // ------------------------------------------------------------------------------ //
13623 // Matrix coefficient for green-green multiplier
13624 // ------------------------------------------------------------------------------ //
13625 
13626 #define ACAMERA_ISP_CCM_COEFFT_G_G_DEFAULT (0x0100)
13627 #define ACAMERA_ISP_CCM_COEFFT_G_G_DATASIZE (13)
13628 #define ACAMERA_ISP_CCM_COEFFT_G_G_OFFSET (0x220c)
13629 #define ACAMERA_ISP_CCM_COEFFT_G_G_MASK (0x1fff)
13630 
13631 // args: data (13-bit)
acamera_isp_ccm_coefft_g_g_write(uintptr_t base,uint16_t data)13632 static __inline void acamera_isp_ccm_coefft_g_g_write(uintptr_t base, uint16_t data) {
13633     uint32_t curr = system_sw_read_32(base + 0x1b094L);
13634     system_sw_write_32(base + 0x1b094L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13635 }
acamera_isp_ccm_coefft_g_g_read(uintptr_t base)13636 static __inline uint16_t acamera_isp_ccm_coefft_g_g_read(uintptr_t base) {
13637     return (uint16_t)((system_sw_read_32(base + 0x1b094L) & 0x1fff) >> 0);
13638 }
13639 // ------------------------------------------------------------------------------ //
13640 // Register: Coefft G-B
13641 // ------------------------------------------------------------------------------ //
13642 
13643 // ------------------------------------------------------------------------------ //
13644 // Matrix coefficient for green-blue multiplier
13645 // ------------------------------------------------------------------------------ //
13646 
13647 #define ACAMERA_ISP_CCM_COEFFT_G_B_DEFAULT (0x0000)
13648 #define ACAMERA_ISP_CCM_COEFFT_G_B_DATASIZE (13)
13649 #define ACAMERA_ISP_CCM_COEFFT_G_B_OFFSET (0x2210)
13650 #define ACAMERA_ISP_CCM_COEFFT_G_B_MASK (0x1fff)
13651 
13652 // args: data (13-bit)
acamera_isp_ccm_coefft_g_b_write(uintptr_t base,uint16_t data)13653 static __inline void acamera_isp_ccm_coefft_g_b_write(uintptr_t base, uint16_t data) {
13654     uint32_t curr = system_sw_read_32(base + 0x1b098L);
13655     system_sw_write_32(base + 0x1b098L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13656 }
acamera_isp_ccm_coefft_g_b_read(uintptr_t base)13657 static __inline uint16_t acamera_isp_ccm_coefft_g_b_read(uintptr_t base) {
13658     return (uint16_t)((system_sw_read_32(base + 0x1b098L) & 0x1fff) >> 0);
13659 }
13660 // ------------------------------------------------------------------------------ //
13661 // Register: Coefft G-IR
13662 // ------------------------------------------------------------------------------ //
13663 
13664 // ------------------------------------------------------------------------------ //
13665 // Matrix coefficient for green-ir multiplier
13666 // ------------------------------------------------------------------------------ //
13667 
13668 #define ACAMERA_ISP_CCM_COEFFT_G_IR_DEFAULT (0x0000)
13669 #define ACAMERA_ISP_CCM_COEFFT_G_IR_DATASIZE (13)
13670 #define ACAMERA_ISP_CCM_COEFFT_G_IR_OFFSET (0x2214)
13671 #define ACAMERA_ISP_CCM_COEFFT_G_IR_MASK (0x1fff)
13672 
13673 // args: data (13-bit)
acamera_isp_ccm_coefft_g_ir_write(uintptr_t base,uint16_t data)13674 static __inline void acamera_isp_ccm_coefft_g_ir_write(uintptr_t base, uint16_t data) {
13675     uint32_t curr = system_sw_read_32(base + 0x1b09cL);
13676     system_sw_write_32(base + 0x1b09cL, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13677 }
acamera_isp_ccm_coefft_g_ir_read(uintptr_t base)13678 static __inline uint16_t acamera_isp_ccm_coefft_g_ir_read(uintptr_t base) {
13679     return (uint16_t)((system_sw_read_32(base + 0x1b09cL) & 0x1fff) >> 0);
13680 }
13681 // ------------------------------------------------------------------------------ //
13682 // Register: Coefft B-R
13683 // ------------------------------------------------------------------------------ //
13684 
13685 // ------------------------------------------------------------------------------ //
13686 // Matrix coefficient for blue-red multiplier
13687 // ------------------------------------------------------------------------------ //
13688 
13689 #define ACAMERA_ISP_CCM_COEFFT_B_R_DEFAULT (0x0000)
13690 #define ACAMERA_ISP_CCM_COEFFT_B_R_DATASIZE (13)
13691 #define ACAMERA_ISP_CCM_COEFFT_B_R_OFFSET (0x2218)
13692 #define ACAMERA_ISP_CCM_COEFFT_B_R_MASK (0x1fff)
13693 
13694 // args: data (13-bit)
acamera_isp_ccm_coefft_b_r_write(uintptr_t base,uint16_t data)13695 static __inline void acamera_isp_ccm_coefft_b_r_write(uintptr_t base, uint16_t data) {
13696     uint32_t curr = system_sw_read_32(base + 0x1b0a0L);
13697     system_sw_write_32(base + 0x1b0a0L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13698 }
acamera_isp_ccm_coefft_b_r_read(uintptr_t base)13699 static __inline uint16_t acamera_isp_ccm_coefft_b_r_read(uintptr_t base) {
13700     return (uint16_t)((system_sw_read_32(base + 0x1b0a0L) & 0x1fff) >> 0);
13701 }
13702 // ------------------------------------------------------------------------------ //
13703 // Register: Coefft B-G
13704 // ------------------------------------------------------------------------------ //
13705 
13706 // ------------------------------------------------------------------------------ //
13707 // Matrix coefficient for blue-green multiplier
13708 // ------------------------------------------------------------------------------ //
13709 
13710 #define ACAMERA_ISP_CCM_COEFFT_B_G_DEFAULT (0x0000)
13711 #define ACAMERA_ISP_CCM_COEFFT_B_G_DATASIZE (13)
13712 #define ACAMERA_ISP_CCM_COEFFT_B_G_OFFSET (0x221c)
13713 #define ACAMERA_ISP_CCM_COEFFT_B_G_MASK (0x1fff)
13714 
13715 // args: data (13-bit)
acamera_isp_ccm_coefft_b_g_write(uintptr_t base,uint16_t data)13716 static __inline void acamera_isp_ccm_coefft_b_g_write(uintptr_t base, uint16_t data) {
13717     uint32_t curr = system_sw_read_32(base + 0x1b0a4L);
13718     system_sw_write_32(base + 0x1b0a4L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13719 }
acamera_isp_ccm_coefft_b_g_read(uintptr_t base)13720 static __inline uint16_t acamera_isp_ccm_coefft_b_g_read(uintptr_t base) {
13721     return (uint16_t)((system_sw_read_32(base + 0x1b0a4L) & 0x1fff) >> 0);
13722 }
13723 // ------------------------------------------------------------------------------ //
13724 // Register: Coefft B-B
13725 // ------------------------------------------------------------------------------ //
13726 
13727 // ------------------------------------------------------------------------------ //
13728 // Matrix coefficient for blue-blue multiplier
13729 // ------------------------------------------------------------------------------ //
13730 
13731 #define ACAMERA_ISP_CCM_COEFFT_B_B_DEFAULT (0x0100)
13732 #define ACAMERA_ISP_CCM_COEFFT_B_B_DATASIZE (13)
13733 #define ACAMERA_ISP_CCM_COEFFT_B_B_OFFSET (0x2220)
13734 #define ACAMERA_ISP_CCM_COEFFT_B_B_MASK (0x1fff)
13735 
13736 // args: data (13-bit)
acamera_isp_ccm_coefft_b_b_write(uintptr_t base,uint16_t data)13737 static __inline void acamera_isp_ccm_coefft_b_b_write(uintptr_t base, uint16_t data) {
13738     uint32_t curr = system_sw_read_32(base + 0x1b0a8L);
13739     system_sw_write_32(base + 0x1b0a8L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13740 }
acamera_isp_ccm_coefft_b_b_read(uintptr_t base)13741 static __inline uint16_t acamera_isp_ccm_coefft_b_b_read(uintptr_t base) {
13742     return (uint16_t)((system_sw_read_32(base + 0x1b0a8L) & 0x1fff) >> 0);
13743 }
13744 // ------------------------------------------------------------------------------ //
13745 // Register: Coefft B-IR
13746 // ------------------------------------------------------------------------------ //
13747 
13748 // ------------------------------------------------------------------------------ //
13749 // Matrix coefficient for blue-ir multiplier
13750 // ------------------------------------------------------------------------------ //
13751 
13752 #define ACAMERA_ISP_CCM_COEFFT_B_IR_DEFAULT (0x0100)
13753 #define ACAMERA_ISP_CCM_COEFFT_B_IR_DATASIZE (13)
13754 #define ACAMERA_ISP_CCM_COEFFT_B_IR_OFFSET (0x2224)
13755 #define ACAMERA_ISP_CCM_COEFFT_B_IR_MASK (0x1fff)
13756 
13757 // args: data (13-bit)
acamera_isp_ccm_coefft_b_ir_write(uintptr_t base,uint16_t data)13758 static __inline void acamera_isp_ccm_coefft_b_ir_write(uintptr_t base, uint16_t data) {
13759     uint32_t curr = system_sw_read_32(base + 0x1b0acL);
13760     system_sw_write_32(base + 0x1b0acL, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
13761 }
acamera_isp_ccm_coefft_b_ir_read(uintptr_t base)13762 static __inline uint16_t acamera_isp_ccm_coefft_b_ir_read(uintptr_t base) {
13763     return (uint16_t)((system_sw_read_32(base + 0x1b0acL) & 0x1fff) >> 0);
13764 }
13765 // ------------------------------------------------------------------------------ //
13766 // Register: Coefft WB R
13767 // ------------------------------------------------------------------------------ //
13768 
13769 // ------------------------------------------------------------------------------ //
13770 // gain for Red channel for antifog function
13771 // ------------------------------------------------------------------------------ //
13772 
13773 #define ACAMERA_ISP_CCM_COEFFT_WB_R_DEFAULT (0x0100)
13774 #define ACAMERA_ISP_CCM_COEFFT_WB_R_DATASIZE (12)
13775 #define ACAMERA_ISP_CCM_COEFFT_WB_R_OFFSET (0x2228)
13776 #define ACAMERA_ISP_CCM_COEFFT_WB_R_MASK (0xfff)
13777 
13778 // args: data (12-bit)
acamera_isp_ccm_coefft_wb_r_write(uintptr_t base,uint16_t data)13779 static __inline void acamera_isp_ccm_coefft_wb_r_write(uintptr_t base, uint16_t data) {
13780     uint32_t curr = system_sw_read_32(base + 0x1b0b0L);
13781     system_sw_write_32(base + 0x1b0b0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13782 }
acamera_isp_ccm_coefft_wb_r_read(uintptr_t base)13783 static __inline uint16_t acamera_isp_ccm_coefft_wb_r_read(uintptr_t base) {
13784     return (uint16_t)((system_sw_read_32(base + 0x1b0b0L) & 0xfff) >> 0);
13785 }
13786 // ------------------------------------------------------------------------------ //
13787 // Register: Coefft WB G
13788 // ------------------------------------------------------------------------------ //
13789 
13790 // ------------------------------------------------------------------------------ //
13791 // gain for Green channel for antifog function
13792 // ------------------------------------------------------------------------------ //
13793 
13794 #define ACAMERA_ISP_CCM_COEFFT_WB_G_DEFAULT (0x0100)
13795 #define ACAMERA_ISP_CCM_COEFFT_WB_G_DATASIZE (12)
13796 #define ACAMERA_ISP_CCM_COEFFT_WB_G_OFFSET (0x222c)
13797 #define ACAMERA_ISP_CCM_COEFFT_WB_G_MASK (0xfff)
13798 
13799 // args: data (12-bit)
acamera_isp_ccm_coefft_wb_g_write(uintptr_t base,uint16_t data)13800 static __inline void acamera_isp_ccm_coefft_wb_g_write(uintptr_t base, uint16_t data) {
13801     uint32_t curr = system_sw_read_32(base + 0x1b0b4L);
13802     system_sw_write_32(base + 0x1b0b4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13803 }
acamera_isp_ccm_coefft_wb_g_read(uintptr_t base)13804 static __inline uint16_t acamera_isp_ccm_coefft_wb_g_read(uintptr_t base) {
13805     return (uint16_t)((system_sw_read_32(base + 0x1b0b4L) & 0xfff) >> 0);
13806 }
13807 // ------------------------------------------------------------------------------ //
13808 // Register: Coefft WB B
13809 // ------------------------------------------------------------------------------ //
13810 
13811 // ------------------------------------------------------------------------------ //
13812 // gain for Blue channel for antifog function
13813 // ------------------------------------------------------------------------------ //
13814 
13815 #define ACAMERA_ISP_CCM_COEFFT_WB_B_DEFAULT (0x0100)
13816 #define ACAMERA_ISP_CCM_COEFFT_WB_B_DATASIZE (12)
13817 #define ACAMERA_ISP_CCM_COEFFT_WB_B_OFFSET (0x2230)
13818 #define ACAMERA_ISP_CCM_COEFFT_WB_B_MASK (0xfff)
13819 
13820 // args: data (12-bit)
acamera_isp_ccm_coefft_wb_b_write(uintptr_t base,uint16_t data)13821 static __inline void acamera_isp_ccm_coefft_wb_b_write(uintptr_t base, uint16_t data) {
13822     uint32_t curr = system_sw_read_32(base + 0x1b0b8L);
13823     system_sw_write_32(base + 0x1b0b8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13824 }
acamera_isp_ccm_coefft_wb_b_read(uintptr_t base)13825 static __inline uint16_t acamera_isp_ccm_coefft_wb_b_read(uintptr_t base) {
13826     return (uint16_t)((system_sw_read_32(base + 0x1b0b8L) & 0xfff) >> 0);
13827 }
13828 // ------------------------------------------------------------------------------ //
13829 // Register: Coefft WB IR
13830 // ------------------------------------------------------------------------------ //
13831 
13832 // ------------------------------------------------------------------------------ //
13833 // gain for IR channel for antifog function
13834 // ------------------------------------------------------------------------------ //
13835 
13836 #define ACAMERA_ISP_CCM_COEFFT_WB_IR_DEFAULT (0x0100)
13837 #define ACAMERA_ISP_CCM_COEFFT_WB_IR_DATASIZE (12)
13838 #define ACAMERA_ISP_CCM_COEFFT_WB_IR_OFFSET (0x2234)
13839 #define ACAMERA_ISP_CCM_COEFFT_WB_IR_MASK (0xfff)
13840 
13841 // args: data (12-bit)
acamera_isp_ccm_coefft_wb_ir_write(uintptr_t base,uint16_t data)13842 static __inline void acamera_isp_ccm_coefft_wb_ir_write(uintptr_t base, uint16_t data) {
13843     uint32_t curr = system_sw_read_32(base + 0x1b0bcL);
13844     system_sw_write_32(base + 0x1b0bcL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13845 }
acamera_isp_ccm_coefft_wb_ir_read(uintptr_t base)13846 static __inline uint16_t acamera_isp_ccm_coefft_wb_ir_read(uintptr_t base) {
13847     return (uint16_t)((system_sw_read_32(base + 0x1b0bcL) & 0xfff) >> 0);
13848 }
13849 // ------------------------------------------------------------------------------ //
13850 // Register: Coefft fog offset R
13851 // ------------------------------------------------------------------------------ //
13852 
13853 // ------------------------------------------------------------------------------ //
13854 // Offset R for antifog function
13855 // ------------------------------------------------------------------------------ //
13856 
13857 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_R_DEFAULT (0x000)
13858 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_R_DATASIZE (12)
13859 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_R_OFFSET (0x2238)
13860 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_R_MASK (0xfff)
13861 
13862 // args: data (12-bit)
acamera_isp_ccm_coefft_fog_offset_r_write(uintptr_t base,uint16_t data)13863 static __inline void acamera_isp_ccm_coefft_fog_offset_r_write(uintptr_t base, uint16_t data) {
13864     uint32_t curr = system_sw_read_32(base + 0x1b0c0L);
13865     system_sw_write_32(base + 0x1b0c0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13866 }
acamera_isp_ccm_coefft_fog_offset_r_read(uintptr_t base)13867 static __inline uint16_t acamera_isp_ccm_coefft_fog_offset_r_read(uintptr_t base) {
13868     return (uint16_t)((system_sw_read_32(base + 0x1b0c0L) & 0xfff) >> 0);
13869 }
13870 // ------------------------------------------------------------------------------ //
13871 // Register: Coefft fog offset G
13872 // ------------------------------------------------------------------------------ //
13873 
13874 // ------------------------------------------------------------------------------ //
13875 // Offset G for antifog function
13876 // ------------------------------------------------------------------------------ //
13877 
13878 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_G_DEFAULT (0x000)
13879 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_G_DATASIZE (12)
13880 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_G_OFFSET (0x223c)
13881 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_G_MASK (0xfff)
13882 
13883 // args: data (12-bit)
acamera_isp_ccm_coefft_fog_offset_g_write(uintptr_t base,uint16_t data)13884 static __inline void acamera_isp_ccm_coefft_fog_offset_g_write(uintptr_t base, uint16_t data) {
13885     uint32_t curr = system_sw_read_32(base + 0x1b0c4L);
13886     system_sw_write_32(base + 0x1b0c4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13887 }
acamera_isp_ccm_coefft_fog_offset_g_read(uintptr_t base)13888 static __inline uint16_t acamera_isp_ccm_coefft_fog_offset_g_read(uintptr_t base) {
13889     return (uint16_t)((system_sw_read_32(base + 0x1b0c4L) & 0xfff) >> 0);
13890 }
13891 // ------------------------------------------------------------------------------ //
13892 // Register: Coefft fog offset B
13893 // ------------------------------------------------------------------------------ //
13894 
13895 // ------------------------------------------------------------------------------ //
13896 // Offset B for antifog function
13897 // ------------------------------------------------------------------------------ //
13898 
13899 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_B_DEFAULT (0x000)
13900 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_B_DATASIZE (12)
13901 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_B_OFFSET (0x2240)
13902 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_B_MASK (0xfff)
13903 
13904 // args: data (12-bit)
acamera_isp_ccm_coefft_fog_offset_b_write(uintptr_t base,uint16_t data)13905 static __inline void acamera_isp_ccm_coefft_fog_offset_b_write(uintptr_t base, uint16_t data) {
13906     uint32_t curr = system_sw_read_32(base + 0x1b0c8L);
13907     system_sw_write_32(base + 0x1b0c8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13908 }
acamera_isp_ccm_coefft_fog_offset_b_read(uintptr_t base)13909 static __inline uint16_t acamera_isp_ccm_coefft_fog_offset_b_read(uintptr_t base) {
13910     return (uint16_t)((system_sw_read_32(base + 0x1b0c8L) & 0xfff) >> 0);
13911 }
13912 // ------------------------------------------------------------------------------ //
13913 // Register: Coefft fog offset IR
13914 // ------------------------------------------------------------------------------ //
13915 
13916 // ------------------------------------------------------------------------------ //
13917 // Offset Ir for antifog function
13918 // ------------------------------------------------------------------------------ //
13919 
13920 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_IR_DEFAULT (0x000)
13921 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_IR_DATASIZE (12)
13922 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_IR_OFFSET (0x2244)
13923 #define ACAMERA_ISP_CCM_COEFFT_FOG_OFFSET_IR_MASK (0xfff)
13924 
13925 // args: data (12-bit)
acamera_isp_ccm_coefft_fog_offset_ir_write(uintptr_t base,uint16_t data)13926 static __inline void acamera_isp_ccm_coefft_fog_offset_ir_write(uintptr_t base, uint16_t data) {
13927     uint32_t curr = system_sw_read_32(base + 0x1b0ccL);
13928     system_sw_write_32(base + 0x1b0ccL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
13929 }
acamera_isp_ccm_coefft_fog_offset_ir_read(uintptr_t base)13930 static __inline uint16_t acamera_isp_ccm_coefft_fog_offset_ir_read(uintptr_t base) {
13931     return (uint16_t)((system_sw_read_32(base + 0x1b0ccL) & 0xfff) >> 0);
13932 }
13933 // ------------------------------------------------------------------------------ //
13934 // Group: cnr
13935 // ------------------------------------------------------------------------------ //
13936 
13937 // ------------------------------------------------------------------------------ //
13938 // Colour Noise Reduction
13939 // ------------------------------------------------------------------------------ //
13940 
13941 // ------------------------------------------------------------------------------ //
13942 // Register: square_root_enable
13943 // ------------------------------------------------------------------------------ //
13944 
13945 // ------------------------------------------------------------------------------ //
13946 // pre-CNR square root and the post-CNR square modules enable condition
13947 //            enable: 0=off 1=on
13948 // ------------------------------------------------------------------------------ //
13949 
13950 #define ACAMERA_ISP_CNR_SQUARE_ROOT_ENABLE_DEFAULT (1)
13951 #define ACAMERA_ISP_CNR_SQUARE_ROOT_ENABLE_DATASIZE (1)
13952 #define ACAMERA_ISP_CNR_SQUARE_ROOT_ENABLE_OFFSET (0x2248)
13953 #define ACAMERA_ISP_CNR_SQUARE_ROOT_ENABLE_MASK (0x1)
13954 
13955 // args: data (1-bit)
acamera_isp_cnr_square_root_enable_write(uintptr_t base,uint8_t data)13956 static __inline void acamera_isp_cnr_square_root_enable_write(uintptr_t base, uint8_t data) {
13957     uint32_t curr = system_sw_read_32(base + 0x1b0d0L);
13958     system_sw_write_32(base + 0x1b0d0L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
13959 }
acamera_isp_cnr_square_root_enable_read(uintptr_t base)13960 static __inline uint8_t acamera_isp_cnr_square_root_enable_read(uintptr_t base) {
13961     return (uint8_t)((system_sw_read_32(base + 0x1b0d0L) & 0x1) >> 0);
13962 }
13963 // ------------------------------------------------------------------------------ //
13964 // Register: enable
13965 // ------------------------------------------------------------------------------ //
13966 
13967 // ------------------------------------------------------------------------------ //
13968 // CNR enable: 0=off 1=on
13969 // ------------------------------------------------------------------------------ //
13970 
13971 #define ACAMERA_ISP_CNR_ENABLE_DEFAULT (1)
13972 #define ACAMERA_ISP_CNR_ENABLE_DATASIZE (1)
13973 #define ACAMERA_ISP_CNR_ENABLE_OFFSET (0x224c)
13974 #define ACAMERA_ISP_CNR_ENABLE_MASK (0x1)
13975 
13976 // args: data (1-bit)
acamera_isp_cnr_enable_write(uintptr_t base,uint8_t data)13977 static __inline void acamera_isp_cnr_enable_write(uintptr_t base, uint8_t data) {
13978     uint32_t curr = system_sw_read_32(base + 0x1b0d4L);
13979     system_sw_write_32(base + 0x1b0d4L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
13980 }
acamera_isp_cnr_enable_read(uintptr_t base)13981 static __inline uint8_t acamera_isp_cnr_enable_read(uintptr_t base) {
13982     return (uint8_t)((system_sw_read_32(base + 0x1b0d4L) & 0x1) >> 0);
13983 }
13984 // ------------------------------------------------------------------------------ //
13985 // Register: debug_reg
13986 // ------------------------------------------------------------------------------ //
13987 
13988 // ------------------------------------------------------------------------------ //
13989 // CNR Debug: 0=off 1=on
13990 // ------------------------------------------------------------------------------ //
13991 
13992 #define ACAMERA_ISP_CNR_DEBUG_REG_DEFAULT (0x0000)
13993 #define ACAMERA_ISP_CNR_DEBUG_REG_DATASIZE (16)
13994 #define ACAMERA_ISP_CNR_DEBUG_REG_OFFSET (0x2250)
13995 #define ACAMERA_ISP_CNR_DEBUG_REG_MASK (0xffff)
13996 
13997 // args: data (16-bit)
acamera_isp_cnr_debug_reg_write(uintptr_t base,uint16_t data)13998 static __inline void acamera_isp_cnr_debug_reg_write(uintptr_t base, uint16_t data) {
13999     uint32_t curr = system_sw_read_32(base + 0x1b0d8L);
14000     system_sw_write_32(base + 0x1b0d8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14001 }
acamera_isp_cnr_debug_reg_read(uintptr_t base)14002 static __inline uint16_t acamera_isp_cnr_debug_reg_read(uintptr_t base) {
14003     return (uint16_t)((system_sw_read_32(base + 0x1b0d8L) & 0xffff) >> 0);
14004 }
14005 // ------------------------------------------------------------------------------ //
14006 // Register: mode
14007 // ------------------------------------------------------------------------------ //
14008 
14009 // ------------------------------------------------------------------------------ //
14010 // CNR enable: 0=off 1=on
14011 // ------------------------------------------------------------------------------ //
14012 
14013 #define ACAMERA_ISP_CNR_MODE_DEFAULT (0x0)
14014 #define ACAMERA_ISP_CNR_MODE_DATASIZE (8)
14015 #define ACAMERA_ISP_CNR_MODE_OFFSET (0x2254)
14016 #define ACAMERA_ISP_CNR_MODE_MASK (0xff)
14017 
14018 // args: data (8-bit)
acamera_isp_cnr_mode_write(uintptr_t base,uint8_t data)14019 static __inline void acamera_isp_cnr_mode_write(uintptr_t base, uint8_t data) {
14020     uint32_t curr = system_sw_read_32(base + 0x1b0dcL);
14021     system_sw_write_32(base + 0x1b0dcL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
14022 }
acamera_isp_cnr_mode_read(uintptr_t base)14023 static __inline uint8_t acamera_isp_cnr_mode_read(uintptr_t base) {
14024     return (uint8_t)((system_sw_read_32(base + 0x1b0dcL) & 0xff) >> 0);
14025 }
14026 // ------------------------------------------------------------------------------ //
14027 // Register: delta_factor
14028 // ------------------------------------------------------------------------------ //
14029 
14030 // ------------------------------------------------------------------------------ //
14031 // CNR enable: 0=off 1=on
14032 // ------------------------------------------------------------------------------ //
14033 
14034 #define ACAMERA_ISP_CNR_DELTA_FACTOR_DEFAULT (0x277)
14035 #define ACAMERA_ISP_CNR_DELTA_FACTOR_DATASIZE (12)
14036 #define ACAMERA_ISP_CNR_DELTA_FACTOR_OFFSET (0x2258)
14037 #define ACAMERA_ISP_CNR_DELTA_FACTOR_MASK (0xfff)
14038 
14039 // args: data (12-bit)
acamera_isp_cnr_delta_factor_write(uintptr_t base,uint16_t data)14040 static __inline void acamera_isp_cnr_delta_factor_write(uintptr_t base, uint16_t data) {
14041     uint32_t curr = system_sw_read_32(base + 0x1b0e0L);
14042     system_sw_write_32(base + 0x1b0e0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14043 }
acamera_isp_cnr_delta_factor_read(uintptr_t base)14044 static __inline uint16_t acamera_isp_cnr_delta_factor_read(uintptr_t base) {
14045     return (uint16_t)((system_sw_read_32(base + 0x1b0e0L) & 0xfff) >> 0);
14046 }
14047 // ------------------------------------------------------------------------------ //
14048 // Register: effective_kernel
14049 // ------------------------------------------------------------------------------ //
14050 
14051 // ------------------------------------------------------------------------------ //
14052 // Effective kernel
14053 // ------------------------------------------------------------------------------ //
14054 
14055 #define ACAMERA_ISP_CNR_EFFECTIVE_KERNEL_DEFAULT (0x3F)
14056 #define ACAMERA_ISP_CNR_EFFECTIVE_KERNEL_DATASIZE (7)
14057 #define ACAMERA_ISP_CNR_EFFECTIVE_KERNEL_OFFSET (0x225c)
14058 #define ACAMERA_ISP_CNR_EFFECTIVE_KERNEL_MASK (0x7f)
14059 
14060 // args: data (7-bit)
acamera_isp_cnr_effective_kernel_write(uintptr_t base,uint8_t data)14061 static __inline void acamera_isp_cnr_effective_kernel_write(uintptr_t base, uint8_t data) {
14062     uint32_t curr = system_sw_read_32(base + 0x1b0e4L);
14063     system_sw_write_32(base + 0x1b0e4L, (((uint32_t) (data & 0x7f)) << 0) | (curr & 0xffffff80));
14064 }
acamera_isp_cnr_effective_kernel_read(uintptr_t base)14065 static __inline uint8_t acamera_isp_cnr_effective_kernel_read(uintptr_t base) {
14066     return (uint8_t)((system_sw_read_32(base + 0x1b0e4L) & 0x7f) >> 0);
14067 }
14068 // ------------------------------------------------------------------------------ //
14069 // Register: u_center
14070 // ------------------------------------------------------------------------------ //
14071 
14072 // ------------------------------------------------------------------------------ //
14073 // Coordinates of u center
14074 // ------------------------------------------------------------------------------ //
14075 
14076 #define ACAMERA_ISP_CNR_U_CENTER_DEFAULT (0x200)
14077 #define ACAMERA_ISP_CNR_U_CENTER_DATASIZE (12)
14078 #define ACAMERA_ISP_CNR_U_CENTER_OFFSET (0x2260)
14079 #define ACAMERA_ISP_CNR_U_CENTER_MASK (0xfff)
14080 
14081 // args: data (12-bit)
acamera_isp_cnr_u_center_write(uintptr_t base,uint16_t data)14082 static __inline void acamera_isp_cnr_u_center_write(uintptr_t base, uint16_t data) {
14083     uint32_t curr = system_sw_read_32(base + 0x1b0e8L);
14084     system_sw_write_32(base + 0x1b0e8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14085 }
acamera_isp_cnr_u_center_read(uintptr_t base)14086 static __inline uint16_t acamera_isp_cnr_u_center_read(uintptr_t base) {
14087     return (uint16_t)((system_sw_read_32(base + 0x1b0e8L) & 0xfff) >> 0);
14088 }
14089 // ------------------------------------------------------------------------------ //
14090 // Register: v_center
14091 // ------------------------------------------------------------------------------ //
14092 
14093 // ------------------------------------------------------------------------------ //
14094 // Coordinates of v center
14095 // ------------------------------------------------------------------------------ //
14096 
14097 #define ACAMERA_ISP_CNR_V_CENTER_DEFAULT (0x200)
14098 #define ACAMERA_ISP_CNR_V_CENTER_DATASIZE (12)
14099 #define ACAMERA_ISP_CNR_V_CENTER_OFFSET (0x2264)
14100 #define ACAMERA_ISP_CNR_V_CENTER_MASK (0xfff)
14101 
14102 // args: data (12-bit)
acamera_isp_cnr_v_center_write(uintptr_t base,uint16_t data)14103 static __inline void acamera_isp_cnr_v_center_write(uintptr_t base, uint16_t data) {
14104     uint32_t curr = system_sw_read_32(base + 0x1b0ecL);
14105     system_sw_write_32(base + 0x1b0ecL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14106 }
acamera_isp_cnr_v_center_read(uintptr_t base)14107 static __inline uint16_t acamera_isp_cnr_v_center_read(uintptr_t base) {
14108     return (uint16_t)((system_sw_read_32(base + 0x1b0ecL) & 0xfff) >> 0);
14109 }
14110 // ------------------------------------------------------------------------------ //
14111 // Register: global_offset
14112 // ------------------------------------------------------------------------------ //
14113 
14114 // ------------------------------------------------------------------------------ //
14115 // umean1 offset
14116 // ------------------------------------------------------------------------------ //
14117 
14118 #define ACAMERA_ISP_CNR_GLOBAL_OFFSET_DEFAULT (0x332)
14119 #define ACAMERA_ISP_CNR_GLOBAL_OFFSET_DATASIZE (12)
14120 #define ACAMERA_ISP_CNR_GLOBAL_OFFSET_OFFSET (0x2268)
14121 #define ACAMERA_ISP_CNR_GLOBAL_OFFSET_MASK (0xfff)
14122 
14123 // args: data (12-bit)
acamera_isp_cnr_global_offset_write(uintptr_t base,uint16_t data)14124 static __inline void acamera_isp_cnr_global_offset_write(uintptr_t base, uint16_t data) {
14125     uint32_t curr = system_sw_read_32(base + 0x1b0f0L);
14126     system_sw_write_32(base + 0x1b0f0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14127 }
acamera_isp_cnr_global_offset_read(uintptr_t base)14128 static __inline uint16_t acamera_isp_cnr_global_offset_read(uintptr_t base) {
14129     return (uint16_t)((system_sw_read_32(base + 0x1b0f0L) & 0xfff) >> 0);
14130 }
14131 // ------------------------------------------------------------------------------ //
14132 // Register: global_slope
14133 // ------------------------------------------------------------------------------ //
14134 
14135 // ------------------------------------------------------------------------------ //
14136 // umean1 slope
14137 // ------------------------------------------------------------------------------ //
14138 
14139 #define ACAMERA_ISP_CNR_GLOBAL_SLOPE_DEFAULT (0x0CD)
14140 #define ACAMERA_ISP_CNR_GLOBAL_SLOPE_DATASIZE (16)
14141 #define ACAMERA_ISP_CNR_GLOBAL_SLOPE_OFFSET (0x226c)
14142 #define ACAMERA_ISP_CNR_GLOBAL_SLOPE_MASK (0xffff)
14143 
14144 // args: data (16-bit)
acamera_isp_cnr_global_slope_write(uintptr_t base,uint16_t data)14145 static __inline void acamera_isp_cnr_global_slope_write(uintptr_t base, uint16_t data) {
14146     uint32_t curr = system_sw_read_32(base + 0x1b0f4L);
14147     system_sw_write_32(base + 0x1b0f4L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14148 }
acamera_isp_cnr_global_slope_read(uintptr_t base)14149 static __inline uint16_t acamera_isp_cnr_global_slope_read(uintptr_t base) {
14150     return (uint16_t)((system_sw_read_32(base + 0x1b0f4L) & 0xffff) >> 0);
14151 }
14152 // ------------------------------------------------------------------------------ //
14153 // Register: uv_seg1_threshold
14154 // ------------------------------------------------------------------------------ //
14155 
14156 // ------------------------------------------------------------------------------ //
14157 // uv_seg1 threshold
14158 // ------------------------------------------------------------------------------ //
14159 
14160 #define ACAMERA_ISP_CNR_UV_SEG1_THRESHOLD_DEFAULT (0x000)
14161 #define ACAMERA_ISP_CNR_UV_SEG1_THRESHOLD_DATASIZE (12)
14162 #define ACAMERA_ISP_CNR_UV_SEG1_THRESHOLD_OFFSET (0x2270)
14163 #define ACAMERA_ISP_CNR_UV_SEG1_THRESHOLD_MASK (0xfff)
14164 
14165 // args: data (12-bit)
acamera_isp_cnr_uv_seg1_threshold_write(uintptr_t base,uint16_t data)14166 static __inline void acamera_isp_cnr_uv_seg1_threshold_write(uintptr_t base, uint16_t data) {
14167     uint32_t curr = system_sw_read_32(base + 0x1b0f8L);
14168     system_sw_write_32(base + 0x1b0f8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14169 }
acamera_isp_cnr_uv_seg1_threshold_read(uintptr_t base)14170 static __inline uint16_t acamera_isp_cnr_uv_seg1_threshold_read(uintptr_t base) {
14171     return (uint16_t)((system_sw_read_32(base + 0x1b0f8L) & 0xfff) >> 0);
14172 }
14173 // ------------------------------------------------------------------------------ //
14174 // Register: uv_seg1_offset
14175 // ------------------------------------------------------------------------------ //
14176 
14177 // ------------------------------------------------------------------------------ //
14178 // uv_seg1 offset
14179 // ------------------------------------------------------------------------------ //
14180 
14181 #define ACAMERA_ISP_CNR_UV_SEG1_OFFSET_DEFAULT (0x0AE)
14182 #define ACAMERA_ISP_CNR_UV_SEG1_OFFSET_DATASIZE (12)
14183 #define ACAMERA_ISP_CNR_UV_SEG1_OFFSET_OFFSET (0x2274)
14184 #define ACAMERA_ISP_CNR_UV_SEG1_OFFSET_MASK (0xfff)
14185 
14186 // args: data (12-bit)
acamera_isp_cnr_uv_seg1_offset_write(uintptr_t base,uint16_t data)14187 static __inline void acamera_isp_cnr_uv_seg1_offset_write(uintptr_t base, uint16_t data) {
14188     uint32_t curr = system_sw_read_32(base + 0x1b0fcL);
14189     system_sw_write_32(base + 0x1b0fcL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14190 }
acamera_isp_cnr_uv_seg1_offset_read(uintptr_t base)14191 static __inline uint16_t acamera_isp_cnr_uv_seg1_offset_read(uintptr_t base) {
14192     return (uint16_t)((system_sw_read_32(base + 0x1b0fcL) & 0xfff) >> 0);
14193 }
14194 // ------------------------------------------------------------------------------ //
14195 // Register: uv_seg1_slope
14196 // ------------------------------------------------------------------------------ //
14197 
14198 // ------------------------------------------------------------------------------ //
14199 // uv_seg1 slope
14200 // ------------------------------------------------------------------------------ //
14201 
14202 #define ACAMERA_ISP_CNR_UV_SEG1_SLOPE_DEFAULT (0xFBD8)
14203 #define ACAMERA_ISP_CNR_UV_SEG1_SLOPE_DATASIZE (16)
14204 #define ACAMERA_ISP_CNR_UV_SEG1_SLOPE_OFFSET (0x2278)
14205 #define ACAMERA_ISP_CNR_UV_SEG1_SLOPE_MASK (0xffff)
14206 
14207 // args: data (16-bit)
acamera_isp_cnr_uv_seg1_slope_write(uintptr_t base,uint16_t data)14208 static __inline void acamera_isp_cnr_uv_seg1_slope_write(uintptr_t base, uint16_t data) {
14209     uint32_t curr = system_sw_read_32(base + 0x1b100L);
14210     system_sw_write_32(base + 0x1b100L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14211 }
acamera_isp_cnr_uv_seg1_slope_read(uintptr_t base)14212 static __inline uint16_t acamera_isp_cnr_uv_seg1_slope_read(uintptr_t base) {
14213     return (uint16_t)((system_sw_read_32(base + 0x1b100L) & 0xffff) >> 0);
14214 }
14215 // ------------------------------------------------------------------------------ //
14216 // Register: umean1_threshold
14217 // ------------------------------------------------------------------------------ //
14218 
14219 // ------------------------------------------------------------------------------ //
14220 // umean1 threshold
14221 // ------------------------------------------------------------------------------ //
14222 
14223 #define ACAMERA_ISP_CNR_UMEAN1_THRESHOLD_DEFAULT (0x000)
14224 #define ACAMERA_ISP_CNR_UMEAN1_THRESHOLD_DATASIZE (12)
14225 #define ACAMERA_ISP_CNR_UMEAN1_THRESHOLD_OFFSET (0x227c)
14226 #define ACAMERA_ISP_CNR_UMEAN1_THRESHOLD_MASK (0xfff)
14227 
14228 // args: data (12-bit)
acamera_isp_cnr_umean1_threshold_write(uintptr_t base,uint16_t data)14229 static __inline void acamera_isp_cnr_umean1_threshold_write(uintptr_t base, uint16_t data) {
14230     uint32_t curr = system_sw_read_32(base + 0x1b104L);
14231     system_sw_write_32(base + 0x1b104L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14232 }
acamera_isp_cnr_umean1_threshold_read(uintptr_t base)14233 static __inline uint16_t acamera_isp_cnr_umean1_threshold_read(uintptr_t base) {
14234     return (uint16_t)((system_sw_read_32(base + 0x1b104L) & 0xfff) >> 0);
14235 }
14236 // ------------------------------------------------------------------------------ //
14237 // Register: umean1_offset
14238 // ------------------------------------------------------------------------------ //
14239 
14240 // ------------------------------------------------------------------------------ //
14241 // umean1 offset
14242 // ------------------------------------------------------------------------------ //
14243 
14244 #define ACAMERA_ISP_CNR_UMEAN1_OFFSET_DEFAULT (0x03E)
14245 #define ACAMERA_ISP_CNR_UMEAN1_OFFSET_DATASIZE (12)
14246 #define ACAMERA_ISP_CNR_UMEAN1_OFFSET_OFFSET (0x2280)
14247 #define ACAMERA_ISP_CNR_UMEAN1_OFFSET_MASK (0xfff)
14248 
14249 // args: data (12-bit)
acamera_isp_cnr_umean1_offset_write(uintptr_t base,uint16_t data)14250 static __inline void acamera_isp_cnr_umean1_offset_write(uintptr_t base, uint16_t data) {
14251     uint32_t curr = system_sw_read_32(base + 0x1b108L);
14252     system_sw_write_32(base + 0x1b108L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14253 }
acamera_isp_cnr_umean1_offset_read(uintptr_t base)14254 static __inline uint16_t acamera_isp_cnr_umean1_offset_read(uintptr_t base) {
14255     return (uint16_t)((system_sw_read_32(base + 0x1b108L) & 0xfff) >> 0);
14256 }
14257 // ------------------------------------------------------------------------------ //
14258 // Register: umean1_slope
14259 // ------------------------------------------------------------------------------ //
14260 
14261 // ------------------------------------------------------------------------------ //
14262 // umean1 slope
14263 // ------------------------------------------------------------------------------ //
14264 
14265 #define ACAMERA_ISP_CNR_UMEAN1_SLOPE_DEFAULT (0xE7B4)
14266 #define ACAMERA_ISP_CNR_UMEAN1_SLOPE_DATASIZE (16)
14267 #define ACAMERA_ISP_CNR_UMEAN1_SLOPE_OFFSET (0x2284)
14268 #define ACAMERA_ISP_CNR_UMEAN1_SLOPE_MASK (0xffff)
14269 
14270 // args: data (16-bit)
acamera_isp_cnr_umean1_slope_write(uintptr_t base,uint16_t data)14271 static __inline void acamera_isp_cnr_umean1_slope_write(uintptr_t base, uint16_t data) {
14272     uint32_t curr = system_sw_read_32(base + 0x1b10cL);
14273     system_sw_write_32(base + 0x1b10cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14274 }
acamera_isp_cnr_umean1_slope_read(uintptr_t base)14275 static __inline uint16_t acamera_isp_cnr_umean1_slope_read(uintptr_t base) {
14276     return (uint16_t)((system_sw_read_32(base + 0x1b10cL) & 0xffff) >> 0);
14277 }
14278 // ------------------------------------------------------------------------------ //
14279 // Register: umean2_threshold
14280 // ------------------------------------------------------------------------------ //
14281 
14282 // ------------------------------------------------------------------------------ //
14283 // umean2 threshold
14284 // ------------------------------------------------------------------------------ //
14285 
14286 #define ACAMERA_ISP_CNR_UMEAN2_THRESHOLD_DEFAULT (0x000)
14287 #define ACAMERA_ISP_CNR_UMEAN2_THRESHOLD_DATASIZE (12)
14288 #define ACAMERA_ISP_CNR_UMEAN2_THRESHOLD_OFFSET (0x2288)
14289 #define ACAMERA_ISP_CNR_UMEAN2_THRESHOLD_MASK (0xfff)
14290 
14291 // args: data (12-bit)
acamera_isp_cnr_umean2_threshold_write(uintptr_t base,uint16_t data)14292 static __inline void acamera_isp_cnr_umean2_threshold_write(uintptr_t base, uint16_t data) {
14293     uint32_t curr = system_sw_read_32(base + 0x1b110L);
14294     system_sw_write_32(base + 0x1b110L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14295 }
acamera_isp_cnr_umean2_threshold_read(uintptr_t base)14296 static __inline uint16_t acamera_isp_cnr_umean2_threshold_read(uintptr_t base) {
14297     return (uint16_t)((system_sw_read_32(base + 0x1b110L) & 0xfff) >> 0);
14298 }
14299 // ------------------------------------------------------------------------------ //
14300 // Register: umean2_offset
14301 // ------------------------------------------------------------------------------ //
14302 
14303 // ------------------------------------------------------------------------------ //
14304 // umean2 offset
14305 // ------------------------------------------------------------------------------ //
14306 
14307 #define ACAMERA_ISP_CNR_UMEAN2_OFFSET_DEFAULT (0x03E)
14308 #define ACAMERA_ISP_CNR_UMEAN2_OFFSET_DATASIZE (12)
14309 #define ACAMERA_ISP_CNR_UMEAN2_OFFSET_OFFSET (0x228c)
14310 #define ACAMERA_ISP_CNR_UMEAN2_OFFSET_MASK (0xfff)
14311 
14312 // args: data (12-bit)
acamera_isp_cnr_umean2_offset_write(uintptr_t base,uint16_t data)14313 static __inline void acamera_isp_cnr_umean2_offset_write(uintptr_t base, uint16_t data) {
14314     uint32_t curr = system_sw_read_32(base + 0x1b114L);
14315     system_sw_write_32(base + 0x1b114L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14316 }
acamera_isp_cnr_umean2_offset_read(uintptr_t base)14317 static __inline uint16_t acamera_isp_cnr_umean2_offset_read(uintptr_t base) {
14318     return (uint16_t)((system_sw_read_32(base + 0x1b114L) & 0xfff) >> 0);
14319 }
14320 // ------------------------------------------------------------------------------ //
14321 // Register: umean2_slope
14322 // ------------------------------------------------------------------------------ //
14323 
14324 // ------------------------------------------------------------------------------ //
14325 // umean2 slope
14326 // ------------------------------------------------------------------------------ //
14327 
14328 #define ACAMERA_ISP_CNR_UMEAN2_SLOPE_DEFAULT (0xE7B4)
14329 #define ACAMERA_ISP_CNR_UMEAN2_SLOPE_DATASIZE (16)
14330 #define ACAMERA_ISP_CNR_UMEAN2_SLOPE_OFFSET (0x2290)
14331 #define ACAMERA_ISP_CNR_UMEAN2_SLOPE_MASK (0xffff)
14332 
14333 // args: data (16-bit)
acamera_isp_cnr_umean2_slope_write(uintptr_t base,uint16_t data)14334 static __inline void acamera_isp_cnr_umean2_slope_write(uintptr_t base, uint16_t data) {
14335     uint32_t curr = system_sw_read_32(base + 0x1b118L);
14336     system_sw_write_32(base + 0x1b118L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14337 }
acamera_isp_cnr_umean2_slope_read(uintptr_t base)14338 static __inline uint16_t acamera_isp_cnr_umean2_slope_read(uintptr_t base) {
14339     return (uint16_t)((system_sw_read_32(base + 0x1b118L) & 0xffff) >> 0);
14340 }
14341 // ------------------------------------------------------------------------------ //
14342 // Register: vmean1_threshold
14343 // ------------------------------------------------------------------------------ //
14344 
14345 // ------------------------------------------------------------------------------ //
14346 // vmean1 threshold
14347 // ------------------------------------------------------------------------------ //
14348 
14349 #define ACAMERA_ISP_CNR_VMEAN1_THRESHOLD_DEFAULT (0x000)
14350 #define ACAMERA_ISP_CNR_VMEAN1_THRESHOLD_DATASIZE (12)
14351 #define ACAMERA_ISP_CNR_VMEAN1_THRESHOLD_OFFSET (0x2294)
14352 #define ACAMERA_ISP_CNR_VMEAN1_THRESHOLD_MASK (0xfff)
14353 
14354 // args: data (12-bit)
acamera_isp_cnr_vmean1_threshold_write(uintptr_t base,uint16_t data)14355 static __inline void acamera_isp_cnr_vmean1_threshold_write(uintptr_t base, uint16_t data) {
14356     uint32_t curr = system_sw_read_32(base + 0x1b11cL);
14357     system_sw_write_32(base + 0x1b11cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14358 }
acamera_isp_cnr_vmean1_threshold_read(uintptr_t base)14359 static __inline uint16_t acamera_isp_cnr_vmean1_threshold_read(uintptr_t base) {
14360     return (uint16_t)((system_sw_read_32(base + 0x1b11cL) & 0xfff) >> 0);
14361 }
14362 // ------------------------------------------------------------------------------ //
14363 // Register: vmean1_offset
14364 // ------------------------------------------------------------------------------ //
14365 
14366 // ------------------------------------------------------------------------------ //
14367 // vmean1 offset
14368 // ------------------------------------------------------------------------------ //
14369 
14370 #define ACAMERA_ISP_CNR_VMEAN1_OFFSET_DEFAULT (0x03E)
14371 #define ACAMERA_ISP_CNR_VMEAN1_OFFSET_DATASIZE (12)
14372 #define ACAMERA_ISP_CNR_VMEAN1_OFFSET_OFFSET (0x2298)
14373 #define ACAMERA_ISP_CNR_VMEAN1_OFFSET_MASK (0xfff)
14374 
14375 // args: data (12-bit)
acamera_isp_cnr_vmean1_offset_write(uintptr_t base,uint16_t data)14376 static __inline void acamera_isp_cnr_vmean1_offset_write(uintptr_t base, uint16_t data) {
14377     uint32_t curr = system_sw_read_32(base + 0x1b120L);
14378     system_sw_write_32(base + 0x1b120L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14379 }
acamera_isp_cnr_vmean1_offset_read(uintptr_t base)14380 static __inline uint16_t acamera_isp_cnr_vmean1_offset_read(uintptr_t base) {
14381     return (uint16_t)((system_sw_read_32(base + 0x1b120L) & 0xfff) >> 0);
14382 }
14383 // ------------------------------------------------------------------------------ //
14384 // Register: vmean1_slope
14385 // ------------------------------------------------------------------------------ //
14386 
14387 // ------------------------------------------------------------------------------ //
14388 // vmean1 slope
14389 // ------------------------------------------------------------------------------ //
14390 
14391 #define ACAMERA_ISP_CNR_VMEAN1_SLOPE_DEFAULT (0xE7B4)
14392 #define ACAMERA_ISP_CNR_VMEAN1_SLOPE_DATASIZE (16)
14393 #define ACAMERA_ISP_CNR_VMEAN1_SLOPE_OFFSET (0x229c)
14394 #define ACAMERA_ISP_CNR_VMEAN1_SLOPE_MASK (0xffff)
14395 
14396 // args: data (16-bit)
acamera_isp_cnr_vmean1_slope_write(uintptr_t base,uint16_t data)14397 static __inline void acamera_isp_cnr_vmean1_slope_write(uintptr_t base, uint16_t data) {
14398     uint32_t curr = system_sw_read_32(base + 0x1b124L);
14399     system_sw_write_32(base + 0x1b124L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14400 }
acamera_isp_cnr_vmean1_slope_read(uintptr_t base)14401 static __inline uint16_t acamera_isp_cnr_vmean1_slope_read(uintptr_t base) {
14402     return (uint16_t)((system_sw_read_32(base + 0x1b124L) & 0xffff) >> 0);
14403 }
14404 // ------------------------------------------------------------------------------ //
14405 // Register: vmean2_threshold
14406 // ------------------------------------------------------------------------------ //
14407 
14408 // ------------------------------------------------------------------------------ //
14409 // vmean2 threshold
14410 // ------------------------------------------------------------------------------ //
14411 
14412 #define ACAMERA_ISP_CNR_VMEAN2_THRESHOLD_DEFAULT (0x000)
14413 #define ACAMERA_ISP_CNR_VMEAN2_THRESHOLD_DATASIZE (12)
14414 #define ACAMERA_ISP_CNR_VMEAN2_THRESHOLD_OFFSET (0x22a0)
14415 #define ACAMERA_ISP_CNR_VMEAN2_THRESHOLD_MASK (0xfff)
14416 
14417 // args: data (12-bit)
acamera_isp_cnr_vmean2_threshold_write(uintptr_t base,uint16_t data)14418 static __inline void acamera_isp_cnr_vmean2_threshold_write(uintptr_t base, uint16_t data) {
14419     uint32_t curr = system_sw_read_32(base + 0x1b128L);
14420     system_sw_write_32(base + 0x1b128L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14421 }
acamera_isp_cnr_vmean2_threshold_read(uintptr_t base)14422 static __inline uint16_t acamera_isp_cnr_vmean2_threshold_read(uintptr_t base) {
14423     return (uint16_t)((system_sw_read_32(base + 0x1b128L) & 0xfff) >> 0);
14424 }
14425 // ------------------------------------------------------------------------------ //
14426 // Register: vmean2_offset
14427 // ------------------------------------------------------------------------------ //
14428 
14429 // ------------------------------------------------------------------------------ //
14430 // vmean2 offset
14431 // ------------------------------------------------------------------------------ //
14432 
14433 #define ACAMERA_ISP_CNR_VMEAN2_OFFSET_DEFAULT (0x03E)
14434 #define ACAMERA_ISP_CNR_VMEAN2_OFFSET_DATASIZE (12)
14435 #define ACAMERA_ISP_CNR_VMEAN2_OFFSET_OFFSET (0x22a4)
14436 #define ACAMERA_ISP_CNR_VMEAN2_OFFSET_MASK (0xfff)
14437 
14438 // args: data (12-bit)
acamera_isp_cnr_vmean2_offset_write(uintptr_t base,uint16_t data)14439 static __inline void acamera_isp_cnr_vmean2_offset_write(uintptr_t base, uint16_t data) {
14440     uint32_t curr = system_sw_read_32(base + 0x1b12cL);
14441     system_sw_write_32(base + 0x1b12cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14442 }
acamera_isp_cnr_vmean2_offset_read(uintptr_t base)14443 static __inline uint16_t acamera_isp_cnr_vmean2_offset_read(uintptr_t base) {
14444     return (uint16_t)((system_sw_read_32(base + 0x1b12cL) & 0xfff) >> 0);
14445 }
14446 // ------------------------------------------------------------------------------ //
14447 // Register: vmean2_slope
14448 // ------------------------------------------------------------------------------ //
14449 
14450 // ------------------------------------------------------------------------------ //
14451 // vmean2 slope
14452 // ------------------------------------------------------------------------------ //
14453 
14454 #define ACAMERA_ISP_CNR_VMEAN2_SLOPE_DEFAULT (0xE7B4)
14455 #define ACAMERA_ISP_CNR_VMEAN2_SLOPE_DATASIZE (16)
14456 #define ACAMERA_ISP_CNR_VMEAN2_SLOPE_OFFSET (0x22a8)
14457 #define ACAMERA_ISP_CNR_VMEAN2_SLOPE_MASK (0xffff)
14458 
14459 // args: data (16-bit)
acamera_isp_cnr_vmean2_slope_write(uintptr_t base,uint16_t data)14460 static __inline void acamera_isp_cnr_vmean2_slope_write(uintptr_t base, uint16_t data) {
14461     uint32_t curr = system_sw_read_32(base + 0x1b130L);
14462     system_sw_write_32(base + 0x1b130L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14463 }
acamera_isp_cnr_vmean2_slope_read(uintptr_t base)14464 static __inline uint16_t acamera_isp_cnr_vmean2_slope_read(uintptr_t base) {
14465     return (uint16_t)((system_sw_read_32(base + 0x1b130L) & 0xffff) >> 0);
14466 }
14467 // ------------------------------------------------------------------------------ //
14468 // Register: uv_var1_threshold
14469 // ------------------------------------------------------------------------------ //
14470 
14471 // ------------------------------------------------------------------------------ //
14472 // uv_var1 threshold
14473 // ------------------------------------------------------------------------------ //
14474 
14475 #define ACAMERA_ISP_CNR_UV_VAR1_THRESHOLD_DEFAULT (0x000)
14476 #define ACAMERA_ISP_CNR_UV_VAR1_THRESHOLD_DATASIZE (12)
14477 #define ACAMERA_ISP_CNR_UV_VAR1_THRESHOLD_OFFSET (0x22ac)
14478 #define ACAMERA_ISP_CNR_UV_VAR1_THRESHOLD_MASK (0xfff)
14479 
14480 // args: data (12-bit)
acamera_isp_cnr_uv_var1_threshold_write(uintptr_t base,uint16_t data)14481 static __inline void acamera_isp_cnr_uv_var1_threshold_write(uintptr_t base, uint16_t data) {
14482     uint32_t curr = system_sw_read_32(base + 0x1b134L);
14483     system_sw_write_32(base + 0x1b134L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14484 }
acamera_isp_cnr_uv_var1_threshold_read(uintptr_t base)14485 static __inline uint16_t acamera_isp_cnr_uv_var1_threshold_read(uintptr_t base) {
14486     return (uint16_t)((system_sw_read_32(base + 0x1b134L) & 0xfff) >> 0);
14487 }
14488 // ------------------------------------------------------------------------------ //
14489 // Register: uv_var1_offset
14490 // ------------------------------------------------------------------------------ //
14491 
14492 // ------------------------------------------------------------------------------ //
14493 // uv_var1 offset
14494 // ------------------------------------------------------------------------------ //
14495 
14496 #define ACAMERA_ISP_CNR_UV_VAR1_OFFSET_DEFAULT (0x3FF)
14497 #define ACAMERA_ISP_CNR_UV_VAR1_OFFSET_DATASIZE (12)
14498 #define ACAMERA_ISP_CNR_UV_VAR1_OFFSET_OFFSET (0x22b0)
14499 #define ACAMERA_ISP_CNR_UV_VAR1_OFFSET_MASK (0xfff)
14500 
14501 // args: data (12-bit)
acamera_isp_cnr_uv_var1_offset_write(uintptr_t base,uint16_t data)14502 static __inline void acamera_isp_cnr_uv_var1_offset_write(uintptr_t base, uint16_t data) {
14503     uint32_t curr = system_sw_read_32(base + 0x1b138L);
14504     system_sw_write_32(base + 0x1b138L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14505 }
acamera_isp_cnr_uv_var1_offset_read(uintptr_t base)14506 static __inline uint16_t acamera_isp_cnr_uv_var1_offset_read(uintptr_t base) {
14507     return (uint16_t)((system_sw_read_32(base + 0x1b138L) & 0xfff) >> 0);
14508 }
14509 // ------------------------------------------------------------------------------ //
14510 // Register: uv_var1_slope
14511 // ------------------------------------------------------------------------------ //
14512 
14513 // ------------------------------------------------------------------------------ //
14514 // uv_var2 slope
14515 // ------------------------------------------------------------------------------ //
14516 
14517 #define ACAMERA_ISP_CNR_UV_VAR1_SLOPE_DEFAULT (0xFFFF)
14518 #define ACAMERA_ISP_CNR_UV_VAR1_SLOPE_DATASIZE (16)
14519 #define ACAMERA_ISP_CNR_UV_VAR1_SLOPE_OFFSET (0x22b4)
14520 #define ACAMERA_ISP_CNR_UV_VAR1_SLOPE_MASK (0xffff)
14521 
14522 // args: data (16-bit)
acamera_isp_cnr_uv_var1_slope_write(uintptr_t base,uint16_t data)14523 static __inline void acamera_isp_cnr_uv_var1_slope_write(uintptr_t base, uint16_t data) {
14524     uint32_t curr = system_sw_read_32(base + 0x1b13cL);
14525     system_sw_write_32(base + 0x1b13cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14526 }
acamera_isp_cnr_uv_var1_slope_read(uintptr_t base)14527 static __inline uint16_t acamera_isp_cnr_uv_var1_slope_read(uintptr_t base) {
14528     return (uint16_t)((system_sw_read_32(base + 0x1b13cL) & 0xffff) >> 0);
14529 }
14530 // ------------------------------------------------------------------------------ //
14531 // Register: uv_var2_threshold
14532 // ------------------------------------------------------------------------------ //
14533 
14534 // ------------------------------------------------------------------------------ //
14535 // uv_var2 threshold
14536 // ------------------------------------------------------------------------------ //
14537 
14538 #define ACAMERA_ISP_CNR_UV_VAR2_THRESHOLD_DEFAULT (0x000)
14539 #define ACAMERA_ISP_CNR_UV_VAR2_THRESHOLD_DATASIZE (12)
14540 #define ACAMERA_ISP_CNR_UV_VAR2_THRESHOLD_OFFSET (0x22b8)
14541 #define ACAMERA_ISP_CNR_UV_VAR2_THRESHOLD_MASK (0xfff)
14542 
14543 // args: data (12-bit)
acamera_isp_cnr_uv_var2_threshold_write(uintptr_t base,uint16_t data)14544 static __inline void acamera_isp_cnr_uv_var2_threshold_write(uintptr_t base, uint16_t data) {
14545     uint32_t curr = system_sw_read_32(base + 0x1b140L);
14546     system_sw_write_32(base + 0x1b140L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14547 }
acamera_isp_cnr_uv_var2_threshold_read(uintptr_t base)14548 static __inline uint16_t acamera_isp_cnr_uv_var2_threshold_read(uintptr_t base) {
14549     return (uint16_t)((system_sw_read_32(base + 0x1b140L) & 0xfff) >> 0);
14550 }
14551 // ------------------------------------------------------------------------------ //
14552 // Register: uv_var2_offset
14553 // ------------------------------------------------------------------------------ //
14554 
14555 // ------------------------------------------------------------------------------ //
14556 // uv_var2 offset
14557 // ------------------------------------------------------------------------------ //
14558 
14559 #define ACAMERA_ISP_CNR_UV_VAR2_OFFSET_DEFAULT (0x3FF)
14560 #define ACAMERA_ISP_CNR_UV_VAR2_OFFSET_DATASIZE (12)
14561 #define ACAMERA_ISP_CNR_UV_VAR2_OFFSET_OFFSET (0x22bc)
14562 #define ACAMERA_ISP_CNR_UV_VAR2_OFFSET_MASK (0xfff)
14563 
14564 // args: data (12-bit)
acamera_isp_cnr_uv_var2_offset_write(uintptr_t base,uint16_t data)14565 static __inline void acamera_isp_cnr_uv_var2_offset_write(uintptr_t base, uint16_t data) {
14566     uint32_t curr = system_sw_read_32(base + 0x1b144L);
14567     system_sw_write_32(base + 0x1b144L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14568 }
acamera_isp_cnr_uv_var2_offset_read(uintptr_t base)14569 static __inline uint16_t acamera_isp_cnr_uv_var2_offset_read(uintptr_t base) {
14570     return (uint16_t)((system_sw_read_32(base + 0x1b144L) & 0xfff) >> 0);
14571 }
14572 // ------------------------------------------------------------------------------ //
14573 // Register: uv_var2_slope
14574 // ------------------------------------------------------------------------------ //
14575 
14576 // ------------------------------------------------------------------------------ //
14577 // uv_var2 slope
14578 // ------------------------------------------------------------------------------ //
14579 
14580 #define ACAMERA_ISP_CNR_UV_VAR2_SLOPE_DEFAULT (0xFFFF)
14581 #define ACAMERA_ISP_CNR_UV_VAR2_SLOPE_DATASIZE (16)
14582 #define ACAMERA_ISP_CNR_UV_VAR2_SLOPE_OFFSET (0x22c0)
14583 #define ACAMERA_ISP_CNR_UV_VAR2_SLOPE_MASK (0xffff)
14584 
14585 // args: data (16-bit)
acamera_isp_cnr_uv_var2_slope_write(uintptr_t base,uint16_t data)14586 static __inline void acamera_isp_cnr_uv_var2_slope_write(uintptr_t base, uint16_t data) {
14587     uint32_t curr = system_sw_read_32(base + 0x1b148L);
14588     system_sw_write_32(base + 0x1b148L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14589 }
acamera_isp_cnr_uv_var2_slope_read(uintptr_t base)14590 static __inline uint16_t acamera_isp_cnr_uv_var2_slope_read(uintptr_t base) {
14591     return (uint16_t)((system_sw_read_32(base + 0x1b148L) & 0xffff) >> 0);
14592 }
14593 // ------------------------------------------------------------------------------ //
14594 // Register: uv_var1_scale
14595 // ------------------------------------------------------------------------------ //
14596 
14597 // ------------------------------------------------------------------------------ //
14598 // uv_var1 scale
14599 // ------------------------------------------------------------------------------ //
14600 
14601 #define ACAMERA_ISP_CNR_UV_VAR1_SCALE_DEFAULT (0x10)
14602 #define ACAMERA_ISP_CNR_UV_VAR1_SCALE_DATASIZE (6)
14603 #define ACAMERA_ISP_CNR_UV_VAR1_SCALE_OFFSET (0x22c4)
14604 #define ACAMERA_ISP_CNR_UV_VAR1_SCALE_MASK (0x3f)
14605 
14606 // args: data (6-bit)
acamera_isp_cnr_uv_var1_scale_write(uintptr_t base,uint8_t data)14607 static __inline void acamera_isp_cnr_uv_var1_scale_write(uintptr_t base, uint8_t data) {
14608     uint32_t curr = system_sw_read_32(base + 0x1b14cL);
14609     system_sw_write_32(base + 0x1b14cL, (((uint32_t) (data & 0x3f)) << 0) | (curr & 0xffffffc0));
14610 }
acamera_isp_cnr_uv_var1_scale_read(uintptr_t base)14611 static __inline uint8_t acamera_isp_cnr_uv_var1_scale_read(uintptr_t base) {
14612     return (uint8_t)((system_sw_read_32(base + 0x1b14cL) & 0x3f) >> 0);
14613 }
14614 // ------------------------------------------------------------------------------ //
14615 // Register: uv_var2_scale
14616 // ------------------------------------------------------------------------------ //
14617 
14618 // ------------------------------------------------------------------------------ //
14619 // uv_var2 scale
14620 // ------------------------------------------------------------------------------ //
14621 
14622 #define ACAMERA_ISP_CNR_UV_VAR2_SCALE_DEFAULT (0x10)
14623 #define ACAMERA_ISP_CNR_UV_VAR2_SCALE_DATASIZE (6)
14624 #define ACAMERA_ISP_CNR_UV_VAR2_SCALE_OFFSET (0x22c4)
14625 #define ACAMERA_ISP_CNR_UV_VAR2_SCALE_MASK (0x3f00)
14626 
14627 // args: data (6-bit)
acamera_isp_cnr_uv_var2_scale_write(uintptr_t base,uint8_t data)14628 static __inline void acamera_isp_cnr_uv_var2_scale_write(uintptr_t base, uint8_t data) {
14629     uint32_t curr = system_sw_read_32(base + 0x1b14cL);
14630     system_sw_write_32(base + 0x1b14cL, (((uint32_t) (data & 0x3f)) << 8) | (curr & 0xffffc0ff));
14631 }
acamera_isp_cnr_uv_var2_scale_read(uintptr_t base)14632 static __inline uint8_t acamera_isp_cnr_uv_var2_scale_read(uintptr_t base) {
14633     return (uint8_t)((system_sw_read_32(base + 0x1b14cL) & 0x3f00) >> 8);
14634 }
14635 // ------------------------------------------------------------------------------ //
14636 // Register: uv_delta1_threshold
14637 // ------------------------------------------------------------------------------ //
14638 
14639 // ------------------------------------------------------------------------------ //
14640 // uv_delta1 threshold
14641 // ------------------------------------------------------------------------------ //
14642 
14643 #define ACAMERA_ISP_CNR_UV_DELTA1_THRESHOLD_DEFAULT (0x000)
14644 #define ACAMERA_ISP_CNR_UV_DELTA1_THRESHOLD_DATASIZE (12)
14645 #define ACAMERA_ISP_CNR_UV_DELTA1_THRESHOLD_OFFSET (0x22c8)
14646 #define ACAMERA_ISP_CNR_UV_DELTA1_THRESHOLD_MASK (0xfff)
14647 
14648 // args: data (12-bit)
acamera_isp_cnr_uv_delta1_threshold_write(uintptr_t base,uint16_t data)14649 static __inline void acamera_isp_cnr_uv_delta1_threshold_write(uintptr_t base, uint16_t data) {
14650     uint32_t curr = system_sw_read_32(base + 0x1b150L);
14651     system_sw_write_32(base + 0x1b150L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14652 }
acamera_isp_cnr_uv_delta1_threshold_read(uintptr_t base)14653 static __inline uint16_t acamera_isp_cnr_uv_delta1_threshold_read(uintptr_t base) {
14654     return (uint16_t)((system_sw_read_32(base + 0x1b150L) & 0xfff) >> 0);
14655 }
14656 // ------------------------------------------------------------------------------ //
14657 // Register: uv_delta1_offset
14658 // ------------------------------------------------------------------------------ //
14659 
14660 // ------------------------------------------------------------------------------ //
14661 // uv_delta1 offset
14662 // ------------------------------------------------------------------------------ //
14663 
14664 #define ACAMERA_ISP_CNR_UV_DELTA1_OFFSET_DEFAULT (0x0B9)
14665 #define ACAMERA_ISP_CNR_UV_DELTA1_OFFSET_DATASIZE (12)
14666 #define ACAMERA_ISP_CNR_UV_DELTA1_OFFSET_OFFSET (0x22cc)
14667 #define ACAMERA_ISP_CNR_UV_DELTA1_OFFSET_MASK (0xfff)
14668 
14669 // args: data (12-bit)
acamera_isp_cnr_uv_delta1_offset_write(uintptr_t base,uint16_t data)14670 static __inline void acamera_isp_cnr_uv_delta1_offset_write(uintptr_t base, uint16_t data) {
14671     uint32_t curr = system_sw_read_32(base + 0x1b154L);
14672     system_sw_write_32(base + 0x1b154L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14673 }
acamera_isp_cnr_uv_delta1_offset_read(uintptr_t base)14674 static __inline uint16_t acamera_isp_cnr_uv_delta1_offset_read(uintptr_t base) {
14675     return (uint16_t)((system_sw_read_32(base + 0x1b154L) & 0xfff) >> 0);
14676 }
14677 // ------------------------------------------------------------------------------ //
14678 // Register: uv_delta1_slope
14679 // ------------------------------------------------------------------------------ //
14680 
14681 // ------------------------------------------------------------------------------ //
14682 // uv_delta1 slope
14683 // ------------------------------------------------------------------------------ //
14684 
14685 #define ACAMERA_ISP_CNR_UV_DELTA1_SLOPE_DEFAULT (0x0600)
14686 #define ACAMERA_ISP_CNR_UV_DELTA1_SLOPE_DATASIZE (16)
14687 #define ACAMERA_ISP_CNR_UV_DELTA1_SLOPE_OFFSET (0x22d0)
14688 #define ACAMERA_ISP_CNR_UV_DELTA1_SLOPE_MASK (0xffff)
14689 
14690 // args: data (16-bit)
acamera_isp_cnr_uv_delta1_slope_write(uintptr_t base,uint16_t data)14691 static __inline void acamera_isp_cnr_uv_delta1_slope_write(uintptr_t base, uint16_t data) {
14692     uint32_t curr = system_sw_read_32(base + 0x1b158L);
14693     system_sw_write_32(base + 0x1b158L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14694 }
acamera_isp_cnr_uv_delta1_slope_read(uintptr_t base)14695 static __inline uint16_t acamera_isp_cnr_uv_delta1_slope_read(uintptr_t base) {
14696     return (uint16_t)((system_sw_read_32(base + 0x1b158L) & 0xffff) >> 0);
14697 }
14698 // ------------------------------------------------------------------------------ //
14699 // Register: uv_delta2_threshold
14700 // ------------------------------------------------------------------------------ //
14701 
14702 // ------------------------------------------------------------------------------ //
14703 // uv_delta2 threshold
14704 // ------------------------------------------------------------------------------ //
14705 
14706 #define ACAMERA_ISP_CNR_UV_DELTA2_THRESHOLD_DEFAULT (0x000)
14707 #define ACAMERA_ISP_CNR_UV_DELTA2_THRESHOLD_DATASIZE (12)
14708 #define ACAMERA_ISP_CNR_UV_DELTA2_THRESHOLD_OFFSET (0x22d4)
14709 #define ACAMERA_ISP_CNR_UV_DELTA2_THRESHOLD_MASK (0xfff)
14710 
14711 // args: data (12-bit)
acamera_isp_cnr_uv_delta2_threshold_write(uintptr_t base,uint16_t data)14712 static __inline void acamera_isp_cnr_uv_delta2_threshold_write(uintptr_t base, uint16_t data) {
14713     uint32_t curr = system_sw_read_32(base + 0x1b15cL);
14714     system_sw_write_32(base + 0x1b15cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14715 }
acamera_isp_cnr_uv_delta2_threshold_read(uintptr_t base)14716 static __inline uint16_t acamera_isp_cnr_uv_delta2_threshold_read(uintptr_t base) {
14717     return (uint16_t)((system_sw_read_32(base + 0x1b15cL) & 0xfff) >> 0);
14718 }
14719 // ------------------------------------------------------------------------------ //
14720 // Register: uv_delta2_offset
14721 // ------------------------------------------------------------------------------ //
14722 
14723 // ------------------------------------------------------------------------------ //
14724 // uv_delta2 offset
14725 // ------------------------------------------------------------------------------ //
14726 
14727 #define ACAMERA_ISP_CNR_UV_DELTA2_OFFSET_DEFAULT (0x0B9)
14728 #define ACAMERA_ISP_CNR_UV_DELTA2_OFFSET_DATASIZE (12)
14729 #define ACAMERA_ISP_CNR_UV_DELTA2_OFFSET_OFFSET (0x22d8)
14730 #define ACAMERA_ISP_CNR_UV_DELTA2_OFFSET_MASK (0xfff)
14731 
14732 // args: data (12-bit)
acamera_isp_cnr_uv_delta2_offset_write(uintptr_t base,uint16_t data)14733 static __inline void acamera_isp_cnr_uv_delta2_offset_write(uintptr_t base, uint16_t data) {
14734     uint32_t curr = system_sw_read_32(base + 0x1b160L);
14735     system_sw_write_32(base + 0x1b160L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14736 }
acamera_isp_cnr_uv_delta2_offset_read(uintptr_t base)14737 static __inline uint16_t acamera_isp_cnr_uv_delta2_offset_read(uintptr_t base) {
14738     return (uint16_t)((system_sw_read_32(base + 0x1b160L) & 0xfff) >> 0);
14739 }
14740 // ------------------------------------------------------------------------------ //
14741 // Register: uv_delta2_slope
14742 // ------------------------------------------------------------------------------ //
14743 
14744 // ------------------------------------------------------------------------------ //
14745 // uv_delta2 slope
14746 // ------------------------------------------------------------------------------ //
14747 
14748 #define ACAMERA_ISP_CNR_UV_DELTA2_SLOPE_DEFAULT (0x0600)
14749 #define ACAMERA_ISP_CNR_UV_DELTA2_SLOPE_DATASIZE (16)
14750 #define ACAMERA_ISP_CNR_UV_DELTA2_SLOPE_OFFSET (0x22dc)
14751 #define ACAMERA_ISP_CNR_UV_DELTA2_SLOPE_MASK (0xffff)
14752 
14753 // args: data (16-bit)
acamera_isp_cnr_uv_delta2_slope_write(uintptr_t base,uint16_t data)14754 static __inline void acamera_isp_cnr_uv_delta2_slope_write(uintptr_t base, uint16_t data) {
14755     uint32_t curr = system_sw_read_32(base + 0x1b164L);
14756     system_sw_write_32(base + 0x1b164L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14757 }
acamera_isp_cnr_uv_delta2_slope_read(uintptr_t base)14758 static __inline uint16_t acamera_isp_cnr_uv_delta2_slope_read(uintptr_t base) {
14759     return (uint16_t)((system_sw_read_32(base + 0x1b164L) & 0xffff) >> 0);
14760 }
14761 // ------------------------------------------------------------------------------ //
14762 // Register: Statusa
14763 // ------------------------------------------------------------------------------ //
14764 
14765 // ------------------------------------------------------------------------------ //
14766 // CNR Debug Port
14767 // ------------------------------------------------------------------------------ //
14768 
14769 #define ACAMERA_ISP_CNR_STATUSA_DEFAULT (0x0000)
14770 #define ACAMERA_ISP_CNR_STATUSA_DATASIZE (16)
14771 #define ACAMERA_ISP_CNR_STATUSA_OFFSET (0x22e0)
14772 #define ACAMERA_ISP_CNR_STATUSA_MASK (0xffff)
14773 
14774 // args: data (16-bit)
acamera_isp_cnr_statusa_read(uintptr_t base)14775 static __inline uint16_t acamera_isp_cnr_statusa_read(uintptr_t base) {
14776     return (uint16_t)((system_sw_read_32(base + 0x1b168L) & 0xffff) >> 0);
14777 }
14778 // ------------------------------------------------------------------------------ //
14779 // Register: Statusb
14780 // ------------------------------------------------------------------------------ //
14781 
14782 // ------------------------------------------------------------------------------ //
14783 // CNR Debug Port
14784 // ------------------------------------------------------------------------------ //
14785 
14786 #define ACAMERA_ISP_CNR_STATUSB_DEFAULT (0x0000)
14787 #define ACAMERA_ISP_CNR_STATUSB_DATASIZE (16)
14788 #define ACAMERA_ISP_CNR_STATUSB_OFFSET (0x22e0)
14789 #define ACAMERA_ISP_CNR_STATUSB_MASK (0xffff0000)
14790 
14791 // args: data (16-bit)
acamera_isp_cnr_statusb_read(uintptr_t base)14792 static __inline uint16_t acamera_isp_cnr_statusb_read(uintptr_t base) {
14793     return (uint16_t)((system_sw_read_32(base + 0x1b168L) & 0xffff0000) >> 16);
14794 }
14795 // ------------------------------------------------------------------------------ //
14796 // Group: nonequ gamma
14797 // ------------------------------------------------------------------------------ //
14798 
14799 // ------------------------------------------------------------------------------ //
14800 // nonequ_gamma module
14801 // ------------------------------------------------------------------------------ //
14802 
14803 // ------------------------------------------------------------------------------ //
14804 // Register: srgb_lut_enable
14805 // ------------------------------------------------------------------------------ //
14806 
14807 // ------------------------------------------------------------------------------ //
14808 //  enables gamma sRGB
14809 // ------------------------------------------------------------------------------ //
14810 
14811 #define ACAMERA_ISP_NONEQU_GAMMA_SRGB_LUT_ENABLE_DEFAULT (0x0)
14812 #define ACAMERA_ISP_NONEQU_GAMMA_SRGB_LUT_ENABLE_DATASIZE (1)
14813 #define ACAMERA_ISP_NONEQU_GAMMA_SRGB_LUT_ENABLE_OFFSET (0x22e4)
14814 #define ACAMERA_ISP_NONEQU_GAMMA_SRGB_LUT_ENABLE_MASK (0x1)
14815 
14816 // args: data (1-bit)
acamera_isp_nonequ_gamma_srgb_lut_enable_write(uintptr_t base,uint8_t data)14817 static __inline void acamera_isp_nonequ_gamma_srgb_lut_enable_write(uintptr_t base, uint8_t data) {
14818     uint32_t curr = system_sw_read_32(base + 0x1b16cL);
14819     system_sw_write_32(base + 0x1b16cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
14820 }
acamera_isp_nonequ_gamma_srgb_lut_enable_read(uintptr_t base)14821 static __inline uint8_t acamera_isp_nonequ_gamma_srgb_lut_enable_read(uintptr_t base) {
14822     return (uint8_t)((system_sw_read_32(base + 0x1b16cL) & 0x1) >> 0);
14823 }
14824 // ------------------------------------------------------------------------------ //
14825 // LUT: srgb_lut_coeff LUT
14826 // ------------------------------------------------------------------------------ //
14827 
14828 // ------------------------------------------------------------------------------ //
14829 // Color space (HDR Linear to sRGB) LUT
14830 // ------------------------------------------------------------------------------ //
14831 
14832 #define ACAMERA_ISP_NONEQU_GAMMA_SRGB_LUT_COEFF_LUT_NODES (65)
14833 #define ACAMERA_ISP_NONEQU_GAMMA_SRGB_LUT_COEFF_LUT_ADDRBITS (7)
14834 #define ACAMERA_ISP_NONEQU_GAMMA_SRGB_LUT_COEFF_LUT_DATASIZE (14)
14835 #define ACAMERA_ISP_NONEQU_GAMMA_SRGB_LUT_COEFF_LUT_OFFSET (0x1b170L)
14836 
14837 // args: index (0-64), data (14-bit)
acamera_isp_nonequ_gamma_srgb_lut_coeff_lut_write(uintptr_t base,uint8_t index,uint16_t data)14838 static __inline void acamera_isp_nonequ_gamma_srgb_lut_coeff_lut_write( uintptr_t base, uint8_t index,uint16_t data) {
14839     uintptr_t addr = base + 0x1b170L + (index << 2);
14840     system_sw_write_32(addr, data);
14841 }
acamera_isp_nonequ_gamma_srgb_lut_coeff_lut_read(uintptr_t base,uint8_t index)14842 static __inline uint16_t acamera_isp_nonequ_gamma_srgb_lut_coeff_lut_read( uintptr_t base, uint8_t index) {
14843     uintptr_t addr = base + 0x1b170L + (index << 2);
14844     return system_sw_read_32(addr);
14845 }
14846 // ------------------------------------------------------------------------------ //
14847 // Group: lumvar
14848 // ------------------------------------------------------------------------------ //
14849 
14850 // ------------------------------------------------------------------------------ //
14851 // Register: active_width
14852 // ------------------------------------------------------------------------------ //
14853 
14854 // ------------------------------------------------------------------------------ //
14855 //
14856 //            Active width. This depends on the position of the luma variance module. if this module is connected to the
14857 //            full resolution pipeline, then the active_width should be the full resolution frame width.
14858 //            if its in the downscaled pipeline, then the active_width should be the post-scaler width
14859 //
14860 // ------------------------------------------------------------------------------ //
14861 
14862 #define ACAMERA_ISP_LUMVAR_ACTIVE_WIDTH_DEFAULT (1920)
14863 #define ACAMERA_ISP_LUMVAR_ACTIVE_WIDTH_DATASIZE (16)
14864 #define ACAMERA_ISP_LUMVAR_ACTIVE_WIDTH_OFFSET (0x23ec)
14865 #define ACAMERA_ISP_LUMVAR_ACTIVE_WIDTH_MASK (0xffff)
14866 
14867 // args: data (16-bit)
acamera_isp_lumvar_active_width_write(uintptr_t base,uint16_t data)14868 static __inline void acamera_isp_lumvar_active_width_write(uintptr_t base, uint16_t data) {
14869     uint32_t curr = system_sw_read_32(base + 0x1b274L);
14870     system_sw_write_32(base + 0x1b274L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
14871 }
acamera_isp_lumvar_active_width_read(uintptr_t base)14872 static __inline uint16_t acamera_isp_lumvar_active_width_read(uintptr_t base) {
14873     return (uint16_t)((system_sw_read_32(base + 0x1b274L) & 0xffff) >> 0);
14874 }
14875 // ------------------------------------------------------------------------------ //
14876 // Register: active_height
14877 // ------------------------------------------------------------------------------ //
14878 
14879 // ------------------------------------------------------------------------------ //
14880 //
14881 //            Active height. This depends on the position of the luma variance module. if this module is connected to the
14882 //            full resolution pipeline, then the active_height should be the full resolution frame height.
14883 //            if its in the downscaled pipeline, then the active_height should be the post-scaler height
14884 //
14885 // ------------------------------------------------------------------------------ //
14886 
14887 #define ACAMERA_ISP_LUMVAR_ACTIVE_HEIGHT_DEFAULT (1080)
14888 #define ACAMERA_ISP_LUMVAR_ACTIVE_HEIGHT_DATASIZE (16)
14889 #define ACAMERA_ISP_LUMVAR_ACTIVE_HEIGHT_OFFSET (0x23ec)
14890 #define ACAMERA_ISP_LUMVAR_ACTIVE_HEIGHT_MASK (0xffff0000)
14891 
14892 // args: data (16-bit)
acamera_isp_lumvar_active_height_write(uintptr_t base,uint16_t data)14893 static __inline void acamera_isp_lumvar_active_height_write(uintptr_t base, uint16_t data) {
14894     uint32_t curr = system_sw_read_32(base + 0x1b274L);
14895     system_sw_write_32(base + 0x1b274L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
14896 }
acamera_isp_lumvar_active_height_read(uintptr_t base)14897 static __inline uint16_t acamera_isp_lumvar_active_height_read(uintptr_t base) {
14898     return (uint16_t)((system_sw_read_32(base + 0x1b274L) & 0xffff0000) >> 16);
14899 }
14900 // ------------------------------------------------------------------------------ //
14901 // Group: metering aexp
14902 // ------------------------------------------------------------------------------ //
14903 
14904 // ------------------------------------------------------------------------------ //
14905 // Derives information for use by the AE and AWB modules
14906 // ------------------------------------------------------------------------------ //
14907 
14908 // ------------------------------------------------------------------------------ //
14909 // Register: Hist Thresh 0 1
14910 // ------------------------------------------------------------------------------ //
14911 
14912 // ------------------------------------------------------------------------------ //
14913 // Histogram threshold for bin 0/1 boundary
14914 // ------------------------------------------------------------------------------ //
14915 
14916 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_0_1_DEFAULT (0x10)
14917 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_0_1_DATASIZE (12)
14918 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_0_1_OFFSET (0x23f0)
14919 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_0_1_MASK (0xfff)
14920 
14921 // args: data (12-bit)
acamera_isp_metering_aexp_hist_thresh_0_1_write(uintptr_t base,uint16_t data)14922 static __inline void acamera_isp_metering_aexp_hist_thresh_0_1_write(uintptr_t base, uint16_t data) {
14923     uint32_t curr = system_sw_read_32(base + 0x1b278L);
14924     system_sw_write_32(base + 0x1b278L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14925 }
acamera_isp_metering_aexp_hist_thresh_0_1_read(uintptr_t base)14926 static __inline uint16_t acamera_isp_metering_aexp_hist_thresh_0_1_read(uintptr_t base) {
14927     return (uint16_t)((system_sw_read_32(base + 0x1b278L) & 0xfff) >> 0);
14928 }
14929 // ------------------------------------------------------------------------------ //
14930 // Register: Hist Thresh 1 2
14931 // ------------------------------------------------------------------------------ //
14932 
14933 // ------------------------------------------------------------------------------ //
14934 // Histogram threshold for bin 1/2 boundary
14935 // ------------------------------------------------------------------------------ //
14936 
14937 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_1_2_DEFAULT (0x20)
14938 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_1_2_DATASIZE (12)
14939 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_1_2_OFFSET (0x23f4)
14940 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_1_2_MASK (0xfff)
14941 
14942 // args: data (12-bit)
acamera_isp_metering_aexp_hist_thresh_1_2_write(uintptr_t base,uint16_t data)14943 static __inline void acamera_isp_metering_aexp_hist_thresh_1_2_write(uintptr_t base, uint16_t data) {
14944     uint32_t curr = system_sw_read_32(base + 0x1b27cL);
14945     system_sw_write_32(base + 0x1b27cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14946 }
acamera_isp_metering_aexp_hist_thresh_1_2_read(uintptr_t base)14947 static __inline uint16_t acamera_isp_metering_aexp_hist_thresh_1_2_read(uintptr_t base) {
14948     return (uint16_t)((system_sw_read_32(base + 0x1b27cL) & 0xfff) >> 0);
14949 }
14950 // ------------------------------------------------------------------------------ //
14951 // Register: Hist Thresh 3 4
14952 // ------------------------------------------------------------------------------ //
14953 
14954 // ------------------------------------------------------------------------------ //
14955 // Histogram threshold for bin 2/3 boundary
14956 // ------------------------------------------------------------------------------ //
14957 
14958 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_3_4_DEFAULT (0xD0)
14959 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_3_4_DATASIZE (12)
14960 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_3_4_OFFSET (0x23f8)
14961 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_3_4_MASK (0xfff)
14962 
14963 // args: data (12-bit)
acamera_isp_metering_aexp_hist_thresh_3_4_write(uintptr_t base,uint16_t data)14964 static __inline void acamera_isp_metering_aexp_hist_thresh_3_4_write(uintptr_t base, uint16_t data) {
14965     uint32_t curr = system_sw_read_32(base + 0x1b280L);
14966     system_sw_write_32(base + 0x1b280L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14967 }
acamera_isp_metering_aexp_hist_thresh_3_4_read(uintptr_t base)14968 static __inline uint16_t acamera_isp_metering_aexp_hist_thresh_3_4_read(uintptr_t base) {
14969     return (uint16_t)((system_sw_read_32(base + 0x1b280L) & 0xfff) >> 0);
14970 }
14971 // ------------------------------------------------------------------------------ //
14972 // Register: Hist Thresh 4 5
14973 // ------------------------------------------------------------------------------ //
14974 
14975 // ------------------------------------------------------------------------------ //
14976 // Histogram threshold for bin 3/4 boundary
14977 // ------------------------------------------------------------------------------ //
14978 
14979 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_4_5_DEFAULT (0xE0)
14980 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_4_5_DATASIZE (12)
14981 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_4_5_OFFSET (0x23fc)
14982 #define ACAMERA_ISP_METERING_AEXP_HIST_THRESH_4_5_MASK (0xfff)
14983 
14984 // args: data (12-bit)
acamera_isp_metering_aexp_hist_thresh_4_5_write(uintptr_t base,uint16_t data)14985 static __inline void acamera_isp_metering_aexp_hist_thresh_4_5_write(uintptr_t base, uint16_t data) {
14986     uint32_t curr = system_sw_read_32(base + 0x1b284L);
14987     system_sw_write_32(base + 0x1b284L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
14988 }
acamera_isp_metering_aexp_hist_thresh_4_5_read(uintptr_t base)14989 static __inline uint16_t acamera_isp_metering_aexp_hist_thresh_4_5_read(uintptr_t base) {
14990     return (uint16_t)((system_sw_read_32(base + 0x1b284L) & 0xfff) >> 0);
14991 }
14992 // ------------------------------------------------------------------------------ //
14993 // Register: Hist 0
14994 // ------------------------------------------------------------------------------ //
14995 
14996 // ------------------------------------------------------------------------------ //
14997 // Normalized histogram results for bin 0
14998 // ------------------------------------------------------------------------------ //
14999 
15000 #define ACAMERA_ISP_METERING_AEXP_HIST_0_DEFAULT (0x0)
15001 #define ACAMERA_ISP_METERING_AEXP_HIST_0_DATASIZE (16)
15002 #define ACAMERA_ISP_METERING_AEXP_HIST_0_OFFSET (0x2400)
15003 #define ACAMERA_ISP_METERING_AEXP_HIST_0_MASK (0xffff)
15004 
15005 // args: data (16-bit)
acamera_isp_metering_aexp_hist_0_read(uintptr_t base)15006 static __inline uint16_t acamera_isp_metering_aexp_hist_0_read(uintptr_t base) {
15007     return (uint16_t)((system_sw_read_32(base + 0x1b288L) & 0xffff) >> 0);
15008 }
15009 // ------------------------------------------------------------------------------ //
15010 // Register: Hist 1
15011 // ------------------------------------------------------------------------------ //
15012 
15013 // ------------------------------------------------------------------------------ //
15014 // Normalized histogram results for bin 1
15015 // ------------------------------------------------------------------------------ //
15016 
15017 #define ACAMERA_ISP_METERING_AEXP_HIST_1_DEFAULT (0x0)
15018 #define ACAMERA_ISP_METERING_AEXP_HIST_1_DATASIZE (16)
15019 #define ACAMERA_ISP_METERING_AEXP_HIST_1_OFFSET (0x2404)
15020 #define ACAMERA_ISP_METERING_AEXP_HIST_1_MASK (0xffff)
15021 
15022 // args: data (16-bit)
acamera_isp_metering_aexp_hist_1_read(uintptr_t base)15023 static __inline uint16_t acamera_isp_metering_aexp_hist_1_read(uintptr_t base) {
15024     return (uint16_t)((system_sw_read_32(base + 0x1b28cL) & 0xffff) >> 0);
15025 }
15026 // ------------------------------------------------------------------------------ //
15027 // Register: Hist 3
15028 // ------------------------------------------------------------------------------ //
15029 
15030 // ------------------------------------------------------------------------------ //
15031 // Normalized histogram results for bin 3
15032 // ------------------------------------------------------------------------------ //
15033 
15034 #define ACAMERA_ISP_METERING_AEXP_HIST_3_DEFAULT (0x0)
15035 #define ACAMERA_ISP_METERING_AEXP_HIST_3_DATASIZE (16)
15036 #define ACAMERA_ISP_METERING_AEXP_HIST_3_OFFSET (0x2408)
15037 #define ACAMERA_ISP_METERING_AEXP_HIST_3_MASK (0xffff)
15038 
15039 // args: data (16-bit)
acamera_isp_metering_aexp_hist_3_read(uintptr_t base)15040 static __inline uint16_t acamera_isp_metering_aexp_hist_3_read(uintptr_t base) {
15041     return (uint16_t)((system_sw_read_32(base + 0x1b290L) & 0xffff) >> 0);
15042 }
15043 // ------------------------------------------------------------------------------ //
15044 // Register: Hist 4
15045 // ------------------------------------------------------------------------------ //
15046 
15047 // ------------------------------------------------------------------------------ //
15048 // Normalized histogram results for bin 4
15049 // ------------------------------------------------------------------------------ //
15050 
15051 #define ACAMERA_ISP_METERING_AEXP_HIST_4_DEFAULT (0x0)
15052 #define ACAMERA_ISP_METERING_AEXP_HIST_4_DATASIZE (16)
15053 #define ACAMERA_ISP_METERING_AEXP_HIST_4_OFFSET (0x240c)
15054 #define ACAMERA_ISP_METERING_AEXP_HIST_4_MASK (0xffff)
15055 
15056 // args: data (16-bit)
acamera_isp_metering_aexp_hist_4_read(uintptr_t base)15057 static __inline uint16_t acamera_isp_metering_aexp_hist_4_read(uintptr_t base) {
15058     return (uint16_t)((system_sw_read_32(base + 0x1b294L) & 0xffff) >> 0);
15059 }
15060 // ------------------------------------------------------------------------------ //
15061 // Register: Nodes Used Horiz
15062 // ------------------------------------------------------------------------------ //
15063 
15064 // ------------------------------------------------------------------------------ //
15065 // Number of active zones horizontally for AE stats collection
15066 // ------------------------------------------------------------------------------ //
15067 
15068 #define ACAMERA_ISP_METERING_AEXP_NODES_USED_HORIZ_DEFAULT (23)
15069 #define ACAMERA_ISP_METERING_AEXP_NODES_USED_HORIZ_DATASIZE (8)
15070 #define ACAMERA_ISP_METERING_AEXP_NODES_USED_HORIZ_OFFSET (0x2410)
15071 #define ACAMERA_ISP_METERING_AEXP_NODES_USED_HORIZ_MASK (0xff)
15072 
15073 // args: data (8-bit)
acamera_isp_metering_aexp_nodes_used_horiz_write(uintptr_t base,uint8_t data)15074 static __inline void acamera_isp_metering_aexp_nodes_used_horiz_write(uintptr_t base, uint8_t data) {
15075     uint32_t curr = system_sw_read_32(base + 0x1b298L);
15076     system_sw_write_32(base + 0x1b298L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
15077 }
acamera_isp_metering_aexp_nodes_used_horiz_read(uintptr_t base)15078 static __inline uint8_t acamera_isp_metering_aexp_nodes_used_horiz_read(uintptr_t base) {
15079     return (uint8_t)((system_sw_read_32(base + 0x1b298L) & 0xff) >> 0);
15080 }
15081 // ------------------------------------------------------------------------------ //
15082 // Register: Nodes Used Vert
15083 // ------------------------------------------------------------------------------ //
15084 
15085 // ------------------------------------------------------------------------------ //
15086 // Number of active zones vertically for AE stats collection
15087 // ------------------------------------------------------------------------------ //
15088 
15089 #define ACAMERA_ISP_METERING_AEXP_NODES_USED_VERT_DEFAULT (21)
15090 #define ACAMERA_ISP_METERING_AEXP_NODES_USED_VERT_DATASIZE (8)
15091 #define ACAMERA_ISP_METERING_AEXP_NODES_USED_VERT_OFFSET (0x2410)
15092 #define ACAMERA_ISP_METERING_AEXP_NODES_USED_VERT_MASK (0xff00)
15093 
15094 // args: data (8-bit)
acamera_isp_metering_aexp_nodes_used_vert_write(uintptr_t base,uint8_t data)15095 static __inline void acamera_isp_metering_aexp_nodes_used_vert_write(uintptr_t base, uint8_t data) {
15096     uint32_t curr = system_sw_read_32(base + 0x1b298L);
15097     system_sw_write_32(base + 0x1b298L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
15098 }
acamera_isp_metering_aexp_nodes_used_vert_read(uintptr_t base)15099 static __inline uint8_t acamera_isp_metering_aexp_nodes_used_vert_read(uintptr_t base) {
15100     return (uint8_t)((system_sw_read_32(base + 0x1b298L) & 0xff00) >> 8);
15101 }
15102 // ------------------------------------------------------------------------------ //
15103 // Group: metering awb
15104 // ------------------------------------------------------------------------------ //
15105 
15106 // ------------------------------------------------------------------------------ //
15107 // Register: stats mode
15108 // ------------------------------------------------------------------------------ //
15109 
15110 // ------------------------------------------------------------------------------ //
15111 // Statistics mode: 0 - legacy(G/R,B/R), 1 - current (R/G, B/G)
15112 // ------------------------------------------------------------------------------ //
15113 
15114 #define ACAMERA_ISP_METERING_AWB_STATS_MODE_DEFAULT (0)
15115 #define ACAMERA_ISP_METERING_AWB_STATS_MODE_DATASIZE (1)
15116 #define ACAMERA_ISP_METERING_AWB_STATS_MODE_OFFSET (0x2414)
15117 #define ACAMERA_ISP_METERING_AWB_STATS_MODE_MASK (0x1)
15118 
15119 // args: data (1-bit)
acamera_isp_metering_awb_stats_mode_write(uintptr_t base,uint8_t data)15120 static __inline void acamera_isp_metering_awb_stats_mode_write(uintptr_t base, uint8_t data) {
15121     uint32_t curr = system_sw_read_32(base + 0x1b29cL);
15122     system_sw_write_32(base + 0x1b29cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
15123 }
acamera_isp_metering_awb_stats_mode_read(uintptr_t base)15124 static __inline uint8_t acamera_isp_metering_awb_stats_mode_read(uintptr_t base) {
15125     return (uint8_t)((system_sw_read_32(base + 0x1b29cL) & 0x1) >> 0);
15126 }
15127 // ------------------------------------------------------------------------------ //
15128 // Register: White Level AWB
15129 // ------------------------------------------------------------------------------ //
15130 
15131 // ------------------------------------------------------------------------------ //
15132 // Upper limit of valid data for AWB
15133 // ------------------------------------------------------------------------------ //
15134 
15135 #define ACAMERA_ISP_METERING_AWB_WHITE_LEVEL_AWB_DEFAULT (0x3ff)
15136 #define ACAMERA_ISP_METERING_AWB_WHITE_LEVEL_AWB_DATASIZE (10)
15137 #define ACAMERA_ISP_METERING_AWB_WHITE_LEVEL_AWB_OFFSET (0x2418)
15138 #define ACAMERA_ISP_METERING_AWB_WHITE_LEVEL_AWB_MASK (0x3ff)
15139 
15140 // args: data (10-bit)
acamera_isp_metering_awb_white_level_awb_write(uintptr_t base,uint16_t data)15141 static __inline void acamera_isp_metering_awb_white_level_awb_write(uintptr_t base, uint16_t data) {
15142     uint32_t curr = system_sw_read_32(base + 0x1b2a0L);
15143     system_sw_write_32(base + 0x1b2a0L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
15144 }
acamera_isp_metering_awb_white_level_awb_read(uintptr_t base)15145 static __inline uint16_t acamera_isp_metering_awb_white_level_awb_read(uintptr_t base) {
15146     return (uint16_t)((system_sw_read_32(base + 0x1b2a0L) & 0x3ff) >> 0);
15147 }
15148 // ------------------------------------------------------------------------------ //
15149 // Register: Black Level AWB
15150 // ------------------------------------------------------------------------------ //
15151 
15152 // ------------------------------------------------------------------------------ //
15153 // Lower limit of valid data for AWB
15154 // ------------------------------------------------------------------------------ //
15155 
15156 #define ACAMERA_ISP_METERING_AWB_BLACK_LEVEL_AWB_DEFAULT (0)
15157 #define ACAMERA_ISP_METERING_AWB_BLACK_LEVEL_AWB_DATASIZE (10)
15158 #define ACAMERA_ISP_METERING_AWB_BLACK_LEVEL_AWB_OFFSET (0x241c)
15159 #define ACAMERA_ISP_METERING_AWB_BLACK_LEVEL_AWB_MASK (0x3ff)
15160 
15161 // args: data (10-bit)
acamera_isp_metering_awb_black_level_awb_write(uintptr_t base,uint16_t data)15162 static __inline void acamera_isp_metering_awb_black_level_awb_write(uintptr_t base, uint16_t data) {
15163     uint32_t curr = system_sw_read_32(base + 0x1b2a4L);
15164     system_sw_write_32(base + 0x1b2a4L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
15165 }
acamera_isp_metering_awb_black_level_awb_read(uintptr_t base)15166 static __inline uint16_t acamera_isp_metering_awb_black_level_awb_read(uintptr_t base) {
15167     return (uint16_t)((system_sw_read_32(base + 0x1b2a4L) & 0x3ff) >> 0);
15168 }
15169 // ------------------------------------------------------------------------------ //
15170 // Register: Cr Ref Max AWB
15171 // ------------------------------------------------------------------------------ //
15172 
15173 // ------------------------------------------------------------------------------ //
15174 // Maximum value of R/G for white region
15175 // ------------------------------------------------------------------------------ //
15176 
15177 #define ACAMERA_ISP_METERING_AWB_CR_REF_MAX_AWB_DEFAULT (0x1FF)
15178 #define ACAMERA_ISP_METERING_AWB_CR_REF_MAX_AWB_DATASIZE (12)
15179 #define ACAMERA_ISP_METERING_AWB_CR_REF_MAX_AWB_OFFSET (0x2420)
15180 #define ACAMERA_ISP_METERING_AWB_CR_REF_MAX_AWB_MASK (0xfff)
15181 
15182 // args: data (12-bit)
acamera_isp_metering_awb_cr_ref_max_awb_write(uintptr_t base,uint16_t data)15183 static __inline void acamera_isp_metering_awb_cr_ref_max_awb_write(uintptr_t base, uint16_t data) {
15184     uint32_t curr = system_sw_read_32(base + 0x1b2a8L);
15185     system_sw_write_32(base + 0x1b2a8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
15186 }
acamera_isp_metering_awb_cr_ref_max_awb_read(uintptr_t base)15187 static __inline uint16_t acamera_isp_metering_awb_cr_ref_max_awb_read(uintptr_t base) {
15188     return (uint16_t)((system_sw_read_32(base + 0x1b2a8L) & 0xfff) >> 0);
15189 }
15190 // ------------------------------------------------------------------------------ //
15191 // Register: Cr Ref Min AWB
15192 // ------------------------------------------------------------------------------ //
15193 
15194 // ------------------------------------------------------------------------------ //
15195 // Minimum value of R/G for white region
15196 // ------------------------------------------------------------------------------ //
15197 
15198 #define ACAMERA_ISP_METERING_AWB_CR_REF_MIN_AWB_DEFAULT (0x040)
15199 #define ACAMERA_ISP_METERING_AWB_CR_REF_MIN_AWB_DATASIZE (12)
15200 #define ACAMERA_ISP_METERING_AWB_CR_REF_MIN_AWB_OFFSET (0x2424)
15201 #define ACAMERA_ISP_METERING_AWB_CR_REF_MIN_AWB_MASK (0xfff)
15202 
15203 // args: data (12-bit)
acamera_isp_metering_awb_cr_ref_min_awb_write(uintptr_t base,uint16_t data)15204 static __inline void acamera_isp_metering_awb_cr_ref_min_awb_write(uintptr_t base, uint16_t data) {
15205     uint32_t curr = system_sw_read_32(base + 0x1b2acL);
15206     system_sw_write_32(base + 0x1b2acL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
15207 }
acamera_isp_metering_awb_cr_ref_min_awb_read(uintptr_t base)15208 static __inline uint16_t acamera_isp_metering_awb_cr_ref_min_awb_read(uintptr_t base) {
15209     return (uint16_t)((system_sw_read_32(base + 0x1b2acL) & 0xfff) >> 0);
15210 }
15211 // ------------------------------------------------------------------------------ //
15212 // Register: Cb Ref Max AWB
15213 // ------------------------------------------------------------------------------ //
15214 
15215 // ------------------------------------------------------------------------------ //
15216 // Maximum value of B/G for white region
15217 // ------------------------------------------------------------------------------ //
15218 
15219 #define ACAMERA_ISP_METERING_AWB_CB_REF_MAX_AWB_DEFAULT (0x1FF)
15220 #define ACAMERA_ISP_METERING_AWB_CB_REF_MAX_AWB_DATASIZE (12)
15221 #define ACAMERA_ISP_METERING_AWB_CB_REF_MAX_AWB_OFFSET (0x2428)
15222 #define ACAMERA_ISP_METERING_AWB_CB_REF_MAX_AWB_MASK (0xfff)
15223 
15224 // args: data (12-bit)
acamera_isp_metering_awb_cb_ref_max_awb_write(uintptr_t base,uint16_t data)15225 static __inline void acamera_isp_metering_awb_cb_ref_max_awb_write(uintptr_t base, uint16_t data) {
15226     uint32_t curr = system_sw_read_32(base + 0x1b2b0L);
15227     system_sw_write_32(base + 0x1b2b0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
15228 }
acamera_isp_metering_awb_cb_ref_max_awb_read(uintptr_t base)15229 static __inline uint16_t acamera_isp_metering_awb_cb_ref_max_awb_read(uintptr_t base) {
15230     return (uint16_t)((system_sw_read_32(base + 0x1b2b0L) & 0xfff) >> 0);
15231 }
15232 // ------------------------------------------------------------------------------ //
15233 // Register: Cb Ref Min AWB
15234 // ------------------------------------------------------------------------------ //
15235 
15236 // ------------------------------------------------------------------------------ //
15237 // Minimum value of B/G for white region
15238 // ------------------------------------------------------------------------------ //
15239 
15240 #define ACAMERA_ISP_METERING_AWB_CB_REF_MIN_AWB_DEFAULT (0x040)
15241 #define ACAMERA_ISP_METERING_AWB_CB_REF_MIN_AWB_DATASIZE (12)
15242 #define ACAMERA_ISP_METERING_AWB_CB_REF_MIN_AWB_OFFSET (0x242c)
15243 #define ACAMERA_ISP_METERING_AWB_CB_REF_MIN_AWB_MASK (0xfff)
15244 
15245 // args: data (12-bit)
acamera_isp_metering_awb_cb_ref_min_awb_write(uintptr_t base,uint16_t data)15246 static __inline void acamera_isp_metering_awb_cb_ref_min_awb_write(uintptr_t base, uint16_t data) {
15247     uint32_t curr = system_sw_read_32(base + 0x1b2b4L);
15248     system_sw_write_32(base + 0x1b2b4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
15249 }
acamera_isp_metering_awb_cb_ref_min_awb_read(uintptr_t base)15250 static __inline uint16_t acamera_isp_metering_awb_cb_ref_min_awb_read(uintptr_t base) {
15251     return (uint16_t)((system_sw_read_32(base + 0x1b2b4L) & 0xfff) >> 0);
15252 }
15253 // ------------------------------------------------------------------------------ //
15254 // Register: RG
15255 // ------------------------------------------------------------------------------ //
15256 
15257 // ------------------------------------------------------------------------------ //
15258 // AWB statistics R/G color ratio output
15259 // ------------------------------------------------------------------------------ //
15260 
15261 #define ACAMERA_ISP_METERING_AWB_RG_DEFAULT (0x0)
15262 #define ACAMERA_ISP_METERING_AWB_RG_DATASIZE (12)
15263 #define ACAMERA_ISP_METERING_AWB_RG_OFFSET (0x2430)
15264 #define ACAMERA_ISP_METERING_AWB_RG_MASK (0xfff)
15265 
15266 // args: data (12-bit)
acamera_isp_metering_awb_rg_read(uintptr_t base)15267 static __inline uint16_t acamera_isp_metering_awb_rg_read(uintptr_t base) {
15268     return (uint16_t)((system_sw_read_32(base + 0x1b2b8L) & 0xfff) >> 0);
15269 }
15270 // ------------------------------------------------------------------------------ //
15271 // Register: BG
15272 // ------------------------------------------------------------------------------ //
15273 
15274 // ------------------------------------------------------------------------------ //
15275 // AWB statistics B/G color ratio output
15276 // ------------------------------------------------------------------------------ //
15277 
15278 #define ACAMERA_ISP_METERING_AWB_BG_DEFAULT (0x0)
15279 #define ACAMERA_ISP_METERING_AWB_BG_DATASIZE (12)
15280 #define ACAMERA_ISP_METERING_AWB_BG_OFFSET (0x2434)
15281 #define ACAMERA_ISP_METERING_AWB_BG_MASK (0xfff)
15282 
15283 // args: data (12-bit)
acamera_isp_metering_awb_bg_read(uintptr_t base)15284 static __inline uint16_t acamera_isp_metering_awb_bg_read(uintptr_t base) {
15285     return (uint16_t)((system_sw_read_32(base + 0x1b2bcL) & 0xfff) >> 0);
15286 }
15287 // ------------------------------------------------------------------------------ //
15288 // Register: SUM
15289 // ------------------------------------------------------------------------------ //
15290 
15291 // ------------------------------------------------------------------------------ //
15292 // AWB output population.  Number of pixels used for AWB statistics
15293 // ------------------------------------------------------------------------------ //
15294 
15295 #define ACAMERA_ISP_METERING_AWB_SUM_DEFAULT (0x0)
15296 #define ACAMERA_ISP_METERING_AWB_SUM_DATASIZE (32)
15297 #define ACAMERA_ISP_METERING_AWB_SUM_OFFSET (0x2438)
15298 #define ACAMERA_ISP_METERING_AWB_SUM_MASK (0xffffffff)
15299 
15300 // args: data (32-bit)
acamera_isp_metering_awb_sum_read(uintptr_t base)15301 static __inline uint32_t acamera_isp_metering_awb_sum_read(uintptr_t base) {
15302     return system_sw_read_32(base + 0x1b2c0L);
15303 }
15304 // ------------------------------------------------------------------------------ //
15305 // Register: Nodes Used Horiz
15306 // ------------------------------------------------------------------------------ //
15307 
15308 // ------------------------------------------------------------------------------ //
15309 // Number of active zones horizontally for AWB stats
15310 // ------------------------------------------------------------------------------ //
15311 
15312 #define ACAMERA_ISP_METERING_AWB_NODES_USED_HORIZ_DEFAULT (15)
15313 #define ACAMERA_ISP_METERING_AWB_NODES_USED_HORIZ_DATASIZE (8)
15314 #define ACAMERA_ISP_METERING_AWB_NODES_USED_HORIZ_OFFSET (0x243c)
15315 #define ACAMERA_ISP_METERING_AWB_NODES_USED_HORIZ_MASK (0xff)
15316 
15317 // args: data (8-bit)
acamera_isp_metering_awb_nodes_used_horiz_write(uintptr_t base,uint8_t data)15318 static __inline void acamera_isp_metering_awb_nodes_used_horiz_write(uintptr_t base, uint8_t data) {
15319     uint32_t curr = system_sw_read_32(base + 0x1b2c4L);
15320     system_sw_write_32(base + 0x1b2c4L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
15321 }
acamera_isp_metering_awb_nodes_used_horiz_read(uintptr_t base)15322 static __inline uint8_t acamera_isp_metering_awb_nodes_used_horiz_read(uintptr_t base) {
15323     return (uint8_t)((system_sw_read_32(base + 0x1b2c4L) & 0xff) >> 0);
15324 }
15325 // ------------------------------------------------------------------------------ //
15326 // Register: Nodes Used Vert
15327 // ------------------------------------------------------------------------------ //
15328 
15329 // ------------------------------------------------------------------------------ //
15330 // Number of active zones vertically for AWB stats
15331 // ------------------------------------------------------------------------------ //
15332 
15333 #define ACAMERA_ISP_METERING_AWB_NODES_USED_VERT_DEFAULT (15)
15334 #define ACAMERA_ISP_METERING_AWB_NODES_USED_VERT_DATASIZE (8)
15335 #define ACAMERA_ISP_METERING_AWB_NODES_USED_VERT_OFFSET (0x243c)
15336 #define ACAMERA_ISP_METERING_AWB_NODES_USED_VERT_MASK (0xff00)
15337 
15338 // args: data (8-bit)
acamera_isp_metering_awb_nodes_used_vert_write(uintptr_t base,uint8_t data)15339 static __inline void acamera_isp_metering_awb_nodes_used_vert_write(uintptr_t base, uint8_t data) {
15340     uint32_t curr = system_sw_read_32(base + 0x1b2c4L);
15341     system_sw_write_32(base + 0x1b2c4L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
15342 }
acamera_isp_metering_awb_nodes_used_vert_read(uintptr_t base)15343 static __inline uint8_t acamera_isp_metering_awb_nodes_used_vert_read(uintptr_t base) {
15344     return (uint8_t)((system_sw_read_32(base + 0x1b2c4L) & 0xff00) >> 8);
15345 }
15346 // ------------------------------------------------------------------------------ //
15347 // Register: Cr Ref High AWB
15348 // ------------------------------------------------------------------------------ //
15349 
15350 // ------------------------------------------------------------------------------ //
15351 // Maximum value of R/G for white region
15352 // ------------------------------------------------------------------------------ //
15353 
15354 #define ACAMERA_ISP_METERING_AWB_CR_REF_HIGH_AWB_DEFAULT (0xFFF)
15355 #define ACAMERA_ISP_METERING_AWB_CR_REF_HIGH_AWB_DATASIZE (12)
15356 #define ACAMERA_ISP_METERING_AWB_CR_REF_HIGH_AWB_OFFSET (0x2440)
15357 #define ACAMERA_ISP_METERING_AWB_CR_REF_HIGH_AWB_MASK (0xfff)
15358 
15359 // args: data (12-bit)
acamera_isp_metering_awb_cr_ref_high_awb_write(uintptr_t base,uint16_t data)15360 static __inline void acamera_isp_metering_awb_cr_ref_high_awb_write(uintptr_t base, uint16_t data) {
15361     uint32_t curr = system_sw_read_32(base + 0x1b2c8L);
15362     system_sw_write_32(base + 0x1b2c8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
15363 }
acamera_isp_metering_awb_cr_ref_high_awb_read(uintptr_t base)15364 static __inline uint16_t acamera_isp_metering_awb_cr_ref_high_awb_read(uintptr_t base) {
15365     return (uint16_t)((system_sw_read_32(base + 0x1b2c8L) & 0xfff) >> 0);
15366 }
15367 // ------------------------------------------------------------------------------ //
15368 // Register: Cr Ref Low AWB
15369 // ------------------------------------------------------------------------------ //
15370 
15371 // ------------------------------------------------------------------------------ //
15372 // Minimum value of R/G for white region
15373 // ------------------------------------------------------------------------------ //
15374 
15375 #define ACAMERA_ISP_METERING_AWB_CR_REF_LOW_AWB_DEFAULT (0x000)
15376 #define ACAMERA_ISP_METERING_AWB_CR_REF_LOW_AWB_DATASIZE (12)
15377 #define ACAMERA_ISP_METERING_AWB_CR_REF_LOW_AWB_OFFSET (0x2444)
15378 #define ACAMERA_ISP_METERING_AWB_CR_REF_LOW_AWB_MASK (0xfff)
15379 
15380 // args: data (12-bit)
acamera_isp_metering_awb_cr_ref_low_awb_write(uintptr_t base,uint16_t data)15381 static __inline void acamera_isp_metering_awb_cr_ref_low_awb_write(uintptr_t base, uint16_t data) {
15382     uint32_t curr = system_sw_read_32(base + 0x1b2ccL);
15383     system_sw_write_32(base + 0x1b2ccL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
15384 }
acamera_isp_metering_awb_cr_ref_low_awb_read(uintptr_t base)15385 static __inline uint16_t acamera_isp_metering_awb_cr_ref_low_awb_read(uintptr_t base) {
15386     return (uint16_t)((system_sw_read_32(base + 0x1b2ccL) & 0xfff) >> 0);
15387 }
15388 // ------------------------------------------------------------------------------ //
15389 // Register: Cb Ref High AWB
15390 // ------------------------------------------------------------------------------ //
15391 
15392 // ------------------------------------------------------------------------------ //
15393 // Maximum value of B/G for white region
15394 // ------------------------------------------------------------------------------ //
15395 
15396 #define ACAMERA_ISP_METERING_AWB_CB_REF_HIGH_AWB_DEFAULT (0xFFF)
15397 #define ACAMERA_ISP_METERING_AWB_CB_REF_HIGH_AWB_DATASIZE (12)
15398 #define ACAMERA_ISP_METERING_AWB_CB_REF_HIGH_AWB_OFFSET (0x2448)
15399 #define ACAMERA_ISP_METERING_AWB_CB_REF_HIGH_AWB_MASK (0xfff)
15400 
15401 // args: data (12-bit)
acamera_isp_metering_awb_cb_ref_high_awb_write(uintptr_t base,uint16_t data)15402 static __inline void acamera_isp_metering_awb_cb_ref_high_awb_write(uintptr_t base, uint16_t data) {
15403     uint32_t curr = system_sw_read_32(base + 0x1b2d0L);
15404     system_sw_write_32(base + 0x1b2d0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
15405 }
acamera_isp_metering_awb_cb_ref_high_awb_read(uintptr_t base)15406 static __inline uint16_t acamera_isp_metering_awb_cb_ref_high_awb_read(uintptr_t base) {
15407     return (uint16_t)((system_sw_read_32(base + 0x1b2d0L) & 0xfff) >> 0);
15408 }
15409 // ------------------------------------------------------------------------------ //
15410 // Register: Cb Ref Low AWB
15411 // ------------------------------------------------------------------------------ //
15412 
15413 // ------------------------------------------------------------------------------ //
15414 // Minimum value of B/G for white region
15415 // ------------------------------------------------------------------------------ //
15416 
15417 #define ACAMERA_ISP_METERING_AWB_CB_REF_LOW_AWB_DEFAULT (0x000)
15418 #define ACAMERA_ISP_METERING_AWB_CB_REF_LOW_AWB_DATASIZE (12)
15419 #define ACAMERA_ISP_METERING_AWB_CB_REF_LOW_AWB_OFFSET (0x244c)
15420 #define ACAMERA_ISP_METERING_AWB_CB_REF_LOW_AWB_MASK (0xfff)
15421 
15422 // args: data (12-bit)
acamera_isp_metering_awb_cb_ref_low_awb_write(uintptr_t base,uint16_t data)15423 static __inline void acamera_isp_metering_awb_cb_ref_low_awb_write(uintptr_t base, uint16_t data) {
15424     uint32_t curr = system_sw_read_32(base + 0x1b2d4L);
15425     system_sw_write_32(base + 0x1b2d4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
15426 }
acamera_isp_metering_awb_cb_ref_low_awb_read(uintptr_t base)15427 static __inline uint16_t acamera_isp_metering_awb_cb_ref_low_awb_read(uintptr_t base) {
15428     return (uint16_t)((system_sw_read_32(base + 0x1b2d4L) & 0xfff) >> 0);
15429 }
15430 // ------------------------------------------------------------------------------ //
15431 // Register: Zones Weight
15432 // ------------------------------------------------------------------------------ //
15433 
15434 // ------------------------------------------------------------------------------ //
15435 // Sets zone weighting for auto white balance. Index is (row,col) where (0,0) is top-left zone
15436 // ------------------------------------------------------------------------------ //
15437 
15438 #define ACAMERA_ISP_METERING_AWB_ZONES_WEIGHT_DEFAULT (0xF)
15439 #define ACAMERA_ISP_METERING_AWB_ZONES_WEIGHT_DATASIZE (4)
15440 #define ACAMERA_ISP_METERING_AWB_ZONES_WEIGHT_OFFSET (0x2454)
15441 #define ACAMERA_ISP_METERING_AWB_ZONES_WEIGHT_MASK (0xf)
15442 
15443 // index (0-1088), args: data (4-bit)
acamera_isp_metering_awb_zones_weight_write(uintptr_t base,uint32_t index,uint8_t data)15444 static __inline void acamera_isp_metering_awb_zones_weight_write( uintptr_t base, uint32_t index,uint8_t data) {
15445     uintptr_t addr = base + 0x1b2dcL + (index & 0xFFFFFFFC);
15446     uint8_t offset = (index & 3) << 3;
15447     uint32_t curr = system_sw_read_32(addr);
15448     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
15449 }
acamera_isp_metering_awb_zones_weight_read(uintptr_t base,uint32_t index)15450 static __inline uint8_t acamera_isp_metering_awb_zones_weight_read( uintptr_t base, uint32_t index) {
15451     uintptr_t addr = base + 0x1b2dcL + (index & 0xFFFFFFFC);
15452     uint8_t offset = (index & 3) << 3;
15453     return (uint8_t)(system_sw_read_32(addr) >> offset);
15454 }
15455 // ------------------------------------------------------------------------------ //
15456 // Group: metering af
15457 // ------------------------------------------------------------------------------ //
15458 
15459 // ------------------------------------------------------------------------------ //
15460 // Register: Nodes Used Horiz
15461 // ------------------------------------------------------------------------------ //
15462 
15463 // ------------------------------------------------------------------------------ //
15464 // Number of active zones horizontally for AF stats
15465 // ------------------------------------------------------------------------------ //
15466 
15467 #define ACAMERA_ISP_METERING_AF_NODES_USED_HORIZ_DEFAULT (15)
15468 #define ACAMERA_ISP_METERING_AF_NODES_USED_HORIZ_DATASIZE (8)
15469 #define ACAMERA_ISP_METERING_AF_NODES_USED_HORIZ_OFFSET (0x2898)
15470 #define ACAMERA_ISP_METERING_AF_NODES_USED_HORIZ_MASK (0xff)
15471 
15472 // args: data (8-bit)
acamera_isp_metering_af_nodes_used_horiz_write(uintptr_t base,uint8_t data)15473 static __inline void acamera_isp_metering_af_nodes_used_horiz_write(uintptr_t base, uint8_t data) {
15474     uint32_t curr = system_sw_read_32(base + 0x1b720L);
15475     system_sw_write_32(base + 0x1b720L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
15476 }
acamera_isp_metering_af_nodes_used_horiz_read(uintptr_t base)15477 static __inline uint8_t acamera_isp_metering_af_nodes_used_horiz_read(uintptr_t base) {
15478     return (uint8_t)((system_sw_read_32(base + 0x1b720L) & 0xff) >> 0);
15479 }
15480 // ------------------------------------------------------------------------------ //
15481 // Register: Nodes Used Vert
15482 // ------------------------------------------------------------------------------ //
15483 
15484 // ------------------------------------------------------------------------------ //
15485 // Number of active zones vertically for AF stats
15486 // ------------------------------------------------------------------------------ //
15487 
15488 #define ACAMERA_ISP_METERING_AF_NODES_USED_VERT_DEFAULT (15)
15489 #define ACAMERA_ISP_METERING_AF_NODES_USED_VERT_DATASIZE (8)
15490 #define ACAMERA_ISP_METERING_AF_NODES_USED_VERT_OFFSET (0x2898)
15491 #define ACAMERA_ISP_METERING_AF_NODES_USED_VERT_MASK (0xff00)
15492 
15493 // args: data (8-bit)
acamera_isp_metering_af_nodes_used_vert_write(uintptr_t base,uint8_t data)15494 static __inline void acamera_isp_metering_af_nodes_used_vert_write(uintptr_t base, uint8_t data) {
15495     uint32_t curr = system_sw_read_32(base + 0x1b720L);
15496     system_sw_write_32(base + 0x1b720L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
15497 }
acamera_isp_metering_af_nodes_used_vert_read(uintptr_t base)15498 static __inline uint8_t acamera_isp_metering_af_nodes_used_vert_read(uintptr_t base) {
15499     return (uint8_t)((system_sw_read_32(base + 0x1b720L) & 0xff00) >> 8);
15500 }
15501 // ------------------------------------------------------------------------------ //
15502 // Register: metrics
15503 // ------------------------------------------------------------------------------ //
15504 
15505 // ------------------------------------------------------------------------------ //
15506 // The integrated and normalized measure of contrast for AF
15507 // ------------------------------------------------------------------------------ //
15508 
15509 #define ACAMERA_ISP_METERING_AF_METRICS_DEFAULT (0x0)
15510 #define ACAMERA_ISP_METERING_AF_METRICS_DATASIZE (32)
15511 #define ACAMERA_ISP_METERING_AF_METRICS_OFFSET (0x289c)
15512 #define ACAMERA_ISP_METERING_AF_METRICS_MASK (0xffffffff)
15513 
15514 // args: data (32-bit)
acamera_isp_metering_af_metrics_read(uintptr_t base)15515 static __inline uint32_t acamera_isp_metering_af_metrics_read(uintptr_t base) {
15516     return system_sw_read_32(base + 0x1b724L);
15517 }
15518 // ------------------------------------------------------------------------------ //
15519 // Register: Active Width
15520 // ------------------------------------------------------------------------------ //
15521 
15522 // ------------------------------------------------------------------------------ //
15523 // Active video width for AF module
15524 // ------------------------------------------------------------------------------ //
15525 
15526 #define ACAMERA_ISP_METERING_AF_ACTIVE_WIDTH_DEFAULT (0x780)
15527 #define ACAMERA_ISP_METERING_AF_ACTIVE_WIDTH_DATASIZE (16)
15528 #define ACAMERA_ISP_METERING_AF_ACTIVE_WIDTH_OFFSET (0x28a0)
15529 #define ACAMERA_ISP_METERING_AF_ACTIVE_WIDTH_MASK (0xffff)
15530 
15531 // args: data (16-bit)
acamera_isp_metering_af_active_width_write(uintptr_t base,uint16_t data)15532 static __inline void acamera_isp_metering_af_active_width_write(uintptr_t base, uint16_t data) {
15533     uint32_t curr = system_sw_read_32(base + 0x1b728L);
15534     system_sw_write_32(base + 0x1b728L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
15535 }
acamera_isp_metering_af_active_width_read(uintptr_t base)15536 static __inline uint16_t acamera_isp_metering_af_active_width_read(uintptr_t base) {
15537     return (uint16_t)((system_sw_read_32(base + 0x1b728L) & 0xffff) >> 0);
15538 }
15539 // ------------------------------------------------------------------------------ //
15540 // Register: Active Height
15541 // ------------------------------------------------------------------------------ //
15542 
15543 // ------------------------------------------------------------------------------ //
15544 // Active video height for AF module
15545 // ------------------------------------------------------------------------------ //
15546 
15547 #define ACAMERA_ISP_METERING_AF_ACTIVE_HEIGHT_DEFAULT (0x438)
15548 #define ACAMERA_ISP_METERING_AF_ACTIVE_HEIGHT_DATASIZE (16)
15549 #define ACAMERA_ISP_METERING_AF_ACTIVE_HEIGHT_OFFSET (0x28a0)
15550 #define ACAMERA_ISP_METERING_AF_ACTIVE_HEIGHT_MASK (0xffff0000)
15551 
15552 // args: data (16-bit)
acamera_isp_metering_af_active_height_write(uintptr_t base,uint16_t data)15553 static __inline void acamera_isp_metering_af_active_height_write(uintptr_t base, uint16_t data) {
15554     uint32_t curr = system_sw_read_32(base + 0x1b728L);
15555     system_sw_write_32(base + 0x1b728L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
15556 }
acamera_isp_metering_af_active_height_read(uintptr_t base)15557 static __inline uint16_t acamera_isp_metering_af_active_height_read(uintptr_t base) {
15558     return (uint16_t)((system_sw_read_32(base + 0x1b728L) & 0xffff0000) >> 16);
15559 }
15560 // ------------------------------------------------------------------------------ //
15561 // Register: kernel select
15562 // ------------------------------------------------------------------------------ //
15563 
15564 // ------------------------------------------------------------------------------ //
15565 //
15566 //          Size of Narrow AF Kernel
15567 //          0 =   3x3
15568 //          1 =   7x3
15569 //          2 =  11x3
15570 //          3 =  15x3
15571 //
15572 // ------------------------------------------------------------------------------ //
15573 
15574 #define ACAMERA_ISP_METERING_AF_KERNEL_SELECT_DEFAULT (0)
15575 #define ACAMERA_ISP_METERING_AF_KERNEL_SELECT_DATASIZE (2)
15576 #define ACAMERA_ISP_METERING_AF_KERNEL_SELECT_OFFSET (0x28a4)
15577 #define ACAMERA_ISP_METERING_AF_KERNEL_SELECT_MASK (0x3)
15578 
15579 // args: data (2-bit)
acamera_isp_metering_af_kernel_select_write(uintptr_t base,uint8_t data)15580 static __inline void acamera_isp_metering_af_kernel_select_write(uintptr_t base, uint8_t data) {
15581     uint32_t curr = system_sw_read_32(base + 0x1b72cL);
15582     system_sw_write_32(base + 0x1b72cL, (((uint32_t) (data & 0x3)) << 0) | (curr & 0xfffffffc));
15583 }
acamera_isp_metering_af_kernel_select_read(uintptr_t base)15584 static __inline uint8_t acamera_isp_metering_af_kernel_select_read(uintptr_t base) {
15585     return (uint8_t)((system_sw_read_32(base + 0x1b72cL) & 0x3) >> 0);
15586 }
15587 // ------------------------------------------------------------------------------ //
15588 // Group: metering hist aexp
15589 // ------------------------------------------------------------------------------ //
15590 
15591 // ------------------------------------------------------------------------------ //
15592 // Register: skip x
15593 // ------------------------------------------------------------------------------ //
15594 
15595 // ------------------------------------------------------------------------------ //
15596 // Histogram decimation in horizontal direction: 0=every 2nd pixel; 1=every 3rd pixel; 2=every 4th pixel; 3=every 5th pixel; 4=every 8th pixel ; 5+=every 9th pixel
15597 // ------------------------------------------------------------------------------ //
15598 
15599 #define ACAMERA_ISP_METERING_HIST_AEXP_SKIP_X_DEFAULT (0)
15600 #define ACAMERA_ISP_METERING_HIST_AEXP_SKIP_X_DATASIZE (3)
15601 #define ACAMERA_ISP_METERING_HIST_AEXP_SKIP_X_OFFSET (0x28a8)
15602 #define ACAMERA_ISP_METERING_HIST_AEXP_SKIP_X_MASK (0x7)
15603 
15604 // args: data (3-bit)
acamera_isp_metering_hist_aexp_skip_x_write(uintptr_t base,uint8_t data)15605 static __inline void acamera_isp_metering_hist_aexp_skip_x_write(uintptr_t base, uint8_t data) {
15606     uint32_t curr = system_sw_read_32(base + 0x1b730L);
15607     system_sw_write_32(base + 0x1b730L, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
15608 }
acamera_isp_metering_hist_aexp_skip_x_read(uintptr_t base)15609 static __inline uint8_t acamera_isp_metering_hist_aexp_skip_x_read(uintptr_t base) {
15610     return (uint8_t)((system_sw_read_32(base + 0x1b730L) & 0x7) >> 0);
15611 }
15612 // ------------------------------------------------------------------------------ //
15613 // Register: skip y
15614 // ------------------------------------------------------------------------------ //
15615 
15616 // ------------------------------------------------------------------------------ //
15617 // Histogram decimation in vertical direction: 0=every pixel; 1=every 2nd pixel; 2=every 3rd pixel; 3=every 4th pixel; 4=every 5th pixel; 5=every 8th pixel ; 6+=every 9th pixel
15618 // ------------------------------------------------------------------------------ //
15619 
15620 #define ACAMERA_ISP_METERING_HIST_AEXP_SKIP_Y_DEFAULT (0)
15621 #define ACAMERA_ISP_METERING_HIST_AEXP_SKIP_Y_DATASIZE (3)
15622 #define ACAMERA_ISP_METERING_HIST_AEXP_SKIP_Y_OFFSET (0x28a8)
15623 #define ACAMERA_ISP_METERING_HIST_AEXP_SKIP_Y_MASK (0x70)
15624 
15625 // args: data (3-bit)
acamera_isp_metering_hist_aexp_skip_y_write(uintptr_t base,uint8_t data)15626 static __inline void acamera_isp_metering_hist_aexp_skip_y_write(uintptr_t base, uint8_t data) {
15627     uint32_t curr = system_sw_read_32(base + 0x1b730L);
15628     system_sw_write_32(base + 0x1b730L, (((uint32_t) (data & 0x7)) << 4) | (curr & 0xffffff8f));
15629 }
acamera_isp_metering_hist_aexp_skip_y_read(uintptr_t base)15630 static __inline uint8_t acamera_isp_metering_hist_aexp_skip_y_read(uintptr_t base) {
15631     return (uint8_t)((system_sw_read_32(base + 0x1b730L) & 0x70) >> 4);
15632 }
15633 // ------------------------------------------------------------------------------ //
15634 // Register: offset x
15635 // ------------------------------------------------------------------------------ //
15636 
15637 // ------------------------------------------------------------------------------ //
15638 // 0= start from the first column;  1=start from second column
15639 // ------------------------------------------------------------------------------ //
15640 
15641 #define ACAMERA_ISP_METERING_HIST_AEXP_OFFSET_X_DEFAULT (0)
15642 #define ACAMERA_ISP_METERING_HIST_AEXP_OFFSET_X_DATASIZE (1)
15643 #define ACAMERA_ISP_METERING_HIST_AEXP_OFFSET_X_OFFSET (0x28a8)
15644 #define ACAMERA_ISP_METERING_HIST_AEXP_OFFSET_X_MASK (0x8)
15645 
15646 // args: data (1-bit)
acamera_isp_metering_hist_aexp_offset_x_write(uintptr_t base,uint8_t data)15647 static __inline void acamera_isp_metering_hist_aexp_offset_x_write(uintptr_t base, uint8_t data) {
15648     uint32_t curr = system_sw_read_32(base + 0x1b730L);
15649     system_sw_write_32(base + 0x1b730L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
15650 }
acamera_isp_metering_hist_aexp_offset_x_read(uintptr_t base)15651 static __inline uint8_t acamera_isp_metering_hist_aexp_offset_x_read(uintptr_t base) {
15652     return (uint8_t)((system_sw_read_32(base + 0x1b730L) & 0x8) >> 3);
15653 }
15654 // ------------------------------------------------------------------------------ //
15655 // Register: offset y
15656 // ------------------------------------------------------------------------------ //
15657 
15658 // ------------------------------------------------------------------------------ //
15659 // 0= start from the first row; 1= start from second row
15660 // ------------------------------------------------------------------------------ //
15661 
15662 #define ACAMERA_ISP_METERING_HIST_AEXP_OFFSET_Y_DEFAULT (0)
15663 #define ACAMERA_ISP_METERING_HIST_AEXP_OFFSET_Y_DATASIZE (1)
15664 #define ACAMERA_ISP_METERING_HIST_AEXP_OFFSET_Y_OFFSET (0x28a8)
15665 #define ACAMERA_ISP_METERING_HIST_AEXP_OFFSET_Y_MASK (0x80)
15666 
15667 // args: data (1-bit)
acamera_isp_metering_hist_aexp_offset_y_write(uintptr_t base,uint8_t data)15668 static __inline void acamera_isp_metering_hist_aexp_offset_y_write(uintptr_t base, uint8_t data) {
15669     uint32_t curr = system_sw_read_32(base + 0x1b730L);
15670     system_sw_write_32(base + 0x1b730L, (((uint32_t) (data & 0x1)) << 7) | (curr & 0xffffff7f));
15671 }
acamera_isp_metering_hist_aexp_offset_y_read(uintptr_t base)15672 static __inline uint8_t acamera_isp_metering_hist_aexp_offset_y_read(uintptr_t base) {
15673     return (uint8_t)((system_sw_read_32(base + 0x1b730L) & 0x80) >> 7);
15674 }
15675 // ------------------------------------------------------------------------------ //
15676 // Register: scale bottom
15677 // ------------------------------------------------------------------------------ //
15678 
15679 // ------------------------------------------------------------------------------ //
15680 // scale of bottom half of the range: 0=1x ,1=2x, 2=4x, 4=8x, 4=16x
15681 // ------------------------------------------------------------------------------ //
15682 
15683 #define ACAMERA_ISP_METERING_HIST_AEXP_SCALE_BOTTOM_DEFAULT (0)
15684 #define ACAMERA_ISP_METERING_HIST_AEXP_SCALE_BOTTOM_DATASIZE (4)
15685 #define ACAMERA_ISP_METERING_HIST_AEXP_SCALE_BOTTOM_OFFSET (0x28ac)
15686 #define ACAMERA_ISP_METERING_HIST_AEXP_SCALE_BOTTOM_MASK (0xf)
15687 
15688 // args: data (4-bit)
acamera_isp_metering_hist_aexp_scale_bottom_write(uintptr_t base,uint8_t data)15689 static __inline void acamera_isp_metering_hist_aexp_scale_bottom_write(uintptr_t base, uint8_t data) {
15690     uint32_t curr = system_sw_read_32(base + 0x1b734L);
15691     system_sw_write_32(base + 0x1b734L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
15692 }
acamera_isp_metering_hist_aexp_scale_bottom_read(uintptr_t base)15693 static __inline uint8_t acamera_isp_metering_hist_aexp_scale_bottom_read(uintptr_t base) {
15694     return (uint8_t)((system_sw_read_32(base + 0x1b734L) & 0xf) >> 0);
15695 }
15696 // ------------------------------------------------------------------------------ //
15697 // Register: scale top
15698 // ------------------------------------------------------------------------------ //
15699 
15700 // ------------------------------------------------------------------------------ //
15701 // scale of top half of the range: 0=1x ,1=2x, 2=4x, 4=8x, 4=16x
15702 // ------------------------------------------------------------------------------ //
15703 
15704 #define ACAMERA_ISP_METERING_HIST_AEXP_SCALE_TOP_DEFAULT (0)
15705 #define ACAMERA_ISP_METERING_HIST_AEXP_SCALE_TOP_DATASIZE (4)
15706 #define ACAMERA_ISP_METERING_HIST_AEXP_SCALE_TOP_OFFSET (0x28ac)
15707 #define ACAMERA_ISP_METERING_HIST_AEXP_SCALE_TOP_MASK (0xf0)
15708 
15709 // args: data (4-bit)
acamera_isp_metering_hist_aexp_scale_top_write(uintptr_t base,uint8_t data)15710 static __inline void acamera_isp_metering_hist_aexp_scale_top_write(uintptr_t base, uint8_t data) {
15711     uint32_t curr = system_sw_read_32(base + 0x1b734L);
15712     system_sw_write_32(base + 0x1b734L, (((uint32_t) (data & 0xf)) << 4) | (curr & 0xffffff0f));
15713 }
acamera_isp_metering_hist_aexp_scale_top_read(uintptr_t base)15714 static __inline uint8_t acamera_isp_metering_hist_aexp_scale_top_read(uintptr_t base) {
15715     return (uint8_t)((system_sw_read_32(base + 0x1b734L) & 0xf0) >> 4);
15716 }
15717 // ------------------------------------------------------------------------------ //
15718 // Register: Total Pixels
15719 // ------------------------------------------------------------------------------ //
15720 
15721 // ------------------------------------------------------------------------------ //
15722 // Total number of pixels processed (skip x and skip y are taken into account)
15723 // ------------------------------------------------------------------------------ //
15724 
15725 #define ACAMERA_ISP_METERING_HIST_AEXP_TOTAL_PIXELS_DEFAULT (0)
15726 #define ACAMERA_ISP_METERING_HIST_AEXP_TOTAL_PIXELS_DATASIZE (32)
15727 #define ACAMERA_ISP_METERING_HIST_AEXP_TOTAL_PIXELS_OFFSET (0x28b0)
15728 #define ACAMERA_ISP_METERING_HIST_AEXP_TOTAL_PIXELS_MASK (0xffffffff)
15729 
15730 // args: data (32-bit)
acamera_isp_metering_hist_aexp_total_pixels_read(uintptr_t base)15731 static __inline uint32_t acamera_isp_metering_hist_aexp_total_pixels_read(uintptr_t base) {
15732     return system_sw_read_32(base + 0x1b738L);
15733 }
15734 // ------------------------------------------------------------------------------ //
15735 // Register: Counted Pixels
15736 // ------------------------------------------------------------------------------ //
15737 
15738 // ------------------------------------------------------------------------------ //
15739 // Number of pixels accumulated (with nonzero weight)
15740 // ------------------------------------------------------------------------------ //
15741 
15742 #define ACAMERA_ISP_METERING_HIST_AEXP_COUNTED_PIXELS_DEFAULT (0)
15743 #define ACAMERA_ISP_METERING_HIST_AEXP_COUNTED_PIXELS_DATASIZE (32)
15744 #define ACAMERA_ISP_METERING_HIST_AEXP_COUNTED_PIXELS_OFFSET (0x28b4)
15745 #define ACAMERA_ISP_METERING_HIST_AEXP_COUNTED_PIXELS_MASK (0xffffffff)
15746 
15747 // args: data (32-bit)
acamera_isp_metering_hist_aexp_counted_pixels_read(uintptr_t base)15748 static __inline uint32_t acamera_isp_metering_hist_aexp_counted_pixels_read(uintptr_t base) {
15749     return system_sw_read_32(base + 0x1b73cL);
15750 }
15751 // ------------------------------------------------------------------------------ //
15752 // Register: Plane mode
15753 // ------------------------------------------------------------------------------ //
15754 
15755 // ------------------------------------------------------------------------------ //
15756 // Plane separation mode
15757 // ------------------------------------------------------------------------------ //
15758 
15759 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_DEFAULT (0)
15760 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_DATASIZE (3)
15761 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_OFFSET (0x28b8)
15762 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_MASK (0x7)
15763 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_COLLECT_ALL_THE_PLANES_IN_ONE_HISTOGRAM (0)
15764 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_COLLECT_4_BAYER_PLANES_INTO_4_SEPARATE_BANKS (1)
15765 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_RESERVED_2 (2)
15766 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_RESERVED_3 (3)
15767 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_COLLECT_ODD__X_ODD__Y_PLANE_TO_BANK_0_REST_TO_BANK_1 (4)
15768 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_COLLECT_EVEN_X_ODD__Y_PLANE_TO_BANK_0_REST_TO_BANK_1 (5)
15769 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_COLLECT_ODD__X_EVEN_Y_PLANE_TO_BANK_0_REST_TO_BANK_1 (6)
15770 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_MODE_COLLECT_EVEN_X_EVEN_Y_PLANE_TO_BANK_0_REST_TO_BANK_1 (7)
15771 
15772 // args: data (3-bit)
acamera_isp_metering_hist_aexp_plane_mode_write(uintptr_t base,uint8_t data)15773 static __inline void acamera_isp_metering_hist_aexp_plane_mode_write(uintptr_t base, uint8_t data) {
15774     uint32_t curr = system_sw_read_32(base + 0x1b740L);
15775     system_sw_write_32(base + 0x1b740L, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
15776 }
acamera_isp_metering_hist_aexp_plane_mode_read(uintptr_t base)15777 static __inline uint8_t acamera_isp_metering_hist_aexp_plane_mode_read(uintptr_t base) {
15778     return (uint8_t)((system_sw_read_32(base + 0x1b740L) & 0x7) >> 0);
15779 }
15780 // ------------------------------------------------------------------------------ //
15781 // Register: Plane Total 0
15782 // ------------------------------------------------------------------------------ //
15783 
15784 // ------------------------------------------------------------------------------ //
15785 // Total pixels processed for plane 0
15786 // ------------------------------------------------------------------------------ //
15787 
15788 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_0_DEFAULT (0x0)
15789 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_0_DATASIZE (32)
15790 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_0_OFFSET (0x28bc)
15791 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_0_MASK (0xffffffff)
15792 
15793 // args: data (32-bit)
acamera_isp_metering_hist_aexp_plane_total_0_read(uintptr_t base)15794 static __inline uint32_t acamera_isp_metering_hist_aexp_plane_total_0_read(uintptr_t base) {
15795     return system_sw_read_32(base + 0x1b744L);
15796 }
15797 // ------------------------------------------------------------------------------ //
15798 // Register: Plane Total 1
15799 // ------------------------------------------------------------------------------ //
15800 
15801 // ------------------------------------------------------------------------------ //
15802 // Total pixels processed for plane 1
15803 // ------------------------------------------------------------------------------ //
15804 
15805 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_1_DEFAULT (0x0)
15806 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_1_DATASIZE (32)
15807 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_1_OFFSET (0x28c0)
15808 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_1_MASK (0xffffffff)
15809 
15810 // args: data (32-bit)
acamera_isp_metering_hist_aexp_plane_total_1_read(uintptr_t base)15811 static __inline uint32_t acamera_isp_metering_hist_aexp_plane_total_1_read(uintptr_t base) {
15812     return system_sw_read_32(base + 0x1b748L);
15813 }
15814 // ------------------------------------------------------------------------------ //
15815 // Register: Plane Total 2
15816 // ------------------------------------------------------------------------------ //
15817 
15818 // ------------------------------------------------------------------------------ //
15819 // Total pixels processed for plane 2
15820 // ------------------------------------------------------------------------------ //
15821 
15822 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_2_DEFAULT (0x0)
15823 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_2_DATASIZE (32)
15824 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_2_OFFSET (0x28c4)
15825 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_2_MASK (0xffffffff)
15826 
15827 // args: data (32-bit)
acamera_isp_metering_hist_aexp_plane_total_2_read(uintptr_t base)15828 static __inline uint32_t acamera_isp_metering_hist_aexp_plane_total_2_read(uintptr_t base) {
15829     return system_sw_read_32(base + 0x1b74cL);
15830 }
15831 // ------------------------------------------------------------------------------ //
15832 // Register: Plane Total 3
15833 // ------------------------------------------------------------------------------ //
15834 
15835 // ------------------------------------------------------------------------------ //
15836 // Total pixels processed for plane 3
15837 // ------------------------------------------------------------------------------ //
15838 
15839 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_3_DEFAULT (0x0)
15840 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_3_DATASIZE (32)
15841 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_3_OFFSET (0x28c8)
15842 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_TOTAL_3_MASK (0xffffffff)
15843 
15844 // args: data (32-bit)
acamera_isp_metering_hist_aexp_plane_total_3_read(uintptr_t base)15845 static __inline uint32_t acamera_isp_metering_hist_aexp_plane_total_3_read(uintptr_t base) {
15846     return system_sw_read_32(base + 0x1b750L);
15847 }
15848 // ------------------------------------------------------------------------------ //
15849 // Register: Plane Counted 0
15850 // ------------------------------------------------------------------------------ //
15851 
15852 // ------------------------------------------------------------------------------ //
15853 // Total pixels accumulated for plane 0
15854 // ------------------------------------------------------------------------------ //
15855 
15856 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_0_DEFAULT (0x0)
15857 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_0_DATASIZE (32)
15858 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_0_OFFSET (0x28cc)
15859 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_0_MASK (0xffffffff)
15860 
15861 // args: data (32-bit)
acamera_isp_metering_hist_aexp_plane_counted_0_read(uintptr_t base)15862 static __inline uint32_t acamera_isp_metering_hist_aexp_plane_counted_0_read(uintptr_t base) {
15863     return system_sw_read_32(base + 0x1b754L);
15864 }
15865 // ------------------------------------------------------------------------------ //
15866 // Register: Plane Counted 1
15867 // ------------------------------------------------------------------------------ //
15868 
15869 // ------------------------------------------------------------------------------ //
15870 // Total pixels accumulated for plane 1
15871 // ------------------------------------------------------------------------------ //
15872 
15873 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_1_DEFAULT (0x0)
15874 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_1_DATASIZE (32)
15875 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_1_OFFSET (0x28d0)
15876 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_1_MASK (0xffffffff)
15877 
15878 // args: data (32-bit)
acamera_isp_metering_hist_aexp_plane_counted_1_read(uintptr_t base)15879 static __inline uint32_t acamera_isp_metering_hist_aexp_plane_counted_1_read(uintptr_t base) {
15880     return system_sw_read_32(base + 0x1b758L);
15881 }
15882 // ------------------------------------------------------------------------------ //
15883 // Register: Plane Counted 2
15884 // ------------------------------------------------------------------------------ //
15885 
15886 // ------------------------------------------------------------------------------ //
15887 // Total pixels accumulated for plane 2
15888 // ------------------------------------------------------------------------------ //
15889 
15890 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_2_DEFAULT (0x0)
15891 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_2_DATASIZE (32)
15892 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_2_OFFSET (0x28d4)
15893 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_2_MASK (0xffffffff)
15894 
15895 // args: data (32-bit)
acamera_isp_metering_hist_aexp_plane_counted_2_read(uintptr_t base)15896 static __inline uint32_t acamera_isp_metering_hist_aexp_plane_counted_2_read(uintptr_t base) {
15897     return system_sw_read_32(base + 0x1b75cL);
15898 }
15899 // ------------------------------------------------------------------------------ //
15900 // Register: Plane Counted 3
15901 // ------------------------------------------------------------------------------ //
15902 
15903 // ------------------------------------------------------------------------------ //
15904 // Total pixels accumulated for plane 3
15905 // ------------------------------------------------------------------------------ //
15906 
15907 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_3_DEFAULT (0x0)
15908 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_3_DATASIZE (32)
15909 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_3_OFFSET (0x28d8)
15910 #define ACAMERA_ISP_METERING_HIST_AEXP_PLANE_COUNTED_3_MASK (0xffffffff)
15911 
15912 // args: data (32-bit)
acamera_isp_metering_hist_aexp_plane_counted_3_read(uintptr_t base)15913 static __inline uint32_t acamera_isp_metering_hist_aexp_plane_counted_3_read(uintptr_t base) {
15914     return system_sw_read_32(base + 0x1b760L);
15915 }
15916 // ------------------------------------------------------------------------------ //
15917 // Register: Nodes Used Horiz
15918 // ------------------------------------------------------------------------------ //
15919 
15920 // ------------------------------------------------------------------------------ //
15921 // Number of active zones horizontally for Histogram
15922 // ------------------------------------------------------------------------------ //
15923 
15924 #define ACAMERA_ISP_METERING_HIST_AEXP_NODES_USED_HORIZ_DEFAULT (15)
15925 #define ACAMERA_ISP_METERING_HIST_AEXP_NODES_USED_HORIZ_DATASIZE (8)
15926 #define ACAMERA_ISP_METERING_HIST_AEXP_NODES_USED_HORIZ_OFFSET (0x28dc)
15927 #define ACAMERA_ISP_METERING_HIST_AEXP_NODES_USED_HORIZ_MASK (0xff)
15928 
15929 // args: data (8-bit)
acamera_isp_metering_hist_aexp_nodes_used_horiz_write(uintptr_t base,uint8_t data)15930 static __inline void acamera_isp_metering_hist_aexp_nodes_used_horiz_write(uintptr_t base, uint8_t data) {
15931     uint32_t curr = system_sw_read_32(base + 0x1b764L);
15932     system_sw_write_32(base + 0x1b764L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
15933 }
acamera_isp_metering_hist_aexp_nodes_used_horiz_read(uintptr_t base)15934 static __inline uint8_t acamera_isp_metering_hist_aexp_nodes_used_horiz_read(uintptr_t base) {
15935     return (uint8_t)((system_sw_read_32(base + 0x1b764L) & 0xff) >> 0);
15936 }
15937 // ------------------------------------------------------------------------------ //
15938 // Register: Nodes Used Vert
15939 // ------------------------------------------------------------------------------ //
15940 
15941 // ------------------------------------------------------------------------------ //
15942 // Number of active zones vertically for Histogram
15943 // ------------------------------------------------------------------------------ //
15944 
15945 #define ACAMERA_ISP_METERING_HIST_AEXP_NODES_USED_VERT_DEFAULT (15)
15946 #define ACAMERA_ISP_METERING_HIST_AEXP_NODES_USED_VERT_DATASIZE (8)
15947 #define ACAMERA_ISP_METERING_HIST_AEXP_NODES_USED_VERT_OFFSET (0x28dc)
15948 #define ACAMERA_ISP_METERING_HIST_AEXP_NODES_USED_VERT_MASK (0xff00)
15949 
15950 // args: data (8-bit)
acamera_isp_metering_hist_aexp_nodes_used_vert_write(uintptr_t base,uint8_t data)15951 static __inline void acamera_isp_metering_hist_aexp_nodes_used_vert_write(uintptr_t base, uint8_t data) {
15952     uint32_t curr = system_sw_read_32(base + 0x1b764L);
15953     system_sw_write_32(base + 0x1b764L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
15954 }
acamera_isp_metering_hist_aexp_nodes_used_vert_read(uintptr_t base)15955 static __inline uint8_t acamera_isp_metering_hist_aexp_nodes_used_vert_read(uintptr_t base) {
15956     return (uint8_t)((system_sw_read_32(base + 0x1b764L) & 0xff00) >> 8);
15957 }
15958 // ------------------------------------------------------------------------------ //
15959 // Register: Zones Weight
15960 // ------------------------------------------------------------------------------ //
15961 
15962 // ------------------------------------------------------------------------------ //
15963 // Sets zone weighting for Histogram. Index is (row,col) where (0,0) is top-left zone
15964 // ------------------------------------------------------------------------------ //
15965 
15966 #define ACAMERA_ISP_METERING_HIST_AEXP_ZONES_WEIGHT_DEFAULT (0xF)
15967 #define ACAMERA_ISP_METERING_HIST_AEXP_ZONES_WEIGHT_DATASIZE (4)
15968 #define ACAMERA_ISP_METERING_HIST_AEXP_ZONES_WEIGHT_OFFSET (0x28e0)
15969 #define ACAMERA_ISP_METERING_HIST_AEXP_ZONES_WEIGHT_MASK (0xf)
15970 
15971 // index (0-1088), args: data (4-bit)
acamera_isp_metering_hist_aexp_zones_weight_write(uintptr_t base,uint32_t index,uint8_t data)15972 static __inline void acamera_isp_metering_hist_aexp_zones_weight_write( uintptr_t base, uint32_t index,uint8_t data) {
15973     uintptr_t addr = base + 0x1b768L + (index & 0xFFFFFFFC);
15974     uint8_t offset = (index & 3) << 3;
15975     uint32_t curr = system_sw_read_32(addr);
15976     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
15977 }
acamera_isp_metering_hist_aexp_zones_weight_read(uintptr_t base,uint32_t index)15978 static __inline uint8_t acamera_isp_metering_hist_aexp_zones_weight_read( uintptr_t base, uint32_t index) {
15979     uintptr_t addr = base + 0x1b768L + (index & 0xFFFFFFFC);
15980     uint8_t offset = (index & 3) << 3;
15981     return (uint8_t)(system_sw_read_32(addr) >> offset);
15982 }
15983 // ------------------------------------------------------------------------------ //
15984 // Group: metering ihist
15985 // ------------------------------------------------------------------------------ //
15986 
15987 // ------------------------------------------------------------------------------ //
15988 // Register: skip x
15989 // ------------------------------------------------------------------------------ //
15990 
15991 // ------------------------------------------------------------------------------ //
15992 // Histogram decimation in horizontal direction: 0=every 2nd pixel; 1=every 3rd pixel; 2=every 4th pixel; 3=every 5th pixel; 4=every 8th pixel ; 5+=every 9th pixel
15993 // ------------------------------------------------------------------------------ //
15994 
15995 #define ACAMERA_ISP_METERING_IHIST_SKIP_X_DEFAULT (0)
15996 #define ACAMERA_ISP_METERING_IHIST_SKIP_X_DATASIZE (3)
15997 #define ACAMERA_ISP_METERING_IHIST_SKIP_X_OFFSET (0x2d24)
15998 #define ACAMERA_ISP_METERING_IHIST_SKIP_X_MASK (0x7)
15999 
16000 // args: data (3-bit)
acamera_isp_metering_ihist_skip_x_write(uintptr_t base,uint8_t data)16001 static __inline void acamera_isp_metering_ihist_skip_x_write(uintptr_t base, uint8_t data) {
16002     uint32_t curr = system_sw_read_32(base + 0x1bbacL);
16003     system_sw_write_32(base + 0x1bbacL, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
16004 }
acamera_isp_metering_ihist_skip_x_read(uintptr_t base)16005 static __inline uint8_t acamera_isp_metering_ihist_skip_x_read(uintptr_t base) {
16006     return (uint8_t)((system_sw_read_32(base + 0x1bbacL) & 0x7) >> 0);
16007 }
16008 // ------------------------------------------------------------------------------ //
16009 // Register: skip y
16010 // ------------------------------------------------------------------------------ //
16011 
16012 // ------------------------------------------------------------------------------ //
16013 // Histogram decimation in vertical direction: 0=every pixel; 1=every 2nd pixel; 2=every 3rd pixel; 3=every 4th pixel; 4=every 5th pixel; 5=every 8th pixel ; 6+=every 9th pixel
16014 // ------------------------------------------------------------------------------ //
16015 
16016 #define ACAMERA_ISP_METERING_IHIST_SKIP_Y_DEFAULT (0)
16017 #define ACAMERA_ISP_METERING_IHIST_SKIP_Y_DATASIZE (3)
16018 #define ACAMERA_ISP_METERING_IHIST_SKIP_Y_OFFSET (0x2d24)
16019 #define ACAMERA_ISP_METERING_IHIST_SKIP_Y_MASK (0x70)
16020 
16021 // args: data (3-bit)
acamera_isp_metering_ihist_skip_y_write(uintptr_t base,uint8_t data)16022 static __inline void acamera_isp_metering_ihist_skip_y_write(uintptr_t base, uint8_t data) {
16023     uint32_t curr = system_sw_read_32(base + 0x1bbacL);
16024     system_sw_write_32(base + 0x1bbacL, (((uint32_t) (data & 0x7)) << 4) | (curr & 0xffffff8f));
16025 }
acamera_isp_metering_ihist_skip_y_read(uintptr_t base)16026 static __inline uint8_t acamera_isp_metering_ihist_skip_y_read(uintptr_t base) {
16027     return (uint8_t)((system_sw_read_32(base + 0x1bbacL) & 0x70) >> 4);
16028 }
16029 // ------------------------------------------------------------------------------ //
16030 // Register: offset x
16031 // ------------------------------------------------------------------------------ //
16032 
16033 // ------------------------------------------------------------------------------ //
16034 // 0= start from the first column;  1=start from second column
16035 // ------------------------------------------------------------------------------ //
16036 
16037 #define ACAMERA_ISP_METERING_IHIST_OFFSET_X_DEFAULT (0)
16038 #define ACAMERA_ISP_METERING_IHIST_OFFSET_X_DATASIZE (1)
16039 #define ACAMERA_ISP_METERING_IHIST_OFFSET_X_OFFSET (0x2d24)
16040 #define ACAMERA_ISP_METERING_IHIST_OFFSET_X_MASK (0x8)
16041 
16042 // args: data (1-bit)
acamera_isp_metering_ihist_offset_x_write(uintptr_t base,uint8_t data)16043 static __inline void acamera_isp_metering_ihist_offset_x_write(uintptr_t base, uint8_t data) {
16044     uint32_t curr = system_sw_read_32(base + 0x1bbacL);
16045     system_sw_write_32(base + 0x1bbacL, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
16046 }
acamera_isp_metering_ihist_offset_x_read(uintptr_t base)16047 static __inline uint8_t acamera_isp_metering_ihist_offset_x_read(uintptr_t base) {
16048     return (uint8_t)((system_sw_read_32(base + 0x1bbacL) & 0x8) >> 3);
16049 }
16050 // ------------------------------------------------------------------------------ //
16051 // Register: offset y
16052 // ------------------------------------------------------------------------------ //
16053 
16054 // ------------------------------------------------------------------------------ //
16055 // 0= start from the first row; 1= start from second row
16056 // ------------------------------------------------------------------------------ //
16057 
16058 #define ACAMERA_ISP_METERING_IHIST_OFFSET_Y_DEFAULT (0)
16059 #define ACAMERA_ISP_METERING_IHIST_OFFSET_Y_DATASIZE (1)
16060 #define ACAMERA_ISP_METERING_IHIST_OFFSET_Y_OFFSET (0x2d24)
16061 #define ACAMERA_ISP_METERING_IHIST_OFFSET_Y_MASK (0x80)
16062 
16063 // args: data (1-bit)
acamera_isp_metering_ihist_offset_y_write(uintptr_t base,uint8_t data)16064 static __inline void acamera_isp_metering_ihist_offset_y_write(uintptr_t base, uint8_t data) {
16065     uint32_t curr = system_sw_read_32(base + 0x1bbacL);
16066     system_sw_write_32(base + 0x1bbacL, (((uint32_t) (data & 0x1)) << 7) | (curr & 0xffffff7f));
16067 }
acamera_isp_metering_ihist_offset_y_read(uintptr_t base)16068 static __inline uint8_t acamera_isp_metering_ihist_offset_y_read(uintptr_t base) {
16069     return (uint8_t)((system_sw_read_32(base + 0x1bbacL) & 0x80) >> 7);
16070 }
16071 // ------------------------------------------------------------------------------ //
16072 // Register: scale bottom
16073 // ------------------------------------------------------------------------------ //
16074 
16075 // ------------------------------------------------------------------------------ //
16076 // scale of bottom half of the range: 0=1x ,1=2x, 2=4x, 4=8x, 4=16x
16077 // ------------------------------------------------------------------------------ //
16078 
16079 #define ACAMERA_ISP_METERING_IHIST_SCALE_BOTTOM_DEFAULT (0)
16080 #define ACAMERA_ISP_METERING_IHIST_SCALE_BOTTOM_DATASIZE (4)
16081 #define ACAMERA_ISP_METERING_IHIST_SCALE_BOTTOM_OFFSET (0x2d28)
16082 #define ACAMERA_ISP_METERING_IHIST_SCALE_BOTTOM_MASK (0xf)
16083 
16084 // args: data (4-bit)
acamera_isp_metering_ihist_scale_bottom_write(uintptr_t base,uint8_t data)16085 static __inline void acamera_isp_metering_ihist_scale_bottom_write(uintptr_t base, uint8_t data) {
16086     uint32_t curr = system_sw_read_32(base + 0x1bbb0L);
16087     system_sw_write_32(base + 0x1bbb0L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
16088 }
acamera_isp_metering_ihist_scale_bottom_read(uintptr_t base)16089 static __inline uint8_t acamera_isp_metering_ihist_scale_bottom_read(uintptr_t base) {
16090     return (uint8_t)((system_sw_read_32(base + 0x1bbb0L) & 0xf) >> 0);
16091 }
16092 // ------------------------------------------------------------------------------ //
16093 // Register: scale top
16094 // ------------------------------------------------------------------------------ //
16095 
16096 // ------------------------------------------------------------------------------ //
16097 // scale of top half of the range: 0=1x ,1=2x, 2=4x, 4=8x, 4=16x
16098 // ------------------------------------------------------------------------------ //
16099 
16100 #define ACAMERA_ISP_METERING_IHIST_SCALE_TOP_DEFAULT (0)
16101 #define ACAMERA_ISP_METERING_IHIST_SCALE_TOP_DATASIZE (4)
16102 #define ACAMERA_ISP_METERING_IHIST_SCALE_TOP_OFFSET (0x2d28)
16103 #define ACAMERA_ISP_METERING_IHIST_SCALE_TOP_MASK (0xf0)
16104 
16105 // args: data (4-bit)
acamera_isp_metering_ihist_scale_top_write(uintptr_t base,uint8_t data)16106 static __inline void acamera_isp_metering_ihist_scale_top_write(uintptr_t base, uint8_t data) {
16107     uint32_t curr = system_sw_read_32(base + 0x1bbb0L);
16108     system_sw_write_32(base + 0x1bbb0L, (((uint32_t) (data & 0xf)) << 4) | (curr & 0xffffff0f));
16109 }
acamera_isp_metering_ihist_scale_top_read(uintptr_t base)16110 static __inline uint8_t acamera_isp_metering_ihist_scale_top_read(uintptr_t base) {
16111     return (uint8_t)((system_sw_read_32(base + 0x1bbb0L) & 0xf0) >> 4);
16112 }
16113 // ------------------------------------------------------------------------------ //
16114 // Register: Total Pixels
16115 // ------------------------------------------------------------------------------ //
16116 
16117 // ------------------------------------------------------------------------------ //
16118 // Total number of pixels processed (skip x and skip y are taken into account)
16119 // ------------------------------------------------------------------------------ //
16120 
16121 #define ACAMERA_ISP_METERING_IHIST_TOTAL_PIXELS_DEFAULT (0)
16122 #define ACAMERA_ISP_METERING_IHIST_TOTAL_PIXELS_DATASIZE (32)
16123 #define ACAMERA_ISP_METERING_IHIST_TOTAL_PIXELS_OFFSET (0x2d2c)
16124 #define ACAMERA_ISP_METERING_IHIST_TOTAL_PIXELS_MASK (0xffffffff)
16125 
16126 // args: data (32-bit)
acamera_isp_metering_ihist_total_pixels_read(uintptr_t base)16127 static __inline uint32_t acamera_isp_metering_ihist_total_pixels_read(uintptr_t base) {
16128     return system_sw_read_32(base + 0x1bbb4L);
16129 }
16130 // ------------------------------------------------------------------------------ //
16131 // Register: Counted Pixels
16132 // ------------------------------------------------------------------------------ //
16133 
16134 // ------------------------------------------------------------------------------ //
16135 // Number of pixels accumulated (with nonzero weight)
16136 // ------------------------------------------------------------------------------ //
16137 
16138 #define ACAMERA_ISP_METERING_IHIST_COUNTED_PIXELS_DEFAULT (0)
16139 #define ACAMERA_ISP_METERING_IHIST_COUNTED_PIXELS_DATASIZE (32)
16140 #define ACAMERA_ISP_METERING_IHIST_COUNTED_PIXELS_OFFSET (0x2d30)
16141 #define ACAMERA_ISP_METERING_IHIST_COUNTED_PIXELS_MASK (0xffffffff)
16142 
16143 // args: data (32-bit)
acamera_isp_metering_ihist_counted_pixels_read(uintptr_t base)16144 static __inline uint32_t acamera_isp_metering_ihist_counted_pixels_read(uintptr_t base) {
16145     return system_sw_read_32(base + 0x1bbb8L);
16146 }
16147 // ------------------------------------------------------------------------------ //
16148 // Register: Plane mode
16149 // ------------------------------------------------------------------------------ //
16150 
16151 // ------------------------------------------------------------------------------ //
16152 // Plane separation mode
16153 // ------------------------------------------------------------------------------ //
16154 
16155 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_DEFAULT (0)
16156 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_DATASIZE (3)
16157 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_OFFSET (0x2d34)
16158 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_MASK (0x7)
16159 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_COLLECT_ALL_THE_PLANES_IN_ONE_HISTOGRAM (0)
16160 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_COLLECT_4_BAYER_PLANES_INTO_4_SEPARATE_BANKS (1)
16161 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_RESERVED_2 (2)
16162 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_RESERVED_3 (3)
16163 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_COLLECT_ODD__X_ODD__Y_PLANE_TO_BANK_0_REST_TO_BANK_1 (4)
16164 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_COLLECT_EVEN_X_ODD__Y_PLANE_TO_BANK_0_REST_TO_BANK_1 (5)
16165 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_COLLECT_ODD__X_EVEN_Y_PLANE_TO_BANK_0_REST_TO_BANK_1 (6)
16166 #define ACAMERA_ISP_METERING_IHIST_PLANE_MODE_COLLECT_EVEN_X_EVEN_Y_PLANE_TO_BANK_0_REST_TO_BANK_1 (7)
16167 
16168 // args: data (3-bit)
acamera_isp_metering_ihist_plane_mode_write(uintptr_t base,uint8_t data)16169 static __inline void acamera_isp_metering_ihist_plane_mode_write(uintptr_t base, uint8_t data) {
16170     uint32_t curr = system_sw_read_32(base + 0x1bbbcL);
16171     system_sw_write_32(base + 0x1bbbcL, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
16172 }
acamera_isp_metering_ihist_plane_mode_read(uintptr_t base)16173 static __inline uint8_t acamera_isp_metering_ihist_plane_mode_read(uintptr_t base) {
16174     return (uint8_t)((system_sw_read_32(base + 0x1bbbcL) & 0x7) >> 0);
16175 }
16176 // ------------------------------------------------------------------------------ //
16177 // Register: Plane Total 0
16178 // ------------------------------------------------------------------------------ //
16179 
16180 // ------------------------------------------------------------------------------ //
16181 // Total pixels processed for plane 0
16182 // ------------------------------------------------------------------------------ //
16183 
16184 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_0_DEFAULT (0x0)
16185 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_0_DATASIZE (32)
16186 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_0_OFFSET (0x2d38)
16187 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_0_MASK (0xffffffff)
16188 
16189 // args: data (32-bit)
acamera_isp_metering_ihist_plane_total_0_read(uintptr_t base)16190 static __inline uint32_t acamera_isp_metering_ihist_plane_total_0_read(uintptr_t base) {
16191     return system_sw_read_32(base + 0x1bbc0L);
16192 }
16193 // ------------------------------------------------------------------------------ //
16194 // Register: Plane Total 1
16195 // ------------------------------------------------------------------------------ //
16196 
16197 // ------------------------------------------------------------------------------ //
16198 // Total pixels processed for plane 1
16199 // ------------------------------------------------------------------------------ //
16200 
16201 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_1_DEFAULT (0x0)
16202 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_1_DATASIZE (32)
16203 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_1_OFFSET (0x2d3c)
16204 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_1_MASK (0xffffffff)
16205 
16206 // args: data (32-bit)
acamera_isp_metering_ihist_plane_total_1_read(uintptr_t base)16207 static __inline uint32_t acamera_isp_metering_ihist_plane_total_1_read(uintptr_t base) {
16208     return system_sw_read_32(base + 0x1bbc4L);
16209 }
16210 // ------------------------------------------------------------------------------ //
16211 // Register: Plane Total 2
16212 // ------------------------------------------------------------------------------ //
16213 
16214 // ------------------------------------------------------------------------------ //
16215 // Total pixels processed for plane 2
16216 // ------------------------------------------------------------------------------ //
16217 
16218 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_2_DEFAULT (0x0)
16219 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_2_DATASIZE (32)
16220 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_2_OFFSET (0x2d40)
16221 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_2_MASK (0xffffffff)
16222 
16223 // args: data (32-bit)
acamera_isp_metering_ihist_plane_total_2_read(uintptr_t base)16224 static __inline uint32_t acamera_isp_metering_ihist_plane_total_2_read(uintptr_t base) {
16225     return system_sw_read_32(base + 0x1bbc8L);
16226 }
16227 // ------------------------------------------------------------------------------ //
16228 // Register: Plane Total 3
16229 // ------------------------------------------------------------------------------ //
16230 
16231 // ------------------------------------------------------------------------------ //
16232 // Total pixels processed for plane 3
16233 // ------------------------------------------------------------------------------ //
16234 
16235 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_3_DEFAULT (0x0)
16236 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_3_DATASIZE (32)
16237 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_3_OFFSET (0x2d44)
16238 #define ACAMERA_ISP_METERING_IHIST_PLANE_TOTAL_3_MASK (0xffffffff)
16239 
16240 // args: data (32-bit)
acamera_isp_metering_ihist_plane_total_3_read(uintptr_t base)16241 static __inline uint32_t acamera_isp_metering_ihist_plane_total_3_read(uintptr_t base) {
16242     return system_sw_read_32(base + 0x1bbccL);
16243 }
16244 // ------------------------------------------------------------------------------ //
16245 // Register: Plane Counted 0
16246 // ------------------------------------------------------------------------------ //
16247 
16248 // ------------------------------------------------------------------------------ //
16249 // Total pixels accumulated for plane 0
16250 // ------------------------------------------------------------------------------ //
16251 
16252 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_0_DEFAULT (0x0)
16253 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_0_DATASIZE (32)
16254 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_0_OFFSET (0x2d48)
16255 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_0_MASK (0xffffffff)
16256 
16257 // args: data (32-bit)
acamera_isp_metering_ihist_plane_counted_0_read(uintptr_t base)16258 static __inline uint32_t acamera_isp_metering_ihist_plane_counted_0_read(uintptr_t base) {
16259     return system_sw_read_32(base + 0x1bbd0L);
16260 }
16261 // ------------------------------------------------------------------------------ //
16262 // Register: Plane Counted 1
16263 // ------------------------------------------------------------------------------ //
16264 
16265 // ------------------------------------------------------------------------------ //
16266 // Total pixels accumulated for plane 1
16267 // ------------------------------------------------------------------------------ //
16268 
16269 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_1_DEFAULT (0x0)
16270 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_1_DATASIZE (32)
16271 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_1_OFFSET (0x2d4c)
16272 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_1_MASK (0xffffffff)
16273 
16274 // args: data (32-bit)
acamera_isp_metering_ihist_plane_counted_1_read(uintptr_t base)16275 static __inline uint32_t acamera_isp_metering_ihist_plane_counted_1_read(uintptr_t base) {
16276     return system_sw_read_32(base + 0x1bbd4L);
16277 }
16278 // ------------------------------------------------------------------------------ //
16279 // Register: Plane Counted 2
16280 // ------------------------------------------------------------------------------ //
16281 
16282 // ------------------------------------------------------------------------------ //
16283 // Total pixels accumulated for plane 2
16284 // ------------------------------------------------------------------------------ //
16285 
16286 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_2_DEFAULT (0x0)
16287 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_2_DATASIZE (32)
16288 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_2_OFFSET (0x2d50)
16289 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_2_MASK (0xffffffff)
16290 
16291 // args: data (32-bit)
acamera_isp_metering_ihist_plane_counted_2_read(uintptr_t base)16292 static __inline uint32_t acamera_isp_metering_ihist_plane_counted_2_read(uintptr_t base) {
16293     return system_sw_read_32(base + 0x1bbd8L);
16294 }
16295 // ------------------------------------------------------------------------------ //
16296 // Register: Plane Counted 3
16297 // ------------------------------------------------------------------------------ //
16298 
16299 // ------------------------------------------------------------------------------ //
16300 // Total pixels accumulated for plane 3
16301 // ------------------------------------------------------------------------------ //
16302 
16303 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_3_DEFAULT (0x0)
16304 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_3_DATASIZE (32)
16305 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_3_OFFSET (0x2d54)
16306 #define ACAMERA_ISP_METERING_IHIST_PLANE_COUNTED_3_MASK (0xffffffff)
16307 
16308 // args: data (32-bit)
acamera_isp_metering_ihist_plane_counted_3_read(uintptr_t base)16309 static __inline uint32_t acamera_isp_metering_ihist_plane_counted_3_read(uintptr_t base) {
16310     return system_sw_read_32(base + 0x1bbdcL);
16311 }
16312 // ------------------------------------------------------------------------------ //
16313 // Register: Nodes Used Horiz
16314 // ------------------------------------------------------------------------------ //
16315 
16316 // ------------------------------------------------------------------------------ //
16317 // Number of active zones horizontally for Histogram
16318 // ------------------------------------------------------------------------------ //
16319 
16320 #define ACAMERA_ISP_METERING_IHIST_NODES_USED_HORIZ_DEFAULT (15)
16321 #define ACAMERA_ISP_METERING_IHIST_NODES_USED_HORIZ_DATASIZE (8)
16322 #define ACAMERA_ISP_METERING_IHIST_NODES_USED_HORIZ_OFFSET (0x2d58)
16323 #define ACAMERA_ISP_METERING_IHIST_NODES_USED_HORIZ_MASK (0xff)
16324 
16325 // args: data (8-bit)
acamera_isp_metering_ihist_nodes_used_horiz_write(uintptr_t base,uint8_t data)16326 static __inline void acamera_isp_metering_ihist_nodes_used_horiz_write(uintptr_t base, uint8_t data) {
16327     uint32_t curr = system_sw_read_32(base + 0x1bbe0L);
16328     system_sw_write_32(base + 0x1bbe0L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
16329 }
acamera_isp_metering_ihist_nodes_used_horiz_read(uintptr_t base)16330 static __inline uint8_t acamera_isp_metering_ihist_nodes_used_horiz_read(uintptr_t base) {
16331     return (uint8_t)((system_sw_read_32(base + 0x1bbe0L) & 0xff) >> 0);
16332 }
16333 // ------------------------------------------------------------------------------ //
16334 // Register: Nodes Used Vert
16335 // ------------------------------------------------------------------------------ //
16336 
16337 // ------------------------------------------------------------------------------ //
16338 // Number of active zones vertically for Histogram
16339 // ------------------------------------------------------------------------------ //
16340 
16341 #define ACAMERA_ISP_METERING_IHIST_NODES_USED_VERT_DEFAULT (15)
16342 #define ACAMERA_ISP_METERING_IHIST_NODES_USED_VERT_DATASIZE (8)
16343 #define ACAMERA_ISP_METERING_IHIST_NODES_USED_VERT_OFFSET (0x2d58)
16344 #define ACAMERA_ISP_METERING_IHIST_NODES_USED_VERT_MASK (0xff00)
16345 
16346 // args: data (8-bit)
acamera_isp_metering_ihist_nodes_used_vert_write(uintptr_t base,uint8_t data)16347 static __inline void acamera_isp_metering_ihist_nodes_used_vert_write(uintptr_t base, uint8_t data) {
16348     uint32_t curr = system_sw_read_32(base + 0x1bbe0L);
16349     system_sw_write_32(base + 0x1bbe0L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
16350 }
acamera_isp_metering_ihist_nodes_used_vert_read(uintptr_t base)16351 static __inline uint8_t acamera_isp_metering_ihist_nodes_used_vert_read(uintptr_t base) {
16352     return (uint8_t)((system_sw_read_32(base + 0x1bbe0L) & 0xff00) >> 8);
16353 }
16354 // ------------------------------------------------------------------------------ //
16355 // Register: Zones Weight
16356 // ------------------------------------------------------------------------------ //
16357 
16358 // ------------------------------------------------------------------------------ //
16359 // Sets zone weighting for Histogram. Index is (row,col) where (0,0) is top-left zone
16360 // ------------------------------------------------------------------------------ //
16361 
16362 #define ACAMERA_ISP_METERING_IHIST_ZONES_WEIGHT_DEFAULT (0xF)
16363 #define ACAMERA_ISP_METERING_IHIST_ZONES_WEIGHT_DATASIZE (4)
16364 #define ACAMERA_ISP_METERING_IHIST_ZONES_WEIGHT_OFFSET (0x2d5c)
16365 #define ACAMERA_ISP_METERING_IHIST_ZONES_WEIGHT_MASK (0xf)
16366 
16367 // index (0-1088), args: data (4-bit)
acamera_isp_metering_ihist_zones_weight_write(uintptr_t base,uint32_t index,uint8_t data)16368 static __inline void acamera_isp_metering_ihist_zones_weight_write( uintptr_t base, uint32_t index,uint8_t data) {
16369     uintptr_t addr = base + 0x1bbe4L + (index & 0xFFFFFFFC);
16370     uint8_t offset = (index & 3) << 3;
16371     uint32_t curr = system_sw_read_32(addr);
16372     system_sw_write_32(addr, ((uint32_t)data << offset) | (curr & ~(0xFF << offset)));
16373 }
acamera_isp_metering_ihist_zones_weight_read(uintptr_t base,uint32_t index)16374 static __inline uint8_t acamera_isp_metering_ihist_zones_weight_read( uintptr_t base, uint32_t index) {
16375     uintptr_t addr = base + 0x1bbe4L + (index & 0xFFFFFFFC);
16376     uint8_t offset = (index & 3) << 3;
16377     return (uint8_t)(system_sw_read_32(addr) >> offset);
16378 }
16379 // ------------------------------------------------------------------------------ //
16380 // Group: fr crop
16381 // ------------------------------------------------------------------------------ //
16382 
16383 // ------------------------------------------------------------------------------ //
16384 //
16385 //        Crop for full resolution output
16386 //
16387 // ------------------------------------------------------------------------------ //
16388 
16389 // ------------------------------------------------------------------------------ //
16390 // Register: Enable crop
16391 // ------------------------------------------------------------------------------ //
16392 
16393 // ------------------------------------------------------------------------------ //
16394 // Crop enable: 0=off 1=on
16395 // ------------------------------------------------------------------------------ //
16396 
16397 #define ACAMERA_ISP_FR_CROP_ENABLE_CROP_DEFAULT (0)
16398 #define ACAMERA_ISP_FR_CROP_ENABLE_CROP_DATASIZE (1)
16399 #define ACAMERA_ISP_FR_CROP_ENABLE_CROP_OFFSET (0x31a0)
16400 #define ACAMERA_ISP_FR_CROP_ENABLE_CROP_MASK (0x1)
16401 
16402 // args: data (1-bit)
acamera_isp_fr_crop_enable_crop_write(uintptr_t base,uint8_t data)16403 static __inline void acamera_isp_fr_crop_enable_crop_write(uintptr_t base, uint8_t data) {
16404     uint32_t curr = system_sw_read_32(base + 0x1c028L);
16405     system_sw_write_32(base + 0x1c028L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
16406 }
acamera_isp_fr_crop_enable_crop_read(uintptr_t base)16407 static __inline uint8_t acamera_isp_fr_crop_enable_crop_read(uintptr_t base) {
16408     return (uint8_t)((system_sw_read_32(base + 0x1c028L) & 0x1) >> 0);
16409 }
16410 // ------------------------------------------------------------------------------ //
16411 // Register: start x
16412 // ------------------------------------------------------------------------------ //
16413 
16414 // ------------------------------------------------------------------------------ //
16415 // Horizontal offset from left side of image in pixels for output crop window
16416 // ------------------------------------------------------------------------------ //
16417 
16418 #define ACAMERA_ISP_FR_CROP_START_X_DEFAULT (0x0000)
16419 #define ACAMERA_ISP_FR_CROP_START_X_DATASIZE (16)
16420 #define ACAMERA_ISP_FR_CROP_START_X_OFFSET (0x31a4)
16421 #define ACAMERA_ISP_FR_CROP_START_X_MASK (0xffff)
16422 
16423 // args: data (16-bit)
acamera_isp_fr_crop_start_x_write(uintptr_t base,uint16_t data)16424 static __inline void acamera_isp_fr_crop_start_x_write(uintptr_t base, uint16_t data) {
16425     uint32_t curr = system_sw_read_32(base + 0x1c02cL);
16426     system_sw_write_32(base + 0x1c02cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
16427 }
acamera_isp_fr_crop_start_x_read(uintptr_t base)16428 static __inline uint16_t acamera_isp_fr_crop_start_x_read(uintptr_t base) {
16429     return (uint16_t)((system_sw_read_32(base + 0x1c02cL) & 0xffff) >> 0);
16430 }
16431 // ------------------------------------------------------------------------------ //
16432 // Register: start y
16433 // ------------------------------------------------------------------------------ //
16434 
16435 // ------------------------------------------------------------------------------ //
16436 // Vertical offset from top of image in lines for output crop window
16437 // ------------------------------------------------------------------------------ //
16438 
16439 #define ACAMERA_ISP_FR_CROP_START_Y_DEFAULT (0x0000)
16440 #define ACAMERA_ISP_FR_CROP_START_Y_DATASIZE (16)
16441 #define ACAMERA_ISP_FR_CROP_START_Y_OFFSET (0x31a8)
16442 #define ACAMERA_ISP_FR_CROP_START_Y_MASK (0xffff)
16443 
16444 // args: data (16-bit)
acamera_isp_fr_crop_start_y_write(uintptr_t base,uint16_t data)16445 static __inline void acamera_isp_fr_crop_start_y_write(uintptr_t base, uint16_t data) {
16446     uint32_t curr = system_sw_read_32(base + 0x1c030L);
16447     system_sw_write_32(base + 0x1c030L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
16448 }
acamera_isp_fr_crop_start_y_read(uintptr_t base)16449 static __inline uint16_t acamera_isp_fr_crop_start_y_read(uintptr_t base) {
16450     return (uint16_t)((system_sw_read_32(base + 0x1c030L) & 0xffff) >> 0);
16451 }
16452 // ------------------------------------------------------------------------------ //
16453 // Register: size x
16454 // ------------------------------------------------------------------------------ //
16455 
16456 // ------------------------------------------------------------------------------ //
16457 // width of output crop window
16458 // ------------------------------------------------------------------------------ //
16459 
16460 #define ACAMERA_ISP_FR_CROP_SIZE_X_DEFAULT (0xffff)
16461 #define ACAMERA_ISP_FR_CROP_SIZE_X_DATASIZE (16)
16462 #define ACAMERA_ISP_FR_CROP_SIZE_X_OFFSET (0x31ac)
16463 #define ACAMERA_ISP_FR_CROP_SIZE_X_MASK (0xffff)
16464 
16465 // args: data (16-bit)
acamera_isp_fr_crop_size_x_write(uintptr_t base,uint16_t data)16466 static __inline void acamera_isp_fr_crop_size_x_write(uintptr_t base, uint16_t data) {
16467     uint32_t curr = system_sw_read_32(base + 0x1c034L);
16468     system_sw_write_32(base + 0x1c034L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
16469 }
acamera_isp_fr_crop_size_x_read(uintptr_t base)16470 static __inline uint16_t acamera_isp_fr_crop_size_x_read(uintptr_t base) {
16471     return (uint16_t)((system_sw_read_32(base + 0x1c034L) & 0xffff) >> 0);
16472 }
16473 // ------------------------------------------------------------------------------ //
16474 // Register: size y
16475 // ------------------------------------------------------------------------------ //
16476 
16477 // ------------------------------------------------------------------------------ //
16478 // height of output crop window
16479 // ------------------------------------------------------------------------------ //
16480 
16481 #define ACAMERA_ISP_FR_CROP_SIZE_Y_DEFAULT (0xffff)
16482 #define ACAMERA_ISP_FR_CROP_SIZE_Y_DATASIZE (16)
16483 #define ACAMERA_ISP_FR_CROP_SIZE_Y_OFFSET (0x31b0)
16484 #define ACAMERA_ISP_FR_CROP_SIZE_Y_MASK (0xffff)
16485 
16486 // args: data (16-bit)
acamera_isp_fr_crop_size_y_write(uintptr_t base,uint16_t data)16487 static __inline void acamera_isp_fr_crop_size_y_write(uintptr_t base, uint16_t data) {
16488     uint32_t curr = system_sw_read_32(base + 0x1c038L);
16489     system_sw_write_32(base + 0x1c038L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
16490 }
acamera_isp_fr_crop_size_y_read(uintptr_t base)16491 static __inline uint16_t acamera_isp_fr_crop_size_y_read(uintptr_t base) {
16492     return (uint16_t)((system_sw_read_32(base + 0x1c038L) & 0xffff) >> 0);
16493 }
16494 // ------------------------------------------------------------------------------ //
16495 // Group: fr scaler
16496 // ------------------------------------------------------------------------------ //
16497 
16498 // ------------------------------------------------------------------------------ //
16499 // Register: IRQSTAT
16500 // ------------------------------------------------------------------------------ //
16501 
16502 // ------------------------------------------------------------------------------ //
16503 // Downscaler status
16504 // ------------------------------------------------------------------------------ //
16505 
16506 #define ACAMERA_ISP_FR_SCALER_IRQSTAT_DEFAULT (0x00)
16507 #define ACAMERA_ISP_FR_SCALER_IRQSTAT_DATASIZE (8)
16508 #define ACAMERA_ISP_FR_SCALER_IRQSTAT_OFFSET (0x31b4)
16509 #define ACAMERA_ISP_FR_SCALER_IRQSTAT_MASK (0xff)
16510 
16511 // args: data (8-bit)
acamera_isp_fr_scaler_irqstat_read(uintptr_t base)16512 static __inline uint8_t acamera_isp_fr_scaler_irqstat_read(uintptr_t base) {
16513     return (uint8_t)((system_sw_read_32(base + 0x1c03cL) & 0xff) >> 0);
16514 }
16515 // ------------------------------------------------------------------------------ //
16516 // Register: Timeout IRQ
16517 // ------------------------------------------------------------------------------ //
16518 
16519 // ------------------------------------------------------------------------------ //
16520 //
16521 //             0 : No timeout
16522 //             1 : Timeout on frame done
16523 //
16524 // ------------------------------------------------------------------------------ //
16525 
16526 #define ACAMERA_ISP_FR_SCALER_TIMEOUT_IRQ_DEFAULT (0x0)
16527 #define ACAMERA_ISP_FR_SCALER_TIMEOUT_IRQ_DATASIZE (1)
16528 #define ACAMERA_ISP_FR_SCALER_TIMEOUT_IRQ_OFFSET (0x31b4)
16529 #define ACAMERA_ISP_FR_SCALER_TIMEOUT_IRQ_MASK (0x8)
16530 
16531 // args: data (1-bit)
acamera_isp_fr_scaler_timeout_irq_write(uintptr_t base,uint8_t data)16532 static __inline void acamera_isp_fr_scaler_timeout_irq_write(uintptr_t base, uint8_t data) {
16533     uint32_t curr = system_sw_read_32(base + 0x1c03cL);
16534     system_sw_write_32(base + 0x1c03cL, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
16535 }
acamera_isp_fr_scaler_timeout_irq_read(uintptr_t base)16536 static __inline uint8_t acamera_isp_fr_scaler_timeout_irq_read(uintptr_t base) {
16537     return (uint8_t)((system_sw_read_32(base + 0x1c03cL) & 0x8) >> 3);
16538 }
16539 // ------------------------------------------------------------------------------ //
16540 // Register: Underflow IRQ
16541 // ------------------------------------------------------------------------------ //
16542 
16543 // ------------------------------------------------------------------------------ //
16544 //
16545 //             0 : No underflow
16546 //             1 : FIFO underflow has occurred
16547 //
16548 // ------------------------------------------------------------------------------ //
16549 
16550 #define ACAMERA_ISP_FR_SCALER_UNDERFLOW_IRQ_DEFAULT (0x0)
16551 #define ACAMERA_ISP_FR_SCALER_UNDERFLOW_IRQ_DATASIZE (1)
16552 #define ACAMERA_ISP_FR_SCALER_UNDERFLOW_IRQ_OFFSET (0x31b4)
16553 #define ACAMERA_ISP_FR_SCALER_UNDERFLOW_IRQ_MASK (0x4)
16554 
16555 // args: data (1-bit)
acamera_isp_fr_scaler_underflow_irq_write(uintptr_t base,uint8_t data)16556 static __inline void acamera_isp_fr_scaler_underflow_irq_write(uintptr_t base, uint8_t data) {
16557     uint32_t curr = system_sw_read_32(base + 0x1c03cL);
16558     system_sw_write_32(base + 0x1c03cL, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
16559 }
acamera_isp_fr_scaler_underflow_irq_read(uintptr_t base)16560 static __inline uint8_t acamera_isp_fr_scaler_underflow_irq_read(uintptr_t base) {
16561     return (uint8_t)((system_sw_read_32(base + 0x1c03cL) & 0x4) >> 2);
16562 }
16563 // ------------------------------------------------------------------------------ //
16564 // Register: Overflow IRQ
16565 // ------------------------------------------------------------------------------ //
16566 
16567 // ------------------------------------------------------------------------------ //
16568 //
16569 //             0 : No overflow
16570 //             1 : FIFO overflow has occurred
16571 //
16572 // ------------------------------------------------------------------------------ //
16573 
16574 #define ACAMERA_ISP_FR_SCALER_OVERFLOW_IRQ_DEFAULT (0x0)
16575 #define ACAMERA_ISP_FR_SCALER_OVERFLOW_IRQ_DATASIZE (1)
16576 #define ACAMERA_ISP_FR_SCALER_OVERFLOW_IRQ_OFFSET (0x31b4)
16577 #define ACAMERA_ISP_FR_SCALER_OVERFLOW_IRQ_MASK (0x1)
16578 
16579 // args: data (1-bit)
acamera_isp_fr_scaler_overflow_irq_write(uintptr_t base,uint8_t data)16580 static __inline void acamera_isp_fr_scaler_overflow_irq_write(uintptr_t base, uint8_t data) {
16581     uint32_t curr = system_sw_read_32(base + 0x1c03cL);
16582     system_sw_write_32(base + 0x1c03cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
16583 }
acamera_isp_fr_scaler_overflow_irq_read(uintptr_t base)16584 static __inline uint8_t acamera_isp_fr_scaler_overflow_irq_read(uintptr_t base) {
16585     return (uint8_t)((system_sw_read_32(base + 0x1c03cL) & 0x1) >> 0);
16586 }
16587 // ------------------------------------------------------------------------------ //
16588 // Register: Clear Alarms
16589 // ------------------------------------------------------------------------------ //
16590 
16591 // ------------------------------------------------------------------------------ //
16592 //
16593 //        Scaler control
16594 //        IRQ CLR bit
16595 //         0 : In-active
16596 //         1 : Clear-off IRQ status to 0
16597 //
16598 // ------------------------------------------------------------------------------ //
16599 
16600 #define ACAMERA_ISP_FR_SCALER_CLEAR_ALARMS_DEFAULT (0)
16601 #define ACAMERA_ISP_FR_SCALER_CLEAR_ALARMS_DATASIZE (1)
16602 #define ACAMERA_ISP_FR_SCALER_CLEAR_ALARMS_OFFSET (0x31b8)
16603 #define ACAMERA_ISP_FR_SCALER_CLEAR_ALARMS_MASK (0x8)
16604 
16605 // args: data (1-bit)
acamera_isp_fr_scaler_clear_alarms_write(uintptr_t base,uint8_t data)16606 static __inline void acamera_isp_fr_scaler_clear_alarms_write(uintptr_t base, uint8_t data) {
16607     uint32_t curr = system_sw_read_32(base + 0x1c040L);
16608     system_sw_write_32(base + 0x1c040L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
16609 }
acamera_isp_fr_scaler_clear_alarms_read(uintptr_t base)16610 static __inline uint8_t acamera_isp_fr_scaler_clear_alarms_read(uintptr_t base) {
16611     return (uint8_t)((system_sw_read_32(base + 0x1c040L) & 0x8) >> 3);
16612 }
16613 // ------------------------------------------------------------------------------ //
16614 // Register: Timeout Enable
16615 // ------------------------------------------------------------------------------ //
16616 
16617 // ------------------------------------------------------------------------------ //
16618 //
16619 //        0 : Timeout disabled.
16620 //        1 : Timeout enabled.  Automatic frame reset if frame has not completed after anticipated time.
16621 //
16622 // ------------------------------------------------------------------------------ //
16623 
16624 #define ACAMERA_ISP_FR_SCALER_TIMEOUT_ENABLE_DEFAULT (1)
16625 #define ACAMERA_ISP_FR_SCALER_TIMEOUT_ENABLE_DATASIZE (1)
16626 #define ACAMERA_ISP_FR_SCALER_TIMEOUT_ENABLE_OFFSET (0x31b8)
16627 #define ACAMERA_ISP_FR_SCALER_TIMEOUT_ENABLE_MASK (0x10)
16628 
16629 // args: data (1-bit)
acamera_isp_fr_scaler_timeout_enable_write(uintptr_t base,uint8_t data)16630 static __inline void acamera_isp_fr_scaler_timeout_enable_write(uintptr_t base, uint8_t data) {
16631     uint32_t curr = system_sw_read_32(base + 0x1c040L);
16632     system_sw_write_32(base + 0x1c040L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
16633 }
acamera_isp_fr_scaler_timeout_enable_read(uintptr_t base)16634 static __inline uint8_t acamera_isp_fr_scaler_timeout_enable_read(uintptr_t base) {
16635     return (uint8_t)((system_sw_read_32(base + 0x1c040L) & 0x10) >> 4);
16636 }
16637 // ------------------------------------------------------------------------------ //
16638 // Register: Field in toggle sel
16639 // ------------------------------------------------------------------------------ //
16640 
16641 // ------------------------------------------------------------------------------ //
16642 //
16643 //        0 : Input Field Type = pulse.
16644 //        1 : Input Field Type = toggle.
16645 //
16646 // ------------------------------------------------------------------------------ //
16647 
16648 #define ACAMERA_ISP_FR_SCALER_FIELD_IN_TOGGLE_SEL_DEFAULT (0)
16649 #define ACAMERA_ISP_FR_SCALER_FIELD_IN_TOGGLE_SEL_DATASIZE (1)
16650 #define ACAMERA_ISP_FR_SCALER_FIELD_IN_TOGGLE_SEL_OFFSET (0x31b8)
16651 #define ACAMERA_ISP_FR_SCALER_FIELD_IN_TOGGLE_SEL_MASK (0x20)
16652 
16653 // args: data (1-bit)
acamera_isp_fr_scaler_field_in_toggle_sel_write(uintptr_t base,uint8_t data)16654 static __inline void acamera_isp_fr_scaler_field_in_toggle_sel_write(uintptr_t base, uint8_t data) {
16655     uint32_t curr = system_sw_read_32(base + 0x1c040L);
16656     system_sw_write_32(base + 0x1c040L, (((uint32_t) (data & 0x1)) << 5) | (curr & 0xffffffdf));
16657 }
acamera_isp_fr_scaler_field_in_toggle_sel_read(uintptr_t base)16658 static __inline uint8_t acamera_isp_fr_scaler_field_in_toggle_sel_read(uintptr_t base) {
16659     return (uint8_t)((system_sw_read_32(base + 0x1c040L) & 0x20) >> 5);
16660 }
16661 // ------------------------------------------------------------------------------ //
16662 // Register: WIDTH
16663 // ------------------------------------------------------------------------------ //
16664 
16665 // ------------------------------------------------------------------------------ //
16666 // Input frame width in pixels
16667 // ------------------------------------------------------------------------------ //
16668 
16669 #define ACAMERA_ISP_FR_SCALER_WIDTH_DEFAULT (0x780)
16670 #define ACAMERA_ISP_FR_SCALER_WIDTH_DATASIZE (16)
16671 #define ACAMERA_ISP_FR_SCALER_WIDTH_OFFSET (0x31bc)
16672 #define ACAMERA_ISP_FR_SCALER_WIDTH_MASK (0xffff)
16673 
16674 // args: data (16-bit)
acamera_isp_fr_scaler_width_write(uintptr_t base,uint16_t data)16675 static __inline void acamera_isp_fr_scaler_width_write(uintptr_t base, uint16_t data) {
16676     uint32_t curr = system_sw_read_32(base + 0x1c044L);
16677     system_sw_write_32(base + 0x1c044L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
16678 }
acamera_isp_fr_scaler_width_read(uintptr_t base)16679 static __inline uint16_t acamera_isp_fr_scaler_width_read(uintptr_t base) {
16680     return (uint16_t)((system_sw_read_32(base + 0x1c044L) & 0xffff) >> 0);
16681 }
16682 // ------------------------------------------------------------------------------ //
16683 // Register: HEIGHT
16684 // ------------------------------------------------------------------------------ //
16685 
16686 // ------------------------------------------------------------------------------ //
16687 // Input frame height in lines
16688 // ------------------------------------------------------------------------------ //
16689 
16690 #define ACAMERA_ISP_FR_SCALER_HEIGHT_DEFAULT (0x438)
16691 #define ACAMERA_ISP_FR_SCALER_HEIGHT_DATASIZE (16)
16692 #define ACAMERA_ISP_FR_SCALER_HEIGHT_OFFSET (0x31c0)
16693 #define ACAMERA_ISP_FR_SCALER_HEIGHT_MASK (0xffff)
16694 
16695 // args: data (16-bit)
acamera_isp_fr_scaler_height_write(uintptr_t base,uint16_t data)16696 static __inline void acamera_isp_fr_scaler_height_write(uintptr_t base, uint16_t data) {
16697     uint32_t curr = system_sw_read_32(base + 0x1c048L);
16698     system_sw_write_32(base + 0x1c048L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
16699 }
acamera_isp_fr_scaler_height_read(uintptr_t base)16700 static __inline uint16_t acamera_isp_fr_scaler_height_read(uintptr_t base) {
16701     return (uint16_t)((system_sw_read_32(base + 0x1c048L) & 0xffff) >> 0);
16702 }
16703 // ------------------------------------------------------------------------------ //
16704 // Register: OWIDTH
16705 // ------------------------------------------------------------------------------ //
16706 
16707 // ------------------------------------------------------------------------------ //
16708 // Output frame width in pixels
16709 // ------------------------------------------------------------------------------ //
16710 
16711 #define ACAMERA_ISP_FR_SCALER_OWIDTH_DEFAULT (0x500)
16712 #define ACAMERA_ISP_FR_SCALER_OWIDTH_DATASIZE (13)
16713 #define ACAMERA_ISP_FR_SCALER_OWIDTH_OFFSET (0x31c4)
16714 #define ACAMERA_ISP_FR_SCALER_OWIDTH_MASK (0x1fff)
16715 
16716 // args: data (13-bit)
acamera_isp_fr_scaler_owidth_write(uintptr_t base,uint16_t data)16717 static __inline void acamera_isp_fr_scaler_owidth_write(uintptr_t base, uint16_t data) {
16718     uint32_t curr = system_sw_read_32(base + 0x1c04cL);
16719     system_sw_write_32(base + 0x1c04cL, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
16720 }
acamera_isp_fr_scaler_owidth_read(uintptr_t base)16721 static __inline uint16_t acamera_isp_fr_scaler_owidth_read(uintptr_t base) {
16722     return (uint16_t)((system_sw_read_32(base + 0x1c04cL) & 0x1fff) >> 0);
16723 }
16724 // ------------------------------------------------------------------------------ //
16725 // Register: OHEIGHT
16726 // ------------------------------------------------------------------------------ //
16727 
16728 // ------------------------------------------------------------------------------ //
16729 // Output frame height in lines
16730 // ------------------------------------------------------------------------------ //
16731 
16732 #define ACAMERA_ISP_FR_SCALER_OHEIGHT_DEFAULT (0x2D0)
16733 #define ACAMERA_ISP_FR_SCALER_OHEIGHT_DATASIZE (16)
16734 #define ACAMERA_ISP_FR_SCALER_OHEIGHT_OFFSET (0x31c8)
16735 #define ACAMERA_ISP_FR_SCALER_OHEIGHT_MASK (0xffff)
16736 
16737 // args: data (16-bit)
acamera_isp_fr_scaler_oheight_write(uintptr_t base,uint16_t data)16738 static __inline void acamera_isp_fr_scaler_oheight_write(uintptr_t base, uint16_t data) {
16739     uint32_t curr = system_sw_read_32(base + 0x1c050L);
16740     system_sw_write_32(base + 0x1c050L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
16741 }
acamera_isp_fr_scaler_oheight_read(uintptr_t base)16742 static __inline uint16_t acamera_isp_fr_scaler_oheight_read(uintptr_t base) {
16743     return (uint16_t)((system_sw_read_32(base + 0x1c050L) & 0xffff) >> 0);
16744 }
16745 // ------------------------------------------------------------------------------ //
16746 // Register: HFILT_TINC
16747 // ------------------------------------------------------------------------------ //
16748 
16749 // ------------------------------------------------------------------------------ //
16750 // Horizontal scaling factor equal to the
16751 // ------------------------------------------------------------------------------ //
16752 
16753 #define ACAMERA_ISP_FR_SCALER_HFILT_TINC_DEFAULT (0x180000)
16754 #define ACAMERA_ISP_FR_SCALER_HFILT_TINC_DATASIZE (24)
16755 #define ACAMERA_ISP_FR_SCALER_HFILT_TINC_OFFSET (0x31cc)
16756 #define ACAMERA_ISP_FR_SCALER_HFILT_TINC_MASK (0xffffff)
16757 
16758 // args: data (24-bit)
acamera_isp_fr_scaler_hfilt_tinc_write(uintptr_t base,uint32_t data)16759 static __inline void acamera_isp_fr_scaler_hfilt_tinc_write(uintptr_t base, uint32_t data) {
16760     uint32_t curr = system_sw_read_32(base + 0x1c054L);
16761     system_sw_write_32(base + 0x1c054L, (((uint32_t) (data & 0xffffff)) << 0) | (curr & 0xff000000));
16762 }
acamera_isp_fr_scaler_hfilt_tinc_read(uintptr_t base)16763 static __inline uint32_t acamera_isp_fr_scaler_hfilt_tinc_read(uintptr_t base) {
16764     return (uint32_t)((system_sw_read_32(base + 0x1c054L) & 0xffffff) >> 0);
16765 }
16766 // ------------------------------------------------------------------------------ //
16767 // Register: HFILT_COEFSET
16768 // ------------------------------------------------------------------------------ //
16769 
16770 // ------------------------------------------------------------------------------ //
16771 //
16772 //        HFILT Coeff. control.
16773 //        HFILT_COEFSET[3:0] - Selects horizontal Coef set for scaler.
16774 //            0000 : use set 0
16775 //            0001 : use set 1
16776 //            ......
16777 //            1111 : use set 15
16778 //
16779 // ------------------------------------------------------------------------------ //
16780 
16781 #define ACAMERA_ISP_FR_SCALER_HFILT_COEFSET_DEFAULT (0x00)
16782 #define ACAMERA_ISP_FR_SCALER_HFILT_COEFSET_DATASIZE (4)
16783 #define ACAMERA_ISP_FR_SCALER_HFILT_COEFSET_OFFSET (0x31d0)
16784 #define ACAMERA_ISP_FR_SCALER_HFILT_COEFSET_MASK (0xf)
16785 
16786 // args: data (4-bit)
acamera_isp_fr_scaler_hfilt_coefset_write(uintptr_t base,uint8_t data)16787 static __inline void acamera_isp_fr_scaler_hfilt_coefset_write(uintptr_t base, uint8_t data) {
16788     uint32_t curr = system_sw_read_32(base + 0x1c058L);
16789     system_sw_write_32(base + 0x1c058L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
16790 }
acamera_isp_fr_scaler_hfilt_coefset_read(uintptr_t base)16791 static __inline uint8_t acamera_isp_fr_scaler_hfilt_coefset_read(uintptr_t base) {
16792     return (uint8_t)((system_sw_read_32(base + 0x1c058L) & 0xf) >> 0);
16793 }
16794 // ------------------------------------------------------------------------------ //
16795 // Register: VFILT_TINC
16796 // ------------------------------------------------------------------------------ //
16797 
16798 // ------------------------------------------------------------------------------ //
16799 // VFILT TINC
16800 // ------------------------------------------------------------------------------ //
16801 
16802 #define ACAMERA_ISP_FR_SCALER_VFILT_TINC_DEFAULT (0x180000)
16803 #define ACAMERA_ISP_FR_SCALER_VFILT_TINC_DATASIZE (24)
16804 #define ACAMERA_ISP_FR_SCALER_VFILT_TINC_OFFSET (0x31d4)
16805 #define ACAMERA_ISP_FR_SCALER_VFILT_TINC_MASK (0xffffff)
16806 
16807 // args: data (24-bit)
acamera_isp_fr_scaler_vfilt_tinc_write(uintptr_t base,uint32_t data)16808 static __inline void acamera_isp_fr_scaler_vfilt_tinc_write(uintptr_t base, uint32_t data) {
16809     uint32_t curr = system_sw_read_32(base + 0x1c05cL);
16810     system_sw_write_32(base + 0x1c05cL, (((uint32_t) (data & 0xffffff)) << 0) | (curr & 0xff000000));
16811 }
acamera_isp_fr_scaler_vfilt_tinc_read(uintptr_t base)16812 static __inline uint32_t acamera_isp_fr_scaler_vfilt_tinc_read(uintptr_t base) {
16813     return (uint32_t)((system_sw_read_32(base + 0x1c05cL) & 0xffffff) >> 0);
16814 }
16815 // ------------------------------------------------------------------------------ //
16816 // Register: VFILT_COEFSET
16817 // ------------------------------------------------------------------------------ //
16818 
16819 // ------------------------------------------------------------------------------ //
16820 //
16821 //        VFILT Coeff. control
16822 //        FILT_COEFSET[3:0] - Selects vertical Coef set for scaler
16823 //            0000 : use set 0
16824 //            0001 : use set 1
16825 //            ......
16826 //            1111 : use set 15
16827 //
16828 // ------------------------------------------------------------------------------ //
16829 
16830 #define ACAMERA_ISP_FR_SCALER_VFILT_COEFSET_DEFAULT (0x00)
16831 #define ACAMERA_ISP_FR_SCALER_VFILT_COEFSET_DATASIZE (4)
16832 #define ACAMERA_ISP_FR_SCALER_VFILT_COEFSET_OFFSET (0x31d8)
16833 #define ACAMERA_ISP_FR_SCALER_VFILT_COEFSET_MASK (0xf)
16834 
16835 // args: data (4-bit)
acamera_isp_fr_scaler_vfilt_coefset_write(uintptr_t base,uint8_t data)16836 static __inline void acamera_isp_fr_scaler_vfilt_coefset_write(uintptr_t base, uint8_t data) {
16837     uint32_t curr = system_sw_read_32(base + 0x1c060L);
16838     system_sw_write_32(base + 0x1c060L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
16839 }
acamera_isp_fr_scaler_vfilt_coefset_read(uintptr_t base)16840 static __inline uint8_t acamera_isp_fr_scaler_vfilt_coefset_read(uintptr_t base) {
16841     return (uint8_t)((system_sw_read_32(base + 0x1c060L) & 0xf) >> 0);
16842 }
16843 // ------------------------------------------------------------------------------ //
16844 // Group: fr gamma rgb
16845 // ------------------------------------------------------------------------------ //
16846 
16847 // ------------------------------------------------------------------------------ //
16848 // Gamma correction
16849 // ------------------------------------------------------------------------------ //
16850 
16851 // ------------------------------------------------------------------------------ //
16852 // Register: Enable
16853 // ------------------------------------------------------------------------------ //
16854 
16855 // ------------------------------------------------------------------------------ //
16856 // Gamma enable: 0=off 1=on
16857 // ------------------------------------------------------------------------------ //
16858 
16859 #define ACAMERA_ISP_FR_GAMMA_RGB_ENABLE_DEFAULT (1)
16860 #define ACAMERA_ISP_FR_GAMMA_RGB_ENABLE_DATASIZE (1)
16861 #define ACAMERA_ISP_FR_GAMMA_RGB_ENABLE_OFFSET (0x31dc)
16862 #define ACAMERA_ISP_FR_GAMMA_RGB_ENABLE_MASK (0x1)
16863 
16864 // args: data (1-bit)
acamera_isp_fr_gamma_rgb_enable_write(uintptr_t base,uint8_t data)16865 static __inline void acamera_isp_fr_gamma_rgb_enable_write(uintptr_t base, uint8_t data) {
16866     uint32_t curr = system_sw_read_32(base + 0x1c064L);
16867     system_sw_write_32(base + 0x1c064L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
16868 }
acamera_isp_fr_gamma_rgb_enable_read(uintptr_t base)16869 static __inline uint8_t acamera_isp_fr_gamma_rgb_enable_read(uintptr_t base) {
16870     return (uint8_t)((system_sw_read_32(base + 0x1c064L) & 0x1) >> 0);
16871 }
16872 // ------------------------------------------------------------------------------ //
16873 // Register: gain_r
16874 // ------------------------------------------------------------------------------ //
16875 
16876 // ------------------------------------------------------------------------------ //
16877 // gain applied to the R chanel in 4.8 format
16878 // ------------------------------------------------------------------------------ //
16879 
16880 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_R_DEFAULT (0x100)
16881 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_R_DATASIZE (12)
16882 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_R_OFFSET (0x31e0)
16883 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_R_MASK (0xfff)
16884 
16885 // args: data (12-bit)
acamera_isp_fr_gamma_rgb_gain_r_write(uintptr_t base,uint16_t data)16886 static __inline void acamera_isp_fr_gamma_rgb_gain_r_write(uintptr_t base, uint16_t data) {
16887     uint32_t curr = system_sw_read_32(base + 0x1c068L);
16888     system_sw_write_32(base + 0x1c068L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
16889 }
acamera_isp_fr_gamma_rgb_gain_r_read(uintptr_t base)16890 static __inline uint16_t acamera_isp_fr_gamma_rgb_gain_r_read(uintptr_t base) {
16891     return (uint16_t)((system_sw_read_32(base + 0x1c068L) & 0xfff) >> 0);
16892 }
16893 // ------------------------------------------------------------------------------ //
16894 // Register: gain_g
16895 // ------------------------------------------------------------------------------ //
16896 
16897 // ------------------------------------------------------------------------------ //
16898 // gain applied to the G chanel in 4.8 format
16899 // ------------------------------------------------------------------------------ //
16900 
16901 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_G_DEFAULT (0x100)
16902 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_G_DATASIZE (12)
16903 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_G_OFFSET (0x31e0)
16904 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_G_MASK (0xfff0000)
16905 
16906 // args: data (12-bit)
acamera_isp_fr_gamma_rgb_gain_g_write(uintptr_t base,uint16_t data)16907 static __inline void acamera_isp_fr_gamma_rgb_gain_g_write(uintptr_t base, uint16_t data) {
16908     uint32_t curr = system_sw_read_32(base + 0x1c068L);
16909     system_sw_write_32(base + 0x1c068L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
16910 }
acamera_isp_fr_gamma_rgb_gain_g_read(uintptr_t base)16911 static __inline uint16_t acamera_isp_fr_gamma_rgb_gain_g_read(uintptr_t base) {
16912     return (uint16_t)((system_sw_read_32(base + 0x1c068L) & 0xfff0000) >> 16);
16913 }
16914 // ------------------------------------------------------------------------------ //
16915 // Register: gain_b
16916 // ------------------------------------------------------------------------------ //
16917 
16918 // ------------------------------------------------------------------------------ //
16919 // gain applied to the B chanel in 4.8 format
16920 // ------------------------------------------------------------------------------ //
16921 
16922 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_B_DEFAULT (0x100)
16923 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_B_DATASIZE (12)
16924 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_B_OFFSET (0x31e4)
16925 #define ACAMERA_ISP_FR_GAMMA_RGB_GAIN_B_MASK (0xfff)
16926 
16927 // args: data (12-bit)
acamera_isp_fr_gamma_rgb_gain_b_write(uintptr_t base,uint16_t data)16928 static __inline void acamera_isp_fr_gamma_rgb_gain_b_write(uintptr_t base, uint16_t data) {
16929     uint32_t curr = system_sw_read_32(base + 0x1c06cL);
16930     system_sw_write_32(base + 0x1c06cL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
16931 }
acamera_isp_fr_gamma_rgb_gain_b_read(uintptr_t base)16932 static __inline uint16_t acamera_isp_fr_gamma_rgb_gain_b_read(uintptr_t base) {
16933     return (uint16_t)((system_sw_read_32(base + 0x1c06cL) & 0xfff) >> 0);
16934 }
16935 // ------------------------------------------------------------------------------ //
16936 // Register: offset_r
16937 // ------------------------------------------------------------------------------ //
16938 
16939 // ------------------------------------------------------------------------------ //
16940 // Offset subtracted from the R chanel
16941 // ------------------------------------------------------------------------------ //
16942 
16943 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_R_DEFAULT (0)
16944 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_R_DATASIZE (12)
16945 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_R_OFFSET (0x31e8)
16946 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_R_MASK (0xfff)
16947 
16948 // args: data (12-bit)
acamera_isp_fr_gamma_rgb_offset_r_write(uintptr_t base,uint16_t data)16949 static __inline void acamera_isp_fr_gamma_rgb_offset_r_write(uintptr_t base, uint16_t data) {
16950     uint32_t curr = system_sw_read_32(base + 0x1c070L);
16951     system_sw_write_32(base + 0x1c070L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
16952 }
acamera_isp_fr_gamma_rgb_offset_r_read(uintptr_t base)16953 static __inline uint16_t acamera_isp_fr_gamma_rgb_offset_r_read(uintptr_t base) {
16954     return (uint16_t)((system_sw_read_32(base + 0x1c070L) & 0xfff) >> 0);
16955 }
16956 // ------------------------------------------------------------------------------ //
16957 // Register: offset_g
16958 // ------------------------------------------------------------------------------ //
16959 
16960 // ------------------------------------------------------------------------------ //
16961 // Offset subtracted from the G chanel
16962 // ------------------------------------------------------------------------------ //
16963 
16964 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_G_DEFAULT (0)
16965 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_G_DATASIZE (12)
16966 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_G_OFFSET (0x31e8)
16967 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_G_MASK (0xfff0000)
16968 
16969 // args: data (12-bit)
acamera_isp_fr_gamma_rgb_offset_g_write(uintptr_t base,uint16_t data)16970 static __inline void acamera_isp_fr_gamma_rgb_offset_g_write(uintptr_t base, uint16_t data) {
16971     uint32_t curr = system_sw_read_32(base + 0x1c070L);
16972     system_sw_write_32(base + 0x1c070L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
16973 }
acamera_isp_fr_gamma_rgb_offset_g_read(uintptr_t base)16974 static __inline uint16_t acamera_isp_fr_gamma_rgb_offset_g_read(uintptr_t base) {
16975     return (uint16_t)((system_sw_read_32(base + 0x1c070L) & 0xfff0000) >> 16);
16976 }
16977 // ------------------------------------------------------------------------------ //
16978 // Register: offset_b
16979 // ------------------------------------------------------------------------------ //
16980 
16981 // ------------------------------------------------------------------------------ //
16982 // Offset subtracted from the B chanel
16983 // ------------------------------------------------------------------------------ //
16984 
16985 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_B_DEFAULT (0)
16986 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_B_DATASIZE (12)
16987 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_B_OFFSET (0x31ec)
16988 #define ACAMERA_ISP_FR_GAMMA_RGB_OFFSET_B_MASK (0xfff)
16989 
16990 // args: data (12-bit)
acamera_isp_fr_gamma_rgb_offset_b_write(uintptr_t base,uint16_t data)16991 static __inline void acamera_isp_fr_gamma_rgb_offset_b_write(uintptr_t base, uint16_t data) {
16992     uint32_t curr = system_sw_read_32(base + 0x1c074L);
16993     system_sw_write_32(base + 0x1c074L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
16994 }
acamera_isp_fr_gamma_rgb_offset_b_read(uintptr_t base)16995 static __inline uint16_t acamera_isp_fr_gamma_rgb_offset_b_read(uintptr_t base) {
16996     return (uint16_t)((system_sw_read_32(base + 0x1c074L) & 0xfff) >> 0);
16997 }
16998 // ------------------------------------------------------------------------------ //
16999 // Group: fr sharpen
17000 // ------------------------------------------------------------------------------ //
17001 
17002 // ------------------------------------------------------------------------------ //
17003 // Sharpen
17004 // ------------------------------------------------------------------------------ //
17005 
17006 // ------------------------------------------------------------------------------ //
17007 // Register: Enable
17008 // ------------------------------------------------------------------------------ //
17009 
17010 // ------------------------------------------------------------------------------ //
17011 // Sharpening enable: 0=off, 1=on
17012 // ------------------------------------------------------------------------------ //
17013 
17014 #define ACAMERA_ISP_FR_SHARPEN_ENABLE_DEFAULT (0)
17015 #define ACAMERA_ISP_FR_SHARPEN_ENABLE_DATASIZE (1)
17016 #define ACAMERA_ISP_FR_SHARPEN_ENABLE_OFFSET (0x31f0)
17017 #define ACAMERA_ISP_FR_SHARPEN_ENABLE_MASK (0x1)
17018 
17019 // args: data (1-bit)
acamera_isp_fr_sharpen_enable_write(uintptr_t base,uint8_t data)17020 static __inline void acamera_isp_fr_sharpen_enable_write(uintptr_t base, uint8_t data) {
17021     uint32_t curr = system_sw_read_32(base + 0x1c078L);
17022     system_sw_write_32(base + 0x1c078L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
17023 }
acamera_isp_fr_sharpen_enable_read(uintptr_t base)17024 static __inline uint8_t acamera_isp_fr_sharpen_enable_read(uintptr_t base) {
17025     return (uint8_t)((system_sw_read_32(base + 0x1c078L) & 0x1) >> 0);
17026 }
17027 // ------------------------------------------------------------------------------ //
17028 // Register: Strength
17029 // ------------------------------------------------------------------------------ //
17030 
17031 // ------------------------------------------------------------------------------ //
17032 // Controls strength of sharpening effect. u5.4
17033 // ------------------------------------------------------------------------------ //
17034 
17035 #define ACAMERA_ISP_FR_SHARPEN_STRENGTH_DEFAULT (0x10)
17036 #define ACAMERA_ISP_FR_SHARPEN_STRENGTH_DATASIZE (9)
17037 #define ACAMERA_ISP_FR_SHARPEN_STRENGTH_OFFSET (0x31f4)
17038 #define ACAMERA_ISP_FR_SHARPEN_STRENGTH_MASK (0x1ff)
17039 
17040 // args: data (9-bit)
acamera_isp_fr_sharpen_strength_write(uintptr_t base,uint16_t data)17041 static __inline void acamera_isp_fr_sharpen_strength_write(uintptr_t base, uint16_t data) {
17042     uint32_t curr = system_sw_read_32(base + 0x1c07cL);
17043     system_sw_write_32(base + 0x1c07cL, (((uint32_t) (data & 0x1ff)) << 0) | (curr & 0xfffffe00));
17044 }
acamera_isp_fr_sharpen_strength_read(uintptr_t base)17045 static __inline uint16_t acamera_isp_fr_sharpen_strength_read(uintptr_t base) {
17046     return (uint16_t)((system_sw_read_32(base + 0x1c07cL) & 0x1ff) >> 0);
17047 }
17048 // ------------------------------------------------------------------------------ //
17049 // Register: Control R
17050 // ------------------------------------------------------------------------------ //
17051 
17052 #define ACAMERA_ISP_FR_SHARPEN_CONTROL_R_DEFAULT (0x4C)
17053 #define ACAMERA_ISP_FR_SHARPEN_CONTROL_R_DATASIZE (8)
17054 #define ACAMERA_ISP_FR_SHARPEN_CONTROL_R_OFFSET (0x31f8)
17055 #define ACAMERA_ISP_FR_SHARPEN_CONTROL_R_MASK (0xff)
17056 
17057 // args: data (8-bit)
acamera_isp_fr_sharpen_control_r_write(uintptr_t base,uint8_t data)17058 static __inline void acamera_isp_fr_sharpen_control_r_write(uintptr_t base, uint8_t data) {
17059     uint32_t curr = system_sw_read_32(base + 0x1c080L);
17060     system_sw_write_32(base + 0x1c080L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
17061 }
acamera_isp_fr_sharpen_control_r_read(uintptr_t base)17062 static __inline uint8_t acamera_isp_fr_sharpen_control_r_read(uintptr_t base) {
17063     return (uint8_t)((system_sw_read_32(base + 0x1c080L) & 0xff) >> 0);
17064 }
17065 // ------------------------------------------------------------------------------ //
17066 //  Luma transform red coefficient. u0.8
17067 // ------------------------------------------------------------------------------ //
17068 
17069 // ------------------------------------------------------------------------------ //
17070 // Register: Control B
17071 // ------------------------------------------------------------------------------ //
17072 
17073 #define ACAMERA_ISP_FR_SHARPEN_CONTROL_B_DEFAULT (0x1E)
17074 #define ACAMERA_ISP_FR_SHARPEN_CONTROL_B_DATASIZE (8)
17075 #define ACAMERA_ISP_FR_SHARPEN_CONTROL_B_OFFSET (0x31f8)
17076 #define ACAMERA_ISP_FR_SHARPEN_CONTROL_B_MASK (0xff00)
17077 
17078 // args: data (8-bit)
acamera_isp_fr_sharpen_control_b_write(uintptr_t base,uint8_t data)17079 static __inline void acamera_isp_fr_sharpen_control_b_write(uintptr_t base, uint8_t data) {
17080     uint32_t curr = system_sw_read_32(base + 0x1c080L);
17081     system_sw_write_32(base + 0x1c080L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
17082 }
acamera_isp_fr_sharpen_control_b_read(uintptr_t base)17083 static __inline uint8_t acamera_isp_fr_sharpen_control_b_read(uintptr_t base) {
17084     return (uint8_t)((system_sw_read_32(base + 0x1c080L) & 0xff00) >> 8);
17085 }
17086 // ------------------------------------------------------------------------------ //
17087 //  Luma transform blue coefficient. u0.8
17088 // ------------------------------------------------------------------------------ //
17089 
17090 // ------------------------------------------------------------------------------ //
17091 // Register: Alpha Undershoot
17092 // ------------------------------------------------------------------------------ //
17093 
17094 // ------------------------------------------------------------------------------ //
17095 //  Alpha blending of undershoot and overshoot u0.7, 0 = only unsershoot, 255 = only overshoot
17096 // ------------------------------------------------------------------------------ //
17097 
17098 #define ACAMERA_ISP_FR_SHARPEN_ALPHA_UNDERSHOOT_DEFAULT (0x13)
17099 #define ACAMERA_ISP_FR_SHARPEN_ALPHA_UNDERSHOOT_DATASIZE (8)
17100 #define ACAMERA_ISP_FR_SHARPEN_ALPHA_UNDERSHOOT_OFFSET (0x31f8)
17101 #define ACAMERA_ISP_FR_SHARPEN_ALPHA_UNDERSHOOT_MASK (0xff0000)
17102 
17103 // args: data (8-bit)
acamera_isp_fr_sharpen_alpha_undershoot_write(uintptr_t base,uint8_t data)17104 static __inline void acamera_isp_fr_sharpen_alpha_undershoot_write(uintptr_t base, uint8_t data) {
17105     uint32_t curr = system_sw_read_32(base + 0x1c080L);
17106     system_sw_write_32(base + 0x1c080L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
17107 }
acamera_isp_fr_sharpen_alpha_undershoot_read(uintptr_t base)17108 static __inline uint8_t acamera_isp_fr_sharpen_alpha_undershoot_read(uintptr_t base) {
17109     return (uint8_t)((system_sw_read_32(base + 0x1c080L) & 0xff0000) >> 16);
17110 }
17111 // ------------------------------------------------------------------------------ //
17112 // Register: Luma Thresh Low
17113 // ------------------------------------------------------------------------------ //
17114 
17115 // ------------------------------------------------------------------------------ //
17116 //  Luma threshold below this value, no sharpening will be applied.
17117 // ------------------------------------------------------------------------------ //
17118 
17119 #define ACAMERA_ISP_FR_SHARPEN_LUMA_THRESH_LOW_DEFAULT (0x000)
17120 #define ACAMERA_ISP_FR_SHARPEN_LUMA_THRESH_LOW_DATASIZE (10)
17121 #define ACAMERA_ISP_FR_SHARPEN_LUMA_THRESH_LOW_OFFSET (0x31fc)
17122 #define ACAMERA_ISP_FR_SHARPEN_LUMA_THRESH_LOW_MASK (0x3ff)
17123 
17124 // args: data (10-bit)
acamera_isp_fr_sharpen_luma_thresh_low_write(uintptr_t base,uint16_t data)17125 static __inline void acamera_isp_fr_sharpen_luma_thresh_low_write(uintptr_t base, uint16_t data) {
17126     uint32_t curr = system_sw_read_32(base + 0x1c084L);
17127     system_sw_write_32(base + 0x1c084L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
17128 }
acamera_isp_fr_sharpen_luma_thresh_low_read(uintptr_t base)17129 static __inline uint16_t acamera_isp_fr_sharpen_luma_thresh_low_read(uintptr_t base) {
17130     return (uint16_t)((system_sw_read_32(base + 0x1c084L) & 0x3ff) >> 0);
17131 }
17132 // ------------------------------------------------------------------------------ //
17133 // Register: Luma Offset Low
17134 // ------------------------------------------------------------------------------ //
17135 
17136 // ------------------------------------------------------------------------------ //
17137 //  Luma offset (min value) of thre region of less than Luma Thresh Low.
17138 // ------------------------------------------------------------------------------ //
17139 
17140 #define ACAMERA_ISP_FR_SHARPEN_LUMA_OFFSET_LOW_DEFAULT (0x000)
17141 #define ACAMERA_ISP_FR_SHARPEN_LUMA_OFFSET_LOW_DATASIZE (8)
17142 #define ACAMERA_ISP_FR_SHARPEN_LUMA_OFFSET_LOW_OFFSET (0x31fc)
17143 #define ACAMERA_ISP_FR_SHARPEN_LUMA_OFFSET_LOW_MASK (0xff0000)
17144 
17145 // args: data (8-bit)
acamera_isp_fr_sharpen_luma_offset_low_write(uintptr_t base,uint8_t data)17146 static __inline void acamera_isp_fr_sharpen_luma_offset_low_write(uintptr_t base, uint8_t data) {
17147     uint32_t curr = system_sw_read_32(base + 0x1c084L);
17148     system_sw_write_32(base + 0x1c084L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
17149 }
acamera_isp_fr_sharpen_luma_offset_low_read(uintptr_t base)17150 static __inline uint8_t acamera_isp_fr_sharpen_luma_offset_low_read(uintptr_t base) {
17151     return (uint8_t)((system_sw_read_32(base + 0x1c084L) & 0xff0000) >> 16);
17152 }
17153 // ------------------------------------------------------------------------------ //
17154 // Register: Luma Slope Low
17155 // ------------------------------------------------------------------------------ //
17156 
17157 // ------------------------------------------------------------------------------ //
17158 //  Luma linear threshold slope at dark luminance region
17159 // ------------------------------------------------------------------------------ //
17160 
17161 #define ACAMERA_ISP_FR_SHARPEN_LUMA_SLOPE_LOW_DEFAULT (0x03FC)
17162 #define ACAMERA_ISP_FR_SHARPEN_LUMA_SLOPE_LOW_DATASIZE (16)
17163 #define ACAMERA_ISP_FR_SHARPEN_LUMA_SLOPE_LOW_OFFSET (0x3200)
17164 #define ACAMERA_ISP_FR_SHARPEN_LUMA_SLOPE_LOW_MASK (0xffff)
17165 
17166 // args: data (16-bit)
acamera_isp_fr_sharpen_luma_slope_low_write(uintptr_t base,uint16_t data)17167 static __inline void acamera_isp_fr_sharpen_luma_slope_low_write(uintptr_t base, uint16_t data) {
17168     uint32_t curr = system_sw_read_32(base + 0x1c088L);
17169     system_sw_write_32(base + 0x1c088L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
17170 }
acamera_isp_fr_sharpen_luma_slope_low_read(uintptr_t base)17171 static __inline uint16_t acamera_isp_fr_sharpen_luma_slope_low_read(uintptr_t base) {
17172     return (uint16_t)((system_sw_read_32(base + 0x1c088L) & 0xffff) >> 0);
17173 }
17174 // ------------------------------------------------------------------------------ //
17175 // Register: Luma Thresh High
17176 // ------------------------------------------------------------------------------ //
17177 
17178 // ------------------------------------------------------------------------------ //
17179 //  Luma threshold above this value, sharpening level will be dicreased.
17180 // ------------------------------------------------------------------------------ //
17181 
17182 #define ACAMERA_ISP_FR_SHARPEN_LUMA_THRESH_HIGH_DEFAULT (0x332)
17183 #define ACAMERA_ISP_FR_SHARPEN_LUMA_THRESH_HIGH_DATASIZE (10)
17184 #define ACAMERA_ISP_FR_SHARPEN_LUMA_THRESH_HIGH_OFFSET (0x3200)
17185 #define ACAMERA_ISP_FR_SHARPEN_LUMA_THRESH_HIGH_MASK (0x3ff0000)
17186 
17187 // args: data (10-bit)
acamera_isp_fr_sharpen_luma_thresh_high_write(uintptr_t base,uint16_t data)17188 static __inline void acamera_isp_fr_sharpen_luma_thresh_high_write(uintptr_t base, uint16_t data) {
17189     uint32_t curr = system_sw_read_32(base + 0x1c088L);
17190     system_sw_write_32(base + 0x1c088L, (((uint32_t) (data & 0x3ff)) << 16) | (curr & 0xfc00ffff));
17191 }
acamera_isp_fr_sharpen_luma_thresh_high_read(uintptr_t base)17192 static __inline uint16_t acamera_isp_fr_sharpen_luma_thresh_high_read(uintptr_t base) {
17193     return (uint16_t)((system_sw_read_32(base + 0x1c088L) & 0x3ff0000) >> 16);
17194 }
17195 // ------------------------------------------------------------------------------ //
17196 // Register: Luma Offset High
17197 // ------------------------------------------------------------------------------ //
17198 
17199 // ------------------------------------------------------------------------------ //
17200 //  Luma offset (min value) of thre region of more than Luma Thresh High.
17201 // ------------------------------------------------------------------------------ //
17202 
17203 #define ACAMERA_ISP_FR_SHARPEN_LUMA_OFFSET_HIGH_DEFAULT (0x000)
17204 #define ACAMERA_ISP_FR_SHARPEN_LUMA_OFFSET_HIGH_DATASIZE (8)
17205 #define ACAMERA_ISP_FR_SHARPEN_LUMA_OFFSET_HIGH_OFFSET (0x3204)
17206 #define ACAMERA_ISP_FR_SHARPEN_LUMA_OFFSET_HIGH_MASK (0xff)
17207 
17208 // args: data (8-bit)
acamera_isp_fr_sharpen_luma_offset_high_write(uintptr_t base,uint8_t data)17209 static __inline void acamera_isp_fr_sharpen_luma_offset_high_write(uintptr_t base, uint8_t data) {
17210     uint32_t curr = system_sw_read_32(base + 0x1c08cL);
17211     system_sw_write_32(base + 0x1c08cL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
17212 }
acamera_isp_fr_sharpen_luma_offset_high_read(uintptr_t base)17213 static __inline uint8_t acamera_isp_fr_sharpen_luma_offset_high_read(uintptr_t base) {
17214     return (uint8_t)((system_sw_read_32(base + 0x1c08cL) & 0xff) >> 0);
17215 }
17216 // ------------------------------------------------------------------------------ //
17217 // Register: Luma Slope High
17218 // ------------------------------------------------------------------------------ //
17219 
17220 // ------------------------------------------------------------------------------ //
17221 //  Luma linear threshold slope at bright luminance region
17222 // ------------------------------------------------------------------------------ //
17223 
17224 #define ACAMERA_ISP_FR_SHARPEN_LUMA_SLOPE_HIGH_DEFAULT (0x06A4)
17225 #define ACAMERA_ISP_FR_SHARPEN_LUMA_SLOPE_HIGH_DATASIZE (16)
17226 #define ACAMERA_ISP_FR_SHARPEN_LUMA_SLOPE_HIGH_OFFSET (0x3204)
17227 #define ACAMERA_ISP_FR_SHARPEN_LUMA_SLOPE_HIGH_MASK (0xffff0000)
17228 
17229 // args: data (16-bit)
acamera_isp_fr_sharpen_luma_slope_high_write(uintptr_t base,uint16_t data)17230 static __inline void acamera_isp_fr_sharpen_luma_slope_high_write(uintptr_t base, uint16_t data) {
17231     uint32_t curr = system_sw_read_32(base + 0x1c08cL);
17232     system_sw_write_32(base + 0x1c08cL, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
17233 }
acamera_isp_fr_sharpen_luma_slope_high_read(uintptr_t base)17234 static __inline uint16_t acamera_isp_fr_sharpen_luma_slope_high_read(uintptr_t base) {
17235     return (uint16_t)((system_sw_read_32(base + 0x1c08cL) & 0xffff0000) >> 16);
17236 }
17237 // ------------------------------------------------------------------------------ //
17238 // Register: Clip Str Max
17239 // ------------------------------------------------------------------------------ //
17240 
17241 // ------------------------------------------------------------------------------ //
17242 //  clips sharpening mask of max value. This will control overshoot. U0.14. (0 ~ 16383)
17243 // ------------------------------------------------------------------------------ //
17244 
17245 #define ACAMERA_ISP_FR_SHARPEN_CLIP_STR_MAX_DEFAULT (0x3FFF)
17246 #define ACAMERA_ISP_FR_SHARPEN_CLIP_STR_MAX_DATASIZE (14)
17247 #define ACAMERA_ISP_FR_SHARPEN_CLIP_STR_MAX_OFFSET (0x3208)
17248 #define ACAMERA_ISP_FR_SHARPEN_CLIP_STR_MAX_MASK (0x3fff)
17249 
17250 // args: data (14-bit)
acamera_isp_fr_sharpen_clip_str_max_write(uintptr_t base,uint16_t data)17251 static __inline void acamera_isp_fr_sharpen_clip_str_max_write(uintptr_t base, uint16_t data) {
17252     uint32_t curr = system_sw_read_32(base + 0x1c090L);
17253     system_sw_write_32(base + 0x1c090L, (((uint32_t) (data & 0x3fff)) << 0) | (curr & 0xffffc000));
17254 }
acamera_isp_fr_sharpen_clip_str_max_read(uintptr_t base)17255 static __inline uint16_t acamera_isp_fr_sharpen_clip_str_max_read(uintptr_t base) {
17256     return (uint16_t)((system_sw_read_32(base + 0x1c090L) & 0x3fff) >> 0);
17257 }
17258 // ------------------------------------------------------------------------------ //
17259 // Register: Clip Str Min
17260 // ------------------------------------------------------------------------------ //
17261 
17262 // ------------------------------------------------------------------------------ //
17263 //  clips sharpening mask of min value. This will control undershoot. U0.14. It is used as negative value. (0 ~ -16383)
17264 // ------------------------------------------------------------------------------ //
17265 
17266 #define ACAMERA_ISP_FR_SHARPEN_CLIP_STR_MIN_DEFAULT (0x00CD)
17267 #define ACAMERA_ISP_FR_SHARPEN_CLIP_STR_MIN_DATASIZE (14)
17268 #define ACAMERA_ISP_FR_SHARPEN_CLIP_STR_MIN_OFFSET (0x3208)
17269 #define ACAMERA_ISP_FR_SHARPEN_CLIP_STR_MIN_MASK (0x3fff0000)
17270 
17271 // args: data (14-bit)
acamera_isp_fr_sharpen_clip_str_min_write(uintptr_t base,uint16_t data)17272 static __inline void acamera_isp_fr_sharpen_clip_str_min_write(uintptr_t base, uint16_t data) {
17273     uint32_t curr = system_sw_read_32(base + 0x1c090L);
17274     system_sw_write_32(base + 0x1c090L, (((uint32_t) (data & 0x3fff)) << 16) | (curr & 0xc000ffff));
17275 }
acamera_isp_fr_sharpen_clip_str_min_read(uintptr_t base)17276 static __inline uint16_t acamera_isp_fr_sharpen_clip_str_min_read(uintptr_t base) {
17277     return (uint16_t)((system_sw_read_32(base + 0x1c090L) & 0x3fff0000) >> 16);
17278 }
17279 // ------------------------------------------------------------------------------ //
17280 // Register: Debug
17281 // ------------------------------------------------------------------------------ //
17282 
17283 // ------------------------------------------------------------------------------ //
17284 //  To support different debug output. 0 = normal operation, 1 = luma, 2 = sharpening mask
17285 // ------------------------------------------------------------------------------ //
17286 
17287 #define ACAMERA_ISP_FR_SHARPEN_DEBUG_DEFAULT (0)
17288 #define ACAMERA_ISP_FR_SHARPEN_DEBUG_DATASIZE (4)
17289 #define ACAMERA_ISP_FR_SHARPEN_DEBUG_OFFSET (0x320c)
17290 #define ACAMERA_ISP_FR_SHARPEN_DEBUG_MASK (0xf)
17291 
17292 // args: data (4-bit)
acamera_isp_fr_sharpen_debug_write(uintptr_t base,uint8_t data)17293 static __inline void acamera_isp_fr_sharpen_debug_write(uintptr_t base, uint8_t data) {
17294     uint32_t curr = system_sw_read_32(base + 0x1c094L);
17295     system_sw_write_32(base + 0x1c094L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
17296 }
acamera_isp_fr_sharpen_debug_read(uintptr_t base)17297 static __inline uint8_t acamera_isp_fr_sharpen_debug_read(uintptr_t base) {
17298     return (uint8_t)((system_sw_read_32(base + 0x1c094L) & 0xf) >> 0);
17299 }
17300 // ------------------------------------------------------------------------------ //
17301 // Group: fr cs conv
17302 // ------------------------------------------------------------------------------ //
17303 
17304 // ------------------------------------------------------------------------------ //
17305 // Conversion of RGB to YUV data using a 3x3 color matrix plus offsets
17306 // ------------------------------------------------------------------------------ //
17307 
17308 // ------------------------------------------------------------------------------ //
17309 // Register: Enable matrix
17310 // ------------------------------------------------------------------------------ //
17311 
17312 // ------------------------------------------------------------------------------ //
17313 // Color matrix enable: 0=off 1=on
17314 // ------------------------------------------------------------------------------ //
17315 
17316 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_MATRIX_DEFAULT (0)
17317 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_MATRIX_DATASIZE (1)
17318 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_MATRIX_OFFSET (0x3210)
17319 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_MATRIX_MASK (0x1)
17320 
17321 // args: data (1-bit)
acamera_isp_fr_cs_conv_enable_matrix_write(uintptr_t base,uint8_t data)17322 static __inline void acamera_isp_fr_cs_conv_enable_matrix_write(uintptr_t base, uint8_t data) {
17323     uint32_t curr = system_sw_read_32(base + 0x1c098L);
17324     system_sw_write_32(base + 0x1c098L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
17325 }
acamera_isp_fr_cs_conv_enable_matrix_read(uintptr_t base)17326 static __inline uint8_t acamera_isp_fr_cs_conv_enable_matrix_read(uintptr_t base) {
17327     return (uint8_t)((system_sw_read_32(base + 0x1c098L) & 0x1) >> 0);
17328 }
17329 // ------------------------------------------------------------------------------ //
17330 // Register: Enable filter
17331 // ------------------------------------------------------------------------------ //
17332 
17333 // ------------------------------------------------------------------------------ //
17334 // Filter enable: 0=off 1=on
17335 // ------------------------------------------------------------------------------ //
17336 
17337 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_FILTER_DEFAULT (0)
17338 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_FILTER_DATASIZE (1)
17339 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_FILTER_OFFSET (0x3210)
17340 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_FILTER_MASK (0x2)
17341 
17342 // args: data (1-bit)
acamera_isp_fr_cs_conv_enable_filter_write(uintptr_t base,uint8_t data)17343 static __inline void acamera_isp_fr_cs_conv_enable_filter_write(uintptr_t base, uint8_t data) {
17344     uint32_t curr = system_sw_read_32(base + 0x1c098L);
17345     system_sw_write_32(base + 0x1c098L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
17346 }
acamera_isp_fr_cs_conv_enable_filter_read(uintptr_t base)17347 static __inline uint8_t acamera_isp_fr_cs_conv_enable_filter_read(uintptr_t base) {
17348     return (uint8_t)((system_sw_read_32(base + 0x1c098L) & 0x2) >> 1);
17349 }
17350 // ------------------------------------------------------------------------------ //
17351 // Register: Enable horizontal downsample
17352 // ------------------------------------------------------------------------------ //
17353 
17354 // ------------------------------------------------------------------------------ //
17355 // Horizontal Downsampling Enable: 0=off 1=on
17356 // ------------------------------------------------------------------------------ //
17357 
17358 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_HORIZONTAL_DOWNSAMPLE_DEFAULT (0)
17359 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_HORIZONTAL_DOWNSAMPLE_DATASIZE (1)
17360 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_HORIZONTAL_DOWNSAMPLE_OFFSET (0x3210)
17361 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_HORIZONTAL_DOWNSAMPLE_MASK (0x4)
17362 
17363 // args: data (1-bit)
acamera_isp_fr_cs_conv_enable_horizontal_downsample_write(uintptr_t base,uint8_t data)17364 static __inline void acamera_isp_fr_cs_conv_enable_horizontal_downsample_write(uintptr_t base, uint8_t data) {
17365     uint32_t curr = system_sw_read_32(base + 0x1c098L);
17366     system_sw_write_32(base + 0x1c098L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
17367 }
acamera_isp_fr_cs_conv_enable_horizontal_downsample_read(uintptr_t base)17368 static __inline uint8_t acamera_isp_fr_cs_conv_enable_horizontal_downsample_read(uintptr_t base) {
17369     return (uint8_t)((system_sw_read_32(base + 0x1c098L) & 0x4) >> 2);
17370 }
17371 // ------------------------------------------------------------------------------ //
17372 // Register: Enable vertical downsample
17373 // ------------------------------------------------------------------------------ //
17374 
17375 // ------------------------------------------------------------------------------ //
17376 // Vertical Downsampling Enable: 0=off 1=on
17377 // ------------------------------------------------------------------------------ //
17378 
17379 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_VERTICAL_DOWNSAMPLE_DEFAULT (0)
17380 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_VERTICAL_DOWNSAMPLE_DATASIZE (1)
17381 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_VERTICAL_DOWNSAMPLE_OFFSET (0x3210)
17382 #define ACAMERA_ISP_FR_CS_CONV_ENABLE_VERTICAL_DOWNSAMPLE_MASK (0x8)
17383 
17384 // args: data (1-bit)
acamera_isp_fr_cs_conv_enable_vertical_downsample_write(uintptr_t base,uint8_t data)17385 static __inline void acamera_isp_fr_cs_conv_enable_vertical_downsample_write(uintptr_t base, uint8_t data) {
17386     uint32_t curr = system_sw_read_32(base + 0x1c098L);
17387     system_sw_write_32(base + 0x1c098L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
17388 }
acamera_isp_fr_cs_conv_enable_vertical_downsample_read(uintptr_t base)17389 static __inline uint8_t acamera_isp_fr_cs_conv_enable_vertical_downsample_read(uintptr_t base) {
17390     return (uint8_t)((system_sw_read_32(base + 0x1c098L) & 0x8) >> 3);
17391 }
17392 // ------------------------------------------------------------------------------ //
17393 // Register: Coefft 11
17394 // ------------------------------------------------------------------------------ //
17395 
17396 // ------------------------------------------------------------------------------ //
17397 // Matrix coefficient for R-Y multiplier
17398 // ------------------------------------------------------------------------------ //
17399 
17400 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_11_DEFAULT (0x002f)
17401 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_11_DATASIZE (16)
17402 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_11_OFFSET (0x3214)
17403 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_11_MASK (0xffff)
17404 
17405 // args: data (16-bit)
acamera_isp_fr_cs_conv_coefft_11_write(uintptr_t base,uint16_t data)17406 static __inline void acamera_isp_fr_cs_conv_coefft_11_write(uintptr_t base, uint16_t data) {
17407     uint32_t curr = system_sw_read_32(base + 0x1c09cL);
17408     system_sw_write_32(base + 0x1c09cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
17409 }
acamera_isp_fr_cs_conv_coefft_11_read(uintptr_t base)17410 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_11_read(uintptr_t base) {
17411     return (uint16_t)((system_sw_read_32(base + 0x1c09cL) & 0xffff) >> 0);
17412 }
17413 // ------------------------------------------------------------------------------ //
17414 // Register: Coefft 12
17415 // ------------------------------------------------------------------------------ //
17416 
17417 // ------------------------------------------------------------------------------ //
17418 // Matrix coefficient for G-Y multiplier
17419 // ------------------------------------------------------------------------------ //
17420 
17421 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_12_DEFAULT (0x009d)
17422 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_12_DATASIZE (16)
17423 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_12_OFFSET (0x3218)
17424 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_12_MASK (0xffff)
17425 
17426 // args: data (16-bit)
acamera_isp_fr_cs_conv_coefft_12_write(uintptr_t base,uint16_t data)17427 static __inline void acamera_isp_fr_cs_conv_coefft_12_write(uintptr_t base, uint16_t data) {
17428     uint32_t curr = system_sw_read_32(base + 0x1c0a0L);
17429     system_sw_write_32(base + 0x1c0a0L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
17430 }
acamera_isp_fr_cs_conv_coefft_12_read(uintptr_t base)17431 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_12_read(uintptr_t base) {
17432     return (uint16_t)((system_sw_read_32(base + 0x1c0a0L) & 0xffff) >> 0);
17433 }
17434 // ------------------------------------------------------------------------------ //
17435 // Register: Coefft 13
17436 // ------------------------------------------------------------------------------ //
17437 
17438 // ------------------------------------------------------------------------------ //
17439 // Matrix coefficient for B-Y multiplier
17440 // ------------------------------------------------------------------------------ //
17441 
17442 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_13_DEFAULT (0x0010)
17443 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_13_DATASIZE (16)
17444 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_13_OFFSET (0x321c)
17445 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_13_MASK (0xffff)
17446 
17447 // args: data (16-bit)
acamera_isp_fr_cs_conv_coefft_13_write(uintptr_t base,uint16_t data)17448 static __inline void acamera_isp_fr_cs_conv_coefft_13_write(uintptr_t base, uint16_t data) {
17449     uint32_t curr = system_sw_read_32(base + 0x1c0a4L);
17450     system_sw_write_32(base + 0x1c0a4L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
17451 }
acamera_isp_fr_cs_conv_coefft_13_read(uintptr_t base)17452 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_13_read(uintptr_t base) {
17453     return (uint16_t)((system_sw_read_32(base + 0x1c0a4L) & 0xffff) >> 0);
17454 }
17455 // ------------------------------------------------------------------------------ //
17456 // Register: Coefft 21
17457 // ------------------------------------------------------------------------------ //
17458 
17459 // ------------------------------------------------------------------------------ //
17460 // Matrix coefficient for R-Cb multiplier
17461 // ------------------------------------------------------------------------------ //
17462 
17463 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_21_DEFAULT (0x801a)
17464 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_21_DATASIZE (16)
17465 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_21_OFFSET (0x3220)
17466 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_21_MASK (0xffff)
17467 
17468 // args: data (16-bit)
acamera_isp_fr_cs_conv_coefft_21_write(uintptr_t base,uint16_t data)17469 static __inline void acamera_isp_fr_cs_conv_coefft_21_write(uintptr_t base, uint16_t data) {
17470     uint32_t curr = system_sw_read_32(base + 0x1c0a8L);
17471     system_sw_write_32(base + 0x1c0a8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
17472 }
acamera_isp_fr_cs_conv_coefft_21_read(uintptr_t base)17473 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_21_read(uintptr_t base) {
17474     return (uint16_t)((system_sw_read_32(base + 0x1c0a8L) & 0xffff) >> 0);
17475 }
17476 // ------------------------------------------------------------------------------ //
17477 // Register: Coefft 22
17478 // ------------------------------------------------------------------------------ //
17479 
17480 // ------------------------------------------------------------------------------ //
17481 // Matrix coefficient for G-Cb multiplier
17482 // ------------------------------------------------------------------------------ //
17483 
17484 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_22_DEFAULT (0x8057)
17485 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_22_DATASIZE (16)
17486 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_22_OFFSET (0x3224)
17487 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_22_MASK (0xffff)
17488 
17489 // args: data (16-bit)
acamera_isp_fr_cs_conv_coefft_22_write(uintptr_t base,uint16_t data)17490 static __inline void acamera_isp_fr_cs_conv_coefft_22_write(uintptr_t base, uint16_t data) {
17491     uint32_t curr = system_sw_read_32(base + 0x1c0acL);
17492     system_sw_write_32(base + 0x1c0acL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
17493 }
acamera_isp_fr_cs_conv_coefft_22_read(uintptr_t base)17494 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_22_read(uintptr_t base) {
17495     return (uint16_t)((system_sw_read_32(base + 0x1c0acL) & 0xffff) >> 0);
17496 }
17497 // ------------------------------------------------------------------------------ //
17498 // Register: Coefft 23
17499 // ------------------------------------------------------------------------------ //
17500 
17501 // ------------------------------------------------------------------------------ //
17502 // Matrix coefficient for B-Cb multiplier
17503 // ------------------------------------------------------------------------------ //
17504 
17505 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_23_DEFAULT (0x0070)
17506 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_23_DATASIZE (16)
17507 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_23_OFFSET (0x3228)
17508 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_23_MASK (0xffff)
17509 
17510 // args: data (16-bit)
acamera_isp_fr_cs_conv_coefft_23_write(uintptr_t base,uint16_t data)17511 static __inline void acamera_isp_fr_cs_conv_coefft_23_write(uintptr_t base, uint16_t data) {
17512     uint32_t curr = system_sw_read_32(base + 0x1c0b0L);
17513     system_sw_write_32(base + 0x1c0b0L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
17514 }
acamera_isp_fr_cs_conv_coefft_23_read(uintptr_t base)17515 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_23_read(uintptr_t base) {
17516     return (uint16_t)((system_sw_read_32(base + 0x1c0b0L) & 0xffff) >> 0);
17517 }
17518 // ------------------------------------------------------------------------------ //
17519 // Register: Coefft 31
17520 // ------------------------------------------------------------------------------ //
17521 
17522 // ------------------------------------------------------------------------------ //
17523 // Matrix coefficient for R-Cr multiplier
17524 // ------------------------------------------------------------------------------ //
17525 
17526 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_31_DEFAULT (0x0070)
17527 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_31_DATASIZE (16)
17528 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_31_OFFSET (0x322c)
17529 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_31_MASK (0xffff)
17530 
17531 // args: data (16-bit)
acamera_isp_fr_cs_conv_coefft_31_write(uintptr_t base,uint16_t data)17532 static __inline void acamera_isp_fr_cs_conv_coefft_31_write(uintptr_t base, uint16_t data) {
17533     uint32_t curr = system_sw_read_32(base + 0x1c0b4L);
17534     system_sw_write_32(base + 0x1c0b4L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
17535 }
acamera_isp_fr_cs_conv_coefft_31_read(uintptr_t base)17536 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_31_read(uintptr_t base) {
17537     return (uint16_t)((system_sw_read_32(base + 0x1c0b4L) & 0xffff) >> 0);
17538 }
17539 // ------------------------------------------------------------------------------ //
17540 // Register: Coefft 32
17541 // ------------------------------------------------------------------------------ //
17542 
17543 // ------------------------------------------------------------------------------ //
17544 // Matrix coefficient for G-Cr multiplier
17545 // ------------------------------------------------------------------------------ //
17546 
17547 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_32_DEFAULT (0x8066)
17548 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_32_DATASIZE (16)
17549 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_32_OFFSET (0x3230)
17550 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_32_MASK (0xffff)
17551 
17552 // args: data (16-bit)
acamera_isp_fr_cs_conv_coefft_32_write(uintptr_t base,uint16_t data)17553 static __inline void acamera_isp_fr_cs_conv_coefft_32_write(uintptr_t base, uint16_t data) {
17554     uint32_t curr = system_sw_read_32(base + 0x1c0b8L);
17555     system_sw_write_32(base + 0x1c0b8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
17556 }
acamera_isp_fr_cs_conv_coefft_32_read(uintptr_t base)17557 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_32_read(uintptr_t base) {
17558     return (uint16_t)((system_sw_read_32(base + 0x1c0b8L) & 0xffff) >> 0);
17559 }
17560 // ------------------------------------------------------------------------------ //
17561 // Register: Coefft 33
17562 // ------------------------------------------------------------------------------ //
17563 
17564 // ------------------------------------------------------------------------------ //
17565 // Matrix coefficient for B-Cr multiplier
17566 // ------------------------------------------------------------------------------ //
17567 
17568 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_33_DEFAULT (0x800a)
17569 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_33_DATASIZE (16)
17570 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_33_OFFSET (0x3234)
17571 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_33_MASK (0xffff)
17572 
17573 // args: data (16-bit)
acamera_isp_fr_cs_conv_coefft_33_write(uintptr_t base,uint16_t data)17574 static __inline void acamera_isp_fr_cs_conv_coefft_33_write(uintptr_t base, uint16_t data) {
17575     uint32_t curr = system_sw_read_32(base + 0x1c0bcL);
17576     system_sw_write_32(base + 0x1c0bcL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
17577 }
acamera_isp_fr_cs_conv_coefft_33_read(uintptr_t base)17578 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_33_read(uintptr_t base) {
17579     return (uint16_t)((system_sw_read_32(base + 0x1c0bcL) & 0xffff) >> 0);
17580 }
17581 // ------------------------------------------------------------------------------ //
17582 // Register: Coefft o1
17583 // ------------------------------------------------------------------------------ //
17584 
17585 // ------------------------------------------------------------------------------ //
17586 // Offset for Y
17587 // ------------------------------------------------------------------------------ //
17588 
17589 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O1_DEFAULT (0x000)
17590 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O1_DATASIZE (11)
17591 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O1_OFFSET (0x3238)
17592 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O1_MASK (0x7ff)
17593 
17594 // args: data (11-bit)
acamera_isp_fr_cs_conv_coefft_o1_write(uintptr_t base,uint16_t data)17595 static __inline void acamera_isp_fr_cs_conv_coefft_o1_write(uintptr_t base, uint16_t data) {
17596     uint32_t curr = system_sw_read_32(base + 0x1c0c0L);
17597     system_sw_write_32(base + 0x1c0c0L, (((uint32_t) (data & 0x7ff)) << 0) | (curr & 0xfffff800));
17598 }
acamera_isp_fr_cs_conv_coefft_o1_read(uintptr_t base)17599 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_o1_read(uintptr_t base) {
17600     return (uint16_t)((system_sw_read_32(base + 0x1c0c0L) & 0x7ff) >> 0);
17601 }
17602 // ------------------------------------------------------------------------------ //
17603 // Register: Coefft o2
17604 // ------------------------------------------------------------------------------ //
17605 
17606 // ------------------------------------------------------------------------------ //
17607 // Offset for Cb
17608 // ------------------------------------------------------------------------------ //
17609 
17610 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O2_DEFAULT (0x200)
17611 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O2_DATASIZE (11)
17612 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O2_OFFSET (0x323c)
17613 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O2_MASK (0x7ff)
17614 
17615 // args: data (11-bit)
acamera_isp_fr_cs_conv_coefft_o2_write(uintptr_t base,uint16_t data)17616 static __inline void acamera_isp_fr_cs_conv_coefft_o2_write(uintptr_t base, uint16_t data) {
17617     uint32_t curr = system_sw_read_32(base + 0x1c0c4L);
17618     system_sw_write_32(base + 0x1c0c4L, (((uint32_t) (data & 0x7ff)) << 0) | (curr & 0xfffff800));
17619 }
acamera_isp_fr_cs_conv_coefft_o2_read(uintptr_t base)17620 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_o2_read(uintptr_t base) {
17621     return (uint16_t)((system_sw_read_32(base + 0x1c0c4L) & 0x7ff) >> 0);
17622 }
17623 // ------------------------------------------------------------------------------ //
17624 // Register: Coefft o3
17625 // ------------------------------------------------------------------------------ //
17626 
17627 // ------------------------------------------------------------------------------ //
17628 // Offset for Cr
17629 // ------------------------------------------------------------------------------ //
17630 
17631 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O3_DEFAULT (0x200)
17632 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O3_DATASIZE (11)
17633 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O3_OFFSET (0x3240)
17634 #define ACAMERA_ISP_FR_CS_CONV_COEFFT_O3_MASK (0x7ff)
17635 
17636 // args: data (11-bit)
acamera_isp_fr_cs_conv_coefft_o3_write(uintptr_t base,uint16_t data)17637 static __inline void acamera_isp_fr_cs_conv_coefft_o3_write(uintptr_t base, uint16_t data) {
17638     uint32_t curr = system_sw_read_32(base + 0x1c0c8L);
17639     system_sw_write_32(base + 0x1c0c8L, (((uint32_t) (data & 0x7ff)) << 0) | (curr & 0xfffff800));
17640 }
acamera_isp_fr_cs_conv_coefft_o3_read(uintptr_t base)17641 static __inline uint16_t acamera_isp_fr_cs_conv_coefft_o3_read(uintptr_t base) {
17642     return (uint16_t)((system_sw_read_32(base + 0x1c0c8L) & 0x7ff) >> 0);
17643 }
17644 // ------------------------------------------------------------------------------ //
17645 // Register: Clip min Y
17646 // ------------------------------------------------------------------------------ //
17647 
17648 // ------------------------------------------------------------------------------ //
17649 // Minimal value for Y.  Values below this are clipped.
17650 // ------------------------------------------------------------------------------ //
17651 
17652 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MIN_Y_DEFAULT (0x000)
17653 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MIN_Y_DATASIZE (10)
17654 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MIN_Y_OFFSET (0x3244)
17655 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MIN_Y_MASK (0x3ff)
17656 
17657 // args: data (10-bit)
acamera_isp_fr_cs_conv_clip_min_y_write(uintptr_t base,uint16_t data)17658 static __inline void acamera_isp_fr_cs_conv_clip_min_y_write(uintptr_t base, uint16_t data) {
17659     uint32_t curr = system_sw_read_32(base + 0x1c0ccL);
17660     system_sw_write_32(base + 0x1c0ccL, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
17661 }
acamera_isp_fr_cs_conv_clip_min_y_read(uintptr_t base)17662 static __inline uint16_t acamera_isp_fr_cs_conv_clip_min_y_read(uintptr_t base) {
17663     return (uint16_t)((system_sw_read_32(base + 0x1c0ccL) & 0x3ff) >> 0);
17664 }
17665 // ------------------------------------------------------------------------------ //
17666 // Register: Clip max Y
17667 // ------------------------------------------------------------------------------ //
17668 
17669 // ------------------------------------------------------------------------------ //
17670 // Maximal value for Y.  Values above this are clipped.
17671 // ------------------------------------------------------------------------------ //
17672 
17673 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MAX_Y_DEFAULT (0x3FF)
17674 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MAX_Y_DATASIZE (10)
17675 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MAX_Y_OFFSET (0x3248)
17676 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MAX_Y_MASK (0x3ff)
17677 
17678 // args: data (10-bit)
acamera_isp_fr_cs_conv_clip_max_y_write(uintptr_t base,uint16_t data)17679 static __inline void acamera_isp_fr_cs_conv_clip_max_y_write(uintptr_t base, uint16_t data) {
17680     uint32_t curr = system_sw_read_32(base + 0x1c0d0L);
17681     system_sw_write_32(base + 0x1c0d0L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
17682 }
acamera_isp_fr_cs_conv_clip_max_y_read(uintptr_t base)17683 static __inline uint16_t acamera_isp_fr_cs_conv_clip_max_y_read(uintptr_t base) {
17684     return (uint16_t)((system_sw_read_32(base + 0x1c0d0L) & 0x3ff) >> 0);
17685 }
17686 // ------------------------------------------------------------------------------ //
17687 // Register: Clip min UV
17688 // ------------------------------------------------------------------------------ //
17689 
17690 // ------------------------------------------------------------------------------ //
17691 // Minimal value for Cb, Cr.  Values below this are clipped.
17692 // ------------------------------------------------------------------------------ //
17693 
17694 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MIN_UV_DEFAULT (0x000)
17695 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MIN_UV_DATASIZE (10)
17696 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MIN_UV_OFFSET (0x324c)
17697 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MIN_UV_MASK (0x3ff)
17698 
17699 // args: data (10-bit)
acamera_isp_fr_cs_conv_clip_min_uv_write(uintptr_t base,uint16_t data)17700 static __inline void acamera_isp_fr_cs_conv_clip_min_uv_write(uintptr_t base, uint16_t data) {
17701     uint32_t curr = system_sw_read_32(base + 0x1c0d4L);
17702     system_sw_write_32(base + 0x1c0d4L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
17703 }
acamera_isp_fr_cs_conv_clip_min_uv_read(uintptr_t base)17704 static __inline uint16_t acamera_isp_fr_cs_conv_clip_min_uv_read(uintptr_t base) {
17705     return (uint16_t)((system_sw_read_32(base + 0x1c0d4L) & 0x3ff) >> 0);
17706 }
17707 // ------------------------------------------------------------------------------ //
17708 // Register: Clip max UV
17709 // ------------------------------------------------------------------------------ //
17710 
17711 // ------------------------------------------------------------------------------ //
17712 // Maximal value for Cb, Cr.  Values above this are clipped.
17713 // ------------------------------------------------------------------------------ //
17714 
17715 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MAX_UV_DEFAULT (0x3FF)
17716 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MAX_UV_DATASIZE (10)
17717 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MAX_UV_OFFSET (0x3250)
17718 #define ACAMERA_ISP_FR_CS_CONV_CLIP_MAX_UV_MASK (0x3ff)
17719 
17720 // args: data (10-bit)
acamera_isp_fr_cs_conv_clip_max_uv_write(uintptr_t base,uint16_t data)17721 static __inline void acamera_isp_fr_cs_conv_clip_max_uv_write(uintptr_t base, uint16_t data) {
17722     uint32_t curr = system_sw_read_32(base + 0x1c0d8L);
17723     system_sw_write_32(base + 0x1c0d8L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
17724 }
acamera_isp_fr_cs_conv_clip_max_uv_read(uintptr_t base)17725 static __inline uint16_t acamera_isp_fr_cs_conv_clip_max_uv_read(uintptr_t base) {
17726     return (uint16_t)((system_sw_read_32(base + 0x1c0d8L) & 0x3ff) >> 0);
17727 }
17728 // ------------------------------------------------------------------------------ //
17729 // Register: Data mask RY
17730 // ------------------------------------------------------------------------------ //
17731 
17732 // ------------------------------------------------------------------------------ //
17733 // Data mask for channel 1 (R or Y).  Bit-wise and of this value and video data.
17734 // ------------------------------------------------------------------------------ //
17735 
17736 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_RY_DEFAULT (0x3FF)
17737 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_RY_DATASIZE (10)
17738 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_RY_OFFSET (0x3254)
17739 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_RY_MASK (0x3ff)
17740 
17741 // args: data (10-bit)
acamera_isp_fr_cs_conv_data_mask_ry_write(uintptr_t base,uint16_t data)17742 static __inline void acamera_isp_fr_cs_conv_data_mask_ry_write(uintptr_t base, uint16_t data) {
17743     uint32_t curr = system_sw_read_32(base + 0x1c0dcL);
17744     system_sw_write_32(base + 0x1c0dcL, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
17745 }
acamera_isp_fr_cs_conv_data_mask_ry_read(uintptr_t base)17746 static __inline uint16_t acamera_isp_fr_cs_conv_data_mask_ry_read(uintptr_t base) {
17747     return (uint16_t)((system_sw_read_32(base + 0x1c0dcL) & 0x3ff) >> 0);
17748 }
17749 // ------------------------------------------------------------------------------ //
17750 // Register: Data mask GU
17751 // ------------------------------------------------------------------------------ //
17752 
17753 // ------------------------------------------------------------------------------ //
17754 // Data mask for channel 2 (G or U).  Bit-wise and of this value and video data.
17755 // ------------------------------------------------------------------------------ //
17756 
17757 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_GU_DEFAULT (0x3FF)
17758 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_GU_DATASIZE (10)
17759 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_GU_OFFSET (0x3258)
17760 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_GU_MASK (0x3ff)
17761 
17762 // args: data (10-bit)
acamera_isp_fr_cs_conv_data_mask_gu_write(uintptr_t base,uint16_t data)17763 static __inline void acamera_isp_fr_cs_conv_data_mask_gu_write(uintptr_t base, uint16_t data) {
17764     uint32_t curr = system_sw_read_32(base + 0x1c0e0L);
17765     system_sw_write_32(base + 0x1c0e0L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
17766 }
acamera_isp_fr_cs_conv_data_mask_gu_read(uintptr_t base)17767 static __inline uint16_t acamera_isp_fr_cs_conv_data_mask_gu_read(uintptr_t base) {
17768     return (uint16_t)((system_sw_read_32(base + 0x1c0e0L) & 0x3ff) >> 0);
17769 }
17770 // ------------------------------------------------------------------------------ //
17771 // Register: Data mask BV
17772 // ------------------------------------------------------------------------------ //
17773 
17774 // ------------------------------------------------------------------------------ //
17775 // Data mask for channel 3 (B or V).  Bit-wise and of this value and video data.
17776 // ------------------------------------------------------------------------------ //
17777 
17778 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_BV_DEFAULT (0x3FF)
17779 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_BV_DATASIZE (10)
17780 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_BV_OFFSET (0x325c)
17781 #define ACAMERA_ISP_FR_CS_CONV_DATA_MASK_BV_MASK (0x3ff)
17782 
17783 // args: data (10-bit)
acamera_isp_fr_cs_conv_data_mask_bv_write(uintptr_t base,uint16_t data)17784 static __inline void acamera_isp_fr_cs_conv_data_mask_bv_write(uintptr_t base, uint16_t data) {
17785     uint32_t curr = system_sw_read_32(base + 0x1c0e4L);
17786     system_sw_write_32(base + 0x1c0e4L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
17787 }
acamera_isp_fr_cs_conv_data_mask_bv_read(uintptr_t base)17788 static __inline uint16_t acamera_isp_fr_cs_conv_data_mask_bv_read(uintptr_t base) {
17789     return (uint16_t)((system_sw_read_32(base + 0x1c0e4L) & 0x3ff) >> 0);
17790 }
17791 // ------------------------------------------------------------------------------ //
17792 // Group: fr cs conv dither
17793 // ------------------------------------------------------------------------------ //
17794 
17795 // ------------------------------------------------------------------------------ //
17796 // Register: Enable dither
17797 // ------------------------------------------------------------------------------ //
17798 
17799 // ------------------------------------------------------------------------------ //
17800 // Enables dithering module
17801 // ------------------------------------------------------------------------------ //
17802 
17803 #define ACAMERA_ISP_FR_CS_CONV_DITHER_ENABLE_DITHER_DEFAULT (0x0)
17804 #define ACAMERA_ISP_FR_CS_CONV_DITHER_ENABLE_DITHER_DATASIZE (1)
17805 #define ACAMERA_ISP_FR_CS_CONV_DITHER_ENABLE_DITHER_OFFSET (0x3260)
17806 #define ACAMERA_ISP_FR_CS_CONV_DITHER_ENABLE_DITHER_MASK (0x1)
17807 
17808 // args: data (1-bit)
acamera_isp_fr_cs_conv_dither_enable_dither_write(uintptr_t base,uint8_t data)17809 static __inline void acamera_isp_fr_cs_conv_dither_enable_dither_write(uintptr_t base, uint8_t data) {
17810     uint32_t curr = system_sw_read_32(base + 0x1c0e8L);
17811     system_sw_write_32(base + 0x1c0e8L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
17812 }
acamera_isp_fr_cs_conv_dither_enable_dither_read(uintptr_t base)17813 static __inline uint8_t acamera_isp_fr_cs_conv_dither_enable_dither_read(uintptr_t base) {
17814     return (uint8_t)((system_sw_read_32(base + 0x1c0e8L) & 0x1) >> 0);
17815 }
17816 // ------------------------------------------------------------------------------ //
17817 // Register: Dither amount
17818 // ------------------------------------------------------------------------------ //
17819 
17820 // ------------------------------------------------------------------------------ //
17821 // 0= dither to 9 bits; 1=dither to 8 bits; 2=dither to 7 bits; 3=dither to 6 bits
17822 // ------------------------------------------------------------------------------ //
17823 
17824 #define ACAMERA_ISP_FR_CS_CONV_DITHER_DITHER_AMOUNT_DEFAULT (0x0)
17825 #define ACAMERA_ISP_FR_CS_CONV_DITHER_DITHER_AMOUNT_DATASIZE (2)
17826 #define ACAMERA_ISP_FR_CS_CONV_DITHER_DITHER_AMOUNT_OFFSET (0x3260)
17827 #define ACAMERA_ISP_FR_CS_CONV_DITHER_DITHER_AMOUNT_MASK (0x6)
17828 
17829 // args: data (2-bit)
acamera_isp_fr_cs_conv_dither_dither_amount_write(uintptr_t base,uint8_t data)17830 static __inline void acamera_isp_fr_cs_conv_dither_dither_amount_write(uintptr_t base, uint8_t data) {
17831     uint32_t curr = system_sw_read_32(base + 0x1c0e8L);
17832     system_sw_write_32(base + 0x1c0e8L, (((uint32_t) (data & 0x3)) << 1) | (curr & 0xfffffff9));
17833 }
acamera_isp_fr_cs_conv_dither_dither_amount_read(uintptr_t base)17834 static __inline uint8_t acamera_isp_fr_cs_conv_dither_dither_amount_read(uintptr_t base) {
17835     return (uint8_t)((system_sw_read_32(base + 0x1c0e8L) & 0x6) >> 1);
17836 }
17837 // ------------------------------------------------------------------------------ //
17838 // Register: Shift mode
17839 // ------------------------------------------------------------------------------ //
17840 
17841 // ------------------------------------------------------------------------------ //
17842 // 0= output is LSB aligned; 1=output is MSB aligned
17843 // ------------------------------------------------------------------------------ //
17844 
17845 #define ACAMERA_ISP_FR_CS_CONV_DITHER_SHIFT_MODE_DEFAULT (0x0)
17846 #define ACAMERA_ISP_FR_CS_CONV_DITHER_SHIFT_MODE_DATASIZE (1)
17847 #define ACAMERA_ISP_FR_CS_CONV_DITHER_SHIFT_MODE_OFFSET (0x3260)
17848 #define ACAMERA_ISP_FR_CS_CONV_DITHER_SHIFT_MODE_MASK (0x10)
17849 
17850 // args: data (1-bit)
acamera_isp_fr_cs_conv_dither_shift_mode_write(uintptr_t base,uint8_t data)17851 static __inline void acamera_isp_fr_cs_conv_dither_shift_mode_write(uintptr_t base, uint8_t data) {
17852     uint32_t curr = system_sw_read_32(base + 0x1c0e8L);
17853     system_sw_write_32(base + 0x1c0e8L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
17854 }
acamera_isp_fr_cs_conv_dither_shift_mode_read(uintptr_t base)17855 static __inline uint8_t acamera_isp_fr_cs_conv_dither_shift_mode_read(uintptr_t base) {
17856     return (uint8_t)((system_sw_read_32(base + 0x1c0e8L) & 0x10) >> 4);
17857 }
17858 // ------------------------------------------------------------------------------ //
17859 // Group: fr dma writer
17860 // ------------------------------------------------------------------------------ //
17861 
17862 // ------------------------------------------------------------------------------ //
17863 // DMA writer controls
17864 // ------------------------------------------------------------------------------ //
17865 
17866 // ------------------------------------------------------------------------------ //
17867 // Register: Format
17868 // ------------------------------------------------------------------------------ //
17869 
17870 // ------------------------------------------------------------------------------ //
17871 // Format
17872 // ------------------------------------------------------------------------------ //
17873 
17874 #define ACAMERA_ISP_FR_DMA_WRITER_FORMAT_DEFAULT (0x0)
17875 #define ACAMERA_ISP_FR_DMA_WRITER_FORMAT_DATASIZE (8)
17876 #define ACAMERA_ISP_FR_DMA_WRITER_FORMAT_OFFSET (0x3264)
17877 #define ACAMERA_ISP_FR_DMA_WRITER_FORMAT_MASK (0xff)
17878 
17879 // args: data (8-bit)
acamera_isp_fr_dma_writer_format_write(uintptr_t base,uint8_t data)17880 static __inline void acamera_isp_fr_dma_writer_format_write(uintptr_t base, uint8_t data) {
17881     uint32_t curr = system_sw_read_32(base + 0x1c0ecL);
17882     system_sw_write_32(base + 0x1c0ecL, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
17883 }
acamera_isp_fr_dma_writer_format_read(uintptr_t base)17884 static __inline uint8_t acamera_isp_fr_dma_writer_format_read(uintptr_t base) {
17885     return (uint8_t)((system_sw_read_32(base + 0x1c0ecL) & 0xff) >> 0);
17886 }
17887 // ------------------------------------------------------------------------------ //
17888 // Register: Base mode
17889 // ------------------------------------------------------------------------------ //
17890 
17891 // ------------------------------------------------------------------------------ //
17892 // Base DMA packing mode for RGB/RAW/YUV etc (see ISP guide)
17893 // ------------------------------------------------------------------------------ //
17894 
17895 #define ACAMERA_ISP_FR_DMA_WRITER_BASE_MODE_DEFAULT (0x0)
17896 #define ACAMERA_ISP_FR_DMA_WRITER_BASE_MODE_DATASIZE (5)
17897 #define ACAMERA_ISP_FR_DMA_WRITER_BASE_MODE_OFFSET (0x3264)
17898 #define ACAMERA_ISP_FR_DMA_WRITER_BASE_MODE_MASK (0x1f)
17899 
17900 // args: data (5-bit)
acamera_isp_fr_dma_writer_base_mode_write(uintptr_t base,uint8_t data)17901 static __inline void acamera_isp_fr_dma_writer_base_mode_write(uintptr_t base, uint8_t data) {
17902     uint32_t curr = system_sw_read_32(base + 0x1c0ecL);
17903     system_sw_write_32(base + 0x1c0ecL, (((uint32_t) (data & 0x1f)) << 0) | (curr & 0xffffffe0));
17904 }
acamera_isp_fr_dma_writer_base_mode_read(uintptr_t base)17905 static __inline uint8_t acamera_isp_fr_dma_writer_base_mode_read(uintptr_t base) {
17906     return (uint8_t)((system_sw_read_32(base + 0x1c0ecL) & 0x1f) >> 0);
17907 }
17908 // ------------------------------------------------------------------------------ //
17909 // Register: Plane select
17910 // ------------------------------------------------------------------------------ //
17911 
17912 // ------------------------------------------------------------------------------ //
17913 // Plane select for planar base modes.  Only used if planar outputs required.  Not used.  Should be set to 0
17914 // ------------------------------------------------------------------------------ //
17915 
17916 #define ACAMERA_ISP_FR_DMA_WRITER_PLANE_SELECT_DEFAULT (0x0)
17917 #define ACAMERA_ISP_FR_DMA_WRITER_PLANE_SELECT_DATASIZE (2)
17918 #define ACAMERA_ISP_FR_DMA_WRITER_PLANE_SELECT_OFFSET (0x3264)
17919 #define ACAMERA_ISP_FR_DMA_WRITER_PLANE_SELECT_MASK (0xc0)
17920 
17921 // args: data (2-bit)
acamera_isp_fr_dma_writer_plane_select_write(uintptr_t base,uint8_t data)17922 static __inline void acamera_isp_fr_dma_writer_plane_select_write(uintptr_t base, uint8_t data) {
17923     uint32_t curr = system_sw_read_32(base + 0x1c0ecL);
17924     system_sw_write_32(base + 0x1c0ecL, (((uint32_t) (data & 0x3)) << 6) | (curr & 0xffffff3f));
17925 }
acamera_isp_fr_dma_writer_plane_select_read(uintptr_t base)17926 static __inline uint8_t acamera_isp_fr_dma_writer_plane_select_read(uintptr_t base) {
17927     return (uint8_t)((system_sw_read_32(base + 0x1c0ecL) & 0xc0) >> 6);
17928 }
17929 // ------------------------------------------------------------------------------ //
17930 // Register: single frame
17931 // ------------------------------------------------------------------------------ //
17932 
17933 // ------------------------------------------------------------------------------ //
17934 // 0 = All frames are written(after frame_write_on= 1), 1= only 1st frame written ( after frame_write_on =1)
17935 // ------------------------------------------------------------------------------ //
17936 
17937 #define ACAMERA_ISP_FR_DMA_WRITER_SINGLE_FRAME_DEFAULT (0)
17938 #define ACAMERA_ISP_FR_DMA_WRITER_SINGLE_FRAME_DATASIZE (1)
17939 #define ACAMERA_ISP_FR_DMA_WRITER_SINGLE_FRAME_OFFSET (0x3264)
17940 #define ACAMERA_ISP_FR_DMA_WRITER_SINGLE_FRAME_MASK (0x100)
17941 
17942 // args: data (1-bit)
acamera_isp_fr_dma_writer_single_frame_write(uintptr_t base,uint8_t data)17943 static __inline void acamera_isp_fr_dma_writer_single_frame_write(uintptr_t base, uint8_t data) {
17944     uint32_t curr = system_sw_read_32(base + 0x1c0ecL);
17945     system_sw_write_32(base + 0x1c0ecL, (((uint32_t) (data & 0x1)) << 8) | (curr & 0xfffffeff));
17946 }
acamera_isp_fr_dma_writer_single_frame_read(uintptr_t base)17947 static __inline uint8_t acamera_isp_fr_dma_writer_single_frame_read(uintptr_t base) {
17948     return (uint8_t)((system_sw_read_32(base + 0x1c0ecL) & 0x100) >> 8);
17949 }
17950 // ------------------------------------------------------------------------------ //
17951 // Register: frame write on
17952 // ------------------------------------------------------------------------------ //
17953 
17954 // ------------------------------------------------------------------------------ //
17955 //
17956 //        0 = no frames written(when switched from 1, current frame completes writing before stopping),
17957 //        1= write frame(s) (write single or continous frame(s) )
17958 //
17959 // ------------------------------------------------------------------------------ //
17960 
17961 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_WRITE_ON_DEFAULT (0)
17962 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_WRITE_ON_DATASIZE (1)
17963 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_WRITE_ON_OFFSET (0x3264)
17964 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_WRITE_ON_MASK (0x200)
17965 
17966 // args: data (1-bit)
acamera_isp_fr_dma_writer_frame_write_on_write(uintptr_t base,uint8_t data)17967 static __inline void acamera_isp_fr_dma_writer_frame_write_on_write(uintptr_t base, uint8_t data) {
17968     uint32_t curr = system_sw_read_32(base + 0x1c0ecL);
17969     system_sw_write_32(base + 0x1c0ecL, (((uint32_t) (data & 0x1)) << 9) | (curr & 0xfffffdff));
17970 }
acamera_isp_fr_dma_writer_frame_write_on_read(uintptr_t base)17971 static __inline uint8_t acamera_isp_fr_dma_writer_frame_write_on_read(uintptr_t base) {
17972     return (uint8_t)((system_sw_read_32(base + 0x1c0ecL) & 0x200) >> 9);
17973 }
17974 // ------------------------------------------------------------------------------ //
17975 // Register: axi xact comp
17976 // ------------------------------------------------------------------------------ //
17977 
17978 // ------------------------------------------------------------------------------ //
17979 // 0 = dont wait for axi transaction completion at end of frame(just all transfers accepted). 1 = wait for all transactions completed
17980 // ------------------------------------------------------------------------------ //
17981 
17982 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_XACT_COMP_DEFAULT (0)
17983 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_XACT_COMP_DATASIZE (1)
17984 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_XACT_COMP_OFFSET (0x3264)
17985 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_XACT_COMP_MASK (0x800)
17986 
17987 // args: data (1-bit)
acamera_isp_fr_dma_writer_axi_xact_comp_write(uintptr_t base,uint8_t data)17988 static __inline void acamera_isp_fr_dma_writer_axi_xact_comp_write(uintptr_t base, uint8_t data) {
17989     uint32_t curr = system_sw_read_32(base + 0x1c0ecL);
17990     system_sw_write_32(base + 0x1c0ecL, (((uint32_t) (data & 0x1)) << 11) | (curr & 0xfffff7ff));
17991 }
acamera_isp_fr_dma_writer_axi_xact_comp_read(uintptr_t base)17992 static __inline uint8_t acamera_isp_fr_dma_writer_axi_xact_comp_read(uintptr_t base) {
17993     return (uint8_t)((system_sw_read_32(base + 0x1c0ecL) & 0x800) >> 11);
17994 }
17995 // ------------------------------------------------------------------------------ //
17996 // Register: active width
17997 // ------------------------------------------------------------------------------ //
17998 
17999 // ------------------------------------------------------------------------------ //
18000 // Active video width in pixels 128-8000
18001 // ------------------------------------------------------------------------------ //
18002 
18003 #define ACAMERA_ISP_FR_DMA_WRITER_ACTIVE_WIDTH_DEFAULT (0x780)
18004 #define ACAMERA_ISP_FR_DMA_WRITER_ACTIVE_WIDTH_DATASIZE (16)
18005 #define ACAMERA_ISP_FR_DMA_WRITER_ACTIVE_WIDTH_OFFSET (0x3268)
18006 #define ACAMERA_ISP_FR_DMA_WRITER_ACTIVE_WIDTH_MASK (0xffff)
18007 
18008 // args: data (16-bit)
acamera_isp_fr_dma_writer_active_width_write(uintptr_t base,uint16_t data)18009 static __inline void acamera_isp_fr_dma_writer_active_width_write(uintptr_t base, uint16_t data) {
18010     uint32_t curr = system_sw_read_32(base + 0x1c0f0L);
18011     system_sw_write_32(base + 0x1c0f0L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
18012 }
acamera_isp_fr_dma_writer_active_width_read(uintptr_t base)18013 static __inline uint16_t acamera_isp_fr_dma_writer_active_width_read(uintptr_t base) {
18014     return (uint16_t)((system_sw_read_32(base + 0x1c0f0L) & 0xffff) >> 0);
18015 }
18016 // ------------------------------------------------------------------------------ //
18017 // Register: active height
18018 // ------------------------------------------------------------------------------ //
18019 
18020 // ------------------------------------------------------------------------------ //
18021 // Active video height in lines 128-8000
18022 // ------------------------------------------------------------------------------ //
18023 
18024 #define ACAMERA_ISP_FR_DMA_WRITER_ACTIVE_HEIGHT_DEFAULT (0x438)
18025 #define ACAMERA_ISP_FR_DMA_WRITER_ACTIVE_HEIGHT_DATASIZE (16)
18026 #define ACAMERA_ISP_FR_DMA_WRITER_ACTIVE_HEIGHT_OFFSET (0x3268)
18027 #define ACAMERA_ISP_FR_DMA_WRITER_ACTIVE_HEIGHT_MASK (0xffff0000)
18028 
18029 // args: data (16-bit)
acamera_isp_fr_dma_writer_active_height_write(uintptr_t base,uint16_t data)18030 static __inline void acamera_isp_fr_dma_writer_active_height_write(uintptr_t base, uint16_t data) {
18031     uint32_t curr = system_sw_read_32(base + 0x1c0f0L);
18032     system_sw_write_32(base + 0x1c0f0L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
18033 }
acamera_isp_fr_dma_writer_active_height_read(uintptr_t base)18034 static __inline uint16_t acamera_isp_fr_dma_writer_active_height_read(uintptr_t base) {
18035     return (uint16_t)((system_sw_read_32(base + 0x1c0f0L) & 0xffff0000) >> 16);
18036 }
18037 // ------------------------------------------------------------------------------ //
18038 // Register: bank0_base
18039 // ------------------------------------------------------------------------------ //
18040 
18041 // ------------------------------------------------------------------------------ //
18042 // bank 0 base address for frame buffer, should be word-aligned
18043 // ------------------------------------------------------------------------------ //
18044 
18045 #define ACAMERA_ISP_FR_DMA_WRITER_BANK0_BASE_DEFAULT (0x0)
18046 #define ACAMERA_ISP_FR_DMA_WRITER_BANK0_BASE_DATASIZE (32)
18047 #define ACAMERA_ISP_FR_DMA_WRITER_BANK0_BASE_OFFSET (0x326c)
18048 #define ACAMERA_ISP_FR_DMA_WRITER_BANK0_BASE_MASK (0xffffffff)
18049 
18050 // args: data (32-bit)
acamera_isp_fr_dma_writer_bank0_base_write(uintptr_t base,uint32_t data)18051 static __inline void acamera_isp_fr_dma_writer_bank0_base_write(uintptr_t base, uint32_t data) {
18052     system_sw_write_32(base + 0x1c0f4L, data);
18053 }
acamera_isp_fr_dma_writer_bank0_base_read(uintptr_t base)18054 static __inline uint32_t acamera_isp_fr_dma_writer_bank0_base_read(uintptr_t base) {
18055     return system_sw_read_32(base + 0x1c0f4L);
18056 }
18057 // ------------------------------------------------------------------------------ //
18058 // Register: bank1_base
18059 // ------------------------------------------------------------------------------ //
18060 
18061 // ------------------------------------------------------------------------------ //
18062 // bank 1 base address for frame buffer, should be word-aligned
18063 // ------------------------------------------------------------------------------ //
18064 
18065 #define ACAMERA_ISP_FR_DMA_WRITER_BANK1_BASE_DEFAULT (0x0)
18066 #define ACAMERA_ISP_FR_DMA_WRITER_BANK1_BASE_DATASIZE (32)
18067 #define ACAMERA_ISP_FR_DMA_WRITER_BANK1_BASE_OFFSET (0x3270)
18068 #define ACAMERA_ISP_FR_DMA_WRITER_BANK1_BASE_MASK (0xffffffff)
18069 
18070 // args: data (32-bit)
acamera_isp_fr_dma_writer_bank1_base_write(uintptr_t base,uint32_t data)18071 static __inline void acamera_isp_fr_dma_writer_bank1_base_write(uintptr_t base, uint32_t data) {
18072     system_sw_write_32(base + 0x1c0f8L, data);
18073 }
acamera_isp_fr_dma_writer_bank1_base_read(uintptr_t base)18074 static __inline uint32_t acamera_isp_fr_dma_writer_bank1_base_read(uintptr_t base) {
18075     return system_sw_read_32(base + 0x1c0f8L);
18076 }
18077 // ------------------------------------------------------------------------------ //
18078 // Register: bank2_base
18079 // ------------------------------------------------------------------------------ //
18080 
18081 // ------------------------------------------------------------------------------ //
18082 // bank 2 base address for frame buffer, should be word-aligned
18083 // ------------------------------------------------------------------------------ //
18084 
18085 #define ACAMERA_ISP_FR_DMA_WRITER_BANK2_BASE_DEFAULT (0x0)
18086 #define ACAMERA_ISP_FR_DMA_WRITER_BANK2_BASE_DATASIZE (32)
18087 #define ACAMERA_ISP_FR_DMA_WRITER_BANK2_BASE_OFFSET (0x3274)
18088 #define ACAMERA_ISP_FR_DMA_WRITER_BANK2_BASE_MASK (0xffffffff)
18089 
18090 // args: data (32-bit)
acamera_isp_fr_dma_writer_bank2_base_write(uintptr_t base,uint32_t data)18091 static __inline void acamera_isp_fr_dma_writer_bank2_base_write(uintptr_t base, uint32_t data) {
18092     system_sw_write_32(base + 0x1c0fcL, data);
18093 }
acamera_isp_fr_dma_writer_bank2_base_read(uintptr_t base)18094 static __inline uint32_t acamera_isp_fr_dma_writer_bank2_base_read(uintptr_t base) {
18095     return system_sw_read_32(base + 0x1c0fcL);
18096 }
18097 // ------------------------------------------------------------------------------ //
18098 // Register: bank3_base
18099 // ------------------------------------------------------------------------------ //
18100 
18101 // ------------------------------------------------------------------------------ //
18102 // bank 3 base address for frame buffer, should be word-aligned
18103 // ------------------------------------------------------------------------------ //
18104 
18105 #define ACAMERA_ISP_FR_DMA_WRITER_BANK3_BASE_DEFAULT (0x0)
18106 #define ACAMERA_ISP_FR_DMA_WRITER_BANK3_BASE_DATASIZE (32)
18107 #define ACAMERA_ISP_FR_DMA_WRITER_BANK3_BASE_OFFSET (0x3278)
18108 #define ACAMERA_ISP_FR_DMA_WRITER_BANK3_BASE_MASK (0xffffffff)
18109 
18110 // args: data (32-bit)
acamera_isp_fr_dma_writer_bank3_base_write(uintptr_t base,uint32_t data)18111 static __inline void acamera_isp_fr_dma_writer_bank3_base_write(uintptr_t base, uint32_t data) {
18112     system_sw_write_32(base + 0x1c100L, data);
18113 }
acamera_isp_fr_dma_writer_bank3_base_read(uintptr_t base)18114 static __inline uint32_t acamera_isp_fr_dma_writer_bank3_base_read(uintptr_t base) {
18115     return system_sw_read_32(base + 0x1c100L);
18116 }
18117 // ------------------------------------------------------------------------------ //
18118 // Register: bank4_base
18119 // ------------------------------------------------------------------------------ //
18120 
18121 // ------------------------------------------------------------------------------ //
18122 // bank 4 base address for frame buffer, should be word-aligned
18123 // ------------------------------------------------------------------------------ //
18124 
18125 #define ACAMERA_ISP_FR_DMA_WRITER_BANK4_BASE_DEFAULT (0x0)
18126 #define ACAMERA_ISP_FR_DMA_WRITER_BANK4_BASE_DATASIZE (32)
18127 #define ACAMERA_ISP_FR_DMA_WRITER_BANK4_BASE_OFFSET (0x327c)
18128 #define ACAMERA_ISP_FR_DMA_WRITER_BANK4_BASE_MASK (0xffffffff)
18129 
18130 // args: data (32-bit)
acamera_isp_fr_dma_writer_bank4_base_write(uintptr_t base,uint32_t data)18131 static __inline void acamera_isp_fr_dma_writer_bank4_base_write(uintptr_t base, uint32_t data) {
18132     system_sw_write_32(base + 0x1c104L, data);
18133 }
acamera_isp_fr_dma_writer_bank4_base_read(uintptr_t base)18134 static __inline uint32_t acamera_isp_fr_dma_writer_bank4_base_read(uintptr_t base) {
18135     return system_sw_read_32(base + 0x1c104L);
18136 }
18137 // ------------------------------------------------------------------------------ //
18138 // Register: max bank
18139 // ------------------------------------------------------------------------------ //
18140 
18141 // ------------------------------------------------------------------------------ //
18142 // highest bank*_base to use for frame writes before recycling to bank0_base, only 0 to 4 are valid
18143 // ------------------------------------------------------------------------------ //
18144 
18145 #define ACAMERA_ISP_FR_DMA_WRITER_MAX_BANK_DEFAULT (0x0)
18146 #define ACAMERA_ISP_FR_DMA_WRITER_MAX_BANK_DATASIZE (3)
18147 #define ACAMERA_ISP_FR_DMA_WRITER_MAX_BANK_OFFSET (0x3280)
18148 #define ACAMERA_ISP_FR_DMA_WRITER_MAX_BANK_MASK (0x7)
18149 
18150 // args: data (3-bit)
acamera_isp_fr_dma_writer_max_bank_write(uintptr_t base,uint8_t data)18151 static __inline void acamera_isp_fr_dma_writer_max_bank_write(uintptr_t base, uint8_t data) {
18152     uint32_t curr = system_sw_read_32(base + 0x1c108L);
18153     system_sw_write_32(base + 0x1c108L, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
18154 }
acamera_isp_fr_dma_writer_max_bank_read(uintptr_t base)18155 static __inline uint8_t acamera_isp_fr_dma_writer_max_bank_read(uintptr_t base) {
18156     return (uint8_t)((system_sw_read_32(base + 0x1c108L) & 0x7) >> 0);
18157 }
18158 // ------------------------------------------------------------------------------ //
18159 // Register: bank0 restart
18160 // ------------------------------------------------------------------------------ //
18161 
18162 // ------------------------------------------------------------------------------ //
18163 // 0 = normal operation, 1= restart bank counter to bank0 for next frame write
18164 // ------------------------------------------------------------------------------ //
18165 
18166 #define ACAMERA_ISP_FR_DMA_WRITER_BANK0_RESTART_DEFAULT (0)
18167 #define ACAMERA_ISP_FR_DMA_WRITER_BANK0_RESTART_DATASIZE (1)
18168 #define ACAMERA_ISP_FR_DMA_WRITER_BANK0_RESTART_OFFSET (0x3280)
18169 #define ACAMERA_ISP_FR_DMA_WRITER_BANK0_RESTART_MASK (0x8)
18170 
18171 // args: data (1-bit)
acamera_isp_fr_dma_writer_bank0_restart_write(uintptr_t base,uint8_t data)18172 static __inline void acamera_isp_fr_dma_writer_bank0_restart_write(uintptr_t base, uint8_t data) {
18173     uint32_t curr = system_sw_read_32(base + 0x1c108L);
18174     system_sw_write_32(base + 0x1c108L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
18175 }
acamera_isp_fr_dma_writer_bank0_restart_read(uintptr_t base)18176 static __inline uint8_t acamera_isp_fr_dma_writer_bank0_restart_read(uintptr_t base) {
18177     return (uint8_t)((system_sw_read_32(base + 0x1c108L) & 0x8) >> 3);
18178 }
18179 // ------------------------------------------------------------------------------ //
18180 // Register: Line_offset
18181 // ------------------------------------------------------------------------------ //
18182 
18183 // ------------------------------------------------------------------------------ //
18184 //
18185 //        Indicates the offset in bytes from the start of one line to the next line.
18186 //        This value should be equal to or larger than one line of image data and should be word-aligned
18187 //
18188 // ------------------------------------------------------------------------------ //
18189 
18190 #define ACAMERA_ISP_FR_DMA_WRITER_LINE_OFFSET_DEFAULT (0x1000)
18191 #define ACAMERA_ISP_FR_DMA_WRITER_LINE_OFFSET_DATASIZE (32)
18192 #define ACAMERA_ISP_FR_DMA_WRITER_LINE_OFFSET_OFFSET (0x3284)
18193 #define ACAMERA_ISP_FR_DMA_WRITER_LINE_OFFSET_MASK (0xffffffff)
18194 
18195 // args: data (32-bit)
acamera_isp_fr_dma_writer_line_offset_write(uintptr_t base,uint32_t data)18196 static __inline void acamera_isp_fr_dma_writer_line_offset_write(uintptr_t base, uint32_t data) {
18197     system_sw_write_32(base + 0x1c10cL, data);
18198 }
acamera_isp_fr_dma_writer_line_offset_read(uintptr_t base)18199 static __inline uint32_t acamera_isp_fr_dma_writer_line_offset_read(uintptr_t base) {
18200     return system_sw_read_32(base + 0x1c10cL);
18201 }
18202 // ------------------------------------------------------------------------------ //
18203 // Register: wbank curr
18204 // ------------------------------------------------------------------------------ //
18205 
18206 // ------------------------------------------------------------------------------ //
18207 // write bank currently active. valid values =0-4. updated at start of frame write
18208 // ------------------------------------------------------------------------------ //
18209 
18210 #define ACAMERA_ISP_FR_DMA_WRITER_WBANK_CURR_DEFAULT (0x0)
18211 #define ACAMERA_ISP_FR_DMA_WRITER_WBANK_CURR_DATASIZE (3)
18212 #define ACAMERA_ISP_FR_DMA_WRITER_WBANK_CURR_OFFSET (0x3288)
18213 #define ACAMERA_ISP_FR_DMA_WRITER_WBANK_CURR_MASK (0xe)
18214 
18215 // args: data (3-bit)
acamera_isp_fr_dma_writer_wbank_curr_read(uintptr_t base)18216 static __inline uint8_t acamera_isp_fr_dma_writer_wbank_curr_read(uintptr_t base) {
18217     return (uint8_t)((system_sw_read_32(base + 0x1c110L) & 0xe) >> 1);
18218 }
18219 // ------------------------------------------------------------------------------ //
18220 // Register: wbank active
18221 // ------------------------------------------------------------------------------ //
18222 
18223 // ------------------------------------------------------------------------------ //
18224 // 1 = wbank_curr is being written to. Goes high at start of writes, low at last write transfer/completion on axi.
18225 // ------------------------------------------------------------------------------ //
18226 
18227 #define ACAMERA_ISP_FR_DMA_WRITER_WBANK_ACTIVE_DEFAULT (0x0)
18228 #define ACAMERA_ISP_FR_DMA_WRITER_WBANK_ACTIVE_DATASIZE (1)
18229 #define ACAMERA_ISP_FR_DMA_WRITER_WBANK_ACTIVE_OFFSET (0x3288)
18230 #define ACAMERA_ISP_FR_DMA_WRITER_WBANK_ACTIVE_MASK (0x1)
18231 
18232 // args: data (1-bit)
acamera_isp_fr_dma_writer_wbank_active_read(uintptr_t base)18233 static __inline uint8_t acamera_isp_fr_dma_writer_wbank_active_read(uintptr_t base) {
18234     return (uint8_t)((system_sw_read_32(base + 0x1c110L) & 0x1) >> 0);
18235 }
18236 // ------------------------------------------------------------------------------ //
18237 // Register: frame icount
18238 // ------------------------------------------------------------------------------ //
18239 
18240 // ------------------------------------------------------------------------------ //
18241 // count of incomming frames (starts) to vdma_writer on video input, non resetable, rolls over, updates at pixel 1 of new frame on video in
18242 // ------------------------------------------------------------------------------ //
18243 
18244 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_ICOUNT_DEFAULT (0x0)
18245 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_ICOUNT_DATASIZE (16)
18246 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_ICOUNT_OFFSET (0x3294)
18247 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_ICOUNT_MASK (0xffff)
18248 
18249 // args: data (16-bit)
acamera_isp_fr_dma_writer_frame_icount_read(uintptr_t base)18250 static __inline uint16_t acamera_isp_fr_dma_writer_frame_icount_read(uintptr_t base) {
18251     return (uint16_t)((system_sw_read_32(base + 0x1c11cL) & 0xffff) >> 0);
18252 }
18253 // ------------------------------------------------------------------------------ //
18254 // Register: frame wcount
18255 // ------------------------------------------------------------------------------ //
18256 
18257 // ------------------------------------------------------------------------------ //
18258 // count of outgoing frame writes (starts) from vdma_writer sent to AXI output, non resetable, rolls over, updates at pixel 1 of new frame on video in
18259 // ------------------------------------------------------------------------------ //
18260 
18261 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_WCOUNT_DEFAULT (0x0)
18262 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_WCOUNT_DATASIZE (16)
18263 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_WCOUNT_OFFSET (0x3294)
18264 #define ACAMERA_ISP_FR_DMA_WRITER_FRAME_WCOUNT_MASK (0xffff0000)
18265 
18266 // args: data (16-bit)
acamera_isp_fr_dma_writer_frame_wcount_read(uintptr_t base)18267 static __inline uint16_t acamera_isp_fr_dma_writer_frame_wcount_read(uintptr_t base) {
18268     return (uint16_t)((system_sw_read_32(base + 0x1c11cL) & 0xffff0000) >> 16);
18269 }
18270 // ------------------------------------------------------------------------------ //
18271 // Register: axi_fail_bresp
18272 // ------------------------------------------------------------------------------ //
18273 
18274 // ------------------------------------------------------------------------------ //
18275 //  clearable alarm, high to indicate bad  bresp captured
18276 // ------------------------------------------------------------------------------ //
18277 
18278 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_BRESP_DEFAULT (0x0)
18279 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_BRESP_DATASIZE (1)
18280 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_BRESP_OFFSET (0x329c)
18281 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_BRESP_MASK (0x1)
18282 
18283 // args: data (1-bit)
acamera_isp_fr_dma_writer_axi_fail_bresp_read(uintptr_t base)18284 static __inline uint8_t acamera_isp_fr_dma_writer_axi_fail_bresp_read(uintptr_t base) {
18285     return (uint8_t)((system_sw_read_32(base + 0x1c124L) & 0x1) >> 0);
18286 }
18287 // ------------------------------------------------------------------------------ //
18288 // Register: axi_fail_awmaxwait
18289 // ------------------------------------------------------------------------------ //
18290 
18291 // ------------------------------------------------------------------------------ //
18292 //  clearable alarm, high when awmaxwait_limit reached
18293 // ------------------------------------------------------------------------------ //
18294 
18295 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_AWMAXWAIT_DEFAULT (0x0)
18296 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_AWMAXWAIT_DATASIZE (1)
18297 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_AWMAXWAIT_OFFSET (0x329c)
18298 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_AWMAXWAIT_MASK (0x2)
18299 
18300 // args: data (1-bit)
acamera_isp_fr_dma_writer_axi_fail_awmaxwait_read(uintptr_t base)18301 static __inline uint8_t acamera_isp_fr_dma_writer_axi_fail_awmaxwait_read(uintptr_t base) {
18302     return (uint8_t)((system_sw_read_32(base + 0x1c124L) & 0x2) >> 1);
18303 }
18304 // ------------------------------------------------------------------------------ //
18305 // Register: axi_fail_wmaxwait
18306 // ------------------------------------------------------------------------------ //
18307 
18308 // ------------------------------------------------------------------------------ //
18309 //  clearable alarm, high when wmaxwait_limit reached
18310 // ------------------------------------------------------------------------------ //
18311 
18312 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_WMAXWAIT_DEFAULT (0x0)
18313 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_WMAXWAIT_DATASIZE (1)
18314 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_WMAXWAIT_OFFSET (0x329c)
18315 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_WMAXWAIT_MASK (0x4)
18316 
18317 // args: data (1-bit)
acamera_isp_fr_dma_writer_axi_fail_wmaxwait_read(uintptr_t base)18318 static __inline uint8_t acamera_isp_fr_dma_writer_axi_fail_wmaxwait_read(uintptr_t base) {
18319     return (uint8_t)((system_sw_read_32(base + 0x1c124L) & 0x4) >> 2);
18320 }
18321 // ------------------------------------------------------------------------------ //
18322 // Register: axi_fail_wxact_ostand
18323 // ------------------------------------------------------------------------------ //
18324 
18325 // ------------------------------------------------------------------------------ //
18326 //  clearable alarm, high when wxact_ostand_limit reached
18327 // ------------------------------------------------------------------------------ //
18328 
18329 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_DEFAULT (0x0)
18330 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_DATASIZE (1)
18331 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_OFFSET (0x329c)
18332 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_MASK (0x8)
18333 
18334 // args: data (1-bit)
acamera_isp_fr_dma_writer_axi_fail_wxact_ostand_read(uintptr_t base)18335 static __inline uint8_t acamera_isp_fr_dma_writer_axi_fail_wxact_ostand_read(uintptr_t base) {
18336     return (uint8_t)((system_sw_read_32(base + 0x1c124L) & 0x8) >> 3);
18337 }
18338 // ------------------------------------------------------------------------------ //
18339 // Register: vi_fail_active_width
18340 // ------------------------------------------------------------------------------ //
18341 
18342 // ------------------------------------------------------------------------------ //
18343 //  clearable alarm, high to indicate mismatched active_width detected
18344 // ------------------------------------------------------------------------------ //
18345 
18346 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_DEFAULT (0x0)
18347 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_DATASIZE (1)
18348 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_OFFSET (0x329c)
18349 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_MASK (0x10)
18350 
18351 // args: data (1-bit)
acamera_isp_fr_dma_writer_vi_fail_active_width_read(uintptr_t base)18352 static __inline uint8_t acamera_isp_fr_dma_writer_vi_fail_active_width_read(uintptr_t base) {
18353     return (uint8_t)((system_sw_read_32(base + 0x1c124L) & 0x10) >> 4);
18354 }
18355 // ------------------------------------------------------------------------------ //
18356 // Register: vi_fail_active_height
18357 // ------------------------------------------------------------------------------ //
18358 
18359 // ------------------------------------------------------------------------------ //
18360 //  clearable alarm, high to indicate mismatched active_height detected ( also raised on missing field!)
18361 // ------------------------------------------------------------------------------ //
18362 
18363 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_DEFAULT (0x0)
18364 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_DATASIZE (1)
18365 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_OFFSET (0x329c)
18366 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_MASK (0x20)
18367 
18368 // args: data (1-bit)
acamera_isp_fr_dma_writer_vi_fail_active_height_read(uintptr_t base)18369 static __inline uint8_t acamera_isp_fr_dma_writer_vi_fail_active_height_read(uintptr_t base) {
18370     return (uint8_t)((system_sw_read_32(base + 0x1c124L) & 0x20) >> 5);
18371 }
18372 // ------------------------------------------------------------------------------ //
18373 // Register: vi_fail_interline_blanks
18374 // ------------------------------------------------------------------------------ //
18375 
18376 // ------------------------------------------------------------------------------ //
18377 //  clearable alarm, high to indicate interline blanking below min
18378 // ------------------------------------------------------------------------------ //
18379 
18380 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_DEFAULT (0x0)
18381 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_DATASIZE (1)
18382 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_OFFSET (0x329c)
18383 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_MASK (0x40)
18384 
18385 // args: data (1-bit)
acamera_isp_fr_dma_writer_vi_fail_interline_blanks_read(uintptr_t base)18386 static __inline uint8_t acamera_isp_fr_dma_writer_vi_fail_interline_blanks_read(uintptr_t base) {
18387     return (uint8_t)((system_sw_read_32(base + 0x1c124L) & 0x40) >> 6);
18388 }
18389 // ------------------------------------------------------------------------------ //
18390 // Register: vi_fail_interframe_blanks
18391 // ------------------------------------------------------------------------------ //
18392 
18393 // ------------------------------------------------------------------------------ //
18394 //  clearable alarm, high to indicate interframe blanking below min
18395 // ------------------------------------------------------------------------------ //
18396 
18397 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_DEFAULT (0x0)
18398 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_DATASIZE (1)
18399 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_OFFSET (0x329c)
18400 #define ACAMERA_ISP_FR_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_MASK (0x80)
18401 
18402 // args: data (1-bit)
acamera_isp_fr_dma_writer_vi_fail_interframe_blanks_read(uintptr_t base)18403 static __inline uint8_t acamera_isp_fr_dma_writer_vi_fail_interframe_blanks_read(uintptr_t base) {
18404     return (uint8_t)((system_sw_read_32(base + 0x1c124L) & 0x80) >> 7);
18405 }
18406 // ------------------------------------------------------------------------------ //
18407 // Register: video_alarm
18408 // ------------------------------------------------------------------------------ //
18409 
18410 // ------------------------------------------------------------------------------ //
18411 //  active high, problem found on video port(s) ( active width/height or interline/frame blanks failure)
18412 // ------------------------------------------------------------------------------ //
18413 
18414 #define ACAMERA_ISP_FR_DMA_WRITER_VIDEO_ALARM_DEFAULT (0x0)
18415 #define ACAMERA_ISP_FR_DMA_WRITER_VIDEO_ALARM_DATASIZE (1)
18416 #define ACAMERA_ISP_FR_DMA_WRITER_VIDEO_ALARM_OFFSET (0x329c)
18417 #define ACAMERA_ISP_FR_DMA_WRITER_VIDEO_ALARM_MASK (0x100)
18418 
18419 // args: data (1-bit)
acamera_isp_fr_dma_writer_video_alarm_read(uintptr_t base)18420 static __inline uint8_t acamera_isp_fr_dma_writer_video_alarm_read(uintptr_t base) {
18421     return (uint8_t)((system_sw_read_32(base + 0x1c124L) & 0x100) >> 8);
18422 }
18423 // ------------------------------------------------------------------------------ //
18424 // Register: blk_status
18425 // ------------------------------------------------------------------------------ //
18426 
18427 // ------------------------------------------------------------------------------ //
18428 //
18429 //        block status output (reserved)
18430 //                          -- blk_status(0) = wfifo_fail_full
18431 //                          -- blk_status(1) = wfifo_fail_empty
18432 //                          -- blk_status(4) = pack_fail_overflow
18433 //                          -- blk_status(24) = intw_fail_user_intfc_sig
18434 //                          -- blk_status(others) =  zero
18435 //
18436 // ------------------------------------------------------------------------------ //
18437 
18438 #define ACAMERA_ISP_FR_DMA_WRITER_BLK_STATUS_DEFAULT (0x0)
18439 #define ACAMERA_ISP_FR_DMA_WRITER_BLK_STATUS_DATASIZE (32)
18440 #define ACAMERA_ISP_FR_DMA_WRITER_BLK_STATUS_OFFSET (0x32a0)
18441 #define ACAMERA_ISP_FR_DMA_WRITER_BLK_STATUS_MASK (0xffffffff)
18442 
18443 // args: data (32-bit)
acamera_isp_fr_dma_writer_blk_status_read(uintptr_t base)18444 static __inline uint32_t acamera_isp_fr_dma_writer_blk_status_read(uintptr_t base) {
18445     return system_sw_read_32(base + 0x1c128L);
18446 }
18447 // ------------------------------------------------------------------------------ //
18448 // Register: lines_wrapped
18449 // ------------------------------------------------------------------------------ //
18450 
18451 // ------------------------------------------------------------------------------ //
18452 //
18453 //        Number of lines to write from base address before wrapping back to base address. 0 = no wrapping, >0 = last line written before wrapping
18454 //
18455 // ------------------------------------------------------------------------------ //
18456 
18457 #define ACAMERA_ISP_FR_DMA_WRITER_LINES_WRAPPED_DEFAULT (0x0000)
18458 #define ACAMERA_ISP_FR_DMA_WRITER_LINES_WRAPPED_DATASIZE (16)
18459 #define ACAMERA_ISP_FR_DMA_WRITER_LINES_WRAPPED_OFFSET (0x32a4)
18460 #define ACAMERA_ISP_FR_DMA_WRITER_LINES_WRAPPED_MASK (0xffff)
18461 
18462 // args: data (16-bit)
acamera_isp_fr_dma_writer_lines_wrapped_write(uintptr_t base,uint16_t data)18463 static __inline void acamera_isp_fr_dma_writer_lines_wrapped_write(uintptr_t base, uint16_t data) {
18464     uint32_t curr = system_sw_read_32(base + 0x1c12cL);
18465     system_sw_write_32(base + 0x1c12cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
18466 }
acamera_isp_fr_dma_writer_lines_wrapped_read(uintptr_t base)18467 static __inline uint16_t acamera_isp_fr_dma_writer_lines_wrapped_read(uintptr_t base) {
18468     return (uint16_t)((system_sw_read_32(base + 0x1c12cL) & 0xffff) >> 0);
18469 }
18470 // ------------------------------------------------------------------------------ //
18471 // Register: linetick_first
18472 // ------------------------------------------------------------------------------ //
18473 
18474 // ------------------------------------------------------------------------------ //
18475 //
18476 //        Line number of first linetick. 0  = no linetick, >0 = line number to generate linetick
18477 //
18478 // ------------------------------------------------------------------------------ //
18479 
18480 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_FIRST_DEFAULT (0x0000)
18481 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_FIRST_DATASIZE (16)
18482 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_FIRST_OFFSET (0x32a8)
18483 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_FIRST_MASK (0xffff)
18484 
18485 // args: data (16-bit)
acamera_isp_fr_dma_writer_linetick_first_write(uintptr_t base,uint16_t data)18486 static __inline void acamera_isp_fr_dma_writer_linetick_first_write(uintptr_t base, uint16_t data) {
18487     uint32_t curr = system_sw_read_32(base + 0x1c130L);
18488     system_sw_write_32(base + 0x1c130L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
18489 }
acamera_isp_fr_dma_writer_linetick_first_read(uintptr_t base)18490 static __inline uint16_t acamera_isp_fr_dma_writer_linetick_first_read(uintptr_t base) {
18491     return (uint16_t)((system_sw_read_32(base + 0x1c130L) & 0xffff) >> 0);
18492 }
18493 // ------------------------------------------------------------------------------ //
18494 // Register: linetick_repeat
18495 // ------------------------------------------------------------------------------ //
18496 
18497 // ------------------------------------------------------------------------------ //
18498 //
18499 //        Line repeat interval of linetick. 0 = no repeat, >0 = repeat interval in lines
18500 //
18501 // ------------------------------------------------------------------------------ //
18502 
18503 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_REPEAT_DEFAULT (0x0000)
18504 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_REPEAT_DATASIZE (16)
18505 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_REPEAT_OFFSET (0x32ac)
18506 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_REPEAT_MASK (0xffff)
18507 
18508 // args: data (16-bit)
acamera_isp_fr_dma_writer_linetick_repeat_write(uintptr_t base,uint16_t data)18509 static __inline void acamera_isp_fr_dma_writer_linetick_repeat_write(uintptr_t base, uint16_t data) {
18510     uint32_t curr = system_sw_read_32(base + 0x1c134L);
18511     system_sw_write_32(base + 0x1c134L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
18512 }
acamera_isp_fr_dma_writer_linetick_repeat_read(uintptr_t base)18513 static __inline uint16_t acamera_isp_fr_dma_writer_linetick_repeat_read(uintptr_t base) {
18514     return (uint16_t)((system_sw_read_32(base + 0x1c134L) & 0xffff) >> 0);
18515 }
18516 // ------------------------------------------------------------------------------ //
18517 // Register: linetick_eol
18518 // ------------------------------------------------------------------------------ //
18519 
18520 // ------------------------------------------------------------------------------ //
18521 // Linetick start/end of line control. 0 = use start of line, 1 = use end of line to generate linetick
18522 // ------------------------------------------------------------------------------ //
18523 
18524 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_EOL_DEFAULT (0)
18525 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_EOL_DATASIZE (1)
18526 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_EOL_OFFSET (0x32b0)
18527 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_EOL_MASK (0x1)
18528 
18529 // args: data (1-bit)
acamera_isp_fr_dma_writer_linetick_eol_write(uintptr_t base,uint8_t data)18530 static __inline void acamera_isp_fr_dma_writer_linetick_eol_write(uintptr_t base, uint8_t data) {
18531     uint32_t curr = system_sw_read_32(base + 0x1c138L);
18532     system_sw_write_32(base + 0x1c138L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
18533 }
acamera_isp_fr_dma_writer_linetick_eol_read(uintptr_t base)18534 static __inline uint8_t acamera_isp_fr_dma_writer_linetick_eol_read(uintptr_t base) {
18535     return (uint8_t)((system_sw_read_32(base + 0x1c138L) & 0x1) >> 0);
18536 }
18537 // ------------------------------------------------------------------------------ //
18538 // Register: linetick_delay
18539 // ------------------------------------------------------------------------------ //
18540 
18541 // ------------------------------------------------------------------------------ //
18542 //
18543 //        Linetick delay in vcke cycles to add to min 3 cycle latency from acl_vi. 0-65535.
18544 //        Must be less than next linetick generation time or count will not mature and no linetick is not produced.
18545 //          --NOTE: linetick delay  can run past end of frame/field and also into next frame!
18546 //          --      Take care maturity time is less than next configured linetick generation postion!
18547 //          --      Take care when changing config between frame too!
18548 //
18549 // ------------------------------------------------------------------------------ //
18550 
18551 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_DELAY_DEFAULT (0x0000)
18552 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_DELAY_DATASIZE (16)
18553 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_DELAY_OFFSET (0x32b0)
18554 #define ACAMERA_ISP_FR_DMA_WRITER_LINETICK_DELAY_MASK (0xffff0000)
18555 
18556 // args: data (16-bit)
acamera_isp_fr_dma_writer_linetick_delay_write(uintptr_t base,uint16_t data)18557 static __inline void acamera_isp_fr_dma_writer_linetick_delay_write(uintptr_t base, uint16_t data) {
18558     uint32_t curr = system_sw_read_32(base + 0x1c138L);
18559     system_sw_write_32(base + 0x1c138L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
18560 }
acamera_isp_fr_dma_writer_linetick_delay_read(uintptr_t base)18561 static __inline uint16_t acamera_isp_fr_dma_writer_linetick_delay_read(uintptr_t base) {
18562     return (uint16_t)((system_sw_read_32(base + 0x1c138L) & 0xffff0000) >> 16);
18563 }
18564 // ------------------------------------------------------------------------------ //
18565 // Register: pagewarm_on
18566 // ------------------------------------------------------------------------------ //
18567 
18568 // ------------------------------------------------------------------------------ //
18569 //
18570 //        active high, enables posting of pagewarm dummy writes to SMMU for early page translation of upcomming 4K pages.
18571 //        Recommend SMMU has min 8 page cache to avoid translation miss. Pagewarms are posted as dummy writes with wstrb= 0
18572 //
18573 // ------------------------------------------------------------------------------ //
18574 
18575 #define ACAMERA_ISP_FR_DMA_WRITER_PAGEWARM_ON_DEFAULT (0)
18576 #define ACAMERA_ISP_FR_DMA_WRITER_PAGEWARM_ON_DATASIZE (1)
18577 #define ACAMERA_ISP_FR_DMA_WRITER_PAGEWARM_ON_OFFSET (0x32b4)
18578 #define ACAMERA_ISP_FR_DMA_WRITER_PAGEWARM_ON_MASK (0x1)
18579 
18580 // args: data (1-bit)
acamera_isp_fr_dma_writer_pagewarm_on_write(uintptr_t base,uint8_t data)18581 static __inline void acamera_isp_fr_dma_writer_pagewarm_on_write(uintptr_t base, uint8_t data) {
18582     uint32_t curr = system_sw_read_32(base + 0x1c13cL);
18583     system_sw_write_32(base + 0x1c13cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
18584 }
acamera_isp_fr_dma_writer_pagewarm_on_read(uintptr_t base)18585 static __inline uint8_t acamera_isp_fr_dma_writer_pagewarm_on_read(uintptr_t base) {
18586     return (uint8_t)((system_sw_read_32(base + 0x1c13cL) & 0x1) >> 0);
18587 }
18588 // ------------------------------------------------------------------------------ //
18589 // Register: axi_id_multi
18590 // ------------------------------------------------------------------------------ //
18591 
18592 // ------------------------------------------------------------------------------ //
18593 //
18594 //        0= static value (axi_id_value) for awid/wid, 1 = incrementing value per transaction for awid/wid wrapping to 0 after axi_id_value
18595 //
18596 // ------------------------------------------------------------------------------ //
18597 
18598 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_ID_MULTI_DEFAULT (0)
18599 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_ID_MULTI_DATASIZE (1)
18600 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_ID_MULTI_OFFSET (0x32b4)
18601 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_ID_MULTI_MASK (0x2)
18602 
18603 // args: data (1-bit)
acamera_isp_fr_dma_writer_axi_id_multi_write(uintptr_t base,uint8_t data)18604 static __inline void acamera_isp_fr_dma_writer_axi_id_multi_write(uintptr_t base, uint8_t data) {
18605     uint32_t curr = system_sw_read_32(base + 0x1c13cL);
18606     system_sw_write_32(base + 0x1c13cL, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
18607 }
acamera_isp_fr_dma_writer_axi_id_multi_read(uintptr_t base)18608 static __inline uint8_t acamera_isp_fr_dma_writer_axi_id_multi_read(uintptr_t base) {
18609     return (uint8_t)((system_sw_read_32(base + 0x1c13cL) & 0x2) >> 1);
18610 }
18611 // ------------------------------------------------------------------------------ //
18612 // Register: axi_burstsplit
18613 // ------------------------------------------------------------------------------ //
18614 
18615 // ------------------------------------------------------------------------------ //
18616 //
18617 //        memory boundary that splits bursts: 0=2Transfers,1=4Transfers,2=8Transfers,3=16Transfers. (for axi_data_w=128,  16transfers=256Bytes). Good default = 11
18618 //
18619 // ------------------------------------------------------------------------------ //
18620 
18621 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_BURSTSPLIT_DEFAULT (0x3)
18622 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_BURSTSPLIT_DATASIZE (2)
18623 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_BURSTSPLIT_OFFSET (0x32b4)
18624 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_BURSTSPLIT_MASK (0xc)
18625 
18626 // args: data (2-bit)
acamera_isp_fr_dma_writer_axi_burstsplit_write(uintptr_t base,uint8_t data)18627 static __inline void acamera_isp_fr_dma_writer_axi_burstsplit_write(uintptr_t base, uint8_t data) {
18628     uint32_t curr = system_sw_read_32(base + 0x1c13cL);
18629     system_sw_write_32(base + 0x1c13cL, (((uint32_t) (data & 0x3)) << 2) | (curr & 0xfffffff3));
18630 }
acamera_isp_fr_dma_writer_axi_burstsplit_read(uintptr_t base)18631 static __inline uint8_t acamera_isp_fr_dma_writer_axi_burstsplit_read(uintptr_t base) {
18632     return (uint8_t)((system_sw_read_32(base + 0x1c13cL) & 0xc) >> 2);
18633 }
18634 // ------------------------------------------------------------------------------ //
18635 // Register: axi_cache_value
18636 // ------------------------------------------------------------------------------ //
18637 
18638 // ------------------------------------------------------------------------------ //
18639 //
18640 //        value to send for awcache. Good default = 1111
18641 //
18642 // ------------------------------------------------------------------------------ //
18643 
18644 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_CACHE_VALUE_DEFAULT (0xf)
18645 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_CACHE_VALUE_DATASIZE (4)
18646 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_CACHE_VALUE_OFFSET (0x32b4)
18647 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_CACHE_VALUE_MASK (0xf00)
18648 
18649 // args: data (4-bit)
acamera_isp_fr_dma_writer_axi_cache_value_write(uintptr_t base,uint8_t data)18650 static __inline void acamera_isp_fr_dma_writer_axi_cache_value_write(uintptr_t base, uint8_t data) {
18651     uint32_t curr = system_sw_read_32(base + 0x1c13cL);
18652     system_sw_write_32(base + 0x1c13cL, (((uint32_t) (data & 0xf)) << 8) | (curr & 0xfffff0ff));
18653 }
acamera_isp_fr_dma_writer_axi_cache_value_read(uintptr_t base)18654 static __inline uint8_t acamera_isp_fr_dma_writer_axi_cache_value_read(uintptr_t base) {
18655     return (uint8_t)((system_sw_read_32(base + 0x1c13cL) & 0xf00) >> 8);
18656 }
18657 // ------------------------------------------------------------------------------ //
18658 // Register: axi_maxostand
18659 // ------------------------------------------------------------------------------ //
18660 
18661 // ------------------------------------------------------------------------------ //
18662 //
18663 //        max outstanding write transactions (bursts) allowed. zero means no maximum(uses internal limit of 2048).
18664 //
18665 // ------------------------------------------------------------------------------ //
18666 
18667 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_MAXOSTAND_DEFAULT (0x00)
18668 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_MAXOSTAND_DATASIZE (8)
18669 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_MAXOSTAND_OFFSET (0x32b4)
18670 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_MAXOSTAND_MASK (0xff0000)
18671 
18672 // args: data (8-bit)
acamera_isp_fr_dma_writer_axi_maxostand_write(uintptr_t base,uint8_t data)18673 static __inline void acamera_isp_fr_dma_writer_axi_maxostand_write(uintptr_t base, uint8_t data) {
18674     uint32_t curr = system_sw_read_32(base + 0x1c13cL);
18675     system_sw_write_32(base + 0x1c13cL, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
18676 }
acamera_isp_fr_dma_writer_axi_maxostand_read(uintptr_t base)18677 static __inline uint8_t acamera_isp_fr_dma_writer_axi_maxostand_read(uintptr_t base) {
18678     return (uint8_t)((system_sw_read_32(base + 0x1c13cL) & 0xff0000) >> 16);
18679 }
18680 // ------------------------------------------------------------------------------ //
18681 // Register: axi_max_awlen
18682 // ------------------------------------------------------------------------------ //
18683 
18684 // ------------------------------------------------------------------------------ //
18685 //
18686 //        max value to use for awlen (axi burst length). 0000= max 1 transfer/burst , upto 1111= max 16 transfers/burst
18687 //
18688 // ------------------------------------------------------------------------------ //
18689 
18690 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_MAX_AWLEN_DEFAULT (0xf)
18691 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_MAX_AWLEN_DATASIZE (4)
18692 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_MAX_AWLEN_OFFSET (0x32b4)
18693 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_MAX_AWLEN_MASK (0xf000000)
18694 
18695 // args: data (4-bit)
acamera_isp_fr_dma_writer_axi_max_awlen_write(uintptr_t base,uint8_t data)18696 static __inline void acamera_isp_fr_dma_writer_axi_max_awlen_write(uintptr_t base, uint8_t data) {
18697     uint32_t curr = system_sw_read_32(base + 0x1c13cL);
18698     system_sw_write_32(base + 0x1c13cL, (((uint32_t) (data & 0xf)) << 24) | (curr & 0xf0ffffff));
18699 }
acamera_isp_fr_dma_writer_axi_max_awlen_read(uintptr_t base)18700 static __inline uint8_t acamera_isp_fr_dma_writer_axi_max_awlen_read(uintptr_t base) {
18701     return (uint8_t)((system_sw_read_32(base + 0x1c13cL) & 0xf000000) >> 24);
18702 }
18703 // ------------------------------------------------------------------------------ //
18704 // Register: axi_id_value
18705 // ------------------------------------------------------------------------------ //
18706 
18707 // ------------------------------------------------------------------------------ //
18708 //
18709 //        value to send for awid, wid and expected on bid. Good default = 0000
18710 //
18711 // ------------------------------------------------------------------------------ //
18712 
18713 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_ID_VALUE_DEFAULT (0x0)
18714 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_ID_VALUE_DATASIZE (4)
18715 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_ID_VALUE_OFFSET (0x32b8)
18716 #define ACAMERA_ISP_FR_DMA_WRITER_AXI_ID_VALUE_MASK (0xf)
18717 
18718 // args: data (4-bit)
acamera_isp_fr_dma_writer_axi_id_value_write(uintptr_t base,uint8_t data)18719 static __inline void acamera_isp_fr_dma_writer_axi_id_value_write(uintptr_t base, uint8_t data) {
18720     uint32_t curr = system_sw_read_32(base + 0x1c140L);
18721     system_sw_write_32(base + 0x1c140L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
18722 }
acamera_isp_fr_dma_writer_axi_id_value_read(uintptr_t base)18723 static __inline uint8_t acamera_isp_fr_dma_writer_axi_id_value_read(uintptr_t base) {
18724     return (uint8_t)((system_sw_read_32(base + 0x1c140L) & 0xf) >> 0);
18725 }
18726 // ------------------------------------------------------------------------------ //
18727 // Group: fr uv dma writer
18728 // ------------------------------------------------------------------------------ //
18729 
18730 // ------------------------------------------------------------------------------ //
18731 // DMA writer controls
18732 // ------------------------------------------------------------------------------ //
18733 
18734 // ------------------------------------------------------------------------------ //
18735 // Register: Format
18736 // ------------------------------------------------------------------------------ //
18737 
18738 // ------------------------------------------------------------------------------ //
18739 // Format
18740 // ------------------------------------------------------------------------------ //
18741 
18742 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FORMAT_DEFAULT (0x0)
18743 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FORMAT_DATASIZE (8)
18744 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FORMAT_OFFSET (0x32bc)
18745 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FORMAT_MASK (0xff)
18746 
18747 // args: data (8-bit)
acamera_isp_fr_uv_dma_writer_format_write(uintptr_t base,uint8_t data)18748 static __inline void acamera_isp_fr_uv_dma_writer_format_write(uintptr_t base, uint8_t data) {
18749     uint32_t curr = system_sw_read_32(base + 0x1c144L);
18750     system_sw_write_32(base + 0x1c144L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
18751 }
acamera_isp_fr_uv_dma_writer_format_read(uintptr_t base)18752 static __inline uint8_t acamera_isp_fr_uv_dma_writer_format_read(uintptr_t base) {
18753     return (uint8_t)((system_sw_read_32(base + 0x1c144L) & 0xff) >> 0);
18754 }
18755 // ------------------------------------------------------------------------------ //
18756 // Register: Base mode
18757 // ------------------------------------------------------------------------------ //
18758 
18759 // ------------------------------------------------------------------------------ //
18760 // Base DMA packing mode for RGB/RAW/YUV etc (see ISP guide)
18761 // ------------------------------------------------------------------------------ //
18762 
18763 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BASE_MODE_DEFAULT (0x0)
18764 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BASE_MODE_DATASIZE (5)
18765 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BASE_MODE_OFFSET (0x32bc)
18766 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BASE_MODE_MASK (0x1f)
18767 
18768 // args: data (5-bit)
acamera_isp_fr_uv_dma_writer_base_mode_write(uintptr_t base,uint8_t data)18769 static __inline void acamera_isp_fr_uv_dma_writer_base_mode_write(uintptr_t base, uint8_t data) {
18770     uint32_t curr = system_sw_read_32(base + 0x1c144L);
18771     system_sw_write_32(base + 0x1c144L, (((uint32_t) (data & 0x1f)) << 0) | (curr & 0xffffffe0));
18772 }
acamera_isp_fr_uv_dma_writer_base_mode_read(uintptr_t base)18773 static __inline uint8_t acamera_isp_fr_uv_dma_writer_base_mode_read(uintptr_t base) {
18774     return (uint8_t)((system_sw_read_32(base + 0x1c144L) & 0x1f) >> 0);
18775 }
18776 // ------------------------------------------------------------------------------ //
18777 // Register: Plane select
18778 // ------------------------------------------------------------------------------ //
18779 
18780 // ------------------------------------------------------------------------------ //
18781 // Plane select for planar base modes.  Only used if planar outputs required.  Not used.  Should be set to 0
18782 // ------------------------------------------------------------------------------ //
18783 
18784 #define ACAMERA_ISP_FR_UV_DMA_WRITER_PLANE_SELECT_DEFAULT (0x0)
18785 #define ACAMERA_ISP_FR_UV_DMA_WRITER_PLANE_SELECT_DATASIZE (2)
18786 #define ACAMERA_ISP_FR_UV_DMA_WRITER_PLANE_SELECT_OFFSET (0x32bc)
18787 #define ACAMERA_ISP_FR_UV_DMA_WRITER_PLANE_SELECT_MASK (0xc0)
18788 
18789 // args: data (2-bit)
acamera_isp_fr_uv_dma_writer_plane_select_write(uintptr_t base,uint8_t data)18790 static __inline void acamera_isp_fr_uv_dma_writer_plane_select_write(uintptr_t base, uint8_t data) {
18791     uint32_t curr = system_sw_read_32(base + 0x1c144L);
18792     system_sw_write_32(base + 0x1c144L, (((uint32_t) (data & 0x3)) << 6) | (curr & 0xffffff3f));
18793 }
acamera_isp_fr_uv_dma_writer_plane_select_read(uintptr_t base)18794 static __inline uint8_t acamera_isp_fr_uv_dma_writer_plane_select_read(uintptr_t base) {
18795     return (uint8_t)((system_sw_read_32(base + 0x1c144L) & 0xc0) >> 6);
18796 }
18797 // ------------------------------------------------------------------------------ //
18798 // Register: single frame
18799 // ------------------------------------------------------------------------------ //
18800 
18801 // ------------------------------------------------------------------------------ //
18802 // 0 = All frames are written(after frame_write_on= 1), 1= only 1st frame written ( after frame_write_on =1)
18803 // ------------------------------------------------------------------------------ //
18804 
18805 #define ACAMERA_ISP_FR_UV_DMA_WRITER_SINGLE_FRAME_DEFAULT (0)
18806 #define ACAMERA_ISP_FR_UV_DMA_WRITER_SINGLE_FRAME_DATASIZE (1)
18807 #define ACAMERA_ISP_FR_UV_DMA_WRITER_SINGLE_FRAME_OFFSET (0x32bc)
18808 #define ACAMERA_ISP_FR_UV_DMA_WRITER_SINGLE_FRAME_MASK (0x100)
18809 
18810 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_single_frame_write(uintptr_t base,uint8_t data)18811 static __inline void acamera_isp_fr_uv_dma_writer_single_frame_write(uintptr_t base, uint8_t data) {
18812     uint32_t curr = system_sw_read_32(base + 0x1c144L);
18813     system_sw_write_32(base + 0x1c144L, (((uint32_t) (data & 0x1)) << 8) | (curr & 0xfffffeff));
18814 }
acamera_isp_fr_uv_dma_writer_single_frame_read(uintptr_t base)18815 static __inline uint8_t acamera_isp_fr_uv_dma_writer_single_frame_read(uintptr_t base) {
18816     return (uint8_t)((system_sw_read_32(base + 0x1c144L) & 0x100) >> 8);
18817 }
18818 // ------------------------------------------------------------------------------ //
18819 // Register: frame write on
18820 // ------------------------------------------------------------------------------ //
18821 
18822 // ------------------------------------------------------------------------------ //
18823 //
18824 //        0 = no frames written(when switched from 1, current frame completes writing before stopping),
18825 //        1= write frame(s) (write single or continous frame(s) )
18826 //
18827 // ------------------------------------------------------------------------------ //
18828 
18829 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_WRITE_ON_DEFAULT (0)
18830 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_WRITE_ON_DATASIZE (1)
18831 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_WRITE_ON_OFFSET (0x32bc)
18832 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_WRITE_ON_MASK (0x200)
18833 
18834 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_frame_write_on_write(uintptr_t base,uint8_t data)18835 static __inline void acamera_isp_fr_uv_dma_writer_frame_write_on_write(uintptr_t base, uint8_t data) {
18836     uint32_t curr = system_sw_read_32(base + 0x1c144L);
18837     system_sw_write_32(base + 0x1c144L, (((uint32_t) (data & 0x1)) << 9) | (curr & 0xfffffdff));
18838 }
acamera_isp_fr_uv_dma_writer_frame_write_on_read(uintptr_t base)18839 static __inline uint8_t acamera_isp_fr_uv_dma_writer_frame_write_on_read(uintptr_t base) {
18840     return (uint8_t)((system_sw_read_32(base + 0x1c144L) & 0x200) >> 9);
18841 }
18842 // ------------------------------------------------------------------------------ //
18843 // Register: axi xact comp
18844 // ------------------------------------------------------------------------------ //
18845 
18846 // ------------------------------------------------------------------------------ //
18847 // 0 = dont wait for axi transaction completion at end of frame(just all transfers accepted). 1 = wait for all transactions completed
18848 // ------------------------------------------------------------------------------ //
18849 
18850 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_XACT_COMP_DEFAULT (0)
18851 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_XACT_COMP_DATASIZE (1)
18852 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_XACT_COMP_OFFSET (0x32bc)
18853 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_XACT_COMP_MASK (0x800)
18854 
18855 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_axi_xact_comp_write(uintptr_t base,uint8_t data)18856 static __inline void acamera_isp_fr_uv_dma_writer_axi_xact_comp_write(uintptr_t base, uint8_t data) {
18857     uint32_t curr = system_sw_read_32(base + 0x1c144L);
18858     system_sw_write_32(base + 0x1c144L, (((uint32_t) (data & 0x1)) << 11) | (curr & 0xfffff7ff));
18859 }
acamera_isp_fr_uv_dma_writer_axi_xact_comp_read(uintptr_t base)18860 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_xact_comp_read(uintptr_t base) {
18861     return (uint8_t)((system_sw_read_32(base + 0x1c144L) & 0x800) >> 11);
18862 }
18863 // ------------------------------------------------------------------------------ //
18864 // Register: active width
18865 // ------------------------------------------------------------------------------ //
18866 
18867 // ------------------------------------------------------------------------------ //
18868 // Active video width in pixels 128-8000
18869 // ------------------------------------------------------------------------------ //
18870 
18871 #define ACAMERA_ISP_FR_UV_DMA_WRITER_ACTIVE_WIDTH_DEFAULT (0x780)
18872 #define ACAMERA_ISP_FR_UV_DMA_WRITER_ACTIVE_WIDTH_DATASIZE (16)
18873 #define ACAMERA_ISP_FR_UV_DMA_WRITER_ACTIVE_WIDTH_OFFSET (0x32c0)
18874 #define ACAMERA_ISP_FR_UV_DMA_WRITER_ACTIVE_WIDTH_MASK (0xffff)
18875 
18876 // args: data (16-bit)
acamera_isp_fr_uv_dma_writer_active_width_write(uintptr_t base,uint16_t data)18877 static __inline void acamera_isp_fr_uv_dma_writer_active_width_write(uintptr_t base, uint16_t data) {
18878     uint32_t curr = system_sw_read_32(base + 0x1c148L);
18879     system_sw_write_32(base + 0x1c148L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
18880 }
acamera_isp_fr_uv_dma_writer_active_width_read(uintptr_t base)18881 static __inline uint16_t acamera_isp_fr_uv_dma_writer_active_width_read(uintptr_t base) {
18882     return (uint16_t)((system_sw_read_32(base + 0x1c148L) & 0xffff) >> 0);
18883 }
18884 // ------------------------------------------------------------------------------ //
18885 // Register: active height
18886 // ------------------------------------------------------------------------------ //
18887 
18888 // ------------------------------------------------------------------------------ //
18889 // Active video height in lines 128-8000
18890 // ------------------------------------------------------------------------------ //
18891 
18892 #define ACAMERA_ISP_FR_UV_DMA_WRITER_ACTIVE_HEIGHT_DEFAULT (0x438)
18893 #define ACAMERA_ISP_FR_UV_DMA_WRITER_ACTIVE_HEIGHT_DATASIZE (16)
18894 #define ACAMERA_ISP_FR_UV_DMA_WRITER_ACTIVE_HEIGHT_OFFSET (0x32c0)
18895 #define ACAMERA_ISP_FR_UV_DMA_WRITER_ACTIVE_HEIGHT_MASK (0xffff0000)
18896 
18897 // args: data (16-bit)
acamera_isp_fr_uv_dma_writer_active_height_write(uintptr_t base,uint16_t data)18898 static __inline void acamera_isp_fr_uv_dma_writer_active_height_write(uintptr_t base, uint16_t data) {
18899     uint32_t curr = system_sw_read_32(base + 0x1c148L);
18900     system_sw_write_32(base + 0x1c148L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
18901 }
acamera_isp_fr_uv_dma_writer_active_height_read(uintptr_t base)18902 static __inline uint16_t acamera_isp_fr_uv_dma_writer_active_height_read(uintptr_t base) {
18903     return (uint16_t)((system_sw_read_32(base + 0x1c148L) & 0xffff0000) >> 16);
18904 }
18905 // ------------------------------------------------------------------------------ //
18906 // Register: bank0_base
18907 // ------------------------------------------------------------------------------ //
18908 
18909 // ------------------------------------------------------------------------------ //
18910 // bank 0 base address for frame buffer, should be word-aligned
18911 // ------------------------------------------------------------------------------ //
18912 
18913 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK0_BASE_DEFAULT (0x0)
18914 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK0_BASE_DATASIZE (32)
18915 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK0_BASE_OFFSET (0x32c4)
18916 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK0_BASE_MASK (0xffffffff)
18917 
18918 // args: data (32-bit)
acamera_isp_fr_uv_dma_writer_bank0_base_write(uintptr_t base,uint32_t data)18919 static __inline void acamera_isp_fr_uv_dma_writer_bank0_base_write(uintptr_t base, uint32_t data) {
18920     system_sw_write_32(base + 0x1c14cL, data);
18921 }
acamera_isp_fr_uv_dma_writer_bank0_base_read(uintptr_t base)18922 static __inline uint32_t acamera_isp_fr_uv_dma_writer_bank0_base_read(uintptr_t base) {
18923     return system_sw_read_32(base + 0x1c14cL);
18924 }
18925 // ------------------------------------------------------------------------------ //
18926 // Register: bank1_base
18927 // ------------------------------------------------------------------------------ //
18928 
18929 // ------------------------------------------------------------------------------ //
18930 // bank 1 base address for frame buffer, should be word-aligned
18931 // ------------------------------------------------------------------------------ //
18932 
18933 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK1_BASE_DEFAULT (0x0)
18934 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK1_BASE_DATASIZE (32)
18935 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK1_BASE_OFFSET (0x32c8)
18936 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK1_BASE_MASK (0xffffffff)
18937 
18938 // args: data (32-bit)
acamera_isp_fr_uv_dma_writer_bank1_base_write(uintptr_t base,uint32_t data)18939 static __inline void acamera_isp_fr_uv_dma_writer_bank1_base_write(uintptr_t base, uint32_t data) {
18940     system_sw_write_32(base + 0x1c150L, data);
18941 }
acamera_isp_fr_uv_dma_writer_bank1_base_read(uintptr_t base)18942 static __inline uint32_t acamera_isp_fr_uv_dma_writer_bank1_base_read(uintptr_t base) {
18943     return system_sw_read_32(base + 0x1c150L);
18944 }
18945 // ------------------------------------------------------------------------------ //
18946 // Register: bank2_base
18947 // ------------------------------------------------------------------------------ //
18948 
18949 // ------------------------------------------------------------------------------ //
18950 // bank 2 base address for frame buffer, should be word-aligned
18951 // ------------------------------------------------------------------------------ //
18952 
18953 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK2_BASE_DEFAULT (0x0)
18954 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK2_BASE_DATASIZE (32)
18955 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK2_BASE_OFFSET (0x32cc)
18956 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK2_BASE_MASK (0xffffffff)
18957 
18958 // args: data (32-bit)
acamera_isp_fr_uv_dma_writer_bank2_base_write(uintptr_t base,uint32_t data)18959 static __inline void acamera_isp_fr_uv_dma_writer_bank2_base_write(uintptr_t base, uint32_t data) {
18960     system_sw_write_32(base + 0x1c154L, data);
18961 }
acamera_isp_fr_uv_dma_writer_bank2_base_read(uintptr_t base)18962 static __inline uint32_t acamera_isp_fr_uv_dma_writer_bank2_base_read(uintptr_t base) {
18963     return system_sw_read_32(base + 0x1c154L);
18964 }
18965 // ------------------------------------------------------------------------------ //
18966 // Register: bank3_base
18967 // ------------------------------------------------------------------------------ //
18968 
18969 // ------------------------------------------------------------------------------ //
18970 // bank 3 base address for frame buffer, should be word-aligned
18971 // ------------------------------------------------------------------------------ //
18972 
18973 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK3_BASE_DEFAULT (0x0)
18974 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK3_BASE_DATASIZE (32)
18975 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK3_BASE_OFFSET (0x32d0)
18976 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK3_BASE_MASK (0xffffffff)
18977 
18978 // args: data (32-bit)
acamera_isp_fr_uv_dma_writer_bank3_base_write(uintptr_t base,uint32_t data)18979 static __inline void acamera_isp_fr_uv_dma_writer_bank3_base_write(uintptr_t base, uint32_t data) {
18980     system_sw_write_32(base + 0x1c158L, data);
18981 }
acamera_isp_fr_uv_dma_writer_bank3_base_read(uintptr_t base)18982 static __inline uint32_t acamera_isp_fr_uv_dma_writer_bank3_base_read(uintptr_t base) {
18983     return system_sw_read_32(base + 0x1c158L);
18984 }
18985 // ------------------------------------------------------------------------------ //
18986 // Register: bank4_base
18987 // ------------------------------------------------------------------------------ //
18988 
18989 // ------------------------------------------------------------------------------ //
18990 // bank 4 base address for frame buffer, should be word-aligned
18991 // ------------------------------------------------------------------------------ //
18992 
18993 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK4_BASE_DEFAULT (0x0)
18994 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK4_BASE_DATASIZE (32)
18995 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK4_BASE_OFFSET (0x32d4)
18996 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK4_BASE_MASK (0xffffffff)
18997 
18998 // args: data (32-bit)
acamera_isp_fr_uv_dma_writer_bank4_base_write(uintptr_t base,uint32_t data)18999 static __inline void acamera_isp_fr_uv_dma_writer_bank4_base_write(uintptr_t base, uint32_t data) {
19000     system_sw_write_32(base + 0x1c15cL, data);
19001 }
acamera_isp_fr_uv_dma_writer_bank4_base_read(uintptr_t base)19002 static __inline uint32_t acamera_isp_fr_uv_dma_writer_bank4_base_read(uintptr_t base) {
19003     return system_sw_read_32(base + 0x1c15cL);
19004 }
19005 // ------------------------------------------------------------------------------ //
19006 // Register: max bank
19007 // ------------------------------------------------------------------------------ //
19008 
19009 // ------------------------------------------------------------------------------ //
19010 // highest bank*_base to use for frame writes before recycling to bank0_base, only 0 to 4 are valid
19011 // ------------------------------------------------------------------------------ //
19012 
19013 #define ACAMERA_ISP_FR_UV_DMA_WRITER_MAX_BANK_DEFAULT (0x0)
19014 #define ACAMERA_ISP_FR_UV_DMA_WRITER_MAX_BANK_DATASIZE (3)
19015 #define ACAMERA_ISP_FR_UV_DMA_WRITER_MAX_BANK_OFFSET (0x32d8)
19016 #define ACAMERA_ISP_FR_UV_DMA_WRITER_MAX_BANK_MASK (0x7)
19017 
19018 // args: data (3-bit)
acamera_isp_fr_uv_dma_writer_max_bank_write(uintptr_t base,uint8_t data)19019 static __inline void acamera_isp_fr_uv_dma_writer_max_bank_write(uintptr_t base, uint8_t data) {
19020     uint32_t curr = system_sw_read_32(base + 0x1c160L);
19021     system_sw_write_32(base + 0x1c160L, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
19022 }
acamera_isp_fr_uv_dma_writer_max_bank_read(uintptr_t base)19023 static __inline uint8_t acamera_isp_fr_uv_dma_writer_max_bank_read(uintptr_t base) {
19024     return (uint8_t)((system_sw_read_32(base + 0x1c160L) & 0x7) >> 0);
19025 }
19026 // ------------------------------------------------------------------------------ //
19027 // Register: bank0 restart
19028 // ------------------------------------------------------------------------------ //
19029 
19030 // ------------------------------------------------------------------------------ //
19031 // 0 = normal operation, 1= restart bank counter to bank0 for next frame write
19032 // ------------------------------------------------------------------------------ //
19033 
19034 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK0_RESTART_DEFAULT (0)
19035 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK0_RESTART_DATASIZE (1)
19036 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK0_RESTART_OFFSET (0x32d8)
19037 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BANK0_RESTART_MASK (0x8)
19038 
19039 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_bank0_restart_write(uintptr_t base,uint8_t data)19040 static __inline void acamera_isp_fr_uv_dma_writer_bank0_restart_write(uintptr_t base, uint8_t data) {
19041     uint32_t curr = system_sw_read_32(base + 0x1c160L);
19042     system_sw_write_32(base + 0x1c160L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
19043 }
acamera_isp_fr_uv_dma_writer_bank0_restart_read(uintptr_t base)19044 static __inline uint8_t acamera_isp_fr_uv_dma_writer_bank0_restart_read(uintptr_t base) {
19045     return (uint8_t)((system_sw_read_32(base + 0x1c160L) & 0x8) >> 3);
19046 }
19047 // ------------------------------------------------------------------------------ //
19048 // Register: Line_offset
19049 // ------------------------------------------------------------------------------ //
19050 
19051 // ------------------------------------------------------------------------------ //
19052 //
19053 //        Indicates the offset in bytes from the start of one line to the next line.
19054 //        This value should be equal to or larger than one line of image data and should be word-aligned
19055 //
19056 // ------------------------------------------------------------------------------ //
19057 
19058 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINE_OFFSET_DEFAULT (0x1000)
19059 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINE_OFFSET_DATASIZE (32)
19060 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINE_OFFSET_OFFSET (0x32dc)
19061 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINE_OFFSET_MASK (0xffffffff)
19062 
19063 // args: data (32-bit)
acamera_isp_fr_uv_dma_writer_line_offset_write(uintptr_t base,uint32_t data)19064 static __inline void acamera_isp_fr_uv_dma_writer_line_offset_write(uintptr_t base, uint32_t data) {
19065     system_sw_write_32(base + 0x1c164L, data);
19066 }
acamera_isp_fr_uv_dma_writer_line_offset_read(uintptr_t base)19067 static __inline uint32_t acamera_isp_fr_uv_dma_writer_line_offset_read(uintptr_t base) {
19068     return system_sw_read_32(base + 0x1c164L);
19069 }
19070 // ------------------------------------------------------------------------------ //
19071 // Register: wbank curr
19072 // ------------------------------------------------------------------------------ //
19073 
19074 // ------------------------------------------------------------------------------ //
19075 // write bank currently active. valid values =0-4. updated at start of frame write
19076 // ------------------------------------------------------------------------------ //
19077 
19078 #define ACAMERA_ISP_FR_UV_DMA_WRITER_WBANK_CURR_DEFAULT (0x0)
19079 #define ACAMERA_ISP_FR_UV_DMA_WRITER_WBANK_CURR_DATASIZE (3)
19080 #define ACAMERA_ISP_FR_UV_DMA_WRITER_WBANK_CURR_OFFSET (0x32e0)
19081 #define ACAMERA_ISP_FR_UV_DMA_WRITER_WBANK_CURR_MASK (0xe)
19082 
19083 // args: data (3-bit)
acamera_isp_fr_uv_dma_writer_wbank_curr_read(uintptr_t base)19084 static __inline uint8_t acamera_isp_fr_uv_dma_writer_wbank_curr_read(uintptr_t base) {
19085     return (uint8_t)((system_sw_read_32(base + 0x1c168L) & 0xe) >> 1);
19086 }
19087 // ------------------------------------------------------------------------------ //
19088 // Register: wbank active
19089 // ------------------------------------------------------------------------------ //
19090 
19091 // ------------------------------------------------------------------------------ //
19092 // 1 = wbank_curr is being written to. Goes high at start of writes, low at last write transfer/completion on axi.
19093 // ------------------------------------------------------------------------------ //
19094 
19095 #define ACAMERA_ISP_FR_UV_DMA_WRITER_WBANK_ACTIVE_DEFAULT (0x0)
19096 #define ACAMERA_ISP_FR_UV_DMA_WRITER_WBANK_ACTIVE_DATASIZE (1)
19097 #define ACAMERA_ISP_FR_UV_DMA_WRITER_WBANK_ACTIVE_OFFSET (0x32e0)
19098 #define ACAMERA_ISP_FR_UV_DMA_WRITER_WBANK_ACTIVE_MASK (0x1)
19099 
19100 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_wbank_active_read(uintptr_t base)19101 static __inline uint8_t acamera_isp_fr_uv_dma_writer_wbank_active_read(uintptr_t base) {
19102     return (uint8_t)((system_sw_read_32(base + 0x1c168L) & 0x1) >> 0);
19103 }
19104 // ------------------------------------------------------------------------------ //
19105 // Register: frame icount
19106 // ------------------------------------------------------------------------------ //
19107 
19108 // ------------------------------------------------------------------------------ //
19109 // count of incomming frames (starts) to vdma_writer on video input, non resetable, rolls over, updates at pixel 1 of new frame on video in
19110 // ------------------------------------------------------------------------------ //
19111 
19112 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_ICOUNT_DEFAULT (0x0)
19113 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_ICOUNT_DATASIZE (16)
19114 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_ICOUNT_OFFSET (0x32ec)
19115 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_ICOUNT_MASK (0xffff)
19116 
19117 // args: data (16-bit)
acamera_isp_fr_uv_dma_writer_frame_icount_read(uintptr_t base)19118 static __inline uint16_t acamera_isp_fr_uv_dma_writer_frame_icount_read(uintptr_t base) {
19119     return (uint16_t)((system_sw_read_32(base + 0x1c174L) & 0xffff) >> 0);
19120 }
19121 // ------------------------------------------------------------------------------ //
19122 // Register: frame wcount
19123 // ------------------------------------------------------------------------------ //
19124 
19125 // ------------------------------------------------------------------------------ //
19126 // count of outgoing frame writes (starts) from vdma_writer sent to AXI output, non resetable, rolls over, updates at pixel 1 of new frame on video in
19127 // ------------------------------------------------------------------------------ //
19128 
19129 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_WCOUNT_DEFAULT (0x0)
19130 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_WCOUNT_DATASIZE (16)
19131 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_WCOUNT_OFFSET (0x32ec)
19132 #define ACAMERA_ISP_FR_UV_DMA_WRITER_FRAME_WCOUNT_MASK (0xffff0000)
19133 
19134 // args: data (16-bit)
acamera_isp_fr_uv_dma_writer_frame_wcount_read(uintptr_t base)19135 static __inline uint16_t acamera_isp_fr_uv_dma_writer_frame_wcount_read(uintptr_t base) {
19136     return (uint16_t)((system_sw_read_32(base + 0x1c174L) & 0xffff0000) >> 16);
19137 }
19138 // ------------------------------------------------------------------------------ //
19139 // Register: axi_fail_bresp
19140 // ------------------------------------------------------------------------------ //
19141 
19142 // ------------------------------------------------------------------------------ //
19143 //  clearable alarm, high to indicate bad  bresp captured
19144 // ------------------------------------------------------------------------------ //
19145 
19146 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_BRESP_DEFAULT (0x0)
19147 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_BRESP_DATASIZE (1)
19148 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_BRESP_OFFSET (0x32f4)
19149 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_BRESP_MASK (0x1)
19150 
19151 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_axi_fail_bresp_read(uintptr_t base)19152 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_fail_bresp_read(uintptr_t base) {
19153     return (uint8_t)((system_sw_read_32(base + 0x1c17cL) & 0x1) >> 0);
19154 }
19155 // ------------------------------------------------------------------------------ //
19156 // Register: axi_fail_awmaxwait
19157 // ------------------------------------------------------------------------------ //
19158 
19159 // ------------------------------------------------------------------------------ //
19160 //  clearable alarm, high when awmaxwait_limit reached
19161 // ------------------------------------------------------------------------------ //
19162 
19163 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_AWMAXWAIT_DEFAULT (0x0)
19164 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_AWMAXWAIT_DATASIZE (1)
19165 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_AWMAXWAIT_OFFSET (0x32f4)
19166 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_AWMAXWAIT_MASK (0x2)
19167 
19168 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_axi_fail_awmaxwait_read(uintptr_t base)19169 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_fail_awmaxwait_read(uintptr_t base) {
19170     return (uint8_t)((system_sw_read_32(base + 0x1c17cL) & 0x2) >> 1);
19171 }
19172 // ------------------------------------------------------------------------------ //
19173 // Register: axi_fail_wmaxwait
19174 // ------------------------------------------------------------------------------ //
19175 
19176 // ------------------------------------------------------------------------------ //
19177 //  clearable alarm, high when wmaxwait_limit reached
19178 // ------------------------------------------------------------------------------ //
19179 
19180 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_WMAXWAIT_DEFAULT (0x0)
19181 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_WMAXWAIT_DATASIZE (1)
19182 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_WMAXWAIT_OFFSET (0x32f4)
19183 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_WMAXWAIT_MASK (0x4)
19184 
19185 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_axi_fail_wmaxwait_read(uintptr_t base)19186 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_fail_wmaxwait_read(uintptr_t base) {
19187     return (uint8_t)((system_sw_read_32(base + 0x1c17cL) & 0x4) >> 2);
19188 }
19189 // ------------------------------------------------------------------------------ //
19190 // Register: axi_fail_wxact_ostand
19191 // ------------------------------------------------------------------------------ //
19192 
19193 // ------------------------------------------------------------------------------ //
19194 //  clearable alarm, high when wxact_ostand_limit reached
19195 // ------------------------------------------------------------------------------ //
19196 
19197 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_DEFAULT (0x0)
19198 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_DATASIZE (1)
19199 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_OFFSET (0x32f4)
19200 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_MASK (0x8)
19201 
19202 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_axi_fail_wxact_ostand_read(uintptr_t base)19203 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_fail_wxact_ostand_read(uintptr_t base) {
19204     return (uint8_t)((system_sw_read_32(base + 0x1c17cL) & 0x8) >> 3);
19205 }
19206 // ------------------------------------------------------------------------------ //
19207 // Register: vi_fail_active_width
19208 // ------------------------------------------------------------------------------ //
19209 
19210 // ------------------------------------------------------------------------------ //
19211 //  clearable alarm, high to indicate mismatched active_width detected
19212 // ------------------------------------------------------------------------------ //
19213 
19214 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_DEFAULT (0x0)
19215 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_DATASIZE (1)
19216 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_OFFSET (0x32f4)
19217 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_MASK (0x10)
19218 
19219 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_vi_fail_active_width_read(uintptr_t base)19220 static __inline uint8_t acamera_isp_fr_uv_dma_writer_vi_fail_active_width_read(uintptr_t base) {
19221     return (uint8_t)((system_sw_read_32(base + 0x1c17cL) & 0x10) >> 4);
19222 }
19223 // ------------------------------------------------------------------------------ //
19224 // Register: vi_fail_active_height
19225 // ------------------------------------------------------------------------------ //
19226 
19227 // ------------------------------------------------------------------------------ //
19228 //  clearable alarm, high to indicate mismatched active_height detected ( also raised on missing field!)
19229 // ------------------------------------------------------------------------------ //
19230 
19231 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_DEFAULT (0x0)
19232 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_DATASIZE (1)
19233 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_OFFSET (0x32f4)
19234 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_MASK (0x20)
19235 
19236 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_vi_fail_active_height_read(uintptr_t base)19237 static __inline uint8_t acamera_isp_fr_uv_dma_writer_vi_fail_active_height_read(uintptr_t base) {
19238     return (uint8_t)((system_sw_read_32(base + 0x1c17cL) & 0x20) >> 5);
19239 }
19240 // ------------------------------------------------------------------------------ //
19241 // Register: vi_fail_interline_blanks
19242 // ------------------------------------------------------------------------------ //
19243 
19244 // ------------------------------------------------------------------------------ //
19245 //  clearable alarm, high to indicate interline blanking below min
19246 // ------------------------------------------------------------------------------ //
19247 
19248 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_DEFAULT (0x0)
19249 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_DATASIZE (1)
19250 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_OFFSET (0x32f4)
19251 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_MASK (0x40)
19252 
19253 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_vi_fail_interline_blanks_read(uintptr_t base)19254 static __inline uint8_t acamera_isp_fr_uv_dma_writer_vi_fail_interline_blanks_read(uintptr_t base) {
19255     return (uint8_t)((system_sw_read_32(base + 0x1c17cL) & 0x40) >> 6);
19256 }
19257 // ------------------------------------------------------------------------------ //
19258 // Register: vi_fail_interframe_blanks
19259 // ------------------------------------------------------------------------------ //
19260 
19261 // ------------------------------------------------------------------------------ //
19262 //  clearable alarm, high to indicate interframe blanking below min
19263 // ------------------------------------------------------------------------------ //
19264 
19265 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_DEFAULT (0x0)
19266 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_DATASIZE (1)
19267 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_OFFSET (0x32f4)
19268 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_MASK (0x80)
19269 
19270 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_vi_fail_interframe_blanks_read(uintptr_t base)19271 static __inline uint8_t acamera_isp_fr_uv_dma_writer_vi_fail_interframe_blanks_read(uintptr_t base) {
19272     return (uint8_t)((system_sw_read_32(base + 0x1c17cL) & 0x80) >> 7);
19273 }
19274 // ------------------------------------------------------------------------------ //
19275 // Register: video_alarm
19276 // ------------------------------------------------------------------------------ //
19277 
19278 // ------------------------------------------------------------------------------ //
19279 //  active high, problem found on video port(s) ( active width/height or interline/frame blanks failure)
19280 // ------------------------------------------------------------------------------ //
19281 
19282 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VIDEO_ALARM_DEFAULT (0x0)
19283 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VIDEO_ALARM_DATASIZE (1)
19284 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VIDEO_ALARM_OFFSET (0x32f4)
19285 #define ACAMERA_ISP_FR_UV_DMA_WRITER_VIDEO_ALARM_MASK (0x100)
19286 
19287 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_video_alarm_read(uintptr_t base)19288 static __inline uint8_t acamera_isp_fr_uv_dma_writer_video_alarm_read(uintptr_t base) {
19289     return (uint8_t)((system_sw_read_32(base + 0x1c17cL) & 0x100) >> 8);
19290 }
19291 // ------------------------------------------------------------------------------ //
19292 // Register: blk_status
19293 // ------------------------------------------------------------------------------ //
19294 
19295 // ------------------------------------------------------------------------------ //
19296 //
19297 //        block status output (reserved)
19298 //                          -- blk_status(0) = wfifo_fail_full
19299 //                          -- blk_status(1) = wfifo_fail_empty
19300 //                          -- blk_status(4) = pack_fail_overflow
19301 //                          -- blk_status(24) = intw_fail_user_intfc_sig
19302 //                          -- blk_status(others) =  zero
19303 //
19304 // ------------------------------------------------------------------------------ //
19305 
19306 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BLK_STATUS_DEFAULT (0x0)
19307 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BLK_STATUS_DATASIZE (32)
19308 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BLK_STATUS_OFFSET (0x32f8)
19309 #define ACAMERA_ISP_FR_UV_DMA_WRITER_BLK_STATUS_MASK (0xffffffff)
19310 
19311 // args: data (32-bit)
acamera_isp_fr_uv_dma_writer_blk_status_read(uintptr_t base)19312 static __inline uint32_t acamera_isp_fr_uv_dma_writer_blk_status_read(uintptr_t base) {
19313     return system_sw_read_32(base + 0x1c180L);
19314 }
19315 // ------------------------------------------------------------------------------ //
19316 // Register: lines_wrapped
19317 // ------------------------------------------------------------------------------ //
19318 
19319 // ------------------------------------------------------------------------------ //
19320 //
19321 //        Number of lines to write from base address before wrapping back to base address. 0 = no wrapping, >0 = last line written before wrapping
19322 //
19323 // ------------------------------------------------------------------------------ //
19324 
19325 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINES_WRAPPED_DEFAULT (0x0000)
19326 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINES_WRAPPED_DATASIZE (16)
19327 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINES_WRAPPED_OFFSET (0x32fc)
19328 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINES_WRAPPED_MASK (0xffff)
19329 
19330 // args: data (16-bit)
acamera_isp_fr_uv_dma_writer_lines_wrapped_write(uintptr_t base,uint16_t data)19331 static __inline void acamera_isp_fr_uv_dma_writer_lines_wrapped_write(uintptr_t base, uint16_t data) {
19332     uint32_t curr = system_sw_read_32(base + 0x1c184L);
19333     system_sw_write_32(base + 0x1c184L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
19334 }
acamera_isp_fr_uv_dma_writer_lines_wrapped_read(uintptr_t base)19335 static __inline uint16_t acamera_isp_fr_uv_dma_writer_lines_wrapped_read(uintptr_t base) {
19336     return (uint16_t)((system_sw_read_32(base + 0x1c184L) & 0xffff) >> 0);
19337 }
19338 // ------------------------------------------------------------------------------ //
19339 // Register: linetick_first
19340 // ------------------------------------------------------------------------------ //
19341 
19342 // ------------------------------------------------------------------------------ //
19343 //
19344 //        Line number of first linetick. 0  = no linetick, >0 = line number to generate linetick
19345 //
19346 // ------------------------------------------------------------------------------ //
19347 
19348 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_FIRST_DEFAULT (0x0000)
19349 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_FIRST_DATASIZE (16)
19350 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_FIRST_OFFSET (0x3300)
19351 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_FIRST_MASK (0xffff)
19352 
19353 // args: data (16-bit)
acamera_isp_fr_uv_dma_writer_linetick_first_write(uintptr_t base,uint16_t data)19354 static __inline void acamera_isp_fr_uv_dma_writer_linetick_first_write(uintptr_t base, uint16_t data) {
19355     uint32_t curr = system_sw_read_32(base + 0x1c188L);
19356     system_sw_write_32(base + 0x1c188L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
19357 }
acamera_isp_fr_uv_dma_writer_linetick_first_read(uintptr_t base)19358 static __inline uint16_t acamera_isp_fr_uv_dma_writer_linetick_first_read(uintptr_t base) {
19359     return (uint16_t)((system_sw_read_32(base + 0x1c188L) & 0xffff) >> 0);
19360 }
19361 // ------------------------------------------------------------------------------ //
19362 // Register: linetick_repeat
19363 // ------------------------------------------------------------------------------ //
19364 
19365 // ------------------------------------------------------------------------------ //
19366 //
19367 //        Line repeat interval of linetick. 0 = no repeat, >0 = repeat interval in lines
19368 //
19369 // ------------------------------------------------------------------------------ //
19370 
19371 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_REPEAT_DEFAULT (0x0000)
19372 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_REPEAT_DATASIZE (16)
19373 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_REPEAT_OFFSET (0x3304)
19374 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_REPEAT_MASK (0xffff)
19375 
19376 // args: data (16-bit)
acamera_isp_fr_uv_dma_writer_linetick_repeat_write(uintptr_t base,uint16_t data)19377 static __inline void acamera_isp_fr_uv_dma_writer_linetick_repeat_write(uintptr_t base, uint16_t data) {
19378     uint32_t curr = system_sw_read_32(base + 0x1c18cL);
19379     system_sw_write_32(base + 0x1c18cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
19380 }
acamera_isp_fr_uv_dma_writer_linetick_repeat_read(uintptr_t base)19381 static __inline uint16_t acamera_isp_fr_uv_dma_writer_linetick_repeat_read(uintptr_t base) {
19382     return (uint16_t)((system_sw_read_32(base + 0x1c18cL) & 0xffff) >> 0);
19383 }
19384 // ------------------------------------------------------------------------------ //
19385 // Register: linetick_eol
19386 // ------------------------------------------------------------------------------ //
19387 
19388 // ------------------------------------------------------------------------------ //
19389 // Linetick start/end of line control. 0 = use start of line, 1 = use end of line to generate linetick
19390 // ------------------------------------------------------------------------------ //
19391 
19392 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_EOL_DEFAULT (0)
19393 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_EOL_DATASIZE (1)
19394 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_EOL_OFFSET (0x3308)
19395 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_EOL_MASK (0x1)
19396 
19397 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_linetick_eol_write(uintptr_t base,uint8_t data)19398 static __inline void acamera_isp_fr_uv_dma_writer_linetick_eol_write(uintptr_t base, uint8_t data) {
19399     uint32_t curr = system_sw_read_32(base + 0x1c190L);
19400     system_sw_write_32(base + 0x1c190L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
19401 }
acamera_isp_fr_uv_dma_writer_linetick_eol_read(uintptr_t base)19402 static __inline uint8_t acamera_isp_fr_uv_dma_writer_linetick_eol_read(uintptr_t base) {
19403     return (uint8_t)((system_sw_read_32(base + 0x1c190L) & 0x1) >> 0);
19404 }
19405 // ------------------------------------------------------------------------------ //
19406 // Register: linetick_delay
19407 // ------------------------------------------------------------------------------ //
19408 
19409 // ------------------------------------------------------------------------------ //
19410 //
19411 //        Linetick delay in vcke cycles to add to min 3 cycle latency from acl_vi. 0-65535.
19412 //        Must be less than next linetick generation time or count will not mature and no linetick is not produced.
19413 //          --NOTE: linetick delay  can run past end of frame/field and also into next frame!
19414 //          --      Take care maturity time is less than next configured linetick generation postion!
19415 //          --      Take care when changing config between frame too!
19416 //
19417 // ------------------------------------------------------------------------------ //
19418 
19419 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_DELAY_DEFAULT (0x0000)
19420 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_DELAY_DATASIZE (16)
19421 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_DELAY_OFFSET (0x3308)
19422 #define ACAMERA_ISP_FR_UV_DMA_WRITER_LINETICK_DELAY_MASK (0xffff0000)
19423 
19424 // args: data (16-bit)
acamera_isp_fr_uv_dma_writer_linetick_delay_write(uintptr_t base,uint16_t data)19425 static __inline void acamera_isp_fr_uv_dma_writer_linetick_delay_write(uintptr_t base, uint16_t data) {
19426     uint32_t curr = system_sw_read_32(base + 0x1c190L);
19427     system_sw_write_32(base + 0x1c190L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
19428 }
acamera_isp_fr_uv_dma_writer_linetick_delay_read(uintptr_t base)19429 static __inline uint16_t acamera_isp_fr_uv_dma_writer_linetick_delay_read(uintptr_t base) {
19430     return (uint16_t)((system_sw_read_32(base + 0x1c190L) & 0xffff0000) >> 16);
19431 }
19432 // ------------------------------------------------------------------------------ //
19433 // Register: pagewarm_on
19434 // ------------------------------------------------------------------------------ //
19435 
19436 // ------------------------------------------------------------------------------ //
19437 //
19438 //        active high, enables posting of pagewarm dummy writes to SMMU for early page translation of upcomming 4K pages.
19439 //        Recommend SMMU has min 8 page cache to avoid translation miss. Pagewarms are posted as dummy writes with wstrb= 0
19440 //
19441 // ------------------------------------------------------------------------------ //
19442 
19443 #define ACAMERA_ISP_FR_UV_DMA_WRITER_PAGEWARM_ON_DEFAULT (0)
19444 #define ACAMERA_ISP_FR_UV_DMA_WRITER_PAGEWARM_ON_DATASIZE (1)
19445 #define ACAMERA_ISP_FR_UV_DMA_WRITER_PAGEWARM_ON_OFFSET (0x330c)
19446 #define ACAMERA_ISP_FR_UV_DMA_WRITER_PAGEWARM_ON_MASK (0x1)
19447 
19448 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_pagewarm_on_write(uintptr_t base,uint8_t data)19449 static __inline void acamera_isp_fr_uv_dma_writer_pagewarm_on_write(uintptr_t base, uint8_t data) {
19450     uint32_t curr = system_sw_read_32(base + 0x1c194L);
19451     system_sw_write_32(base + 0x1c194L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
19452 }
acamera_isp_fr_uv_dma_writer_pagewarm_on_read(uintptr_t base)19453 static __inline uint8_t acamera_isp_fr_uv_dma_writer_pagewarm_on_read(uintptr_t base) {
19454     return (uint8_t)((system_sw_read_32(base + 0x1c194L) & 0x1) >> 0);
19455 }
19456 // ------------------------------------------------------------------------------ //
19457 // Register: axi_id_multi
19458 // ------------------------------------------------------------------------------ //
19459 
19460 // ------------------------------------------------------------------------------ //
19461 //
19462 //        0= static value (axi_id_value) for awid/wid, 1 = incrementing value per transaction for awid/wid wrapping to 0 after axi_id_value
19463 //
19464 // ------------------------------------------------------------------------------ //
19465 
19466 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_ID_MULTI_DEFAULT (0)
19467 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_ID_MULTI_DATASIZE (1)
19468 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_ID_MULTI_OFFSET (0x330c)
19469 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_ID_MULTI_MASK (0x2)
19470 
19471 // args: data (1-bit)
acamera_isp_fr_uv_dma_writer_axi_id_multi_write(uintptr_t base,uint8_t data)19472 static __inline void acamera_isp_fr_uv_dma_writer_axi_id_multi_write(uintptr_t base, uint8_t data) {
19473     uint32_t curr = system_sw_read_32(base + 0x1c194L);
19474     system_sw_write_32(base + 0x1c194L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
19475 }
acamera_isp_fr_uv_dma_writer_axi_id_multi_read(uintptr_t base)19476 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_id_multi_read(uintptr_t base) {
19477     return (uint8_t)((system_sw_read_32(base + 0x1c194L) & 0x2) >> 1);
19478 }
19479 // ------------------------------------------------------------------------------ //
19480 // Register: axi_burstsplit
19481 // ------------------------------------------------------------------------------ //
19482 
19483 // ------------------------------------------------------------------------------ //
19484 //
19485 //        memory boundary that splits bursts: 0=2Transfers,1=4Transfers,2=8Transfers,3=16Transfers. (for axi_data_w=128,  16transfers=256Bytes). Good default = 11
19486 //
19487 // ------------------------------------------------------------------------------ //
19488 
19489 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_BURSTSPLIT_DEFAULT (0x3)
19490 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_BURSTSPLIT_DATASIZE (2)
19491 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_BURSTSPLIT_OFFSET (0x330c)
19492 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_BURSTSPLIT_MASK (0xc)
19493 
19494 // args: data (2-bit)
acamera_isp_fr_uv_dma_writer_axi_burstsplit_write(uintptr_t base,uint8_t data)19495 static __inline void acamera_isp_fr_uv_dma_writer_axi_burstsplit_write(uintptr_t base, uint8_t data) {
19496     uint32_t curr = system_sw_read_32(base + 0x1c194L);
19497     system_sw_write_32(base + 0x1c194L, (((uint32_t) (data & 0x3)) << 2) | (curr & 0xfffffff3));
19498 }
acamera_isp_fr_uv_dma_writer_axi_burstsplit_read(uintptr_t base)19499 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_burstsplit_read(uintptr_t base) {
19500     return (uint8_t)((system_sw_read_32(base + 0x1c194L) & 0xc) >> 2);
19501 }
19502 // ------------------------------------------------------------------------------ //
19503 // Register: axi_cache_value
19504 // ------------------------------------------------------------------------------ //
19505 
19506 // ------------------------------------------------------------------------------ //
19507 //
19508 //        value to send for awcache. Good default = 1111
19509 //
19510 // ------------------------------------------------------------------------------ //
19511 
19512 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_CACHE_VALUE_DEFAULT (0xf)
19513 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_CACHE_VALUE_DATASIZE (4)
19514 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_CACHE_VALUE_OFFSET (0x330c)
19515 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_CACHE_VALUE_MASK (0xf00)
19516 
19517 // args: data (4-bit)
acamera_isp_fr_uv_dma_writer_axi_cache_value_write(uintptr_t base,uint8_t data)19518 static __inline void acamera_isp_fr_uv_dma_writer_axi_cache_value_write(uintptr_t base, uint8_t data) {
19519     uint32_t curr = system_sw_read_32(base + 0x1c194L);
19520     system_sw_write_32(base + 0x1c194L, (((uint32_t) (data & 0xf)) << 8) | (curr & 0xfffff0ff));
19521 }
acamera_isp_fr_uv_dma_writer_axi_cache_value_read(uintptr_t base)19522 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_cache_value_read(uintptr_t base) {
19523     return (uint8_t)((system_sw_read_32(base + 0x1c194L) & 0xf00) >> 8);
19524 }
19525 // ------------------------------------------------------------------------------ //
19526 // Register: axi_maxostand
19527 // ------------------------------------------------------------------------------ //
19528 
19529 // ------------------------------------------------------------------------------ //
19530 //
19531 //        max outstanding write transactions (bursts) allowed. zero means no maximum(uses internal limit of 2048).
19532 //
19533 // ------------------------------------------------------------------------------ //
19534 
19535 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_MAXOSTAND_DEFAULT (0x00)
19536 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_MAXOSTAND_DATASIZE (8)
19537 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_MAXOSTAND_OFFSET (0x330c)
19538 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_MAXOSTAND_MASK (0xff0000)
19539 
19540 // args: data (8-bit)
acamera_isp_fr_uv_dma_writer_axi_maxostand_write(uintptr_t base,uint8_t data)19541 static __inline void acamera_isp_fr_uv_dma_writer_axi_maxostand_write(uintptr_t base, uint8_t data) {
19542     uint32_t curr = system_sw_read_32(base + 0x1c194L);
19543     system_sw_write_32(base + 0x1c194L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
19544 }
acamera_isp_fr_uv_dma_writer_axi_maxostand_read(uintptr_t base)19545 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_maxostand_read(uintptr_t base) {
19546     return (uint8_t)((system_sw_read_32(base + 0x1c194L) & 0xff0000) >> 16);
19547 }
19548 // ------------------------------------------------------------------------------ //
19549 // Register: axi_max_awlen
19550 // ------------------------------------------------------------------------------ //
19551 
19552 // ------------------------------------------------------------------------------ //
19553 //
19554 //        max value to use for awlen (axi burst length). 0000= max 1 transfer/burst , upto 1111= max 16 transfers/burst
19555 //
19556 // ------------------------------------------------------------------------------ //
19557 
19558 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_MAX_AWLEN_DEFAULT (0xf)
19559 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_MAX_AWLEN_DATASIZE (4)
19560 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_MAX_AWLEN_OFFSET (0x330c)
19561 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_MAX_AWLEN_MASK (0xf000000)
19562 
19563 // args: data (4-bit)
acamera_isp_fr_uv_dma_writer_axi_max_awlen_write(uintptr_t base,uint8_t data)19564 static __inline void acamera_isp_fr_uv_dma_writer_axi_max_awlen_write(uintptr_t base, uint8_t data) {
19565     uint32_t curr = system_sw_read_32(base + 0x1c194L);
19566     system_sw_write_32(base + 0x1c194L, (((uint32_t) (data & 0xf)) << 24) | (curr & 0xf0ffffff));
19567 }
acamera_isp_fr_uv_dma_writer_axi_max_awlen_read(uintptr_t base)19568 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_max_awlen_read(uintptr_t base) {
19569     return (uint8_t)((system_sw_read_32(base + 0x1c194L) & 0xf000000) >> 24);
19570 }
19571 // ------------------------------------------------------------------------------ //
19572 // Register: axi_id_value
19573 // ------------------------------------------------------------------------------ //
19574 
19575 // ------------------------------------------------------------------------------ //
19576 //
19577 //        value to send for awid, wid and expected on bid. Good default = 0000
19578 //
19579 // ------------------------------------------------------------------------------ //
19580 
19581 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_ID_VALUE_DEFAULT (0x0)
19582 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_ID_VALUE_DATASIZE (4)
19583 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_ID_VALUE_OFFSET (0x3310)
19584 #define ACAMERA_ISP_FR_UV_DMA_WRITER_AXI_ID_VALUE_MASK (0xf)
19585 
19586 // args: data (4-bit)
acamera_isp_fr_uv_dma_writer_axi_id_value_write(uintptr_t base,uint8_t data)19587 static __inline void acamera_isp_fr_uv_dma_writer_axi_id_value_write(uintptr_t base, uint8_t data) {
19588     uint32_t curr = system_sw_read_32(base + 0x1c198L);
19589     system_sw_write_32(base + 0x1c198L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
19590 }
acamera_isp_fr_uv_dma_writer_axi_id_value_read(uintptr_t base)19591 static __inline uint8_t acamera_isp_fr_uv_dma_writer_axi_id_value_read(uintptr_t base) {
19592     return (uint8_t)((system_sw_read_32(base + 0x1c198L) & 0xf) >> 0);
19593 }
19594 // ------------------------------------------------------------------------------ //
19595 // Group: ds crop
19596 // ------------------------------------------------------------------------------ //
19597 
19598 // ------------------------------------------------------------------------------ //
19599 //
19600 //        Crop for full resolution output
19601 //
19602 // ------------------------------------------------------------------------------ //
19603 
19604 // ------------------------------------------------------------------------------ //
19605 // Register: Enable crop
19606 // ------------------------------------------------------------------------------ //
19607 
19608 // ------------------------------------------------------------------------------ //
19609 // Crop enable: 0=off 1=on
19610 // ------------------------------------------------------------------------------ //
19611 
19612 #define ACAMERA_ISP_DS1_CROP_ENABLE_CROP_DEFAULT (0)
19613 #define ACAMERA_ISP_DS1_CROP_ENABLE_CROP_DATASIZE (1)
19614 #define ACAMERA_ISP_DS1_CROP_ENABLE_CROP_OFFSET (0x3314)
19615 #define ACAMERA_ISP_DS1_CROP_ENABLE_CROP_MASK (0x1)
19616 
19617 // args: data (1-bit)
acamera_isp_ds1_crop_enable_crop_write(uintptr_t base,uint8_t data)19618 static __inline void acamera_isp_ds1_crop_enable_crop_write(uintptr_t base, uint8_t data) {
19619     uint32_t curr = system_sw_read_32(base + 0x1c19cL);
19620     system_sw_write_32(base + 0x1c19cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
19621 }
acamera_isp_ds1_crop_enable_crop_read(uintptr_t base)19622 static __inline uint8_t acamera_isp_ds1_crop_enable_crop_read(uintptr_t base) {
19623     return (uint8_t)((system_sw_read_32(base + 0x1c19cL) & 0x1) >> 0);
19624 }
19625 // ------------------------------------------------------------------------------ //
19626 // Register: start x
19627 // ------------------------------------------------------------------------------ //
19628 
19629 // ------------------------------------------------------------------------------ //
19630 // Horizontal offset from left side of image in pixels for output crop window
19631 // ------------------------------------------------------------------------------ //
19632 
19633 #define ACAMERA_ISP_DS1_CROP_START_X_DEFAULT (0x0000)
19634 #define ACAMERA_ISP_DS1_CROP_START_X_DATASIZE (16)
19635 #define ACAMERA_ISP_DS1_CROP_START_X_OFFSET (0x3318)
19636 #define ACAMERA_ISP_DS1_CROP_START_X_MASK (0xffff)
19637 
19638 // args: data (16-bit)
acamera_isp_ds1_crop_start_x_write(uintptr_t base,uint16_t data)19639 static __inline void acamera_isp_ds1_crop_start_x_write(uintptr_t base, uint16_t data) {
19640     uint32_t curr = system_sw_read_32(base + 0x1c1a0L);
19641     system_sw_write_32(base + 0x1c1a0L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
19642 }
acamera_isp_ds1_crop_start_x_read(uintptr_t base)19643 static __inline uint16_t acamera_isp_ds1_crop_start_x_read(uintptr_t base) {
19644     return (uint16_t)((system_sw_read_32(base + 0x1c1a0L) & 0xffff) >> 0);
19645 }
19646 // ------------------------------------------------------------------------------ //
19647 // Register: start y
19648 // ------------------------------------------------------------------------------ //
19649 
19650 // ------------------------------------------------------------------------------ //
19651 // Vertical offset from top of image in lines for output crop window
19652 // ------------------------------------------------------------------------------ //
19653 
19654 #define ACAMERA_ISP_DS1_CROP_START_Y_DEFAULT (0x0000)
19655 #define ACAMERA_ISP_DS1_CROP_START_Y_DATASIZE (16)
19656 #define ACAMERA_ISP_DS1_CROP_START_Y_OFFSET (0x331c)
19657 #define ACAMERA_ISP_DS1_CROP_START_Y_MASK (0xffff)
19658 
19659 // args: data (16-bit)
acamera_isp_ds1_crop_start_y_write(uintptr_t base,uint16_t data)19660 static __inline void acamera_isp_ds1_crop_start_y_write(uintptr_t base, uint16_t data) {
19661     uint32_t curr = system_sw_read_32(base + 0x1c1a4L);
19662     system_sw_write_32(base + 0x1c1a4L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
19663 }
acamera_isp_ds1_crop_start_y_read(uintptr_t base)19664 static __inline uint16_t acamera_isp_ds1_crop_start_y_read(uintptr_t base) {
19665     return (uint16_t)((system_sw_read_32(base + 0x1c1a4L) & 0xffff) >> 0);
19666 }
19667 // ------------------------------------------------------------------------------ //
19668 // Register: size x
19669 // ------------------------------------------------------------------------------ //
19670 
19671 // ------------------------------------------------------------------------------ //
19672 // width of output crop window
19673 // ------------------------------------------------------------------------------ //
19674 
19675 #define ACAMERA_ISP_DS1_CROP_SIZE_X_DEFAULT (0xffff)
19676 #define ACAMERA_ISP_DS1_CROP_SIZE_X_DATASIZE (16)
19677 #define ACAMERA_ISP_DS1_CROP_SIZE_X_OFFSET (0x3320)
19678 #define ACAMERA_ISP_DS1_CROP_SIZE_X_MASK (0xffff)
19679 
19680 // args: data (16-bit)
acamera_isp_ds1_crop_size_x_write(uintptr_t base,uint16_t data)19681 static __inline void acamera_isp_ds1_crop_size_x_write(uintptr_t base, uint16_t data) {
19682     uint32_t curr = system_sw_read_32(base + 0x1c1a8L);
19683     system_sw_write_32(base + 0x1c1a8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
19684 }
acamera_isp_ds1_crop_size_x_read(uintptr_t base)19685 static __inline uint16_t acamera_isp_ds1_crop_size_x_read(uintptr_t base) {
19686     return (uint16_t)((system_sw_read_32(base + 0x1c1a8L) & 0xffff) >> 0);
19687 }
19688 // ------------------------------------------------------------------------------ //
19689 // Register: size y
19690 // ------------------------------------------------------------------------------ //
19691 
19692 // ------------------------------------------------------------------------------ //
19693 // height of output crop window
19694 // ------------------------------------------------------------------------------ //
19695 
19696 #define ACAMERA_ISP_DS1_CROP_SIZE_Y_DEFAULT (0xffff)
19697 #define ACAMERA_ISP_DS1_CROP_SIZE_Y_DATASIZE (16)
19698 #define ACAMERA_ISP_DS1_CROP_SIZE_Y_OFFSET (0x3324)
19699 #define ACAMERA_ISP_DS1_CROP_SIZE_Y_MASK (0xffff)
19700 
19701 // args: data (16-bit)
acamera_isp_ds1_crop_size_y_write(uintptr_t base,uint16_t data)19702 static __inline void acamera_isp_ds1_crop_size_y_write(uintptr_t base, uint16_t data) {
19703     uint32_t curr = system_sw_read_32(base + 0x1c1acL);
19704     system_sw_write_32(base + 0x1c1acL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
19705 }
acamera_isp_ds1_crop_size_y_read(uintptr_t base)19706 static __inline uint16_t acamera_isp_ds1_crop_size_y_read(uintptr_t base) {
19707     return (uint16_t)((system_sw_read_32(base + 0x1c1acL) & 0xffff) >> 0);
19708 }
19709 // ------------------------------------------------------------------------------ //
19710 // Group: ds scaler
19711 // ------------------------------------------------------------------------------ //
19712 
19713 // ------------------------------------------------------------------------------ //
19714 // Register: IRQSTAT
19715 // ------------------------------------------------------------------------------ //
19716 
19717 // ------------------------------------------------------------------------------ //
19718 // Downscaler status
19719 // ------------------------------------------------------------------------------ //
19720 
19721 #define ACAMERA_ISP_DS1_SCALER_IRQSTAT_DEFAULT (0x00)
19722 #define ACAMERA_ISP_DS1_SCALER_IRQSTAT_DATASIZE (8)
19723 #define ACAMERA_ISP_DS1_SCALER_IRQSTAT_OFFSET (0x3328)
19724 #define ACAMERA_ISP_DS1_SCALER_IRQSTAT_MASK (0xff)
19725 
19726 // args: data (8-bit)
acamera_isp_ds1_scaler_irqstat_read(uintptr_t base)19727 static __inline uint8_t acamera_isp_ds1_scaler_irqstat_read(uintptr_t base) {
19728     return (uint8_t)((system_sw_read_32(base + 0x1c1b0L) & 0xff) >> 0);
19729 }
19730 // ------------------------------------------------------------------------------ //
19731 // Register: Timeout IRQ
19732 // ------------------------------------------------------------------------------ //
19733 
19734 // ------------------------------------------------------------------------------ //
19735 //
19736 //             0 : No timeout
19737 //             1 : Timeout on frame done
19738 //
19739 // ------------------------------------------------------------------------------ //
19740 
19741 #define ACAMERA_ISP_DS1_SCALER_TIMEOUT_IRQ_DEFAULT (0x0)
19742 #define ACAMERA_ISP_DS1_SCALER_TIMEOUT_IRQ_DATASIZE (1)
19743 #define ACAMERA_ISP_DS1_SCALER_TIMEOUT_IRQ_OFFSET (0x3328)
19744 #define ACAMERA_ISP_DS1_SCALER_TIMEOUT_IRQ_MASK (0x8)
19745 
19746 // args: data (1-bit)
acamera_isp_ds1_scaler_timeout_irq_write(uintptr_t base,uint8_t data)19747 static __inline void acamera_isp_ds1_scaler_timeout_irq_write(uintptr_t base, uint8_t data) {
19748     uint32_t curr = system_sw_read_32(base + 0x1c1b0L);
19749     system_sw_write_32(base + 0x1c1b0L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
19750 }
acamera_isp_ds1_scaler_timeout_irq_read(uintptr_t base)19751 static __inline uint8_t acamera_isp_ds1_scaler_timeout_irq_read(uintptr_t base) {
19752     return (uint8_t)((system_sw_read_32(base + 0x1c1b0L) & 0x8) >> 3);
19753 }
19754 // ------------------------------------------------------------------------------ //
19755 // Register: Underflow IRQ
19756 // ------------------------------------------------------------------------------ //
19757 
19758 // ------------------------------------------------------------------------------ //
19759 //
19760 //             0 : No underflow
19761 //             1 : FIFO underflow has occurred
19762 //
19763 // ------------------------------------------------------------------------------ //
19764 
19765 #define ACAMERA_ISP_DS1_SCALER_UNDERFLOW_IRQ_DEFAULT (0x0)
19766 #define ACAMERA_ISP_DS1_SCALER_UNDERFLOW_IRQ_DATASIZE (1)
19767 #define ACAMERA_ISP_DS1_SCALER_UNDERFLOW_IRQ_OFFSET (0x3328)
19768 #define ACAMERA_ISP_DS1_SCALER_UNDERFLOW_IRQ_MASK (0x4)
19769 
19770 // args: data (1-bit)
acamera_isp_ds1_scaler_underflow_irq_write(uintptr_t base,uint8_t data)19771 static __inline void acamera_isp_ds1_scaler_underflow_irq_write(uintptr_t base, uint8_t data) {
19772     uint32_t curr = system_sw_read_32(base + 0x1c1b0L);
19773     system_sw_write_32(base + 0x1c1b0L, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
19774 }
acamera_isp_ds1_scaler_underflow_irq_read(uintptr_t base)19775 static __inline uint8_t acamera_isp_ds1_scaler_underflow_irq_read(uintptr_t base) {
19776     return (uint8_t)((system_sw_read_32(base + 0x1c1b0L) & 0x4) >> 2);
19777 }
19778 // ------------------------------------------------------------------------------ //
19779 // Register: Overflow IRQ
19780 // ------------------------------------------------------------------------------ //
19781 
19782 // ------------------------------------------------------------------------------ //
19783 //
19784 //             0 : No overflow
19785 //             1 : FIFO overflow has occurred
19786 //
19787 // ------------------------------------------------------------------------------ //
19788 
19789 #define ACAMERA_ISP_DS1_SCALER_OVERFLOW_IRQ_DEFAULT (0x0)
19790 #define ACAMERA_ISP_DS1_SCALER_OVERFLOW_IRQ_DATASIZE (1)
19791 #define ACAMERA_ISP_DS1_SCALER_OVERFLOW_IRQ_OFFSET (0x3328)
19792 #define ACAMERA_ISP_DS1_SCALER_OVERFLOW_IRQ_MASK (0x1)
19793 
19794 // args: data (1-bit)
acamera_isp_ds1_scaler_overflow_irq_write(uintptr_t base,uint8_t data)19795 static __inline void acamera_isp_ds1_scaler_overflow_irq_write(uintptr_t base, uint8_t data) {
19796     uint32_t curr = system_sw_read_32(base + 0x1c1b0L);
19797     system_sw_write_32(base + 0x1c1b0L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
19798 }
acamera_isp_ds1_scaler_overflow_irq_read(uintptr_t base)19799 static __inline uint8_t acamera_isp_ds1_scaler_overflow_irq_read(uintptr_t base) {
19800     return (uint8_t)((system_sw_read_32(base + 0x1c1b0L) & 0x1) >> 0);
19801 }
19802 // ------------------------------------------------------------------------------ //
19803 // Register: Clear Alarms
19804 // ------------------------------------------------------------------------------ //
19805 
19806 // ------------------------------------------------------------------------------ //
19807 //
19808 //        Scaler control
19809 //        IRQ CLR bit
19810 //         0 : In-active
19811 //         1 : Clear-off IRQ status to 0
19812 //
19813 // ------------------------------------------------------------------------------ //
19814 
19815 #define ACAMERA_ISP_DS1_SCALER_CLEAR_ALARMS_DEFAULT (0)
19816 #define ACAMERA_ISP_DS1_SCALER_CLEAR_ALARMS_DATASIZE (1)
19817 #define ACAMERA_ISP_DS1_SCALER_CLEAR_ALARMS_OFFSET (0x332c)
19818 #define ACAMERA_ISP_DS1_SCALER_CLEAR_ALARMS_MASK (0x8)
19819 
19820 // args: data (1-bit)
acamera_isp_ds1_scaler_clear_alarms_write(uintptr_t base,uint8_t data)19821 static __inline void acamera_isp_ds1_scaler_clear_alarms_write(uintptr_t base, uint8_t data) {
19822     uint32_t curr = system_sw_read_32(base + 0x1c1b4L);
19823     system_sw_write_32(base + 0x1c1b4L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
19824 }
acamera_isp_ds1_scaler_clear_alarms_read(uintptr_t base)19825 static __inline uint8_t acamera_isp_ds1_scaler_clear_alarms_read(uintptr_t base) {
19826     return (uint8_t)((system_sw_read_32(base + 0x1c1b4L) & 0x8) >> 3);
19827 }
19828 // ------------------------------------------------------------------------------ //
19829 // Register: Timeout Enable
19830 // ------------------------------------------------------------------------------ //
19831 
19832 // ------------------------------------------------------------------------------ //
19833 //
19834 //        0 : Timeout disabled.
19835 //        1 : Timeout enabled.  Automatic frame reset if frame has not completed after anticipated time.
19836 //
19837 // ------------------------------------------------------------------------------ //
19838 
19839 #define ACAMERA_ISP_DS1_SCALER_TIMEOUT_ENABLE_DEFAULT (1)
19840 #define ACAMERA_ISP_DS1_SCALER_TIMEOUT_ENABLE_DATASIZE (1)
19841 #define ACAMERA_ISP_DS1_SCALER_TIMEOUT_ENABLE_OFFSET (0x332c)
19842 #define ACAMERA_ISP_DS1_SCALER_TIMEOUT_ENABLE_MASK (0x10)
19843 
19844 // args: data (1-bit)
acamera_isp_ds1_scaler_timeout_enable_write(uintptr_t base,uint8_t data)19845 static __inline void acamera_isp_ds1_scaler_timeout_enable_write(uintptr_t base, uint8_t data) {
19846     uint32_t curr = system_sw_read_32(base + 0x1c1b4L);
19847     system_sw_write_32(base + 0x1c1b4L, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
19848 }
acamera_isp_ds1_scaler_timeout_enable_read(uintptr_t base)19849 static __inline uint8_t acamera_isp_ds1_scaler_timeout_enable_read(uintptr_t base) {
19850     return (uint8_t)((system_sw_read_32(base + 0x1c1b4L) & 0x10) >> 4);
19851 }
19852 // ------------------------------------------------------------------------------ //
19853 // Register: Field in toggle sel
19854 // ------------------------------------------------------------------------------ //
19855 
19856 // ------------------------------------------------------------------------------ //
19857 //
19858 //        0 : Input Field Type = pulse.
19859 //        1 : Input Field Type = toggle.
19860 //
19861 // ------------------------------------------------------------------------------ //
19862 
19863 #define ACAMERA_ISP_DS1_SCALER_FIELD_IN_TOGGLE_SEL_DEFAULT (0)
19864 #define ACAMERA_ISP_DS1_SCALER_FIELD_IN_TOGGLE_SEL_DATASIZE (1)
19865 #define ACAMERA_ISP_DS1_SCALER_FIELD_IN_TOGGLE_SEL_OFFSET (0x332c)
19866 #define ACAMERA_ISP_DS1_SCALER_FIELD_IN_TOGGLE_SEL_MASK (0x20)
19867 
19868 // args: data (1-bit)
acamera_isp_ds1_scaler_field_in_toggle_sel_write(uintptr_t base,uint8_t data)19869 static __inline void acamera_isp_ds1_scaler_field_in_toggle_sel_write(uintptr_t base, uint8_t data) {
19870     uint32_t curr = system_sw_read_32(base + 0x1c1b4L);
19871     system_sw_write_32(base + 0x1c1b4L, (((uint32_t) (data & 0x1)) << 5) | (curr & 0xffffffdf));
19872 }
acamera_isp_ds1_scaler_field_in_toggle_sel_read(uintptr_t base)19873 static __inline uint8_t acamera_isp_ds1_scaler_field_in_toggle_sel_read(uintptr_t base) {
19874     return (uint8_t)((system_sw_read_32(base + 0x1c1b4L) & 0x20) >> 5);
19875 }
19876 // ------------------------------------------------------------------------------ //
19877 // Register: WIDTH
19878 // ------------------------------------------------------------------------------ //
19879 
19880 // ------------------------------------------------------------------------------ //
19881 // Input frame width in pixels
19882 // ------------------------------------------------------------------------------ //
19883 
19884 #define ACAMERA_ISP_DS1_SCALER_WIDTH_DEFAULT (0x780)
19885 #define ACAMERA_ISP_DS1_SCALER_WIDTH_DATASIZE (16)
19886 #define ACAMERA_ISP_DS1_SCALER_WIDTH_OFFSET (0x3330)
19887 #define ACAMERA_ISP_DS1_SCALER_WIDTH_MASK (0xffff)
19888 
19889 // args: data (16-bit)
acamera_isp_ds1_scaler_width_write(uintptr_t base,uint16_t data)19890 static __inline void acamera_isp_ds1_scaler_width_write(uintptr_t base, uint16_t data) {
19891     uint32_t curr = system_sw_read_32(base + 0x1c1b8L);
19892     system_sw_write_32(base + 0x1c1b8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
19893 }
acamera_isp_ds1_scaler_width_read(uintptr_t base)19894 static __inline uint16_t acamera_isp_ds1_scaler_width_read(uintptr_t base) {
19895     return (uint16_t)((system_sw_read_32(base + 0x1c1b8L) & 0xffff) >> 0);
19896 }
19897 // ------------------------------------------------------------------------------ //
19898 // Register: HEIGHT
19899 // ------------------------------------------------------------------------------ //
19900 
19901 // ------------------------------------------------------------------------------ //
19902 // Input frame height in lines
19903 // ------------------------------------------------------------------------------ //
19904 
19905 #define ACAMERA_ISP_DS1_SCALER_HEIGHT_DEFAULT (0x438)
19906 #define ACAMERA_ISP_DS1_SCALER_HEIGHT_DATASIZE (16)
19907 #define ACAMERA_ISP_DS1_SCALER_HEIGHT_OFFSET (0x3334)
19908 #define ACAMERA_ISP_DS1_SCALER_HEIGHT_MASK (0xffff)
19909 
19910 // args: data (16-bit)
acamera_isp_ds1_scaler_height_write(uintptr_t base,uint16_t data)19911 static __inline void acamera_isp_ds1_scaler_height_write(uintptr_t base, uint16_t data) {
19912     uint32_t curr = system_sw_read_32(base + 0x1c1bcL);
19913     system_sw_write_32(base + 0x1c1bcL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
19914 }
acamera_isp_ds1_scaler_height_read(uintptr_t base)19915 static __inline uint16_t acamera_isp_ds1_scaler_height_read(uintptr_t base) {
19916     return (uint16_t)((system_sw_read_32(base + 0x1c1bcL) & 0xffff) >> 0);
19917 }
19918 // ------------------------------------------------------------------------------ //
19919 // Register: OWIDTH
19920 // ------------------------------------------------------------------------------ //
19921 
19922 // ------------------------------------------------------------------------------ //
19923 // Output frame width in pixels
19924 // ------------------------------------------------------------------------------ //
19925 
19926 #define ACAMERA_ISP_DS1_SCALER_OWIDTH_DEFAULT (0x500)
19927 #define ACAMERA_ISP_DS1_SCALER_OWIDTH_DATASIZE (13)
19928 #define ACAMERA_ISP_DS1_SCALER_OWIDTH_OFFSET (0x3338)
19929 #define ACAMERA_ISP_DS1_SCALER_OWIDTH_MASK (0x1fff)
19930 
19931 // args: data (13-bit)
acamera_isp_ds1_scaler_owidth_write(uintptr_t base,uint16_t data)19932 static __inline void acamera_isp_ds1_scaler_owidth_write(uintptr_t base, uint16_t data) {
19933     uint32_t curr = system_sw_read_32(base + 0x1c1c0L);
19934     system_sw_write_32(base + 0x1c1c0L, (((uint32_t) (data & 0x1fff)) << 0) | (curr & 0xffffe000));
19935 }
acamera_isp_ds1_scaler_owidth_read(uintptr_t base)19936 static __inline uint16_t acamera_isp_ds1_scaler_owidth_read(uintptr_t base) {
19937     return (uint16_t)((system_sw_read_32(base + 0x1c1c0L) & 0x1fff) >> 0);
19938 }
19939 // ------------------------------------------------------------------------------ //
19940 // Register: OHEIGHT
19941 // ------------------------------------------------------------------------------ //
19942 
19943 // ------------------------------------------------------------------------------ //
19944 // Output frame height in lines
19945 // ------------------------------------------------------------------------------ //
19946 
19947 #define ACAMERA_ISP_DS1_SCALER_OHEIGHT_DEFAULT (0x2D0)
19948 #define ACAMERA_ISP_DS1_SCALER_OHEIGHT_DATASIZE (16)
19949 #define ACAMERA_ISP_DS1_SCALER_OHEIGHT_OFFSET (0x333c)
19950 #define ACAMERA_ISP_DS1_SCALER_OHEIGHT_MASK (0xffff)
19951 
19952 // args: data (16-bit)
acamera_isp_ds1_scaler_oheight_write(uintptr_t base,uint16_t data)19953 static __inline void acamera_isp_ds1_scaler_oheight_write(uintptr_t base, uint16_t data) {
19954     uint32_t curr = system_sw_read_32(base + 0x1c1c4L);
19955     system_sw_write_32(base + 0x1c1c4L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
19956 }
acamera_isp_ds1_scaler_oheight_read(uintptr_t base)19957 static __inline uint16_t acamera_isp_ds1_scaler_oheight_read(uintptr_t base) {
19958     return (uint16_t)((system_sw_read_32(base + 0x1c1c4L) & 0xffff) >> 0);
19959 }
19960 // ------------------------------------------------------------------------------ //
19961 // Register: HFILT_TINC
19962 // ------------------------------------------------------------------------------ //
19963 
19964 // ------------------------------------------------------------------------------ //
19965 // Horizontal scaling factor equal to the
19966 // ------------------------------------------------------------------------------ //
19967 
19968 #define ACAMERA_ISP_DS1_SCALER_HFILT_TINC_DEFAULT (0x180000)
19969 #define ACAMERA_ISP_DS1_SCALER_HFILT_TINC_DATASIZE (24)
19970 #define ACAMERA_ISP_DS1_SCALER_HFILT_TINC_OFFSET (0x3340)
19971 #define ACAMERA_ISP_DS1_SCALER_HFILT_TINC_MASK (0xffffff)
19972 
19973 // args: data (24-bit)
acamera_isp_ds1_scaler_hfilt_tinc_write(uintptr_t base,uint32_t data)19974 static __inline void acamera_isp_ds1_scaler_hfilt_tinc_write(uintptr_t base, uint32_t data) {
19975     uint32_t curr = system_sw_read_32(base + 0x1c1c8L);
19976     system_sw_write_32(base + 0x1c1c8L, (((uint32_t) (data & 0xffffff)) << 0) | (curr & 0xff000000));
19977 }
acamera_isp_ds1_scaler_hfilt_tinc_read(uintptr_t base)19978 static __inline uint32_t acamera_isp_ds1_scaler_hfilt_tinc_read(uintptr_t base) {
19979     return (uint32_t)((system_sw_read_32(base + 0x1c1c8L) & 0xffffff) >> 0);
19980 }
19981 // ------------------------------------------------------------------------------ //
19982 // Register: HFILT_COEFSET
19983 // ------------------------------------------------------------------------------ //
19984 
19985 // ------------------------------------------------------------------------------ //
19986 //
19987 //        HFILT Coeff. control.
19988 //        HFILT_COEFSET[3:0] - Selects horizontal Coef set for scaler.
19989 //            0000 : use set 0
19990 //            0001 : use set 1
19991 //            ......
19992 //            1111 : use set 15
19993 //
19994 // ------------------------------------------------------------------------------ //
19995 
19996 #define ACAMERA_ISP_DS1_SCALER_HFILT_COEFSET_DEFAULT (0x00)
19997 #define ACAMERA_ISP_DS1_SCALER_HFILT_COEFSET_DATASIZE (4)
19998 #define ACAMERA_ISP_DS1_SCALER_HFILT_COEFSET_OFFSET (0x3344)
19999 #define ACAMERA_ISP_DS1_SCALER_HFILT_COEFSET_MASK (0xf)
20000 
20001 // args: data (4-bit)
acamera_isp_ds1_scaler_hfilt_coefset_write(uintptr_t base,uint8_t data)20002 static __inline void acamera_isp_ds1_scaler_hfilt_coefset_write(uintptr_t base, uint8_t data) {
20003     uint32_t curr = system_sw_read_32(base + 0x1c1ccL);
20004     system_sw_write_32(base + 0x1c1ccL, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
20005 }
acamera_isp_ds1_scaler_hfilt_coefset_read(uintptr_t base)20006 static __inline uint8_t acamera_isp_ds1_scaler_hfilt_coefset_read(uintptr_t base) {
20007     return (uint8_t)((system_sw_read_32(base + 0x1c1ccL) & 0xf) >> 0);
20008 }
20009 // ------------------------------------------------------------------------------ //
20010 // Register: VFILT_TINC
20011 // ------------------------------------------------------------------------------ //
20012 
20013 // ------------------------------------------------------------------------------ //
20014 // VFILT TINC
20015 // ------------------------------------------------------------------------------ //
20016 
20017 #define ACAMERA_ISP_DS1_SCALER_VFILT_TINC_DEFAULT (0x180000)
20018 #define ACAMERA_ISP_DS1_SCALER_VFILT_TINC_DATASIZE (24)
20019 #define ACAMERA_ISP_DS1_SCALER_VFILT_TINC_OFFSET (0x3348)
20020 #define ACAMERA_ISP_DS1_SCALER_VFILT_TINC_MASK (0xffffff)
20021 
20022 // args: data (24-bit)
acamera_isp_ds1_scaler_vfilt_tinc_write(uintptr_t base,uint32_t data)20023 static __inline void acamera_isp_ds1_scaler_vfilt_tinc_write(uintptr_t base, uint32_t data) {
20024     uint32_t curr = system_sw_read_32(base + 0x1c1d0L);
20025     system_sw_write_32(base + 0x1c1d0L, (((uint32_t) (data & 0xffffff)) << 0) | (curr & 0xff000000));
20026 }
acamera_isp_ds1_scaler_vfilt_tinc_read(uintptr_t base)20027 static __inline uint32_t acamera_isp_ds1_scaler_vfilt_tinc_read(uintptr_t base) {
20028     return (uint32_t)((system_sw_read_32(base + 0x1c1d0L) & 0xffffff) >> 0);
20029 }
20030 // ------------------------------------------------------------------------------ //
20031 // Register: VFILT_COEFSET
20032 // ------------------------------------------------------------------------------ //
20033 
20034 // ------------------------------------------------------------------------------ //
20035 //
20036 //        VFILT Coeff. control
20037 //        FILT_COEFSET[3:0] - Selects vertical Coef set for scaler
20038 //            0000 : use set 0
20039 //            0001 : use set 1
20040 //            ......
20041 //            1111 : use set 15
20042 //
20043 // ------------------------------------------------------------------------------ //
20044 
20045 #define ACAMERA_ISP_DS1_SCALER_VFILT_COEFSET_DEFAULT (0x00)
20046 #define ACAMERA_ISP_DS1_SCALER_VFILT_COEFSET_DATASIZE (4)
20047 #define ACAMERA_ISP_DS1_SCALER_VFILT_COEFSET_OFFSET (0x334c)
20048 #define ACAMERA_ISP_DS1_SCALER_VFILT_COEFSET_MASK (0xf)
20049 
20050 // args: data (4-bit)
acamera_isp_ds1_scaler_vfilt_coefset_write(uintptr_t base,uint8_t data)20051 static __inline void acamera_isp_ds1_scaler_vfilt_coefset_write(uintptr_t base, uint8_t data) {
20052     uint32_t curr = system_sw_read_32(base + 0x1c1d4L);
20053     system_sw_write_32(base + 0x1c1d4L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
20054 }
acamera_isp_ds1_scaler_vfilt_coefset_read(uintptr_t base)20055 static __inline uint8_t acamera_isp_ds1_scaler_vfilt_coefset_read(uintptr_t base) {
20056     return (uint8_t)((system_sw_read_32(base + 0x1c1d4L) & 0xf) >> 0);
20057 }
20058 // ------------------------------------------------------------------------------ //
20059 // Group: ds gamma rgb
20060 // ------------------------------------------------------------------------------ //
20061 
20062 // ------------------------------------------------------------------------------ //
20063 // Gamma correction
20064 // ------------------------------------------------------------------------------ //
20065 
20066 // ------------------------------------------------------------------------------ //
20067 // Register: Enable
20068 // ------------------------------------------------------------------------------ //
20069 
20070 // ------------------------------------------------------------------------------ //
20071 // Gamma enable: 0=off 1=on
20072 // ------------------------------------------------------------------------------ //
20073 
20074 #define ACAMERA_ISP_DS1_GAMMA_RGB_ENABLE_DEFAULT (1)
20075 #define ACAMERA_ISP_DS1_GAMMA_RGB_ENABLE_DATASIZE (1)
20076 #define ACAMERA_ISP_DS1_GAMMA_RGB_ENABLE_OFFSET (0x3350)
20077 #define ACAMERA_ISP_DS1_GAMMA_RGB_ENABLE_MASK (0x1)
20078 
20079 // args: data (1-bit)
acamera_isp_ds1_gamma_rgb_enable_write(uintptr_t base,uint8_t data)20080 static __inline void acamera_isp_ds1_gamma_rgb_enable_write(uintptr_t base, uint8_t data) {
20081     uint32_t curr = system_sw_read_32(base + 0x1c1d8L);
20082     system_sw_write_32(base + 0x1c1d8L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
20083 }
acamera_isp_ds1_gamma_rgb_enable_read(uintptr_t base)20084 static __inline uint8_t acamera_isp_ds1_gamma_rgb_enable_read(uintptr_t base) {
20085     return (uint8_t)((system_sw_read_32(base + 0x1c1d8L) & 0x1) >> 0);
20086 }
20087 // ------------------------------------------------------------------------------ //
20088 // Register: gain_r
20089 // ------------------------------------------------------------------------------ //
20090 
20091 // ------------------------------------------------------------------------------ //
20092 // gain applied to the R chanel in 4.8 format
20093 // ------------------------------------------------------------------------------ //
20094 
20095 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_R_DEFAULT (0x100)
20096 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_R_DATASIZE (12)
20097 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_R_OFFSET (0x3354)
20098 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_R_MASK (0xfff)
20099 
20100 // args: data (12-bit)
acamera_isp_ds1_gamma_rgb_gain_r_write(uintptr_t base,uint16_t data)20101 static __inline void acamera_isp_ds1_gamma_rgb_gain_r_write(uintptr_t base, uint16_t data) {
20102     uint32_t curr = system_sw_read_32(base + 0x1c1dcL);
20103     system_sw_write_32(base + 0x1c1dcL, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
20104 }
acamera_isp_ds1_gamma_rgb_gain_r_read(uintptr_t base)20105 static __inline uint16_t acamera_isp_ds1_gamma_rgb_gain_r_read(uintptr_t base) {
20106     return (uint16_t)((system_sw_read_32(base + 0x1c1dcL) & 0xfff) >> 0);
20107 }
20108 // ------------------------------------------------------------------------------ //
20109 // Register: gain_g
20110 // ------------------------------------------------------------------------------ //
20111 
20112 // ------------------------------------------------------------------------------ //
20113 // gain applied to the G chanel in 4.8 format
20114 // ------------------------------------------------------------------------------ //
20115 
20116 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_G_DEFAULT (0x100)
20117 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_G_DATASIZE (12)
20118 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_G_OFFSET (0x3354)
20119 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_G_MASK (0xfff0000)
20120 
20121 // args: data (12-bit)
acamera_isp_ds1_gamma_rgb_gain_g_write(uintptr_t base,uint16_t data)20122 static __inline void acamera_isp_ds1_gamma_rgb_gain_g_write(uintptr_t base, uint16_t data) {
20123     uint32_t curr = system_sw_read_32(base + 0x1c1dcL);
20124     system_sw_write_32(base + 0x1c1dcL, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
20125 }
acamera_isp_ds1_gamma_rgb_gain_g_read(uintptr_t base)20126 static __inline uint16_t acamera_isp_ds1_gamma_rgb_gain_g_read(uintptr_t base) {
20127     return (uint16_t)((system_sw_read_32(base + 0x1c1dcL) & 0xfff0000) >> 16);
20128 }
20129 // ------------------------------------------------------------------------------ //
20130 // Register: gain_b
20131 // ------------------------------------------------------------------------------ //
20132 
20133 // ------------------------------------------------------------------------------ //
20134 // gain applied to the B chanel in 4.8 format
20135 // ------------------------------------------------------------------------------ //
20136 
20137 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_B_DEFAULT (0x100)
20138 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_B_DATASIZE (12)
20139 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_B_OFFSET (0x3358)
20140 #define ACAMERA_ISP_DS1_GAMMA_RGB_GAIN_B_MASK (0xfff)
20141 
20142 // args: data (12-bit)
acamera_isp_ds1_gamma_rgb_gain_b_write(uintptr_t base,uint16_t data)20143 static __inline void acamera_isp_ds1_gamma_rgb_gain_b_write(uintptr_t base, uint16_t data) {
20144     uint32_t curr = system_sw_read_32(base + 0x1c1e0L);
20145     system_sw_write_32(base + 0x1c1e0L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
20146 }
acamera_isp_ds1_gamma_rgb_gain_b_read(uintptr_t base)20147 static __inline uint16_t acamera_isp_ds1_gamma_rgb_gain_b_read(uintptr_t base) {
20148     return (uint16_t)((system_sw_read_32(base + 0x1c1e0L) & 0xfff) >> 0);
20149 }
20150 // ------------------------------------------------------------------------------ //
20151 // Register: offset_r
20152 // ------------------------------------------------------------------------------ //
20153 
20154 // ------------------------------------------------------------------------------ //
20155 // Offset subtracted from the R chanel
20156 // ------------------------------------------------------------------------------ //
20157 
20158 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_R_DEFAULT (0)
20159 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_R_DATASIZE (12)
20160 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_R_OFFSET (0x335c)
20161 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_R_MASK (0xfff)
20162 
20163 // args: data (12-bit)
acamera_isp_ds1_gamma_rgb_offset_r_write(uintptr_t base,uint16_t data)20164 static __inline void acamera_isp_ds1_gamma_rgb_offset_r_write(uintptr_t base, uint16_t data) {
20165     uint32_t curr = system_sw_read_32(base + 0x1c1e4L);
20166     system_sw_write_32(base + 0x1c1e4L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
20167 }
acamera_isp_ds1_gamma_rgb_offset_r_read(uintptr_t base)20168 static __inline uint16_t acamera_isp_ds1_gamma_rgb_offset_r_read(uintptr_t base) {
20169     return (uint16_t)((system_sw_read_32(base + 0x1c1e4L) & 0xfff) >> 0);
20170 }
20171 // ------------------------------------------------------------------------------ //
20172 // Register: offset_g
20173 // ------------------------------------------------------------------------------ //
20174 
20175 // ------------------------------------------------------------------------------ //
20176 // Offset subtracted from the G chanel
20177 // ------------------------------------------------------------------------------ //
20178 
20179 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_G_DEFAULT (0)
20180 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_G_DATASIZE (12)
20181 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_G_OFFSET (0x335c)
20182 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_G_MASK (0xfff0000)
20183 
20184 // args: data (12-bit)
acamera_isp_ds1_gamma_rgb_offset_g_write(uintptr_t base,uint16_t data)20185 static __inline void acamera_isp_ds1_gamma_rgb_offset_g_write(uintptr_t base, uint16_t data) {
20186     uint32_t curr = system_sw_read_32(base + 0x1c1e4L);
20187     system_sw_write_32(base + 0x1c1e4L, (((uint32_t) (data & 0xfff)) << 16) | (curr & 0xf000ffff));
20188 }
acamera_isp_ds1_gamma_rgb_offset_g_read(uintptr_t base)20189 static __inline uint16_t acamera_isp_ds1_gamma_rgb_offset_g_read(uintptr_t base) {
20190     return (uint16_t)((system_sw_read_32(base + 0x1c1e4L) & 0xfff0000) >> 16);
20191 }
20192 // ------------------------------------------------------------------------------ //
20193 // Register: offset_b
20194 // ------------------------------------------------------------------------------ //
20195 
20196 // ------------------------------------------------------------------------------ //
20197 // Offset subtracted from the B chanel
20198 // ------------------------------------------------------------------------------ //
20199 
20200 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_B_DEFAULT (0)
20201 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_B_DATASIZE (12)
20202 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_B_OFFSET (0x3360)
20203 #define ACAMERA_ISP_DS1_GAMMA_RGB_OFFSET_B_MASK (0xfff)
20204 
20205 // args: data (12-bit)
acamera_isp_ds1_gamma_rgb_offset_b_write(uintptr_t base,uint16_t data)20206 static __inline void acamera_isp_ds1_gamma_rgb_offset_b_write(uintptr_t base, uint16_t data) {
20207     uint32_t curr = system_sw_read_32(base + 0x1c1e8L);
20208     system_sw_write_32(base + 0x1c1e8L, (((uint32_t) (data & 0xfff)) << 0) | (curr & 0xfffff000));
20209 }
acamera_isp_ds1_gamma_rgb_offset_b_read(uintptr_t base)20210 static __inline uint16_t acamera_isp_ds1_gamma_rgb_offset_b_read(uintptr_t base) {
20211     return (uint16_t)((system_sw_read_32(base + 0x1c1e8L) & 0xfff) >> 0);
20212 }
20213 // ------------------------------------------------------------------------------ //
20214 // Group: ds sharpen
20215 // ------------------------------------------------------------------------------ //
20216 
20217 // ------------------------------------------------------------------------------ //
20218 // Sharpen
20219 // ------------------------------------------------------------------------------ //
20220 
20221 // ------------------------------------------------------------------------------ //
20222 // Register: Enable
20223 // ------------------------------------------------------------------------------ //
20224 
20225 // ------------------------------------------------------------------------------ //
20226 // Sharpening enable: 0=off, 1=on
20227 // ------------------------------------------------------------------------------ //
20228 
20229 #define ACAMERA_ISP_DS1_SHARPEN_ENABLE_DEFAULT (0)
20230 #define ACAMERA_ISP_DS1_SHARPEN_ENABLE_DATASIZE (1)
20231 #define ACAMERA_ISP_DS1_SHARPEN_ENABLE_OFFSET (0x3364)
20232 #define ACAMERA_ISP_DS1_SHARPEN_ENABLE_MASK (0x1)
20233 
20234 // args: data (1-bit)
acamera_isp_ds1_sharpen_enable_write(uintptr_t base,uint8_t data)20235 static __inline void acamera_isp_ds1_sharpen_enable_write(uintptr_t base, uint8_t data) {
20236     uint32_t curr = system_sw_read_32(base + 0x1c1ecL);
20237     system_sw_write_32(base + 0x1c1ecL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
20238 }
acamera_isp_ds1_sharpen_enable_read(uintptr_t base)20239 static __inline uint8_t acamera_isp_ds1_sharpen_enable_read(uintptr_t base) {
20240     return (uint8_t)((system_sw_read_32(base + 0x1c1ecL) & 0x1) >> 0);
20241 }
20242 // ------------------------------------------------------------------------------ //
20243 // Register: Strength
20244 // ------------------------------------------------------------------------------ //
20245 
20246 // ------------------------------------------------------------------------------ //
20247 // Controls strength of sharpening effect. u5.4
20248 // ------------------------------------------------------------------------------ //
20249 
20250 #define ACAMERA_ISP_DS1_SHARPEN_STRENGTH_DEFAULT (0x10)
20251 #define ACAMERA_ISP_DS1_SHARPEN_STRENGTH_DATASIZE (9)
20252 #define ACAMERA_ISP_DS1_SHARPEN_STRENGTH_OFFSET (0x3368)
20253 #define ACAMERA_ISP_DS1_SHARPEN_STRENGTH_MASK (0x1ff)
20254 
20255 // args: data (9-bit)
acamera_isp_ds1_sharpen_strength_write(uintptr_t base,uint16_t data)20256 static __inline void acamera_isp_ds1_sharpen_strength_write(uintptr_t base, uint16_t data) {
20257     uint32_t curr = system_sw_read_32(base + 0x1c1f0L);
20258     system_sw_write_32(base + 0x1c1f0L, (((uint32_t) (data & 0x1ff)) << 0) | (curr & 0xfffffe00));
20259 }
acamera_isp_ds1_sharpen_strength_read(uintptr_t base)20260 static __inline uint16_t acamera_isp_ds1_sharpen_strength_read(uintptr_t base) {
20261     return (uint16_t)((system_sw_read_32(base + 0x1c1f0L) & 0x1ff) >> 0);
20262 }
20263 // ------------------------------------------------------------------------------ //
20264 // Register: Control R
20265 // ------------------------------------------------------------------------------ //
20266 
20267 #define ACAMERA_ISP_DS1_SHARPEN_CONTROL_R_DEFAULT (0x4C)
20268 #define ACAMERA_ISP_DS1_SHARPEN_CONTROL_R_DATASIZE (8)
20269 #define ACAMERA_ISP_DS1_SHARPEN_CONTROL_R_OFFSET (0x336c)
20270 #define ACAMERA_ISP_DS1_SHARPEN_CONTROL_R_MASK (0xff)
20271 
20272 // args: data (8-bit)
acamera_isp_ds1_sharpen_control_r_write(uintptr_t base,uint8_t data)20273 static __inline void acamera_isp_ds1_sharpen_control_r_write(uintptr_t base, uint8_t data) {
20274     uint32_t curr = system_sw_read_32(base + 0x1c1f4L);
20275     system_sw_write_32(base + 0x1c1f4L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
20276 }
acamera_isp_ds1_sharpen_control_r_read(uintptr_t base)20277 static __inline uint8_t acamera_isp_ds1_sharpen_control_r_read(uintptr_t base) {
20278     return (uint8_t)((system_sw_read_32(base + 0x1c1f4L) & 0xff) >> 0);
20279 }
20280 // ------------------------------------------------------------------------------ //
20281 //  Luma transform red coefficient. u0.8
20282 // ------------------------------------------------------------------------------ //
20283 
20284 // ------------------------------------------------------------------------------ //
20285 // Register: Control B
20286 // ------------------------------------------------------------------------------ //
20287 
20288 #define ACAMERA_ISP_DS1_SHARPEN_CONTROL_B_DEFAULT (0x1E)
20289 #define ACAMERA_ISP_DS1_SHARPEN_CONTROL_B_DATASIZE (8)
20290 #define ACAMERA_ISP_DS1_SHARPEN_CONTROL_B_OFFSET (0x336c)
20291 #define ACAMERA_ISP_DS1_SHARPEN_CONTROL_B_MASK (0xff00)
20292 
20293 // args: data (8-bit)
acamera_isp_ds1_sharpen_control_b_write(uintptr_t base,uint8_t data)20294 static __inline void acamera_isp_ds1_sharpen_control_b_write(uintptr_t base, uint8_t data) {
20295     uint32_t curr = system_sw_read_32(base + 0x1c1f4L);
20296     system_sw_write_32(base + 0x1c1f4L, (((uint32_t) (data & 0xff)) << 8) | (curr & 0xffff00ff));
20297 }
acamera_isp_ds1_sharpen_control_b_read(uintptr_t base)20298 static __inline uint8_t acamera_isp_ds1_sharpen_control_b_read(uintptr_t base) {
20299     return (uint8_t)((system_sw_read_32(base + 0x1c1f4L) & 0xff00) >> 8);
20300 }
20301 // ------------------------------------------------------------------------------ //
20302 //  Luma transform blue coefficient. u0.8
20303 // ------------------------------------------------------------------------------ //
20304 
20305 // ------------------------------------------------------------------------------ //
20306 // Register: Alpha Undershoot
20307 // ------------------------------------------------------------------------------ //
20308 
20309 // ------------------------------------------------------------------------------ //
20310 //  Alpha blending of undershoot and overshoot u0.7, 0 = only unsershoot, 255 = only overshoot
20311 // ------------------------------------------------------------------------------ //
20312 
20313 #define ACAMERA_ISP_DS1_SHARPEN_ALPHA_UNDERSHOOT_DEFAULT (0x13)
20314 #define ACAMERA_ISP_DS1_SHARPEN_ALPHA_UNDERSHOOT_DATASIZE (8)
20315 #define ACAMERA_ISP_DS1_SHARPEN_ALPHA_UNDERSHOOT_OFFSET (0x336c)
20316 #define ACAMERA_ISP_DS1_SHARPEN_ALPHA_UNDERSHOOT_MASK (0xff0000)
20317 
20318 // args: data (8-bit)
acamera_isp_ds1_sharpen_alpha_undershoot_write(uintptr_t base,uint8_t data)20319 static __inline void acamera_isp_ds1_sharpen_alpha_undershoot_write(uintptr_t base, uint8_t data) {
20320     uint32_t curr = system_sw_read_32(base + 0x1c1f4L);
20321     system_sw_write_32(base + 0x1c1f4L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
20322 }
acamera_isp_ds1_sharpen_alpha_undershoot_read(uintptr_t base)20323 static __inline uint8_t acamera_isp_ds1_sharpen_alpha_undershoot_read(uintptr_t base) {
20324     return (uint8_t)((system_sw_read_32(base + 0x1c1f4L) & 0xff0000) >> 16);
20325 }
20326 // ------------------------------------------------------------------------------ //
20327 // Register: Luma Thresh Low
20328 // ------------------------------------------------------------------------------ //
20329 
20330 // ------------------------------------------------------------------------------ //
20331 //  Luma threshold below this value, no sharpening will be applied.
20332 // ------------------------------------------------------------------------------ //
20333 
20334 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_THRESH_LOW_DEFAULT (0x000)
20335 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_THRESH_LOW_DATASIZE (10)
20336 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_THRESH_LOW_OFFSET (0x3370)
20337 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_THRESH_LOW_MASK (0x3ff)
20338 
20339 // args: data (10-bit)
acamera_isp_ds1_sharpen_luma_thresh_low_write(uintptr_t base,uint16_t data)20340 static __inline void acamera_isp_ds1_sharpen_luma_thresh_low_write(uintptr_t base, uint16_t data) {
20341     uint32_t curr = system_sw_read_32(base + 0x1c1f8L);
20342     system_sw_write_32(base + 0x1c1f8L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
20343 }
acamera_isp_ds1_sharpen_luma_thresh_low_read(uintptr_t base)20344 static __inline uint16_t acamera_isp_ds1_sharpen_luma_thresh_low_read(uintptr_t base) {
20345     return (uint16_t)((system_sw_read_32(base + 0x1c1f8L) & 0x3ff) >> 0);
20346 }
20347 // ------------------------------------------------------------------------------ //
20348 // Register: Luma Offset Low
20349 // ------------------------------------------------------------------------------ //
20350 
20351 // ------------------------------------------------------------------------------ //
20352 //  Luma offset (min value) of thre region of less than Luma Thresh Low.
20353 // ------------------------------------------------------------------------------ //
20354 
20355 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_OFFSET_LOW_DEFAULT (0x000)
20356 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_OFFSET_LOW_DATASIZE (8)
20357 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_OFFSET_LOW_OFFSET (0x3370)
20358 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_OFFSET_LOW_MASK (0xff0000)
20359 
20360 // args: data (8-bit)
acamera_isp_ds1_sharpen_luma_offset_low_write(uintptr_t base,uint8_t data)20361 static __inline void acamera_isp_ds1_sharpen_luma_offset_low_write(uintptr_t base, uint8_t data) {
20362     uint32_t curr = system_sw_read_32(base + 0x1c1f8L);
20363     system_sw_write_32(base + 0x1c1f8L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
20364 }
acamera_isp_ds1_sharpen_luma_offset_low_read(uintptr_t base)20365 static __inline uint8_t acamera_isp_ds1_sharpen_luma_offset_low_read(uintptr_t base) {
20366     return (uint8_t)((system_sw_read_32(base + 0x1c1f8L) & 0xff0000) >> 16);
20367 }
20368 // ------------------------------------------------------------------------------ //
20369 // Register: Luma Slope Low
20370 // ------------------------------------------------------------------------------ //
20371 
20372 // ------------------------------------------------------------------------------ //
20373 //  Luma linear threshold slope at dark luminance region
20374 // ------------------------------------------------------------------------------ //
20375 
20376 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_SLOPE_LOW_DEFAULT (0x03FC)
20377 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_SLOPE_LOW_DATASIZE (16)
20378 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_SLOPE_LOW_OFFSET (0x3374)
20379 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_SLOPE_LOW_MASK (0xffff)
20380 
20381 // args: data (16-bit)
acamera_isp_ds1_sharpen_luma_slope_low_write(uintptr_t base,uint16_t data)20382 static __inline void acamera_isp_ds1_sharpen_luma_slope_low_write(uintptr_t base, uint16_t data) {
20383     uint32_t curr = system_sw_read_32(base + 0x1c1fcL);
20384     system_sw_write_32(base + 0x1c1fcL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
20385 }
acamera_isp_ds1_sharpen_luma_slope_low_read(uintptr_t base)20386 static __inline uint16_t acamera_isp_ds1_sharpen_luma_slope_low_read(uintptr_t base) {
20387     return (uint16_t)((system_sw_read_32(base + 0x1c1fcL) & 0xffff) >> 0);
20388 }
20389 // ------------------------------------------------------------------------------ //
20390 // Register: Luma Thresh High
20391 // ------------------------------------------------------------------------------ //
20392 
20393 // ------------------------------------------------------------------------------ //
20394 //  Luma threshold above this value, sharpening level will be dicreased.
20395 // ------------------------------------------------------------------------------ //
20396 
20397 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_THRESH_HIGH_DEFAULT (0x332)
20398 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_THRESH_HIGH_DATASIZE (10)
20399 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_THRESH_HIGH_OFFSET (0x3374)
20400 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_THRESH_HIGH_MASK (0x3ff0000)
20401 
20402 // args: data (10-bit)
acamera_isp_ds1_sharpen_luma_thresh_high_write(uintptr_t base,uint16_t data)20403 static __inline void acamera_isp_ds1_sharpen_luma_thresh_high_write(uintptr_t base, uint16_t data) {
20404     uint32_t curr = system_sw_read_32(base + 0x1c1fcL);
20405     system_sw_write_32(base + 0x1c1fcL, (((uint32_t) (data & 0x3ff)) << 16) | (curr & 0xfc00ffff));
20406 }
acamera_isp_ds1_sharpen_luma_thresh_high_read(uintptr_t base)20407 static __inline uint16_t acamera_isp_ds1_sharpen_luma_thresh_high_read(uintptr_t base) {
20408     return (uint16_t)((system_sw_read_32(base + 0x1c1fcL) & 0x3ff0000) >> 16);
20409 }
20410 // ------------------------------------------------------------------------------ //
20411 // Register: Luma Offset High
20412 // ------------------------------------------------------------------------------ //
20413 
20414 // ------------------------------------------------------------------------------ //
20415 //  Luma offset (min value) of thre region of more than Luma Thresh High.
20416 // ------------------------------------------------------------------------------ //
20417 
20418 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_OFFSET_HIGH_DEFAULT (0x000)
20419 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_OFFSET_HIGH_DATASIZE (8)
20420 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_OFFSET_HIGH_OFFSET (0x3378)
20421 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_OFFSET_HIGH_MASK (0xff)
20422 
20423 // args: data (8-bit)
acamera_isp_ds1_sharpen_luma_offset_high_write(uintptr_t base,uint8_t data)20424 static __inline void acamera_isp_ds1_sharpen_luma_offset_high_write(uintptr_t base, uint8_t data) {
20425     uint32_t curr = system_sw_read_32(base + 0x1c200L);
20426     system_sw_write_32(base + 0x1c200L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
20427 }
acamera_isp_ds1_sharpen_luma_offset_high_read(uintptr_t base)20428 static __inline uint8_t acamera_isp_ds1_sharpen_luma_offset_high_read(uintptr_t base) {
20429     return (uint8_t)((system_sw_read_32(base + 0x1c200L) & 0xff) >> 0);
20430 }
20431 // ------------------------------------------------------------------------------ //
20432 // Register: Luma Slope High
20433 // ------------------------------------------------------------------------------ //
20434 
20435 // ------------------------------------------------------------------------------ //
20436 //  Luma linear threshold slope at bright luminance region
20437 // ------------------------------------------------------------------------------ //
20438 
20439 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_SLOPE_HIGH_DEFAULT (0x06A4)
20440 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_SLOPE_HIGH_DATASIZE (16)
20441 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_SLOPE_HIGH_OFFSET (0x3378)
20442 #define ACAMERA_ISP_DS1_SHARPEN_LUMA_SLOPE_HIGH_MASK (0xffff0000)
20443 
20444 // args: data (16-bit)
acamera_isp_ds1_sharpen_luma_slope_high_write(uintptr_t base,uint16_t data)20445 static __inline void acamera_isp_ds1_sharpen_luma_slope_high_write(uintptr_t base, uint16_t data) {
20446     uint32_t curr = system_sw_read_32(base + 0x1c200L);
20447     system_sw_write_32(base + 0x1c200L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
20448 }
acamera_isp_ds1_sharpen_luma_slope_high_read(uintptr_t base)20449 static __inline uint16_t acamera_isp_ds1_sharpen_luma_slope_high_read(uintptr_t base) {
20450     return (uint16_t)((system_sw_read_32(base + 0x1c200L) & 0xffff0000) >> 16);
20451 }
20452 // ------------------------------------------------------------------------------ //
20453 // Register: Clip Str Max
20454 // ------------------------------------------------------------------------------ //
20455 
20456 // ------------------------------------------------------------------------------ //
20457 //  clips sharpening mask of max value. This will control overshoot. U0.14. (0 ~ 16383)
20458 // ------------------------------------------------------------------------------ //
20459 
20460 #define ACAMERA_ISP_DS1_SHARPEN_CLIP_STR_MAX_DEFAULT (0x3FFF)
20461 #define ACAMERA_ISP_DS1_SHARPEN_CLIP_STR_MAX_DATASIZE (14)
20462 #define ACAMERA_ISP_DS1_SHARPEN_CLIP_STR_MAX_OFFSET (0x337c)
20463 #define ACAMERA_ISP_DS1_SHARPEN_CLIP_STR_MAX_MASK (0x3fff)
20464 
20465 // args: data (14-bit)
acamera_isp_ds1_sharpen_clip_str_max_write(uintptr_t base,uint16_t data)20466 static __inline void acamera_isp_ds1_sharpen_clip_str_max_write(uintptr_t base, uint16_t data) {
20467     uint32_t curr = system_sw_read_32(base + 0x1c204L);
20468     system_sw_write_32(base + 0x1c204L, (((uint32_t) (data & 0x3fff)) << 0) | (curr & 0xffffc000));
20469 }
acamera_isp_ds1_sharpen_clip_str_max_read(uintptr_t base)20470 static __inline uint16_t acamera_isp_ds1_sharpen_clip_str_max_read(uintptr_t base) {
20471     return (uint16_t)((system_sw_read_32(base + 0x1c204L) & 0x3fff) >> 0);
20472 }
20473 // ------------------------------------------------------------------------------ //
20474 // Register: Clip Str Min
20475 // ------------------------------------------------------------------------------ //
20476 
20477 // ------------------------------------------------------------------------------ //
20478 //  clips sharpening mask of min value. This will control undershoot. U0.14. It is used as negative value. (0 ~ -16383)
20479 // ------------------------------------------------------------------------------ //
20480 
20481 #define ACAMERA_ISP_DS1_SHARPEN_CLIP_STR_MIN_DEFAULT (0x00CD)
20482 #define ACAMERA_ISP_DS1_SHARPEN_CLIP_STR_MIN_DATASIZE (14)
20483 #define ACAMERA_ISP_DS1_SHARPEN_CLIP_STR_MIN_OFFSET (0x337c)
20484 #define ACAMERA_ISP_DS1_SHARPEN_CLIP_STR_MIN_MASK (0x3fff0000)
20485 
20486 // args: data (14-bit)
acamera_isp_ds1_sharpen_clip_str_min_write(uintptr_t base,uint16_t data)20487 static __inline void acamera_isp_ds1_sharpen_clip_str_min_write(uintptr_t base, uint16_t data) {
20488     uint32_t curr = system_sw_read_32(base + 0x1c204L);
20489     system_sw_write_32(base + 0x1c204L, (((uint32_t) (data & 0x3fff)) << 16) | (curr & 0xc000ffff));
20490 }
acamera_isp_ds1_sharpen_clip_str_min_read(uintptr_t base)20491 static __inline uint16_t acamera_isp_ds1_sharpen_clip_str_min_read(uintptr_t base) {
20492     return (uint16_t)((system_sw_read_32(base + 0x1c204L) & 0x3fff0000) >> 16);
20493 }
20494 // ------------------------------------------------------------------------------ //
20495 // Register: Debug
20496 // ------------------------------------------------------------------------------ //
20497 
20498 // ------------------------------------------------------------------------------ //
20499 //  To support different debug output. 0 = normal operation, 1 = luma, 2 = sharpening mask
20500 // ------------------------------------------------------------------------------ //
20501 
20502 #define ACAMERA_ISP_DS1_SHARPEN_DEBUG_DEFAULT (0)
20503 #define ACAMERA_ISP_DS1_SHARPEN_DEBUG_DATASIZE (4)
20504 #define ACAMERA_ISP_DS1_SHARPEN_DEBUG_OFFSET (0x3380)
20505 #define ACAMERA_ISP_DS1_SHARPEN_DEBUG_MASK (0xf)
20506 
20507 // args: data (4-bit)
acamera_isp_ds1_sharpen_debug_write(uintptr_t base,uint8_t data)20508 static __inline void acamera_isp_ds1_sharpen_debug_write(uintptr_t base, uint8_t data) {
20509     uint32_t curr = system_sw_read_32(base + 0x1c208L);
20510     system_sw_write_32(base + 0x1c208L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
20511 }
acamera_isp_ds1_sharpen_debug_read(uintptr_t base)20512 static __inline uint8_t acamera_isp_ds1_sharpen_debug_read(uintptr_t base) {
20513     return (uint8_t)((system_sw_read_32(base + 0x1c208L) & 0xf) >> 0);
20514 }
20515 // ------------------------------------------------------------------------------ //
20516 // Group: ds cs conv
20517 // ------------------------------------------------------------------------------ //
20518 
20519 // ------------------------------------------------------------------------------ //
20520 // Conversion of RGB to YUV data using a 3x3 color matrix plus offsets
20521 // ------------------------------------------------------------------------------ //
20522 
20523 // ------------------------------------------------------------------------------ //
20524 // Register: Enable matrix
20525 // ------------------------------------------------------------------------------ //
20526 
20527 // ------------------------------------------------------------------------------ //
20528 // Color matrix enable: 0=off 1=on
20529 // ------------------------------------------------------------------------------ //
20530 
20531 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_MATRIX_DEFAULT (0)
20532 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_MATRIX_DATASIZE (1)
20533 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_MATRIX_OFFSET (0x3384)
20534 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_MATRIX_MASK (0x1)
20535 
20536 // args: data (1-bit)
acamera_isp_ds1_cs_conv_enable_matrix_write(uintptr_t base,uint8_t data)20537 static __inline void acamera_isp_ds1_cs_conv_enable_matrix_write(uintptr_t base, uint8_t data) {
20538     uint32_t curr = system_sw_read_32(base + 0x1c20cL);
20539     system_sw_write_32(base + 0x1c20cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
20540 }
acamera_isp_ds1_cs_conv_enable_matrix_read(uintptr_t base)20541 static __inline uint8_t acamera_isp_ds1_cs_conv_enable_matrix_read(uintptr_t base) {
20542     return (uint8_t)((system_sw_read_32(base + 0x1c20cL) & 0x1) >> 0);
20543 }
20544 // ------------------------------------------------------------------------------ //
20545 // Register: Enable filter
20546 // ------------------------------------------------------------------------------ //
20547 
20548 // ------------------------------------------------------------------------------ //
20549 // Filter enable: 0=off 1=on
20550 // ------------------------------------------------------------------------------ //
20551 
20552 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_FILTER_DEFAULT (0)
20553 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_FILTER_DATASIZE (1)
20554 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_FILTER_OFFSET (0x3384)
20555 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_FILTER_MASK (0x2)
20556 
20557 // args: data (1-bit)
acamera_isp_ds1_cs_conv_enable_filter_write(uintptr_t base,uint8_t data)20558 static __inline void acamera_isp_ds1_cs_conv_enable_filter_write(uintptr_t base, uint8_t data) {
20559     uint32_t curr = system_sw_read_32(base + 0x1c20cL);
20560     system_sw_write_32(base + 0x1c20cL, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
20561 }
acamera_isp_ds1_cs_conv_enable_filter_read(uintptr_t base)20562 static __inline uint8_t acamera_isp_ds1_cs_conv_enable_filter_read(uintptr_t base) {
20563     return (uint8_t)((system_sw_read_32(base + 0x1c20cL) & 0x2) >> 1);
20564 }
20565 // ------------------------------------------------------------------------------ //
20566 // Register: Enable horizontal downsample
20567 // ------------------------------------------------------------------------------ //
20568 
20569 // ------------------------------------------------------------------------------ //
20570 // Horizontal Downsampling Enable: 0=off 1=on
20571 // ------------------------------------------------------------------------------ //
20572 
20573 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_HORIZONTAL_DOWNSAMPLE_DEFAULT (0)
20574 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_HORIZONTAL_DOWNSAMPLE_DATASIZE (1)
20575 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_HORIZONTAL_DOWNSAMPLE_OFFSET (0x3384)
20576 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_HORIZONTAL_DOWNSAMPLE_MASK (0x4)
20577 
20578 // args: data (1-bit)
acamera_isp_ds1_cs_conv_enable_horizontal_downsample_write(uintptr_t base,uint8_t data)20579 static __inline void acamera_isp_ds1_cs_conv_enable_horizontal_downsample_write(uintptr_t base, uint8_t data) {
20580     uint32_t curr = system_sw_read_32(base + 0x1c20cL);
20581     system_sw_write_32(base + 0x1c20cL, (((uint32_t) (data & 0x1)) << 2) | (curr & 0xfffffffb));
20582 }
acamera_isp_ds1_cs_conv_enable_horizontal_downsample_read(uintptr_t base)20583 static __inline uint8_t acamera_isp_ds1_cs_conv_enable_horizontal_downsample_read(uintptr_t base) {
20584     return (uint8_t)((system_sw_read_32(base + 0x1c20cL) & 0x4) >> 2);
20585 }
20586 // ------------------------------------------------------------------------------ //
20587 // Register: Enable vertical downsample
20588 // ------------------------------------------------------------------------------ //
20589 
20590 // ------------------------------------------------------------------------------ //
20591 // Vertical Downsampling Enable: 0=off 1=on
20592 // ------------------------------------------------------------------------------ //
20593 
20594 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_VERTICAL_DOWNSAMPLE_DEFAULT (0)
20595 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_VERTICAL_DOWNSAMPLE_DATASIZE (1)
20596 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_VERTICAL_DOWNSAMPLE_OFFSET (0x3384)
20597 #define ACAMERA_ISP_DS1_CS_CONV_ENABLE_VERTICAL_DOWNSAMPLE_MASK (0x8)
20598 
20599 // args: data (1-bit)
acamera_isp_ds1_cs_conv_enable_vertical_downsample_write(uintptr_t base,uint8_t data)20600 static __inline void acamera_isp_ds1_cs_conv_enable_vertical_downsample_write(uintptr_t base, uint8_t data) {
20601     uint32_t curr = system_sw_read_32(base + 0x1c20cL);
20602     system_sw_write_32(base + 0x1c20cL, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
20603 }
acamera_isp_ds1_cs_conv_enable_vertical_downsample_read(uintptr_t base)20604 static __inline uint8_t acamera_isp_ds1_cs_conv_enable_vertical_downsample_read(uintptr_t base) {
20605     return (uint8_t)((system_sw_read_32(base + 0x1c20cL) & 0x8) >> 3);
20606 }
20607 // ------------------------------------------------------------------------------ //
20608 // Register: Coefft 11
20609 // ------------------------------------------------------------------------------ //
20610 
20611 // ------------------------------------------------------------------------------ //
20612 // Matrix coefficient for R-Y multiplier
20613 // ------------------------------------------------------------------------------ //
20614 
20615 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_11_DEFAULT (0x002f)
20616 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_11_DATASIZE (16)
20617 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_11_OFFSET (0x3388)
20618 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_11_MASK (0xffff)
20619 
20620 // args: data (16-bit)
acamera_isp_ds1_cs_conv_coefft_11_write(uintptr_t base,uint16_t data)20621 static __inline void acamera_isp_ds1_cs_conv_coefft_11_write(uintptr_t base, uint16_t data) {
20622     uint32_t curr = system_sw_read_32(base + 0x1c210L);
20623     system_sw_write_32(base + 0x1c210L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
20624 }
acamera_isp_ds1_cs_conv_coefft_11_read(uintptr_t base)20625 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_11_read(uintptr_t base) {
20626     return (uint16_t)((system_sw_read_32(base + 0x1c210L) & 0xffff) >> 0);
20627 }
20628 // ------------------------------------------------------------------------------ //
20629 // Register: Coefft 12
20630 // ------------------------------------------------------------------------------ //
20631 
20632 // ------------------------------------------------------------------------------ //
20633 // Matrix coefficient for G-Y multiplier
20634 // ------------------------------------------------------------------------------ //
20635 
20636 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_12_DEFAULT (0x009d)
20637 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_12_DATASIZE (16)
20638 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_12_OFFSET (0x338c)
20639 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_12_MASK (0xffff)
20640 
20641 // args: data (16-bit)
acamera_isp_ds1_cs_conv_coefft_12_write(uintptr_t base,uint16_t data)20642 static __inline void acamera_isp_ds1_cs_conv_coefft_12_write(uintptr_t base, uint16_t data) {
20643     uint32_t curr = system_sw_read_32(base + 0x1c214L);
20644     system_sw_write_32(base + 0x1c214L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
20645 }
acamera_isp_ds1_cs_conv_coefft_12_read(uintptr_t base)20646 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_12_read(uintptr_t base) {
20647     return (uint16_t)((system_sw_read_32(base + 0x1c214L) & 0xffff) >> 0);
20648 }
20649 // ------------------------------------------------------------------------------ //
20650 // Register: Coefft 13
20651 // ------------------------------------------------------------------------------ //
20652 
20653 // ------------------------------------------------------------------------------ //
20654 // Matrix coefficient for B-Y multiplier
20655 // ------------------------------------------------------------------------------ //
20656 
20657 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_13_DEFAULT (0x0010)
20658 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_13_DATASIZE (16)
20659 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_13_OFFSET (0x3390)
20660 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_13_MASK (0xffff)
20661 
20662 // args: data (16-bit)
acamera_isp_ds1_cs_conv_coefft_13_write(uintptr_t base,uint16_t data)20663 static __inline void acamera_isp_ds1_cs_conv_coefft_13_write(uintptr_t base, uint16_t data) {
20664     uint32_t curr = system_sw_read_32(base + 0x1c218L);
20665     system_sw_write_32(base + 0x1c218L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
20666 }
acamera_isp_ds1_cs_conv_coefft_13_read(uintptr_t base)20667 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_13_read(uintptr_t base) {
20668     return (uint16_t)((system_sw_read_32(base + 0x1c218L) & 0xffff) >> 0);
20669 }
20670 // ------------------------------------------------------------------------------ //
20671 // Register: Coefft 21
20672 // ------------------------------------------------------------------------------ //
20673 
20674 // ------------------------------------------------------------------------------ //
20675 // Matrix coefficient for R-Cb multiplier
20676 // ------------------------------------------------------------------------------ //
20677 
20678 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_21_DEFAULT (0x801a)
20679 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_21_DATASIZE (16)
20680 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_21_OFFSET (0x3394)
20681 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_21_MASK (0xffff)
20682 
20683 // args: data (16-bit)
acamera_isp_ds1_cs_conv_coefft_21_write(uintptr_t base,uint16_t data)20684 static __inline void acamera_isp_ds1_cs_conv_coefft_21_write(uintptr_t base, uint16_t data) {
20685     uint32_t curr = system_sw_read_32(base + 0x1c21cL);
20686     system_sw_write_32(base + 0x1c21cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
20687 }
acamera_isp_ds1_cs_conv_coefft_21_read(uintptr_t base)20688 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_21_read(uintptr_t base) {
20689     return (uint16_t)((system_sw_read_32(base + 0x1c21cL) & 0xffff) >> 0);
20690 }
20691 // ------------------------------------------------------------------------------ //
20692 // Register: Coefft 22
20693 // ------------------------------------------------------------------------------ //
20694 
20695 // ------------------------------------------------------------------------------ //
20696 // Matrix coefficient for G-Cb multiplier
20697 // ------------------------------------------------------------------------------ //
20698 
20699 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_22_DEFAULT (0x8057)
20700 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_22_DATASIZE (16)
20701 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_22_OFFSET (0x3398)
20702 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_22_MASK (0xffff)
20703 
20704 // args: data (16-bit)
acamera_isp_ds1_cs_conv_coefft_22_write(uintptr_t base,uint16_t data)20705 static __inline void acamera_isp_ds1_cs_conv_coefft_22_write(uintptr_t base, uint16_t data) {
20706     uint32_t curr = system_sw_read_32(base + 0x1c220L);
20707     system_sw_write_32(base + 0x1c220L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
20708 }
acamera_isp_ds1_cs_conv_coefft_22_read(uintptr_t base)20709 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_22_read(uintptr_t base) {
20710     return (uint16_t)((system_sw_read_32(base + 0x1c220L) & 0xffff) >> 0);
20711 }
20712 // ------------------------------------------------------------------------------ //
20713 // Register: Coefft 23
20714 // ------------------------------------------------------------------------------ //
20715 
20716 // ------------------------------------------------------------------------------ //
20717 // Matrix coefficient for B-Cb multiplier
20718 // ------------------------------------------------------------------------------ //
20719 
20720 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_23_DEFAULT (0x0070)
20721 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_23_DATASIZE (16)
20722 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_23_OFFSET (0x339c)
20723 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_23_MASK (0xffff)
20724 
20725 // args: data (16-bit)
acamera_isp_ds1_cs_conv_coefft_23_write(uintptr_t base,uint16_t data)20726 static __inline void acamera_isp_ds1_cs_conv_coefft_23_write(uintptr_t base, uint16_t data) {
20727     uint32_t curr = system_sw_read_32(base + 0x1c224L);
20728     system_sw_write_32(base + 0x1c224L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
20729 }
acamera_isp_ds1_cs_conv_coefft_23_read(uintptr_t base)20730 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_23_read(uintptr_t base) {
20731     return (uint16_t)((system_sw_read_32(base + 0x1c224L) & 0xffff) >> 0);
20732 }
20733 // ------------------------------------------------------------------------------ //
20734 // Register: Coefft 31
20735 // ------------------------------------------------------------------------------ //
20736 
20737 // ------------------------------------------------------------------------------ //
20738 // Matrix coefficient for R-Cr multiplier
20739 // ------------------------------------------------------------------------------ //
20740 
20741 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_31_DEFAULT (0x0070)
20742 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_31_DATASIZE (16)
20743 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_31_OFFSET (0x33a0)
20744 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_31_MASK (0xffff)
20745 
20746 // args: data (16-bit)
acamera_isp_ds1_cs_conv_coefft_31_write(uintptr_t base,uint16_t data)20747 static __inline void acamera_isp_ds1_cs_conv_coefft_31_write(uintptr_t base, uint16_t data) {
20748     uint32_t curr = system_sw_read_32(base + 0x1c228L);
20749     system_sw_write_32(base + 0x1c228L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
20750 }
acamera_isp_ds1_cs_conv_coefft_31_read(uintptr_t base)20751 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_31_read(uintptr_t base) {
20752     return (uint16_t)((system_sw_read_32(base + 0x1c228L) & 0xffff) >> 0);
20753 }
20754 // ------------------------------------------------------------------------------ //
20755 // Register: Coefft 32
20756 // ------------------------------------------------------------------------------ //
20757 
20758 // ------------------------------------------------------------------------------ //
20759 // Matrix coefficient for G-Cr multiplier
20760 // ------------------------------------------------------------------------------ //
20761 
20762 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_32_DEFAULT (0x8066)
20763 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_32_DATASIZE (16)
20764 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_32_OFFSET (0x33a4)
20765 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_32_MASK (0xffff)
20766 
20767 // args: data (16-bit)
acamera_isp_ds1_cs_conv_coefft_32_write(uintptr_t base,uint16_t data)20768 static __inline void acamera_isp_ds1_cs_conv_coefft_32_write(uintptr_t base, uint16_t data) {
20769     uint32_t curr = system_sw_read_32(base + 0x1c22cL);
20770     system_sw_write_32(base + 0x1c22cL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
20771 }
acamera_isp_ds1_cs_conv_coefft_32_read(uintptr_t base)20772 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_32_read(uintptr_t base) {
20773     return (uint16_t)((system_sw_read_32(base + 0x1c22cL) & 0xffff) >> 0);
20774 }
20775 // ------------------------------------------------------------------------------ //
20776 // Register: Coefft 33
20777 // ------------------------------------------------------------------------------ //
20778 
20779 // ------------------------------------------------------------------------------ //
20780 // Matrix coefficient for B-Cr multiplier
20781 // ------------------------------------------------------------------------------ //
20782 
20783 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_33_DEFAULT (0x800a)
20784 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_33_DATASIZE (16)
20785 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_33_OFFSET (0x33a8)
20786 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_33_MASK (0xffff)
20787 
20788 // args: data (16-bit)
acamera_isp_ds1_cs_conv_coefft_33_write(uintptr_t base,uint16_t data)20789 static __inline void acamera_isp_ds1_cs_conv_coefft_33_write(uintptr_t base, uint16_t data) {
20790     uint32_t curr = system_sw_read_32(base + 0x1c230L);
20791     system_sw_write_32(base + 0x1c230L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
20792 }
acamera_isp_ds1_cs_conv_coefft_33_read(uintptr_t base)20793 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_33_read(uintptr_t base) {
20794     return (uint16_t)((system_sw_read_32(base + 0x1c230L) & 0xffff) >> 0);
20795 }
20796 // ------------------------------------------------------------------------------ //
20797 // Register: Coefft o1
20798 // ------------------------------------------------------------------------------ //
20799 
20800 // ------------------------------------------------------------------------------ //
20801 // Offset for Y
20802 // ------------------------------------------------------------------------------ //
20803 
20804 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O1_DEFAULT (0x000)
20805 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O1_DATASIZE (11)
20806 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O1_OFFSET (0x33ac)
20807 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O1_MASK (0x7ff)
20808 
20809 // args: data (11-bit)
acamera_isp_ds1_cs_conv_coefft_o1_write(uintptr_t base,uint16_t data)20810 static __inline void acamera_isp_ds1_cs_conv_coefft_o1_write(uintptr_t base, uint16_t data) {
20811     uint32_t curr = system_sw_read_32(base + 0x1c234L);
20812     system_sw_write_32(base + 0x1c234L, (((uint32_t) (data & 0x7ff)) << 0) | (curr & 0xfffff800));
20813 }
acamera_isp_ds1_cs_conv_coefft_o1_read(uintptr_t base)20814 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_o1_read(uintptr_t base) {
20815     return (uint16_t)((system_sw_read_32(base + 0x1c234L) & 0x7ff) >> 0);
20816 }
20817 // ------------------------------------------------------------------------------ //
20818 // Register: Coefft o2
20819 // ------------------------------------------------------------------------------ //
20820 
20821 // ------------------------------------------------------------------------------ //
20822 // Offset for Cb
20823 // ------------------------------------------------------------------------------ //
20824 
20825 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O2_DEFAULT (0x200)
20826 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O2_DATASIZE (11)
20827 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O2_OFFSET (0x33b0)
20828 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O2_MASK (0x7ff)
20829 
20830 // args: data (11-bit)
acamera_isp_ds1_cs_conv_coefft_o2_write(uintptr_t base,uint16_t data)20831 static __inline void acamera_isp_ds1_cs_conv_coefft_o2_write(uintptr_t base, uint16_t data) {
20832     uint32_t curr = system_sw_read_32(base + 0x1c238L);
20833     system_sw_write_32(base + 0x1c238L, (((uint32_t) (data & 0x7ff)) << 0) | (curr & 0xfffff800));
20834 }
acamera_isp_ds1_cs_conv_coefft_o2_read(uintptr_t base)20835 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_o2_read(uintptr_t base) {
20836     return (uint16_t)((system_sw_read_32(base + 0x1c238L) & 0x7ff) >> 0);
20837 }
20838 // ------------------------------------------------------------------------------ //
20839 // Register: Coefft o3
20840 // ------------------------------------------------------------------------------ //
20841 
20842 // ------------------------------------------------------------------------------ //
20843 // Offset for Cr
20844 // ------------------------------------------------------------------------------ //
20845 
20846 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O3_DEFAULT (0x200)
20847 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O3_DATASIZE (11)
20848 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O3_OFFSET (0x33b4)
20849 #define ACAMERA_ISP_DS1_CS_CONV_COEFFT_O3_MASK (0x7ff)
20850 
20851 // args: data (11-bit)
acamera_isp_ds1_cs_conv_coefft_o3_write(uintptr_t base,uint16_t data)20852 static __inline void acamera_isp_ds1_cs_conv_coefft_o3_write(uintptr_t base, uint16_t data) {
20853     uint32_t curr = system_sw_read_32(base + 0x1c23cL);
20854     system_sw_write_32(base + 0x1c23cL, (((uint32_t) (data & 0x7ff)) << 0) | (curr & 0xfffff800));
20855 }
acamera_isp_ds1_cs_conv_coefft_o3_read(uintptr_t base)20856 static __inline uint16_t acamera_isp_ds1_cs_conv_coefft_o3_read(uintptr_t base) {
20857     return (uint16_t)((system_sw_read_32(base + 0x1c23cL) & 0x7ff) >> 0);
20858 }
20859 // ------------------------------------------------------------------------------ //
20860 // Register: Clip min Y
20861 // ------------------------------------------------------------------------------ //
20862 
20863 // ------------------------------------------------------------------------------ //
20864 // Minimal value for Y.  Values below this are clipped.
20865 // ------------------------------------------------------------------------------ //
20866 
20867 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MIN_Y_DEFAULT (0x000)
20868 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MIN_Y_DATASIZE (10)
20869 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MIN_Y_OFFSET (0x33b8)
20870 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MIN_Y_MASK (0x3ff)
20871 
20872 // args: data (10-bit)
acamera_isp_ds1_cs_conv_clip_min_y_write(uintptr_t base,uint16_t data)20873 static __inline void acamera_isp_ds1_cs_conv_clip_min_y_write(uintptr_t base, uint16_t data) {
20874     uint32_t curr = system_sw_read_32(base + 0x1c240L);
20875     system_sw_write_32(base + 0x1c240L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
20876 }
acamera_isp_ds1_cs_conv_clip_min_y_read(uintptr_t base)20877 static __inline uint16_t acamera_isp_ds1_cs_conv_clip_min_y_read(uintptr_t base) {
20878     return (uint16_t)((system_sw_read_32(base + 0x1c240L) & 0x3ff) >> 0);
20879 }
20880 // ------------------------------------------------------------------------------ //
20881 // Register: Clip max Y
20882 // ------------------------------------------------------------------------------ //
20883 
20884 // ------------------------------------------------------------------------------ //
20885 // Maximal value for Y.  Values above this are clipped.
20886 // ------------------------------------------------------------------------------ //
20887 
20888 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MAX_Y_DEFAULT (0x3FF)
20889 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MAX_Y_DATASIZE (10)
20890 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MAX_Y_OFFSET (0x33bc)
20891 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MAX_Y_MASK (0x3ff)
20892 
20893 // args: data (10-bit)
acamera_isp_ds1_cs_conv_clip_max_y_write(uintptr_t base,uint16_t data)20894 static __inline void acamera_isp_ds1_cs_conv_clip_max_y_write(uintptr_t base, uint16_t data) {
20895     uint32_t curr = system_sw_read_32(base + 0x1c244L);
20896     system_sw_write_32(base + 0x1c244L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
20897 }
acamera_isp_ds1_cs_conv_clip_max_y_read(uintptr_t base)20898 static __inline uint16_t acamera_isp_ds1_cs_conv_clip_max_y_read(uintptr_t base) {
20899     return (uint16_t)((system_sw_read_32(base + 0x1c244L) & 0x3ff) >> 0);
20900 }
20901 // ------------------------------------------------------------------------------ //
20902 // Register: Clip min UV
20903 // ------------------------------------------------------------------------------ //
20904 
20905 // ------------------------------------------------------------------------------ //
20906 // Minimal value for Cb, Cr.  Values below this are clipped.
20907 // ------------------------------------------------------------------------------ //
20908 
20909 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MIN_UV_DEFAULT (0x000)
20910 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MIN_UV_DATASIZE (10)
20911 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MIN_UV_OFFSET (0x33c0)
20912 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MIN_UV_MASK (0x3ff)
20913 
20914 // args: data (10-bit)
acamera_isp_ds1_cs_conv_clip_min_uv_write(uintptr_t base,uint16_t data)20915 static __inline void acamera_isp_ds1_cs_conv_clip_min_uv_write(uintptr_t base, uint16_t data) {
20916     uint32_t curr = system_sw_read_32(base + 0x1c248L);
20917     system_sw_write_32(base + 0x1c248L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
20918 }
acamera_isp_ds1_cs_conv_clip_min_uv_read(uintptr_t base)20919 static __inline uint16_t acamera_isp_ds1_cs_conv_clip_min_uv_read(uintptr_t base) {
20920     return (uint16_t)((system_sw_read_32(base + 0x1c248L) & 0x3ff) >> 0);
20921 }
20922 // ------------------------------------------------------------------------------ //
20923 // Register: Clip max UV
20924 // ------------------------------------------------------------------------------ //
20925 
20926 // ------------------------------------------------------------------------------ //
20927 // Maximal value for Cb, Cr.  Values above this are clipped.
20928 // ------------------------------------------------------------------------------ //
20929 
20930 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MAX_UV_DEFAULT (0x3FF)
20931 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MAX_UV_DATASIZE (10)
20932 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MAX_UV_OFFSET (0x33c4)
20933 #define ACAMERA_ISP_DS1_CS_CONV_CLIP_MAX_UV_MASK (0x3ff)
20934 
20935 // args: data (10-bit)
acamera_isp_ds1_cs_conv_clip_max_uv_write(uintptr_t base,uint16_t data)20936 static __inline void acamera_isp_ds1_cs_conv_clip_max_uv_write(uintptr_t base, uint16_t data) {
20937     uint32_t curr = system_sw_read_32(base + 0x1c24cL);
20938     system_sw_write_32(base + 0x1c24cL, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
20939 }
acamera_isp_ds1_cs_conv_clip_max_uv_read(uintptr_t base)20940 static __inline uint16_t acamera_isp_ds1_cs_conv_clip_max_uv_read(uintptr_t base) {
20941     return (uint16_t)((system_sw_read_32(base + 0x1c24cL) & 0x3ff) >> 0);
20942 }
20943 // ------------------------------------------------------------------------------ //
20944 // Register: Data mask RY
20945 // ------------------------------------------------------------------------------ //
20946 
20947 // ------------------------------------------------------------------------------ //
20948 // Data mask for channel 1 (R or Y).  Bit-wise and of this value and video data.
20949 // ------------------------------------------------------------------------------ //
20950 
20951 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_RY_DEFAULT (0x3FF)
20952 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_RY_DATASIZE (10)
20953 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_RY_OFFSET (0x33c8)
20954 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_RY_MASK (0x3ff)
20955 
20956 // args: data (10-bit)
acamera_isp_ds1_cs_conv_data_mask_ry_write(uintptr_t base,uint16_t data)20957 static __inline void acamera_isp_ds1_cs_conv_data_mask_ry_write(uintptr_t base, uint16_t data) {
20958     uint32_t curr = system_sw_read_32(base + 0x1c250L);
20959     system_sw_write_32(base + 0x1c250L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
20960 }
acamera_isp_ds1_cs_conv_data_mask_ry_read(uintptr_t base)20961 static __inline uint16_t acamera_isp_ds1_cs_conv_data_mask_ry_read(uintptr_t base) {
20962     return (uint16_t)((system_sw_read_32(base + 0x1c250L) & 0x3ff) >> 0);
20963 }
20964 // ------------------------------------------------------------------------------ //
20965 // Register: Data mask GU
20966 // ------------------------------------------------------------------------------ //
20967 
20968 // ------------------------------------------------------------------------------ //
20969 // Data mask for channel 2 (G or U).  Bit-wise and of this value and video data.
20970 // ------------------------------------------------------------------------------ //
20971 
20972 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_GU_DEFAULT (0x3FF)
20973 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_GU_DATASIZE (10)
20974 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_GU_OFFSET (0x33cc)
20975 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_GU_MASK (0x3ff)
20976 
20977 // args: data (10-bit)
acamera_isp_ds1_cs_conv_data_mask_gu_write(uintptr_t base,uint16_t data)20978 static __inline void acamera_isp_ds1_cs_conv_data_mask_gu_write(uintptr_t base, uint16_t data) {
20979     uint32_t curr = system_sw_read_32(base + 0x1c254L);
20980     system_sw_write_32(base + 0x1c254L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
20981 }
acamera_isp_ds1_cs_conv_data_mask_gu_read(uintptr_t base)20982 static __inline uint16_t acamera_isp_ds1_cs_conv_data_mask_gu_read(uintptr_t base) {
20983     return (uint16_t)((system_sw_read_32(base + 0x1c254L) & 0x3ff) >> 0);
20984 }
20985 // ------------------------------------------------------------------------------ //
20986 // Register: Data mask BV
20987 // ------------------------------------------------------------------------------ //
20988 
20989 // ------------------------------------------------------------------------------ //
20990 // Data mask for channel 3 (B or V).  Bit-wise and of this value and video data.
20991 // ------------------------------------------------------------------------------ //
20992 
20993 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_BV_DEFAULT (0x3FF)
20994 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_BV_DATASIZE (10)
20995 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_BV_OFFSET (0x33d0)
20996 #define ACAMERA_ISP_DS1_CS_CONV_DATA_MASK_BV_MASK (0x3ff)
20997 
20998 // args: data (10-bit)
acamera_isp_ds1_cs_conv_data_mask_bv_write(uintptr_t base,uint16_t data)20999 static __inline void acamera_isp_ds1_cs_conv_data_mask_bv_write(uintptr_t base, uint16_t data) {
21000     uint32_t curr = system_sw_read_32(base + 0x1c258L);
21001     system_sw_write_32(base + 0x1c258L, (((uint32_t) (data & 0x3ff)) << 0) | (curr & 0xfffffc00));
21002 }
acamera_isp_ds1_cs_conv_data_mask_bv_read(uintptr_t base)21003 static __inline uint16_t acamera_isp_ds1_cs_conv_data_mask_bv_read(uintptr_t base) {
21004     return (uint16_t)((system_sw_read_32(base + 0x1c258L) & 0x3ff) >> 0);
21005 }
21006 // ------------------------------------------------------------------------------ //
21007 // Group: ds cs conv dither
21008 // ------------------------------------------------------------------------------ //
21009 
21010 // ------------------------------------------------------------------------------ //
21011 // Register: Enable dither
21012 // ------------------------------------------------------------------------------ //
21013 
21014 // ------------------------------------------------------------------------------ //
21015 // Enables dithering module
21016 // ------------------------------------------------------------------------------ //
21017 
21018 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_ENABLE_DITHER_DEFAULT (0x0)
21019 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_ENABLE_DITHER_DATASIZE (1)
21020 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_ENABLE_DITHER_OFFSET (0x33d4)
21021 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_ENABLE_DITHER_MASK (0x1)
21022 
21023 // args: data (1-bit)
acamera_isp_ds1_cs_conv_dither_enable_dither_write(uintptr_t base,uint8_t data)21024 static __inline void acamera_isp_ds1_cs_conv_dither_enable_dither_write(uintptr_t base, uint8_t data) {
21025     uint32_t curr = system_sw_read_32(base + 0x1c25cL);
21026     system_sw_write_32(base + 0x1c25cL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
21027 }
acamera_isp_ds1_cs_conv_dither_enable_dither_read(uintptr_t base)21028 static __inline uint8_t acamera_isp_ds1_cs_conv_dither_enable_dither_read(uintptr_t base) {
21029     return (uint8_t)((system_sw_read_32(base + 0x1c25cL) & 0x1) >> 0);
21030 }
21031 // ------------------------------------------------------------------------------ //
21032 // Register: Dither amount
21033 // ------------------------------------------------------------------------------ //
21034 
21035 // ------------------------------------------------------------------------------ //
21036 // 0= dither to 9 bits; 1=dither to 8 bits; 2=dither to 7 bits; 3=dither to 6 bits
21037 // ------------------------------------------------------------------------------ //
21038 
21039 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_DITHER_AMOUNT_DEFAULT (0x0)
21040 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_DITHER_AMOUNT_DATASIZE (2)
21041 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_DITHER_AMOUNT_OFFSET (0x33d4)
21042 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_DITHER_AMOUNT_MASK (0x6)
21043 
21044 // args: data (2-bit)
acamera_isp_ds1_cs_conv_dither_dither_amount_write(uintptr_t base,uint8_t data)21045 static __inline void acamera_isp_ds1_cs_conv_dither_dither_amount_write(uintptr_t base, uint8_t data) {
21046     uint32_t curr = system_sw_read_32(base + 0x1c25cL);
21047     system_sw_write_32(base + 0x1c25cL, (((uint32_t) (data & 0x3)) << 1) | (curr & 0xfffffff9));
21048 }
acamera_isp_ds1_cs_conv_dither_dither_amount_read(uintptr_t base)21049 static __inline uint8_t acamera_isp_ds1_cs_conv_dither_dither_amount_read(uintptr_t base) {
21050     return (uint8_t)((system_sw_read_32(base + 0x1c25cL) & 0x6) >> 1);
21051 }
21052 // ------------------------------------------------------------------------------ //
21053 // Register: Shift mode
21054 // ------------------------------------------------------------------------------ //
21055 
21056 // ------------------------------------------------------------------------------ //
21057 // 0= output is LSB aligned; 1=output is MSB aligned
21058 // ------------------------------------------------------------------------------ //
21059 
21060 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_SHIFT_MODE_DEFAULT (0x0)
21061 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_SHIFT_MODE_DATASIZE (1)
21062 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_SHIFT_MODE_OFFSET (0x33d4)
21063 #define ACAMERA_ISP_DS1_CS_CONV_DITHER_SHIFT_MODE_MASK (0x10)
21064 
21065 // args: data (1-bit)
acamera_isp_ds1_cs_conv_dither_shift_mode_write(uintptr_t base,uint8_t data)21066 static __inline void acamera_isp_ds1_cs_conv_dither_shift_mode_write(uintptr_t base, uint8_t data) {
21067     uint32_t curr = system_sw_read_32(base + 0x1c25cL);
21068     system_sw_write_32(base + 0x1c25cL, (((uint32_t) (data & 0x1)) << 4) | (curr & 0xffffffef));
21069 }
acamera_isp_ds1_cs_conv_dither_shift_mode_read(uintptr_t base)21070 static __inline uint8_t acamera_isp_ds1_cs_conv_dither_shift_mode_read(uintptr_t base) {
21071     return (uint8_t)((system_sw_read_32(base + 0x1c25cL) & 0x10) >> 4);
21072 }
21073 // ------------------------------------------------------------------------------ //
21074 // Group: ds dma writer
21075 // ------------------------------------------------------------------------------ //
21076 
21077 // ------------------------------------------------------------------------------ //
21078 // DMA writer controls
21079 // ------------------------------------------------------------------------------ //
21080 
21081 // ------------------------------------------------------------------------------ //
21082 // Register: Format
21083 // ------------------------------------------------------------------------------ //
21084 
21085 // ------------------------------------------------------------------------------ //
21086 // Format
21087 // ------------------------------------------------------------------------------ //
21088 
21089 #define ACAMERA_ISP_DS1_DMA_WRITER_FORMAT_DEFAULT (0x0)
21090 #define ACAMERA_ISP_DS1_DMA_WRITER_FORMAT_DATASIZE (8)
21091 #define ACAMERA_ISP_DS1_DMA_WRITER_FORMAT_OFFSET (0x33d8)
21092 #define ACAMERA_ISP_DS1_DMA_WRITER_FORMAT_MASK (0xff)
21093 
21094 // args: data (8-bit)
acamera_isp_ds1_dma_writer_format_write(uintptr_t base,uint8_t data)21095 static __inline void acamera_isp_ds1_dma_writer_format_write(uintptr_t base, uint8_t data) {
21096     uint32_t curr = system_sw_read_32(base + 0x1c260L);
21097     system_sw_write_32(base + 0x1c260L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
21098 }
acamera_isp_ds1_dma_writer_format_read(uintptr_t base)21099 static __inline uint8_t acamera_isp_ds1_dma_writer_format_read(uintptr_t base) {
21100     return (uint8_t)((system_sw_read_32(base + 0x1c260L) & 0xff) >> 0);
21101 }
21102 // ------------------------------------------------------------------------------ //
21103 // Register: Base mode
21104 // ------------------------------------------------------------------------------ //
21105 
21106 // ------------------------------------------------------------------------------ //
21107 // Base DMA packing mode for RGB/RAW/YUV etc (see ISP guide)
21108 // ------------------------------------------------------------------------------ //
21109 
21110 #define ACAMERA_ISP_DS1_DMA_WRITER_BASE_MODE_DEFAULT (0x0)
21111 #define ACAMERA_ISP_DS1_DMA_WRITER_BASE_MODE_DATASIZE (5)
21112 #define ACAMERA_ISP_DS1_DMA_WRITER_BASE_MODE_OFFSET (0x33d8)
21113 #define ACAMERA_ISP_DS1_DMA_WRITER_BASE_MODE_MASK (0x1f)
21114 
21115 // args: data (5-bit)
acamera_isp_ds1_dma_writer_base_mode_write(uintptr_t base,uint8_t data)21116 static __inline void acamera_isp_ds1_dma_writer_base_mode_write(uintptr_t base, uint8_t data) {
21117     uint32_t curr = system_sw_read_32(base + 0x1c260L);
21118     system_sw_write_32(base + 0x1c260L, (((uint32_t) (data & 0x1f)) << 0) | (curr & 0xffffffe0));
21119 }
acamera_isp_ds1_dma_writer_base_mode_read(uintptr_t base)21120 static __inline uint8_t acamera_isp_ds1_dma_writer_base_mode_read(uintptr_t base) {
21121     return (uint8_t)((system_sw_read_32(base + 0x1c260L) & 0x1f) >> 0);
21122 }
21123 // ------------------------------------------------------------------------------ //
21124 // Register: Plane select
21125 // ------------------------------------------------------------------------------ //
21126 
21127 // ------------------------------------------------------------------------------ //
21128 // Plane select for planar base modes.  Only used if planar outputs required.  Not used.  Should be set to 0
21129 // ------------------------------------------------------------------------------ //
21130 
21131 #define ACAMERA_ISP_DS1_DMA_WRITER_PLANE_SELECT_DEFAULT (0x0)
21132 #define ACAMERA_ISP_DS1_DMA_WRITER_PLANE_SELECT_DATASIZE (2)
21133 #define ACAMERA_ISP_DS1_DMA_WRITER_PLANE_SELECT_OFFSET (0x33d8)
21134 #define ACAMERA_ISP_DS1_DMA_WRITER_PLANE_SELECT_MASK (0xc0)
21135 
21136 // args: data (2-bit)
acamera_isp_ds1_dma_writer_plane_select_write(uintptr_t base,uint8_t data)21137 static __inline void acamera_isp_ds1_dma_writer_plane_select_write(uintptr_t base, uint8_t data) {
21138     uint32_t curr = system_sw_read_32(base + 0x1c260L);
21139     system_sw_write_32(base + 0x1c260L, (((uint32_t) (data & 0x3)) << 6) | (curr & 0xffffff3f));
21140 }
acamera_isp_ds1_dma_writer_plane_select_read(uintptr_t base)21141 static __inline uint8_t acamera_isp_ds1_dma_writer_plane_select_read(uintptr_t base) {
21142     return (uint8_t)((system_sw_read_32(base + 0x1c260L) & 0xc0) >> 6);
21143 }
21144 // ------------------------------------------------------------------------------ //
21145 // Register: single frame
21146 // ------------------------------------------------------------------------------ //
21147 
21148 // ------------------------------------------------------------------------------ //
21149 // 0 = All frames are written(after frame_write_on= 1), 1= only 1st frame written ( after frame_write_on =1)
21150 // ------------------------------------------------------------------------------ //
21151 
21152 #define ACAMERA_ISP_DS1_DMA_WRITER_SINGLE_FRAME_DEFAULT (0)
21153 #define ACAMERA_ISP_DS1_DMA_WRITER_SINGLE_FRAME_DATASIZE (1)
21154 #define ACAMERA_ISP_DS1_DMA_WRITER_SINGLE_FRAME_OFFSET (0x33d8)
21155 #define ACAMERA_ISP_DS1_DMA_WRITER_SINGLE_FRAME_MASK (0x100)
21156 
21157 // args: data (1-bit)
acamera_isp_ds1_dma_writer_single_frame_write(uintptr_t base,uint8_t data)21158 static __inline void acamera_isp_ds1_dma_writer_single_frame_write(uintptr_t base, uint8_t data) {
21159     uint32_t curr = system_sw_read_32(base + 0x1c260L);
21160     system_sw_write_32(base + 0x1c260L, (((uint32_t) (data & 0x1)) << 8) | (curr & 0xfffffeff));
21161 }
acamera_isp_ds1_dma_writer_single_frame_read(uintptr_t base)21162 static __inline uint8_t acamera_isp_ds1_dma_writer_single_frame_read(uintptr_t base) {
21163     return (uint8_t)((system_sw_read_32(base + 0x1c260L) & 0x100) >> 8);
21164 }
21165 // ------------------------------------------------------------------------------ //
21166 // Register: frame write on
21167 // ------------------------------------------------------------------------------ //
21168 
21169 // ------------------------------------------------------------------------------ //
21170 //
21171 //        0 = no frames written(when switched from 1, current frame completes writing before stopping),
21172 //        1= write frame(s) (write single or continous frame(s) )
21173 //
21174 // ------------------------------------------------------------------------------ //
21175 
21176 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_WRITE_ON_DEFAULT (0)
21177 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_WRITE_ON_DATASIZE (1)
21178 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_WRITE_ON_OFFSET (0x33d8)
21179 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_WRITE_ON_MASK (0x200)
21180 
21181 // args: data (1-bit)
acamera_isp_ds1_dma_writer_frame_write_on_write(uintptr_t base,uint8_t data)21182 static __inline void acamera_isp_ds1_dma_writer_frame_write_on_write(uintptr_t base, uint8_t data) {
21183     uint32_t curr = system_sw_read_32(base + 0x1c260L);
21184     system_sw_write_32(base + 0x1c260L, (((uint32_t) (data & 0x1)) << 9) | (curr & 0xfffffdff));
21185 }
acamera_isp_ds1_dma_writer_frame_write_on_read(uintptr_t base)21186 static __inline uint8_t acamera_isp_ds1_dma_writer_frame_write_on_read(uintptr_t base) {
21187     return (uint8_t)((system_sw_read_32(base + 0x1c260L) & 0x200) >> 9);
21188 }
21189 // ------------------------------------------------------------------------------ //
21190 // Register: axi xact comp
21191 // ------------------------------------------------------------------------------ //
21192 
21193 // ------------------------------------------------------------------------------ //
21194 // 0 = dont wait for axi transaction completion at end of frame(just all transfers accepted). 1 = wait for all transactions completed
21195 // ------------------------------------------------------------------------------ //
21196 
21197 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_XACT_COMP_DEFAULT (0)
21198 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_XACT_COMP_DATASIZE (1)
21199 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_XACT_COMP_OFFSET (0x33d8)
21200 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_XACT_COMP_MASK (0x800)
21201 
21202 // args: data (1-bit)
acamera_isp_ds1_dma_writer_axi_xact_comp_write(uintptr_t base,uint8_t data)21203 static __inline void acamera_isp_ds1_dma_writer_axi_xact_comp_write(uintptr_t base, uint8_t data) {
21204     uint32_t curr = system_sw_read_32(base + 0x1c260L);
21205     system_sw_write_32(base + 0x1c260L, (((uint32_t) (data & 0x1)) << 11) | (curr & 0xfffff7ff));
21206 }
acamera_isp_ds1_dma_writer_axi_xact_comp_read(uintptr_t base)21207 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_xact_comp_read(uintptr_t base) {
21208     return (uint8_t)((system_sw_read_32(base + 0x1c260L) & 0x800) >> 11);
21209 }
21210 // ------------------------------------------------------------------------------ //
21211 // Register: active width
21212 // ------------------------------------------------------------------------------ //
21213 
21214 // ------------------------------------------------------------------------------ //
21215 // Active video width in pixels 128-8000
21216 // ------------------------------------------------------------------------------ //
21217 
21218 #define ACAMERA_ISP_DS1_DMA_WRITER_ACTIVE_WIDTH_DEFAULT (0x780)
21219 #define ACAMERA_ISP_DS1_DMA_WRITER_ACTIVE_WIDTH_DATASIZE (16)
21220 #define ACAMERA_ISP_DS1_DMA_WRITER_ACTIVE_WIDTH_OFFSET (0x33dc)
21221 #define ACAMERA_ISP_DS1_DMA_WRITER_ACTIVE_WIDTH_MASK (0xffff)
21222 
21223 // args: data (16-bit)
acamera_isp_ds1_dma_writer_active_width_write(uintptr_t base,uint16_t data)21224 static __inline void acamera_isp_ds1_dma_writer_active_width_write(uintptr_t base, uint16_t data) {
21225     uint32_t curr = system_sw_read_32(base + 0x1c264L);
21226     system_sw_write_32(base + 0x1c264L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
21227 }
acamera_isp_ds1_dma_writer_active_width_read(uintptr_t base)21228 static __inline uint16_t acamera_isp_ds1_dma_writer_active_width_read(uintptr_t base) {
21229     return (uint16_t)((system_sw_read_32(base + 0x1c264L) & 0xffff) >> 0);
21230 }
21231 // ------------------------------------------------------------------------------ //
21232 // Register: active height
21233 // ------------------------------------------------------------------------------ //
21234 
21235 // ------------------------------------------------------------------------------ //
21236 // Active video height in lines 128-8000
21237 // ------------------------------------------------------------------------------ //
21238 
21239 #define ACAMERA_ISP_DS1_DMA_WRITER_ACTIVE_HEIGHT_DEFAULT (0x438)
21240 #define ACAMERA_ISP_DS1_DMA_WRITER_ACTIVE_HEIGHT_DATASIZE (16)
21241 #define ACAMERA_ISP_DS1_DMA_WRITER_ACTIVE_HEIGHT_OFFSET (0x33dc)
21242 #define ACAMERA_ISP_DS1_DMA_WRITER_ACTIVE_HEIGHT_MASK (0xffff0000)
21243 
21244 // args: data (16-bit)
acamera_isp_ds1_dma_writer_active_height_write(uintptr_t base,uint16_t data)21245 static __inline void acamera_isp_ds1_dma_writer_active_height_write(uintptr_t base, uint16_t data) {
21246     uint32_t curr = system_sw_read_32(base + 0x1c264L);
21247     system_sw_write_32(base + 0x1c264L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
21248 }
acamera_isp_ds1_dma_writer_active_height_read(uintptr_t base)21249 static __inline uint16_t acamera_isp_ds1_dma_writer_active_height_read(uintptr_t base) {
21250     return (uint16_t)((system_sw_read_32(base + 0x1c264L) & 0xffff0000) >> 16);
21251 }
21252 // ------------------------------------------------------------------------------ //
21253 // Register: bank0_base
21254 // ------------------------------------------------------------------------------ //
21255 
21256 // ------------------------------------------------------------------------------ //
21257 // bank 0 base address for frame buffer, should be word-aligned
21258 // ------------------------------------------------------------------------------ //
21259 
21260 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK0_BASE_DEFAULT (0x0)
21261 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK0_BASE_DATASIZE (32)
21262 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK0_BASE_OFFSET (0x33e0)
21263 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK0_BASE_MASK (0xffffffff)
21264 
21265 // args: data (32-bit)
acamera_isp_ds1_dma_writer_bank0_base_write(uintptr_t base,uint32_t data)21266 static __inline void acamera_isp_ds1_dma_writer_bank0_base_write(uintptr_t base, uint32_t data) {
21267     system_sw_write_32(base + 0x1c268L, data);
21268 }
acamera_isp_ds1_dma_writer_bank0_base_read(uintptr_t base)21269 static __inline uint32_t acamera_isp_ds1_dma_writer_bank0_base_read(uintptr_t base) {
21270     return system_sw_read_32(base + 0x1c268L);
21271 }
21272 // ------------------------------------------------------------------------------ //
21273 // Register: bank1_base
21274 // ------------------------------------------------------------------------------ //
21275 
21276 // ------------------------------------------------------------------------------ //
21277 // bank 1 base address for frame buffer, should be word-aligned
21278 // ------------------------------------------------------------------------------ //
21279 
21280 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK1_BASE_DEFAULT (0x0)
21281 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK1_BASE_DATASIZE (32)
21282 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK1_BASE_OFFSET (0x33e4)
21283 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK1_BASE_MASK (0xffffffff)
21284 
21285 // args: data (32-bit)
acamera_isp_ds1_dma_writer_bank1_base_write(uintptr_t base,uint32_t data)21286 static __inline void acamera_isp_ds1_dma_writer_bank1_base_write(uintptr_t base, uint32_t data) {
21287     system_sw_write_32(base + 0x1c26cL, data);
21288 }
acamera_isp_ds1_dma_writer_bank1_base_read(uintptr_t base)21289 static __inline uint32_t acamera_isp_ds1_dma_writer_bank1_base_read(uintptr_t base) {
21290     return system_sw_read_32(base + 0x1c26cL);
21291 }
21292 // ------------------------------------------------------------------------------ //
21293 // Register: bank2_base
21294 // ------------------------------------------------------------------------------ //
21295 
21296 // ------------------------------------------------------------------------------ //
21297 // bank 2 base address for frame buffer, should be word-aligned
21298 // ------------------------------------------------------------------------------ //
21299 
21300 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK2_BASE_DEFAULT (0x0)
21301 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK2_BASE_DATASIZE (32)
21302 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK2_BASE_OFFSET (0x33e8)
21303 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK2_BASE_MASK (0xffffffff)
21304 
21305 // args: data (32-bit)
acamera_isp_ds1_dma_writer_bank2_base_write(uintptr_t base,uint32_t data)21306 static __inline void acamera_isp_ds1_dma_writer_bank2_base_write(uintptr_t base, uint32_t data) {
21307     system_sw_write_32(base + 0x1c270L, data);
21308 }
acamera_isp_ds1_dma_writer_bank2_base_read(uintptr_t base)21309 static __inline uint32_t acamera_isp_ds1_dma_writer_bank2_base_read(uintptr_t base) {
21310     return system_sw_read_32(base + 0x1c270L);
21311 }
21312 // ------------------------------------------------------------------------------ //
21313 // Register: bank3_base
21314 // ------------------------------------------------------------------------------ //
21315 
21316 // ------------------------------------------------------------------------------ //
21317 // bank 3 base address for frame buffer, should be word-aligned
21318 // ------------------------------------------------------------------------------ //
21319 
21320 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK3_BASE_DEFAULT (0x0)
21321 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK3_BASE_DATASIZE (32)
21322 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK3_BASE_OFFSET (0x33ec)
21323 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK3_BASE_MASK (0xffffffff)
21324 
21325 // args: data (32-bit)
acamera_isp_ds1_dma_writer_bank3_base_write(uintptr_t base,uint32_t data)21326 static __inline void acamera_isp_ds1_dma_writer_bank3_base_write(uintptr_t base, uint32_t data) {
21327     system_sw_write_32(base + 0x1c274L, data);
21328 }
acamera_isp_ds1_dma_writer_bank3_base_read(uintptr_t base)21329 static __inline uint32_t acamera_isp_ds1_dma_writer_bank3_base_read(uintptr_t base) {
21330     return system_sw_read_32(base + 0x1c274L);
21331 }
21332 // ------------------------------------------------------------------------------ //
21333 // Register: bank4_base
21334 // ------------------------------------------------------------------------------ //
21335 
21336 // ------------------------------------------------------------------------------ //
21337 // bank 4 base address for frame buffer, should be word-aligned
21338 // ------------------------------------------------------------------------------ //
21339 
21340 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK4_BASE_DEFAULT (0x0)
21341 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK4_BASE_DATASIZE (32)
21342 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK4_BASE_OFFSET (0x33f0)
21343 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK4_BASE_MASK (0xffffffff)
21344 
21345 // args: data (32-bit)
acamera_isp_ds1_dma_writer_bank4_base_write(uintptr_t base,uint32_t data)21346 static __inline void acamera_isp_ds1_dma_writer_bank4_base_write(uintptr_t base, uint32_t data) {
21347     system_sw_write_32(base + 0x1c278L, data);
21348 }
acamera_isp_ds1_dma_writer_bank4_base_read(uintptr_t base)21349 static __inline uint32_t acamera_isp_ds1_dma_writer_bank4_base_read(uintptr_t base) {
21350     return system_sw_read_32(base + 0x1c278L);
21351 }
21352 // ------------------------------------------------------------------------------ //
21353 // Register: max bank
21354 // ------------------------------------------------------------------------------ //
21355 
21356 // ------------------------------------------------------------------------------ //
21357 // highest bank*_base to use for frame writes before recycling to bank0_base, only 0 to 4 are valid
21358 // ------------------------------------------------------------------------------ //
21359 
21360 #define ACAMERA_ISP_DS1_DMA_WRITER_MAX_BANK_DEFAULT (0x0)
21361 #define ACAMERA_ISP_DS1_DMA_WRITER_MAX_BANK_DATASIZE (3)
21362 #define ACAMERA_ISP_DS1_DMA_WRITER_MAX_BANK_OFFSET (0x33f4)
21363 #define ACAMERA_ISP_DS1_DMA_WRITER_MAX_BANK_MASK (0x7)
21364 
21365 // args: data (3-bit)
acamera_isp_ds1_dma_writer_max_bank_write(uintptr_t base,uint8_t data)21366 static __inline void acamera_isp_ds1_dma_writer_max_bank_write(uintptr_t base, uint8_t data) {
21367     uint32_t curr = system_sw_read_32(base + 0x1c27cL);
21368     system_sw_write_32(base + 0x1c27cL, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
21369 }
acamera_isp_ds1_dma_writer_max_bank_read(uintptr_t base)21370 static __inline uint8_t acamera_isp_ds1_dma_writer_max_bank_read(uintptr_t base) {
21371     return (uint8_t)((system_sw_read_32(base + 0x1c27cL) & 0x7) >> 0);
21372 }
21373 // ------------------------------------------------------------------------------ //
21374 // Register: bank0 restart
21375 // ------------------------------------------------------------------------------ //
21376 
21377 // ------------------------------------------------------------------------------ //
21378 // 0 = normal operation, 1= restart bank counter to bank0 for next frame write
21379 // ------------------------------------------------------------------------------ //
21380 
21381 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK0_RESTART_DEFAULT (0)
21382 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK0_RESTART_DATASIZE (1)
21383 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK0_RESTART_OFFSET (0x33f4)
21384 #define ACAMERA_ISP_DS1_DMA_WRITER_BANK0_RESTART_MASK (0x8)
21385 
21386 // args: data (1-bit)
acamera_isp_ds1_dma_writer_bank0_restart_write(uintptr_t base,uint8_t data)21387 static __inline void acamera_isp_ds1_dma_writer_bank0_restart_write(uintptr_t base, uint8_t data) {
21388     uint32_t curr = system_sw_read_32(base + 0x1c27cL);
21389     system_sw_write_32(base + 0x1c27cL, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
21390 }
acamera_isp_ds1_dma_writer_bank0_restart_read(uintptr_t base)21391 static __inline uint8_t acamera_isp_ds1_dma_writer_bank0_restart_read(uintptr_t base) {
21392     return (uint8_t)((system_sw_read_32(base + 0x1c27cL) & 0x8) >> 3);
21393 }
21394 // ------------------------------------------------------------------------------ //
21395 // Register: Line_offset
21396 // ------------------------------------------------------------------------------ //
21397 
21398 // ------------------------------------------------------------------------------ //
21399 //
21400 //        Indicates the offset in bytes from the start of one line to the next line.
21401 //        This value should be equal to or larger than one line of image data and should be word-aligned
21402 //
21403 // ------------------------------------------------------------------------------ //
21404 
21405 #define ACAMERA_ISP_DS1_DMA_WRITER_LINE_OFFSET_DEFAULT (0x1000)
21406 #define ACAMERA_ISP_DS1_DMA_WRITER_LINE_OFFSET_DATASIZE (32)
21407 #define ACAMERA_ISP_DS1_DMA_WRITER_LINE_OFFSET_OFFSET (0x33f8)
21408 #define ACAMERA_ISP_DS1_DMA_WRITER_LINE_OFFSET_MASK (0xffffffff)
21409 
21410 // args: data (32-bit)
acamera_isp_ds1_dma_writer_line_offset_write(uintptr_t base,uint32_t data)21411 static __inline void acamera_isp_ds1_dma_writer_line_offset_write(uintptr_t base, uint32_t data) {
21412     system_sw_write_32(base + 0x1c280L, data);
21413 }
acamera_isp_ds1_dma_writer_line_offset_read(uintptr_t base)21414 static __inline uint32_t acamera_isp_ds1_dma_writer_line_offset_read(uintptr_t base) {
21415     return system_sw_read_32(base + 0x1c280L);
21416 }
21417 // ------------------------------------------------------------------------------ //
21418 // Register: wbank curr
21419 // ------------------------------------------------------------------------------ //
21420 
21421 // ------------------------------------------------------------------------------ //
21422 // write bank currently active. valid values =0-4. updated at start of frame write
21423 // ------------------------------------------------------------------------------ //
21424 
21425 #define ACAMERA_ISP_DS1_DMA_WRITER_WBANK_CURR_DEFAULT (0x0)
21426 #define ACAMERA_ISP_DS1_DMA_WRITER_WBANK_CURR_DATASIZE (3)
21427 #define ACAMERA_ISP_DS1_DMA_WRITER_WBANK_CURR_OFFSET (0x33fc)
21428 #define ACAMERA_ISP_DS1_DMA_WRITER_WBANK_CURR_MASK (0xe)
21429 
21430 // args: data (3-bit)
acamera_isp_ds1_dma_writer_wbank_curr_read(uintptr_t base)21431 static __inline uint8_t acamera_isp_ds1_dma_writer_wbank_curr_read(uintptr_t base) {
21432     return (uint8_t)((system_sw_read_32(base + 0x1c284L) & 0xe) >> 1);
21433 }
21434 // ------------------------------------------------------------------------------ //
21435 // Register: wbank active
21436 // ------------------------------------------------------------------------------ //
21437 
21438 // ------------------------------------------------------------------------------ //
21439 // 1 = wbank_curr is being written to. Goes high at start of writes, low at last write transfer/completion on axi.
21440 // ------------------------------------------------------------------------------ //
21441 
21442 #define ACAMERA_ISP_DS1_DMA_WRITER_WBANK_ACTIVE_DEFAULT (0x0)
21443 #define ACAMERA_ISP_DS1_DMA_WRITER_WBANK_ACTIVE_DATASIZE (1)
21444 #define ACAMERA_ISP_DS1_DMA_WRITER_WBANK_ACTIVE_OFFSET (0x33fc)
21445 #define ACAMERA_ISP_DS1_DMA_WRITER_WBANK_ACTIVE_MASK (0x1)
21446 
21447 // args: data (1-bit)
acamera_isp_ds1_dma_writer_wbank_active_read(uintptr_t base)21448 static __inline uint8_t acamera_isp_ds1_dma_writer_wbank_active_read(uintptr_t base) {
21449     return (uint8_t)((system_sw_read_32(base + 0x1c284L) & 0x1) >> 0);
21450 }
21451 // ------------------------------------------------------------------------------ //
21452 // Register: frame icount
21453 // ------------------------------------------------------------------------------ //
21454 
21455 // ------------------------------------------------------------------------------ //
21456 // count of incomming frames (starts) to vdma_writer on video input, non resetable, rolls over, updates at pixel 1 of new frame on video in
21457 // ------------------------------------------------------------------------------ //
21458 
21459 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_ICOUNT_DEFAULT (0x0)
21460 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_ICOUNT_DATASIZE (16)
21461 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_ICOUNT_OFFSET (0x3408)
21462 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_ICOUNT_MASK (0xffff)
21463 
21464 // args: data (16-bit)
acamera_isp_ds1_dma_writer_frame_icount_read(uintptr_t base)21465 static __inline uint16_t acamera_isp_ds1_dma_writer_frame_icount_read(uintptr_t base) {
21466     return (uint16_t)((system_sw_read_32(base + 0x1c290L) & 0xffff) >> 0);
21467 }
21468 // ------------------------------------------------------------------------------ //
21469 // Register: frame wcount
21470 // ------------------------------------------------------------------------------ //
21471 
21472 // ------------------------------------------------------------------------------ //
21473 // count of outgoing frame writes (starts) from vdma_writer sent to AXI output, non resetable, rolls over, updates at pixel 1 of new frame on video in
21474 // ------------------------------------------------------------------------------ //
21475 
21476 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_WCOUNT_DEFAULT (0x0)
21477 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_WCOUNT_DATASIZE (16)
21478 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_WCOUNT_OFFSET (0x3408)
21479 #define ACAMERA_ISP_DS1_DMA_WRITER_FRAME_WCOUNT_MASK (0xffff0000)
21480 
21481 // args: data (16-bit)
acamera_isp_ds1_dma_writer_frame_wcount_read(uintptr_t base)21482 static __inline uint16_t acamera_isp_ds1_dma_writer_frame_wcount_read(uintptr_t base) {
21483     return (uint16_t)((system_sw_read_32(base + 0x1c290L) & 0xffff0000) >> 16);
21484 }
21485 // ------------------------------------------------------------------------------ //
21486 // Register: axi_fail_bresp
21487 // ------------------------------------------------------------------------------ //
21488 
21489 // ------------------------------------------------------------------------------ //
21490 //  clearable alarm, high to indicate bad  bresp captured
21491 // ------------------------------------------------------------------------------ //
21492 
21493 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_BRESP_DEFAULT (0x0)
21494 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_BRESP_DATASIZE (1)
21495 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_BRESP_OFFSET (0x3410)
21496 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_BRESP_MASK (0x1)
21497 
21498 // args: data (1-bit)
acamera_isp_ds1_dma_writer_axi_fail_bresp_read(uintptr_t base)21499 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_fail_bresp_read(uintptr_t base) {
21500     return (uint8_t)((system_sw_read_32(base + 0x1c298L) & 0x1) >> 0);
21501 }
21502 // ------------------------------------------------------------------------------ //
21503 // Register: axi_fail_awmaxwait
21504 // ------------------------------------------------------------------------------ //
21505 
21506 // ------------------------------------------------------------------------------ //
21507 //  clearable alarm, high when awmaxwait_limit reached
21508 // ------------------------------------------------------------------------------ //
21509 
21510 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_AWMAXWAIT_DEFAULT (0x0)
21511 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_AWMAXWAIT_DATASIZE (1)
21512 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_AWMAXWAIT_OFFSET (0x3410)
21513 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_AWMAXWAIT_MASK (0x2)
21514 
21515 // args: data (1-bit)
acamera_isp_ds1_dma_writer_axi_fail_awmaxwait_read(uintptr_t base)21516 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_fail_awmaxwait_read(uintptr_t base) {
21517     return (uint8_t)((system_sw_read_32(base + 0x1c298L) & 0x2) >> 1);
21518 }
21519 // ------------------------------------------------------------------------------ //
21520 // Register: axi_fail_wmaxwait
21521 // ------------------------------------------------------------------------------ //
21522 
21523 // ------------------------------------------------------------------------------ //
21524 //  clearable alarm, high when wmaxwait_limit reached
21525 // ------------------------------------------------------------------------------ //
21526 
21527 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_WMAXWAIT_DEFAULT (0x0)
21528 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_WMAXWAIT_DATASIZE (1)
21529 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_WMAXWAIT_OFFSET (0x3410)
21530 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_WMAXWAIT_MASK (0x4)
21531 
21532 // args: data (1-bit)
acamera_isp_ds1_dma_writer_axi_fail_wmaxwait_read(uintptr_t base)21533 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_fail_wmaxwait_read(uintptr_t base) {
21534     return (uint8_t)((system_sw_read_32(base + 0x1c298L) & 0x4) >> 2);
21535 }
21536 // ------------------------------------------------------------------------------ //
21537 // Register: axi_fail_wxact_ostand
21538 // ------------------------------------------------------------------------------ //
21539 
21540 // ------------------------------------------------------------------------------ //
21541 //  clearable alarm, high when wxact_ostand_limit reached
21542 // ------------------------------------------------------------------------------ //
21543 
21544 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_DEFAULT (0x0)
21545 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_DATASIZE (1)
21546 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_OFFSET (0x3410)
21547 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_MASK (0x8)
21548 
21549 // args: data (1-bit)
acamera_isp_ds1_dma_writer_axi_fail_wxact_ostand_read(uintptr_t base)21550 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_fail_wxact_ostand_read(uintptr_t base) {
21551     return (uint8_t)((system_sw_read_32(base + 0x1c298L) & 0x8) >> 3);
21552 }
21553 // ------------------------------------------------------------------------------ //
21554 // Register: vi_fail_active_width
21555 // ------------------------------------------------------------------------------ //
21556 
21557 // ------------------------------------------------------------------------------ //
21558 //  clearable alarm, high to indicate mismatched active_width detected
21559 // ------------------------------------------------------------------------------ //
21560 
21561 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_DEFAULT (0x0)
21562 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_DATASIZE (1)
21563 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_OFFSET (0x3410)
21564 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_MASK (0x10)
21565 
21566 // args: data (1-bit)
acamera_isp_ds1_dma_writer_vi_fail_active_width_read(uintptr_t base)21567 static __inline uint8_t acamera_isp_ds1_dma_writer_vi_fail_active_width_read(uintptr_t base) {
21568     return (uint8_t)((system_sw_read_32(base + 0x1c298L) & 0x10) >> 4);
21569 }
21570 // ------------------------------------------------------------------------------ //
21571 // Register: vi_fail_active_height
21572 // ------------------------------------------------------------------------------ //
21573 
21574 // ------------------------------------------------------------------------------ //
21575 //  clearable alarm, high to indicate mismatched active_height detected ( also raised on missing field!)
21576 // ------------------------------------------------------------------------------ //
21577 
21578 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_DEFAULT (0x0)
21579 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_DATASIZE (1)
21580 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_OFFSET (0x3410)
21581 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_MASK (0x20)
21582 
21583 // args: data (1-bit)
acamera_isp_ds1_dma_writer_vi_fail_active_height_read(uintptr_t base)21584 static __inline uint8_t acamera_isp_ds1_dma_writer_vi_fail_active_height_read(uintptr_t base) {
21585     return (uint8_t)((system_sw_read_32(base + 0x1c298L) & 0x20) >> 5);
21586 }
21587 // ------------------------------------------------------------------------------ //
21588 // Register: vi_fail_interline_blanks
21589 // ------------------------------------------------------------------------------ //
21590 
21591 // ------------------------------------------------------------------------------ //
21592 //  clearable alarm, high to indicate interline blanking below min
21593 // ------------------------------------------------------------------------------ //
21594 
21595 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_DEFAULT (0x0)
21596 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_DATASIZE (1)
21597 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_OFFSET (0x3410)
21598 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_MASK (0x40)
21599 
21600 // args: data (1-bit)
acamera_isp_ds1_dma_writer_vi_fail_interline_blanks_read(uintptr_t base)21601 static __inline uint8_t acamera_isp_ds1_dma_writer_vi_fail_interline_blanks_read(uintptr_t base) {
21602     return (uint8_t)((system_sw_read_32(base + 0x1c298L) & 0x40) >> 6);
21603 }
21604 // ------------------------------------------------------------------------------ //
21605 // Register: vi_fail_interframe_blanks
21606 // ------------------------------------------------------------------------------ //
21607 
21608 // ------------------------------------------------------------------------------ //
21609 //  clearable alarm, high to indicate interframe blanking below min
21610 // ------------------------------------------------------------------------------ //
21611 
21612 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_DEFAULT (0x0)
21613 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_DATASIZE (1)
21614 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_OFFSET (0x3410)
21615 #define ACAMERA_ISP_DS1_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_MASK (0x80)
21616 
21617 // args: data (1-bit)
acamera_isp_ds1_dma_writer_vi_fail_interframe_blanks_read(uintptr_t base)21618 static __inline uint8_t acamera_isp_ds1_dma_writer_vi_fail_interframe_blanks_read(uintptr_t base) {
21619     return (uint8_t)((system_sw_read_32(base + 0x1c298L) & 0x80) >> 7);
21620 }
21621 // ------------------------------------------------------------------------------ //
21622 // Register: video_alarm
21623 // ------------------------------------------------------------------------------ //
21624 
21625 // ------------------------------------------------------------------------------ //
21626 //  active high, problem found on video port(s) ( active width/height or interline/frame blanks failure)
21627 // ------------------------------------------------------------------------------ //
21628 
21629 #define ACAMERA_ISP_DS1_DMA_WRITER_VIDEO_ALARM_DEFAULT (0x0)
21630 #define ACAMERA_ISP_DS1_DMA_WRITER_VIDEO_ALARM_DATASIZE (1)
21631 #define ACAMERA_ISP_DS1_DMA_WRITER_VIDEO_ALARM_OFFSET (0x3410)
21632 #define ACAMERA_ISP_DS1_DMA_WRITER_VIDEO_ALARM_MASK (0x100)
21633 
21634 // args: data (1-bit)
acamera_isp_ds1_dma_writer_video_alarm_read(uintptr_t base)21635 static __inline uint8_t acamera_isp_ds1_dma_writer_video_alarm_read(uintptr_t base) {
21636     return (uint8_t)((system_sw_read_32(base + 0x1c298L) & 0x100) >> 8);
21637 }
21638 // ------------------------------------------------------------------------------ //
21639 // Register: blk_status
21640 // ------------------------------------------------------------------------------ //
21641 
21642 // ------------------------------------------------------------------------------ //
21643 //
21644 //        block status output (reserved)
21645 //                          -- blk_status(0) = wfifo_fail_full
21646 //                          -- blk_status(1) = wfifo_fail_empty
21647 //                          -- blk_status(4) = pack_fail_overflow
21648 //                          -- blk_status(24) = intw_fail_user_intfc_sig
21649 //                          -- blk_status(others) =  zero
21650 //
21651 // ------------------------------------------------------------------------------ //
21652 
21653 #define ACAMERA_ISP_DS1_DMA_WRITER_BLK_STATUS_DEFAULT (0x0)
21654 #define ACAMERA_ISP_DS1_DMA_WRITER_BLK_STATUS_DATASIZE (32)
21655 #define ACAMERA_ISP_DS1_DMA_WRITER_BLK_STATUS_OFFSET (0x3414)
21656 #define ACAMERA_ISP_DS1_DMA_WRITER_BLK_STATUS_MASK (0xffffffff)
21657 
21658 // args: data (32-bit)
acamera_isp_ds1_dma_writer_blk_status_read(uintptr_t base)21659 static __inline uint32_t acamera_isp_ds1_dma_writer_blk_status_read(uintptr_t base) {
21660     return system_sw_read_32(base + 0x1c29cL);
21661 }
21662 // ------------------------------------------------------------------------------ //
21663 // Register: lines_wrapped
21664 // ------------------------------------------------------------------------------ //
21665 
21666 // ------------------------------------------------------------------------------ //
21667 //
21668 //        Number of lines to write from base address before wrapping back to base address. 0 = no wrapping, >0 = last line written before wrapping
21669 //
21670 // ------------------------------------------------------------------------------ //
21671 
21672 #define ACAMERA_ISP_DS1_DMA_WRITER_LINES_WRAPPED_DEFAULT (0x0000)
21673 #define ACAMERA_ISP_DS1_DMA_WRITER_LINES_WRAPPED_DATASIZE (16)
21674 #define ACAMERA_ISP_DS1_DMA_WRITER_LINES_WRAPPED_OFFSET (0x3418)
21675 #define ACAMERA_ISP_DS1_DMA_WRITER_LINES_WRAPPED_MASK (0xffff)
21676 
21677 // args: data (16-bit)
acamera_isp_ds1_dma_writer_lines_wrapped_write(uintptr_t base,uint16_t data)21678 static __inline void acamera_isp_ds1_dma_writer_lines_wrapped_write(uintptr_t base, uint16_t data) {
21679     uint32_t curr = system_sw_read_32(base + 0x1c2a0L);
21680     system_sw_write_32(base + 0x1c2a0L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
21681 }
acamera_isp_ds1_dma_writer_lines_wrapped_read(uintptr_t base)21682 static __inline uint16_t acamera_isp_ds1_dma_writer_lines_wrapped_read(uintptr_t base) {
21683     return (uint16_t)((system_sw_read_32(base + 0x1c2a0L) & 0xffff) >> 0);
21684 }
21685 // ------------------------------------------------------------------------------ //
21686 // Register: linetick_first
21687 // ------------------------------------------------------------------------------ //
21688 
21689 // ------------------------------------------------------------------------------ //
21690 //
21691 //        Line number of first linetick. 0  = no linetick, >0 = line number to generate linetick
21692 //
21693 // ------------------------------------------------------------------------------ //
21694 
21695 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_FIRST_DEFAULT (0x0000)
21696 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_FIRST_DATASIZE (16)
21697 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_FIRST_OFFSET (0x341c)
21698 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_FIRST_MASK (0xffff)
21699 
21700 // args: data (16-bit)
acamera_isp_ds1_dma_writer_linetick_first_write(uintptr_t base,uint16_t data)21701 static __inline void acamera_isp_ds1_dma_writer_linetick_first_write(uintptr_t base, uint16_t data) {
21702     uint32_t curr = system_sw_read_32(base + 0x1c2a4L);
21703     system_sw_write_32(base + 0x1c2a4L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
21704 }
acamera_isp_ds1_dma_writer_linetick_first_read(uintptr_t base)21705 static __inline uint16_t acamera_isp_ds1_dma_writer_linetick_first_read(uintptr_t base) {
21706     return (uint16_t)((system_sw_read_32(base + 0x1c2a4L) & 0xffff) >> 0);
21707 }
21708 // ------------------------------------------------------------------------------ //
21709 // Register: linetick_repeat
21710 // ------------------------------------------------------------------------------ //
21711 
21712 // ------------------------------------------------------------------------------ //
21713 //
21714 //        Line repeat interval of linetick. 0 = no repeat, >0 = repeat interval in lines
21715 //
21716 // ------------------------------------------------------------------------------ //
21717 
21718 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_REPEAT_DEFAULT (0x0000)
21719 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_REPEAT_DATASIZE (16)
21720 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_REPEAT_OFFSET (0x3420)
21721 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_REPEAT_MASK (0xffff)
21722 
21723 // args: data (16-bit)
acamera_isp_ds1_dma_writer_linetick_repeat_write(uintptr_t base,uint16_t data)21724 static __inline void acamera_isp_ds1_dma_writer_linetick_repeat_write(uintptr_t base, uint16_t data) {
21725     uint32_t curr = system_sw_read_32(base + 0x1c2a8L);
21726     system_sw_write_32(base + 0x1c2a8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
21727 }
acamera_isp_ds1_dma_writer_linetick_repeat_read(uintptr_t base)21728 static __inline uint16_t acamera_isp_ds1_dma_writer_linetick_repeat_read(uintptr_t base) {
21729     return (uint16_t)((system_sw_read_32(base + 0x1c2a8L) & 0xffff) >> 0);
21730 }
21731 // ------------------------------------------------------------------------------ //
21732 // Register: linetick_eol
21733 // ------------------------------------------------------------------------------ //
21734 
21735 // ------------------------------------------------------------------------------ //
21736 // Linetick start/end of line control. 0 = use start of line, 1 = use end of line to generate linetick
21737 // ------------------------------------------------------------------------------ //
21738 
21739 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_EOL_DEFAULT (0)
21740 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_EOL_DATASIZE (1)
21741 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_EOL_OFFSET (0x3424)
21742 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_EOL_MASK (0x1)
21743 
21744 // args: data (1-bit)
acamera_isp_ds1_dma_writer_linetick_eol_write(uintptr_t base,uint8_t data)21745 static __inline void acamera_isp_ds1_dma_writer_linetick_eol_write(uintptr_t base, uint8_t data) {
21746     uint32_t curr = system_sw_read_32(base + 0x1c2acL);
21747     system_sw_write_32(base + 0x1c2acL, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
21748 }
acamera_isp_ds1_dma_writer_linetick_eol_read(uintptr_t base)21749 static __inline uint8_t acamera_isp_ds1_dma_writer_linetick_eol_read(uintptr_t base) {
21750     return (uint8_t)((system_sw_read_32(base + 0x1c2acL) & 0x1) >> 0);
21751 }
21752 // ------------------------------------------------------------------------------ //
21753 // Register: linetick_delay
21754 // ------------------------------------------------------------------------------ //
21755 
21756 // ------------------------------------------------------------------------------ //
21757 //
21758 //        Linetick delay in vcke cycles to add to min 3 cycle latency from acl_vi. 0-65535.
21759 //        Must be less than next linetick generation time or count will not mature and no linetick is not produced.
21760 //          --NOTE: linetick delay  can run past end of frame/field and also into next frame!
21761 //          --      Take care maturity time is less than next configured linetick generation postion!
21762 //          --      Take care when changing config between frame too!
21763 //
21764 // ------------------------------------------------------------------------------ //
21765 
21766 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_DELAY_DEFAULT (0x0000)
21767 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_DELAY_DATASIZE (16)
21768 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_DELAY_OFFSET (0x3424)
21769 #define ACAMERA_ISP_DS1_DMA_WRITER_LINETICK_DELAY_MASK (0xffff0000)
21770 
21771 // args: data (16-bit)
acamera_isp_ds1_dma_writer_linetick_delay_write(uintptr_t base,uint16_t data)21772 static __inline void acamera_isp_ds1_dma_writer_linetick_delay_write(uintptr_t base, uint16_t data) {
21773     uint32_t curr = system_sw_read_32(base + 0x1c2acL);
21774     system_sw_write_32(base + 0x1c2acL, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
21775 }
acamera_isp_ds1_dma_writer_linetick_delay_read(uintptr_t base)21776 static __inline uint16_t acamera_isp_ds1_dma_writer_linetick_delay_read(uintptr_t base) {
21777     return (uint16_t)((system_sw_read_32(base + 0x1c2acL) & 0xffff0000) >> 16);
21778 }
21779 // ------------------------------------------------------------------------------ //
21780 // Register: pagewarm_on
21781 // ------------------------------------------------------------------------------ //
21782 
21783 // ------------------------------------------------------------------------------ //
21784 //
21785 //        active high, enables posting of pagewarm dummy writes to SMMU for early page translation of upcomming 4K pages.
21786 //        Recommend SMMU has min 8 page cache to avoid translation miss. Pagewarms are posted as dummy writes with wstrb= 0
21787 //
21788 // ------------------------------------------------------------------------------ //
21789 
21790 #define ACAMERA_ISP_DS1_DMA_WRITER_PAGEWARM_ON_DEFAULT (0)
21791 #define ACAMERA_ISP_DS1_DMA_WRITER_PAGEWARM_ON_DATASIZE (1)
21792 #define ACAMERA_ISP_DS1_DMA_WRITER_PAGEWARM_ON_OFFSET (0x3428)
21793 #define ACAMERA_ISP_DS1_DMA_WRITER_PAGEWARM_ON_MASK (0x1)
21794 
21795 // args: data (1-bit)
acamera_isp_ds1_dma_writer_pagewarm_on_write(uintptr_t base,uint8_t data)21796 static __inline void acamera_isp_ds1_dma_writer_pagewarm_on_write(uintptr_t base, uint8_t data) {
21797     uint32_t curr = system_sw_read_32(base + 0x1c2b0L);
21798     system_sw_write_32(base + 0x1c2b0L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
21799 }
acamera_isp_ds1_dma_writer_pagewarm_on_read(uintptr_t base)21800 static __inline uint8_t acamera_isp_ds1_dma_writer_pagewarm_on_read(uintptr_t base) {
21801     return (uint8_t)((system_sw_read_32(base + 0x1c2b0L) & 0x1) >> 0);
21802 }
21803 // ------------------------------------------------------------------------------ //
21804 // Register: axi_id_multi
21805 // ------------------------------------------------------------------------------ //
21806 
21807 // ------------------------------------------------------------------------------ //
21808 //
21809 //        0= static value (axi_id_value) for awid/wid, 1 = incrementing value per transaction for awid/wid wrapping to 0 after axi_id_value
21810 //
21811 // ------------------------------------------------------------------------------ //
21812 
21813 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_ID_MULTI_DEFAULT (0)
21814 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_ID_MULTI_DATASIZE (1)
21815 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_ID_MULTI_OFFSET (0x3428)
21816 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_ID_MULTI_MASK (0x2)
21817 
21818 // args: data (1-bit)
acamera_isp_ds1_dma_writer_axi_id_multi_write(uintptr_t base,uint8_t data)21819 static __inline void acamera_isp_ds1_dma_writer_axi_id_multi_write(uintptr_t base, uint8_t data) {
21820     uint32_t curr = system_sw_read_32(base + 0x1c2b0L);
21821     system_sw_write_32(base + 0x1c2b0L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
21822 }
acamera_isp_ds1_dma_writer_axi_id_multi_read(uintptr_t base)21823 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_id_multi_read(uintptr_t base) {
21824     return (uint8_t)((system_sw_read_32(base + 0x1c2b0L) & 0x2) >> 1);
21825 }
21826 // ------------------------------------------------------------------------------ //
21827 // Register: axi_burstsplit
21828 // ------------------------------------------------------------------------------ //
21829 
21830 // ------------------------------------------------------------------------------ //
21831 //
21832 //        memory boundary that splits bursts: 0=2Transfers,1=4Transfers,2=8Transfers,3=16Transfers. (for axi_data_w=128,  16transfers=256Bytes). Good default = 11
21833 //
21834 // ------------------------------------------------------------------------------ //
21835 
21836 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_BURSTSPLIT_DEFAULT (0x3)
21837 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_BURSTSPLIT_DATASIZE (2)
21838 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_BURSTSPLIT_OFFSET (0x3428)
21839 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_BURSTSPLIT_MASK (0xc)
21840 
21841 // args: data (2-bit)
acamera_isp_ds1_dma_writer_axi_burstsplit_write(uintptr_t base,uint8_t data)21842 static __inline void acamera_isp_ds1_dma_writer_axi_burstsplit_write(uintptr_t base, uint8_t data) {
21843     uint32_t curr = system_sw_read_32(base + 0x1c2b0L);
21844     system_sw_write_32(base + 0x1c2b0L, (((uint32_t) (data & 0x3)) << 2) | (curr & 0xfffffff3));
21845 }
acamera_isp_ds1_dma_writer_axi_burstsplit_read(uintptr_t base)21846 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_burstsplit_read(uintptr_t base) {
21847     return (uint8_t)((system_sw_read_32(base + 0x1c2b0L) & 0xc) >> 2);
21848 }
21849 // ------------------------------------------------------------------------------ //
21850 // Register: axi_cache_value
21851 // ------------------------------------------------------------------------------ //
21852 
21853 // ------------------------------------------------------------------------------ //
21854 //
21855 //        value to send for awcache. Good default = 1111
21856 //
21857 // ------------------------------------------------------------------------------ //
21858 
21859 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_CACHE_VALUE_DEFAULT (0xf)
21860 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_CACHE_VALUE_DATASIZE (4)
21861 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_CACHE_VALUE_OFFSET (0x3428)
21862 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_CACHE_VALUE_MASK (0xf00)
21863 
21864 // args: data (4-bit)
acamera_isp_ds1_dma_writer_axi_cache_value_write(uintptr_t base,uint8_t data)21865 static __inline void acamera_isp_ds1_dma_writer_axi_cache_value_write(uintptr_t base, uint8_t data) {
21866     uint32_t curr = system_sw_read_32(base + 0x1c2b0L);
21867     system_sw_write_32(base + 0x1c2b0L, (((uint32_t) (data & 0xf)) << 8) | (curr & 0xfffff0ff));
21868 }
acamera_isp_ds1_dma_writer_axi_cache_value_read(uintptr_t base)21869 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_cache_value_read(uintptr_t base) {
21870     return (uint8_t)((system_sw_read_32(base + 0x1c2b0L) & 0xf00) >> 8);
21871 }
21872 // ------------------------------------------------------------------------------ //
21873 // Register: axi_maxostand
21874 // ------------------------------------------------------------------------------ //
21875 
21876 // ------------------------------------------------------------------------------ //
21877 //
21878 //        max outstanding write transactions (bursts) allowed. zero means no maximum(uses internal limit of 2048).
21879 //
21880 // ------------------------------------------------------------------------------ //
21881 
21882 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_MAXOSTAND_DEFAULT (0x00)
21883 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_MAXOSTAND_DATASIZE (8)
21884 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_MAXOSTAND_OFFSET (0x3428)
21885 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_MAXOSTAND_MASK (0xff0000)
21886 
21887 // args: data (8-bit)
acamera_isp_ds1_dma_writer_axi_maxostand_write(uintptr_t base,uint8_t data)21888 static __inline void acamera_isp_ds1_dma_writer_axi_maxostand_write(uintptr_t base, uint8_t data) {
21889     uint32_t curr = system_sw_read_32(base + 0x1c2b0L);
21890     system_sw_write_32(base + 0x1c2b0L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
21891 }
acamera_isp_ds1_dma_writer_axi_maxostand_read(uintptr_t base)21892 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_maxostand_read(uintptr_t base) {
21893     return (uint8_t)((system_sw_read_32(base + 0x1c2b0L) & 0xff0000) >> 16);
21894 }
21895 // ------------------------------------------------------------------------------ //
21896 // Register: axi_max_awlen
21897 // ------------------------------------------------------------------------------ //
21898 
21899 // ------------------------------------------------------------------------------ //
21900 //
21901 //        max value to use for awlen (axi burst length). 0000= max 1 transfer/burst , upto 1111= max 16 transfers/burst
21902 //
21903 // ------------------------------------------------------------------------------ //
21904 
21905 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_MAX_AWLEN_DEFAULT (0xf)
21906 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_MAX_AWLEN_DATASIZE (4)
21907 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_MAX_AWLEN_OFFSET (0x3428)
21908 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_MAX_AWLEN_MASK (0xf000000)
21909 
21910 // args: data (4-bit)
acamera_isp_ds1_dma_writer_axi_max_awlen_write(uintptr_t base,uint8_t data)21911 static __inline void acamera_isp_ds1_dma_writer_axi_max_awlen_write(uintptr_t base, uint8_t data) {
21912     uint32_t curr = system_sw_read_32(base + 0x1c2b0L);
21913     system_sw_write_32(base + 0x1c2b0L, (((uint32_t) (data & 0xf)) << 24) | (curr & 0xf0ffffff));
21914 }
acamera_isp_ds1_dma_writer_axi_max_awlen_read(uintptr_t base)21915 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_max_awlen_read(uintptr_t base) {
21916     return (uint8_t)((system_sw_read_32(base + 0x1c2b0L) & 0xf000000) >> 24);
21917 }
21918 // ------------------------------------------------------------------------------ //
21919 // Register: axi_id_value
21920 // ------------------------------------------------------------------------------ //
21921 
21922 // ------------------------------------------------------------------------------ //
21923 //
21924 //        value to send for awid, wid and expected on bid. Good default = 0000
21925 //
21926 // ------------------------------------------------------------------------------ //
21927 
21928 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_ID_VALUE_DEFAULT (0x0)
21929 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_ID_VALUE_DATASIZE (4)
21930 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_ID_VALUE_OFFSET (0x342c)
21931 #define ACAMERA_ISP_DS1_DMA_WRITER_AXI_ID_VALUE_MASK (0xf)
21932 
21933 // args: data (4-bit)
acamera_isp_ds1_dma_writer_axi_id_value_write(uintptr_t base,uint8_t data)21934 static __inline void acamera_isp_ds1_dma_writer_axi_id_value_write(uintptr_t base, uint8_t data) {
21935     uint32_t curr = system_sw_read_32(base + 0x1c2b4L);
21936     system_sw_write_32(base + 0x1c2b4L, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
21937 }
acamera_isp_ds1_dma_writer_axi_id_value_read(uintptr_t base)21938 static __inline uint8_t acamera_isp_ds1_dma_writer_axi_id_value_read(uintptr_t base) {
21939     return (uint8_t)((system_sw_read_32(base + 0x1c2b4L) & 0xf) >> 0);
21940 }
21941 // ------------------------------------------------------------------------------ //
21942 // Group: ds uv dma writer
21943 // ------------------------------------------------------------------------------ //
21944 
21945 // ------------------------------------------------------------------------------ //
21946 // DMA writer controls
21947 // ------------------------------------------------------------------------------ //
21948 
21949 // ------------------------------------------------------------------------------ //
21950 // Register: Format
21951 // ------------------------------------------------------------------------------ //
21952 
21953 // ------------------------------------------------------------------------------ //
21954 // Format
21955 // ------------------------------------------------------------------------------ //
21956 
21957 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FORMAT_DEFAULT (0x0)
21958 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FORMAT_DATASIZE (8)
21959 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FORMAT_OFFSET (0x3430)
21960 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FORMAT_MASK (0xff)
21961 
21962 // args: data (8-bit)
acamera_isp_ds1_uv_dma_writer_format_write(uintptr_t base,uint8_t data)21963 static __inline void acamera_isp_ds1_uv_dma_writer_format_write(uintptr_t base, uint8_t data) {
21964     uint32_t curr = system_sw_read_32(base + 0x1c2b8L);
21965     system_sw_write_32(base + 0x1c2b8L, (((uint32_t) (data & 0xff)) << 0) | (curr & 0xffffff00));
21966 }
acamera_isp_ds1_uv_dma_writer_format_read(uintptr_t base)21967 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_format_read(uintptr_t base) {
21968     return (uint8_t)((system_sw_read_32(base + 0x1c2b8L) & 0xff) >> 0);
21969 }
21970 // ------------------------------------------------------------------------------ //
21971 // Register: Base mode
21972 // ------------------------------------------------------------------------------ //
21973 
21974 // ------------------------------------------------------------------------------ //
21975 // Base DMA packing mode for RGB/RAW/YUV etc (see ISP guide)
21976 // ------------------------------------------------------------------------------ //
21977 
21978 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BASE_MODE_DEFAULT (0x0)
21979 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BASE_MODE_DATASIZE (5)
21980 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BASE_MODE_OFFSET (0x3430)
21981 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BASE_MODE_MASK (0x1f)
21982 
21983 // args: data (5-bit)
acamera_isp_ds1_uv_dma_writer_base_mode_write(uintptr_t base,uint8_t data)21984 static __inline void acamera_isp_ds1_uv_dma_writer_base_mode_write(uintptr_t base, uint8_t data) {
21985     uint32_t curr = system_sw_read_32(base + 0x1c2b8L);
21986     system_sw_write_32(base + 0x1c2b8L, (((uint32_t) (data & 0x1f)) << 0) | (curr & 0xffffffe0));
21987 }
acamera_isp_ds1_uv_dma_writer_base_mode_read(uintptr_t base)21988 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_base_mode_read(uintptr_t base) {
21989     return (uint8_t)((system_sw_read_32(base + 0x1c2b8L) & 0x1f) >> 0);
21990 }
21991 // ------------------------------------------------------------------------------ //
21992 // Register: Plane select
21993 // ------------------------------------------------------------------------------ //
21994 
21995 // ------------------------------------------------------------------------------ //
21996 // Plane select for planar base modes.  Only used if planar outputs required.  Not used.  Should be set to 0
21997 // ------------------------------------------------------------------------------ //
21998 
21999 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_PLANE_SELECT_DEFAULT (0x0)
22000 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_PLANE_SELECT_DATASIZE (2)
22001 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_PLANE_SELECT_OFFSET (0x3430)
22002 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_PLANE_SELECT_MASK (0xc0)
22003 
22004 // args: data (2-bit)
acamera_isp_ds1_uv_dma_writer_plane_select_write(uintptr_t base,uint8_t data)22005 static __inline void acamera_isp_ds1_uv_dma_writer_plane_select_write(uintptr_t base, uint8_t data) {
22006     uint32_t curr = system_sw_read_32(base + 0x1c2b8L);
22007     system_sw_write_32(base + 0x1c2b8L, (((uint32_t) (data & 0x3)) << 6) | (curr & 0xffffff3f));
22008 }
acamera_isp_ds1_uv_dma_writer_plane_select_read(uintptr_t base)22009 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_plane_select_read(uintptr_t base) {
22010     return (uint8_t)((system_sw_read_32(base + 0x1c2b8L) & 0xc0) >> 6);
22011 }
22012 // ------------------------------------------------------------------------------ //
22013 // Register: single frame
22014 // ------------------------------------------------------------------------------ //
22015 
22016 // ------------------------------------------------------------------------------ //
22017 // 0 = All frames are written(after frame_write_on= 1), 1= only 1st frame written ( after frame_write_on =1)
22018 // ------------------------------------------------------------------------------ //
22019 
22020 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_SINGLE_FRAME_DEFAULT (0)
22021 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_SINGLE_FRAME_DATASIZE (1)
22022 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_SINGLE_FRAME_OFFSET (0x3430)
22023 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_SINGLE_FRAME_MASK (0x100)
22024 
22025 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_single_frame_write(uintptr_t base,uint8_t data)22026 static __inline void acamera_isp_ds1_uv_dma_writer_single_frame_write(uintptr_t base, uint8_t data) {
22027     uint32_t curr = system_sw_read_32(base + 0x1c2b8L);
22028     system_sw_write_32(base + 0x1c2b8L, (((uint32_t) (data & 0x1)) << 8) | (curr & 0xfffffeff));
22029 }
acamera_isp_ds1_uv_dma_writer_single_frame_read(uintptr_t base)22030 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_single_frame_read(uintptr_t base) {
22031     return (uint8_t)((system_sw_read_32(base + 0x1c2b8L) & 0x100) >> 8);
22032 }
22033 // ------------------------------------------------------------------------------ //
22034 // Register: frame write on
22035 // ------------------------------------------------------------------------------ //
22036 
22037 // ------------------------------------------------------------------------------ //
22038 //
22039 //        0 = no frames written(when switched from 1, current frame completes writing before stopping),
22040 //        1= write frame(s) (write single or continous frame(s) )
22041 //
22042 // ------------------------------------------------------------------------------ //
22043 
22044 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_WRITE_ON_DEFAULT (0)
22045 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_WRITE_ON_DATASIZE (1)
22046 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_WRITE_ON_OFFSET (0x3430)
22047 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_WRITE_ON_MASK (0x200)
22048 
22049 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_frame_write_on_write(uintptr_t base,uint8_t data)22050 static __inline void acamera_isp_ds1_uv_dma_writer_frame_write_on_write(uintptr_t base, uint8_t data) {
22051     uint32_t curr = system_sw_read_32(base + 0x1c2b8L);
22052     system_sw_write_32(base + 0x1c2b8L, (((uint32_t) (data & 0x1)) << 9) | (curr & 0xfffffdff));
22053 }
acamera_isp_ds1_uv_dma_writer_frame_write_on_read(uintptr_t base)22054 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_frame_write_on_read(uintptr_t base) {
22055     return (uint8_t)((system_sw_read_32(base + 0x1c2b8L) & 0x200) >> 9);
22056 }
22057 // ------------------------------------------------------------------------------ //
22058 // Register: axi xact comp
22059 // ------------------------------------------------------------------------------ //
22060 
22061 // ------------------------------------------------------------------------------ //
22062 // 0 = dont wait for axi transaction completion at end of frame(just all transfers accepted). 1 = wait for all transactions completed
22063 // ------------------------------------------------------------------------------ //
22064 
22065 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_XACT_COMP_DEFAULT (0)
22066 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_XACT_COMP_DATASIZE (1)
22067 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_XACT_COMP_OFFSET (0x3430)
22068 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_XACT_COMP_MASK (0x800)
22069 
22070 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_axi_xact_comp_write(uintptr_t base,uint8_t data)22071 static __inline void acamera_isp_ds1_uv_dma_writer_axi_xact_comp_write(uintptr_t base, uint8_t data) {
22072     uint32_t curr = system_sw_read_32(base + 0x1c2b8L);
22073     system_sw_write_32(base + 0x1c2b8L, (((uint32_t) (data & 0x1)) << 11) | (curr & 0xfffff7ff));
22074 }
acamera_isp_ds1_uv_dma_writer_axi_xact_comp_read(uintptr_t base)22075 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_xact_comp_read(uintptr_t base) {
22076     return (uint8_t)((system_sw_read_32(base + 0x1c2b8L) & 0x800) >> 11);
22077 }
22078 // ------------------------------------------------------------------------------ //
22079 // Register: active width
22080 // ------------------------------------------------------------------------------ //
22081 
22082 // ------------------------------------------------------------------------------ //
22083 // Active video width in pixels 128-8000
22084 // ------------------------------------------------------------------------------ //
22085 
22086 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_ACTIVE_WIDTH_DEFAULT (0x780)
22087 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_ACTIVE_WIDTH_DATASIZE (16)
22088 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_ACTIVE_WIDTH_OFFSET (0x3434)
22089 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_ACTIVE_WIDTH_MASK (0xffff)
22090 
22091 // args: data (16-bit)
acamera_isp_ds1_uv_dma_writer_active_width_write(uintptr_t base,uint16_t data)22092 static __inline void acamera_isp_ds1_uv_dma_writer_active_width_write(uintptr_t base, uint16_t data) {
22093     uint32_t curr = system_sw_read_32(base + 0x1c2bcL);
22094     system_sw_write_32(base + 0x1c2bcL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
22095 }
acamera_isp_ds1_uv_dma_writer_active_width_read(uintptr_t base)22096 static __inline uint16_t acamera_isp_ds1_uv_dma_writer_active_width_read(uintptr_t base) {
22097     return (uint16_t)((system_sw_read_32(base + 0x1c2bcL) & 0xffff) >> 0);
22098 }
22099 // ------------------------------------------------------------------------------ //
22100 // Register: active height
22101 // ------------------------------------------------------------------------------ //
22102 
22103 // ------------------------------------------------------------------------------ //
22104 // Active video height in lines 128-8000
22105 // ------------------------------------------------------------------------------ //
22106 
22107 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_ACTIVE_HEIGHT_DEFAULT (0x438)
22108 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_ACTIVE_HEIGHT_DATASIZE (16)
22109 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_ACTIVE_HEIGHT_OFFSET (0x3434)
22110 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_ACTIVE_HEIGHT_MASK (0xffff0000)
22111 
22112 // args: data (16-bit)
acamera_isp_ds1_uv_dma_writer_active_height_write(uintptr_t base,uint16_t data)22113 static __inline void acamera_isp_ds1_uv_dma_writer_active_height_write(uintptr_t base, uint16_t data) {
22114     uint32_t curr = system_sw_read_32(base + 0x1c2bcL);
22115     system_sw_write_32(base + 0x1c2bcL, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
22116 }
acamera_isp_ds1_uv_dma_writer_active_height_read(uintptr_t base)22117 static __inline uint16_t acamera_isp_ds1_uv_dma_writer_active_height_read(uintptr_t base) {
22118     return (uint16_t)((system_sw_read_32(base + 0x1c2bcL) & 0xffff0000) >> 16);
22119 }
22120 // ------------------------------------------------------------------------------ //
22121 // Register: bank0_base
22122 // ------------------------------------------------------------------------------ //
22123 
22124 // ------------------------------------------------------------------------------ //
22125 // bank 0 base address for frame buffer, should be word-aligned
22126 // ------------------------------------------------------------------------------ //
22127 
22128 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK0_BASE_DEFAULT (0x0)
22129 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK0_BASE_DATASIZE (32)
22130 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK0_BASE_OFFSET (0x3438)
22131 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK0_BASE_MASK (0xffffffff)
22132 
22133 // args: data (32-bit)
acamera_isp_ds1_uv_dma_writer_bank0_base_write(uintptr_t base,uint32_t data)22134 static __inline void acamera_isp_ds1_uv_dma_writer_bank0_base_write(uintptr_t base, uint32_t data) {
22135     system_sw_write_32(base + 0x1c2c0L, data);
22136 }
acamera_isp_ds1_uv_dma_writer_bank0_base_read(uintptr_t base)22137 static __inline uint32_t acamera_isp_ds1_uv_dma_writer_bank0_base_read(uintptr_t base) {
22138     return system_sw_read_32(base + 0x1c2c0L);
22139 }
22140 // ------------------------------------------------------------------------------ //
22141 // Register: bank1_base
22142 // ------------------------------------------------------------------------------ //
22143 
22144 // ------------------------------------------------------------------------------ //
22145 // bank 1 base address for frame buffer, should be word-aligned
22146 // ------------------------------------------------------------------------------ //
22147 
22148 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK1_BASE_DEFAULT (0x0)
22149 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK1_BASE_DATASIZE (32)
22150 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK1_BASE_OFFSET (0x343c)
22151 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK1_BASE_MASK (0xffffffff)
22152 
22153 // args: data (32-bit)
acamera_isp_ds1_uv_dma_writer_bank1_base_write(uintptr_t base,uint32_t data)22154 static __inline void acamera_isp_ds1_uv_dma_writer_bank1_base_write(uintptr_t base, uint32_t data) {
22155     system_sw_write_32(base + 0x1c2c4L, data);
22156 }
acamera_isp_ds1_uv_dma_writer_bank1_base_read(uintptr_t base)22157 static __inline uint32_t acamera_isp_ds1_uv_dma_writer_bank1_base_read(uintptr_t base) {
22158     return system_sw_read_32(base + 0x1c2c4L);
22159 }
22160 // ------------------------------------------------------------------------------ //
22161 // Register: bank2_base
22162 // ------------------------------------------------------------------------------ //
22163 
22164 // ------------------------------------------------------------------------------ //
22165 // bank 2 base address for frame buffer, should be word-aligned
22166 // ------------------------------------------------------------------------------ //
22167 
22168 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK2_BASE_DEFAULT (0x0)
22169 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK2_BASE_DATASIZE (32)
22170 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK2_BASE_OFFSET (0x3440)
22171 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK2_BASE_MASK (0xffffffff)
22172 
22173 // args: data (32-bit)
acamera_isp_ds1_uv_dma_writer_bank2_base_write(uintptr_t base,uint32_t data)22174 static __inline void acamera_isp_ds1_uv_dma_writer_bank2_base_write(uintptr_t base, uint32_t data) {
22175     system_sw_write_32(base + 0x1c2c8L, data);
22176 }
acamera_isp_ds1_uv_dma_writer_bank2_base_read(uintptr_t base)22177 static __inline uint32_t acamera_isp_ds1_uv_dma_writer_bank2_base_read(uintptr_t base) {
22178     return system_sw_read_32(base + 0x1c2c8L);
22179 }
22180 // ------------------------------------------------------------------------------ //
22181 // Register: bank3_base
22182 // ------------------------------------------------------------------------------ //
22183 
22184 // ------------------------------------------------------------------------------ //
22185 // bank 3 base address for frame buffer, should be word-aligned
22186 // ------------------------------------------------------------------------------ //
22187 
22188 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK3_BASE_DEFAULT (0x0)
22189 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK3_BASE_DATASIZE (32)
22190 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK3_BASE_OFFSET (0x3444)
22191 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK3_BASE_MASK (0xffffffff)
22192 
22193 // args: data (32-bit)
acamera_isp_ds1_uv_dma_writer_bank3_base_write(uintptr_t base,uint32_t data)22194 static __inline void acamera_isp_ds1_uv_dma_writer_bank3_base_write(uintptr_t base, uint32_t data) {
22195     system_sw_write_32(base + 0x1c2ccL, data);
22196 }
acamera_isp_ds1_uv_dma_writer_bank3_base_read(uintptr_t base)22197 static __inline uint32_t acamera_isp_ds1_uv_dma_writer_bank3_base_read(uintptr_t base) {
22198     return system_sw_read_32(base + 0x1c2ccL);
22199 }
22200 // ------------------------------------------------------------------------------ //
22201 // Register: bank4_base
22202 // ------------------------------------------------------------------------------ //
22203 
22204 // ------------------------------------------------------------------------------ //
22205 // bank 4 base address for frame buffer, should be word-aligned
22206 // ------------------------------------------------------------------------------ //
22207 
22208 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK4_BASE_DEFAULT (0x0)
22209 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK4_BASE_DATASIZE (32)
22210 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK4_BASE_OFFSET (0x3448)
22211 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK4_BASE_MASK (0xffffffff)
22212 
22213 // args: data (32-bit)
acamera_isp_ds1_uv_dma_writer_bank4_base_write(uintptr_t base,uint32_t data)22214 static __inline void acamera_isp_ds1_uv_dma_writer_bank4_base_write(uintptr_t base, uint32_t data) {
22215     system_sw_write_32(base + 0x1c2d0L, data);
22216 }
acamera_isp_ds1_uv_dma_writer_bank4_base_read(uintptr_t base)22217 static __inline uint32_t acamera_isp_ds1_uv_dma_writer_bank4_base_read(uintptr_t base) {
22218     return system_sw_read_32(base + 0x1c2d0L);
22219 }
22220 // ------------------------------------------------------------------------------ //
22221 // Register: max bank
22222 // ------------------------------------------------------------------------------ //
22223 
22224 // ------------------------------------------------------------------------------ //
22225 // highest bank*_base to use for frame writes before recycling to bank0_base, only 0 to 4 are valid
22226 // ------------------------------------------------------------------------------ //
22227 
22228 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_MAX_BANK_DEFAULT (0x0)
22229 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_MAX_BANK_DATASIZE (3)
22230 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_MAX_BANK_OFFSET (0x344c)
22231 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_MAX_BANK_MASK (0x7)
22232 
22233 // args: data (3-bit)
acamera_isp_ds1_uv_dma_writer_max_bank_write(uintptr_t base,uint8_t data)22234 static __inline void acamera_isp_ds1_uv_dma_writer_max_bank_write(uintptr_t base, uint8_t data) {
22235     uint32_t curr = system_sw_read_32(base + 0x1c2d4L);
22236     system_sw_write_32(base + 0x1c2d4L, (((uint32_t) (data & 0x7)) << 0) | (curr & 0xfffffff8));
22237 }
acamera_isp_ds1_uv_dma_writer_max_bank_read(uintptr_t base)22238 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_max_bank_read(uintptr_t base) {
22239     return (uint8_t)((system_sw_read_32(base + 0x1c2d4L) & 0x7) >> 0);
22240 }
22241 // ------------------------------------------------------------------------------ //
22242 // Register: bank0 restart
22243 // ------------------------------------------------------------------------------ //
22244 
22245 // ------------------------------------------------------------------------------ //
22246 // 0 = normal operation, 1= restart bank counter to bank0 for next frame write
22247 // ------------------------------------------------------------------------------ //
22248 
22249 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK0_RESTART_DEFAULT (0)
22250 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK0_RESTART_DATASIZE (1)
22251 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK0_RESTART_OFFSET (0x344c)
22252 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BANK0_RESTART_MASK (0x8)
22253 
22254 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_bank0_restart_write(uintptr_t base,uint8_t data)22255 static __inline void acamera_isp_ds1_uv_dma_writer_bank0_restart_write(uintptr_t base, uint8_t data) {
22256     uint32_t curr = system_sw_read_32(base + 0x1c2d4L);
22257     system_sw_write_32(base + 0x1c2d4L, (((uint32_t) (data & 0x1)) << 3) | (curr & 0xfffffff7));
22258 }
acamera_isp_ds1_uv_dma_writer_bank0_restart_read(uintptr_t base)22259 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_bank0_restart_read(uintptr_t base) {
22260     return (uint8_t)((system_sw_read_32(base + 0x1c2d4L) & 0x8) >> 3);
22261 }
22262 // ------------------------------------------------------------------------------ //
22263 // Register: Line_offset
22264 // ------------------------------------------------------------------------------ //
22265 
22266 // ------------------------------------------------------------------------------ //
22267 //
22268 //        Indicates the offset in bytes from the start of one line to the next line.
22269 //        This value should be equal to or larger than one line of image data and should be word-aligned
22270 //
22271 // ------------------------------------------------------------------------------ //
22272 
22273 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINE_OFFSET_DEFAULT (0x1000)
22274 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINE_OFFSET_DATASIZE (32)
22275 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINE_OFFSET_OFFSET (0x3450)
22276 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINE_OFFSET_MASK (0xffffffff)
22277 
22278 // args: data (32-bit)
acamera_isp_ds1_uv_dma_writer_line_offset_write(uintptr_t base,uint32_t data)22279 static __inline void acamera_isp_ds1_uv_dma_writer_line_offset_write(uintptr_t base, uint32_t data) {
22280     system_sw_write_32(base + 0x1c2d8L, data);
22281 }
acamera_isp_ds1_uv_dma_writer_line_offset_read(uintptr_t base)22282 static __inline uint32_t acamera_isp_ds1_uv_dma_writer_line_offset_read(uintptr_t base) {
22283     return system_sw_read_32(base + 0x1c2d8L);
22284 }
22285 // ------------------------------------------------------------------------------ //
22286 // Register: wbank curr
22287 // ------------------------------------------------------------------------------ //
22288 
22289 // ------------------------------------------------------------------------------ //
22290 // write bank currently active. valid values =0-4. updated at start of frame write
22291 // ------------------------------------------------------------------------------ //
22292 
22293 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_WBANK_CURR_DEFAULT (0x0)
22294 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_WBANK_CURR_DATASIZE (3)
22295 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_WBANK_CURR_OFFSET (0x3454)
22296 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_WBANK_CURR_MASK (0xe)
22297 
22298 // args: data (3-bit)
acamera_isp_ds1_uv_dma_writer_wbank_curr_read(uintptr_t base)22299 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_wbank_curr_read(uintptr_t base) {
22300     return (uint8_t)((system_sw_read_32(base + 0x1c2dcL) & 0xe) >> 1);
22301 }
22302 // ------------------------------------------------------------------------------ //
22303 // Register: wbank active
22304 // ------------------------------------------------------------------------------ //
22305 
22306 // ------------------------------------------------------------------------------ //
22307 // 1 = wbank_curr is being written to. Goes high at start of writes, low at last write transfer/completion on axi.
22308 // ------------------------------------------------------------------------------ //
22309 
22310 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_WBANK_ACTIVE_DEFAULT (0x0)
22311 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_WBANK_ACTIVE_DATASIZE (1)
22312 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_WBANK_ACTIVE_OFFSET (0x3454)
22313 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_WBANK_ACTIVE_MASK (0x1)
22314 
22315 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_wbank_active_read(uintptr_t base)22316 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_wbank_active_read(uintptr_t base) {
22317     return (uint8_t)((system_sw_read_32(base + 0x1c2dcL) & 0x1) >> 0);
22318 }
22319 // ------------------------------------------------------------------------------ //
22320 // Register: frame icount
22321 // ------------------------------------------------------------------------------ //
22322 
22323 // ------------------------------------------------------------------------------ //
22324 // count of incomming frames (starts) to vdma_writer on video input, non resetable, rolls over, updates at pixel 1 of new frame on video in
22325 // ------------------------------------------------------------------------------ //
22326 
22327 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_ICOUNT_DEFAULT (0x0)
22328 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_ICOUNT_DATASIZE (16)
22329 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_ICOUNT_OFFSET (0x3460)
22330 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_ICOUNT_MASK (0xffff)
22331 
22332 // args: data (16-bit)
acamera_isp_ds1_uv_dma_writer_frame_icount_read(uintptr_t base)22333 static __inline uint16_t acamera_isp_ds1_uv_dma_writer_frame_icount_read(uintptr_t base) {
22334     return (uint16_t)((system_sw_read_32(base + 0x1c2e8L) & 0xffff) >> 0);
22335 }
22336 // ------------------------------------------------------------------------------ //
22337 // Register: frame wcount
22338 // ------------------------------------------------------------------------------ //
22339 
22340 // ------------------------------------------------------------------------------ //
22341 // count of outgoing frame writes (starts) from vdma_writer sent to AXI output, non resetable, rolls over, updates at pixel 1 of new frame on video in
22342 // ------------------------------------------------------------------------------ //
22343 
22344 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_WCOUNT_DEFAULT (0x0)
22345 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_WCOUNT_DATASIZE (16)
22346 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_WCOUNT_OFFSET (0x3460)
22347 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_FRAME_WCOUNT_MASK (0xffff0000)
22348 
22349 // args: data (16-bit)
acamera_isp_ds1_uv_dma_writer_frame_wcount_read(uintptr_t base)22350 static __inline uint16_t acamera_isp_ds1_uv_dma_writer_frame_wcount_read(uintptr_t base) {
22351     return (uint16_t)((system_sw_read_32(base + 0x1c2e8L) & 0xffff0000) >> 16);
22352 }
22353 // ------------------------------------------------------------------------------ //
22354 // Register: axi_fail_bresp
22355 // ------------------------------------------------------------------------------ //
22356 
22357 // ------------------------------------------------------------------------------ //
22358 //  clearable alarm, high to indicate bad  bresp captured
22359 // ------------------------------------------------------------------------------ //
22360 
22361 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_BRESP_DEFAULT (0x0)
22362 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_BRESP_DATASIZE (1)
22363 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_BRESP_OFFSET (0x3468)
22364 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_BRESP_MASK (0x1)
22365 
22366 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_axi_fail_bresp_read(uintptr_t base)22367 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_fail_bresp_read(uintptr_t base) {
22368     return (uint8_t)((system_sw_read_32(base + 0x1c2f0L) & 0x1) >> 0);
22369 }
22370 // ------------------------------------------------------------------------------ //
22371 // Register: axi_fail_awmaxwait
22372 // ------------------------------------------------------------------------------ //
22373 
22374 // ------------------------------------------------------------------------------ //
22375 //  clearable alarm, high when awmaxwait_limit reached
22376 // ------------------------------------------------------------------------------ //
22377 
22378 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_AWMAXWAIT_DEFAULT (0x0)
22379 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_AWMAXWAIT_DATASIZE (1)
22380 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_AWMAXWAIT_OFFSET (0x3468)
22381 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_AWMAXWAIT_MASK (0x2)
22382 
22383 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_axi_fail_awmaxwait_read(uintptr_t base)22384 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_fail_awmaxwait_read(uintptr_t base) {
22385     return (uint8_t)((system_sw_read_32(base + 0x1c2f0L) & 0x2) >> 1);
22386 }
22387 // ------------------------------------------------------------------------------ //
22388 // Register: axi_fail_wmaxwait
22389 // ------------------------------------------------------------------------------ //
22390 
22391 // ------------------------------------------------------------------------------ //
22392 //  clearable alarm, high when wmaxwait_limit reached
22393 // ------------------------------------------------------------------------------ //
22394 
22395 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_WMAXWAIT_DEFAULT (0x0)
22396 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_WMAXWAIT_DATASIZE (1)
22397 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_WMAXWAIT_OFFSET (0x3468)
22398 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_WMAXWAIT_MASK (0x4)
22399 
22400 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_axi_fail_wmaxwait_read(uintptr_t base)22401 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_fail_wmaxwait_read(uintptr_t base) {
22402     return (uint8_t)((system_sw_read_32(base + 0x1c2f0L) & 0x4) >> 2);
22403 }
22404 // ------------------------------------------------------------------------------ //
22405 // Register: axi_fail_wxact_ostand
22406 // ------------------------------------------------------------------------------ //
22407 
22408 // ------------------------------------------------------------------------------ //
22409 //  clearable alarm, high when wxact_ostand_limit reached
22410 // ------------------------------------------------------------------------------ //
22411 
22412 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_DEFAULT (0x0)
22413 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_DATASIZE (1)
22414 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_OFFSET (0x3468)
22415 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_FAIL_WXACT_OSTAND_MASK (0x8)
22416 
22417 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_axi_fail_wxact_ostand_read(uintptr_t base)22418 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_fail_wxact_ostand_read(uintptr_t base) {
22419     return (uint8_t)((system_sw_read_32(base + 0x1c2f0L) & 0x8) >> 3);
22420 }
22421 // ------------------------------------------------------------------------------ //
22422 // Register: vi_fail_active_width
22423 // ------------------------------------------------------------------------------ //
22424 
22425 // ------------------------------------------------------------------------------ //
22426 //  clearable alarm, high to indicate mismatched active_width detected
22427 // ------------------------------------------------------------------------------ //
22428 
22429 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_DEFAULT (0x0)
22430 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_DATASIZE (1)
22431 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_OFFSET (0x3468)
22432 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_ACTIVE_WIDTH_MASK (0x10)
22433 
22434 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_vi_fail_active_width_read(uintptr_t base)22435 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_vi_fail_active_width_read(uintptr_t base) {
22436     return (uint8_t)((system_sw_read_32(base + 0x1c2f0L) & 0x10) >> 4);
22437 }
22438 // ------------------------------------------------------------------------------ //
22439 // Register: vi_fail_active_height
22440 // ------------------------------------------------------------------------------ //
22441 
22442 // ------------------------------------------------------------------------------ //
22443 //  clearable alarm, high to indicate mismatched active_height detected ( also raised on missing field!)
22444 // ------------------------------------------------------------------------------ //
22445 
22446 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_DEFAULT (0x0)
22447 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_DATASIZE (1)
22448 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_OFFSET (0x3468)
22449 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_ACTIVE_HEIGHT_MASK (0x20)
22450 
22451 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_vi_fail_active_height_read(uintptr_t base)22452 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_vi_fail_active_height_read(uintptr_t base) {
22453     return (uint8_t)((system_sw_read_32(base + 0x1c2f0L) & 0x20) >> 5);
22454 }
22455 // ------------------------------------------------------------------------------ //
22456 // Register: vi_fail_interline_blanks
22457 // ------------------------------------------------------------------------------ //
22458 
22459 // ------------------------------------------------------------------------------ //
22460 //  clearable alarm, high to indicate interline blanking below min
22461 // ------------------------------------------------------------------------------ //
22462 
22463 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_DEFAULT (0x0)
22464 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_DATASIZE (1)
22465 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_OFFSET (0x3468)
22466 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_INTERLINE_BLANKS_MASK (0x40)
22467 
22468 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_vi_fail_interline_blanks_read(uintptr_t base)22469 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_vi_fail_interline_blanks_read(uintptr_t base) {
22470     return (uint8_t)((system_sw_read_32(base + 0x1c2f0L) & 0x40) >> 6);
22471 }
22472 // ------------------------------------------------------------------------------ //
22473 // Register: vi_fail_interframe_blanks
22474 // ------------------------------------------------------------------------------ //
22475 
22476 // ------------------------------------------------------------------------------ //
22477 //  clearable alarm, high to indicate interframe blanking below min
22478 // ------------------------------------------------------------------------------ //
22479 
22480 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_DEFAULT (0x0)
22481 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_DATASIZE (1)
22482 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_OFFSET (0x3468)
22483 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VI_FAIL_INTERFRAME_BLANKS_MASK (0x80)
22484 
22485 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_vi_fail_interframe_blanks_read(uintptr_t base)22486 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_vi_fail_interframe_blanks_read(uintptr_t base) {
22487     return (uint8_t)((system_sw_read_32(base + 0x1c2f0L) & 0x80) >> 7);
22488 }
22489 // ------------------------------------------------------------------------------ //
22490 // Register: video_alarm
22491 // ------------------------------------------------------------------------------ //
22492 
22493 // ------------------------------------------------------------------------------ //
22494 //  active high, problem found on video port(s) ( active width/height or interline/frame blanks failure)
22495 // ------------------------------------------------------------------------------ //
22496 
22497 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VIDEO_ALARM_DEFAULT (0x0)
22498 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VIDEO_ALARM_DATASIZE (1)
22499 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VIDEO_ALARM_OFFSET (0x3468)
22500 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_VIDEO_ALARM_MASK (0x100)
22501 
22502 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_video_alarm_read(uintptr_t base)22503 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_video_alarm_read(uintptr_t base) {
22504     return (uint8_t)((system_sw_read_32(base + 0x1c2f0L) & 0x100) >> 8);
22505 }
22506 // ------------------------------------------------------------------------------ //
22507 // Register: blk_status
22508 // ------------------------------------------------------------------------------ //
22509 
22510 // ------------------------------------------------------------------------------ //
22511 //
22512 //        block status output (reserved)
22513 //                          -- blk_status(0) = wfifo_fail_full
22514 //                          -- blk_status(1) = wfifo_fail_empty
22515 //                          -- blk_status(4) = pack_fail_overflow
22516 //                          -- blk_status(24) = intw_fail_user_intfc_sig
22517 //                          -- blk_status(others) =  zero
22518 //
22519 // ------------------------------------------------------------------------------ //
22520 
22521 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BLK_STATUS_DEFAULT (0x0)
22522 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BLK_STATUS_DATASIZE (32)
22523 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BLK_STATUS_OFFSET (0x346c)
22524 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_BLK_STATUS_MASK (0xffffffff)
22525 
22526 // args: data (32-bit)
acamera_isp_ds1_uv_dma_writer_blk_status_read(uintptr_t base)22527 static __inline uint32_t acamera_isp_ds1_uv_dma_writer_blk_status_read(uintptr_t base) {
22528     return system_sw_read_32(base + 0x1c2f4L);
22529 }
22530 // ------------------------------------------------------------------------------ //
22531 // Register: lines_wrapped
22532 // ------------------------------------------------------------------------------ //
22533 
22534 // ------------------------------------------------------------------------------ //
22535 //
22536 //        Number of lines to write from base address before wrapping back to base address. 0 = no wrapping, >0 = last line written before wrapping
22537 //
22538 // ------------------------------------------------------------------------------ //
22539 
22540 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINES_WRAPPED_DEFAULT (0x0000)
22541 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINES_WRAPPED_DATASIZE (16)
22542 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINES_WRAPPED_OFFSET (0x3470)
22543 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINES_WRAPPED_MASK (0xffff)
22544 
22545 // args: data (16-bit)
acamera_isp_ds1_uv_dma_writer_lines_wrapped_write(uintptr_t base,uint16_t data)22546 static __inline void acamera_isp_ds1_uv_dma_writer_lines_wrapped_write(uintptr_t base, uint16_t data) {
22547     uint32_t curr = system_sw_read_32(base + 0x1c2f8L);
22548     system_sw_write_32(base + 0x1c2f8L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
22549 }
acamera_isp_ds1_uv_dma_writer_lines_wrapped_read(uintptr_t base)22550 static __inline uint16_t acamera_isp_ds1_uv_dma_writer_lines_wrapped_read(uintptr_t base) {
22551     return (uint16_t)((system_sw_read_32(base + 0x1c2f8L) & 0xffff) >> 0);
22552 }
22553 // ------------------------------------------------------------------------------ //
22554 // Register: linetick_first
22555 // ------------------------------------------------------------------------------ //
22556 
22557 // ------------------------------------------------------------------------------ //
22558 //
22559 //        Line number of first linetick. 0  = no linetick, >0 = line number to generate linetick
22560 //
22561 // ------------------------------------------------------------------------------ //
22562 
22563 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_FIRST_DEFAULT (0x0000)
22564 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_FIRST_DATASIZE (16)
22565 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_FIRST_OFFSET (0x3474)
22566 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_FIRST_MASK (0xffff)
22567 
22568 // args: data (16-bit)
acamera_isp_ds1_uv_dma_writer_linetick_first_write(uintptr_t base,uint16_t data)22569 static __inline void acamera_isp_ds1_uv_dma_writer_linetick_first_write(uintptr_t base, uint16_t data) {
22570     uint32_t curr = system_sw_read_32(base + 0x1c2fcL);
22571     system_sw_write_32(base + 0x1c2fcL, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
22572 }
acamera_isp_ds1_uv_dma_writer_linetick_first_read(uintptr_t base)22573 static __inline uint16_t acamera_isp_ds1_uv_dma_writer_linetick_first_read(uintptr_t base) {
22574     return (uint16_t)((system_sw_read_32(base + 0x1c2fcL) & 0xffff) >> 0);
22575 }
22576 // ------------------------------------------------------------------------------ //
22577 // Register: linetick_repeat
22578 // ------------------------------------------------------------------------------ //
22579 
22580 // ------------------------------------------------------------------------------ //
22581 //
22582 //        Line repeat interval of linetick. 0 = no repeat, >0 = repeat interval in lines
22583 //
22584 // ------------------------------------------------------------------------------ //
22585 
22586 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_REPEAT_DEFAULT (0x0000)
22587 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_REPEAT_DATASIZE (16)
22588 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_REPEAT_OFFSET (0x3478)
22589 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_REPEAT_MASK (0xffff)
22590 
22591 // args: data (16-bit)
acamera_isp_ds1_uv_dma_writer_linetick_repeat_write(uintptr_t base,uint16_t data)22592 static __inline void acamera_isp_ds1_uv_dma_writer_linetick_repeat_write(uintptr_t base, uint16_t data) {
22593     uint32_t curr = system_sw_read_32(base + 0x1c300L);
22594     system_sw_write_32(base + 0x1c300L, (((uint32_t) (data & 0xffff)) << 0) | (curr & 0xffff0000));
22595 }
acamera_isp_ds1_uv_dma_writer_linetick_repeat_read(uintptr_t base)22596 static __inline uint16_t acamera_isp_ds1_uv_dma_writer_linetick_repeat_read(uintptr_t base) {
22597     return (uint16_t)((system_sw_read_32(base + 0x1c300L) & 0xffff) >> 0);
22598 }
22599 // ------------------------------------------------------------------------------ //
22600 // Register: linetick_eol
22601 // ------------------------------------------------------------------------------ //
22602 
22603 // ------------------------------------------------------------------------------ //
22604 // Linetick start/end of line control. 0 = use start of line, 1 = use end of line to generate linetick
22605 // ------------------------------------------------------------------------------ //
22606 
22607 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_EOL_DEFAULT (0)
22608 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_EOL_DATASIZE (1)
22609 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_EOL_OFFSET (0x347c)
22610 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_EOL_MASK (0x1)
22611 
22612 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_linetick_eol_write(uintptr_t base,uint8_t data)22613 static __inline void acamera_isp_ds1_uv_dma_writer_linetick_eol_write(uintptr_t base, uint8_t data) {
22614     uint32_t curr = system_sw_read_32(base + 0x1c304L);
22615     system_sw_write_32(base + 0x1c304L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
22616 }
acamera_isp_ds1_uv_dma_writer_linetick_eol_read(uintptr_t base)22617 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_linetick_eol_read(uintptr_t base) {
22618     return (uint8_t)((system_sw_read_32(base + 0x1c304L) & 0x1) >> 0);
22619 }
22620 // ------------------------------------------------------------------------------ //
22621 // Register: linetick_delay
22622 // ------------------------------------------------------------------------------ //
22623 
22624 // ------------------------------------------------------------------------------ //
22625 //
22626 //        Linetick delay in vcke cycles to add to min 3 cycle latency from acl_vi. 0-65535.
22627 //        Must be less than next linetick generation time or count will not mature and no linetick is not produced.
22628 //          --NOTE: linetick delay  can run past end of frame/field and also into next frame!
22629 //          --      Take care maturity time is less than next configured linetick generation postion!
22630 //          --      Take care when changing config between frame too!
22631 //
22632 // ------------------------------------------------------------------------------ //
22633 
22634 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_DELAY_DEFAULT (0x0000)
22635 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_DELAY_DATASIZE (16)
22636 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_DELAY_OFFSET (0x347c)
22637 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_LINETICK_DELAY_MASK (0xffff0000)
22638 
22639 // args: data (16-bit)
acamera_isp_ds1_uv_dma_writer_linetick_delay_write(uintptr_t base,uint16_t data)22640 static __inline void acamera_isp_ds1_uv_dma_writer_linetick_delay_write(uintptr_t base, uint16_t data) {
22641     uint32_t curr = system_sw_read_32(base + 0x1c304L);
22642     system_sw_write_32(base + 0x1c304L, (((uint32_t) (data & 0xffff)) << 16) | (curr & 0xffff));
22643 }
acamera_isp_ds1_uv_dma_writer_linetick_delay_read(uintptr_t base)22644 static __inline uint16_t acamera_isp_ds1_uv_dma_writer_linetick_delay_read(uintptr_t base) {
22645     return (uint16_t)((system_sw_read_32(base + 0x1c304L) & 0xffff0000) >> 16);
22646 }
22647 // ------------------------------------------------------------------------------ //
22648 // Register: pagewarm_on
22649 // ------------------------------------------------------------------------------ //
22650 
22651 // ------------------------------------------------------------------------------ //
22652 //
22653 //        active high, enables posting of pagewarm dummy writes to SMMU for early page translation of upcomming 4K pages.
22654 //        Recommend SMMU has min 8 page cache to avoid translation miss. Pagewarms are posted as dummy writes with wstrb= 0
22655 //
22656 // ------------------------------------------------------------------------------ //
22657 
22658 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_PAGEWARM_ON_DEFAULT (0)
22659 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_PAGEWARM_ON_DATASIZE (1)
22660 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_PAGEWARM_ON_OFFSET (0x3480)
22661 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_PAGEWARM_ON_MASK (0x1)
22662 
22663 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_pagewarm_on_write(uintptr_t base,uint8_t data)22664 static __inline void acamera_isp_ds1_uv_dma_writer_pagewarm_on_write(uintptr_t base, uint8_t data) {
22665     uint32_t curr = system_sw_read_32(base + 0x1c308L);
22666     system_sw_write_32(base + 0x1c308L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
22667 }
acamera_isp_ds1_uv_dma_writer_pagewarm_on_read(uintptr_t base)22668 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_pagewarm_on_read(uintptr_t base) {
22669     return (uint8_t)((system_sw_read_32(base + 0x1c308L) & 0x1) >> 0);
22670 }
22671 // ------------------------------------------------------------------------------ //
22672 // Register: axi_id_multi
22673 // ------------------------------------------------------------------------------ //
22674 
22675 // ------------------------------------------------------------------------------ //
22676 //
22677 //        0= static value (axi_id_value) for awid/wid, 1 = incrementing value per transaction for awid/wid wrapping to 0 after axi_id_value
22678 //
22679 // ------------------------------------------------------------------------------ //
22680 
22681 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_ID_MULTI_DEFAULT (0)
22682 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_ID_MULTI_DATASIZE (1)
22683 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_ID_MULTI_OFFSET (0x3480)
22684 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_ID_MULTI_MASK (0x2)
22685 
22686 // args: data (1-bit)
acamera_isp_ds1_uv_dma_writer_axi_id_multi_write(uintptr_t base,uint8_t data)22687 static __inline void acamera_isp_ds1_uv_dma_writer_axi_id_multi_write(uintptr_t base, uint8_t data) {
22688     uint32_t curr = system_sw_read_32(base + 0x1c308L);
22689     system_sw_write_32(base + 0x1c308L, (((uint32_t) (data & 0x1)) << 1) | (curr & 0xfffffffd));
22690 }
acamera_isp_ds1_uv_dma_writer_axi_id_multi_read(uintptr_t base)22691 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_id_multi_read(uintptr_t base) {
22692     return (uint8_t)((system_sw_read_32(base + 0x1c308L) & 0x2) >> 1);
22693 }
22694 // ------------------------------------------------------------------------------ //
22695 // Register: axi_burstsplit
22696 // ------------------------------------------------------------------------------ //
22697 
22698 // ------------------------------------------------------------------------------ //
22699 //
22700 //        memory boundary that splits bursts: 0=2Transfers,1=4Transfers,2=8Transfers,3=16Transfers. (for axi_data_w=128,  16transfers=256Bytes). Good default = 11
22701 //
22702 // ------------------------------------------------------------------------------ //
22703 
22704 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_BURSTSPLIT_DEFAULT (0x3)
22705 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_BURSTSPLIT_DATASIZE (2)
22706 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_BURSTSPLIT_OFFSET (0x3480)
22707 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_BURSTSPLIT_MASK (0xc)
22708 
22709 // args: data (2-bit)
acamera_isp_ds1_uv_dma_writer_axi_burstsplit_write(uintptr_t base,uint8_t data)22710 static __inline void acamera_isp_ds1_uv_dma_writer_axi_burstsplit_write(uintptr_t base, uint8_t data) {
22711     uint32_t curr = system_sw_read_32(base + 0x1c308L);
22712     system_sw_write_32(base + 0x1c308L, (((uint32_t) (data & 0x3)) << 2) | (curr & 0xfffffff3));
22713 }
acamera_isp_ds1_uv_dma_writer_axi_burstsplit_read(uintptr_t base)22714 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_burstsplit_read(uintptr_t base) {
22715     return (uint8_t)((system_sw_read_32(base + 0x1c308L) & 0xc) >> 2);
22716 }
22717 // ------------------------------------------------------------------------------ //
22718 // Register: axi_cache_value
22719 // ------------------------------------------------------------------------------ //
22720 
22721 // ------------------------------------------------------------------------------ //
22722 //
22723 //        value to send for awcache. Good default = 1111
22724 //
22725 // ------------------------------------------------------------------------------ //
22726 
22727 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_CACHE_VALUE_DEFAULT (0xf)
22728 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_CACHE_VALUE_DATASIZE (4)
22729 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_CACHE_VALUE_OFFSET (0x3480)
22730 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_CACHE_VALUE_MASK (0xf00)
22731 
22732 // args: data (4-bit)
acamera_isp_ds1_uv_dma_writer_axi_cache_value_write(uintptr_t base,uint8_t data)22733 static __inline void acamera_isp_ds1_uv_dma_writer_axi_cache_value_write(uintptr_t base, uint8_t data) {
22734     uint32_t curr = system_sw_read_32(base + 0x1c308L);
22735     system_sw_write_32(base + 0x1c308L, (((uint32_t) (data & 0xf)) << 8) | (curr & 0xfffff0ff));
22736 }
acamera_isp_ds1_uv_dma_writer_axi_cache_value_read(uintptr_t base)22737 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_cache_value_read(uintptr_t base) {
22738     return (uint8_t)((system_sw_read_32(base + 0x1c308L) & 0xf00) >> 8);
22739 }
22740 // ------------------------------------------------------------------------------ //
22741 // Register: axi_maxostand
22742 // ------------------------------------------------------------------------------ //
22743 
22744 // ------------------------------------------------------------------------------ //
22745 //
22746 //        max outstanding write transactions (bursts) allowed. zero means no maximum(uses internal limit of 2048).
22747 //
22748 // ------------------------------------------------------------------------------ //
22749 
22750 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_MAXOSTAND_DEFAULT (0x00)
22751 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_MAXOSTAND_DATASIZE (8)
22752 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_MAXOSTAND_OFFSET (0x3480)
22753 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_MAXOSTAND_MASK (0xff0000)
22754 
22755 // args: data (8-bit)
acamera_isp_ds1_uv_dma_writer_axi_maxostand_write(uintptr_t base,uint8_t data)22756 static __inline void acamera_isp_ds1_uv_dma_writer_axi_maxostand_write(uintptr_t base, uint8_t data) {
22757     uint32_t curr = system_sw_read_32(base + 0x1c308L);
22758     system_sw_write_32(base + 0x1c308L, (((uint32_t) (data & 0xff)) << 16) | (curr & 0xff00ffff));
22759 }
acamera_isp_ds1_uv_dma_writer_axi_maxostand_read(uintptr_t base)22760 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_maxostand_read(uintptr_t base) {
22761     return (uint8_t)((system_sw_read_32(base + 0x1c308L) & 0xff0000) >> 16);
22762 }
22763 // ------------------------------------------------------------------------------ //
22764 // Register: axi_max_awlen
22765 // ------------------------------------------------------------------------------ //
22766 
22767 // ------------------------------------------------------------------------------ //
22768 //
22769 //        max value to use for awlen (axi burst length). 0000= max 1 transfer/burst , upto 1111= max 16 transfers/burst
22770 //
22771 // ------------------------------------------------------------------------------ //
22772 
22773 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_MAX_AWLEN_DEFAULT (0xf)
22774 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_MAX_AWLEN_DATASIZE (4)
22775 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_MAX_AWLEN_OFFSET (0x3480)
22776 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_MAX_AWLEN_MASK (0xf000000)
22777 
22778 // args: data (4-bit)
acamera_isp_ds1_uv_dma_writer_axi_max_awlen_write(uintptr_t base,uint8_t data)22779 static __inline void acamera_isp_ds1_uv_dma_writer_axi_max_awlen_write(uintptr_t base, uint8_t data) {
22780     uint32_t curr = system_sw_read_32(base + 0x1c308L);
22781     system_sw_write_32(base + 0x1c308L, (((uint32_t) (data & 0xf)) << 24) | (curr & 0xf0ffffff));
22782 }
acamera_isp_ds1_uv_dma_writer_axi_max_awlen_read(uintptr_t base)22783 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_max_awlen_read(uintptr_t base) {
22784     return (uint8_t)((system_sw_read_32(base + 0x1c308L) & 0xf000000) >> 24);
22785 }
22786 // ------------------------------------------------------------------------------ //
22787 // Register: axi_id_value
22788 // ------------------------------------------------------------------------------ //
22789 
22790 // ------------------------------------------------------------------------------ //
22791 //
22792 //        value to send for awid, wid and expected on bid. Good default = 0000
22793 //
22794 // ------------------------------------------------------------------------------ //
22795 
22796 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_ID_VALUE_DEFAULT (0x0)
22797 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_ID_VALUE_DATASIZE (4)
22798 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_ID_VALUE_OFFSET (0x3484)
22799 #define ACAMERA_ISP_DS1_UV_DMA_WRITER_AXI_ID_VALUE_MASK (0xf)
22800 
22801 // args: data (4-bit)
acamera_isp_ds1_uv_dma_writer_axi_id_value_write(uintptr_t base,uint8_t data)22802 static __inline void acamera_isp_ds1_uv_dma_writer_axi_id_value_write(uintptr_t base, uint8_t data) {
22803     uint32_t curr = system_sw_read_32(base + 0x1c30cL);
22804     system_sw_write_32(base + 0x1c30cL, (((uint32_t) (data & 0xf)) << 0) | (curr & 0xfffffff0));
22805 }
acamera_isp_ds1_uv_dma_writer_axi_id_value_read(uintptr_t base)22806 static __inline uint8_t acamera_isp_ds1_uv_dma_writer_axi_id_value_read(uintptr_t base) {
22807     return (uint8_t)((system_sw_read_32(base + 0x1c30cL) & 0xf) >> 0);
22808 }
22809 // ------------------------------------------------------------------------------ //
22810 // Group: multi ctx
22811 // ------------------------------------------------------------------------------ //
22812 
22813 // ------------------------------------------------------------------------------ //
22814 // Register: Config done
22815 // ------------------------------------------------------------------------------ //
22816 
22817 // ------------------------------------------------------------------------------ //
22818 //
22819 //            This signal is only required in multi-context mode
22820 //            Once configuration for ping/pong address space is done, MCU must write 1 into this address
22821 //            This register is self-clearing. So the read-back will be 0
22822 //
22823 // ------------------------------------------------------------------------------ //
22824 
22825 #define ACAMERA_ISP_MULTI_CTX_CONFIG_DONE_DEFAULT (0)
22826 #define ACAMERA_ISP_MULTI_CTX_CONFIG_DONE_DATASIZE (1)
22827 #define ACAMERA_ISP_MULTI_CTX_CONFIG_DONE_OFFSET (0x3488)
22828 #define ACAMERA_ISP_MULTI_CTX_CONFIG_DONE_MASK (0x1)
22829 
22830 // args: data (1-bit)
acamera_isp_multi_ctx_config_done_write(uintptr_t base,uint8_t data)22831 static __inline void acamera_isp_multi_ctx_config_done_write(uintptr_t base, uint8_t data) {
22832     uint32_t curr = system_sw_read_32(base + 0x1c310L);
22833     system_sw_write_32(base + 0x1c310L, (((uint32_t) (data & 0x1)) << 0) | (curr & 0xfffffffe));
22834 }
acamera_isp_multi_ctx_config_done_read(uintptr_t base)22835 static __inline uint8_t acamera_isp_multi_ctx_config_done_read(uintptr_t base) {
22836     return (uint8_t)((system_sw_read_32(base + 0x1c310L) & 0x1) >> 0);
22837 }
22838 // ------------------------------------------------------------------------------ //
22839 #endif //__ACAMERA_ISP1_CONFIG_H__
22840