no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
adaq8092.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef __ADAQ8092_H__
34#define __ADAQ8092_H__
35
36#include <stdint.h>
37#include <string.h>
38#include "no_os_util.h"
39#include "no_os_spi.h"
40#include "no_os_gpio.h"
41
42/* SPI commands */
43#define ADAQ8092_SPI_READ NO_OS_BIT(7)
44#define ADAQ8092_ADDR(x) ((x) & 0xFF)
45
46/* ADAQ8092 Register Map */
47#define ADAQ8092_REG_RESET 0x00
48#define ADAQ8092_REG_POWERDOWN 0x01
49#define ADAQ8092_REG_TIMING 0x02
50#define ADAQ8092_REG_OUTPUT_MODE 0x03
51#define ADAQ8092_REG_DATA_FORMAT 0x04
52
53/* ADAQ8092_REG_RESET Bit Definition */
54#define ADAQ8092_RESET NO_OS_BIT(7)
55
56/* ADAQ8092_REG_POWERDOWN Bit Definition */
57#define ADAQ8092_POWERDOWN_MODE NO_OS_GENMASK(1, 0)
58
59/* ADAQ8092_REG_TIMING Bit Definition */
60#define ADAQ8092_CLK_INVERT NO_OS_BIT(3)
61#define ADAQ8092_CLK_PHASE NO_OS_GENMASK(2, 1)
62#define ADAQ8092_CLK_DUTYCYCLE NO_OS_BIT(0)
63
64/* ADAQ8092_REG_OUTPUT_MODE Bit Definition */
65#define ADAQ8092_ILVDS NO_OS_GENMASK(6, 4)
66#define ADAQ8092_TERMON NO_OS_BIT(3)
67#define ADAQ8092_OUTOFF NO_OS_BIT(2)
68#define ADAQ8092_OUTMODE NO_OS_GENMASK(1, 0)
69
70/* ADAQ8092_REG_DATA_FORMAT Bit Definition */
71#define ADAQ8092_OUTTEST NO_OS_GENMASK(5, 3)
72#define ADAQ8092_ABP NO_OS_BIT(2)
73#define ADAQ8092_RAND NO_OS_BIT(1)
74#define ADAQ8092_TWOSCOMP NO_OS_BIT(0)
75
76/* ADAQ8092 Power Down Modes */
83
84/* ADAQ8092 Output Clock Invert */
89
90/* ADAQ8092 Output Clock Phase Delay Bits */
97
98/*ADAQ8092 Clock Duty Cycle Stabilizer */
103
104/* ADAQ8092 LVDS Output Current */
114
115/* ADAQ8092 LVDS Internal Termination */
120
121/* ADAQ8092 Digital Output */
126
127/* ADAQ8092 Digital Output Mode */
133
134/* ADAQ8092 Digital Test Pattern */
142
143/* ADAQ8092 Alternate Bit Polarity Mode */
148
149/* ADAQ8092 Data Output Randomizer*/
154
155/* ADAQ8092 Twos Complement Mode */
160
185
210
211/* Read device register. */
212int adaq8092_read(struct adaq8092_dev *dev, uint8_t reg_addr,
213 uint8_t *reg_data);
214
215/* Write device register. */
216int adaq8092_write(struct adaq8092_dev *dev, uint8_t reg_addr,
217 uint8_t reg_data);
218
219/* Update specific register bits. */
220int adaq8092_update_bits(struct adaq8092_dev *dev, uint8_t reg_addr,
221 uint8_t mask, uint8_t reg_data);
222
223/* Initialize the device. */
226
227/* Remove the device and release resources. */
228int adaq8092_remove(struct adaq8092_dev *dev);
229
230/* Set the device powerodown mode. */
231int adaq8092_set_pd_mode(struct adaq8092_dev *dev,
232 enum adaq8092_powerdown_modes mode);
233
234/* Get the device powerdown mode. */
236
237/* Set the clock polarity mode. */
239 enum adaq8092_clk_invert mode);
240
241/* Get the clock polarity mode. */
243
244/* Set the clock phase delay mode. */
246 enum adaq8092_clk_phase_delay mode);
247
248/* Get the clock phase delay mode. */
250 struct adaq8092_dev *dev);
251
252/* Set the clock duty cycle stabilizer mode. */
254 enum adaq8092_clk_dutycycle mode);
255
256/* Get the clock duty cycle stabilizer mode. */
258
259/* Set the LVDS output current mode. */
261 enum adaq8092_lvds_out_current mode);
262
263/* Get the LVDS output current mode. */
265 struct adaq8092_dev *dev);
266
267/* Set the LVDS internal temination mode. */
269 enum adaq8092_internal_term mode);
270
271/* Get the LVDS internal temination device mode. */
273 struct adaq8092_dev *dev);
274
275/* Set digital outputs. */
276int adaq8092_set_dout_en(struct adaq8092_dev *dev,
277 enum adaq8092_dout_enable mode);
278
279/* Get digital outputs. */
281
282/* Set the digital output mode. */
284 enum adaq8092_dout_modes mode);
285
286/* Get the digital output mode. */
288
289/* Set digital output test pattern mode. */
291 enum adaq8092_out_test_modes mode);
292
293/* Get digital output test pattern mode. */
295
296/* Set the alternate bit polarity mode. */
298 enum adaq8092_alt_bit_pol mode);
299
300/* Get the alternate bit polarity mode. */
302
303/* Set the data output randomizer mode. */
305 enum adaq8092_data_rand mode);
306
307/* Get the data output randomizer mode. */
309
310/* Set the Tows Complement mode. */
312 enum adaq8092_twoscomp mode);
313
314/* Get the Tows Complement mode. */
316
317#endif /* __ADAQ8092_H__ */
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int adaq8092_set_clk_phase_mode(struct adaq8092_dev *dev, enum adaq8092_clk_phase_delay mode)
Set the clock phase delay mode.
Definition adaq8092.c:361
enum adaq8092_powerdown_modes adaq8092_get_pd_mode(struct adaq8092_dev *dev)
Get the device powerdown mode.
Definition adaq8092.c:318
int adaq8092_set_lvds_term_mode(struct adaq8092_dev *dev, enum adaq8092_internal_term mode)
Set the LVDS internal temination mode.
Definition adaq8092.c:459
enum adaq8092_clk_invert adaq8092_get_clk_pol_mode(struct adaq8092_dev *dev)
Get the clock polarity mode.
Definition adaq8092.c:350
enum adaq8092_clk_phase_delay adaq8092_get_clk_phase_mode(struct adaq8092_dev *dev)
Get the clock phase delay mode.
Definition adaq8092.c:382
adaq8092_twoscomp
Definition adaq8092.h:156
@ ADAQ8092_OFFSET_BINARY
Definition adaq8092.h:157
@ ADAQ8092_TWOS_COMPLEMENT
Definition adaq8092.h:158
enum adaq8092_lvds_out_current adaq8092_get_lvds_cur_mode(struct adaq8092_dev *dev)
Get the LVDS output current mode.
Definition adaq8092.c:447
adaq8092_clk_invert
Definition adaq8092.h:85
@ ADAQ8092_CLK_POL_INVERTED
Definition adaq8092.h:87
@ ADAQ8092_CLK_POL_NORMAL
Definition adaq8092.h:86
enum adaq8092_data_rand adaq8092_get_data_rand_en(struct adaq8092_dev *dev)
Get the data output randomizer mode.
Definition adaq8092.c:641
adaq8092_lvds_out_current
Definition adaq8092.h:105
@ ADAQ8092_2M1A
Definition adaq8092.h:111
@ ADAQ8092_3M5A
Definition adaq8092.h:106
@ ADAQ8092_4MA
Definition adaq8092.h:107
@ ADAQ8092_3MA
Definition adaq8092.h:109
@ ADAQ8092_2M5A
Definition adaq8092.h:110
@ ADAQ8092_1M75
Definition adaq8092.h:112
@ ADAQ8092_4M5A
Definition adaq8092.h:108
int adaq8092_set_alt_pol_en(struct adaq8092_dev *dev, enum adaq8092_alt_bit_pol mode)
Set the alternate bit polarity mode.
Definition adaq8092.c:588
int adaq8092_init(struct adaq8092_dev **device, struct adaq8092_init_param init_param)
Initialize the device.
Definition adaq8092.c:113
adaq8092_data_rand
Definition adaq8092.h:150
@ ADAQ8092_DATA_RAND_OFF
Definition adaq8092.h:151
@ ADAQ8092_DATA_RAND_ON
Definition adaq8092.h:152
int adaq8092_set_dout_mode(struct adaq8092_dev *dev, enum adaq8092_dout_modes mode)
Set the digital output mode.
Definition adaq8092.c:524
adaq8092_dout_enable
Definition adaq8092.h:122
@ ADAQ8092_DOUT_ON
Definition adaq8092.h:123
@ ADAQ8092_DOUT_OFF
Definition adaq8092.h:124
int adaq8092_update_bits(struct adaq8092_dev *dev, uint8_t reg_addr, uint8_t mask, uint8_t reg_data)
Update specific register bits.
Definition adaq8092.c:90
int adaq8092_set_clk_pol_mode(struct adaq8092_dev *dev, enum adaq8092_clk_invert mode)
Set the clock polarity mode.
Definition adaq8092.c:329
enum adaq8092_clk_dutycycle adaq8092_get_clk_dc_mode(struct adaq8092_dev *dev)
Get the clock duty cycle stabilizer mode.
Definition adaq8092.c:415
int adaq8092_set_clk_dc_mode(struct adaq8092_dev *dev, enum adaq8092_clk_dutycycle mode)
Set the clock duty cycle stabilizer mode.
Definition adaq8092.c:394
enum adaq8092_dout_enable adaq8092_get_dout_en(struct adaq8092_dev *dev)
Get digital outputs.
Definition adaq8092.c:513
int adaq8092_set_pd_mode(struct adaq8092_dev *dev, enum adaq8092_powerdown_modes mode)
Set the device powerodown mode.
Definition adaq8092.c:297
int adaq8092_set_twos_comp(struct adaq8092_dev *dev, enum adaq8092_twoscomp mode)
Set the Tows Complement mode.
Definition adaq8092.c:652
int adaq8092_set_test_mode(struct adaq8092_dev *dev, enum adaq8092_out_test_modes mode)
Set digital output test pattern mode.
Definition adaq8092.c:556
enum adaq8092_internal_term adaq8092_get_lvds_term_mode(struct adaq8092_dev *dev)
Get the LVDS internal temination device mode.
Definition adaq8092.c:480
int adaq8092_remove(struct adaq8092_dev *dev)
Remove the device and release resources.
Definition adaq8092.c:262
int adaq8092_set_dout_en(struct adaq8092_dev *dev, enum adaq8092_dout_enable mode)
Set digital outputs.
Definition adaq8092.c:492
enum adaq8092_dout_modes adaq8092_get_dout_mode(struct adaq8092_dev *dev)
Get the digital output mode.
Definition adaq8092.c:545
int adaq8092_set_lvds_cur_mode(struct adaq8092_dev *dev, enum adaq8092_lvds_out_current mode)
Set the LVDS output current mode.
Definition adaq8092.c:426
enum adaq8092_alt_bit_pol adaq8092_get_alt_pol_en(struct adaq8092_dev *dev)
Get the alternate bit polarity mode.
Definition adaq8092.c:609
adaq8092_dout_modes
Definition adaq8092.h:128
@ ADAQ8092_DOUBLE_RATE_LVDS
Definition adaq8092.h:130
@ ADAQ8092_FULL_RATE_CMOS
Definition adaq8092.h:129
@ ADAQ8092_DOUBLE_RATE_CMOS
Definition adaq8092.h:131
int adaq8092_write(struct adaq8092_dev *dev, uint8_t reg_addr, uint8_t reg_data)
Write device register.
Definition adaq8092.c:72
adaq8092_clk_dutycycle
Definition adaq8092.h:99
@ ADAQ8092_CLK_DC_STABILIZER_OFF
Definition adaq8092.h:100
@ ADAQ8092_CLK_DC_STABILIZER_ON
Definition adaq8092.h:101
int adaq8092_read(struct adaq8092_dev *dev, uint8_t reg_addr, uint8_t *reg_data)
Read device register.
Definition adaq8092.c:49
int adaq8092_set_data_rand_en(struct adaq8092_dev *dev, enum adaq8092_data_rand mode)
Set the data output randomizer mode.
Definition adaq8092.c:620
adaq8092_internal_term
Definition adaq8092.h:116
@ ADAQ8092_TERM_OFF
Definition adaq8092.h:117
@ ADAQ8092_TERM_ON
Definition adaq8092.h:118
adaq8092_alt_bit_pol
Definition adaq8092.h:144
@ ADAQ8092_ALT_BIT_POL_ON
Definition adaq8092.h:146
@ ADAQ8092_ALT_BIT_POL_OFF
Definition adaq8092.h:145
adaq8092_clk_phase_delay
Definition adaq8092.h:91
@ ADAQ8092_CLKOUT_DELAY_45DEG
Definition adaq8092.h:93
@ ADAQ8092_CLKOUT_DELAY_90DEG
Definition adaq8092.h:94
@ ADAQ8092_NO_DELAY
Definition adaq8092.h:92
@ ADAQ8092_CLKOUT_DELAY_180DEG
Definition adaq8092.h:95
adaq8092_powerdown_modes
Definition adaq8092.h:77
@ ADAQ8092_CH1_CH2_NAP
Definition adaq8092.h:80
@ ADAQ8092_NORMAL_OP
Definition adaq8092.h:78
@ ADAQ8092_CH1_NORMAL_CH2_NAP
Definition adaq8092.h:79
@ ADAQ8092_SLEEP
Definition adaq8092.h:81
adaq8092_out_test_modes
Definition adaq8092.h:135
@ ADAQ8092_TEST_ONES
Definition adaq8092.h:137
@ ADAQ8092_TEST_OFF
Definition adaq8092.h:136
@ ADAQ8092_TEST_ZEROS
Definition adaq8092.h:138
@ ADAQ8092_TEST_ALTERNATING
Definition adaq8092.h:140
@ ADAQ8092_TEST_CHECKERBOARD
Definition adaq8092.h:139
enum adaq8092_twoscomp adaq8092_get_twos_comp(struct adaq8092_dev *dev)
Get the Tows Complement mode.
Definition adaq8092.c:673
enum adaq8092_out_test_modes adaq8092_get_test_mode(struct adaq8092_dev *dev)
Get digital output test pattern mode.
Definition adaq8092.c:577
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of utility functions.
ADAQ8092 Device structure.
Definition adaq8092.h:190
enum adaq8092_out_test_modes test_mode
Definition adaq8092.h:205
enum adaq8092_alt_bit_pol alt_bit_pol_en
Definition adaq8092.h:206
enum adaq8092_clk_phase_delay clk_phase_mode
Definition adaq8092.h:199
enum adaq8092_internal_term lvds_term_mode
Definition adaq8092.h:202
enum adaq8092_dout_modes dout_mode
Definition adaq8092.h:204
struct no_os_gpio_desc * gpio_par_ser
Definition adaq8092.h:196
struct no_os_gpio_desc * gpio_en_1p8
Definition adaq8092.h:195
enum adaq8092_twoscomp twos_comp
Definition adaq8092.h:208
enum adaq8092_dout_enable dout_en
Definition adaq8092.h:203
struct no_os_gpio_desc * gpio_adc_pd2
Definition adaq8092.h:194
enum adaq8092_clk_invert clk_pol_mode
Definition adaq8092.h:198
enum adaq8092_clk_dutycycle clk_dc_mode
Definition adaq8092.h:200
enum adaq8092_lvds_out_current lvds_cur_mode
Definition adaq8092.h:201
struct no_os_spi_desc * spi_desc
Definition adaq8092.h:192
struct no_os_gpio_desc * gpio_adc_pd1
Definition adaq8092.h:193
enum adaq8092_data_rand data_rand_en
Definition adaq8092.h:207
enum adaq8092_powerdown_modes pd_mode
Definition adaq8092.h:197
ADAQ8092 Device initialization parameters.
Definition adaq8092.h:165
enum adaq8092_alt_bit_pol alt_bit_pol_en
Definition adaq8092.h:181
struct no_os_gpio_init_param * gpio_par_ser_param
Definition adaq8092.h:171
struct no_os_gpio_init_param * gpio_adc_pd1_param
Definition adaq8092.h:168
struct no_os_gpio_init_param * gpio_adc_pd2_param
Definition adaq8092.h:169
enum adaq8092_clk_dutycycle clk_dc_mode
Definition adaq8092.h:175
enum adaq8092_powerdown_modes pd_mode
Definition adaq8092.h:172
enum adaq8092_internal_term lvds_term_mode
Definition adaq8092.h:177
struct no_os_gpio_init_param * gpio_en_1p8_param
Definition adaq8092.h:170
enum adaq8092_dout_enable dout_en
Definition adaq8092.h:178
enum adaq8092_out_test_modes test_mode
Definition adaq8092.h:180
enum adaq8092_clk_invert clk_pol_mode
Definition adaq8092.h:173
struct no_os_spi_init_param * spi_init
Definition adaq8092.h:167
enum adaq8092_twoscomp twos_comp
Definition adaq8092.h:183
enum adaq8092_lvds_out_current lvds_cur_mode
Definition adaq8092.h:176
enum adaq8092_dout_modes dout_mode
Definition adaq8092.h:179
enum adaq8092_clk_phase_delay clk_phase_mode
Definition adaq8092.h:174
enum adaq8092_data_rand data_rand_en
Definition adaq8092.h:182
Definition ad9361_util.h:63
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128