1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * Industrial I/O in kernel access map interface. |
4 | * |
5 | * Copyright (c) 2011 Jonathan Cameron |
6 | */ |
7 | |
8 | #ifndef _IIO_INKERN_H_ |
9 | #define _IIO_INKERN_H_ |
10 | |
11 | struct device; |
12 | struct iio_dev; |
13 | struct iio_map; |
14 | |
15 | /** |
16 | * iio_map_array_register() - tell the core about inkernel consumers |
17 | * @indio_dev: provider device |
18 | * @map: array of mappings specifying association of channel with client |
19 | */ |
20 | int iio_map_array_register(struct iio_dev *indio_dev, |
21 | struct iio_map *map); |
22 | |
23 | /** |
24 | * iio_map_array_unregister() - tell the core to remove consumer mappings for |
25 | * the given provider device |
26 | * @indio_dev: provider device |
27 | */ |
28 | int iio_map_array_unregister(struct iio_dev *indio_dev); |
29 | |
30 | /** |
31 | * devm_iio_map_array_register - device-managed version of iio_map_array_register |
32 | * @dev: Device object to which to bind the unwinding of this registration |
33 | * @indio_dev: Pointer to the iio_dev structure |
34 | * @maps: Pointer to an IIO map object which is to be registered to this IIO device |
35 | * |
36 | * This function will call iio_map_array_register() to register an IIO map object |
37 | * and will also hook a callback to the iio_map_array_unregister() function to |
38 | * handle de-registration of the IIO map object when the device's refcount goes to |
39 | * zero. |
40 | */ |
41 | int devm_iio_map_array_register(struct device *dev, struct iio_dev *indio_dev, struct iio_map *maps); |
42 | |
43 | #endif |
44 | |