![]() |
v_sdirx
Xilinx SDK Drivers API Documentation
|
MODIFICATION HISTORY:
Ver Who Date Changes
1.0 jsr 07/17/17 Initial release.
Data Structures | |
struct | XV_SdiRx_Config |
This typedef contains configuration information for the SDI RX core. More... | |
struct | XV_SdiRx_Stream |
This typedef contains SDI RX stream specific data structure. More... | |
struct | XV_SdiRx |
The XSdiRx driver instance data. More... | |
Macros | |
#define | XV_SDIRX_H_ |
Prevent circular inclusions by using protection macros. More... | |
Enumerations | |
Handler Types | |
enum | XV_SdiRx_HandlerType |
These constants specify different types of handler and used to differentiate interrupt requests from peripheral. More... | |
SDI Transport Mode | |
enum | XV_SdiRx_Modes |
SDI Debug Settings | |
enum | XV_SdiRx_DebugSelId |
SDI Transport Family Encoding | |
enum | XV_SdiRx_Family_Encoding |
enum | XV_SdiRx_SearchMode { XV_SDIRX_SINGLESEARCHMODE_HD = 0, XV_SDIRX_SINGLESEARCHMODE_SD = 1, XV_SDIRX_SINGLESEARCHMODE_3G = 2, XV_SDIRX_SINGLESEARCHMODE_6G = 4, XV_SDIRX_SINGLESEARCHMODE_12GI = 5, XV_SDIRX_SINGLESEARCHMODE_12GF = 6 } |
SDI Search Modes. More... | |
enum | XV_SdiRx_SupportedModes { XV_SDIRX_SUPPORT_HD = 1, XV_SDIRX_SUPPORT_SD = 2, XV_SDIRX_SUPPORT_3G = 4, XV_SDIRX_SUPPORT_6G = 8, XV_SDIRX_SUPPORT_12GI = 16, XV_SDIRX_SUPPORT_12GF = 32 } |
SDI Supported Modes. More... | |
SDI Transport Rate | |
#define | XV_SdiRx_GetVersion(InstancePtr) XV_SdiRx_ReadReg((InstancePtr)->Config.BaseAddress, (XV_SDIRX_VER_OFFSET)) |
This macro reads the RX version. More... | |
#define | XV_SdiRx_VidLckIntrClr(InstancePtr) |
#define | XV_SdiRx_VidUnlckIntrClr(InstancePtr) |
enum | XV_SdiRx_FrameRate |
typedef void(* | XV_SdiRx_Callback) (void *CallbackRef) |
Callback type for interrupt. More... | |
XV_SdiRx_Config * | XV_SdiRx_LookupConfig (u16 DeviceId) |
This function returns a reference to an XV_SdiRx_Config structure based on the core id, DeviceId. More... | |
int | XV_SdiRx_CfgInitialize (XV_SdiRx *InstancePtr, XV_SdiRx_Config *CfgPtr, UINTPTR EffectiveAddr) |
This function initializes the SDI RX core. More... | |
void | XV_SdiRx_ResetStream (XV_SdiRx *InstancePtr) |
This function clears the SDI RX stream variables and sets them to the defaults. More... | |
u32 | XV_SdiRx_GetPayloadId (XV_SdiRx *InstancePtr, u8 DataStream) |
This function returns incoming stream's incoming SDI payload ID. More... | |
u32 | XV_SdiRx_WaitforPayLoad (XV_SdiRx *InstancePtr) |
This function is used to wait for the payload valid bit to be set. More... | |
u32 | XV_SdiRx_GetSdiMode (XV_SdiRx *InstancePtr) |
This function returns the current SDI transport mode detected. More... | |
void | XV_SdiRx_FramerEnable (XV_SdiRx *InstancePtr) |
This function enables the framer function. More... | |
void | XV_SdiRx_FramerDisable (XV_SdiRx *InstancePtr) |
This function disables the framer function. More... | |
void | XV_SdiRx_SetEdhErrCntTrigger (XV_SdiRx *InstancePtr, u32 Enable) |
This function sets the type of EDH errors which will trigger the error count. More... | |
void | XV_SdiRx_EnableMode (XV_SdiRx *InstancePtr, XV_SdiRx_SupportedModes SupportModes) |
This function enables the modes which the SDI RX core will try to lock on. More... | |
void | XV_SdiRx_DisableMode (XV_SdiRx *InstancePtr, XV_SdiRx_SupportedModes RemoveModes) |
This function disables the modes which the SDI RX core will try to lock on. More... | |
void | XV_SdiRx_Start (XV_SdiRx *InstancePtr, XV_SdiRx_SearchMode Mode) |
This function enables SDI RX core's modes detection function. More... | |
int | XV_SdiRx_Stop (XV_SdiRx *InstancePtr) |
This function stops SDI RX core's modes detection. More... | |
u32 | XV_SdiRx_ReportDetectedError (XV_SdiRx *InstancePtr) |
This function reports detected CRC or EDH errors count. More... | |
void | XV_SdiRx_SetVidLckWindow (XV_SdiRx *InstancePtr, u32 Data) |
This function sets the clock period for video lock signal to be asserted before video lock interrupt is triggered. More... | |
void | XV_SdiRx_VidBridgeEnable (XV_SdiRx *InstancePtr) |
This function enables the video bridge. More... | |
void | XV_SdiRx_VidBridgeDisable (XV_SdiRx *InstancePtr) |
This function disables the video bridge. More... | |
void | XV_SdiRx_Axi4sBridgeEnable (XV_SdiRx *InstancePtr) |
This function enable the AXI4S Bridge. More... | |
void | XV_SdiRx_Axi4sBridgeDisable (XV_SdiRx *InstancePtr) |
This function disables the AXI4S Bridge. More... | |
void | XV_SdiRx_DebugInfo (XV_SdiRx *InstancePtr, XV_SdiRx_DebugSelId SelId) |
This function prints debug information of Stream 0 on STDIO/Uart console. More... | |
u32 | XV_SdiRx_SelfTest (XV_SdiRx *InstancePtr) |
Runs a self-test on the driver/device. More... | |
u32 | XV_SdiRx_GetIntrEnable (XV_SdiRx *InstancePtr) |
This function will get the interrupt mask set (enabled) in the SDI Rx core. More... | |
u32 | XV_SdiRx_GetIntrStatus (XV_SdiRx *InstancePtr) |
This function will get the list of interrupts pending in the Interrupt Status Register of the SDI Rx core. More... | |
void | XV_SdiRx_InterruptClear (XV_SdiRx *InstancePtr, u32 Mask) |
This function will clear the interrupts set in the Interrupt Status Register of the SDI Rx core. More... | |
void | XV_SdiRx_IntrHandler (void *InstancePtr) |
This function is the interrupt handler for the SDI RX driver. More... | |
int | XV_SdiRx_SetCallback (XV_SdiRx *InstancePtr, u32 HandlerType, void *CallbackFunc, void *CallbackRef) |
This function installs an asynchronous callback function for the given HandlerType: More... | |
void | XV_SdiRx_IntrDisable (XV_SdiRx *InstancePtr, u32 Mask) |
This function disables the selected interrupt. More... | |
void | XV_SdiRx_IntrEnable (XV_SdiRx *InstancePtr, u32 Mask) |
This function enables the selected interrupt. More... | |
#define XV_SdiRx_GetVersion | ( | InstancePtr | ) | XV_SdiRx_ReadReg((InstancePtr)->Config.BaseAddress, (XV_SDIRX_VER_OFFSET)) |
This macro reads the RX version.
InstancePtr | is a pointer to the XSdi_RX core instance. |
*note C-style signature: u32 XV_SdiRx_GetVersion(XV_SdiRx *InstancePtr)
#define XV_SDIRX_H_ |
Prevent circular inclusions by using protection macros.
typedef void(* XV_SdiRx_Callback) (void *CallbackRef) |
Callback type for interrupt.
CallbackRef | is a callback reference passed in by the upper layer when setting the callback functions, and passed back to the upper layer when the callback is invoked. |
enum XV_SdiRx_HandlerType |
These constants specify different types of handler and used to differentiate interrupt requests from peripheral.
enum XV_SdiRx_SearchMode |
void XV_SdiRx_Axi4sBridgeDisable | ( | XV_SdiRx * | InstancePtr | ) |
This function disables the AXI4S Bridge.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
void XV_SdiRx_Axi4sBridgeEnable | ( | XV_SdiRx * | InstancePtr | ) |
This function enable the AXI4S Bridge.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
int XV_SdiRx_CfgInitialize | ( | XV_SdiRx * | InstancePtr, |
XV_SdiRx_Config * | CfgPtr, | ||
UINTPTR | EffectiveAddr | ||
) |
This function initializes the SDI RX core.
This function must be called prior to using the SDI RX core. Initialization of the SDI RX includes setting up the instance data, and ensuring the hardware is in a quiescent state.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
CfgPtr | points to the configuration structure associated with the SDI RX core. |
EffectiveAddr | is the base address of the device. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx::StreamDownCallback.
void XV_SdiRx_DebugInfo | ( | XV_SdiRx * | InstancePtr, |
XV_SdiRx_DebugSelId | SelId | ||
) |
This function prints debug information of Stream 0 on STDIO/Uart console.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
SelId | specifies which debug information to be printed out |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx::Stream, XV_SdiRx_Stream::Video, and XV_SdiRx_ReadReg.
void XV_SdiRx_DisableMode | ( | XV_SdiRx * | InstancePtr, |
XV_SdiRx_SupportedModes | RemoveModes | ||
) |
This function disables the modes which the SDI RX core will try to lock on.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
RemoveModes | specifies which SDI mode is to be removed from SDI mode detection logic. |
void XV_SdiRx_EnableMode | ( | XV_SdiRx * | InstancePtr, |
XV_SdiRx_SupportedModes | SupportModes | ||
) |
This function enables the modes which the SDI RX core will try to lock on.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
SupportModes | specifies which SDI mode is to be supported from SDI mode detection logic. |
void XV_SdiRx_FramerDisable | ( | XV_SdiRx * | InstancePtr | ) |
This function disables the framer function.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
void XV_SdiRx_FramerEnable | ( | XV_SdiRx * | InstancePtr | ) |
This function enables the framer function.
When enabled, the framer automatically readjusts the output word alignment to match the alignment of each timing reference signal (TRS).
InstancePtr | is a pointer to the XV_SdiRx core instance. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
u32 XV_SdiRx_GetIntrEnable | ( | XV_SdiRx * | InstancePtr | ) |
This function will get the interrupt mask set (enabled) in the SDI Rx core.
InstancePtr | is the XV_SdiRx instance to operate on |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
u32 XV_SdiRx_GetIntrStatus | ( | XV_SdiRx * | InstancePtr | ) |
This function will get the list of interrupts pending in the Interrupt Status Register of the SDI Rx core.
InstancePtr | is the XV_SdiRx instance to operate on |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
Referenced by XV_SdiRx_IntrHandler().
u32 XV_SdiRx_GetPayloadId | ( | XV_SdiRx * | InstancePtr, |
u8 | DataStream | ||
) |
This function returns incoming stream's incoming SDI payload ID.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
DataStream | specifies which payload ID is to be returned. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
u32 XV_SdiRx_GetSdiMode | ( | XV_SdiRx * | InstancePtr | ) |
This function returns the current SDI transport mode detected.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
Referenced by XV_SdiRx_ReportDetectedError().
void XV_SdiRx_InterruptClear | ( | XV_SdiRx * | InstancePtr, |
u32 | Mask | ||
) |
This function will clear the interrupts set in the Interrupt Status Register of the SDI Rx core.
InstancePtr | is the XV_SdiRx instance to operate on |
Mask | is Interrupt Mask with bits set for corresponding interrupt to be cleared in the Interrupt Status register |
void XV_SdiRx_IntrDisable | ( | XV_SdiRx * | InstancePtr, |
u32 | Mask | ||
) |
This function disables the selected interrupt.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
Mask | is the interrupt mask which need to be disabled in core. |
void XV_SdiRx_IntrEnable | ( | XV_SdiRx * | InstancePtr, |
u32 | Mask | ||
) |
This function enables the selected interrupt.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
Mask | is the interrupt mask which need to be enabled in core. |
void XV_SdiRx_IntrHandler | ( | void * | InstancePtr | ) |
This function is the interrupt handler for the SDI RX driver.
This handler reads the pending interrupt for video lock or video unlock interrupts, determines the source of the interrupts, clears the interrupts and calls callbacks accordingly.
The application is responsible for connecting this function to the interrupt system. Application beyond this driver is also responsible for providing callbacks to handle interrupts and installing the callbacks using XV_SdiRx_SetCallback() during initialization phase. An example delivered with this driver demonstrates how this could be done.
InstancePtr | is a pointer to the XV_SdiRx instance that just interrupted. |
References XV_SdiRx::IsReady, and XV_SdiRx_GetIntrStatus().
XV_SdiRx_Config* XV_SdiRx_LookupConfig | ( | u16 | DeviceId | ) |
This function returns a reference to an XV_SdiRx_Config structure based on the core id, DeviceId.
The return value will refer to an entry in the device configuration table defined in the xv_sdirx_g.c file.
DeviceId | is the unique core ID of the SDI RX core for the lookup operation. |
u32 XV_SdiRx_ReportDetectedError | ( | XV_SdiRx * | InstancePtr | ) |
This function reports detected CRC or EDH errors count.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_GetSdiMode(), and XV_SdiRx_ReadReg.
void XV_SdiRx_ResetStream | ( | XV_SdiRx * | InstancePtr | ) |
This function clears the SDI RX stream variables and sets them to the defaults.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
int XV_SdiRx_SetCallback | ( | XV_SdiRx * | InstancePtr, |
u32 | HandlerType, | ||
void * | CallbackFunc, | ||
void * | CallbackRef | ||
) |
This function installs an asynchronous callback function for the given HandlerType:
HandlerType Callback Function Type ------------------------- --------------------------------------- (XV_SDIRX_HANDLER_STREAM_DOWN) StreamDownCallback (XV_SDIRX_HANDLER_STREAM_UP) StreamUpCallback (XV_SDIRX_HANDLER_OVERFLOW) OverFlowCallback (XV_SDIRX_HANDLER_UNDERFLOW) UnderFlowCallback
InstancePtr | is a pointer to the SDI RX core instance. |
HandlerType | specifies the type of handler. |
CallbackFunc | is the address of the callback function. |
CallbackRef | is a user data item that will be passed to the callback function when it is invoked. |
void XV_SdiRx_SetEdhErrCntTrigger | ( | XV_SdiRx * | InstancePtr, |
u32 | Enable | ||
) |
This function sets the type of EDH errors which will trigger the error count.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
Enable | specifies the type of EDH errors to be allowed to increment the error counter.
|
void XV_SdiRx_SetVidLckWindow | ( | XV_SdiRx * | InstancePtr, |
u32 | Data | ||
) |
This function sets the clock period for video lock signal to be asserted before video lock interrupt is triggered.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
Data | specifies the clock period. |
References XV_SdiRx_WriteReg.
void XV_SdiRx_Start | ( | XV_SdiRx * | InstancePtr, |
XV_SdiRx_SearchMode | Mode | ||
) |
This function enables SDI RX core's modes detection function.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
Mode | specifies the mode of SDI modes searching operation.
|
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
int XV_SdiRx_Stop | ( | XV_SdiRx * | InstancePtr | ) |
This function stops SDI RX core's modes detection.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
Referenced by XV_SdiRx_SelfTest().
void XV_SdiRx_VidBridgeDisable | ( | XV_SdiRx * | InstancePtr | ) |
This function disables the video bridge.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
void XV_SdiRx_VidBridgeEnable | ( | XV_SdiRx * | InstancePtr | ) |
This function enables the video bridge.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.
u32 XV_SdiRx_WaitforPayLoad | ( | XV_SdiRx * | InstancePtr | ) |
This function is used to wait for the payload valid bit to be set.
This has to be called from application based on the callback indication of the video lock interrupt handler. Without this function being called, it may be guaranteed that payload bits are valid after video lock interrupt occured.
InstancePtr | is a pointer to the XV_SdiRx core instance. |
References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.