PDK API Guide for J721E
CSIRX Driver Event API

Introduction

This is CSIRX driver event related configuration parameters and API

Files

file  csirx_event.h
 CSIRX event related parameters and API.
 

Data Structures

struct  Csirx_EventPrms
 CSIRX event related parameters. More...
 
struct  Csirx_EventStatus
 CSIRX event status parameters. Instance of this structure will passed to the application call-back. More...
 
struct  CsirxDrv_EventObj
 CSIRX event object. More...
 

Functions

void Csirx_eventPrmsInit (Csirx_EventPrms *eventPrms)
 Csirx_EventPrms structure init function. More...
 
int32_t CsirxDrv_eventGroupRegister (Fdrv_Handle drvHandle, Csirx_EventPrms *eventPrms)
 CSIRX event group registration. More...
 
int32_t CsirxDrv_eventGroupUnRegister (Fdrv_Handle drvHandle, uint32_t eventGroup)
 CSIRX unregister group event. More...
 
int32_t CsirxDrv_eventEnable (Fdrv_Handle drvHandle, uint32_t eventGroup, uint32_t eventType)
 Enable the event in event group. More...
 
int32_t CsirxDrv_eventDisable (Fdrv_Handle drvHandle, uint32_t eventGroup, uint32_t eventType)
 Disable the event in event group. More...
 

Typedefs

typedef void(* CsirxDrv_EventCallback) (Csirx_EventStatus eventStatus, void *appData)
 CSIRX event callback function. More...
 

Macros

#define CSIRX_EVENT_INVALID   ((uint32_t) CSL_CSIRXP_NO_EVENT)
 Macro used to specify that event ID is invalid. More...
 
#define CSIRX_INTR_INVALID   ((uint32_t) 0xFFFF0000U)
 Macro used to specify that interrupt number is invalid. More...
 

CSIRX Event Group

CSIRX events groups per CSI instance supported.

#define CSIRX_EVENT_GROUP_ERROR   ((uint32_t) 0U)
 Event Group: Error Interrupts. Error interrupts event group. More...
 
#define CSIRX_EVENT_GROUP_MAX
 

CSIRX Error Event Type

CSIRX error events supported. This is valid if event group is 'CSIRX_EVENT_GROUP_ERROR'

#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_FRONT   (CSL_CSIRX_ERROR_IRQS_FRONT_FIFO_OVERFLOW_IRQ_MASK)
 Front FIFO Overflow. More...
 
#define CSIRX_EVENT_TYPE_ERR_PAYLOAD_CRC   (CSL_CSIRX_ERROR_IRQS_PAYLOAD_CRC_IRQ_MASK)
 Payload CRC Error. CRC error is detected in payload/long packet. More...
 
#define CSIRX_EVENT_TYPE_ERR_HEADER_ECC   (CSL_CSIRX_ERROR_IRQS_HEADER_ECC_IRQ_MASK)
 Header Un-corrected ECC Error. ECC error is detected in header packet. More...
 
#define CSIRX_EVENT_TYPE_ERR_HEADER_CORRECTED_ECC   (CSL_CSIRX_ERROR_IRQS_HEADER_CORRECTED_ECC_IRQ_MASK)
 Header Corrected ECC Error. ECC error is detected and corrected in header packet. More...
 
#define CSIRX_EVENT_TYPE_ERR_DATA_ID   (CSL_CSIRX_ERROR_IRQS_DATA_ID_IRQ_MASK)
 Data ID Error. More...
 
#define CSIRX_EVENT_TYPE_ERR_INVALID_ACCESS   (CSL_CSIRX_ERROR_IRQS_INVALID_ACCESS_IRQ_MASK)
 Invalid access. More...
 
#define CSIRX_EVENT_TYPE_ERR_INVALID_SHORT_PACKET   (CSL_CSIRX_ERROR_IRQS_SP_INVALID_RCVD_IRQ_MASK)
 Invalid short packet received. More...
 
#define CSIRX_EVENT_TYPE_ERR_LONG_PAYLOAD_NO_HEADER   (CSL_CSIRX_ERROR_IRQS_FRONT_LP_NO_PAYLOAD_IRQ_MASK)
 Long packet header received w/o any payload. More...
 
#define CSIRX_EVENT_TYPE_ERR_PROT_TRUNCATED_HEADER   (CSL_CSIRX_ERROR_IRQS_PROT_TRUNCATED_PACKET_IRQ_MASK)
 Long packet payload received with too or many bytes. More...
 
#define CSIRX_EVENT_TYPE_ERR_FRONT_TRUNCATED_HEADER   (CSL_CSIRX_ERROR_IRQS_FRONT_TRUNC_HDR_IRQ_MASK)
 Truncated header received. More...
 
#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM0   (CSL_CSIRX_ERROR_IRQS_STREAM0_FIFO_OVERFLOW_IRQ_MASK)
 Stream 0 FIFO Overflow. More...
 
#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM1   (CSL_CSIRX_ERROR_IRQS_STREAM1_FIFO_OVERFLOW_IRQ_MASK)
 Stream 1 FIFO Overflow. More...
 
#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM2   (CSL_CSIRX_ERROR_IRQS_STREAM2_FIFO_OVERFLOW_IRQ_MASK)
 Stream 2 FIFO Overflow. More...
 
#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM3   (CSL_CSIRX_ERROR_IRQS_STREAM3_FIFO_OVERFLOW_IRQ_MASK)
 Stream 3 FIFO Overflow. More...
 
#define CSIRX_EVENT_TYPE_ERR_ALL
 All Error Group interrupts/events mask. More...
 

Macro Definition Documentation

◆ CSIRX_EVENT_INVALID

#define CSIRX_EVENT_INVALID   ((uint32_t) CSL_CSIRXP_NO_EVENT)

Macro used to specify that event ID is invalid.

◆ CSIRX_INTR_INVALID

#define CSIRX_INTR_INVALID   ((uint32_t) 0xFFFF0000U)

Macro used to specify that interrupt number is invalid.

◆ CSIRX_EVENT_GROUP_ERROR

#define CSIRX_EVENT_GROUP_ERROR   ((uint32_t) 0U)

Event Group: Error Interrupts. Error interrupts event group.

◆ CSIRX_EVENT_GROUP_MAX

#define CSIRX_EVENT_GROUP_MAX
Value:
((uint32_t) \
#define CSIRX_EVENT_GROUP_ERROR
Event Group: Error Interrupts. Error interrupts event group.
Definition: csirx_event.h:81

◆ CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_FRONT

#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_FRONT   (CSL_CSIRX_ERROR_IRQS_FRONT_FIFO_OVERFLOW_IRQ_MASK)

Front FIFO Overflow.

◆ CSIRX_EVENT_TYPE_ERR_PAYLOAD_CRC

#define CSIRX_EVENT_TYPE_ERR_PAYLOAD_CRC   (CSL_CSIRX_ERROR_IRQS_PAYLOAD_CRC_IRQ_MASK)

Payload CRC Error. CRC error is detected in payload/long packet.

◆ CSIRX_EVENT_TYPE_ERR_HEADER_ECC

#define CSIRX_EVENT_TYPE_ERR_HEADER_ECC   (CSL_CSIRX_ERROR_IRQS_HEADER_ECC_IRQ_MASK)

Header Un-corrected ECC Error. ECC error is detected in header packet.

◆ CSIRX_EVENT_TYPE_ERR_HEADER_CORRECTED_ECC

#define CSIRX_EVENT_TYPE_ERR_HEADER_CORRECTED_ECC   (CSL_CSIRX_ERROR_IRQS_HEADER_CORRECTED_ECC_IRQ_MASK)

Header Corrected ECC Error. ECC error is detected and corrected in header packet.

◆ CSIRX_EVENT_TYPE_ERR_DATA_ID

#define CSIRX_EVENT_TYPE_ERR_DATA_ID   (CSL_CSIRX_ERROR_IRQS_DATA_ID_IRQ_MASK)

Data ID Error.

◆ CSIRX_EVENT_TYPE_ERR_INVALID_ACCESS

#define CSIRX_EVENT_TYPE_ERR_INVALID_ACCESS   (CSL_CSIRX_ERROR_IRQS_INVALID_ACCESS_IRQ_MASK)

Invalid access.

◆ CSIRX_EVENT_TYPE_ERR_INVALID_SHORT_PACKET

#define CSIRX_EVENT_TYPE_ERR_INVALID_SHORT_PACKET   (CSL_CSIRX_ERROR_IRQS_SP_INVALID_RCVD_IRQ_MASK)

Invalid short packet received.

◆ CSIRX_EVENT_TYPE_ERR_LONG_PAYLOAD_NO_HEADER

#define CSIRX_EVENT_TYPE_ERR_LONG_PAYLOAD_NO_HEADER   (CSL_CSIRX_ERROR_IRQS_FRONT_LP_NO_PAYLOAD_IRQ_MASK)

Long packet header received w/o any payload.

◆ CSIRX_EVENT_TYPE_ERR_PROT_TRUNCATED_HEADER

#define CSIRX_EVENT_TYPE_ERR_PROT_TRUNCATED_HEADER   (CSL_CSIRX_ERROR_IRQS_PROT_TRUNCATED_PACKET_IRQ_MASK)

Long packet payload received with too or many bytes.

◆ CSIRX_EVENT_TYPE_ERR_FRONT_TRUNCATED_HEADER

#define CSIRX_EVENT_TYPE_ERR_FRONT_TRUNCATED_HEADER   (CSL_CSIRX_ERROR_IRQS_FRONT_TRUNC_HDR_IRQ_MASK)

Truncated header received.

◆ CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM0

#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM0   (CSL_CSIRX_ERROR_IRQS_STREAM0_FIFO_OVERFLOW_IRQ_MASK)

Stream 0 FIFO Overflow.

◆ CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM1

#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM1   (CSL_CSIRX_ERROR_IRQS_STREAM1_FIFO_OVERFLOW_IRQ_MASK)

Stream 1 FIFO Overflow.

◆ CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM2

#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM2   (CSL_CSIRX_ERROR_IRQS_STREAM2_FIFO_OVERFLOW_IRQ_MASK)

Stream 2 FIFO Overflow.

◆ CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM3

#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM3   (CSL_CSIRX_ERROR_IRQS_STREAM3_FIFO_OVERFLOW_IRQ_MASK)

Stream 3 FIFO Overflow.

◆ CSIRX_EVENT_TYPE_ERR_ALL

#define CSIRX_EVENT_TYPE_ERR_ALL
Value:
((uint32_t) \
#define CSIRX_EVENT_TYPE_ERR_INVALID_ACCESS
Invalid access.
Definition: csirx_event.h:126
#define CSIRX_EVENT_TYPE_ERR_LONG_PAYLOAD_NO_HEADER
Long packet header received w/o any payload.
Definition: csirx_event.h:136
#define CSIRX_EVENT_TYPE_ERR_INVALID_SHORT_PACKET
Invalid short packet received.
Definition: csirx_event.h:131
#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM3
Stream 3 FIFO Overflow.
Definition: csirx_event.h:166
#define CSIRX_EVENT_TYPE_ERR_FRONT_TRUNCATED_HEADER
Truncated header received.
Definition: csirx_event.h:146
#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM0
Stream 0 FIFO Overflow.
Definition: csirx_event.h:151
#define CSIRX_EVENT_TYPE_ERR_HEADER_CORRECTED_ECC
Header Corrected ECC Error. ECC error is detected and corrected in header packet.
Definition: csirx_event.h:116
#define CSIRX_EVENT_TYPE_ERR_PAYLOAD_CRC
Payload CRC Error. CRC error is detected in payload/long packet.
Definition: csirx_event.h:104
#define CSIRX_EVENT_TYPE_ERR_PROT_TRUNCATED_HEADER
Long packet payload received with too or many bytes.
Definition: csirx_event.h:141
#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM1
Stream 1 FIFO Overflow.
Definition: csirx_event.h:156
#define CSIRX_EVENT_TYPE_ERR_DATA_ID
Data ID Error.
Definition: csirx_event.h:121
#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_STRM2
Stream 2 FIFO Overflow.
Definition: csirx_event.h:161
#define CSIRX_EVENT_TYPE_ERR_HEADER_ECC
Header Un-corrected ECC Error. ECC error is detected in header packet.
Definition: csirx_event.h:110
#define CSIRX_EVENT_TYPE_ERR_FIFO_OVERFLOW_FRONT
Front FIFO Overflow.
Definition: csirx_event.h:98

All Error Group interrupts/events mask.

Typedef Documentation

◆ CsirxDrv_EventCallback

typedef void(* CsirxDrv_EventCallback) (Csirx_EventStatus eventStatus, void *appData)

CSIRX event callback function.

Parameters
eventTypeEvent that occurred
appDataCallback pointer passed during event register

Function Documentation

◆ Csirx_eventPrmsInit()

void Csirx_eventPrmsInit ( Csirx_EventPrms eventPrms)

Csirx_EventPrms structure init function.

Note: 'eventPrms' cannot be NULL while calling this function. Also, before call 'Csirx_eventPrmsInit()', 'eventGroup' from 'eventPrms' should be set.

Parameters
eventPrmsPointer to Csirx_EventPrms structure.

◆ CsirxDrv_eventGroupRegister()

int32_t CsirxDrv_eventGroupRegister ( Fdrv_Handle  drvHandle,
Csirx_EventPrms eventPrms 
)

CSIRX event group registration.

Register event based on CSIRX channel based and event parameters.

Parameters
drvHandleCSIRX driver handle pointer obtained during Fvid2_create()
eventPrmsCSIRX event parameters. This parameter can't be NULL.
Returns
FVID2_SOK on success, error otherwise

◆ CsirxDrv_eventGroupUnRegister()

int32_t CsirxDrv_eventGroupUnRegister ( Fdrv_Handle  drvHandle,
uint32_t  eventGroup 
)

CSIRX unregister group event.

Unregister the event and frees all associated resources.

Parameters
drvHandleCSIRX driver handle pointer obtained during Fvid2_create()
eventGroupCSIRX driver handle pointer passed during Fvid2_create() Note: This API/IOCTL has be called before calling 'Fvid2_delete()'.
Returns
FVID2_SOK on success, error otherwise

◆ CsirxDrv_eventEnable()

int32_t CsirxDrv_eventEnable ( Fdrv_Handle  drvHandle,
uint32_t  eventGroup,
uint32_t  eventType 
)

Enable the event in event group.

Parameters
drvHandleCSIRX driver handle pointer obtained during Fvid2_create()
eventGroupEvent group in which desired event is to be enabled.
eventTypeEvent/s to be enabled.
Returns
FVID2_SOK on success, error otherwise

◆ CsirxDrv_eventDisable()

int32_t CsirxDrv_eventDisable ( Fdrv_Handle  drvHandle,
uint32_t  eventGroup,
uint32_t  eventType 
)

Disable the event in event group.

Parameters
drvHandleCSIRX driver handle pointer obtained during Fvid2_create()
eventGroupEvent group in which desired event is to be enabled.
eventTypeEvent/s to be enabled.
Returns
FVID2_SOK on success, error otherwise