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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/pt_BR/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)}(hjh]h&struct iio_dev - industrial I/O device}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h@iio_device_alloc() - allocate an :c:type:`iio_dev` from a driverh]h)}(hjh](h!iio_device_alloc() - allocate an }(hj!hhhNhNubh)}(h:c:type:`iio_dev`h]h)}(hj*h]hiio_dev}(hj,hhhNhNubah}(h]h ](xrefcc-typeeh"]h$]h&]uh1hhj(ubah}(h]h ]h"]h$]h&]refdocdriver-api/iio/core refdomainj7reftypetype refexplicitrefwarn reftargetiio_devuh1hhhhKhj!ubh from a driver}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h;iio_device_free() - free an :c:type:`iio_dev` from a driverh]h)}(hj]h](hiio_device_free() - free an }(hj_hhhNhNubh)}(h:c:type:`iio_dev`h]h)}(hjhh]hiio_dev}(hjjhhhNhNubah}(h]h ](j6j7c-typeeh"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]refdocjC refdomainj7reftypetype refexplicitrefwarnjIiio_devuh1hhhhKhj_ubh from a driver}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj[ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubeh}(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](j)}(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&]uh1jhjhhhhhNubj)}(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}(hj2hhhNhNubj)}(hjh]hX}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhj.ubhg, character device node interface used for buffered data transfer and for events information retrieval.}(hj.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj*ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(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 }(hjkhhhNhNubh)}(h:doc:`I2C <../i2c>`h]hinline)}(hjuh]hI2C}(hjyhhhNhNubah}(h]h ](j6stdstd-doceh"]h$]h&]uh1jwhjsubah}(h]h ]h"]h$]h&]refdocjC refdomainjreftypedoc refexplicitrefwarnjI../i2cuh1hhhhK hjkubh or }(hjkhhhNhNubh)}(h:doc:`SPI <../spi>`h]jx)}(hjh]hSPI}(hjhhhNhNubah}(h]h ](j6stdstd-doceh"]h$]h&]uh1jwhjubah}(h]h ]h"]h$]h&]refdocjC refdomainjreftypedoc refexplicitrefwarnjI../spiuh1hhhhK hjkubh7 driver and will create two routines, probe and remove.}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(h At probe:h]h At probe:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hhhhubj)}(hhh](j)}(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&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jfjgjhhjijjuh1jhhhhhhhK%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](j)}(hAiio_device_unregister(), unregister the device from the IIO core.h]h)}(hj4h]hAiio_device_unregister(), unregister the device from the IIO core.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hj2ubah}(h]h ]h"]h$]h&]uh1jhj/hhhhhNubj)}(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.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjIubah}(h]h ]h"]h$]h&]uh1jhj/hhhhhNubeh}(h]h ]h"]h$]h&]jfjgjhhjijjuh1jhhhhhhhK.ubh)}(hhh](h)}(hIIO device sysfs interfaceh]hIIO device sysfs interface}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghhhhhK2ubh)}(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:}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjghhubj)}(hhh](j)}(h/:file:`name`, description of the physical chip.h]h)}(hjh](h)}(h :file:`name`h]hname}(hjhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh#, description of the physical chip.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK9hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhK9hjghhubeh}(h]iio-device-sysfs-interfaceah ]h"]iio device sysfs interfaceah$]h&]uh1hhhhhhhhK2ubh)}(hhh](h)}(hIIO device channelsh]hIIO device channels}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShhhhhKCubh)}(h8struct iio_chan_spec - specification of a single channelh]h8struct iio_chan_spec - specification of a single channel}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhjShhubh)}(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:}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjShhubj)}(hhh](j)}(hNa thermometer sensor has one channel representing the temperature measurement.h]h)}(hjh]hNa thermometer sensor has one channel representing the temperature measurement.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKJhjShhubh)}(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&]uh1hhhhKPhjShhubh 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:spacepreserveuh1jhhhKThjShhubh)}(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[hjShhubj)}(hhh](j)}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh-, attributes will be specific to this channel}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-ubh8, attributes are shared by all channels of the same type}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKahj)ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjSubh=, attributes are shared by all channels of the same direction}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKchjOubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjyubh', attributes are shared by all channels}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKehjuubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhK_hjShhubh)}(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&]uh1hhhhKghjShhubj)}(hhh](j)}(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&]uh1j hjubh field of }(hjhhhNhNubh)}(h:c:type:`iio_chan_spec`h]h)}(hjh]h iio_chan_spec}(hjhhhNhNubah}(h]h ](j6j7c-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocjC refdomainj7reftypetype refexplicitrefwarnjI iio_chan_specuh1hhhhKjhjubh% to 1. Modifiers are specified using }(hjhhhNhNubj )}(h **.channel2**h]h .channel2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh field of the same }(hjhhhNhNubh)}(h:c:type:`iio_chan_spec`h]h)}(hjh]h iio_chan_spec}(hj hhhNhNubah}(h]h ](j6j7c-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocjC refdomainj7reftypetype refexplicitrefwarnjI 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&]uh1jhjhhhhhNubj)}(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 }(hj8hhhNhNubj )}(h **.indexed**h]h.indexed}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj8ubh field of }(hj8hhhNhNubh)}(h:c:type:`iio_chan_spec`h]h)}(hjTh]h iio_chan_spec}(hjVhhhNhNubah}(h]h ](j6j7c-typeeh"]h$]h&]uh1hhjRubah}(h]h ]h"]h$]h&]refdocjC refdomainj7reftypetype refexplicitrefwarnjI iio_chan_specuh1hhhhKphj8ubhZ to 1. In this case the channel is simply another instance with an index specified by the }(hj8hhhNhNubj )}(h **.channel**h]h.channel}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj8ubh field.}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKphj4ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKjhjShhubh)}(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&]uh1hhhhKthjShhubj)}(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&]jjuh1jhhhKvhjShhubh)}(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&]uh1hhhhKhjShhubj)}(hhh](j)}(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&]uh1jhjhhhhhNubj)}(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}(hj hhhNhNubah}(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&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKhjShhubh)}(hone file for processed data:h]hone file for processed data:}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjShhubj)}(hhh]j)}(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)}(hjLh](h/sys/bus/iio/devices/iio:device}(hjNhhhNhNubj)}(hjh]hX}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh/in_illuminance_input}(hjNhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjJubah}(h]h ]h"]h$]h&]uh1hhhhKhjFubah}(h]h ]h"]h$]h&]uh1jhjChhhhhNubah}(h]h ]h"]h$]h&]jjuh1hhhhKhjShhubh)}(h1and one shared sysfs file for sampling frequency:h]h1and one shared sysfs file for sampling frequency:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjShhubj)}(hhh]j)}(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&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1hhhhKhjShhubh)}(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&]uh1hhhhKhjShhubj)}(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&]jjuh1jhhhKhjShhubh)}(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&]uh1hhhhKhjShhubj)}(hhh](j)}(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&]uh1jhjhhhhhNubj)}(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}(hjAhhhNhNubj)}(hjh]hX}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubh/in_voltage1_raw}(hjAhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhj=ubh1, representing voltage measurement for channel 1.}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj9ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKhjShhubeh}(h]iio-device-channelsah ]h"]iio device channelsah$]h&]uh1hhhhhhhhKCubh)}(hhh](h)}(h More detailsh]h More details}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single!iio_chan_spec_ext_info (C struct)c.iio_chan_spec_ext_infohNtauh1jhjhhhNhNubhdesc)}(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}(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&]uh1j hjhhhjhKubeh}(h]h ](j7structeh"]h$]h&]domainj7objtypej& desctypej& noindex noindexentrynocontentsentryuh1jhhhjhNhNubh 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&]uh1j hj6 ubh:}(hj6 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK/hj2 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; };}hjS sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK1hj2 ubh)}(h **Members**h]j )}(hjd h]hMembers}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjb ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK9hj2 ubhdefinition_list)}(hhh](hdefinition_list_item)}(h``name`` Info attribute name h](hterm)}(h``name``h]h)}(hj h]hname}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK-hj 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 hj ubeh}(h]h ]h"]h$]h&]uh1j hj hK-hj| ubj )}(hB``shared`` Whether this attribute is shared between all channels. h](j )}(h ``shared``h]h)}(hj h]hshared}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hj hK.hj| ubj )}(h=``read`` Read callback for this info attribute, may be NULL. h](j )}(h``read``h]h)}(hj h]hread}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hj hK/hj| ubj )}(h?``write`` Write callback for this info attribute, may be NULL. h](j )}(h ``write``h]h)}(hj6 h]hwrite}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4 ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK0hj0 ubj )}(hhh]h)}(h4Write callback for this info attribute, may be NULL.h]h4Write callback for this info attribute, may be NULL.}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK hK0hjL ubah}(h]h ]h"]h$]h&]uh1j hj0 ubeh}(h]h ]h"]h$]h&]uh1j hjK hK0hj| ubj )}(h'``private`` Data private to the driver.h](j )}(h ``private``h]h)}(hjo h]hprivate}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK0hji ubj )}(hhh]h)}(hData private to the driver.h]hData private to the driver.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK1hj ubah}(h]h ]h"]h$]h&]uh1j hji ubeh}(h]h ]h"]h$]h&]uh1j hj hK0hj| ubeh}(h]h ]h"]h$]h&]uh1jz hj2 ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_enum (C struct) c.iio_enumhNtauh1jhjhhhNhNubj)}(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 ](j j eh"]h$]h&]j j )j huh1jhj 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&]uh1j hj hhhj hK7ubeh}(h]h ](j7structeh"]h$]h&]j* j7j+ j# j, j# j- j. j/ uh1jhhhjhNhNubj1 )}(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&]uh1j hj+ 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 *); };}hjH 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 )}(hjY h]hMembers}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjW ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKKhj' ubj{ )}(hhh](j )}(h``items`` An array of strings. h](j )}(h ``items``h]h)}(hjx h]hitems}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjv ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK@hjr ubj )}(hhh]h)}(hAn array of strings.h]hAn array of strings.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK@hj ubah}(h]h ]h"]h$]h&]uh1j hjr ubeh}(h]h ]h"]h$]h&]uh1j hj hK@hjo ubj )}(h(``num_items`` Length of the item array. h](j )}(h ``num_items``h]h)}(hj h]h num_items}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hj hKAhjo ubj )}(h,``set`` Set callback function, may be NULL. h](j )}(h``set``h]h)}(hj h]hset}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hj hKBhjo ubj )}(h+``get`` Get callback function, may be NULL.h](j )}(h``get``h]h)}(hj# h]hget}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj! ubah}(h]h ]h"]h$]h&]uh1j 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.hhKChj9 ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj8 hKBhjo ubeh}(h]h ]h"]h$]h&]uh1jz hj' ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubh)}(h**Description**h]j )}(hjf h]h Description}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjd ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKFhjhhubh)}(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.}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKChjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_ENUM (C macro) c.IIO_ENUMhNtauh1jhjhhhNhNubj)}(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 ](j j eh"]h$]h&]j j )j huh1jhj hK]hj hhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj hhhj hK]ubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ j j, j j- j. j/ uh1jhhhjhNhNubh)}(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_hjhhubh 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]hjhhubj1 )}(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&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKahj ubj{ )}(hhh](j )}(h``_name`` Attribute name h](j )}(h ``_name``h]h)}(hj0 h]h_name}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj. ubah}(h]h ]h"]h$]h&]uh1j 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}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE hK^hjF ubah}(h]h ]h"]h$]h&]uh1j hj* ubeh}(h]h ]h"]h$]h&]uh1j hjE hK^hj' ubj )}(hA``_shared`` Whether the attribute is shared between all channels h](j )}(h ``_shared``h]h)}(hji h]h_shared}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjg ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK_hjc ubj )}(hhh]h)}(h4Whether the attribute is shared between all channelsh]h4Whether the attribute is shared between all channels}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~ hK_hj ubah}(h]h ]h"]h$]h&]uh1j hjc ubeh}(h]h ]h"]h$]h&]uh1j hj~ hK_hj' ubj )}(h%``_e`` Pointer to an iio_enum struct h](j )}(h``_e``h]h)}(hj h]h_e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hj hK`hj' ubeh}(h]h ]h"]h$]h&]uh1jz hj ubh)}(h**Description**h]j )}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj 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&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_ENUM_AVAILABLE (C macro)c.IIO_ENUM_AVAILABLEhNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_ENUM_AVAILABLEh]j)}(hIIO_ENUM_AVAILABLEh]j)}(hIIO_ENUM_AVAILABLEh]j)}(hjh]hIIO_ENUM_AVAILABLE}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKnubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj9hKnubah}(h]jah ](j j eh"]h$]h&]j j )j huh1jhj9hKnhjhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hjhhhj9hKnubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jRj, jRj- j. j/ uh1jhhhjhNhNubh)}(h+``IIO_ENUM_AVAILABLE (_name, _shared, _e)``h]h)}(hjXh]h'IIO_ENUM_AVAILABLE (_name, _shared, _e)}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKphjhhubj )}(h5Initialize enum available extended channel attribute h]h)}(h4Initialize enum available extended channel attributeh]h4Initialize enum available extended channel attribute}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKnhjnubah}(h]h ]h"]h$]h&]uh1j hjhKnhjhhubj1 )}(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 )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKrhjubj{ )}(hhh](j )}(hE``_name`` Attribute name ("_available" will be appended to the name) h](j )}(h ``_name``h]h)}(hjh]h_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhKohjubj )}(hA``_shared`` Whether the attribute is shared between all channels h](j )}(h ``_shared``h]h)}(hjh]h_shared}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhKphjubj )}(h%``_e`` Pointer to an iio_enum struct h](j )}(h``_e``h]h)}(hjh]h_e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hKqhj4ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj3hKqhjubeh}(h]h ]h"]h$]h&]uh1jz hjubh)}(h**Description**h]j )}(hjYh]h Description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjWubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKshjubh)}(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()}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKrhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_mount_matrix (C struct)c.iio_mount_matrixhNtauh1jhjhhhNhNubj)}(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]jah ](j j eh"]h$]h&]j j )j huh1jhjhKxhjhhubj )}(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&]uh1j hjhhhjhKxubeh}(h]h ](j7structeh"]h$]h&]j* j7j+ jj, jj- j. j/ uh1jhhhjhNhNubj1 )}(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&]uh1j hjubh:}(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]; };}hjsbah}(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 )}(hj.h]hMembers}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj,ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj{ )}(hhh]j )}(h]``rotation`` 3 dimensional space rotation matrix defining sensor alignment with main hardwareh](j )}(h ``rotation``h]h)}(hjMh]hrotation}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjGubj )}(hhh]h)}(hP3 dimensional space rotation matrix defining sensor alignment with main hardwareh]hP3 dimensional space rotation matrix defining sensor alignment with main hardware}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhKhjcubah}(h]h ]h"]h$]h&]uh1j hjGubeh}(h]h ]h"]h$]h&]uh1j hjbhKhjDubah}(h]h ]h"]h$]h&]uh1jz hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_MOUNT_MATRIX (C macro)c.IIO_MOUNT_MATRIXhNtauh1jhjhhhNhNubj)}(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 ](j j eh"]h$]h&]j j )j huh1jhjhKhjhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hjhhhjhKubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jj, jj- j. j/ uh1jhhhjhNhNubh)}(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.hhKhjhhubj )}(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 hjhKhjhhubj1 )}(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&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubj{ )}(hhh](j )}(hA``_shared`` Whether the attribute is shared between all channels h](j )}(h ``_shared``h]h)}(hj0h]h_shared}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj*ubj )}(hhh]h)}(h4Whether the attribute is shared between all channelsh]h4Whether the attribute is shared between all channels}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhKhjFubah}(h]h ]h"]h$]h&]uh1j hj*ubeh}(h]h ]h"]h$]h&]uh1j hjEhKhj'ubj )}(h6``_get`` Pointer to an iio_get_mount_matrix_t accessorh](j )}(h``_get``h]h)}(hjih]h_get}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjgubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjcubj )}(hhh]h)}(h-Pointer to an iio_get_mount_matrix_t accessorh]h-Pointer to an iio_get_mount_matrix_t accessor}(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 hjcubeh}(h]h ]h"]h$]h&]uh1j hj~hKhj'ubeh}(h]h ]h"]h$]h&]uh1jz hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_event_spec (C struct)c.iio_event_spechNtauh1jhjhhhNhNubj)}(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 ](j j eh"]h$]h&]j j )j huh1jhjhKhjhhubj )}(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&]uh1j hjhhhjhKubeh}(h]h ](j7structeh"]h$]h&]j* j7j+ jj, jj- j. j/ uh1jhhhjhNhNubj1 )}(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.h](h)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj%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)}(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; };}hjBsbah}(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 )}(hjSh]hMembers}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjQubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj!ubj{ )}(hhh](j )}(h``type`` Type of the event h](j )}(h``type``h]h)}(hjrh]htype}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjpubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjlubj )}(hhh]h)}(hType of the eventh]hType of the event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjlubeh}(h]h ]h"]h$]h&]uh1j hjhKhjiubj )}(h``dir`` Direction of the event h](j )}(h``dir``h]h)}(hjh]hdir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhKhjiubj )}(hv``mask_separate`` Bit mask of enum iio_event_info values. Attributes set in this mask will be registered per channel. h](j )}(h``mask_separate``h]h)}(hjh]h mask_separate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhKhjiubj )}(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](j )}(h``mask_shared_by_type``h]h)}(hjh]hmask_shared_by_type}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj4ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj3hKhjiubj )}(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](j )}(h``mask_shared_by_dir``h]h)}(hjXh]hmask_shared_by_dir}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjRubj )}(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.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjnubah}(h]h ]h"]h$]h&]uh1j hjRubeh}(h]h ]h"]h$]h&]uh1j hjmhKhjiubj )}(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](j )}(h``mask_shared_by_all``h]h)}(hjh]hmask_shared_by_all}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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 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 hjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjiubeh}(h]h ]h"]h$]h&]uh1jz hj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$IIO_SCAN_FORMAT_SIGNED_INT (C macro)c.IIO_SCAN_FORMAT_SIGNED_INThNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_SCAN_FORMAT_SIGNED_INTh]j)}(hIIO_SCAN_FORMAT_SIGNED_INTh]j)}(hIIO_SCAN_FORMAT_SIGNED_INTh]j)}(hjh]hIIO_SCAN_FORMAT_SIGNED_INT}(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 ](j j eh"]h$]h&]j j )j huh1jhjhKhjhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hjhhhjhKubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jj, jj- j. j/ uh1jhhhjhNhNubh)}(h``IIO_SCAN_FORMAT_SIGNED_INT``h]h)}(hj!h]hIIO_SCAN_FORMAT_SIGNED_INT}(hj#hhhNhNubah}(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.hhKhjhhubj )}(h signed integer data format **Description** :c:type:`iio_scan_type.format ` value for signed integers (two's complement). h](j )}(hsigned integer data format h]h)}(hsigned integer data formath]hsigned integer data format}(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 hjMhKhj7ubh)}(h**Description**h]j )}(hjVh]h Description}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjTubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj7ubh)}(h\:c:type:`iio_scan_type.format ` value for signed integers (two's complement).h](h)}(h.:c:type:`iio_scan_type.format `h]h)}(hjrh]hiio_scan_type.format}(hjthhhNhNubah}(h]h ](j6j7c-typeeh"]h$]h&]uh1hhjpubah}(h]h ]h"]h$]h&]refdocjC refdomainj7reftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]sbjI iio_scan_typeuh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjlubh0 value for signed integers (two’s complement).}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj7ubeh}(h]h ]h"]h$]h&]uh1j hjMhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&IIO_SCAN_FORMAT_UNSIGNED_INT (C macro)c.IIO_SCAN_FORMAT_UNSIGNED_INThNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_SCAN_FORMAT_UNSIGNED_INTh]j)}(hIIO_SCAN_FORMAT_UNSIGNED_INTh]j)}(hIIO_SCAN_FORMAT_UNSIGNED_INTh]j)}(hjh]hIIO_SCAN_FORMAT_UNSIGNED_INT}(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 ](j j eh"]h$]h&]j j )j huh1jhjhKhjhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hjhhhjhKubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jj, jj- j. j/ uh1jhhhjhNhNubh)}(h ``IIO_SCAN_FORMAT_UNSIGNED_INT``h]h)}(hjh]hIIO_SCAN_FORMAT_UNSIGNED_INT}(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.hhKhjhhubj )}(h} unsigned integer data format **Description** :c:type:`iio_scan_type.format ` value for unsigned integers. h](j )}(hunsigned integer data format h]h)}(hunsigned integer data formath]hunsigned integer data format}(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#hKhj ubh)}(h**Description**h]j )}(hj,h]h Description}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubh)}(hK:c:type:`iio_scan_type.format ` value for unsigned integers.h](h)}(h.:c:type:`iio_scan_type.format `h]h)}(hjHh]hiio_scan_type.format}(hjJhhhNhNubah}(h]h ](j6j7c-typeeh"]h$]h&]uh1hhjFubah}(h]h ]h"]h$]h&]refdocjC refdomainj7reftypetype refexplicitrefwarnjjjI iio_scan_typeuh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjBubh value for unsigned integers.}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehKhj ubeh}(h]h ]h"]h$]h&]uh1j hj#hKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_SCAN_FORMAT_FLOAT (C macro)c.IIO_SCAN_FORMAT_FLOAThNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_SCAN_FORMAT_FLOATh]j)}(hIIO_SCAN_FORMAT_FLOATh]j)}(hIIO_SCAN_FORMAT_FLOATh]j)}(hjh]hIIO_SCAN_FORMAT_FLOAT}(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 ](j j eh"]h$]h&]j j )j huh1jhjhKhjhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hjhhhjhKubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jj, jj- j. j/ uh1jhhhjhNhNubh)}(h``IIO_SCAN_FORMAT_FLOAT``h]h)}(hjh]hIIO_SCAN_FORMAT_FLOAT}(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.hhKhjhhubj )}(h floating-point data format **Description** :c:type:`iio_scan_type.format ` value for IEEE 754 floating-point numbers. h](j )}(hfloating-point data format h]h)}(hfloating-point data formath]hfloating-point data format}(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 hjhKhjubh)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubh)}(hY:c:type:`iio_scan_type.format ` value for IEEE 754 floating-point numbers.h](h)}(h.:c:type:`iio_scan_type.format `h]h)}(hjh]hiio_scan_type.format}(hjhhhNhNubah}(h]h ](j6j7c-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocjC refdomainj7reftypetype refexplicitrefwarnjjjI iio_scan_typeuh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubh+ value for IEEE 754 floating-point numbers.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj3hKhjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_scan_type (C struct)c.iio_scan_typehNtauh1jhjhhhNhNubj)}(hhh](j)}(h iio_scan_typeh]j)}(hstruct iio_scan_typeh](j)}(hjh]hstruct}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYhhhjjhKubj)}(h iio_scan_typeh]j)}(hjWh]h iio_scan_type}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubah}(h]h ](jjeh"]h$]h&]jjuh1jhjYhhhjjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjUhhhjjhKubah}(h]jPah ](j j eh"]h$]h&]j j )j huh1jhjjhKhjRhhubj )}(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&]uh1j hjRhhhjjhKubeh}(h]h ](j7structeh"]h$]h&]j* j7j+ jj, jj- j. j/ uh1jhhhjhNhNubj1 )}(hX**Definition**:: struct iio_scan_type { union { char sign; char format; }; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; }; **Members** ``{unnamed_union}`` anonymous ``sign`` Deprecated, use **format** instead. ``format`` Data format, can have any of the IIO_SCAN_FORMAT_* values. ``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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj)}(hstruct iio_scan_type { union { char sign; char format; }; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; };h]hstruct iio_scan_type { union { char sign; char format; }; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; };}hjsbah}(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&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj{ )}(hhh](j )}(h``{unnamed_union}`` anonymous h](j )}(h``{unnamed_union}``h]h)}(hj h]h{unnamed_union}}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h anonymoush]h anonymous}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hKhj"ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj!hKhjubj )}(h-``sign`` Deprecated, use **format** instead. h](j )}(h``sign``h]h)}(hjEh]hsign}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj?ubj )}(hhh]h)}(h#Deprecated, use **format** instead.h](hDeprecated, use }(hj^hhhNhNubj )}(h **format**h]hformat}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^ubh instead.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjZhKhj[ubah}(h]h ]h"]h$]h&]uh1j hj?ubeh}(h]h ]h"]h$]h&]uh1j hjZhKhjubj )}(hF``format`` Data format, can have any of the IIO_SCAN_FORMAT_* values. h](j )}(h ``format``h]h)}(hjh]hformat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h:Data format, can have any of the IIO_SCAN_FORMAT_* values.h]h:Data format, can have any of the IIO_SCAN_FORMAT_* values.}(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&]uh1j hjhKhjubj )}(h*``realbits`` Number of valid bits of data h](j )}(h ``realbits``h]h)}(hjh]hrealbits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhKhjubj )}(h#``storagebits`` Realbits + padding h](j )}(h``storagebits``h]h)}(hjh]h storagebits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubj )}(h;``shift`` Shift right by this before masking out realbits. h](j )}(h ``shift``h]h)}(hj<h]hshift}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj6ubj )}(hhh]h)}(h0Shift right by this before masking out realbits.h]h0Shift right by this before masking out realbits.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhKhjRubah}(h]h ]h"]h$]h&]uh1j hj6ubeh}(h]h ]h"]h$]h&]uh1j hjQhKhjubj )}(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](j )}(h ``repeat``h]h)}(hjuh]hrepeat}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjoubj )}(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 hjoubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubj )}(h#``endianness`` little or big endianh](j )}(h``endianness``h]h)}(hjh]h endianness}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhKhjubeh}(h]h ]h"]h$]h&]uh1jz hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_chan_spec (C struct)c.iio_chan_spechNtauh1jhjhhhNhNubj)}(hhh](j)}(h iio_chan_spech]j)}(hstruct iio_chan_spech](j)}(hjh]hstruct}(hj hhhNhNubah}(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_chan_spech]j)}(hjh]h iio_chan_spec}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](j j eh"]h$]h&]j j )j huh1jhjhKhjhhubj )}(hhh]h)}(h!specification of a single channelh]h!specification of a single channel}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjHhhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhKubeh}(h]h ](j7structeh"]h$]h&]j* j7j+ jcj, jcj- j. j/ uh1jhhhjhNhNubj1 )}(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}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1j hjkubh:}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjgubj)}(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; };}hjsbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjgubh)}(h **Members**h]j )}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM hjgubj{ )}(hhh](j )}(h9``type`` What type of measurement is the channel making. h](j )}(h``type``h]h)}(hjh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhKhjubj )}(h:``channel`` What number do we wish to assign the channel. h](j )}(h ``channel``h]h)}(hjh]hchannel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubj )}(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](j )}(h ``channel2``h]h)}(hj*h]hchannel2}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj$ubj )}(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.}(hjChhhNhNubah}(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 hj$ubeh}(h]h ]h"]h$]h&]uh1j hj?hKhjubj )}(h(``address`` Driver specific identifier. h](j )}(h ``address``h]h)}(hjdh]haddress}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj^ubj )}(hhh]h)}(hDriver specific identifier.h]hDriver specific identifier.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhKhjzubah}(h]h ]h"]h$]h&]uh1j hj^ubeh}(h]h ]h"]h$]h&]uh1j hjyhKhjubj )}(hR``scan_index`` Monotonic index to give ordering in scans when read from a buffer. h](j )}(h``scan_index``h]h)}(hjh]h scan_index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhKhjubj )}(h``{unnamed_union}`` anonymous h](j )}(h``{unnamed_union}``h]h)}(hjh]h{unnamed_union}}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhKhjubj )}(hW``scan_type`` struct describing the scan type - mutually exclusive with ext_scan_type. h](j )}(h ``scan_type``h]h)}(hjh]h scan_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubj )}(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.}(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 hj ubeh}(h]h ]h"]h$]h&]uh1j hj%hKhjubj )}(h``{unnamed_struct}`` anonymous h](j )}(h``{unnamed_struct}``h]h)}(hjJh]h{unnamed_struct}}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjDubj )}(hhh]h)}(h anonymoush]h anonymous}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hKhj`ubah}(h]h ]h"]h$]h&]uh1j hjDubeh}(h]h ]h"]h$]h&]uh1j hj_hKhjubj )}(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](j )}(h``ext_scan_type``h]h)}(hjh]h ext_scan_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj}ubj )}(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 hj}ubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubj )}(h;``num_ext_scan_type`` Number of elements in ext_scan_type. h](j )}(h``num_ext_scan_type``h]h)}(hjh]hnum_ext_scan_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhKhjubj )}(h\``info_mask_separate`` What information is to be exported that is specific to this channel. h](j )}(h``info_mask_separate``h]h)}(hjh]hinfo_mask_separate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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.hhKhj ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj hKhjubj )}(hs``info_mask_separate_available`` What availability information is to be exported that is specific to this channel. h](j )}(h ``info_mask_separate_available``h]h)}(hj0h]hinfo_mask_separate_available}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj*ubj )}(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.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjFubah}(h]h ]h"]h$]h&]uh1j hj*ubeh}(h]h ]h"]h$]h&]uh1j hjEhKhjubj )}(hq``info_mask_shared_by_type`` What information is to be exported that is shared by all channels of the same type. h](j )}(h``info_mask_shared_by_type``h]h)}(hjjh]hinfo_mask_shared_by_type}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjdubj )}(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.}(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&]uh1j hjhKhjubj )}(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](j )}(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&]uh1j 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&]uh1j hjhKhjubj )}(hu``info_mask_shared_by_dir`` What information is to be exported that is shared by all channels of the same direction. h](j )}(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&]uh1j 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&]uh1j hjhKhjubj )}(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](j )}(h%``info_mask_shared_by_dir_available``h]h)}(hjh]h!info_mask_shared_by_dir_available}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubj )}(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.}(hj1hhhNhNubah}(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&]uh1j hj-hMhjubj )}(h_``info_mask_shared_by_all`` What information is to be exported that is shared by all channels. h](j )}(h``info_mask_shared_by_all``h]h)}(hjRh]hinfo_mask_shared_by_all}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjLubj )}(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.}(hjkhhhNhNubah}(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 hjLubeh}(h]h ]h"]h$]h&]uh1j hjghMhjubj )}(hv``info_mask_shared_by_all_available`` What availability information is to be exported that is shared by all channels. h](j )}(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&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubj )}(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.hhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjhMhjubj )}(hL``event_spec`` Array of events which should be registered for this channel. h](j )}(h``event_spec``h]h)}(hjh]h event_spec}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubj )}(hhh]h)}(hread_label() to override the label, which unlike **extend_name** does not affect sysfs filenames. h](j )}(h``extend_name``h]h)}(hjsh]h extend_name}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmubj )}(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&]uh1j hjubh! 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.hhM hjubah}(h]h ]h"]h$]h&]uh1j hjmubeh}(h]h ]h"]h$]h&]uh1j hjhMhjubj )}(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](j )}(h``datasheet_name``h]h)}(hjh]hdatasheet_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubj )}(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.hhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjhMhjubj )}(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](j )}(h ``modified``h]h)}(hjh]hmodified}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubj )}(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.hhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjhMhjubj )}(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](j )}(h ``indexed``h]h)}(hj3h]hindexed}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1j 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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjIubah}(h]h ]h"]h$]h&]uh1j hj-ubeh}(h]h ]h"]h$]h&]uh1j hjHhMhjubj )}(h``output`` Channel is output. h](j )}(h ``output``h]h)}(hjmh]houtput}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjgubj )}(hhh]h)}(hChannel is output.h]hChannel is output.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j hjgubeh}(h]h ]h"]h$]h&]uh1j hjhMhjubj )}(h*``differential`` Channel is differential. h](j )}(h``differential``h]h)}(hjh]h differential}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhMhjubj )}(hI``has_ext_scan_type`` True if ext_scan_type is used instead of scan_type.h](j )}(h``has_ext_scan_type``h]h)}(hjh]hhas_ext_scan_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hjhMhjubeh}(h]h ]h"]h$]h&]uh1jz hjgubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!iio_channel_has_info (C function)c.iio_channel_has_infohNtauh1jhjhhhNhNubj)}(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}(hj; hhhNhNubah}(h]h ]ktah"]h$]h&]uh1j9 hj5 hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMCubj)}(h h]h }(hjK hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5 hhhjJ hMCubj)}(hiio_channel_has_infoh]j)}(hiio_channel_has_infoh]hiio_channel_has_info}(hj] hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj5 hhhjJ hMCubhdesc_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}(hj} hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy ubj)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy ubh)}(hhh]j)}(h iio_chan_spech]h iio_chan_spec}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj7reftype identifier reftargetj modnameN classnameNjj)}j]j ASTIdentifier)}j j_ sbc.iio_channel_has_infoasbuh1hhjy ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy ubhdesc_sig_punctuation)}(hjh]h*}(hj hhhNhNubah}(h]h ]pah"]h$]h&]uh1j hjy ubj)}(hchanh]hchan}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjs ubjx )}(henum iio_chan_info_enum typeh](j)}(henumh]henum}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj !ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj !ubh)}(hhh]j)}(hiio_chan_info_enumh]hiio_chan_info_enum}(hj0!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-!ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj2!modnameN classnameNjj)}j]j c.iio_channel_has_infoasbuh1hhj !ubj)}(h h]h }(hjN!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj !ubj)}(htypeh]htype}(hj\!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj !ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjs ubeh}(h]h ]h"]h$]h&]jjuh1jq hj5 hhhjJ hMCubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj1 hhhjJ hMCubah}(h]j, ah ](j j eh"]h$]h&]j j )j huh1jhjJ hMChj. hhubj )}(hhh]h)}(h2Checks whether a channel supports a info attributeh]h2Checks whether a channel supports a 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.hhMChj!hhubah}(h]h ]h"]h$]h&]uh1j hj. hhhjJ hMCubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j!j, j!j- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hj!h]h Parameters}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj!ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMGhj!ubj{ )}(hhh](j )}(h?``const struct iio_chan_spec *chan`` The channel to be queried h](j )}(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&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMDhj!ubj )}(hhh]h)}(hThe channel to be queriedh]hThe channel to be queried}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hMDhj!ubah}(h]h ]h"]h$]h&]uh1j hj!ubeh}(h]h ]h"]h$]h&]uh1j hj!hMDhj!ubj )}(hJ``enum iio_chan_info_enum type`` Type of the info attribute to be checked h](j )}(h ``enum iio_chan_info_enum type``h]h)}(hj"h]henum iio_chan_info_enum type}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMEhj!ubj )}(hhh]h)}(h(Type of the info attribute to be checkedh]h(Type of the info attribute to be checked}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hMEhj"ubah}(h]h ]h"]h$]h&]uh1j hj!ubeh}(h]h ]h"]h$]h&]uh1j hj"hMEhj!ubeh}(h]h ]h"]h$]h&]uh1jz hj!ubh)}(h**Description**h]j )}(hj;"h]h Description}(hj="hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9"ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMGhj!ubh)}(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.}(hjQ"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&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&iio_channel_has_available (C function)c.iio_channel_has_availablehNtauh1jhjhhhNhNubj)}(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: )}(hj= h]hbool}(hj"hhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hj|"hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMTubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|"hhhj"hMTubj)}(hiio_channel_has_availableh]j)}(hiio_channel_has_availableh]hiio_channel_has_available}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj|"hhhj"hMTubjr )}(h@(const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h](jx )}(h const struct iio_chan_spec *chanh](j)}(hj h]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)}(h iio_chan_spech]h iio_chan_spec}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj"modnameN classnameNjj)}j]j )}j j"sbc.iio_channel_has_availableasbuh1hhj"ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj )}(hjh]h*}(hj##hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj"ubj)}(hchanh]hchan}(hj0#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj"ubjx )}(henum iio_chan_info_enum typeh](j)}(hj!h]henum}(hjI#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE#ubj)}(h h]h }(hjV#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE#ubh)}(hhh]j)}(hiio_chan_info_enumh]hiio_chan_info_enum}(hjg#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd#ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetji#modnameN classnameNjj)}j]j#c.iio_channel_has_availableasbuh1hhjE#ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE#ubj)}(htypeh]htype}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE#ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj"ubeh}(h]h ]h"]h$]h&]jjuh1jq hj|"hhhj"hMTubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjx"hhhj"hMTubah}(h]js"ah ](j j eh"]h$]h&]j j )j huh1jhj"hMThju"hhubj )}(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.hhMThj#hhubah}(h]h ]h"]h$]h&]uh1j hju"hhhj"hMTubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j#j, j#j- j. j/ uh1jhhhjhNhNubj1 )}(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&]uh1j hj#ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMXhj#ubj{ )}(hhh](j )}(h?``const struct iio_chan_spec *chan`` The channel to be queried h](j )}(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&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMUhj#ubj )}(hhh]h)}(hThe channel to be queriedh]hThe channel to be queried}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hMUhj$ubah}(h]h ]h"]h$]h&]uh1j hj#ubeh}(h]h ]h"]h$]h&]uh1j hj$hMUhj#ubj )}(hO``enum iio_chan_info_enum type`` Type of the available attribute to be checked h](j )}(h ``enum iio_chan_info_enum type``h]h)}(hj7$h]henum iio_chan_info_enum type}(hj9$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5$ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMVhj1$ubj )}(hhh]h)}(h-Type of the available attribute to be checkedh]h-Type of the available attribute to be checked}(hjP$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjL$hMVhjM$ubah}(h]h ]h"]h$]h&]uh1j hj1$ubeh}(h]h ]h"]h$]h&]uh1j hjL$hMVhj#ubeh}(h]h ]h"]h$]h&]uh1jz hj#ubh)}(h**Description**h]j )}(hjr$h]h Description}(hjt$hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjp$ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMXhj#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.hhMWhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_info (C struct) c.iio_infohNtauh1jhjhhhNhNubj)}(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.hhM]ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj$hM]ubj)}(hiio_infoh]j)}(hj$h]hiio_info}(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 ](j j eh"]h$]h&]j j )j huh1jhj$hM]hj$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&]uh1j hj$hhhj$hM]ubeh}(h]h ](j7structeh"]h$]h&]j* j7j+ j%j, j%j- j. j/ uh1jhhhjhNhNubj1 )}(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.h](h)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj%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); };}hj6%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 )}(hjG%h]hMembers}(hjI%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjE%ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubj{ )}(hhh](j )}(h)``event_attrs`` event control attributes h](j )}(h``event_attrs``h]h)}(hjf%h]h event_attrs}(hjh%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd%ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj`%ubj )}(hhh]h)}(hevent control attributesh]hevent control attributes}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{%hMhj|%ubah}(h]h ]h"]h$]h&]uh1j hj`%ubeh}(h]h ]h"]h$]h&]uh1j hj{%hMhj]%ubj )}(h,``attrs`` general purpose device attributes h](j )}(h ``attrs``h]h)}(hj%h]hattrs}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hj%hMhj]%ubj )}(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](j )}(h ``read_raw``h]h)}(hj%h]hread_raw}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hj%hMhj]%ubj )}(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](j )}(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&]uh1j 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&]uh1j hj'&hMhj]%ubj )}(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](j )}(h``read_avail``h]h)}(hjL&h]h read_avail}(hjN&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJ&ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjF&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.}(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&]uh1j hja&hMhj]%ubj )}(h```write_raw`` function to write a value to the device. Parameters are the same as for read_raw. h](j )}(h ``write_raw``h]h)}(hj&h]h write_raw}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj&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 hj&ubeh}(h]h ]h"]h$]h&]uh1j hj&hMhj]%ubj )}(hh``read_label`` function to request label name for a specified label, for better channel identification. h](j )}(h``read_label``h]h)}(hj&h]h read_label}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubah}(h]h ]h"]h$]h&]uh1j 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&]uh1j hj&hMhj]%ubj )}(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](j )}(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&]uh1j 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&]uh1j hj'hMhj]%ubj )}(h8``read_event_config`` find out if the event is enabled. h](j )}(h``read_event_config``h]h)}(hj4'h]hread_event_config}(hj6'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2'ubah}(h]h ]h"]h$]h&]uh1j 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.}(hjM'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjI'hMhjJ'ubah}(h]h ]h"]h$]h&]uh1j hj.'ubeh}(h]h ]h"]h$]h&]uh1j hjI'hMhj]%ubj )}(h4``write_event_config`` set if the event is enabled. h](j )}(h``write_event_config``h]h)}(hjm'h]hwrite_event_config}(hjo'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjk'ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjg'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 hjg'ubeh}(h]h ]h"]h$]h&]uh1j hj'hMhj]%ubj )}(hK``read_event_value`` read a configuration value associated with the event. h](j )}(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&]uh1j 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&]uh1j hj'hMhj]%ubj )}(hA``write_event_value`` write a configuration value for the event. h](j )}(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&]uh1j 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&]uh1j hj'hMhj]%ubj )}(hl``read_event_label`` function to request label name for a specified label, for better event identification. h](j )}(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&]uh1j 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.}(hj1(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&]uh1j hj-(hMhj]%ubj )}(h]``validate_trigger`` function to validate the trigger when the current trigger gets changed. h](j )}(h``validate_trigger``h]h)}(hjR(h]hvalidate_trigger}(hjT(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP(ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjL(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.}(hjk(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjh(ubah}(h]h ]h"]h$]h&]uh1j hjL(ubeh}(h]h ]h"]h$]h&]uh1j hjg(hMhj]%ubj )}(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](j )}(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&]uh1j 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&]uh1j hj(hMhj]%ubj )}(h]``update_scan_mode`` function to configure device and scan buffer when channels have changed h](j )}(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&]uh1j 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&]uh1j hj(hMhj]%ubj )}(hJ``debugfs_reg_access`` function to read or write register value of device h](j )}(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&]uh1j 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&]uh1j hj)hMhj]%ubj )}(hR``fwnode_xlate`` fwnode based function pointer to obtain channel specifier index. h](j )}(h``fwnode_xlate``h]h)}(hj9)h]h fwnode_xlate}(hj;)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7)ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj3)ubj )}(hhh]h)}(h@fwnode based function pointer to obtain channel specifier index.h]h@fwnode based function pointer to obtain channel specifier index.}(hjR)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjN)hMhjO)ubah}(h]h ]h"]h$]h&]uh1j hj3)ubeh}(h]h ]h"]h$]h&]uh1j hjN)hMhj]%ubj )}(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](j )}(h``hwfifo_set_watermark``h]h)}(hjr)h]hhwfifo_set_watermark}(hjt)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjp)ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjl)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 hjl)ubeh}(h]h ]h"]h$]h&]uh1j hj)hMhj]%ubj )}(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](j )}(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&]uh1j 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&]uh1j hj)hMhj]%ubeh}(h]h ]h"]h$]h&]uh1jz hj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_buffer_setup_ops (C struct)c.iio_buffer_setup_opshNtauh1jhjhhhNhNubj)}(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 ](j j eh"]h$]h&]j j )j huh1jhj*hMhj)hhubj )}(hhh]h)}(hbuffer setup related callbacksh]hbuffer setup related callbacks}(hjH*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMGhjE*hhubah}(h]h ]h"]h$]h&]uh1j hj)hhhj*hMubeh}(h]h ](j7structeh"]h$]h&]j* j7j+ j`*j, j`*j- j. j/ uh1jhhhjhNhNubj1 )}(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}(hjl*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjh*ubh:}(hjh*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMKhjd*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.hhMMhjd*ubh)}(h **Members**h]j )}(hj*h]hMembers}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMUhjd*ubj{ )}(hhh](j )}(hG``preenable`` [DRIVER] function to run prior to marking buffer enabled h](j )}(h ``preenable``h]h)}(hj*h]h preenable}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMIhj*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*hMIhj*ubah}(h]h ]h"]h$]h&]uh1j hj*ubeh}(h]h ]h"]h$]h&]uh1j hj*hMIhj*ubj )}(hE``postenable`` [DRIVER] function to run after marking buffer enabled h](j )}(h``postenable``h]h)}(hj*h]h postenable}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMJhj*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+hMJhj+ubah}(h]h ]h"]h$]h&]uh1j hj*ubeh}(h]h ]h"]h$]h&]uh1j hj+hMJhj*ubj )}(hI``predisable`` [DRIVER] function to run prior to marking buffer disabled h](j )}(h``predisable``h]h)}(hj'+h]h predisable}(hj)+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%+ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMLhj!+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.hhMKhj=+ubah}(h]h ]h"]h$]h&]uh1j hj!+ubeh}(h]h ]h"]h$]h&]uh1j hj<+hMLhj*ubj )}(hG``postdisable`` [DRIVER] function to run after marking buffer disabled h](j )}(h``postdisable``h]h)}(hja+h]h postdisable}(hjc+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_+ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMMhj[+ubj )}(hhh]h)}(h6[DRIVER] function to run after marking buffer disabledh]h6[DRIVER] function to run after marking buffer disabled}(hjz+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjv+hMMhjw+ubah}(h]h ]h"]h$]h&]uh1j hj[+ubeh}(h]h ]h"]h$]h&]uh1j hjv+hMMhj*ubj )}(hm``validate_scan_mask`` [DRIVER] function callback to check whether a given scan mask is valid for the device.h](j )}(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&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMNhj+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+hMNhj+ubah}(h]h ]h"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]uh1j hj+hMNhj*ubeh}(h]h ]h"]h$]h&]uh1jz hjd*ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_dev (C struct) c.iio_devhNtauh1jhjhhhNhNubj)}(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.hhMUubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj,hMUubj)}(hiio_devh]j)}(hj+h]hiio_dev}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj+hhhj,hMUubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj+hhhj,hMUubah}(h]j+ah ](j j eh"]h$]h&]j j )j huh1jhj,hMUhj+hhubj )}(hhh]h)}(hindustrial I/O deviceh]hindustrial I/O device}(hj5,hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMZhj2,hhubah}(h]h ]h"]h$]h&]uh1j hj+hhhj,hMUubeh}(h]h ](j7structeh"]h$]h&]j* j7j+ jM,j, jM,j- j. j/ uh1jhhhjhNhNubj1 )}(hX **Definition**:: struct iio_dev { int modes; struct device dev; struct iio_buffer *buffer; int scan_bytes; unsigned int scan_timestamp_offset; 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 ``scan_timestamp_offset`` [INTERN] cache of the offset (in bytes) for the timestamp in the scan buffer ``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}(hjY,hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjU,ubh:}(hjU,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM^hjQ,ubj)}(hX struct iio_dev { int modes; struct device dev; struct iio_buffer *buffer; int scan_bytes; unsigned int scan_timestamp_offset; 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]hX struct iio_dev { int modes; struct device dev; struct iio_buffer *buffer; int scan_bytes; unsigned int scan_timestamp_offset; 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; };}hjr,sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM`hjQ,ubh)}(h **Members**h]j )}(hj,h]hMembers}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj,ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMvhjQ,ubj{ )}(hhh](j )}(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](j )}(h ``modes``h]h)}(hj,h]hmodes}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMahj,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.hhM\hj,ubah}(h]h ]h"]h$]h&]uh1j hj,ubeh}(h]h ]h"]h$]h&]uh1j hj,hMahj,ubj )}(hI``dev`` [DRIVER] device structure, should be assigned a parent and owner h](j )}(h``dev``h]h)}(hj,h]hdev}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMchj,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.hhMbhj,ubah}(h]h ]h"]h$]h&]uh1j hj,ubeh}(h]h ]h"]h$]h&]uh1j hj,hMchj,ubj )}(h'``buffer`` [DRIVER] any buffer present h](j )}(h ``buffer``h]h)}(hj-h]hbuffer}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMdhj-ubj )}(hhh]h)}(hRIVER] any buffer presenth]hRIVER] any buffer present}(hj/-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+-hMdhj,-ubah}(h]h ]h"]h$]h&]uh1j hj-ubeh}(h]h ]h"]h$]h&]uh1j hj+-hMdhj,ubj )}(hE``scan_bytes`` [INTERN] num bytes captured to be fed to buffer demux h](j )}(h``scan_bytes``h]h)}(hjO-h]h scan_bytes}(hjQ-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM-ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMehjI-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}(hjh-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd-hMehje-ubah}(h]h ]h"]h$]h&]uh1j hjI-ubeh}(h]h ]h"]h$]h&]uh1j hjd-hMehj,ubj )}(hg``scan_timestamp_offset`` [INTERN] cache of the offset (in bytes) for the timestamp in the scan buffer h](j )}(h``scan_timestamp_offset``h]h)}(hj-h]hscan_timestamp_offset}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMghj-ubj )}(hhh]h)}(hL[INTERN] cache of the offset (in bytes) for the timestamp in the scan bufferh]hL[INTERN] cache of the offset (in bytes) for the timestamp in the scan buffer}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMfhj-ubah}(h]h ]h"]h$]h&]uh1j hj-ubeh}(h]h ]h"]h$]h&]uh1j hj-hMghj,ubj )}(h``available_scan_masks`` [DRIVER] optional array of allowed bitmasks. Sort the array in order of preference, the most preferred masks first. h](j )}(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&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMjhj-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.hhMhhj-ubah}(h]h ]h"]h$]h&]uh1j hj-ubeh}(h]h ]h"]h$]h&]uh1j hj-hMjhj,ubj )}(hI``masklength`` [INTERN] the length of the mask established from channels h](j )}(h``masklength``h]h)}(hj-h]h masklength}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMlhj-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.hhMkhj.ubah}(h]h ]h"]h$]h&]uh1j hj-ubeh}(h]h ]h"]h$]h&]uh1j hj.hMlhj,ubj )}(hK``active_scan_mask`` [INTERN] union of all scan masks requested by buffers h](j )}(h``active_scan_mask``h]h)}(hj6.h]hactive_scan_mask}(hj8.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4.ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMmhj0.ubj )}(hhh]h)}(h5[INTERN] union of all scan masks requested by buffersh]h5[INTERN] union of all scan masks requested by buffers}(hjO.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK.hMmhjL.ubah}(h]h ]h"]h$]h&]uh1j hj0.ubeh}(h]h ]h"]h$]h&]uh1j hjK.hMmhj,ubj )}(hH``scan_timestamp`` [INTERN] set if any buffers have requested timestamp h](j )}(h``scan_timestamp``h]h)}(hjo.h]hscan_timestamp}(hjq.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm.ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMnhji.ubj )}(hhh]h)}(h4[INTERN] set if any buffers have requested timestamph]h4[INTERN] set if any buffers have requested timestamp}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hMnhj.ubah}(h]h ]h"]h$]h&]uh1j hji.ubeh}(h]h ]h"]h$]h&]uh1j hj.hMnhj,ubj )}(h8``trig`` [INTERN] current device trigger (buffer modes) h](j )}(h``trig``h]h)}(hj.h]htrig}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMohj.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.hMohj.ubah}(h]h ]h"]h$]h&]uh1j hj.ubeh}(h]h ]h"]h$]h&]uh1j hj.hMohj,ubj )}(h=``pollfunc`` [DRIVER] function run on trigger being received h](j )}(h ``pollfunc``h]h)}(hj.h]hpollfunc}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMphj.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.hMphj.ubah}(h]h ]h"]h$]h&]uh1j hj.ubeh}(h]h ]h"]h$]h&]uh1j hj.hMphj,ubj )}(hJ``pollfunc_event`` [DRIVER] function run on events trigger being received h](j )}(h``pollfunc_event``h]h)}(hj/h]hpollfunc_event}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMqhj/ubj )}(hhh]h)}(h6[DRIVER] function run on events trigger being receivedh]h6[DRIVER] function run on events trigger being received}(hj3/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj//hMqhj0/ubah}(h]h ]h"]h$]h&]uh1j hj/ubeh}(h]h ]h"]h$]h&]uh1j hj//hMqhj,ubj )}(h<``channels`` [DRIVER] channel specification structure table h](j )}(h ``channels``h]h)}(hjS/h]hchannels}(hjU/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQ/ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMrhjM/ubj )}(hhh]h)}(h.[DRIVER] channel specification structure tableh]h.[DRIVER] channel specification structure table}(hjl/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjh/hMrhji/ubah}(h]h ]h"]h$]h&]uh1j hjM/ubeh}(h]h ]h"]h$]h&]uh1j hjh/hMrhj,ubj )}(hH``num_channels`` [DRIVER] number of channels specified in **channels**. h](j )}(h``num_channels``h]h)}(hj/h]h num_channels}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMshj/ubj )}(hhh]h)}(h6[DRIVER] number of channels specified in **channels**.h](h)[DRIVER] number of channels specified in }(hj/hhhNhNubj )}(h **channels**h]hchannels}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj/ubh.}(hj/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj/hMshj/ubah}(h]h ]h"]h$]h&]uh1j hj/ubeh}(h]h ]h"]h$]h&]uh1j hj/hMshj,ubj )}(h&``name`` [DRIVER] name of the device. h](j )}(h``name``h]h)}(hj/h]hname}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMthj/ubj )}(hhh]h)}(h[DRIVER] name of the device.h]h[DRIVER] name of the device.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMthj/ubah}(h]h ]h"]h$]h&]uh1j hj/ubeh}(h]h ]h"]h$]h&]uh1j hj/hMthj,ubj )}(h@``label`` [DRIVER] unique name to identify which device this is h](j )}(h ``label``h]h)}(hj0h]hlabel}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMuhj 0ubj )}(hhh]h)}(h5[DRIVER] unique name to identify which device this ish]h5[DRIVER] unique name to identify which device this is}(hj)0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%0hMuhj&0ubah}(h]h ]h"]h$]h&]uh1j hj 0ubeh}(h]h ]h"]h$]h&]uh1j hj%0hMuhj,ubj )}(h:``info`` [DRIVER] callbacks and constant info from driver h](j )}(h``info``h]h)}(hjI0h]hinfo}(hjK0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG0ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMvhjC0ubj )}(hhh]h)}(h0[DRIVER] callbacks and constant info from driverh]h0[DRIVER] callbacks and constant info from driver}(hjb0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^0hMvhj_0ubah}(h]h ]h"]h$]h&]uh1j hjC0ubeh}(h]h ]h"]h$]h&]uh1j hj^0hMvhj,ubj )}(hP``setup_ops`` [DRIVER] callbacks to call before and after buffer enable/disable h](j )}(h ``setup_ops``h]h)}(hj0h]h setup_ops}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMxhj|0ubj )}(hhh]h)}(hA[DRIVER] callbacks to call before and after buffer enable/disableh]hA[DRIVER] callbacks to call before and after buffer enable/disable}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMwhj0ubah}(h]h ]h"]h$]h&]uh1j hj|0ubeh}(h]h ]h"]h$]h&]uh1j hj0hMxhj,ubj )}(ho``priv`` [DRIVER] reference to driver's private information **MUST** be accessed **ONLY** via iio_priv() helperh](j )}(h``priv``h]h)}(hj0h]hpriv}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMyhj0ubj )}(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 }(hj0hhhNhNubj )}(h**MUST**h]hMUST}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0ubh be accessed }(hj0hhhNhNubj )}(h**ONLY**h]hONLY}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0ubh via iio_priv() helper}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj0hMyhj0ubah}(h]h ]h"]h$]h&]uh1j hj0ubeh}(h]h ]h"]h$]h&]uh1j hj0hMyhj,ubeh}(h]h ]h"]h$]h&]uh1jz hjQ,ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_register (C macro)c.iio_device_registerhNtauh1jhjhhhNhNubj)}(hhh](j)}(hiio_device_registerh]j)}(hiio_device_registerh]j)}(hiio_device_registerh]j)}(hj31h]hiio_device_register}(hj=1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj91ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj51hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj11hhhjP1hMubah}(h]j,1ah ](j j eh"]h$]h&]j j )j huh1jhjP1hMhj.1hhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj.1hhhjP1hMubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ ji1j, ji1j- j. j/ uh1jhhhjhNhNubh)}(h#``iio_device_register (indio_dev)``h]h)}(hjo1h]hiio_device_register (indio_dev)}(hjq1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm1ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjhhubj )}(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}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj1ubah}(h]h ]h"]h$]h&]uh1j hj1hMhjhhubj1 )}(hL**Parameters** ``indio_dev`` Device structure filled by the device driverh](h)}(h**Parameters**h]j )}(hj1h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj1ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj1ubj{ )}(hhh]j )}(h:``indio_dev`` Device structure filled by the device driverh](j )}(h ``indio_dev``h]h)}(hj1h]h indio_dev}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj1ubj )}(hhh]h)}(h,Device structure filled by the device driverh]h,Device structure filled by the device driver}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj1ubah}(h]h ]h"]h$]h&]uh1j hj1ubeh}(h]h ]h"]h$]h&]uh1j hj1hMhj1ubah}(h]h ]h"]h$]h&]uh1jz hj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devm_iio_device_register (C macro)c.devm_iio_device_registerhNtauh1jhjhhhNhNubj)}(hhh](j)}(hdevm_iio_device_registerh]j)}(hdevm_iio_device_registerh]j)}(hdevm_iio_device_registerh]j)}(hj2h]hdevm_iio_device_register}(hj!2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj2hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj2hhhj42hMubah}(h]j2ah ](j j eh"]h$]h&]j j )j huh1jhj42hMhj2hhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj2hhhj42hMubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jM2j, jM2j- j. j/ uh1jhhhjhNhNubh)}(h-``devm_iio_device_register (dev, indio_dev)``h]h)}(hjS2h]h)devm_iio_device_register (dev, indio_dev)}(hjU2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQ2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjhhubj )}(h'Resource-managed iio_device_register() h]h)}(h&Resource-managed iio_device_register()h]h&Resource-managed iio_device_register()}(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{2hMhjhhubj1 )}(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 )}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubj{ )}(hhh](j )}(h'``dev`` Device to allocate iio_dev for h](j )}(h``dev``h]h)}(hj2h]hdev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubj )}(hhh]h)}(hDevice to allocate iio_dev forh]hDevice to allocate iio_dev for}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1j hj2ubeh}(h]h ]h"]h$]h&]uh1j hj2hMhj2ubj )}(h;``indio_dev`` Device structure filled by the device driver h](j )}(h ``indio_dev``h]h)}(hj2h]h indio_dev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubj )}(hhh]h)}(h,Device structure filled by the device driverh]h,Device structure filled by the device driver}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1j hj2ubeh}(h]h ]h"]h$]h&]uh1j hj2hMhj2ubeh}(h]h ]h"]h$]h&]uh1jz hj2ubh)}(h**Description**h]j )}(hj3h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj3ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubh)}(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.}(hj13hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubh)}(h **Return**h]j )}(hjB3h]hReturn}(hjD3hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj@3ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubh)}(h/0 on success, negative error number on failure.h]h/0 on success, negative error number on failure.}(hjX3hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$iio_device_claim_direct (C function)c.iio_device_claim_directhNtauh1jhjhhhNhNubj)}(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: )}(hj= h]hbool}(hj3hhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hj3hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhj3hMubj)}(hiio_device_claim_directh]j)}(hiio_device_claim_directh]hiio_device_claim_direct}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj3hhhj3hMubjr )}(h(struct iio_dev *indio_dev)h]jx )}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj3modnameN classnameNjj)}j]j )}j j3sbc.iio_device_claim_directasbuh1hhj3ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj )}(hjh]h*}(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj3ubj)}(h indio_devh]h indio_dev}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj3ubah}(h]h ]h"]h$]h&]jjuh1jq hj3hhhj3hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj3hhhj3hMubah}(h]jz3ah ](j j eh"]h$]h&]j j )j huh1jhj3hMhj|3hhubj )}(hhh]h)}(hKeep device in direct modeh]hKeep device in direct mode}(hjF4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjC4hhubah}(h]h ]h"]h$]h&]uh1j hj|3hhhj3hMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j^4j, j^4j- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hjh4h]h Parameters}(hjj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjf4ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb4ubj{ )}(hhh]j )}(hE``struct iio_dev *indio_dev`` the iio_dev associated with the device h](j )}(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&]uh1j 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}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1j hj4ubeh}(h]h ]h"]h$]h&]uh1j hj4hMhj~4ubah}(h]h ]h"]h$]h&]uh1jz hjb4ubh)}(h**Description**h]j )}(hj4h]h Description}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj4ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb4ubh)}(hnIf the device is in direct mode it is guaranteed to stay that way until iio_device_release_direct() is called.h]hnIf the device is in direct mode it is guaranteed to stay that way until iio_device_release_direct() is called.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb4ubh)}(h%Use with iio_device_release_direct().h]h%Use with iio_device_release_direct().}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb4ubh)}(h **Return**h]j )}(hj4h]hReturn}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj4ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb4ubh)}(h"true on success, false on failure.h]h"true on success, false on failure.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb4ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#iio_device_release_direct (C macro)c.iio_device_release_directhNtauh1jhjhhhNhNubj)}(hhh](j)}(hiio_device_release_directh]j)}(hiio_device_release_directh]j)}(hiio_device_release_directh]j)}(hj75h]hiio_device_release_direct}(hjA5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=5ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj95hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj55hhhjT5hMubah}(h]j05ah ](j j eh"]h$]h&]j j )j huh1jhjT5hMhj25hhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj25hhhjT5hMubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jm5j, jm5j- j. j/ uh1jhhhjhNhNubh)}(h)``iio_device_release_direct (indio_dev)``h]h)}(hjs5h]h%iio_device_release_direct (indio_dev)}(hju5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjq5ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjhhubj )}(hReleases claim on direct mode h]h)}(hReleases claim on direct modeh]hReleases claim on direct 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 hj5hMhjhhubj1 )}(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 )}(hj5h]h Parameters}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj5ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj5ubj{ )}(hhh]j )}(h5``indio_dev`` the iio_dev associated with the device h](j )}(h ``indio_dev``h]h)}(hj5h]h indio_dev}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj5ubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMhj5ubah}(h]h ]h"]h$]h&]uh1j hj5ubeh}(h]h ]h"]h$]h&]uh1j hj5hMhj5ubah}(h]h ]h"]h$]h&]uh1jz hj5ubh)}(h**Description**h]j )}(hj6h]h Description}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj6ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj5ubh)}(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.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj5ubh)}(h#Use with iio_device_claim_direct().h]h#Use with iio_device_claim_direct().}(hj'6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j-iio_device_try_claim_buffer_mode (C function)"c.iio_device_try_claim_buffer_modehNtauh1jhjhhhNhNubj)}(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: )}(hj= h]hbool}(hjV6hhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjR6hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hjd6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR6hhhjc6hMubj)}(h iio_device_try_claim_buffer_modeh]j)}(h iio_device_try_claim_buffer_modeh]h iio_device_try_claim_buffer_mode}(hjv6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr6ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjR6hhhjc6hMubjr )}(h(struct iio_dev *indio_dev)h]jx )}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj6modnameN classnameNjj)}j]j )}j jx6sb"c.iio_device_try_claim_buffer_modeasbuh1hhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj )}(hjh]h*}(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj6ubj)}(h indio_devh]h indio_dev}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj6ubah}(h]h ]h"]h$]h&]jjuh1jq hjR6hhhjc6hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjN6hhhjc6hMubah}(h]jI6ah ](j j eh"]h$]h&]j j )j huh1jhjc6hMhjK6hhubj )}(hhh]h)}(hKeep device in buffer modeh]hKeep device in buffer mode}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj7hhubah}(h]h ]h"]h$]h&]uh1j hjK6hhhjc6hMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j-7j, j-7j- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hj77h]h Parameters}(hj97hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj57ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj17ubj{ )}(hhh]j )}(hE``struct iio_dev *indio_dev`` the iio_dev associated with the device h](j )}(h``struct iio_dev *indio_dev``h]h)}(hjV7h]hstruct iio_dev *indio_dev}(hjX7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjT7ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjP7ubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hjo7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjk7hMhjl7ubah}(h]h ]h"]h$]h&]uh1j hjP7ubeh}(h]h ]h"]h$]h&]uh1j hjk7hMhjM7ubah}(h]h ]h"]h$]h&]uh1jz hj17ubh)}(h**Description**h]j )}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj7ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj17ubh)}(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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj17ubh)}(h*Use with iio_device_release_buffer_mode().h]h*Use with iio_device_release_buffer_mode().}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj17ubh)}(h **Return**h]j )}(hj7h]hReturn}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj7ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj17ubh)}(h"true on success, false on failure.h]h"true on success, false on failure.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj17ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(iio_device_release_buffer_mode (C macro) c.iio_device_release_buffer_modehNtauh1jhjhhhNhNubj)}(hhh](j)}(hiio_device_release_buffer_modeh]j)}(hiio_device_release_buffer_modeh]j)}(hiio_device_release_buffer_modeh]j)}(hj8h]hiio_device_release_buffer_mode}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 8ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj8hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj8hhhj#8hMubah}(h]j7ah ](j j eh"]h$]h&]j j )j huh1jhj#8hMhj8hhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj8hhhj#8hMubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ j<8j, j<8j- j. j/ uh1jhhhjhNhNubh)}(h.``iio_device_release_buffer_mode (indio_dev)``h]h)}(hjB8h]h*iio_device_release_buffer_mode (indio_dev)}(hjD8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjhhubj )}(hreleases claim on buffer mode h]h)}(hreleases claim on buffer modeh]hreleases claim on buffer mode}(hj\8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjX8ubah}(h]h ]h"]h$]h&]uh1j hjj8hMhjhhubj1 )}(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 )}(hjw8h]h Parameters}(hjy8hhhNhNubah}(h]h ]h"]h$]h&]uh1j hju8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjq8ubj{ )}(hhh]j )}(h5``indio_dev`` the iio_dev associated with the device h](j )}(h ``indio_dev``h]h)}(hj8h]h indio_dev}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj8ubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1j hj8ubeh}(h]h ]h"]h$]h&]uh1j hj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jz hjq8ubh)}(h**Description**h]j )}(hj8h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjq8ubh)}(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.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjq8ubh)}(h,Use with iio_device_try_claim_buffer_mode().h]h,Use with iio_device_try_claim_buffer_mode().}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjq8ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%IIO_DEV_ACQUIRE_DIRECT_MODE (C macro)c.IIO_DEV_ACQUIRE_DIRECT_MODEhNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_DEV_ACQUIRE_DIRECT_MODEh]j)}(hIIO_DEV_ACQUIRE_DIRECT_MODEh]j)}(hIIO_DEV_ACQUIRE_DIRECT_MODEh]j)}(hj9h]hIIO_DEV_ACQUIRE_DIRECT_MODE}(hj)9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%9ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj!9hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj9hhhj<9hMubah}(h]j9ah ](j j eh"]h$]h&]j j )j huh1jhj<9hMhj9hhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj9hhhj<9hMubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jU9j, jU9j- j. j/ uh1jhhhjhNhNubh)}(h,``IIO_DEV_ACQUIRE_DIRECT_MODE (dev, claim)``h]h)}(hj[9h]h(IIO_DEV_ACQUIRE_DIRECT_MODE (dev, claim)}(hj]9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjY9ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjhhubj )}(h=Tries to acquire the direct mode lock with automatic release h]h)}(h;ubah}(h]h ]h"]h$]h&]uh1j hj";ubeh}(h]h ]h"]h$]h&]uh1j hj=;hM.hj;ubah}(h]h ]h"]h$]h&]uh1jz hj;ubh)}(h **Return**h]j )}(hjc;h]hReturn}(hje;hhhNhNubah}(h]h ]h"]h$]h&]uh1j hja;ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM0hj;ubh)}(h4true if failed to acquire the mode, otherwise false.h]h4true if failed to acquire the mode, otherwise false.}(hjy;hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM0hj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$IIO_DEV_GUARD_CURRENT_MODE (C macro)c.IIO_DEV_GUARD_CURRENT_MODEhNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_DEV_GUARD_CURRENT_MODEh]j)}(hIIO_DEV_GUARD_CURRENT_MODEh]j)}(hIIO_DEV_GUARD_CURRENT_MODEh]j)}(hj;h]hIIO_DEV_GUARD_CURRENT_MODE}(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.hhM6ubah}(h]h ]h"]h$]h&]jjjuh1jjjhj;hhhj;hM6ubah}(h]j;ah ](j j eh"]h$]h&]j j )j huh1jhj;hM6hj;hhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj;hhhj;hM6ubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ j;j, j;j- j. j/ uh1jhhhjhNhNubh)}(h$``IIO_DEV_GUARD_CURRENT_MODE (dev)``h]h)}(hj;h]h IIO_DEV_GUARD_CURRENT_MODE (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.hhM8hjhhubj )}(h.Acquires the mode lock with automatic release h]h)}(h-Acquires the mode lock with automatic releaseh]h-Acquires the mode lock with automatic release}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM6hj;ubah}(h]h ]h"]h$]h&]uh1j hj<hM6hjhhubj1 )}(hX_**Parameters** ``dev`` IIO device instance **Description** Acquires the mode lock with cleanup guard() semantics. It is usually paired with iio_buffer_enabled(). This should *not* be used to protect internal driver state and it's use in general is *strongly* discouraged. Use any of the IIO_DEV_ACQUIRE_*_MODE() variants. **Context** Can sleeph](h)}(h**Parameters**h]j )}(hj<h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj<ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM:hj <ubj{ )}(hhh]j )}(h``dev`` IIO device instance h](j )}(h``dev``h]h)}(hj2<h]hdev}(hj4<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0<ubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM7hj,<ubj )}(hhh]h)}(hIIO device instanceh]hIIO device instance}(hjK<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG<hM7hjH<ubah}(h]h ]h"]h$]h&]uh1j hj,<ubeh}(h]h ]h"]h$]h&]uh1j hjG<hM7hj)<ubah}(h]h ]h"]h$]h&]uh1jz hj <ubh)}(h**Description**h]j )}(hjm<h]h Description}(hjo<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjk<ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM9hj <ubh)}(hfAcquires the mode lock with cleanup guard() semantics. It is usually paired with iio_buffer_enabled().h]hfAcquires the mode lock with cleanup guard() semantics. It is usually paired with iio_buffer_enabled().}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM8hj <ubh)}(hThis should *not* be used to protect internal driver state and it's use in general is *strongly* discouraged. Use any of the IIO_DEV_ACQUIRE_*_MODE() variants.h](h This should }(hj<hhhNhNubj)}(h*not*h]hnot}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubhG be used to protect internal driver state and it’s use in general is }(hj<hhhNhNubj)}(h *strongly*h]hstrongly}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubh? discouraged. Use any of the IIO_DEV_ACQUIRE_*_MODE() variants.}(hj<hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM;hj <ubh)}(h **Context**h]j )}(hj<h]hContext}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj<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)}(h Can sleeph]h Can sleep}(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&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_put (C function)c.iio_device_puthNtauh1jhjhhhNhNubj)}(hhh](j)}(h/void iio_device_put (struct iio_dev *indio_dev)h]j)}(h.void iio_device_put(struct iio_dev *indio_dev)h](j: )}(hvoidh]hvoid}(hj =hhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hj=hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMHubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj=hMHubj)}(hiio_device_puth]j)}(hiio_device_puth]hiio_device_put}(hj-=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)=ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj=hhhj=hMHubjr )}(h(struct iio_dev *indio_dev)h]jx )}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjI=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE=ubj)}(h h]h }(hjV=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE=ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjg=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd=ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetji=modnameN classnameNjj)}j]j )}j j/=sbc.iio_device_putasbuh1hhjE=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE=ubj )}(hjh]h*}(hj=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjE=ubj)}(h indio_devh]h indio_dev}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE=ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjA=ubah}(h]h ]h"]h$]h&]jjuh1jq hj=hhhj=hMHubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj=hhhj=hMHubah}(h]j<ah ](j j eh"]h$]h&]j j )j huh1jhj=hMHhj=hhubj )}(hhh]h)}(h/reference counted deallocation of struct deviceh]h/reference counted deallocation of struct device}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMHhj=hhubah}(h]h ]h"]h$]h&]uh1j hj=hhhj=hMHubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j=j, j=j- j. j/ uh1jhhhjhNhNubj1 )}(hZ**Parameters** ``struct iio_dev *indio_dev`` IIO device structure containing the deviceh](h)}(h**Parameters**h]j )}(hj=h]h Parameters}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMLhj=ubj{ )}(hhh]j )}(hH``struct iio_dev *indio_dev`` IIO device structure containing the deviceh](j )}(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&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMNhj>ubj )}(hhh]h)}(h*IIO device structure containing the deviceh]h*IIO device structure containing 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.hhMIhj#>ubah}(h]h ]h"]h$]h&]uh1j hj>ubeh}(h]h ]h"]h$]h&]uh1j hj">hMNhj>ubah}(h]h ]h"]h$]h&]uh1jz hj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdev_to_iio_dev (C function)c.dev_to_iio_devhNtauh1jhjhhhNhNubj)}(hhh](j)}(h4struct iio_dev * dev_to_iio_dev (struct device *dev)h]j)}(h2struct iio_dev *dev_to_iio_dev(struct device *dev)h](j)}(hjh]hstruct}(hjg>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc>hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMUubj)}(h h]h }(hju>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc>hhhjt>hMUubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj>modnameN classnameNjj)}j]j )}j dev_to_iio_devsbc.dev_to_iio_devasbuh1hhjc>hhhjt>hMUubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc>hhhjt>hMUubj )}(hjh]h*}(hj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjc>hhhjt>hMUubj)}(hdev_to_iio_devh]j)}(hj>h]hdev_to_iio_dev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjc>hhhjt>hMUubjr )}(h(struct device *dev)h]jx )}(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&] refdomainj7reftypej reftargetj?modnameN classnameNjj)}j]j>c.dev_to_iio_devasbuh1hhj>ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj )}(hjh]h*}(hj+?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj>ubj)}(hdevh]hdev}(hj8?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj>ubah}(h]h ]h"]h$]h&]jjuh1jq hjc>hhhjt>hMUubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj_>hhhjt>hMUubah}(h]jZ>ah ](j j eh"]h$]h&]j j )j huh1jhjt>hMUhj\>hhubj )}(hhh]h)}(h*Get IIO device struct from a device structh]h*Get IIO device struct from a device struct}(hjb?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMUhj_?hhubah}(h]h ]h"]h$]h&]uh1j hj\>hhhjt>hMUubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jz?j, jz?j- j. j/ uh1jhhhjhNhNubj1 )}(h**Parameters** ``struct device *dev`` The device embedded in the IIO device **Note** The device must be a IIO device, otherwise the result is undefined.h](h)}(h**Parameters**h]j )}(hj?h]h Parameters}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj?ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMYhj~?ubj{ )}(hhh]j )}(h=``struct device *dev`` The device embedded in the IIO device h](j )}(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&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMVhj?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&]uh1hhj?hMVhj?ubah}(h]h ]h"]h$]h&]uh1j hj?ubeh}(h]h ]h"]h$]h&]uh1j hj?hMVhj?ubah}(h]h ]h"]h$]h&]uh1jz hj~?ubh)}(h**Note**h]j )}(hj?h]hNote}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj?ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMXhj~?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.hhMXhj~?ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_get (C function)c.iio_device_gethNtauh1jhjhhhNhNubj)}(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.hhM`ubj)}(h h]h }(hj1@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj0@hM`ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjB@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?@ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjD@modnameN classnameNjj)}j]j )}j iio_device_getsbc.iio_device_getasbuh1hhj@hhhj0@hM`ubj)}(h h]h }(hjc@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj0@hM`ubj )}(hjh]h*}(hjq@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj@hhhj0@hM`ubj)}(hiio_device_geth]j)}(hj`@h]hiio_device_get}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~@ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj@hhhj0@hM`ubjr )}(h(struct iio_dev *indio_dev)h]jx )}(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&] refdomainj7reftypej reftargetj@modnameN classnameNjj)}j]j^@c.iio_device_getasbuh1hhj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj )}(hjh]h*}(hj@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj@ubj)}(h indio_devh]h indio_dev}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj@ubah}(h]h ]h"]h$]h&]jjuh1jq hj@hhhj0@hM`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj@hhhj0@hM`ubah}(h]j@ah ](j j eh"]h$]h&]j j )j huh1jhj0@hM`hj@hhubj )}(hhh]h)}(h(increment reference count for the deviceh]h(increment reference count for the device}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM`hjAhhubah}(h]h ]h"]h$]h&]uh1j hj@hhhj0@hM`ubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j6Aj, j6Aj- j. j/ uh1jhhhjhNhNubj1 )}(hg**Parameters** ``struct iio_dev *indio_dev`` IIO device structure **Return** The passed IIO deviceh](h)}(h**Parameters**h]j )}(hj@Ah]h Parameters}(hjBAhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj>Aubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMdhj:Aubj{ )}(hhh]j )}(h3``struct iio_dev *indio_dev`` IIO device structure h](j )}(h``struct iio_dev *indio_dev``h]h)}(hj_Ah]hstruct iio_dev *indio_dev}(hjaAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]Aubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMahjYAubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hjxAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjtAhMahjuAubah}(h]h ]h"]h$]h&]uh1j hjYAubeh}(h]h ]h"]h$]h&]uh1j hjtAhMahjVAubah}(h]h ]h"]h$]h&]uh1jz hj:Aubh)}(h **Return**h]j )}(hjAh]hReturn}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjAubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMchj:Aubh)}(hThe passed IIO deviceh]hThe passed IIO device}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMchj:Aubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"iio_device_set_parent (C function)c.iio_device_set_parenthNtauh1jhjhhhNhNubj)}(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}(hjAhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjAhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMkubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAhhhjAhMkubj)}(hiio_device_set_parenth]j)}(hiio_device_set_parenth]hiio_device_set_parent}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubah}(h]h ](jjeh"]h$]h&]jjuh1jhjAhhhjAhMkubjr )}(h2(struct iio_dev *indio_dev, struct device *parent)h](jx )}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(h h]h }(hj)BhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj:BhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7Bubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjDubjx )}(h void *datah](j: )}(hvoidh]hvoid}(hjDhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj )}(hjh]h*}(hjDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjDubj)}(hdatah]hdata}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj>Dubeh}(h]h ]h"]h$]h&]jjuh1jq hjDhhhjDhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjDhhhjDhMubah}(h]jCah ](j j eh"]h$]h&]j j )j huh1jhjDhMhjChhubj )}(hhh]h)}(hSet device driver datah]hSet device driver data}(hj EhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjEhhubah}(h]h ]h"]h$]h&]uh1j hjChhhjDhMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j#Ej, j#Ej- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hj-Eh]h Parameters}(hj/EhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj+Eubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj'Eubj{ )}(hhh](j )}(h3``struct iio_dev *indio_dev`` IIO device structure h](j )}(h``struct iio_dev *indio_dev``h]h)}(hjLEh]hstruct iio_dev *indio_dev}(hjNEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJEubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjFEubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hjeEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjaEhMhjbEubah}(h]h ]h"]h$]h&]uh1j hjFEubeh}(h]h ]h"]h$]h&]uh1j hjaEhMhjCEubj )}(h$``void *data`` Driver specific data h](j )}(h``void *data``h]h)}(hjEh]h void *data}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjEubj )}(hhh]h)}(hDriver specific datah]hDriver specific data}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMhjEubah}(h]h ]h"]h$]h&]uh1j hjEubeh}(h]h ]h"]h$]h&]uh1j hjEhMhjCEubeh}(h]h ]h"]h$]h&]uh1jz hj'Eubh)}(h**Description**h]j )}(hjEh]h Description}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjEubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj'Eubh)}(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().}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj'Eubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#iio_device_get_drvdata (C function)c.iio_device_get_drvdatahNtauh1jhjhhhNhNubj)}(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}(hjFhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjFhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhjFhMubj )}(hjh]h*}(hj"FhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjFhhhjFhMubj)}(hiio_device_get_drvdatah]j)}(hiio_device_get_drvdatah]hiio_device_get_drvdata}(hj3FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/Fubah}(h]h ](jjeh"]h$]h&]jjuh1jhjFhhhjFhMubjr )}(h!(const struct iio_dev *indio_dev)h]jx )}(hconst struct iio_dev *indio_devh](j)}(hj h]hconst}(hjOFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKFubj)}(h h]h }(hj\FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKFubj)}(hjh]hstruct}(hjjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKFubj)}(h h]h }(hjwFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKFubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjFmodnameN classnameNjj)}j]j )}j j5Fsbc.iio_device_get_drvdataasbuh1hhjKFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKFubj )}(hjh]h*}(hjFhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjKFubj)}(h indio_devh]h indio_dev}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKFubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjGFubah}(h]h ]h"]h$]h&]jjuh1jq hjFhhhjFhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjEhhhjFhMubah}(h]jEah ](j j eh"]h$]h&]j j )j huh1jhjFhMhjEhhubj )}(hhh]h)}(hGet device driver datah]hGet device driver data}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjFhhubah}(h]h ]h"]h$]h&]uh1j hjEhhhjFhMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jGj, jGj- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hjGh]h Parameters}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj Gubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj Gubj{ )}(hhh]j )}(h9``const struct iio_dev *indio_dev`` IIO device structure h](j )}(h#``const struct iio_dev *indio_dev``h]h)}(hj.Gh]hconst struct iio_dev *indio_dev}(hj0GhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,Gubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj(Gubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hjGGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCGhMhjDGubah}(h]h ]h"]h$]h&]uh1j hj(Gubeh}(h]h ]h"]h$]h&]uh1j hjCGhMhj%Gubah}(h]h ]h"]h$]h&]uh1jz hj Gubh)}(h**Description**h]j )}(hjiGh]h Description}(hjkGhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjgGubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj Gubh)}(h=Returns the data previously set with iio_device_set_drvdata()h]h=Returns the data previously set with iio_device_set_drvdata()}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj Gubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$IIO_DECLARE_BUFFER_WITH_TS (C macro)c.IIO_DECLARE_BUFFER_WITH_TShNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_DECLARE_BUFFER_WITH_TSh]j)}(hIIO_DECLARE_BUFFER_WITH_TSh]j)}(hIIO_DECLARE_BUFFER_WITH_TSh]j)}(hjGh]hIIO_DECLARE_BUFFER_WITH_TS}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubah}(h]h ](jjeh"]h$]h&]jjuh1jhjGhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjGhhhjGhMubah}(h]jGah ](j j eh"]h$]h&]j j )j huh1jhjGhMhjGhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hjGhhhjGhMubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jGj, jGj- j. j/ uh1jhhhjhNhNubh)}(h2``IIO_DECLARE_BUFFER_WITH_TS (type, name, count)``h]h)}(hjGh]h.IIO_DECLARE_BUFFER_WITH_TS (type, name, count)}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjhhubj )}(h Declare a buffer with timestamp h]h)}(hDeclare a buffer with timestamph]hDeclare a buffer with timestamp}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjGubah}(h]h ]h"]h$]h&]uh1j hj HhMhjhhubj1 )}(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 )}(hjHh]h Parameters}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjHubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjHubj{ )}(hhh](j )}(h$``type`` element type of the buffer h](j )}(h``type``h]h)}(hj8Hh]htype}(hj:HhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6Hubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2Hubj )}(hhh]h)}(helement type of the bufferh]helement type of the buffer}(hjQHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMHhMhjNHubah}(h]h ]h"]h$]h&]uh1j hj2Hubeh}(h]h ]h"]h$]h&]uh1j hjMHhMhj/Hubj )}(h'``name`` identifier name of the buffer h](j )}(h``name``h]h)}(hjqHh]hname}(hjsHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoHubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjkHubj )}(hhh]h)}(hidentifier name of the bufferh]hidentifier name of the buffer}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1j hjkHubeh}(h]h ]h"]h$]h&]uh1j hjHhMhj/Hubj )}(h+``count`` number of elements in the buffer h](j )}(h ``count``h]h)}(hjHh]hcount}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjHubj )}(hhh]h)}(h number of elements in the bufferh]h number of elements in the buffer}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1j hjHubeh}(h]h ]h"]h$]h&]uh1j hjHhMhj/Hubeh}(h]h ]h"]h$]h&]uh1jz hjHubh)}(h**Description**h]j )}(hjHh]h Description}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjHubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjHubh)}(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 }(hjHhhhNhNubj )}(h **count**h]hcount}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjHubh elements of }(hjHhhhNhNubj )}(h**type**h]htype}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjHubhu, it also allocates space for a s64 timestamp at the end of the buffer and ensures proper alignment of the timestamp.}(hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(IIO_DECLARE_DMA_BUFFER_WITH_TS (C macro) c.IIO_DECLARE_DMA_BUFFER_WITH_TShNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_DECLARE_DMA_BUFFER_WITH_TSh]j)}(hIIO_DECLARE_DMA_BUFFER_WITH_TSh]j)}(hIIO_DECLARE_DMA_BUFFER_WITH_TSh]j)}(hjHIh]hIIO_DECLARE_DMA_BUFFER_WITH_TS}(hjRIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNIubah}(h]h ](jjeh"]h$]h&]jjuh1jhjJIhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjFIhhhjeIhMubah}(h]jAIah ](j j eh"]h$]h&]j j )j huh1jhjeIhMhjCIhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hjCIhhhjeIhMubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ j~Ij, j~Ij- j. j/ uh1jhhhjhNhNubh)}(h6``IIO_DECLARE_DMA_BUFFER_WITH_TS (type, name, count)``h]h)}(hjIh]h2IIO_DECLARE_DMA_BUFFER_WITH_TS (type, name, count)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjhhubj )}(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}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjIubah}(h]h ]h"]h$]h&]uh1j hjIhMhjhhubj1 )}(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 )}(hjIh]h Parameters}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjIubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjIubj{ )}(hhh](j )}(h$``type`` element type of the buffer h](j )}(h``type``h]h)}(hjIh]htype}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjIubj )}(hhh]h)}(helement type of the bufferh]helement type of the buffer}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhjIubah}(h]h ]h"]h$]h&]uh1j hjIubeh}(h]h ]h"]h$]h&]uh1j hjIhMhjIubj )}(h'``name`` identifier name of the buffer h](j )}(h``name``h]h)}(hjJh]hname}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj Jubj )}(hhh]h)}(hidentifier name of the bufferh]hidentifier name of the buffer}(hj*JhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&JhMhj'Jubah}(h]h ]h"]h$]h&]uh1j hj Jubeh}(h]h ]h"]h$]h&]uh1j hj&JhMhjIubj )}(h+``count`` number of elements in the buffer h](j )}(h ``count``h]h)}(hjJJh]hcount}(hjLJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHJubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjDJubj )}(hhh]h)}(h number of elements in the bufferh]h number of elements in the buffer}(hjcJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_JhMhj`Jubah}(h]h ]h"]h$]h&]uh1j hjDJubeh}(h]h ]h"]h$]h&]uh1j hj_JhMhjIubeh}(h]h ]h"]h$]h&]uh1jz hjIubh)}(h**Description**h]j )}(hjJh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjIubh)}(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.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j IIO_DECLARE_QUATERNION (C macro)c.IIO_DECLARE_QUATERNIONhNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_DECLARE_QUATERNIONh]j)}(hIIO_DECLARE_QUATERNIONh]j)}(hIIO_DECLARE_QUATERNIONh]j)}(hjJh]hIIO_DECLARE_QUATERNION}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ](jjeh"]h$]h&]jjuh1jhjJhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjJhhhjJhMubah}(h]jJah ](j j eh"]h$]h&]j j )j huh1jhjJhMhjJhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hjJhhhjJhMubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jJj, jJj- j. j/ uh1jhhhjhNhNubh)}(h'``IIO_DECLARE_QUATERNION (type, name)``h]h)}(hjKh]h#IIO_DECLARE_QUATERNION (type, name)}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjhhubj )}(hDeclare a quaternion element h]h)}(hDeclare a quaternion elementh]hDeclare a quaternion element}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjKubah}(h]h ]h"]h$]h&]uh1j hj(KhMhjhhubj1 )}(hX**Parameters** ``type`` element type of the individual vectors ``name`` identifier name **Description** Quaternions are a vector composed of 4 elements (W, X, Y, Z). Use this macro to declare a quaternion element in a struct to ensure proper alignment in an IIO buffer.h](h)}(h**Parameters**h]j )}(hj5Kh]h Parameters}(hj7KhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj3Kubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj/Kubj{ )}(hhh](j )}(h0``type`` element type of the individual vectors h](j )}(h``type``h]h)}(hjTKh]htype}(hjVKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRKubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjNKubj )}(hhh]h)}(h&element type of the individual vectorsh]h&element type of the individual vectors}(hjmKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjiKhMhjjKubah}(h]h ]h"]h$]h&]uh1j hjNKubeh}(h]h ]h"]h$]h&]uh1j hjiKhMhjKKubj )}(h``name`` identifier name h](j )}(h``name``h]h)}(hjKh]hname}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjKubj )}(hhh]h)}(hidentifier nameh]hidentifier name}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhMhjKubah}(h]h ]h"]h$]h&]uh1j hjKubeh}(h]h ]h"]h$]h&]uh1j hjKhMhjKKubeh}(h]h ]h"]h$]h&]uh1jz hj/Kubh)}(h**Description**h]j )}(hjKh]h Description}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjKubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj/Kubh)}(hQuaternions are a vector composed of 4 elements (W, X, Y, Z). Use this macro to declare a quaternion element in a struct to ensure proper alignment in an IIO buffer.h]hQuaternions are a vector composed of 4 elements (W, X, Y, Z). Use this macro to declare a quaternion element in a struct to ensure proper alignment in an IIO buffer.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj/Kubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#iio_get_debugfs_dentry (C function)c.iio_get_debugfs_dentryhNtauh1jhjhhhNhNubj)}(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}(hj LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Lhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj LhhhjLhMubh)}(hhh]j)}(hdentryh]hdentry}(hj,LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)Lubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj.LmodnameN classnameNjj)}j]j )}j iio_get_debugfs_dentrysbc.iio_get_debugfs_dentryasbuh1hhj LhhhjLhMubj)}(h h]h }(hjMLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj LhhhjLhMubj )}(hjh]h*}(hj[LhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj LhhhjLhMubj)}(hiio_get_debugfs_dentryh]j)}(hjJLh]hiio_get_debugfs_dentry}(hjlLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhLubah}(h]h ](jjeh"]h$]h&]jjuh1jhj LhhhjLhMubjr )}(h(struct iio_dev *indio_dev)h]jx )}(hstruct iio_dev *indio_devh](j)}(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&] refdomainj7reftypej reftargetjLmodnameN classnameNjj)}j]jHLc.iio_get_debugfs_dentryasbuh1hhjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj )}(hjh]h*}(hjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLubj)}(h indio_devh]h indio_dev}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjLubah}(h]h ]h"]h$]h&]jjuh1jq hj LhhhjLhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjLhhhjLhMubah}(h]jLah ](j j eh"]h$]h&]j j )j huh1jhjLhMhjLhhubj )}(hhh]h)}(h)helper function to get the debugfs_dentryh]h)helper function to get the debugfs_dentry}(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&]uh1j hjLhhhjLhMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j Mj, j Mj- j. j/ uh1jhhhjhNhNubj1 )}(hO**Parameters** ``struct iio_dev *indio_dev`` IIO device structure for deviceh](h)}(h**Parameters**h]j )}(hj*Mh]h Parameters}(hj,MhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj(Mubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj$Mubj{ )}(hhh]j )}(h=``struct iio_dev *indio_dev`` IIO device structure for deviceh](j )}(h``struct iio_dev *indio_dev``h]h)}(hjIMh]hstruct iio_dev *indio_dev}(hjKMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGMubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjCMubj )}(hhh]h)}(hIIO device structure for deviceh]hIIO device structure for device}(hjbMhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj_Mubah}(h]h ]h"]h$]h&]uh1j hjCMubeh}(h]h ]h"]h$]h&]uh1j hj^MhMhj@Mubah}(h]h ]h"]h$]h&]uh1jz hj$Mubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*iio_device_suspend_triggering (C function)c.iio_device_suspend_triggeringhNtauh1jhjhhhNhNubj)}(hhh](j)}(h=int iio_device_suspend_triggering (struct iio_dev *indio_dev)h]j)}(hPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:PhMhj;Pubah}(h]h ]h"]h$]h&]uh1j hjPubeh}(h]h ]h"]h$]h&]uh1j hj:PhMhjPubah}(h]h ]h"]h$]h&]uh1jz hjPubh)}(h**Description**h]j )}(hj`Ph]h Description}(hjbPhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^Pubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjPubh)}(h*Return 0 if successful, negative otherwiseh]h*Return 0 if successful, negative otherwise}(hjvPhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjPubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&iio_get_current_scan_type (C function)c.iio_get_current_scan_typehNtauh1jhjhhhNhNubj)}(hhh](j)}(hzconst struct iio_scan_type * iio_get_current_scan_type (const struct iio_dev *indio_dev, const struct iio_chan_spec *chan)h]j)}(hxconst struct iio_scan_type *iio_get_current_scan_type(const struct iio_dev *indio_dev, const struct iio_chan_spec *chan)h](j)}(hj h]hconst}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPhhhjPhMubj)}(hjh]hstruct}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPhhhjPhMubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPhhhjPhMubh)}(hhh]j)}(h iio_scan_typeh]h iio_scan_type}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjPmodnameN classnameNjj)}j]j )}j iio_get_current_scan_typesbc.iio_get_current_scan_typeasbuh1hhjPhhhjPhMubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPhhhjPhMubj )}(hjh]h*}(hjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjPhhhjPhMubj)}(hiio_get_current_scan_typeh]j)}(hjPh]hiio_get_current_scan_type}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ](jjeh"]h$]h&]jjuh1jhjPhhhjPhMubjr )}(hC(const struct iio_dev *indio_dev, const struct iio_chan_spec *chan)h](jx )}(hconst struct iio_dev *indio_devh](j)}(hj h]hconst}(hj:QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6Qubj)}(h h]h }(hjGQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6Qubj)}(hjh]hstruct}(hjUQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6Qubj)}(h h]h }(hjbQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6Qubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjsQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpQubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjuQmodnameN classnameNjj)}j]jPc.iio_get_current_scan_typeasbuh1hhj6Qubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6Qubj )}(hjh]h*}(hjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj6Qubj)}(h indio_devh]h indio_dev}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6Qubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj2Qubjx )}(h const struct iio_chan_spec *chanh](j)}(hj h]hconst}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(hjh]hstruct}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubh)}(hhh]j)}(h iio_chan_spech]h iio_chan_spec}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjRmodnameN classnameNjj)}j]jPc.iio_get_current_scan_typeasbuh1hhjQubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj )}(hjh]h*}(hj*RhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjQubj)}(hchanh]hchan}(hj7RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj2Qubeh}(h]h ]h"]h$]h&]jjuh1jq hjPhhhjPhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjPhhhjPhMubah}(h]jPah ](j j eh"]h$]h&]j j )j huh1jhjPhMhjPhhubj )}(hhh]h)}(h'Get the current scan type for a channelh]h'Get the current scan type for a channel}(hjaRhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj^Rhhubah}(h]h ]h"]h$]h&]uh1j hjPhhhjPhMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jyRj, jyRj- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hjRh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjRubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj}Rubj{ )}(hhh](j )}(hL``const struct iio_dev *indio_dev`` the IIO device to get the scan type for h](j )}(h#``const struct iio_dev *indio_dev``h]h)}(hjRh]hconst struct iio_dev *indio_dev}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjRubj )}(hhh]h)}(h'the IIO device to get the scan type forh]h'the IIO device to get the scan type for}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1j hjRubeh}(h]h ]h"]h$]h&]uh1j hjRhMhjRubj )}(hJ``const struct iio_chan_spec *chan`` the channel to get the scan type for h](j )}(h$``const struct iio_chan_spec *chan``h]h)}(hjRh]h const struct iio_chan_spec *chan}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjRubj )}(hhh]h)}(h$the channel to get the scan type forh]h$the channel to get the scan type for}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1j hjRubeh}(h]h ]h"]h$]h&]uh1j hjRhMhjRubeh}(h]h ]h"]h$]h&]uh1jz hj}Rubh)}(h**Description**h]j )}(hjSh]h Description}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j hjSubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj}Rubh)}(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.}(hj,ShhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj}Rubh)}(h **Return**h]j )}(hj=Sh]hReturn}(hj?ShhhNhNubah}(h]h ]h"]h$]h&]uh1j hj;Subah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj}Rubh)}(h/the current scan type for the channel or error.h]h/the current scan type for the channel or error.}(hjSShhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj}Rubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_get_masklength (C function)c.iio_get_masklengthhNtauh1jhjhhhNhNubj)}(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}(hjShhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hj~Shhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM6ubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ShhhjShM6ubj: )}(hinth]hint}(hjShhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hj~ShhhjShM6ubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ShhhjShM6ubj)}(hiio_get_masklengthh]j)}(hiio_get_masklengthh]hiio_get_masklength}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ](jjeh"]h$]h&]jjuh1jhj~ShhhjShM6ubjr )}(h!(const struct iio_dev *indio_dev)h]jx )}(hconst struct iio_dev *indio_devh](j)}(hj h]hconst}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj)}(hjh]hstruct}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjTmodnameN classnameNjj)}j]j )}j jSsbc.iio_get_masklengthasbuh1hhjSubj)}(h h]h }(hj4ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj )}(hjh]h*}(hjBThhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjSubj)}(h indio_devh]h indio_dev}(hjOThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjSubah}(h]h ]h"]h$]h&]jjuh1jq hj~ShhhjShM6ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjzShhhjShM6ubah}(h]juSah ](j j eh"]h$]h&]j j )j huh1jhjShM6hjwShhubj )}(hhh]h)}(hGet length of the channels maskh]hGet length of the channels mask}(hjyThhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM6hjvThhubah}(h]h ]h"]h$]h&]uh1j hjwShhhjShM6ubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jTj, jTj- j. j/ uh1jhhhjhNhNubj1 )}(h^**Parameters** ``const struct iio_dev *indio_dev`` the IIO device to get the masklength forh](h)}(h**Parameters**h]j )}(hjTh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1j hjTubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM:hjTubj{ )}(hhh]j )}(hL``const struct iio_dev *indio_dev`` the IIO device to get the masklength forh](j )}(h#``const struct iio_dev *indio_dev``h]h)}(hjTh]hconst struct iio_dev *indio_dev}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjTubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM<hjTubj )}(hhh]h)}(h(the IIO device to get the masklength forh]h(the IIO device to get the masklength for}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM7hjTubah}(h]h ]h"]h$]h&]uh1j hjTubeh}(h]h ]h"]h$]h&]uh1j hjThM<hjTubah}(h]h ]h"]h$]h&]uh1jz hjTubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%iio_for_each_active_channel (C macro)c.iio_for_each_active_channelhNtauh1jhjhhhNhNubj)}(hhh](j)}(hiio_for_each_active_channelh]j)}(hiio_for_each_active_channelh]j)}(hiio_for_each_active_channelh]j)}(hjUh]hiio_for_each_active_channel}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ](jjeh"]h$]h&]jjuh1jhjUhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMAubah}(h]h ]h"]h$]h&]jjjuh1jjjhj Uhhhj+UhMAubah}(h]jUah ](j j eh"]h$]h&]j j )j huh1jhj+UhMAhj Uhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj Uhhhj+UhMAubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jDUj, jDUj- j. j/ uh1jhhhjhNhNubh)}(h1``iio_for_each_active_channel (indio_dev, chan)``h]h)}(hjJUh]h-iio_for_each_active_channel (indio_dev, chan)}(hjLUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHUubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMChjhhubj )}(hIterated over active channels h]h)}(hIterated over active channelsh]hIterated over active channels}(hjdUhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMAhj`Uubah}(h]h ]h"]h$]h&]uh1j hjrUhMAhjhhubj1 )}(ha**Parameters** ``indio_dev`` the IIO device ``chan`` Holds the index of the enabled channelh](h)}(h**Parameters**h]j )}(hjUh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj}Uubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMEhjyUubj{ )}(hhh](j )}(h``indio_dev`` the IIO device h](j )}(h ``indio_dev``h]h)}(hjUh]h indio_dev}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMBhjUubj )}(hhh]h)}(hthe IIO deviceh]hthe IIO device}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhMBhjUubah}(h]h ]h"]h$]h&]uh1j hjUubeh}(h]h ]h"]h$]h&]uh1j hjUhMBhjUubj )}(h/``chan`` Holds the index of the enabled channelh](j )}(h``chan``h]h)}(hjUh]hchan}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMDhjUubj )}(hhh]h)}(h&Holds the index of the enabled channelh]h&Holds the index of the enabled channel}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMChjUubah}(h]h ]h"]h$]h&]uh1j hjUubeh}(h]h ]h"]h$]h&]uh1j hjUhMDhjUubeh}(h]h ]h"]h$]h&]uh1jz hjyUubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_DEGREE_TO_RAD (C macro)c.IIO_DEGREE_TO_RADhNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_DEGREE_TO_RADh]j)}(hIIO_DEGREE_TO_RADh]j)}(hIIO_DEGREE_TO_RADh]j)}(hj+Vh]hIIO_DEGREE_TO_RAD}(hj5VhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1Vubah}(h]h ](jjeh"]h$]h&]jjuh1jhj-Vhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMOubah}(h]h ]h"]h$]h&]jjjuh1jjjhj)VhhhjHVhMOubah}(h]j$Vah ](j j eh"]h$]h&]j j )j huh1jhjHVhMOhj&Vhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj&VhhhjHVhMOubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jaVj, jaVj- j. j/ uh1jhhhjhNhNubh)}(h``IIO_DEGREE_TO_RAD (deg)``h]h)}(hjgVh]hIIO_DEGREE_TO_RAD (deg)}(hjiVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeVubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMQhjhhubj )}(hConvert degree to rad h]h)}(hConvert degree to radh]hConvert degree to rad}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMOhj}Vubah}(h]h ]h"]h$]h&]uh1j hjVhMOhjhhubj1 )}(hr**Parameters** ``deg`` A value in degree **Description** Returns the given value converted from degree to radh](h)}(h**Parameters**h]j )}(hjVh]h Parameters}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMShjVubj{ )}(hhh]j )}(h``deg`` A value in degree h](j )}(h``deg``h]h)}(hjVh]hdeg}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMPhjVubj )}(hhh]h)}(hA value in degreeh]hA value in degree}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhMPhjVubah}(h]h ]h"]h$]h&]uh1j hjVubeh}(h]h ]h"]h$]h&]uh1j hjVhMPhjVubah}(h]h ]h"]h$]h&]uh1jz hjVubh)}(h**Description**h]j )}(hjVh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMRhjVubh)}(h4Returns the given value converted from degree to radh]h4Returns the given value converted from degree to rad}(hj WhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMQhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_RAD_TO_DEGREE (C macro)c.IIO_RAD_TO_DEGREEhNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_RAD_TO_DEGREEh]j)}(hIIO_RAD_TO_DEGREEh]j)}(hIIO_RAD_TO_DEGREEh]j)}(hj5Wh]hIIO_RAD_TO_DEGREE}(hj?WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;Wubah}(h]h ](jjeh"]h$]h&]jjuh1jhj7Whhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMWubah}(h]h ]h"]h$]h&]jjjuh1jjjhj3WhhhjRWhMWubah}(h]j.Wah ](j j eh"]h$]h&]j j )j huh1jhjRWhMWhj0Whhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj0WhhhjRWhMWubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jkWj, jkWj- j. j/ uh1jhhhjhNhNubh)}(h``IIO_RAD_TO_DEGREE (rad)``h]h)}(hjqWh]hIIO_RAD_TO_DEGREE (rad)}(hjsWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoWubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMYhjhhubj )}(hConvert rad to degree h]h)}(hConvert rad to degreeh]hConvert rad to degree}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMWhjWubah}(h]h ]h"]h$]h&]uh1j hjWhMWhjhhubj1 )}(ho**Parameters** ``rad`` A value in rad **Description** Returns the given value converted from rad to degreeh](h)}(h**Parameters**h]j )}(hjWh]h Parameters}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjWubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM[hjWubj{ )}(hhh]j )}(h``rad`` A value in rad h](j )}(h``rad``h]h)}(hjWh]hrad}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMXhjWubj )}(hhh]h)}(hA value in radh]hA value in rad}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMXhjWubah}(h]h ]h"]h$]h&]uh1j hjWubeh}(h]h ]h"]h$]h&]uh1j hjWhMXhjWubah}(h]h ]h"]h$]h&]uh1jz hjWubh)}(h**Description**h]j )}(hjXh]h Description}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjWubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMZhjWubh)}(h4Returns the given value converted from rad to degreeh]h4Returns the given value converted from rad to degree}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMYhjWubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_G_TO_M_S_2 (C macro)c.IIO_G_TO_M_S_2hNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_G_TO_M_S_2h]j)}(hIIO_G_TO_M_S_2h]j)}(hIIO_G_TO_M_S_2h]j)}(hj?Xh]hIIO_G_TO_M_S_2}(hjIXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEXubah}(h]h ](jjeh"]h$]h&]jjuh1jhjAXhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM`ubah}(h]h ]h"]h$]h&]jjjuh1jjjhj=Xhhhj\XhM`ubah}(h]j8Xah ](j j eh"]h$]h&]j j )j huh1jhj\XhM`hj:Xhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hj:Xhhhj\XhM`ubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ juXj, juXj- j. j/ uh1jhhhjhNhNubh)}(h``IIO_G_TO_M_S_2 (g)``h]h)}(hj{Xh]hIIO_G_TO_M_S_2 (g)}(hj}XhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyXubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMbhjhhubj )}(hConvert g to meter / second**2 h]h)}(hConvert g to meter / second**2h]hConvert g to meter / second**2}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM`hjXubah}(h]h ]h"]h$]h&]uh1j hjXhM`hjhhubj1 )}(ht**Parameters** ``g`` A value in g **Description** Returns the given value converted from g to meter / second**2h](h)}(h**Parameters**h]j )}(hjXh]h Parameters}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjXubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMdhjXubj{ )}(hhh]j )}(h``g`` A value in g h](j )}(h``g``h]h)}(hjXh]hg}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMahjXubj )}(hhh]h)}(h A value in gh]h A value in g}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMahjXubah}(h]h ]h"]h$]h&]uh1j hjXubeh}(h]h ]h"]h$]h&]uh1j hjXhMahjXubah}(h]h ]h"]h$]h&]uh1jz hjXubh)}(h**Description**h]j )}(hj Yh]h Description}(hj YhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjYubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMchjXubh)}(h=Returns the given value converted from g to meter / second**2h]h=Returns the given value converted from g to meter / second**2}(hj YhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMbhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_M_S_2_TO_G (C macro)c.IIO_M_S_2_TO_GhNtauh1jhjhhhNhNubj)}(hhh](j)}(hIIO_M_S_2_TO_Gh]j)}(hIIO_M_S_2_TO_Gh]j)}(hIIO_M_S_2_TO_Gh]j)}(hjIYh]hIIO_M_S_2_TO_G}(hjSYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOYubah}(h]h ](jjeh"]h$]h&]jjuh1jhjKYhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhubah}(h]h ]h"]h$]h&]jjjuh1jjjhjGYhhhjfYhMhubah}(h]jBYah ](j j eh"]h$]h&]j j )j huh1jhjfYhMhhjDYhhubj )}(hhh]h}(h]h ]h"]h$]h&]uh1j hjDYhhhjfYhMhubeh}(h]h ](j7macroeh"]h$]h&]j* j7j+ jYj, jYj- j. j/ uh1jhhhjhNhNubh)}(h``IIO_M_S_2_TO_G (ms2)``h]h)}(hjYh]hIIO_M_S_2_TO_G (ms2)}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMjhjhhubj )}(hConvert meter / second**2 to g h]h)}(hConvert meter / second**2 to gh]hConvert meter / second**2 to g}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhhjYubah}(h]h ]h"]h$]h&]uh1j hjYhMhhjhhubj1 )}(h**Parameters** ``ms2`` A value in meter / second**2 **Description** Returns the given value converted from meter / second**2 to gh](h)}(h**Parameters**h]j )}(hjYh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjYubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMlhjYubj{ )}(hhh]j )}(h%``ms2`` A value in meter / second**2 h](j )}(h``ms2``h]h)}(hjYh]hms2}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYubah}(h]h ]h"]h$]h&]uh1j h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMihjYubj )}(hhh]h)}(hA value in meter / second**2h]hA value in meter / second**2}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhMihjYubah}(h]h ]h"]h$]h&]uh1j hjYubeh}(h]h ]h"]h$]h&]uh1j hjYhMihjYubah}(h]h ]h"]h$]h&]uh1jz hjYubh)}(h**Description**h]j )}(hjZh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjZubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMkhjYubh)}(h=Returns the given value converted from meter / second**2 to gh]h=Returns the given value converted from meter / second**2 to g}(hj*ZhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMjhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_id (C function)c.iio_device_idhNtauh1jhjhhhNhNubj)}(hhh](j)}(h-int iio_device_id (struct iio_dev *indio_dev)h]j)}(h,int iio_device_id(struct iio_dev *indio_dev)h](j: )}(hinth]hint}(hjYZhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjUZhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKubj)}(h h]h }(hjhZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUZhhhjgZhKubj)}(h iio_device_idh]j)}(h iio_device_idh]h iio_device_id}(hjzZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvZubah}(h]h ](jjeh"]h$]h&]jjuh1jhjUZhhhjgZhKubjr )}(h(struct iio_dev *indio_dev)h]jx )}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjZmodnameN classnameNjj)}j]j )}j j|Zsbc.iio_device_idasbuh1hhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj )}(hjh]h*}(hjZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjZubj)}(h indio_devh]h indio_dev}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjZubah}(h]h ]h"]h$]h&]jjuh1jq hjUZhhhjgZhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjQZhhhjgZhKubah}(h]jLZah ](j j eh"]h$]h&]j j )j huh1jhjgZhKhjNZhhubj )}(hhh]h)}(h"query the unique ID for the deviceh]h"query the unique ID 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.chKhj[hhubah}(h]h ]h"]h$]h&]uh1j hjNZhhhjgZhKubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j1[j, j1[j- j. j/ uh1jhhhjhNhNubj1 )}(hX**Parameters** ``struct iio_dev *indio_dev`` Device structure whose ID is being queried **Description** The IIO device ID is a unique index used for example for the naming of the character device /dev/iio\:device[ID]. **Return** Unique ID for the device.h](h)}(h**Parameters**h]j )}(hj;[h]h Parameters}(hj=[hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9[ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhj5[ubj{ )}(hhh]j )}(hI``struct iio_dev *indio_dev`` Device structure whose ID is being queried h](j )}(h``struct iio_dev *indio_dev``h]h)}(hjZ[h]hstruct iio_dev *indio_dev}(hj\[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX[ubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhjT[ubj )}(hhh]h)}(h*Device structure whose ID is being queriedh]h*Device structure whose ID is being queried}(hjs[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo[hKhjp[ubah}(h]h ]h"]h$]h&]uh1j hjT[ubeh}(h]h ]h"]h$]h&]uh1j hjo[hKhjQ[ubah}(h]h ]h"]h$]h&]uh1jz hj5[ubh)}(h**Description**h]j )}(hj[h]h Description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj[ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhj5[ubh)}(hqThe IIO device ID is a unique index used for example for the naming of the character device /dev/iio\:device[ID].h]hqThe IIO device ID is a unique index used for example for the naming of the character device /dev/iio:device[ID].}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhj5[ubh)}(h **Return**h]j )}(hj[h]hReturn}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj[ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhj5[ubh)}(hUnique ID for the device.h]hUnique ID 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.chKhj5[ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_buffer_enabled (C function)c.iio_buffer_enabledhNtauh1jhjhhhNhNubj)}(hhh](j)}(h3bool iio_buffer_enabled (struct iio_dev *indio_dev)h]j)}(h2bool iio_buffer_enabled(struct iio_dev *indio_dev)h](j: )}(hj= h]hbool}(hj\hhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hj[hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[hhhj\hKubj)}(hiio_buffer_enabledh]j)}(hiio_buffer_enabledh]hiio_buffer_enabled}(hj!\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj[hhhj\hKubjr )}(h(struct iio_dev *indio_dev)h]jx )}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj=\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9\ubj)}(h h]h }(hjJ\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9\ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj[\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX\ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj]\modnameN classnameNjj)}j]j )}j j#\sbc.iio_buffer_enabledasbuh1hhj9\ubj)}(h h]h }(hj{\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9\ubj )}(hjh]h*}(hj\hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj9\ubj)}(h indio_devh]h indio_dev}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9\ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj5\ubah}(h]h ]h"]h$]h&]jjuh1jq hj[hhhj\hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj[hhhj\hKubah}(h]j[ah ](j j eh"]h$]h&]j j )j huh1jhj\hKhj[hhubj )}(hhh]h)}(h0helper function to test if the buffer is enabledh]h0helper function to test if the buffer is enabled}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhj\hhubah}(h]h ]h"]h$]h&]uh1j hj[hhhj\hKubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j\j, j\j- j. j/ uh1jhhhjhNhNubj1 )}(h|**Parameters** ``struct iio_dev *indio_dev`` IIO device structure for device **Return** True, if the buffer is enabled.h](h)}(h**Parameters**h]j )}(hj\h]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj\ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhj\ubj{ )}(hhh]j )}(h>``struct iio_dev *indio_dev`` IIO device structure for device h](j )}(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&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhj\ubj )}(hhh]h)}(hIIO device structure for deviceh]hIIO device structure for device}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hKhj]ubah}(h]h ]h"]h$]h&]uh1j hj\ubeh}(h]h ]h"]h$]h&]uh1j hj]hKhj\ubah}(h]h ]h"]h$]h&]uh1jz hj\ubh)}(h **Return**h]j )}(hj<]h]hReturn}(hj>]hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj:]ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhj\ubh)}(hTrue, if the buffer is enabled.h]hTrue, if the buffer is enabled.}(hjR]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!iio_device_set_clock (C function)c.iio_device_set_clockhNtauh1jhjhhhNhNubj)}(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}(hj]hhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hj}]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_device_set_clockh]j)}(hiio_device_set_clockh]hiio_device_set_clock}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj}]hhhj]hMubjr )}(h/(struct iio_dev *indio_dev, clockid_t clock_id)h](jx )}(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&] refdomainj7reftypej reftargetj]modnameN classnameNjj)}j]j )}j j]sbc.iio_device_set_clockasbuh1hhj]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj )}(hjh]h*}(hj ^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]ubj)}(h indio_devh]h indio_dev}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj]ubjx )}(hclockid_t clock_idh](h)}(hhh]j)}(h clockid_th]h clockid_t}(hj3^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0^ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj5^modnameN classnameNjj)}j]j]c.iio_device_set_clockasbuh1hhj,^ubj)}(h h]h }(hjQ^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,^ubj)}(hclock_idh]hclock_id}(hj_^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj]ubeh}(h]h ]h"]h$]h&]jjuh1jq hj}]hhhj]hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjy]hhhj]hMubah}(h]jt]ah ](j j eh"]h$]h&]j j )j huh1jhj]hMhjv]hhubj )}(hhh]h)}(h-Set current timestamping clock for the deviceh]h-Set 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.chMhj^hhubah}(h]h ]h"]h$]h&]uh1j hjv]hhhj]hMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j^j, j^j- j. j/ uh1jhhhjhNhNubj1 )}(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^h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubj{ )}(hhh](j )}(hI``struct iio_dev *indio_dev`` IIO device structure containing the device h](j )}(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&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubj )}(hhh]h)}(h*IIO device structure containing the deviceh]h*IIO device structure containing the device}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMhj^ubah}(h]h ]h"]h$]h&]uh1j hj^ubeh}(h]h ]h"]h$]h&]uh1j hj^hMhj^ubj )}(hC``clockid_t clock_id`` timestamping clock POSIX identifier to set. h](j )}(h``clockid_t clock_id``h]h)}(hj_h]hclockid_t clock_id}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubj )}(hhh]h)}(h+timestamping clock POSIX identifier to set.h]h+timestamping clock POSIX identifier to set.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMhj_ubah}(h]h ]h"]h$]h&]uh1j hj^ubeh}(h]h ]h"]h$]h&]uh1j hj_hMhj^ubeh}(h]h ]h"]h$]h&]uh1jz hj^ubh)}(h **Return**h]j )}(hj>_h]hReturn}(hj@_hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj<_ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubh)}(h'0 on success, or a negative error code.h]h'0 on success, or a negative error code.}(hjT_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!iio_device_get_clock (C function)c.iio_device_get_clockhNtauh1jhjhhhNhNubj)}(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&] refdomainj7reftypej reftargetj_modnameN classnameNjj)}j]j )}j iio_device_get_clocksbc.iio_device_get_clockasbuh1hhj_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_device_get_clockh]j)}(hj_h]hiio_device_get_clock}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj_hhhj_hM/ubjr )}(h!(const struct iio_dev *indio_dev)h]jx )}(hconst struct iio_dev *indio_devh](j)}(hj h]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&]uh1jhj `ubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj`modnameN classnameNjj)}j]j_c.iio_device_get_clockasbuh1hhj_ubj)}(h h]h }(hj,`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj )}(hjh]h*}(hj:`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj_ubj)}(h indio_devh]h indio_dev}(hjG`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj_ubah}(h]h ]h"]h$]h&]jjuh1jq hj_hhhj_hM/ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj{_hhhj_hM/ubah}(h]jv_ah ](j j eh"]h$]h&]j j )j huh1jhj_hM/hjx_hhubj )}(hhh]h)}(h2Retrieve current timestamping clock for the deviceh]h2Retrieve current timestamping clock for the device}(hjq`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM/hjn`hhubah}(h]h ]h"]h$]h&]uh1j hjx_hhhj_hM/ubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j`j, j`j- j. j/ uh1jhhhjhNhNubj1 )}(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&]uh1j hj`ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM3hj`ubj{ )}(hhh]j )}(hO``const struct iio_dev *indio_dev`` IIO device structure containing the device h](j )}(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&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM0hj`ubj )}(hhh]h)}(h*IIO device structure containing the deviceh]h*IIO device structure containing the device}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hM0hj`ubah}(h]h ]h"]h$]h&]uh1j hj`ubeh}(h]h ]h"]h$]h&]uh1j hj`hM0hj`ubah}(h]h ]h"]h$]h&]uh1jz hj`ubh)}(h **Return**h]j )}(hj`h]hReturn}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj`ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM2hj`ubh)}(h:Clock ID of the current timestamping clock for the device.h]h:Clock ID of the current timestamping clock for the device.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM2hj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_get_time_ns (C function)c.iio_get_time_nshNtauh1jhjhhhNhNubj)}(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}(hj5ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2aubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj7amodnameN classnameNjj)}j]j )}j iio_get_time_nssbc.iio_get_time_nsasbuh1hhj.ahhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM=ubj)}(h h]h }(hjWahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ahhhjVahM=ubj)}(hiio_get_time_nsh]j)}(hjSah]hiio_get_time_ns}(hjiahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeaubah}(h]h ](jjeh"]h$]h&]jjuh1jhj.ahhhjVahM=ubjr )}(h!(const struct iio_dev *indio_dev)h]jx )}(hconst struct iio_dev *indio_devh](j)}(hj h]hconst}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(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}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjamodnameN classnameNjj)}j]jQac.iio_get_time_nsasbuh1hhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj )}(hjh]h*}(hjahhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjaubj)}(h indio_devh]h indio_dev}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj|aubah}(h]h ]h"]h$]h&]jjuh1jq hj.ahhhjVahM=ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj*ahhhjVahM=ubah}(h]j%aah ](j j eh"]h$]h&]j j )j huh1jhjVahM=hj'ahhubj )}(hhh]h)}(h3utility function to get a time stamp for events etch]h3utility function to get a time stamp for events etc}(hj bhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM=hjbhhubah}(h]h ]h"]h$]h&]uh1j hj'ahhhjVahM=ubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j8bj, j8bj- j. j/ uh1jhhhjhNhNubj1 )}(hp**Parameters** ``const struct iio_dev *indio_dev`` device **Return** Timestamp of the event in nanoseconds.h](h)}(h**Parameters**h]j )}(hjBbh]h Parameters}(hjDbhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj@bubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMAhjhj[bubj )}(hhh]h)}(hdeviceh]hdevice}(hjzbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvbhM>hjwbubah}(h]h ]h"]h$]h&]uh1j hj[bubeh}(h]h ]h"]h$]h&]uh1j hjvbhM>hjXbubah}(h]h ]h"]h$]h&]uh1jz hjcmodnameN classnameNjj)}j]j )}j jcsbc.iio_read_mount_matrixasbuh1hhjcubj)}(h h]h }(hj\chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj )}(hjh]h*}(hjjchhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjcubj)}(hdevh]hdev}(hjwchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjcubjx )}(hstruct iio_mount_matrix *matrixh](j)}(hjh]hstruct}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubh)}(hhh]j)}(hiio_mount_matrixh]hiio_mount_matrix}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjcmodnameN classnameNjj)}j]jXcc.iio_read_mount_matrixasbuh1hhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj )}(hjh]h*}(hjchhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjcubj)}(hmatrixh]hmatrix}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjcubeh}(h]h ]h"]h$]h&]jjuh1jq hjbhhhjbhMoubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjbhhhjbhMoubah}(h]jbah ](j j eh"]h$]h&]j j )j huh1jhjbhMohjbhhubj )}(hhh]h)}(hGretrieve iio device mounting matrix from device "mount-matrix" propertyh]hKretrieve iio device mounting matrix from device “mount-matrix” property}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMohjdhhubah}(h]h ]h"]h$]h&]uh1j hjbhhhjbhMoubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j)dj, j)dj- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hj3dh]h Parameters}(hj5dhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj1dubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMshj-dubj{ )}(hhh](j )}(hJ``struct device *dev`` device the mounting matrix property is assigned to h](j )}(h``struct device *dev``h]h)}(hjRdh]hstruct device *dev}(hjTdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPdubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMqhjLdubj )}(hhh]h)}(h2device the mounting matrix property is assigned toh]h2device the mounting matrix property is assigned to}(hjkdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjgdhMqhjhdubah}(h]h ]h"]h$]h&]uh1j hjLdubeh}(h]h ]h"]h$]h&]uh1j hjgdhMqhjIdubj )}(hD``struct iio_mount_matrix *matrix`` where to store retrieved matrix h](j )}(h#``struct iio_mount_matrix *matrix``h]h)}(hjdh]hstruct iio_mount_matrix *matrix}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMrhjdubj )}(hhh]h)}(hwhere to store retrieved matrixh]hwhere to store retrieved matrix}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhMrhjdubah}(h]h ]h"]h$]h&]uh1j hjdubeh}(h]h ]h"]h$]h&]uh1j hjdhMrhjIdubeh}(h]h ]h"]h$]h&]uh1jz hj-dubh)}(h**Description**h]j )}(hjdh]h Description}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjdubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMthj-dubh)}(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.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMshj-dubh)}(h **Return**h]j )}(hjdh]hReturn}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjdubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMvhj-dubh)}(h20 if success, or a negative error code on failure.h]h20 if success, or a negative error code on failure.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMwhj-dubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_format_value (C function)c.iio_format_valuehNtauh1jhjhhhNhNubj)}(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}(hj5ehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2eubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetj7emodnameN classnameNjj)}j]j )}j iio_format_valuesbc.iio_format_valueasbuh1hhj.ehhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjWehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ehhhjVehMubj)}(hiio_format_valueh]j)}(hjSeh]hiio_format_value}(hjiehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeeubah}(h]h ](jjeh"]h$]h&]jjuh1jhj.ehhhjVehMubjr )}(h3(char *buf, unsigned int type, int size, int *vals)h](jx )}(h char *bufh](j: )}(hcharh]hchar}(hjehhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjeubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj )}(hjh]h*}(hjehhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjeubj)}(hbufh]hbuf}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj|eubjx )}(hunsigned int typeh](j: )}(hunsignedh]hunsigned}(hjehhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjeubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj: )}(hinth]hint}(hjehhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjeubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj)}(htypeh]htype}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj|eubjx )}(hint sizeh](j: )}(hinth]hint}(hjfhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjfubj)}(h h]h }(hj%fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj)}(hsizeh]hsize}(hj3fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj|eubjx )}(h int *valsh](j: )}(hinth]hint}(hjLfhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjHfubj)}(h h]h }(hjZfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHfubj )}(hjh]h*}(hjhfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjHfubj)}(hvalsh]hvals}(hjufhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHfubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj|eubeh}(h]h ]h"]h$]h&]jjuh1jq hj.ehhhjVehMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj*ehhhjVehMubah}(h]j%eah ](j j eh"]h$]h&]j j )j huh1jhjVehMhj'ehhubj )}(hhh]h)}(h2Formats a IIO value into its string representationh]h2Formats a IIO value into its string representation}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjfhhubah}(h]h ]h"]h$]h&]uh1j hj'ehhhjVehMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jfj, jfj- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hjfh]h Parameters}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjfubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjfubj{ )}(hhh](j )}(hw``char *buf`` The buffer to which the formatted value gets written which is assumed to be big enough (i.e. PAGE_SIZE). h](j )}(h ``char *buf``h]h)}(hjfh]h char *buf}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjfubj )}(hhh]h)}(hhThe buffer to which the formatted value gets written which is assumed to be big enough (i.e. PAGE_SIZE).h]hhThe buffer to which the formatted value gets written which is assumed to be big enough (i.e. PAGE_SIZE).}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjfubah}(h]h ]h"]h$]h&]uh1j hjfubeh}(h]h ]h"]h$]h&]uh1j hjfhMhjfubj )}(hr``unsigned int type`` One of the IIO_VAL_* constants. This decides how the val and val2 parameters are formatted. h](j )}(h``unsigned int type``h]h)}(hjgh]hunsigned int type}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjgubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjgubj )}(hhh]h)}(h[One of the IIO_VAL_* constants. This decides how the val and val2 parameters are formatted.h]h[One of the IIO_VAL_* constants. This decides how the val and val2 parameters are formatted.}(hj3ghhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj0gubah}(h]h ]h"]h$]h&]uh1j hjgubeh}(h]h ]h"]h$]h&]uh1j hj/ghMhjfubj )}(h;``int size`` Number of IIO value entries contained in vals h](j )}(h ``int size``h]h)}(hjTgh]hint size}(hjVghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRgubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjNgubj )}(hhh]h)}(h-Number of IIO value entries contained in valsh]h-Number of IIO value entries contained in vals}(hjmghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjighMhjjgubah}(h]h ]h"]h$]h&]uh1j hjNgubeh}(h]h ]h"]h$]h&]uh1j hjighMhjfubj )}(hR``int *vals`` Pointer to the values, exact meaning depends on the type parameter. h](j )}(h ``int *vals``h]h)}(hjgh]h int *vals}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjgubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjgubj )}(hhh]h)}(hCPointer to the values, exact meaning depends on the type parameter.h]hCPointer to the values, exact meaning depends on the type parameter.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjgubah}(h]h ]h"]h$]h&]uh1j hjgubeh}(h]h ]h"]h$]h&]uh1j hjghMhjfubeh}(h]h ]h"]h$]h&]uh1jz hjfubh)}(h **Return**h]j )}(hjgh]hReturn}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1j hjgubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjfubh)}(h0 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]h0 by default, a negative number on failure or the total number of characters written for a type that belongs to the IIO_VAL_* constant.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j iio_str_to_fixpoint (C function)c.iio_str_to_fixpointhNtauh1jhjhhhNhNubj)}(hhh](j)}(hSint iio_str_to_fixpoint (const char *str, int fract_mult, int *integer, int *fract)h]j)}(hRint iio_str_to_fixpoint(const char *str, int fract_mult, int *integer, int *fract)h](j: )}(hinth]hint}(hjhhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hj hhhhd/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&]uh1jhj hhhhjhhMubj)}(hiio_str_to_fixpointh]j)}(hiio_str_to_fixpointh]hiio_str_to_fixpoint}(hj/hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhhjhhMubjr )}(h;(const char *str, int fract_mult, int *integer, int *fract)h](jx )}(hconst char *strh](j)}(hj h]hconst}(hjKhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhubj)}(h h]h }(hjXhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhubj: )}(hcharh]hchar}(hjfhhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjGhubj)}(h h]h }(hjthhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhubj )}(hjh]h*}(hjhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjGhubj)}(hstrh]hstr}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjChubjx )}(hint fract_multh](j: )}(hinth]hint}(hjhhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(h fract_multh]h fract_mult}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjChubjx )}(h int *integerh](j: )}(hinth]hint}(hjhhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj )}(hjh]h*}(hjhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhubj)}(hintegerh]hinteger}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjChubjx )}(h int *fracth](j: )}(hinth]hint}(hjihhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjiubj)}(h h]h }(hj-ihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj )}(hjh]h*}(hj;ihhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjiubj)}(hfracth]hfract}(hjHihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjChubeh}(h]h ]h"]h$]h&]jjuh1jq hj hhhhjhhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhhjhhMubah}(h]jhah ](j j eh"]h$]h&]j j )j huh1jhjhhMhjhhhubj )}(hhh]h)}(h(Parse a fixed-point number from a stringh]h(Parse a fixed-point number from a string}(hjrihhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoihhubah}(h]h ]h"]h$]h&]uh1j hjhhhhjhhMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jij, jij- j. j/ uh1jhhhjhNhNubj1 )}(hXM**Parameters** ``const char *str`` The string to parse ``int fract_mult`` Multiplier for the first decimal place, should be a power of 10 ``int *integer`` The integer part of the number ``int *fract`` The fractional part of the number **Return** 0 on success, or a negative error code if the string could not be parsed.h](h)}(h**Parameters**h]j )}(hjih]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1j hjiubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjiubj{ )}(hhh](j )}(h(``const char *str`` The string to parse h](j )}(h``const char *str``h]h)}(hjih]hconst char *str}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjiubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjiubj )}(hhh]h)}(hThe string to parseh]hThe string to parse}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihMhjiubah}(h]h ]h"]h$]h&]uh1j hjiubeh}(h]h ]h"]h$]h&]uh1j hjihMhjiubj )}(hS``int fract_mult`` Multiplier for the first decimal place, should be a power of 10 h](j )}(h``int fract_mult``h]h)}(hjih]hint fract_mult}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjiubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjiubj )}(hhh]h)}(h?Multiplier for the first decimal place, should be a power of 10h]h?Multiplier for the first decimal place, should be a power of 10}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhMhjjubah}(h]h ]h"]h$]h&]uh1j hjiubeh}(h]h ]h"]h$]h&]uh1j hjjhMhjiubj )}(h0``int *integer`` The integer part of the number h](j )}(h``int *integer``h]h)}(hj%jh]h int *integer}(hj'jhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#jubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjjubj )}(hhh]h)}(hThe integer part of the numberh]hThe integer part of the number}(hj>jhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:jhMhj;jubah}(h]h ]h"]h$]h&]uh1j hjjubeh}(h]h ]h"]h$]h&]uh1j hj:jhMhjiubj )}(h1``int *fract`` The fractional part of the number h](j )}(h``int *fract``h]h)}(hj^jh]h int *fract}(hj`jhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\jubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjXjubj )}(hhh]h)}(h!The fractional part of the numberh]h!The fractional part of the number}(hjwjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsjhMhjtjubah}(h]h ]h"]h$]h&]uh1j hjXjubeh}(h]h ]h"]h$]h&]uh1j hjsjhMhjiubeh}(h]h ]h"]h$]h&]uh1jz hjiubh)}(h **Return**h]j )}(hjjh]hReturn}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjiubh)}(hI0 on success, or a negative error code if the string could not be parsed.h]hI0 on success, or a negative error code if the string could not be parsed.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjiubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_alloc (C function)c.iio_device_allochNtauh1jhjhhhNhNubj)}(hhh](j)}(hJstruct iio_dev * iio_device_alloc (struct device *parent, int sizeof_priv)h]j)}(hHstruct iio_dev *iio_device_alloc(struct device *parent, int sizeof_priv)h](j)}(hjh]hstruct}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhhjjhMubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjjmodnameN classnameNjj)}j]j )}j iio_device_allocsbc.iio_device_allocasbuh1hhjjhhhjjhMubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhhjjhMubj )}(hjh]h*}(hj,khhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjhhhjjhMubj)}(hiio_device_alloch]j)}(hjkh]hiio_device_alloc}(hj=khhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9kubah}(h]h ](jjeh"]h$]h&]jjuh1jhjjhhhjjhMubjr )}(h((struct device *parent, int sizeof_priv)h](jx )}(hstruct device *parenth](j)}(hjh]hstruct}(hjXkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTkubj)}(h h]h }(hjekhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTkubh)}(hhh]j)}(hdeviceh]hdevice}(hjvkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjskubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjxkmodnameN classnameNjj)}j]jkc.iio_device_allocasbuh1hhjTkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTkubj )}(hjh]h*}(hjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjTkubj)}(hparenth]hparent}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTkubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjPkubjx )}(hint sizeof_privh](j: )}(hinth]hint}(hjkhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj)}(h sizeof_privh]h sizeof_priv}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjPkubeh}(h]h ]h"]h$]h&]jjuh1jq hjjhhhjjhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjjhhhjjhMubah}(h]jjah ](j j eh"]h$]h&]j j )j huh1jhjjhMhjjhhubj )}(hhh]h)}(h!allocate an iio_dev from a driverh]h!allocate an iio_dev from a driver}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj lhhubah}(h]h ]h"]h$]h&]uh1j hjjhhhjjhMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j&lj, j&lj- j. j/ uh1jhhhjhNhNubj1 )}(h**Parameters** ``struct device *parent`` Parent device. ``int sizeof_priv`` Space to allocate for private structure. **Return** Pointer to allocated iio_dev on success, NULL on failure.h](h)}(h**Parameters**h]j )}(hj0lh]h Parameters}(hj2lhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj.lubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj*lubj{ )}(hhh](j )}(h)``struct device *parent`` Parent device. h](j )}(h``struct device *parent``h]h)}(hjOlh]hstruct device *parent}(hjQlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMlubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjIlubj )}(hhh]h)}(hParent device.h]hParent device.}(hjhlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdlhMhjelubah}(h]h ]h"]h$]h&]uh1j hjIlubeh}(h]h ]h"]h$]h&]uh1j hjdlhMhjFlubj )}(h=``int sizeof_priv`` Space to allocate for private structure. h](j )}(h``int sizeof_priv``h]h)}(hjlh]hint sizeof_priv}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjlubj )}(hhh]h)}(h(Space to allocate for private structure.h]h(Space to allocate for private structure.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhMhjlubah}(h]h ]h"]h$]h&]uh1j hjlubeh}(h]h ]h"]h$]h&]uh1j hjlhMhjFlubeh}(h]h ]h"]h$]h&]uh1jz hj*lubh)}(h **Return**h]j )}(hjlh]hReturn}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjlubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj*lubh)}(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*lubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_free (C function)c.iio_device_freehNtauh1jhjhhhNhNubj)}(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}(hjmhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjmhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmhhhjmhMubj)}(hiio_device_freeh]j)}(hiio_device_freeh]hiio_device_free}(hj)mhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%mubah}(h]h ](jjeh"]h$]h&]jjuh1jhjmhhhjmhMubjr )}(h(struct iio_dev *dev)h]jx )}(hstruct iio_dev *devh](j)}(hjh]hstruct}(hjEmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAmubj)}(h h]h }(hjRmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAmubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjcmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`mubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjemmodnameN classnameNjj)}j]j )}j j+msbc.iio_device_freeasbuh1hhjAmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAmubj )}(hjh]h*}(hjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAmubj)}(hdevh]hdev}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAmubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hj=mubah}(h]h ]h"]h$]h&]jjuh1jq hjmhhhjmhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjmhhhjmhMubah}(h]jlah ](j j eh"]h$]h&]j j )j huh1jhjmhMhjlhhubj )}(hhh]h)}(hfree an iio_dev from a driverh]hfree an iio_dev from a driver}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjmhhubah}(h]h ]h"]h$]h&]uh1j hjlhhhjmhMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jmj, jmj- j. j/ uh1jhhhjhNhNubj1 )}(hP**Parameters** ``struct iio_dev *dev`` the iio_dev associated with the deviceh](h)}(h**Parameters**h]j )}(hjmh]h Parameters}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjmubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjmubj{ )}(hhh]j )}(h>``struct iio_dev *dev`` the iio_dev associated with the deviceh](j )}(h``struct iio_dev *dev``h]h)}(hj nh]hstruct iio_dev *dev}(hj nhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjnubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hj"nhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjnubah}(h]h ]h"]h$]h&]uh1j hjnubeh}(h]h ]h"]h$]h&]uh1j hjnhMhjnubah}(h]h ]h"]h$]h&]uh1jz hjmubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devm_iio_device_alloc (C function)c.devm_iio_device_allochNtauh1jhjhhhNhNubj)}(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}(hjcnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_nhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjqnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_nhhhjpnhMubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjnmodnameN classnameNjj)}j]j )}j devm_iio_device_allocsbc.devm_iio_device_allocasbuh1hhj_nhhhjpnhMubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_nhhhjpnhMubj )}(hjh]h*}(hjnhhhNhNubah}(h]h ]j ah">}]h$]h&]uh1j hj_nhhhjpnhMubj)}(hdevm_iio_device_alloch]j)}(hjnh]hdevm_iio_device_alloc}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubah}(h]h ](jjeh"]h$]h&]jjuh1jhj_nhhhjpnhMubjr )}(h((struct device *parent, int sizeof_priv)h](jx )}(hstruct device *parenth](j)}(hjh]hstruct}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubh)}(hhh]j)}(hdeviceh]hdevice}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjnmodnameN classnameNjj)}j]jnc.devm_iio_device_allocasbuh1hhjnubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj )}(hjh]h*}(hj'ohhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjnubj)}(hparenth]hparent}(hj4ohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjnubjx )}(hint sizeof_privh](j: )}(hinth]hint}(hjMohhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjIoubj)}(h h]h }(hj[ohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIoubj)}(h sizeof_privh]h sizeof_priv}(hjiohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIoubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjnubeh}(h]h ]h"]h$]h&]jjuh1jq hj_nhhhjpnhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj[nhhhjpnhMubah}(h]jVnah ](j j eh"]h$]h&]j j )j huh1jhjpnhMhjXnhhubj )}(hhh]h)}(h#Resource-managed iio_device_alloc()h]h#Resource-managed iio_device_alloc()}(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&]uh1j hjXnhhhjpnhMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ joj, joj- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hjoh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1j hjoubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoubj{ )}(hhh](j )}(hY``struct device *parent`` Device to allocate iio_dev for, and parent for this IIO device h](j )}(h``struct device *parent``h]h)}(hjoh]hstruct device *parent}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoubj )}(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}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohMhjoubah}(h]h ]h"]h$]h&]uh1j hjoubeh}(h]h ]h"]h$]h&]uh1j hjohMhjoubj )}(h=``int sizeof_priv`` Space to allocate for private structure. h](j )}(h``int sizeof_priv``h]h)}(hj ph]hint sizeof_priv}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhj pubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjpubj )}(hhh]h)}(h(Space to allocate for private structure.h]h(Space to allocate for private structure.}(hj&phhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"phMhj#pubah}(h]h ]h"]h$]h&]uh1j hjpubeh}(h]h ]h"]h$]h&]uh1j hj"phMhjoubeh}(h]h ]h"]h$]h&]uh1jz hjoubh)}(h**Description**h]j )}(hjHph]h Description}(hjJphhhNhNubah}(h]h ]h"]h$]h&]uh1j hjFpubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoubh)}(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.}(hj^phhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoubh)}(h **Return**h]j )}(hjoph]hReturn}(hjqphhhNhNubah}(h]h ]h"]h$]h&]uh1j hjmpubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjoubh)}(h9Pointer to allocated iio_dev on success, NULL on failure.h]h9Pointer to allocated iio_dev on success, NULL on failure.}(hjphhhNhNubah}(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&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'iio_active_scan_mask_index (C function)c.iio_active_scan_mask_indexhNtauh1jhjhhhNhNubj)}(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}(hjphhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 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)}(hiio_active_scan_mask_indexh]j)}(hiio_active_scan_mask_indexh]hiio_active_scan_mask_index}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubah}(h]h ](jjeh"]h$]h&]jjuh1jhjphhhjphMubjr )}(h(struct iio_dev *indio_dev)h]jx )}(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&]uh1jhj qubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjqmodnameN classnameNjj)}j]j )}j jpsbc.iio_active_scan_mask_indexasbuh1hhjpubj)}(h h]h }(hj/qhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj )}(hjh]h*}(hj=qhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjpubj)}(h indio_devh]h indio_dev}(hjJqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjpubah}(h]h ]h"]h$]h&]jjuh1jq hjphhhjphMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjphhhjphMubah}(h]jpah ](j j eh"]h$]h&]j j )j huh1jhjphMhjphhubj )}(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}(hjtqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjqqhhubah}(h]h ]h"]h$]h&]uh1j hjphhhjphMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jqj, jqj- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hjqh]h Parameters}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjqubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjqubj{ )}(hhh]j )}(h\``struct iio_dev *indio_dev`` the IIO device containing the active and available scan masks h](j )}(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&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjqubj )}(hhh]h)}(h=the IIO device containing the active and available scan masksh]h=the IIO device containing the active and available scan masks}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMhjqubah}(h]h ]h"]h$]h&]uh1j hjqubeh}(h]h ]h"]h$]h&]uh1j hjqhMhjqubah}(h]h ]h"]h$]h&]uh1jz hjqubh)}(h **Return**h]j )}(hjqh]hReturn}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjqubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjqubh)}(h4the index or -EINVAL if active_scan_mask is not seth]h4the index or -EINVAL if active_scan_mask is not set}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjqubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"iio_device_unregister (C function)c.iio_device_unregisterhNtauh1jhjhhhNhNubj)}(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}(hj5rhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hj1rhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMWubj)}(h h]h }(hjDrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1rhhhjCrhMWubj)}(hiio_device_unregisterh]j)}(hiio_device_unregisterh]hiio_device_unregister}(hjVrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRrubah}(h]h ](jjeh"]h$]h&]jjuh1jhj1rhhhjCrhMWubjr )}(h(struct iio_dev *indio_dev)h]jx )}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjrrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnrubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjrmodnameN classnameNjj)}j]j )}j jXrsbc.iio_device_unregisterasbuh1hhjnrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnrubj )}(hjh]h*}(hjrhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjnrubj)}(h indio_devh]h indio_dev}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnrubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjjrubah}(h]h ]h"]h$]h&]jjuh1jq hj1rhhhjCrhMWubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj-rhhhjCrhMWubah}(h]j(rah ](j j eh"]h$]h&]j j )j huh1jhjCrhMWhj*rhhubj )}(hhh]h)}(h*unregister a device from the IIO subsystemh]h*unregister a device from the IIO subsystem}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMWhjrhhubah}(h]h ]h"]h$]h&]uh1j hj*rhhhjCrhMWubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ j sj, j sj- j. j/ uh1jhhhjhNhNubj1 )}(hY**Parameters** ``struct iio_dev *indio_dev`` Device structure representing the device.h](h)}(h**Parameters**h]j )}(hjsh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1j hjsubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM[hjsubj{ )}(hhh]j )}(hG``struct iio_dev *indio_dev`` Device structure representing the device.h](j )}(h``struct iio_dev *indio_dev``h]h)}(hj6sh]hstruct iio_dev *indio_dev}(hj8shhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4subah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM]hj0subj )}(hhh]h)}(h)Device structure representing the device.h]h)Device structure representing the device.}(hjOshhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMXhjLsubah}(h]h ]h"]h$]h&]uh1j hj0subeh}(h]h ]h"]h$]h&]uh1j hjKshM]hj-subah}(h]h ]h"]h$]h&]uh1jz hjsubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j __iio_dev_mode_lock (C function)c.__iio_dev_mode_lockhNtauh1jhjhhhNhNubj)}(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}(hjshhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjshhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjshhhjshMubj)}(h__iio_dev_mode_lockh]j)}(h__iio_dev_mode_lockh]h__iio_dev_mode_lock}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubah}(h]h ](jjeh"]h$]h&]jjuh1jhjshhhjshMubjr )}(h(struct iio_dev *indio_dev)h]jx )}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjsmodnameN classnameNjj)}j]j )}j jssbc.__iio_dev_mode_lockasbuh1hhjsubj)}(h h]h }(hj thhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj )}(hjh]h*}(hjthhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsubj)}(h indio_devh]h indio_dev}(hj&thhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjsubah}(h]h ]h"]h$]h&]jjuh1jq hjshhhjshMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjshhhjshMubah}(h]jsah ](j j eh"]h$]h&]j j )j huh1jhjshMhjshhubj )}(hhh]h)}(h!Locks the current IIO device modeh]h!Locks the current IIO device mode}(hjPthhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjMthhubah}(h]h ]h"]h$]h&]uh1j hjshhhjshMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jhtj, jhtj- j. j/ uh1jhhhjhNhNubj1 )}(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 )}(hjrth]h Parameters}(hjtthhhNhNubah}(h]h ]h"]h$]h&]uh1j hjptubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjltubj{ )}(hhh]j )}(hE``struct iio_dev *indio_dev`` the iio_dev associated with the device h](j )}(h``struct iio_dev *indio_dev``h]h)}(hjth]hstruct iio_dev *indio_dev}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjtubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjtubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthMhjtubah}(h]h ]h"]h$]h&]uh1j hjtubeh}(h]h ]h"]h$]h&]uh1j hjthMhjtubah}(h]h ]h"]h$]h&]uh1jz hjltubh)}(h**Description**h]j )}(hjth]h Description}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j hjtubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjltubh)}(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.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjltubh)}(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.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjltubh)}(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.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjltubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"__iio_dev_mode_unlock (C function)c.__iio_dev_mode_unlockhNtauh1jhjhhhNhNubj)}(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}(hj/uhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hj+uhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hj>uhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+uhhhj=uhMubj)}(h__iio_dev_mode_unlockh]j)}(h__iio_dev_mode_unlockh]h__iio_dev_mode_unlock}(hjPuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLuubah}(h]h ](jjeh"]h$]h&]jjuh1jhj+uhhhj=uhMubjr )}(h(struct iio_dev *indio_dev)h]jx )}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjluhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhuubj)}(h h]h }(hjyuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhuubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjumodnameN classnameNjj)}j]j )}j jRusbc.__iio_dev_mode_unlockasbuh1hhjhuubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhuubj )}(hjh]h*}(hjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhuubj)}(h indio_devh]h indio_dev}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhuubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjduubah}(h]h ]h"]h$]h&]jjuh1jq hj+uhhhj=uhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj'uhhhj=uhMubah}(h]j"uah ](j j eh"]h$]h&]j j )j huh1jhj=uhMhj$uhhubj )}(hhh]h)}(h#Unlocks the current IIO device modeh]h#Unlocks the current IIO device mode}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjuhhubah}(h]h ]h"]h$]h&]uh1j hj$uhhhj=uhMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jvj, jvj- j. j/ uh1jhhhjhNhNubj1 )}(hV**Parameters** ``struct iio_dev *indio_dev`` the iio_dev associated with the deviceh](h)}(h**Parameters**h]j )}(hjvh]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjvubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj vubj{ )}(hhh]j )}(hD``struct iio_dev *indio_dev`` the iio_dev associated with the deviceh](j )}(h``struct iio_dev *indio_dev``h]h)}(hj0vh]hstruct iio_dev *indio_dev}(hj2vhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.vubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj*vubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hjIvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjFvubah}(h]h ]h"]h$]h&]uh1j hj*vubeh}(h]h ]h"]h$]h&]uh1j hjEvhMhj'vubah}(h]h ]h"]h$]h&]uh1jz hj vubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(iio_device_get_current_mode (C function)c.iio_device_get_current_modehNtauh1jhjhhhNhNubj)}(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}(hjvhhhNhNubah}(h]h ]jF ah"]h$]h&]uh1j9 hjvhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvhhhjvhMubj)}(hiio_device_get_current_modeh]j)}(hiio_device_get_current_modeh]hiio_device_get_current_mode}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ](jjeh"]h$]h&]jjuh1jhjvhhhjvhMubjr )}(h(struct iio_dev *indio_dev)h]jx )}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&] refdomainj7reftypej reftargetjvmodnameN classnameNjj)}j]j )}j jvsbc.iio_device_get_current_modeasbuh1hhjvubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj )}(hjh]h*}(hjwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjvubj)}(h indio_devh]h indio_dev}(hj whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]noemphjjuh1jw hjvubah}(h]h ]h"]h$]h&]jjuh1jq hjvhhhjvhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjvhhhjvhMubah}(h]j}vah ](j j eh"]h$]h&]j j )j huh1jhjvhMhjvhhubj )}(hhh]h)}(hQhelper function providing read-only access to the opaque **currentmode** variableh](h9helper function providing read-only access to the opaque }(hjJwhhhNhNubj )}(h**currentmode**h]h currentmode}(hjRwhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJwubh variable}(hjJwhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjGwhhubah}(h]h ]h"]h$]h&]uh1j hjvhhhjvhMubeh}(h]h ](j7functioneh"]h$]h&]j* j7j+ jtwj, jtwj- j. j/ uh1jhhhjhNhNubj1 )}(hO**Parameters** ``struct iio_dev *indio_dev`` IIO device structure for deviceh](h)}(h**Parameters**h]j )}(hj~wh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj|wubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjxwubj{ )}(hhh]j )}(h=``struct iio_dev *indio_dev`` IIO device structure for deviceh](j )}(h``struct iio_dev *indio_dev``h]h)}(hjwh]hstruct iio_dev *indio_dev}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwubah}(h]h ]h"]h$]h&]uh1j hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjwubj )}(hhh]h)}(hIIO device structure for deviceh]hIIO device structure for device}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjwubah}(h]h ]h"]h$]h&]uh1j hjwubeh}(h]h ]h"]h$]h&]uh1j hjwhMhjwubah}(h]h ]h"]h$]h&]uh1jz hjxwubeh}(h]h ] kernelindentah"]h$]h&]uh1j0 hjhhhNhNubeh}(h] more-detailsah ]h"] more detailsah$]h&]uh1hhhhhhhhKubeh}(h]industrial-i-o-devicesah ]h"]industrial i/o devicesah$]h&]uh1hhhhhhhhK ubeh}(h] core-elementsah ]h"] core elementsah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjxerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehʌ _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jwjwjwjwjPjMj~j{jwjwu nametypes}(jwjwjPj~jwuh}(jwhjwhjMjgj{jSjwjjjj j j j jjjjjjjjjjjjjjjPjUjjj, j1 js"jx"j$j$j)j)j+j+j,1j11j2j2jz3j3j05j55jI6jN6j7j8j9j9j:j:j;j;j<j=jZ>j_>j@j@jAjAjCjDjEjEjGjGjAIjFIjJjJjLjLjMjMjOjOjPjPjuSjzSjUj Uj$Vj)Vj.Wj3Wj8Xj=XjBYjGYjLZjQZj[j[jt]jy]jv_j{_j%aj*ajbjbj%ej*ejhjhjjjjjljmjVnj[njpjpj(rj-rjsjsj"uj'uj}vjvu 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.