mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 03:10:30 -04:00
iio: backend: add API for interface get
Add backend support for obtaining the interface type used. Reviewed-by: Nuno Sa <nuno.sa@analog.com> Reviewed-by: David Lechner <dlechner@baylibre.com> Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com> Link: https://patch.msgid.link/20250214131955.31973-2-antoniu.miclaus@analog.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
committed by
Jonathan Cameron
parent
ac856912f2
commit
4018ab4263
@@ -636,6 +636,30 @@ ssize_t iio_backend_ext_info_set(struct iio_dev *indio_dev, uintptr_t private,
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(iio_backend_ext_info_set, "IIO_BACKEND");
|
||||
|
||||
/**
|
||||
* iio_backend_interface_type_get - get the interface type used.
|
||||
* @back: Backend device
|
||||
* @type: Interface type
|
||||
*
|
||||
* RETURNS:
|
||||
* 0 on success, negative error number on failure.
|
||||
*/
|
||||
int iio_backend_interface_type_get(struct iio_backend *back,
|
||||
enum iio_backend_interface_type *type)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = iio_backend_op_call(back, interface_type_get, type);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (*type >= IIO_BACKEND_INTERFACE_MAX)
|
||||
return -EINVAL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(iio_backend_interface_type_get, "IIO_BACKEND");
|
||||
|
||||
/**
|
||||
* iio_backend_extend_chan_spec - Extend an IIO channel
|
||||
* @back: Backend device
|
||||
|
||||
@@ -70,6 +70,12 @@ enum iio_backend_sample_trigger {
|
||||
IIO_BACKEND_SAMPLE_TRIGGER_MAX
|
||||
};
|
||||
|
||||
enum iio_backend_interface_type {
|
||||
IIO_BACKEND_INTERFACE_SERIAL_LVDS,
|
||||
IIO_BACKEND_INTERFACE_SERIAL_CMOS,
|
||||
IIO_BACKEND_INTERFACE_MAX
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iio_backend_ops - operations structure for an iio_backend
|
||||
* @enable: Enable backend.
|
||||
@@ -88,6 +94,7 @@ enum iio_backend_sample_trigger {
|
||||
* @extend_chan_spec: Extend an IIO channel.
|
||||
* @ext_info_set: Extended info setter.
|
||||
* @ext_info_get: Extended info getter.
|
||||
* @interface_type_get: Interface type.
|
||||
* @read_raw: Read a channel attribute from a backend device
|
||||
* @debugfs_print_chan_status: Print channel status into a buffer.
|
||||
* @debugfs_reg_access: Read or write register value of backend.
|
||||
@@ -128,6 +135,8 @@ struct iio_backend_ops {
|
||||
const char *buf, size_t len);
|
||||
int (*ext_info_get)(struct iio_backend *back, uintptr_t private,
|
||||
const struct iio_chan_spec *chan, char *buf);
|
||||
int (*interface_type_get)(struct iio_backend *back,
|
||||
enum iio_backend_interface_type *type);
|
||||
int (*read_raw)(struct iio_backend *back,
|
||||
struct iio_chan_spec const *chan, int *val, int *val2,
|
||||
long mask);
|
||||
@@ -186,6 +195,8 @@ ssize_t iio_backend_ext_info_set(struct iio_dev *indio_dev, uintptr_t private,
|
||||
const char *buf, size_t len);
|
||||
ssize_t iio_backend_ext_info_get(struct iio_dev *indio_dev, uintptr_t private,
|
||||
const struct iio_chan_spec *chan, char *buf);
|
||||
int iio_backend_interface_type_get(struct iio_backend *back,
|
||||
enum iio_backend_interface_type *type);
|
||||
int iio_backend_read_raw(struct iio_backend *back,
|
||||
struct iio_chan_spec const *chan, int *val, int *val2,
|
||||
long mask);
|
||||
|
||||
Reference in New Issue
Block a user