]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/include/xadcps_hw.h
FreeRTOS source updates:
[freertos] / FreeRTOS / Demo / CORTEX_A9_Zynq_ZC702 / RTOSDemo_bsp / ps7_cortexa9_0 / include / xadcps_hw.h
1 /******************************************************************************
2 *
3 * Copyright (C) 2011 - 2014 Xilinx, Inc.  All rights reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
6 * of this software and associated documentation files (the "Software"), to deal
7 * in the Software without restriction, including without limitation the rights
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 * copies of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * Use of the Software is limited solely to applications:
16 * (a) running on a Xilinx device, or
17 * (b) that interact with a Xilinx device through a bus or interconnect.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 * XILINX  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
24 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 * SOFTWARE.
26 *
27 * Except as contained in this notice, the name of the Xilinx shall not be used
28 * in advertising or otherwise to promote the sale, use or other dealings in
29 * this Software without prior written authorization from Xilinx.
30 *
31 ******************************************************************************/
32 /****************************************************************************/
33 /**
34 *
35 * @file xadcps_hw.h
36 * @addtogroup xadcps_v2_0
37 * @{
38 *
39 * This header file contains identifiers and basic driver functions (or
40 * macros) that can be used to access the XADC device through the Device
41 * Config Interface of the Zynq.
42 *
43 *
44 * Refer to the device specification for more information about this driver.
45 *
46 * @note  None.
47 *
48 *
49 * <pre>
50 *
51 * MODIFICATION HISTORY:
52 *
53 * Ver   Who    Date     Changes
54 * ----- -----  -------- -----------------------------------------------------
55 * 1.00a bss    12/22/11 First release based on the XPS/AXI xadc driver
56 * 1.03a bss    11/01/13 Modified macros to use correct Register offsets
57 *                       CR#749687
58 *
59 * </pre>
60 *
61 *****************************************************************************/
62 #ifndef XADCPS_HW_H /* Prevent circular inclusions */
63 #define XADCPS_HW_H /* by using protection macros  */
64
65 #ifdef __cplusplus
66 extern "C" {
67 #endif
68
69 /***************************** Include Files ********************************/
70
71 #include "xil_types.h"
72 #include "xil_assert.h"
73 #include "xil_io.h"
74
75 /************************** Constant Definitions ****************************/
76
77
78 /**@name Register offsets of XADC in the Device Config
79  *
80  * The following constants provide access to each of the registers of the
81  * XADC device.
82  * @{
83  */
84
85 #define XADCPS_CFG_OFFSET        0x00 /**< Configuration Register */
86 #define XADCPS_INT_STS_OFFSET    0x04 /**< Interrupt Status Register */
87 #define XADCPS_INT_MASK_OFFSET   0x08 /**< Interrupt Mask Register */
88 #define XADCPS_MSTS_OFFSET       0x0C /**< Misc status register */
89 #define XADCPS_CMDFIFO_OFFSET    0x10 /**< Command FIFO Register */
90 #define XADCPS_RDFIFO_OFFSET     0x14 /**< Read FIFO Register */
91 #define XADCPS_MCTL_OFFSET       0x18 /**< Misc control register */
92
93 /* @} */
94
95
96
97
98
99 /** @name XADC Config Register Bit definitions
100   * @{
101  */
102 #define XADCPS_CFG_ENABLE_MASK   0x80000000 /**< Enable access from PS mask */
103 #define XADCPS_CFG_CFIFOTH_MASK  0x00F00000 /**< Command FIFO Threshold mask */
104 #define XADCPS_CFG_DFIFOTH_MASK  0x000F0000 /**< Data FIFO Threshold mask */
105 #define XADCPS_CFG_WEDGE_MASK    0x00002000 /**< Write Edge Mask */
106 #define XADCPS_CFG_REDGE_MASK    0x00001000 /**< Read Edge Mask */
107 #define XADCPS_CFG_TCKRATE_MASK  0x00000300 /**< Clock freq control */
108 #define XADCPS_CFG_IGAP_MASK     0x0000001F /**< Idle Gap between
109                                                 * successive commands */
110 /* @} */
111
112
113 /** @name XADC Interrupt Status/Mask Register Bit definitions
114   *
115   * The definitions are same for the Interrupt Status Register and
116   * Interrupt Mask Register. They are defined only once.
117   * @{
118  */
119 #define XADCPS_INTX_ALL_MASK       0x000003FF /**< Alarm Signals Mask  */
120 #define XADCPS_INTX_CFIFO_LTH_MASK 0x00000200 /**< CMD FIFO less than threshold */
121 #define XADCPS_INTX_DFIFO_GTH_MASK 0x00000100 /**< Data FIFO greater than threshold */
122 #define XADCPS_INTX_OT_MASK        0x00000080 /**< Over temperature Alarm Status */
123 #define XADCPS_INTX_ALM_ALL_MASK   0x0000007F /**< Alarm Signals Mask  */
124 #define XADCPS_INTX_ALM6_MASK      0x00000040 /**< Alarm 6 Mask  */
125 #define XADCPS_INTX_ALM5_MASK      0x00000020 /**< Alarm 5 Mask  */
126 #define XADCPS_INTX_ALM4_MASK      0x00000010 /**< Alarm 4 Mask  */
127 #define XADCPS_INTX_ALM3_MASK      0x00000008 /**< Alarm 3 Mask  */
128 #define XADCPS_INTX_ALM2_MASK      0x00000004 /**< Alarm 2 Mask  */
129 #define XADCPS_INTX_ALM1_MASK      0x00000002 /**< Alarm 1 Mask  */
130 #define XADCPS_INTX_ALM0_MASK      0x00000001 /**< Alarm 0 Mask  */
131
132 /* @} */
133
134
135 /** @name XADC Miscellaneous Register Bit definitions
136   * @{
137  */
138 #define XADCPS_MSTS_CFIFO_LVL_MASK  0x000F0000 /**< Command FIFO Level mask */
139 #define XADCPS_MSTS_DFIFO_LVL_MASK  0x0000F000 /**< Data FIFO Level Mask  */
140 #define XADCPS_MSTS_CFIFOF_MASK     0x00000800 /**< Command FIFO Full Mask  */
141 #define XADCPS_MSTS_CFIFOE_MASK     0x00000400 /**< Command FIFO Empty Mask  */
142 #define XADCPS_MSTS_DFIFOF_MASK     0x00000200 /**< Data FIFO Full Mask  */
143 #define XADCPS_MSTS_DFIFOE_MASK     0x00000100 /**< Data FIFO Empty Mask  */
144 #define XADCPS_MSTS_OT_MASK         0x00000080 /**< Over Temperature Mask */
145 #define XADCPS_MSTS_ALM_MASK        0x0000007F /**< Alarms Mask  */
146 /* @} */
147
148
149 /** @name XADC Miscellaneous Control Register Bit definitions
150   * @{
151  */
152 #define XADCPS_MCTL_RESET_MASK      0x00000010 /**< Reset XADC */
153 #define XADCPS_MCTL_FLUSH_MASK      0x00000001 /**< Flush the FIFOs */
154 /* @} */
155
156
157 /**@name Internal Register offsets of the XADC
158  *
159  * The following constants provide access to each of the internal registers of
160  * the XADC device.
161  * @{
162  */
163
164 /*
165  * XADC Internal Channel Registers
166  */
167 #define XADCPS_TEMP_OFFSET                0x00 /**< On-chip Temperature Reg */
168 #define XADCPS_VCCINT_OFFSET              0x01 /**< On-chip VCCINT Data Reg */
169 #define XADCPS_VCCAUX_OFFSET              0x02 /**< On-chip VCCAUX Data Reg */
170 #define XADCPS_VPVN_OFFSET                0x03 /**< ADC out of VP/VN       */
171 #define XADCPS_VREFP_OFFSET               0x04 /**< On-chip VREFP Data Reg */
172 #define XADCPS_VREFN_OFFSET               0x05 /**< On-chip VREFN Data Reg */
173 #define XADCPS_VBRAM_OFFSET               0x06 /**< On-chip VBRAM , 7 Series */
174 #define XADCPS_ADC_A_SUPPLY_CALIB_OFFSET  0x08 /**< ADC A Supply Offset Reg */
175 #define XADCPS_ADC_A_OFFSET_CALIB_OFFSET  0x09 /**< ADC A Offset Data Reg */
176 #define XADCPS_ADC_A_GAINERR_CALIB_OFFSET 0x0A /**< ADC A Gain Error Reg  */
177 #define XADCPS_VCCPINT_OFFSET             0x0D /**< On-chip VCCPINT Reg, Zynq */
178 #define XADCPS_VCCPAUX_OFFSET             0x0E /**< On-chip VCCPAUX Reg, Zynq */
179 #define XADCPS_VCCPDRO_OFFSET             0x0F /**< On-chip VCCPDRO Reg, Zynq */
180
181 /*
182  * XADC External Channel Registers
183  */
184 #define XADCPS_AUX00_OFFSET     0x10 /**< ADC out of VAUXP0/VAUXN0 */
185 #define XADCPS_AUX01_OFFSET     0x11 /**< ADC out of VAUXP1/VAUXN1 */
186 #define XADCPS_AUX02_OFFSET     0x12 /**< ADC out of VAUXP2/VAUXN2 */
187 #define XADCPS_AUX03_OFFSET     0x13 /**< ADC out of VAUXP3/VAUXN3 */
188 #define XADCPS_AUX04_OFFSET     0x14 /**< ADC out of VAUXP4/VAUXN4 */
189 #define XADCPS_AUX05_OFFSET     0x15 /**< ADC out of VAUXP5/VAUXN5 */
190 #define XADCPS_AUX06_OFFSET     0x16 /**< ADC out of VAUXP6/VAUXN6 */
191 #define XADCPS_AUX07_OFFSET     0x17 /**< ADC out of VAUXP7/VAUXN7 */
192 #define XADCPS_AUX08_OFFSET     0x18 /**< ADC out of VAUXP8/VAUXN8 */
193 #define XADCPS_AUX09_OFFSET     0x19 /**< ADC out of VAUXP9/VAUXN9 */
194 #define XADCPS_AUX10_OFFSET     0x1A /**< ADC out of VAUXP10/VAUXN10 */
195 #define XADCPS_AUX11_OFFSET     0x1B /**< ADC out of VAUXP11/VAUXN11 */
196 #define XADCPS_AUX12_OFFSET     0x1C /**< ADC out of VAUXP12/VAUXN12 */
197 #define XADCPS_AUX13_OFFSET     0x1D /**< ADC out of VAUXP13/VAUXN13 */
198 #define XADCPS_AUX14_OFFSET     0x1E /**< ADC out of VAUXP14/VAUXN14 */
199 #define XADCPS_AUX15_OFFSET     0x1F /**< ADC out of VAUXP15/VAUXN15 */
200
201 /*
202  * XADC Registers for Maximum/Minimum data captured for the
203  * on chip Temperature/VCCINT/VCCAUX data.
204  */
205 #define XADCPS_MAX_TEMP_OFFSET          0x20 /**< Max Temperature Reg */
206 #define XADCPS_MAX_VCCINT_OFFSET        0x21 /**< Max VCCINT Register */
207 #define XADCPS_MAX_VCCAUX_OFFSET        0x22 /**< Max VCCAUX Register */
208 #define XADCPS_MAX_VCCBRAM_OFFSET       0x23 /**< Max BRAM Register, 7 series */
209 #define XADCPS_MIN_TEMP_OFFSET          0x24 /**< Min Temperature Reg */
210 #define XADCPS_MIN_VCCINT_OFFSET        0x25 /**< Min VCCINT Register */
211 #define XADCPS_MIN_VCCAUX_OFFSET        0x26 /**< Min VCCAUX Register */
212 #define XADCPS_MIN_VCCBRAM_OFFSET       0x27 /**< Min BRAM Register, 7 series */
213 #define XADCPS_MAX_VCCPINT_OFFSET       0x28 /**< Max VCCPINT Register, Zynq */
214 #define XADCPS_MAX_VCCPAUX_OFFSET       0x29 /**< Max VCCPAUX Register, Zynq */
215 #define XADCPS_MAX_VCCPDRO_OFFSET       0x2A /**< Max VCCPDRO Register, Zynq */
216 #define XADCPS_MIN_VCCPINT_OFFSET       0x2C /**< Min VCCPINT Register, Zynq */
217 #define XADCPS_MIN_VCCPAUX_OFFSET       0x2D /**< Min VCCPAUX Register, Zynq */
218 #define XADCPS_MIN_VCCPDRO_OFFSET       0x2E /**< Min VCCPDRO Register,Zynq */
219  /* Undefined 0x2F to 0x3E */
220 #define XADCPS_FLAG_OFFSET              0x3F /**< Flag Register */
221
222 /*
223  * XADC Configuration Registers
224  */
225 #define XADCPS_CFR0_OFFSET      0x40    /**< Configuration Register 0 */
226 #define XADCPS_CFR1_OFFSET      0x41    /**< Configuration Register 1 */
227 #define XADCPS_CFR2_OFFSET      0x42    /**< Configuration Register 2 */
228
229 /* Test Registers 0x43 to 0x47 */
230
231 /*
232  * XADC Sequence Registers
233  */
234 #define XADCPS_SEQ00_OFFSET     0x48 /**< Seq Reg 00 Adc Channel Selection */
235 #define XADCPS_SEQ01_OFFSET     0x49 /**< Seq Reg 01 Adc Channel Selection */
236 #define XADCPS_SEQ02_OFFSET     0x4A /**< Seq Reg 02 Adc Average Enable */
237 #define XADCPS_SEQ03_OFFSET     0x4B /**< Seq Reg 03 Adc Average Enable */
238 #define XADCPS_SEQ04_OFFSET     0x4C /**< Seq Reg 04 Adc Input Mode Select */
239 #define XADCPS_SEQ05_OFFSET     0x4D /**< Seq Reg 05 Adc Input Mode Select */
240 #define XADCPS_SEQ06_OFFSET     0x4E /**< Seq Reg 06 Adc Acquisition Select */
241 #define XADCPS_SEQ07_OFFSET     0x4F /**< Seq Reg 07 Adc Acquisition Select */
242
243 /*
244  * XADC Alarm Threshold/Limit Registers (ATR)
245  */
246 #define XADCPS_ATR_TEMP_UPPER_OFFSET    0x50 /**< Temp Upper Alarm Register */
247 #define XADCPS_ATR_VCCINT_UPPER_OFFSET  0x51 /**< VCCINT Upper Alarm Reg */
248 #define XADCPS_ATR_VCCAUX_UPPER_OFFSET  0x52 /**< VCCAUX Upper Alarm Reg */
249 #define XADCPS_ATR_OT_UPPER_OFFSET      0x53 /**< Over Temp Upper Alarm Reg */
250 #define XADCPS_ATR_TEMP_LOWER_OFFSET    0x54 /**< Temp Lower Alarm Register */
251 #define XADCPS_ATR_VCCINT_LOWER_OFFSET  0x55 /**< VCCINT Lower Alarm Reg */
252 #define XADCPS_ATR_VCCAUX_LOWER_OFFSET  0x56 /**< VCCAUX Lower Alarm Reg */
253 #define XADCPS_ATR_OT_LOWER_OFFSET      0x57 /**< Over Temp Lower Alarm Reg */
254 #define XADCPS_ATR_VBRAM_UPPER_OFFSET   0x58 /**< VBRAM Upper Alarm, 7 series */
255 #define XADCPS_ATR_VCCPINT_UPPER_OFFSET 0x59 /**< VCCPINT Upper Alarm, Zynq */
256 #define XADCPS_ATR_VCCPAUX_UPPER_OFFSET 0x5A /**< VCCPAUX Upper Alarm, Zynq */
257 #define XADCPS_ATR_VCCPDRO_UPPER_OFFSET 0x5B /**< VCCPDRO Upper Alarm, Zynq */
258 #define XADCPS_ATR_VBRAM_LOWER_OFFSET   0x5C /**< VRBAM Lower Alarm, 7 Series */
259 #define XADCPS_ATR_VCCPINT_LOWER_OFFSET 0x5D /**< VCCPINT Lower Alarm, Zynq */
260 #define XADCPS_ATR_VCCPAUX_LOWER_OFFSET 0x5E /**< VCCPAUX Lower Alarm, Zynq */
261 #define XADCPS_ATR_VCCPDRO_LOWER_OFFSET 0x5F /**< VCCPDRO Lower Alarm, Zynq */
262
263 /* Undefined 0x60 to 0x7F */
264
265 /*@}*/
266
267
268
269 /**
270  * @name Configuration Register 0 (CFR0) mask(s)
271  * @{
272  */
273 #define XADCPS_CFR0_CAL_AVG_MASK        0x8000 /**< Averaging enable Mask */
274 #define XADCPS_CFR0_AVG_VALID_MASK      0x3000 /**< Averaging bit Mask */
275 #define XADCPS_CFR0_AVG1_MASK           0x0000 /**< No Averaging */
276 #define XADCPS_CFR0_AVG16_MASK          0x1000 /**< Average 16 samples */
277 #define XADCPS_CFR0_AVG64_MASK          0x2000 /**< Average 64 samples */
278 #define XADCPS_CFR0_AVG256_MASK         0x3000 /**< Average 256 samples */
279 #define XADCPS_CFR0_AVG_SHIFT           12     /**< Averaging bits shift */
280 #define XADCPS_CFR0_MUX_MASK            0x0800 /**< External Mask Enable */
281 #define XADCPS_CFR0_DU_MASK             0x0400 /**< Bipolar/Unipolar mode */
282 #define XADCPS_CFR0_EC_MASK             0x0200 /**< Event driven/
283                                                  *  Continuous mode selection
284                                                  */
285 #define XADCPS_CFR0_ACQ_MASK            0x0100 /**< Add acquisition by 6 ADCCLK */
286 #define XADCPS_CFR0_CHANNEL_MASK        0x001F /**< Channel number bit Mask */
287
288 /*@}*/
289
290 /**
291  * @name Configuration Register 1 (CFR1) mask(s)
292  * @{
293  */
294 #define XADCPS_CFR1_SEQ_VALID_MASK        0xF000 /**< Sequence bit Mask */
295 #define XADCPS_CFR1_SEQ_SAFEMODE_MASK     0x0000 /**< Default Safe Mode */
296 #define XADCPS_CFR1_SEQ_ONEPASS_MASK      0x1000 /**< Onepass through Seq */
297 #define XADCPS_CFR1_SEQ_CONTINPASS_MASK      0x2000 /**< Continuous Cycling Seq */
298 #define XADCPS_CFR1_SEQ_SINGCHAN_MASK        0x3000 /**< Single channel - No Seq */
299 #define XADCPS_CFR1_SEQ_SIMUL_SAMPLING_MASK  0x4000 /**< Simulataneous Sampling Mask */
300 #define XADCPS_CFR1_SEQ_INDEPENDENT_MASK  0x8000 /**< Independent Mode */
301 #define XADCPS_CFR1_SEQ_SHIFT             12     /**< Sequence bit shift */
302 #define XADCPS_CFR1_ALM_VCCPDRO_MASK      0x0800 /**< Alm 6 - VCCPDRO, Zynq  */
303 #define XADCPS_CFR1_ALM_VCCPAUX_MASK      0x0400 /**< Alm 5 - VCCPAUX, Zynq */
304 #define XADCPS_CFR1_ALM_VCCPINT_MASK      0x0200 /**< Alm 4 - VCCPINT, Zynq */
305 #define XADCPS_CFR1_ALM_VBRAM_MASK        0x0100 /**< Alm 3 - VBRAM, 7 series */
306 #define XADCPS_CFR1_CAL_VALID_MASK        0x00F0 /**< Valid Calibration Mask */
307 #define XADCPS_CFR1_CAL_PS_GAIN_OFFSET_MASK  0x0080 /**< Calibration 3 -Power
308                                                         Supply Gain/Offset
309                                                         Enable */
310 #define XADCPS_CFR1_CAL_PS_OFFSET_MASK    0x0040 /**< Calibration 2 -Power
311                                                         Supply Offset Enable */
312 #define XADCPS_CFR1_CAL_ADC_GAIN_OFFSET_MASK 0x0020 /**< Calibration 1 -ADC Gain
313                                                         Offset Enable */
314 #define XADCPS_CFR1_CAL_ADC_OFFSET_MASK  0x0010 /**< Calibration 0 -ADC Offset
315                                                         Enable */
316 #define XADCPS_CFR1_CAL_DISABLE_MASK    0x0000 /**< No Calibration */
317 #define XADCPS_CFR1_ALM_ALL_MASK        0x0F0F /**< Mask for all alarms */
318 #define XADCPS_CFR1_ALM_VCCAUX_MASK     0x0008 /**< Alarm 2 - VCCAUX Enable */
319 #define XADCPS_CFR1_ALM_VCCINT_MASK     0x0004 /**< Alarm 1 - VCCINT Enable */
320 #define XADCPS_CFR1_ALM_TEMP_MASK       0x0002 /**< Alarm 0 - Temperature */
321 #define XADCPS_CFR1_OT_MASK             0x0001 /**< Over Temperature Enable */
322
323 /*@}*/
324
325 /**
326  * @name Configuration Register 2 (CFR2) mask(s)
327  * @{
328  */
329 #define XADCPS_CFR2_CD_VALID_MASK       0xFF00  /**<Clock Divisor bit Mask   */
330 #define XADCPS_CFR2_CD_SHIFT            8       /**<Num of shift on division */
331 #define XADCPS_CFR2_CD_MIN              8       /**<Minimum value of divisor */
332 #define XADCPS_CFR2_CD_MAX              255     /**<Maximum value of divisor */
333
334 #define XADCPS_CFR2_CD_MIN              8       /**<Minimum value of divisor */
335 #define XADCPS_CFR2_PD_MASK             0x0030  /**<Power Down Mask */
336 #define XADCPS_CFR2_PD_XADC_MASK        0x0030  /**<Power Down XADC Mask */
337 #define XADCPS_CFR2_PD_ADC1_MASK        0x0020  /**<Power Down ADC1 Mask */
338 #define XADCPS_CFR2_PD_SHIFT            4       /**<Power Down Shift */
339 /*@}*/
340
341 /**
342  * @name Sequence Register (SEQ) Bit Definitions
343  * @{
344  */
345 #define XADCPS_SEQ_CH_CALIB     0x00000001 /**< ADC Calibration Channel */
346 #define XADCPS_SEQ_CH_VCCPINT   0x00000020 /**< VCCPINT, Zynq Only */
347 #define XADCPS_SEQ_CH_VCCPAUX   0x00000040 /**< VCCPAUX, Zynq Only */
348 #define XADCPS_SEQ_CH_VCCPDRO   0x00000080 /**< VCCPDRO, Zynq Only */
349 #define XADCPS_SEQ_CH_TEMP      0x00000100 /**< On Chip Temperature Channel */
350 #define XADCPS_SEQ_CH_VCCINT    0x00000200 /**< VCCINT Channel */
351 #define XADCPS_SEQ_CH_VCCAUX    0x00000400 /**< VCCAUX Channel */
352 #define XADCPS_SEQ_CH_VPVN      0x00000800 /**< VP/VN analog inputs Channel */
353 #define XADCPS_SEQ_CH_VREFP     0x00001000 /**< VREFP Channel */
354 #define XADCPS_SEQ_CH_VREFN     0x00002000 /**< VREFN Channel */
355 #define XADCPS_SEQ_CH_VBRAM     0x00004000 /**< VBRAM Channel, 7 series */
356 #define XADCPS_SEQ_CH_AUX00     0x00010000 /**< 1st Aux Channel */
357 #define XADCPS_SEQ_CH_AUX01     0x00020000 /**< 2nd Aux Channel */
358 #define XADCPS_SEQ_CH_AUX02     0x00040000 /**< 3rd Aux Channel */
359 #define XADCPS_SEQ_CH_AUX03     0x00080000 /**< 4th Aux Channel */
360 #define XADCPS_SEQ_CH_AUX04     0x00100000 /**< 5th Aux Channel */
361 #define XADCPS_SEQ_CH_AUX05     0x00200000 /**< 6th Aux Channel */
362 #define XADCPS_SEQ_CH_AUX06     0x00400000 /**< 7th Aux Channel */
363 #define XADCPS_SEQ_CH_AUX07     0x00800000 /**< 8th Aux Channel */
364 #define XADCPS_SEQ_CH_AUX08     0x01000000 /**< 9th Aux Channel */
365 #define XADCPS_SEQ_CH_AUX09     0x02000000 /**< 10th Aux Channel */
366 #define XADCPS_SEQ_CH_AUX10     0x04000000 /**< 11th Aux Channel */
367 #define XADCPS_SEQ_CH_AUX11     0x08000000 /**< 12th Aux Channel */
368 #define XADCPS_SEQ_CH_AUX12     0x10000000 /**< 13th Aux Channel */
369 #define XADCPS_SEQ_CH_AUX13     0x20000000 /**< 14th Aux Channel */
370 #define XADCPS_SEQ_CH_AUX14     0x40000000 /**< 15th Aux Channel */
371 #define XADCPS_SEQ_CH_AUX15     0x80000000 /**< 16th Aux Channel */
372
373 #define XADCPS_SEQ00_CH_VALID_MASK  0x7FE1 /**< Mask for the valid channels */
374 #define XADCPS_SEQ01_CH_VALID_MASK  0xFFFF /**< Mask for the valid channels */
375
376 #define XADCPS_SEQ02_CH_VALID_MASK  0x7FE0 /**< Mask for the valid channels */
377 #define XADCPS_SEQ03_CH_VALID_MASK  0xFFFF /**< Mask for the valid channels */
378
379 #define XADCPS_SEQ04_CH_VALID_MASK  0x0800 /**< Mask for the valid channels */
380 #define XADCPS_SEQ05_CH_VALID_MASK  0xFFFF /**< Mask for the valid channels */
381
382 #define XADCPS_SEQ06_CH_VALID_MASK  0x0800 /**< Mask for the valid channels */
383 #define XADCPS_SEQ07_CH_VALID_MASK  0xFFFF /**< Mask for the valid channels */
384
385
386 #define XADCPS_SEQ_CH_AUX_SHIFT 16 /**< Shift for the Aux Channel */
387
388 /*@}*/
389
390 /**
391  * @name OT Upper Alarm Threshold Register Bit Definitions
392  * @{
393  */
394
395 #define XADCPS_ATR_OT_UPPER_ENB_MASK    0x000F /**< Mask for OT enable */
396 #define XADCPS_ATR_OT_UPPER_VAL_MASK    0xFFF0 /**< Mask for OT value */
397 #define XADCPS_ATR_OT_UPPER_VAL_SHIFT   4      /**< Shift for OT value */
398 #define XADCPS_ATR_OT_UPPER_ENB_VAL     0x0003 /**< Value for OT enable */
399 #define XADCPS_ATR_OT_UPPER_VAL_MAX     0x0FFF /**< Max OT value */
400
401 /*@}*/
402
403
404 /**
405  * @name JTAG DRP Bit Definitions
406  * @{
407  */
408 #define XADCPS_JTAG_DATA_MASK           0x0000FFFF /**< Mask for the Data */
409 #define XADCPS_JTAG_ADDR_MASK           0x03FF0000 /**< Mask for the Addr */
410 #define XADCPS_JTAG_ADDR_SHIFT          16         /**< Shift for the Addr */
411 #define XADCPS_JTAG_CMD_MASK            0x3C000000 /**< Mask for the Cmd */
412 #define XADCPS_JTAG_CMD_WRITE_MASK      0x08000000 /**< Mask for CMD Write */
413 #define XADCPS_JTAG_CMD_READ_MASK       0x04000000 /**< Mask for CMD Read */
414 #define XADCPS_JTAG_CMD_SHIFT           26         /**< Shift for the Cmd */
415
416 /*@}*/
417
418 /** @name Unlock Register Definitions
419   * @{
420  */
421  #define XADCPS_UNLK_OFFSET      0x034 /**< Unlock Register */
422  #define XADCPS_UNLK_VALUE       0x757BDF0D /**< Unlock Value */
423
424  /* @} */
425
426
427 /**************************** Type Definitions *******************************/
428
429 /***************** Macros (Inline Functions) Definitions *********************/
430
431 /*****************************************************************************/
432 /**
433 *
434 * Read a register of the XADC device. This macro provides register
435 * access to all registers using the register offsets defined above.
436 *
437 * @param        BaseAddress contains the base address of the device.
438 * @param        RegOffset is the offset of the register to read.
439 *
440 * @return       The contents of the register.
441 *
442 * @note         C-style Signature:
443 *               u32 XAdcPs_ReadReg(u32 BaseAddress, u32 RegOffset);
444 *
445 ******************************************************************************/
446 #define XAdcPs_ReadReg(BaseAddress, RegOffset) \
447                         (Xil_In32((BaseAddress) + (RegOffset)))
448
449 /*****************************************************************************/
450 /**
451 *
452 * Write a register of the XADC device. This macro provides
453 * register access to all registers using the register offsets defined above.
454 *
455 * @param        BaseAddress contains the base address of the device.
456 * @param        RegOffset is the offset of the register to write.
457 * @param        Data is the value to write to the register.
458 *
459 * @return       None.
460 *
461 * @note         C-style Signature:
462 *               void XAdcPs_WriteReg(u32 BaseAddress,
463 *                                       u32 RegOffset,u32 Data)
464 *
465 ******************************************************************************/
466 #define XAdcPs_WriteReg(BaseAddress, RegOffset, Data) \
467                 (Xil_Out32((BaseAddress) + (RegOffset), (Data)))
468
469 /************************** Function Prototypes ******************************/
470
471
472 /*****************************************************************************/
473 /**
474 *
475 * Formats the data to be written to the the XADC registers.
476 *
477 * @param        RegOffset is the offset of the Register
478 * @param        Data is the data to be written to the Register if it is
479 *               a write.
480 * @param        ReadWrite specifies whether it is a Read or a Write.
481 *               Use 0 for Read, 1 for Write.
482 *
483 * @return       None.
484 *
485 * @note         C-style Signature:
486 *               void XAdcPs_FormatWriteData(u32 RegOffset,
487 *                                            u16 Data, int ReadWrite)
488 *
489 ******************************************************************************/
490 #define XAdcPs_FormatWriteData(RegOffset, Data, ReadWrite)          \
491     ((ReadWrite ? XADCPS_JTAG_CMD_WRITE_MASK : XADCPS_JTAG_CMD_READ_MASK ) | \
492      ((RegOffset << XADCPS_JTAG_ADDR_SHIFT) & XADCPS_JTAG_ADDR_MASK) |       \
493      (Data & XADCPS_JTAG_DATA_MASK))
494
495
496
497 #ifdef __cplusplus
498 }
499 #endif
500
501 #endif  /* End of protection macro. */
502 /** @} */