embeddedsw/XilinxProcessorIPLib/drivers/osd/src/xosd_hw.h
Durga challa 95ce63b764 OSD: Modified source files of osd.
Modified condition of error interrupt, asserts and backward compatability.

Signed-off-by: Durga challa <vnsldurg@xilinx.com>
2014-09-26 19:50:09 +05:30

720 lines
24 KiB
C
Executable file

/******************************************************************************
*
* Copyright (C) 2009 - 2014 Xilinx, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/*****************************************************************************/
/**
*
* @file xosd_hw.h
*
* This header file contains identifiers and register-level driver functions (or
* macros) that can be used to access the Xilinx Video On-Screen-Display
* (OSD) core.
*
* For more information about the operation of this core, see the hardware
* specification and documentation in the higher level driver xosd.h source
* code file.
*
* <pre>
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ------ -------- -------------------------------------------------------
* 1.00a xd 08/01/08 First release.
* 2.00a cm 06/12/12 14.1/14.2 release with address map updated to match
* video over AXI4-Stream Specification.
* 2.00a cjm 12/18/12 Converted from xio.h to xil_io.h, translating
* basic types, MB cache functions, exceptions and
* assertions to xil_io format.
* 4.0 adk 02/18/14 Suffixed "_OFFSET" to all register offset macros.
* Added register offsets, bit masks for the registers and
* added backward compatibility for macros.
*
* Removed following macros:
* XOSD_GIER_GIE_MASK, XOSD_IXR_GAO_MASK
* XOSD_IXR_GIE_MASK, XOSD_IXR_OOE_MASK,
* XOSD_IXR_IUE_MASK, XOSD_IXR_VBIE_MASK,
* XOSD_IXR_VBIS_MASK, XOSD_IXR_FE_MASK, XOSD_IXR_FD_MASK,
* XOSD_IXR_ALLIERR_MASK.
* </pre>
*
******************************************************************************/
#ifndef XOSD_HW_H_
#define XOSD_HW_H_ /**< Prevent circular inclusions by using
* protection macros. */
#ifdef __cplusplus
extern "C" {
#endif
/***************************** Include Files *********************************/
#include "xil_io.h"
/************************** Constant Definitions *****************************/
/** @name Register Offsets
* @{
*/
#define XOSD_CTL_OFFSET 0x000 /**< Control Offset */
#define XOSD_ACTIVE_SIZE_OFFSET 0x020 /**< Screen Size / Output Active_Size
* Offset */
#define XOSD_BC0_OFFSET 0x100 /**< Background Color Channel 0
* Offset */
#define XOSD_BC1_OFFSET 0x104 /**< Background Color Channel 1
* Offset */
#define XOSD_BC2_OFFSET 0x108 /**< Background Color Channel 2
* Offset */
#define XOSD_L0C_OFFSET 0x110 /**< Layer 0 Control Offset */
#define XOSD_L0P_OFFSET 0x114 /**< Layer 0 Position Offset */
#define XOSD_L0S_OFFSET 0x118 /**< Layer 0 Size Offset */
#define XOSD_L1C_OFFSET 0x120 /**< Layer 1 Control Offset */
#define XOSD_L1P_OFFSET 0x124 /**< Layer 1 Position Offset */
#define XOSD_L1S_OFFSET 0x128 /**< Layer 1 Size Offset */
#define XOSD_L2C_OFFSET 0x130 /**< Layer 2 Control Offset */
#define XOSD_L2P_OFFSET 0x134 /**< Layer 2 Position Offset */
#define XOSD_L2S_OFFSET 0x138 /**< Layer 2 Size Offset */
#define XOSD_L3C_OFFSET 0x140 /**< Layer 3 Control Offset */
#define XOSD_L3P_OFFSET 0x144 /**< Layer 3 Position Offset */
#define XOSD_L3S_OFFSET 0x148 /**< Layer 3 Size Offset */
#define XOSD_L4C_OFFSET 0x150 /**< Layer 4 Control Offset */
#define XOSD_L4P_OFFSET 0x154 /**< Layer 4 Position Offset */
#define XOSD_L4S_OFFSET 0x158 /**< Layer 4 Size Offset */
#define XOSD_L5C_OFFSET 0x160 /**< Layer 5 Control Offset */
#define XOSD_L5P_OFFSET 0x164 /**< Layer 5 Position Offset */
#define XOSD_L5S_OFFSET 0x168 /**< Layer 5 Size Offset */
#define XOSD_L6C_OFFSET 0x170 /**< Layer 6 Control Offset */
#define XOSD_L6P_OFFSET 0x174 /**< Layer 6 Position Offset */
#define XOSD_L6S_OFFSET 0x178 /**< Layer 6 Size Offset */
#define XOSD_L7C_OFFSET 0x180 /**< Layer 7 Control Offset */
#define XOSD_L7P_OFFSET 0x184 /**< Layer 7 Position Offset */
#define XOSD_L7S_OFFSET 0x188 /**< Layer 7 Size Offset */
#define XOSD_GCWBA_OFFSET 0x190 /**< GPU Write Bank Address Offset */
#define XOSD_GCABA_OFFSET 0x194 /**< GPU Active Bank Address Offset */
#define XOSD_GCD_OFFSET 0x198 /**< GPU Data Offset */
#define XOSD_VER_OFFSET 0x010 /**< Version Offset */
#define XOSD_RST_OFFSET XOSD_CTL_OFFSET /**< Software Reset Offset */
/**
* Interrupt status register generates a interrupt if the corresponding bits
* of interrupt enable register bits are set.
*/
#define XOSD_ISR_OFFSET XOSD_STATUS_OFFSET/**< Interrupt Status
* Register Offset */
#define XOSD_IER_OFFSET 0x00C /**< Interrupt Enable
* Register Offset */
#define XOSD_STATUS_OFFSET 0x004 /**< Status Offset */
#define XOSD_ERROR_OFFSET 0x008 /**< Error Offset */
#define XOSD_OPENC_OFFSET 0x028 /**< Output Encoding Offset */
/*@}*/
/** @name Memory footprint of layers
* @{
*/
#define XOSD_LAYER_SIZE 0x10 /**< Total number of Layers */
#define XOSD_LXC 0x00 /**< Layer Control */
#define XOSD_LXP 0x04 /**< Layer Position */
#define XOSD_LXS 0x08 /**< Layer Size */
/*@}*/
/** @name Graphics Controller Bank related constants
* @{
*/
#define XOSD_GC_BANK_NUM 2 /**< The number of Banks in each
* Graphics controller */
/*@}*/
/** @name Active Size Register bit definition and Shift
* @{
*/
#define XOSD_ACTSIZE_NUM_PIXEL_MASK 0x00000FFF /**< Horizontal Width of
* OSD Output Mask */
#define XOSD_ACTSIZE_NUM_LINE_MASK 0x0FFF0000 /**< Vertical Height of
* OSD Output Mask */
#define XOSD_ACTSIZE_NUM_LINE_SHIFT 16 /**< Vertical Height of
* OSD Output Shift */
/*@}*/
/** @name Background Color Channel 0 Mask
* @{
*/
#define XOSD_BC0_YG_MASK 0x00000FFF /**< Y (luma) or Green Mask */
/*@}*/
/** @name Background Color Channel 1 Mask
* @{
*/
#define XOSD_BC1_UCBB_MASK 0x00000FFF /**< U (Cb) or Blue Mask */
/*@}*/
/** @name Background Color Channel 2 Mask
* @{
*/
#define XOSD_BC2_VCRR_MASK 0x00000FFF /**< V(Cr) or Red Mask */
/*@}*/
/** @name Maximum number of the layers
* @{
*/
#define XOSD_MAX_NUM_OF_LAYERS 8 /**< The max number of
* layers */
/*@}*/
/** @name Layer Control (Layer 0 through (XOSD_MAX_NUM_OF_LAYERS - 1)) bit
* definition and Shifts
* @{
*/
#define XOSD_LXC_ALPHA_MASK 0x1FFF0000 /**< Global Alpha Value Mask */
#define XOSD_LXC_ALPHA_SHIFT 16 /**< Bit shift number of
* Global Alpha Value */
#define XOSD_LXC_PRIORITY_MASK 0x00000700 /**< Layer Priority Mask */
#define XOSD_LXC_PRIORITY_SHIFT 8 /**< Bit shift number of
* Layer Priority */
#define XOSD_LXC_GALPHAEN_MASK 0x00000002 /**< Global Alpha Enable
* Mask */
#define XOSD_LXC_EN_MASK 0x00000001 /**< Layer Enable Mask */
/*@}*/
/** @name Layer Position (Layer 0 through (XOSD_MAX_NUM_OF_LAYERS - 1)) bit
* definition and Shifts
* @{
*/
#define XOSD_LXP_YSTART_MASK 0x0FFF0000 /**< Vertical start line of
* origin of layer Mask */
#define XOSD_LXP_YSTART_SHIFT 16 /**< Bit shift of vertical start
* line of origin of layer */
#define XOSD_LXP_XSTART_MASK 0x00000FFF /**< Horizontal start pixel of
* origin of layer Mask */
/*@}*/
/** @name Layer Size (Layer 0 through (XOSD_MAX_NUM_OF_LAYERS - 1)) bit
* definition and Shift
* @{
*/
#define XOSD_LXS_YSIZE_MASK 0x0FFF0000 /**< Vertical size of layer
* Mask */
#define XOSD_LXS_YSIZE_SHIFT 16 /**< Bit shift number of
* vertical size of layer */
#define XOSD_LXS_XSIZE_MASK 0x00000FFF /**< Horizontal size of
* layer Mask */
/*@}*/
/** @name Graphics Controller Write Bank Address bit definition and Shift
* @{
*/
#define XOSD_GCWBA_GCNUM_MASK 0x00000700 /**< Graphics Controller
* Number Mask */
#define XOSD_GCWBA_GCNUM_SHIFT 8 /**< Bit shift of Graphics
* Controller Number */
#define XOSD_GCWBA_BANK_MASK 0x00000007 /**< Controls which bank to
* write GPU instructions and
* Color LUT data into */
#define XOSD_GCWBA_INS0 0x00000000 /**< Instruction RAM 0 */
#define XOSD_GCWBA_INS1 0x00000001 /**< Instruction RAM 1 */
#define XOSD_GCWBA_COL0 0x00000002 /**< Color LUT RAM 0 */
#define XOSD_GCWBA_COL1 0x00000003 /**< Color LUT RAM 1 */
#define XOSD_GCWBA_TXT0 0x00000004 /**< Text RAM 0 */
#define XOSD_GCWBA_TXT1 0x00000005 /**< Text RAM 1 */
#define XOSD_GCWBA_CHR0 0x00000006 /**< Character Set RAM 0 */
#define XOSD_GCWBA_CHR1 0x00000007 /**< Character Set RAM 1 */
/*@}*/
/** @name Graphics Controller Active Bank Address bit definition and Shifts
* @{
*/
#define XOSD_GCABA_CHR_MASK 0xFF000000 /**< Set the active Character
* Bank Mask */
#define XOSD_GCABA_CHR_SHIFT 24 /**< Bit shift of active
* Character Bank */
#define XOSD_GCABA_TXT_MASK 0x00FF0000 /**< Set the active Text
* Bank Mask */
#define XOSD_GCABA_TXT_SHIFT 16 /**< Bit shift of active Text
* Bank */
#define XOSD_GCABA_COL_MASK 0x0000FF00 /**< Set the active Color Table
* Bank Mask */
#define XOSD_GCABA_COL_SHIFT 8 /**< Bit shift of active Color
* Table Bank */
#define XOSD_GCABA_INS_MASK 0x000000FF /**< Set the active instruction
* Bank Mask */
/*@}*/
/** @name Version Register bit definition and Shifts
* @{
*/
#define XOSD_VER_MAJOR_MASK 0xFF000000 /**< Major Version Mask */
#define XOSD_VER_MAJOR_SHIFT 24 /**< Major Version Shift */
#define XOSD_VER_MINOR_MASK 0x00FF0000 /**< Minor Version Mask */
#define XOSD_VER_MINOR_SHIFT 16 /**< Minor Version Bit Shift */
#define XOSD_VER_REV_MASK 0x0000F000 /**< Revision Version Mask */
#define XOSD_VER_REV_SHIFT 12 /**< Revision Bit Shift */
/*@}*/
/** @name Software Reset
* @{
*/
#define XOSD_RST_RESET XOSD_CTL_SW_RST_MASK /**< Software Reset */
/*@}*/
/** @name Interrupt Register Bit Masks. It is applicable for ISR and IER.
* @{
*/
#define XOSD_IXR_LAYER0_ERROR_MASK 0x00000010 /**< Layer 0 Error
* interrupt enable
* Mask */
#define XOSD_IXR_LAYER1_ERROR_MASK 0x00000020 /**< Layer 1 Error
* interrupt enable
* Mask */
#define XOSD_IXR_LAYER2_ERROR_MASK 0x00000040 /**< Layer 2 Error
* interrupt enable
* Mask */
#define XOSD_IXR_LAYER3_ERROR_MASK 0x00000080 /**< Layer 3 Error
* interrupt enable
* Mask */
#define XOSD_IXR_LAYER4_ERROR_MASK 0x00000100 /**< Layer 4 Error
* interrupt enable
* Mask */
#define XOSD_IXR_LAYER5_ERROR_MASK 0x00000200 /**< Layer 5 Error
* interrupt enable
* Mask */
#define XOSD_IXR_LAYER6_ERROR_MASK 0x00000400 /**< Layer 6 Error
* interrupt enable
* Mask */
#define XOSD_IXR_LAYER7_ERROR_MASK 0x00000800 /**< Layer 7 Error
* interrupt enable
* Mask */
#define XOSD_IXR_PROC_STARTED_MASK 0x00000001 /**< OSD Processing started
* Mask */
#define XOSD_IXR_EOF_MASK 0x00000002 /**< OSD End of frame mask */
#define XOSD_IXR_ALLERR_MASK (XOSD_IXR_LAYER0_ERROR_MASK | \
XOSD_IXR_LAYER1_ERROR_MASK | \
XOSD_IXR_LAYER2_ERROR_MASK | \
XOSD_IXR_LAYER3_ERROR_MASK | \
XOSD_IXR_LAYER4_ERROR_MASK | \
XOSD_IXR_LAYER5_ERROR_MASK | \
XOSD_IXR_LAYER6_ERROR_MASK | \
XOSD_IXR_LAYER7_ERROR_MASK )
/**< OSD Layer 0 to Layer 7
* Error Mask */
#define XOSD_IXR_ALLINTR_MASK (XOSD_IXR_PROC_STARTED_MASK | \
XOSD_IXR_EOF_MASK | \
XOSD_IXR_ALLERR_MASK) /**< OR'ing of all
* Masks */
/*@}*/
/** @name Layer Types
* @{
*/
#define XOSD_LAYER_TYPE_DISABLE 0 /**< Layer is disabled */
#define XOSD_LAYER_TYPE_GPU 1 /**< Layer's type is GPU */
#define XOSD_LAYER_TYPE_VFBC 2 /**< Layer's type is VFBC */
/*@}*/
/** @name Supported instruction numbers given an instruction memory size
* @{
*/
#define XOSD_INS_MEM_SIZE_TO_NUM 1 /**< Conversion to the number
* of instructions from the
* instruction memory size */
/*@}*/
/** @name GC instruction word offset definition
* @{
*/
#define XOSD_INS0 0 /**< Instruction word 0 offset */
#define XOSD_INS1 1 /**< Instruction word 1 offset */
#define XOSD_INS2 2 /**< Instruction word 2 offset */
#define XOSD_INS3 3 /**< Instruction word 3 offset */
#define XOSD_INS_SIZE 4 /**< Size of an instruction in words */
/*@}*/
/** @name GC Instruction word 0 definition and Shifts
* @{
*/
#define XOSD_INS0_OPCODE_MASK 0xF0000000 /**< Operation Code (OpCode)
* Mask */
#define XOSD_INS0_OPCODE_SHIFT 28 /**< Bit shift number of
* OpCode */
#define XOSD_INS0_GCNUM_MASK 0x07000000 /**< Graphics controller number
* (GC#) Mask */
#define XOSD_INS0_GCNUM_SHIFT 24 /**< Bit shift number of GC# */
#define XOSD_INS0_XEND_MASK 0x00FFF000 /**< Horizontal end pixel of
* the object Mask */
#define XOSD_INS0_XEND_SHIFT 12 /**< Bit shift number of
* Horizontal end pixel of
* the object */
#define XOSD_INS0_XSTART_MASK 0x00000FFF /**< Horizontal start pixel of
* the Object Mask */
/*@}*/
/** @name GC Instruction word 1 definition
* @{
*/
#define XOSD_INS1_TXTINDEX_MASK 0x0000000F /**< String Index */
/*@}*/
/** @name GC Instruction word 2 definition and Shifts
* @{
*/
#define XOSD_INS2_OBJSIZE_MASK 0xFF000000 /**< Object Size Mask */
#define XOSD_INS2_OBJSIZE_SHIFT 24 /**< Bit shift number of Object
* Size */
#define XOSD_INS2_YEND_MASK 0x00FFF000 /**< Vertical end line of the
* object Mask */
#define XOSD_INS2_YEND_SHIFT 12 /**< Bit shift number of
* Vertical end line of the
* object */
#define XOSD_INS2_YSTART_MASK 0x00000FFF /**< Vertical start line of the
* Object Mask */
/*@}*/
/** @name GC Instruction word 3 definition
* @{
*/
#define XOSD_INS3_COL_MASK 0x0000000F /**< Color Index for
* Box/Text Mask */
/*@}*/
/** @name GC Instruction Operation Code definition (used in Instruction word 0)
* @{
*/
#define XOSD_INS_OPCODE_END 0x0 /**< End of instruction list */
#define XOSD_INS_OPCODE_NOP 0x8 /**< NOP */
#define XOSD_INS_OPCODE_BOX 0xA /**< Box */
#define XOSD_INS_OPCODE_LINE 0xC /**< Line */
#define XOSD_INS_OPCODE_TXT 0xE /**< Text */
#define XOSD_INS_OPCODE_BOXTXT 0xF /**< Box Text */
/*@}*/
/** @name GC color size
* @{
*/
#define XOSD_COLOR_ENTRY_SIZE 4 /**< Size of each color entry
* in bytes */
/*@}*/
/** @name GC font unit size
* @{
*/
#define XOSD_FONT_BIT_TO_BYTE 8 /**< Ratio to convert font size
* to byte */
/*@}*/
/** @name Layer priority
* @{
*/
#define XOSD_LAYER_PRIORITY_0 0 /**< Priority 0 --- Lowest */
#define XOSD_LAYER_PRIORITY_1 1 /**< Priority 1 */
#define XOSD_LAYER_PRIORITY_2 2 /**< Priority 2 */
#define XOSD_LAYER_PRIORITY_3 3 /**< Priority 3 */
#define XOSD_LAYER_PRIORITY_4 4 /**< Priority 4 */
#define XOSD_LAYER_PRIORITY_5 5 /**< Priority 5 */
#define XOSD_LAYER_PRIORITY_6 6 /**< Priority 6 */
#define XOSD_LAYER_PRIORITY_7 7 /**< Priority 7 --- Highest */
/*@}*/
/** @name Output Encoding Register bit definition
* @{
*/
#define XOSD_OPENC_VID_FORMAT_MASK 0x0000000F /**< OSD Output Video
* Format Mask
* 0: YUV 4:2:2
* 1: YUV 4:4:4
* 2: RGB
* 3: YUV 4:2:0 */
#define XOSD_OPENC_NBITS_MASK 0x00000030 /**< Vertical Height of
* OSD Output Mask */
/*@}*/
/** @name Error Register bit definition
* @{
*/
#define XOSD_ERR_LAYER7_SOF_LATE_MASK 0x80000000 /**< OSD Layer 7 error
* for SOF late
* Mask */
#define XOSD_ERR_LAYER7_SOF_EARLY_MASK 0x40000000 /**< OSD Layer 7 error
* for SOF early
* Mask */
#define XOSD_ERR_LAYER7_EOL_LATE_MASK 0x20000000 /**< OSD Layer 7 error
* for EOL late
* Mask */
#define XOSD_ERR_LAYER7_EOL_EARLY_MASK 0x10000000 /**< OSD Layer 7 error
* for EOL early */
#define XOSD_ERR_LAYER6_SOF_LATE_MASK 0x08000000 /**< OSD Layer 6 error
* for SOF late
* Mask */
#define XOSD_ERR_LAYER6_SOF_EARLY_MASK 0x04000000 /**< OSD Layer 6 error
* for SOF early
* Mask */
#define XOSD_ERR_LAYER6_EOL_LATE_MASK 0x02000000 /**< OSD Layer 6 error
* for EOL late
* Mask */
#define XOSD_ERR_LAYER6_EOL_EARLY_MASK 0x01000000 /**< OSD Layer 6 error
* for EOL early
* Mask */
#define XOSD_ERR_LAYER5_SOF_LATE_MASK 0x00800000 /**< OSD Layer 5 error
* for SOF late
* Mask */
#define XOSD_ERR_LAYER5_SOF_EARLY_MASK 0x00400000 /**< OSD Layer 5 error
* for SOF early
* Mask */
#define XOSD_ERR_LAYER5_EOL_LATE_MASK 0x00200000 /**< OSD Layer 5 error
* for EOL late
* Mask */
#define XOSD_ERR_LAYER5_EOL_EARLY_MASK 0x00100000 /**< OSD Layer 5 error
* for EOL early
* Mask */
#define XOSD_ERR_LAYER4_SOF_LATE_MASK 0x00080000 /**< OSD Layer 4 error
* for SOF late
* Mask */
#define XOSD_ERR_LAYER4_SOF_EARLY_MASK 0x00040000 /**< OSD Layer 4 error
* for SOF early
* Mask */
#define XOSD_ERR_LAYER4_EOL_LATE_MASK 0x00020000 /**< OSD Layer 4 error
* for EOL late
* Mask */
#define XOSD_ERR_LAYER4_EOL_EARLY_MASK 0x00010000 /**< OSD Layer 4 error
* for EOL early
* Mask */
#define XOSD_ERR_LAYER3_SOF_LATE_MASK 0x00008000 /**< OSD Layer 3 error
* for SOF late
* Mask */
#define XOSD_ERR_LAYER3_SOF_EARLY_MASK 0x00004000 /**< OSD Layer 3 error
* for SOF early
* Mask */
#define XOSD_ERR_LAYER3_EOL_LATE_MASK 0x00002000 /**< OSD Layer 3 error
* for EOL late
* Mask */
#define XOSD_ERR_LAYER3_EOL_EARLY_MASK 0x00001000 /**< OSD Layer 3 error
* for EOL early
* Mask */
#define XOSD_ERR_LAYER2_SOF_LATE_MASK 0x00000800 /**< OSD Layer 2 error
* for SOF late
* Mask */
#define XOSD_ERR_LAYER2_SOF_EARLY_MASK 0x00000400 /**< OSD Layer 2 error
* for SOF early
* Mask */
#define XOSD_ERR_LAYER2_EOL_LATE_MASK 0x00000200 /**< OSD Layer 2 error
* for EOL late
* Mask */
#define XOSD_ERR_LAYER2_EOL_EARLY_MASK 0x00000100 /**< OSD Layer 2 error
* for EOL early
* Mask */
#define XOSD_ERR_LAYER1_SOF_LATE_MASK 0x00000080 /**< OSD Layer 1 error
* for SOF late
* Mask */
#define XOSD_ERR_LAYER1_SOF_EARLY_MASK 0x00000040 /**< OSD Layer 1 error
* for SOF early
* Mask */
#define XOSD_ERR_LAYER1_EOL_LATE_MASK 0x00000020 /**< OSD Layer 1 error
* for EOL late
* Mask */
#define XOSD_ERR_LAYER1_EOL_EARLY_MASK 0x00000010 /**< OSD Layer 1 error
* for EOL early
* Mask */
#define XOSD_ERR_LAYER0_SOF_LATE_MASK 0x00000008 /**< OSD Layer 0 error
* for SOF late
* Mask */
#define XOSD_ERR_LAYER0_SOF_EARLY_MASK 0x00000004 /**< OSD Layer 0 error
* for SOF early
* Mask */
#define XOSD_ERR_LAYER0_EOL_LATE_MASK 0x00000002 /**< OSD Layer 0 error
* for EOL late
* Mask */
#define XOSD_ERR_LAYER0_EOL_EARLY_MASK 0x00000001 /**< OSD Layer 0 error
* for EOL early
* Mask */
#define XOSD_ERR_ALL_ERR_MASK 0xFFFFFFFF /**< OSD Layer 0 to
* Layer 7 error for
* EOL late or early
* early or SOF late
* or early Mask */
/*@}*/
/** @name Control Register bit definition
* @{
*/
#define XOSD_CTL_EN_MASK 0x00000001 /**< Enable / SW Enable Mask */
#define XOSD_CTL_RUE_MASK 0x00000002 /**< Register Update Enable
* Mask */
#define XOSD_CTL_FSYNC_MASK 0x40000000 /**< Frame Sync Reset Mask */
#define XOSD_CTL_SW_RST_MASK 0x80000000 /**< Core Reset Mask */
/*@}*/
/** @name Constants. It is defined as constants to use instead magic numbers.
* @{
*/
#define XOSD_DATA_8 8
#define XOSD_DATA_2 2
/*@}*/
/** @name Compatibility Macros
* @{
*/
#define XOSD_CTL XOSD_CTL_OFFSET
#define XOSD_SS XOSD_ACTIVE_SIZE_OFFSET
#define XOSD_VER XOSD_VER_OFFSET
#define XOSD_OPENC XOSD_OPENC_OFFSET
#define XOSD_BC0 XOSD_BC0_OFFSET
#define XOSD_BC1 XOSD_BC1_OFFSET
#define XOSD_BC2 XOSD_BC2_OFFSET
#define XOSD_L0C XOSD_L0C_OFFSET
#define XOSD_L0P XOSD_L0P_OFFSET
#define XOSD_L0S XOSD_L0S_OFFSET
#define XOSD_L1C XOSD_L1C_OFFSET
#define XOSD_L1P XOSD_L1P_OFFSET
#define XOSD_L1S XOSD_L1S_OFFSET
#define XOSD_L2C XOSD_L2C_OFFSET
#define XOSD_L2P XOSD_L2P_OFFSET
#define XOSD_L2S XOSD_L2S_OFFSET
#define XOSD_L3C XOSD_L3C_OFFSET
#define XOSD_L3P XOSD_L3P_OFFSET
#define XOSD_L3S XOSD_L3S_OFFSET
#define XOSD_L4C XOSD_L4C_OFFSET
#define XOSD_L4P XOSD_L4P_OFFSET
#define XOSD_L4S XOSD_L4S_OFFSET
#define XOSD_L5C XOSD_L5C_OFFSET
#define XOSD_L5P XOSD_L5P_OFFSET
#define XOSD_L5S XOSD_L5S_OFFSET
#define XOSD_L6C XOSD_L6C_OFFSET
#define XOSD_L6P XOSD_L6P_OFFSET
#define XOSD_L6S XOSD_L6S_OFFSET
#define XOSD_L7C XOSD_L7C_OFFSET
#define XOSD_L7P XOSD_L7P_OFFSET
#define XOSD_L7S XOSD_L7S_OFFSET
#define XOSD_GCWBA XOSD_GCWBA_OFFSET
#define XOSD_GCABA XOSD_GCABA_OFFSET
#define XOSD_GCD XOSD_GCD_OFFSET
#define XOSD_RST XOSD_RST_OFFSET
#define XOSD_ISR XOSD_ISR_OFFSET
#define XOSD_IER XOSD_IER_OFFSET
#define XOSD_SS_YSIZE_MASK XOSD_ACTSIZE_NUM_LINE_MASK
#define XOSD_SS_XSIZE_MASK XOSD_ACTSIZE_NUM_PIXEL_MASK
#define XOSD_SS_YSIZE_SHIFT XOSD_ACTSIZE_NUM_LINE_SHIFT
#define XOSD_In32 XOsd_In32
#define XOSD_Out32 XOsd_Out32
#define XOSD_ReadReg XOsd_ReadReg
#define XOSD_WriteReg XOsd_WriteReg
/*@}*/
/***************** Macros (Inline Functions) Definitions *********************/
/** @name Core register I/O APIs
* @{
*/
#define XOsd_In32 Xil_In32
#define XOsd_Out32 Xil_Out32
/*****************************************************************************/
/**
*
* This function reads the given register.
*
* @param BaseAddress is the base address of the OSD core.
* @param RegOffset is the register offset of the OSD core.
*
* @return The 32-bit value of the register.
*
* @note C-style signature:
* u32 XOsd_ReadReg(u32 BaseAddress, u32 RegOffset)
*
******************************************************************************/
#define XOsd_ReadReg(BaseAddress, RegOffset) \
XOsd_In32((BaseAddress) + (u32)(RegOffset))
/*****************************************************************************/
/**
*
* This function writes the given register.
*
* @param BaseAddress is the base address of the OSD core.
* @param RegOffset is the register offset of the OSD core.
* @param Data is the 32-bit value to write into the core register.
*
* @return None.
*
* @note C-style signature:
* void XOsd_WriteReg(u32 BaseAddress, u32 RegOffset, u32 Data)
*
******************************************************************************/
#define XOsd_WriteReg(BaseAddress, RegOffset, Data) \
XOsd_Out32((BaseAddress) + (u32)(RegOffset), (Data))
/*@}*/
/**************************** Type Definitions *******************************/
/************************** Function Prototypes ******************************/
/************************** Variable Declarations ****************************/
#ifdef __cplusplus
}
#endif
#endif /* End of protection macro */