no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
cf_hdmi.h
Go to the documentation of this file.
1/***************************************************************************/
34
35#ifndef CF_HDMI_H_
36#define CF_HDMI_H_
37
38#include "xparameters.h"
39#include "app_config.h"
40#include "clk_axi_clkgen.h"
41
42#ifdef XPAR_AXI_HDMI_TX_0_BASEADDR
43#define CFV_BASEADDR XPAR_AXI_HDMI_TX_0_BASEADDR
44#else
45#define CFV_BASEADDR XPAR_AXI_HDMI_CORE_BASEADDR
46#endif
47#ifdef XPAR_AXI_SPDIF_TX_0_BASEADDR
48#define CFA_BASEADDR XPAR_AXI_SPDIF_TX_0_BASEADDR
49#else
50#define CFA_BASEADDR XPAR_AXI_SPDIF_TX_CORE_BASEADDR
51#endif
52
53#if defined(PLATFORM_KC705) || defined(PLATFORM_AC701) || \
54 defined(PLATFORM_VC707)
55#ifdef XPAR_DDR3_SDRAM_S_AXI_BASEADDR
56#define DDR_BASEADDR XPAR_DDR3_SDRAM_S_AXI_BASEADDR
57#else
58#define DDR_BASEADDR XPAR_AXI_DDR_CNTRL_BASEADDR
59#endif
60#elif defined(PLATFORM_ZC702) || defined(PLATFORM_ZC706) || \
61 defined(PLATFORM_ZED)
62#define DDR_BASEADDR XPAR_DDR_MEM_BASEADDR
63#endif
64
65#if defined(PLATFORM_KC705) || defined(PLATFORM_AC701) || \
66 defined(PLATFORM_VC707)
67#ifdef XPAR_RS232_UART_1_BASEADDR
68#define UART_BASEADDR XPAR_RS232_UART_1_BASEADDR
69#else
70#define UART_BASEADDR XPAR_AXI_UART_BASEADDR
71#endif
72#elif defined(PLATFORM_ZC702) || defined(PLATFORM_ZC706) || \
73 defined(PLATFORM_ZED)
74#define UART_BASEADDR XPS_UART1_BASEADDR
75#endif
76
77#ifdef XPAR_AXI_VDMA_0_BASEADDR
78#define VDMA_BASEADDR XPAR_AXI_VDMA_0_BASEADDR
79#else
80#define VDMA_BASEADDR XPAR_AXI_HDMI_DMA_BASEADDR
81#endif
82
83#ifdef XPAR_AXI_DMA_0_BASEADDR
84#define ADMA_BASEADDR XPAR_AXI_DMA_0_BASEADDR
85#else
86#if defined(PLATFORM_AC701) || defined(PLATFORM_VC707)
87#define ADMA_BASEADDR XPAR_AXIDMA_1_BASEADDR
88#elif defined(PLATFORM_KC705)
89#define ADMA_BASEADDR XPAR_AXIDMA_0_BASEADDR
90#endif
91#endif
92#if defined(PLATFORM_ZC702) || defined(PLATFORM_ZC706) || \
93 defined(PLATFORM_ZED)
94#define ADMA_DEVICE_ID XPAR_XDMAPS_1_DEVICE_ID
95#endif
96
97#if defined(PLATFORM_KC705) || defined(PLATFORM_AC701) || \
98 defined(PLATFORM_VC707)
99#define IIC_BASEADDR XPAR_AXI_IIC_0_BASEADDR
100#elif defined(PLATFORM_ZC702) || defined(PLATFORM_ZC706) || \
101 defined(PLATFORM_ZED)
102#define IIC_BASEADDR XPS_I2C0_BASEADDR
103#endif
104
105#define VIDEO_BASEADDR DDR_BASEADDR + 0x2000000
106#define AUDIO_BASEADDR DDR_BASEADDR + 0x1000000
107#define A_SAMPLE_FREQ 48000
108#define A_FREQ 1400
109#define AUDIO_LENGTH (A_SAMPLE_FREQ/A_FREQ)
110
111#define AXI_HDMI_REG_RESET 0x040
112#define AXI_HDMI_REG_CTRL 0x044
113#define AXI_HDMI_REG_SOURCE_SEL 0x048
114#define AXI_HDMI_REG_COLORPATTERN 0x04c
115#define AXI_HDMI_REG_STATUS 0x05c
116#define AXI_HDMI_REG_VDMA_STATUS 0x060
117#define AXI_HDMI_REG_TPM_STATUS 0x064
118#define AXI_HDMI_REG_HTIMING1 0x400
119#define AXI_HDMI_REG_HTIMING2 0x404
120#define AXI_HDMI_REG_HTIMING3 0x408
121#define AXI_HDMI_REG_VTIMING1 0x440
122#define AXI_HDMI_REG_VTIMING2 0x444
123#define AXI_HDMI_REG_VTIMING3 0x448
124
125#define AXI_VDMA_REG_DMA_CTRL 0x00
126#define AXI_VDMA_REG_V_SIZE 0x50
127#define AXI_VDMA_REG_H_SIZE 0x54
128#define AXI_VDMA_REG_FRMDLY_STRIDE 0x58
129#define AXI_VDMA_REG_START_1 0x5C
130#define AXI_VDMA_REG_START_2 0x60
131#define AXI_VDMA_REG_START_3 0x64
132
133#define AXI_CLKGEN_V2_REG_RESET 0x40
134#define AXI_CLKGEN_V2_REG_DRP_CNTRL 0x70
135#define AXI_CLKGEN_V2_REG_DRP_STATUS 0x74
136
137#define AXI_CLKGEN_V2_RESET_MMCM_ENABLE (1 << 1)
138#define AXI_CLKGEN_V2_RESET_ENABLE (1 << 0)
139
140#define AXI_CLKGEN_V2_DRP_CNTRL_SEL (1 << 29)
141#define AXI_CLKGEN_V2_DRP_CNTRL_READ (1 << 28)
142#define AXI_CLKGEN_V2_DRP_STATUS_BUSY (1 << 16)
143
144#define MMCM_REG_CLKOUT0_1 0x08
145#define MMCM_REG_CLKOUT0_2 0x09
146#define MMCM_REG_CLK_FB1 0x14
147#define MMCM_REG_CLK_FB2 0x15
148#define MMCM_REG_CLK_DIV 0x16
149#define MMCM_REG_LOCK1 0x18
150#define MMCM_REG_LOCK2 0x19
151#define MMCM_REG_LOCK3 0x1a
152#define MMCM_REG_FILTER1 0x4e
153#define MMCM_REG_FILTER2 0x4f
154
164
165void InitHdmiVideoPcore(unsigned short horizontalActiveTime,
166 unsigned short horizontalBlankingTime,
167 unsigned short horizontalSyncOffset,
168 unsigned short horizontalSyncPulseWidth,
169 unsigned short verticalActiveTime,
170 unsigned short verticalBlankingTime,
171 unsigned short verticalSyncOffset,
172 unsigned short verticalSyncPulseWidth);
173void SetVideoResolution(struct axi_clkgen *clkgen, unsigned char resolution);
174void InitHdmiAudioPcore(void);
175void AudioClick(void);
176
177#endif /* CF_HDMI_H_ */
Config file of ADV7511 no-OS project.
void InitHdmiVideoPcore(unsigned short horizontalActiveTime, unsigned short horizontalBlankingTime, unsigned short horizontalSyncOffset, unsigned short horizontalSyncPulseWidth, unsigned short verticalActiveTime, unsigned short verticalBlankingTime, unsigned short verticalSyncOffset, unsigned short verticalSyncPulseWidth)
InitHdmiVideoPcore.
Definition cf_hdmi.c:155
void SetVideoResolution(struct axi_clkgen *clkgen, unsigned char resolution)
SetVideoResolution.
Definition cf_hdmi.c:251
videoResolution
Definition cf_hdmi.h:155
@ RESOLUTION_1024x768
Definition cf_hdmi.h:158
@ RESOLUTION_1920x1080
Definition cf_hdmi.h:162
@ RESOLUTION_1280x720
Definition cf_hdmi.h:159
@ RESOLUTION_1600x900
Definition cf_hdmi.h:161
@ RESOLUTION_800x600
Definition cf_hdmi.h:157
@ RESOLUTION_640x480
Definition cf_hdmi.h:156
@ RESOLUTION_1360x768
Definition cf_hdmi.h:160
void AudioClick(void)
AudioClick.
Definition cf_hdmi.c:289
void InitHdmiAudioPcore(void)
InitHdmiAudioPcore.
Definition cf_hdmi.c:267
Driver for the Analog Devices AXI CLKGEN.
Definition clk_axi_clkgen.h:38