include/linux/iio/backend.h

Source file repositories/reference/linux-study-clean/include/linux/iio/backend.h

File Facts

System
Linux kernel
Corpus path
include/linux/iio/backend.h
Extension
.h
Size
11669 bytes
Lines
295
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct iio_backend_data_fmt {
	enum iio_backend_data_type type;
	bool sign_extend;
	bool enable;
};

/* vendor specific from 32 */
enum iio_backend_test_pattern {
	IIO_BACKEND_NO_TEST_PATTERN,
	/* modified prbs9 */
	IIO_BACKEND_ADI_PRBS_9A = 32,
	/* modified prbs23 */
	IIO_BACKEND_ADI_PRBS_23A,
	IIO_BACKEND_TEST_PATTERN_MAX
};

enum iio_backend_sample_trigger {
	IIO_BACKEND_SAMPLE_TRIGGER_EDGE_FALLING,
	IIO_BACKEND_SAMPLE_TRIGGER_EDGE_RISING,
	IIO_BACKEND_SAMPLE_TRIGGER_MAX
};

enum iio_backend_interface_type {
	IIO_BACKEND_INTERFACE_SERIAL_LVDS,
	IIO_BACKEND_INTERFACE_SERIAL_CMOS,
	IIO_BACKEND_INTERFACE_MAX
};

enum iio_backend_filter_type {
	IIO_BACKEND_FILTER_TYPE_DISABLED,
	IIO_BACKEND_FILTER_TYPE_SINC1,
	IIO_BACKEND_FILTER_TYPE_SINC5,
	IIO_BACKEND_FILTER_TYPE_SINC5_PLUS_COMP,
	IIO_BACKEND_FILTER_TYPE_MAX
};

/**
 * enum iio_backend_capabilities - Backend capabilities
 * Backend capabilities can be used by frontends to check if a given
 * functionality is supported by the backend. This is useful for frontend
 * devices which are expected to work with alternative backend
 * implementations. Capabilities are loosely coupled with operations,
 * meaning that a capability requires certain operations to be implemented
 * by the backend. A capability might be mapped to a single operation or
 * multiple operations.
 *
 * @IIO_BACKEND_CAP_CALIBRATION: Backend supports digital interface
 * calibration. Calibration procedure is device specific.
 * @IIO_BACKEND_CAP_BUFFER: Support for IIO buffer interface.
 * @IIO_BACKEND_CAP_ENABLE: Backend can be explicitly enabled/disabled.
 */
enum iio_backend_capabilities {
	IIO_BACKEND_CAP_CALIBRATION = BIT(0),
	IIO_BACKEND_CAP_BUFFER = BIT(1),
	IIO_BACKEND_CAP_ENABLE = BIT(2),
};

/**
 * struct iio_backend_ops - operations structure for an iio_backend
 * @enable: Enable backend.
 * @disable: Disable backend.
 * @chan_enable: Enable one channel.
 * @chan_disable: Disable one channel.
 * @data_format_set: Configure the data format for a specific channel.
 * @data_source_set: Configure the data source for a specific channel.
 * @data_source_get: Data source getter for a specific channel.
 * @set_sample_rate: Configure the sampling rate for a specific channel.
 * @test_pattern_set: Configure a test pattern.
 * @chan_status: Get the channel status.
 * @iodelay_set: Set digital I/O delay.
 * @data_sample_trigger: Control when to sample data.
 * @request_buffer: Request an IIO buffer.
 * @free_buffer: Free an IIO buffer.
 * @extend_chan_spec: Extend an IIO channel.
 * @ext_info_set: Extended info setter.
 * @ext_info_get: Extended info getter.
 * @interface_type_get: Interface type.
 * @data_size_set: Data size.
 * @oversampling_ratio_set: Set Oversampling ratio.
 * @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.
 * @filter_type_set: Set filter type.
 * @interface_data_align: Perform the data alignment process.
 * @num_lanes_set: Set the number of lanes enabled.
 * @ddr_enable: Enable interface DDR (Double Data Rate) mode.
 * @ddr_disable: Disable interface DDR (Double Data Rate) mode.
 * @data_stream_enable: Enable data stream.
 * @data_stream_disable: Disable data stream.
 * @data_transfer_addr: Set data address.

Annotation

Implementation Notes