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/userspace-api/gpio/chardevmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/zh_TW/userspace-api/gpio/chardevmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/it_IT/userspace-api/gpio/chardevmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/ja_JP/userspace-api/gpio/chardevmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/ko_KR/userspace-api/gpio/chardevmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/sp_SP/userspace-api/gpio/chardevmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhH/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev.rsthKubhsection)}(hhh](htitle)}(h#GPIO Character Device Userspace APIh]h#GPIO Character Device Userspace API}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(heThis is latest version (v2) of the character device API, as defined in ``include/uapi/linux/gpio.h.``h](hGThis is latest version (v2) of the character device API, as defined in }(hhhhhNhNubhliteral)}(h``include/uapi/linux/gpio.h.``h]hinclude/uapi/linux/gpio.h.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hFirst added in 5.10.h]hFirst added in 5.10.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubhnote)}(hXNDo NOT abuse userspace APIs to control hardware that has proper kernel drivers. There may already be a driver for your use case, and an existing kernel driver is sure to provide a superior solution to bitbashing from userspace. Read Documentation/driver-api/gpio/drivers-on-gpio.rst to avoid reinventing kernel wheels in userspace. Similarly, for multi-function lines there may be other subsystems, such as Documentation/spi/index.rst, Documentation/i2c/index.rst, Documentation/driver-api/pwm.rst, Documentation/w1/index.rst etc, that provide suitable drivers and APIs for your hardware.h](h)}(hDo NOT abuse userspace APIs to control hardware that has proper kernel drivers. There may already be a driver for your use case, and an existing kernel driver is sure to provide a superior solution to bitbashing from userspace.h]hDo NOT abuse userspace APIs to control hardware that has proper kernel drivers. There may already be a driver for your use case, and an existing kernel driver is sure to provide a superior solution to bitbashing from userspace.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubh)}(hgRead Documentation/driver-api/gpio/drivers-on-gpio.rst to avoid reinventing kernel wheels in userspace.h]hgRead Documentation/driver-api/gpio/drivers-on-gpio.rst to avoid reinventing kernel wheels in userspace.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubh)}(hXSimilarly, for multi-function lines there may be other subsystems, such as Documentation/spi/index.rst, Documentation/i2c/index.rst, Documentation/driver-api/pwm.rst, Documentation/w1/index.rst etc, that provide suitable drivers and APIs for your hardware.h]hXSimilarly, for multi-function lines there may be other subsystems, such as Documentation/spi/index.rst, Documentation/i2c/index.rst, Documentation/driver-api/pwm.rst, Documentation/w1/index.rst etc, that provide suitable drivers and APIs for your hardware.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hOBasic examples using the character device API can be found in ``tools/gpio/*``.h](h>Basic examples using the character device API can be found in }(hj-hhhNhNubh)}(h``tools/gpio/*``h]h tools/gpio/*}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubh.}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hgThe API is based around two major objects, the :ref:`gpio-v2-chip` and the :ref:`gpio-v2-line-request`.h](h/The API is based around two major objects, the }(hjMhhhNhNubh)}(h:ref:`gpio-v2-chip`h]hinline)}(hjWh]h gpio-v2-chip}(hj[hhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jYhjUubah}(h]h ]h"]h$]h&]refdocuserspace-api/gpio/chardev refdomainjfreftyperef refexplicitrefwarn reftarget gpio-v2-chipuh1hhhhKhjMubh and the }(hjMhhhNhNubh)}(h:ref:`gpio-v2-line-request`h]jZ)}(hjh]hgpio-v2-line-request}(hjhhhNhNubah}(h]h ](jestdstd-refeh"]h$]h&]uh1jYhj~ubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftyperef refexplicitrefwarnjxgpio-v2-line-requestuh1hhhhKhjMubh.}(hjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhtarget)}(h.. _gpio-v2-chip:h]h}(h]h ]h"]h$]h&]refid gpio-v2-chipuh1jhKhhhhhhubh)}(hhh](h)}(hChiph]hChip}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK"ubh)}(huThe Chip represents a single GPIO chip and is exposed to userspace using device files of the form ``/dev/gpiochipX``.h](hbThe Chip represents a single GPIO chip and is exposed to userspace using device files of the form }(hjhhhNhNubh)}(h``/dev/gpiochipX``h]h/dev/gpiochipX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK$hjhhubh)}(hEach chip supports a number of GPIO lines, :c:type:`chip.lines`. Lines on the chip are identified by an ``offset`` in the range from 0 to ``chip.lines - 1``, i.e. `[0,chip.lines)`.h](h+Each chip supports a number of GPIO lines, }(hjhhhNhNubh)}(h#:c:type:`chip.lines`h]h)}(hjh]h chip.lines}(hjhhhNhNubah}(h]h ](jecc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjx gpiochip_infouh1hhhhK'hjubh). Lines on the chip are identified by an }(hjhhhNhNubh)}(h ``offset``h]hoffset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh in the range from 0 to }(hjhhhNhNubh)}(h``chip.lines - 1``h]hchip.lines - 1}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, i.e. }(hjhhhNhNubhtitle_reference)}(h`[0,chip.lines)`h]h[0,chip.lines)}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j7hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK'hjhhubh)}(hLines are requested from the chip using gpio-v2-get-line-ioctl.rst and the resulting line request is used to access the GPIO chip's lines or monitor the lines for edge events.h]hLines are requested from the chip using gpio-v2-get-line-ioctl.rst and the resulting line request is used to access the GPIO chip’s lines or monitor the lines for edge events.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjhhubh)}(hWithin this documentation, the file descriptor returned by calling `open()` on the GPIO device file is referred to as ``chip_fd``.h](hCWithin this documentation, the file descriptor returned by calling }(hj_hhhNhNubj8)}(h`open()`h]hopen()}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1j7hj_ubh+ on the GPIO device file is referred to as }(hj_hhhNhNubh)}(h ``chip_fd``h]hchip_fd}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubh.}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK/hjhhubh)}(hhh](h)}(h Operationsh]h Operations}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK3ubh)}(h6The following operations may be performed on the chip:h]h6The following operations may be performed on the chip:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjhhubhcompound)}(hhh]htoctree)}(hhh]h}(h]h ]h"]h$]h&]hjrentries](Get Line)userspace-api/gpio/gpio-v2-get-line-ioctl Get Chip Info*userspace-api/gpio/gpio-get-chipinfo-ioctl Get Line Info-userspace-api/gpio/gpio-v2-get-lineinfo-ioctlWatch Line Info3userspace-api/gpio/gpio-v2-get-lineinfo-watch-ioctlUnwatch Line Info2userspace-api/gpio/gpio-get-lineinfo-unwatch-ioctlRead Line Info Changed Events0userspace-api/gpio/gpio-v2-lineinfo-changed-reade includefiles](jjjjjjemaxdepthJcaptionNglobhidden includehiddennumberedK titlesonly rawentries](jjjjjjeuh1jhhhK7hjubah}(h]h ]toctree-wrapperah"]h$]h&]uh1jhjhhhhhNubj)}(h.. _gpio-v2-line-request:h]h}(h]h ]h"]h$]h&]jgpio-v2-line-requestuh1jhKAhjhhhhubeh}(h] operationsah ]h"]h$] operationsah&]uh1hhjhhhhhK3 referencedKubeh}(h](chipjeh ]h"](chip gpio-v2-chipeh$]h&]uh1hhhhhhhhK"expect_referenced_by_name}jjsexpect_referenced_by_id}jjsubh)}(hhh](h)}(h Line Requesth]h Line Request}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKDubh)}(hX Line requests are created by gpio-v2-get-line-ioctl.rst and provide access to a set of requested lines. The line request is exposed to userspace via the anonymous file descriptor returned in :c:type:`request.fd` by gpio-v2-get-line-ioctl.rst.h](hLine requests are created by gpio-v2-get-line-ioctl.rst and provide access to a set of requested lines. The line request is exposed to userspace via the anonymous file descriptor returned in }(hjhhhNhNubh)}(h*:c:type:`request.fd`h]h)}(hj"h]h request.fd}(hj$hhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjxgpio_v2_line_requestuh1hhhhKFhjubh by gpio-v2-get-line-ioctl.rst.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKFhjhhubh)}(hYWithin this documentation, the line request file descriptor is referred to as ``req_fd``.h](hNWithin this documentation, the line request file descriptor is referred to as }(hjIhhhNhNubh)}(h ``req_fd``h]hreq_fd}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIubh.}(hjIhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKKhjhhubh)}(hhh](h)}(h Operationsh]h Operations}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihhhhhKOubh)}(h>The following operations may be performed on the line request:h]h>The following operations may be performed on the line request:}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjihhubj)}(hhh]j)}(hhh]h}(h]h ]h"]h$]h&]hjrj](Get Line Values0userspace-api/gpio/gpio-v2-line-get-values-ioctlSet Line Values0userspace-api/gpio/gpio-v2-line-set-values-ioctlRead Line Edge Events*userspace-api/gpio/gpio-v2-line-event-readReconfigure Lines0userspace-api/gpio/gpio-v2-line-set-config-ioctlej](jjjjejJjNjjjjKjj](jjjjeuh1jhhhKShjubah}(h]h ]jah"]h$]h&]uh1jhjihhhhhNubeh}(h]id1ah ]h"]h$]jah&]uh1hhjhhhhhKOjKubeh}(h]( line-requestjeh ]h"]( line requestgpio-v2-line-requesteh$]h&]uh1hhhhhhhhKDj}jjsj}jjsubh)}(hhh](h)}(hTypesh]hTypes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK\ubh)}(h{This section contains the structs and enums that are referenced by the API v2, as defined in ``include/uapi/linux/gpio.h``.h](h]This section contains the structs and enums that are referenced by the API v2, as defined in }(hjhhhNhNubh)}(h``include/uapi/linux/gpio.h``h]hinclude/uapi/linux/gpio.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK^hjhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlegpiochip_info (C struct)c.gpiochip_infohNtauh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhNubhdesc)}(hhh](hdesc_signature)}(h gpiochip_infoh]hdesc_signature_line)}(hstruct gpiochip_infoh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhj hhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubhdesc_sig_space)}(h h]h }(hj#hhhNhNubah}(h]h ]wah"]h$]h&]uh1j!hj hhhj hKubh desc_name)}(h gpiochip_infoh]h desc_sig_name)}(hjh]h gpiochip_info}(hj:hhhNhNubah}(h]h ]nah"]h$]h&]uh1j8hj4ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j2hj hhhj hKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1j sphinx_line_type declaratorhjhhhj hKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhj hKhjhhubh desc_content)}(hhh]h)}(h%Information about a certain GPIO chiph]h%Information about a certain GPIO chip}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjfhhubah}(h]h ]h"]h$]h&]uh1jdhjhhhj hKubeh}(h]h ](jstructeh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jhhhjhjhNubh container)}(hXq**Definition**:: struct gpiochip_info { char name[GPIO_MAX_NAME_SIZE]; char label[GPIO_MAX_NAME_SIZE]; __u32 lines; }; **Members** ``name`` the Linux kernel name of this GPIO chip ``label`` a functional name for this GPIO chip, such as a product number, may be empty (i.e. label[0] == '\0') ``lines`` number of GPIO lines on this chiph](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubh literal_block)}(hqstruct gpiochip_info { char name[GPIO_MAX_NAME_SIZE]; char label[GPIO_MAX_NAME_SIZE]; __u32 lines; };h]hqstruct gpiochip_info { char name[GPIO_MAX_NAME_SIZE]; char label[GPIO_MAX_NAME_SIZE]; __u32 lines; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK hjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK&hjubhdefinition_list)}(hhh](hdefinition_list_item)}(h1``name`` the Linux kernel name of this GPIO chip h](hterm)}(h``name``h]h)}(hjh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubh definition)}(hhh]h)}(h'the Linux kernel name of this GPIO chiph]h'the Linux kernel name of this GPIO chip}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(ho``label`` a functional name for this GPIO chip, such as a product number, may be empty (i.e. label[0] == '\0') h](j)}(h ``label``h]h)}(hj#h]hlabel}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hda functional name for this GPIO chip, such as a product number, may be empty (i.e. label[0] == '\0')h]hha functional name for this GPIO chip, such as a product number, may be empty (i.e. label[0] == ‘0’)}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hKhjubj)}(h+``lines`` number of GPIO lines on this chiph](j)}(h ``lines``h]h)}(hj]h]hlines}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjWubj)}(hhh]h)}(h!number of GPIO lines on this chiph]h!number of GPIO lines on this chip}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpio_v2_line_flag (C enum)c.gpio_v2_line_flaghNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_flagh]j )}(henum gpio_v2_line_flagh](j)}(henumh]henum}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK%ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhK%ubj3)}(hgpio_v2_line_flagh]j9)}(hjh]hgpio_v2_line_flag}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhjhK%ubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhK%ubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhK%hjhhubje)}(hhh]h)}(hM:c:type:`struct gpio_v2_line_attribute `.flags valuesh](h)}(h@:c:type:`struct gpio_v2_line_attribute `h]h)}(hjh]hstruct gpio_v2_line_attribute}(hjhhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)} identifierjsbc.gpio_v2_line_flagasbjxgpio_v2_line_attributeuh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubh .flags values}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK6hjhhubah}(h]h ]h"]h$]h&]uh1jdhjhhhjhK%ubeh}(h]h ](jenumeh"]h$]h&]jjjjAjjAjjjuh1jhhhjhjhNubj)}(hX**Constants** ``GPIO_V2_LINE_FLAG_USED`` line is not available for request ``GPIO_V2_LINE_FLAG_ACTIVE_LOW`` line active state is physical low ``GPIO_V2_LINE_FLAG_INPUT`` line is an input ``GPIO_V2_LINE_FLAG_OUTPUT`` line is an output ``GPIO_V2_LINE_FLAG_EDGE_RISING`` line detects rising (inactive to active) edges ``GPIO_V2_LINE_FLAG_EDGE_FALLING`` line detects falling (active to inactive) edges ``GPIO_V2_LINE_FLAG_OPEN_DRAIN`` line is an open drain output ``GPIO_V2_LINE_FLAG_OPEN_SOURCE`` line is an open source output ``GPIO_V2_LINE_FLAG_BIAS_PULL_UP`` line has pull-up bias enabled ``GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN`` line has pull-down bias enabled ``GPIO_V2_LINE_FLAG_BIAS_DISABLED`` line has bias disabled ``GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME`` line events contain REALTIME timestamps ``GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE`` line events contain timestamps from the hardware timestamping engine (HTE) subsystemh](h)}(h **Constants**h]j)}(hjKh]h Constants}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK:hjEubj)}(hhh](j)}(h=``GPIO_V2_LINE_FLAG_USED`` line is not available for request h](j)}(h``GPIO_V2_LINE_FLAG_USED``h]h)}(hjjh]hGPIO_V2_LINE_FLAG_USED}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK=hjdubj)}(hhh]h)}(h!line is not available for requesth]h!line is not available for request}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK=hjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhK=hjaubj)}(hC``GPIO_V2_LINE_FLAG_ACTIVE_LOW`` line active state is physical low h](j)}(h ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``h]h)}(hjh]hGPIO_V2_LINE_FLAG_ACTIVE_LOW}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK@hjubj)}(hhh]h)}(h!line active state is physical lowh]h!line active state is physical low}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK@hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK@hjaubj)}(h-``GPIO_V2_LINE_FLAG_INPUT`` line is an input h](j)}(h``GPIO_V2_LINE_FLAG_INPUT``h]h)}(hjh]hGPIO_V2_LINE_FLAG_INPUT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKChjubj)}(hhh]h)}(hline is an inputh]hline is an input}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKChjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKChjaubj)}(h/``GPIO_V2_LINE_FLAG_OUTPUT`` line is an output h](j)}(h``GPIO_V2_LINE_FLAG_OUTPUT``h]h)}(hjh]hGPIO_V2_LINE_FLAG_OUTPUT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKFhjubj)}(hhh]h)}(hline is an outputh]hline is an output}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKFhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hKFhjaubj)}(hQ``GPIO_V2_LINE_FLAG_EDGE_RISING`` line detects rising (inactive to active) edges h](j)}(h!``GPIO_V2_LINE_FLAG_EDGE_RISING``h]h)}(hjNh]hGPIO_V2_LINE_FLAG_EDGE_RISING}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKJhjHubj)}(hhh]h)}(h.line detects rising (inactive to active) edgesh]h.line detects rising (inactive to active) edges}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKIhjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchKJhjaubj)}(hS``GPIO_V2_LINE_FLAG_EDGE_FALLING`` line detects falling (active to inactive) edges h](j)}(h"``GPIO_V2_LINE_FLAG_EDGE_FALLING``h]h)}(hjh]hGPIO_V2_LINE_FLAG_EDGE_FALLING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKNhjubj)}(hhh]h)}(h/line detects falling (active to inactive) edgesh]h/line detects falling (active to inactive) edges}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKNhjaubj)}(h>``GPIO_V2_LINE_FLAG_OPEN_DRAIN`` line is an open drain output h](j)}(h ``GPIO_V2_LINE_FLAG_OPEN_DRAIN``h]h)}(hjh]hGPIO_V2_LINE_FLAG_OPEN_DRAIN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKQhjubj)}(hhh]h)}(hline is an open drain outputh]hline is an open drain output}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKQhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKQhjaubj)}(h@``GPIO_V2_LINE_FLAG_OPEN_SOURCE`` line is an open source output h](j)}(h!``GPIO_V2_LINE_FLAG_OPEN_SOURCE``h]h)}(hjh]hGPIO_V2_LINE_FLAG_OPEN_SOURCE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKThjubj)}(hhh]h)}(hline is an open source outputh]hline is an open source output}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKThjaubj)}(hA``GPIO_V2_LINE_FLAG_BIAS_PULL_UP`` line has pull-up bias enabled h](j)}(h"``GPIO_V2_LINE_FLAG_BIAS_PULL_UP``h]h)}(hj4h]hGPIO_V2_LINE_FLAG_BIAS_PULL_UP}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKWhj.ubj)}(hhh]h)}(hline has pull-up bias enabledh]hline has pull-up bias enabled}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhKWhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhKWhjaubj)}(hE``GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN`` line has pull-down bias enabled h](j)}(h$``GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN``h]h)}(hjmh]h GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKZhjgubj)}(hhh]h)}(hline has pull-down bias enabledh]hline has pull-down bias enabled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKZhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhKZhjaubj)}(h;``GPIO_V2_LINE_FLAG_BIAS_DISABLED`` line has bias disabled h](j)}(h#``GPIO_V2_LINE_FLAG_BIAS_DISABLED``h]h)}(hjh]hGPIO_V2_LINE_FLAG_BIAS_DISABLED}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK]hjubj)}(hhh]h)}(hline has bias disabledh]hline has bias disabled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK]hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK]hjaubj)}(hS``GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME`` line events contain REALTIME timestamps h](j)}(h*``GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME``h]h)}(hjh]h&GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK`hjubj)}(hhh]h)}(h'line events contain REALTIME timestampsh]h'line events contain REALTIME timestamps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK`hjaubj)}(hz``GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE`` line events contain timestamps from the hardware timestamping engine (HTE) subsystemh](j)}(h%``GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE``h]h)}(hj h]h!GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKchj ubj)}(hhh]h)}(hTline events contain timestamps from the hardware timestamping engine (HTE) subsystemh]hTline events contain timestamps from the hardware timestamping engine (HTE) subsystem}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj- hKchj. ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj- hKchjaubeh}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpio_v2_line_values (C struct)c.gpio_v2_line_valueshNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_valuesh]j )}(hstruct gpio_v2_line_valuesh](j)}(hjh]hstruct}(hjq hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm hhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjm hhhj~ hKjubj3)}(hgpio_v2_line_valuesh]j9)}(hjk h]hgpio_v2_line_values}(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjm hhhj~ hKjubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhji hhhj~ hKjubah}(h]jd ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj~ hKjhjf hhubje)}(hhh]h)}(hValues of GPIO linesh]hValues of GPIO lines}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKYhj hhubah}(h]h ]h"]h$]h&]uh1jdhjf hhhj~ hKjubeh}(h]h ](jstructeh"]h$]h&]jjjj jj jjjuh1jhhhjhjhNubj)}(hX**Definition**:: struct gpio_v2_line_values { __aligned_u64 bits; __aligned_u64 mask; }; **Members** ``bits`` a bitmap containing the value of the lines, set to 1 for active and 0 for inactive ``mask`` a bitmap identifying the lines to get or set, with each bit number corresponding to the index into :c:type:`struct gpio_v2_line_request `.offsetsh](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&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK]hj ubj)}(hOstruct gpio_v2_line_values { __aligned_u64 bits; __aligned_u64 mask; };h]hOstruct gpio_v2_line_values { __aligned_u64 bits; __aligned_u64 mask; };}hj sbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK_hj ubh)}(h **Members**h]j)}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKdhj ubj)}(hhh](j)}(h\``bits`` a bitmap containing the value of the lines, set to 1 for active and 0 for inactive h](j)}(h``bits``h]h)}(hj h]hbits}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK\hj ubj)}(hhh]h)}(hRa bitmap containing the value of the lines, set to 1 for active and 0 for inactiveh]hRa bitmap containing the value of the lines, set to 1 for active and 0 for inactive}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK[hj6 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj5 hK\hj ubj)}(h``mask`` a bitmap identifying the lines to get or set, with each bit number corresponding to the index into :c:type:`struct gpio_v2_line_request `.offsetsh](j)}(h``mask``h]h)}(hjZ h]hmask}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK^hjT ubj)}(hhh]h)}(ha bitmap identifying the lines to get or set, with each bit number corresponding to the index into :c:type:`struct gpio_v2_line_request `.offsetsh](hca bitmap identifying the lines to get or set, with each bit number corresponding to the index into }(hjs hhhNhNubh)}(h<:c:type:`struct gpio_v2_line_request `h]h)}(hj} h]hstruct gpio_v2_line_request}(hj hhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhj{ ubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj)}j"]sbjxgpio_v2_line_requestuh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK]hjs ubh.offsets}(hjs hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hK]hjp ubah}(h]h ]h"]h$]h&]uh1jhjT ubeh}(h]h ]h"]h$]h&]uh1jhjo hK^hj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpio_v2_line_attr_id (C enum)c.gpio_v2_line_attr_idhNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_attr_idh]j )}(henum gpio_v2_line_attr_idh](j)}(hjh]henum}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKeubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj hhhj hKeubj3)}(hgpio_v2_line_attr_idh]j9)}(hj h]hgpio_v2_line_attr_id}(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj hhhj hKeubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj hhhj hKeubah}(h]j ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj hKehj hhubje)}(hhh]h)}(h:c:type:`struct gpio_v2_line_attribute `.id values identifying which field of the attribute union is in use.h](h)}(h@:c:type:`struct gpio_v2_line_attribute `h]h)}(hj" h]hstruct gpio_v2_line_attribute}(hj$ hhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj)}j"]j%)}j(j sbc.gpio_v2_line_attr_idasbjxgpio_v2_line_attributeuh1hhj,hKhj ubhD.id values identifying which field of the attribute union is in use.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKfhj hhubah}(h]h ]h"]h$]h&]uh1jdhj hhhj hKeubeh}(h]h ](jenumeh"]h$]h&]jjjjZ jjZ jjjuh1jhhhjhjhNubj)}(h**Constants** ``GPIO_V2_LINE_ATTR_ID_FLAGS`` flags field is in use ``GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES`` values field is in use ``GPIO_V2_LINE_ATTR_ID_DEBOUNCE`` debounce_period_us field is in useh](h)}(h **Constants**h]j)}(hjd h]h Constants}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKjhj^ ubj)}(hhh](j)}(h5``GPIO_V2_LINE_ATTR_ID_FLAGS`` flags field is in use h](j)}(h``GPIO_V2_LINE_ATTR_ID_FLAGS``h]h)}(hj h]hGPIO_V2_LINE_ATTR_ID_FLAGS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKmhj} ubj)}(hhh]h)}(hflags field is in useh]hflags field is in use}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKmhj ubah}(h]h ]h"]h$]h&]uh1jhj} ubeh}(h]h ]h"]h$]h&]uh1jhj hKmhjz ubj)}(h>``GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES`` values field is in use h](j)}(h&``GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES``h]h)}(hj h]h"GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKphj ubj)}(hhh]h)}(hvalues field is in useh]hvalues field is in use}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKphj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKphjz ubj)}(hD``GPIO_V2_LINE_ATTR_ID_DEBOUNCE`` debounce_period_us field is in useh](j)}(h!``GPIO_V2_LINE_ATTR_ID_DEBOUNCE``h]h)}(hj h]hGPIO_V2_LINE_ATTR_ID_DEBOUNCE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKrhj ubj)}(hhh]h)}(h"debounce_period_us field is in useh]h"debounce_period_us field is in use}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKshj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKrhjz ubeh}(h]h ]h"]h$]h&]uh1jhj^ ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!gpio_v2_line_attribute (C struct)c.gpio_v2_line_attributehNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_attributeh]j )}(hstruct gpio_v2_line_attributeh](j)}(hjh]hstruct}(hjO hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK hhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKyubj")}(h h]h }(hj] hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjK hhhj\ hKyubj3)}(hgpio_v2_line_attributeh]j9)}(hjI h]hgpio_v2_line_attribute}(hjo hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjk ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjK hhhj\ hKyubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjG hhhj\ hKyubah}(h]jB ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj\ hKyhjD hhubje)}(hhh]h)}(h"a configurable attribute of a lineh]h"a configurable attribute of a line}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKshj hhubah}(h]h ]h"]h$]h&]uh1jdhjD hhhj\ hKyubeh}(h]h ](jstructeh"]h$]h&]jjjj jj jjjuh1jhhhjhjhNubj)}(hX**Definition**:: struct gpio_v2_line_attribute { __u32 id; __u32 padding; union { __aligned_u64 flags; __aligned_u64 values; __u32 debounce_period_us; }; }; **Members** ``id`` attribute identifier with value from :c:type:`enum gpio_v2_line_attr_id ` ``padding`` reserved for future use and must be zero filled ``{unnamed_union}`` anonymous ``flags`` if id is ``GPIO_V2_LINE_ATTR_ID_FLAGS``, the flags for the GPIO line, with values from :c:type:`enum gpio_v2_line_flag `, such as ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``, ``GPIO_V2_LINE_FLAG_OUTPUT`` etc, added together. This overrides the default flags contained in the :c:type:`struct gpio_v2_line_config ` for the associated line. ``values`` if id is ``GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES``, a bitmap containing the values to which the lines will be set, with each bit number corresponding to the index into :c:type:`struct gpio_v2_line_request `.offsets ``debounce_period_us`` if id is ``GPIO_V2_LINE_ATTR_ID_DEBOUNCE``, the desired debounce period, in microsecondsh](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&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKwhj ubj)}(hstruct gpio_v2_line_attribute { __u32 id; __u32 padding; union { __aligned_u64 flags; __aligned_u64 values; __u32 debounce_period_us; }; };h]hstruct gpio_v2_line_attribute { __u32 id; __u32 padding; union { __aligned_u64 flags; __aligned_u64 values; __u32 debounce_period_us; }; };}hj sbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKyhj ubh)}(h **Members**h]j)}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj ubj)}(hhh](j)}(hg``id`` attribute identifier with value from :c:type:`enum gpio_v2_line_attr_id ` h](j)}(h``id``h]h)}(hj h]hid}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKuhj ubj)}(hhh]h)}(h_attribute identifier with value from :c:type:`enum gpio_v2_line_attr_id `h](h%attribute identifier with value from }(hj hhhNhNubh)}(h::c:type:`enum gpio_v2_line_attr_id `h]h)}(hj! h]henum gpio_v2_line_attr_id}(hj# hhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj jxgpio_v2_line_attr_iduh1hhj hKuhj ubeh}(h]h ]h"]h$]h&]uh1hhj hKuhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKuhj ubj)}(h<``padding`` reserved for future use and must be zero filled h](j)}(h ``padding``h]h)}(hjV h]hpadding}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjT ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKvhjP ubj)}(hhh]h)}(h/reserved for future use and must be zero filledh]h/reserved for future use and must be zero filled}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjk hKvhjl ubah}(h]h ]h"]h$]h&]uh1jhjP ubeh}(h]h ]h"]h$]h&]uh1jhjk hKvhj ubj)}(h``{unnamed_union}`` anonymous h](j)}(h``{unnamed_union}``h]h)}(hj h]h{unnamed_union}}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKyhj ubj)}(hhh]h)}(h anonymoush]h anonymous}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKyhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKyhj ubj)}(hXz``flags`` if id is ``GPIO_V2_LINE_ATTR_ID_FLAGS``, the flags for the GPIO line, with values from :c:type:`enum gpio_v2_line_flag `, such as ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``, ``GPIO_V2_LINE_FLAG_OUTPUT`` etc, added together. This overrides the default flags contained in the :c:type:`struct gpio_v2_line_config ` for the associated line. h](j)}(h ``flags``h]h)}(hj h]hflags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK{hj ubj)}(hhh]h)}(hXoif id is ``GPIO_V2_LINE_ATTR_ID_FLAGS``, the flags for the GPIO line, with values from :c:type:`enum gpio_v2_line_flag `, such as ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``, ``GPIO_V2_LINE_FLAG_OUTPUT`` etc, added together. This overrides the default flags contained in the :c:type:`struct gpio_v2_line_config ` for the associated line.h](h if id is }(hj hhhNhNubh)}(h``GPIO_V2_LINE_ATTR_ID_FLAGS``h]hGPIO_V2_LINE_ATTR_ID_FLAGS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh0, the flags for the GPIO line, with values from }(hj hhhNhNubh)}(h4:c:type:`enum gpio_v2_line_flag `h]h)}(hj h]henum gpio_v2_line_flag}(hj hhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj jxgpio_v2_line_flaguh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKwhj ubh , such as }(hj hhhNhNubh)}(h ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``h]hGPIO_V2_LINE_FLAG_ACTIVE_LOW}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh, }(hj hhhNhNubh)}(h``GPIO_V2_LINE_FLAG_OUTPUT``h]hGPIO_V2_LINE_FLAG_OUTPUT}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubhI etc, added together. This overrides the default flags contained in the }(hj hhhNhNubh)}(h::c:type:`struct gpio_v2_line_config `h]h)}(hjEh]hstruct gpio_v2_line_config}(hjGhhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhjCubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj jxgpio_v2_line_configuh1hhjhKwhj ubh for the associated line.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKwhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hK{hj ubj)}(h``values`` if id is ``GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES``, a bitmap containing the values to which the lines will be set, with each bit number corresponding to the index into :c:type:`struct gpio_v2_line_request `.offsets h](j)}(h ``values``h]h)}(hj~h]hvalues}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjxubj)}(hhh]h)}(hif id is ``GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES``, a bitmap containing the values to which the lines will be set, with each bit number corresponding to the index into :c:type:`struct gpio_v2_line_request `.offsetsh](h if id is }(hjhhhNhNubh)}(h&``GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES``h]h"GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhv, a bitmap containing the values to which the lines will be set, with each bit number corresponding to the index into }(hjhhhNhNubh)}(h<:c:type:`struct gpio_v2_line_request `h]h)}(hjh]hstruct gpio_v2_line_request}(hjhhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj jxgpio_v2_line_requestuh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK|hjubh.offsets}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK|hjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhKhj ubj)}(ho``debounce_period_us`` if id is ``GPIO_V2_LINE_ATTR_ID_DEBOUNCE``, the desired debounce period, in microsecondsh](j)}(h``debounce_period_us``h]h)}(hjh]hdebounce_period_us}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hXif id is ``GPIO_V2_LINE_ATTR_ID_DEBOUNCE``, the desired debounce period, in microsecondsh](h if id is }(hjhhhNhNubh)}(h!``GPIO_V2_LINE_ATTR_ID_DEBOUNCE``h]hGPIO_V2_LINE_ATTR_ID_DEBOUNCE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh., the desired debounce period, in microseconds}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(gpio_v2_line_config_attribute (C struct)c.gpio_v2_line_config_attributehNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_config_attributeh]j )}(h$struct gpio_v2_line_config_attributeh](j)}(hjh]hstruct}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjThhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjThhhjehKubj3)}(hgpio_v2_line_config_attributeh]j9)}(hjRh]hgpio_v2_line_config_attribute}(hjxhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjtubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjThhhjehKubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjPhhhjehKubah}(h]jKah ](j\j]eh"]h$]h&]jajb)jchuh1jhjehKhjMhhubje)}(hhh]h)}(hMa configuration attribute associated with one or more of the requested lines.h]hMa configuration attribute associated with one or more of the requested lines.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jdhjMhhhjehKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jhhhjhjhNubj)}(hX**Definition**:: struct gpio_v2_line_config_attribute { struct gpio_v2_line_attribute attr; __aligned_u64 mask; }; **Members** ``attr`` the configurable attribute ``mask`` a bitmap identifying the lines to which the attribute applies, with each bit number corresponding to the index into :c:type:`struct gpio_v2_line_request `.offsetsh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(histruct gpio_v2_line_config_attribute { struct gpio_v2_line_attribute attr; __aligned_u64 mask; };h]histruct gpio_v2_line_config_attribute { struct gpio_v2_line_attribute attr; __aligned_u64 mask; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh](j)}(h$``attr`` the configurable attribute h](j)}(h``attr``h]h)}(hjh]hattr}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hthe configurable attributeh]hthe configurable attribute}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h``mask`` a bitmap identifying the lines to which the attribute applies, with each bit number corresponding to the index into :c:type:`struct gpio_v2_line_request `.offsetsh](j)}(h``mask``h]h)}(hj@h]hmask}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj:ubj)}(hhh]h)}(ha bitmap identifying the lines to which the attribute applies, with each bit number corresponding to the index into :c:type:`struct gpio_v2_line_request `.offsetsh](hta bitmap identifying the lines to which the attribute applies, with each bit number corresponding to the index into }(hjYhhhNhNubh)}(h<:c:type:`struct gpio_v2_line_request `h]h)}(hjch]hstruct gpio_v2_line_request}(hjehhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhjaubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj jxgpio_v2_line_requestuh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjYubh.offsets}(hjYhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpio_v2_line_config (C struct)c.gpio_v2_line_confighNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_configh]j )}(hstruct gpio_v2_line_configh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj3)}(hgpio_v2_line_configh]j9)}(hjh]hgpio_v2_line_config}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhKubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhKhjhhubje)}(hhh]h)}(hConfiguration for GPIO linesh]hConfiguration for GPIO lines}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jdhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jhhhjhjhNubj)}(hX**Definition**:: struct gpio_v2_line_config { __aligned_u64 flags; __u32 num_attrs; __u32 padding[5]; struct gpio_v2_line_config_attribute attrs[GPIO_V2_LINE_NUM_ATTRS_MAX]; }; **Members** ``flags`` flags for the GPIO lines, with values from :c:type:`enum gpio_v2_line_flag `, such as ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``, ``GPIO_V2_LINE_FLAG_OUTPUT`` etc, added together. This is the default for all requested lines but may be overridden for particular lines using **attrs**. ``num_attrs`` the number of attributes in **attrs** ``padding`` reserved for future use and must be zero filled ``attrs`` the configuration attributes associated with the requested lines. Any attribute should only be associated with a particular line once. If an attribute is associated with a line multiple times then the first occurrence (i.e. lowest index) has precedence.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hstruct gpio_v2_line_config { __aligned_u64 flags; __u32 num_attrs; __u32 padding[5]; struct gpio_v2_line_config_attribute attrs[GPIO_V2_LINE_NUM_ATTRS_MAX]; };h]hstruct gpio_v2_line_config { __aligned_u64 flags; __u32 num_attrs; __u32 padding[5]; struct gpio_v2_line_config_attribute attrs[GPIO_V2_LINE_NUM_ATTRS_MAX]; };}hj<sbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubh)}(h **Members**h]j)}(hjMh]hMembers}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh](j)}(hX0``flags`` flags for the GPIO lines, with values from :c:type:`enum gpio_v2_line_flag `, such as ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``, ``GPIO_V2_LINE_FLAG_OUTPUT`` etc, added together. This is the default for all requested lines but may be overridden for particular lines using **attrs**. h](j)}(h ``flags``h]h)}(hjlh]hflags}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjfubj)}(hhh]h)}(hX%flags for the GPIO lines, with values from :c:type:`enum gpio_v2_line_flag `, such as ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``, ``GPIO_V2_LINE_FLAG_OUTPUT`` etc, added together. This is the default for all requested lines but may be overridden for particular lines using **attrs**.h](h+flags for the GPIO lines, with values from }(hjhhhNhNubh)}(h4:c:type:`enum gpio_v2_line_flag `h]h)}(hjh]henum gpio_v2_line_flag}(hjhhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj jxgpio_v2_line_flaguh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubh , such as }(hjhhhNhNubh)}(h ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``h]hGPIO_V2_LINE_FLAG_ACTIVE_LOW}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, }(hjhhhNhNubh)}(h``GPIO_V2_LINE_FLAG_OUTPUT``h]hGPIO_V2_LINE_FLAG_OUTPUT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubht etc, added together. This is the default for all requested lines but may be overridden for particular lines using }(hjhhhNhNubj)}(h **attrs**h]hattrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhKhjcubj)}(h4``num_attrs`` the number of attributes in **attrs** h](j)}(h ``num_attrs``h]h)}(hjh]h num_attrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(h%the number of attributes in **attrs**h](hthe number of attributes in }(hjhhhNhNubj)}(h **attrs**h]hattrs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjcubj)}(h<``padding`` reserved for future use and must be zero filled h](j)}(h ``padding``h]h)}(hjFh]hpadding}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj@ubj)}(hhh]h)}(h/reserved for future use and must be zero filledh]h/reserved for future use and must be zero filled}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hKhj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hKhjcubj)}(hX ``attrs`` the configuration attributes associated with the requested lines. Any attribute should only be associated with a particular line once. If an attribute is associated with a line multiple times then the first occurrence (i.e. lowest index) has precedence.h](j)}(h ``attrs``h]h)}(hjh]hattrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjyubj)}(hhh]h)}(hthe configuration attributes associated with the requested lines. Any attribute should only be associated with a particular line once. If an attribute is associated with a line multiple times then the first occurrence (i.e. lowest index) has precedence.h]hthe configuration attributes associated with the requested lines. Any attribute should only be associated with a particular line once. If an attribute is associated with a line multiple times then the first occurrence (i.e. lowest index) has precedence.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhKhjcubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpio_v2_line_request (C struct)c.gpio_v2_line_requesthNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_requesth]j )}(hstruct gpio_v2_line_requesth](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj3)}(hgpio_v2_line_requesth]j9)}(hjh]hgpio_v2_line_request}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhKubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhKhjhhubje)}(hhh]h)}(h*Information about a request for GPIO linesh]h*Information about a request for GPIO lines}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jdhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjj3jj3jjjuh1jhhhjhjhNubj)}(hX **Definition**:: struct gpio_v2_line_request { __u32 offsets[GPIO_V2_LINES_MAX]; char consumer[GPIO_MAX_NAME_SIZE]; struct gpio_v2_line_config config; __u32 num_lines; __u32 event_buffer_size; __u32 padding[5]; __s32 fd; }; **Members** ``offsets`` an array of desired lines, specified by offset index for the associated GPIO chip ``consumer`` a desired consumer label for the selected GPIO lines such as "my-bitbanged-relay" ``config`` requested configuration for the lines ``num_lines`` number of lines requested in this request, i.e. the number of valid fields in the ``GPIO_V2_LINES_MAX`` sized arrays, set to 1 to request a single line ``event_buffer_size`` a suggested minimum number of line events that the kernel should buffer. This is only relevant if edge detection is enabled in the configuration. Note that this is only a suggested value and the kernel may allocate a larger buffer or cap the size of the buffer. If this field is zero then the buffer size defaults to a minimum of **num_lines** * 16. ``padding`` reserved for future use and must be zero filled ``fd`` after a successful ``GPIO_V2_GET_LINE_IOCTL`` operation, contains a valid anonymous file descriptor representing the requesth](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&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj7ubj)}(hstruct gpio_v2_line_request { __u32 offsets[GPIO_V2_LINES_MAX]; char consumer[GPIO_MAX_NAME_SIZE]; struct gpio_v2_line_config config; __u32 num_lines; __u32 event_buffer_size; __u32 padding[5]; __s32 fd; };h]hstruct gpio_v2_line_request { __u32 offsets[GPIO_V2_LINES_MAX]; char consumer[GPIO_MAX_NAME_SIZE]; struct gpio_v2_line_config config; __u32 num_lines; __u32 event_buffer_size; __u32 padding[5]; __s32 fd; };}hjXsbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj7ubh)}(h **Members**h]j)}(hjih]hMembers}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj7ubj)}(hhh](j)}(h^``offsets`` an array of desired lines, specified by offset index for the associated GPIO chip h](j)}(h ``offsets``h]h)}(hjh]hoffsets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hQan array of desired lines, specified by offset index for the associated GPIO chiph]hQan array of desired lines, specified by offset index for the associated GPIO chip}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h_``consumer`` a desired consumer label for the selected GPIO lines such as "my-bitbanged-relay" h](j)}(h ``consumer``h]h)}(hjh]hconsumer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hQa desired consumer label for the selected GPIO lines such as "my-bitbanged-relay"h]hUa desired consumer label for the selected GPIO lines such as “my-bitbanged-relay”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h1``config`` requested configuration for the lines h](j)}(h ``config``h]h)}(hjh]hconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(h%requested configuration for the linesh]h%requested configuration for the lines}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h``num_lines`` number of lines requested in this request, i.e. the number of valid fields in the ``GPIO_V2_LINES_MAX`` sized arrays, set to 1 to request a single line h](j)}(h ``num_lines``h]h)}(hj5h]h num_lines}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj/ubj)}(hhh]h)}(hnumber of lines requested in this request, i.e. the number of valid fields in the ``GPIO_V2_LINES_MAX`` sized arrays, set to 1 to request a single lineh](hRnumber of lines requested in this request, i.e. the number of valid fields in the }(hjNhhhNhNubh)}(h``GPIO_V2_LINES_MAX``h]hGPIO_V2_LINES_MAX}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNubh0 sized arrays, set to 1 to request a single line}(hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjKubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhjJhKhjubj)}(hXu``event_buffer_size`` a suggested minimum number of line events that the kernel should buffer. This is only relevant if edge detection is enabled in the configuration. Note that this is only a suggested value and the kernel may allocate a larger buffer or cap the size of the buffer. If this field is zero then the buffer size defaults to a minimum of **num_lines** * 16. h](j)}(h``event_buffer_size``h]h)}(hjh]hevent_buffer_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj{ubj)}(hhh]h)}(hX^a suggested minimum number of line events that the kernel should buffer. This is only relevant if edge detection is enabled in the configuration. Note that this is only a suggested value and the kernel may allocate a larger buffer or cap the size of the buffer. If this field is zero then the buffer size defaults to a minimum of **num_lines** * 16.h](hXKa suggested minimum number of line events that the kernel should buffer. This is only relevant if edge detection is enabled in the configuration. Note that this is only a suggested value and the kernel may allocate a larger buffer or cap the size of the buffer. If this field is zero then the buffer size defaults to a minimum of }(hjhhhNhNubj)}(h **num_lines**h]h num_lines}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh * 16.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h<``padding`` reserved for future use and must be zero filled h](j)}(h ``padding``h]h)}(hjh]hpadding}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(h/reserved for future use and must be zero filledh]h/reserved for future use and must be zero filled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h``fd`` after a successful ``GPIO_V2_GET_LINE_IOCTL`` operation, contains a valid anonymous file descriptor representing the requesth](j)}(h``fd``h]h)}(hjh]hfd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(h|after a successful ``GPIO_V2_GET_LINE_IOCTL`` operation, contains a valid anonymous file descriptor representing the requesth](hafter a successful }(hjhhhNhNubh)}(h``GPIO_V2_GET_LINE_IOCTL``h]hGPIO_V2_GET_LINE_IOCTL}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhO operation, contains a valid anonymous file descriptor representing the request}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpio_v2_line_info (C struct)c.gpio_v2_line_infohNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_infoh]j )}(hstruct gpio_v2_line_infoh](j)}(hjh]hstruct}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjmhhhj~hKubj3)}(hgpio_v2_line_infoh]j9)}(hjkh]hgpio_v2_line_info}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjmhhhj~hKubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjihhhj~hKubah}(h]jdah ](j\j]eh"]h$]h&]jajb)jchuh1jhj~hKhjfhhubje)}(hhh]h)}(h%Information about a certain GPIO lineh]h%Information about a certain GPIO line}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jdhjfhhhj~hKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jhhhjhjhNubj)}(hX**Definition**:: struct gpio_v2_line_info { char name[GPIO_MAX_NAME_SIZE]; char consumer[GPIO_MAX_NAME_SIZE]; __u32 offset; __u32 num_attrs; __aligned_u64 flags; struct gpio_v2_line_attribute attrs[GPIO_V2_LINE_NUM_ATTRS_MAX]; __u32 padding[4]; }; **Members** ``name`` the name of this GPIO line, such as the output pin of the line on the chip, a rail or a pin header name on a board, as specified by the GPIO chip, may be empty (i.e. name[0] == '\0') ``consumer`` a functional name for the consumer of this GPIO line as set by whatever is using it, will be empty if there is no current user but may also be empty if the consumer doesn't set this up ``offset`` the local offset on this GPIO chip, fill this in when requesting the line information from the kernel ``num_attrs`` the number of attributes in **attrs** ``flags`` flags for this GPIO line, with values from :c:type:`enum gpio_v2_line_flag `, such as ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``, ``GPIO_V2_LINE_FLAG_OUTPUT`` etc, added together ``attrs`` the configuration attributes associated with the line ``padding`` reserved for future useh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hXstruct gpio_v2_line_info { char name[GPIO_MAX_NAME_SIZE]; char consumer[GPIO_MAX_NAME_SIZE]; __u32 offset; __u32 num_attrs; __aligned_u64 flags; struct gpio_v2_line_attribute attrs[GPIO_V2_LINE_NUM_ATTRS_MAX]; __u32 padding[4]; };h]hXstruct gpio_v2_line_info { char name[GPIO_MAX_NAME_SIZE]; char consumer[GPIO_MAX_NAME_SIZE]; __u32 offset; __u32 num_attrs; __aligned_u64 flags; struct gpio_v2_line_attribute attrs[GPIO_V2_LINE_NUM_ATTRS_MAX]; __u32 padding[4]; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh](j)}(h``name`` the name of this GPIO line, such as the output pin of the line on the chip, a rail or a pin header name on a board, as specified by the GPIO chip, may be empty (i.e. name[0] == '\0') h](j)}(h``name``h]h)}(hj h]hname}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hthe name of this GPIO line, such as the output pin of the line on the chip, a rail or a pin header name on a board, as specified by the GPIO chip, may be empty (i.e. name[0] == '\0')h]hthe name of this GPIO line, such as the output pin of the line on the chip, a rail or a pin header name on a board, as specified by the GPIO chip, may be empty (i.e. name[0] == ‘0’)}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5hKhjubj)}(h``consumer`` a functional name for the consumer of this GPIO line as set by whatever is using it, will be empty if there is no current user but may also be empty if the consumer doesn't set this up h](j)}(h ``consumer``h]h)}(hjZh]hconsumer}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjTubj)}(hhh]h)}(ha functional name for the consumer of this GPIO line as set by whatever is using it, will be empty if there is no current user but may also be empty if the consumer doesn't set this uph]ha functional name for the consumer of this GPIO line as set by whatever is using it, will be empty if there is no current user but may also be empty if the consumer doesn’t set this up}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohKhjubj)}(hq``offset`` the local offset on this GPIO chip, fill this in when requesting the line information from the kernel h](j)}(h ``offset``h]h)}(hjh]hoffset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hethe local offset on this GPIO chip, fill this in when requesting the line information from the kernelh]hethe local offset on this GPIO chip, fill this in when requesting the line information from the kernel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h4``num_attrs`` the number of attributes in **attrs** h](j)}(h ``num_attrs``h]h)}(hjh]h num_attrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(h%the number of attributes in **attrs**h](hthe number of attributes in }(hjhhhNhNubj)}(h **attrs**h]hattrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h``flags`` flags for this GPIO line, with values from :c:type:`enum gpio_v2_line_flag `, such as ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``, ``GPIO_V2_LINE_FLAG_OUTPUT`` etc, added together h](j)}(h ``flags``h]h)}(hjh]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hflags for this GPIO line, with values from :c:type:`enum gpio_v2_line_flag `, such as ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``, ``GPIO_V2_LINE_FLAG_OUTPUT`` etc, added togetherh](h+flags for this GPIO line, with values from }(hj.hhhNhNubh)}(h4:c:type:`enum gpio_v2_line_flag `h]h)}(hj8h]henum gpio_v2_line_flag}(hj:hhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhj6ubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj jxgpio_v2_line_flaguh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj.ubh , such as }(hj.hhhNhNubh)}(h ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``h]hGPIO_V2_LINE_FLAG_ACTIVE_LOW}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.ubh, }(hj.hhhNhNubh)}(h``GPIO_V2_LINE_FLAG_OUTPUT``h]hGPIO_V2_LINE_FLAG_OUTPUT}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.ubh etc, added together}(hj.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjUhKhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hKhjubj)}(h@``attrs`` the configuration attributes associated with the line h](j)}(h ``attrs``h]h)}(hjh]hattrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(h5the configuration attributes associated with the lineh]h5the configuration attributes associated with the line}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h#``padding`` reserved for future useh](j)}(h ``padding``h]h)}(hjh]hpadding}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hreserved for future useh]hreserved for future use}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"gpio_v2_line_changed_type (C enum)c.gpio_v2_line_changed_typehNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_changed_typeh]j )}(henum gpio_v2_line_changed_typeh](j)}(hjh]henum}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj%hhhj6hKubj3)}(hgpio_v2_line_changed_typeh]j9)}(hj#h]hgpio_v2_line_changed_type}(hjIhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjEubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj%hhhj6hKubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj!hhhj6hKubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhj6hKhjhhubje)}(hhh]h)}(hN:c:type:`struct gpio_v2_line_changed `.event_type valuesh](h)}(h<:c:type:`struct gpio_v2_line_changed `h]h)}(hjqh]hstruct gpio_v2_line_changed}(hjshhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhjoubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj)}j"]j%)}j(j#sbc.gpio_v2_line_changed_typeasbjxgpio_v2_line_changeduh1hhj,hKhjkubh.event_type values}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjhhhubah}(h]h ]h"]h$]h&]uh1jdhjhhhj6hKubeh}(h]h ](jenumeh"]h$]h&]jjjjjjjjjuh1jhhhjhjhNubj)}(h**Constants** ``GPIO_V2_LINE_CHANGED_REQUESTED`` line has been requested ``GPIO_V2_LINE_CHANGED_RELEASED`` line has been released ``GPIO_V2_LINE_CHANGED_CONFIG`` line has been reconfiguredh](h)}(h **Constants**h]j)}(hjh]h Constants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh](j)}(h;``GPIO_V2_LINE_CHANGED_REQUESTED`` line has been requested h](j)}(h"``GPIO_V2_LINE_CHANGED_REQUESTED``h]h)}(hjh]hGPIO_V2_LINE_CHANGED_REQUESTED}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hline has been requestedh]hline has been requested}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h9``GPIO_V2_LINE_CHANGED_RELEASED`` line has been released h](j)}(h!``GPIO_V2_LINE_CHANGED_RELEASED``h]h)}(hj h]hGPIO_V2_LINE_CHANGED_RELEASED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hline has been releasedh]hline has been released}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(h:``GPIO_V2_LINE_CHANGED_CONFIG`` line has been reconfiguredh](j)}(h``GPIO_V2_LINE_CHANGED_CONFIG``h]h)}(hjDh]hGPIO_V2_LINE_CHANGED_CONFIG}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj>ubj)}(hhh]h)}(hline has been reconfiguredh]hline has been reconfigured}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$gpio_v2_line_info_changed (C struct)c.gpio_v2_line_info_changedhNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_info_changedh]j )}(h struct gpio_v2_line_info_changedh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj3)}(hgpio_v2_line_info_changedh]j9)}(hjh]hgpio_v2_line_info_changed}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhKubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhKhjhhubje)}(hhh]h)}(h3Information about a change in status of a GPIO lineh]h3Information about a change in status of a GPIO line}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jdhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jhhhjhjhNubj)}(hX**Definition**:: struct gpio_v2_line_info_changed { struct gpio_v2_line_info info; __aligned_u64 timestamp_ns; __u32 event_type; __u32 padding[5]; }; **Members** ``info`` updated line information ``timestamp_ns`` estimate of time of status change occurrence, in nanoseconds ``event_type`` the type of change with a value from :c:type:`enum gpio_v2_line_changed_type ` ``padding`` reserved for future useh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hstruct gpio_v2_line_info_changed { struct gpio_v2_line_info info; __aligned_u64 timestamp_ns; __u32 event_type; __u32 padding[5]; };h]hstruct gpio_v2_line_info_changed { struct gpio_v2_line_info info; __aligned_u64 timestamp_ns; __u32 event_type; __u32 padding[5]; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubh)}(h **Members**h]j)}(hj.h]hMembers}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjubj)}(hhh](j)}(h"``info`` updated line information h](j)}(h``info``h]h)}(hjMh]hinfo}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjGubj)}(hhh]h)}(hupdated line informationh]hupdated line information}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhKhjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhKhjDubj)}(hN``timestamp_ns`` estimate of time of status change occurrence, in nanoseconds h](j)}(h``timestamp_ns``h]h)}(hjh]h timestamp_ns}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(h` h](j)}(h``event_type``h]h)}(hjh]h event_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hithe type of change with a value from :c:type:`enum gpio_v2_line_changed_type `h](h%the type of change with a value from }(hjhhhNhNubh)}(hD:c:type:`enum gpio_v2_line_changed_type `h]h)}(hjh]henum gpio_v2_line_changed_type}(hjhhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj jxgpio_v2_line_changed_typeuh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjDubj)}(h#``padding`` reserved for future useh](j)}(h ``padding``h]h)}(hjh]hpadding}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjubj)}(hhh]h)}(hreserved for future useh]hreserved for future use}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hKhjDubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpio_v2_line_event_id (C enum)c.gpio_v2_line_event_idhNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_event_idh]j )}(henum gpio_v2_line_event_idh](j)}(hjh]henum}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjnhhhjhMubj3)}(hgpio_v2_line_event_idh]j9)}(hjlh]hgpio_v2_line_event_id}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjnhhhjhMubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjjhhhjhMubah}(h]jeah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhMhjghhubje)}(hhh]h)}(hB:c:type:`struct gpio_v2_line_event `.id valuesh](h)}(h8:c:type:`struct gpio_v2_line_event `h]h)}(hjh]hstruct gpio_v2_line_event}(hjhhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj)}j"]j%)}j(jlsbc.gpio_v2_line_event_idasbjxgpio_v2_line_eventuh1hhj,hKhjubh .id values}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhM hjhhubah}(h]h ]h"]h$]h&]uh1jdhjghhhjhMubeh}(h]h ](jenumeh"]h$]h&]jjjjjjjjjuh1jhhhjhjhNubj)}(h**Constants** ``GPIO_V2_LINE_EVENT_RISING_EDGE`` event triggered by a rising edge ``GPIO_V2_LINE_EVENT_FALLING_EDGE`` event triggered by a falling edgeh](h)}(h **Constants**h]j)}(hjh]h Constants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhM hjubj)}(hhh](j)}(hD``GPIO_V2_LINE_EVENT_RISING_EDGE`` event triggered by a rising edge h](j)}(h"``GPIO_V2_LINE_EVENT_RISING_EDGE``h]h)}(hjh]hGPIO_V2_LINE_EVENT_RISING_EDGE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjubj)}(hhh]h)}(h event triggered by a rising edgeh]h event triggered by a rising edge}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hMhjubj)}(hE``GPIO_V2_LINE_EVENT_FALLING_EDGE`` event triggered by a falling edgeh](j)}(h#``GPIO_V2_LINE_EVENT_FALLING_EDGE``h]h)}(hjTh]hGPIO_V2_LINE_EVENT_FALLING_EDGE}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjNubj)}(hhh]h)}(h!event triggered by a falling edgeh]h!event triggered by a falling edge}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpio_v2_line_event (C struct)c.gpio_v2_line_eventhNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_eventh]j )}(hstruct gpio_v2_line_eventh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hgpio_v2_line_eventh]j9)}(hjh]hgpio_v2_line_event}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhMubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhMhjhhubje)}(hhh]h)}(h*The actual event being pushed to userspaceh]h*The actual event being pushed to userspace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jdhjhhhjhMubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jhhhjhjhNubj)}(hX**Definition**:: struct gpio_v2_line_event { __aligned_u64 timestamp_ns; __u32 id; __u32 offset; __u32 seqno; __u32 line_seqno; __u32 padding[6]; }; **Members** ``timestamp_ns`` best estimate of time of event occurrence, in nanoseconds ``id`` event identifier with value from :c:type:`enum gpio_v2_line_event_id ` ``offset`` the offset of the line that triggered the event ``seqno`` the sequence number for this event in the sequence of events for all the lines in this line request ``line_seqno`` the sequence number for this event in the sequence of events on this particular line ``padding`` reserved for future useh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhj ubj)}(hstruct gpio_v2_line_event { __aligned_u64 timestamp_ns; __u32 id; __u32 offset; __u32 seqno; __u32 line_seqno; __u32 padding[6]; };h]hstruct gpio_v2_line_event { __aligned_u64 timestamp_ns; __u32 id; __u32 offset; __u32 seqno; __u32 line_seqno; __u32 padding[6]; };}hj-sbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhj ubh)}(h **Members**h]j)}(hj>h]hMembers}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhM"hj ubj)}(hhh](j)}(hK``timestamp_ns`` best estimate of time of event occurrence, in nanoseconds h](j)}(h``timestamp_ns``h]h)}(hj]h]h timestamp_ns}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjWubj)}(hhh]h)}(h9best estimate of time of event occurrence, in nanosecondsh]h9best estimate of time of event occurrence, in nanoseconds}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhMhjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhMhjTubj)}(he``id`` event identifier with value from :c:type:`enum gpio_v2_line_event_id ` h](j)}(h``id``h]h)}(hjh]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjubj)}(hhh]h)}(h]event identifier with value from :c:type:`enum gpio_v2_line_event_id `h](h!event identifier with value from }(hjhhhNhNubh)}(h<:c:type:`enum gpio_v2_line_event_id `h]h)}(hjh]henum gpio_v2_line_event_id}(hjhhhNhNubah}(h]h ](jejc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocjr refdomainjreftypetype refexplicitrefwarnjj jxgpio_v2_line_event_iduh1hhjhMhjubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjTubj)}(h;``offset`` the offset of the line that triggered the event h](j)}(h ``offset``h]h)}(hjh]hoffset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjubj)}(hhh]h)}(h/the offset of the line that triggered the eventh]h/the offset of the line that triggered the event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjTubj)}(hn``seqno`` the sequence number for this event in the sequence of events for all the lines in this line request h](j)}(h ``seqno``h]h)}(hj'h]hseqno}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhj!ubj)}(hhh]h)}(hcthe sequence number for this event in the sequence of events for all the lines in this line requesth]hcthe sequence number for this event in the sequence of events for all the lines in this line request}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhj=ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhjTubj)}(hd``line_seqno`` the sequence number for this event in the sequence of events on this particular line h](j)}(h``line_seqno``h]h)}(hjah]h line_seqno}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhj[ubj)}(hhh]h)}(hTthe sequence number for this event in the sequence of events on this particular lineh]hTthe sequence number for this event in the sequence of events on this particular line}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhMhjTubj)}(h#``padding`` reserved for future useh](j)}(h ``padding``h]h)}(hjh]hpadding}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjubj)}(hhh]h)}(hreserved for future useh]hreserved for future use}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjTubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjhhubh)}(hBy default the **timestamp_ns** is read from ``CLOCK_MONOTONIC`` and is intended to allow the accurate measurement of the time between events. It does not provide the wall-clock time.h](hBy default the }(hjhhhNhNubj)}(h**timestamp_ns**h]h timestamp_ns}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is read from }(hjhhhNhNubh)}(h``CLOCK_MONOTONIC``h]hCLOCK_MONOTONIC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhw and is intended to allow the accurate measurement of the time between events. It does not provide the wall-clock time.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjhhubh)}(hxIf the ``GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME`` flag is set then the **timestamp_ns** is read from ``CLOCK_REALTIME``.h](hIf the }(hj'hhhNhNubh)}(h*``GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME``h]h&GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubh flag is set then the }(hj'hhhNhNubj)}(h**timestamp_ns**h]h timestamp_ns}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh is read from }(hj'hhhNhNubh)}(h``CLOCK_REALTIME``h]hCLOCK_REALTIME}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubh.}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhM!hjhhubh)}(hIf the ``GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE`` flag is set then the **timestamp_ns** is provided by the hardware timestamping engine (HTE) subsystem.h](hIf the }(hjlhhhNhNubh)}(h%``GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE``h]h!GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlubh flag is set then the }(hjlhhhNhNubj)}(h**timestamp_ns**h]h timestamp_ns}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubhA is provided by the hardware timestamping engine (HTE) subsystem.}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhM$hjhhubj)}(hhh]j)}(hhh]h}(h]h ]h"]h$]h&]hjrj]Nuserspace-api/gpio/error-codesaj]jajJjNjjjjKjj]uh1jhhhKqhjubah}(h]h ]jah"]h$]h&]uh1jhjhhhhhNubeh}(h]typesah ]h"]typesah$]h&]uh1hhhhhhhhK\ubeh}(h]#gpio-character-device-userspace-apiah ]h"]#gpio character device userspace apiah$]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_handlerjerror_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}(j]jaj]jaunameids}(jjjjjj operationsNjjjjjju nametypes}(jjjj/ jjjuh}(jhjjjjjjjjjjjjijjjjjjjd ji j j jB jG jKjPjjjjjdjijj!jjjejjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jKsRparse_messages]hsystem_message)}(hhh]h)}(h-Duplicate implicit target name: "operations".h]h1Duplicate implicit target name: “operations”.}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP ubah}(h]h ]h"]h$]h&]jalevelKtypeINFOsourcehlineKOuh1jN hjihhhhhKOubatransform_messages](jO )}(hhh]h)}(hhh]h2Hyperlink target "gpio-v2-chip" is not referenced.}hjq sbah}(h]h ]h"]h$]h&]uh1hhjn ubah}(h]h ]h"]h$]h&]levelKtypeji sourcehlineKuh1jN ubjO )}(hhh]h)}(hhh]h:Hyperlink target "gpio-v2-line-request" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypeji sourcehlineKAuh1jN ube transformerN include_log] decorationNhhub.