2 * Copyright (C) 2014 Intel Corporation.
5 #ifndef __ENUMERATION_H__
6 #define __ENUMERATION_H__
11 * Macros associating iio sysfs entries to to sensor types ; see
12 * linux/kernel/drivers/iio/industrialio-core.c and
13 * hardware/libhardware/include/hardware/sensor.h
16 #define DECLARE_CHANNEL(tag, spacer, name) \
18 "in_"tag spacer name"_en", \
19 "in_"tag spacer name"_type", \
20 "in_"tag spacer name"_index", \
21 "in_"tag spacer name"_raw", \
22 "in_"tag spacer name"_input", \
25 #define DECLARE_NAMED_CHANNEL(tag, name) DECLARE_CHANNEL(tag, "_", name)
27 #define DECLARE_GENERIC_CHANNEL(tag) DECLARE_CHANNEL(tag, "", "")
30 #define DECLARE_SENSOR0(tag, type) \
34 DECLARE_GENERIC_CHANNEL(tag) \
38 #define DECLARE_SENSOR1(tag, type, ch1) \
42 DECLARE_NAMED_CHANNEL(tag, ch1) \
46 #define DECLARE_SENSOR2(tag, type, ch1, ch2) \
50 DECLARE_NAMED_CHANNEL(tag, ch1) \
51 DECLARE_NAMED_CHANNEL(tag, ch2) \
55 #define DECLARE_SENSOR3(tag, type, ch1, ch2, ch3) \
59 DECLARE_NAMED_CHANNEL(tag, ch1) \
60 DECLARE_NAMED_CHANNEL(tag, ch2) \
61 DECLARE_NAMED_CHANNEL(tag, ch3) \
65 #define DECLARE_SENSOR4(tag, type, ch1, ch2, ch3, ch4) \
69 DECLARE_NAMED_CHANNEL(tag, ch1) \
70 DECLARE_NAMED_CHANNEL(tag, ch2) \
71 DECLARE_NAMED_CHANNEL(tag, ch3) \
72 DECLARE_NAMED_CHANNEL(tag, ch4) \
76 int get_sensors_list (struct sensors_module_t* module,
77 struct sensor_t const** list);
79 void enumerate_sensors (void);
80 void delete_enumeration_data (void);