• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include <linux/android_kabi.h>
12 
13 /*
14  * enum IIO_ATTENTION is declared in `uapi/linux/iio/types.h` so we have to
15  * fudge CRCs here instead.
16  */
17 ANDROID_KABI_ENUMERATOR_IGNORE(iio_chan_type, IIO_ATTENTION);
18 
19 enum iio_event_info {
20 	IIO_EV_INFO_ENABLE,
21 	IIO_EV_INFO_VALUE,
22 	IIO_EV_INFO_HYSTERESIS,
23 	IIO_EV_INFO_PERIOD,
24 	IIO_EV_INFO_HIGH_PASS_FILTER_3DB,
25 	IIO_EV_INFO_LOW_PASS_FILTER_3DB,
26 	IIO_EV_INFO_TIMEOUT,
27 	IIO_EV_INFO_RESET_TIMEOUT,
28 	IIO_EV_INFO_TAP2_MIN_DELAY,
29 	IIO_EV_INFO_RUNNING_PERIOD,
30 	IIO_EV_INFO_RUNNING_COUNT,
31 };
32 
33 #define IIO_VAL_INT 1
34 #define IIO_VAL_INT_PLUS_MICRO 2
35 #define IIO_VAL_INT_PLUS_NANO 3
36 #define IIO_VAL_INT_PLUS_MICRO_DB 4
37 #define IIO_VAL_INT_MULTIPLE 5
38 #define IIO_VAL_INT_64 6 /* 64-bit data, val is lower 32 bits */
39 #define IIO_VAL_FRACTIONAL 10
40 #define IIO_VAL_FRACTIONAL_LOG2 11
41 #define IIO_VAL_CHAR 12
42 
43 enum iio_available_type {
44 	IIO_AVAIL_LIST,
45 	IIO_AVAIL_RANGE,
46 };
47 
48 enum iio_chan_info_enum {
49 	IIO_CHAN_INFO_RAW = 0,
50 	IIO_CHAN_INFO_PROCESSED,
51 	IIO_CHAN_INFO_SCALE,
52 	IIO_CHAN_INFO_OFFSET,
53 	IIO_CHAN_INFO_CALIBSCALE,
54 	IIO_CHAN_INFO_CALIBBIAS,
55 	IIO_CHAN_INFO_PEAK,
56 	IIO_CHAN_INFO_PEAK_SCALE,
57 	IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW,
58 	IIO_CHAN_INFO_AVERAGE_RAW,
59 	IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY,
60 	IIO_CHAN_INFO_HIGH_PASS_FILTER_3DB_FREQUENCY,
61 	IIO_CHAN_INFO_SAMP_FREQ,
62 	IIO_CHAN_INFO_FREQUENCY,
63 	IIO_CHAN_INFO_PHASE,
64 	IIO_CHAN_INFO_HARDWAREGAIN,
65 	IIO_CHAN_INFO_HYSTERESIS,
66 	IIO_CHAN_INFO_HYSTERESIS_RELATIVE,
67 	IIO_CHAN_INFO_INT_TIME,
68 	IIO_CHAN_INFO_ENABLE,
69 	IIO_CHAN_INFO_CALIBHEIGHT,
70 	IIO_CHAN_INFO_CALIBWEIGHT,
71 	IIO_CHAN_INFO_DEBOUNCE_COUNT,
72 	IIO_CHAN_INFO_DEBOUNCE_TIME,
73 	IIO_CHAN_INFO_CALIBEMISSIVITY,
74 	IIO_CHAN_INFO_OVERSAMPLING_RATIO,
75 	IIO_CHAN_INFO_THERMOCOUPLE_TYPE,
76 	IIO_CHAN_INFO_CALIBAMBIENT,
77 	IIO_CHAN_INFO_ZEROPOINT,
78 	IIO_CHAN_INFO_TROUGH,
79 };
80 
81 #endif /* _IIO_TYPES_H_ */
82