blob: fe7ccbb811848f835f314abd623f4d2d15a8cf43 [file] [log] [blame]
Thomas Gleixnerd2912cb2019-06-04 10:11:33 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Jonathan Camerone27d75d2012-02-15 19:48:01 +00002/*
3 * Industrial I/O in kernel access map definitions for board files.
4 *
5 * Copyright (c) 2011 Jonathan Cameron
Jonathan Camerone27d75d2012-02-15 19:48:01 +00006 */
7
Lars-Peter Clausen08d60052012-08-17 16:57:00 +01008#ifndef __LINUX_IIO_MACHINE_H__
9#define __LINUX_IIO_MACHINE_H__
10
Jonathan Camerone27d75d2012-02-15 19:48:01 +000011/**
12 * struct iio_map - description of link between consumer and device channels
13 * @adc_channel_label: Label used to identify the channel on the provider.
14 * This is matched against the datasheet_name element
15 * of struct iio_chan_spec.
16 * @consumer_dev_name: Name to uniquely identify the consumer device.
Peter Meerwald33e0c242012-06-15 19:25:25 +020017 * @consumer_channel: Unique name used to identify the channel on the
Jonathan Camerone27d75d2012-02-15 19:48:01 +000018 * consumer side.
Jonathan Cameron04644152012-06-30 20:06:00 +010019 * @consumer_data: Data about the channel for use by the consumer driver.
Jonathan Camerone27d75d2012-02-15 19:48:01 +000020 */
21struct iio_map {
22 const char *adc_channel_label;
23 const char *consumer_dev_name;
24 const char *consumer_channel;
Jonathan Cameron04644152012-06-30 20:06:00 +010025 void *consumer_data;
Jonathan Camerone27d75d2012-02-15 19:48:01 +000026};
Lars-Peter Clausen08d60052012-08-17 16:57:00 +010027
Lukas Wunner8d05ffd2017-11-25 09:38:17 +010028#define IIO_MAP(_provider_channel, _consumer_dev_name, _consumer_channel) \
29{ \
30 .adc_channel_label = _provider_channel, \
31 .consumer_dev_name = _consumer_dev_name, \
32 .consumer_channel = _consumer_channel, \
33}
34
Lars-Peter Clausen08d60052012-08-17 16:57:00 +010035#endif