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", \
23 "in_"tag spacer name"_scale", \
26 #define DECLARE_NAMED_CHANNEL(tag, name) DECLARE_CHANNEL(tag, "_", name)
28 #define DECLARE_GENERIC_CHANNEL(tag) DECLARE_CHANNEL(tag, "", "")
31 #define DECLARE_SENSOR0(tag, type) \
35 DECLARE_GENERIC_CHANNEL(tag) \
39 #define DECLARE_SENSOR1(tag, type, ch1) \
43 DECLARE_NAMED_CHANNEL(tag, ch1) \
47 #define DECLARE_SENSOR2(tag, type, ch1, ch2) \
51 DECLARE_NAMED_CHANNEL(tag, ch1) \
52 DECLARE_NAMED_CHANNEL(tag, ch2) \
56 #define DECLARE_SENSOR3(tag, type, ch1, ch2, ch3) \
60 DECLARE_NAMED_CHANNEL(tag, ch1) \
61 DECLARE_NAMED_CHANNEL(tag, ch2) \
62 DECLARE_NAMED_CHANNEL(tag, ch3) \
66 #define DECLARE_SENSOR4(tag, type, ch1, ch2, ch3, ch4) \
70 DECLARE_NAMED_CHANNEL(tag, ch1) \
71 DECLARE_NAMED_CHANNEL(tag, ch2) \
72 DECLARE_NAMED_CHANNEL(tag, ch3) \
73 DECLARE_NAMED_CHANNEL(tag, ch4) \
77 int get_sensors_list (struct sensors_module_t* module,
78 struct sensor_t const** list);
80 void enumerate_sensors (void);
81 void delete_enumeration_data (void);