&sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget'/translations/zh_CN/driver-api/iio/coremodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/zh_TW/driver-api/iio/coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/it_IT/driver-api/iio/coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ja_JP/driver-api/iio/coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ko_KR/driver-api/iio/coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/sp_SP/driver-api/iio/coremodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h Core elementsh]h Core elements}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhA/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core.rsthKubh paragraph)}(hX The Industrial I/O core offers both a unified framework for writing drivers for many different types of embedded sensors and a standard interface to user space applications manipulating sensors. The implementation can be found under :file:`drivers/iio/industrialio-*`h](hThe Industrial I/O core offers both a unified framework for writing drivers for many different types of embedded sensors and a standard interface to user space applications manipulating sensors. The implementation can be found under }(hhhhhNhNubhliteral)}(h":file:`drivers/iio/industrialio-*`h]hdrivers/iio/industrialio-*}(hhhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hIndustrial I/O Devicesh]hIndustrial I/O Devices}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh bullet_list)}(hhh](h list_item)}(h&struct iio_dev - industrial I/O deviceh]h)}(hhh]h&struct iio_dev - industrial I/O device}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(h@iio_device_alloc() - allocate an :c:type:`iio_dev` from a driverh]h)}(hj h](h!iio_device_alloc() - allocate an }(hj hhhNhNubh)}(h:c:type:`iio_dev`h]h)}(hjh]hiio_dev}(hjhhhNhNubah}(h]h ](xrefcc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocdriver-api/iio/core refdomainj#reftypetype refexplicitrefwarn reftargetiio_devuh1hhhhKhj ubh from a driver}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(h;iio_device_free() - free an :c:type:`iio_dev` from a driverh]h)}(hjIh](hiio_device_free() - free an }(hjKhhhNhNubh)}(h:c:type:`iio_dev`h]h)}(hjTh]hiio_dev}(hjVhhhNhNubah}(h]h ](j"j#c-typeeh"]h$]h&]uh1hhjRubah}(h]h ]h"]h$]h&]refdocj/ refdomainj#reftypetype refexplicitrefwarnj5iio_devuh1hhhhKhjKubh from a driver}(hjKhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjGubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(h@iio_device_register() - register a device with the IIO subsystemh]h)}(hjh]h@iio_device_register() - register a device with the IIO subsystem}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hEiio_device_unregister() - unregister a device from the IIO subsystem h]h)}(hDiio_device_unregister() - unregister a device from the IIO subsystemh]hDiio_device_unregister() - unregister a device from the IIO subsystem}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubeh}(h]h ]h"]h$]h&]bullet*uh1hhhhK hhhhubh)}(hXAn IIO device usually corresponds to a single hardware sensor and it provides all the information needed by a driver handling a device. Let's first have a look at the functionality embedded in an IIO device then we will show how a device driver makes use of an IIO device.h]hXAn IIO device usually corresponds to a single hardware sensor and it provides all the information needed by a driver handling a device. Let’s first have a look at the functionality embedded in an IIO device then we will show how a device driver makes use of an IIO device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hOThere are two ways for a user space application to interact with an IIO driver.h]hOThere are two ways for a user space application to interact with an IIO driver.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhenumerated_list)}(hhh](h)}(h:file:`/sys/bus/iio/devices/iio:device{X}/`, this represents a hardware sensor and groups together the data channels of the same chip.h]h)}(h:file:`/sys/bus/iio/devices/iio:device{X}/`, this represents a hardware sensor and groups together the data channels of the same chip.h](h)}(h+:file:`/sys/bus/iio/devices/iio:device{X}/`h](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubhemphasis)}(hXh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh[, this represents a hardware sensor and groups together the data channels of the same chip.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(h:file:`/dev/iio:device{X}`, character device node interface used for buffered data transfer and for events information retrieval. h]h)}(h:file:`/dev/iio:device{X}`, character device node interface used for buffered data transfer and for events information retrieval.h](h)}(h:file:`/dev/iio:device{X}`h](h/dev/iio:device}(hjhhhNhNubj)}(hjh]hX}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubhg, character device node interface used for buffered data transfer and for events information retrieval.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix.uh1jhhhhhhhKubh)}(hA typical IIO driver will register itself as an :doc:`I2C <../i2c>` or :doc:`SPI <../spi>` driver and will create two routines, probe and remove.h](h0A typical IIO driver will register itself as an }(hjWhhhNhNubh)}(h:doc:`I2C <../i2c>`h]hinline)}(hjah]hI2C}(hjehhhNhNubah}(h]h ](j"stdstd-doceh"]h$]h&]uh1jchj_ubah}(h]h ]h"]h$]h&]refdocj/ refdomainjoreftypedoc refexplicitrefwarnj5../i2cuh1hhhhK hjWubh or }(hjWhhhNhNubh)}(h:doc:`SPI <../spi>`h]jd)}(hjh]hSPI}(hjhhhNhNubah}(h]h ](j"stdstd-doceh"]h$]h&]uh1jchjubah}(h]h ]h"]h$]h&]refdocj/ refdomainjreftypedoc refexplicitrefwarnj5../spiuh1hhhhK hjWubh7 driver and will create two routines, probe and remove.}(hjWhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(h At probe:h]h At probe:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hhhhubj)}(hhh](h)}(hBCall iio_device_alloc(), which allocates memory for an IIO device.h]h)}(hjh]hBCall iio_device_alloc(), which allocates memory for an IIO device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hbInitialize IIO device fields with driver specific information (e.g. device name, device channels).h]h)}(hbInitialize IIO device fields with driver specific information (e.g. device name, device channels).h]hbInitialize IIO device fields with driver specific information (e.g. device name, device channels).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hCall iio_device_register(), this registers the device with the IIO core. After this call the device is ready to accept requests from user space applications. h]h)}(hCall iio_device_register(), this registers the device with the IIO core. After this call the device is ready to accept requests from user space applications.h]hCall iio_device_register(), this registers the device with the IIO core. After this call the device is ready to accept requests from user space applications.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jRjSjThjUjVuh1jhhhhhhhK%ubh)}(hEAt remove, we free the resources allocated in probe in reverse order:h]hEAt remove, we free the resources allocated in probe in reverse order:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hhhhubj)}(hhh](h)}(hAiio_device_unregister(), unregister the device from the IIO core.h]h)}(hj h]hAiio_device_unregister(), unregister the device from the IIO core.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hAiio_device_free(), free the memory allocated for the IIO device. h]h)}(h@iio_device_free(), free the memory allocated for the IIO device.h]h@iio_device_free(), free the memory allocated for the IIO device.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hj5ubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jRjSjThjUjVuh1jhhhhhhhK.ubh)}(hhh](h)}(hIIO device sysfs interfaceh]hIIO device sysfs interface}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShhhhhK2ubh)}(hAttributes are sysfs files used to expose chip info and also allowing applications to set various configuration parameters. For device with index X, attributes can be found under /sys/bus/iio/devices/iio:deviceX/ directory. Common attributes are:h]hAttributes are sysfs files used to expose chip info and also allowing applications to set various configuration parameters. For device with index X, attributes can be found under /sys/bus/iio/devices/iio:deviceX/ directory. Common attributes are:}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjShhubh)}(hhh](h)}(h/:file:`name`, description of the physical chip.h]h)}(hjwh](h)}(h :file:`name`h]hname}(hj|hhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjyubh#, description of the physical chip.}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK9hjuubah}(h]h ]h"]h$]h&]uh1hhjrhhhhhNubh)}(hV:file:`dev`, shows the major:minor pair associated with :file:`/dev/iio:deviceX` node.h]h)}(hV:file:`dev`, shows the major:minor pair associated with :file:`/dev/iio:deviceX` node.h](h)}(h :file:`dev`h]hdev}(hjhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh-, shows the major:minor pair associated with }(hjhhhNhNubh)}(h:file:`/dev/iio:deviceX`h]h/dev/iio:deviceX}(hjhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh node.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK:hjubah}(h]h ]h"]h$]h&]uh1hhjrhhhhhNubh)}(he:file:`sampling_frequency_available`, available discrete set of sampling frequency values for device.h]h)}(he:file:`sampling_frequency_available`, available discrete set of sampling frequency values for device.h](h)}(h$:file:`sampling_frequency_available`h]hsampling_frequency_available}(hjhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjubhA, available discrete set of sampling frequency values for device.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjrhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhK9hjShhubeh}(h]iio-device-sysfs-interfaceah ]h"]iio device sysfs interfaceah$]h&]uh1hhhhhhhhK2ubh)}(hhh](h)}(hIIO device channelsh]hIIO device channels}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hhhhhKCubh)}(h8struct iio_chan_spec - specification of a single channelh]h8struct iio_chan_spec - specification of a single channel}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhj?hhubh)}(hzAn IIO device channel is a representation of a data channel. An IIO device can have one or multiple channels. For example:h]hzAn IIO device channel is a representation of a data channel. An IIO device can have one or multiple channels. For example:}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhj?hhubh)}(hhh](h)}(hNa thermometer sensor has one channel representing the temperature measurement.h]h)}(hjqh]hNa thermometer sensor has one channel representing the temperature measurement.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhjoubah}(h]h ]h"]h$]h&]uh1hhjlhhhhhNubh)}(hba light sensor with two channels indicating the measurements in the visible and infrared spectrum.h]h)}(hba light sensor with two channels indicating the measurements in the visible and infrared spectrum.h]hba light sensor with two channels indicating the measurements in the visible and infrared spectrum.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKKhjubah}(h]h ]h"]h$]h&]uh1hhjlhhhhhNubh)}(hYan accelerometer can have up to 3 channels representing acceleration on X, Y and Z axes. h]h)}(hXan accelerometer can have up to 3 channels representing acceleration on X, Y and Z axes.h]hXan accelerometer can have up to 3 channels representing acceleration on X, Y and Z axes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhjubah}(h]h ]h"]h$]h&]uh1hhjlhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKJhj?hhubh)}(hAn IIO channel is described by the struct iio_chan_spec. A thermometer driver for the temperature sensor in the example above would have to describe its channel as follows::h]hAn IIO channel is described by the struct iio_chan_spec. A thermometer driver for the temperature sensor in the example above would have to describe its channel as follows:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhj?hhubh literal_block)}(hstatic const struct iio_chan_spec temp_channel[] = { { .type = IIO_TEMP, .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), }, };h]hstatic const struct iio_chan_spec temp_channel[] = { { .type = IIO_TEMP, .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), }, };}hjsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jhhhKThj?hhubh)}(hChannel sysfs attributes exposed to userspace are specified in the form of bitmasks. Depending on their shared info, attributes can be set in one of the following masks:h]hChannel sysfs attributes exposed to userspace are specified in the form of bitmasks. Depending on their shared info, attributes can be set in one of the following masks:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hj?hhubh)}(hhh](h)}(hC**info_mask_separate**, attributes will be specific to this channelh]h)}(hC**info_mask_separate**, attributes will be specific to this channelh](hstrong)}(h**info_mask_separate**h]hinfo_mask_separate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh-, attributes will be specific to this channel}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hT**info_mask_shared_by_type**, attributes are shared by all channels of the same typeh]h)}(hT**info_mask_shared_by_type**, attributes are shared by all channels of the same typeh](j)}(h**info_mask_shared_by_type**h]hinfo_mask_shared_by_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh8, attributes are shared by all channels of the same type}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKahjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hX**info_mask_shared_by_dir**, attributes are shared by all channels of the same directionh]h)}(hX**info_mask_shared_by_dir**, attributes are shared by all channels of the same directionh](j)}(h**info_mask_shared_by_dir**h]hinfo_mask_shared_by_dir}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubh=, attributes are shared by all channels of the same direction}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKchj;ubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hC**info_mask_shared_by_all**, attributes are shared by all channels h]h)}(hB**info_mask_shared_by_all**, attributes are shared by all channelsh](j)}(h**info_mask_shared_by_all**h]hinfo_mask_shared_by_all}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubh', attributes are shared by all channels}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKehjaubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhK_hj?hhubh)}(hdWhen there are multiple data channels per channel type we have two ways to distinguish between them:h]hdWhen there are multiple data channels per channel type we have two ways to distinguish between them:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghj?hhubh)}(hhh](h)}(hXset **.modified** field of :c:type:`iio_chan_spec` to 1. Modifiers are specified using **.channel2** field of the same :c:type:`iio_chan_spec` structure and are used to indicate a physically unique characteristic of the channel such as its direction or spectral response. For example, a light sensor can have two channels, one for infrared light and one for both infrared and visible light.h]h)}(hXset **.modified** field of :c:type:`iio_chan_spec` to 1. Modifiers are specified using **.channel2** field of the same :c:type:`iio_chan_spec` structure and are used to indicate a physically unique characteristic of the channel such as its direction or spectral response. For example, a light sensor can have two channels, one for infrared light and one for both infrared and visible light.h](hset }(hjhhhNhNubj)}(h **.modified**h]h .modified}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of }(hjhhhNhNubh)}(h:c:type:`iio_chan_spec`h]h)}(hjh]h iio_chan_spec}(hjhhhNhNubah}(h]h ](j"j#c-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj/ refdomainj#reftypetype refexplicitrefwarnj5 iio_chan_specuh1hhhhKjhjubh% to 1. Modifiers are specified using }(hjhhhNhNubj)}(h **.channel2**h]h .channel2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of the same }(hjhhhNhNubh)}(h:c:type:`iio_chan_spec`h]h)}(hjh]h iio_chan_spec}(hjhhhNhNubah}(h]h ](j"j#c-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj/ refdomainj#reftypetype refexplicitrefwarnj5 iio_chan_specuh1hhhhKjhjubh structure and are used to indicate a physically unique characteristic of the channel such as its direction or spectral response. For example, a light sensor can have two channels, one for infrared light and one for both infrared and visible light.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKjhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hset **.indexed** field of :c:type:`iio_chan_spec` to 1. In this case the channel is simply another instance with an index specified by the **.channel** field. h]h)}(hset **.indexed** field of :c:type:`iio_chan_spec` to 1. In this case the channel is simply another instance with an index specified by the **.channel** field.h](hset }(hj$hhhNhNubj)}(h **.indexed**h]h.indexed}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh field of }(hj$hhhNhNubh)}(h:c:type:`iio_chan_spec`h]h)}(hj@h]h iio_chan_spec}(hjBhhhNhNubah}(h]h ](j"j#c-typeeh"]h$]h&]uh1hhj>ubah}(h]h ]h"]h$]h&]refdocj/ refdomainj#reftypetype refexplicitrefwarnj5 iio_chan_specuh1hhhhKphj$ubhZ to 1. In this case the channel is simply another instance with an index specified by the }(hj$hhhNhNubj)}(h **.channel**h]h.channel}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh field.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKphj ubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKjhj?hhubh)}(h8Here is how we can make use of the channel's modifiers::h]h9Here is how we can make use of the channel’s modifiers:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthj?hhubj)}(hX static const struct iio_chan_spec light_channels[] = { { .type = IIO_INTENSITY, .modified = 1, .channel2 = IIO_MOD_LIGHT_IR, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, { .type = IIO_INTENSITY, .modified = 1, .channel2 = IIO_MOD_LIGHT_BOTH, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, { .type = IIO_LIGHT, .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, }h]hX static const struct iio_chan_spec light_channels[] = { { .type = IIO_INTENSITY, .modified = 1, .channel2 = IIO_MOD_LIGHT_IR, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, { .type = IIO_INTENSITY, .modified = 1, .channel2 = IIO_MOD_LIGHT_BOTH, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, { .type = IIO_LIGHT, .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, }}hjsbah}(h]h ]h"]h$]h&]jjuh1jhhhKvhj?hhubh)}(hXThis channel's definition will generate two separate sysfs files for raw data retrieval:h]hZThis channel’s definition will generate two separate sysfs files for raw data retrieval:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubh)}(hhh](h)}(h>:file:`/sys/bus/iio/devices/iio:device{X}/in_intensity_ir_raw`h]h)}(hjh]h)}(hjh](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubj)}(hjh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/in_intensity_ir_raw}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hA:file:`/sys/bus/iio/devices/iio:device{X}/in_intensity_both_raw` h]h)}(h@:file:`/sys/bus/iio/devices/iio:device{X}/in_intensity_both_raw`h]h)}(hjh](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubj)}(hjh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/in_intensity_both_raw}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKhj?hhubh)}(hone file for processed data:h]hone file for processed data:}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubh)}(hhh]h)}(h@:file:`/sys/bus/iio/devices/iio:device{X}/in_illuminance_input` h]h)}(h?:file:`/sys/bus/iio/devices/iio:device{X}/in_illuminance_input`h]h)}(hj8h](h/sys/bus/iio/devices/iio:device}(hj:hhhNhNubj)}(hjh]hX}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubh/in_illuminance_input}(hj:hhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhj6ubah}(h]h ]h"]h$]h&]uh1hhhhKhj2ubah}(h]h ]h"]h$]h&]uh1hhj/hhhhhNubah}(h]h ]h"]h$]h&]jjuh1hhhhKhj?hhubh)}(h1and one shared sysfs file for sampling frequency:h]h1and one shared sysfs file for sampling frequency:}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubh)}(hhh]h)}(h?:file:`/sys/bus/iio/devices/iio:device{X}/sampling_frequency`. h]h)}(h>:file:`/sys/bus/iio/devices/iio:device{X}/sampling_frequency`.h](h)}(h=:file:`/sys/bus/iio/devices/iio:device{X}/sampling_frequency`h](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubj)}(hjh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/sampling_frequency}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj~ubah}(h]h ]h"]h$]h&]uh1hhj{hhhhhNubah}(h]h ]h"]h$]h&]jjuh1hhhhKhj?hhubh)}(h7Here is how we can make use of the channel's indexing::h]h8Here is how we can make use of the channel’s indexing:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubj)}(hXstatic const struct iio_chan_spec light_channels[] = { { .type = IIO_VOLTAGE, .indexed = 1, .channel = 0, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), }, { .type = IIO_VOLTAGE, .indexed = 1, .channel = 1, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), }, }h]hXstatic const struct iio_chan_spec light_channels[] = { { .type = IIO_VOLTAGE, .indexed = 1, .channel = 0, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), }, { .type = IIO_VOLTAGE, .indexed = 1, .channel = 1, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), }, }}hjsbah}(h]h ]h"]h$]h&]jjuh1jhhhKhj?hhubh)}(hHThis will generate two separate attributes files for raw data retrieval:h]hHThis will generate two separate attributes files for raw data retrieval:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubh)}(hhh](h)}(hk:file:`/sys/bus/iio/devices/iio:device{X}/in_voltage0_raw`, representing voltage measurement for channel 0.h]h)}(hk:file:`/sys/bus/iio/devices/iio:device{X}/in_voltage0_raw`, representing voltage measurement for channel 0.h](h)}(h::file:`/sys/bus/iio/devices/iio:device{X}/in_voltage0_raw`h](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubj)}(hjh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/in_voltage0_raw}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh1, representing voltage measurement for channel 0.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hl:file:`/sys/bus/iio/devices/iio:device{X}/in_voltage1_raw`, representing voltage measurement for channel 1. h]h)}(hk:file:`/sys/bus/iio/devices/iio:device{X}/in_voltage1_raw`, representing voltage measurement for channel 1.h](h)}(h::file:`/sys/bus/iio/devices/iio:device{X}/in_voltage1_raw`h](h/sys/bus/iio/devices/iio:device}(hj-hhhNhNubj)}(hjh]hX}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubh/in_voltage1_raw}(hj-hhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhj)ubh1, representing voltage measurement for channel 1.}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj%ubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKhj?hhubeh}(h]iio-device-channelsah ]h"]iio device channelsah$]h&]uh1hhhhhhhhKCubh)}(hhh](h)}(h More detailsh]h More details}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single!iio_chan_spec_ext_info (C struct)c.iio_chan_spec_ext_infohNtauh1j~hjmhhhNhNubhdesc)}(hhh](hdesc_signature)}(hiio_chan_spec_ext_infoh]hdesc_signature_line)}(hstruct iio_chan_spec_ext_infoh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(hiio_chan_spec_ext_infoh]h desc_sig_name)}(hjh]hiio_chan_spec_ext_info}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(hExtended channel info attributeh]hExtended channel info attribute}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK+hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j#structeh"]h$]h&]domainj#objtypej desctypej noindex noindexentrynocontentsentryuh1jhhhjmhNhNubh container)}(hX**Definition**:: struct iio_chan_spec_ext_info { const char *name; enum iio_shared_by shared; ssize_t (*read)(struct iio_dev *, uintptr_t private, struct iio_chan_spec const *, char *buf); ssize_t (*write)(struct iio_dev *, uintptr_t private, struct iio_chan_spec const *, const char *buf, size_t len); uintptr_t private; }; **Members** ``name`` Info attribute name ``shared`` Whether this attribute is shared between all channels. ``read`` Read callback for this info attribute, may be NULL. ``write`` Write callback for this info attribute, may be NULL. ``private`` Data private to the driver.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj" ubh:}(hj" hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK/hj ubj)}(hXGstruct iio_chan_spec_ext_info { const char *name; enum iio_shared_by shared; ssize_t (*read)(struct iio_dev *, uintptr_t private, struct iio_chan_spec const *, char *buf); ssize_t (*write)(struct iio_dev *, uintptr_t private, struct iio_chan_spec const *, const char *buf, size_t len); uintptr_t private; };h]hXGstruct iio_chan_spec_ext_info { const char *name; enum iio_shared_by shared; ssize_t (*read)(struct iio_dev *, uintptr_t private, struct iio_chan_spec const *, char *buf); ssize_t (*write)(struct iio_dev *, uintptr_t private, struct iio_chan_spec const *, const char *buf, size_t len); uintptr_t private; };}hj? sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK1hj ubh)}(h **Members**h]j)}(hjP h]hMembers}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK9hj ubhdefinition_list)}(hhh](hdefinition_list_item)}(h``name`` Info attribute name h](hterm)}(h``name``h]h)}(hju h]hname}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjs ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK-hjm ubh definition)}(hhh]h)}(hInfo attribute nameh]hInfo attribute name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK-hj ubah}(h]h ]h"]h$]h&]uh1j hjm ubeh}(h]h ]h"]h$]h&]uh1jk hj hK-hjh ubjl )}(hB``shared`` Whether this attribute is shared between all channels. h](jr )}(h ``shared``h]h)}(hj h]hshared}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK.hj ubj )}(hhh]h)}(h6Whether this attribute is shared between all channels.h]h6Whether this attribute is shared between all channels.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK.hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj hK.hjh ubjl )}(h=``read`` Read callback for this info attribute, may be NULL. h](jr )}(h``read``h]h)}(hj h]hread}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK/hj ubj )}(hhh]h)}(h3Read callback for this info attribute, may be NULL.h]h3Read callback for this info attribute, may be NULL.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK/hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj hK/hjh ubjl )}(h?``write`` Write callback for this info attribute, may be NULL. h](jr )}(h ``write``h]h)}(hj" h]hwrite}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK0hj ubj )}(hhh]h)}(h4Write callback for this info attribute, may be NULL.h]h4Write callback for this info attribute, may be NULL.}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7 hK0hj8 ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj7 hK0hjh ubjl )}(h'``private`` Data private to the driver.h](jr )}(h ``private``h]h)}(hj[ h]hprivate}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjY ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK0hjU ubj )}(hhh]h)}(hData private to the driver.h]hData private to the driver.}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK1hjq ubah}(h]h ]h"]h$]h&]uh1j hjU ubeh}(h]h ]h"]h$]h&]uh1jk hjp hK0hjh ubeh}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_enum (C struct) c.iio_enumhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_enumh]j)}(hstruct iio_enumh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK7ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hK7ubj)}(hiio_enumh]j)}(hj h]hiio_enum}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hK7ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj hhhj hK7ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hK7hj hhubj)}(hhh]h)}(hEnum channel info attributeh]hEnum channel info attribute}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK>hj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hK7ubeh}(h]h ](j#structeh"]h$]h&]j j#j j j j j j j uh1jhhhjmhNhNubj )}(hX**Definition**:: struct iio_enum { const char * const *items; unsigned int num_items; int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); int (*get)(struct iio_dev *, const struct iio_chan_spec *); }; **Members** ``items`` An array of strings. ``num_items`` Length of the item array. ``set`` Set callback function, may be NULL. ``get`` Get callback function, may be NULL.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKBhj ubj)}(hstruct iio_enum { const char * const *items; unsigned int num_items; int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); int (*get)(struct iio_dev *, const struct iio_chan_spec *); };h]hstruct iio_enum { const char * const *items; unsigned int num_items; int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); int (*get)(struct iio_dev *, const struct iio_chan_spec *); };}hj4 sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKDhj ubh)}(h **Members**h]j)}(hjE h]hMembers}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKKhj ubjg )}(hhh](jl )}(h``items`` An array of strings. h](jr )}(h ``items``h]h)}(hjd h]hitems}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjb ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK@hj^ ubj )}(hhh]h)}(hAn array of strings.h]hAn array of strings.}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjy hK@hjz ubah}(h]h ]h"]h$]h&]uh1j hj^ ubeh}(h]h ]h"]h$]h&]uh1jk hjy hK@hj[ ubjl )}(h(``num_items`` Length of the item array. h](jr )}(h ``num_items``h]h)}(hj h]h num_items}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKAhj ubj )}(hhh]h)}(hLength of the item array.h]hLength of the item array.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKAhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj hKAhj[ ubjl )}(h,``set`` Set callback function, may be NULL. h](jr )}(h``set``h]h)}(hj h]hset}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKBhj ubj )}(hhh]h)}(h#Set callback function, may be NULL.h]h#Set callback function, may be NULL.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKBhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj hKBhj[ ubjl )}(h+``get`` Get callback function, may be NULL.h](jr )}(h``get``h]h)}(hj h]hget}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKBhj ubj )}(hhh]h)}(h#Get callback function, may be NULL.h]h#Get callback function, may be NULL.}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKChj% ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj$ hKBhj[ ubeh}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubh)}(h**Description**h]j)}(hjR h]h Description}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKFhjmhhubh)}(hX6The iio_enum struct can be used to implement enum style channel attributes. Enum style attributes are those which have a set of strings which map to unsigned integer values. The IIO enum helper code takes care of mapping between value and string as well as generating a "_available" file which contains a list of all available items. The set callback will be called when the attribute is updated. The last parameter is the index to the newly activated item. The get callback will be used to query the currently active item and is supposed to return the index for it.h]hX:The iio_enum struct can be used to implement enum style channel attributes. Enum style attributes are those which have a set of strings which map to unsigned integer values. The IIO enum helper code takes care of mapping between value and string as well as generating a “_available” file which contains a list of all available items. The set callback will be called when the attribute is updated. The last parameter is the index to the newly activated item. The get callback will be used to query the currently active item and is supposed to return the index for it.}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKChjmhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_ENUM (C macro) c.IIO_ENUMhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_ENUMh]j)}(hIIO_ENUMh]j)}(hIIO_ENUMh]j)}(hj h]hIIO_ENUM}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK]ubah}(h]h ]h"]h$]h&]jjjuh1jjjhj hhhj hK]ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hK]hj hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj hhhj hK]ubeh}(h]h ](j#macroeh"]h$]h&]j j#j j j j j j j uh1jhhhjmhNhNubh)}(h!``IIO_ENUM (_name, _shared, _e)``h]h)}(hj h]hIIO_ENUM (_name, _shared, _e)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK_hjmhhubh block_quote)}(h+Initialize enum extended channel attribute h]h)}(h*Initialize enum extended channel attributeh]h*Initialize enum extended channel attribute}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK]hj ubah}(h]h ]h"]h$]h&]uh1j hj hK]hjmhhubj )}(h**Parameters** ``_name`` Attribute name ``_shared`` Whether the attribute is shared between all channels ``_e`` Pointer to an iio_enum struct **Description** This should usually be used together with IIO_ENUM_AVAILABLE()h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKahj ubjg )}(hhh](jl )}(h``_name`` Attribute name h](jr )}(h ``_name``h]h)}(hj h]h_name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK^hj ubj )}(hhh]h)}(hAttribute nameh]hAttribute name}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1 hK^hj2 ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj1 hK^hj ubjl )}(hA``_shared`` Whether the attribute is shared between all channels h](jr )}(h ``_shared``h]h)}(hjU h]h_shared}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK_hjO ubj )}(hhh]h)}(h4Whether the attribute is shared between all channelsh]h4Whether the attribute is shared between all channels}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj hK_hjk ubah}(h]h ]h"]h$]h&]uh1j hjO ubeh}(h]h ]h"]h$]h&]uh1jk hjj hK_hj ubjl )}(h%``_e`` Pointer to an iio_enum struct h](jr )}(h``_e``h]h)}(hj h]h_e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK`hj ubj )}(hhh]h)}(hPointer to an iio_enum structh]hPointer to an iio_enum struct}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK`hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj hK`hj ubeh}(h]h ]h"]h$]h&]uh1jf hj ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKbhj ubh)}(h>This should usually be used together with IIO_ENUM_AVAILABLE()h]h>This should usually be used together with IIO_ENUM_AVAILABLE()}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKahj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_ENUM_AVAILABLE (C macro)c.IIO_ENUM_AVAILABLEhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_ENUM_AVAILABLEh]j)}(hIIO_ENUM_AVAILABLEh]j)}(hIIO_ENUM_AVAILABLEh]j)}(hjh]hIIO_ENUM_AVAILABLE}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKnubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj%hKnubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj%hKnhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhj%hKnubeh}(h]h ](j#macroeh"]h$]h&]j j#j j>j j>j j j uh1jhhhjmhNhNubh)}(h+``IIO_ENUM_AVAILABLE (_name, _shared, _e)``h]h)}(hjDh]h'IIO_ENUM_AVAILABLE (_name, _shared, _e)}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKphjmhhubj )}(h5Initialize enum available extended channel attribute h]h)}(h4Initialize enum available extended channel attributeh]h4Initialize enum available extended channel attribute}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKnhjZubah}(h]h ]h"]h$]h&]uh1j hjlhKnhjmhhubj )}(hXk**Parameters** ``_name`` Attribute name ("_available" will be appended to the name) ``_shared`` Whether the attribute is shared between all channels ``_e`` Pointer to an iio_enum struct **Description** Creates a read only attribute which lists all the available enum items in a space separated list. This should usually be used together with IIO_ENUM()h](h)}(h**Parameters**h]j)}(hjyh]h Parameters}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKrhjsubjg )}(hhh](jl )}(hE``_name`` Attribute name ("_available" will be appended to the name) h](jr )}(h ``_name``h]h)}(hjh]h_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKohjubj )}(hhh]h)}(h:Attribute name ("_available" will be appended to the name)h]h>Attribute name (“_available” will be appended to the name)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKohjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKohjubjl )}(hA``_shared`` Whether the attribute is shared between all channels h](jr )}(h ``_shared``h]h)}(hjh]h_shared}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKphjubj )}(hhh]h)}(h4Whether the attribute is shared between all channelsh]h4Whether the attribute is shared between all channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKphjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKphjubjl )}(h%``_e`` Pointer to an iio_enum struct h](jr )}(h``_e``h]h)}(hj h]h_e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKqhjubj )}(hhh]h)}(hPointer to an iio_enum structh]hPointer to an iio_enum struct}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKqhj ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKqhjubeh}(h]h ]h"]h$]h&]uh1jf hjsubh)}(h**Description**h]j)}(hjEh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKshjsubh)}(hCreates a read only attribute which lists all the available enum items in a space separated list. This should usually be used together with IIO_ENUM()h]hCreates a read only attribute which lists all the available enum items in a space separated list. This should usually be used together with IIO_ENUM()}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKrhjsubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_mount_matrix (C struct)c.iio_mount_matrixhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_mount_matrixh]j)}(hstruct iio_mount_matrixh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKxubj)}(hiio_mount_matrixh]j)}(hjh]hiio_mount_matrix}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKxubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKxubah}(h]j}ah ](jjeh"]h$]h&]jj)jhuh1jhjhKxhjhhubj)}(hhh]h)}(hiio mounting matrixh]hiio mounting matrix}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKxubeh}(h]h ](j#structeh"]h$]h&]j j#j jj jj j j uh1jhhhjmhNhNubj )}(h**Definition**:: struct iio_mount_matrix { const char *rotation[9]; }; **Members** ``rotation`` 3 dimensional space rotation matrix defining sensor alignment with main hardwareh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj)}(h9struct iio_mount_matrix { const char *rotation[9]; };h]h9struct iio_mount_matrix { const char *rotation[9]; };}hj sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubjg )}(hhh]jl )}(h]``rotation`` 3 dimensional space rotation matrix defining sensor alignment with main hardwareh](jr )}(h ``rotation``h]h)}(hj9h]hrotation}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj3ubj )}(hhh]h)}(hP3 dimensional space rotation matrix defining sensor alignment with main hardwareh]hP3 dimensional space rotation matrix defining sensor alignment with main hardware}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhKhjOubah}(h]h ]h"]h$]h&]uh1j hj3ubeh}(h]h ]h"]h$]h&]uh1jk hjNhKhj0ubah}(h]h ]h"]h$]h&]uh1jf hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_MOUNT_MATRIX (C macro)c.IIO_MOUNT_MATRIXhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_MOUNT_MATRIXh]j)}(hIIO_MOUNT_MATRIXh]j)}(hIIO_MOUNT_MATRIXh]j)}(hjh]hIIO_MOUNT_MATRIX}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j#macroeh"]h$]h&]j j#j jj jj j j uh1jhhhjmhNhNubh)}(h$``IIO_MOUNT_MATRIX (_shared, _get)``h]h)}(hjh]h IIO_MOUNT_MATRIX (_shared, _get)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjmhhubj )}(h3Initialize mount matrix extended channel attribute h]h)}(h2Initialize mount matrix extended channel attributeh]h2Initialize mount matrix extended channel attribute}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjhKhjmhhubj )}(h**Parameters** ``_shared`` Whether the attribute is shared between all channels ``_get`` Pointer to an iio_get_mount_matrix_t accessorh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubjg )}(hhh](jl )}(hA``_shared`` Whether the attribute is shared between all channels h](jr )}(h ``_shared``h]h)}(hjh]h_shared}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h4Whether the attribute is shared between all channelsh]h4Whether the attribute is shared between all channels}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hKhj2ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hj1hKhjubjl )}(h6``_get`` Pointer to an iio_get_mount_matrix_t accessorh](jr )}(h``_get``h]h)}(hjUh]h_get}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjSubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjOubj )}(hhh]h)}(h-Pointer to an iio_get_mount_matrix_t accessorh]h-Pointer to an iio_get_mount_matrix_t accessor}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjkubah}(h]h ]h"]h$]h&]uh1j hjOubeh}(h]h ]h"]h$]h&]uh1jk hjjhKhjubeh}(h]h ]h"]h$]h&]uh1jf hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_event_spec (C struct)c.iio_event_spechNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_event_spech]j)}(hstruct iio_event_spech](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hiio_event_spech]j)}(hjh]hiio_event_spec}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]h)}(h!specification for a channel eventh]h!specification for a channel event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j#structeh"]h$]h&]j j#j j j j j j j uh1jhhhjmhNhNubj )}(hXi**Definition**:: struct iio_event_spec { enum iio_event_type type; enum iio_event_direction dir; unsigned long mask_separate; unsigned long mask_shared_by_type; unsigned long mask_shared_by_dir; unsigned long mask_shared_by_all; }; **Members** ``type`` Type of the event ``dir`` Direction of the event ``mask_separate`` Bit mask of enum iio_event_info values. Attributes set in this mask will be registered per channel. ``mask_shared_by_type`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type. ``mask_shared_by_dir`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type and direction. ``mask_shared_by_all`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by all channels.l h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubj)}(hstruct iio_event_spec { enum iio_event_type type; enum iio_event_direction dir; unsigned long mask_separate; unsigned long mask_shared_by_type; unsigned long mask_shared_by_dir; unsigned long mask_shared_by_all; };h]hstruct iio_event_spec { enum iio_event_type type; enum iio_event_direction dir; unsigned long mask_separate; unsigned long mask_shared_by_type; unsigned long mask_shared_by_dir; unsigned long mask_shared_by_all; };}hj.sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubh)}(h **Members**h]j)}(hj?h]hMembers}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubjg )}(hhh](jl )}(h``type`` Type of the event h](jr )}(h``type``h]h)}(hj^h]htype}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjXubj )}(hhh]h)}(hType of the eventh]hType of the event}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshKhjtubah}(h]h ]h"]h$]h&]uh1j hjXubeh}(h]h ]h"]h$]h&]uh1jk hjshKhjUubjl )}(h``dir`` Direction of the event h](jr )}(h``dir``h]h)}(hjh]hdir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hDirection of the eventh]hDirection of the event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjUubjl )}(hv``mask_separate`` Bit mask of enum iio_event_info values. Attributes set in this mask will be registered per channel. h](jr )}(h``mask_separate``h]h)}(hjh]h mask_separate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hcBit mask of enum iio_event_info values. Attributes set in this mask will be registered per channel.h]hcBit mask of enum iio_event_info values. Attributes set in this mask will be registered per channel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjUubjl )}(h|``mask_shared_by_type`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type. h](jr )}(h``mask_shared_by_type``h]h)}(hj h]hmask_shared_by_type}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hcBit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type.h]hcBit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjUubjl )}(h``mask_shared_by_dir`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type and direction. h](jr )}(h``mask_shared_by_dir``h]h)}(hjDh]hmask_shared_by_dir}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj>ubj )}(hhh]h)}(hqBit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type and direction.h]hqBit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type and direction.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjZubah}(h]h ]h"]h$]h&]uh1j hj>ubeh}(h]h ]h"]h$]h&]uh1jk hjYhKhjUubjl )}(hz``mask_shared_by_all`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by all channels.h](jr )}(h``mask_shared_by_all``h]h)}(hj~h]hmask_shared_by_all}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjxubj )}(hhh]h)}(hcBit mask of enum iio_event_info values. Attributes set in this mask will be shared by all channels.h]hcBit mask of enum iio_event_info values. Attributes set in this mask will be shared by all channels.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjxubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjUubeh}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_scan_type (C struct)c.iio_scan_typehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h iio_scan_typeh]j)}(hstruct iio_scan_typeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(h iio_scan_typeh]j)}(hjh]h iio_scan_type}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]h)}(h/specification for channel data format in bufferh]h/specification for channel data format in buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j#structeh"]h$]h&]j j#j j1j j1j j j uh1jhhhjmhNhNubj )}(hXw**Definition**:: struct iio_scan_type { char sign; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; }; **Members** ``sign`` 's' or 'u' to specify signed or unsigned ``realbits`` Number of valid bits of data ``storagebits`` Realbits + padding ``shift`` Shift right by this before masking out realbits. ``repeat`` Number of times real/storage bits repeats. When the repeat element is more than 1, then the type element in sysfs will show a repeat value. Otherwise, the number of repetitions is omitted. ``endianness`` little or big endianh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubh:}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj5ubj)}(hstruct iio_scan_type { char sign; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; };h]hstruct iio_scan_type { char sign; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; };}hjVsbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj5ubh)}(h **Members**h]j)}(hjgh]hMembers}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj5ubjg )}(hhh](jl )}(h2``sign`` 's' or 'u' to specify signed or unsigned h](jr )}(h``sign``h]h)}(hjh]hsign}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h('s' or 'u' to specify signed or unsignedh]h0‘s’ or ‘u’ to specify signed or unsigned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhj}ubjl )}(h*``realbits`` Number of valid bits of data h](jr )}(h ``realbits``h]h)}(hjh]hrealbits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hNumber of valid bits of datah]hNumber of valid bits of data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhj}ubjl )}(h#``storagebits`` Realbits + padding h](jr )}(h``storagebits``h]h)}(hjh]h storagebits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hRealbits + paddingh]hRealbits + padding}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hj hKhj}ubjl )}(h;``shift`` Shift right by this before masking out realbits. h](jr )}(h ``shift``h]h)}(hj1h]hshift}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj+ubj )}(hhh]h)}(h0Shift right by this before masking out realbits.h]h0Shift right by this before masking out realbits.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhKhjGubah}(h]h ]h"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]uh1jk hjFhKhj}ubjl )}(h``repeat`` Number of times real/storage bits repeats. When the repeat element is more than 1, then the type element in sysfs will show a repeat value. Otherwise, the number of repetitions is omitted. h](jr )}(h ``repeat``h]h)}(hjjh]hrepeat}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjdubj )}(hhh]h)}(hNumber of times real/storage bits repeats. When the repeat element is more than 1, then the type element in sysfs will show a repeat value. Otherwise, the number of repetitions is omitted.h]hNumber of times real/storage bits repeats. When the repeat element is more than 1, then the type element in sysfs will show a repeat value. Otherwise, the number of repetitions is omitted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjdubeh}(h]h ]h"]h$]h&]uh1jk hjhKhj}ubjl )}(h#``endianness`` little or big endianh](jr )}(h``endianness``h]h)}(hjh]h endianness}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hlittle or big endianh]hlittle or big endian}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhj}ubeh}(h]h ]h"]h$]h&]uh1jf hj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_chan_spec (C struct)c.iio_chan_spechNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h iio_chan_spech]j)}(hstruct iio_chan_spech](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hKubj)}(h iio_chan_spech]j)}(hjh]h iio_chan_spec}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj hKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj hKhjhhubj)}(hhh]h)}(h!specification of a single channelh]h!specification of a single channel}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj=hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj hKubeh}(h]h ](j#structeh"]h$]h&]j j#j jXj jXj j j uh1jhhhjmhNhNubj )}(hX**Definition**:: struct iio_chan_spec { enum iio_chan_type type; int channel; int channel2; unsigned long address; int scan_index; union { struct iio_scan_type scan_type; struct { const struct iio_scan_type *ext_scan_type; unsigned int num_ext_scan_type; }; }; unsigned long info_mask_separate; unsigned long info_mask_separate_available; unsigned long info_mask_shared_by_type; unsigned long info_mask_shared_by_type_available; unsigned long info_mask_shared_by_dir; unsigned long info_mask_shared_by_dir_available; unsigned long info_mask_shared_by_all; unsigned long info_mask_shared_by_all_available; const struct iio_event_spec *event_spec; unsigned int num_event_specs; const struct iio_chan_spec_ext_info *ext_info; const char *extend_name; const char *datasheet_name; unsigned int modified:1; unsigned int indexed:1; unsigned int output:1; unsigned int differential:1; unsigned int has_ext_scan_type:1; }; **Members** ``type`` What type of measurement is the channel making. ``channel`` What number do we wish to assign the channel. ``channel2`` If there is a second number for a differential channel then this is it. If modified is set then the value here specifies the modifier. ``address`` Driver specific identifier. ``scan_index`` Monotonic index to give ordering in scans when read from a buffer. ``{unnamed_union}`` anonymous ``scan_type`` struct describing the scan type - mutually exclusive with ext_scan_type. ``{unnamed_struct}`` anonymous ``ext_scan_type`` Used in rare cases where there is more than one scan format for a channel. When this is used, the flag has_ext_scan_type must be set and the driver must implement get_current_scan_type in struct iio_info. ``num_ext_scan_type`` Number of elements in ext_scan_type. ``info_mask_separate`` What information is to be exported that is specific to this channel. ``info_mask_separate_available`` What availability information is to be exported that is specific to this channel. ``info_mask_shared_by_type`` What information is to be exported that is shared by all channels of the same type. ``info_mask_shared_by_type_available`` What availability information is to be exported that is shared by all channels of the same type. ``info_mask_shared_by_dir`` What information is to be exported that is shared by all channels of the same direction. ``info_mask_shared_by_dir_available`` What availability information is to be exported that is shared by all channels of the same direction. ``info_mask_shared_by_all`` What information is to be exported that is shared by all channels. ``info_mask_shared_by_all_available`` What availability information is to be exported that is shared by all channels. ``event_spec`` Array of events which should be registered for this channel. ``num_event_specs`` Size of the event_spec array. ``ext_info`` Array of extended info attributes for this channel. The array is NULL terminated, the last element should have its name field set to NULL. ``extend_name`` Allows labeling of channel attributes with an informative name. Note this has no effect codes etc, unlike modifiers. This field is deprecated in favour of providing iio_info->read_label() to override the label, which unlike **extend_name** does not affect sysfs filenames. ``datasheet_name`` A name used in in-kernel mapping of channels. It should correspond to the first name that the channel is referred to by in the datasheet (e.g. IND), or the nearest possible compound name (e.g. IND-INC). ``modified`` Does a modifier apply to this channel. What these are depends on the channel type. Modifier is set in channel2. Examples are IIO_MOD_X for axial sensors about the 'x' axis. ``indexed`` Specify the channel has a numerical index. If not, the channel index number will be suppressed for sysfs attributes but not for event codes. ``output`` Channel is output. ``differential`` Channel is differential. ``has_ext_scan_type`` True if ext_scan_type is used instead of scan_type.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh:}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj\ubj)}(hXstruct iio_chan_spec { enum iio_chan_type type; int channel; int channel2; unsigned long address; int scan_index; union { struct iio_scan_type scan_type; struct { const struct iio_scan_type *ext_scan_type; unsigned int num_ext_scan_type; }; }; unsigned long info_mask_separate; unsigned long info_mask_separate_available; unsigned long info_mask_shared_by_type; unsigned long info_mask_shared_by_type_available; unsigned long info_mask_shared_by_dir; unsigned long info_mask_shared_by_dir_available; unsigned long info_mask_shared_by_all; unsigned long info_mask_shared_by_all_available; const struct iio_event_spec *event_spec; unsigned int num_event_specs; const struct iio_chan_spec_ext_info *ext_info; const char *extend_name; const char *datasheet_name; unsigned int modified:1; unsigned int indexed:1; unsigned int output:1; unsigned int differential:1; unsigned int has_ext_scan_type:1; };h]hXstruct iio_chan_spec { enum iio_chan_type type; int channel; int channel2; unsigned long address; int scan_index; union { struct iio_scan_type scan_type; struct { const struct iio_scan_type *ext_scan_type; unsigned int num_ext_scan_type; }; }; unsigned long info_mask_separate; unsigned long info_mask_separate_available; unsigned long info_mask_shared_by_type; unsigned long info_mask_shared_by_type_available; unsigned long info_mask_shared_by_dir; unsigned long info_mask_shared_by_dir_available; unsigned long info_mask_shared_by_all; unsigned long info_mask_shared_by_all_available; const struct iio_event_spec *event_spec; unsigned int num_event_specs; const struct iio_chan_spec_ext_info *ext_info; const char *extend_name; const char *datasheet_name; unsigned int modified:1; unsigned int indexed:1; unsigned int output:1; unsigned int differential:1; unsigned int has_ext_scan_type:1; };}hj}sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj\ubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj\ubjg )}(hhh](jl )}(h9``type`` What type of measurement is the channel making. h](jr )}(h``type``h]h)}(hjh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h/What type of measurement is the channel making.h]h/What type of measurement is the channel making.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h:``channel`` What number do we wish to assign the channel. h](jr )}(h ``channel``h]h)}(hjh]hchannel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h-What number do we wish to assign the channel.h]h-What number do we wish to assign the channel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``channel2`` If there is a second number for a differential channel then this is it. If modified is set then the value here specifies the modifier. h](jr )}(h ``channel2``h]h)}(hjh]hchannel2}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hIf there is a second number for a differential channel then this is it. If modified is set then the value here specifies the modifier.h]hIf there is a second number for a differential channel then this is it. If modified is set then the value here specifies the modifier.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj5ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hj4hKhjubjl )}(h(``address`` Driver specific identifier. h](jr )}(h ``address``h]h)}(hjYh]haddress}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjSubj )}(hhh]h)}(hDriver specific identifier.h]hDriver specific identifier.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhKhjoubah}(h]h ]h"]h$]h&]uh1j hjSubeh}(h]h ]h"]h$]h&]uh1jk hjnhKhjubjl )}(hR``scan_index`` Monotonic index to give ordering in scans when read from a buffer. h](jr )}(h``scan_index``h]h)}(hjh]h scan_index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hBMonotonic index to give ordering in scans when read from a buffer.h]hBMonotonic index to give ordering in scans when read from a buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``{unnamed_union}`` anonymous h](jr )}(h``{unnamed_union}``h]h)}(hjh]h{unnamed_union}}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h anonymoush]h anonymous}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(hW``scan_type`` struct describing the scan type - mutually exclusive with ext_scan_type. h](jr )}(h ``scan_type``h]h)}(hjh]h scan_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hHstruct describing the scan type - mutually exclusive with ext_scan_type.h]hHstruct describing the scan type - mutually exclusive with ext_scan_type.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``{unnamed_struct}`` anonymous h](jr )}(h``{unnamed_struct}``h]h)}(hj?h]h{unnamed_struct}}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj9ubj )}(hhh]h)}(h anonymoush]h anonymous}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThKhjUubah}(h]h ]h"]h$]h&]uh1j hj9ubeh}(h]h ]h"]h$]h&]uh1jk hjThKhjubjl )}(h``ext_scan_type`` Used in rare cases where there is more than one scan format for a channel. When this is used, the flag has_ext_scan_type must be set and the driver must implement get_current_scan_type in struct iio_info. h](jr )}(h``ext_scan_type``h]h)}(hjxh]h ext_scan_type}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjrubj )}(hhh]h)}(hUsed in rare cases where there is more than one scan format for a channel. When this is used, the flag has_ext_scan_type must be set and the driver must implement get_current_scan_type in struct iio_info.h]hUsed in rare cases where there is more than one scan format for a channel. When this is used, the flag has_ext_scan_type must be set and the driver must implement get_current_scan_type in struct iio_info.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjrubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h;``num_ext_scan_type`` Number of elements in ext_scan_type. h](jr )}(h``num_ext_scan_type``h]h)}(hjh]hnum_ext_scan_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h$Number of elements in ext_scan_type.h]h$Number of elements in ext_scan_type.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h\``info_mask_separate`` What information is to be exported that is specific to this channel. h](jr )}(h``info_mask_separate``h]h)}(hjh]hinfo_mask_separate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hDWhat information is to be exported that is specific to this channel.h]hDWhat information is to be exported that is specific to this channel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(hs``info_mask_separate_available`` What availability information is to be exported that is specific to this channel. h](jr )}(h ``info_mask_separate_available``h]h)}(hj%h]hinfo_mask_separate_available}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hQWhat availability information is to be exported that is specific to this channel.h]hQWhat availability information is to be exported that is specific to this channel.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj;ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hj:hKhjubjl )}(hq``info_mask_shared_by_type`` What information is to be exported that is shared by all channels of the same type. h](jr )}(h``info_mask_shared_by_type``h]h)}(hj_h]hinfo_mask_shared_by_type}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjYubj )}(hhh]h)}(hSWhat information is to be exported that is shared by all channels of the same type.h]hSWhat information is to be exported that is shared by all channels of the same type.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjuubah}(h]h ]h"]h$]h&]uh1j hjYubeh}(h]h ]h"]h$]h&]uh1jk hjthKhjubjl )}(h``info_mask_shared_by_type_available`` What availability information is to be exported that is shared by all channels of the same type. h](jr )}(h&``info_mask_shared_by_type_available``h]h)}(hjh]h"info_mask_shared_by_type_available}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h`What availability information is to be exported that is shared by all channels of the same type.h]h`What availability information is to be exported that is shared by all channels of the same type.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(hu``info_mask_shared_by_dir`` What information is to be exported that is shared by all channels of the same direction. h](jr )}(h``info_mask_shared_by_dir``h]h)}(hjh]hinfo_mask_shared_by_dir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hXWhat information is to be exported that is shared by all channels of the same direction.h]hXWhat information is to be exported that is shared by all channels of the same direction.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``info_mask_shared_by_dir_available`` What availability information is to be exported that is shared by all channels of the same direction. h](jr )}(h%``info_mask_shared_by_dir_available``h]h)}(hj h]h!info_mask_shared_by_dir_available}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(heWhat availability information is to be exported that is shared by all channels of the same direction.h]heWhat availability information is to be exported that is shared by all channels of the same direction.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj#ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hj"hKhjubjl )}(h_``info_mask_shared_by_all`` What information is to be exported that is shared by all channels. h](jr )}(h``info_mask_shared_by_all``h]h)}(hjGh]hinfo_mask_shared_by_all}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjAubj )}(hhh]h)}(hBWhat information is to be exported that is shared by all channels.h]hBWhat information is to be exported that is shared by all channels.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj]ubah}(h]h ]h"]h$]h&]uh1j hjAubeh}(h]h ]h"]h$]h&]uh1jk hj\hKhjubjl )}(hv``info_mask_shared_by_all_available`` What availability information is to be exported that is shared by all channels. h](jr )}(h%``info_mask_shared_by_all_available``h]h)}(hjh]h!info_mask_shared_by_all_available}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj{ubj )}(hhh]h)}(hOWhat availability information is to be exported that is shared by all channels.h]hOWhat availability information is to be exported that is shared by all channels.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hj{ubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(hL``event_spec`` Array of events which should be registered for this channel. h](jr )}(h``event_spec``h]h)}(hjh]h event_spec}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hread_label() to override the label, which unlike **extend_name** does not affect sysfs filenames. h](jr )}(h``extend_name``h]h)}(hjhh]h extend_name}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjbubj )}(hhh]h)}(hXAllows labeling of channel attributes with an informative name. Note this has no effect codes etc, unlike modifiers. This field is deprecated in favour of providing iio_info->read_label() to override the label, which unlike **extend_name** does not affect sysfs filenames.h](hAllows labeling of channel attributes with an informative name. Note this has no effect codes etc, unlike modifiers. This field is deprecated in favour of providing iio_info->read_label() to override the label, which unlike }(hjhhhNhNubj)}(h**extend_name**h]h extend_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh! does not affect sysfs filenames.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj~ubah}(h]h ]h"]h$]h&]uh1j hjbubeh}(h]h ]h"]h$]h&]uh1jk hj}hKhjubjl )}(h``datasheet_name`` A name used in in-kernel mapping of channels. It should correspond to the first name that the channel is referred to by in the datasheet (e.g. IND), or the nearest possible compound name (e.g. IND-INC). h](jr )}(h``datasheet_name``h]h)}(hjh]hdatasheet_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hA name used in in-kernel mapping of channels. It should correspond to the first name that the channel is referred to by in the datasheet (e.g. IND), or the nearest possible compound name (e.g. IND-INC).h]hA name used in in-kernel mapping of channels. It should correspond to the first name that the channel is referred to by in the datasheet (e.g. IND), or the nearest possible compound name (e.g. IND-INC).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``modified`` Does a modifier apply to this channel. What these are depends on the channel type. Modifier is set in channel2. Examples are IIO_MOD_X for axial sensors about the 'x' axis. h](jr )}(h ``modified``h]h)}(hjh]hmodified}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hDoes a modifier apply to this channel. What these are depends on the channel type. Modifier is set in channel2. Examples are IIO_MOD_X for axial sensors about the 'x' axis.h]hDoes a modifier apply to this channel. What these are depends on the channel type. Modifier is set in channel2. Examples are IIO_MOD_X for axial sensors about the ‘x’ axis.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``indexed`` Specify the channel has a numerical index. If not, the channel index number will be suppressed for sysfs attributes but not for event codes. h](jr )}(h ``indexed``h]h)}(hj(h]hindexed}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubj )}(hhh]h)}(hSpecify the channel has a numerical index. If not, the channel index number will be suppressed for sysfs attributes but not for event codes.h]hSpecify the channel has a numerical index. If not, the channel index number will be suppressed for sysfs attributes but not for event codes.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj>ubah}(h]h ]h"]h$]h&]uh1j hj"ubeh}(h]h ]h"]h$]h&]uh1jk hj=hMhjubjl )}(h``output`` Channel is output. h](jr )}(h ``output``h]h)}(hjbh]houtput}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj\ubj )}(hhh]h)}(hChannel is output.h]hChannel is output.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhMhjxubah}(h]h ]h"]h$]h&]uh1j hj\ubeh}(h]h ]h"]h$]h&]uh1jk hjwhMhjubjl )}(h*``differential`` Channel is differential. h](jr )}(h``differential``h]h)}(hjh]h differential}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubj )}(hhh]h)}(hChannel is differential.h]hChannel is differential.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhMhjubjl )}(hI``has_ext_scan_type`` True if ext_scan_type is used instead of scan_type.h](jr )}(h``has_ext_scan_type``h]h)}(hjh]hhas_ext_scan_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubj )}(hhh]h)}(h3True if ext_scan_type is used instead of scan_type.h]h3True if ext_scan_type is used instead of scan_type.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhMhjubeh}(h]h ]h"]h$]h&]uh1jf hj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!iio_channel_has_info (C function)c.iio_channel_has_infohNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hZbool iio_channel_has_info (const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h]j)}(hYbool iio_channel_has_info(const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h](hdesc_sig_keyword_type)}(hboolh]hbool}(hj0hhhNhNubah}(h]h ]ktah"]h$]h&]uh1j.hj*hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM)ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*hhhj?hM)ubj)}(hiio_channel_has_infoh]j)}(hiio_channel_has_infoh]hiio_channel_has_info}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ](jjeh"]h$]h&]jjuh1jhj*hhhj?hM)ubhdesc_parameterlist)}(h@(const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h](hdesc_parameter)}(h const struct iio_chan_spec *chanh](j)}(hconsth]hconst}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubh)}(hhh]j)}(h iio_chan_spech]h iio_chan_spec}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj#reftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjTsbc.iio_channel_has_infoasbuh1hhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubhdesc_sig_punctuation)}(hjh]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjnubj)}(hchanh]hchan}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjhubjm)}(henum iio_chan_info_enum typeh](j)}(henumh]henum}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hiio_chan_info_enumh]hiio_chan_info_enum}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj,modnameN classnameNjj)}j]jc.iio_channel_has_infoasbuh1hhjubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htypeh]htype}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjhubeh}(h]h ]h"]h$]h&]jjuh1jfhj*hhhj?hM)ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj&hhhj?hM)ubah}(h]j!ah ](jjeh"]h$]h&]jj)jhuh1jhj?hM)hj#hhubj)}(hhh]h)}(h2Checks whether a channel supports a info attributeh]h2Checks whether a channel supports a info attribute}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM)hj}hhubah}(h]h ]h"]h$]h&]uh1jhj#hhhj?hM)ubeh}(h]h ](j#functioneh"]h$]h&]j j#j jj jj j j uh1jhhhjmhNhNubj )}(hX**Parameters** ``const struct iio_chan_spec *chan`` The channel to be queried ``enum iio_chan_info_enum type`` Type of the info attribute to be checked **Description** Returns true if the channels supports reporting values for the given info attribute type, false otherwise.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM-hjubjg )}(hhh](jl )}(h?``const struct iio_chan_spec *chan`` The channel to be queried h](jr )}(h$``const struct iio_chan_spec *chan``h]h)}(hjh]h const struct iio_chan_spec *chan}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM*hjubj )}(hhh]h)}(hThe channel to be queriedh]hThe channel to be queried}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM*hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhM*hjubjl )}(hJ``enum iio_chan_info_enum type`` Type of the info attribute to be checked h](jr )}(h ``enum iio_chan_info_enum type``h]h)}(hjh]henum iio_chan_info_enum type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM+hjubj )}(hhh]h)}(h(Type of the info attribute to be checkedh]h(Type of the info attribute to be checked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM+hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhM+hjubeh}(h]h ]h"]h$]h&]uh1jf hjubh)}(h**Description**h]j)}(hj5h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM-hjubh)}(hjReturns true if the channels supports reporting values for the given info attribute type, false otherwise.h]hjReturns true if the channels supports reporting values for the given info attribute type, false otherwise.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM,hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&iio_channel_has_available (C function)c.iio_channel_has_availablehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h_bool iio_channel_has_available (const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h]j)}(h^bool iio_channel_has_available(const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h](j/)}(hj2h]hbool}(hjzhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjvhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM:ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvhhhjhM:ubj)}(hiio_channel_has_availableh]j)}(hiio_channel_has_availableh]hiio_channel_has_available}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjvhhhjhM:ubjg)}(h@(const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h](jm)}(h const struct iio_chan_spec *chanh](j)}(hjth]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h iio_chan_spech]h iio_chan_spec}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.iio_channel_has_availableasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hchanh]hchan}(hj* hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjubjm)}(henum iio_chan_info_enum typeh](j)}(hj h]henum}(hjC hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj? ubj)}(h h]h }(hjP hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj? ubh)}(hhh]j)}(hiio_chan_info_enumh]hiio_chan_info_enum}(hja hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjc modnameN classnameNjj)}j]j c.iio_channel_has_availableasbuh1hhj? ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj? ubj)}(htypeh]htype}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj? ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjubeh}(h]h ]h"]h$]h&]jjuh1jfhjvhhhjhM:ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjrhhhjhM:ubah}(h]jmah ](jjeh"]h$]h&]jj)jhuh1jhjhM:hjohhubj)}(hhh]h)}(h.Checks if a channel has an available attributeh]h.Checks if a channel has an available attribute}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM:hj hhubah}(h]h ]h"]h$]h&]uh1jhjohhhjhM:ubeh}(h]h ](j#functioneh"]h$]h&]j j#j j j j j j j uh1jhhhjmhNhNubj )}(hX#**Parameters** ``const struct iio_chan_spec *chan`` The channel to be queried ``enum iio_chan_info_enum type`` Type of the available attribute to be checked **Description** Returns true if the channel supports reporting available values for the given attribute type, false otherwise.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM>hj ubjg )}(hhh](jl )}(h?``const struct iio_chan_spec *chan`` The channel to be queried h](jr )}(h$``const struct iio_chan_spec *chan``h]h)}(hj h]h const struct iio_chan_spec *chan}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM;hj ubj )}(hhh]h)}(hThe channel to be queriedh]hThe channel to be queried}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj !hM;hj!ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj !hM;hj ubjl )}(hO``enum iio_chan_info_enum type`` Type of the available attribute to be checked h](jr )}(h ``enum iio_chan_info_enum type``h]h)}(hj1!h]henum iio_chan_info_enum type}(hj3!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/!ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM<hj+!ubj )}(hhh]h)}(h-Type of the available attribute to be checkedh]h-Type of the available attribute to be checked}(hjJ!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjF!hM<hjG!ubah}(h]h ]h"]h$]h&]uh1j hj+!ubeh}(h]h ]h"]h$]h&]uh1jk hjF!hM<hj ubeh}(h]h ]h"]h$]h&]uh1jf hj ubh)}(h**Description**h]j)}(hjl!h]h Description}(hjn!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj!ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM>hj ubh)}(hnReturns true if the channel supports reporting available values for the given attribute type, false otherwise.h]hnReturns true if the channel supports reporting available values for the given attribute type, false otherwise.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM=hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_info (C struct) c.iio_infohNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_infoh]j)}(hstruct iio_infoh](j)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMCubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj!hMCubj)}(hiio_infoh]j)}(hj!h]hiio_info}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj!hhhj!hMCubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj!hhhj!hMCubah}(h]j!ah ](jjeh"]h$]h&]jj)jhuh1jhj!hMChj!hhubj)}(hhh]h)}(h!constant information about deviceh]h!constant information about device}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj!hhubah}(h]h ]h"]h$]h&]uh1jhj!hhhj!hMCubeh}(h]h ](j#structeh"]h$]h&]j j#j j "j j "j j j uh1jhhhjmhNhNubj )}(hXm**Definition**:: struct iio_info { const struct attribute_group *event_attrs; const struct attribute_group *attrs; int (*read_raw)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long mask); int (*read_raw_multi)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int max_len, int *vals, int *val_len, long mask); int (*read_avail)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, const int **vals, int *type, int *length, long mask); int (*write_raw)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int val, int val2, long mask); int (*read_label)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, char *label); int (*write_raw_get_fmt)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, long mask); int (*read_event_config)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir); int (*write_event_config)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir, bool state); int (*read_event_value)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir, enum iio_event_info info, int *val, int *val2); int (*write_event_value)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir, enum iio_event_info info, int val, int val2); int (*read_event_label)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, enum iio_event_type type, enum iio_event_direction dir, char *label); int (*validate_trigger)(struct iio_dev *indio_dev, struct iio_trigger *trig); int (*get_current_scan_type)(const struct iio_dev *indio_dev, const struct iio_chan_spec *chan); int (*update_scan_mode)(struct iio_dev *indio_dev, const unsigned long *scan_mask); int (*debugfs_reg_access)(struct iio_dev *indio_dev, unsigned int reg, unsigned int writeval, unsigned int *readval); int (*fwnode_xlate)(struct iio_dev *indio_dev, const struct fwnode_reference_args *iiospec); int (*hwfifo_set_watermark)(struct iio_dev *indio_dev, unsigned int val); int (*hwfifo_flush_to_buffer)(struct iio_dev *indio_dev, unsigned int count); }; **Members** ``event_attrs`` event control attributes ``attrs`` general purpose device attributes ``read_raw`` function to request a value from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. val and val2 will contain the elements making up the returned value. ``read_raw_multi`` function to return values from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. vals pointer contain the elements making up the returned value. max_len specifies maximum number of elements vals pointer can contain. val_len is used to return length of valid elements in vals. ``read_avail`` function to return the available values from the device. mask specifies which value. Note 0 means the available values for the channel in question. Return value specifies if a IIO_AVAIL_LIST or a IIO_AVAIL_RANGE is returned in vals. The type of the vals are returned in type and the number of vals is returned in length. For ranges, there are always three vals returned; min, step and max. For lists, all possible values are enumerated. ``write_raw`` function to write a value to the device. Parameters are the same as for read_raw. ``read_label`` function to request label name for a specified label, for better channel identification. ``write_raw_get_fmt`` callback function to query the expected format/precision. If not set by the driver, write_raw returns IIO_VAL_INT_PLUS_MICRO. ``read_event_config`` find out if the event is enabled. ``write_event_config`` set if the event is enabled. ``read_event_value`` read a configuration value associated with the event. ``write_event_value`` write a configuration value for the event. ``read_event_label`` function to request label name for a specified label, for better event identification. ``validate_trigger`` function to validate the trigger when the current trigger gets changed. ``get_current_scan_type`` must be implemented by drivers that use ext_scan_type in the channel spec to return the index of the currently active ext_scan type for a channel. ``update_scan_mode`` function to configure device and scan buffer when channels have changed ``debugfs_reg_access`` function to read or write register value of device ``fwnode_xlate`` fwnode based function pointer to obtain channel specifier index. ``hwfifo_set_watermark`` function pointer to set the current hardware fifo watermark level; see hwfifo_* entries in Documentation/ABI/testing/sysfs-bus-iio for details on how the hardware fifo operates ``hwfifo_flush_to_buffer`` function pointer to flush the samples stored in the hardware fifo to the device buffer. The driver should not flush more than count samples. The function must return the number of samples flushed, 0 if no samples were flushed or a negative integer if no samples were flushed and there was an error.0h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubh:}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubj)}(hX struct iio_info { const struct attribute_group *event_attrs; const struct attribute_group *attrs; int (*read_raw)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long mask); int (*read_raw_multi)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int max_len, int *vals, int *val_len, long mask); int (*read_avail)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, const int **vals, int *type, int *length, long mask); int (*write_raw)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int val, int val2, long mask); int (*read_label)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, char *label); int (*write_raw_get_fmt)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, long mask); int (*read_event_config)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir); int (*write_event_config)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir, bool state); int (*read_event_value)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir, enum iio_event_info info, int *val, int *val2); int (*write_event_value)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir, enum iio_event_info info, int val, int val2); int (*read_event_label)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, enum iio_event_type type, enum iio_event_direction dir, char *label); int (*validate_trigger)(struct iio_dev *indio_dev, struct iio_trigger *trig); int (*get_current_scan_type)(const struct iio_dev *indio_dev, const struct iio_chan_spec *chan); int (*update_scan_mode)(struct iio_dev *indio_dev, const unsigned long *scan_mask); int (*debugfs_reg_access)(struct iio_dev *indio_dev, unsigned int reg, unsigned int writeval, unsigned int *readval); int (*fwnode_xlate)(struct iio_dev *indio_dev, const struct fwnode_reference_args *iiospec); int (*hwfifo_set_watermark)(struct iio_dev *indio_dev, unsigned int val); int (*hwfifo_flush_to_buffer)(struct iio_dev *indio_dev, unsigned int count); };h]hX struct iio_info { const struct attribute_group *event_attrs; const struct attribute_group *attrs; int (*read_raw)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long mask); int (*read_raw_multi)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int max_len, int *vals, int *val_len, long mask); int (*read_avail)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, const int **vals, int *type, int *length, long mask); int (*write_raw)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int val, int val2, long mask); int (*read_label)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, char *label); int (*write_raw_get_fmt)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, long mask); int (*read_event_config)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir); int (*write_event_config)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir, bool state); int (*read_event_value)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir, enum iio_event_info info, int *val, int *val2); int (*write_event_value)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir, enum iio_event_info info, int val, int val2); int (*read_event_label)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, enum iio_event_type type, enum iio_event_direction dir, char *label); int (*validate_trigger)(struct iio_dev *indio_dev, struct iio_trigger *trig); int (*get_current_scan_type)(const struct iio_dev *indio_dev, const struct iio_chan_spec *chan); int (*update_scan_mode)(struct iio_dev *indio_dev, const unsigned long *scan_mask); int (*debugfs_reg_access)(struct iio_dev *indio_dev, unsigned int reg, unsigned int writeval, unsigned int *readval); int (*fwnode_xlate)(struct iio_dev *indio_dev, const struct fwnode_reference_args *iiospec); int (*hwfifo_set_watermark)(struct iio_dev *indio_dev, unsigned int val); int (*hwfifo_flush_to_buffer)(struct iio_dev *indio_dev, unsigned int count); };}hj0"sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubh)}(h **Members**h]j)}(hjA"h]hMembers}(hjC"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?"ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubjg )}(hhh](jl )}(h)``event_attrs`` event control attributes h](jr )}(h``event_attrs``h]h)}(hj`"h]h event_attrs}(hjb"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^"ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjZ"ubj )}(hhh]h)}(hevent control attributesh]hevent control attributes}(hjy"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhju"hMhjv"ubah}(h]h ]h"]h$]h&]uh1j hjZ"ubeh}(h]h ]h"]h$]h&]uh1jk hju"hMhjW"ubjl )}(h,``attrs`` general purpose device attributes h](jr )}(h ``attrs``h]h)}(hj"h]hattrs}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubj )}(hhh]h)}(h!general purpose device attributesh]h!general purpose device attributes}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hMhj"ubah}(h]h ]h"]h$]h&]uh1j hj"ubeh}(h]h ]h"]h$]h&]uh1jk hj"hMhjW"ubjl )}(hX``read_raw`` function to request a value from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. val and val2 will contain the elements making up the returned value. h](jr )}(h ``read_raw``h]h)}(hj"h]hread_raw}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubj )}(hhh]h)}(hXfunction to request a value from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. val and val2 will contain the elements making up the returned value.h]hXfunction to request a value from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. val and val2 will contain the elements making up the returned value.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubah}(h]h ]h"]h$]h&]uh1j hj"ubeh}(h]h ]h"]h$]h&]uh1jk hj"hMhjW"ubjl )}(hX``read_raw_multi`` function to return values from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. vals pointer contain the elements making up the returned value. max_len specifies maximum number of elements vals pointer can contain. val_len is used to return length of valid elements in vals. h](jr )}(h``read_raw_multi``h]h)}(hj #h]hread_raw_multi}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj #ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#ubj )}(hhh]h)}(hXfunction to return values from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. vals pointer contain the elements making up the returned value. max_len specifies maximum number of elements vals pointer can contain. val_len is used to return length of valid elements in vals.h]hXfunction to return values from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. vals pointer contain the elements making up the returned value. max_len specifies maximum number of elements vals pointer can contain. val_len is used to return length of valid elements in vals.}(hj%#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"#ubah}(h]h ]h"]h$]h&]uh1j hj#ubeh}(h]h ]h"]h$]h&]uh1jk hj!#hMhjW"ubjl )}(hX``read_avail`` function to return the available values from the device. mask specifies which value. Note 0 means the available values for the channel in question. Return value specifies if a IIO_AVAIL_LIST or a IIO_AVAIL_RANGE is returned in vals. The type of the vals are returned in type and the number of vals is returned in length. For ranges, there are always three vals returned; min, step and max. For lists, all possible values are enumerated. h](jr )}(h``read_avail``h]h)}(hjF#h]h read_avail}(hjH#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjD#ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj@#ubj )}(hhh]h)}(hXfunction to return the available values from the device. mask specifies which value. Note 0 means the available values for the channel in question. Return value specifies if a IIO_AVAIL_LIST or a IIO_AVAIL_RANGE is returned in vals. The type of the vals are returned in type and the number of vals is returned in length. For ranges, there are always three vals returned; min, step and max. For lists, all possible values are enumerated.h]hXfunction to return the available values from the device. mask specifies which value. Note 0 means the available values for the channel in question. Return value specifies if a IIO_AVAIL_LIST or a IIO_AVAIL_RANGE is returned in vals. The type of the vals are returned in type and the number of vals is returned in length. For ranges, there are always three vals returned; min, step and max. For lists, all possible values are enumerated.}(hj_#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj\#ubah}(h]h ]h"]h$]h&]uh1j hj@#ubeh}(h]h ]h"]h$]h&]uh1jk hj[#hMhjW"ubjl )}(h```write_raw`` function to write a value to the device. Parameters are the same as for read_raw. h](jr )}(h ``write_raw``h]h)}(hj#h]h write_raw}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~#ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjz#ubj )}(hhh]h)}(hQfunction to write a value to the device. Parameters are the same as for read_raw.h]hQfunction to write a value to the device. Parameters are the same as for read_raw.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#ubah}(h]h ]h"]h$]h&]uh1j hjz#ubeh}(h]h ]h"]h$]h&]uh1jk hj#hMhjW"ubjl )}(hh``read_label`` function to request label name for a specified label, for better channel identification. h](jr )}(h``read_label``h]h)}(hj#h]h read_label}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#ubj )}(hhh]h)}(hXfunction to request label name for a specified label, for better channel identification.h]hXfunction to request label name for a specified label, for better channel identification.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#ubah}(h]h ]h"]h$]h&]uh1j hj#ubeh}(h]h ]h"]h$]h&]uh1jk hj#hMhjW"ubjl )}(h``write_raw_get_fmt`` callback function to query the expected format/precision. If not set by the driver, write_raw returns IIO_VAL_INT_PLUS_MICRO. h](jr )}(h``write_raw_get_fmt``h]h)}(hj#h]hwrite_raw_get_fmt}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#ubj )}(hhh]h)}(h}callback function to query the expected format/precision. If not set by the driver, write_raw returns IIO_VAL_INT_PLUS_MICRO.h]h}callback function to query the expected format/precision. If not set by the driver, write_raw returns IIO_VAL_INT_PLUS_MICRO.}(hj $hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj $ubah}(h]h ]h"]h$]h&]uh1j hj#ubeh}(h]h ]h"]h$]h&]uh1jk hj $hMhjW"ubjl )}(h8``read_event_config`` find out if the event is enabled. h](jr )}(h``read_event_config``h]h)}(hj.$h]hread_event_config}(hj0$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,$ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj($ubj )}(hhh]h)}(h!find out if the event is enabled.h]h!find out if the event is enabled.}(hjG$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjC$hMhjD$ubah}(h]h ]h"]h$]h&]uh1j hj($ubeh}(h]h ]h"]h$]h&]uh1jk hjC$hMhjW"ubjl )}(h4``write_event_config`` set if the event is enabled. h](jr )}(h``write_event_config``h]h)}(hjg$h]hwrite_event_config}(hji$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje$ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhja$ubj )}(hhh]h)}(hset if the event is enabled.h]hset if the event is enabled.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|$hMhj}$ubah}(h]h ]h"]h$]h&]uh1j hja$ubeh}(h]h ]h"]h$]h&]uh1jk hj|$hMhjW"ubjl )}(hK``read_event_value`` read a configuration value associated with the event. h](jr )}(h``read_event_value``h]h)}(hj$h]hread_event_value}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj$ubj )}(hhh]h)}(h5read a configuration value associated with the event.h]h5read a configuration value associated with the event.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hMhj$ubah}(h]h ]h"]h$]h&]uh1j hj$ubeh}(h]h ]h"]h$]h&]uh1jk hj$hMhjW"ubjl )}(hA``write_event_value`` write a configuration value for the event. h](jr )}(h``write_event_value``h]h)}(hj$h]hwrite_event_value}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj$ubj )}(hhh]h)}(h*write a configuration value for the event.h]h*write a configuration value for the event.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hMhj$ubah}(h]h ]h"]h$]h&]uh1j hj$ubeh}(h]h ]h"]h$]h&]uh1jk hj$hMhjW"ubjl )}(hl``read_event_label`` function to request label name for a specified label, for better event identification. h](jr )}(h``read_event_label``h]h)}(hj%h]hread_event_label}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj %ubj )}(hhh]h)}(hVfunction to request label name for a specified label, for better event identification.h]hVfunction to request label name for a specified label, for better event identification.}(hj+%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj(%ubah}(h]h ]h"]h$]h&]uh1j hj %ubeh}(h]h ]h"]h$]h&]uh1jk hj'%hMhjW"ubjl )}(h]``validate_trigger`` function to validate the trigger when the current trigger gets changed. h](jr )}(h``validate_trigger``h]h)}(hjL%h]hvalidate_trigger}(hjN%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJ%ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjF%ubj )}(hhh]h)}(hGfunction to validate the trigger when the current trigger gets changed.h]hGfunction to validate the trigger when the current trigger gets changed.}(hje%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb%ubah}(h]h ]h"]h$]h&]uh1j hjF%ubeh}(h]h ]h"]h$]h&]uh1jk hja%hMhjW"ubjl )}(h``get_current_scan_type`` must be implemented by drivers that use ext_scan_type in the channel spec to return the index of the currently active ext_scan type for a channel. h](jr )}(h``get_current_scan_type``h]h)}(hj%h]hget_current_scan_type}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubj )}(hhh]h)}(hmust be implemented by drivers that use ext_scan_type in the channel spec to return the index of the currently active ext_scan type for a channel.h]hmust be implemented by drivers that use ext_scan_type in the channel spec to return the index of the currently active ext_scan type for a channel.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubah}(h]h ]h"]h$]h&]uh1j hj%ubeh}(h]h ]h"]h$]h&]uh1jk hj%hMhjW"ubjl )}(h]``update_scan_mode`` function to configure device and scan buffer when channels have changed h](jr )}(h``update_scan_mode``h]h)}(hj%h]hupdate_scan_mode}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubj )}(hhh]h)}(hGfunction to configure device and scan buffer when channels have changedh]hGfunction to configure device and scan buffer when channels have changed}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubah}(h]h ]h"]h$]h&]uh1j hj%ubeh}(h]h ]h"]h$]h&]uh1jk hj%hMhjW"ubjl )}(hJ``debugfs_reg_access`` function to read or write register value of device h](jr )}(h``debugfs_reg_access``h]h)}(hj%h]hdebugfs_reg_access}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubj )}(hhh]h)}(h2function to read or write register value of deviceh]h2function to read or write register value of device}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hMhj&ubah}(h]h ]h"]h$]h&]uh1j hj%ubeh}(h]h ]h"]h$]h&]uh1jk hj&hMhjW"ubjl )}(hR``fwnode_xlate`` fwnode based function pointer to obtain channel specifier index. h](jr )}(h``fwnode_xlate``h]h)}(hj3&h]h fwnode_xlate}(hj5&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1&ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj-&ubj )}(hhh]h)}(h@fwnode based function pointer to obtain channel specifier index.h]h@fwnode based function pointer to obtain channel specifier index.}(hjL&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH&hMhjI&ubah}(h]h ]h"]h$]h&]uh1j hj-&ubeh}(h]h ]h"]h$]h&]uh1jk hjH&hMhjW"ubjl )}(h``hwfifo_set_watermark`` function pointer to set the current hardware fifo watermark level; see hwfifo_* entries in Documentation/ABI/testing/sysfs-bus-iio for details on how the hardware fifo operates h](jr )}(h``hwfifo_set_watermark``h]h)}(hjl&h]hhwfifo_set_watermark}(hjn&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj&ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjf&ubj )}(hhh]h)}(hfunction pointer to set the current hardware fifo watermark level; see hwfifo_* entries in Documentation/ABI/testing/sysfs-bus-iio for details on how the hardware fifo operatesh]hfunction pointer to set the current hardware fifo watermark level; see hwfifo_* entries in Documentation/ABI/testing/sysfs-bus-iio for details on how the hardware fifo operates}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj&ubah}(h]h ]h"]h$]h&]uh1j hjf&ubeh}(h]h ]h"]h$]h&]uh1jk hj&hMhjW"ubjl )}(hXE``hwfifo_flush_to_buffer`` function pointer to flush the samples stored in the hardware fifo to the device buffer. The driver should not flush more than count samples. The function must return the number of samples flushed, 0 if no samples were flushed or a negative integer if no samples were flushed and there was an error.h](jr )}(h``hwfifo_flush_to_buffer``h]h)}(hj&h]hhwfifo_flush_to_buffer}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj&ubj )}(hhh]h)}(hX*function pointer to flush the samples stored in the hardware fifo to the device buffer. The driver should not flush more than count samples. The function must return the number of samples flushed, 0 if no samples were flushed or a negative integer if no samples were flushed and there was an error.h]hX*function pointer to flush the samples stored in the hardware fifo to the device buffer. The driver should not flush more than count samples. The function must return the number of samples flushed, 0 if no samples were flushed or a negative integer if no samples were flushed and there was an error.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj&ubah}(h]h ]h"]h$]h&]uh1j hj&ubeh}(h]h ]h"]h$]h&]uh1jk hj&hMhjW"ubeh}(h]h ]h"]h$]h&]uh1jf hj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_buffer_setup_ops (C struct)c.iio_buffer_setup_opshNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_buffer_setup_opsh]j)}(hstruct iio_buffer_setup_opsh](j)}(hjh]hstruct}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&hhhj 'hMubj)}(hiio_buffer_setup_opsh]j)}(hj&h]hiio_buffer_setup_ops}(hj 'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj&hhhj 'hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj&hhhj 'hMubah}(h]j&ah ](jjeh"]h$]h&]jj)jhuh1jhj 'hMhj&hhubj)}(hhh]h)}(hbuffer setup related callbacksh]hbuffer setup related callbacks}(hjB'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM-hj?'hhubah}(h]h ]h"]h$]h&]uh1jhj&hhhj 'hMubeh}(h]h ](j#structeh"]h$]h&]j j#j jZ'j jZ'j j j uh1jhhhjmhNhNubj )}(hX**Definition**:: struct iio_buffer_setup_ops { int (*preenable)(struct iio_dev *); int (*postenable)(struct iio_dev *); int (*predisable)(struct iio_dev *); int (*postdisable)(struct iio_dev *); bool (*validate_scan_mask)(struct iio_dev *indio_dev, const unsigned long *scan_mask); }; **Members** ``preenable`` [DRIVER] function to run prior to marking buffer enabled ``postenable`` [DRIVER] function to run after marking buffer enabled ``predisable`` [DRIVER] function to run prior to marking buffer disabled ``postdisable`` [DRIVER] function to run after marking buffer disabled ``validate_scan_mask`` [DRIVER] function callback to check whether a given scan mask is valid for the device.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjf'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb'ubh:}(hjb'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM1hj^'ubj)}(hXstruct iio_buffer_setup_ops { int (*preenable)(struct iio_dev *); int (*postenable)(struct iio_dev *); int (*predisable)(struct iio_dev *); int (*postdisable)(struct iio_dev *); bool (*validate_scan_mask)(struct iio_dev *indio_dev, const unsigned long *scan_mask); };h]hXstruct iio_buffer_setup_ops { int (*preenable)(struct iio_dev *); int (*postenable)(struct iio_dev *); int (*predisable)(struct iio_dev *); int (*postdisable)(struct iio_dev *); bool (*validate_scan_mask)(struct iio_dev *indio_dev, const unsigned long *scan_mask); };}hj'sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM3hj^'ubh)}(h **Members**h]j)}(hj'h]hMembers}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM;hj^'ubjg )}(hhh](jl )}(hG``preenable`` [DRIVER] function to run prior to marking buffer enabled h](jr )}(h ``preenable``h]h)}(hj'h]h preenable}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM/hj'ubj )}(hhh]h)}(h8[DRIVER] function to run prior to marking buffer enabledh]h8[DRIVER] function to run prior to marking buffer enabled}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hM/hj'ubah}(h]h ]h"]h$]h&]uh1j hj'ubeh}(h]h ]h"]h$]h&]uh1jk hj'hM/hj'ubjl )}(hE``postenable`` [DRIVER] function to run after marking buffer enabled h](jr )}(h``postenable``h]h)}(hj'h]h postenable}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM0hj'ubj )}(hhh]h)}(h5[DRIVER] function to run after marking buffer enabledh]h5[DRIVER] function to run after marking buffer enabled}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hM0hj'ubah}(h]h ]h"]h$]h&]uh1j hj'ubeh}(h]h ]h"]h$]h&]uh1jk hj'hM0hj'ubjl )}(hI``predisable`` [DRIVER] function to run prior to marking buffer disabled h](jr )}(h``predisable``h]h)}(hj!(h]h predisable}(hj#(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM2hj(ubj )}(hhh]h)}(h9[DRIVER] function to run prior to marking buffer disabledh]h9[DRIVER] function to run prior to marking buffer disabled}(hj:(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM1hj7(ubah}(h]h ]h"]h$]h&]uh1j hj(ubeh}(h]h ]h"]h$]h&]uh1jk hj6(hM2hj'ubjl )}(hG``postdisable`` [DRIVER] function to run after marking buffer disabled h](jr )}(h``postdisable``h]h)}(hj[(h]h postdisable}(hj](hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjY(ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM3hjU(ubj )}(hhh]h)}(h6[DRIVER] function to run after marking buffer disabledh]h6[DRIVER] function to run after marking buffer disabled}(hjt(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjp(hM3hjq(ubah}(h]h ]h"]h$]h&]uh1j hjU(ubeh}(h]h ]h"]h$]h&]uh1jk hjp(hM3hj'ubjl )}(hm``validate_scan_mask`` [DRIVER] function callback to check whether a given scan mask is valid for the device.h](jr )}(h``validate_scan_mask``h]h)}(hj(h]hvalidate_scan_mask}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM4hj(ubj )}(hhh]h)}(hV[DRIVER] function callback to check whether a given scan mask is valid for the device.h]hV[DRIVER] function callback to check whether a given scan mask is valid for the device.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hM4hj(ubah}(h]h ]h"]h$]h&]uh1j hj(ubeh}(h]h ]h"]h$]h&]uh1jk hj(hM4hj'ubeh}(h]h ]h"]h$]h&]uh1jf hj^'ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_dev (C struct) c.iio_devhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_devh]j)}(hstruct iio_devh](j)}(hjh]hstruct}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM;ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhhj(hM;ubj)}(hiio_devh]j)}(hj(h]hiio_dev}(hj )hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj )ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj(hhhj(hM;ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj(hhhj(hM;ubah}(h]j(ah ](jjeh"]h$]h&]jj)jhuh1jhj(hM;hj(hhubj)}(hhh]h)}(hindustrial I/O deviceh]hindustrial I/O device}(hj/)hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM@hj,)hhubah}(h]h ]h"]h$]h&]uh1jhj(hhhj(hM;ubeh}(h]h ](j#structeh"]h$]h&]j j#j jG)j jG)j j j uh1jhhhjmhNhNubj )}(hXJ **Definition**:: struct iio_dev { int modes; struct device dev; struct iio_buffer *buffer; int scan_bytes; const unsigned long *available_scan_masks; unsigned int masklength; const unsigned long *active_scan_mask; bool scan_timestamp; struct iio_trigger *trig; struct iio_poll_func *pollfunc; struct iio_poll_func *pollfunc_event; struct iio_chan_spec const *channels; int num_channels; const char *name; const char *label; const struct iio_info *info; const struct iio_buffer_setup_ops *setup_ops; void * priv; }; **Members** ``modes`` [DRIVER] bitmask listing all the operating modes supported by the IIO device. This list should be initialized before registering the IIO device. It can also be filed up by the IIO core, as a result of enabling particular features in the driver (see iio_triggered_event_setup()). ``dev`` [DRIVER] device structure, should be assigned a parent and owner ``buffer`` [DRIVER] any buffer present ``scan_bytes`` [INTERN] num bytes captured to be fed to buffer demux ``available_scan_masks`` [DRIVER] optional array of allowed bitmasks. Sort the array in order of preference, the most preferred masks first. ``masklength`` [INTERN] the length of the mask established from channels ``active_scan_mask`` [INTERN] union of all scan masks requested by buffers ``scan_timestamp`` [INTERN] set if any buffers have requested timestamp ``trig`` [INTERN] current device trigger (buffer modes) ``pollfunc`` [DRIVER] function run on trigger being received ``pollfunc_event`` [DRIVER] function run on events trigger being received ``channels`` [DRIVER] channel specification structure table ``num_channels`` [DRIVER] number of channels specified in **channels**. ``name`` [DRIVER] name of the device. ``label`` [DRIVER] unique name to identify which device this is ``info`` [DRIVER] callbacks and constant info from driver ``setup_ops`` [DRIVER] callbacks to call before and after buffer enable/disable ``priv`` [DRIVER] reference to driver's private information **MUST** be accessed **ONLY** via iio_priv() helperh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjS)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO)ubh:}(hjO)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMDhjK)ubj)}(hXstruct iio_dev { int modes; struct device dev; struct iio_buffer *buffer; int scan_bytes; const unsigned long *available_scan_masks; unsigned int masklength; const unsigned long *active_scan_mask; bool scan_timestamp; struct iio_trigger *trig; struct iio_poll_func *pollfunc; struct iio_poll_func *pollfunc_event; struct iio_chan_spec const *channels; int num_channels; const char *name; const char *label; const struct iio_info *info; const struct iio_buffer_setup_ops *setup_ops; void * priv; };h]hXstruct iio_dev { int modes; struct device dev; struct iio_buffer *buffer; int scan_bytes; const unsigned long *available_scan_masks; unsigned int masklength; const unsigned long *active_scan_mask; bool scan_timestamp; struct iio_trigger *trig; struct iio_poll_func *pollfunc; struct iio_poll_func *pollfunc_event; struct iio_chan_spec const *channels; int num_channels; const char *name; const char *label; const struct iio_info *info; const struct iio_buffer_setup_ops *setup_ops; void * priv; };}hjl)sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMFhjK)ubh)}(h **Members**h]j)}(hj})h]hMembers}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{)ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM[hjK)ubjg )}(hhh](jl )}(hX!``modes`` [DRIVER] bitmask listing all the operating modes supported by the IIO device. This list should be initialized before registering the IIO device. It can also be filed up by the IIO core, as a result of enabling particular features in the driver (see iio_triggered_event_setup()). h](jr )}(h ``modes``h]h)}(hj)h]hmodes}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMGhj)ubj )}(hhh]h)}(hX[DRIVER] bitmask listing all the operating modes supported by the IIO device. This list should be initialized before registering the IIO device. It can also be filed up by the IIO core, as a result of enabling particular features in the driver (see iio_triggered_event_setup()).h]hX[DRIVER] bitmask listing all the operating modes supported by the IIO device. This list should be initialized before registering the IIO device. It can also be filed up by the IIO core, as a result of enabling particular features in the driver (see iio_triggered_event_setup()).}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMBhj)ubah}(h]h ]h"]h$]h&]uh1j hj)ubeh}(h]h ]h"]h$]h&]uh1jk hj)hMGhj)ubjl )}(hI``dev`` [DRIVER] device structure, should be assigned a parent and owner h](jr )}(h``dev``h]h)}(hj)h]hdev}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMIhj)ubj )}(hhh]h)}(h@[DRIVER] device structure, should be assigned a parent and ownerh]h@[DRIVER] device structure, should be assigned a parent and owner}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMHhj)ubah}(h]h ]h"]h$]h&]uh1j hj)ubeh}(h]h ]h"]h$]h&]uh1jk hj)hMIhj)ubjl )}(h'``buffer`` [DRIVER] any buffer present h](jr )}(h ``buffer``h]h)}(hj*h]hbuffer}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMJhj *ubj )}(hhh]h)}(hRIVER] any buffer presenth]hRIVER] any buffer present}(hj)*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%*hMJhj&*ubah}(h]h ]h"]h$]h&]uh1j hj *ubeh}(h]h ]h"]h$]h&]uh1jk hj%*hMJhj)ubjl )}(hE``scan_bytes`` [INTERN] num bytes captured to be fed to buffer demux h](jr )}(h``scan_bytes``h]h)}(hjI*h]h scan_bytes}(hjK*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG*ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMKhjC*ubj )}(hhh]h)}(h5[INTERN] num bytes captured to be fed to buffer demuxh]h5[INTERN] num bytes captured to be fed to buffer demux}(hjb*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^*hMKhj_*ubah}(h]h ]h"]h$]h&]uh1j hjC*ubeh}(h]h ]h"]h$]h&]uh1jk hj^*hMKhj)ubjl )}(h``available_scan_masks`` [DRIVER] optional array of allowed bitmasks. Sort the array in order of preference, the most preferred masks first. h](jr )}(h``available_scan_masks``h]h)}(hj*h]havailable_scan_masks}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMNhj|*ubj )}(hhh]h)}(hs[DRIVER] optional array of allowed bitmasks. Sort the array in order of preference, the most preferred masks first.h]hs[DRIVER] optional array of allowed bitmasks. Sort the array in order of preference, the most preferred masks first.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMLhj*ubah}(h]h ]h"]h$]h&]uh1j hj|*ubeh}(h]h ]h"]h$]h&]uh1jk hj*hMNhj)ubjl )}(hI``masklength`` [INTERN] the length of the mask established from channels h](jr )}(h``masklength``h]h)}(hj*h]h masklength}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMPhj*ubj )}(hhh]h)}(h9[INTERN] the length of the mask established from channelsh]h9[INTERN] the length of the mask established from channels}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMOhj*ubah}(h]h ]h"]h$]h&]uh1j hj*ubeh}(h]h ]h"]h$]h&]uh1jk hj*hMPhj)ubjl )}(hK``active_scan_mask`` [INTERN] union of all scan masks requested by buffers h](jr )}(h``active_scan_mask``h]h)}(hj*h]hactive_scan_mask}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMQhj*ubj )}(hhh]h)}(h5[INTERN] union of all scan masks requested by buffersh]h5[INTERN] union of all scan masks requested by buffers}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj +hMQhj +ubah}(h]h ]h"]h$]h&]uh1j hj*ubeh}(h]h ]h"]h$]h&]uh1jk hj +hMQhj)ubjl )}(hH``scan_timestamp`` [INTERN] set if any buffers have requested timestamp h](jr )}(h``scan_timestamp``h]h)}(hj/+h]hscan_timestamp}(hj1+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-+ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMRhj)+ubj )}(hhh]h)}(h4[INTERN] set if any buffers have requested timestamph]h4[INTERN] set if any buffers have requested timestamp}(hjH+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjD+hMRhjE+ubah}(h]h ]h"]h$]h&]uh1j hj)+ubeh}(h]h ]h"]h$]h&]uh1jk hjD+hMRhj)ubjl )}(h8``trig`` [INTERN] current device trigger (buffer modes) h](jr )}(h``trig``h]h)}(hjh+h]htrig}(hjj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf+ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMShjb+ubj )}(hhh]h)}(h.[INTERN] current device trigger (buffer modes)h]h.[INTERN] current device trigger (buffer modes)}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}+hMShj~+ubah}(h]h ]h"]h$]h&]uh1j hjb+ubeh}(h]h ]h"]h$]h&]uh1jk hj}+hMShj)ubjl )}(h=``pollfunc`` [DRIVER] function run on trigger being received h](jr )}(h ``pollfunc``h]h)}(hj+h]hpollfunc}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMThj+ubj )}(hhh]h)}(h/[DRIVER] function run on trigger being receivedh]h/[DRIVER] function run on trigger being received}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hMThj+ubah}(h]h ]h"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]uh1jk hj+hMThj)ubjl )}(hJ``pollfunc_event`` [DRIVER] function run on events trigger being received h](jr )}(h``pollfunc_event``h]h)}(hj+h]hpollfunc_event}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMUhj+ubj )}(hhh]h)}(h6[DRIVER] function run on events trigger being receivedh]h6[DRIVER] function run on events trigger being received}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hMUhj+ubah}(h]h ]h"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]uh1jk hj+hMUhj)ubjl )}(h<``channels`` [DRIVER] channel specification structure table h](jr )}(h ``channels``h]h)}(hj,h]hchannels}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMVhj ,ubj )}(hhh]h)}(h.[DRIVER] channel specification structure tableh]h.[DRIVER] channel specification structure table}(hj,,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(,hMVhj),ubah}(h]h ]h"]h$]h&]uh1j hj ,ubeh}(h]h ]h"]h$]h&]uh1jk hj(,hMVhj)ubjl )}(hH``num_channels`` [DRIVER] number of channels specified in **channels**. h](jr )}(h``num_channels``h]h)}(hjL,h]h num_channels}(hjN,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJ,ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMWhjF,ubj )}(hhh]h)}(h6[DRIVER] number of channels specified in **channels**.h](h)[DRIVER] number of channels specified in }(hje,hhhNhNubj)}(h **channels**h]hchannels}(hjm,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje,ubh.}(hje,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhja,hMWhjb,ubah}(h]h ]h"]h$]h&]uh1j hjF,ubeh}(h]h ]h"]h$]h&]uh1jk hja,hMWhj)ubjl )}(h&``name`` [DRIVER] name of the device. h](jr )}(h``name``h]h)}(hj,h]hname}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMXhj,ubj )}(hhh]h)}(h[DRIVER] name of the device.h]h[DRIVER] name of the device.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMXhj,ubah}(h]h ]h"]h$]h&]uh1j hj,ubeh}(h]h ]h"]h$]h&]uh1jk hj,hMXhj)ubjl )}(h@``label`` [DRIVER] unique name to identify which device this is h](jr )}(h ``label``h]h)}(hj,h]hlabel}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMYhj,ubj )}(hhh]h)}(h5[DRIVER] unique name to identify which device this ish]h5[DRIVER] unique name to identify which device this is}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMYhj,ubah}(h]h ]h"]h$]h&]uh1j hj,ubeh}(h]h ]h"]h$]h&]uh1jk hj,hMYhj)ubjl )}(h:``info`` [DRIVER] callbacks and constant info from driver h](jr )}(h``info``h]h)}(hj -h]hinfo}(hj -hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMZhj-ubj )}(hhh]h)}(h0[DRIVER] callbacks and constant info from driverh]h0[DRIVER] callbacks and constant info from driver}(hj"-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMZhj-ubah}(h]h ]h"]h$]h&]uh1j hj-ubeh}(h]h ]h"]h$]h&]uh1jk hj-hMZhj)ubjl )}(hP``setup_ops`` [DRIVER] callbacks to call before and after buffer enable/disable h](jr )}(h ``setup_ops``h]h)}(hjB-h]h setup_ops}(hjD-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@-ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM\hj<-ubj )}(hhh]h)}(hA[DRIVER] callbacks to call before and after buffer enable/disableh]hA[DRIVER] callbacks to call before and after buffer enable/disable}(hj[-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM[hjX-ubah}(h]h ]h"]h$]h&]uh1j hj<-ubeh}(h]h ]h"]h$]h&]uh1jk hjW-hM\hj)ubjl )}(ho``priv`` [DRIVER] reference to driver's private information **MUST** be accessed **ONLY** via iio_priv() helperh](jr )}(h``priv``h]h)}(hj|-h]hpriv}(hj~-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz-ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM]hjv-ubj )}(hhh]h)}(hf[DRIVER] reference to driver's private information **MUST** be accessed **ONLY** via iio_priv() helperh](h5[DRIVER] reference to driver’s private information }(hj-hhhNhNubj)}(h**MUST**h]hMUST}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubh be accessed }(hj-hhhNhNubj)}(h**ONLY**h]hONLY}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubh via iio_priv() helper}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hM]hj-ubah}(h]h ]h"]h$]h&]uh1j hjv-ubeh}(h]h ]h"]h$]h&]uh1jk hj-hM]hj)ubeh}(h]h ]h"]h$]h&]uh1jf hjK)ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_register (C macro)c.iio_device_registerhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_device_registerh]j)}(hiio_device_registerh]j)}(hiio_device_registerh]j)}(hj-h]hiio_device_register}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj-hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj-hhhj.hMubah}(h]j-ah ](jjeh"]h$]h&]jj)jhuh1jhj.hMhj-hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj-hhhj.hMubeh}(h]h ](j#macroeh"]h$]h&]j j#j j).j j).j j j uh1jhhhjmhNhNubh)}(h#``iio_device_register (indio_dev)``h]h)}(hj/.h]hiio_device_register (indio_dev)}(hj1.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-.ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(h)register a device with the IIO subsystem h]h)}(h(register a device with the IIO subsystemh]h(register a device with the IIO subsystem}(hjI.hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjE.ubah}(h]h ]h"]h$]h&]uh1j hjW.hMhjmhhubj )}(hL**Parameters** ``indio_dev`` Device structure filled by the device driverh](h)}(h**Parameters**h]j)}(hjd.h]h Parameters}(hjf.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb.ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj^.ubjg )}(hhh]jl )}(h:``indio_dev`` Device structure filled by the device driverh](jr )}(h ``indio_dev``h]h)}(hj.h]h indio_dev}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj}.ubj )}(hhh]h)}(h,Device structure filled by the device driverh]h,Device structure filled by the device driver}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj.ubah}(h]h ]h"]h$]h&]uh1j hj}.ubeh}(h]h ]h"]h$]h&]uh1jk hj.hMhjz.ubah}(h]h ]h"]h$]h&]uh1jf hj^.ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devm_iio_device_register (C macro)c.devm_iio_device_registerhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hdevm_iio_device_registerh]j)}(hdevm_iio_device_registerh]j)}(hdevm_iio_device_registerh]j)}(hj.h]hdevm_iio_device_register}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj.hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj.hhhj.hMubah}(h]j.ah ](jjeh"]h$]h&]jj)jhuh1jhj.hMhj.hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj.hhhj.hMubeh}(h]h ](j#macroeh"]h$]h&]j j#j j /j j /j j j uh1jhhhjmhNhNubh)}(h-``devm_iio_device_register (dev, indio_dev)``h]h)}(hj/h]h)devm_iio_device_register (dev, indio_dev)}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(h'Resource-managed iio_device_register() h]h)}(h&Resource-managed iio_device_register()h]h&Resource-managed iio_device_register()}(hj-/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj)/ubah}(h]h ]h"]h$]h&]uh1j hj;/hMhjmhhubj )}(hX**Parameters** ``dev`` Device to allocate iio_dev for ``indio_dev`` Device structure filled by the device driver **Description** Managed iio_device_register. The IIO device registered with this function is automatically unregistered on driver detach. This function calls iio_device_register() internally. Refer to that function for more information. **Return** 0 on success, negative error number on failure.h](h)}(h**Parameters**h]j)}(hjH/h]h Parameters}(hjJ/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF/ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB/ubjg )}(hhh](jl )}(h'``dev`` Device to allocate iio_dev for h](jr )}(h``dev``h]h)}(hjg/h]hdev}(hji/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje/ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhja/ubj )}(hhh]h)}(hDevice to allocate iio_dev forh]hDevice to allocate iio_dev for}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|/hMhj}/ubah}(h]h ]h"]h$]h&]uh1j hja/ubeh}(h]h ]h"]h$]h&]uh1jk hj|/hMhj^/ubjl )}(h;``indio_dev`` Device structure filled by the device driver h](jr )}(h ``indio_dev``h]h)}(hj/h]h indio_dev}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj/ubj )}(hhh]h)}(h,Device structure filled by the device driverh]h,Device structure filled by the device driver}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1j hj/ubeh}(h]h ]h"]h$]h&]uh1jk hj/hMhj^/ubeh}(h]h ]h"]h$]h&]uh1jf hjB/ubh)}(h**Description**h]j)}(hj/h]h Description}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB/ubh)}(hManaged iio_device_register. The IIO device registered with this function is automatically unregistered on driver detach. This function calls iio_device_register() internally. Refer to that function for more information.h]hManaged iio_device_register. The IIO device registered with this function is automatically unregistered on driver detach. This function calls iio_device_register() internally. Refer to that function for more information.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB/ubh)}(h **Return**h]j)}(hj0h]hReturn}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB/ubh)}(h/0 on success, negative error number on failure.h]h/0 on success, negative error number on failure.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB/ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$iio_device_claim_direct (C function)c.iio_device_claim_directhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h8bool iio_device_claim_direct (struct iio_dev *indio_dev)h]j)}(h7bool iio_device_claim_direct(struct iio_dev *indio_dev)h](j/)}(hj2h]hbool}(hjG0hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjC0hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hjU0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC0hhhjT0hMubj)}(hiio_device_claim_directh]j)}(hiio_device_claim_directh]hiio_device_claim_direct}(hjg0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc0ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjC0hhhjT0hMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj0modnameN classnameNjj)}j]j)}jji0sbc.iio_device_claim_directasbuh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(h indio_devh]h indio_dev}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj{0ubah}(h]h ]h"]h$]h&]jjuh1jfhjC0hhhjT0hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj?0hhhjT0hMubah}(h]j:0ah ](jjeh"]h$]h&]jj)jhuh1jhjT0hMhj<0hhubj)}(hhh]h)}(hKeep device in direct modeh]hKeep device in direct mode}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj1hhubah}(h]h ]h"]h$]h&]uh1jhj<0hhhjT0hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j1j j1j j j uh1jhhhjmhNhNubj )}(hX.**Parameters** ``struct iio_dev *indio_dev`` the iio_dev associated with the device **Description** If the device is in direct mode it is guaranteed to stay that way until iio_device_release_direct() is called. Use with iio_device_release_direct(). **Return** true on success, false on failure.h](h)}(h**Parameters**h]j)}(hj(1h]h Parameters}(hj*1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&1ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"1ubjg )}(hhh]jl )}(hE``struct iio_dev *indio_dev`` the iio_dev associated with the device h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjG1h]hstruct iio_dev *indio_dev}(hjI1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE1ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjA1ubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hj`1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\1hMhj]1ubah}(h]h ]h"]h$]h&]uh1j hjA1ubeh}(h]h ]h"]h$]h&]uh1jk hj\1hMhj>1ubah}(h]h ]h"]h$]h&]uh1jf hj"1ubh)}(h**Description**h]j)}(hj1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"1ubh)}(hnIf the device is in direct mode it is guaranteed to stay that way until iio_device_release_direct() is called.Yh]hnIf the device is in direct mode it is guaranteed to stay that way until iio_device_release_direct() is called.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"1ubh)}(h%Use with iio_device_release_direct().h]h%Use with iio_device_release_direct().}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"1ubh)}(h **Return**h]j)}(hj1h]hReturn}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"1ubh)}(h"true on success, false on failure.h]h"true on success, false on failure.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"1ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#iio_device_release_direct (C macro)c.iio_device_release_directhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_device_release_directh]j)}(hiio_device_release_directh]j)}(hiio_device_release_directh]j)}(hj1h]hiio_device_release_direct}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj1hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj1hhhj2hMubah}(h]j1ah ](jjeh"]h$]h&]jj)jhuh1jhj2hMhj1hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj1hhhj2hMubeh}(h]h ](j#macroeh"]h$]h&]j j#j j-2j j-2j j j uh1jhhhjmhNhNubh)}(h)``iio_device_release_direct (indio_dev)``h]h)}(hj32h]h%iio_device_release_direct (indio_dev)}(hj52hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj12ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(hReleases claim on direct mode h]h)}(hReleases claim on direct modeh]hReleases claim on direct mode}(hjM2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjI2ubah}(h]h ]h"]h$]h&]uh1j hj[2hMhjmhhubj )}(h**Parameters** ``indio_dev`` the iio_dev associated with the device **Description** Release the claim. Device is no longer guaranteed to stay in direct mode. Use with iio_device_claim_direct().h](h)}(h**Parameters**h]j)}(hjh2h]h Parameters}(hjj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb2ubjg )}(hhh]jl )}(h5``indio_dev`` the iio_dev associated with the device h](jr )}(h ``indio_dev``h]h)}(hj2h]h indio_dev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1j hj2ubeh}(h]h ]h"]h$]h&]uh1jk hj2hMhj~2ubah}(h]h ]h"]h$]h&]uh1jf hjb2ubh)}(h**Description**h]j)}(hj2h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb2ubh)}(hIRelease the claim. Device is no longer guaranteed to stay in direct mode.h]hIRelease the claim. Device is no longer guaranteed to stay in direct mode.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb2ubh)}(h#Use with iio_device_claim_direct().h]h#Use with iio_device_claim_direct().}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb2ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j-iio_device_try_claim_buffer_mode (C function)"c.iio_device_try_claim_buffer_modehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hAbool iio_device_try_claim_buffer_mode (struct iio_dev *indio_dev)h]j)}(h@bool iio_device_try_claim_buffer_mode(struct iio_dev *indio_dev)h](j/)}(hj2h]hbool}(hj3hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj3hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hj$3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhj#3hMubj)}(h iio_device_try_claim_buffer_modeh]j)}(h iio_device_try_claim_buffer_modeh]h iio_device_try_claim_buffer_mode}(hj63hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj23ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj3hhhj#3hMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjR3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN3ubj)}(h h]h }(hj_3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN3ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjp3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm3ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjr3modnameN classnameNjj)}j]j)}jj83sb"c.iio_device_try_claim_buffer_modeasbuh1hhjN3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN3ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN3ubj)}(h indio_devh]h indio_dev}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjJ3ubah}(h]h ]h"]h$]h&]jjuh1jfhj3hhhj#3hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj3hhhj#3hMubah}(h]j 3ah ](jjeh"]h$]h&]jj)jhuh1jhj#3hMhj 3hhubj)}(hhh]h)}(hKeep device in buffer modeh]hKeep device in buffer mode}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj3hhubah}(h]h ]h"]h$]h&]uh1jhj 3hhhj#3hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j3j j3j j j uh1jhhhjmhNhNubj )}(hX8**Parameters** ``struct iio_dev *indio_dev`` the iio_dev associated with the device **Description** If the device is in buffer mode it is guaranteed to stay that way until iio_device_release_buffer_mode() is called. Use with iio_device_release_buffer_mode(). **Return** true on success, false on failure.h](h)}(h**Parameters**h]j)}(hj3h]h Parameters}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj3ubjg )}(hhh]jl )}(hE``struct iio_dev *indio_dev`` the iio_dev associated with the device h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj4h]hstruct iio_dev *indio_dev}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj4ubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hj/4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+4hMhj,4ubah}(h]h ]h"]h$]h&]uh1j hj4ubeh}(h]h ]h"]h$]h&]uh1jk hj+4hMhj 4ubah}(h]h ]h"]h$]h&]uh1jf hj3ubh)}(h**Description**h]j)}(hjQ4h]h Description}(hjS4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO4ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj3ubh)}(hsIf the device is in buffer mode it is guaranteed to stay that way until iio_device_release_buffer_mode() is called.h]hsIf the device is in buffer mode it is guaranteed to stay that way until iio_device_release_buffer_mode() is called.}(hjg4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj3ubh)}(h*Use with iio_device_release_buffer_mode().h]h*Use with iio_device_release_buffer_mode().}(hjv4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj3ubh)}(h **Return**h]j)}(hj4h]hReturn}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj3ubh)}(h"true on success, false on failure.h]h"true on success, false on failure.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(iio_device_release_buffer_mode (C macro) c.iio_device_release_buffer_modehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_device_release_buffer_modeh]j)}(hiio_device_release_buffer_modeh]j)}(hiio_device_release_buffer_modeh]j)}(hj4h]hiio_device_release_buffer_mode}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj4hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj4hhhj4hMubah}(h]j4ah ](jjeh"]h$]h&]jj)jhuh1jhj4hMhj4hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj4hhhj4hMubeh}(h]h ](j#macroeh"]h$]h&]j j#j j4j j4j j j uh1jhhhjmhNhNubh)}(h.``iio_device_release_buffer_mode (indio_dev)``h]h)}(hj5h]h*iio_device_release_buffer_mode (indio_dev)}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(hreleases claim on buffer mode h]h)}(hreleases claim on buffer modeh]hreleases claim on buffer mode}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj5ubah}(h]h ]h"]h$]h&]uh1j hj*5hMhjmhhubj )}(h**Parameters** ``indio_dev`` the iio_dev associated with the device **Description** Release the claim. Device is no longer guaranteed to stay in buffer mode. Use with iio_device_try_claim_buffer_mode().h](h)}(h**Parameters**h]j)}(hj75h]h Parameters}(hj95hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj55ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj15ubjg )}(hhh]jl )}(h5``indio_dev`` the iio_dev associated with the device h](jr )}(h ``indio_dev``h]h)}(hjV5h]h indio_dev}(hjX5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjT5ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjP5ubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hjo5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjk5hMhjl5ubah}(h]h ]h"]h$]h&]uh1j hjP5ubeh}(h]h ]h"]h$]h&]uh1jk hjk5hMhjM5ubah}(h]h ]h"]h$]h&]uh1jf hj15ubh)}(h**Description**h]j)}(hj5h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj15ubh)}(hIRelease the claim. Device is no longer guaranteed to stay in buffer mode.h]hIRelease the claim. Device is no longer guaranteed to stay in buffer mode.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj15ubh)}(h,Use with iio_device_try_claim_buffer_mode().h]h,Use with iio_device_try_claim_buffer_mode().}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj15ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%IIO_DEV_ACQUIRE_DIRECT_MODE (C macro)c.IIO_DEV_ACQUIRE_DIRECT_MODEhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_DEV_ACQUIRE_DIRECT_MODEh]j)}(hIIO_DEV_ACQUIRE_DIRECT_MODEh]j)}(hIIO_DEV_ACQUIRE_DIRECT_MODEh]j)}(hj5h]hIIO_DEV_ACQUIRE_DIRECT_MODE}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj5hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj5hhhj5hMubah}(h]j5ah ](jjeh"]h$]h&]jj)jhuh1jhj5hMhj5hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj5hhhj5hMubeh}(h]h ](j#macroeh"]h$]h&]j j#j j6j j6j j j uh1jhhhjmhNhNubh)}(h,``IIO_DEV_ACQUIRE_DIRECT_MODE (dev, claim)``h]h)}(hj6h]h(IIO_DEV_ACQUIRE_DIRECT_MODE (dev, claim)}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(h=Tries to acquire the direct mode lock with automatic release h]h)}(h<ubjg )}(hhh]jl )}(h=``struct device *dev`` The device embedded in the IIO device h](jr )}(h``struct device *dev``h]h)}(hjc<h]hstruct device *dev}(hje<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhja<ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM9hj]<ubj )}(hhh]h)}(h%The device embedded in the IIO deviceh]h%The device embedded in the IIO device}(hj|<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx<hM9hjy<ubah}(h]h ]h"]h$]h&]uh1j hj]<ubeh}(h]h ]h"]h$]h&]uh1jk hjx<hM9hjZ<ubah}(h]h ]h"]h$]h&]uh1jf hj><ubh)}(h**Note**h]j)}(hj<h]hNote}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM;hj><ubh)}(hCThe device must be a IIO device, otherwise the result is undefined.h]hCThe device must be a IIO device, otherwise the result is undefined.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM;hj><ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_get (C function)c.iio_device_gethNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h;struct iio_dev * iio_device_get (struct iio_dev *indio_dev)h]j)}(h9struct iio_dev *iio_device_get(struct iio_dev *indio_dev)h](j)}(hjh]hstruct}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMCubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<hhhj<hMCubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj=modnameN classnameNjj)}j]j)}jiio_device_getsbc.iio_device_getasbuh1hhj<hhhj<hMCubj)}(h h]h }(hj#=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<hhhj<hMCubj)}(hjh]h*}(hj1=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<hhhj<hMCubj)}(hiio_device_geth]j)}(hj =h]hiio_device_get}(hjB=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>=ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj<hhhj<hMCubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj]=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY=ubj)}(h h]h }(hjj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY=ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj{=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx=ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj}=modnameN classnameNjj)}j]j=c.iio_device_getasbuh1hhjY=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY=ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY=ubj)}(h indio_devh]h indio_dev}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY=ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjU=ubah}(h]h ]h"]h$]h&]jjuh1jfhj<hhhj<hMCubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj<hhhj<hMCubah}(h]j<ah ](jjeh"]h$]h&]jj)jhuh1jhj<hMChj<hhubj)}(hhh]h)}(h(increment reference count for the deviceh]h(increment reference count for the device}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMChj=hhubah}(h]h ]h"]h$]h&]uh1jhj<hhhj<hMCubeh}(h]h ](j#functioneh"]h$]h&]j j#j j=j j=j j j uh1jhhhjmhNhNubj )}(hg**Parameters** ``struct iio_dev *indio_dev`` IIO device structure **Return** The passed IIO deviceh](h)}(h**Parameters**h]j)}(hj>h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMGhj=ubjg )}(hhh]jl )}(h3``struct iio_dev *indio_dev`` IIO device structure h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj>h]hstruct iio_dev *indio_dev}(hj!>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMDhj>ubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hj8>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4>hMDhj5>ubah}(h]h ]h"]h$]h&]uh1j hj>ubeh}(h]h ]h"]h$]h&]uh1jk hj4>hMDhj>ubah}(h]h ]h"]h$]h&]uh1jf hj=ubh)}(h **Return**h]j)}(hjZ>h]hReturn}(hj\>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX>ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMFhj=ubh)}(hThe passed IIO deviceh]hThe passed IIO device}(hjp>hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMFhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"iio_device_set_parent (C function)c.iio_device_set_parenthNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hMvoid iio_device_set_parent (struct iio_dev *indio_dev, struct device *parent)h]j)}(hLvoid iio_device_set_parent(struct iio_dev *indio_dev, struct device *parent)h](j/)}(hvoidh]hvoid}(hj>hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj>hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMNubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhhj>hMNubj)}(hiio_device_set_parenth]j)}(hiio_device_set_parenth]hiio_device_set_parent}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj>hhhj>hMNubjg)}(h2(struct iio_dev *indio_dev, struct device *parent)h](jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj>modnameN classnameNjj)}j]j)}jj>sbc.iio_device_set_parentasbuh1hhj>ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hjh]h*}(hj(?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h indio_devh]h indio_dev}(hj5?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj>ubjm)}(hstruct device *parenth](j)}(hjh]hstruct}(hjN?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ?ubj)}(h h]h }(hj[?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ?ubh)}(hhh]j)}(hdeviceh]hdevice}(hjl?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhji?ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjn?modnameN classnameNjj)}j]j?c.iio_device_set_parentasbuh1hhjJ?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ?ubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ?ubj)}(hparenth]hparent}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ?ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj>ubeh}(h]h ]h"]h$]h&]jjuh1jfhj>hhhj>hMNubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj>hhhj>hMNubah}(h]j>ah ](jjeh"]h$]h&]jj)jhuh1jhj>hMNhj>hhubj)}(hhh]h)}(h-assign parent device to the IIO device objecth]h-assign parent device to the IIO device object}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMNhj?hhubah}(h]h ]h"]h$]h&]uh1jhj>hhhj>hMNubeh}(h]h ](j#functioneh"]h$]h&]j j#j j?j j?j j j uh1jhhhjmhNhNubj )}(hX**Parameters** ``struct iio_dev *indio_dev`` IIO device structure ``struct device *parent`` reference to parent device object **Description** This utility must be called between IIO device allocation (via devm_iio_device_alloc()) & IIO device registration (via iio_device_register() and devm_iio_device_register())). By default, the device allocation will also assign a parent device to the IIO device object. In cases where devm_iio_device_alloc() is used, sometimes the parent device must be different than the device used to manage the allocation. In that case, this helper should be used to change the parent, hence the requirement to call this between allocation & registration.h](h)}(h**Parameters**h]j)}(hj?h]h Parameters}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMRhj?ubjg )}(hhh](jl )}(h3``struct iio_dev *indio_dev`` IIO device structure h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj@h]hstruct iio_dev *indio_dev}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMOhj @ubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hj)@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%@hMOhj&@ubah}(h]h ]h"]h$]h&]uh1j hj @ubeh}(h]h ]h"]h$]h&]uh1jk hj%@hMOhj@ubjl )}(h<``struct device *parent`` reference to parent device object h](jr )}(h``struct device *parent``h]h)}(hjI@h]hstruct device *parent}(hjK@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG@ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMPhjC@ubj )}(hhh]h)}(h!reference to parent device objecth]h!reference to parent device object}(hjb@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^@hMPhj_@ubah}(h]h ]h"]h$]h&]uh1j hjC@ubeh}(h]h ]h"]h$]h&]uh1jk hj^@hMPhj@ubeh}(h]h ]h"]h$]h&]uh1jf hj?ubh)}(h**Description**h]j)}(hj@h]h Description}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMRhj?ubh)}(hXThis utility must be called between IIO device allocation (via devm_iio_device_alloc()) & IIO device registration (via iio_device_register() and devm_iio_device_register())). By default, the device allocation will also assign a parent device to the IIO device object. In cases where devm_iio_device_alloc() is used, sometimes the parent device must be different than the device used to manage the allocation. In that case, this helper should be used to change the parent, hence the requirement to call this between allocation & registration.h]hXThis utility must be called between IIO device allocation (via devm_iio_device_alloc()) & IIO device registration (via iio_device_register() and devm_iio_device_register())). By default, the device allocation will also assign a parent device to the IIO device object. In cases where devm_iio_device_alloc() is used, sometimes the parent device must be different than the device used to manage the allocation. In that case, this helper should be used to change the parent, hence the requirement to call this between allocation & registration.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMQhj?ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#iio_device_set_drvdata (C function)c.iio_device_set_drvdatahNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hCvoid iio_device_set_drvdata (struct iio_dev *indio_dev, void *data)h]j)}(hBvoid iio_device_set_drvdata(struct iio_dev *indio_dev, void *data)h](j/)}(hvoidh]hvoid}(hj@hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj@hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMcubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj@hMcubj)}(hiio_device_set_drvdatah]j)}(hiio_device_set_drvdatah]hiio_device_set_drvdata}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj@hhhj@hMcubjg)}(h'(struct iio_dev *indio_dev, void *data)h](jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj$AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!Aubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj&AmodnameN classnameNjj)}j]j)}jj@sbc.iio_device_set_drvdataasbuh1hhjAubj)}(h h]h }(hjDAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(hjh]h*}(hjRAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(h indio_devh]h indio_dev}(hj_AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj@ubjm)}(h void *datah](j/)}(hvoidh]hvoid}(hjxAhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjtAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtAubj)}(hdatah]hdata}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtAubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj@ubeh}(h]h ]h"]h$]h&]jjuh1jfhj@hhhj@hMcubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj@hhhj@hMcubah}(h]j@ah ](jjeh"]h$]h&]jj)jhuh1jhj@hMchj@hhubj)}(hhh]h)}(hSet device driver datah]hSet device driver data}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMchjAhhubah}(h]h ]h"]h$]h&]uh1jhj@hhhj@hMcubeh}(h]h ](j#functioneh"]h$]h&]j j#j jAj jAj j j uh1jhhhjmhNhNubj )}(h**Parameters** ``struct iio_dev *indio_dev`` IIO device structure ``void *data`` Driver specific data **Description** Allows to attach an arbitrary pointer to an IIO device, which can later be retrieved by iio_device_get_drvdata().h](h)}(h**Parameters**h]j)}(hjAh]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMghjAubjg )}(hhh](jl )}(h3``struct iio_dev *indio_dev`` IIO device structure h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj Bh]hstruct iio_dev *indio_dev}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj Bubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMdhjBubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hj%BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!BhMdhj"Bubah}(h]h ]h"]h$]h&]uh1j hjBubeh}(h]h ]h"]h$]h&]uh1jk hj!BhMdhjBubjl )}(h$``void *data`` Driver specific data h](jr )}(h``void *data``h]h)}(hjEBh]h void *data}(hjGBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCBubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMehj?Bubj )}(hhh]h)}(hDriver specific datah]hDriver specific data}(hj^BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZBhMehj[Bubah}(h]h ]h"]h$]h&]uh1j hj?Bubeh}(h]h ]h"]h$]h&]uh1jk hjZBhMehjBubeh}(h]h ]h"]h$]h&]uh1jf hjAubh)}(h**Description**h]j)}(hjBh]h Description}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~Bubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMghjAubh)}(hqAllows to attach an arbitrary pointer to an IIO device, which can later be retrieved by iio_device_get_drvdata().h]hqAllows to attach an arbitrary pointer to an IIO device, which can later be retrieved by iio_device_get_drvdata().}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMfhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#iio_device_get_drvdata (C function)c.iio_device_get_drvdatahNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h?void * iio_device_get_drvdata (const struct iio_dev *indio_dev)h]j)}(h=void *iio_device_get_drvdata(const struct iio_dev *indio_dev)h](j/)}(hvoidh]hvoid}(hjBhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjBhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMpubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhjBhMpubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhjBhMpubj)}(hiio_device_get_drvdatah]j)}(hiio_device_get_drvdatah]hiio_device_get_drvdata}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ](jjeh"]h$]h&]jjuh1jhjBhhhjBhMpubjg)}(h!(const struct iio_dev *indio_dev)h]jm)}(hconst struct iio_dev *indio_devh](j)}(hjth]hconst}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Cubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Cubj)}(hjh]hstruct}(hj*ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Cubj)}(h h]h }(hj7ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Cubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjHChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjECubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjJCmodnameN classnameNjj)}j]j)}jjBsbc.iio_device_get_drvdataasbuh1hhj Cubj)}(h h]h }(hjhChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Cubj)}(hjh]h*}(hjvChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Cubj)}(h indio_devh]h indio_dev}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Cubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjCubah}(h]h ]h"]h$]h&]jjuh1jfhjBhhhjBhMpubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjBhhhjBhMpubah}(h]jBah ](jjeh"]h$]h&]jj)jhuh1jhjBhMphjBhhubj)}(hhh]h)}(hGet device driver datah]hGet device driver data}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMphjChhubah}(h]h ]h"]h$]h&]uh1jhjBhhhjBhMpubeh}(h]h ](j#functioneh"]h$]h&]j j#j jCj jCj j j uh1jhhhjmhNhNubj )}(h**Parameters** ``const struct iio_dev *indio_dev`` IIO device structure **Description** Returns the data previously set with iio_device_set_drvdata()h](h)}(h**Parameters**h]j)}(hjCh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMthjCubjg )}(hhh]jl )}(h9``const struct iio_dev *indio_dev`` IIO device structure h](jr )}(h#``const struct iio_dev *indio_dev``h]h)}(hjCh]hconst struct iio_dev *indio_dev}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMqhjCubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhMqhjDubah}(h]h ]h"]h$]h&]uh1j hjCubeh}(h]h ]h"]h$]h&]uh1jk hjDhMqhjCubah}(h]h ]h"]h$]h&]uh1jf hjCubh)}(h**Description**h]j)}(hj)Dh]h Description}(hj+DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Dubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMshjCubh)}(h=Returns the data previously set with iio_device_set_drvdata()h]h=Returns the data previously set with iio_device_set_drvdata()}(hj?DhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMrhjCubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$IIO_DECLARE_BUFFER_WITH_TS (C macro)c.IIO_DECLARE_BUFFER_WITH_TShNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_DECLARE_BUFFER_WITH_TSh]j)}(hIIO_DECLARE_BUFFER_WITH_TSh]j)}(hIIO_DECLARE_BUFFER_WITH_TSh]j)}(hjhDh]hIIO_DECLARE_BUFFER_WITH_TS}(hjrDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnDubah}(h]h ](jjeh"]h$]h&]jjuh1jhjjDhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjfDhhhjDhMubah}(h]jaDah ](jjeh"]h$]h&]jj)jhuh1jhjDhMhjcDhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjcDhhhjDhMubeh}(h]h ](j#macroeh"]h$]h&]j j#j jDj jDj j j uh1jhhhjmhNhNubh)}(h2``IIO_DECLARE_BUFFER_WITH_TS (type, name, count)``h]h)}(hjDh]h.IIO_DECLARE_BUFFER_WITH_TS (type, name, count)}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(h Declare a buffer with timestamp h]h)}(hDeclare a buffer with timestamph]hDeclare a buffer with timestamp}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjDubah}(h]h ]h"]h$]h&]uh1j hjDhMhjmhhubj )}(hX**Parameters** ``type`` element type of the buffer ``name`` identifier name of the buffer ``count`` number of elements in the buffer **Description** Declares a buffer that is safe to use with iio_push_to_buffers_with_ts(). In addition to allocating enough space for **count** elements of **type**, it also allocates space for a s64 timestamp at the end of the buffer and ensures proper alignment of the timestamp.h](h)}(h**Parameters**h]j)}(hjDh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjDubjg )}(hhh](jl )}(h$``type`` element type of the buffer h](jr )}(h``type``h]h)}(hjDh]htype}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjDubj )}(hhh]h)}(helement type of the bufferh]helement type of the buffer}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj EhMhjEubah}(h]h ]h"]h$]h&]uh1j hjDubeh}(h]h ]h"]h$]h&]uh1jk hj EhMhjDubjl )}(h'``name`` identifier name of the buffer h](jr )}(h``name``h]h)}(hj1Eh]hname}(hj3EhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/Eubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj+Eubj )}(hhh]h)}(hidentifier name of the bufferh]hidentifier name of the buffer}(hjJEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFEhMhjGEubah}(h]h ]h"]h$]h&]uh1j hj+Eubeh}(h]h ]h"]h$]h&]uh1jk hjFEhMhjDubjl )}(h+``count`` number of elements in the buffer h](jr )}(h ``count``h]h)}(hjjEh]hcount}(hjlEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhEubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjdEubj )}(hhh]h)}(h number of elements in the bufferh]h number of elements in the buffer}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMhjEubah}(h]h ]h"]h$]h&]uh1j hjdEubeh}(h]h ]h"]h$]h&]uh1jk hjEhMhjDubeh}(h]h ]h"]h$]h&]uh1jf hjDubh)}(h**Description**h]j)}(hjEh]h Description}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjDubh)}(hXDeclares a buffer that is safe to use with iio_push_to_buffers_with_ts(). In addition to allocating enough space for **count** elements of **type**, it also allocates space for a s64 timestamp at the end of the buffer and ensures proper alignment of the timestamp.h](huDeclares a buffer that is safe to use with iio_push_to_buffers_with_ts(). In addition to allocating enough space for }(hjEhhhNhNubj)}(h **count**h]hcount}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh elements of }(hjEhhhNhNubj)}(h**type**h]htype}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubhu, it also allocates space for a s64 timestamp at the end of the buffer and ensures proper alignment of the timestamp.}(hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjDubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(IIO_DECLARE_DMA_BUFFER_WITH_TS (C macro) c.IIO_DECLARE_DMA_BUFFER_WITH_TShNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_DECLARE_DMA_BUFFER_WITH_TSh]j)}(hIIO_DECLARE_DMA_BUFFER_WITH_TSh]j)}(hIIO_DECLARE_DMA_BUFFER_WITH_TSh]j)}(hjFh]hIIO_DECLARE_DMA_BUFFER_WITH_TS}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubah}(h]h ](jjeh"]h$]h&]jjuh1jhj Fhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjFhhhj%FhMubah}(h]jFah ](jjeh"]h$]h&]jj)jhuh1jhj%FhMhjFhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjFhhhj%FhMubeh}(h]h ](j#macroeh"]h$]h&]j j#j j>Fj j>Fj j j uh1jhhhjmhNhNubh)}(h6``IIO_DECLARE_DMA_BUFFER_WITH_TS (type, name, count)``h]h)}(hjDFh]h2IIO_DECLARE_DMA_BUFFER_WITH_TS (type, name, count)}(hjFFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBFubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(h,Declare a DMA-aligned buffer with timestamp h]h)}(h+Declare a DMA-aligned buffer with timestamph]h+Declare a DMA-aligned buffer with timestamp}(hj^FhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjZFubah}(h]h ]h"]h$]h&]uh1j hjlFhMhjmhhubj )}(hX**Parameters** ``type`` element type of the buffer ``name`` identifier name of the buffer ``count`` number of elements in the buffer **Description** Same as IIO_DECLARE_BUFFER_WITH_TS(), but is uses __aligned(IIO_DMA_MINALIGN) to ensure that the buffer doesn't share cachelines with anything that comes before it in a struct. This should not be used for stack-allocated buffers as stack memory cannot generally be used for DMA.h](h)}(h**Parameters**h]j)}(hjyFh]h Parameters}(hj{FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwFubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjsFubjg )}(hhh](jl )}(h$``type`` element type of the buffer h](jr )}(h``type``h]h)}(hjFh]htype}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjFubj )}(hhh]h)}(helement type of the bufferh]helement type of the buffer}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjFubah}(h]h ]h"]h$]h&]uh1j hjFubeh}(h]h ]h"]h$]h&]uh1jk hjFhMhjFubjl )}(h'``name`` identifier name of the buffer h](jr )}(h``name``h]h)}(hjFh]hname}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjFubj )}(hhh]h)}(hidentifier name of the bufferh]hidentifier name of the buffer}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjFubah}(h]h ]h"]h$]h&]uh1j hjFubeh}(h]h ]h"]h$]h&]uh1jk hjFhMhjFubjl )}(h+``count`` number of elements in the buffer h](jr )}(h ``count``h]h)}(hj Gh]hcount}(hj GhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjGubj )}(hhh]h)}(h number of elements in the bufferh]h number of elements in the buffer}(hj#GhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhMhj Gubah}(h]h ]h"]h$]h&]uh1j hjGubeh}(h]h ]h"]h$]h&]uh1jk hjGhMhjFubeh}(h]h ]h"]h$]h&]uh1jf hjsFubh)}(h**Description**h]j)}(hjEGh]h Description}(hjGGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCGubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjsFubh)}(hXSame as IIO_DECLARE_BUFFER_WITH_TS(), but is uses __aligned(IIO_DMA_MINALIGN) to ensure that the buffer doesn't share cachelines with anything that comes before it in a struct. This should not be used for stack-allocated buffers as stack memory cannot generally be used for DMA.h]hXSame as IIO_DECLARE_BUFFER_WITH_TS(), but is uses __aligned(IIO_DMA_MINALIGN) to ensure that the buffer doesn’t share cachelines with anything that comes before it in a struct. This should not be used for stack-allocated buffers as stack memory cannot generally be used for DMA.}(hj[GhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjsFubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#iio_get_debugfs_dentry (C function)c.iio_get_debugfs_dentryhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hBstruct dentry * iio_get_debugfs_dentry (struct iio_dev *indio_dev)h]j)}(h@struct dentry *iio_get_debugfs_dentry(struct iio_dev *indio_dev)h](j)}(hjh]hstruct}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhjGhMubh)}(hhh]j)}(hdentryh]hdentry}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjGmodnameN classnameNjj)}j]j)}jiio_get_debugfs_dentrysbc.iio_get_debugfs_dentryasbuh1hhjGhhhjGhMubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhjGhMubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhjGhMubj)}(hiio_get_debugfs_dentryh]j)}(hjGh]hiio_get_debugfs_dentry}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubah}(h]h ](jjeh"]h$]h&]jjuh1jhjGhhhjGhMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj"HhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj$HmodnameN classnameNjj)}j]jGc.iio_get_debugfs_dentryasbuh1hhjHubj)}(h h]h }(hj@HhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj)}(hjh]h*}(hjNHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj)}(h indio_devh]h indio_dev}(hj[HhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjGubah}(h]h ]h"]h$]h&]jjuh1jfhjGhhhjGhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjGhhhjGhMubah}(h]j}Gah ](jjeh"]h$]h&]jj)jhuh1jhjGhMhjGhhubj)}(hhh]h)}(h)helper function to get the debugfs_dentryh]h)helper function to get the debugfs_dentry}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjHhhubah}(h]h ]h"]h$]h&]uh1jhjGhhhjGhMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jHj jHj j j uh1jhhhjmhNhNubj )}(hO**Parameters** ``struct iio_dev *indio_dev`` IIO device structure for deviceh](h)}(h**Parameters**h]j)}(hjHh]h Parameters}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjHubjg )}(hhh]jl )}(h=``struct iio_dev *indio_dev`` IIO device structure for deviceh](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjHh]hstruct iio_dev *indio_dev}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjHubj )}(hhh]h)}(hIIO device structure for deviceh]hIIO device structure for device}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjHubah}(h]h ]h"]h$]h&]uh1j hjHubeh}(h]h ]h"]h$]h&]uh1jk hjHhMhjHubah}(h]h ]h"]h$]h&]uh1jf hjHubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*iio_device_suspend_triggering (C function)c.iio_device_suspend_triggeringhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h=int iio_device_suspend_triggering (struct iio_dev *indio_dev)h]j)}(hLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLhhhj/LhMubj)}(h h]h }(hjKLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLhhhj/LhMubh)}(hhh]j)}(h iio_scan_typeh]h iio_scan_type}(hj\LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYLubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj^LmodnameN classnameNjj)}j]j)}jiio_get_current_scan_typesbc.iio_get_current_scan_typeasbuh1hhjLhhhj/LhMubj)}(h h]h }(hj}LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLhhhj/LhMubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLhhhj/LhMubj)}(hiio_get_current_scan_typeh]j)}(hjzLh]hiio_get_current_scan_type}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ](jjeh"]h$]h&]jjuh1jhjLhhhj/LhMubjg)}(hC(const struct iio_dev *indio_dev, const struct iio_chan_spec *chan)h](jm)}(hconst struct iio_dev *indio_devh](j)}(hjth]hconst}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hjh]hstruct}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjLmodnameN classnameNjj)}j]jxLc.iio_get_current_scan_typeasbuh1hhjLubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h indio_devh]h indio_dev}(hj)MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjLubjm)}(h const struct iio_chan_spec *chanh](j)}(hjth]hconst}(hjBMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Mubj)}(h h]h }(hjOMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Mubj)}(hjh]hstruct}(hj]MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Mubj)}(h h]h }(hjjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Mubh)}(hhh]j)}(h iio_chan_spech]h iio_chan_spec}(hj{MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxMubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj}MmodnameN classnameNjj)}j]jxLc.iio_get_current_scan_typeasbuh1hhj>Mubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Mubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Mubj)}(hchanh]hchan}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Mubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjLubeh}(h]h ]h"]h$]h&]jjuh1jfhjLhhhj/LhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjLhhhj/LhMubah}(h]jLah ](jjeh"]h$]h&]jj)jhuh1jhj/LhMhjLhhubj)}(hhh]h)}(h'Get the current scan type for a channelh]h'Get the current scan type for a channel}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjMhhubah}(h]h ]h"]h$]h&]uh1jhjLhhhj/LhMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jMj jMj j j uh1jhhhjmhNhNubj )}(hX**Parameters** ``const struct iio_dev *indio_dev`` the IIO device to get the scan type for ``const struct iio_chan_spec *chan`` the channel to get the scan type for **Description** Most devices only have one scan type per channel and can just access it directly without calling this function. Core IIO code and drivers that implement ext_scan_type in the channel spec should use this function to get the current scan type for a channel. **Return** the current scan type for the channel or error.h](h)}(h**Parameters**h]j)}(hjNh]h Parameters}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjMubjg )}(hhh](jl )}(hL``const struct iio_dev *indio_dev`` the IIO device to get the scan type for h](jr )}(h#``const struct iio_dev *indio_dev``h]h)}(hjNh]hconst struct iio_dev *indio_dev}(hj!NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjNubj )}(hhh]h)}(h'the IIO device to get the scan type forh]h'the IIO device to get the scan type for}(hj8NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4NhMhj5Nubah}(h]h ]h"]h$]h&]uh1j hjNubeh}(h]h ]h"]h$]h&]uh1jk hj4NhMhjNubjl )}(hJ``const struct iio_chan_spec *chan`` the channel to get the scan type for h](jr )}(h$``const struct iio_chan_spec *chan``h]h)}(hjXNh]h const struct iio_chan_spec *chan}(hjZNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVNubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjRNubj )}(hhh]h)}(h$the channel to get the scan type forh]h$the channel to get the scan type for}(hjqNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmNhMhjnNubah}(h]h ]h"]h$]h&]uh1j hjRNubeh}(h]h ]h"]h$]h&]uh1jk hjmNhMhjNubeh}(h]h ]h"]h$]h&]uh1jf hjMubh)}(h**Description**h]j)}(hjNh]h Description}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjMubh)}(hMost devices only have one scan type per channel and can just access it directly without calling this function. Core IIO code and drivers that implement ext_scan_type in the channel spec should use this function to get the current scan type for a channel.h]hMost devices only have one scan type per channel and can just access it directly without calling this function. Core IIO code and drivers that implement ext_scan_type in the channel spec should use this function to get the current scan type for a channel.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjMubh)}(h **Return**h]j)}(hjNh]hReturn}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjMubh)}(h/the current scan type for the channel or error.h]h/the current scan type for the channel or error.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjMubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_get_masklength (C function)c.iio_get_masklengthhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hAunsigned int iio_get_masklength (const struct iio_dev *indio_dev)h]j)}(h@unsigned int iio_get_masklength(const struct iio_dev *indio_dev)h](j/)}(hunsignedh]hunsigned}(hjNhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjNhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhhj OhM ubj/)}(hinth]hint}(hjOhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjNhhhj OhM ubj)}(h h]h }(hj*OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhhj OhM ubj)}(hiio_get_masklengthh]j)}(hiio_get_masklengthh]hiio_get_masklength}(hjOsbc.iio_get_masklengthasbuh1hhjTOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTOubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTOubj)}(h indio_devh]h indio_dev}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTOubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjPOubah}(h]h ]h"]h$]h&]jjuh1jfhjNhhhj OhM ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjNhhhj OhM ubah}(h]jNah ](jjeh"]h$]h&]jj)jhuh1jhj OhM hjNhhubj)}(hhh]h)}(hGet length of the channels maskh]hGet length of the channels mask}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM hjOhhubah}(h]h ]h"]h$]h&]uh1jhjNhhhj OhM ubeh}(h]h ](j#functioneh"]h$]h&]j j#j jPj jPj j j uh1jhhhjmhNhNubj )}(h^**Parameters** ``const struct iio_dev *indio_dev`` the IIO device to get the masklength forh](h)}(h**Parameters**h]j)}(hjPh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjPubjg )}(hhh]jl )}(hL``const struct iio_dev *indio_dev`` the IIO device to get the masklength forh](jr )}(h#``const struct iio_dev *indio_dev``h]h)}(hj7Ph]hconst struct iio_dev *indio_dev}(hj9PhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5Pubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj1Pubj )}(hhh]h)}(h(the IIO device to get the masklength forh]h(the IIO device to get the masklength for}(hjPPhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjMPubah}(h]h ]h"]h$]h&]uh1j hj1Pubeh}(h]h ]h"]h$]h&]uh1jk hjLPhMhj.Pubah}(h]h ]h"]h$]h&]uh1jf hjPubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%iio_for_each_active_channel (C macro)c.iio_for_each_active_channelhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_for_each_active_channelh]j)}(hiio_for_each_active_channelh]j)}(hiio_for_each_active_channelh]j)}(hjPh]hiio_for_each_active_channel}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ](jjeh"]h$]h&]jjuh1jhjPhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjPhhhjPhMubah}(h]jPah ](jjeh"]h$]h&]jj)jhuh1jhjPhMhjPhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjPhhhjPhMubeh}(h]h ](j#macroeh"]h$]h&]j j#j jPj jPj j j uh1jhhhjmhNhNubh)}(h1``iio_for_each_active_channel (indio_dev, chan)``h]h)}(hjPh]h-iio_for_each_active_channel (indio_dev, chan)}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(hIterated over active channels h]h)}(hIterated over active channelsh]hIterated over active channels}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjPubah}(h]h ]h"]h$]h&]uh1j hjPhMhjmhhubj )}(ha**Parameters** ``indio_dev`` the IIO device ``chan`` Holds the index of the enabled channelh](h)}(h**Parameters**h]j)}(hjPh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjPubjg )}(hhh](jl )}(h``indio_dev`` the IIO device h](jr )}(h ``indio_dev``h]h)}(hjQh]h indio_dev}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjQubj )}(hhh]h)}(hthe IIO deviceh]hthe IIO device}(hj4QhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0QhMhj1Qubah}(h]h ]h"]h$]h&]uh1j hjQubeh}(h]h ]h"]h$]h&]uh1jk hj0QhMhjQubjl )}(h/``chan`` Holds the index of the enabled channelh](jr )}(h``chan``h]h)}(hjTQh]hchan}(hjVQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRQubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjNQubj )}(hhh]h)}(h&Holds the index of the enabled channelh]h&Holds the index of the enabled channel}(hjmQhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjjQubah}(h]h ]h"]h$]h&]uh1j hjNQubeh}(h]h ]h"]h$]h&]uh1jk hjiQhMhjQubeh}(h]h ]h"]h$]h&]uh1jf hjPubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_DEGREE_TO_RAD (C macro)c.IIO_DEGREE_TO_RADhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_DEGREE_TO_RADh]j)}(hIIO_DEGREE_TO_RADh]j)}(hIIO_DEGREE_TO_RADh]j)}(hjQh]hIIO_DEGREE_TO_RAD}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ](jjeh"]h$]h&]jjuh1jhjQhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM&ubah}(h]h ]h"]h$]h&]jjjuh1jjjhjQhhhjQhM&ubah}(h]jQah ](jjeh"]h$]h&]jj)jhuh1jhjQhM&hjQhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjQhhhjQhM&ubeh}(h]h ](j#macroeh"]h$]h&]j j#j jQj jQj j j uh1jhhhjmhNhNubh)}(h``IIO_DEGREE_TO_RAD (deg)``h]h)}(hjQh]hIIO_DEGREE_TO_RAD (deg)}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM(hjmhhubj )}(hConvert degree to rad h]h)}(hConvert degree to radh]hConvert degree to rad}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM&hjQubah}(h]h ]h"]h$]h&]uh1j hj RhM&hjmhhubj )}(hr**Parameters** ``deg`` A value in degree **Description** Returns the given value converted from degree to radh](h)}(h**Parameters**h]j)}(hjRh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM*hjRubjg )}(hhh]jl )}(h``deg`` A value in degree h](jr )}(h``deg``h]h)}(hj8Rh]hdeg}(hj:RhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6Rubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM'hj2Rubj )}(hhh]h)}(hA value in degreeh]hA value in degree}(hjQRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMRhM'hjNRubah}(h]h ]h"]h$]h&]uh1j hj2Rubeh}(h]h ]h"]h$]h&]uh1jk hjMRhM'hj/Rubah}(h]h ]h"]h$]h&]uh1jf hjRubh)}(h**Description**h]j)}(hjsRh]h Description}(hjuRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqRubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM)hjRubh)}(h4Returns the given value converted from degree to radh]h4Returns the given value converted from degree to rad}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM(hjRubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_RAD_TO_DEGREE (C macro)c.IIO_RAD_TO_DEGREEhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_RAD_TO_DEGREEh]j)}(hIIO_RAD_TO_DEGREEh]j)}(hIIO_RAD_TO_DEGREEh]j)}(hjRh]hIIO_RAD_TO_DEGREE}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ](jjeh"]h$]h&]jjuh1jhjRhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM.ubah}(h]h ]h"]h$]h&]jjjuh1jjjhjRhhhjRhM.ubah}(h]jRah ](jjeh"]h$]h&]jj)jhuh1jhjRhM.hjRhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjRhhhjRhM.ubeh}(h]h ](j#macroeh"]h$]h&]j j#j jRj jRj j j uh1jhhhjmhNhNubh)}(h``IIO_RAD_TO_DEGREE (rad)``h]h)}(hjRh]hIIO_RAD_TO_DEGREE (rad)}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM0hjmhhubj )}(hConvert rad to degree h]h)}(hConvert rad to degreeh]hConvert rad to degree}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM.hjSubah}(h]h ]h"]h$]h&]uh1j hjShM.hjmhhubj )}(ho**Parameters** ``rad`` A value in rad **Description** Returns the given value converted from rad to degreeh](h)}(h**Parameters**h]j)}(hj#Sh]h Parameters}(hj%ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!Subah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM2hjSubjg )}(hhh]jl )}(h``rad`` A value in rad h](jr )}(h``rad``h]h)}(hjBSh]hrad}(hjDShhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@Subah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM/hj``struct iio_dev *indio_dev`` IIO device structure for device h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj~Xh]hstruct iio_dev *indio_dev}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|Xubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhjxXubj )}(hhh]h)}(hIIO device structure for deviceh]hIIO device structure for device}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhKhjXubah}(h]h ]h"]h$]h&]uh1j hjxXubeh}(h]h ]h"]h$]h&]uh1jk hjXhKhjuXubah}(h]h ]h"]h$]h&]uh1jf hjYXubh)}(h **Return**h]j)}(hjXh]hReturn}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhjYXubh)}(hTrue, if the buffer is enabled.h]hTrue, if the buffer is enabled.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhjYXubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!iio_device_set_clock (C function)c.iio_device_set_clockhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hHint iio_device_set_clock (struct iio_dev *indio_dev, clockid_t clock_id)h]j)}(hGint iio_device_set_clock(struct iio_dev *indio_dev, clockid_t clock_id)h](j/)}(hinth]hint}(hjXhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjXhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hj YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXhhhj YhMubj)}(hiio_device_set_clockh]j)}(hiio_device_set_clockh]hiio_device_set_clock}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubah}(h]h ](jjeh"]h$]h&]jjuh1jhjXhhhj YhMubjg)}(h/(struct iio_dev *indio_dev, clockid_t clock_id)h](jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj;YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7Yubj)}(h h]h }(hjHYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7Yubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjYYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVYubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj[YmodnameN classnameNjj)}j]j)}jj!Ysbc.iio_device_set_clockasbuh1hhj7Yubj)}(h h]h }(hjyYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7Yubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7Yubj)}(h indio_devh]h indio_dev}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7Yubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj3Yubjm)}(hclockid_t clock_idh](h)}(hhh]j)}(h clockid_th]h clockid_t}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjYmodnameN classnameNjj)}j]juYc.iio_device_set_clockasbuh1hhjYubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(hclock_idh]hclock_id}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj3Yubeh}(h]h ]h"]h$]h&]jjuh1jfhjXhhhj YhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjXhhhj YhMubah}(h]jXah ](jjeh"]h$]h&]jj)jhuh1jhj YhMhjXhhubj)}(hhh]h)}(h-Set current timestamping clock for the deviceh]h-Set current timestamping clock for the device}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjZhhubah}(h]h ]h"]h$]h&]uh1jhjXhhhj YhMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jZj jZj j j uh1jhhhjmhNhNubj )}(h**Parameters** ``struct iio_dev *indio_dev`` IIO device structure containing the device ``clockid_t clock_id`` timestamping clock POSIX identifier to set. **Return** 0 on success, or a negative error code.h](h)}(h**Parameters**h]j)}(hj(Zh]h Parameters}(hj*ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&Zubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj"Zubjg )}(hhh](jl )}(hI``struct iio_dev *indio_dev`` IIO device structure containing the device h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjGZh]hstruct iio_dev *indio_dev}(hjIZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEZubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjAZubj )}(hhh]h)}(h*IIO device structure containing the deviceh]h*IIO device structure containing the device}(hj`ZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ZhMhj]Zubah}(h]h ]h"]h$]h&]uh1j hjAZubeh}(h]h ]h"]h$]h&]uh1jk hj\ZhMhj>Zubjl )}(hC``clockid_t clock_id`` timestamping clock POSIX identifier to set. h](jr )}(h``clockid_t clock_id``h]h)}(hjZh]hclockid_t clock_id}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~Zubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjzZubj )}(hhh]h)}(h+timestamping clock POSIX identifier to set.h]h+timestamping clock POSIX identifier to set.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhjZubah}(h]h ]h"]h$]h&]uh1j hjzZubeh}(h]h ]h"]h$]h&]uh1jk hjZhMhj>Zubeh}(h]h ]h"]h$]h&]uh1jf hj"Zubh)}(h **Return**h]j)}(hjZh]hReturn}(hjZ4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj"Zubh)}(h'0 on success, or a negative error code.h]h'0 on success, or a negative error code.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj"Zubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!iio_device_get_clock (C function)c.iio_device_get_clockhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h@clockid_t iio_device_get_clock (const struct iio_dev *indio_dev)h]j)}(h?clockid_t iio_device_get_clock(const struct iio_dev *indio_dev)h](h)}(hhh]j)}(h clockid_th]h clockid_t}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj[modnameN classnameNjj)}j]j)}jiio_device_get_clocksbc.iio_device_get_clockasbuh1hhjZhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM-ubj)}(h h]h }(hj%[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZhhhj$[hM-ubj)}(hiio_device_get_clockh]j)}(hj![h]hiio_device_get_clock}(hj7[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3[ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjZhhhj$[hM-ubjg)}(h!(const struct iio_dev *indio_dev)h]jm)}(hconst struct iio_dev *indio_devh](j)}(hjth]hconst}(hjR[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN[ubj)}(h h]h }(hj_[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN[ubj)}(hjh]hstruct}(hjm[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN[ubj)}(h h]h }(hjz[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN[ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj[modnameN classnameNjj)}j]j[c.iio_device_get_clockasbuh1hhjN[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN[ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN[ubj)}(h indio_devh]h indio_dev}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN[ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjJ[ubah}(h]h ]h"]h$]h&]jjuh1jfhjZhhhj$[hM-ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjZhhhj$[hM-ubah}(h]jZah ](jjeh"]h$]h&]jj)jhuh1jhj$[hM-hjZhhubj)}(hhh]h)}(h2Retrieve current timestamping clock for the deviceh]h2Retrieve current timestamping clock for the device}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM-hj[hhubah}(h]h ]h"]h$]h&]uh1jhjZhhhj$[hM-ubeh}(h]h ](j#functioneh"]h$]h&]j j#j j\j j\j j j uh1jhhhjmhNhNubj )}(h**Parameters** ``const struct iio_dev *indio_dev`` IIO device structure containing the device **Return** Clock ID of the current timestamping clock for the device.h](h)}(h**Parameters**h]j)}(hj\h]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM1hj \ubjg )}(hhh]jl )}(hO``const struct iio_dev *indio_dev`` IIO device structure containing the device h](jr )}(h#``const struct iio_dev *indio_dev``h]h)}(hj/\h]hconst struct iio_dev *indio_dev}(hj1\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-\ubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM.hj)\ubj )}(hhh]h)}(h*IIO device structure containing the deviceh]h*IIO device structure containing the device}(hjH\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjD\hM.hjE\ubah}(h]h ]h"]h$]h&]uh1j hj)\ubeh}(h]h ]h"]h$]h&]uh1jk hjD\hM.hj&\ubah}(h]h ]h"]h$]h&]uh1jf hj \ubh)}(h **Return**h]j)}(hjj\h]hReturn}(hjl\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh\ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM0hj \ubh)}(h:Clock ID of the current timestamping clock for the device.h]h:Clock ID of the current timestamping clock for the device.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM0hj \ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_get_time_ns (C function)c.iio_get_time_nshNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h5s64 iio_get_time_ns (const struct iio_dev *indio_dev)h]j)}(h4s64 iio_get_time_ns(const struct iio_dev *indio_dev)h](h)}(hhh]j)}(hs64h]hs64}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj\modnameN classnameNjj)}j]j)}jiio_get_time_nssbc.iio_get_time_nsasbuh1hhj\hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM;ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\hhhj\hM;ubj)}(hiio_get_time_nsh]j)}(hj\h]hiio_get_time_ns}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj\hhhj\hM;ubjg)}(h!(const struct iio_dev *indio_dev)h]jm)}(hconst struct iio_dev *indio_devh](j)}(hjth]hconst}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(hjh]hstruct}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(h h]h }(hj)]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj:]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7]ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj<]modnameN classnameNjj)}j]j\c.iio_get_time_nsasbuh1hhj\ubj)}(h h]h }(hjX]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(hjh]h*}(hjf]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(h indio_devh]h indio_dev}(hjs]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj\ubah}(h]h ]h"]h$]h&]jjuh1jfhj\hhhj\hM;ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj\hhhj\hM;ubah}(h]j\ah ](jjeh"]h$]h&]jj)jhuh1jhj\hM;hj\hhubj)}(hhh]h)}(h3utility function to get a time stamp for events etch]h3utility function to get a time stamp for events etc}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM;hj]hhubah}(h]h ]h"]h$]h&]uh1jhj\hhhj\hM;ubeh}(h]h ](j#functioneh"]h$]h&]j j#j j]j j]j j j uh1jhhhjmhNhNubj )}(hp**Parameters** ``const struct iio_dev *indio_dev`` device **Return** Timestamp of the event in nanoseconds.h](h)}(h**Parameters**h]j)}(hj]h]h Parameters}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM?hj]ubjg )}(hhh]jl )}(h+``const struct iio_dev *indio_dev`` device h](jr )}(h#``const struct iio_dev *indio_dev``h]h)}(hj]h]hconst struct iio_dev *indio_dev}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]ubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM<hj]ubj )}(hhh]h)}(hdeviceh]hdevice}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hM<hj]ubah}(h]h ]h"]h$]h&]uh1j hj]ubeh}(h]h ]h"]h$]h&]uh1jk hj]hM<hj]ubah}(h]h ]h"]h$]h&]uh1jf hj]ubh)}(h **Return**h]j)}(hj^h]hReturn}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM>hj]ubh)}(h&Timestamp of the event in nanoseconds.h]h&Timestamp of the event in nanoseconds.}(hj/^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM>hj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"iio_read_mount_matrix (C function)c.iio_read_mount_matrixhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hOint iio_read_mount_matrix (struct device *dev, struct iio_mount_matrix *matrix)h]j)}(hNint iio_read_mount_matrix(struct device *dev, struct iio_mount_matrix *matrix)h](j/)}(hinth]hint}(hj^^hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjZ^hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMmubj)}(h h]h }(hjm^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ^hhhjl^hMmubj)}(hiio_read_mount_matrixh]j)}(hiio_read_mount_matrixh]hiio_read_mount_matrix}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{^ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjZ^hhhjl^hMmubjg)}(h5(struct device *dev, struct iio_mount_matrix *matrix)h](jm)}(hstruct device *devh](j)}(hjh]hstruct}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubh)}(hhh]j)}(hdeviceh]hdevice}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj^modnameN classnameNjj)}j]j)}jj^sbc.iio_read_mount_matrixasbuh1hhj^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(hdevh]hdev}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj^ubjm)}(hstruct iio_mount_matrix *matrixh](j)}(hjh]hstruct}(hj _hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj _ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj _ubh)}(hhh]j)}(hiio_mount_matrixh]hiio_mount_matrix}(hj+_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(_ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj-_modnameN classnameNjj)}j]j^c.iio_read_mount_matrixasbuh1hhj _ubj)}(h h]h }(hjI_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj _ubj)}(hjh]h*}(hjW_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj _ubj)}(hmatrixh]hmatrix}(hjd_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj _ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj^ubeh}(h]h ]h"]h$]h&]jjuh1jfhjZ^hhhjl^hMmubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjV^hhhjl^hMmubah}(h]jQ^ah ](jjeh"]h$]h&]jj)jhuh1jhjl^hMmhjS^hhubj)}(hhh]h)}(hGretrieve iio device mounting matrix from device "mount-matrix" propertyh]hKretrieve iio device mounting matrix from device “mount-matrix” property}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMmhj_hhubah}(h]h ]h"]h$]h&]uh1jhjS^hhhjl^hMmubeh}(h]h ](j#functioneh"]h$]h&]j j#j j_j j_j j j uh1jhhhjmhNhNubj )}(hXX**Parameters** ``struct device *dev`` device the mounting matrix property is assigned to ``struct iio_mount_matrix *matrix`` where to store retrieved matrix **Description** If device is assigned no mounting matrix property, a default 3x3 identity matrix will be filled in. **Return** 0 if success, or a negative error code on failure.h](h)}(h**Parameters**h]j)}(hj_h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMqhj_ubjg )}(hhh](jl )}(hJ``struct device *dev`` device the mounting matrix property is assigned to h](jr )}(h``struct device *dev``h]h)}(hj_h]hstruct device *dev}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMohj_ubj )}(hhh]h)}(h2device the mounting matrix property is assigned toh]h2device the mounting matrix property is assigned to}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMohj_ubah}(h]h ]h"]h$]h&]uh1j hj_ubeh}(h]h ]h"]h$]h&]uh1jk hj_hMohj_ubjl )}(hD``struct iio_mount_matrix *matrix`` where to store retrieved matrix h](jr )}(h#``struct iio_mount_matrix *matrix``h]h)}(hj`h]hstruct iio_mount_matrix *matrix}(hj `hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`ubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMphj`ubj )}(hhh]h)}(hwhere to store retrieved matrixh]hwhere to store retrieved matrix}(hj!`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMphj`ubah}(h]h ]h"]h$]h&]uh1j hj`ubeh}(h]h ]h"]h$]h&]uh1jk hj`hMphj_ubeh}(h]h ]h"]h$]h&]uh1jf hj_ubh)}(h**Description**h]j)}(hjC`h]h Description}(hjE`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA`ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMrhj_ubh)}(hcIf device is assigned no mounting matrix property, a default 3x3 identity matrix will be filled in.h]hcIf device is assigned no mounting matrix property, a default 3x3 identity matrix will be filled in.}(hjY`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMqhj_ubh)}(h **Return**h]j)}(hjj`h]hReturn}(hjl`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh`ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMthj_ubh)}(h20 if success, or a negative error code on failure.h]h20 if success, or a negative error code on failure.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMuhj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_format_value (C function)c.iio_format_valuehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hLssize_t iio_format_value (char *buf, unsigned int type, int size, int *vals)h]j)}(hKssize_t iio_format_value(char *buf, unsigned int type, int size, int *vals)h](h)}(hhh]j)}(hssize_th]hssize_t}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj`modnameN classnameNjj)}j]j)}jiio_format_valuesbc.iio_format_valueasbuh1hhj`hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`hhhj`hMubj)}(hiio_format_valueh]j)}(hj`h]hiio_format_value}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj`hhhj`hMubjg)}(h3(char *buf, unsigned int type, int size, int *vals)h](jm)}(h char *bufh](j/)}(hcharh]hchar}(hjahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj`ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj)}(hbufh]hbuf}(hj*ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj`ubjm)}(hunsigned int typeh](j/)}(hunsignedh]hunsigned}(hjCahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj?aubj)}(h h]h }(hjQahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?aubj/)}(hinth]hint}(hj_ahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj?aubj)}(h h]h }(hjmahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?aubj)}(htypeh]htype}(hj{ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?aubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj`ubjm)}(hint sizeh](j/)}(hinth]hint}(hjahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(hsizeh]hsize}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj`ubjm)}(h int *valsh](j/)}(hinth]hint}(hjahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(hvalsh]hvals}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj`ubeh}(h]h ]h"]h$]h&]jjuh1jfhj`hhhj`hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj`hhhj`hMubah}(h]j`ah ](jjeh"]h$]h&]jj)jhuh1jhj`hMhj`hhubj)}(hhh]h)}(h2Formats a IIO value into its string representationh]h2Formats a IIO value into its string representation}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjbhhubah}(h]h ]h"]h$]h&]uh1jhj`hhhj`hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j4bj j4bj j j uh1jhhhjmhNhNubj )}(hX+**Parameters** ``char *buf`` The buffer to which the formatted value gets written which is assumed to be big enough (i.e. PAGE_SIZE). ``unsigned int type`` One of the IIO_VAL_* constants. This decides how the val and val2 parameters are formatted. ``int size`` Number of IIO value entries contained in vals ``int *vals`` Pointer to the values, exact meaning depends on the type parameter. **Return** 0 by default, a negative number on failure or the total number of characters written for a type that belongs to the IIO_VAL_* constant.h](h)}(h**Parameters**h]j)}(hj>bh]h Parameters}(hj@bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjgubh)}(h9Pointer to allocated iio_dev on success, NULL on failure.h]h9Pointer to allocated iio_dev on success, NULL on failure.}(hjVhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjgubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_free (C function)c.iio_device_freehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h*void iio_device_free (struct iio_dev *dev)h]j)}(h)void iio_device_free(struct iio_dev *dev)h](j/)}(hvoidh]hvoid}(hjhhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjhhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhhjhhMubj)}(hiio_device_freeh]j)}(hiio_device_freeh]hiio_device_free}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhhjhhMubjg)}(h(struct iio_dev *dev)h]jm)}(hstruct iio_dev *devh](j)}(hjh]hstruct}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjhmodnameN classnameNjj)}j]j)}jjhsbc.iio_device_freeasbuh1hhjhubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(hdevh]hdev}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjhubah}(h]h ]h"]h$]h&]jjuh1jfhjhhhhjhhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj}hhhhjhhMubah}(h]jxhah ](jjeh"]h$]h&]jj)jhuh1jhjhhMhjzhhhubj)}(hhh]h)}(hfree an iio_dev from a driverh]hfree an iio_dev from a driver}(hjEihhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjBihhubah}(h]h ]h"]h$]h&]uh1jhjzhhhhjhhMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j]ij j]ij j j uh1jhhhjmhNhNubj )}(hP**Parameters** ``struct iio_dev *dev`` the iio_dev associated with the deviceh](h)}(h**Parameters**h]j)}(hjgih]h Parameters}(hjiihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeiubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjaiubjg )}(hhh]jl )}(h>``struct iio_dev *dev`` the iio_dev associated with the deviceh](jr )}(h``struct iio_dev *dev``h]h)}(hjih]hstruct iio_dev *dev}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjiubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjiubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjiubah}(h]h ]h"]h$]h&]uh1j hjiubeh}(h]h ]h"]h$]h&]uh1jk hjihMhj}iubah}(h]h ]h"]h$]h&]uh1jf hjaiubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devm_iio_device_alloc (C function)c.devm_iio_device_allochNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hOstruct iio_dev * devm_iio_device_alloc (struct device *parent, int sizeof_priv)h]j)}(hMstruct iio_dev *devm_iio_device_alloc(struct device *parent, int sizeof_priv)h](j)}(hjh]hstruct}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhhjihMubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjjmodnameN classnameNjj)}j]j)}jdevm_iio_device_allocsbc.devm_iio_device_allocasbuh1hhjihhhjihMubj)}(h h]h }(hj jhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhhjihMubj)}(hjh]h*}(hj.jhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhhjihMubj)}(hdevm_iio_device_alloch]j)}(hjjh]hdevm_iio_device_alloc}(hj?jhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;jubah}(h]h ](jjeh"]h$]h&]jjuh1jhjihhhjihMubjg)}(h((struct device *parent, int sizeof_priv)h](jm)}(hstruct device *parenth](j)}(hjh]hstruct}(hjZjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVjubj)}(h h]h }(hjgjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVjubh)}(hhh]j)}(hdeviceh]hdevice}(hjxjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjujubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjzjmodnameN classnameNjj)}j]jjc.devm_iio_device_allocasbuh1hhjVjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVjubj)}(hparenth]hparent}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVjubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjRjubjm)}(hint sizeof_privh](j/)}(hinth]hint}(hjjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj)}(h sizeof_privh]h sizeof_priv}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjRjubeh}(h]h ]h"]h$]h&]jjuh1jfhjihhhjihMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjihhhjihMubah}(h]jiah ](jjeh"]h$]h&]jj)jhuh1jhjihMhjihhubj)}(hhh]h)}(h#Resource-managed iio_device_alloc()h]h#Resource-managed iio_device_alloc()}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj khhubah}(h]h ]h"]h$]h&]uh1jhjihhhjihMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j(kj j(kj j j uh1jhhhjmhNhNubj )}(hXk**Parameters** ``struct device *parent`` Device to allocate iio_dev for, and parent for this IIO device ``int sizeof_priv`` Space to allocate for private structure. **Description** Managed iio_device_alloc. iio_dev allocated with this function is automatically freed on driver detach. **Return** Pointer to allocated iio_dev on success, NULL on failure.h](h)}(h**Parameters**h]j)}(hj2kh]h Parameters}(hj4khhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0kubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj,kubjg )}(hhh](jl )}(hY``struct device *parent`` Device to allocate iio_dev for, and parent for this IIO device h](jr )}(h``struct device *parent``h]h)}(hjQkh]hstruct device *parent}(hjSkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOkubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjKkubj )}(hhh]h)}(h>Device to allocate iio_dev for, and parent for this IIO deviceh]h>Device to allocate iio_dev for, and parent for this IIO device}(hjjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfkhMhjgkubah}(h]h ]h"]h$]h&]uh1j hjKkubeh}(h]h ]h"]h$]h&]uh1jk hjfkhMhjHkubjl )}(h=``int sizeof_priv`` Space to allocate for private structure. h](jr )}(h``int sizeof_priv``h]h)}(hjkh]hint sizeof_priv}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjkubj )}(hhh]h)}(h(Space to allocate for private structure.h]h(Space to allocate for private structure.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhMhjkubah}(h]h ]h"]h$]h&]uh1j hjkubeh}(h]h ]h"]h$]h&]uh1jk hjkhMhjHkubeh}(h]h ]h"]h$]h&]uh1jf hj,kubh)}(h**Description**h]j)}(hjkh]h Description}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj,kubh)}(hgManaged iio_device_alloc. iio_dev allocated with this function is automatically freed on driver detach.h]hgManaged iio_device_alloc. iio_dev allocated with this function is automatically freed on driver detach.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj,kubh)}(h **Return**h]j)}(hjkh]hReturn}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj,kubh)}(h9Pointer to allocated iio_dev on success, NULL on failure.h]h9Pointer to allocated iio_dev on success, NULL on failure.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj,kubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'iio_active_scan_mask_index (C function)c.iio_active_scan_mask_indexhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h:int iio_active_scan_mask_index (struct iio_dev *indio_dev)h]j)}(h9int iio_active_scan_mask_index(struct iio_dev *indio_dev)h](j/)}(hinth]hint}(hj1lhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj-lhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hj@lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-lhhhj?lhMubj)}(hiio_active_scan_mask_indexh]j)}(hiio_active_scan_mask_indexh]hiio_active_scan_mask_index}(hjRlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNlubah}(h]h ](jjeh"]h$]h&]jjuh1jhj-lhhhj?lhMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjnlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjlubj)}(h h]h }(hj{lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjlubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjlmodnameN classnameNjj)}j]j)}jjTlsbc.iio_active_scan_mask_indexasbuh1hhjjlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjlubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjlubj)}(h indio_devh]h indio_dev}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjlubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjflubah}(h]h ]h"]h$]h&]jjuh1jfhj-lhhhj?lhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj)lhhhj?lhMubah}(h]j$lah ](jjeh"]h$]h&]jj)jhuh1jhj?lhMhj&lhhubj)}(hhh]h)}(hGGet index of the active scan mask inside the available scan masks arrayh]hGGet index of the active scan mask inside the available scan masks array}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjlhhubah}(h]h ]h"]h$]h&]uh1jhj&lhhhj?lhMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j mj j mj j j uh1jhhhjmhNhNubj )}(h**Parameters** ``struct iio_dev *indio_dev`` the IIO device containing the active and available scan masks **Return** the index or -EINVAL if active_scan_mask is not seth](h)}(h**Parameters**h]j)}(hjmh]h Parameters}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj mubjg )}(hhh]jl )}(h\``struct iio_dev *indio_dev`` the IIO device containing the active and available scan masks h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj2mh]hstruct iio_dev *indio_dev}(hj4mhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0mubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj,mubj )}(hhh]h)}(h=the IIO device containing the active and available scan masksh]h=the IIO device containing the active and available scan masks}(hjKmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGmhMhjHmubah}(h]h ]h"]h$]h&]uh1j hj,mubeh}(h]h ]h"]h$]h&]uh1jk hjGmhMhj)mubah}(h]h ]h"]h$]h&]uh1jf hj mubh)}(h **Return**h]j)}(hjmmh]hReturn}(hjomhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkmubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj mubh)}(h4the index or -EINVAL if active_scan_mask is not seth]h4the index or -EINVAL if active_scan_mask is not set}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj mubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"iio_device_unregister (C function)c.iio_device_unregisterhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h6void iio_device_unregister (struct iio_dev *indio_dev)h]j)}(h5void iio_device_unregister(struct iio_dev *indio_dev)h](j/)}(hvoidh]hvoid}(hjmhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjmhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMUubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmhhhjmhMUubj)}(hiio_device_unregisterh]j)}(hiio_device_unregisterh]hiio_device_unregister}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubah}(h]h ](jjeh"]h$]h&]jjuh1jhjmhhhjmhMUubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj nubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjnmodnameN classnameNjj)}j]j)}jjmsbc.iio_device_unregisterasbuh1hhjmubj)}(h h]h }(hj-nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(hjh]h*}(hj;nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(h indio_devh]h indio_dev}(hjHnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjmubah}(h]h ]h"]h$]h&]jjuh1jfhjmhhhjmhMUubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjmhhhjmhMUubah}(h]jmah ](jjeh"]h$]h&]jj)jhuh1jhjmhMUhjmhhubj)}(hhh]h)}(h*unregister a device from the IIO subsystemh]h*unregister a device from the IIO subsystem}(hjrnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMUhjonhhubah}(h]h ]h"]h$]h&]uh1jhjmhhhjmhMUubeh}(h]h ](j#functioneh"]h$]h&]j j#j jnj jnj j j uh1jhhhjmhNhNubj )}(hY**Parameters** ``struct iio_dev *indio_dev`` Device structure representing the device.h](h)}(h**Parameters**h]j)}(hjnh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMYhjnubjg )}(hhh]jl )}(hG``struct iio_dev *indio_dev`` Device structure representing the device.h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjnh]hstruct iio_dev *indio_dev}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM[hjnubj )}(hhh]h)}(h)Device structure representing the device.h]h)Device structure representing the device.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMVhjnubah}(h]h ]h"]h$]h&]uh1j hjnubeh}(h]h ]h"]h$]h&]uh1jk hjnhM[hjnubah}(h]h ]h"]h$]h&]uh1jf hjnubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j __iio_dev_mode_lock (C function)c.__iio_dev_mode_lockhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h4void __iio_dev_mode_lock (struct iio_dev *indio_dev)h]j)}(h3void __iio_dev_mode_lock(struct iio_dev *indio_dev)h](j/)}(hvoidh]hvoid}(hj ohhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj ohhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ohhhjohMubj)}(h__iio_dev_mode_lockh]j)}(h__iio_dev_mode_lockh]h__iio_dev_mode_lock}(hj.ohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*oubah}(h]h ](jjeh"]h$]h&]jjuh1jhj ohhhjohMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjJohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFoubj)}(h h]h }(hjWohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFoubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjhohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeoubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjjomodnameN classnameNjj)}j]j)}jj0osbc.__iio_dev_mode_lockasbuh1hhjFoubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFoubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFoubj)}(h indio_devh]h indio_dev}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFoubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjBoubah}(h]h ]h"]h$]h&]jjuh1jfhj ohhhjohMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjohhhjohMubah}(h]joah ](jjeh"]h$]h&]jj)jhuh1jhjohMhjohhubj)}(hhh]h)}(h!Locks the current IIO device modeh]h!Locks the current IIO device mode}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjohhubah}(h]h ]h"]h$]h&]uh1jhjohhhjohMubeh}(h]h ](j#functioneh"]h$]h&]j j#j joj joj j j uh1jhhhjmhNhNubj )}(hXP**Parameters** ``struct iio_dev *indio_dev`` the iio_dev associated with the device **Description** If the device is either in direct or buffer mode, it's guaranteed to stay that way until __iio_dev_mode_unlock() is called. This function is not meant to be used directly by drivers to protect internal state; a driver should have it's own mechanisms for that matter. There are very few cases where a driver actually needs to lock the current mode unconditionally. It's recommended to use iio_device_claim_direct() or iio_device_try_claim_buffer_mode() pairs or related helpers instead.h](h)}(h**Parameters**h]j)}(hjoh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoubjg )}(hhh]jl )}(hE``struct iio_dev *indio_dev`` the iio_dev associated with the device h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjph]hstruct iio_dev *indio_dev}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhj pubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjpubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hj'phhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#phMhj$pubah}(h]h ]h"]h$]h&]uh1j hjpubeh}(h]h ]h"]h$]h&]uh1jk hj#phMhjpubah}(h]h ]h"]h$]h&]uh1jf hjoubh)}(h**Description**h]j)}(hjIph]h Description}(hjKphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGpubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoubh)}(h{If the device is either in direct or buffer mode, it's guaranteed to stay that way until __iio_dev_mode_unlock() is called.h]h}If the device is either in direct or buffer mode, it’s guaranteed to stay that way until __iio_dev_mode_unlock() is called.0}(hj_phhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoubh)}(hThis function is not meant to be used directly by drivers to protect internal state; a driver should have it's own mechanisms for that matter.h]hThis function is not meant to be used directly by drivers to protect internal state; a driver should have it’s own mechanisms for that matter.}(hjnphhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoubh)}(hThere are very few cases where a driver actually needs to lock the current mode unconditionally. It's recommended to use iio_device_claim_direct() or iio_device_try_claim_buffer_mode() pairs or related helpers instead.h]hThere are very few cases where a driver actually needs to lock the current mode unconditionally. It’s recommended to use iio_device_claim_direct() or iio_device_try_claim_buffer_mode() pairs or related helpers instead.}(hj}phhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"__iio_dev_mode_unlock (C function)c.__iio_dev_mode_unlockhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h6void __iio_dev_mode_unlock (struct iio_dev *indio_dev)h]j)}(h5void __iio_dev_mode_unlock(struct iio_dev *indio_dev)h](j/)}(hvoidh]hvoid}(hjphhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjphhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhhjphMubj)}(h__iio_dev_mode_unlockh]j)}(h__iio_dev_mode_unlockh]h__iio_dev_mode_unlock}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubah}(h]h ](jjeh"]h$]h&]jjuh1jhjphhhjphMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj qmodnameN classnameNjj)}j]j)}jjpsbc.__iio_dev_mode_unlockasbuh1hhjpubj)}(h h]h }(hj'qhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(hjh]h*}(hj5qhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(h indio_devh]h indio_dev}(hjBqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjpubah}(h]h ]h"]h$]h&]jjuh1jfhjphhhjphMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjphhhjphMubah}(h]jpah ](jjeh"]h$]h&]jj)jhuh1jhjphMhjphhubj)}(hhh]h)}(h#Unlocks the current IIO device modeh]h#Unlocks the current IIO device mode}(hjlqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjiqhhubah}(h]h ]h"]h$]h&]uh1jhjphhhjphMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jqj jqj j j uh1jhhhjmhNhNubj )}(hV**Parameters** ``struct iio_dev *indio_dev`` the iio_dev associated with the deviceh](h)}(h**Parameters**h]j)}(hjqh]h Parameters}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjqubjg )}(hhh]jl )}(hD``struct iio_dev *indio_dev`` the iio_dev associated with the deviceh](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjqh]hstruct iio_dev *indio_dev}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjqubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjqubah}(h]h ]h"]h$]h&]uh1j hjqubeh}(h]h ]h"]h$]h&]uh1jk hjqhMhjqubah}(h]h ]h"]h$]h&]uh1jf hjqubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(iio_device_get_current_mode (C function)c.iio_device_get_current_modehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h;int iio_device_get_current_mode (struct iio_dev *indio_dev)h]j)}(h:int iio_device_get_current_mode(struct iio_dev *indio_dev)h](j/)}(hinth]hint}(hjrhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjrhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrhhhjrhMubj)}(hiio_device_get_current_modeh]j)}(hiio_device_get_current_modeh]hiio_device_get_current_mode}(hj(rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$rubah}(h]h ](jjeh"]h$]h&]jjuh1jhjrhhhjrhMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjDrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@rubj)}(h h]h }(hjQrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@rubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjbrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_rubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjdrmodnameN classnameNjj)}j]j)}jj*rsbc.iio_device_get_current_modeasbuh1hhj@rubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@rubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@rubj)}(h indio_devh]h indio_dev}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@rubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjj>j@j@jBjBjaDjfDjFjFj}GjGjIjIjJjJjLjLjNjNjPjPjQjQjRjRjSjSjTjTjUjUjqWjvWjXjXjZjZj\j\jQ^jV^j`j`j~cjcjNfjSfjxhj}hjijij$lj)ljmjmjojojpjpjqjqu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.