embeddedsw/XilinxProcessorIPLib/drivers/vprocss/examples/periph.h
Rohit Consul c8e6ea5336 vprocss: Add dynamic scaler filter coefficient selection logic
- 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>
2015-08-30 22:01:58 +05:30

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 */