#sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget'/translations/zh_CN/driver-api/iio/coremodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/zh_TW/driver-api/iio/coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/it_IT/driver-api/iio/coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ja_JP/driver-api/iio/coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ko_KR/driver-api/iio/coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/sp_SP/driver-api/iio/coremodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h Core elementsh]h Core elements}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhA/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core.rsthKubh paragraph)}(hX The Industrial I/O core offers both a unified framework for writing drivers for many different types of embedded sensors and a standard interface to user space applications manipulating sensors. The implementation can be found under :file:`drivers/iio/industrialio-*`h](hThe Industrial I/O core offers both a unified framework for writing drivers for many different types of embedded sensors and a standard interface to user space applications manipulating sensors. The implementation can be found under }(hhhhhNhNubhliteral)}(h":file:`drivers/iio/industrialio-*`h]hdrivers/iio/industrialio-*}(hhhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hIndustrial I/O Devicesh]hIndustrial I/O Devices}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh bullet_list)}(hhh](h list_item)}(h&struct iio_dev - industrial I/O deviceh]h)}(hhh]h&struct iio_dev - industrial I/O device}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(h@iio_device_alloc() - allocate an :c:type:`iio_dev` from a driverh]h)}(hj h](h!iio_device_alloc() - allocate an }(hj hhhNhNubh)}(h:c:type:`iio_dev`h]h)}(hjh]hiio_dev}(hjhhhNhNubah}(h]h ](xrefcc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocdriver-api/iio/core refdomainj#reftypetype refexplicitrefwarn reftargetiio_devuh1hhhhKhj ubh from a driver}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(h;iio_device_free() - free an :c:type:`iio_dev` from a driverh]h)}(hjIh](hiio_device_free() - free an }(hjKhhhNhNubh)}(h:c:type:`iio_dev`h]h)}(hjTh]hiio_dev}(hjVhhhNhNubah}(h]h ](j"j#c-typeeh"]h$]h&]uh1hhjRubah}(h]h ]h"]h$]h&]refdocj/ refdomainj#reftypetype refexplicitrefwarnj5iio_devuh1hhhhKhjKubh from a driver}(hjKhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjGubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(h@iio_device_register() - register a device with the IIO subsystemh]h)}(hjh]h@iio_device_register() - register a device with the IIO subsystem}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hEiio_device_unregister() - unregister a device from the IIO subsystem h]h)}(hDiio_device_unregister() - unregister a device from the IIO subsystemh]hDiio_device_unregister() - unregister a device from the IIO subsystem}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubeh}(h]h ]h"]h$]h&]bullet*uh1hhhhK hhhhubh)}(hXAn IIO device usually corresponds to a single hardware sensor and it provides all the information needed by a driver handling a device. Let's first have a look at the functionality embedded in an IIO device then we will show how a device driver makes use of an IIO device.h]hXAn IIO device usually corresponds to a single hardware sensor and it provides all the information needed by a driver handling a device. Let’s first have a look at the functionality embedded in an IIO device then we will show how a device driver makes use of an IIO device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hOThere are two ways for a user space application to interact with an IIO driver.h]hOThere are two ways for a user space application to interact with an IIO driver.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhenumerated_list)}(hhh](h)}(h:file:`/sys/bus/iio/devices/iio:device{X}/`, this represents a hardware sensor and groups together the data channels of the same chip.h]h)}(h:file:`/sys/bus/iio/devices/iio:device{X}/`, this represents a hardware sensor and groups together the data channels of the same chip.h](h)}(h+:file:`/sys/bus/iio/devices/iio:device{X}/`h](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubhemphasis)}(hXh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh[, this represents a hardware sensor and groups together the data channels of the same chip.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(h:file:`/dev/iio:device{X}`, character device node interface used for buffered data transfer and for events information retrieval. h]h)}(h:file:`/dev/iio:device{X}`, character device node interface used for buffered data transfer and for events information retrieval.h](h)}(h:file:`/dev/iio:device{X}`h](h/dev/iio:device}(hjhhhNhNubj)}(hjh]hX}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubhg, character device node interface used for buffered data transfer and for events information retrieval.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix.uh1jhhhhhhhKubh)}(hA typical IIO driver will register itself as an :doc:`I2C <../i2c>` or :doc:`SPI <../spi>` driver and will create two routines, probe and remove.h](h0A typical IIO driver will register itself as an }(hjWhhhNhNubh)}(h:doc:`I2C <../i2c>`h]hinline)}(hjah]hI2C}(hjehhhNhNubah}(h]h ](j"stdstd-doceh"]h$]h&]uh1jchj_ubah}(h]h ]h"]h$]h&]refdocj/ refdomainjoreftypedoc refexplicitrefwarnj5../i2cuh1hhhhK hjWubh or }(hjWhhhNhNubh)}(h:doc:`SPI <../spi>`h]jd)}(hjh]hSPI}(hjhhhNhNubah}(h]h ](j"stdstd-doceh"]h$]h&]uh1jchjubah}(h]h ]h"]h$]h&]refdocj/ refdomainjreftypedoc refexplicitrefwarnj5../spiuh1hhhhK hjWubh7 driver and will create two routines, probe and remove.}(hjWhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(h At probe:h]h At probe:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hhhhubj)}(hhh](h)}(hBCall iio_device_alloc(), which allocates memory for an IIO device.h]h)}(hjh]hBCall iio_device_alloc(), which allocates memory for an IIO device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hbInitialize IIO device fields with driver specific information (e.g. device name, device channels).h]h)}(hbInitialize IIO device fields with driver specific information (e.g. device name, device channels).h]hbInitialize IIO device fields with driver specific information (e.g. device name, device channels).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hCall iio_device_register(), this registers the device with the IIO core. After this call the device is ready to accept requests from user space applications. h]h)}(hCall iio_device_register(), this registers the device with the IIO core. After this call the device is ready to accept requests from user space applications.h]hCall iio_device_register(), this registers the device with the IIO core. After this call the device is ready to accept requests from user space applications.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jRjSjThjUjVuh1jhhhhhhhK%ubh)}(hEAt remove, we free the resources allocated in probe in reverse order:h]hEAt remove, we free the resources allocated in probe in reverse order:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hhhhubj)}(hhh](h)}(hAiio_device_unregister(), unregister the device from the IIO core.h]h)}(hj h]hAiio_device_unregister(), unregister the device from the IIO core.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hAiio_device_free(), free the memory allocated for the IIO device. h]h)}(h@iio_device_free(), free the memory allocated for the IIO device.h]h@iio_device_free(), free the memory allocated for the IIO device.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hj5ubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jRjSjThjUjVuh1jhhhhhhhK.ubh)}(hhh](h)}(hIIO device sysfs interfaceh]hIIO device sysfs interface}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShhhhhK2ubh)}(hAttributes are sysfs files used to expose chip info and also allowing applications to set various configuration parameters. For device with index X, attributes can be found under /sys/bus/iio/devices/iio:deviceX/ directory. Common attributes are:h]hAttributes are sysfs files used to expose chip info and also allowing applications to set various configuration parameters. For device with index X, attributes can be found under /sys/bus/iio/devices/iio:deviceX/ directory. Common attributes are:}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjShhubh)}(hhh](h)}(h/:file:`name`, description of the physical chip.h]h)}(hjwh](h)}(h :file:`name`h]hname}(hj|hhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjyubh#, description of the physical chip.}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK9hjuubah}(h]h ]h"]h$]h&]uh1hhjrhhhhhNubh)}(hV:file:`dev`, shows the major:minor pair associated with :file:`/dev/iio:deviceX` node.h]h)}(hV:file:`dev`, shows the major:minor pair associated with :file:`/dev/iio:deviceX` node.h](h)}(h :file:`dev`h]hdev}(hjhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh-, shows the major:minor pair associated with }(hjhhhNhNubh)}(h:file:`/dev/iio:deviceX`h]h/dev/iio:deviceX}(hjhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh node.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK:hjubah}(h]h ]h"]h$]h&]uh1hhjrhhhhhNubh)}(he:file:`sampling_frequency_available`, available discrete set of sampling frequency values for device.h]h)}(he:file:`sampling_frequency_available`, available discrete set of sampling frequency values for device.h](h)}(h$:file:`sampling_frequency_available`h]hsampling_frequency_available}(hjhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjubhA, available discrete set of sampling frequency values for device.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjrhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhK9hjShhubeh}(h]iio-device-sysfs-interfaceah ]h"]iio device sysfs interfaceah$]h&]uh1hhhhhhhhK2ubh)}(hhh](h)}(hIIO device channelsh]hIIO device channels}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hhhhhKCubh)}(h8struct iio_chan_spec - specification of a single channelh]h8struct iio_chan_spec - specification of a single channel}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhj?hhubh)}(hzAn IIO device channel is a representation of a data channel. An IIO device can have one or multiple channels. For example:h]hzAn IIO device channel is a representation of a data channel. An IIO device can have one or multiple channels. For example:}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhj?hhubh)}(hhh](h)}(hNa thermometer sensor has one channel representing the temperature measurement.h]h)}(hjqh]hNa thermometer sensor has one channel representing the temperature measurement.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhjoubah}(h]h ]h"]h$]h&]uh1hhjlhhhhhNubh)}(hba light sensor with two channels indicating the measurements in the visible and infrared spectrum.h]h)}(hba light sensor with two channels indicating the measurements in the visible and infrared spectrum.h]hba light sensor with two channels indicating the measurements in the visible and infrared spectrum.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKKhjubah}(h]h ]h"]h$]h&]uh1hhjlhhhhhNubh)}(hYan accelerometer can have up to 3 channels representing acceleration on X, Y and Z axes. h]h)}(hXan accelerometer can have up to 3 channels representing acceleration on X, Y and Z axes.h]hXan accelerometer can have up to 3 channels representing acceleration on X, Y and Z axes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhjubah}(h]h ]h"]h$]h&]uh1hhjlhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKJhj?hhubh)}(hAn IIO channel is described by the struct iio_chan_spec. A thermometer driver for the temperature sensor in the example above would have to describe its channel as follows::h]hAn IIO channel is described by the struct iio_chan_spec. A thermometer driver for the temperature sensor in the example above would have to describe its channel as follows:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhj?hhubh literal_block)}(hstatic const struct iio_chan_spec temp_channel[] = { { .type = IIO_TEMP, .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), }, };h]hstatic const struct iio_chan_spec temp_channel[] = { { .type = IIO_TEMP, .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), }, };}hjsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jhhhKThj?hhubh)}(hChannel sysfs attributes exposed to userspace are specified in the form of bitmasks. Depending on their shared info, attributes can be set in one of the following masks:h]hChannel sysfs attributes exposed to userspace are specified in the form of bitmasks. Depending on their shared info, attributes can be set in one of the following masks:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hj?hhubh)}(hhh](h)}(hC**info_mask_separate**, attributes will be specific to this channelh]h)}(hC**info_mask_separate**, attributes will be specific to this channelh](hstrong)}(h**info_mask_separate**h]hinfo_mask_separate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh-, attributes will be specific to this channel}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hT**info_mask_shared_by_type**, attributes are shared by all channels of the same typeh]h)}(hT**info_mask_shared_by_type**, attributes are shared by all channels of the same typeh](j)}(h**info_mask_shared_by_type**h]hinfo_mask_shared_by_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh8, attributes are shared by all channels of the same type}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKahjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hX**info_mask_shared_by_dir**, attributes are shared by all channels of the same directionh]h)}(hX**info_mask_shared_by_dir**, attributes are shared by all channels of the same directionh](j)}(h**info_mask_shared_by_dir**h]hinfo_mask_shared_by_dir}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubh=, attributes are shared by all channels of the same direction}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKchj;ubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hC**info_mask_shared_by_all**, attributes are shared by all channels h]h)}(hB**info_mask_shared_by_all**, attributes are shared by all channelsh](j)}(h**info_mask_shared_by_all**h]hinfo_mask_shared_by_all}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubh', attributes are shared by all channels}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKehjaubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhK_hj?hhubh)}(hdWhen there are multiple data channels per channel type we have two ways to distinguish between them:h]hdWhen there are multiple data channels per channel type we have two ways to distinguish between them:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghj?hhubh)}(hhh](h)}(hXset **.modified** field of :c:type:`iio_chan_spec` to 1. Modifiers are specified using **.channel2** field of the same :c:type:`iio_chan_spec` structure and are used to indicate a physically unique characteristic of the channel such as its direction or spectral response. For example, a light sensor can have two channels, one for infrared light and one for both infrared and visible light.h]h)}(hXset **.modified** field of :c:type:`iio_chan_spec` to 1. Modifiers are specified using **.channel2** field of the same :c:type:`iio_chan_spec` structure and are used to indicate a physically unique characteristic of the channel such as its direction or spectral response. For example, a light sensor can have two channels, one for infrared light and one for both infrared and visible light.h](hset }(hjhhhNhNubj)}(h **.modified**h]h .modified}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of }(hjhhhNhNubh)}(h:c:type:`iio_chan_spec`h]h)}(hjh]h iio_chan_spec}(hjhhhNhNubah}(h]h ](j"j#c-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj/ refdomainj#reftypetype refexplicitrefwarnj5 iio_chan_specuh1hhhhKjhjubh% to 1. Modifiers are specified using }(hjhhhNhNubj)}(h **.channel2**h]h .channel2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of the same }(hjhhhNhNubh)}(h:c:type:`iio_chan_spec`h]h)}(hjh]h iio_chan_spec}(hjhhhNhNubah}(h]h ](j"j#c-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj/ refdomainj#reftypetype refexplicitrefwarnj5 iio_chan_specuh1hhhhKjhjubh structure and are used to indicate a physically unique characteristic of the channel such as its direction or spectral response. For example, a light sensor can have two channels, one for infrared light and one for both infrared and visible light.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKjhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hset **.indexed** field of :c:type:`iio_chan_spec` to 1. In this case the channel is simply another instance with an index specified by the **.channel** field. h]h)}(hset **.indexed** field of :c:type:`iio_chan_spec` to 1. In this case the channel is simply another instance with an index specified by the **.channel** field.h](hset }(hj$hhhNhNubj)}(h **.indexed**h]h.indexed}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh field of }(hj$hhhNhNubh)}(h:c:type:`iio_chan_spec`h]h)}(hj@h]h iio_chan_spec}(hjBhhhNhNubah}(h]h ](j"j#c-typeeh"]h$]h&]uh1hhj>ubah}(h]h ]h"]h$]h&]refdocj/ refdomainj#reftypetype refexplicitrefwarnj5 iio_chan_specuh1hhhhKphj$ubhZ to 1. In this case the channel is simply another instance with an index specified by the }(hj$hhhNhNubj)}(h **.channel**h]h.channel}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh field.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKphj ubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKjhj?hhubh)}(h8Here is how we can make use of the channel's modifiers::h]h9Here is how we can make use of the channel’s modifiers:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthj?hhubj)}(hX static const struct iio_chan_spec light_channels[] = { { .type = IIO_INTENSITY, .modified = 1, .channel2 = IIO_MOD_LIGHT_IR, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, { .type = IIO_INTENSITY, .modified = 1, .channel2 = IIO_MOD_LIGHT_BOTH, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, { .type = IIO_LIGHT, .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, }h]hX static const struct iio_chan_spec light_channels[] = { { .type = IIO_INTENSITY, .modified = 1, .channel2 = IIO_MOD_LIGHT_IR, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, { .type = IIO_INTENSITY, .modified = 1, .channel2 = IIO_MOD_LIGHT_BOTH, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, { .type = IIO_LIGHT, .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), .info_mask_shared = BIT(IIO_CHAN_INFO_SAMP_FREQ), }, }}hjsbah}(h]h ]h"]h$]h&]jjuh1jhhhKvhj?hhubh)}(hXThis channel's definition will generate two separate sysfs files for raw data retrieval:h]hZThis channel’s definition will generate two separate sysfs files for raw data retrieval:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubh)}(hhh](h)}(h>:file:`/sys/bus/iio/devices/iio:device{X}/in_intensity_ir_raw`h]h)}(hjh]h)}(hjh](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubj)}(hjh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/in_intensity_ir_raw}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hA:file:`/sys/bus/iio/devices/iio:device{X}/in_intensity_both_raw` h]h)}(h@:file:`/sys/bus/iio/devices/iio:device{X}/in_intensity_both_raw`h]h)}(hjh](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubj)}(hjh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/in_intensity_both_raw}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKhj?hhubh)}(hone file for processed data:h]hone file for processed data:}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubh)}(hhh]h)}(h@:file:`/sys/bus/iio/devices/iio:device{X}/in_illuminance_input` h]h)}(h?:file:`/sys/bus/iio/devices/iio:device{X}/in_illuminance_input`h]h)}(hj8h](h/sys/bus/iio/devices/iio:device}(hj:hhhNhNubj)}(hjh]hX}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubh/in_illuminance_input}(hj:hhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhj6ubah}(h]h ]h"]h$]h&]uh1hhhhKhj2ubah}(h]h ]h"]h$]h&]uh1hhj/hhhhhNubah}(h]h ]h"]h$]h&]jjuh1hhhhKhj?hhubh)}(h1and one shared sysfs file for sampling frequency:h]h1and one shared sysfs file for sampling frequency:}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubh)}(hhh]h)}(h?:file:`/sys/bus/iio/devices/iio:device{X}/sampling_frequency`. h]h)}(h>:file:`/sys/bus/iio/devices/iio:device{X}/sampling_frequency`.h](h)}(h=:file:`/sys/bus/iio/devices/iio:device{X}/sampling_frequency`h](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubj)}(hjh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/sampling_frequency}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj~ubah}(h]h ]h"]h$]h&]uh1hhj{hhhhhNubah}(h]h ]h"]h$]h&]jjuh1hhhhKhj?hhubh)}(h7Here is how we can make use of the channel's indexing::h]h8Here is how we can make use of the channel’s indexing:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubj)}(hXstatic const struct iio_chan_spec light_channels[] = { { .type = IIO_VOLTAGE, .indexed = 1, .channel = 0, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), }, { .type = IIO_VOLTAGE, .indexed = 1, .channel = 1, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), }, }h]hXstatic const struct iio_chan_spec light_channels[] = { { .type = IIO_VOLTAGE, .indexed = 1, .channel = 0, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), }, { .type = IIO_VOLTAGE, .indexed = 1, .channel = 1, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), }, }}hjsbah}(h]h ]h"]h$]h&]jjuh1jhhhKhj?hhubh)}(hHThis will generate two separate attributes files for raw data retrieval:h]hHThis will generate two separate attributes files for raw data retrieval:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubh)}(hhh](h)}(hk:file:`/sys/bus/iio/devices/iio:device{X}/in_voltage0_raw`, representing voltage measurement for channel 0.h]h)}(hk:file:`/sys/bus/iio/devices/iio:device{X}/in_voltage0_raw`, representing voltage measurement for channel 0.h](h)}(h::file:`/sys/bus/iio/devices/iio:device{X}/in_voltage0_raw`h](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubj)}(hjh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/in_voltage0_raw}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh1, representing voltage measurement for channel 0.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hl:file:`/sys/bus/iio/devices/iio:device{X}/in_voltage1_raw`, representing voltage measurement for channel 1. h]h)}(hk:file:`/sys/bus/iio/devices/iio:device{X}/in_voltage1_raw`, representing voltage measurement for channel 1.h](h)}(h::file:`/sys/bus/iio/devices/iio:device{X}/in_voltage1_raw`h](h/sys/bus/iio/devices/iio:device}(hj-hhhNhNubj)}(hjh]hX}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubh/in_voltage1_raw}(hj-hhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhj)ubh1, representing voltage measurement for channel 1.}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj%ubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKhj?hhubeh}(h]iio-device-channelsah ]h"]iio device channelsah$]h&]uh1hhhhhhhhKCubh)}(hhh](h)}(h More detailsh]h More details}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single!iio_chan_spec_ext_info (C struct)c.iio_chan_spec_ext_infohNtauh1j~hjmhhhNhNubhdesc)}(hhh](hdesc_signature)}(hiio_chan_spec_ext_infoh]hdesc_signature_line)}(hstruct iio_chan_spec_ext_infoh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(hiio_chan_spec_ext_infoh]h desc_sig_name)}(hjh]hiio_chan_spec_ext_info}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(hExtended channel info attributeh]hExtended channel info attribute}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK(hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j#structeh"]h$]h&]domainj#objtypej desctypej noindex noindexentrynocontentsentryuh1jhhhjmhNhNubh container)}(hX**Definition**:: struct iio_chan_spec_ext_info { const char *name; enum iio_shared_by shared; ssize_t (*read)(struct iio_dev *, uintptr_t private, struct iio_chan_spec const *, char *buf); ssize_t (*write)(struct iio_dev *, uintptr_t private,struct iio_chan_spec const *, const char *buf, size_t len); uintptr_t private; }; **Members** ``name`` Info attribute name ``shared`` Whether this attribute is shared between all channels. ``read`` Read callback for this info attribute, may be NULL. ``write`` Write callback for this info attribute, may be NULL. ``private`` Data private to the driver.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj" ubh:}(hj" hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK,hj ubj)}(hXFstruct 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]hXFstruct iio_chan_spec_ext_info { const char *name; enum iio_shared_by shared; ssize_t (*read)(struct iio_dev *, uintptr_t private, struct iio_chan_spec const *, char *buf); ssize_t (*write)(struct iio_dev *, uintptr_t private,struct iio_chan_spec const *, const char *buf, size_t len); uintptr_t private; };}hj? sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK.hj ubh)}(h **Members**h]j)}(hjP h]hMembers}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK6hj ubhdefinition_list)}(hhh](hdefinition_list_item)}(h``name`` Info attribute name h](hterm)}(h``name``h]h)}(hju h]hname}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjs ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK*hjm ubh definition)}(hhh]h)}(hInfo attribute nameh]hInfo attribute name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK*hj ubah}(h]h ]h"]h$]h&]uh1j hjm ubeh}(h]h ]h"]h$]h&]uh1jk hj hK*hjh ubjl )}(hB``shared`` Whether this attribute is shared between all channels. h](jr )}(h ``shared``h]h)}(hj h]hshared}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK+hj ubj )}(hhh]h)}(h6Whether this attribute is shared between all channels.h]h6Whether this attribute is shared between all channels.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK+hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj hK+hjh ubjl )}(h=``read`` Read callback for this info attribute, may be NULL. h](jr )}(h``read``h]h)}(hj h]hread}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK,hj ubj )}(hhh]h)}(h3Read callback for this info attribute, may be NULL.h]h3Read callback for this info attribute, may be NULL.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK,hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj hK,hjh ubjl )}(h?``write`` Write callback for this info attribute, may be NULL. h](jr )}(h ``write``h]h)}(hj" h]hwrite}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK-hj ubj )}(hhh]h)}(h4Write callback for this info attribute, may be NULL.h]h4Write callback for this info attribute, may be NULL.}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7 hK-hj8 ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj7 hK-hjh ubjl )}(h'``private`` Data private to the driver.h](jr )}(h ``private``h]h)}(hj[ h]hprivate}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjY ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK-hjU ubj )}(hhh]h)}(hData private to the driver.h]hData private to the driver.}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK.hjq ubah}(h]h ]h"]h$]h&]uh1j hjU ubeh}(h]h ]h"]h$]h&]uh1jk hjp hK-hjh ubeh}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_enum (C struct) c.iio_enumhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_enumh]j)}(hstruct iio_enumh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK4ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hK4ubj)}(hiio_enumh]j)}(hj h]hiio_enum}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hK4ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj hhhj hK4ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hK4hj hhubj)}(hhh]h)}(hEnum channel info attributeh]hEnum channel info attribute}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK;hj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hK4ubeh}(h]h ](j#structeh"]h$]h&]j j#j j j j j j j uh1jhhhjmhNhNubj )}(hX**Definition**:: struct iio_enum { const char * const *items; unsigned int num_items; int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); int (*get)(struct iio_dev *, const struct iio_chan_spec *); }; **Members** ``items`` An array of strings. ``num_items`` Length of the item array. ``set`` Set callback function, may be NULL. ``get`` Get callback function, may be NULL.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK?hj ubj)}(hstruct iio_enum { const char * const *items; unsigned int num_items; int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); int (*get)(struct iio_dev *, const struct iio_chan_spec *); };h]hstruct iio_enum { const char * const *items; unsigned int num_items; int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); int (*get)(struct iio_dev *, const struct iio_chan_spec *); };}hj4 sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKAhj ubh)}(h **Members**h]j)}(hjE h]hMembers}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKHhj ubjg )}(hhh](jl )}(h``items`` An array of strings. h](jr )}(h ``items``h]h)}(hjd h]hitems}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjb ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK=hj^ ubj )}(hhh]h)}(hAn array of strings.h]hAn array of strings.}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjy hK=hjz ubah}(h]h ]h"]h$]h&]uh1j hj^ ubeh}(h]h ]h"]h$]h&]uh1jk hjy hK=hj[ ubjl )}(h(``num_items`` Length of the item array. h](jr )}(h ``num_items``h]h)}(hj h]h num_items}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK>hj ubj )}(hhh]h)}(hLength of the item array.h]hLength of the item array.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK>hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj hK>hj[ ubjl )}(h,``set`` Set callback function, may be NULL. h](jr )}(h``set``h]h)}(hj h]hset}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK?hj 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 hK?hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj hK?hj[ ubjl )}(h+``get`` Get callback function, may be NULL.h](jr )}(h``get``h]h)}(hj h]hget}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK?hj 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.hhK@hj% ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj$ hK?hj[ ubeh}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubh)}(h**Description**h]j)}(hjR h]h Description}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKChjmhhubh)}(hX6The iio_enum struct can be used to implement enum style channel attributes. Enum style attributes are those which have a set of strings which map to unsigned integer values. The IIO enum helper code takes care of mapping between value and string as well as generating a "_available" file which contains a list of all available items. The set callback will be called when the attribute is updated. The last parameter is the index to the newly activated item. The get callback will be used to query the currently active item and is supposed to return the index for it.h]hX:The iio_enum struct can be used to implement enum style channel attributes. Enum style attributes are those which have a set of strings which map to unsigned integer values. The IIO enum helper code takes care of mapping between value and string as well as generating a “_available” file which contains a list of all available items. The set callback will be called when the attribute is updated. The last parameter is the index to the newly activated item. The get callback will be used to query the currently active item and is supposed to return the index for it.}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKAhjmhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_ENUM (C macro) c.IIO_ENUMhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_ENUMh]j)}(hIIO_ENUMh]j)}(hIIO_ENUMh]j)}(hj h]hIIO_ENUM}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKaubah}(h]h ]h"]h$]h&]jjjuh1jjjhj hhhj hKaubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hKahj hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj hhhj hKaubeh}(h]h ](j#macroeh"]h$]h&]j j#j j j j j j j uh1jhhhjmhNhNubh)}(h!``IIO_ENUM (_name, _shared, _e)``h]h)}(hj h]hIIO_ENUM (_name, _shared, _e)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKchjmhhubh 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.hhKZhj ubah}(h]h ]h"]h$]h&]uh1j hj hKZhjmhhubj )}(h**Parameters** ``_name`` Attribute name ``_shared`` Whether the attribute is shared between all channels ``_e`` Pointer to an iio_enum struct **Description** This should usually be used together with IIO_ENUM_AVAILABLE()h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK^hj ubjg )}(hhh](jl )}(h``_name`` Attribute name h](jr )}(h ``_name``h]h)}(hj h]h_name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK[hj ubj )}(hhh]h)}(hAttribute nameh]hAttribute name}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1 hK[hj2 ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj1 hK[hj ubjl )}(hA``_shared`` Whether the attribute is shared between all channels h](jr )}(h ``_shared``h]h)}(hjU h]h_shared}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK\hjO ubj )}(hhh]h)}(h4Whether the attribute is shared between all channelsh]h4Whether the attribute is shared between all channels}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj hK\hjk ubah}(h]h ]h"]h$]h&]uh1j hjO ubeh}(h]h ]h"]h$]h&]uh1jk hjj hK\hj ubjl )}(h%``_e`` Pointer to an iio_enum struct h](jr )}(h``_e``h]h)}(hj h]h_e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK]hj ubj )}(hhh]h)}(hPointer to an iio_enum structh]hPointer to an iio_enum struct}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK]hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj hK]hj ubeh}(h]h ]h"]h$]h&]uh1jf hj ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK_hj 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.hhK_hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_ENUM_AVAILABLE (C macro)c.IIO_ENUM_AVAILABLEhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_ENUM_AVAILABLEh]j)}(hIIO_ENUM_AVAILABLEh]j)}(hIIO_ENUM_AVAILABLEh]j)}(hjh]hIIO_ENUM_AVAILABLE}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKsubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj%hKsubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj%hKshjhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhj%hKsubeh}(h]h ](j#macroeh"]h$]h&]j j#j j>j j>j j j uh1jhhhjmhNhNubh)}(h+``IIO_ENUM_AVAILABLE (_name, _shared, _e)``h]h)}(hjDh]h'IIO_ENUM_AVAILABLE (_name, _shared, _e)}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKuhjmhhubj )}(h5Initialize enum available extended channel attribute h]h)}(h4Initialize enum available extended channel attributeh]h4Initialize enum available extended channel attribute}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKkhjZubah}(h]h ]h"]h$]h&]uh1j hjlhKkhjmhhubj )}(hXk**Parameters** ``_name`` Attribute name ("_available" will be appended to the name) ``_shared`` Whether the attribute is shared between all channels ``_e`` Pointer to an iio_enum struct **Description** Creates a read only attribute which lists all the available enum items in a space separated list. This should usually be used together with IIO_ENUM()h](h)}(h**Parameters**h]j)}(hjyh]h Parameters}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKohjsubjg )}(hhh](jl )}(hE``_name`` Attribute name ("_available" will be appended to the name) h](jr )}(h ``_name``h]h)}(hjh]h_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKlhjubj )}(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&]uh1hhjhKlhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKlhjubjl )}(hA``_shared`` Whether the attribute is shared between all channels h](jr )}(h ``_shared``h]h)}(hjh]h_shared}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKmhjubj )}(hhh]h)}(h4Whether the attribute is shared between all channelsh]h4Whether the attribute is shared between all channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKmhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKmhjubjl )}(h%``_e`` Pointer to an iio_enum struct h](jr )}(h``_e``h]h)}(hj h]h_e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKnhjubj )}(hhh]h)}(hPointer to an iio_enum structh]hPointer to an iio_enum struct}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKnhj ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKnhjubeh}(h]h ]h"]h$]h&]uh1jf hjsubh)}(h**Description**h]j)}(hjEh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKphjsubh)}(hCreates a read only attribute which lists all the available enum items in a space separated list. This should usually be used together with IIO_ENUM()h]hCreates a read only attribute which lists all the available enum items in a space separated list. This should usually be used together with IIO_ENUM()}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKphjsubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_mount_matrix (C struct)c.iio_mount_matrixhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_mount_matrixh]j)}(hstruct iio_mount_matrixh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKvubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKvubj)}(hiio_mount_matrixh]j)}(hjh]hiio_mount_matrix}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKvubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKvubah}(h]j}ah ](jjeh"]h$]h&]jj)jhuh1jhjhKvhjhhubj)}(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.hhK|hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKvubeh}(h]h ](j#structeh"]h$]h&]j j#j jj jj j j uh1jhhhjmhNhNubj )}(h**Definition**:: struct iio_mount_matrix { const char *rotation[9]; }; **Members** ``rotation`` 3 dimensional space rotation matrix defining sensor alignment with main hardwareh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj)}(h9struct iio_mount_matrix { const char *rotation[9]; };h]h9struct iio_mount_matrix { const char *rotation[9]; };}hj sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubjg )}(hhh]jl )}(h]``rotation`` 3 dimensional space rotation matrix defining sensor alignment with main hardwareh](jr )}(h ``rotation``h]h)}(hj9h]hrotation}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhK~hj3ubj )}(hhh]h)}(hP3 dimensional space rotation matrix defining sensor alignment with main hardwareh]hP3 dimensional space rotation matrix defining sensor alignment with main hardware}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhK~hjOubah}(h]h ]h"]h$]h&]uh1j hj3ubeh}(h]h ]h"]h$]h&]uh1jk hjNhK~hj0ubah}(h]h ]h"]h$]h&]uh1jf hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jIIO_MOUNT_MATRIX (C macro)c.IIO_MOUNT_MATRIXhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hIIO_MOUNT_MATRIXh]j)}(hIIO_MOUNT_MATRIXh]j)}(hIIO_MOUNT_MATRIXh]j)}(hjh]hIIO_MOUNT_MATRIX}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j#macroeh"]h$]h&]j j#j jj jj j j uh1jhhhjmhNhNubh)}(h$``IIO_MOUNT_MATRIX (_shared, _get)``h]h)}(hjh]h IIO_MOUNT_MATRIX (_shared, _get)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjmhhubj )}(h3Initialize mount matrix extended channel attribute h]h)}(h2Initialize mount matrix extended channel attributeh]h2Initialize mount matrix extended channel attribute}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjhKhjmhhubj )}(h**Parameters** ``_shared`` Whether the attribute is shared between all channels ``_get`` Pointer to an iio_get_mount_matrix_t accessorh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubjg )}(hhh](jl )}(hA``_shared`` Whether the attribute is shared between all channels h](jr )}(h ``_shared``h]h)}(hjh]h_shared}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h4Whether the attribute is shared between all channelsh]h4Whether the attribute is shared between all channels}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hKhj2ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hj1hKhjubjl )}(h6``_get`` Pointer to an iio_get_mount_matrix_t accessorh](jr )}(h``_get``h]h)}(hjUh]h_get}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjSubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjOubj )}(hhh]h)}(h-Pointer to an iio_get_mount_matrix_t accessorh]h-Pointer to an iio_get_mount_matrix_t accessor}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjkubah}(h]h ]h"]h$]h&]uh1j hjOubeh}(h]h ]h"]h$]h&]uh1jk hjjhKhjubeh}(h]h ]h"]h$]h&]uh1jf hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_event_spec (C struct)c.iio_event_spechNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_event_spech]j)}(hstruct iio_event_spech](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hiio_event_spech]j)}(hjh]hiio_event_spec}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]h)}(h!specification for a channel eventh]h!specification for a channel event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j#structeh"]h$]h&]j j#j j j j j j j uh1jhhhjmhNhNubj )}(hXi**Definition**:: struct iio_event_spec { enum iio_event_type type; enum iio_event_direction dir; unsigned long mask_separate; unsigned long mask_shared_by_type; unsigned long mask_shared_by_dir; unsigned long mask_shared_by_all; }; **Members** ``type`` Type of the event ``dir`` Direction of the event ``mask_separate`` Bit mask of enum iio_event_info values. Attributes set in this mask will be registered per channel. ``mask_shared_by_type`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type. ``mask_shared_by_dir`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type and direction. ``mask_shared_by_all`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by all channels.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubj)}(hstruct iio_event_spec { enum iio_event_type type; enum iio_event_direction dir; unsigned long mask_separate; unsigned long mask_shared_by_type; unsigned long mask_shared_by_dir; unsigned long mask_shared_by_all; };h]hstruct iio_event_spec { enum iio_event_type type; enum iio_event_direction dir; unsigned long mask_separate; unsigned long mask_shared_by_type; unsigned long mask_shared_by_dir; unsigned long mask_shared_by_all; };}hj.sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubh)}(h **Members**h]j)}(hj?h]hMembers}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubjg )}(hhh](jl )}(h``type`` Type of the event h](jr )}(h``type``h]h)}(hj^h]htype}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjXubj )}(hhh]h)}(hType of the eventh]hType of the event}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshKhjtubah}(h]h ]h"]h$]h&]uh1j hjXubeh}(h]h ]h"]h$]h&]uh1jk hjshKhjUubjl )}(h``dir`` Direction of the event h](jr )}(h``dir``h]h)}(hjh]hdir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hDirection of the eventh]hDirection of the event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjUubjl )}(hv``mask_separate`` Bit mask of enum iio_event_info values. Attributes set in this mask will be registered per channel. h](jr )}(h``mask_separate``h]h)}(hjh]h mask_separate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hcBit mask of enum iio_event_info values. Attributes set in this mask will be registered per channel.h]hcBit mask of enum iio_event_info values. Attributes set in this mask will be registered per channel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjUubjl )}(h|``mask_shared_by_type`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type. h](jr )}(h``mask_shared_by_type``h]h)}(hj h]hmask_shared_by_type}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hcBit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type.h]hcBit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjUubjl )}(h``mask_shared_by_dir`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type and direction. h](jr )}(h``mask_shared_by_dir``h]h)}(hjDh]hmask_shared_by_dir}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj>ubj )}(hhh]h)}(hqBit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type and direction.h]hqBit mask of enum iio_event_info values. Attributes set in this mask will be shared by channel type and direction.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjZubah}(h]h ]h"]h$]h&]uh1j hj>ubeh}(h]h ]h"]h$]h&]uh1jk hjYhKhjUubjl )}(hz``mask_shared_by_all`` Bit mask of enum iio_event_info values. Attributes set in this mask will be shared by all channels.h](jr )}(h``mask_shared_by_all``h]h)}(hj~h]hmask_shared_by_all}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjxubj )}(hhh]h)}(hcBit mask of enum iio_event_info values. Attributes set in this mask will be shared by all channels.h]hcBit mask of enum iio_event_info values. Attributes set in this mask will be shared by all channels.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjxubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjUubeh}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_scan_type (C struct)c.iio_scan_typehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h iio_scan_typeh]j)}(hstruct iio_scan_typeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(h iio_scan_typeh]j)}(hjh]h iio_scan_type}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]h)}(h/specification for channel data format in bufferh]h/specification for channel data format in buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j#structeh"]h$]h&]j j#j j1j j1j j j uh1jhhhjmhNhNubj )}(hXw**Definition**:: struct iio_scan_type { char sign; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; }; **Members** ``sign`` 's' or 'u' to specify signed or unsigned ``realbits`` Number of valid bits of data ``storagebits`` Realbits + padding ``shift`` Shift right by this before masking out realbits. ``repeat`` Number of times real/storage bits repeats. When the repeat element is more than 1, then the type element in sysfs will show a repeat value. Otherwise, the number of repetitions is omitted. ``endianness`` little or big endianh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubh:}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj5ubj)}(hstruct iio_scan_type { char sign; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; };h]hstruct iio_scan_type { char sign; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; };}hjVsbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj5ubh)}(h **Members**h]j)}(hjgh]hMembers}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj5ubjg )}(hhh](jl )}(h2``sign`` 's' or 'u' to specify signed or unsigned h](jr )}(h``sign``h]h)}(hjh]hsign}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h('s' or 'u' to specify signed or unsignedh]h0‘s’ or ‘u’ to specify signed or unsigned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhj}ubjl )}(h*``realbits`` Number of valid bits of data h](jr )}(h ``realbits``h]h)}(hjh]hrealbits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hNumber of valid bits of datah]hNumber of valid bits of data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhj}ubjl )}(h#``storagebits`` Realbits + padding h](jr )}(h``storagebits``h]h)}(hjh]h storagebits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hRealbits + paddingh]hRealbits + padding}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hj hKhj}ubjl )}(h;``shift`` Shift right by this before masking out realbits. h](jr )}(h ``shift``h]h)}(hj1h]hshift}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj+ubj )}(hhh]h)}(h0Shift right by this before masking out realbits.h]h0Shift right by this before masking out realbits.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhKhjGubah}(h]h ]h"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]uh1jk hjFhKhj}ubjl )}(h``repeat`` Number of times real/storage bits repeats. When the repeat element is more than 1, then the type element in sysfs will show a repeat value. Otherwise, the number of repetitions is omitted. h](jr )}(h ``repeat``h]h)}(hjjh]hrepeat}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjdubj )}(hhh]h)}(hNumber of times real/storage bits repeats. When the repeat element is more than 1, then the type element in sysfs will show a repeat value. Otherwise, the number of repetitions is omitted.h]hNumber of times real/storage bits repeats. When the repeat element is more than 1, then the type element in sysfs will show a repeat value. Otherwise, the number of repetitions is omitted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjdubeh}(h]h ]h"]h$]h&]uh1jk hjhKhj}ubjl )}(h#``endianness`` little or big endianh](jr )}(h``endianness``h]h)}(hjh]h endianness}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hlittle or big endianh]hlittle or big endian}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhj}ubeh}(h]h ]h"]h$]h&]uh1jf hj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_chan_spec (C struct)c.iio_chan_spechNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h iio_chan_spech]j)}(hstruct iio_chan_spech](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hKubj)}(h iio_chan_spech]j)}(hjh]h iio_chan_spec}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj hKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj hKhjhhubj)}(hhh]h)}(h!specification of a single channelh]h!specification of a single channel}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj=hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj hKubeh}(h]h ](j#structeh"]h$]h&]j j#j jXj jXj j j uh1jhhhjmhNhNubj )}(hX**Definition**:: struct iio_chan_spec { enum iio_chan_type type; int channel; int channel2; unsigned long address; int scan_index; union { struct iio_scan_type scan_type; struct { const struct iio_scan_type *ext_scan_type; unsigned int num_ext_scan_type; }; }; long info_mask_separate; long info_mask_separate_available; long info_mask_shared_by_type; long info_mask_shared_by_type_available; long info_mask_shared_by_dir; long info_mask_shared_by_dir_available; long info_mask_shared_by_all; long info_mask_shared_by_all_available; const struct iio_event_spec *event_spec; unsigned int num_event_specs; const struct iio_chan_spec_ext_info *ext_info; const char *extend_name; const char *datasheet_name; unsigned int modified:1; unsigned int indexed:1; unsigned int output:1; unsigned int differential:1; unsigned int has_ext_scan_type:1; }; **Members** ``type`` What type of measurement is the channel making. ``channel`` What number do we wish to assign the channel. ``channel2`` If there is a second number for a differential channel then this is it. If modified is set then the value here specifies the modifier. ``address`` Driver specific identifier. ``scan_index`` Monotonic index to give ordering in scans when read from a buffer. ``{unnamed_union}`` anonymous ``scan_type`` struct describing the scan type - mutually exclusive with ext_scan_type. ``{unnamed_struct}`` anonymous ``ext_scan_type`` Used in rare cases where there is more than one scan format for a channel. When this is used, the flag has_ext_scan_type must be set and the driver must implement get_current_scan_type in struct iio_info. ``num_ext_scan_type`` Number of elements in ext_scan_type. ``info_mask_separate`` What information is to be exported that is specific to this channel. ``info_mask_separate_available`` What availability information is to be exported that is specific to this channel. ``info_mask_shared_by_type`` What information is to be exported that is shared by all channels of the same type. ``info_mask_shared_by_type_available`` What availability information is to be exported that is shared by all channels of the same type. ``info_mask_shared_by_dir`` What information is to be exported that is shared by all channels of the same direction. ``info_mask_shared_by_dir_available`` What availability information is to be exported that is shared by all channels of the same direction. ``info_mask_shared_by_all`` What information is to be exported that is shared by all channels. ``info_mask_shared_by_all_available`` What availability information is to be exported that is shared by all channels. ``event_spec`` Array of events which should be registered for this channel. ``num_event_specs`` Size of the event_spec array. ``ext_info`` Array of extended info attributes for this channel. The array is NULL terminated, the last element should have its name field set to NULL. ``extend_name`` Allows labeling of channel attributes with an informative name. Note this has no effect codes etc, unlike modifiers. This field is deprecated in favour of providing iio_info->read_label() to override the label, which unlike **extend_name** does not affect sysfs filenames. ``datasheet_name`` A name used in in-kernel mapping of channels. It should correspond to the first name that the channel is referred to by in the datasheet (e.g. IND), or the nearest possible compound name (e.g. IND-INC). ``modified`` Does a modifier apply to this channel. What these are depends on the channel type. Modifier is set in channel2. Examples are IIO_MOD_X for axial sensors about the 'x' axis. ``indexed`` Specify the channel has a numerical index. If not, the channel index number will be suppressed for sysfs attributes but not for event codes. ``output`` Channel is output. ``differential`` Channel is differential. ``has_ext_scan_type`` True if ext_scan_type is used instead of scan_type.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh:}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj\ubj)}(hX7struct 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; }; }; long info_mask_separate; long info_mask_separate_available; long info_mask_shared_by_type; long info_mask_shared_by_type_available; long info_mask_shared_by_dir; long info_mask_shared_by_dir_available; long info_mask_shared_by_all; 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]hX7struct 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; }; }; long info_mask_separate; long info_mask_separate_available; long info_mask_shared_by_type; long info_mask_shared_by_type_available; long info_mask_shared_by_dir; long info_mask_shared_by_dir_available; long info_mask_shared_by_all; long info_mask_shared_by_all_available; const struct iio_event_spec *event_spec; unsigned int num_event_specs; const struct iio_chan_spec_ext_info *ext_info; const char *extend_name; const char *datasheet_name; unsigned int modified:1; unsigned int indexed:1; unsigned int output:1; unsigned int differential:1; unsigned int has_ext_scan_type:1; };}hj}sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj\ubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj\ubjg )}(hhh](jl )}(h9``type`` What type of measurement is the channel making. h](jr )}(h``type``h]h)}(hjh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h/What type of measurement is the channel making.h]h/What type of measurement is the channel making.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h:``channel`` What number do we wish to assign the channel. h](jr )}(h ``channel``h]h)}(hjh]hchannel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h-What number do we wish to assign the channel.h]h-What number do we wish to assign the channel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``channel2`` If there is a second number for a differential channel then this is it. If modified is set then the value here specifies the modifier. h](jr )}(h ``channel2``h]h)}(hjh]hchannel2}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hIf there is a second number for a differential channel then this is it. If modified is set then the value here specifies the modifier.h]hIf there is a second number for a differential channel then this is it. If modified is set then the value here specifies the modifier.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj5ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hj4hKhjubjl )}(h(``address`` Driver specific identifier. h](jr )}(h ``address``h]h)}(hjYh]haddress}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjSubj )}(hhh]h)}(hDriver specific identifier.h]hDriver specific identifier.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhKhjoubah}(h]h ]h"]h$]h&]uh1j hjSubeh}(h]h ]h"]h$]h&]uh1jk hjnhKhjubjl )}(hR``scan_index`` Monotonic index to give ordering in scans when read from a buffer. h](jr )}(h``scan_index``h]h)}(hjh]h scan_index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hBMonotonic index to give ordering in scans when read from a buffer.h]hBMonotonic index to give ordering in scans when read from a buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``{unnamed_union}`` anonymous h](jr )}(h``{unnamed_union}``h]h)}(hjh]h{unnamed_union}}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h anonymoush]h anonymous}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(hW``scan_type`` struct describing the scan type - mutually exclusive with ext_scan_type. h](jr )}(h ``scan_type``h]h)}(hjh]h scan_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hHstruct describing the scan type - mutually exclusive with ext_scan_type.h]hHstruct describing the scan type - mutually exclusive with ext_scan_type.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``{unnamed_struct}`` anonymous h](jr )}(h``{unnamed_struct}``h]h)}(hj?h]h{unnamed_struct}}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj9ubj )}(hhh]h)}(h anonymoush]h anonymous}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThKhjUubah}(h]h ]h"]h$]h&]uh1j hj9ubeh}(h]h ]h"]h$]h&]uh1jk hjThKhjubjl )}(h``ext_scan_type`` Used in rare cases where there is more than one scan format for a channel. When this is used, the flag has_ext_scan_type must be set and the driver must implement get_current_scan_type in struct iio_info. h](jr )}(h``ext_scan_type``h]h)}(hjxh]h ext_scan_type}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjrubj )}(hhh]h)}(hUsed in rare cases where there is more than one scan format for a channel. When this is used, the flag has_ext_scan_type must be set and the driver must implement get_current_scan_type in struct iio_info.h]hUsed in rare cases where there is more than one scan format for a channel. When this is used, the flag has_ext_scan_type must be set and the driver must implement get_current_scan_type in struct iio_info.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjrubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h;``num_ext_scan_type`` Number of elements in ext_scan_type. h](jr )}(h``num_ext_scan_type``h]h)}(hjh]hnum_ext_scan_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h$Number of elements in ext_scan_type.h]h$Number of elements in ext_scan_type.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h\``info_mask_separate`` What information is to be exported that is specific to this channel. h](jr )}(h``info_mask_separate``h]h)}(hjh]hinfo_mask_separate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hDWhat information is to be exported that is specific to this channel.h]hDWhat information is to be exported that is specific to this channel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(hs``info_mask_separate_available`` What availability information is to be exported that is specific to this channel. h](jr )}(h ``info_mask_separate_available``h]h)}(hj%h]hinfo_mask_separate_available}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hQWhat availability information is to be exported that is specific to this channel.h]hQWhat availability information is to be exported that is specific to this channel.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj;ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hj:hKhjubjl )}(hq``info_mask_shared_by_type`` What information is to be exported that is shared by all channels of the same type. h](jr )}(h``info_mask_shared_by_type``h]h)}(hj_h]hinfo_mask_shared_by_type}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjYubj )}(hhh]h)}(hSWhat information is to be exported that is shared by all channels of the same type.h]hSWhat information is to be exported that is shared by all channels of the same type.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjuubah}(h]h ]h"]h$]h&]uh1j hjYubeh}(h]h ]h"]h$]h&]uh1jk hjthKhjubjl )}(h``info_mask_shared_by_type_available`` What availability information is to be exported that is shared by all channels of the same type. h](jr )}(h&``info_mask_shared_by_type_available``h]h)}(hjh]h"info_mask_shared_by_type_available}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(h`What availability information is to be exported that is shared by all channels of the same type.h]h`What availability information is to be exported that is shared by all channels of the same type.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(hu``info_mask_shared_by_dir`` What information is to be exported that is shared by all channels of the same direction. h](jr )}(h``info_mask_shared_by_dir``h]h)}(hjh]hinfo_mask_shared_by_dir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hXWhat information is to be exported that is shared by all channels of the same direction.h]hXWhat information is to be exported that is shared by all channels of the same direction.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``info_mask_shared_by_dir_available`` What availability information is to be exported that is shared by all channels of the same direction. h](jr )}(h%``info_mask_shared_by_dir_available``h]h)}(hj h]h!info_mask_shared_by_dir_available}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(heWhat availability information is to be exported that is shared by all channels of the same direction.h]heWhat availability information is to be exported that is shared by all channels of the same direction.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj#ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hj"hKhjubjl )}(h_``info_mask_shared_by_all`` What information is to be exported that is shared by all channels. h](jr )}(h``info_mask_shared_by_all``h]h)}(hjGh]hinfo_mask_shared_by_all}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjAubj )}(hhh]h)}(hBWhat information is to be exported that is shared by all channels.h]hBWhat information is to be exported that is shared by all channels.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj]ubah}(h]h ]h"]h$]h&]uh1j hjAubeh}(h]h ]h"]h$]h&]uh1jk hj\hKhjubjl )}(hv``info_mask_shared_by_all_available`` What availability information is to be exported that is shared by all channels. h](jr )}(h%``info_mask_shared_by_all_available``h]h)}(hjh]h!info_mask_shared_by_all_available}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj{ubj )}(hhh]h)}(hOWhat availability information is to be exported that is shared by all channels.h]hOWhat availability information is to be exported that is shared by all channels.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hj{ubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(hL``event_spec`` Array of events which should be registered for this channel. h](jr )}(h``event_spec``h]h)}(hjh]h event_spec}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hread_label() to override the label, which unlike **extend_name** does not affect sysfs filenames. h](jr )}(h``extend_name``h]h)}(hjhh]h extend_name}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjbubj )}(hhh]h)}(hXAllows labeling of channel attributes with an informative name. Note this has no effect codes etc, unlike modifiers. This field is deprecated in favour of providing iio_info->read_label() to override the label, which unlike **extend_name** does not affect sysfs filenames.h](hAllows labeling of channel attributes with an informative name. Note this has no effect codes etc, unlike modifiers. This field is deprecated in favour of providing iio_info->read_label() to override the label, which unlike }(hjhhhNhNubj)}(h**extend_name**h]h extend_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh! does not affect sysfs filenames.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj~ubah}(h]h ]h"]h$]h&]uh1j hjbubeh}(h]h ]h"]h$]h&]uh1jk hj}hKhjubjl )}(h``datasheet_name`` A name used in in-kernel mapping of channels. It should correspond to the first name that the channel is referred to by in the datasheet (e.g. IND), or the nearest possible compound name (e.g. IND-INC). h](jr )}(h``datasheet_name``h]h)}(hjh]hdatasheet_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hA name used in in-kernel mapping of channels. It should correspond to the first name that the channel is referred to by in the datasheet (e.g. IND), or the nearest possible compound name (e.g. IND-INC).h]hA name used in in-kernel mapping of channels. It should correspond to the first name that the channel is referred to by in the datasheet (e.g. IND), or the nearest possible compound name (e.g. IND-INC).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``modified`` Does a modifier apply to this channel. What these are depends on the channel type. Modifier is set in channel2. Examples are IIO_MOD_X for axial sensors about the 'x' axis. h](jr )}(h ``modified``h]h)}(hjh]hmodified}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubj )}(hhh]h)}(hDoes a modifier apply to this channel. What these are depends on the channel type. Modifier is set in channel2. Examples are IIO_MOD_X for axial sensors about the 'x' axis.h]hDoes a modifier apply to this channel. What these are depends on the channel type. Modifier is set in channel2. Examples are IIO_MOD_X for axial sensors about the ‘x’ axis.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhKhjubjl )}(h``indexed`` Specify the channel has a numerical index. If not, the channel index number will be suppressed for sysfs attributes but not for event codes. h](jr )}(h ``indexed``h]h)}(hj(h]hindexed}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj"ubj )}(hhh]h)}(hSpecify the channel has a numerical index. If not, the channel index number will be suppressed for sysfs attributes but not for event codes.h]hSpecify the channel has a numerical index. If not, the channel index number will be suppressed for sysfs attributes but not for event codes.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhKhj>ubah}(h]h ]h"]h$]h&]uh1j hj"ubeh}(h]h ]h"]h$]h&]uh1jk hj=hKhjubjl )}(h``output`` Channel is output. h](jr )}(h ``output``h]h)}(hjbh]houtput}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj\ubj )}(hhh]h)}(hChannel is output.h]hChannel is output.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhMhjxubah}(h]h ]h"]h$]h&]uh1j hj\ubeh}(h]h ]h"]h$]h&]uh1jk hjwhMhjubjl )}(h*``differential`` Channel is differential. h](jr )}(h``differential``h]h)}(hjh]h differential}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubj )}(hhh]h)}(hChannel is differential.h]hChannel is differential.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhMhjubjl )}(hI``has_ext_scan_type`` True if ext_scan_type is used instead of scan_type.h](jr )}(h``has_ext_scan_type``h]h)}(hjh]hhas_ext_scan_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubj )}(hhh]h)}(h3True if ext_scan_type is used instead of scan_type.h]h3True if ext_scan_type is used instead of scan_type.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhMhjubeh}(h]h ]h"]h$]h&]uh1jf hj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!iio_channel_has_info (C function)c.iio_channel_has_infohNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hZbool iio_channel_has_info (const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h]j)}(hYbool iio_channel_has_info(const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h](hdesc_sig_keyword_type)}(hboolh]hbool}(hj0hhhNhNubah}(h]h ]ktah"]h$]h&]uh1j.hj*hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM-ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*hhhj?hM-ubj)}(hiio_channel_has_infoh]j)}(hiio_channel_has_infoh]hiio_channel_has_info}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ](jjeh"]h$]h&]jjuh1jhj*hhhj?hM-ubhdesc_parameterlist)}(h@(const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h](hdesc_parameter)}(h const struct iio_chan_spec *chanh](j)}(hconsth]hconst}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubh)}(hhh]j)}(h iio_chan_spech]h iio_chan_spec}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj#reftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjTsbc.iio_channel_has_infoasbuh1hhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubhdesc_sig_punctuation)}(hjh]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjnubj)}(hchanh]hchan}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjhubjm)}(henum iio_chan_info_enum typeh](j)}(henumh]henum}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hiio_chan_info_enumh]hiio_chan_info_enum}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj,modnameN classnameNjj)}j]jc.iio_channel_has_infoasbuh1hhjubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htypeh]htype}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjhubeh}(h]h ]h"]h$]h&]jjuh1jfhj*hhhj?hM-ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj&hhhj?hM-ubah}(h]j!ah ](jjeh"]h$]h&]jj)jhuh1jhj?hM-hj#hhubj)}(hhh]h)}(h2Checks whether a channel supports a info attributeh]h2Checks whether a channel supports a info attribute}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM&hj}hhubah}(h]h ]h"]h$]h&]uh1jhj#hhhj?hM-ubeh}(h]h ](j#functioneh"]h$]h&]j j#j jj jj j j uh1jhhhjmhNhNubj )}(hX**Parameters** ``const struct iio_chan_spec *chan`` The channel to be queried ``enum iio_chan_info_enum type`` Type of the info attribute to be checked **Description** Returns true if the channels supports reporting values for the given info attribute type, false otherwise.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM*hjubjg )}(hhh](jl )}(h?``const struct iio_chan_spec *chan`` The channel to be queried h](jr )}(h$``const struct iio_chan_spec *chan``h]h)}(hjh]h const struct iio_chan_spec *chan}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM'hjubj )}(hhh]h)}(hThe channel to be queriedh]hThe channel to be queried}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM'hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhM'hjubjl )}(hJ``enum iio_chan_info_enum type`` Type of the info attribute to be checked h](jr )}(h ``enum iio_chan_info_enum type``h]h)}(hjh]henum iio_chan_info_enum type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM(hjubj )}(hhh]h)}(h(Type of the info attribute to be checkedh]h(Type of the info attribute to be checked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM(hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jk hjhM(hjubeh}(h]h ]h"]h$]h&]uh1jf hjubh)}(h**Description**h]j)}(hj5h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM*hjubh)}(hjReturns true if the channels supports reporting values for the given info attribute type, false otherwise.h]hjReturns true if the channels supports reporting values for the given info attribute type, false otherwise.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM*hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&iio_channel_has_available (C function)c.iio_channel_has_availablehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h_bool iio_channel_has_available (const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h]j)}(h^bool iio_channel_has_available(const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h](j/)}(hj2h]hbool}(hjzhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjvhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM>ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvhhhjhM>ubj)}(hiio_channel_has_availableh]j)}(hiio_channel_has_availableh]hiio_channel_has_available}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjvhhhjhM>ubjg)}(h@(const struct iio_chan_spec *chan, enum iio_chan_info_enum type)h](jm)}(h const struct iio_chan_spec *chanh](j)}(hjth]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h iio_chan_spech]h iio_chan_spec}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.iio_channel_has_availableasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hchanh]hchan}(hj* hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjubjm)}(henum iio_chan_info_enum typeh](j)}(hj h]henum}(hjC hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj? ubj)}(h h]h }(hjP hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj? ubh)}(hhh]j)}(hiio_chan_info_enumh]hiio_chan_info_enum}(hja hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjc modnameN classnameNjj)}j]j c.iio_channel_has_availableasbuh1hhj? ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj? ubj)}(htypeh]htype}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj? ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjubeh}(h]h ]h"]h$]h&]jjuh1jfhjvhhhjhM>ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjrhhhjhM>ubah}(h]jmah ](jjeh"]h$]h&]jj)jhuh1jhjhM>hjohhubj)}(hhh]h)}(h.Checks if a channel has an available attributeh]h.Checks if a channel has an available attribute}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM7hj hhubah}(h]h ]h"]h$]h&]uh1jhjohhhjhM>ubeh}(h]h ](j#functioneh"]h$]h&]j j#j j j j j j j uh1jhhhjmhNhNubj )}(hX#**Parameters** ``const struct iio_chan_spec *chan`` The channel to be queried ``enum iio_chan_info_enum type`` Type of the available attribute to be checked **Description** Returns true if the channel supports reporting available values for the given attribute type, false otherwise.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM;hj ubjg )}(hhh](jl )}(h?``const struct iio_chan_spec *chan`` The channel to be queried h](jr )}(h$``const struct iio_chan_spec *chan``h]h)}(hj h]h const struct iio_chan_spec *chan}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM8hj ubj )}(hhh]h)}(hThe channel to be queriedh]hThe channel to be queried}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj !hM8hj!ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jk hj !hM8hj ubjl )}(hO``enum iio_chan_info_enum type`` Type of the available attribute to be checked h](jr )}(h ``enum iio_chan_info_enum type``h]h)}(hj1!h]henum iio_chan_info_enum type}(hj3!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/!ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM9hj+!ubj )}(hhh]h)}(h-Type of the available attribute to be checkedh]h-Type of the available attribute to be checked}(hjJ!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjF!hM9hjG!ubah}(h]h ]h"]h$]h&]uh1j hj+!ubeh}(h]h ]h"]h$]h&]uh1jk hjF!hM9hj ubeh}(h]h ]h"]h$]h&]uh1jf hj ubh)}(h**Description**h]j)}(hjl!h]h Description}(hjn!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj!ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM;hj ubh)}(hnReturns true if the channel supports reporting available values for the given attribute type, false otherwise.h]hnReturns true if the channel supports reporting available values for the given attribute type, false otherwise.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM;hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_info (C struct) c.iio_infohNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_infoh]j)}(hstruct iio_infoh](j)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMAubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj!hMAubj)}(hiio_infoh]j)}(hj!h]hiio_info}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj!hhhj!hMAubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj!hhhj!hMAubah}(h]j!ah ](jjeh"]h$]h&]jj)jhuh1jhj!hMAhj!hhubj)}(hhh]h)}(h!constant information about deviceh]h!constant information about device}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj!hhubah}(h]h ]h"]h$]h&]uh1jhj!hhhj!hMAubeh}(h]h ](j#structeh"]h$]h&]j j#j j "j j "j j j uh1jhhhjmhNhNubj )}(hXN**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&]uh1jhj"ubh:}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubj)}(hXstruct 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]hXstruct iio_info { const struct attribute_group *event_attrs; const struct attribute_group *attrs; int (*read_raw)(struct iio_dev *indio_dev,struct iio_chan_spec const *chan,int *val,int *val2, long mask); int (*read_raw_multi)(struct iio_dev *indio_dev,struct iio_chan_spec const *chan,int max_len,int *vals,int *val_len, long mask); int (*read_avail)(struct iio_dev *indio_dev,struct iio_chan_spec const *chan,const int **vals,int *type,int *length, long mask); int (*write_raw)(struct iio_dev *indio_dev,struct iio_chan_spec const *chan,int val,int val2, long mask); int (*read_label)(struct iio_dev *indio_dev,struct iio_chan_spec const *chan, char *label); int (*write_raw_get_fmt)(struct iio_dev *indio_dev,struct iio_chan_spec const *chan, long mask); int (*read_event_config)(struct iio_dev *indio_dev,const struct iio_chan_spec *chan,enum iio_event_type type, enum iio_event_direction dir); int (*write_event_config)(struct iio_dev *indio_dev,const struct iio_chan_spec *chan,enum iio_event_type type,enum iio_event_direction dir, bool state); int (*read_event_value)(struct iio_dev *indio_dev,const struct iio_chan_spec *chan,enum iio_event_type type,enum iio_event_direction dir, enum iio_event_info info, int *val, int *val2); int (*write_event_value)(struct iio_dev *indio_dev,const struct iio_chan_spec *chan,enum iio_event_type type,enum iio_event_direction dir, enum iio_event_info info, int val, int val2); int (*read_event_label)(struct iio_dev *indio_dev,struct iio_chan_spec const *chan,enum iio_event_type type,enum iio_event_direction dir, char *label); int (*validate_trigger)(struct iio_dev *indio_dev, struct iio_trigger *trig); int (*get_current_scan_type)(const struct iio_dev *indio_dev, const struct iio_chan_spec *chan); int (*update_scan_mode)(struct iio_dev *indio_dev, const unsigned long *scan_mask); int (*debugfs_reg_access)(struct iio_dev *indio_dev,unsigned int reg, unsigned int writeval, unsigned int *readval); int (*fwnode_xlate)(struct iio_dev *indio_dev, const struct fwnode_reference_args *iiospec); int (*hwfifo_set_watermark)(struct iio_dev *indio_dev, unsigned int val); int (*hwfifo_flush_to_buffer)(struct iio_dev *indio_dev, unsigned int count); };}hj0"sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubh)}(h **Members**h]j)}(hjA"h]hMembers}(hjC"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?"ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubjg )}(hhh](jl )}(h)``event_attrs`` event control attributes h](jr )}(h``event_attrs``h]h)}(hj`"h]h event_attrs}(hjb"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^"ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjZ"ubj )}(hhh]h)}(hevent control attributesh]hevent control attributes}(hjy"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhju"hMhjv"ubah}(h]h ]h"]h$]h&]uh1j hjZ"ubeh}(h]h ]h"]h$]h&]uh1jk hju"hMhjW"ubjl )}(h,``attrs`` general purpose device attributes h](jr )}(h ``attrs``h]h)}(hj"h]hattrs}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubj )}(hhh]h)}(h!general purpose device attributesh]h!general purpose device attributes}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hMhj"ubah}(h]h ]h"]h$]h&]uh1j hj"ubeh}(h]h ]h"]h$]h&]uh1jk hj"hMhjW"ubjl )}(hX``read_raw`` function to request a value from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. val and val2 will contain the elements making up the returned value. h](jr )}(h ``read_raw``h]h)}(hj"h]hread_raw}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubj )}(hhh]h)}(hXfunction to request a value from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. val and val2 will contain the elements making up the returned value.h]hXfunction to request a value from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. val and val2 will contain the elements making up the returned value.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"ubah}(h]h ]h"]h$]h&]uh1j hj"ubeh}(h]h ]h"]h$]h&]uh1jk hj"hMhjW"ubjl )}(hX``read_raw_multi`` function to return values from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. vals pointer contain the elements making up the returned value. max_len specifies maximum number of elements vals pointer can contain. val_len is used to return length of valid elements in vals. h](jr )}(h``read_raw_multi``h]h)}(hj #h]hread_raw_multi}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj #ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#ubj )}(hhh]h)}(hXfunction to return values from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. vals pointer contain the elements making up the returned value. max_len specifies maximum number of elements vals pointer can contain. val_len is used to return length of valid elements in vals.h]hXfunction to return values from the device. mask specifies which value. Note 0 means a reading of the channel in question. Return value will specify the type of value returned by the device. vals pointer contain the elements making up the returned value. max_len specifies maximum number of elements vals pointer can contain. val_len is used to return length of valid elements in vals.}(hj%#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj"#ubah}(h]h ]h"]h$]h&]uh1j hj#ubeh}(h]h ]h"]h$]h&]uh1jk hj!#hMhjW"ubjl )}(hX``read_avail`` function to return the available values from the device. mask specifies which value. Note 0 means the available values for the channel in question. Return value specifies if a IIO_AVAIL_LIST or a IIO_AVAIL_RANGE is returned in vals. The type of the vals are returned in type and the number of vals is returned in length. For ranges, there are always three vals returned; min, step and max. For lists, all possible values are enumerated. h](jr )}(h``read_avail``h]h)}(hjF#h]h read_avail}(hjH#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjD#ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj@#ubj )}(hhh]h)}(hXfunction to return the available values from the device. mask specifies which value. Note 0 means the available values for the channel in question. Return value specifies if a IIO_AVAIL_LIST or a IIO_AVAIL_RANGE is returned in vals. The type of the vals are returned in type and the number of vals is returned in length. For ranges, there are always three vals returned; min, step and max. For lists, all possible values are enumerated.h]hXfunction to return the available values from the device. mask specifies which value. Note 0 means the available values for the channel in question. Return value specifies if a IIO_AVAIL_LIST or a IIO_AVAIL_RANGE is returned in vals. The type of the vals are returned in type and the number of vals is returned in length. For ranges, there are always three vals returned; min, step and max. For lists, all possible values are enumerated.}(hj_#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj\#ubah}(h]h ]h"]h$]h&]uh1j hj@#ubeh}(h]h ]h"]h$]h&]uh1jk hj[#hMhjW"ubjl )}(h```write_raw`` function to write a value to the device. Parameters are the same as for read_raw. h](jr )}(h ``write_raw``h]h)}(hj#h]h write_raw}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~#ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjz#ubj )}(hhh]h)}(hQfunction to write a value to the device. Parameters are the same as for read_raw.h]hQfunction to write a value to the device. Parameters are the same as for read_raw.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#ubah}(h]h ]h"]h$]h&]uh1j hjz#ubeh}(h]h ]h"]h$]h&]uh1jk hj#hMhjW"ubjl )}(hh``read_label`` function to request label name for a specified label, for better channel identification. h](jr )}(h``read_label``h]h)}(hj#h]h read_label}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#ubj )}(hhh]h)}(hXfunction to request label name for a specified label, for better channel identification.h]hXfunction to request label name for a specified label, for better channel identification.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#ubah}(h]h ]h"]h$]h&]uh1j hj#ubeh}(h]h ]h"]h$]h&]uh1jk hj#hMhjW"ubjl )}(h``write_raw_get_fmt`` callback function to query the expected format/precision. If not set by the driver, write_raw returns IIO_VAL_INT_PLUS_MICRO. h](jr )}(h``write_raw_get_fmt``h]h)}(hj#h]hwrite_raw_get_fmt}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#ubj )}(hhh]h)}(h}callback function to query the expected format/precision. If not set by the driver, write_raw returns IIO_VAL_INT_PLUS_MICRO.h]h}callback function to query the expected format/precision. If not set by the driver, write_raw returns IIO_VAL_INT_PLUS_MICRO.}(hj $hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj $ubah}(h]h ]h"]h$]h&]uh1j hj#ubeh}(h]h ]h"]h$]h&]uh1jk hj $hMhjW"ubjl )}(h8``read_event_config`` find out if the event is enabled. h](jr )}(h``read_event_config``h]h)}(hj.$h]hread_event_config}(hj0$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,$ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj($ubj )}(hhh]h)}(h!find out if the event is enabled.h]h!find out if the event is enabled.}(hjG$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjC$hMhjD$ubah}(h]h ]h"]h$]h&]uh1j hj($ubeh}(h]h ]h"]h$]h&]uh1jk hjC$hMhjW"ubjl )}(h4``write_event_config`` set if the event is enabled. h](jr )}(h``write_event_config``h]h)}(hjg$h]hwrite_event_config}(hji$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje$ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhja$ubj )}(hhh]h)}(hset if the event is enabled.h]hset if the event is enabled.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|$hMhj}$ubah}(h]h ]h"]h$]h&]uh1j hja$ubeh}(h]h ]h"]h$]h&]uh1jk hj|$hMhjW"ubjl )}(hK``read_event_value`` read a configuration value associated with the event. h](jr )}(h``read_event_value``h]h)}(hj$h]hread_event_value}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj$ubj )}(hhh]h)}(h5read a configuration value associated with the event.h]h5read a configuration value associated with the event.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hMhj$ubah}(h]h ]h"]h$]h&]uh1j hj$ubeh}(h]h ]h"]h$]h&]uh1jk hj$hMhjW"ubjl )}(hA``write_event_value`` write a configuration value for the event. h](jr )}(h``write_event_value``h]h)}(hj$h]hwrite_event_value}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj$ubj )}(hhh]h)}(h*write a configuration value for the event.h]h*write a configuration value for the event.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hMhj$ubah}(h]h ]h"]h$]h&]uh1j hj$ubeh}(h]h ]h"]h$]h&]uh1jk hj$hMhjW"ubjl )}(hl``read_event_label`` function to request label name for a specified label, for better event identification. h](jr )}(h``read_event_label``h]h)}(hj%h]hread_event_label}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj %ubj )}(hhh]h)}(hVfunction to request label name for a specified label, for better event identification.h]hVfunction to request label name for a specified label, for better event identification.}(hj+%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj(%ubah}(h]h ]h"]h$]h&]uh1j hj %ubeh}(h]h ]h"]h$]h&]uh1jk hj'%hMhjW"ubjl )}(h]``validate_trigger`` function to validate the trigger when the current trigger gets changed. h](jr )}(h``validate_trigger``h]h)}(hjL%h]hvalidate_trigger}(hjN%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJ%ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjF%ubj )}(hhh]h)}(hGfunction to validate the trigger when the current trigger gets changed.h]hGfunction to validate the trigger when the current trigger gets changed.}(hje%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb%ubah}(h]h ]h"]h$]h&]uh1j hjF%ubeh}(h]h ]h"]h$]h&]uh1jk hja%hMhjW"ubjl )}(h``get_current_scan_type`` must be implemented by drivers that use ext_scan_type in the channel spec to return the index of the currently active ext_scan type for a channel. h](jr )}(h``get_current_scan_type``h]h)}(hj%h]hget_current_scan_type}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubj )}(hhh]h)}(hmust be implemented by drivers that use ext_scan_type in the channel spec to return the index of the currently active ext_scan type for a channel.h]hmust be implemented by drivers that use ext_scan_type in the channel spec to return the index of the currently active ext_scan type for a channel.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubah}(h]h ]h"]h$]h&]uh1j hj%ubeh}(h]h ]h"]h$]h&]uh1jk hj%hMhjW"ubjl )}(h]``update_scan_mode`` function to configure device and scan buffer when channels have changed h](jr )}(h``update_scan_mode``h]h)}(hj%h]hupdate_scan_mode}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubj )}(hhh]h)}(hGfunction to configure device and scan buffer when channels have changedh]hGfunction to configure device and scan buffer when channels have changed}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubah}(h]h ]h"]h$]h&]uh1j hj%ubeh}(h]h ]h"]h$]h&]uh1jk hj%hMhjW"ubjl )}(hJ``debugfs_reg_access`` function to read or write register value of device h](jr )}(h``debugfs_reg_access``h]h)}(hj%h]hdebugfs_reg_access}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj%ubj )}(hhh]h)}(h2function to read or write register value of deviceh]h2function to read or write register value of device}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hMhj&ubah}(h]h ]h"]h$]h&]uh1j hj%ubeh}(h]h ]h"]h$]h&]uh1jk hj&hMhjW"ubjl )}(hR``fwnode_xlate`` fwnode based function pointer to obtain channel specifier index. h](jr )}(h``fwnode_xlate``h]h)}(hj3&h]h fwnode_xlate}(hj5&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1&ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj-&ubj )}(hhh]h)}(h@fwnode based function pointer to obtain channel specifier index.h]h@fwnode based function pointer to obtain channel specifier index.}(hjL&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH&hMhjI&ubah}(h]h ]h"]h$]h&]uh1j hj-&ubeh}(h]h ]h"]h$]h&]uh1jk hjH&hMhjW"ubjl )}(h``hwfifo_set_watermark`` function pointer to set the current hardware fifo watermark level; see hwfifo_* entries in Documentation/ABI/testing/sysfs-bus-iio for details on how the hardware fifo operates h](jr )}(h``hwfifo_set_watermark``h]h)}(hjl&h]hhwfifo_set_watermark}(hjn&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj&ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjf&ubj )}(hhh]h)}(hfunction pointer to set the current hardware fifo watermark level; see hwfifo_* entries in Documentation/ABI/testing/sysfs-bus-iio for details on how the hardware fifo operatesh]hfunction pointer to set the current hardware fifo watermark level; see hwfifo_* entries in Documentation/ABI/testing/sysfs-bus-iio for details on how the hardware fifo operates}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj&ubah}(h]h ]h"]h$]h&]uh1j hjf&ubeh}(h]h ]h"]h$]h&]uh1jk hj&hMhjW"ubjl )}(hXE``hwfifo_flush_to_buffer`` function pointer to flush the samples stored in the hardware fifo to the device buffer. The driver should not flush more than count samples. The function must return the number of samples flushed, 0 if no samples were flushed or a negative integer if no samples were flushed and there was an error.h](jr )}(h``hwfifo_flush_to_buffer``h]h)}(hj&h]hhwfifo_flush_to_buffer}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj&ubj )}(hhh]h)}(hX*function pointer to flush the samples stored in the hardware fifo to the device buffer. The driver should not flush more than count samples. The function must return the number of samples flushed, 0 if no samples were flushed or a negative integer if no samples were flushed and there was an error.h]hX*function pointer to flush the samples stored in the hardware fifo to the device buffer. The driver should not flush more than count samples. The function must return the number of samples flushed, 0 if no samples were flushed or a negative integer if no samples were flushed and there was an error.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj&ubah}(h]h ]h"]h$]h&]uh1j hj&ubeh}(h]h ]h"]h$]h&]uh1jk hj&hMhjW"ubeh}(h]h ]h"]h$]h&]uh1jf hj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_buffer_setup_ops (C struct)c.iio_buffer_setup_opshNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_buffer_setup_opsh]j)}(hstruct iio_buffer_setup_opsh](j)}(hjh]hstruct}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&hhhj 'hMubj)}(hiio_buffer_setup_opsh]j)}(hj&h]hiio_buffer_setup_ops}(hj 'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj&hhhj 'hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj&hhhj 'hMubah}(h]j&ah ](jjeh"]h$]h&]jj)jhuh1jhj 'hMhj&hhubj)}(hhh]h)}(hbuffer setup related callbacksh]hbuffer setup related callbacks}(hjB'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM*hj?'hhubah}(h]h ]h"]h$]h&]uh1jhj&hhhj 'hMubeh}(h]h ](j#structeh"]h$]h&]j j#j jZ'j jZ'j j j uh1jhhhjmhNhNubj )}(hX**Definition**:: struct iio_buffer_setup_ops { int (*preenable)(struct iio_dev *); int (*postenable)(struct iio_dev *); int (*predisable)(struct iio_dev *); int (*postdisable)(struct iio_dev *); bool (*validate_scan_mask)(struct iio_dev *indio_dev, const unsigned long *scan_mask); }; **Members** ``preenable`` [DRIVER] function to run prior to marking buffer enabled ``postenable`` [DRIVER] function to run after marking buffer enabled ``predisable`` [DRIVER] function to run prior to marking buffer disabled ``postdisable`` [DRIVER] function to run after marking buffer disabled ``validate_scan_mask`` [DRIVER] function callback to check whether a given scan mask is valid for the device.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjf'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb'ubh:}(hjb'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM.hj^'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.hhM0hj^'ubh)}(h **Members**h]j)}(hj'h]hMembers}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM8hj^'ubjg )}(hhh](jl )}(hG``preenable`` [DRIVER] function to run prior to marking buffer enabled h](jr )}(h ``preenable``h]h)}(hj'h]h preenable}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM,hj'ubj )}(hhh]h)}(h8[DRIVER] function to run prior to marking buffer enabledh]h8[DRIVER] function to run prior to marking buffer enabled}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hM,hj'ubah}(h]h ]h"]h$]h&]uh1j hj'ubeh}(h]h ]h"]h$]h&]uh1jk hj'hM,hj'ubjl )}(hE``postenable`` [DRIVER] function to run after marking buffer enabled h](jr )}(h``postenable``h]h)}(hj'h]h postenable}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM-hj'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'hM-hj'ubah}(h]h ]h"]h$]h&]uh1j hj'ubeh}(h]h ]h"]h$]h&]uh1jk hj'hM-hj'ubjl )}(hI``predisable`` [DRIVER] function to run prior to marking buffer disabled h](jr )}(h``predisable``h]h)}(hj!(h]h predisable}(hj#(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM/hj(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.hhM.hj7(ubah}(h]h ]h"]h$]h&]uh1j hj(ubeh}(h]h ]h"]h$]h&]uh1jk hj6(hM/hj'ubjl )}(hG``postdisable`` [DRIVER] function to run after marking buffer disabled h](jr )}(h``postdisable``h]h)}(hj[(h]h postdisable}(hj](hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjY(ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM0hjU(ubj )}(hhh]h)}(h6[DRIVER] function to run after marking buffer disabledh]h6[DRIVER] function to run after marking buffer disabled}(hjt(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjp(hM0hjq(ubah}(h]h ]h"]h$]h&]uh1j hjU(ubeh}(h]h ]h"]h$]h&]uh1jk hjp(hM0hj'ubjl )}(hm``validate_scan_mask`` [DRIVER] function callback to check whether a given scan mask is valid for the device.h](jr )}(h``validate_scan_mask``h]h)}(hj(h]hvalidate_scan_mask}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM1hj(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(hM1hj(ubah}(h]h ]h"]h$]h&]uh1j hj(ubeh}(h]h ]h"]h$]h&]uh1jk hj(hM1hj'ubeh}(h]h ]h"]h$]h&]uh1jf hj^'ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_dev (C struct) c.iio_devhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_devh]j)}(hstruct iio_devh](j)}(hjh]hstruct}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM8ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhhj(hM8ubj)}(hiio_devh]j)}(hj(h]hiio_dev}(hj )hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj )ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj(hhhj(hM8ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj(hhhj(hM8ubah}(h]j(ah ](jjeh"]h$]h&]jj)jhuh1jhj(hM8hj(hhubj)}(hhh]h)}(hindustrial I/O deviceh]hindustrial I/O device}(hj/)hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM=hj,)hhubah}(h]h ]h"]h$]h&]uh1jhj(hhhj(hM8ubeh}(h]h ](j#structeh"]h$]h&]j j#j jG)j jG)j j j uh1jhhhjmhNhNubj )}(hXx **Definition**:: struct iio_dev { int modes; struct device dev; struct iio_buffer *buffer; int scan_bytes; const unsigned long *available_scan_masks; unsigned int __private masklength; const unsigned long *active_scan_mask; bool __private 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 *__private priv; }; **Members** ``modes`` [DRIVER] bitmask listing all the operating modes supported by the IIO device. This list should be initialized before registering the IIO device. It can also be filed up by the IIO core, as a result of enabling particular features in the driver (see iio_triggered_event_setup()). ``dev`` [DRIVER] device structure, should be assigned a parent and owner ``buffer`` [DRIVER] any buffer present ``scan_bytes`` [INTERN] num bytes captured to be fed to buffer demux ``available_scan_masks`` [DRIVER] optional array of allowed bitmasks. Sort the array in order of preference, the most preferred masks first. ``masklength`` [INTERN] the length of the mask established from channels ``active_scan_mask`` [INTERN] union of all scan masks requested by buffers ``scan_timestamp`` [INTERN] set if any buffers have requested timestamp ``trig`` [INTERN] current device trigger (buffer modes) ``pollfunc`` [DRIVER] function run on trigger being received ``pollfunc_event`` [DRIVER] function run on events trigger being received ``channels`` [DRIVER] channel specification structure table ``num_channels`` [DRIVER] number of channels specified in **channels**. ``name`` [DRIVER] name of the device. ``label`` [DRIVER] unique name to identify which device this is ``info`` [DRIVER] callbacks and constant info from driver ``setup_ops`` [DRIVER] callbacks to call before and after buffer enable/disable ``priv`` [DRIVER] reference to driver's private information **MUST** be accessed **ONLY** via iio_priv() helperh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjS)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO)ubh:}(hjO)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMAhjK)ubj)}(hXstruct iio_dev { int modes; struct device dev; struct iio_buffer *buffer; int scan_bytes; const unsigned long *available_scan_masks; unsigned int __private masklength; const unsigned long *active_scan_mask; bool __private 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 *__private priv; };h]hXstruct iio_dev { int modes; struct device dev; struct iio_buffer *buffer; int scan_bytes; const unsigned long *available_scan_masks; unsigned int __private masklength; const unsigned long *active_scan_mask; bool __private 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 *__private priv; };}hjl)sbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMChjK)ubh)}(h **Members**h]j)}(hj})h]hMembers}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{)ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMXhjK)ubjg )}(hhh](jl )}(hX!``modes`` [DRIVER] bitmask listing all the operating modes supported by the IIO device. This list should be initialized before registering the IIO device. It can also be filed up by the IIO core, as a result of enabling particular features in the driver (see iio_triggered_event_setup()). h](jr )}(h ``modes``h]h)}(hj)h]hmodes}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMDhj)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&]uh1jk hj)hMDhj)ubjl )}(hI``dev`` [DRIVER] device structure, should be assigned a parent and owner h](jr )}(h``dev``h]h)}(hj)h]hdev}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMFhj)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.hhMEhj)ubah}(h]h ]h"]h$]h&]uh1j hj)ubeh}(h]h ]h"]h$]h&]uh1jk hj)hMFhj)ubjl )}(h'``buffer`` [DRIVER] any buffer present h](jr )}(h ``buffer``h]h)}(hj*h]hbuffer}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMGhj *ubj )}(hhh]h)}(hRIVER] any buffer presenth]hRIVER] any buffer present}(hj)*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%*hMGhj&*ubah}(h]h ]h"]h$]h&]uh1j hj *ubeh}(h]h ]h"]h$]h&]uh1jk hj%*hMGhj)ubjl )}(hE``scan_bytes`` [INTERN] num bytes captured to be fed to buffer demux h](jr )}(h``scan_bytes``h]h)}(hjI*h]h scan_bytes}(hjK*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG*ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMHhjC*ubj )}(hhh]h)}(h5[INTERN] num bytes captured to be fed to buffer demuxh]h5[INTERN] num bytes captured to be fed to buffer demux}(hjb*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^*hMHhj_*ubah}(h]h ]h"]h$]h&]uh1j hjC*ubeh}(h]h ]h"]h$]h&]uh1jk hj^*hMHhj)ubjl )}(h``available_scan_masks`` [DRIVER] optional array of allowed bitmasks. Sort the array in order of preference, the most preferred masks first. h](jr )}(h``available_scan_masks``h]h)}(hj*h]havailable_scan_masks}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMKhj|*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.hhMIhj*ubah}(h]h ]h"]h$]h&]uh1j hj|*ubeh}(h]h ]h"]h$]h&]uh1jk hj*hMKhj)ubjl )}(hI``masklength`` [INTERN] the length of the mask established from channels h](jr )}(h``masklength``h]h)}(hj*h]h masklength}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMMhj*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.hhMLhj*ubah}(h]h ]h"]h$]h&]uh1j hj*ubeh}(h]h ]h"]h$]h&]uh1jk hj*hMMhj)ubjl )}(hK``active_scan_mask`` [INTERN] union of all scan masks requested by buffers h](jr )}(h``active_scan_mask``h]h)}(hj*h]hactive_scan_mask}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMNhj*ubj )}(hhh]h)}(h5[INTERN] union of all scan masks requested by buffersh]h5[INTERN] union of all scan masks requested by buffers}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj +hMNhj +ubah}(h]h ]h"]h$]h&]uh1j hj*ubeh}(h]h ]h"]h$]h&]uh1jk hj +hMNhj)ubjl )}(hH``scan_timestamp`` [INTERN] set if any buffers have requested timestamp h](jr )}(h``scan_timestamp``h]h)}(hj/+h]hscan_timestamp}(hj1+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-+ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMOhj)+ubj )}(hhh]h)}(h4[INTERN] set if any buffers have requested timestamph]h4[INTERN] set if any buffers have requested timestamp}(hjH+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjD+hMOhjE+ubah}(h]h ]h"]h$]h&]uh1j hj)+ubeh}(h]h ]h"]h$]h&]uh1jk hjD+hMOhj)ubjl )}(h8``trig`` [INTERN] current device trigger (buffer modes) h](jr )}(h``trig``h]h)}(hjh+h]htrig}(hjj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf+ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMPhjb+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}+hMPhj~+ubah}(h]h ]h"]h$]h&]uh1j hjb+ubeh}(h]h ]h"]h$]h&]uh1jk hj}+hMPhj)ubjl )}(h=``pollfunc`` [DRIVER] function run on trigger being received h](jr )}(h ``pollfunc``h]h)}(hj+h]hpollfunc}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMQhj+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+hMQhj+ubah}(h]h ]h"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]uh1jk hj+hMQhj)ubjl )}(hJ``pollfunc_event`` [DRIVER] function run on events trigger being received h](jr )}(h``pollfunc_event``h]h)}(hj+h]hpollfunc_event}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMRhj+ubj )}(hhh]h)}(h6[DRIVER] function run on events trigger being receivedh]h6[DRIVER] function run on events trigger being received}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hMRhj+ubah}(h]h ]h"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]uh1jk hj+hMRhj)ubjl )}(h<``channels`` [DRIVER] channel specification structure table h](jr )}(h ``channels``h]h)}(hj,h]hchannels}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMShj ,ubj )}(hhh]h)}(h.[DRIVER] channel specification structure tableh]h.[DRIVER] channel specification structure table}(hj,,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(,hMShj),ubah}(h]h ]h"]h$]h&]uh1j hj ,ubeh}(h]h ]h"]h$]h&]uh1jk hj(,hMShj)ubjl )}(hH``num_channels`` [DRIVER] number of channels specified in **channels**. h](jr )}(h``num_channels``h]h)}(hjL,h]h num_channels}(hjN,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJ,ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMThjF,ubj )}(hhh]h)}(h6[DRIVER] number of channels specified in **channels**.h](h)[DRIVER] number of channels specified in }(hje,hhhNhNubj)}(h **channels**h]hchannels}(hjm,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje,ubh.}(hje,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhja,hMThjb,ubah}(h]h ]h"]h$]h&]uh1j hjF,ubeh}(h]h ]h"]h$]h&]uh1jk hja,hMThj)ubjl )}(h&``name`` [DRIVER] name of the device. h](jr )}(h``name``h]h)}(hj,h]hname}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMUhj,ubj )}(hhh]h)}(h[DRIVER] name of the device.h]h[DRIVER] name of the device.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMUhj,ubah}(h]h ]h"]h$]h&]uh1j hj,ubeh}(h]h ]h"]h$]h&]uh1jk hj,hMUhj)ubjl )}(h@``label`` [DRIVER] unique name to identify which device this is h](jr )}(h ``label``h]h)}(hj,h]hlabel}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMVhj,ubj )}(hhh]h)}(h5[DRIVER] unique name to identify which device this ish]h5[DRIVER] unique name to identify which device this is}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMVhj,ubah}(h]h ]h"]h$]h&]uh1j hj,ubeh}(h]h ]h"]h$]h&]uh1jk hj,hMVhj)ubjl )}(h:``info`` [DRIVER] callbacks and constant info from driver h](jr )}(h``info``h]h)}(hj -h]hinfo}(hj -hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMWhj-ubj )}(hhh]h)}(h0[DRIVER] callbacks and constant info from driverh]h0[DRIVER] callbacks and constant info from driver}(hj"-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMWhj-ubah}(h]h ]h"]h$]h&]uh1j hj-ubeh}(h]h ]h"]h$]h&]uh1jk hj-hMWhj)ubjl )}(hP``setup_ops`` [DRIVER] callbacks to call before and after buffer enable/disable h](jr )}(h ``setup_ops``h]h)}(hjB-h]h setup_ops}(hjD-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@-ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMYhj<-ubj )}(hhh]h)}(hA[DRIVER] callbacks to call before and after buffer enable/disableh]hA[DRIVER] callbacks to call before and after buffer enable/disable}(hj[-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMXhjX-ubah}(h]h ]h"]h$]h&]uh1j hj<-ubeh}(h]h ]h"]h$]h&]uh1jk hjW-hMYhj)ubjl )}(ho``priv`` [DRIVER] reference to driver's private information **MUST** be accessed **ONLY** via iio_priv() helperh](jr )}(h``priv``h]h)}(hj|-h]hpriv}(hj~-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz-ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMZhjv-ubj )}(hhh]h)}(hf[DRIVER] reference to driver's private information **MUST** be accessed **ONLY** via iio_priv() helperh](h5[DRIVER] reference to driver’s private information }(hj-hhhNhNubj)}(h**MUST**h]hMUST}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubh be accessed }(hj-hhhNhNubj)}(h**ONLY**h]hONLY}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubh via iio_priv() helper}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hMZhj-ubah}(h]h ]h"]h$]h&]uh1j hjv-ubeh}(h]h ]h"]h$]h&]uh1jk hj-hMZhj)ubeh}(h]h ]h"]h$]h&]uh1jf hjK)ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_register (C macro)c.iio_device_registerhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_device_registerh]j)}(hiio_device_registerh]j)}(hiio_device_registerh]j)}(hj-h]hiio_device_register}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj-hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj-hhhj.hMubah}(h]j-ah ](jjeh"]h$]h&]jj)jhuh1jhj.hMhj-hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj-hhhj.hMubeh}(h]h ](j#macroeh"]h$]h&]j j#j j).j j).j j j uh1jhhhjmhNhNubh)}(h#``iio_device_register (indio_dev)``h]h)}(hj/.h]hiio_device_register (indio_dev)}(hj1.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-.ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(h)register a device with the IIO subsystem h]h)}(h(register a device with the IIO subsystemh]h(register a device with the IIO subsystem}(hjI.hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM}hjE.ubah}(h]h ]h"]h$]h&]uh1j hjW.hM}hjmhhubj )}(hL**Parameters** ``indio_dev`` Device structure filled by the device driverh](h)}(h**Parameters**h]j)}(hjd.h]h Parameters}(hjf.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb.ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj^.ubjg )}(hhh]jl )}(h:``indio_dev`` Device structure filled by the device driverh](jr )}(h ``indio_dev``h]h)}(hj.h]h indio_dev}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj}.ubj )}(hhh]h)}(h,Device structure filled by the device driverh]h,Device structure filled by the device driver}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM~hj.ubah}(h]h ]h"]h$]h&]uh1j hj}.ubeh}(h]h ]h"]h$]h&]uh1jk hj.hMhjz.ubah}(h]h ]h"]h$]h&]uh1jf hj^.ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devm_iio_device_register (C macro)c.devm_iio_device_registerhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hdevm_iio_device_registerh]j)}(hdevm_iio_device_registerh]j)}(hdevm_iio_device_registerh]j)}(hj.h]hdevm_iio_device_register}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj.hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj.hhhj.hMubah}(h]j.ah ](jjeh"]h$]h&]jj)jhuh1jhj.hMhj.hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj.hhhj.hMubeh}(h]h ](j#macroeh"]h$]h&]j j#j j /j j /j j j uh1jhhhjmhNhNubh)}(h-``devm_iio_device_register (dev, indio_dev)``h]h)}(hj/h]h)devm_iio_device_register (dev, indio_dev)}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(h'Resource-managed iio_device_register() h]h)}(h&Resource-managed iio_device_register()h]h&Resource-managed iio_device_register()}(hj-/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj)/ubah}(h]h ]h"]h$]h&]uh1j hj;/hMhjmhhubj )}(hX**Parameters** ``dev`` Device to allocate iio_dev for ``indio_dev`` Device structure filled by the device driver **Description** Managed iio_device_register. The IIO device registered with this function is automatically unregistered on driver detach. This function calls iio_device_register() internally. Refer to that function for more information. **Return** 0 on success, negative error number on failure.h](h)}(h**Parameters**h]j)}(hjH/h]h Parameters}(hjJ/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF/ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB/ubjg )}(hhh](jl )}(h'``dev`` Device to allocate iio_dev for h](jr )}(h``dev``h]h)}(hjg/h]hdev}(hji/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje/ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhja/ubj )}(hhh]h)}(hDevice to allocate iio_dev forh]hDevice to allocate iio_dev for}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|/hMhj}/ubah}(h]h ]h"]h$]h&]uh1j hja/ubeh}(h]h ]h"]h$]h&]uh1jk hj|/hMhj^/ubjl )}(h;``indio_dev`` Device structure filled by the device driver h](jr )}(h ``indio_dev``h]h)}(hj/h]h indio_dev}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj/ubj )}(hhh]h)}(h,Device structure filled by the device driverh]h,Device structure filled by the device driver}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1j hj/ubeh}(h]h ]h"]h$]h&]uh1jk hj/hMhj^/ubeh}(h]h ]h"]h$]h&]uh1jf hjB/ubh)}(h**Description**h]j)}(hj/h]h Description}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB/ubh)}(hManaged iio_device_register. The IIO device registered with this function is automatically unregistered on driver detach. This function calls iio_device_register() internally. Refer to that function for more information.h]hManaged iio_device_register. The IIO device registered with this function is automatically unregistered on driver detach. This function calls iio_device_register() internally. Refer to that function for more information.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB/ubh)}(h **Return**h]j)}(hj0h]hReturn}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB/ubh)}(h/0 on success, negative error number on failure.h]h/0 on success, negative error number on failure.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB/ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_put (C function)c.iio_device_puthNtauh1j~hjmhhhNhNubj)}(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}(hjG0hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjC0hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hjV0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC0hhhjU0hMubj)}(hiio_device_puth]j)}(hiio_device_puth]hiio_device_put}(hjh0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd0ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjC0hhhjU0hMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj0modnameN classnameNjj)}j]j)}jjj0sbc.iio_device_putasbuh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(h indio_devh]h indio_dev}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj|0ubah}(h]h ]h"]h$]h&]jjuh1jfhjC0hhhjU0hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj?0hhhjU0hMubah}(h]j:0ah ](jjeh"]h$]h&]jj)jhuh1jhjU0hMhj<0hhubj)}(hhh]h)}(h/reference counted deallocation of struct deviceh]h/reference counted deallocation of struct device}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj1hhubah}(h]h ]h"]h$]h&]uh1jhj<0hhhjU0hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j1j j1j j j uh1jhhhjmhNhNubj )}(hZ**Parameters** ``struct iio_dev *indio_dev`` IIO device structure containing the deviceh](h)}(h**Parameters**h]j)}(hj)1h]h Parameters}(hj+1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'1ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj#1ubjg )}(hhh]jl )}(hH``struct iio_dev *indio_dev`` IIO device structure containing the deviceh](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjH1h]hstruct iio_dev *indio_dev}(hjJ1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjF1ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjB1ubj )}(hhh]h)}(h*IIO device structure containing the deviceh]h*IIO device structure containing the device}(hja1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj^1ubah}(h]h ]h"]h$]h&]uh1j hjB1ubeh}(h]h ]h"]h$]h&]uh1jk hj]1hMhj?1ubah}(h]h ]h"]h$]h&]uh1jf hj#1ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdev_to_iio_dev (C function)c.dev_to_iio_devhNtauh1j~hjmhhhNhNubj)}(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}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhj1hMubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj1modnameN classnameNjj)}j]j)}jdev_to_iio_devsbc.dev_to_iio_devasbuh1hhj1hhhj1hMubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhj1hMubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhj1hMubj)}(hdev_to_iio_devh]j)}(hj1h]hdev_to_iio_dev}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj1hhhj1hMubjg)}(h(struct device *dev)h]jm)}(hstruct device *devh](j)}(hjh]hstruct}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(h h]h }(hj)2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubh)}(hhh]j)}(hdeviceh]hdevice}(hj:2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj72ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj<2modnameN classnameNjj)}j]j1c.dev_to_iio_devasbuh1hhj2ubj)}(h h]h }(hjX2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(hjh]h*}(hjf2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(hdevh]hdev}(hjs2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj2ubah}(h]h ]h"]h$]h&]jjuh1jfhj1hhhj1hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj1hhhj1hMubah}(h]j1ah ](jjeh"]h$]h&]jj)jhuh1jhj1hMhj1hhubj)}(hhh]h)}(h*Get IIO device struct from a device structh]h*Get IIO device struct from a device struct}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2hhubah}(h]h ]h"]h$]h&]uh1jhj1hhhj1hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j2j j2j j j uh1jhhhjmhNhNubj )}(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)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubjg )}(hhh]jl )}(h=``struct device *dev`` The device embedded in the IIO device h](jr )}(h``struct device *dev``h]h)}(hj2h]hstruct device *dev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubj )}(hhh]h)}(h%The device embedded in the IIO deviceh]h%The device embedded in the IIO device}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1j hj2ubeh}(h]h ]h"]h$]h&]uh1jk hj2hMhj2ubah}(h]h ]h"]h$]h&]uh1jf hj2ubh)}(h**Note**h]j)}(hj3h]hNote}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj2ubh)}(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/3hhhNhNubah}(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&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_device_get (C function)c.iio_device_gethNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h;struct iio_dev * iio_device_get (struct iio_dev *indio_dev)h]j)}(h9struct iio_dev *iio_device_get(struct iio_dev *indio_dev)h](j)}(hjh]hstruct}(hj^3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ3hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hjl3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ3hhhjk3hMubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj}3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjz3ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj3modnameN classnameNjj)}j]j)}jiio_device_getsbc.iio_device_getasbuh1hhjZ3hhhjk3hMubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ3hhhjk3hMubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ3hhhjk3hMubj)}(hiio_device_geth]j)}(hj3h]hiio_device_get}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjZ3hhhjk3hMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(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&] refdomainj#reftypej reftargetj3modnameN classnameNjj)}j]j3c.iio_device_getasbuh1hhj3ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(hjh]h*}(hj"4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(h indio_devh]h indio_dev}(hj/4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj3ubah}(h]h ]h"]h$]h&]jjuh1jfhjZ3hhhjk3hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjV3hhhjk3hMubah}(h]jQ3ah ](jjeh"]h$]h&]jj)jhuh1jhjk3hMhjS3hhubj)}(hhh]h)}(h(increment reference count for the deviceh]h(increment reference count for the device}(hjY4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjV4hhubah}(h]h ]h"]h$]h&]uh1jhjS3hhhjk3hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jq4j jq4j j j uh1jhhhjmhNhNubj )}(hg**Parameters** ``struct iio_dev *indio_dev`` IIO device structure **Return** The passed IIO deviceh](h)}(h**Parameters**h]j)}(hj{4h]h Parameters}(hj}4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy4ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhju4ubjg )}(hhh]jl )}(h3``struct iio_dev *indio_dev`` IIO device structure h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj4h]hstruct iio_dev *indio_dev}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj4ubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1j hj4ubeh}(h]h ]h"]h$]h&]uh1jk hj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jf hju4ubh)}(h **Return**h]j)}(hj4h]hReturn}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhju4ubh)}(hThe passed IIO deviceh]hThe passed IIO device}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhju4ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"iio_device_set_parent (C function)c.iio_device_set_parenthNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hMvoid iio_device_set_parent (struct iio_dev *indio_dev, struct device *parent)h]j)}(hLvoid iio_device_set_parent(struct iio_dev *indio_dev, struct device *parent)h](j/)}(hvoidh]hvoid}(hj5hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj5hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hj)5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhj(5hMubj)}(hiio_device_set_parenth]j)}(hiio_device_set_parenth]hiio_device_set_parent}(hj;5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj75ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj5hhhj(5hMubjg)}(h2(struct iio_dev *indio_dev, struct device *parent)h](jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjW5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS5ubj)}(h h]h }(hjd5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS5ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hju5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr5ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjw5modnameN classnameNjj)}j]j)}jj=5sbc.iio_device_set_parentasbuh1hhjS5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS5ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS5ubj)}(h indio_devh]h indio_dev}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS5ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjO5ubjm)}(hstruct device *parenth](j)}(hjh]hstruct}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubh)}(hhh]j)}(hdeviceh]hdevice}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj5modnameN classnameNjj)}j]j5c.iio_device_set_parentasbuh1hhj5ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hparenth]hparent}(hj 6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjO5ubeh}(h]h ]h"]h$]h&]jjuh1jfhj5hhhj(5hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj5hhhj(5hMubah}(h]j 5ah ](jjeh"]h$]h&]jj)jhuh1jhj(5hMhj5hhubj)}(hhh]h)}(h-assign parent device to the IIO device objecth]h-assign parent device to the IIO device object}(hjJ6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjG6hhubah}(h]h ]h"]h$]h&]uh1jhj5hhhj(5hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jb6j jb6j j j uh1jhhhjmhNhNubj )}(hX**Parameters** ``struct iio_dev *indio_dev`` IIO device structure ``struct device *parent`` reference to parent device object **Description** This utility must be called between IIO device allocation (via devm_iio_device_alloc()) & IIO device registration (via iio_device_register() and devm_iio_device_register())). By default, the device allocation will also assign a parent device to the IIO device object. In cases where devm_iio_device_alloc() is used, sometimes the parent device must be different than the device used to manage the allocation. In that case, this helper should be used to change the parent, hence the requirement to call this between allocation & registration.h](h)}(h**Parameters**h]j)}(hjl6h]h Parameters}(hjn6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj6ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjf6ubjg )}(hhh](jl )}(h3``struct iio_dev *indio_dev`` IIO device structure h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj6h]hstruct iio_dev *indio_dev}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj6ubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1j hj6ubeh}(h]h ]h"]h$]h&]uh1jk hj6hMhj6ubjl )}(h<``struct device *parent`` reference to parent device object h](jr )}(h``struct device *parent``h]h)}(hj6h]hstruct device *parent}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj6ubj )}(hhh]h)}(h!reference to parent device objecth]h!reference to parent device object}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1j hj6ubeh}(h]h ]h"]h$]h&]uh1jk hj6hMhj6ubeh}(h]h ]h"]h$]h&]uh1jf hjf6ubh)}(h**Description**h]j)}(hj6h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjf6ubh)}(hXThis utility must be called between IIO device allocation (via devm_iio_device_alloc()) & IIO device registration (via iio_device_register() and devm_iio_device_register())). By default, the device allocation will also assign a parent device to the IIO device object. In cases where devm_iio_device_alloc() is used, sometimes the parent device must be different than the device used to manage the allocation. In that case, this helper should be used to change the parent, hence the requirement to call this between allocation & registration.h]hXThis utility must be called between IIO device allocation (via devm_iio_device_alloc()) & IIO device registration (via iio_device_register() and devm_iio_device_register())). By default, the device allocation will also assign a parent device to the IIO device object. In cases where devm_iio_device_alloc() is used, sometimes the parent device must be different than the device used to manage the allocation. In that case, this helper should be used to change the parent, hence the requirement to call this between allocation & registration.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjf6ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#iio_device_set_drvdata (C function)c.iio_device_set_drvdatahNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hCvoid iio_device_set_drvdata (struct iio_dev *indio_dev, void *data)h]j)}(hBvoid iio_device_set_drvdata(struct iio_dev *indio_dev, void *data)h](j/)}(hvoidh]hvoid}(hjD7hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj@7hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hjS7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@7hhhjR7hMubj)}(hiio_device_set_drvdatah]j)}(hiio_device_set_drvdatah]hiio_device_set_drvdata}(hje7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja7ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj@7hhhjR7hMubjg)}(h'(struct iio_dev *indio_dev, void *data)h](jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}7ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj7modnameN classnameNjj)}j]j)}jjg7sbc.iio_device_set_drvdataasbuh1hhj}7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}7ubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}7ubj)}(h indio_devh]h indio_dev}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjy7ubjm)}(h void *datah](j/)}(hvoidh]hvoid}(hj7hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj7ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hdatah]hdata}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjy7ubeh}(h]h ]h"]h$]h&]jjuh1jfhj@7hhhjR7hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj<7hhhjR7hMubah}(h]j77ah ](jjeh"]h$]h&]jj)jhuh1jhjR7hMhj97hhubj)}(hhh]h)}(hSet device driver datah]hSet device driver data}(hjF8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjC8hhubah}(h]h ]h"]h$]h&]uh1jhj97hhhjR7hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j^8j j^8j j j uh1jhhhjmhNhNubj )}(h**Parameters** ``struct iio_dev *indio_dev`` IIO device structure ``void *data`` Driver specific data **Description** Allows to attach an arbitrary pointer to an IIO device, which can later be retrieved by iio_device_get_drvdata().h](h)}(h**Parameters**h]j)}(hjh8h]h Parameters}(hjj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb8ubjg )}(hhh](jl )}(h3``struct iio_dev *indio_dev`` IIO device structure h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj8h]hstruct iio_dev *indio_dev}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj8ubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1j hj8ubeh}(h]h ]h"]h$]h&]uh1jk hj8hMhj~8ubjl )}(h$``void *data`` Driver specific data h](jr )}(h``void *data``h]h)}(hj8h]h void *data}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj8ubj )}(hhh]h)}(hDriver specific datah]hDriver specific data}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1j hj8ubeh}(h]h ]h"]h$]h&]uh1jk hj8hMhj~8ubeh}(h]h ]h"]h$]h&]uh1jf hjb8ubh)}(h**Description**h]j)}(hj8h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb8ubh)}(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().}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjb8ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#iio_device_get_drvdata (C function)c.iio_device_get_drvdatahNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h?void * iio_device_get_drvdata (const struct iio_dev *indio_dev)h]j)}(h=void *iio_device_get_drvdata(const struct iio_dev *indio_dev)h](j/)}(hvoidh]hvoid}(hj@9hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj<9hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubj)}(h h]h }(hjO9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<9hhhjN9hMubj)}(hjh]h*}(hj]9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<9hhhjN9hMubj)}(hiio_device_get_drvdatah]j)}(hiio_device_get_drvdatah]hiio_device_get_drvdata}(hjn9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjj9ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj<9hhhjN9hMubjg)}(h!(const struct iio_dev *indio_dev)h]jm)}(hconst struct iio_dev *indio_devh](j)}(hjth]hconst}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj)}(hjh]hstruct}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj9modnameN classnameNjj)}j]j)}jjp9sbc.iio_device_get_drvdataasbuh1hhj9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj)}(h indio_devh]h indio_dev}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj9ubah}(h]h ]h"]h$]h&]jjuh1jfhj<9hhhjN9hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj89hhhjN9hMubah}(h]j39ah ](jjeh"]h$]h&]jj)jhuh1jhjN9hMhj59hhubj)}(hhh]h)}(hGet device driver datah]hGet device driver data}(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&]uh1jhj59hhhjN9hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j@:j j@:j j j uh1jhhhjmhNhNubj )}(h**Parameters** ``const struct iio_dev *indio_dev`` IIO device structure **Description** Returns the data previously set with iio_device_set_drvdata()h](h)}(h**Parameters**h]j)}(hjJ:h]h Parameters}(hjL:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH:ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjD:ubjg )}(hhh]jl )}(h9``const struct iio_dev *indio_dev`` IIO device structure h](jr )}(h#``const struct iio_dev *indio_dev``h]h)}(hji:h]hconst struct iio_dev *indio_dev}(hjk:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjg:ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjc:ubj )}(hhh]h)}(hIIO device structureh]hIIO device structure}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~:hMhj:ubah}(h]h ]h"]h$]h&]uh1j hjc:ubeh}(h]h ]h"]h$]h&]uh1jk hj~:hMhj`:ubah}(h]h ]h"]h$]h&]uh1jf hjD:ubh)}(h**Description**h]j)}(hj:h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjD:ubh)}(h=Returns the data previously set with iio_device_set_drvdata()h]h=Returns the data previously set with iio_device_set_drvdata()}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjD:ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#iio_get_debugfs_dentry (C function)c.iio_get_debugfs_dentryhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hBstruct dentry * iio_get_debugfs_dentry (struct iio_dev *indio_dev)h]j)}(h@struct dentry *iio_get_debugfs_dentry(struct iio_dev *indio_dev)h](j)}(hjh]hstruct}(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#ubh)}(hhh]j)}(hdentryh]hdentry}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj ;modnameN classnameNjj)}j]j)}jiio_get_debugfs_dentrysbc.iio_get_debugfs_dentryasbuh1hhj:hhhj:hM#ubj)}(h h]h }(hj);hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhhj:hM#ubj)}(hjh]h*}(hj7;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhhj:hM#ubj)}(hiio_get_debugfs_dentryh]j)}(hj&;h]hiio_get_debugfs_dentry}(hjH;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD;ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj:hhhj:hM#ubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjc;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_;ubj)}(h h]h }(hjp;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_;ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~;ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj;modnameN classnameNjj)}j]j$;c.iio_get_debugfs_dentryasbuh1hhj_;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_;ubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_;ubj)}(h indio_devh]h indio_dev}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj[;ubah}(h]h ]h"]h$]h&]jjuh1jfhj:hhhj:hM#ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj:hhhj:hM#ubah}(h]j:ah ](jjeh"]h$]h&]jj)jhuh1jhj:hM#hj:hhubj)}(hhh]h)}(h)helper function to get the debugfs_dentryh]h)helper function to get the debugfs_dentry}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM hj;hhubah}(h]h ]h"]h$]h&]uh1jhj:hhhj:hM#ubeh}(h]h ](j#functioneh"]h$]h&]j j#j j;j j;j j j uh1jhhhjmhNhNubj )}(hO**Parameters** ``struct iio_dev *indio_dev`` IIO device structure for deviceh](h)}(h**Parameters**h]j)}(hj<h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM$hj<ubjg )}(hhh]jl )}(h=``struct iio_dev *indio_dev`` IIO device structure for deviceh](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj%<h]hstruct iio_dev *indio_dev}(hj'<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#<ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM&hj<ubj )}(hhh]h)}(hIIO device structure for deviceh]hIIO device structure for device}(hj><hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM!hj;<ubah}(h]h ]h"]h$]h&]uh1j hj<ubeh}(h]h ]h"]h$]h&]uh1jk hj:<hM&hj<ubah}(h]h ]h"]h$]h&]uh1jf hj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*iio_device_suspend_triggering (C function)c.iio_device_suspend_triggeringhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h=int iio_device_suspend_triggering (struct iio_dev *indio_dev)h]j)}(hhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj=hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM;ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj>hM;ubj)}(hiio_device_resume_triggeringh]j)}(hiio_device_resume_triggeringh]hiio_device_resume_triggering}(hj!>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj=hhhj>hM;ubjg)}(h(struct iio_dev *indio_dev)h]jm)}(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&] refdomainj#reftypej reftargetj]>modnameN classnameNjj)}j]j)}jj#>sbc.iio_device_resume_triggeringasbuh1hhj9>ubj)}(h h]h }(hj{>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9>ubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9>ubj)}(h indio_devh]h indio_dev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9>ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj5>ubah}(h]h ]h"]h$]h&]jjuh1jfhj=hhhj>hM;ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj=hhhj>hM;ubah}(h]j=ah ](jjeh"]h$]h&]jj)jhuh1jhj>hM;hj=hhubj)}(hhh]h)}(hhresume trigger attached to an iio_dev that was previously suspended with iio_device_suspend_triggering()h]hhresume trigger attached to an iio_dev that was previously suspended with iio_device_suspend_triggering()}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM5hj>hhubah}(h]h ]h"]h$]h&]uh1jhj=hhhj>hM;ubeh}(h]h ](j#functioneh"]h$]h&]j j#j j>j j>j j j uh1jhhhjmhNhNubj )}(h**Parameters** ``struct iio_dev *indio_dev`` iio_dev associated with the device that will have triggers resumed **Description** Return 0 if successful, negative otherwiseh](h)}(h**Parameters**h]j)}(hj>h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM9hj>ubjg )}(hhh]jl )}(ha``struct iio_dev *indio_dev`` iio_dev associated with the device that will have triggers resumed h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj?h]hstruct iio_dev *indio_dev}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>ubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM7hj>ubj )}(hhh]h)}(hBiio_dev associated with the device that will have triggers resumedh]hBiio_dev associated with the device that will have triggers resumed}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hM7hj?ubah}(h]h ]h"]h$]h&]uh1j hj>ubeh}(h]h ]h"]h$]h&]uh1jk hj?hM7hj>ubah}(h]h ]h"]h$]h&]uh1jf hj>ubh)}(h**Description**h]j)}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:?ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM9hj>ubh)}(h*Return 0 if successful, negative otherwiseh]h*Return 0 if successful, negative otherwise}(hjR?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM9hj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&iio_get_current_scan_type (C function)c.iio_get_current_scan_typehNtauh1j~hjmhhhNhNubj)}(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)}(hjth]hconst}(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)}(hjh]hstruct}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}?hhhj?hM`ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}?hhhj?hM`ubh)}(hhh]j)}(h iio_scan_typeh]h iio_scan_type}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj?modnameN classnameNjj)}j]j)}jiio_get_current_scan_typesbc.iio_get_current_scan_typeasbuh1hhj}?hhhj?hM`ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}?hhhj?hM`ubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}?hhhj?hM`ubj)}(hiio_get_current_scan_typeh]j)}(hj?h]hiio_get_current_scan_type}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj}?hhhj?hM`ubjg)}(hC(const struct iio_dev *indio_dev, const struct iio_chan_spec *chan)h](jm)}(hconst struct iio_dev *indio_devh](j)}(hjth]hconst}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(h h]h }(hj#@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(hjh]hstruct}(hj1@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}(hjO@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL@ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjQ@modnameN classnameNjj)}j]j?c.iio_get_current_scan_typeasbuh1hhj@ubj)}(h h]h }(hjm@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(hjh]h*}(hj{@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(h indio_devh]h indio_dev}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj@ubjm)}(h const struct iio_chan_spec *chanh](j)}(hjth]hconst}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(hjh]hstruct}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubh)}(hhh]j)}(h iio_chan_spech]h iio_chan_spec}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj@modnameN classnameNjj)}j]j?c.iio_get_current_scan_typeasbuh1hhj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(hchanh]hchan}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj@ubeh}(h]h ]h"]h$]h&]jjuh1jfhj}?hhhj?hM`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjy?hhhj?hM`ubah}(h]jt?ah ](jjeh"]h$]h&]jj)jhuh1jhj?hM`hjv?hhubj)}(hhh]h)}(h'Get the current scan type for a channelh]h'Get the current scan type for a channel}(hj=AhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMUhj:Ahhubah}(h]h ]h"]h$]h&]uh1jhjv?hhhj?hM`ubeh}(h]h ](j#functioneh"]h$]h&]j j#j jUAj jUAj j j uh1jhhhjmhNhNubj )}(hX**Parameters** ``const struct iio_dev *indio_dev`` the IIO device to get the scan type for ``const struct iio_chan_spec *chan`` the channel to get the scan type for **Description** Most devices only have one scan type per channel and can just access it directly without calling this function. Core IIO code and drivers that implement ext_scan_type in the channel spec should use this function to get the current scan type for a channel. **Return** the current scan type for the channel or error.h](h)}(h**Parameters**h]j)}(hj_Ah]h Parameters}(hjaAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]Aubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMYhjYAubjg )}(hhh](jl )}(hL``const struct iio_dev *indio_dev`` the IIO device to get the scan type for h](jr )}(h#``const struct iio_dev *indio_dev``h]h)}(hj~Ah]hconst struct iio_dev *indio_dev}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|Aubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMVhjxAubj )}(hhh]h)}(h'the IIO device to get the scan type forh]h'the IIO device to get the scan type for}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMVhjAubah}(h]h ]h"]h$]h&]uh1j hjxAubeh}(h]h ]h"]h$]h&]uh1jk hjAhMVhjuAubjl )}(hJ``const struct iio_chan_spec *chan`` the channel to get the scan type for h](jr )}(h$``const struct iio_chan_spec *chan``h]h)}(hjAh]h const struct iio_chan_spec *chan}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMWhjAubj )}(hhh]h)}(h$the channel to get the scan type forh]h$the channel to get the scan type for}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMWhjAubah}(h]h ]h"]h$]h&]uh1j hjAubeh}(h]h ]h"]h$]h&]uh1jk hjAhMWhjuAubeh}(h]h ]h"]h$]h&]uh1jf hjYAubh)}(h**Description**h]j)}(hjAh]h Description}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMYhjYAubh)}(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.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMYhjYAubh)}(h **Return**h]j)}(hjBh]hReturn}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM^hjYAubh)}(h/the current scan type for the channel or error.h]h/the current scan type for the channel or error.}(hj/BhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM^hjYAubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_get_masklength (C function)c.iio_get_masklengthhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hAunsigned int iio_get_masklength (const struct iio_dev *indio_dev)h]j)}(h@unsigned int iio_get_masklength(const struct iio_dev *indio_dev)h](j/)}(hunsignedh]hunsigned}(hj^BhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjZBhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMxubj)}(h h]h }(hjmBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZBhhhjlBhMxubj/)}(hinth]hint}(hj{BhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjZBhhhjlBhMxubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZBhhhjlBhMxubj)}(hiio_get_masklengthh]j)}(hiio_get_masklengthh]hiio_get_masklength}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ](jjeh"]h$]h&]jjuh1jhjZBhhhjlBhMxubjg)}(h!(const struct iio_dev *indio_dev)h]jm)}(hconst struct iio_dev *indio_devh](j)}(hjth]hconst}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(hjh]hstruct}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjBmodnameN classnameNjj)}j]j)}jjBsbc.iio_get_masklengthasbuh1hhjBubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(h indio_devh]h indio_dev}(hj+ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjBubah}(h]h ]h"]h$]h&]jjuh1jfhjZBhhhjlBhMxubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjVBhhhjlBhMxubah}(h]jQBah ](jjeh"]h$]h&]jj)jhuh1jhjlBhMxhjSBhhubj)}(hhh]h)}(hGet length of the channels maskh]hGet length of the channels mask}(hjUChhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMuhjRChhubah}(h]h ]h"]h$]h&]uh1jhjSBhhhjlBhMxubeh}(h]h ](j#functioneh"]h$]h&]j j#j jmCj jmCj j j uh1jhhhjmhNhNubj )}(h^**Parameters** ``const struct iio_dev *indio_dev`` the IIO device to get the masklength forh](h)}(h**Parameters**h]j)}(hjwCh]h Parameters}(hjyChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuCubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMyhjqCubjg )}(hhh]jl )}(hL``const struct iio_dev *indio_dev`` the IIO device to get the masklength forh](jr )}(h#``const struct iio_dev *indio_dev``h]h)}(hjCh]hconst struct iio_dev *indio_dev}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCubah}(h]h ]h"]h$]h&]uh1jq h\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhM{hjCubj )}(hhh]h)}(h(the IIO device to get the masklength forh]h(the IIO device to get the masklength for}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMvhjCubah}(h]h ]h"]h$]h&]uh1j hjCubeh}(h]h ]h"]h$]h&]uh1jk hjChM{hjCubah}(h]h ]h"]h$]h&]uh1jf hjqCubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%iio_for_each_active_channel (C macro)c.iio_for_each_active_channelhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hiio_for_each_active_channelh]j)}(hiio_for_each_active_channelh]j)}(hiio_for_each_active_channelh]j)}(hjCh]hiio_for_each_active_channel}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubah}(h]h ](jjeh"]h$]h&]jjuh1jhjChhh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjChhhjDhMubah}(h]jCah ](jjeh"]h$]h&]jj)jhuh1jhjDhMhjChhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjChhhjDhMubeh}(h]h ](j#macroeh"]h$]h&]j j#j j Dj j Dj j j uh1jhhhjmhNhNubh)}(h1``iio_for_each_active_channel (indio_dev, chan)``h]h)}(hj&Dh]h-iio_for_each_active_channel (indio_dev, chan)}(hj(DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$Dubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhjmhhubj )}(hIterated over active channels h]h)}(hIterated over active channelsh]hIterated over active channels}(hj@DhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:180: ./include/linux/iio/iio.hhMhj``struct iio_dev *indio_dev`` IIO device structure for device h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjKh]hstruct iio_dev *indio_dev}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhjKubj )}(hhh]h)}(hIIO device structure for deviceh]hIIO device structure for device}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhKhjKubah}(h]h ]h"]h$]h&]uh1j hjKubeh}(h]h ]h"]h$]h&]uh1jk hjKhKhjKubah}(h]h ]h"]h$]h&]uh1jf hjKubh)}(h **Return**h]j)}(hjLh]hReturn}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhjKubh)}(hTrue, if the buffer is enabled.h]hTrue, if the buffer is enabled.}(hj.LhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chKhjKubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!iio_device_set_clock (C function)c.iio_device_set_clockhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hHint iio_device_set_clock (struct iio_dev *indio_dev, clockid_t clock_id)h]j)}(hGint iio_device_set_clock(struct iio_dev *indio_dev, clockid_t clock_id)h](j/)}(hinth]hint}(hj]LhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjYLhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjlLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYLhhhjkLhMubj)}(hiio_device_set_clockh]j)}(hiio_device_set_clockh]hiio_device_set_clock}(hj~LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzLubah}(h]h ](jjeh"]h$]h&]jjuh1jhjYLhhhjkLhMubjg)}(h/(struct iio_dev *indio_dev, clockid_t clock_id)h](jm)}(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&] refdomainj#reftypej reftargetjLmodnameN classnameNjj)}j]j)}jjLsbc.iio_device_set_clockasbuh1hhjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h indio_devh]h indio_dev}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjLubjm)}(hclockid_t clock_idh](h)}(hhh]j)}(h clockid_th]h clockid_t}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Mubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjMmodnameN classnameNjj)}j]jLc.iio_device_set_clockasbuh1hhjMubj)}(h h]h }(hj-MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj)}(hclock_idh]hclock_id}(hj;MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjLubeh}(h]h ]h"]h$]h&]jjuh1jfhjYLhhhjkLhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjULhhhjkLhMubah}(h]jPLah ](jjeh"]h$]h&]jj)jhuh1jhjkLhMhjRLhhubj)}(hhh]h)}(h-Set current timestamping clock for the deviceh]h-Set current timestamping clock for the device}(hjeMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM hjbMhhubah}(h]h ]h"]h$]h&]uh1jhjRLhhhjkLhMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j}Mj j}Mj j j uh1jhhhjmhNhNubj )}(h**Parameters** ``struct iio_dev *indio_dev`` IIO device structure containing the device ``clockid_t clock_id`` timestamping clock POSIX identifier to set. **Return** 0 on success, or a negative error code.h](h)}(h**Parameters**h]j)}(hjMh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM hjMubjg )}(hhh](jl )}(hI``struct iio_dev *indio_dev`` IIO device structure containing the device h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjMh]hstruct iio_dev *indio_dev}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM hjMubj )}(hhh]h)}(h*IIO device structure containing the deviceh]h*IIO device structure containing the device}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhM hjMubah}(h]h ]h"]h$]h&]uh1j hjMubeh}(h]h ]h"]h$]h&]uh1jk hjMhM hjMubjl )}(hC``clockid_t clock_id`` timestamping clock POSIX identifier to set. h](jr )}(h``clockid_t clock_id``h]h)}(hjMh]hclockid_t clock_id}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM hjMubj )}(hhh]h)}(h+timestamping clock POSIX identifier to set.h]h+timestamping clock POSIX identifier to set.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhM hjMubah}(h]h ]h"]h$]h&]uh1j hjMubeh}(h]h ]h"]h$]h&]uh1jk hjMhM hjMubeh}(h]h ]h"]h$]h&]uh1jf hjMubh)}(h **Return**h]j)}(hjNh]hReturn}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM hjMubh)}(h'0 on success, or a negative error code.h]h'0 on success, or a negative error code.}(hj0NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM hjMubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!iio_device_get_clock (C function)c.iio_device_get_clockhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h@clockid_t iio_device_get_clock (const struct iio_dev *indio_dev)h]j)}(h?clockid_t iio_device_get_clock(const struct iio_dev *indio_dev)h](h)}(hhh]j)}(h clockid_th]h clockid_t}(hjbNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_Nubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjdNmodnameN classnameNjj)}j]j)}jiio_device_get_clocksbc.iio_device_get_clockasbuh1hhj[Nhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM*ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[NhhhjNhM*ubj)}(hiio_device_get_clockh]j)}(hjNh]hiio_device_get_clock}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ](jjeh"]h$]h&]jjuh1jhj[NhhhjNhM*ubjg)}(h!(const struct iio_dev *indio_dev)h]jm)}(hconst struct iio_dev *indio_devh](j)}(hjth]hconst}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(hjh]hstruct}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjNmodnameN classnameNjj)}j]j~Nc.iio_device_get_clockasbuh1hhjNubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(h indio_devh]h indio_dev}(hj#OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjNubah}(h]h ]h"]h$]h&]jjuh1jfhj[NhhhjNhM*ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjWNhhhjNhM*ubah}(h]jRNah ](jjeh"]h$]h&]jj)jhuh1jhjNhM*hjTNhhubj)}(hhh]h)}(h2Retrieve current timestamping clock for the deviceh]h2Retrieve current timestamping clock for the device}(hjMOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM%hjJOhhubah}(h]h ]h"]h$]h&]uh1jhjTNhhhjNhM*ubeh}(h]h ](j#functioneh"]h$]h&]j j#j jeOj jeOj j j uh1jhhhjmhNhNubj )}(h**Parameters** ``const struct iio_dev *indio_dev`` IIO device structure containing the device **Return** Clock ID of the current timestamping clock for the device.h](h)}(h**Parameters**h]j)}(hjoOh]h Parameters}(hjqOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmOubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM)hjiOubjg )}(hhh]jl )}(hO``const struct iio_dev *indio_dev`` IIO device structure containing the device h](jr )}(h#``const struct iio_dev *indio_dev``h]h)}(hjOh]hconst struct iio_dev *indio_dev}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM&hjOubj )}(hhh]h)}(h*IIO device structure containing the deviceh]h*IIO device structure containing the device}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhM&hjOubah}(h]h ]h"]h$]h&]uh1j hjOubeh}(h]h ]h"]h$]h&]uh1jk hjOhM&hjOubah}(h]h ]h"]h$]h&]uh1jf hjiOubh)}(h **Return**h]j)}(hjOh]hReturn}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM(hjiOubh)}(h:Clock ID of the current timestamping clock for the device.h]h:Clock ID of the current timestamping clock for the device.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM(hjiOubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_get_time_ns (C function)c.iio_get_time_nshNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h5s64 iio_get_time_ns (const struct iio_dev *indio_dev)h]j)}(h4s64 iio_get_time_ns(const struct iio_dev *indio_dev)h](h)}(hhh]j)}(hs64h]hs64}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjPmodnameN classnameNjj)}j]j)}jiio_get_time_nssbc.iio_get_time_nsasbuh1hhj Phhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM8ubj)}(h h]h }(hj3PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Phhhj2PhM8ubj)}(hiio_get_time_nsh]j)}(hj/Ph]hiio_get_time_ns}(hjEPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAPubah}(h]h ](jjeh"]h$]h&]jjuh1jhj Phhhj2PhM8ubjg)}(h!(const struct iio_dev *indio_dev)h]jm)}(hconst struct iio_dev *indio_devh](j)}(hjth]hconst}(hj`PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Pubj)}(h h]h }(hjmPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Pubj)}(hjh]hstruct}(hj{PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Pubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Pubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjPmodnameN classnameNjj)}j]j-Pc.iio_get_time_nsasbuh1hhj\Pubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Pubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Pubj)}(h indio_devh]h indio_dev}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Pubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjXPubah}(h]h ]h"]h$]h&]jjuh1jfhj Phhhj2PhM8ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjPhhhj2PhM8ubah}(h]jPah ](jjeh"]h$]h&]jj)jhuh1jhj2PhM8hjPhhubj)}(hhh]h)}(h3utility function to get a time stamp for events etch]h3utility function to get a time stamp for events etc}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM3hjPhhubah}(h]h ]h"]h$]h&]uh1jhjPhhhj2PhM8ubeh}(h]h ](j#functioneh"]h$]h&]j j#j jQj jQj j j uh1jhhhjmhNhNubj )}(hp**Parameters** ``const struct iio_dev *indio_dev`` device **Return** Timestamp of the event in nanoseconds.h](h)}(h**Parameters**h]j)}(hjQh]h Parameters}(hj QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM7hjQubjg )}(hhh]jl )}(h+``const struct iio_dev *indio_dev`` device h](jr )}(h#``const struct iio_dev *indio_dev``h]h)}(hj=Qh]hconst struct iio_dev *indio_dev}(hj?QhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;Qubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM4hj7Qubj )}(hhh]h)}(hdeviceh]hdevice}(hjVQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRQhM4hjSQubah}(h]h ]h"]h$]h&]uh1j hj7Qubeh}(h]h ]h"]h$]h&]uh1jk hjRQhM4hj4Qubah}(h]h ]h"]h$]h&]uh1jf hjQubh)}(h **Return**h]j)}(hjxQh]hReturn}(hjzQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvQubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM6hjQubh)}(h&Timestamp of the event in nanoseconds.h]h&Timestamp of the event in nanoseconds.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM6hjQubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"iio_read_mount_matrix (C function)c.iio_read_mount_matrixhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hOint iio_read_mount_matrix (struct device *dev, struct iio_mount_matrix *matrix)h]j)}(hNint iio_read_mount_matrix(struct device *dev, struct iio_mount_matrix *matrix)h](j/)}(hinth]hint}(hjQhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjQhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMlubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQhhhjQhMlubj)}(hiio_read_mount_matrixh]j)}(hiio_read_mount_matrixh]hiio_read_mount_matrix}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ](jjeh"]h$]h&]jjuh1jhjQhhhjQhMlubjg)}(h5(struct device *dev, struct iio_mount_matrix *matrix)h](jm)}(hstruct device *devh](j)}(hjh]hstruct}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubh)}(hhh]j)}(hdeviceh]hdevice}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjRmodnameN classnameNjj)}j]j)}jjQsbc.iio_read_mount_matrixasbuh1hhjQubj)}(h h]h }(hj8RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(hjh]h*}(hjFRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(hdevh]hdev}(hjSRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjQubjm)}(hstruct iio_mount_matrix *matrixh](j)}(hjh]hstruct}(hjlRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhRubj)}(h h]h }(hjyRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhRubh)}(hhh]j)}(hiio_mount_matrixh]hiio_mount_matrix}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjRmodnameN classnameNjj)}j]j4Rc.iio_read_mount_matrixasbuh1hhjhRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhRubj)}(hjh]h*}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhRubj)}(hmatrixh]hmatrix}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhRubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjQubeh}(h]h ]h"]h$]h&]jjuh1jfhjQhhhjQhMlubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjQhhhjQhMlubah}(h]jQah ](jjeh"]h$]h&]jj)jhuh1jhjQhMlhjQhhubj)}(hhh]h)}(hGretrieve iio device mounting matrix from device "mount-matrix" propertyh]hKretrieve iio device mounting matrix from device “mount-matrix” property}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMbhjRhhubah}(h]h ]h"]h$]h&]uh1jhjQhhhjQhMlubeh}(h]h ](j#functioneh"]h$]h&]j j#j jSj jSj j j uh1jhhhjmhNhNubj )}(hXX**Parameters** ``struct device *dev`` device the mounting matrix property is assigned to ``struct iio_mount_matrix *matrix`` where to store retrieved matrix **Description** If device is assigned no mounting matrix property, a default 3x3 identity matrix will be filled in. **Return** 0 if success, or a negative error code on failure.h](h)}(h**Parameters**h]j)}(hjSh]h Parameters}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Subah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMfhj Subjg )}(hhh](jl )}(hJ``struct device *dev`` device the mounting matrix property is assigned to h](jr )}(h``struct device *dev``h]h)}(hj.Sh]hstruct device *dev}(hj0ShhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,Subah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMdhj(Subj )}(hhh]h)}(h2device the mounting matrix property is assigned toh]h2device the mounting matrix property is assigned to}(hjGShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCShMdhjDSubah}(h]h ]h"]h$]h&]uh1j hj(Subeh}(h]h ]h"]h$]h&]uh1jk hjCShMdhj%Subjl )}(hD``struct iio_mount_matrix *matrix`` where to store retrieved matrix h](jr )}(h#``struct iio_mount_matrix *matrix``h]h)}(hjgSh]hstruct iio_mount_matrix *matrix}(hjiShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeSubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMehjaSubj )}(hhh]h)}(hwhere to store retrieved matrixh]hwhere to store retrieved matrix}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|ShMehj}Subah}(h]h ]h"]h$]h&]uh1j hjaSubeh}(h]h ]h"]h$]h&]uh1jk hj|ShMehj%Subeh}(h]h ]h"]h$]h&]uh1jf hj Subh)}(h**Description**h]j)}(hjSh]h Description}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMghj Subh)}(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.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMghj Subh)}(h **Return**h]j)}(hjSh]hReturn}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMjhj Subh)}(h20 if success, or a negative error code on failure.h]h20 if success, or a negative error code on failure.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMjhj Subeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_format_value (C function)c.iio_format_valuehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hLssize_t iio_format_value (char *buf, unsigned int type, int size, int *vals)h]j)}(hKssize_t iio_format_value(char *buf, unsigned int type, int size, int *vals)h](h)}(hhh]j)}(hssize_th]hssize_t}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjTmodnameN classnameNjj)}j]j)}jiio_format_valuesbc.iio_format_valueasbuh1hhj Thhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hj3ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Thhhj2ThMubj)}(hiio_format_valueh]j)}(hj/Th]hiio_format_value}(hjEThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjATubah}(h]h ](jjeh"]h$]h&]jjuh1jhj Thhhj2ThMubjg)}(h3(char *buf, unsigned int type, int size, int *vals)h](jm)}(h char *bufh](j/)}(hcharh]hchar}(hj`ThhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj\Tubj)}(h h]h }(hjnThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Tubj)}(hjh]h*}(hj|ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Tubj)}(hbufh]hbuf}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Tubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjXTubjm)}(hunsigned int typeh](j/)}(hunsignedh]hunsigned}(hjThhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj/)}(hinth]hint}(hjThhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj)}(htypeh]htype}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjXTubjm)}(hint sizeh](j/)}(hinth]hint}(hjThhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjTubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj)}(hsizeh]hsize}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjXTubjm)}(h int *valsh](j/)}(hinth]hint}(hj(UhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj$Uubj)}(h h]h }(hj6UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$Uubj)}(hjh]h*}(hjDUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$Uubj)}(hvalsh]hvals}(hjQUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$Uubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjXTubeh}(h]h ]h"]h$]h&]jjuh1jfhj Thhhj2ThMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjThhhj2ThMubah}(h]jTah ](jjeh"]h$]h&]jj)jhuh1jhj2ThMhjThhubj)}(hhh]h)}(h2Formats a IIO value into its string representationh]h2Formats a IIO value into its string representation}(hj{UhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjxUhhubah}(h]h ]h"]h$]h&]uh1jhjThhhj2ThMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jUj jUj j j uh1jhhhjmhNhNubj )}(hX+**Parameters** ``char *buf`` The buffer to which the formatted value gets written which is assumed to be big enough (i.e. PAGE_SIZE). ``unsigned int type`` One of the IIO_VAL_* constants. This decides how the val and val2 parameters are formatted. ``int size`` Number of IIO value entries contained in vals ``int *vals`` Pointer to the values, exact meaning depends on the type parameter. **Return** 0 by default, a negative number on failure or the total number of characters written for a type that belongs to the IIO_VAL_* constant.h](h)}(h**Parameters**h]j)}(hjUh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjUubjg )}(hhh](jl )}(hw``char *buf`` The buffer to which the formatted value gets written which is assumed to be big enough (i.e. PAGE_SIZE). h](jr )}(h ``char *buf``h]h)}(hjUh]h char *buf}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjUubj )}(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).}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjUubah}(h]h ]h"]h$]h&]uh1j hjUubeh}(h]h ]h"]h$]h&]uh1jk hjUhMhjUubjl )}(hr``unsigned int type`` One of the IIO_VAL_* constants. This decides how the val and val2 parameters are formatted. h](jr )}(h``unsigned int type``h]h)}(hjUh]hunsigned int type}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjUubj )}(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.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj Vubah}(h]h ]h"]h$]h&]uh1j hjUubeh}(h]h ]h"]h$]h&]uh1jk hj VhMhjUubjl )}(h;``int size`` Number of IIO value entries contained in vals h](jr )}(h ``int size``h]h)}(hj0Vh]hint size}(hj2VhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.Vubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj*Vubj )}(hhh]h)}(h-Number of IIO value entries contained in valsh]h-Number of IIO value entries contained in vals}(hjIVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEVhMhjFVubah}(h]h ]h"]h$]h&]uh1j hj*Vubeh}(h]h ]h"]h$]h&]uh1jk hjEVhMhjUubjl )}(hR``int *vals`` Pointer to the values, exact meaning depends on the type parameter. h](jr )}(h ``int *vals``h]h)}(hjiVh]h int *vals}(hjkVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjgVubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjcVubj )}(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.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjVubah}(h]h ]h"]h$]h&]uh1j hjcVubeh}(h]h ]h"]h$]h&]uh1jk hj~VhMhjUubeh}(h]h ]h"]h$]h&]uh1jf hjUubh)}(h **Return**h]j)}(hjVh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjUubh)}(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.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j iio_str_to_fixpoint (C function)c.iio_str_to_fixpointhNtauh1j~hjmhhhNhNubj)}(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}(hjVhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.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_str_to_fixpointh]j)}(hiio_str_to_fixpointh]hiio_str_to_fixpoint}(hj WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubah}(h]h ](jjeh"]h$]h&]jjuh1jhjVhhhjVhMubjg)}(h;(const char *str, int fract_mult, int *integer, int *fract)h](jm)}(hconst char *strh](j)}(hjth]hconst}(hj'WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#Wubj)}(h h]h }(hj4WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#Wubj/)}(hcharh]hchar}(hjBWhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj#Wubj)}(h h]h }(hjPWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#Wubj)}(hjh]h*}(hj^WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#Wubj)}(hstrh]hstr}(hjkWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#Wubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjWubjm)}(hint fract_multh](j/)}(hinth]hint}(hjWhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj)}(h fract_multh]h fract_mult}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjWubjm)}(h int *integerh](j/)}(hinth]hint}(hjWhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj)}(hintegerh]hinteger}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjWubjm)}(h int *fracth](j/)}(hinth]hint}(hjWhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjWubj)}(h h]h }(hj XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj)}(hfracth]hfract}(hj$XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjWubeh}(h]h ]h"]h$]h&]jjuh1jfhjVhhhjVhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjVhhhjVhMubah}(h]jVah ](jjeh"]h$]h&]jj)jhuh1jhjVhMhjVhhubj)}(hhh]h)}(h(Parse a fixed-point number from a stringh]h(Parse a fixed-point number from a string}(hjNXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjKXhhubah}(h]h ]h"]h$]h&]uh1jhjVhhhjVhMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jfXj jfXj j j uh1jhhhjmhNhNubj )}(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)}(hjpXh]h Parameters}(hjrXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnXubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjjXubjg )}(hhh](jl )}(h(``const char *str`` The string to parse h](jr )}(h``const char *str``h]h)}(hjXh]hconst char *str}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjXubj )}(hhh]h)}(hThe string to parseh]hThe string to parse}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1j hjXubeh}(h]h ]h"]h$]h&]uh1jk hjXhMhjXubjl )}(hS``int fract_mult`` Multiplier for the first decimal place, should be a power of 10 h](jr )}(h``int fract_mult``h]h)}(hjXh]hint fract_mult}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjXubj )}(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}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1j hjXubeh}(h]h ]h"]h$]h&]uh1jk hjXhMhjXubjl )}(h0``int *integer`` The integer part of the number h](jr )}(h``int *integer``h]h)}(hjYh]h int *integer}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjXubj )}(hhh]h)}(hThe integer part of the numberh]hThe integer part of the number}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhMhjYubah}(h]h ]h"]h$]h&]uh1j hjXubeh}(h]h ]h"]h$]h&]uh1jk hjYhMhjXubjl )}(h1``int *fract`` The fractional part of the number h](jr )}(h``int *fract``h]h)}(hj:Yh]h int *fract}(hj``struct iio_dev *dev`` the iio_dev associated with the deviceh](jr )}(h``struct iio_dev *dev``h]h)}(hj\h]hstruct iio_dev *dev}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj\ubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with 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\ubah}(h]h ]h"]h$]h&]uh1j hj\ubeh}(h]h ]h"]h$]h&]uh1jk hj\hMhj\ubah}(h]h ]h"]h$]h&]uh1jf hj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devm_iio_device_alloc (C function)c.devm_iio_device_allochNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hOstruct iio_dev * devm_iio_device_alloc (struct device *parent, int sizeof_priv)h]j)}(hMstruct iio_dev *devm_iio_device_alloc(struct device *parent, int sizeof_priv)h](j)}(hjh]hstruct}(hj?]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;]hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjM]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;]hhhjL]hMubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj^]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[]ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj`]modnameN classnameNjj)}j]j)}jdevm_iio_device_allocsbc.devm_iio_device_allocasbuh1hhj;]hhhjL]hMubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;]hhhjL]hMubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;]hhhjL]hMubj)}(hdevm_iio_device_alloch]j)}(hj|]h]hdevm_iio_device_alloc}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj;]hhhjL]hMubjg)}(h((struct device *parent, int sizeof_priv)h](jm)}(hstruct device *parenth](j)}(hjh]hstruct}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubh)}(hhh]j)}(hdeviceh]hdevice}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj]modnameN classnameNjj)}j]jz]c.devm_iio_device_allocasbuh1hhj]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(hparenth]hparent}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj]ubjm)}(hint sizeof_privh](j/)}(hinth]hint}(hj)^hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj%^ubj)}(h h]h }(hj7^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%^ubj)}(h sizeof_privh]h sizeof_priv}(hjE^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj]ubeh}(h]h ]h"]h$]h&]jjuh1jfhj;]hhhjL]hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj7]hhhjL]hMubah}(h]j2]ah ](jjeh"]h$]h&]jj)jhuh1jhjL]hMhj4]hhubj)}(hhh]h)}(h#Resource-managed iio_device_alloc()h]h#Resource-managed iio_device_alloc()}(hjo^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjl^hhubah}(h]h ]h"]h$]h&]uh1jhj4]hhhjL]hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j j^j j^j j j uh1jhhhjmhNhNubj )}(hXk**Parameters** ``struct device *parent`` Device to allocate iio_dev for, and parent for this IIO device ``int sizeof_priv`` Space to allocate for private structure. **Description** Managed iio_device_alloc. iio_dev allocated with this function is automatically freed on driver detach. **Return** Pointer to allocated iio_dev on success, NULL on failure.h](h)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubjg )}(hhh](jl )}(hY``struct device *parent`` Device to allocate iio_dev for, and parent for this IIO device h](jr )}(h``struct device *parent``h]h)}(hj^h]hstruct device *parent}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^ubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubj )}(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}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMhj^ubah}(h]h ]h"]h$]h&]uh1j hj^ubeh}(h]h ]h"]h$]h&]uh1jk hj^hMhj^ubjl )}(h=``int sizeof_priv`` Space to allocate for private structure. h](jr )}(h``int sizeof_priv``h]h)}(hj^h]hint sizeof_priv}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^ubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubj )}(hhh]h)}(h(Space to allocate for private structure.h]h(Space to allocate for private structure.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMhj^ubah}(h]h ]h"]h$]h&]uh1j hj^ubeh}(h]h ]h"]h$]h&]uh1jk hj^hMhj^ubeh}(h]h ]h"]h$]h&]uh1jf hj^ubh)}(h**Description**h]j)}(hj$_h]h Description}(hj&_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"_ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubh)}(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:_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubh)}(h **Return**h]j)}(hjK_h]hReturn}(hjM_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI_ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj^ubh)}(h9Pointer to allocated iio_dev on success, NULL on failure.h]h9Pointer to allocated iio_dev on success, NULL on failure.}(hja_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&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'iio_active_scan_mask_index (C function)c.iio_active_scan_mask_indexhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h:int iio_active_scan_mask_index (struct iio_dev *indio_dev)h]j)}(h9int iio_active_scan_mask_index(struct iio_dev *indio_dev)h](j/)}(hinth]hint}(hj_hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.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_active_scan_mask_indexh]j)}(hiio_active_scan_mask_indexh]hiio_active_scan_mask_index}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj_hhhj_hMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetj_modnameN classnameNjj)}j]j)}jj_sbc.iio_active_scan_mask_indexasbuh1hhj_ubj)}(h h]h }(hj `hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(h indio_devh]h indio_dev}(hj&`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj_ubah}(h]h ]h"]h$]h&]jjuh1jfhj_hhhj_hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj_hhhj_hMubah}(h]j_ah ](jjeh"]h$]h&]jj)jhuh1jhj_hMhj_hhubj)}(hhh]h)}(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}(hjP`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjM`hhubah}(h]h ]h"]h$]h&]uh1jhj_hhhj_hMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jh`j jh`j j j uh1jhhhjmhNhNubj )}(h**Parameters** ``struct iio_dev *indio_dev`` the IIO device containing the active and available scan masks **Return** the index or -EINVAL if active_scan_mask is not seth](h)}(h**Parameters**h]j)}(hjr`h]h Parameters}(hjt`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp`ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjl`ubjg )}(hhh]jl )}(h\``struct iio_dev *indio_dev`` the IIO device containing the active and available scan masks h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj`h]hstruct iio_dev *indio_dev}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`ubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj`ubj )}(hhh]h)}(h=the IIO device containing the active and available scan masksh]h=the IIO device containing the active and available scan masks}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMhj`ubah}(h]h ]h"]h$]h&]uh1j hj`ubeh}(h]h ]h"]h$]h&]uh1jk hj`hMhj`ubah}(h]h ]h"]h$]h&]uh1jf hjl`ubh)}(h **Return**h]j)}(hj`h]hReturn}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjl`ubh)}(h4the index or -EINVAL if active_scan_mask is not seth]h4the index or -EINVAL if active_scan_mask is not set}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjl`ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"iio_device_unregister (C function)c.iio_device_unregisterhNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h6void iio_device_unregister (struct iio_dev *indio_dev)h]j)}(h5void iio_device_unregister(struct iio_dev *indio_dev)h](j/)}(hvoidh]hvoid}(hjahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hj ahhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM;ubj)}(h h]h }(hj ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ahhhjahM;ubj)}(hiio_device_unregisterh]j)}(hiio_device_unregisterh]hiio_device_unregister}(hj2ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.aubah}(h]h ](jjeh"]h$]h&]jjuh1jhj ahhhjahM;ubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjNahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJaubj)}(h h]h }(hj[ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJaubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjlahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiaubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjnamodnameN classnameNjj)}j]j)}jj4asbc.iio_device_unregisterasbuh1hhjJaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJaubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJaubj)}(h indio_devh]h indio_dev}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJaubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjFaubah}(h]h ]h"]h$]h&]jjuh1jfhj ahhhjahM;ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj ahhhjahM;ubah}(h]jaah ](jjeh"]h$]h&]jj)jhuh1jhjahM;hjahhubj)}(hhh]h)}(h*unregister a device from the IIO subsystemh]h*unregister a device from the IIO subsystem}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM8hjahhubah}(h]h ]h"]h$]h&]uh1jhjahhhjahM;ubeh}(h]h ](j#functioneh"]h$]h&]j j#j jaj jaj j j uh1jhhhjmhNhNubj )}(hY**Parameters** ``struct iio_dev *indio_dev`` Device structure representing the device.h](h)}(h**Parameters**h]j)}(hjah]h Parameters}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM<hjaubjg )}(hhh]jl )}(hG``struct iio_dev *indio_dev`` Device structure representing the device.h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjbh]hstruct iio_dev *indio_dev}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM>hj bubj )}(hhh]h)}(h)Device structure representing the device.h]h)Device structure representing the device.}(hj+bhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM9hj(bubah}(h]h ]h"]h$]h&]uh1j hj bubeh}(h]h ]h"]h$]h&]uh1jk hj'bhM>hj bubah}(h]h ]h"]h$]h&]uh1jf hjaubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)iio_device_claim_direct_mode (C function)c.iio_device_claim_direct_modehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hvoid iio_device_release_direct_mode(struct iio_dev *indio_dev)h](j/)}(hvoidh]hvoid}(hj#dhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjdhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hj2dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdhhhj1dhMubj)}(hiio_device_release_direct_modeh]j)}(hiio_device_release_direct_modeh]hiio_device_release_direct_mode}(hjDdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@dubah}(h]h ](jjeh"]h$]h&]jjuh1jhjdhhhj1dhMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj`dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\dubj)}(h h]h }(hjmdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\dubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj~dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{dubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjdmodnameN classnameNjj)}j]j)}jjFdsb c.iio_device_release_direct_modeasbuh1hhj\dubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\dubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\dubj)}(h indio_devh]h indio_dev}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\dubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjXdubah}(h]h ]h"]h$]h&]jjuh1jfhjdhhhj1dhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjdhhhj1dhMubah}(h]jdah ](jjeh"]h$]h&]jj)jhuh1jhj1dhMhjdhhubj)}(hhh]h)}(hreleases claim on direct modeh]hreleases claim on direct mode}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM|hjdhhubah}(h]h ]h"]h$]h&]uh1jhjdhhhj1dhMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jdj jdj j j uh1jhhhjmhNhNubj )}(h**Parameters** ``struct iio_dev *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_mode()h](h)}(h**Parameters**h]j)}(hjeh]h Parameters}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjdubjg )}(hhh]jl )}(hE``struct iio_dev *indio_dev`` the iio_dev associated with the device h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj$eh]hstruct iio_dev *indio_dev}(hj&ehhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"eubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chM}hjeubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hj=ehhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9ehM}hj:eubah}(h]h ]h"]h$]h&]uh1j hjeubeh}(h]h ]h"]h$]h&]uh1jk hj9ehM}hjeubah}(h]h ]h"]h$]h&]uh1jf hjdubh)}(h**Description**h]j)}(hj_eh]h Description}(hjaehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]eubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjdubh)}(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.}(hjuehhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjdubh)}(h'Use with iio_device_claim_direct_mode()h]h'Use with iio_device_claim_direct_mode()}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjdubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)iio_device_claim_buffer_mode (C function)c.iio_device_claim_buffer_modehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(hvoid iio_device_release_buffer_mode(struct iio_dev *indio_dev)h](j/)}(hvoidh]hvoid}(hjjghhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjfghhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hjyghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfghhhjxghMubj)}(hiio_device_release_buffer_modeh]j)}(hiio_device_release_buffer_modeh]hiio_device_release_buffer_mode}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubah}(h]h ](jjeh"]h$]h&]jjuh1jhjfghhhjxghMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjgmodnameN classnameNjj)}j]j)}jjgsb c.iio_device_release_buffer_modeasbuh1hhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj)}(h indio_devh]h indio_dev}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhjgubah}(h]h ]h"]h$]h&]jjuh1jfhjfghhhjxghMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjbghhhjxghMubah}(h]j]gah ](jjeh"]h$]h&]jj)jhuh1jhjxghMhj_ghhubj)}(hhh]h)}(hreleases claim on buffer modeh]hreleases claim on buffer mode}(hj*hhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj'hhhubah}(h]h ]h"]h$]h&]uh1jhj_ghhhjxghMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jBhj jBhj j j uh1jhhhjmhNhNubj )}(h**Parameters** ``struct iio_dev *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_claim_buffer_mode().h](h)}(h**Parameters**h]j)}(hjLhh]h Parameters}(hjNhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJhubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjFhubjg )}(hhh]jl )}(hE``struct iio_dev *indio_dev`` the iio_dev associated with the device h](jr )}(h``struct iio_dev *indio_dev``h]h)}(hjkhh]hstruct iio_dev *indio_dev}(hjmhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjehubj )}(hhh]h)}(h&the iio_dev associated with the deviceh]h&the iio_dev associated with the device}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhjhubah}(h]h ]h"]h$]h&]uh1j hjehubeh}(h]h ]h"]h$]h&]uh1jk hjhhMhjbhubah}(h]h ]h"]h$]h&]uh1jf hjFhubh)}(h**Description**h]j)}(hjhh]h Description}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjFhubh)}(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.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjFhubh)}(h(Use with iio_device_claim_buffer_mode().h]h(Use with iio_device_claim_buffer_mode().}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjFhubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(iio_device_get_current_mode (C function)c.iio_device_get_current_modehNtauh1j~hjmhhhNhNubj)}(hhh](j)}(h;int iio_device_get_current_mode (struct iio_dev *indio_dev)h]j)}(h:int iio_device_get_current_mode(struct iio_dev *indio_dev)h](j/)}(hinth]hint}(hjhhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j.hjhhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMubj)}(h h]h }(hj ihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhhjihMubj)}(hiio_device_get_current_modeh]j)}(hiio_device_get_current_modeh]hiio_device_get_current_mode}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhhjihMubjg)}(h(struct iio_dev *indio_dev)h]jm)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj7ihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3iubj)}(h h]h }(hjDihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3iubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjUihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRiubah}(h]h ]h"]h$]h&] refdomainj#reftypej reftargetjWimodnameN classnameNjj)}j]j)}jjisbc.iio_device_get_current_modeasbuh1hhj3iubj)}(h h]h }(hjuihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3iubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3iubj)}(h indio_devh]h indio_dev}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3iubeh}(h]h ]h"]h$]h&]noemphjjuh1jlhj/iubah}(h]h ]h"]h$]h&]jjuh1jfhjhhhhjihMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhhjihMubah}(h]jhah ](jjeh"]h$]h&]jj)jhuh1jhjihMhjhhhubj)}(hhh]h)}(hQhelper function providing read-only access to the opaque **currentmode** variableh](h9helper function providing read-only access to the opaque }(hjihhhNhNubj)}(h**currentmode**h]h currentmode}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubh variable}(hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjihhubah}(h]h ]h"]h$]h&]uh1jhjhhhhjihMubeh}(h]h ](j#functioneh"]h$]h&]j j#j jij jij j j uh1jhhhjmhNhNubj )}(hO**Parameters** ``struct iio_dev *indio_dev`` IIO device structure for deviceh](h)}(h**Parameters**h]j)}(hjih]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjiubjg )}(hhh]jl )}(h=``struct iio_dev *indio_dev`` IIO device structure for deviceh](jr )}(h``struct iio_dev *indio_dev``h]h)}(hj jh]hstruct iio_dev *indio_dev}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj jubah}(h]h ]h"]h$]h&]uh1jq hd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhjjubj )}(hhh]h)}(hIIO device structure for deviceh]hIIO device structure for device}(hj&jhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/iio/core:181: ./drivers/iio/industrialio-core.chMhj#jubah}(h]h ]h"]h$]h&]uh1j hjjubeh}(h]h ]h"]h$]h&]uh1jk hj"jhMhjjubah}(h]h ]h"]h$]h&]uh1jf hjiubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjmhhhNhNubeh}(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_handlerjjerror_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}(jcjj`jj[jjXjj<j9jjjgjSjjPju nametypes}(jcjj[jj<jjjSjuh}(j`jhjXjhj9jSjgj?jPjjmjjj j j j jjj}jjjjjjjjjj!j&jmjrj!j!j&j&j(j(j-j-j.j.j:0j?0j1j1jQ3jV3j 5j5j77j<7j39j89j:j:jr<jw<j=j=jt?jy?jQBjVBjCjCjEjEj FjFjGjGjHj#Hj(Ij-IjJjJjPLjULjRNjWNjPjPjQjQjTjTjVjVjYjYj[j[j2]j7]j_j_jaj aj_bjdbjdjdjejej]gjbgjhjhu 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.