• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _METER_H
2 #define _METER_H
3 
4 #include <linux/iio/sysfs.h>
5 
6 /* metering ic types of attribute */
7 
8 #define IIO_DEV_ATTR_CURRENT_A_OFFSET(_mode, _show, _store, _addr)	\
9 	IIO_DEVICE_ATTR(current_a_offset, _mode, _show, _store, _addr)
10 
11 #define IIO_DEV_ATTR_CURRENT_B_OFFSET(_mode, _show, _store, _addr)	\
12 	IIO_DEVICE_ATTR(current_b_offset, _mode, _show, _store, _addr)
13 
14 #define IIO_DEV_ATTR_CURRENT_C_OFFSET(_mode, _show, _store, _addr)	\
15 	IIO_DEVICE_ATTR(current_c_offset, _mode, _show, _store, _addr)
16 
17 #define IIO_DEV_ATTR_VOLT_A_OFFSET(_mode, _show, _store, _addr)      \
18 	IIO_DEVICE_ATTR(volt_a_offset, _mode, _show, _store, _addr)
19 
20 #define IIO_DEV_ATTR_VOLT_B_OFFSET(_mode, _show, _store, _addr)      \
21 	IIO_DEVICE_ATTR(volt_b_offset, _mode, _show, _store, _addr)
22 
23 #define IIO_DEV_ATTR_VOLT_C_OFFSET(_mode, _show, _store, _addr)      \
24 	IIO_DEVICE_ATTR(volt_c_offset, _mode, _show, _store, _addr)
25 
26 #define IIO_DEV_ATTR_REACTIVE_POWER_A_OFFSET(_mode, _show, _store, _addr)   \
27 	IIO_DEVICE_ATTR(reactive_power_a_offset, _mode, _show, _store, _addr)
28 
29 #define IIO_DEV_ATTR_REACTIVE_POWER_B_OFFSET(_mode, _show, _store, _addr)   \
30 	IIO_DEVICE_ATTR(reactive_power_b_offset, _mode, _show, _store, _addr)
31 
32 #define IIO_DEV_ATTR_REACTIVE_POWER_C_OFFSET(_mode, _show, _store, _addr)   \
33 	IIO_DEVICE_ATTR(reactive_power_c_offset, _mode, _show, _store, _addr)
34 
35 #define IIO_DEV_ATTR_ACTIVE_POWER_A_OFFSET(_mode, _show, _store, _addr)     \
36 	IIO_DEVICE_ATTR(active_power_a_offset, _mode, _show, _store, _addr)
37 
38 #define IIO_DEV_ATTR_ACTIVE_POWER_B_OFFSET(_mode, _show, _store, _addr)     \
39 	IIO_DEVICE_ATTR(active_power_b_offset, _mode, _show, _store, _addr)
40 
41 #define IIO_DEV_ATTR_ACTIVE_POWER_C_OFFSET(_mode, _show, _store, _addr)     \
42 	IIO_DEVICE_ATTR(active_power_c_offset, _mode, _show, _store, _addr)
43 
44 #define IIO_DEV_ATTR_CURRENT_A_GAIN(_mode, _show, _store, _addr)	\
45 	IIO_DEVICE_ATTR(current_a_gain, _mode, _show, _store, _addr)
46 
47 #define IIO_DEV_ATTR_CURRENT_B_GAIN(_mode, _show, _store, _addr)	\
48 	IIO_DEVICE_ATTR(current_b_gain, _mode, _show, _store, _addr)
49 
50 #define IIO_DEV_ATTR_CURRENT_C_GAIN(_mode, _show, _store, _addr)	\
51 	IIO_DEVICE_ATTR(current_c_gain, _mode, _show, _store, _addr)
52 
53 #define IIO_DEV_ATTR_APPARENT_POWER_A_GAIN(_mode, _show, _store, _addr)     \
54 	IIO_DEVICE_ATTR(apparent_power_a_gain, _mode, _show, _store, _addr)
55 
56 #define IIO_DEV_ATTR_APPARENT_POWER_B_GAIN(_mode, _show, _store, _addr)     \
57 	IIO_DEVICE_ATTR(apparent_power_b_gain, _mode, _show, _store, _addr)
58 
59 #define IIO_DEV_ATTR_APPARENT_POWER_C_GAIN(_mode, _show, _store, _addr)     \
60 	IIO_DEVICE_ATTR(apparent_power_c_gain, _mode, _show, _store, _addr)
61 
62 #define IIO_DEV_ATTR_ACTIVE_POWER_GAIN(_mode, _show, _store, _addr)     \
63 	IIO_DEVICE_ATTR(active_power_gain, _mode, _show, _store, _addr)
64 
65 #define IIO_DEV_ATTR_ACTIVE_POWER_A_GAIN(_mode, _show, _store, _addr)   \
66 	IIO_DEVICE_ATTR(active_power_a_gain, _mode, _show, _store, _addr)
67 
68 #define IIO_DEV_ATTR_ACTIVE_POWER_B_GAIN(_mode, _show, _store, _addr)   \
69 	IIO_DEVICE_ATTR(active_power_b_gain, _mode, _show, _store, _addr)
70 
71 #define IIO_DEV_ATTR_ACTIVE_POWER_C_GAIN(_mode, _show, _store, _addr)   \
72 	IIO_DEVICE_ATTR(active_power_c_gain, _mode, _show, _store, _addr)
73 
74 #define IIO_DEV_ATTR_REACTIVE_POWER_A_GAIN(_mode, _show, _store, _addr)     \
75 	IIO_DEVICE_ATTR(reactive_power_a_gain, _mode, _show, _store, _addr)
76 
77 #define IIO_DEV_ATTR_REACTIVE_POWER_B_GAIN(_mode, _show, _store, _addr)     \
78 	IIO_DEVICE_ATTR(reactive_power_b_gain, _mode, _show, _store, _addr)
79 
80 #define IIO_DEV_ATTR_REACTIVE_POWER_C_GAIN(_mode, _show, _store, _addr)     \
81 	IIO_DEVICE_ATTR(reactive_power_c_gain, _mode, _show, _store, _addr)
82 
83 #define IIO_DEV_ATTR_CURRENT_A(_show, _addr)			\
84 	IIO_DEVICE_ATTR(current_a, S_IRUGO, _show, NULL, _addr)
85 
86 #define IIO_DEV_ATTR_CURRENT_B(_show, _addr)			\
87 	IIO_DEVICE_ATTR(current_b, S_IRUGO, _show, NULL, _addr)
88 
89 #define IIO_DEV_ATTR_CURRENT_C(_show, _addr)			\
90 	IIO_DEVICE_ATTR(current_c, S_IRUGO, _show, NULL, _addr)
91 
92 #define IIO_DEV_ATTR_VOLT_A(_show, _addr)			\
93 	IIO_DEVICE_ATTR(volt_a, S_IRUGO, _show, NULL, _addr)
94 
95 #define IIO_DEV_ATTR_VOLT_B(_show, _addr)			\
96 	IIO_DEVICE_ATTR(volt_b, S_IRUGO, _show, NULL, _addr)
97 
98 #define IIO_DEV_ATTR_VOLT_C(_show, _addr)			\
99 	IIO_DEVICE_ATTR(volt_c, S_IRUGO, _show, NULL, _addr)
100 
101 #define IIO_DEV_ATTR_AENERGY(_show, _addr)			\
102 	IIO_DEVICE_ATTR(aenergy, S_IRUGO, _show, NULL, _addr)
103 
104 #define IIO_DEV_ATTR_LENERGY(_show, _addr)			\
105 	IIO_DEVICE_ATTR(lenergy, S_IRUGO, _show, NULL, _addr)
106 
107 #define IIO_DEV_ATTR_RAENERGY(_show, _addr)			\
108 	IIO_DEVICE_ATTR(raenergy, S_IRUGO, _show, NULL, _addr)
109 
110 #define IIO_DEV_ATTR_LAENERGY(_show, _addr)			\
111 	IIO_DEVICE_ATTR(laenergy, S_IRUGO, _show, NULL, _addr)
112 
113 #define IIO_DEV_ATTR_VAENERGY(_show, _addr)			\
114 	IIO_DEVICE_ATTR(vaenergy, S_IRUGO, _show, NULL, _addr)
115 
116 #define IIO_DEV_ATTR_LVAENERGY(_show, _addr)			\
117 	IIO_DEVICE_ATTR(lvaenergy, S_IRUGO, _show, NULL, _addr)
118 
119 #define IIO_DEV_ATTR_RVAENERGY(_show, _addr)			\
120 	IIO_DEVICE_ATTR(rvaenergy, S_IRUGO, _show, NULL, _addr)
121 
122 #define IIO_DEV_ATTR_LVARENERGY(_show, _addr)			\
123 	IIO_DEVICE_ATTR(lvarenergy, S_IRUGO, _show, NULL, _addr)
124 
125 #define IIO_DEV_ATTR_CHKSUM(_show, _addr)                       \
126 	IIO_DEVICE_ATTR(chksum, S_IRUGO, _show, NULL, _addr)
127 
128 #define IIO_DEV_ATTR_ANGLE0(_show, _addr)                       \
129 	IIO_DEVICE_ATTR(angle0, S_IRUGO, _show, NULL, _addr)
130 
131 #define IIO_DEV_ATTR_ANGLE1(_show, _addr)                       \
132 	IIO_DEVICE_ATTR(angle1, S_IRUGO, _show, NULL, _addr)
133 
134 #define IIO_DEV_ATTR_ANGLE2(_show, _addr)                       \
135 	IIO_DEVICE_ATTR(angle2, S_IRUGO, _show, NULL, _addr)
136 
137 #define IIO_DEV_ATTR_AWATTHR(_show, _addr)			\
138 	IIO_DEVICE_ATTR(awatthr, S_IRUGO, _show, NULL, _addr)
139 
140 #define IIO_DEV_ATTR_BWATTHR(_show, _addr)			\
141 	IIO_DEVICE_ATTR(bwatthr, S_IRUGO, _show, NULL, _addr)
142 
143 #define IIO_DEV_ATTR_CWATTHR(_show, _addr)			\
144 	IIO_DEVICE_ATTR(cwatthr, S_IRUGO, _show, NULL, _addr)
145 
146 #define IIO_DEV_ATTR_AFWATTHR(_show, _addr)			\
147 	IIO_DEVICE_ATTR(afwatthr, S_IRUGO, _show, NULL, _addr)
148 
149 #define IIO_DEV_ATTR_BFWATTHR(_show, _addr)			\
150 	IIO_DEVICE_ATTR(bfwatthr, S_IRUGO, _show, NULL, _addr)
151 
152 #define IIO_DEV_ATTR_CFWATTHR(_show, _addr)			\
153 	IIO_DEVICE_ATTR(cfwatthr, S_IRUGO, _show, NULL, _addr)
154 
155 #define IIO_DEV_ATTR_AVARHR(_show, _addr)			\
156 	IIO_DEVICE_ATTR(avarhr, S_IRUGO, _show, NULL, _addr)
157 
158 #define IIO_DEV_ATTR_BVARHR(_show, _addr)			\
159 	IIO_DEVICE_ATTR(bvarhr, S_IRUGO, _show, NULL, _addr)
160 
161 #define IIO_DEV_ATTR_CVARHR(_show, _addr)			\
162 	IIO_DEVICE_ATTR(cvarhr, S_IRUGO, _show, NULL, _addr)
163 
164 #define IIO_DEV_ATTR_AVAHR(_show, _addr)			\
165 	IIO_DEVICE_ATTR(avahr, S_IRUGO, _show, NULL, _addr)
166 
167 #define IIO_DEV_ATTR_BVAHR(_show, _addr)			\
168 	IIO_DEVICE_ATTR(bvahr, S_IRUGO, _show, NULL, _addr)
169 
170 #define IIO_DEV_ATTR_CVAHR(_show, _addr)			\
171 	IIO_DEVICE_ATTR(cvahr, S_IRUGO, _show, NULL, _addr)
172 
173 #define IIO_DEV_ATTR_IOS(_mode, _show, _store, _addr)                \
174 	IIO_DEVICE_ATTR(ios, _mode, _show, _store, _addr)
175 
176 #define IIO_DEV_ATTR_VOS(_mode, _show, _store, _addr)                \
177 	IIO_DEVICE_ATTR(vos, _mode, _show, _store, _addr)
178 
179 #define IIO_DEV_ATTR_PHCAL(_mode, _show, _store, _addr)                \
180 	IIO_DEVICE_ATTR(phcal, _mode, _show, _store, _addr)
181 
182 #define IIO_DEV_ATTR_APHCAL(_mode, _show, _store, _addr)                \
183 	IIO_DEVICE_ATTR(aphcal, _mode, _show, _store, _addr)
184 
185 #define IIO_DEV_ATTR_BPHCAL(_mode, _show, _store, _addr)                \
186 	IIO_DEVICE_ATTR(bphcal, _mode, _show, _store, _addr)
187 
188 #define IIO_DEV_ATTR_CPHCAL(_mode, _show, _store, _addr)                \
189 	IIO_DEVICE_ATTR(cphcal, _mode, _show, _store, _addr)
190 
191 #define IIO_DEV_ATTR_APOS(_mode, _show, _store, _addr)                \
192 	IIO_DEVICE_ATTR(apos, _mode, _show, _store, _addr)
193 
194 #define IIO_DEV_ATTR_AAPOS(_mode, _show, _store, _addr)                \
195 	IIO_DEVICE_ATTR(aapos, _mode, _show, _store, _addr)
196 
197 #define IIO_DEV_ATTR_BAPOS(_mode, _show, _store, _addr)                \
198 	IIO_DEVICE_ATTR(bapos, _mode, _show, _store, _addr)
199 
200 #define IIO_DEV_ATTR_CAPOS(_mode, _show, _store, _addr)                \
201 	IIO_DEVICE_ATTR(capos, _mode, _show, _store, _addr)
202 
203 #define IIO_DEV_ATTR_AVRMSGAIN(_mode, _show, _store, _addr)                \
204 	IIO_DEVICE_ATTR(avrmsgain, _mode, _show, _store, _addr)
205 
206 #define IIO_DEV_ATTR_BVRMSGAIN(_mode, _show, _store, _addr)                \
207 	IIO_DEVICE_ATTR(bvrmsgain, _mode, _show, _store, _addr)
208 
209 #define IIO_DEV_ATTR_CVRMSGAIN(_mode, _show, _store, _addr)                \
210 	IIO_DEVICE_ATTR(cvrmsgain, _mode, _show, _store, _addr)
211 
212 #define IIO_DEV_ATTR_AIGAIN(_mode, _show, _store, _addr)                \
213 	IIO_DEVICE_ATTR(aigain, _mode, _show, _store, _addr)
214 
215 #define IIO_DEV_ATTR_BIGAIN(_mode, _show, _store, _addr)                \
216 	IIO_DEVICE_ATTR(bigain, _mode, _show, _store, _addr)
217 
218 #define IIO_DEV_ATTR_CIGAIN(_mode, _show, _store, _addr)                \
219 	IIO_DEVICE_ATTR(cigain, _mode, _show, _store, _addr)
220 
221 #define IIO_DEV_ATTR_NIGAIN(_mode, _show, _store, _addr)                \
222 	IIO_DEVICE_ATTR(nigain, _mode, _show, _store, _addr)
223 
224 #define IIO_DEV_ATTR_AVGAIN(_mode, _show, _store, _addr)                \
225 	IIO_DEVICE_ATTR(avgain, _mode, _show, _store, _addr)
226 
227 #define IIO_DEV_ATTR_BVGAIN(_mode, _show, _store, _addr)                \
228 	IIO_DEVICE_ATTR(bvgain, _mode, _show, _store, _addr)
229 
230 #define IIO_DEV_ATTR_CVGAIN(_mode, _show, _store, _addr)                \
231 	IIO_DEVICE_ATTR(cvgain, _mode, _show, _store, _addr)
232 
233 #define IIO_DEV_ATTR_WGAIN(_mode, _show, _store, _addr)                \
234 	IIO_DEVICE_ATTR(wgain, _mode, _show, _store, _addr)
235 
236 #define IIO_DEV_ATTR_WDIV(_mode, _show, _store, _addr)                \
237 	IIO_DEVICE_ATTR(wdiv, _mode, _show, _store, _addr)
238 
239 #define IIO_DEV_ATTR_CFNUM(_mode, _show, _store, _addr)                \
240 	IIO_DEVICE_ATTR(cfnum, _mode, _show, _store, _addr)
241 
242 #define IIO_DEV_ATTR_CFDEN(_mode, _show, _store, _addr)                \
243 	IIO_DEVICE_ATTR(cfden, _mode, _show, _store, _addr)
244 
245 #define IIO_DEV_ATTR_CF1DEN(_mode, _show, _store, _addr)                \
246 	IIO_DEVICE_ATTR(cf1den, _mode, _show, _store, _addr)
247 
248 #define IIO_DEV_ATTR_CF2DEN(_mode, _show, _store, _addr)                \
249 	IIO_DEVICE_ATTR(cf2den, _mode, _show, _store, _addr)
250 
251 #define IIO_DEV_ATTR_CF3DEN(_mode, _show, _store, _addr)                \
252 	IIO_DEVICE_ATTR(cf3den, _mode, _show, _store, _addr)
253 
254 #define IIO_DEV_ATTR_IRMS(_mode, _show, _store, _addr)                \
255 	IIO_DEVICE_ATTR(irms, _mode, _show, _store, _addr)
256 
257 #define IIO_DEV_ATTR_VRMS(_mode, _show, _store, _addr)                \
258 	IIO_DEVICE_ATTR(vrms, _mode, _show, _store, _addr)
259 
260 #define IIO_DEV_ATTR_AIRMS(_mode, _show, _store, _addr)                \
261 	IIO_DEVICE_ATTR(airms, _mode, _show, _store, _addr)
262 
263 #define IIO_DEV_ATTR_BIRMS(_mode, _show, _store, _addr)                \
264 	IIO_DEVICE_ATTR(birms, _mode, _show, _store, _addr)
265 
266 #define IIO_DEV_ATTR_CIRMS(_mode, _show, _store, _addr)                \
267 	IIO_DEVICE_ATTR(cirms, _mode, _show, _store, _addr)
268 
269 #define IIO_DEV_ATTR_NIRMS(_mode, _show, _store, _addr)                \
270 	IIO_DEVICE_ATTR(nirms, _mode, _show, _store, _addr)
271 
272 #define IIO_DEV_ATTR_AVRMS(_mode, _show, _store, _addr)                \
273 	IIO_DEVICE_ATTR(avrms, _mode, _show, _store, _addr)
274 
275 #define IIO_DEV_ATTR_BVRMS(_mode, _show, _store, _addr)                \
276 	IIO_DEVICE_ATTR(bvrms, _mode, _show, _store, _addr)
277 
278 #define IIO_DEV_ATTR_CVRMS(_mode, _show, _store, _addr)                \
279 	IIO_DEVICE_ATTR(cvrms, _mode, _show, _store, _addr)
280 
281 #define IIO_DEV_ATTR_IRMSOS(_mode, _show, _store, _addr)                \
282 	IIO_DEVICE_ATTR(irmsos, _mode, _show, _store, _addr)
283 
284 #define IIO_DEV_ATTR_VRMSOS(_mode, _show, _store, _addr)                \
285 	IIO_DEVICE_ATTR(vrmsos, _mode, _show, _store, _addr)
286 
287 #define IIO_DEV_ATTR_AIRMSOS(_mode, _show, _store, _addr)                \
288 	IIO_DEVICE_ATTR(airmsos, _mode, _show, _store, _addr)
289 
290 #define IIO_DEV_ATTR_BIRMSOS(_mode, _show, _store, _addr)                \
291 	IIO_DEVICE_ATTR(birmsos, _mode, _show, _store, _addr)
292 
293 #define IIO_DEV_ATTR_CIRMSOS(_mode, _show, _store, _addr)                \
294 	IIO_DEVICE_ATTR(cirmsos, _mode, _show, _store, _addr)
295 
296 #define IIO_DEV_ATTR_AVRMSOS(_mode, _show, _store, _addr)                \
297 	IIO_DEVICE_ATTR(avrmsos, _mode, _show, _store, _addr)
298 
299 #define IIO_DEV_ATTR_BVRMSOS(_mode, _show, _store, _addr)                \
300 	IIO_DEVICE_ATTR(bvrmsos, _mode, _show, _store, _addr)
301 
302 #define IIO_DEV_ATTR_CVRMSOS(_mode, _show, _store, _addr)                \
303 	IIO_DEVICE_ATTR(cvrmsos, _mode, _show, _store, _addr)
304 
305 #define IIO_DEV_ATTR_VAGAIN(_mode, _show, _store, _addr)                \
306 	IIO_DEVICE_ATTR(vagain, _mode, _show, _store, _addr)
307 
308 #define IIO_DEV_ATTR_PGA_GAIN(_mode, _show, _store, _addr)                \
309 	IIO_DEVICE_ATTR(pga_gain, _mode, _show, _store, _addr)
310 
311 #define IIO_DEV_ATTR_VADIV(_mode, _show, _store, _addr)                \
312 	IIO_DEVICE_ATTR(vadiv, _mode, _show, _store, _addr)
313 
314 #define IIO_DEV_ATTR_LINECYC(_mode, _show, _store, _addr)                \
315 	IIO_DEVICE_ATTR(linecyc, _mode, _show, _store, _addr)
316 
317 #define IIO_DEV_ATTR_SAGCYC(_mode, _show, _store, _addr)                \
318 	IIO_DEVICE_ATTR(sagcyc, _mode, _show, _store, _addr)
319 
320 #define IIO_DEV_ATTR_CFCYC(_mode, _show, _store, _addr)                \
321 	IIO_DEVICE_ATTR(cfcyc, _mode, _show, _store, _addr)
322 
323 #define IIO_DEV_ATTR_PEAKCYC(_mode, _show, _store, _addr)                \
324 	IIO_DEVICE_ATTR(peakcyc, _mode, _show, _store, _addr)
325 
326 #define IIO_DEV_ATTR_SAGLVL(_mode, _show, _store, _addr)                \
327 	IIO_DEVICE_ATTR(saglvl, _mode, _show, _store, _addr)
328 
329 #define IIO_DEV_ATTR_IPKLVL(_mode, _show, _store, _addr)                \
330 	IIO_DEVICE_ATTR(ipklvl, _mode, _show, _store, _addr)
331 
332 #define IIO_DEV_ATTR_VPKLVL(_mode, _show, _store, _addr)                \
333 	IIO_DEVICE_ATTR(vpklvl, _mode, _show, _store, _addr)
334 
335 #define IIO_DEV_ATTR_IPEAK(_mode, _show, _store, _addr)			\
336 	IIO_DEVICE_ATTR(ipeak, _mode, _show, _store, _addr)
337 
338 #define IIO_DEV_ATTR_RIPEAK(_mode, _show, _store, _addr)		\
339 	IIO_DEVICE_ATTR(ripeak, _mode, _show, _store, _addr)
340 
341 #define IIO_DEV_ATTR_VPEAK(_mode, _show, _store, _addr)			\
342 	IIO_DEVICE_ATTR(vpeak, _mode, _show, _store, _addr)
343 
344 #define IIO_DEV_ATTR_RVPEAK(_mode, _show, _store, _addr)		\
345 	IIO_DEVICE_ATTR(rvpeak, _mode, _show, _store, _addr)
346 
347 #define IIO_DEV_ATTR_VPERIOD(_mode, _show, _store, _addr)		\
348 	IIO_DEVICE_ATTR(vperiod, _mode, _show, _store, _addr)
349 
350 #define IIO_DEV_ATTR_CH_OFF(_num, _mode, _show, _store, _addr)		\
351 	IIO_DEVICE_ATTR(choff_##_num, _mode, _show, _store, _addr)
352 
353 /* active energy register, AENERGY, is more than half full */
354 #define IIO_EVENT_ATTR_AENERGY_HALF_FULL(_evlist, _show, _store, _mask) \
355 	IIO_EVENT_ATTR_SH(aenergy_half_full, _evlist, _show, _store, _mask)
356 
357 /* a SAG on the line voltage */
358 #define IIO_EVENT_ATTR_LINE_VOLT_SAG(_evlist, _show, _store, _mask) \
359 	IIO_EVENT_ATTR_SH(line_volt_sag, _evlist, _show, _store, _mask)
360 
361 /*
362  * Indicates the end of energy accumulation over an integer number
363  * of half line cycles
364  */
365 #define IIO_EVENT_ATTR_CYCEND(_evlist, _show, _store, _mask) \
366 	IIO_EVENT_ATTR_SH(cycend, _evlist, _show, _store, _mask)
367 
368 /* on the rising and falling edge of the voltage waveform */
369 #define IIO_EVENT_ATTR_ZERO_CROSS(_evlist, _show, _store, _mask) \
370 	IIO_EVENT_ATTR_SH(zero_cross, _evlist, _show, _store, _mask)
371 
372 /* the active energy register has overflowed */
373 #define IIO_EVENT_ATTR_AENERGY_OVERFLOW(_evlist, _show, _store, _mask) \
374 	IIO_EVENT_ATTR_SH(aenergy_overflow, _evlist, _show, _store, _mask)
375 
376 /* the apparent energy register has overflowed */
377 #define IIO_EVENT_ATTR_VAENERGY_OVERFLOW(_evlist, _show, _store, _mask) \
378 	IIO_EVENT_ATTR_SH(vaenergy_overflow, _evlist, _show, _store, _mask)
379 
380 /* the active energy register, VAENERGY, is more than half full */
381 #define IIO_EVENT_ATTR_VAENERGY_HALF_FULL(_evlist, _show, _store, _mask) \
382 	IIO_EVENT_ATTR_SH(vaenergy_half_full, _evlist, _show, _store, _mask)
383 
384 /* the power has gone from negative to positive */
385 #define IIO_EVENT_ATTR_PPOS(_evlist, _show, _store, _mask) \
386 	IIO_EVENT_ATTR_SH(ppos, _evlist, _show, _store, _mask)
387 
388 /* the power has gone from positive to negative */
389 #define IIO_EVENT_ATTR_PNEG(_evlist, _show, _store, _mask) \
390 	IIO_EVENT_ATTR_SH(pneg, _evlist, _show, _store, _mask)
391 
392 /* waveform sample from Channel 1 has exceeded the IPKLVL value */
393 #define IIO_EVENT_ATTR_IPKLVL_EXC(_evlist, _show, _store, _mask) \
394 	IIO_EVENT_ATTR_SH(ipklvl_exc, _evlist, _show, _store, _mask)
395 
396 /* waveform sample from Channel 2 has exceeded the VPKLVL value */
397 #define IIO_EVENT_ATTR_VPKLVL_EXC(_evlist, _show, _store, _mask) \
398 	IIO_EVENT_ATTR_SH(vpklvl_exc, _evlist, _show, _store, _mask)
399 
400 #endif /* _METER_H */
401