
- Added dynamic scaler filter selection logic - Added indirection layer for sub-core API's (picture settings, PIP background color, debug information) - Fixed VDMA alignment in 1/2/4 pixel configurations - Added example directory. Included files to be uused with vpss example design that will be released separately Signed-off-by: Rohit Consul <rohit.consul@xilinx.com> Acked-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
202 lines
6.9 KiB
C
202 lines
6.9 KiB
C
/******************************************************************************
|
|
*
|
|
* (c) Copyright 2014 - 2015 Xilinx, Inc. All rights reserved.
|
|
*
|
|
* This file contains confidential and proprietary information
|
|
* of Xilinx, Inc. and is protected under U.S. and
|
|
* international copyright and other intellectual property
|
|
* laws.
|
|
*
|
|
* DISCLAIMER
|
|
* This disclaimer is not a license and does not grant any
|
|
* rights to the materials distributed herewith. Except as
|
|
* otherwise provided in a valid license issued to you by
|
|
* Xilinx, and to the maximum extent permitted by applicable
|
|
* law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
|
* WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
|
* AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
|
* BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
|
* INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
|
* (2) Xilinx shall not be liable (whether in contract or tort,
|
|
* including negligence, or under any other theory of
|
|
* liability) for any loss or damage of any kind or nature
|
|
* related to, arising under or in connection with these
|
|
* materials, including for any direct, or any indirect,
|
|
* special, incidental, or consequential loss or damage
|
|
* (including loss of data, profits, goodwill, or any type of
|
|
* loss or damage suffered as a result of any action brought
|
|
* by a third party) even if such damage or loss was
|
|
* reasonably foreseeable or Xilinx had been advised of the
|
|
* possibility of the same.
|
|
*
|
|
* CRITICAL APPLICATIONS
|
|
* Xilinx products are not designed or intended to be fail-
|
|
* safe, or for use in any application requiring fail-safe
|
|
* performance, such as life-support or safety devices or
|
|
* systems, Class III medical devices, nuclear facilities,
|
|
* applications related to the deployment of airbags, or any
|
|
* other applications that could lead to death, personal
|
|
* injury, or severe property or environmental damage
|
|
* (individually and collectively, "Critical
|
|
* Applications"). Customer assumes the sole risk and
|
|
* liability of any use of Xilinx products in Critical
|
|
* Applications, subject only to applicable laws and
|
|
* regulations governing limitations on product liability.
|
|
*
|
|
* THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
|
* PART OF THIS FILE AT ALL TIMES.
|
|
*
|
|
******************************************************************************/
|
|
/*****************************************************************************/
|
|
/**
|
|
*
|
|
* @file periph.h
|
|
*
|
|
* This is header for resource file that will initialize all system
|
|
* level peripherals
|
|
*
|
|
* <pre>
|
|
* MODIFICATION HISTORY:
|
|
*
|
|
* Ver Who Date Changes
|
|
* ----- ---- -------- -------------------------------------------------------
|
|
* 0.01 rc 07/07/14 First release
|
|
|
|
* </pre>
|
|
*
|
|
******************************************************************************/
|
|
#ifndef XPERIPH_H /* prevent circular inclusions */
|
|
#define XPERIPH_H /* by using protection macros */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "string.h"
|
|
#include "xvidc.h"
|
|
#include "xuartlite.h"
|
|
#include "xv_tpg.h"
|
|
#include "xgpio.h"
|
|
#include "xvtc.h"
|
|
|
|
/************************** Constant Definitions *****************************/
|
|
|
|
/************************** Structure Definitions *****************************/
|
|
typedef struct
|
|
{
|
|
u16 Width;
|
|
u16 Height;
|
|
XVidC_ColorFormat ColorFmt;
|
|
u16 IsInterlaced;
|
|
u16 Pattern;
|
|
}XPeriph_TpgConfig;
|
|
|
|
/**
|
|
* System Peripheral configuration structure.
|
|
* Each device should have a configuration structure associated
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
XUartLite *UartlPtr;
|
|
XV_tpg *TpgPtr;
|
|
XVtc *VtcPtr;
|
|
XGpio *VidLockMonitorPtr;
|
|
XPeriph_TpgConfig TpgConfig;
|
|
}XPeriph;
|
|
|
|
/************************** Macros Definitions *******************************/
|
|
|
|
/*****************************************************************************/
|
|
/**
|
|
* This macro sets the TPG color format
|
|
*
|
|
* @param pPeriph is pointer to the peripheral Instance
|
|
* @param ColorFormat is the new color format
|
|
* @return none
|
|
*
|
|
*****************************************************************************/
|
|
#define XPeriph_SetTPGColorFormat(pPeriph, ColorFormat) \
|
|
((pPeriph)->TpgConfig.ColorFmt = ColorFormat)
|
|
|
|
/*****************************************************************************/
|
|
/**
|
|
* This macro sets the TPG pattern
|
|
*
|
|
* @param pPeriph is pointer to the peripheral Instance
|
|
* @param pattern is the new pattern id
|
|
* @return none
|
|
*
|
|
*****************************************************************************/
|
|
#define XPeriph_SetTPGPattern(pPeriph, Pattern) \
|
|
((pPeriph)->TpgConfig.Pattern = Pattern)
|
|
|
|
/*****************************************************************************/
|
|
/**
|
|
* This macro sets TPG active width
|
|
*
|
|
* @param pPeriph is pointer to the peripheral Instance
|
|
* @param width is the new active width
|
|
* @return none
|
|
*
|
|
*****************************************************************************/
|
|
#define XPeriph_SetTPGWidth(pPeriph, width) \
|
|
((pPeriph)->TpgConfig.Width = width)
|
|
|
|
/*****************************************************************************/
|
|
/**
|
|
* This macro sets TPG active height
|
|
*
|
|
* @param pPeriph is pointer to the peripheral Instance
|
|
* @param height is the new active height
|
|
* @return none
|
|
*
|
|
*****************************************************************************/
|
|
#define XPeriph_SetTPGHeight(pPeriph, height) \
|
|
((pPeriph)->TpgConfig.Height = height)
|
|
|
|
/*****************************************************************************/
|
|
/**
|
|
* This macro sets TPG Interlaced Mode
|
|
*
|
|
* @param pPeriph is pointer to the peripheral Instance
|
|
* @param mode is the interlace mode T/F
|
|
* @return none
|
|
*
|
|
*****************************************************************************/
|
|
#define XPeriph_SetTPGInterlacedMode(pPeriph, mode) \
|
|
((pPeriph)->TpgConfig.IsInterlaced = mode)
|
|
|
|
/*****************************************************************************/
|
|
/**
|
|
* This macro read GPIO to check video lock status
|
|
*
|
|
* @param pPeriph is pointer to the peripheral Instance
|
|
* @return T/F
|
|
*
|
|
*****************************************************************************/
|
|
#define XPeriph_IsVideoLocked(pPeriph) \
|
|
(XGpio_DiscreteRead((pPeriph)->VidLockMonitorPtr, 1))
|
|
|
|
/************************** Exported APIs ************************************/
|
|
int XPeriph_PowerOnInit(XPeriph *InstancePtr);
|
|
void XPeriph_ReportDeviceInfo(XPeriph *InstancePtr);
|
|
void XPeriph_ConfigTpg(XPeriph *InstancePtr);
|
|
void XPeriph_ConfigVtc(XPeriph *InstancePtr,
|
|
XVidC_VideoStream *StreamPtr,
|
|
u32 PixPerClk);
|
|
void XPeriph_DisableTpg(XPeriph *InstancePtr);
|
|
void XPeriph_SetTpgParams(XPeriph *InstancePtr,
|
|
u16 width,
|
|
u16 height,
|
|
XVidC_ColorFormat Cformat,
|
|
u16 Pattern,
|
|
u16 IsInterlaced);
|
|
|
|
void XPeriph_TpgDbgReportStatus(XPeriph *InstancePtr);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* End of protection macro */
|