AM273x MCU+ SDK  08.02.00
csirx/v0/csirx.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Texas Instruments Incorporated
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 #ifndef CSIRX_V0_H_
34 #define CSIRX_V0_H_
35 
36 #ifdef __cplusplus
37 extern "C"
38 {
39 #endif
40 
41 #include <stdbool.h>
42 #include <kernel/dpl/SystemP.h>
43 #include <kernel/dpl/HwiP.h>
44 
45 
62 #define CSIRX_DATA_LANES_MAX (4U)
63 
71 #define CSIRX_COMPLEXIO_POWER_COMMAND_OFF (0U)
72 
74 #define CSIRX_COMPLEXIO_POWER_COMMAND_ON (1U)
75 
77 #define CSIRX_COMPLEXIO_POWER_COMMAND_ULP (2U)
78 
88 #define CSIRX_COMPLEXIO_POWER_STATUS_OFF (0U)
89 
91 #define CSIRX_COMPLEXIO_POWER_STATUS_ON (1U)
92 
94 #define CSIRX_COMPLEXIO_POWER_STATUS_ULP (2U)
95 
105 #define CSIRX_LANE_POLARITY_PLUS_MINUS (0U)
106 
108 #define CSIRX_LANE_POLARITY_MINUS_PLUS (1U)
109 
119 #define CSIRX_LANE_POSITION_LANE_NOT_USED (0U)
120 
122 #define CSIRX_LANE_POSITION_1 (1U)
123 
125 #define CSIRX_LANE_POSITION_2 (2U)
126 
128 #define CSIRX_LANE_POSITION_3 (3U)
129 
131 #define CSIRX_LANE_POSITION_4 (4U)
132 
134 #define CSIRX_LANE_POSITION_5 (5U)
135 
149 #define CSIRX_STOP_STATE_FSM_TIMEOUT_MAX (200000U)
150 
159 #define CSIRX_ENDIANNESS_NATIVE_MIPI_CSI2 (0U)
160 
162 #define CSIRX_ENDIANNESS_LITTLE_ENDIAN (1U)
163 
165 #define CSIRX_ENDIANNESS_MAX (1U)
166 
176 #define CSIRX_BURST_SIZE_1X64 (0U)
177 
179 #define CSIRX_BURST_SIZE_2X64 (1U)
180 
182 #define CSIRX_BURST_SIZE_4X64 (2U)
183 
185 #define CSIRX_BURST_SIZE_8X64 (3U)
186 
188 #define CSIRX_BURST_SIZE_MAX (3U)
189 
202 #define CSIRX_CONTEXTS_MAX (8U)
203 
206 #define CSIRX_PING_PONG_ADDRESS_LINEOFFSET_ALIGNMENT_IN_BYTES (32U)
207 
209 #define CSIRX_LINEOFFSET_CONTIGUOUS_STORAGE (0U)
210 
213 #define CSIRX_NUM_FRAMES_TO_ACQUIRE_INFINITE (0U)
214 
222 #define CSIRX_CONTEXT_PINGPONG_STATUS_PING_DONE (0U)
223 
224 #define CSIRX_CONTEXT_PINGPONG_STATUS_PONG_DONE (1U)
225 
235 #define CSIRX_PING_PONG_FRAME_SWITCHING (0U)
236 
238 #define CSIRX_PING_PONG_LINE_SWITCHING (1U)
239 
249 #define CSIRX_TRANSCODE_FORMAT_NO_TRANSCODE (0U)
250 
252 #define CSIRX_TRANSCODE_FORMAT_IN_RAW10_ALAW_OUT_RAW8 (3U)
253 
255 #define CSIRX_TRANSCODE_FORMAT_IN_RAW8_OUT_RAW8 (4U)
256 
258 #define CSIRX_TRANSCODE_FORMAT_IN_RAW10_OUT_RAW10_EXP16 (5U)
259 
261 #define CSIRX_TRANSCODE_FORMAT_IN_RAW10_OUT_RAW10_PACKED (6U)
262 
264 #define CSIRX_TRANSCODE_FORMAT_IN_RAW12_OUT_RAW12_EXP16 (7U)
265 
267 #define CSIRX_TRANSCODE_FORMAT_IN_RAW12_OUT_RAW12_PACKED (8U)
268 
270 #define CSIRX_TRANSCODE_FORMAT_IN_RAW14_OUT_RAW14 (9U)
271 
281 #define CSIRX_FORMAT_OTHERS_EXCEPT_NULL_AND_BLANKING (0x000U)
282 
284 #define CSIRX_FORMAT_EMBEDDED_8_BIT_NON_IMAGE (0x012U)
285 
287 #define CSIRX_FORMAT_YUV420_8_BIT (0x018U)
288 
290 #define CSIRX_FORMAT_YUV420_10_BIT (0x019U)
291 
293 #define CSIRX_FORMAT_YUV420_8_BIT_LEGACY (0x01AU)
294 
296 #define CSIRX_FORMAT_YUV420_8_BIT_CSPS (0x01CU)
297 
299 #define CSIRX_FORMAT_YUV420_10_BIT_CSPS (0x01DU)
300 
302 #define CSIRX_FORMAT_YUV422_8_BIT (0x01EU)
303 
305 #define CSIRX_FORMAT_YUV422_10_BIT (0x01FU)
306 
308 #define CSIRX_FORMAT_RGB565 (0x022U)
309 
311 #define CSIRX_FORMAT_RGB888 (0x024U)
312 
314 #define CSIRX_FORMAT_RAW6 (0x028U)
315 
317 #define CSIRX_FORMAT_RAW7 (0x029U)
318 
320 #define CSIRX_FORMAT_RAW8 (0x02AU)
321 
323 #define CSIRX_FORMAT_RAW10 (0x02BU)
324 
326 #define CSIRX_FORMAT_RAW12 (0x02CU)
327 
329 #define CSIRX_FORMAT_RAW14 (0x02DU)
330 
335 #define CSIRX_FORMAT_RGB666_EXP32_24 (0x033U)
336 
338 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_1 (0x040U)
339 
341 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_2 (0x041U)
342 
344 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_3 (0x042U)
345 
347 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_4 (0x043U)
348 
350 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_5 (0x044U)
351 
353 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_6 (0x045U)
354 
356 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_7 (0x046U)
357 
359 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_8 (0x047U)
360 
362 #define CSIRX_FORMAT_RAW6_EXP8 (0x068U)
363 
365 #define CSIRX_FORMAT_RAW7_EXP8 (0x069U)
366 
369 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_1_EXP8 (0x080U)
370 
373 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_2_EXP8 (0x081U)
374 
377 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_3_EXP8 (0x082U)
378 
381 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_4_EXP8 (0x083U)
382 
385 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_5_EXP8 (0x084U)
386 
389 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_6_EXP8 (0x085U)
390 
393 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_7_EXP8 (0x086U)
394 
397 #define CSIRX_FORMAT_USER_DEFINED_8_BIT_DATA_TYPE_8_EXP8 (0x087U)
398 
402 #define CSIRX_FORMAT_RGB444_EXP16 (0x0A0U)
403 
407 #define CSIRX_FORMAT_RGB555_EXP16 (0x0A1U)
408 
412 #define CSIRX_FORMAT_RAW10_EXP16 (0x0ABU)
413 
417 #define CSIRX_FORMAT_RAW12_EXP16 (0x0ACU)
418 
422 #define CSIRX_FORMAT_RAW14_EXP16 (0x0ADU)
423 
427 #define CSIRX_FORMAT_RGB666_EXP32 (0x0E3U)
428 
432 #define CSIRX_FORMAT_RGB888_EXP32 (0x0E4U)
433 
443 #define CSIRX_USER_DEFINED_FORMAT_RAW6 (0U)
444 
446 #define CSIRX_USER_DEFINED_FORMAT_RAW7 (1U)
447 
451 #define CSIRX_USER_DEFINED_FORMAT_RAW8 (2U)
452 
465 #define CSIRX_INTERRUPT_NOT_CONNECTED_ID (0xFFFFU)
466 
474 #define CSIRX_FIFODEPTH_8X68 (2U)
475 
477 #define CSIRX_FIFODEPTH_16X68 (3U)
478 
480 #define CSIRX_FIFODEPTH_32X68 (4U)
481 
483 #define CSIRX_FIFODEPTH_64X68 (5U)
484 
486 #define CSIRX_FIFODEPTH_128X68 (6U)
487 
489 #define CSIRX_FIFODEPTH_256X68 (7U)
490 
494 typedef struct CSIRX_Config_s *CSIRX_Handle;
495 
514 struct CSIRX_CommonIntr_s;
515 
525 typedef void (*CSIRX_CommonCallback)(CSIRX_Handle handle, void *arg, struct CSIRX_CommonIntr_s *irq);
526 
533 typedef void (*CSIRX_Callback)(CSIRX_Handle handle, void *arg);
534 
550 typedef void (*CSIRX_ContextCallback)(CSIRX_Handle handle, void *arg, uint8_t contextId);
551 
561 typedef struct CSIRX_DphyConfig_s
562 {
564  uint32_t ddrClockInHz;
565 
568 
570  uint8_t triggerEscapeCode[4];
572 
582 typedef struct CSIRX_ComplexioLaneConfig_s
583 {
585  uint8_t polarity;
586 
588  uint8_t position;
590 
598 typedef struct CSIRX_ComplexioLaneIntr_s
599 {
603 
606 
609 
613 
617 
627 typedef struct CSIRX_ComplexioLanesIntr_s
628 {
631 
635 
638 
642 
644 typedef struct CSIRX_ComplexioLanesConfig_s
645 {
648 
652 
654 typedef struct CSIRX_ComplexioConfig
655 {
658 
661 
666 
685 typedef struct CSIRX_CommonIntr_s
686 {
689 
698 
703 
708 
713 
721 
727  bool isContextIntr[CSIRX_CONTEXTS_MAX];
729 
735 typedef struct CSIRX_CommonIntrCallbacks_s
736 {
744 
747 
756 
759 
779 
782 
792 
795 
805 
808 
810 
814 typedef struct CSIRX_CommonConfig_s {
815 
820 
826 
831 
835 
838 
842 
850 
854  uint8_t burstSize;
855 
857  uint8_t endianness;
858 
861 
864 
867 
870 
873 
876 
878 
890 typedef struct CSIRX_ContextPingPongConfig_s
891 {
895  uint32_t pingAddress;
896 
900  uint32_t pongAddress;
901 
908  int32_t lineOffset;
909 
916 
920 
925 
927 typedef struct CSIRX_ContextCropConfig_s
928 {
929 
934  uint16_t horizontalCount;
935 
937  uint16_t horizontalSkip;
938 
943  uint16_t verticalCount;
944 
946  uint16_t verticalSkip;
948 
950 typedef struct CSIRX_ContextTranscodeConfig_s
951 {
954 
957 
961 
969 typedef struct CSIRX_ContextIntr_s {
970 
977 
981 
985 
988 
991 
994 
997 
1001 
1003 
1005 typedef struct CSIRX_ContextConfig_s {
1006 
1009 
1011  uint16_t format;
1012 
1016 
1020 
1023 
1026  uint16_t alpha;
1027 
1033 
1039 
1043 
1048 
1052 
1055 
1058 
1061 
1064 
1078 
1081 
1083 
1093 typedef struct CSIRX_Info_s {
1094 
1096  uint8_t revisionId;
1097 
1099  uint8_t fifoDepth;
1100 
1102  uint8_t numContexts;
1103 
1104 } CSIRX_Info;
1105 
1107 typedef struct {
1108 
1110  uint32_t pingAddress;
1111 
1113  uint32_t pongAddress;
1114 
1116 
1118 typedef struct CSIRX_Object_s {
1119 
1121  bool isOpen;
1122 
1125 
1128 
1131 
1134 
1137 
1140 
1143 
1146 
1149 
1152 
1155 
1156 } CSIRX_Object;
1157 
1159 typedef struct CSIRX_HwAttrs_s {
1161  uint32_t csirxRegs;
1162 
1164  uint32_t rcssCtrlRegs;
1165 
1167  uint32_t hwInstId;
1168 
1170  uint32_t ctrlClockHz;
1171 
1174 
1176  uint16_t commonIntNum;
1177 
1180 
1183 
1186 
1189 
1191  uint16_t contextEndOfLineIntNum[CSIRX_CONTEXTS_MAX];
1192 
1193 } CSIRX_HwAttrs;
1194 
1196 typedef struct CSIRX_Config_s {
1197 
1200 
1203 } CSIRX_Config;
1204 
1205 
1207 extern CSIRX_Config gCsirxConfig[];
1208 
1210 extern uint32_t gCsirxConfigNum;
1211 
1228 int32_t CSIRX_init();
1229 
1238 int32_t CSIRX_deinit();
1239 
1247 CSIRX_Handle CSIRX_open(uint32_t instanceId);
1248 
1257 int32_t CSIRX_getInfo(CSIRX_Handle handle, CSIRX_Info *info);
1258 
1266 int32_t CSIRX_reset(CSIRX_Handle handle);
1267 
1275 int32_t CSIRX_close(CSIRX_Handle handle);
1276 
1291 
1301 
1310 int32_t CSIRX_dphyIsControlClockResetDone(CSIRX_Handle handle, bool *isDone);
1311 
1320 int32_t CSIRX_dphyIsByteClockResetDone(CSIRX_Handle handle, bool *isDone);
1321 
1335 
1350 
1360 
1369 
1379 
1390 int32_t CSIRX_complexioGetPowerStatus(CSIRX_Handle handle, uint8_t *powerStatus);
1391 
1400 int32_t CSIRX_complexioSetPowerCommand(CSIRX_Handle handle, uint8_t powerCommand);
1401 
1410 
1419 
1428 
1437 int32_t CSIRX_complexioIsResetDone(CSIRX_Handle handle, bool *isDone);
1438 
1447 int32_t CSIRX_complexioIsDeassertForceRxModeOn(CSIRX_Handle handle, bool *isDeasserted);
1448 
1456 static inline int32_t CSIRX_complexioPowerOn(CSIRX_Handle handle)
1457 {
1459 }
1460 
1468 static inline int32_t CSIRX_complexioPowerOff(CSIRX_Handle handle)
1469 {
1471 }
1472 
1480 static inline int32_t CSIRX_complexioUltraLowPower(CSIRX_Handle handle)
1481 {
1483 }
1484 
1485 
1500 
1510 
1519 
1529 
1538 int32_t CSIRX_commonGetGenericShortPacket(CSIRX_Handle handle, uint32_t *shortPacket);
1539 
1548 
1557 
1573 
1574 
1584 int32_t CSIRX_contextSetConfig(CSIRX_Handle handle, uint8_t contextId, CSIRX_ContextConfig *config);
1585 
1596 int32_t CSIRX_contextSetPingPongAddress(CSIRX_Handle handle, uint8_t contextId, uint32_t pingAddress, uint32_t pongAddress);
1597 
1607 int32_t CSIRX_contextSetLineOffset(CSIRX_Handle handle, uint8_t contextId, int32_t lineOffset);
1608 
1609 
1618 int32_t CSIRX_contextEnable(CSIRX_Handle handle, uint8_t contextId);
1619 
1628 int32_t CSIRX_contextDisable(CSIRX_Handle handle, uint8_t contextId);
1629 
1638 int32_t CSIRX_contextClearAllIntr(CSIRX_Handle handle, uint8_t contextId);
1639 
1649 int32_t CSIRX_contextGetPendingIntr(CSIRX_Handle handle, uint8_t contextId, CSIRX_ContextIntr *intrStatus);
1650 
1660 int32_t CSIRX_contextGetFrameNumber(CSIRX_Handle handle, uint8_t contextId, uint16_t *frameNumber);
1661 
1671 int32_t CSIRX_contextGetRecvAddress(CSIRX_Handle handle, uint8_t contextId, uint32_t *bufAddress);
1672 
1682 int32_t CSIRX_contextGetPingPongStatus(CSIRX_Handle handle, uint8_t contextId, uint8_t *pingPongStatus);
1683 
1700 int32_t CSIRX_debugModeSetShortPacket(CSIRX_Handle handle, uint32_t shortPacket);
1701 
1710 int32_t CSIRX_debugModeSetLongPacketHeader(CSIRX_Handle handle, uint32_t longPacketHeader);
1711 
1720 int32_t CSIRX_debugModeSetLongPacketPayload(CSIRX_Handle handle, uint32_t payload);
1721 
1730 
1739 
1753  uint16_t txFormat,
1754  uint8_t virtualChannelId,
1755  uint32_t numOfFrames,
1756  uint32_t numLinesPerFrame,
1757  uint32_t numBytesPerLine);
1758 
1761 #ifdef __cplusplus
1762 }
1763 #endif
1764 
1765 #endif
1766 
CSIRX_CommonConfig::endianness
uint8_t endianness
One of CSIRX_ENDIANNESS.
Definition: csirx/v0/csirx.h:857
CSIRX_commonEnable
int32_t CSIRX_commonEnable(CSIRX_Handle handle)
Enable CSIRX interface.
CSIRX_contextDisable
int32_t CSIRX_contextDisable(CSIRX_Handle handle, uint8_t contextId)
Disable context.
CSIRX_complexioGetPendingIntr
int32_t CSIRX_complexioGetPendingIntr(CSIRX_Handle handle, CSIRX_ComplexioLanesIntr *intrStatus)
Get all pending complex IO interrupts.
CSIRX_complexioUltraLowPower
static int32_t CSIRX_complexioUltraLowPower(CSIRX_Handle handle)
Put complex IO in ULP (Ultra Low Power) state.
Definition: csirx/v0/csirx.h:1480
CSIRX_HwAttrs::ctrlClockHz
uint32_t ctrlClockHz
CSI interface control clock in Hz. In AM723x, this is 96000000 Hz.
Definition: csirx/v0/csirx.h:1170
CSIRX_CommonIntrCallbacks::startOfFrameIntr0CallbackArgs
void * startOfFrameIntr0CallbackArgs
Argument for CSIRX_CommonIntrCallbacks::startOfFrameIntr0Callback.
Definition: csirx/v0/csirx.h:794
CSIRX_ContextTranscodeConfig::isHorizontalDownscalingBy2Enabled
bool isHorizontalDownscalingBy2Enabled
If true, horizontal down scaling by 2 is enabled, else disabled.
Definition: csirx/v0/csirx.h:956
CSIRX_ContextPingPongConfig
ping-pong related configuration for each context. Note specified ping and pong addresses can be ident...
Definition: csirx/v0/csirx.h:891
CSIRX_complexioClearAllIntr
int32_t CSIRX_complexioClearAllIntr(CSIRX_Handle handle)
Celar all pending complex IO interrupts.
CSIRX_ContextIntr::isLongPacketOneBitErrorCorrect
bool isLongPacketOneBitErrorCorrect
If true, 1-bit error was detected and corrected in long packet. Influenced by CSIRX_CommonConfig::isH...
Definition: csirx/v0/csirx.h:1000
CSIRX_Object::endOfFrameIntr0ContextId
uint32_t endOfFrameIntr0ContextId
NOT to used by end users.
Definition: csirx/v0/csirx.h:1133
CSIRX_CommonIntrCallbacks::combinedEndOfLineCallbackArgs
void * combinedEndOfLineCallbackArgs
Argument for CSIRX_CommonIntrCallbacks::combinedEndOfLineCallback.
Definition: csirx/v0/csirx.h:746
CSIRX_CommonIntr::isOneBitShortPacketErrorCorrect
bool isOneBitShortPacketErrorCorrect
if true, ECC has been used to do the correction of 1-bit error (short packet only)....
Definition: csirx/v0/csirx.h:702
CSIRX_CommonIntrCallbacks::startOfFrameIntr1CallbackArgs
void * startOfFrameIntr1CallbackArgs
Argument for CSIRX_CommonIntrCallbacks::startOfFrameIntr1Callback.
Definition: csirx/v0/csirx.h:807
CSIRX_complexioSetConfig
int32_t CSIRX_complexioSetConfig(CSIRX_Handle handle, CSIRX_ComplexioConfig *config)
Configure Complex IO.
CSIRX_ContextIntr
Context interrupts.
Definition: csirx/v0/csirx.h:969
CSIRX_HwAttrs::startOfFrameIntr0IntNum
uint16_t startOfFrameIntr0IntNum
CPU Interrupt number, if interrupt not connected, set to CSIRX_INTERRUPT_NOT_CONNECTED_ID.
Definition: csirx/v0/csirx.h:1185
CSIRX_HwAttrs::startOfFrameIntr1IntNum
uint16_t startOfFrameIntr1IntNum
CPU Interrupt number, if interrupt not connected, set to CSIRX_INTERRUPT_NOT_CONNECTED_ID.
Definition: csirx/v0/csirx.h:1188
CSIRX_ContextConfig_init
void CSIRX_ContextConfig_init(CSIRX_ContextConfig *config)
Sets default values for configuration.
CSIRX_CommonConfig::endOfFrameIntr0ContextId
uint8_t endOfFrameIntr0ContextId
Context Id for generation of EOF Interrupt 0.
Definition: csirx/v0/csirx.h:866
CSIRX_ContextConfig::numFramesToAcquire
uint16_t numFramesToAcquire
number of frames to acquire. Special value CSIRX_NUM_FRAMES_TO_ACQUIRE_INFINITE for infinite frames
Definition: csirx/v0/csirx.h:1019
CSIRX_Config
CSIRX Instance Config Object.
Definition: csirx/v0/csirx.h:1196
CSIRX_CommonConfig::stopStateFsmTimeoutInNanoSecs
uint32_t stopStateFsmTimeoutInNanoSecs
stop state FSM timeout in Nano seconds. The maximum timeout possible is equal to 1/CSIRX_INTERCONNECT...
Definition: csirx/v0/csirx.h:849
CSIRX_complexioAssertForceRxModeOn
int32_t CSIRX_complexioAssertForceRxModeOn(CSIRX_Handle handle)
Assert Force Rx Mode on complex IO.
CSIRX_commonDisable
int32_t CSIRX_commonDisable(CSIRX_Handle handle)
Disable CSIRX interface.
CSIRX_Object::isOpen
bool isOpen
0: instance is not opened, 1: instance is open
Definition: csirx/v0/csirx.h:1121
CSIRX_ContextConfig::virtualChannelId
uint8_t virtualChannelId
Virtual channel Id as per MIPI spec.
Definition: csirx/v0/csirx.h:1008
CSIRX_contextSetLineOffset
int32_t CSIRX_contextSetLineOffset(CSIRX_Handle handle, uint8_t contextId, int32_t lineOffset)
Set context line offset.
CSIRX_Info
CSIRX Instance information.
Definition: csirx/v0/csirx.h:1093
CSIRX_debugModeDisable
int32_t CSIRX_debugModeDisable(CSIRX_Handle handle)
Disable debug mode.
SystemP.h
CSIRX_ContextConfig::format
uint16_t format
Data format, one of CSIRX_DATA_FORMAT.
Definition: csirx/v0/csirx.h:1011
CSIRX_ContextConfig::isGenerateIntrEveryNumLinesForIntr
bool isGenerateIntrEveryNumLinesForIntr
see description of CSIRX_ContextIntr::isNumLines
Definition: csirx/v0/csirx.h:1054
CSIRX_ComplexioLanesIntr::clockLane
CSIRX_ComplexioLaneIntr clockLane
clock lane interrupt configuration
Definition: csirx/v0/csirx.h:640
CSIRX_close
int32_t CSIRX_close(CSIRX_Handle handle)
Close CSIRX instance.
CSIRX_CommonIntr::isFifoOverflow
bool isFifoOverflow
if true, it indicates data input rate is higher than the data output rate resulting in the receive FI...
Definition: csirx/v0/csirx.h:720
CSIRX_ContextConfig::isEndOfLinePulseEnabled
bool isEndOfLinePulseEnabled
if enabled, end of line pulse is generated at the end of the line. This controls the combined End of ...
Definition: csirx/v0/csirx.h:1047
CSIRX_ContextCallback
void(* CSIRX_ContextCallback)(CSIRX_Handle handle, void *arg, uint8_t contextId)
Context interrupt callback.
Definition: csirx/v0/csirx.h:550
CSIRX_contextClearAllIntr
int32_t CSIRX_contextClearAllIntr(CSIRX_Handle handle, uint8_t contextId)
Clear all pending context interrupts.
CSIRX_CommonConfig::burstSize
uint8_t burstSize
Sets the DMA burst size on the interconnect to one of CSIRX_BURST_SIZE. Only effective if isBurstSize...
Definition: csirx/v0/csirx.h:854
CSIRX_dphySetConfig
int32_t CSIRX_dphySetConfig(CSIRX_Handle handle, CSIRX_DphyConfig *config)
Configure DPHY.
CSIRX_CommonConfig
Common to all context configuration.
Definition: csirx/v0/csirx.h:814
CSIRX_Object
CSIRX Instance Object. Used internally, not to be used by end users.
Definition: csirx/v0/csirx.h:1118
CSIRX_COMPLEXIO_POWER_COMMAND_ON
#define CSIRX_COMPLEXIO_POWER_COMMAND_ON
Power on ComplexIO.
Definition: csirx/v0/csirx.h:74
CSIRX_HwAttrs::combinedEndOfFrameIntNum
uint16_t combinedEndOfFrameIntNum
CPU Interrupt number, if interrupt not connected, set to CSIRX_INTERRUPT_NOT_CONNECTED_ID.
Definition: csirx/v0/csirx.h:1182
CSIRX_CommonIntrCallbacks::commonCallbackArgs
void * commonCallbackArgs
Argument for CSIRX_CommonIntrCallbacks::commonCallback.
Definition: csirx/v0/csirx.h:781
CSIRX_ContextConfig::isPayloadChecksumEnable
bool isPayloadChecksumEnable
If true, enables checksum checking of long packet payload. Influenced by CSIRX_ContextIntr::isPayload...
Definition: csirx/v0/csirx.h:1051
CSIRX_ComplexioLaneConfig::position
uint8_t position
position, one of CSIRX_LANE_POSITION
Definition: csirx/v0/csirx.h:588
CSIRX_CommonIntr::isComplexioError
bool isComplexioError
if true, one or more of complex IO errors defined in CSIRX_ComplexioLanesIntr happened....
Definition: csirx/v0/csirx.h:712
CSIRX_contextGetPendingIntr
int32_t CSIRX_contextGetPendingIntr(CSIRX_Handle handle, uint8_t contextId, CSIRX_ContextIntr *intrStatus)
Get all pending context interrupts.
CSIRX_complexioDeassertReset
int32_t CSIRX_complexioDeassertReset(CSIRX_Handle handle)
Deaasert complex IO reset.
CSIRX_ComplexioLanesIntr
Complex IO all (logical) lanes interrupts.
Definition: csirx/v0/csirx.h:628
CSIRX_contextEnable
int32_t CSIRX_contextEnable(CSIRX_Handle handle, uint8_t contextId)
Enable context.
CSIRX_ContextConfig::alpha
uint16_t alpha
controls the padding for *_EXP16, *_EXP32 and *_EXP32_24 data formats of the format field
Definition: csirx/v0/csirx.h:1026
CSIRX_ContextConfig::isGenericEnabled
bool isGenericEnabled
If true, data is received as per format and the long packet code transmitted in the MIPI stream is ig...
Definition: csirx/v0/csirx.h:1038
CSIRX_ComplexioLanesIntr::isAllLanesExitULPM
bool isAllLanesExitULPM
true if at least one of the active lanes has exit ULPM (Ultra Low Power Mode)
Definition: csirx/v0/csirx.h:634
CSIRX_ComplexioLaneIntr::isStartOfTransmissionError
bool isStartOfTransmissionError
true if Start of Transmission (SOT) error happened, else false
Definition: csirx/v0/csirx.h:615
CSIRX_complexioPowerOff
static int32_t CSIRX_complexioPowerOff(CSIRX_Handle handle)
Power OFF complex IO.
Definition: csirx/v0/csirx.h:1468
CSIRX_complexioPowerOn
static int32_t CSIRX_complexioPowerOn(CSIRX_Handle handle)
Power ON complex IO.
Definition: csirx/v0/csirx.h:1456
CSIRX_reset
int32_t CSIRX_reset(CSIRX_Handle handle)
Reset CSIRX instance.
CSIRX_ContextIntr::isNumLines
bool isNumLines
If true, indicates number of lines specified in CSIRX_ContextConfig::numLinesForIntr were received....
Definition: csirx/v0/csirx.h:976
CSIRX_init
int32_t CSIRX_init()
Initialize CSIRX driver.
CSIRX_ContextConfig::numLinesForIntr
uint16_t numLinesForIntr
see description of CSIRX_ContextIntr::isNumLines
Definition: csirx/v0/csirx.h:1022
CSIRX_CommonIntrCallbacks::combinedEndOfFrameCallback
CSIRX_Callback combinedEndOfFrameCallback
Combined End of Frame call back function definition.
Definition: csirx/v0/csirx.h:755
CSIRX_ContextIntr::isFramesToAcquire
bool isFramesToAcquire
If true, indicates CSIRX_ContextConfig::numFramesToAcquire frames have been acquired.
Definition: csirx/v0/csirx.h:980
gCsirxConfig
CSIRX_Config gCsirxConfig[]
Array of CSIRX instance enabled via SysConfig.
CSIRX_Object::startOfFrameIntr1ContextId
uint32_t startOfFrameIntr1ContextId
NOT to used by end users.
Definition: csirx/v0/csirx.h:1130
CSIRX_Object::combinedEndOfLineIntrObj
HwiP_Object combinedEndOfLineIntrObj
NOT to used by end users.
Definition: csirx/v0/csirx.h:1145
CSIRX_getInfo
int32_t CSIRX_getInfo(CSIRX_Handle handle, CSIRX_Info *info)
Get CSIRX instance info.
CSIRX_ContextTranscodeConfig
Transcoding configuration.
Definition: csirx/v0/csirx.h:951
CSIRX_HwAttrs
CSIRX HW Attributes. Generated when using sysconfig.
Definition: csirx/v0/csirx.h:1159
CSIRX_commonGetPendingIntr
int32_t CSIRX_commonGetPendingIntr(CSIRX_Handle handle, CSIRX_CommonIntr *intrStatus)
Get all pending common to all context interrupts.
CSIRX_CommonConfig::enableIntr
CSIRX_CommonIntr enableIntr
Common interrupt to enable or disable.
Definition: csirx/v0/csirx.h:872
CSIRX_ContextIntr::isLineEndCodeDetect
bool isLineEndCodeDetect
If true, triggers when Line End sync Code is detected.
Definition: csirx/v0/csirx.h:990
CSIRX_complexioIsResetDone
int32_t CSIRX_complexioIsResetDone(CSIRX_Handle handle, bool *isDone)
Check if complex IO reset is done.
CSIRX_Info::numContexts
uint8_t numContexts
Number of contexts.
Definition: csirx/v0/csirx.h:1102
CSIRX_ContextCropConfig::verticalCount
uint16_t verticalCount
13-bit field that indicates lines to output per frame when value is between 1 and 8191....
Definition: csirx/v0/csirx.h:943
CSIRX_CommonConfig::isHeaderErrorCheckEnabled
bool isHeaderErrorCheckEnabled
If true, enables the Error Correction Code check for the received header (short and long packets for ...
Definition: csirx/v0/csirx.h:825
CSIRX_commonClearAllIntr
int32_t CSIRX_commonClearAllIntr(CSIRX_Handle handle)
Clear all pending common to all context interrupts.
CSIRX_CommonIntrCallbacks::commonCallback
CSIRX_CommonCallback commonCallback
Common interrupt call back function definition.
Definition: csirx/v0/csirx.h:778
CSIRX_CommonIntr::isGenericShortPacketReceive
bool isGenericShortPacketReceive
true if short packet was received other than the MIPI sync events: Frame Start Code (0x0) Frame E...
Definition: csirx/v0/csirx.h:697
CSIRX_dphyIsByteClockResetDone
int32_t CSIRX_dphyIsByteClockResetDone(CSIRX_Handle handle, bool *isDone)
Check if DPHY byte clock reset is done.
CSIRX_Object::startOfFrameIntr0ContextId
uint32_t startOfFrameIntr0ContextId
NOT to used by end users.
Definition: csirx/v0/csirx.h:1127
CSIRX_CommonIntrCallbacks::startOfFrameIntr0Callback
CSIRX_ContextCallback startOfFrameIntr0Callback
Start of Frame (SOF) Interrupt 0 call back function definition.
Definition: csirx/v0/csirx.h:791
CSIRX_ComplexioLanesIntr::isAllLanesEnterULPM
bool isAllLanesEnterULPM
true if all lanes transitioned to ULPM (Ultra Low Power Mode)
Definition: csirx/v0/csirx.h:630
CSIRX_CommonConfig::startOfFrameIntr1ContextId
uint8_t startOfFrameIntr1ContextId
Context Id for generation of SOF Interrupt 1.
Definition: csirx/v0/csirx.h:863
CSIRX_CommonIntr::isOcpError
bool isOcpError
reserved, keep this as 0
Definition: csirx/v0/csirx.h:688
CSIRX_ContextIntr::isPayloadChecksumMismatch
bool isPayloadChecksumMismatch
If true, long packet payoad check-sum mismatched. Influenced by CSIRX_ContextConfig::isPayloadChecksu...
Definition: csirx/v0/csirx.h:984
CSIRX_ContextTranscodeConfig::crop
CSIRX_ContextCropConfig crop
Cropping configuration.
Definition: csirx/v0/csirx.h:959
CSIRX_DphyConfig::isClockMissingDetectionEnabled
bool isClockMissingDetectionEnabled
Set to true if wanting to enable clock missing detector.
Definition: csirx/v0/csirx.h:567
CSIRX_DphyConfig
DPHY configuration.
Definition: csirx/v0/csirx.h:562
CSIRX_COMPLEXIO_POWER_COMMAND_ULP
#define CSIRX_COMPLEXIO_POWER_COMMAND_ULP
Put ComplexIO in ULP (Ultra Low Power) state.
Definition: csirx/v0/csirx.h:77
CSIRX_Object::commonIntrObj
HwiP_Object commonIntrObj
NOT to used by end users.
Definition: csirx/v0/csirx.h:1142
CSIRX_ContextConfig::transcodeConfig
CSIRX_ContextTranscodeConfig transcodeConfig
Transcode configuration.
Definition: csirx/v0/csirx.h:1057
CSIRX_ComplexioLanesConfig
All lanes configuration.
Definition: csirx/v0/csirx.h:645
CSIRX_complexioSetPowerCommand
int32_t CSIRX_complexioSetPowerCommand(CSIRX_Handle handle, uint8_t powerCommand)
Set Complex IO power command.
CSIRX_CommonIntr::isMoreThanOneBitShortPacketErrorCannotCorrect
bool isMoreThanOneBitShortPacketErrorCannotCorrect
if true, more than 1-bit error that cannot be ECC corrected and was detected in the short packet or l...
Definition: csirx/v0/csirx.h:707
CSIRX_ContextConfig::userDefinedMapping
uint8_t userDefinedMapping
Selects the pixel format of USER_DEFINED in CSIRX_DATA_FORMAT configuration. One of CSIRX_USER_DEFINE...
Definition: csirx/v0/csirx.h:1015
CSIRX_ContextPingPongConfig::pingAddress
uint32_t pingAddress
ping address in which the frame/line data is received, must have 5 LSBs 0. User must provision for su...
Definition: csirx/v0/csirx.h:895
CSIRX_deinit
int32_t CSIRX_deinit()
De-Initialize CSIRX driver.
CSIRX_COMPLEXIO_POWER_COMMAND_OFF
#define CSIRX_COMPLEXIO_POWER_COMMAND_OFF
Power off ComplexIO.
Definition: csirx/v0/csirx.h:71
HwiP.h
CSIRX_ComplexioLaneIntr::isStartOfTransmissionSyncError
bool isStartOfTransmissionSyncError
true if Start of Transmission (SOT) Synchronization error happened, else false
Definition: csirx/v0/csirx.h:612
CSIRX_debugModeSetLongPacketPayload
int32_t CSIRX_debugModeSetLongPacketPayload(CSIRX_Handle handle, uint32_t payload)
Set long packet payload.
CSIRX_ContextConfig::eolCallbackArgs
void * eolCallbackArgs
Arguments for CSIRX_ContextConfig::eolCallback.
Definition: csirx/v0/csirx.h:1080
CSIRX_Config::object
CSIRX_Object * object
Instance Object.
Definition: csirx/v0/csirx.h:1199
CSIRX_ContextCropConfig::horizontalCount
uint16_t horizontalCount
13-bit field that indicates pixels to output per line when value is between 1 and 8191....
Definition: csirx/v0/csirx.h:934
CSIRX_ContextTranscodeConfig::transcodeFormat
uint8_t transcodeFormat
Transcoding format, one of CSIRX_TRANSCODE_FORMAT.
Definition: csirx/v0/csirx.h:953
CSIRX_ComplexioLaneIntr::isStateTransitionToULPM
bool isStateTransitionToULPM
true if lane transitioned to ULPM (Ultra Low Power Mode), else false
Definition: csirx/v0/csirx.h:602
CSIRX_Config::hwAttrs
CSIRX_HwAttrs const * hwAttrs
Instance HW Attributes.
Definition: csirx/v0/csirx.h:1202
CSIRX_debugModeSetShortPacket
int32_t CSIRX_debugModeSetShortPacket(CSIRX_Handle handle, uint32_t shortPacket)
Set short packet header.
CSIRX_CONTEXTS_MAX
#define CSIRX_CONTEXTS_MAX
Max possible CSIRX contexts.
Definition: csirx/v0/csirx.h:202
CSIRX_ContextConfig::isByteSwapEnabled
bool isByteSwapEnabled
If true, enables byte swapping of payload data when it is multiples of 16-bits. Byte swapping is perf...
Definition: csirx/v0/csirx.h:1032
CSIRX_complexioDeassertForceRxModeOn
int32_t CSIRX_complexioDeassertForceRxModeOn(CSIRX_Handle handle)
De-assert Force Rx Mode on complex IO.
CSIRX_CommonIntrCallbacks::combinedEndOfLineCallback
CSIRX_Callback combinedEndOfLineCallback
Combined End of Line call back function definition.
Definition: csirx/v0/csirx.h:743
CSIRX_ContextIntr::isFrameEndCodeDetect
bool isFrameEndCodeDetect
If true, triggers when Frame End sync Code is detected.
Definition: csirx/v0/csirx.h:996
CSIRX_ComplexioLaneConfig
Lane configuration.
Definition: csirx/v0/csirx.h:583
CSIRX_ContextConfig
Context configuration.
Definition: csirx/v0/csirx.h:1005
CSIRX_Object::intrCallbacks
CSIRX_CommonIntrCallbacks intrCallbacks
NOT to used by end users.
Definition: csirx/v0/csirx.h:1139
CSIRX_ComplexioConfig_init
void CSIRX_ComplexioConfig_init(CSIRX_ComplexioConfig *config)
Sets default values for configuration.
CSIRX_CommonConfig::startOfFrameIntr0ContextId
uint8_t startOfFrameIntr0ContextId
Context Id for generation of SOF Interrupt 0.
Definition: csirx/v0/csirx.h:860
CSIRX_DphyConfig::ddrClockInHz
uint32_t ddrClockInHz
DDR clock speed in Hz.
Definition: csirx/v0/csirx.h:564
CSIRX_CommonConfig::endOfFrameIntr1ContextId
uint8_t endOfFrameIntr1ContextId
Context Id for generation of EOF Interrupt 1.
Definition: csirx/v0/csirx.h:869
CSIRX_ContextPingPongConfig::pingPongSwitchMode
uint8_t pingPongSwitchMode
ping-pong switching mode, one of CSIRX_PING_PONG_SWITCHING_MODE. If line based, ping-pong switch happ...
Definition: csirx/v0/csirx.h:915
CSIRX_CommonConfig::intrCallbacks
CSIRX_CommonIntrCallbacks intrCallbacks
Common interrupt callbacks.
Definition: csirx/v0/csirx.h:875
CSIRX_contextGetFrameNumber
int32_t CSIRX_contextGetFrameNumber(CSIRX_Handle handle, uint8_t contextId, uint16_t *frameNumber)
Get current frame number as decoded from within CSIRX long packet.
CSIRX_CommonConfig::isSoftStoppingOnInterfaceDisable
bool isSoftStoppingOnInterfaceDisable
If true, when CSIRX_commonDisable is issued, the interface stops after full frames are received in al...
Definition: csirx/v0/csirx.h:819
CSIRX_HwAttrs::rcssCtrlRegs
uint32_t rcssCtrlRegs
Additional CSIRX control registers, located in SOC top level CTRL regs.
Definition: csirx/v0/csirx.h:1164
CSIRX_ContextObject::pingAddress
uint32_t pingAddress
Current programmed ping address.
Definition: csirx/v0/csirx.h:1110
CSIRX_debugModeEnable
int32_t CSIRX_debugModeEnable(CSIRX_Handle handle)
Enable debug mode.
CSIRX_Object::startOfFrameIntr1IntrObj
HwiP_Object startOfFrameIntr1IntrObj
NOT to used by end users.
Definition: csirx/v0/csirx.h:1154
CSIRX_ComplexioLaneIntr
Complex IO per lane interrupt.
Definition: csirx/v0/csirx.h:599
CSIRX_HwAttrs::hwInstId
uint32_t hwInstId
HW instance ID, 0: CSI2A, 1: CSI2B as so on.
Definition: csirx/v0/csirx.h:1167
CSIRX_ComplexioLaneConfig::polarity
uint8_t polarity
polarity, one of CSIRX_LANE_POLARITY
Definition: csirx/v0/csirx.h:585
CSIRX_contextGetRecvAddress
int32_t CSIRX_contextGetRecvAddress(CSIRX_Handle handle, uint8_t contextId, uint32_t *bufAddress)
Get current completed receive address.
CSIRX_debugModeGenerateFrames
void CSIRX_debugModeGenerateFrames(CSIRX_Handle handle, uint16_t txFormat, uint8_t virtualChannelId, uint32_t numOfFrames, uint32_t numLinesPerFrame, uint32_t numBytesPerLine)
Generate frames in debug mode.
CSIRX_ContextPingPongConfig::lineOffset
int32_t lineOffset
line offset as defined in the TRM (CSI2_CTX_DAT_OFST::OFST). Special value CSIRX_LINEOFFSET_CONTIGUOU...
Definition: csirx/v0/csirx.h:908
CSIRX_CommonConfig::isOcpAutoIdle
bool isOcpAutoIdle
If true, automatic OCP clock gatingbased on OCP activity is enabled. If false, OCP clock is free runn...
Definition: csirx/v0/csirx.h:841
CSIRX_HwAttrs::csirxRegs
uint32_t csirxRegs
CSIRX IP registers.
Definition: csirx/v0/csirx.h:1161
CSIRX_commonSetConfig
int32_t CSIRX_commonSetConfig(CSIRX_Handle handle, CSIRX_CommonConfig *config)
Configure common to all context settings.
CSIRX_ContextCropConfig
Cropping configuration.
Definition: csirx/v0/csirx.h:928
CSIRX_ContextConfig::pingPongConfig
CSIRX_ContextPingPongConfig pingPongConfig
ping-pong configuration
Definition: csirx/v0/csirx.h:1060
CSIRX_complexioIsDeassertForceRxModeOn
int32_t CSIRX_complexioIsDeassertForceRxModeOn(CSIRX_Handle handle, bool *isDeasserted)
Check if force RX mode on is deasserted.
CSIRX_contextSetPingPongAddress
int32_t CSIRX_contextSetPingPongAddress(CSIRX_Handle handle, uint8_t contextId, uint32_t pingAddress, uint32_t pongAddress)
Set context ping and pong address.
CSIRX_DATA_LANES_MAX
#define CSIRX_DATA_LANES_MAX
Max possible data lanes.
Definition: csirx/v0/csirx.h:62
CSIRX_Object::endOfFrameIntr1ContextId
uint32_t endOfFrameIntr1ContextId
NOT to used by end users.
Definition: csirx/v0/csirx.h:1136
CSIRX_ContextCropConfig::horizontalSkip
uint16_t horizontalSkip
Pixels to skip horizontally between 0 and 8191.
Definition: csirx/v0/csirx.h:937
CSIRX_HwAttrs::interconnectClockHz
uint32_t interconnectClockHz
CSI interconnect control clock in Hz. In AM723x, this is 200000000 Hz.
Definition: csirx/v0/csirx.h:1173
CSIRX_ContextObject
Context specific state information, not to be used by end users.
Definition: csirx/v0/csirx.h:1107
CSIRX_ContextIntr::isFrameStartCodeDetect
bool isFrameStartCodeDetect
If true, triggers when Frame Start sync Code is detected.
Definition: csirx/v0/csirx.h:993
CSIRX_Object::combinedEndOfFrameIntrObj
HwiP_Object combinedEndOfFrameIntrObj
NOT to used by end users.
Definition: csirx/v0/csirx.h:1148
CSIRX_commonGetGenericShortPacket
int32_t CSIRX_commonGetGenericShortPacket(CSIRX_Handle handle, uint32_t *shortPacket)
Get generic short packet header.
HwiP_Object
Opaque Hwi object used with the Hwi APIs.
Definition: HwiP.h:91
CSIRX_CommonIntrCallbacks::startOfFrameIntr1Callback
CSIRX_ContextCallback startOfFrameIntr1Callback
Start of Frame (SOF) Interrupt 1 call back function definition.
Definition: csirx/v0/csirx.h:804
CSIRX_ContextCropConfig::verticalSkip
uint16_t verticalSkip
Pixels to skip vertically between 0 and 8191.
Definition: csirx/v0/csirx.h:946
CSIRX_ContextPingPongConfig::numLinesForLineBasedPingPongSwitching
uint16_t numLinesForLineBasedPingPongSwitching
number of lines for line based ping-pong switching. Typically used in radar for multi-chirp (when chi...
Definition: csirx/v0/csirx.h:923
CSIRX_Object::startOfFrameIntr0IntrObj
HwiP_Object startOfFrameIntr0IntrObj
NOT to used by end users.
Definition: csirx/v0/csirx.h:1151
CSIRX_DphyConfig_init
void CSIRX_DphyConfig_init(CSIRX_DphyConfig *config)
Sets default values for configuration.
CSIRX_ContextPingPongConfig::numFramesForFrameBasedPingPongSwitching
uint8_t numFramesForFrameBasedPingPongSwitching
number of frames for frame based ping-pong switching. Typically used in interlaced mode (=2)....
Definition: csirx/v0/csirx.h:919
CSIRX_ComplexioLaneIntr::isEscapeEntryError
bool isEscapeEntryError
true if escape entry error happened, else false
Definition: csirx/v0/csirx.h:608
CSIRX_ComplexioLanesConfig::clockLane
CSIRX_ComplexioLaneConfig clockLane
clock lanes configuration
Definition: csirx/v0/csirx.h:650
CSIRX_ComplexioConfig
Complex IO configuration.
Definition: csirx/v0/csirx.h:655
CSIRX_debugModeSetLongPacketHeader
int32_t CSIRX_debugModeSetLongPacketHeader(CSIRX_Handle handle, uint32_t longPacketHeader)
Set long packet header.
CSIRX_HwAttrs::combinedEndOfLineIntNum
uint16_t combinedEndOfLineIntNum
CPU Interrupt number, if interrupt not connected, set to CSIRX_INTERRUPT_NOT_CONNECTED_ID.
Definition: csirx/v0/csirx.h:1179
CSIRX_Info::fifoDepth
uint8_t fifoDepth
Output FIFO depth, one of CSIRX_FIFODEPTH.
Definition: csirx/v0/csirx.h:1099
CSIRX_ContextObject::pongAddress
uint32_t pongAddress
Current programmed pong address.
Definition: csirx/v0/csirx.h:1113
CSIRX_ContextConfig::isEndOfFramePulseEnabled
bool isEndOfFramePulseEnabled
if enabled, end of frame pulse is generated at the end of the frame. This controls the combined End o...
Definition: csirx/v0/csirx.h:1042
CSIRX_complexioGetPowerStatus
int32_t CSIRX_complexioGetPowerStatus(CSIRX_Handle handle, uint8_t *powerStatus)
Query about ComplexIO power status.
gCsirxConfigNum
uint32_t gCsirxConfigNum
Number of CSIRX instances enabled via SysConfig.
CSIRX_ContextConfig::enableIntr
CSIRX_ContextIntr enableIntr
Context interrupts to enable/disable.
Definition: csirx/v0/csirx.h:1063
CSIRX_ComplexioConfig::isPowerAuto
bool isPowerAuto
If true, automatically switches between ULP and ON states based on ULPM signals from complex IO.
Definition: csirx/v0/csirx.h:664
CSIRX_Info::revisionId
uint8_t revisionId
4-bit Major Revision ID + 4-bit minor revision ID
Definition: csirx/v0/csirx.h:1096
CSIRX_CommonIntrCallbacks
Callbacks and callback arguments for various common interrupt event.
Definition: csirx/v0/csirx.h:736
CSIRX_CommonIntr
Common (across contexts) interrupts.
Definition: csirx/v0/csirx.h:686
CSIRX_dphyIsControlClockResetDone
int32_t CSIRX_dphyIsControlClockResetDone(CSIRX_Handle handle, bool *isDone)
Check if DPHY control clock reset is done.
CSIRX_CommonConfig::isNonPostedWrites
bool isNonPostedWrites
If true, writes are non posted.
Definition: csirx/v0/csirx.h:837
CSIRX_CommonCallback
void(* CSIRX_CommonCallback)(CSIRX_Handle handle, void *arg, struct CSIRX_CommonIntr_s *irq)
Common interrupt callback.
Definition: csirx/v0/csirx.h:525
CSIRX_ComplexioLaneIntr::isControlError
bool isControlError
true if control error happened, else false
Definition: csirx/v0/csirx.h:605
CSIRX_ContextIntr::isLineStartCodeDetect
bool isLineStartCodeDetect
If true, triggers when Line Start sync Code is detected.
Definition: csirx/v0/csirx.h:987
CSIRX_ComplexioConfig::enableIntr
CSIRX_ComplexioLanesIntr enableIntr
enable/disable lanes interrupts
Definition: csirx/v0/csirx.h:660
CSIRX_ComplexioConfig::lanesConfig
CSIRX_ComplexioLanesConfig lanesConfig
lanes configuration
Definition: csirx/v0/csirx.h:657
CSIRX_CommonConfig_init
void CSIRX_CommonConfig_init(CSIRX_CommonConfig *config)
Sets default values for configuration.
CSIRX_CommonConfig::isSignExtensionEnabled
bool isSignExtensionEnabled
If true, enables sign extension of RAW10/12/14 for all contexts whose CSIRX_ContextConfig::format is ...
Definition: csirx/v0/csirx.h:830
CSIRX_CommonConfig::isBurstSizeExpand
bool isBurstSizeExpand
If false, then burst size is determined by CSIRX_CommonConfig::burstSize, otherwise (if true),...
Definition: csirx/v0/csirx.h:834
CSIRX_Handle
struct CSIRX_Config_s * CSIRX_Handle
CSIRX driver handle.
Definition: csirx/v0/csirx.h:494
CSIRX_contextSetConfig
int32_t CSIRX_contextSetConfig(CSIRX_Handle handle, uint8_t contextId, CSIRX_ContextConfig *config)
Configure context.
CSIRX_open
CSIRX_Handle CSIRX_open(uint32_t instanceId)
Open CSIRX driver.
CSIRX_ContextConfig::eolCallback
CSIRX_ContextCallback eolCallback
Context End of Line interrupt call back function definition - NOT SUPPORTED AS OF NOW.
Definition: csirx/v0/csirx.h:1077
CSIRX_dphyIsClockMissingDetectorError
int32_t CSIRX_dphyIsClockMissingDetectorError(CSIRX_Handle handle, bool *isError)
Check if DPHY clock missing detector error.
CSIRX_CommonIntrCallbacks::combinedEndOfFrameCallbackArgs
void * combinedEndOfFrameCallbackArgs
Argument for CSIRX_CommonIntrCallbacks::combinedEndOfFrameCallback.
Definition: csirx/v0/csirx.h:758
CSIRX_contextGetPingPongStatus
int32_t CSIRX_contextGetPingPongStatus(CSIRX_Handle handle, uint8_t contextId, uint8_t *pingPongStatus)
Get status if ping or pong buffer write is done.
CSIRX_ContextPingPongConfig::pongAddress
uint32_t pongAddress
pong address in which the frame/line data is received, must have 5 LSBs 0. User must provision for su...
Definition: csirx/v0/csirx.h:900
CSIRX_Callback
void(* CSIRX_Callback)(CSIRX_Handle handle, void *arg)
Generic Interrupt callback.
Definition: csirx/v0/csirx.h:533
CSIRX_HwAttrs::commonIntNum
uint16_t commonIntNum
CPU Interrupt number, if interrupt not connected, set to CSIRX_INTERRUPT_NOT_CONNECTED_ID.
Definition: csirx/v0/csirx.h:1176