1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* industrial I/O data types needed both in and out of kernel
3  *
4  * Copyright (c) 2008 Jonathan Cameron
5  */
6 
7 #ifndef _IIO_TYPES_H_
8 #define _IIO_TYPES_H_
9 
10 #include <uapi/linux/iio/types.h>
11 
12 enum iio_event_info {
13 	IIO_EV_INFO_ENABLE,
14 	IIO_EV_INFO_VALUE,
15 	IIO_EV_INFO_HYSTERESIS,
16 	IIO_EV_INFO_PERIOD,
17 	IIO_EV_INFO_HIGH_PASS_FILTER_3DB,
18 	IIO_EV_INFO_LOW_PASS_FILTER_3DB,
19 	IIO_EV_INFO_TIMEOUT,
20 };
21 
22 #define IIO_VAL_INT 1
23 #define IIO_VAL_INT_PLUS_MICRO 2
24 #define IIO_VAL_INT_PLUS_NANO 3
25 #define IIO_VAL_INT_PLUS_MICRO_DB 4
26 #define IIO_VAL_INT_MULTIPLE 5
27 #define IIO_VAL_INT_64 6 /* 64-bit data, val is lower 32 bits */
28 #define IIO_VAL_FRACTIONAL 10
29 #define IIO_VAL_FRACTIONAL_LOG2 11
30 #define IIO_VAL_CHAR 12
31 
32 enum iio_available_type {
33 	IIO_AVAIL_LIST,
34 	IIO_AVAIL_RANGE,
35 };
36 
37 enum iio_chan_info_enum {
38 	IIO_CHAN_INFO_RAW = 0,
39 	IIO_CHAN_INFO_PROCESSED,
40 	IIO_CHAN_INFO_SCALE,
41 	IIO_CHAN_INFO_OFFSET,
42 	IIO_CHAN_INFO_CALIBSCALE,
43 	IIO_CHAN_INFO_CALIBBIAS,
44 	IIO_CHAN_INFO_PEAK,
45 	IIO_CHAN_INFO_PEAK_SCALE,
46 	IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW,
47 	IIO_CHAN_INFO_AVERAGE_RAW,
48 	IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY,
49 	IIO_CHAN_INFO_HIGH_PASS_FILTER_3DB_FREQUENCY,
50 	IIO_CHAN_INFO_SAMP_FREQ,
51 	IIO_CHAN_INFO_FREQUENCY,
52 	IIO_CHAN_INFO_PHASE,
53 	IIO_CHAN_INFO_HARDWAREGAIN,
54 	IIO_CHAN_INFO_HYSTERESIS,
55 	IIO_CHAN_INFO_HYSTERESIS_RELATIVE,
56 	IIO_CHAN_INFO_INT_TIME,
57 	IIO_CHAN_INFO_ENABLE,
58 	IIO_CHAN_INFO_CALIBHEIGHT,
59 	IIO_CHAN_INFO_CALIBWEIGHT,
60 	IIO_CHAN_INFO_DEBOUNCE_COUNT,
61 	IIO_CHAN_INFO_DEBOUNCE_TIME,
62 	IIO_CHAN_INFO_CALIBEMISSIVITY,
63 	IIO_CHAN_INFO_OVERSAMPLING_RATIO,
64 	IIO_CHAN_INFO_THERMOCOUPLE_TYPE,
65 	IIO_CHAN_INFO_CALIBAMBIENT,
66 };
67 
68 #endif /* _IIO_TYPES_H_ */
69