1 /*
2  * Industrial I/O in kernel access map definitions for board files.
3  *
4  * Copyright (c) 2011 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 __LINUX_IIO_MACHINE_H__
12 #define __LINUX_IIO_MACHINE_H__
13 
14 /**
15  * struct iio_map - description of link between consumer and device channels
16  * @adc_channel_label:	Label used to identify the channel on the provider.
17  *			This is matched against the datasheet_name element
18  *			of struct iio_chan_spec.
19  * @consumer_dev_name:	Name to uniquely identify the consumer device.
20  * @consumer_channel:	Unique name used to identify the channel on the
21  *			consumer side.
22  * @consumer_data:	Data about the channel for use by the consumer driver.
23  */
24 struct iio_map {
25 	const char *adc_channel_label;
26 	const char *consumer_dev_name;
27 	const char *consumer_channel;
28 	void *consumer_data;
29 };
30 
31 #define IIO_MAP(_provider_channel, _consumer_dev_name, _consumer_channel) \
32 {									  \
33 	.adc_channel_label = _provider_channel,				  \
34 	.consumer_dev_name = _consumer_dev_name,			  \
35 	.consumer_channel  = _consumer_channel,				  \
36 }
37 
38 #endif
39