precision-converters-firmware
Loading...
Searching...
No Matches
ad4692_attrs.h
Go to the documentation of this file.
1/***************************************************************************/
12#ifndef AD4692_ATTRS_H_
13#define AD4692_ATTRS_H_
14
15/******************************************************************************/
16/***************************** Include Files **********************************/
17/******************************************************************************/
18
19#include "app_config.h"
20#include "iio.h"
21#include "ad4692_iio.h"
22
23/******************************************************************************/
24/********************** Macros and Constants Definition ***********************/
25/******************************************************************************/
26
27/* IIO Channel attribute definition */
28#define AD4692_CHN_ATTR(_name, _priv) {\
29 .name = _name,\
30 .priv = _priv,\
31 .show = ad4692_iio_attr_get,\
32 .store = ad4692_iio_attr_set\
33}
34
35/* IIO Channel available attribute definition */
36#define AD4692_CHN_AVAIL_ATTR(_name, _priv) {\
37 .name = _name,\
38 .priv = _priv,\
39 .show = ad4692_iio_attr_available_get,\
40 .store = ad4692_iio_attr_available_set\
41}
42
43/******************************************************************************/
44/********************** Variables and User Defined Data Types *****************/
45/******************************************************************************/
46
47/* AD4692 channel attributes
48 * Sequencer: Standard Sequencer
49 * ADC Modes: All Modes */
50static struct iio_attribute
51 ad4692_std_seq_ch_attr[NUM_OF_IIO_DEVICES][4] = {
52 {
56
57 END_ATTRIBUTES_ARRAY,
58 },
59};
60
61/* AD4692 channel attributes
62 * Sequencer: Advanced Sequencer
63 * ADC Modes: All Modes */
64static struct iio_attribute
65 ad4692_adv_seq_ch_attr[NUM_OF_IIO_DEVICES][5] = {
66 {
71
72 END_ATTRIBUTES_ARRAY,
73 },
74 {
77
78 END_ATTRIBUTES_ARRAY,
79 }
80};
81
82/* AD4692 Global attributes
83 * Sequencer: Standard Sequencer (manual mode supports only standard sequencer)
84 * ADC Modes: Manual Mode only */
85static struct iio_attribute
86 ad4692_manual_global_attr[NUM_OF_IIO_DEVICES][12] = {
87 {
89
90 END_ATTRIBUTES_ARRAY
91 },
92 {
94 AD4692_CHN_AVAIL_ATTR("adc_mode_available", ADC_MODE_ATTR_ID),
95 AD4692_CHN_ATTR("sequencer_mode", SEQUENCER_MODE_ATTR_ID),
96 AD4692_CHN_AVAIL_ATTR("sequencer_mode_available", SEQUENCER_MODE_ATTR_ID),
97#if defined (TEST_MODE)
98 AD4692_CHN_ATTR("interface_mode", INTERFACE_MODE_ATTR_ID),
99 AD4692_CHN_AVAIL_ATTR("interface_mode_available", INTERFACE_MODE_ATTR_ID),
100#endif
101 AD4692_CHN_ATTR("data_capture_mode", DATA_CAPTURE_MODE_ATTR_ID),
102 AD4692_CHN_AVAIL_ATTR("data_capture_mode_available", DATA_CAPTURE_MODE_ATTR_ID),
103 AD4692_CHN_ATTR("readback_option", READBACK_OPTION_ATTR_ID),
104 AD4692_CHN_AVAIL_ATTR("readback_option_available", READBACK_OPTION_ATTR_ID),
105 AD4692_CHN_ATTR("reconfigure_system", RESTART_IIO_ATTR_ID),
106 AD4692_CHN_AVAIL_ATTR("reconfigure_system_available", RESTART_IIO_ATTR_ID),
107
108 END_ATTRIBUTES_ARRAY
109 }
110};
111
112/* AD4692 Global attributes
113 * Sequencer: Advanced Sequencer
114 * ADC Modes: CNV Burst and SPI Burst Mode only */
115static struct iio_attribute
116 ad4692_adv_seq_burst_global_attr[NUM_OF_IIO_DEVICES][12] = {
117 {
118 AD4692_CHN_ATTR("sampling_frequency", ADC_SAMPLING_FREQUENCY_ATTR_ID),
119 AD4692_CHN_ATTR("channel_seq_length", SEQUENCE_LENGTH_ATTR_ID),
120 AD4692_CHN_ATTR("oscillator_frequency", OSC_FREQUENCY_ATTR_ID),
121 AD4692_CHN_AVAIL_ATTR("oscillator_frequency_available", OSC_FREQUENCY_ATTR_ID),
122
123 END_ATTRIBUTES_ARRAY
124 },
125 {
127 AD4692_CHN_AVAIL_ATTR("adc_mode_available", ADC_MODE_ATTR_ID),
128 AD4692_CHN_ATTR("sequencer_mode", SEQUENCER_MODE_ATTR_ID),
129 AD4692_CHN_AVAIL_ATTR("sequencer_mode_available", SEQUENCER_MODE_ATTR_ID),
130#if defined (TEST_MODE)
131 AD4692_CHN_ATTR("interface_mode", INTERFACE_MODE_ATTR_ID),
132 AD4692_CHN_AVAIL_ATTR("interface_mode_available", INTERFACE_MODE_ATTR_ID),
133#endif
134 AD4692_CHN_ATTR("data_capture_mode", DATA_CAPTURE_MODE_ATTR_ID),
135 AD4692_CHN_AVAIL_ATTR("data_capture_mode_available", DATA_CAPTURE_MODE_ATTR_ID),
136 AD4692_CHN_ATTR("readback_option", READBACK_OPTION_ATTR_ID),
137 AD4692_CHN_AVAIL_ATTR("readback_option_available", READBACK_OPTION_ATTR_ID),
138 AD4692_CHN_ATTR("reconfigure_system", RESTART_IIO_ATTR_ID),
139 AD4692_CHN_AVAIL_ATTR("reconfigure_system_available", RESTART_IIO_ATTR_ID),
140
141 END_ATTRIBUTES_ARRAY
142 }
143};
144
145/* AD4692 Global attributes
146 * Sequencer: Advanced Sequencer
147 * ADC Modes: CNV clock Mode only */
148static struct iio_attribute
149 ad4692_adv_seq_cnv_clock_global_attr[NUM_OF_IIO_DEVICES][12] = {
150 {
151 AD4692_CHN_ATTR("sampling_frequency", ADC_SAMPLING_FREQUENCY_ATTR_ID),
152 AD4692_CHN_ATTR("channel_seq_length", SEQUENCE_LENGTH_ATTR_ID),
153
154 END_ATTRIBUTES_ARRAY
155 },
156 {
158 AD4692_CHN_AVAIL_ATTR("adc_mode_available", ADC_MODE_ATTR_ID),
159 AD4692_CHN_ATTR("sequencer_mode", SEQUENCER_MODE_ATTR_ID),
160 AD4692_CHN_AVAIL_ATTR("sequencer_mode_available", SEQUENCER_MODE_ATTR_ID),
161#if defined (TEST_MODE)
162 AD4692_CHN_ATTR("interface_mode", INTERFACE_MODE_ATTR_ID),
163 AD4692_CHN_AVAIL_ATTR("interface_mode_available", INTERFACE_MODE_ATTR_ID),
164#endif
165 AD4692_CHN_ATTR("data_capture_mode", DATA_CAPTURE_MODE_ATTR_ID),
166 AD4692_CHN_AVAIL_ATTR("data_capture_mode_available", DATA_CAPTURE_MODE_ATTR_ID),
167 AD4692_CHN_ATTR("readback_option", READBACK_OPTION_ATTR_ID),
168 AD4692_CHN_AVAIL_ATTR("readback_option_available", READBACK_OPTION_ATTR_ID),
169 AD4692_CHN_ATTR("reconfigure_system", RESTART_IIO_ATTR_ID),
170 AD4692_CHN_AVAIL_ATTR("reconfigure_system_available", RESTART_IIO_ATTR_ID),
171
172 END_ATTRIBUTES_ARRAY
173 }
174};
175
176/* AD4692 Global attributes
177 * Sequencer: Standard Sequencer
178 * ADC Modes: CNV clock Mode only */
179static struct iio_attribute
180 ad4692_std_seq_cnv_clock_global_attr[NUM_OF_IIO_DEVICES][12] = {
181 {
182 AD4692_CHN_ATTR("sampling_frequency", ADC_SAMPLING_FREQUENCY_ATTR_ID),
184
185 END_ATTRIBUTES_ARRAY
186 },
187 {
189 AD4692_CHN_AVAIL_ATTR("adc_mode_available", ADC_MODE_ATTR_ID),
190 AD4692_CHN_ATTR("sequencer_mode", SEQUENCER_MODE_ATTR_ID),
191 AD4692_CHN_AVAIL_ATTR("sequencer_mode_available", SEQUENCER_MODE_ATTR_ID),
192#if defined (TEST_MODE)
193 AD4692_CHN_ATTR("interface_mode", INTERFACE_MODE_ATTR_ID),
194 AD4692_CHN_AVAIL_ATTR("interface_mode_available", INTERFACE_MODE_ATTR_ID),
195#endif
196 AD4692_CHN_ATTR("data_capture_mode", DATA_CAPTURE_MODE_ATTR_ID),
197 AD4692_CHN_AVAIL_ATTR("data_capture_mode_available", DATA_CAPTURE_MODE_ATTR_ID),
198 AD4692_CHN_ATTR("readback_option", READBACK_OPTION_ATTR_ID),
199 AD4692_CHN_AVAIL_ATTR("readback_option_available", READBACK_OPTION_ATTR_ID),
200 AD4692_CHN_ATTR("reconfigure_system", RESTART_IIO_ATTR_ID),
201 AD4692_CHN_AVAIL_ATTR("reconfigure_system_available", RESTART_IIO_ATTR_ID),
202
203 END_ATTRIBUTES_ARRAY
204 }
205};
206
207
208/* AD4692 Global attributes
209 * Sequencer: Standard Sequencer
210 * ADC Modes: CNV Burst and SPI Burst Mode */
211static struct iio_attribute
212 ad4692_std_seq_burst_global_attr[NUM_OF_IIO_DEVICES][12] = {
213 {
214 AD4692_CHN_ATTR("sampling_frequency", ADC_SAMPLING_FREQUENCY_ATTR_ID),
216 AD4692_CHN_ATTR("oscillator_frequency", OSC_FREQUENCY_ATTR_ID),
217 AD4692_CHN_AVAIL_ATTR("oscillator_frequency_available", OSC_FREQUENCY_ATTR_ID),
218
219 END_ATTRIBUTES_ARRAY
220 },
221 {
223 AD4692_CHN_AVAIL_ATTR("adc_mode_available", ADC_MODE_ATTR_ID),
224 AD4692_CHN_ATTR("sequencer_mode", SEQUENCER_MODE_ATTR_ID),
225 AD4692_CHN_AVAIL_ATTR("sequencer_mode_available", SEQUENCER_MODE_ATTR_ID),
226#if defined (TEST_MODE)
227 AD4692_CHN_ATTR("interface_mode", INTERFACE_MODE_ATTR_ID),
228 AD4692_CHN_AVAIL_ATTR("interface_mode_available", INTERFACE_MODE_ATTR_ID),
229#endif
230 AD4692_CHN_ATTR("data_capture_mode", DATA_CAPTURE_MODE_ATTR_ID),
231 AD4692_CHN_AVAIL_ATTR("data_capture_mode_available", DATA_CAPTURE_MODE_ATTR_ID),
232 AD4692_CHN_ATTR("readback_option", READBACK_OPTION_ATTR_ID),
233 AD4692_CHN_AVAIL_ATTR("readback_option_available", READBACK_OPTION_ATTR_ID),
234 AD4692_CHN_ATTR("reconfigure_system", RESTART_IIO_ATTR_ID),
235 AD4692_CHN_AVAIL_ATTR("reconfigure_system_available", RESTART_IIO_ATTR_ID),
236
237 END_ATTRIBUTES_ARRAY
238 }
239};
240
241#endif // AD4692_ATTRS_H_
#define NUM_OF_IIO_DEVICES
Definition ad2s1210_iio.c:65
#define AD4692_CHN_AVAIL_ATTR(_name, _priv)
Definition ad4692_attrs.h:36
#define AD4692_CHN_ATTR(_name, _priv)
Definition ad4692_attrs.h:28
Header file of ad4692_iio.
@ RESTART_IIO_ATTR_ID
Definition ad4692_iio.h:62
@ ACC_COUNT_ATTR_ID
Definition ad4692_iio.h:50
@ ADC_RAW_ATTR_ID
Definition ad4692_iio.h:47
@ INTERFACE_MODE_ATTR_ID
Definition ad4692_iio.h:57
@ ADC_SCALE_ATTR_ID
Definition ad4692_iio.h:48
@ READBACK_OPTION_ATTR_ID
Definition ad4692_iio.h:61
@ ADC_OFFSET_ATTR_ID
Definition ad4692_iio.h:49
@ ADC_CHN_PRIORITY_ATTR_ID
Definition ad4692_iio.h:51
@ SEQUENCER_MODE_ATTR_ID
Definition ad4692_iio.h:56
@ SEQUENCE_LENGTH_ATTR_ID
Definition ad4692_iio.h:60
@ ADC_MODE_ATTR_ID
Definition ad4692_iio.h:55
@ ADC_SAMPLING_FREQUENCY_ATTR_ID
Definition ad4692_iio.h:54
@ DATA_CAPTURE_MODE_ATTR_ID
Definition ad4692_iio.h:58
@ OSC_FREQUENCY_ATTR_ID
Definition ad4692_iio.h:59
Configuration file of nanodac firmware example program.