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) \
19 "in_"tag spacer name"_en", \
20 "in_"tag spacer name"_type", \
21 "in_"tag spacer name"_index", \
22 "in_"tag spacer name"_raw", \
23 "in_"tag spacer name"_input", \
24 "in_"tag spacer name"_scale", \
27 #define DECLARE_NAMED_CHANNEL(tag, name) DECLARE_CHANNEL(tag, "_", name)
29 #define DECLARE_GENERIC_CHANNEL(tag) DECLARE_CHANNEL(tag, "", "")
32 #define DECLARE_SENSOR0(tag, type) \
36 DECLARE_GENERIC_CHANNEL(tag) \
40 #define DECLARE_SENSOR1(tag, type, ch1) \
44 DECLARE_NAMED_CHANNEL(tag, ch1) \
48 #define DECLARE_SENSOR2(tag, type, ch1, ch2) \
52 DECLARE_NAMED_CHANNEL(tag, ch1) \
53 DECLARE_NAMED_CHANNEL(tag, ch2) \
57 #define DECLARE_SENSOR3(tag, type, ch1, ch2, ch3) \
61 DECLARE_NAMED_CHANNEL(tag, ch1) \
62 DECLARE_NAMED_CHANNEL(tag, ch2) \
63 DECLARE_NAMED_CHANNEL(tag, ch3) \
67 #define DECLARE_SENSOR4(tag, type, ch1, ch2, ch3, ch4) \
71 DECLARE_NAMED_CHANNEL(tag, ch1) \
72 DECLARE_NAMED_CHANNEL(tag, ch2) \
73 DECLARE_NAMED_CHANNEL(tag, ch3) \
74 DECLARE_NAMED_CHANNEL(tag, ch4) \
78 int get_sensors_list (struct sensors_module_t* module,
79 struct sensor_t const** list);
81 void enumerate_sensors (void);
82 void delete_enumeration_data (void);