iLLD_TC29x  1.0
IfxCif.h
Go to the documentation of this file.
1 /**
2  * \file IfxCif.h
3  * \brief CIF basic functionality
4  * \ingroup IfxLld_Cif
5  *
6  * \version iLLD_1_0_0_11_0
7  * \copyright Copyright (c) 2013 Infineon Technologies AG. All rights reserved.
8  *
9  *
10  * IMPORTANT NOTICE
11  *
12  *
13  * Infineon Technologies AG (Infineon) is supplying this file for use
14  * exclusively with Infineon's microcontroller products. This file can be freely
15  * distributed within development tools that are supporting such microcontroller
16  * products.
17  *
18  * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
19  * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
20  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
21  * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
22  * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
23  *
24  * \defgroup IfxLld_Cif_Std_stdEnumerations Standard Enumerations
25  * \ingroup IfxLld_Cif_Std
26  * \defgroup IfxLld_Cif_Std_ispEnum ISP Enumerations
27  * \ingroup IfxLld_Cif_Std
28  * \defgroup IfxLld_Cif_Std_stdFunctions Standard Functions
29  * \ingroup IfxLld_Cif_Std
30  * \defgroup IfxLld_Cif_Std_ispFunctions ISP Functions
31  * \ingroup IfxLld_Cif_Std
32  * \defgroup IfxLld_Cif_Std_ldsFunctions Linear Downscaler Functions
33  * \ingroup IfxLld_Cif_Std
34  * \defgroup IfxLld_Cif_Std_ldsEnumerations Linear Downscaler Enumerations
35  * \ingroup IfxLld_Cif_Std
36  * \defgroup IfxLld_Cif_Std_miFunctions Memory Interface Functions
37  * \ingroup IfxLld_Cif_Std
38  * \defgroup IfxLld_Cif_Std_miEnumerations Memory Interface Enumerations
39  * \ingroup IfxLld_Cif_Std
40  * \defgroup IfxLld_Cif_Std_jpeFunctions JPEG Encoder Functions
41  * \ingroup IfxLld_Cif_Std
42  * \defgroup IfxLld_Cif_Std_jpeEnumerations JPEG Encoder Enumerations
43  * \ingroup IfxLld_Cif_Std
44  * \defgroup IfxLld_Cif_Std_swFunctions Security Watchdog Functions
45  * \ingroup IfxLld_Cif_Std
46  * \defgroup IfxLld_Cif_Std_swEnumerations Security Watchdog Enumerations
47  * \ingroup IfxLld_Cif_Std
48  * \defgroup IfxLld_Cif_Std_ispisFunctions ISP Image Stabilization Functions
49  * \ingroup IfxLld_Cif_Std
50  * \defgroup IfxLld_Cif_Std_ispisEnumerations ISP Image Stabilization Enumerations
51  * \ingroup IfxLld_Cif_Std
52  * \defgroup IfxLld_Cif_Std_epFunctions Extra Path Functions
53  * \ingroup IfxLld_Cif_Std
54  * \defgroup IfxLld_Cif_Std_epEnumerations Extra Path Enumerations
55  * \ingroup IfxLld_Cif_Std
56  * \defgroup IfxLld_Cif_Std_dpFunctions Debug Path Functions
57  * \ingroup IfxLld_Cif_Std
58  * \defgroup IfxLld_Cif_Std_dpEnumerations Debug Path Enumerations
59  * \ingroup IfxLld_Cif_Std
60  */
61 
62 #ifndef IFXCIF_H
63 #define IFXCIF_H 1
64 
65 /******************************************************************************/
66 /*----------------------------------Includes----------------------------------*/
67 /******************************************************************************/
68 
69 #include "_Impl/IfxCif_cfg.h"
70 #include "Scu/Std/IfxScuWdt.h"
71 #include "IfxCif_bf.h"
72 #include "IfxCif_reg.h"
74 
75 /******************************************************************************/
76 /*--------------------------------Enumerations--------------------------------*/
77 /******************************************************************************/
78 
79 /** \addtogroup IfxLld_Cif_Std_stdEnumerations
80  * \{ */
81 /** \brief Enumerator for data path of main path
82  */
83 typedef enum
84 {
85  IfxCif_DataPathSelectorForMainPath_Disabled = 0, /**< \brief Main path is disabled */
86  IfxCif_DataPathSelectorForMainPath_DataToMemoryInterfaceUncompressed = 1, /**< \brief Main path is routed to the Memory Interface */
87  IfxCif_DataPathSelectorForMainPath_DataToJpegEncoder = 2 /**< \brief Main path is routed to the JPEG encoder */
89 
90 /** \brief Enumerator for the state of an error
91  */
92 typedef enum
93 {
94  IfxCif_ErrorState_NoError = 0, /**< \brief No error occurred */
95  IfxCif_ErrorState_Error = 1 /**< \brief Error occurred */
97 
98 /** \brief Enumerator for the extra paths
99  */
100 typedef enum
101 {
108 
109 /** \brief Enumerator for tiers
110  */
111 typedef enum
112 {
113  IfxCif_ImageTiers_Horizontal = 0, /**< \brief Horizontal tier */
114  IfxCif_ImageTiers_Vertical = 1 /**< \brief Vertical tier */
116 
117 /** \brief Enumerator for input interfaces supported by the CIF interface
118  */
119 typedef enum
120 {
121  IfxCif_InputInterface_ParallelInterface = 0 /**< \brief Parallel interface (currently the only supported input interface) */
123 
124 /** \brief Enumerator for the state of an interrupt
125  */
126 typedef enum
127 {
128  IfxCif_InterruptTriggeredState_NotTriggered = 0, /**< \brief Interrupt was not triggered */
129  IfxCif_InterruptTriggeredState_Triggered = 1 /**< \brief Interrupt was triggered */
131 
132 /** \brief Enumerator for port input selections
133  */
134 typedef enum
135 {
136  IfxCif_PortInputSelection_PinMapping0 = 0, /**< \brief pin mapping 0 */
137  IfxCif_PortInputSelection_PinMapping1 = 1 /**< \brief pin mapping 1 */
139 
140 /** \brief Enumerator for states
141  */
142 typedef enum
143 {
144  IfxCif_State_Disabled = 0, /**< \brief Disabled state */
145  IfxCif_State_Enabled = 1 /**< \brief Enabled state */
146 } IfxCif_State;
147 
148 /** \brief Enumerator for submodules of the CIF interface
149  */
150 typedef enum
151 {
152  IfxCif_Submodules_AllModules = 0, /**< \brief All submodules */
153  IfxCif_Submodules_Debug = 1, /**< \brief Debug submodule */
154  IfxCif_Submodules_ExtraPaths = 2, /**< \brief Extra Paths submodule */
155  IfxCif_Submodules_LinearDownscaler = 3, /**< \brief Linear Downscaler submodule */
156  IfxCif_Submodules_SecurityWatchdog = 4, /**< \brief Security Watchdog submodule */
157  IfxCif_Submodules_MemoryInterface = 5, /**< \brief Memory Interface submodule */
158  IfxCif_Submodules_JpegEncoder = 6, /**< \brief JPEG Encoder submodule */
159  IfxCif_Submodules_ImageSignalProcessing = 7, /**< \brief Image Signal Processing submodule */
160  IfxCif_Submodules_YCSplitter = 8 /**< \brief Y/C-Splitter submodule */
162 
163 /** \brief Enumerator for channel mode of Y/C splitter
164  */
165 typedef enum
166 {
167  IfxCif_YCSplitterChannelMode_Disabled = 0, /**< \brief Y/C splitter is disabled */
168  IfxCif_YCSplitterChannelMode_MainPathAndRawMode = 1 /**< \brief Y/C splitter is enabled for main path and RAW mode */
170 
171 /** \} */
172 
173 /** \addtogroup IfxLld_Cif_Std_ispEnum
174  * \{ */
175 /** \brief Enumerator for the ISP CCIR sequence
176  */
177 typedef enum
178 {
179  IfxCif_IspCcirSequence_YCbYCr = 0, /**< \brief YCbYCr */
180  IfxCif_IspCcirSequence_YCrYCb = 1, /**< \brief YCrYCb */
181  IfxCif_IspCcirSequence_CbYCrY = 2 /**< \brief CbYCrY */
183 
184 /** \brief Enumerator for the clipping range of the crominance for the ISP output
185  */
186 typedef enum
187 {
188  IfxCif_IspColorSpaceMatrixCrominanceClippingRange_16To240 = 0, /**< \brief CbCr range 16..240 according to ITU-R BT.601 standard */
189  IfxCif_IspColorSpaceMatrixCrominanceClippingRange_0To255 = 1 /**< \brief full UV range 0..255 */
191 
192 /** \brief Enumerator for the clipping range of the luminance for the ISP output
193  */
194 typedef enum
195 {
196  IfxCif_IspColorSpaceMatrixLuminanceClippingRange_16To235 = 0, /**< \brief Y range 16..235 according to ITU-R BT.601 standard */
197  IfxCif_IspColorSpaceMatrixLuminanceClippingRange_0To255 = 1 /**< \brief full Y range 0..255 */
199 
200 /** \brief Enumerator for error sources of the ISP module
201  */
202 typedef enum
203 {
204  IfxCif_IspErrorSources_SizeErrorInOutmuxSubmodule = 0, /**< \brief Size error is generated in outmux submodule */
205  IfxCif_IspErrorSources_SizeErrorInImageStabilizationSubmodule = 1, /**< \brief Size error is generated in image stabilization submodule */
206  IfxCif_IspErrorSources_SizeErrorInInformSubmodule = 2 /**< \brief ize error is generated in inform submodule */
208 
209 /** \brief Enumerator for the sampled input fields
210  */
211 typedef enum
212 {
213  IfxCif_IspFieldSelection_AllFields = 0, /**< \brief sample all fields (don't care about fields) */
214  IfxCif_IspFieldSelection_OnlyEvenFields = 1, /**< \brief sample only even fields */
215  IfxCif_IspFieldSelection_OnlyOddFields = 2 /**< \brief sample only odd fields */
217 
218 /** \brief Enumerator for current field information
219  */
220 typedef enum
221 {
222  IfxCif_IspInformFieldInformation_Odd = 0, /**< \brief Odd field */
223  IfxCif_IspInformFieldInformation_Even = 1 /**< \brief Even field */
225 
226 /** \brief Enumerator for the supported input interfaces of the ISP
227  */
228 typedef enum
229 {
230  IfxCif_IspInputInterface_8BitExternalInterfaceAppendMsb = 0, /**< \brief 8-bit external Interface if enabled append 8 MSBs as LSBs */
231  IfxCif_IspInputInterface_8BitExternalInterfaceAppendZeros = 1, /**< \brief 8-bit external Interface if enabled append 8 zeroes as LSBs */
232  IfxCif_IspInputInterface_10BitExternalInterfaceAppendMsb = 2, /**< \brief 10-bit external Interface if enabled append 6 MSBs as LSBs */
233  IfxCif_IspInputInterface_10BitExternalInterfaceAppendZeros = 3, /**< \brief 10-bit external Interface if enabled append 6 zeroes as LSBs */
234  IfxCif_IspInputInterface_12BitExternalInterfaceAppendMsb = 4, /**< \brief 12-bit external Interface if enabled append 4 MSBs as LSBs */
235  IfxCif_IspInputInterface_12BitExternalInterfaceAppendZeros = 5, /**< \brief 12-bit external Interface if enabled append 4 zeroes as LSBs */
236  IfxCif_IspInputInterface_14BitExternalInterfaceAppendMsb = 6, /**< \brief 14-bit external Interface if enabled append 2 MSBs as LSBs */
237  IfxCif_IspInputInterface_14BitExternalInterfaceAppendZeros = 7, /**< \brief 14-bit external Interface if enabled append 2 zeroes as LSBs */
238  IfxCif_IspInputInterface_16BitExternalInterface = 8 /**< \brief 16-bit external Interface */
240 
241 /** \brief Enumerator for interrupt sources of the ISP submodule
242  */
243 typedef enum
244 {
245  IfxCif_IspInterruptSources_SecurityWatchdogTimeout = 0, /**< \brief A watchdog timeout was triggered at the ISP input */
246  IfxCif_IspInterruptSources_StartEdgeOfHSync = 1, /**< \brief Start Edge of h_sync */
247  IfxCif_IspInterruptSources_StartEdgeOfVSync = 2, /**< \brief Start Edge of v_sync */
248  IfxCif_IspInterruptSources_SampledInputFrameComplete = 3, /**< \brief Sampled Input Frame is Complete */
249  IfxCif_IspInterruptSources_PictureSizeViolationOccurred = 4, /**< \brief Picture Size Violation Occurred */
250  IfxCif_IspInterruptSources_LossOfData = 5, /**< \brief Loss of Data */
251  IfxCif_IspInterruptSources_FrameCompletelyPutOut = 6, /**< \brief Frame was Completely Put Out */
252  IfxCif_IspInterruptSources_IspTurnedOff = 7 /**< \brief Isp was Turned Off (vsynced) */
254 
255 /** \brief Enumerator for the ISP mode
256  */
257 typedef enum
258 {
259  IfxCif_IspMode_RawPicture = 0, /**< \brief RAW picture */
260  IfxCif_IspMode_ItuRBT656 = 1, /**< \brief ITU-R BT.656 (YUV with embedded sync) */
261  IfxCif_IspMode_ItuRBT601 = 2, /**< \brief ITU-R BT.601 (YUV input with H and Vsync signals) */
262  IfxCif_IspMode_DataMode = 4, /**< \brief datamode (ISP bypass, sync signals interpreted as data enable) */
263  IfxCif_IspMode_RawPictureWithItuRBT656Sync = 6 /**< \brief RAW picture mode with ITU-R BT.656 synchronization */
265 
266 /** \brief Enumerator for ISP sampling edge
267  */
268 typedef enum
269 {
270  IfxCif_IspSamplingEdge_NegativeEdge = 0, /**< \brief negative edge sampling */
271  IfxCif_IspSamplingEdge_PositiveEdge = 1 /**< \brief positive edge sampling */
273 
274 /** \brief
275  */
276 typedef enum
277 {
278  IfxCif_IspSyncPolarity_HighActive = 0, /**< \brief high active sync polarity */
279  IfxCif_IspSyncPolarity_LowActive = 1 /**< \brief low active sync polarity */
281 
282 /** \} */
283 
284 /** \addtogroup IfxLld_Cif_Std_ldsEnumerations
285  * \{ */
286 /** \brief Enumerator for scaling mode of linear downscaler
287  */
288 typedef enum
289 {
290  IfxCif_LinearDownscalerScalingMode_SingleSkip = 0, /**< \brief Scaling mode single skip */
291  IfxCif_LinearDownscalerScalingMode_DoubleSkip = 1, /**< \brief Scaling mode double skip */
292  IfxCif_LinearDownscalerScalingMode_SinglePass = 2, /**< \brief Scaling mode single pass */
293  IfxCif_LinearDownscalerScalingMode_DoublePass = 3, /**< \brief Scaling mode double pass */
294  IfxCif_LinearDownscalerScalingMode_Disabled = -1 /**< \brief Disabled */
296 
297 /** \} */
298 
299 /** \addtogroup IfxLld_Cif_Std_miEnumerations
300  * \{ */
301 /** \brief Enumerator for burst length affecting the write port of the memory interface
302  */
303 typedef enum
304 {
305  IfxCif_MiBurstLength_4BeatBursts = 0, /**< \brief 4-beat bursts */
306  IfxCif_MiBurstLength_8BeatBursts = 1 /**< \brief 8-beat bursts */
308 
309 /** \brief Enumerator for data paths of the memory interface
310  */
311 typedef enum
312 {
313  IfxCif_MiDataPaths_RawData = 0, /**< \brief RAW data path */
314  IfxCif_MiDataPaths_JpegData = 1, /**< \brief JPEG data path */
315  IfxCif_MiDataPaths_MainPictureData = 2 /**< \brief main picture data path */
317 
318 /** \brief Enumerator for interrupt sources of the memory interface submodule
319  */
320 typedef enum
321 {
322  IfxCif_MiInterruptSources_BusError = 0, /**< \brief Bus write or read error interrupt (from handshake target interfaces) */
323  IfxCif_MiInterruptSources_WrapMainPictureCr = 1, /**< \brief Main picture Cr address wrap interrupt */
324  IfxCif_MiInterruptSources_WrapMainPictureCb = 2, /**< \brief Main picture Cb address wrap interrupt */
325  IfxCif_MiInterruptSources_WrapMainPictureY = 3, /**< \brief Main picture Y address wrap interrupt */
326  IfxCif_MiInterruptSources_FillMainPictureY = 4, /**< \brief Main picture Y address wrap interrupt */
327  IfxCif_MiInterruptSources_MacroBlockLine = 5, /**< \brief Macroblock line interrupt of main picture (16 lines of Y, 8 lines of Cb and 8 lines of Cr are written into RAM) */
328  IfxCif_MiInterruptSources_MainPictureFrameEnd = 6 /**< \brief Picture end of frame interrupt */
330 
331 /** \brief Enumerator for main picture path components of the memory interface
332  */
333 typedef enum
334 {
335  IfxCif_MiMainPicturePathComponents_Y = 0, /**< \brief Y-component */
336  IfxCif_MiMainPicturePathComponents_Cb = 1, /**< \brief Cb-component */
337  IfxCif_MiMainPicturePathComponents_Cr = 2 /**< \brief Cr-component */
339 
340 /** \brief Enumerator for write formats of data written into memory
341  */
342 typedef enum
343 {
344  IfxCif_MiMainPictureWriteFormat_PlanarOrData8Bit = 0, /**< \brief planar (YCbCr mode) / RAW & data mode (8 bit) */
345  IfxCif_MiMainPictureWriteFormat_SemiPlanarOrData8Bit = 1, /**< \brief semi-planar for YCbCr 4:2:x / RAW 8 bit */
346  IfxCif_MiMainPictureWriteFormat_InterleavedOrDataGreater8Bit = 2 /**< \brief interleaved_combined for YCbCr 4:2:2 only / RAW & data mode (greater 8 up to 16 bit) */
348 
349 /** \brief Enumerator for status clear sources of the memory interface module
350  */
351 typedef enum
352 {
353  IfxCif_MiStatusClearSources_ExtraPath5FifoFull = 0, /**< \brief FIFO full flag in extra path 5 */
354  IfxCif_MiStatusClearSources_ExtraPath4FifoFull = 1, /**< \brief FIFO full flag in extra path 4 */
355  IfxCif_MiStatusClearSources_ExtraPath3FifoFull = 2, /**< \brief FIFO full flag in extra path 3 */
356  IfxCif_MiStatusClearSources_ExtraPath2FifoFull = 3, /**< \brief FIFO full flag in extra path 2 */
357  IfxCif_MiStatusClearSources_ExtraPath1FifoFull = 4, /**< \brief FIFO full flag in extra path 1 */
358  IfxCif_MiStatusClearSources_BusWriteError = 5, /**< \brief Bus write error flag */
359  IfxCif_MiStatusClearSources_MainPictureCrFifoFull = 6, /**< \brief Cr FIFO full flag in main path */
360  IfxCif_MiStatusClearSources_MainPictureCbFifoFull = 7, /**< \brief Cb FIFO full flag in main path */
361  IfxCif_MiStatusClearSources_MainPictureYFifoFull = 8 /**< \brief Y FIFO full flag in main path */
363 
364 /** \brief Enumerator for status information sources of the memory interface submodule
365  */
366 typedef enum
367 {
368  IfxCif_MiStatusInformationSources_BusWriteError = 0, /**< \brief An Bus error occurred while writing to the Bus (main/self path) since last clear */
369  IfxCif_MiStatusInformationSources_MainPictureCrFifoFull = 1, /**< \brief FIFO full flag of Cr FIFO in main path asserted since last clear */
370  IfxCif_MiStatusInformationSources_MainPictureCbFifoFull = 2, /**< \brief FIFO full flag of Cb FIFO in main path asserted since last clear */
371  IfxCif_MiStatusInformationSources_MainPictureYFifoFull = 3 /**< \brief FIFO full flag of Y FIFO in main path asserted since last clear */
373 
374 /** \} */
375 
376 /** \addtogroup IfxLld_Cif_Std_jpeEnumerations
377  * \{ */
378 /** \brief Enumerator for the Huffman Table components
379  */
380 typedef enum
381 {
382  IfxCif_HuffmanTableComponents_Component0 = 0, /**< \brief Component 0 */
383  IfxCif_HuffmanTableComponents_Component1 = 1, /**< \brief Component 1 */
384  IfxCif_HuffmanTableComponents_Component2 = 2 /**< \brief Component 2 */
386 
387 /** \brief Enumerator for the Huffman Tables
388  */
389 typedef enum
390 {
391  IfxCif_HuffmanTables_Table0 = 0, /**< \brief Huffman Table 0 */
392  IfxCif_HuffmanTables_Table1 = 1 /**< \brief Huffman Table 1 */
394 
395 /** \brief Enumerator for the debug signal sources
396  */
397 typedef enum
398 {
399  IfxCif_JpeDebugSignalSources_BadTableAccess = 0, /**< \brief Debug Bad Table Access (set if an access to the TABLE_DATA or to the TABLE_ID register is performed, when the JPEG_ENCODER is busy) */
400  IfxCif_JpeDebugSignalSources_VlcTableBusy = 1, /**< \brief Debug VLC Table Busy (vlc access to hufftables) */
401  IfxCif_JpeDebugSignalSources_R2BMemoryFull = 2, /**< \brief R2B Memory Full (line memory status of r2b) */
402  IfxCif_JpeDebugSignalSources_VlcEncodeBusy = 3, /**< \brief VLC Encode Busy (vlc encode processing active) */
403  IfxCif_JpeDebugSignalSources_QiqTableAccess = 4 /**< \brief QiqTableAccess */
405 
406 /** \brief Enumerator for the debug signal state
407  */
408 typedef enum
409 {
410  IfxCif_JpeDebugSignalState_Inactive = 0, /**< \brief Debug signal is inactive */
411  IfxCif_JpeDebugSignalState_Active = 1 /**< \brief Debug signal is active */
413 
414 /** \brief Enumerator for the header generation debug control
415  */
416 typedef enum
417 {
418  IfxCif_JpeHeaderGenerationMode_WaitForEncodedImage = 0, /**< \brief wait for encoded image data to fill output buffer */
419  IfxCif_JpeHeaderGenerationMode_TransmitLastHeaderBytes = 1 /**< \brief immediately transmit last header bytes */
421 
422 /** \brief Enumerator for the JPE header mode
423  */
424 typedef enum
425 {
426  IfxCif_JpeHeaderMode_NoAppnHeader = 0, /**< \brief no APPn header */
427  IfxCif_JpeHeaderMode_JfifHeader = 2 /**< \brief JFIF header */
429 
430 /** \brief Enumerator for interrupt sources of the JPEG encoder module
431  */
432 typedef enum
433 {
434  IfxCif_JpeInterruptSources_VlcTableError = 0, /**< \brief VLC table error */
435  IfxCif_JpeInterruptSources_R2BImageSizeError = 1, /**< \brief R2B image size error */
436  IfxCif_JpeInterruptSources_DcTableError = 2, /**< \brief DC Table error */
437  IfxCif_JpeInterruptSources_VlcSymbolError = 3, /**< \brief VLC symbol error */
438  IfxCif_JpeInterruptSources_HeaderGenerationComplete = 4, /**< \brief Header generation complete */
439  IfxCif_JpeInterruptSources_EncodingComplete = 5 /**< \brief Encoding complete */
441 
442 /** \brief Enumerator for the Q-Table selector
443  */
444 typedef enum
445 {
446  IfxCif_JpeQTableSelector_Table0 = 0, /**< \brief Q-Table 0 */
447  IfxCif_JpeQTableSelector_Table1 = 1, /**< \brief Q-Table 1 */
448  IfxCif_JpeQTableSelector_Table2 = 2, /**< \brief Q-Table 2 */
449  IfxCif_JpeQTableSelector_Table3 = 3 /**< \brief Q-Table 3 */
451 
452 /** \brief Enumerator for the components to select Q-Tables
453  */
454 typedef enum
455 {
456  IfxCif_JpeQTableSelectorComponents_Y = 0, /**< \brief Y-component */
457  IfxCif_JpeQTableSelectorComponents_U = 1, /**< \brief U-component */
458  IfxCif_JpeQTableSelectorComponents_V = 2 /**< \brief V-component */
460 
461 /** \brief Enumerator for the input scaling values of the JPEG encoder
462  */
463 typedef enum
464 {
465  IfxCif_JpeScalingValueSources_Y = 0, /**< \brief scaling Y input from [16..235] to [0..255] */
466  IfxCif_JpeScalingValueSources_CbCr = 1 /**< \brief scaling Cb/Cr input from [16..240] to [0..255] */
468 
469 /** \brief Enumerator for the codec state
470  */
471 typedef enum
472 {
473  IfxCif_JpeState_Free = 0, /**< \brief Codec is free (not busy) */
474  IfxCif_JpeState_Busy = 1 /**< \brief JPEG codec in process */
476 
477 /** \brief Enumerator for the JPE Tables
478  */
479 typedef enum
480 {
481  IfxCif_JpeTableId_QTable0 = 0, /**< \brief Q-Table 0 */
482  IfxCif_JpeTableId_QTable1 = 1, /**< \brief Q-Table 1 */
483  IfxCif_JpeTableId_QTable2 = 2, /**< \brief Q-Table 2 */
484  IfxCif_JpeTableId_QTable3 = 3, /**< \brief Q-Table 3 */
485  IfxCif_JpeTableId_VlcDcTable0 = 4, /**< \brief VLC DC Table 0 */
486  IfxCif_JpeTableId_VlcAcTable0 = 5, /**< \brief VLC AC Table 0 */
487  IfxCif_JpeTableId_VlcDcTable1 = 6, /**< \brief VLC DC Table 1 */
488  IfxCif_JpeTableId_VlcAcTable1 = 7 /**< \brief VLC AC Table 1 */
490 
491 /** \brief Enumerator for the JFIF stream encoder continuous mode
492  */
493 typedef enum
494 {
495  IfxCif_JpegJfifStreamEncoderContinuousMode_StopAtFrameEnd = 0, /**< \brief encoder stops at frame end */
496  IfxCif_JpegJfifStreamEncoderContinuousMode_StartAutomatically = 1, /**< \brief encoder starts automatically to encode the next frame */
497  IfxCif_JpegJfifStreamEncoderContinuousMode_GenerateHeaderAndStartAutomatically = 3 /**< \brief encoder first generates next header and then encodes automatically the next frame */
499 
500 /** \brief Enumerator for the picture encoding format
501  */
502 typedef enum
503 {
504  IfxCif_JpegPictureEncodingFormat_422 = 0, /**< \brief 4:2:2 format */
505  IfxCif_JpegPictureEncodingFormat_400 = 1 /**< \brief 4:0:0 format */
507 
508 /** \} */
509 
510 /** \addtogroup IfxLld_Cif_Std_swEnumerations
511  * \{ */
512 /** \brief Enumerator for watchdog counters
513  */
514 typedef enum
515 {
516  IfxCif_SecurityWatchdogCounters_Predivider = 0, /**< \brief Predivider counter */
517  IfxCif_SecurityWatchdogCounters_Vertical = 1, /**< \brief Vertical counter */
518  IfxCif_SecurityWatchdogCounters_Horizontal = 2 /**< \brief Horizontal counter */
520 
521 /** \brief Enumerator for interrupt sources of the security watchdog submodule
522  */
523 typedef enum
524 {
525  IfxCif_SecurityWatchdogInterruptSources_VerticalEndStartTimeout = 0, /**< \brief Vertical End Start Interrupt */
526  IfxCif_SecurityWatchdogInterruptSources_VerticalStartEndTimeout = 1, /**< \brief Vertical Start End Interrupt */
527  IfxCif_SecurityWatchdogInterruptSources_HorizontalEndStartTimeout = 2, /**< \brief Horizontal End Start Interrupt */
528  IfxCif_SecurityWatchdogInterruptSources_HorizontalStartEndTimeout = 3 /**< \brief Horizontal Start End Interrupt */
530 
531 /** \brief Enumerator for watchdog timeout counters
532  */
533 typedef enum
534 {
535  IfxCif_SecurityWatchdogTimeoutCounters_EndStart = 0, /**< \brief Timeout counter for End Start phase */
536  IfxCif_SecurityWatchdogTimeoutCounters_StartEnd = 1 /**< \brief Timeout counter for Start End phase */
538 
539 /** \} */
540 
541 /** \addtogroup IfxLld_Cif_Std_epEnumerations
542  * \{ */
543 /** \brief Enumerator for error sources that can be cleared in the extra paths registers
544  */
545 typedef enum
546 {
547  IfxCif_EpErrorClearSources_ExtraPath5SizeError = 0, /**< \brief Size error in image cropping unit of extra path 5 */
548  IfxCif_EpErrorClearSources_ExtraPath4SizeError = 1, /**< \brief Size error in image cropping unit of extra path 4 */
549  IfxCif_EpErrorClearSources_ExtraPath3SizeError = 2, /**< \brief Size error in image cropping unit of extra path 3 */
550  IfxCif_EpErrorClearSources_ExtraPath2SizeError = 3, /**< \brief Size error in image cropping unit of extra path 2 */
551  IfxCif_EpErrorClearSources_ExtraPath1SizeError = 4 /**< \brief Size error in image cropping unit of extra path 1 */
553 
554 /** \brief Enumerator for error sources of extra paths
555  */
556 typedef enum
557 {
558  IfxCif_EpErrorSources_ExtraPath5FifoFull = 0, /**< \brief FIFO of extra path 5 is full */
559  IfxCif_EpErrorSources_ExtraPath4FifoFull = 1, /**< \brief FIFO of extra path 4 is full */
560  IfxCif_EpErrorSources_ExtraPath3FifoFull = 2, /**< \brief FIFO of extra path 3 is full */
561  IfxCif_EpErrorSources_ExtraPath2FifoFull = 3, /**< \brief FIFO of extra path 2 is full */
562  IfxCif_EpErrorSources_ExtraPath1FifoFull = 4, /**< \brief FIFO of extra path 1 is full */
563  IfxCif_EpErrorSources_ExtraPath5SizeError = 5, /**< \brief Size error in image cropping unit of extra path 5 */
564  IfxCif_EpErrorSources_ExtraPath4SizeError = 6, /**< \brief Size error in image cropping unit of extra path 4 */
565  IfxCif_EpErrorSources_ExtraPath3SizeError = 7, /**< \brief Size error in image cropping unit of extra path 3 */
566  IfxCif_EpErrorSources_ExtraPath2SizeError = 8, /**< \brief Size error in image cropping unit of extra path 2 */
567  IfxCif_EpErrorSources_ExtraPath1SizeError = 9 /**< \brief Size error in image cropping unit of extra path 1 */
569 
570 /** \brief Enumerator for extra path features
571  */
572 typedef enum
573 {
574  IfxCif_EpFeatures_InitOffsetCounter = 0, /**< \brief Init offest counter */
575  IfxCif_EpFeatures_InitBaseAddress = 1, /**< \brief Init buffer base address */
576  IfxCif_EpFeatures_ByteSwap = 2, /**< \brief Byte swap feature */
577  IfxCif_EpFeatures_PictureDataPath = 3 /**< \brief enables the extra path picture data path */
579 
580 /** \brief Enumerator for interrupt sources of the extra paths module
581  */
582 typedef enum
583 {
584  IfxCif_EpInterrupts_FrameEnd = IFX_CIF_MIEP_MIS_FRAME_END_EP_1_OFF, /**< \brief Picture end of frame interrupt */
585  IfxCif_EpInterrupts_FillLevel = IFX_CIF_MIEP_MIS_FILL_EP_1_OFF, /**< \brief Fill level interrupt */
586  IfxCif_EpInterrupts_WrapAround = IFX_CIF_MIEP_MIS_WRAP_EP_1_OFF, /**< \brief Address wrap interrupt */
587  IfxCif_EpInterrupts_MacroBlockLine = IFX_CIF_MIEP_MIS_MBLK_LINE_EP_1_OFF, /**< \brief Macroblock line interrupt */
588  IfxCif_EpInterrupts_Count = 4 /**< \brief Total number of interrupt sources for one extra path */
590 
591 /** \brief Enumerator for write formats of extra paths
592  */
593 typedef enum
594 {
595  IfxCif_EpWriteFormat_RawAndData = 0, /**< \brief Raw and data mode (8 bit) */
596  IfxCif_EpWriteFormat_Raw8Bit = 1, /**< \brief Raw 8 bit mode */
597  IfxCif_EpWriteFormat_RawGreater = 2, /**< \brief RAW & data mode (greater 8 up to 16 bit) */
598  IfxCif_EpWriteFormat_YCbCr = 3 /**< \brief YCbCr 16 bit; YCbCr data is handled interleaved as 16 bit data in extra paths */
600 
601 /** \} */
602 
603 /** \addtogroup IfxLld_Cif_Std_dpEnumerations
604  * \{ */
605 /** \brief Enumerator for debug path control sources
606  */
607 typedef enum
608 {
609  IfxCif_DpControlSources_UserDefinedSymbol8 = 0, /**< \brief User defined symbol 8 */
610  IfxCif_DpControlSources_UserDefinedSymbol7 = 1, /**< \brief User defined symbol 7 */
611  IfxCif_DpControlSources_UserDefinedSymbol6 = 2, /**< \brief User defined symbol 6 */
612  IfxCif_DpControlSources_UserDefinedSymbol5 = 3, /**< \brief User defined symbol 5 */
613  IfxCif_DpControlSources_UserDefinedSymbol4 = 4, /**< \brief ser defined symbol 4 */
614  IfxCif_DpControlSources_UserDefinedSymbol3 = 5, /**< \brief User defined symbol 3 */
615  IfxCif_DpControlSources_UserDefinedSymbol2 = 6, /**< \brief User defined symbol 2 */
616  IfxCif_DpControlSources_UserDefinedSymbol1 = 7, /**< \brief User defined symbol 1 */
617  IfxCif_DpControlSources_TimestampCounter = 8, /**< \brief Timestamp counter */
618  IfxCif_DpControlSources_LineNumberCounter = 9, /**< \brief Line number counter */
619  IfxCif_DpControlSources_FrameNumberCounter = 10 /**< \brief Frame number counter */
621 
622 /** \brief Enumerator for debug path counters
623  */
624 typedef enum
625 {
626  IfxCif_DpCounters_PredividerCounter = 0, /**< \brief Predivider counter */
627  IfxCif_DpCounters_TimestampCounter = 1, /**< \brief Timestamp counter */
628  IfxCif_DpCounters_LineNumberCounter = 2, /**< \brief Line number counter */
629  IfxCif_DpCounters_FrameNumberCounter = 3 /**< \brief Frame number counter */
631 
632 /** \brief Enumerator for debug path source paths
633  */
634 typedef enum
635 {
636  IfxCif_DpSourcePath_MainPath = 0, /**< \brief Main data path */
637  IfxCif_DpSourcePath_ExtraPath1 = 1, /**< \brief Extra path 1 */
638  IfxCif_DpSourcePath_ExtraPath2 = 2, /**< \brief Extra path 2 */
639  IfxCif_DpSourcePath_ExtraPath4 = 4, /**< \brief Extra path 4 */
640  IfxCif_DpSourcePath_ExtraPath5 = 5 /**< \brief Extra path 5 */
642 
643 /** \} */
644 
645 /** \addtogroup IfxLld_Cif_Std_stdFunctions
646  * \{ */
647 
648 /******************************************************************************/
649 /*-------------------------Inline Function Prototypes-------------------------*/
650 /******************************************************************************/
651 
652 /** \brief Function to clear the kernel reset state
653  * \return None
654  */
656 
657 /** \brief Function to query the CIF module ID
658  * \return CIF module ID
659  */
661 
662 /** \brief Function to query the port input selection
663  * \return Always @ref IfxCif_PortInputSelection_PinMapping0
664  */
666 
667 /** \brief Function to query the CIF module revision
668  * \return CIF module revision
669  */
671 
672 /** \brief Function to query the CIF module ID
673  * \return CIF module type
674  */
676 
677 /** \brief Function to query the clock distribution enabled state
678  * \return @ref IfxCif_State_Enabled if clock distribution is enabled, @ref IfxCif_State_Disabled otherwise
679  */
681 
682 /** \brief Function to query the data path for main path
683  * \return Selector for the main data path (one member of @ref IfxCif_DataPathSelectorForMainPath)
684  */
686 
687 /** \brief Function to query the input interface of the CIF interface
688  * \return @ref IfxCif_InputInterface Type of the configured interface
689  */
691 
692 /** \brief Function to query the current level of the ISP input port s_hsync (for testing purposes only)
693  * \return @ref IfxCif_State_Enabled if s_hsync is high, @ref IfxCif_State_Disabled if s_hsync is low
694  */
696 
697 /** \brief Function to query the kernel reset status
698  * \return @ref IfxCif_State_Enabled if kernel reset was executed, @ref IfxCif_State_Disabled otherwise
699  */
701 
702 /** \brief Function to query the module number
703  * \return Module number of the CIF interface
704  */
706 
707 /** \brief Function to query the revision number of the CIF interface
708  * \return Revision number of the CIF interface
709  */
711 
712 /** \brief Function to query the state of the CIF module
713  * \return @ref IfxCif_State_Enabled if the module is currently enabled, @ref IfxCif_State_Disabled otherwise
714  */
716 
717 /** \brief Function to query the module type
718  * \return Module type of the CIF interface
719  */
721 
722 /** \brief Function to query the Y/C splitter channel mode
723  * \return Configured mode of the Y/C splitter (one member of @ref IfxCif_YCSplitterChannelMode)
724  */
726 
727 /** \brief Function to enable or disable the clock distribution to all CIF submodules
728  * \param clockControlLogicState @ref IfxCif_State_Enabled to enable clock distribution, @ref IfxCif_State_Disabled to disable clock distribution
729  * \return None
730  */
731 IFX_INLINE void IfxCif_setClockControlLogicState(IfxCif_State clockControlLogicState);
732 
733 /** \brief Function to set the data path for main path
734  * \param pathSelector Selector for the main data path
735  * \return None
736  */
738 
739 /** \brief Function to set the input interface of the CIF interface
740  * \param interface Type of interface
741  * \return None
742  */
744 
745 /** \brief Function to request a kernel reset or reset the request bit
746  * \param state @ref IfxCif_State_Enabled to request a reset, @ref IfxCif_State_Disabled to reset the request bit before a reset was performed
747  * \return None
748  */
750 
751 /** \brief Function to set the Y/C splitter channel mode
752  * \param mode Mode of the Y/C splitter to set
753  * \return None
754  */
756 
757 /******************************************************************************/
758 /*-------------------------Global Function Prototypes-------------------------*/
759 /******************************************************************************/
760 
761 /** \brief Function to query the clock state of a submodule
762  * \param submodule Identifier of the submodule
763  * \return @ref IfxCif_State_Enabled if the clock of the submodule is enabled, @ref IfxCif_State_Disabled otherwise
764  */
766 
767 /** \brief Function to query the state of the kernel reset request bit
768  * \return @ref IfxCif_State_Enabled if the kernel reset requets bit is set, @ref IfxCif_State_Disabled otherwise
769  */
771 
772 /** \brief Function to query the reset mode of a submodule
773  * \param submodule Identifier of the submodule
774  * \return @ref IfxCif_State_Enabled if the reset mode of the submodule is enabled, @ref IfxCif_State_Disabled otherwise
775  */
777 
778 /** \brief resets CIF kernel
779  * \param cifBbb pointer to CIF_BBB registers
780  * \return None
781  */
782 IFX_EXTERN void IfxCif_resetModule(Ifx_CIF_BBB *cifBbb);
783 
784 /** \brief Function to enable or disable the clock of a submodule
785  * \param submodule Identifier of the submodule to enable or disable
786  * \param clockState @ref IfxCif_State_Enabled to enable the clock, @ref IfxCif_State_Disabled to disable the clock
787  * \return None
788  */
790 
791 /** \brief Function to request enabling or disabling of the CIF module
792  * \param state @ref IfxCif_State_Enabled to request the enabling of the module, @ref IfxCif_State_Disabled otherwise
793  * \return None
794  */
796 
797 /** \brief Function to enable or disable the reset mode of a submodule
798  * \param submodule Identifier of the submodule
799  * \param resetMode @ref IfxCif_State_Enabled to enable the reset of the submodule, @ref IfxCif_State_Disabled to disable the reset
800  * \return None
801  */
803 
804 /** \} */
805 
806 /** \addtogroup IfxLld_Cif_Std_ispFunctions
807  * \{ */
808 
809 /******************************************************************************/
810 /*-------------------------Inline Function Prototypes-------------------------*/
811 /******************************************************************************/
812 
813 /** \brief Function to generate a frame synchronous ISP configuration update signal
814  * \return None
815  */
817 
818 /** \brief Function to generate an immediate ISP configuration update signal
819  * \return None
820  */
822 
823 /** \brief Function to query the current ISP frame count
824  * \return Current ISP frame count
825  */
827 
828 /** \brief Function to query the current field information
829  * \return @ref IfxCif_IspInformFieldInformation_Odd for odd fields, @ref IfxCif_IspInformFieldInformation_Even for even fields
830  */
832 
833 /** \brief Function to query the current state of the ISP formatter
834  * \return @ref IfxCif_State_Enabled if the ISP input formatter is currently enabled, @ref IfxCif_State_Disabled if the ISP input formatter is currently disabled
835  */
837 
838 /** \brief Function to query the currently set CCIR sequence
839  * \return Currently set CCIR sequence (one member of @ref IfxCif_IspCcirSequence)
840  */
842 
843 /** \brief Function to query the clipping range of the crominance of the ISP output
844  * \return Currently set clipping range (one member of @ref IfxCif_IspColorSpaceMatrixCrominanceClippingRange)
845  */
847 
848 /** \brief Function to query the clipping range of the luminance of the ISP output
849  * \return Currently set clipping range (one member of @ref IfxCif_IspColorSpaceMatrixLuminanceClippingRange)
850  */
852 
853 /** \brief Function to query the state of field ID inversion
854  * \return @ref IfxCif_State_Enabled if field ID inversion is enabled, @ref IfxCif_State_Disabled otherwise
855  */
857 
858 /** \brief Function to query the currently set field sample mode
859  * \return Currently set fields sample mode (one member of @ref IfxCif_IspFieldSelection)
860  */
862 
863 /** \brief Function to query the currently set polarity of the HSYNC signal
864  * \return @ref IfxCif_IspSyncPolarity_HighActive if HSYNC is configured as high active, @ref IfxCif_IspSyncPolarity_LowActive if HSYNC is configured as low active
865  */
867 
868 /** \brief Function to query the current state of the ISP input formatter
869  * \return @ref IfxCif_State_Enabled if the ISP input formatter is enabled, @ref IfxCif_State_Disabled otherwise
870  */
872 
873 /** \brief Function to query the ISP input interface bit width
874  * \return Configured ISP input interface bit width (one member of @ref IfxCif_IspInputInterface)
875  */
877 
878 /** \brief Function to query the current value of the ISP input port s_data (for test purposes only)
879  * \return Current value of s_data
880  */
882 
883 /** \brief Function to query the current level of the ISP input port s_vsync (for test purposes only)
884  * \return @ref IfxCif_State_Enabled if s_vsync is high, @ref IfxCif_State_Disabled if s_vsync is low
885  */
887 
888 /** \brief Function to query the currently set ISP mode
889  * \return Current ISP mode (one member of @ref IfxCif_IspMode)
890  */
892 
893 /** \brief Function to query the ISP output state
894  * \return @ref IfxCif_State_Enabled if the ISP output is enabled, @ref IfxCif_State_Disabled otherwise
895  */
897 
898 /** \brief Function to query the currently set ISP sampling edge
899  * \return @ref IfxCif_IspSamplingEdge_NegativeEdge if negative clock edge is configured as sampling edge, @ref IfxCif_IspSamplingEdge_PositiveEdge if positive clock edge is configured as sampling edge
900  */
902 
903 /** \brief Function to query the current state of the ISP
904  * \return @ref IfxCif_State_Enabled if the ISP is currently enabled, @ref IfxCif_State_Disabled if the ISP is currently disabled
905  */
907 
908 /** \brief Function to query the currently set polarity of the VSYNC signal
909  * \return @ref IfxCif_IspSyncPolarity_HighActive if VSYNC is configured as high active, @ref IfxCif_IspSyncPolarity_LowActive if VSYNC is configured as low active
910  */
912 
913 /** \brief Function to query the number of acquisition frames
914  * \return Currently set number of acquisition frames
915  */
917 
918 /** \brief Function to set the ISP acquisition offsets
919  * \param hOffset Acquisition horizontal offset to set
920  * \param vOffset Acquisition vertical offset to set
921  * \return None
922  */
924 
925 /** \brief Function to set the ISP acquisition sizes
926  * \param hSize Acquisition horizontal size to set
927  * \param vSize Acquisition vertical size to set
928  * \return None
929  */
931 
932 /** \brief Function to set the CCIR sequence
933  * \param sequence CCIR sequence to set
934  * \return None
935  */
937 
938 /** \brief Function to set the clipping range of the crominance of the ISP output
939  * \param clippingRange Clipping range to set
940  * \return None
941  */
943 
944 /** \brief Function to set the clipping range of the luminance of the ISP output
945  * \param clippingRange Clipping range to set
946  * \return None
947  */
949 
950 /** \brief Function to enable or disable inversion of the field ID
951  * \param fieldInvertState @ref IfxCif_State_Enabled to enable field ID inversion, @ref IfxCif_State_Disabled to disable field ID inversion
952  * \return None
953  */
955 
956 /** \brief Function to select fields to sample
957  * \param selection Sampled fields selector
958  * \return None
959  */
961 
962 /** \brief Function to set the polarity of the HSYNC signal
963  * \param polarity @ref IfxCif_IspSyncPolarity_HighActive for high active HSYNC signal, @ref IfxCif_IspSyncPolarity_LowActive for low active HSYNC signal
964  * \return None
965  */
967 
968 /** \brief Function to enable or disable the ISP input formatter
969  * \param inputFormatterState @ref IfxCif_State_Enabled to enable the ISP input formatter, @ref IfxCif_State_Disabled to disable it
970  * \return None
971  */
973 
974 /** \brief Function to set the ISP input interface bit width
975  * \param input ISP input interface bit width to set
976  * \return None
977  */
979 
980 /** \brief Function to set the ISP mode
981  * \param mode Mode to set
982  * \return None
983  */
985 
986 /** \brief Function to enable or disable the ISP output
987  * \param ispOutputState ispOutputState @ref IfxCif_State_Enabled to enable the ISP output, @ref IfxCif_State_Disabled to disable it
988  * \return None
989  */
991 
992 /** \brief Function to set the ISP output window offsets
993  * \param hOffset Offset horizontal to set
994  * \param vOffset Offset vertical to set
995  * \return None
996  */
998 
999 /** \brief Function to set the ISP picture sizes
1000  * \param hSize Picture horizontal size to set
1001  * \param vSize Picture vertical size to set
1002  * \return None
1003  */
1005 
1006 /** \brief Function to set the ISP sampling edge
1007  * \param edge @ref IfxCif_IspSamplingEdge_NegativeEdge to sample at negative clock edges, @ref IfxCif_IspSamplingEdge_PositiveEdge to sample at positive clock edges
1008  * \return None
1009  */
1011 
1012 /** \brief Function to set the polarity of the VSYNC signal
1013  * \param polarity @ref IfxCif_IspSyncPolarity_HighActive for high active VSYNC signal, @ref IfxCif_IspSyncPolarity_LowActive for low active VSYNC signal
1014  * \return None
1015  */
1017 
1018 /** \brief Function to set the number of acquisition frames
1019  * \param numberOfFrames Number of acquisition frames to set
1020  * \return None
1021  */
1023 
1024 /******************************************************************************/
1025 /*-------------------------Global Function Prototypes-------------------------*/
1026 /******************************************************************************/
1027 
1028 /** \brief Function to clear the error status bit for an error source
1029  * \param errorSource Error source
1030  * \return None
1031  */
1033 
1034 /** \brief Function to clear an interrupt
1035  * \param interruptSource Source of the interrupt
1036  * \return None
1037  */
1039 
1040 /** \brief Function to query the current ISP picture offset for one tier
1041  * \param tier Tier for which to query the current ISP picture offset
1042  * \return Current ISP picture offset
1043  */
1045 
1046 /** \brief Function to query the current ISP picture size for one tier
1047  * \param tier Tier for which to query the current ISP picture size
1048  * \return Current ISP picture size
1049  */
1051 
1052 /** \brief Function to query the currently set ISP acquisition offset of one tier
1053  * \param tier Tier for which to query the ISP acquisition offset
1054  * \return Currently set ISP acquisition offset
1055  */
1057 
1058 /** \brief Function to query the currently set ISP acquisition size of one tier
1059  * \param tier Tier for which to query the ISP acquisition size
1060  * \return Currently set acquisition size
1061  */
1063 
1064 /** \brief Function to query the error state of an error source
1065  * \param errorSource errorSource Error source to query
1066  * \return @ref IfxCif_ErrorState_Error if the error occured, @ref IfxCif_ErrorState_NoError if the error did not occur
1067  */
1069 
1070 /** \brief Function to query the append state
1071  * \return @ref IfxCif_State_Enabled if appending is enabled, IfxCif_State_Disabled otherwise
1072  */
1074 
1075 /** \brief Function to query the enabled state of an interrupt
1076  * \param interruptSource interruptSource Source of the interrupt
1077  * \return @ref IfxCif_State_Enabled if the interrupt is enabled, @ref IfxCif_State_Disabled if the interrupt is disabled
1078  */
1080 
1081 /** \brief Function to query the currently set ISP output window offset for one tier
1082  * \param tier Tier for which to query the ISP output window offset
1083  * \return Currently set ISP output window offset
1084  */
1086 
1087 /** \brief Function to query the currently set ISP picture size of one tier
1088  * \param tier Tier for which to query the ISP picture size
1089  * \return Currently set ISP picture size
1090  */
1092 
1093 /** \brief Function to query the masked state of an interrupt
1094  * \return @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is set and the interrupt is enabled, @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is not set or the interrupt is disabled
1095  */
1097 
1098 /** \brief Function to query the raw state of an interrupt
1099  * \param interruptSource Source of the interrupt
1100  * \return @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is set, @ref IfxCif_InterruptTriggeredState_NotTriggered if the interrupt request bit is not set
1101  */
1103 
1104 /** \brief Function to set the ISP acquisition offset of one tier
1105  * \param tier Tier for which to set the ISP acquisition offset
1106  * \param offset Acquisition offset to set
1107  * \return None
1108  */
1110 
1111 /** \brief Function to set the ISP acquisition size of one tier
1112  * \param tier Tier for which to set the ISP acquisition size
1113  * \param size Acquisition size to set
1114  * \return None
1115  */
1117 
1118 /** \brief Function to enable or disable appending of bits to the input signal
1119  * \param appendState @ref IfxCif_State_Enabled if appending is enabled, IfxCif_State_Disabled otherwise
1120  * \return None
1121  */
1123 
1124 /** \brief Function to enable or disable an interrupt
1125  * \param interruptSource interruptSource Source of the interrupt to enable or disable
1126  * \param interruptEnableState @ref IfxCif_State_Enabled to enable the interrupt, @ref IfxCif_State_Disabled to disable the interrupt
1127  * \return None
1128  */
1129 IFX_EXTERN void IfxCif_setIspInterruptEnableState(IfxCif_IspInterruptSources interruptSource, IfxCif_State interruptEnableState);
1130 
1131 /** \brief Function to set an interrupt request bit (does not necessarily trigger an interrupt)
1132  * \param interruptSource Source of the interrupt
1133  * \return None
1134  */
1136 
1137 /** \brief Function to set the ISP output window offset for one tier
1138  * \param tier Tier for which to query the ISP output window offset
1139  * \param offset Offset to set
1140  * \return None
1141  */
1143 
1144 /** \brief Function to set the ISP picture size of one tier
1145  * \param tier Tier for which to set the ISP picture size
1146  * \param pictureSize Picture size to set
1147  * \return None
1148  */
1150 
1151 /** \} */
1152 
1153 /** \addtogroup IfxLld_Cif_Std_ldsFunctions
1154  * \{ */
1155 
1156 /******************************************************************************/
1157 /*-------------------------Global Function Prototypes-------------------------*/
1158 /******************************************************************************/
1159 
1160 /** \brief Function to query the current state of the linear downscaler for one tier
1161  * \param tier Tier for which to query the state of the linear downscaler
1162  * \return @ref IfxCif_State_Enabled if the linear downscaler is enabled, @ref IfxCif_State_Disabled if the linear downscaler is disabled
1163  */
1165 
1166 /** \brief Function to query the currently set scaling factor of the linear downscaler of one tier
1167  * \param tier Tier for which to query the scaling factor
1168  * \return Current set scaling factor
1169  */
1171 
1172 /** \brief Function to query the currently set scaling mode of one tier
1173  * \param tier Tier for which to query the scaling mode
1174  * \return Currently set scaling mode (one member of @ref IfxCif_LinearDownscalerScalingMode)
1175  */
1177 
1178 /** \brief Function to enable or disable the linear downscaler for one tier
1179  * \param tier Tier for which to enable or disable the linear downscaler
1180  * \param enableState @ref IfxCif_State_Enabled to enable the linear downscaler, @ref IfxCif_State_Disabled to disable the linear downscaler
1181  * \return None
1182  */
1184 
1185 /** \brief Function to set the scaling factor of the linear downscaler of one tier
1186  * \param tier Tier for which to set the scaling factor
1187  * \param factor Factor to set (depending on the configured scaling mode every factor + 1 pixel or double pixel will be skipped or passed to the next module)
1188  * \return None
1189  */
1191 
1192 /** \brief Function to set the scaling factors of the linear downscaler
1193  * \param horizFactor Factor horizontal to set (depending on the configured scaling mode every factor + 1 pixel or double pixel will be skipped or passed to the next module)
1194  * \param vertFactor actor horizontal to set (depending on the configured scaling mode every factor + 1 pixel or double pixel will be skipped or passed to the next module)
1195  * \return None
1196  */
1197 IFX_EXTERN void IfxCif_setLinearDownscalerScalingFactors(uint8 horizFactor, uint8 vertFactor);
1198 
1199 /** \brief Function to set the scaling mode of one tier
1200  * \param tier Tier for which to set the scaling mode
1201  * \param mode Scaling mode to set
1202  * \return None
1203  */
1205 
1206 /** \brief Function to set the scaling mode of one tier
1207  * \param horizMode Scaling mode to set for horizontal
1208  * If the horizMode is not IfxCif_LinearDownscalerScalingMode_Disabled, the horizontal scaling will be enabled.
1209  * \param vertMode Scaling mode to set for vertical
1210  * If the vertMode is not IfxCif_LinearDownscalerScalingMode_Disabled, the vertical scaling will be enabled.
1211  * \return None
1212  */
1214 
1215 /** \} */
1216 
1217 /** \addtogroup IfxLld_Cif_Std_miFunctions
1218  * \{ */
1219 
1220 /******************************************************************************/
1221 /*-------------------------Inline Function Prototypes-------------------------*/
1222 /******************************************************************************/
1223 
1224 /** \brief Function to generate an immediate configuration update signal for the memory interface submodule
1225  * \return None
1226  */
1228 
1229 /** \brief Function to query the enabled state of the update signal of the base address and buffer size shadow registers to the programmed register init values
1230  * \return @ref IfxCif_State_Enabled if update of the base address and buffer size shadow registers is enabled (update will be executed either when a forced software update occurs or when an automatic config update signal arrives at the MI input port), @ref IfxCif_State_Disabled if update of the base address and buffer size shadow registers is disabled
1231  */
1233 
1234 /** \brief Function to query the number of JPEG or RAW data bytes of the last transmitted frame
1235  * \return Number of JPEG or RAW data bytes of the last transmitted frame (updated at frame end)
1236  */
1238 
1239 /** \brief Function to query the current state of the change of byte order of the 32 bit output word
1240  * \return @ref IfxCif_State_Enabled if byte swapping is enabled, @ref IfxCif_State_Disabled if byte swapping is disabled
1241  */
1243 
1244 /** \brief Function to query the currently set burst length for Cb and Cr data
1245  * \return @ref IfxCif_MiBurstLength_4BeatBursts if 4 bytes are transferred, @ref IfxCif_MiBurstLength_8BeatBursts if 8 bytes are transferred
1246  */
1248 
1249 /** \brief Function to query the currently set burst length for Y, JPEG, or RAW data
1250  * \return @ref IfxCif_MiBurstLength_4BeatBursts if 4 bytes are transferred, @ref IfxCif_MiBurstLength_8BeatBursts if 8 bytes are transferred
1251  */
1253 
1254 /** \brief Function to query the currently set write format of the main picture path of the memory interface
1255  * \return Currently set write format (one member of @ref IfxCif_MiMainPictureWriteFormat)
1256  */
1258 
1259 /** \brief Function to query the filling level that triggers an interrupt of main picture path Y component
1260  * \return Filling level that triggers an interrupt
1261  */
1263 
1264 /** \brief Function to query the filling level of the main picture Y component that triggers an interrupt
1265  * \return Filling level of the main picture Y component that triggers an interrupt
1266  */
1268 
1269 /** \brief Function to query the enabled state of the update signal of the offset counter shadow registers
1270  * \return @ref IfxCif_State_Enabled if update of the offset counter shadow registers is enabled (update will be executed either when a forced software update occurs or when an automatic config update signal arrives at the MI input port), @ref IfxCif_State_Disabled if update of the offset counter shadow registers is disabled
1271  */
1273 
1274 /** \brief Function to skip the current or next starting main data path picture
1275  * \return None
1276  */
1277 IFX_INLINE void IfxCif_miSkipPicture(void);
1278 
1279 /** \brief Function to enable or disable the update of the base address and buffer size shadow registers to the programmed register init values (update will be executed either when a forced software update occurs or when an automatic config update signal arrives at the MI input port)
1280  * \param state @ref IfxCif_State_Enabled to enable the generation of the update signal, @ref IfxCif_State_Disabled to disable the generation of the update signal
1281  * \return None
1282  */
1284 
1285 /** \brief Function to enable or disable the change of byte order of the 32 bit output word
1286  * \param enableState @ref IfxCif_State_Enabled to enable byte swapping, @ref IfxCif_State_Disabled to disable byte swapping
1287  * \return None
1288  */
1290 
1291 /** \brief Function to set the burst length for Cb and Cr data
1292  * \param burstLength Burst length to set
1293  * \return None
1294  */
1296 
1297 /** \brief Function to set the write format of the main picture path of the memory interface
1298  * \param format Format to set
1299  * \return None
1300  */
1302 
1303 /** \brief Function to set the filling level to trigger an interrupt for main picture path Y component
1304  * \param interruptOffset Filling level to set
1305  * \return None
1306  */
1308 
1309 /** \brief Function to enable or disable the update of the offset counter shadow registers (update will be executed either when a forced software update occurs or when an automatic config update signal arrives at the MI input port)
1310  * \param state @ref IfxCif_State_Enabled to enable the generation of the update signal, @ref IfxCif_State_Disabled to disable the generation of the update signal
1311  * \return None
1312  */
1314 
1315 /******************************************************************************/
1316 /*-------------------------Global Function Prototypes-------------------------*/
1317 /******************************************************************************/
1318 
1319 /** \brief Function to clear an interrupt
1320  * \param interruptSource Source of the interrupt
1321  * \return None
1322  */
1324 
1325 /** \brief Function to clear the status information of one status clear source of the memory interface submodule
1326  * \param source Status information source for which to clear the status
1327  * \return None
1328  */
1330 
1331 /** \brief Function to query the initial base address of the ring buffer of one main picture path component
1332  * \param component Main picture path component for which to query the initial base address
1333  * \return Initial base address of the main picture path component
1334  */
1336 
1337 /** \brief Function to query the masked state of an interrupt
1338  * \param interruptSource Source of the interrupt
1339  * \return ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is set and the interrupt is enabled, @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is not set or the interrupt is disabled
1340  */
1342 
1343 /** \brief Function to query the enabled state of one main data path component at the memory interface input
1344  * \param dataPath Main data path component for which to query the enabled state
1345  * \return @ref IfxCif_State_Enabled if the main data path component is enabled, @ref IfxCif_State_Disabled if the main data path component is disabled
1346  */
1348 
1349 /** \brief Function to query the enabled state of one main data path component at the memory interface output
1350  * \param dataPath Main data path component for which to query the enabled state
1351  * \return @ref IfxCif_State_Enabled if the main data path component is enabled, @ref IfxCif_State_Disabled if the main data path component is disabled
1352  */
1354 
1355 /** \brief Function to query the enabled state of a memory interface data path
1356  * \param dataPath Data path to query
1357  * \return @ref IfxCif_State_Enabled if the memory interface data path is enabled, @ref IfxCif_State_Disabled if the data path is disabled
1358  */
1360 
1361 /** \brief Function to query the enabled state of an interrupt
1362  * \param interruptSource Source of the interrupt
1363  * \return @ref IfxCif_State_Enabled if the interrupt is enabled, @ref IfxCif_State_Disabled if the interrupt is disabled
1364  */
1366 
1367 /** \brief Function to query the current base address of the ring buffer of one main picture path component
1368  * \param component Main Picture path component for which to query the base address
1369  * \return Current base address of the ring buffer of the main picture path component
1370  */
1372 
1373 /** \brief Function to query the initial size of the ring buffer of one main picture path component
1374  * \param component Main picture path component for which to query the intial size
1375  * \return Initial size of the main picture path component
1376  */
1378 
1379 /** \brief Function to query the initial offset counter inside the ring buffer of one main picture path compoent
1380  * \param component Main picture path component for which to query the initial offset counter
1381  * \return Initial offset counter value of the main picture path component
1382  */
1384 
1385 /** \brief Function to query the current offset counter within the ring buffer of one main picture path component
1386  * \param component Main picture path component for which to query the offest counter value
1387  * \return Current offset counter within the ring buffer of the main picture path component
1388  */
1390 
1391 /** \brief Function to query the offset counter which points to the start address of the previously processed picture for one main picture path component
1392  * \param component Main picture path component for which to query the offset counter value
1393  * \return Offset counter value pointing to the start address of the previously processed picture
1394  */
1396 
1397 /** \brief Function to query the current size of the ring buffer of one main picture path component
1398  * \param component Main Picture path component for which to query the size
1399  * \return Current size of the ring buffer of the main picture path component
1400  */
1402 
1403 /** \brief Function to query the status information of one status information source of the memory interface module
1404  * \param source Status information source for which to query the status information
1405  * \return @ref IfxCif_ErrorState_NoError if the error has occured since the last clear, @ref IfxCif_ErrorState_Error if the error has occured since the last clear
1406  */
1408 
1409 /** \brief Function to query the raw state of an interrupt
1410  * \param interruptSource Source of the interrupt
1411  * \return @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is set, @ref IfxCif_InterruptTriggeredState_NotTriggered if the interrupt request bit is not set
1412  */
1414 
1415 /** \brief Function to enable or disable one memory interface data path
1416  * \param dataPath Data path to enable or disable
1417  * \param enableState @ref IfxCif_State_Enabled to enable the data path, @ref IfxCif_State_Disabled to disable the data path
1418  * \return None
1419  */
1421 
1422 /** \brief Function to enable or disable an interrupt
1423  * \param interruptSource Source of the interrupt to enable or disable
1424  * \param interruptEnableState @ref IfxCif_State_Enabled to enable the interrupt, @ref IfxCif_State_Disabled to disable the interrupt
1425  * \return None
1426  */
1427 IFX_EXTERN void IfxCif_setMiInterruptEnableState(IfxCif_MiInterruptSources interruptSource, IfxCif_State interruptEnableState);
1428 
1429 /** \brief Function to set an interrupt request bit (does not necessarily trigger an interrupt)
1430  * \param interruptSource Source of the interrupt
1431  * \return None
1432  */
1434 
1435 /** \brief Function to set the burst length for Y, JPEG, or RAW data
1436  * \param burstLength Burst length to set
1437  * \return None
1438  */
1440 
1441 /** \brief Function to set the initial base address of the ring buffer for one main picture path component
1442  * \param component Main picture path component for which to set the initial base address
1443  * \param address Base address to set (must be word aligned)
1444  * \return None
1445  */
1447 
1448 /** \brief Function to set the initial size of the ring buffer for one main picture path component
1449  * \param component Main picture path component for which to set the initial size
1450  * \param size Size to set (must be word aligned)
1451  * \return None
1452  */
1454 
1455 /** \brief Function to set the initial offset counter inside the ring buffer for one main picture path component
1456  * \param component Main picture path component for which to set the initial offest counter
1457  * \param offsetCounter Offset counter value to set (must be word aligned)
1458  * \return None
1459  */
1461 
1462 /** \} */
1463 
1464 /** \addtogroup IfxLld_Cif_Std_jpeFunctions
1465  * \{ */
1466 
1467 /******************************************************************************/
1468 /*-------------------------Inline Function Prototypes-------------------------*/
1469 /******************************************************************************/
1470 
1471 /** \brief Function to query the current header generation debug control mode
1472  * \return Currently set header generation debug control mode (one member of @ref IfxCif_JpeHeaderGenerationMode)
1473  */
1475 
1476 /** \brief Function to query the currently set JPE header mode
1477  * \return Currently set JPE header mode (one member of @ref IfxCif_JpeHeaderMode)
1478  */
1480 
1481 /** \brief Function to query the JPE encode mode
1482  * \return Always 1, because this is the encoder only edition
1483  */
1485 
1486 /** \brief Function to query the current restart interval
1487  * \return Current restart interval
1488  */
1490 
1491 /** \brief Function to get the current JPEG codec state
1492  * \return @ref IfxCif_JpeState_Busy if the JPEG codec is currently processing, @ref IfxCif_JpeState_Free if the JPEG codec is currently free
1493  */
1495 
1496 /** \brief Function to query the current JPE Table ID
1497  * \return Current JPE Table ID
1498  */
1500 
1501 /** \brief Function to query the current encoder continuous mode
1502  * \return Current encoder continuous mode (one member of @ref IfxCif_JpegJfifStreamEncoderContinuousMode)
1503  */
1505 
1506 /** \brief Function to query the current picture encoding format
1507  * \return Current picture encoding format
1508  */
1510 
1511 /** \brief Function to immediately start the JPEG encoder.
1512  * This function has to be called after @ref IfxCif_startJpegJfifStreamEncoder to start the JPEG encoder
1513  * \return None
1514  */
1516 
1517 /** \brief Function to start to generate JPEG stream header. Auto reset after one clock cycle
1518  * \return None
1519  */
1521 
1522 /** \brief Function to set the header generation debug control mode
1523  * \param headerGenerationMode Header generation debug control mode to set
1524  * \return None
1525  */
1527 
1528 /** \brief Function to set the JPE header mode
1529  * \param headerMode Header mode to set
1530  * \return None
1531  */
1533 
1534 /** \brief Function to set the restart interval
1535  * \param interval Restart interval to set
1536  * \return None
1537  */
1539 
1540 /** \brief Function to set the JPE Table LSB
1541  * \param data Value to set for the JPE Table LSB
1542  * \return None
1543  */
1545 
1546 /** \brief Function to set the JPE Table MSB
1547  * \param data Value to set for the JPE Table MSB
1548  * \return None
1549  */
1551 
1552 /** \brief Function to set the JPE Table ID
1553  * \param tableId tableId Table ID to set
1554  * \return None
1555  */
1557 
1558 /** \brief Function to set the JPEG codec image sizes
1559  * \param hSize Image horizontal size
1560  * \param vSize Image vertical size
1561  * \return None
1562  */
1564 
1565 /** \brief Function to set the stream encoder continuous mode
1566  * \param mode Encoder continuous mode to set
1567  * \return None
1568  */
1570 
1571 /** \brief Function to set the picture encoding format
1572  * \param format Encoding format to set
1573  * \return None
1574  */
1576 
1577 /** \brief Function to start JFIF stream encoding. Auto reset after one clock cycle
1578  * \return None
1579  */
1581 
1582 /******************************************************************************/
1583 /*-------------------------Global Function Prototypes-------------------------*/
1584 /******************************************************************************/
1585 
1586 /** \brief Function to clear an interrupt
1587  * \param interruptSource Source of the interrupt
1588  * \return None
1589  */
1591 
1592 /** \brief Function to query the currently set Huffman Table length for AC values
1593  * \param table Huffman Table for which to query the current length
1594  * \return Current length of Huffman Table
1595  */
1597 
1598 /** \brief Function to check if a Huffman Table and a Huffman Table component is enabled for AC values
1599  * \param table Huffman Table to check
1600  * \param component Huffman Table component to check
1601  * \return @ref IfxCif_State_Enabled if the queried Huffman Table and the Huffman Table component is selected, @ref IfxCif_State_Disabled otherwise
1602  */
1604 
1605 /** \brief Function to query the current Huffman Table length for DC values
1606  * \param table Huffman Table for which to query the current length
1607  * \return Current length of Huffman Table
1608  */
1610 
1611 /** \brief Function to check if a Huffman Table and a Huffman Table component is enabled for DC values
1612  * \param table Huffman Table to check
1613  * \param component Huffman Table component to check
1614  * \return @ref IfxCif_State_Enabled if the queried Huffman Table and the Huffman Table component is selected, @ref IfxCif_State_Disabled otherwise
1615  */
1617 
1618 /** \brief Function to query the state of one JPE debug signal source
1619  * \param source Signal source for which to query the debug signal state
1620  * \return @ref IfxCif_JpeDebugSignalState_Inactive if the debug signal is currently inactive, @ref IfxCif_JpeDebugSignalState_Active if the debug signal is currently active
1621  */
1623 
1624 /** \brief Function to query the enabled state of an interrupt
1625  * \param interruptSource Source of the interrupt
1626  * \return @ref IfxCif_State_Enabled if the interrupt is enabled, @ref IfxCif_State_Disabled if the interrupt is disabled
1627  */
1629 
1630 /** \brief Function to query the currently selected Q-Table for one component
1631  * \param component Component for which to query the currently selected Q-Table
1632  * \return Currently selected Q-Table
1633  */
1635 
1636 /** \brief Function to query the current enabled state of the scaling of an input value source
1637  * \param source Input value source for which to query the enabled state
1638  * \return @ref IfxCif_State_Enabled if scaling is enabled, @ref IfxCif_State_Disabled if scaling is disabled
1639  */
1641 
1642 /** \brief Function to query the currently set JPEG codec image size of one tier
1643  * \param tier Tier for which to query the JPEG codec image size
1644  * \return Currently set image size for R2B and SGEN blocks
1645  */
1647 
1648 /** \brief Function to query the masked state of an interrupt
1649  * \param interruptSource Source of the interrupt
1650  * \return @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is set and the interrupt is enabled, @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is not set or the interrupt is disabled
1651  */
1653 
1654 /** \brief Function to query the raw state of an interrupt
1655  * \param interruptSource Source of the interrupt
1656  * \return @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is set, @ref IfxCif_InterruptTriggeredState_NotTriggered if the interrupt request bit is not set
1657  */
1659 
1660 /**
1661  * \return None
1662  */
1663 IFX_EXTERN void IfxCif_programJpeTable(IfxCif_JpeTableId tableId, const uint8 *tableEntry, uint8 length);
1664 
1665 /** \brief Function to set the Huffman Table length for AC values
1666  * \param table Huffman Table for which to set the length
1667  * \param length Length to set
1668  * \return None
1669  */
1671 
1672 /** \brief Function to set the Huffman Table selector for AC Values
1673  * \param table Huffman Table to select
1674  * \param component Huffman Table component to select
1675  * \return None
1676  */
1678 
1679 /** \brief Function to set the Huffman Table length for DC values
1680  * \param table Huffman Table for which to set the length
1681  * \param length Length to set
1682  * \return None
1683  */
1685 
1686 /** \brief Function to set the Huffman Table selector for DC values
1687  * \param table Huffman Table to select
1688  * \param component Huffman Table component to select
1689  * \return None
1690  */
1692 
1693 /** \brief Function to enable or disable an interrupt
1694  * \param interruptSource Source of the interrupt to enable or disable
1695  * \param interruptEnableState @ref IfxCif_State_Enabled to enable the interrupt, @ref IfxCif_State_Disabled to disable the interrupt
1696  * \return None
1697  */
1698 IFX_EXTERN void IfxCif_setJpeInterruptEnableState(IfxCif_JpeInterruptSources interruptSource, IfxCif_State interruptEnableState);
1699 
1700 /** \brief Function to set an interrupt request bit (does not necessarily trigger an interrupt)
1701  * \param interruptSource Source of the interrupt
1702  * \return None
1703  */
1705 
1706 /** \brief Function to set the Q-Table selector for one component
1707  * \param component Component for which to select the Q-Table
1708  * \param selector Q-Table to select
1709  * \return None
1710  */
1712 
1713 /** \brief Function to enable or disable scaling of one input value source
1714  * \param source Input value source for which to query the enabled state
1715  * \param scalingEnable @ref IfxCif_State_Enabled to enable scaling, @ref IfxCif_State_Disabled to disable scaling
1716  * \return None
1717  */
1719 
1720 /** \brief Function to set the JPEG codec image size of one tier
1721  * \param tier Tier for which to set the JPEG codec image size
1722  * \param size Image size for R2B and SGEN blocks
1723  * \return None
1724  */
1726 
1727 /** \} */
1728 
1729 /** \addtogroup IfxLld_Cif_Std_swFunctions
1730  * \{ */
1731 
1732 /******************************************************************************/
1733 /*-------------------------Inline Function Prototypes-------------------------*/
1734 /******************************************************************************/
1735 
1736 /** \brief Function to query the currently set watchdog predivider
1737  * \return Currently set predivider
1738  */
1740 
1741 /** \brief Function to query the enabled state of the watchdog unit
1742  * \return @ref IfxCif_State_Enabled if the watchdog unit is enabled, @ref IfxCif_State_Disabled if the watchdog unit is disabled
1743  */
1745 
1746 /** \brief Function to set the watchdog predivider counter (A value of 0 means that the Watchdog Counters are increased with every CIF clock cycle. Every other value N leads to an increment at every N+1th cycle)
1747  * \param predivider Predivider to set
1748  * \return None
1749  */
1751 
1752 /** \brief Function to enable or disable the watchdog unit
1753  * \param enableState @ref IfxCif_State_Enabled to enable the watchdog unit, @ref IfxCif_State_Disabled to disable the watchdog unit
1754  * \return None
1755  */
1757 
1758 /******************************************************************************/
1759 /*-------------------------Global Function Prototypes-------------------------*/
1760 /******************************************************************************/
1761 
1762 /** \brief Function to clear an interrupt
1763  * \param interruptSource Source of the interrupt
1764  * \return None
1765  */
1767 
1768 /** \brief Function to get the masked state of an interrupt
1769  * \param interruptSource Source of the interrupt
1770  * \return @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is set and the interrupt is enabled, @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is not set or the interrupt is disabled
1771  */
1773 
1774 /** \brief Function to get the raw state of an interrupt
1775  * \param interruptSource Source of the interrupt
1776  * \return @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is set, @ref IfxCif_InterruptTriggeredState_NotTriggered if the interrupt request bit is not set
1777  */
1779 
1780 /** \brief Function to query the enabled state of an interrupt
1781  * \param interruptSource Source of the interrupt
1782  * \return @ref IfxCif_State_Enabled if the interrupt is enabled, @ref IfxCif_State_Disabled if the interrupt is disabled
1783  */
1785 
1786 /** \brief Function to query the current value of a timeout counter of one tier
1787  * \param tier Tier for which to query the timeout counter
1788  * \param timeoutCounter Timeout counter to query
1789  * \return Current timeout
1790  */
1792 
1793 /** \brief Function to reset one watchdog counter
1794  * \param counter Counter to reset
1795  * \return None
1796  */
1798 
1799 /** \brief Function to enable or disable an interrupt
1800  * \param interruptSource Source of the interrupt to enable or disable
1801  * \param interruptEnableState @ref IfxCif_State_Enabled to enable the interrupt, @ref IfxCif_State_Disabled to disable the interrupt
1802  * \return None
1803  */
1805 
1806 /** \brief Function to set an interrupt request bit (does not necessarily trigger an interrupt)
1807  * \param interruptSource Source of the interrupt
1808  * \return None
1809  */
1811 
1812 /** \brief Function to set the timeout for a watchdog timeout counter of one tier. A value of 0 disables the timeout
1813  * \param tier Tier for which to set the timeout
1814  * \param timeoutCounter Timeout counter for which to set the timeout
1815  * \param timeout Timeout to set
1816  * \return None
1817  */
1819 
1820 /** \} */
1821 
1822 /** \addtogroup IfxLld_Cif_Std_ispisFunctions
1823  * \{ */
1824 
1825 /******************************************************************************/
1826 /*-------------------------Inline Function Prototypes-------------------------*/
1827 /******************************************************************************/
1828 
1829 /** \brief Function to query the enabled state of image stabilization
1830  * \return @ref IfxCif_State_Enabled if image stabilization is enabled, @ref IfxCif_State_Disabled if image stabilization is disabled
1831  */
1833 
1834 /** \brief Function to query the current image stabilization recenter value
1835  * \return Current image stabilization recenter value
1836  */
1838 
1839 /** \brief Function to enable or disable image stabilization
1840  * \param enableState @ref IfxCif_State_Enabled to enable image stabilization, @ref IfxCif_State_Disabled to disable image stabilization
1841  * \return None
1842  */
1844 
1845 /** \brief Function to set the image stabilization offsets of the output window
1846  * \param hOffset Horizontal Offset
1847  * \param vOffset Vertical Offset
1848  * \return None
1849  */
1851 
1852 /** \brief Function to set the picture size
1853  * \param hSize Horizontal Picture Size
1854  * \param vSize Vertical Picture Size
1855  * \return None
1856  */
1858 
1859 /** \brief Function to set the image stabilization recenter value
1860  * \param value Recenter value to set (0 to disabled recenter value, for all other values recentering is active (cur_h/v_offs-H/V_OFFS)/2 power(recenter))
1861  * \return None
1862  */
1864 
1865 /******************************************************************************/
1866 /*-------------------------Global Function Prototypes-------------------------*/
1867 /******************************************************************************/
1868 
1869 /** \brief Function to query the current camera displacement for one tier
1870  * \param tier Tier for which to query the camera displacement
1871  * \return Current camera displacement
1872  */
1874 
1875 /** \brief Function to query the offset of the current picture for one tier
1876  * \param tier Tier for which to query the offset
1877  * \return Offset of the current picture
1878  */
1880 
1881 /** \brief Function to query the picture size of the current picture for one tier
1882  * \param tier Tier for which to query the picture size
1883  * \return Picture size of the current picture
1884  */
1886 
1887 /** \brief Function to query the current maximum displacement for one tier
1888  * \param tier Tier for which to query the maximum displacement
1889  * \return Current maximum displacement
1890  */
1892 
1893 /** \brief Function to query the current image stabilization offset of the output window of one tier
1894  * \param tier Tier for which to query the offset
1895  * \return Current offset
1896  */
1898 
1899 /** \brief Function to query the current picture size for one tier
1900  * \param tier Tier for which to query the picture size
1901  * \return Current picture size
1902  */
1904 
1905 /** \brief Function to query the enabled state of image stabilization recenter feature
1906  * \return @ref IfxCif_State_Enabled if the image stabilization recenter feature is enabled, @ref IfxCif_State_Disabled if the image stabilization recenter feature is disabled
1907  */
1909 
1910 /** \brief Function to set the camera displacement for one tier
1911  * \param tier Tier for which to set the camera displacement
1912  * \param displacement Camera displacement to set
1913  * \return None
1914  */
1916 
1917 /** \brief Function to set the maximum displacement for one tier
1918  * \param tier Tier for which to set the maximum displacement
1919  * \param displacement Displacement to set
1920  * \return None
1921  */
1923 
1924 /** \brief Function to set the image stabilization offset of the output window of one tier
1925  * \param tier Tier for which to set the offset
1926  * \param offset Offset to set
1927  * \return None
1928  */
1930 
1931 /** \brief Function to set the picture size for one tier
1932  * \param tier Tier for which to set the picture size
1933  * \param size Size to set
1934  * \return None
1935  */
1937 
1938 /** \} */
1939 
1940 /** \addtogroup IfxLld_Cif_Std_epFunctions
1941  * \{ */
1942 
1943 /******************************************************************************/
1944 /*-------------------------Global Function Prototypes-------------------------*/
1945 /******************************************************************************/
1946 
1947 /** \brief Function to clear one extra path error
1948  * \param source Extra path error to clear
1949  * \return None
1950  */
1952 
1953 /** \brief Function to clear an interrupt
1954  * \param z Extra path for which to clear the interrupt
1955  * \param interruptSource Source of the interrupt
1956  * \return None
1957  */
1959 
1960 /** \brief Function to trigger an immediate configuration update for one extra path
1961  * \param z Function to trigger an immediate configuration update for one extra path
1962  * \return None
1963  */
1965 
1966 /** \brief Function to skip one picture of one extra path
1967  * \param z Extra path for which to skip one picture
1968  * \return None
1969  */
1971 
1972 /** \brief Function to query the current base address of the ring buffer of one extra path
1973  * \param z Extra path for which to query the current base address of the ring buffer
1974  * \return Current base address of the ring buffer
1975  */
1977 
1978 /** \brief Function to query the initial base address of the ring buffer of one extra path
1979  * \param z Extra path for which to query the initial base address
1980  * \return Initial base address of the ring buffer of the extra path
1981  */
1983 
1984 /** \brief Function to query the image cropping camera displacement of one tier of one extra path
1985  * \param z Extra path for which to query the image cropping camera displacement
1986  * \param tier Tier for which to query the image cropping camera displacement
1987  * \return Current image cropping camera displacement
1988  */
1990 
1991 /** \brief Function to query the current image cropping picture offset of one tier of one extra path
1992  * \param z Extra path for which to query the current image cropping picture offset
1993  * \param tier Tier for which to query the current image cropping picture offset
1994  * \return Current image cropping picture offset
1995  */
1997 
1998 /** \brief Function to query the current image cropping picture size of one tier of one extra path
1999  * \param z Extra path for which to query the current image cropping picture size
2000  * \param tier Tier for which to query the current image cropping picture size
2001  * \return Current image cropping picture size
2002  */
2004 
2005 /** \brief Function to query the image cropping enabled state of one extra path
2006  * \param z Extra path for which to query the image cropping enabled state
2007  * \return @ref IfxCif_State_Enabled if image cropping is enabled, @ref IfxCif_State_Disabled otherwise
2008  */
2010 
2011 /** \brief Function to query the maximum displacement of one tier of one extra path
2012  * \param z Extra path for which to query the maximum displacement
2013  * \param tier Tier for which to query the maximum displacement
2014  * \return Current maximum displacement
2015  */
2017 
2018 /** \brief Function to query the image cropping offset of the output window of one tier of one extra path
2019  * \param z Extra path for which to query the image cropping offset of the output window
2020  * \param tier Tier for which to query the image cropping offset of the output window
2021  * \return Current image cropping offset of the output window
2022  */
2024 
2025 /** \brief Function to query the image cropping picture size of one tier of one extra path
2026  * \param z Extra path for which to query the image cropping picture size
2027  * \param tier Tier for which to query the image cropping picture size of one tier of one extra path
2028  */
2030 
2031 /** \brief Function to query the enabled state of the recenter feature of one extra path
2032  * \param z Extra path for which to query the enabled state of the recenter feature
2033  * \return @ref IfxCif_State_Enabled if the recenter feature is enabled, @ref IfxCif_State_Disabled otherwise
2034  */
2036 
2037 /** \brief Function to query the state of an extra path error source
2038  * \param source Error source for which to query the state
2039  * \return @ref IfxCif_ErrorState_NoError if the error did not occur, @ref IfxCif_ErrorState_Error if the error occured
2040  */
2042 
2043 /** \brief Function to query the enabled state of one feature of one extra path
2044  * \param z Extra path for which to query the enabled state of the feature
2045  * \param feature Feature which to query
2046  * \return @ref IfxCif_State_Enabled if the feature of the extra path is enabled, @ref IfxCif_State_Disabled if the feature of the extra path is disabled
2047  */
2049 
2050 /** \brief Function to query the initial size of the ring buffer of one extra path
2051  * \param z Extra path for which to query the initial size
2052  * \return Initial size of the ring buffer of the extra path
2053  */
2055 
2056 /** \brief Function to query the initial filling level interrupt offset of one extra path
2057  * \param z Extra path for which to query the initial filling level interrupt offset
2058  * \return Initial filling level interrupt offset of the extra path
2059  */
2061 
2062 /** \brief Function to query the initial offset counter of one extra path
2063  * \param z Extra path for which to query the initial offset counter
2064  * \return Initial offset counter of the extra path
2065  */
2067 
2068 /** \brief Function to query the current input enable state of one extra path
2069  * \param z Extra path for which to query the current input enable state
2070  * \return @ref IfxCif_State_Enabled if the extra path is used in module MI_IN, @ref IfxCif_State_Disabled if the extra path is not used in module MI_IN
2071  */
2073 
2074 /** \brief Function to query the enabled state of an interrupt
2075  * \param z Extra path for which to query the enabled state of the interrupt
2076  * \param interruptSource Source of the interrupt
2077  * \return @ref IfxCif_State_Enabled if the interrupt is enabled, @ref IfxCif_State_Disabled if the interrupt is disabled
2078  */
2080 
2081 /** \brief Function to query the current interrupt offset of one extra path
2082  * \param z Extra path for which to query the current interrupt offset
2083  * \return Current interrupt offset
2084  */
2086 
2087 /** \brief Function to query the current offset counter of one extra path
2088  * \param z Extra path for which to query the current offset counter
2089  * \return Current offset counter
2090  */
2092 
2093 /** \brief Function to query the initial offset counter start value of one extra path
2094  * \param z Extra path for which to query the initial offset counter start value
2095  * \return Initial offset counter start value of the extra path
2096  */
2098 
2099 /** \brief Function to query the current output enable state of one extra path
2100  * \param z Extra path for which to query the current output enable state
2101  * \return @ref IfxCif_State_Enabled if the extra path is used in module MI_OUT, @ref IfxCif_State_Disabled if the extra path is not used in module MI_OUT
2102  */
2104 
2105 /** \brief Function to query the current recenter value of one extra path
2106  * \param z Extra path for which to query the current recenter value
2107  * \return Current recenter value
2108  */
2110 
2111 /** \brief Function to query the current ring buffer size of one extra path
2112  * \param z Extra path for which to query the ring buffer size
2113  * \return Current ring buffer size
2114  */
2116 
2117 /** \brief Function to query the write format of one extra path
2118  * \param z Extra path for which to query the write format
2119  * \return Set write format of the extra path (one member of @ref IfxCif_EpWriteFormat)
2120  */
2122 
2123 /** \brief Function to get the masked state of an interrupt
2124  * \param z Extra path for which to query the interrupt state
2125  * \param interruptSource Source of the interrupt
2126  * \return @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is set and the interrupt is enabled, @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is not set or the interrupt is disabled
2127  */
2129 
2130 /** \brief Function to query the raw state of an interrupt
2131  * \param z Extra path for which to query the interrupt state
2132  * \param interruptSource Source of the interrupt
2133  * \return @ref IfxCif_InterruptTriggeredState_Triggered if the interrupt request bit is set, @ref IfxCif_InterruptTriggeredState_NotTriggered if the interrupt request bit is not set
2134  */
2136 
2137 /** \brief Function to set the initial base address of the ring buffer of one extra path
2138  * \param z Extra path for which to set the initial base address
2139  * \param baseAddress Initial base address of the ring buffer to set
2140  * \return None
2141  */
2143 
2144 /** \brief Function to set the image cropping camera displacement of one tier of one extra path
2145  * \param z Extra path for which to set the image cropping camera displacement
2146  * \param tier Tier for which to set the image cropping camera displacement
2147  * \param displacement Image cropping camera displacement to set
2148  * \return None
2149  */
2151 
2152 /** \brief Function to enable or disable image cropping of one extra path
2153  * \param z Extra path for which to enable or disable image cropping
2154  * \param enableState @ref IfxCif_State_Enabled to enable image cropping, @ref IfxCif_State_Disabled to disable image cropping
2155  * \return None
2156  */
2158 
2159 /** \brief Function to set the maximum displacement of one tier of one extra path
2160  * \param z Extra path for which to set the maximum displacement
2161  * \param tier Tier for which to set the maximum displacement
2162  * \param displacement Maximum displacement to set
2163  * \return None
2164  */
2166 
2167 /** \brief Function to set the image cropping offset of the output window of one tier of one extra path
2168  * \param z Extra path for which to set the image cropping offset of the output window
2169  * \param tier Tier for which to set the image cropping offset of the output window
2170  * \param offset Offset to set
2171  * \return None
2172  */
2174 
2175 /** \brief Function to set the image cropping offsets of the output window of one extra path
2176  * \param z Extra path for which to set the image cropping offset of the output window
2177  * \param hOffset Offset horizontal to set
2178  * \param vOffset Offset vertical to set
2179  * \return None
2180  */
2182 
2183 /** \brief Function to set the image cropping picture size of one tier of one extra path
2184  * \param z Extra path for which to set the image cropping picture size
2185  * \param tier Tier for which to set the image cropping picture size
2186  * \param size Image cropping picture size to set
2187  * \return None
2188  */
2190 
2191 /** \brief Function to set the image cropping picture sizes one extra path
2192  * \param z Extra path for which to set the image cropping picture size
2193  * \param hSize Image cropping picture horizontal size to set
2194  * \param vSize Image cropping picture vertical size to set
2195  * \return None
2196  */
2198 
2199 /** \brief Function to enable or disable one feature of one extra path
2200  * \param z Extra path for which to enable or disable one feature
2201  * \param feature Feature to enable or disable
2202  * \param enableState @ref IfxCif_State_Enabled to enable the feature, @ref IfxCif_State_Disabled to disable the feature
2203  * \return None
2204  */
2206 
2207 /** \brief Function to set the initial size of the ring buffer of one extra path
2208  * \param z Extra path for which to set the initial size of the ring buffer
2209  * \param size Initial size of the ring buffer to se
2210  * \return None
2211  */
2213 
2214 /** \brief Function to set the initial filling level interrupt offset of one extra path
2215  * \param z Extra path for which to set the initial filling level interrupt offset
2216  * \param interruptOffset Initial filling level interrupt offset to set
2217  * \return None
2218  */
2220 
2221 /** \brief Function to set the initial offset counter of one extra path
2222  * \param z Extra path for which to set the initial offset counter
2223  * \param offsetCounter Initial offset counter to set
2224  * \return None
2225  */
2227 
2228 /** \brief Function to enable or disable an interrupt
2229  * \param z Extra path for which to enable or disable the interrupt
2230  * \param interruptSource Source of the interrupt to enable or disable
2231  * \param interruptEnableState @ref IfxCif_State_Enabled to enable the interrupt, @ref IfxCif_State_Disabled to disable the interrupt
2232  * \return None
2233  */
2235 
2236 /** \brief Function to set an interrupt request bit (does not necessarily trigger an interrupt)
2237  * \param z Function to set an interrupt request bit (does not necessarily trigger an interrupt)
2238  * \param interruptSource Extra path for which to set the interrupt request bit
2239  * \return None
2240  */
2242 
2243 /** \brief Function to set the initial offset counter start value of one extra path
2244  * \param z Extra path for which to set the initial offset counter start value
2245  * \param offsetCounter Initial offset counter start value to set
2246  * \return None
2247  */
2249 
2250 /** \brief Function to set the recenter value of one extra path (0 to switch the recenter feature off, for all other values recentering is active (cur_h/v_offs-H/V_OFFS)/2power(recenter))
2251  * \param z Extra path for which to set the recenter value
2252  * \param value Recenter value to set
2253  * \return None
2254  */
2256 
2257 /** \brief Function to set the write format for one extra path
2258  * \param z Extra path for which to set the write format
2259  * \param writeFormat Write format to set
2260  * \return None
2261  */
2263 
2264 /** \} */
2265 
2266 /** \addtogroup IfxLld_Cif_Std_dpFunctions
2267  * \{ */
2268 
2269 /******************************************************************************/
2270 /*-------------------------Inline Function Prototypes-------------------------*/
2271 /******************************************************************************/
2272 
2273 /** \brief Function to query the debug path enabled state
2274  * \return @ref IfxCif_State_Enabled if the debug path is enabled, @ref IfxCif_State_Disabled if the debug path is disabled
2275  */
2277 
2278 /** \brief Function to query the selected debug path source path
2279  * \return Currently selected debug path source path (one member of @ref IfxCif_DpSourcePath)
2280  */
2282 
2283 /** \brief Function to enable or disable the debug path
2284  * \param enableState @ref IfxCif_State_Enabled to enable the debug path, @ref IfxCif_State_Disabled to disable the debug path
2285  * \return None
2286  */
2288 
2289 /** \brief Function to select one debug path source path
2290  * \param sourcePath Source path to select
2291  * \return None
2292  */
2294 
2295 /******************************************************************************/
2296 /*-------------------------Global Function Prototypes-------------------------*/
2297 /******************************************************************************/
2298 
2299 /** \brief Function to reset one debug path counter
2300  * \param counter Debug path counter to reset
2301  * \return None
2302  */
2304 
2305 /** \brief Function to query the transmission enabled state of one debug path control source
2306  * \param source Source for which to query the transmission enabled state
2307  * \return @ref IfxCif_State_Enabled if transmission is enabled, @ref IfxCif_State_Disabled if transmission is disabled
2308  */
2310 
2311 /** \brief Function to query the current counter value of one debug path counter
2312  * \param counter Counter for which to query the value
2313  * \return Current counter value
2314  */
2316 
2317 /** \brief Function to query the value of one user defined debug symbol
2318  * \param x User defined symbol to query
2319  * \return Value of the user defined debug symbol
2320  */
2322 
2323 /** \brief Function to enable or disable transmission of one debug path control source
2324  * \param source Source for which to enable or disable transmission
2325  * \param enableState @ref IfxCif_State_Enabled to enable transmission, @ref IfxCif_State_Disabled to disable transmission
2326  * \return None
2327  */
2329 
2330 /** \brief Function to set one debug path counter to a counter value
2331  * \param counter Counter to set
2332  * \param counterValue Counter value to set
2333  * \return None
2334  */
2335 IFX_EXTERN void IfxCif_setDpCounter(IfxCif_DpCounters counter, uint32 counterValue);
2336 
2337 /** \brief Function to set one user defined debug symbol
2338  * \param x User defined symbol to set
2339  * \param value Value to set
2340  * \return None
2341  */
2343 
2344 /** \} */
2345 
2346 /******************************************************************************/
2347 /*---------------------Inline Function Implementations------------------------*/
2348 /******************************************************************************/
2349 
2351 {
2352  MODULE_CIF.BBB.KRSTCLR.B.CLR = 1;
2353 }
2354 
2355 
2357 {
2358  MODULE_CIF.ISP.CTRL.B.ISP_GEN_CFG_UPD = 1;
2359 }
2360 
2361 
2363 {
2364  MODULE_CIF.ISP.CTRL.B.ISP_CFG_UPD = 1;
2365 }
2366 
2367 
2369 {
2370  MODULE_CIF.MI.INIT.B.MI_CFG_UPD = 1;
2371 }
2372 
2373 
2375 {
2376  return (IfxCif_State)MODULE_CIF.MI.CTRL.B.INIT_BASE_EN;
2377 }
2378 
2379 
2381 {
2382  return MODULE_CIF.BBB.MODID.B.MODNUMBER;
2383 }
2384 
2385 
2387 {
2389 }
2390 
2391 
2393 {
2394  return MODULE_CIF.BBB.MODID.B.MOD_REV;
2395 }
2396 
2397 
2399 {
2400  return MODULE_CIF.BBB.MODID.B.MOD_TYPE;
2401 }
2402 
2403 
2405 {
2406  /* bit is inverted */
2407  return (1 != MODULE_CIF.CCL.B.CIF_CCLDISS) ? IfxCif_State_Enabled : IfxCif_State_Disabled;
2408 }
2409 
2410 
2412 {
2413  return MODULE_CIF.ISP.FRAME_COUNT.B.FRAME_COUNTER;
2414 }
2415 
2416 
2418 {
2419  return (IfxCif_IspInformFieldInformation)MODULE_CIF.ISP.FLAGS_SHD.B.INFORM_FIELD;
2420 }
2421 
2422 
2424 {
2425  return (IfxCif_State)MODULE_CIF.ISP.FLAGS_SHD.B.ISP_INFORM_ENABLE_SHD;
2426 }
2427 
2428 
2430 {
2431  return (IfxCif_DataPathSelectorForMainPath)MODULE_CIF.DPCL.B.CIF_MP_MUX;
2432 }
2433 
2434 
2436 {
2437  return (IfxCif_State)MODULE_CIF.DP.CTRL.B.DP_EN;
2438 }
2439 
2440 
2442 {
2443  return (IfxCif_DpSourcePath)MODULE_CIF.DP.CTRL.B.DP_SEL;
2444 }
2445 
2446 
2448 {
2449  return (IfxCif_InputInterface)MODULE_CIF.DPCL.B.IF_SELECT;
2450 }
2451 
2452 
2454 {
2455  return (IfxCif_IspCcirSequence)MODULE_CIF.ISP.ACQ_PROP.B.CCIR_SEQ;
2456 }
2457 
2458 
2460 {
2461  return (IfxCif_IspColorSpaceMatrixCrominanceClippingRange)MODULE_CIF.ISP.CTRL.B.ISP_CSM_C_RANGE;
2462 }
2463 
2464 
2466 {
2467  return (IfxCif_IspColorSpaceMatrixLuminanceClippingRange)MODULE_CIF.ISP.CTRL.B.ISP_CSM_Y_RANGE;
2468 }
2469 
2470 
2472 {
2473  return (IfxCif_State)MODULE_CIF.ISP.ACQ_PROP.B.FIELD_INVERT;
2474 }
2475 
2476 
2478 {
2479  return (IfxCif_IspFieldSelection)MODULE_CIF.ISP.ACQ_PROP.B.FIELD_SELECTION;
2480 }
2481 
2482 
2484 {
2485  return (IfxCif_IspSyncPolarity)MODULE_CIF.ISP.ACQ_PROP.B.HSYNC_POL;
2486 }
2487 
2488 
2490 {
2491  return (IfxCif_State)MODULE_CIF.ISP.CTRL.B.ISP_INFORM_ENABLE;
2492 }
2493 
2494 
2496 {
2497  return (IfxCif_IspInputInterface)MODULE_CIF.ISP.ACQ_PROP.B.INPUT_SELECTION;
2498 }
2499 
2500 
2502 {
2503  return MODULE_CIF.ISP.FLAGS_SHD.B.S_DATA;
2504 }
2505 
2506 
2508 {
2509  return (IfxCif_State)MODULE_CIF.ISP.FLAGS_SHD.B.S_HSYNC;
2510 }
2511 
2512 
2514 {
2515  return (IfxCif_State)MODULE_CIF.ISP.FLAGS_SHD.B.S_VSYNC;
2516 }
2517 
2518 
2520 {
2521  return (IfxCif_State)MODULE_CIF.ISP.CTRL.B.ISP_MODE;
2522 }
2523 
2524 
2526 {
2527  return (IfxCif_State)MODULE_CIF.ISP.CTRL.B.ISP_ENABLE;
2528 }
2529 
2530 
2532 {
2533  return (IfxCif_IspSamplingEdge)MODULE_CIF.ISP.ACQ_PROP.B.SAMPLE_EDGE;
2534 }
2535 
2536 
2538 {
2539  return (IfxCif_State)MODULE_CIF.ISP.FLAGS_SHD.B.ISP_ENABLE_SHD;
2540 }
2541 
2542 
2544 {
2545  return (IfxCif_IspSyncPolarity)MODULE_CIF.ISP.ACQ_PROP.B.VSYNC_POL;
2546 }
2547 
2548 
2550 {
2551  return (IfxCif_State)MODULE_CIF.ISPIS.CTRL.B.IS_EN;
2552 }
2553 
2554 
2556 {
2557  return MODULE_CIF.ISPIS.RECENTER.B.RECENTER;
2558 }
2559 
2560 
2562 {
2563  return (IfxCif_JpeHeaderGenerationMode)MODULE_CIF.JPE.TABLE_FLUSH.B.TABLE_FLUSH;
2564 }
2565 
2566 
2568 {
2569  return (IfxCif_JpeHeaderMode)MODULE_CIF.JPE.HEADER_MODE.B.HEADER_MODE;
2570 }
2571 
2572 
2574 {
2575  return (IfxCif_State)MODULE_CIF.JPE.ENCODE_MODE.B.ENCODE_MODE;
2576 }
2577 
2578 
2580 {
2581  return MODULE_CIF.JPE.RESTART_INTERVAL.B.RESTART_INTERVAL;
2582 }
2583 
2584 
2586 {
2587  return (IfxCif_JpeState)MODULE_CIF.JPE.ENCODER_BUSY.B.CODEC_BUSY;
2588 }
2589 
2590 
2592 {
2593  return (IfxCif_JpeTableId)MODULE_CIF.JPE.TABLE_ID.B.TABLE_ID;
2594 }
2595 
2596 
2598 {
2599  return (IfxCif_JpegJfifStreamEncoderContinuousMode)MODULE_CIF.JPE.ENCODE.B.CONT_MODE;
2600 }
2601 
2602 
2604 {
2605  return (IfxCif_JpegPictureEncodingFormat)MODULE_CIF.JPE.PIC_FORMAT.B.ENC_PIC_FORMAT;
2606 }
2607 
2608 
2610 {
2611  return (IfxCif_State)MODULE_CIF.BBB.KRST0.B.RSTSTAT;
2612 }
2613 
2614 
2616 {
2617  return MODULE_CIF.MI.BYTE_CNT.B.BYTE_CNT;
2618 }
2619 
2620 
2622 {
2623  return (IfxCif_State)MODULE_CIF.MI.CTRL.B.BYTE_SWAP;
2624 }
2625 
2626 
2628 {
2629  return (IfxCif_MiBurstLength)MODULE_CIF.MI.CTRL.B.BURST_LEN_CHROM;
2630 }
2631 
2632 
2634 {
2635  return (IfxCif_MiBurstLength)MODULE_CIF.MI.CTRL.B.BURST_LEN_LUM;
2636 }
2637 
2638 
2640 {
2641  return (IfxCif_MiMainPictureWriteFormat)MODULE_CIF.MI.CTRL.B.MP_WRITE_FORMAT;
2642 }
2643 
2644 
2646 {
2647  /* read value from unsigned component of the register structure because lower bits are tied to 0
2648  * as interrupt offset needs to be a word aligned value */
2649  return MODULE_CIF.MI.MP_Y_IRQ_OFFS_INIT.U;
2650 }
2651 
2652 
2654 {
2655  return MODULE_CIF.MI.MP_Y_IRQ_OFFS_SHD.B.MP_Y_IRQ_OFFS;
2656 }
2657 
2658 
2660 {
2661  return (IfxCif_State)MODULE_CIF.MI.CTRL.B.INIT_OFFSET_EN;
2662 }
2663 
2664 
2666 {
2667  return MODULE_CIF.ID.B.MODNUMBER;
2668 }
2669 
2670 
2672 {
2673  return MODULE_CIF.ID.B.MODREV;
2674 }
2675 
2676 
2678 {
2679  /* bit is inverted */
2680  return (IfxCif_State)(1 != MODULE_CIF.BBB.CLC.B.DISS) ? IfxCif_State_Enabled : IfxCif_State_Disabled;
2681 }
2682 
2683 
2685 {
2686  return MODULE_CIF.ID.B.MODTYPE;
2687 }
2688 
2689 
2691 {
2692  return MODULE_CIF.ISP.ACQ_NR_FRAMES.B.ACQ_NR_FRAMES;
2693 }
2694 
2695 
2697 {
2698  return MODULE_CIF.WD.CTRL.B.WD_PREDIV;
2699 }
2700 
2701 
2703 {
2704  return (IfxCif_State)MODULE_CIF.WD.CTRL.B.WD_EN;
2705 }
2706 
2707 
2709 {
2710  return (IfxCif_YCSplitterChannelMode)MODULE_CIF.DPCL.B.CIF_CHAN_MODE;
2711 }
2712 
2713 
2715 {
2716  MODULE_CIF.JPE.INIT.B.JP_INIT = 1;
2717 }
2718 
2719 
2721 {
2722  MODULE_CIF.JPE.GEN_HEADER.B.GEN_HEADER = 1;
2723 }
2724 
2725 
2727 {
2728  MODULE_CIF.MI.INIT.B.MI_SKIP = 1;
2729 }
2730 
2731 
2733 {
2734  /* bit is inverted */
2735  MODULE_CIF.CCL.B.CIF_CCLFDIS = (clockControlLogicState == IfxCif_State_Disabled) ? 1 : 0;
2736 }
2737 
2738 
2740 {
2741  MODULE_CIF.DPCL.B.CIF_MP_MUX = pathSelector;
2742 }
2743 
2744 
2746 {
2747  MODULE_CIF.DP.CTRL.B.DP_EN = enableState;
2748 }
2749 
2750 
2752 {
2753  MODULE_CIF.DP.CTRL.B.DP_SEL = sourcePath;
2754 }
2755 
2756 
2758 {
2759  MODULE_CIF.DPCL.B.IF_SELECT = IfxCif_InputInterface_ParallelInterface;
2760 }
2761 
2762 
2764 {
2765  MODULE_CIF.ISP.ACQ_H_OFFS.B.ACQ_H_OFFS = hOffset;
2766  MODULE_CIF.ISP.ACQ_V_OFFS.B.ACQ_V_OFFS = vOffset;
2767 }
2768 
2769 
2771 {
2772  MODULE_CIF.ISP.ACQ_H_SIZE.U = hSize;
2773  MODULE_CIF.ISP.ACQ_V_SIZE.U = vSize;
2774 }
2775 
2776 
2778 {
2779  MODULE_CIF.ISP.ACQ_PROP.B.CCIR_SEQ = sequence;
2780 }
2781 
2782 
2784 {
2785  MODULE_CIF.ISP.CTRL.B.ISP_CSM_C_RANGE = clippingRange;
2786 }
2787 
2788 
2790 {
2791  MODULE_CIF.ISP.CTRL.B.ISP_CSM_Y_RANGE = clippingRange;
2792 }
2793 
2794 
2796 {
2797  MODULE_CIF.ISP.ACQ_PROP.B.FIELD_INVERT = fieldInvertState;
2798 }
2799 
2800 
2802 {
2803  MODULE_CIF.ISP.ACQ_PROP.B.FIELD_SELECTION = selection;
2804 }
2805 
2806 
2808 {
2809  MODULE_CIF.ISP.ACQ_PROP.B.HSYNC_POL = polarity;
2810 }
2811 
2812 
2814 {
2815  MODULE_CIF.ISP.CTRL.B.ISP_INFORM_ENABLE = inputFormatterState;
2816 }
2817 
2818 
2820 {
2821  MODULE_CIF.ISP.ACQ_PROP.B.INPUT_SELECTION = input;
2822 }
2823 
2824 
2826 {
2827  MODULE_CIF.ISP.CTRL.B.ISP_MODE = mode;
2828 }
2829 
2830 
2832 {
2833  MODULE_CIF.ISP.CTRL.B.ISP_ENABLE = ispOutputState;
2834 }
2835 
2836 
2838 {
2839  MODULE_CIF.ISP.OUT_H_OFFS.B.ISP_OUT_H_OFFS = hOffset;
2840  MODULE_CIF.ISP.OUT_V_OFFS.B.ISP_OUT_V_OFFS = vOffset;
2841 }
2842 
2843 
2845 {
2846  MODULE_CIF.ISP.OUT_H_SIZE.B.ISP_OUT_H_SIZE = hSize;
2847  MODULE_CIF.ISP.OUT_V_SIZE.B.ISP_OUT_V_SIZE = vSize;
2848 }
2849 
2850 
2852 {
2853  MODULE_CIF.ISP.ACQ_PROP.B.SAMPLE_EDGE = edge;
2854 }
2855 
2856 
2858 {
2859  MODULE_CIF.ISP.ACQ_PROP.B.VSYNC_POL = polarity;
2860 }
2861 
2862 
2864 {
2865  MODULE_CIF.ISPIS.CTRL.B.IS_EN = enableState;
2866 }
2867 
2868 
2870 {
2871  MODULE_CIF.ISPIS.H_OFFS.U = hOffset;
2872  MODULE_CIF.ISPIS.V_OFFS.U = vOffset;
2873 }
2874 
2875 
2877 {
2878  MODULE_CIF.ISPIS.H_SIZE.U = hSize;
2879  MODULE_CIF.ISPIS.V_SIZE.U = vSize;
2880 }
2881 
2882 
2884 {
2885  MODULE_CIF.ISPIS.RECENTER.B.RECENTER = value;
2886 }
2887 
2888 
2890 {
2891  MODULE_CIF.JPE.TABLE_FLUSH.B.TABLE_FLUSH = headerGenerationMode;
2892 }
2893 
2894 
2896 {
2897  MODULE_CIF.JPE.HEADER_MODE.B.HEADER_MODE = headerMode;
2898 }
2899 
2900 
2902 {
2903  MODULE_CIF.JPE.RESTART_INTERVAL.B.RESTART_INTERVAL = interval;
2904 }
2905 
2906 
2908 {
2909  MODULE_CIF.JPE.TABLE_DATA.B.TABLE_WDATA_L = data;
2910 }
2911 
2912 
2914 {
2915  MODULE_CIF.JPE.TABLE_DATA.B.TABLE_WDATA_H = data;
2916 }
2917 
2918 
2920 {
2921  MODULE_CIF.JPE.TABLE_ID.B.TABLE_ID = tableId;
2922 }
2923 
2924 
2926 {
2927  MODULE_CIF.JPE.ENC_HSIZE.B.ENC_HSIZE = hSize;
2928  MODULE_CIF.JPE.ENC_VSIZE.B.ENC_VSIZE = vSize;
2929 }
2930 
2931 
2933 {
2934  MODULE_CIF.JPE.ENCODE.B.CONT_MODE = mode;
2935 }
2936 
2937 
2939 {
2940  MODULE_CIF.JPE.PIC_FORMAT.B.ENC_PIC_FORMAT = format;
2941 }
2942 
2943 
2945 {
2946  MODULE_CIF.BBB.KRST0.B.RST = state;
2947  MODULE_CIF.BBB.KRST1.B.RST = state;
2948 }
2949 
2950 
2952 {
2953  MODULE_CIF.MI.CTRL.B.INIT_BASE_EN = state;
2954 }
2955 
2956 
2958 {
2959  MODULE_CIF.MI.CTRL.B.BYTE_SWAP = enableState;
2960 }
2961 
2962 
2964 {
2965  MODULE_CIF.MI.CTRL.B.BURST_LEN_CHROM = burstLength;
2966 }
2967 
2968 
2970 {
2971  MODULE_CIF.MI.CTRL.B.MP_WRITE_FORMAT = format;
2972 }
2973 
2974 
2976 {
2977  /* write value to unsigned component of the register structure because lower bits are tied to 0
2978  * as interrupt offset needs to be a word aligned value */
2979  MODULE_CIF.MI.MP_Y_IRQ_OFFS_INIT.U = interruptOffset;
2980 }
2981 
2982 
2984 {
2985  MODULE_CIF.MI.CTRL.B.INIT_OFFSET_EN = state;
2986 }
2987 
2988 
2990 {
2991  MODULE_CIF.ISP.ACQ_NR_FRAMES.B.ACQ_NR_FRAMES = numberOfFrames;
2992 }
2993 
2994 
2996 {
2997  MODULE_CIF.WD.CTRL.B.WD_PREDIV = predivider;
2998 }
2999 
3000 
3002 {
3003  MODULE_CIF.WD.CTRL.B.WD_EN = enableState;
3004 }
3005 
3006 
3008 {
3009  MODULE_CIF.DPCL.B.CIF_CHAN_MODE = mode;
3010 }
3011 
3012 
3014 {
3015  MODULE_CIF.JPE.ENCODE.B.ENCODE = 1;
3016 }
3017 
3018 
3019 #endif /* IFXCIF_H */