xref: /linux-6.15/include/linux/iio/types.h (revision 6faeeea4)
1 /* industrial I/O data types needed both in and out of kernel
2  *
3  * Copyright (c) 2008 Jonathan Cameron
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 as published by
7  * the Free Software Foundation.
8  */
9 
10 #ifndef _IIO_TYPES_H_
11 #define _IIO_TYPES_H_
12 
13 enum iio_chan_type {
14 	IIO_VOLTAGE,
15 	IIO_CURRENT,
16 	IIO_POWER,
17 	IIO_ACCEL,
18 	IIO_ANGL_VEL,
19 	IIO_MAGN,
20 	IIO_LIGHT,
21 	IIO_INTENSITY,
22 	IIO_PROXIMITY,
23 	IIO_TEMP,
24 	IIO_INCLI,
25 	IIO_ROT,
26 	IIO_ANGL,
27 	IIO_TIMESTAMP,
28 	IIO_CAPACITANCE,
29 	IIO_ALTVOLTAGE,
30 	IIO_CCT,
31 	IIO_PRESSURE,
32 	IIO_HUMIDITYRELATIVE,
33 	IIO_ACTIVITY,
34 	IIO_STEPS,
35 	IIO_ENERGY,
36 	IIO_DISTANCE,
37 	IIO_VELOCITY,
38 };
39 
40 enum iio_modifier {
41 	IIO_NO_MOD,
42 	IIO_MOD_X,
43 	IIO_MOD_Y,
44 	IIO_MOD_Z,
45 	IIO_MOD_X_AND_Y,
46 	IIO_MOD_X_AND_Z,
47 	IIO_MOD_Y_AND_Z,
48 	IIO_MOD_X_AND_Y_AND_Z,
49 	IIO_MOD_X_OR_Y,
50 	IIO_MOD_X_OR_Z,
51 	IIO_MOD_Y_OR_Z,
52 	IIO_MOD_X_OR_Y_OR_Z,
53 	IIO_MOD_LIGHT_BOTH,
54 	IIO_MOD_LIGHT_IR,
55 	IIO_MOD_ROOT_SUM_SQUARED_X_Y,
56 	IIO_MOD_SUM_SQUARED_X_Y_Z,
57 	IIO_MOD_LIGHT_CLEAR,
58 	IIO_MOD_LIGHT_RED,
59 	IIO_MOD_LIGHT_GREEN,
60 	IIO_MOD_LIGHT_BLUE,
61 	IIO_MOD_QUATERNION,
62 	IIO_MOD_TEMP_AMBIENT,
63 	IIO_MOD_TEMP_OBJECT,
64 	IIO_MOD_NORTH_MAGN,
65 	IIO_MOD_NORTH_TRUE,
66 	IIO_MOD_NORTH_MAGN_TILT_COMP,
67 	IIO_MOD_NORTH_TRUE_TILT_COMP,
68 	IIO_MOD_RUNNING,
69 	IIO_MOD_JOGGING,
70 	IIO_MOD_WALKING,
71 	IIO_MOD_STILL,
72 	IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
73 };
74 
75 enum iio_event_type {
76 	IIO_EV_TYPE_THRESH,
77 	IIO_EV_TYPE_MAG,
78 	IIO_EV_TYPE_ROC,
79 	IIO_EV_TYPE_THRESH_ADAPTIVE,
80 	IIO_EV_TYPE_MAG_ADAPTIVE,
81 	IIO_EV_TYPE_CHANGE,
82 };
83 
84 enum iio_event_info {
85 	IIO_EV_INFO_ENABLE,
86 	IIO_EV_INFO_VALUE,
87 	IIO_EV_INFO_HYSTERESIS,
88 	IIO_EV_INFO_PERIOD,
89 };
90 
91 enum iio_event_direction {
92 	IIO_EV_DIR_EITHER,
93 	IIO_EV_DIR_RISING,
94 	IIO_EV_DIR_FALLING,
95 	IIO_EV_DIR_NONE,
96 };
97 
98 #define IIO_VAL_INT 1
99 #define IIO_VAL_INT_PLUS_MICRO 2
100 #define IIO_VAL_INT_PLUS_NANO 3
101 #define IIO_VAL_INT_PLUS_MICRO_DB 4
102 #define IIO_VAL_INT_MULTIPLE 5
103 #define IIO_VAL_FRACTIONAL 10
104 #define IIO_VAL_FRACTIONAL_LOG2 11
105 
106 #endif /* _IIO_TYPES_H_ */
107