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.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/iio/iio.h
Detected Declarations
struct iio_chan_specstruct fwnode_handlestruct iio_backendstruct devicestruct iio_devstruct iio_backend_data_fmtstruct iio_backend_opsstruct iio_backend_infoenum iio_backend_data_typeenum iio_backend_data_sourceenum iio_backend_test_patternenum iio_backend_sample_triggerenum iio_backend_interface_typeenum iio_backend_filter_typeenum iio_backend_capabilitiesfunction iio_backend_read_scalefunction iio_backend_read_offset
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
- Immediate include surface: `linux/types.h`, `linux/iio/iio.h`.
- Detected declarations: `struct iio_chan_spec`, `struct fwnode_handle`, `struct iio_backend`, `struct device`, `struct iio_dev`, `struct iio_backend_data_fmt`, `struct iio_backend_ops`, `struct iio_backend_info`, `enum iio_backend_data_type`, `enum iio_backend_data_source`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.