1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2  /* industrial I/O data types needed both in and out of kernel
3   *
4   * Copyright (c) 2008 Jonathan Cameron
5   *
6   * This program is free software; you can redistribute it and/or modify it
7   * under the terms of the GNU General Public License version 2 as published by
8   * the Free Software Foundation.
9   */
10  
11  #ifndef _UAPI_IIO_TYPES_H_
12  #define _UAPI_IIO_TYPES_H_
13  
14  enum iio_chan_type {
15  	IIO_VOLTAGE,
16  	IIO_CURRENT,
17  	IIO_POWER,
18  	IIO_ACCEL,
19  	IIO_ANGL_VEL,
20  	IIO_MAGN,
21  	IIO_LIGHT,
22  	IIO_INTENSITY,
23  	IIO_PROXIMITY,
24  	IIO_TEMP,
25  	IIO_INCLI,
26  	IIO_ROT,
27  	IIO_ANGL,
28  	IIO_TIMESTAMP,
29  	IIO_CAPACITANCE,
30  	IIO_ALTVOLTAGE,
31  	IIO_CCT,
32  	IIO_PRESSURE,
33  	IIO_HUMIDITYRELATIVE,
34  	IIO_ACTIVITY,
35  	IIO_STEPS,
36  	IIO_ENERGY,
37  	IIO_DISTANCE,
38  	IIO_VELOCITY,
39  	IIO_CONCENTRATION,
40  	IIO_RESISTANCE,
41  	IIO_PH,
42  	IIO_UVINDEX,
43  	IIO_ELECTRICALCONDUCTIVITY,
44  	IIO_COUNT,
45  	IIO_INDEX,
46  	IIO_GRAVITY,
47  	IIO_POSITIONRELATIVE,
48  	IIO_PHASE,
49  	IIO_MASSCONCENTRATION,
50  	IIO_DELTA_ANGL,
51  	IIO_DELTA_VELOCITY,
52  	IIO_COLORTEMP,
53  	IIO_CHROMATICITY,
54  };
55  
56  enum iio_modifier {
57  	IIO_NO_MOD,
58  	IIO_MOD_X,
59  	IIO_MOD_Y,
60  	IIO_MOD_Z,
61  	IIO_MOD_X_AND_Y,
62  	IIO_MOD_X_AND_Z,
63  	IIO_MOD_Y_AND_Z,
64  	IIO_MOD_X_AND_Y_AND_Z,
65  	IIO_MOD_X_OR_Y,
66  	IIO_MOD_X_OR_Z,
67  	IIO_MOD_Y_OR_Z,
68  	IIO_MOD_X_OR_Y_OR_Z,
69  	IIO_MOD_LIGHT_BOTH,
70  	IIO_MOD_LIGHT_IR,
71  	IIO_MOD_ROOT_SUM_SQUARED_X_Y,
72  	IIO_MOD_SUM_SQUARED_X_Y_Z,
73  	IIO_MOD_LIGHT_CLEAR,
74  	IIO_MOD_LIGHT_RED,
75  	IIO_MOD_LIGHT_GREEN,
76  	IIO_MOD_LIGHT_BLUE,
77  	IIO_MOD_QUATERNION,
78  	IIO_MOD_TEMP_AMBIENT,
79  	IIO_MOD_TEMP_OBJECT,
80  	IIO_MOD_NORTH_MAGN,
81  	IIO_MOD_NORTH_TRUE,
82  	IIO_MOD_NORTH_MAGN_TILT_COMP,
83  	IIO_MOD_NORTH_TRUE_TILT_COMP,
84  	IIO_MOD_RUNNING,
85  	IIO_MOD_JOGGING,
86  	IIO_MOD_WALKING,
87  	IIO_MOD_STILL,
88  	IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
89  	IIO_MOD_I,
90  	IIO_MOD_Q,
91  	IIO_MOD_CO2,
92  	IIO_MOD_VOC,
93  	IIO_MOD_LIGHT_UV,
94  	IIO_MOD_LIGHT_DUV,
95  	IIO_MOD_PM1,
96  	IIO_MOD_PM2P5,
97  	IIO_MOD_PM4,
98  	IIO_MOD_PM10,
99  	IIO_MOD_ETHANOL,
100  	IIO_MOD_H2,
101  	IIO_MOD_O2,
102  	IIO_MOD_LINEAR_X,
103  	IIO_MOD_LINEAR_Y,
104  	IIO_MOD_LINEAR_Z,
105  	IIO_MOD_PITCH,
106  	IIO_MOD_YAW,
107  	IIO_MOD_ROLL,
108  	IIO_MOD_LIGHT_UVA,
109  	IIO_MOD_LIGHT_UVB,
110  };
111  
112  enum iio_event_type {
113  	IIO_EV_TYPE_THRESH,
114  	IIO_EV_TYPE_MAG,
115  	IIO_EV_TYPE_ROC,
116  	IIO_EV_TYPE_THRESH_ADAPTIVE,
117  	IIO_EV_TYPE_MAG_ADAPTIVE,
118  	IIO_EV_TYPE_CHANGE,
119  	IIO_EV_TYPE_MAG_REFERENCED,
120  	IIO_EV_TYPE_GESTURE,
121  };
122  
123  enum iio_event_direction {
124  	IIO_EV_DIR_EITHER,
125  	IIO_EV_DIR_RISING,
126  	IIO_EV_DIR_FALLING,
127  	IIO_EV_DIR_NONE,
128  	IIO_EV_DIR_SINGLETAP,
129  	IIO_EV_DIR_DOUBLETAP,
130  };
131  
132  #endif /* _UAPI_IIO_TYPES_H_ */
133