aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/staging/iio/meter/meter.h
blob: edf26302fa57a658be6a319bc0ea98d1b1a5daad (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _METER_H
#define _METER_H

#include <linux/iio/sysfs.h>

/* metering ic types of attribute */

#define IIO_DEV_ATTR_CURRENT_A_OFFSET(_mode, _show, _store, _addr)	\
	IIO_DEVICE_ATTR(current_a_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CURRENT_B_OFFSET(_mode, _show, _store, _addr)	\
	IIO_DEVICE_ATTR(current_b_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CURRENT_C_OFFSET(_mode, _show, _store, _addr)	\
	IIO_DEVICE_ATTR(current_c_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VOLT_A_OFFSET(_mode, _show, _store, _addr)      \
	IIO_DEVICE_ATTR(volt_a_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VOLT_B_OFFSET(_mode, _show, _store, _addr)      \
	IIO_DEVICE_ATTR(volt_b_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VOLT_C_OFFSET(_mode, _show, _store, _addr)      \
	IIO_DEVICE_ATTR(volt_c_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_REACTIVE_POWER_A_OFFSET(_mode, _show, _store, _addr)   \
	IIO_DEVICE_ATTR(reactive_power_a_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_REACTIVE_POWER_B_OFFSET(_mode, _show, _store, _addr)   \
	IIO_DEVICE_ATTR(reactive_power_b_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_REACTIVE_POWER_C_OFFSET(_mode, _show, _store, _addr)   \
	IIO_DEVICE_ATTR(reactive_power_c_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_ACTIVE_POWER_A_OFFSET(_mode, _show, _store, _addr)     \
	IIO_DEVICE_ATTR(active_power_a_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_ACTIVE_POWER_B_OFFSET(_mode, _show, _store, _addr)     \
	IIO_DEVICE_ATTR(active_power_b_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_ACTIVE_POWER_C_OFFSET(_mode, _show, _store, _addr)     \
	IIO_DEVICE_ATTR(active_power_c_offset, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CURRENT_A_GAIN(_mode, _show, _store, _addr)	\
	IIO_DEVICE_ATTR(current_a_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CURRENT_B_GAIN(_mode, _show, _store, _addr)	\
	IIO_DEVICE_ATTR(current_b_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CURRENT_C_GAIN(_mode, _show, _store, _addr)	\
	IIO_DEVICE_ATTR(current_c_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_APPARENT_POWER_A_GAIN(_mode, _show, _store, _addr)     \
	IIO_DEVICE_ATTR(apparent_power_a_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_APPARENT_POWER_B_GAIN(_mode, _show, _store, _addr)     \
	IIO_DEVICE_ATTR(apparent_power_b_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_APPARENT_POWER_C_GAIN(_mode, _show, _store, _addr)     \
	IIO_DEVICE_ATTR(apparent_power_c_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_ACTIVE_POWER_GAIN(_mode, _show, _store, _addr)     \
	IIO_DEVICE_ATTR(active_power_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_ACTIVE_POWER_A_GAIN(_mode, _show, _store, _addr)   \
	IIO_DEVICE_ATTR(active_power_a_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_ACTIVE_POWER_B_GAIN(_mode, _show, _store, _addr)   \
	IIO_DEVICE_ATTR(active_power_b_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_ACTIVE_POWER_C_GAIN(_mode, _show, _store, _addr)   \
	IIO_DEVICE_ATTR(active_power_c_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_REACTIVE_POWER_A_GAIN(_mode, _show, _store, _addr)     \
	IIO_DEVICE_ATTR(reactive_power_a_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_REACTIVE_POWER_B_GAIN(_mode, _show, _store, _addr)     \
	IIO_DEVICE_ATTR(reactive_power_b_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_REACTIVE_POWER_C_GAIN(_mode, _show, _store, _addr)     \
	IIO_DEVICE_ATTR(reactive_power_c_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CURRENT_A(_show, _addr)			\
	IIO_DEVICE_ATTR(current_a, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_CURRENT_B(_show, _addr)			\
	IIO_DEVICE_ATTR(current_b, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_CURRENT_C(_show, _addr)			\
	IIO_DEVICE_ATTR(current_c, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_VOLT_A(_show, _addr)			\
	IIO_DEVICE_ATTR(volt_a, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_VOLT_B(_show, _addr)			\
	IIO_DEVICE_ATTR(volt_b, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_VOLT_C(_show, _addr)			\
	IIO_DEVICE_ATTR(volt_c, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_AENERGY(_show, _addr)			\
	IIO_DEVICE_ATTR(aenergy, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_LENERGY(_show, _addr)			\
	IIO_DEVICE_ATTR(lenergy, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_RAENERGY(_show, _addr)			\
	IIO_DEVICE_ATTR(raenergy, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_LAENERGY(_show, _addr)			\
	IIO_DEVICE_ATTR(laenergy, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_VAENERGY(_show, _addr)			\
	IIO_DEVICE_ATTR(vaenergy, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_LVAENERGY(_show, _addr)			\
	IIO_DEVICE_ATTR(lvaenergy, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_RVAENERGY(_show, _addr)			\
	IIO_DEVICE_ATTR(rvaenergy, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_LVARENERGY(_show, _addr)			\
	IIO_DEVICE_ATTR(lvarenergy, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_CHKSUM(_show, _addr)                       \
	IIO_DEVICE_ATTR(chksum, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_ANGLE0(_show, _addr)                       \
	IIO_DEVICE_ATTR(angle0, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_ANGLE1(_show, _addr)                       \
	IIO_DEVICE_ATTR(angle1, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_ANGLE2(_show, _addr)                       \
	IIO_DEVICE_ATTR(angle2, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_AWATTHR(_show, _addr)			\
	IIO_DEVICE_ATTR(awatthr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_BWATTHR(_show, _addr)			\
	IIO_DEVICE_ATTR(bwatthr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_CWATTHR(_show, _addr)			\
	IIO_DEVICE_ATTR(cwatthr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_AFWATTHR(_show, _addr)			\
	IIO_DEVICE_ATTR(afwatthr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_BFWATTHR(_show, _addr)			\
	IIO_DEVICE_ATTR(bfwatthr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_CFWATTHR(_show, _addr)			\
	IIO_DEVICE_ATTR(cfwatthr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_AVARHR(_show, _addr)			\
	IIO_DEVICE_ATTR(avarhr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_BVARHR(_show, _addr)			\
	IIO_DEVICE_ATTR(bvarhr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_CVARHR(_show, _addr)			\
	IIO_DEVICE_ATTR(cvarhr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_AVAHR(_show, _addr)			\
	IIO_DEVICE_ATTR(avahr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_BVAHR(_show, _addr)			\
	IIO_DEVICE_ATTR(bvahr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_CVAHR(_show, _addr)			\
	IIO_DEVICE_ATTR(cvahr, 0444, _show, NULL, _addr)

#define IIO_DEV_ATTR_IOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(ios, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(vos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_PHCAL(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(phcal, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_APHCAL(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(aphcal, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_BPHCAL(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(bphcal, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CPHCAL(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cphcal, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_APOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(apos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_AAPOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(aapos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_BAPOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(bapos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CAPOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(capos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_AVRMSGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(avrmsgain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_BVRMSGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(bvrmsgain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CVRMSGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cvrmsgain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_AIGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(aigain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_BIGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(bigain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CIGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cigain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_NIGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(nigain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_AVGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(avgain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_BVGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(bvgain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CVGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cvgain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_WGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(wgain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_WDIV(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(wdiv, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CFNUM(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cfnum, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CFDEN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cfden, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CF1DEN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cf1den, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CF2DEN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cf2den, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CF3DEN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cf3den, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_IRMS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(irms, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VRMS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(vrms, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_AIRMS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(airms, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_BIRMS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(birms, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CIRMS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cirms, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_NIRMS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(nirms, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_AVRMS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(avrms, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_BVRMS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(bvrms, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CVRMS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cvrms, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_IRMSOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(irmsos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VRMSOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(vrmsos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_AIRMSOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(airmsos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_BIRMSOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(birmsos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CIRMSOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cirmsos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_AVRMSOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(avrmsos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_BVRMSOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(bvrmsos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CVRMSOS(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cvrmsos, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VAGAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(vagain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_PGA_GAIN(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(pga_gain, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VADIV(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(vadiv, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_LINECYC(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(linecyc, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_SAGCYC(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(sagcyc, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CFCYC(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(cfcyc, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_PEAKCYC(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(peakcyc, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_SAGLVL(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(saglvl, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_IPKLVL(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(ipklvl, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VPKLVL(_mode, _show, _store, _addr)                \
	IIO_DEVICE_ATTR(vpklvl, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_IPEAK(_mode, _show, _store, _addr)			\
	IIO_DEVICE_ATTR(ipeak, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_RIPEAK(_mode, _show, _store, _addr)		\
	IIO_DEVICE_ATTR(ripeak, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VPEAK(_mode, _show, _store, _addr)			\
	IIO_DEVICE_ATTR(vpeak, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_RVPEAK(_mode, _show, _store, _addr)		\
	IIO_DEVICE_ATTR(rvpeak, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_VPERIOD(_mode, _show, _store, _addr)		\
	IIO_DEVICE_ATTR(vperiod, _mode, _show, _store, _addr)

#define IIO_DEV_ATTR_CH_OFF(_num, _mode, _show, _store, _addr)		\
	IIO_DEVICE_ATTR(choff_##_num, _mode, _show, _store, _addr)

/* active energy register, AENERGY, is more than half full */
#define IIO_EVENT_ATTR_AENERGY_HALF_FULL(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(aenergy_half_full, _evlist, _show, _store, _mask)

/* a SAG on the line voltage */
#define IIO_EVENT_ATTR_LINE_VOLT_SAG(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(line_volt_sag, _evlist, _show, _store, _mask)

/*
 * Indicates the end of energy accumulation over an integer number
 * of half line cycles
 */
#define IIO_EVENT_ATTR_CYCEND(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(cycend, _evlist, _show, _store, _mask)

/* on the rising and falling edge of the voltage waveform */
#define IIO_EVENT_ATTR_ZERO_CROSS(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(zero_cross, _evlist, _show, _store, _mask)

/* the active energy register has overflowed */
#define IIO_EVENT_ATTR_AENERGY_OVERFLOW(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(aenergy_overflow, _evlist, _show, _store, _mask)

/* the apparent energy register has overflowed */
#define IIO_EVENT_ATTR_VAENERGY_OVERFLOW(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(vaenergy_overflow, _evlist, _show, _store, _mask)

/* the active energy register, VAENERGY, is more than half full */
#define IIO_EVENT_ATTR_VAENERGY_HALF_FULL(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(vaenergy_half_full, _evlist, _show, _store, _mask)

/* the power has gone from negative to positive */
#define IIO_EVENT_ATTR_PPOS(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(ppos, _evlist, _show, _store, _mask)

/* the power has gone from positive to negative */
#define IIO_EVENT_ATTR_PNEG(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(pneg, _evlist, _show, _store, _mask)

/* waveform sample from Channel 1 has exceeded the IPKLVL value */
#define IIO_EVENT_ATTR_IPKLVL_EXC(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(ipklvl_exc, _evlist, _show, _store, _mask)

/* waveform sample from Channel 2 has exceeded the VPKLVL value */
#define IIO_EVENT_ATTR_VPKLVL_EXC(_evlist, _show, _store, _mask) \
	IIO_EVENT_ATTR_SH(vpklvl_exc, _evlist, _show, _store, _mask)

#endif /* _METER_H */