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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/pt_BR/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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hj ubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubh)}(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.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubeh}(h]h ]h"]h$]h&]uh1j hhhhhhhNubh)}(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 }(hjAhhhNhNubh)}(h``tools/gpio/*``h]h tools/gpio/*}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAubh.}(hjAhhhNhNubeh}(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 }(hjahhhNhNubh)}(h:ref:`gpio-v2-chip`h]hinline)}(hjkh]h gpio-v2-chip}(hjohhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jmhjiubah}(h]h ]h"]h$]h&]refdocuserspace-api/gpio/chardev refdomainjzreftyperef refexplicitrefwarn reftarget gpio-v2-chipuh1hhhhKhjaubh and the }(hjahhhNhNubh)}(h:ref:`gpio-v2-line-request`h]jn)}(hjh]hgpio-v2-line-request}(hjhhhNhNubah}(h]h ](jystdstd-refeh"]h$]h&]uh1jmhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjgpio-v2-line-requestuh1hhhhKhjaubh.}(hjahhhNhNubeh}(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 ](jycc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj gpiochip_infouh1hhhhK'hjubh). Lines on the chip are identified by an }(hjhhhNhNubh)}(h ``offset``h]hoffset}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh in the range from 0 to }(hjhhhNhNubh)}(h``chip.lines - 1``h]hchip.lines - 1}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, i.e. }(hjhhhNhNubhtitle_reference)}(h`[0,chip.lines)`h]h[0,chip.lines)}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jKhjubh.}(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.}(hjehhhNhNubah}(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 }(hjshhhNhNubjL)}(h`open()`h]hopen()}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jKhjsubh+ on the GPIO device file is referred to as }(hjshhhNhNubh)}(h ``chip_fd``h]hchip_fd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsubh.}(hjshhhNhNubeh}(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&]hjentries](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}(hjhhhNhNubah}(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 }(hj,hhhNhNubh)}(h*:c:type:`request.fd`h]h)}(hj6h]h request.fd}(hj8hhhNhNubah}(h]h ](jyjc-typeeh"]h$]h&]uh1hhj4ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjgpio_v2_line_requestuh1hhhhKFhj,ubh by gpio-v2-get-line-ioctl.rst.}(hj,hhhNhNubeh}(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 }(hj]hhhNhNubh)}(h ``req_fd``h]hreq_fd}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]ubh.}(hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKKhjhhubh)}(hhh](h)}(h Operationsh]h Operations}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hhhhhKOubh)}(h>The following operations may be performed on the line request:h]h>The following operations may be performed on the line request:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhj}hhubj)}(hhh]j)}(hhh]h}(h]h ]h"]h$]h&]hjj](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&]uh1jhj}hhhhhNubeh}(h]id1ah ]h"]h$]j ah&]uh1hhjhhhhhKOj Kubeh}(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}(hj%hhhNhNubah}(h]h ]kah"]h$]h&]uh1j#hjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubhdesc_sig_space)}(h h]h }(hj7hhhNhNubah}(h]h ]wah"]h$]h&]uh1j5hjhhhj4hKubh desc_name)}(h gpiochip_infoh]h desc_sig_name)}(hjh]h gpiochip_info}(hjNhhhNhNubah}(h]h ]nah"]h$]h&]uh1jLhjHubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jFhjhhhj4hKubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jsphinx_line_type declaratorhjhhhj4hKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhj4hKhjhhubh desc_content)}(hhh]h)}(h%Information about a certain GPIO chiph]h%Information about a certain GPIO chip}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjzhhubah}(h]h ]h"]h$]h&]uh1jxhjhhhj4hKubeh}(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)}(hj7h]hlabel}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj1ubj)}(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’)}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjubj)}(h+``lines`` number of GPIO lines on this chiph](j)}(h ``lines``h]h)}(hjqh]hlines}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjkubj)}(hhh]h)}(h!number of GPIO lines on this chiph]h!number of GPIO lines on this 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&]uh1jhjkubeh}(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_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 ]j0ah"]h$]h&]uh1j#hjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK%ubj6)}(h h]h }(hjhhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hjhhhjhK%ubjG)}(hgpio_v2_line_flagh]jM)}(hjh]hgpio_v2_line_flag}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhjubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhjhhhjhK%ubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhjhhhjhK%ubah}(h]jah ](jpjqeh"]h$]h&]jujv)jwhuh1jhjhK%hjhhubjy)}(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 ](jyjc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]j1 ASTIdentifier)} identifierjsbc.gpio_v2_line_flagasbjgpio_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.hhK6hj hhubah}(h]h ]h"]h$]h&]uh1jxhjhhhjhK%ubeh}(h]h ](jenumeh"]h$]h&]jjjjUjjUjjjuh1jhhhjhjhNubj)}(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)}(hj_h]h Constants}(hjahhhNhNubah}(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.hhK:hjYubj)}(hhh](j)}(h=``GPIO_V2_LINE_FLAG_USED`` line is not available for request h](j)}(h``GPIO_V2_LINE_FLAG_USED``h]h)}(hj~h]hGPIO_V2_LINE_FLAG_USED}(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.hhK=hjxubj)}(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&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhK=hjuubj)}(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@hjuubj)}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKChjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKChjuubj)}(h/``GPIO_V2_LINE_FLAG_OUTPUT`` line is an output h](j)}(h``GPIO_V2_LINE_FLAG_OUTPUT``h]h)}(hj)h]hGPIO_V2_LINE_FLAG_OUTPUT}(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.hhKFhj#ubj)}(hhh]h)}(hline is an outputh]hline is an output}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hKFhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hKFhjuubj)}(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)}(hjbh]hGPIO_V2_LINE_FLAG_EDGE_RISING}(hjdhhhNhNubah}(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.hhKJhj\ubj)}(hhh]h)}(h.line detects rising (inactive to active) edgesh]h.line detects rising (inactive to active) edges}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKIhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhKJhjuubj)}(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&]uh1jhjhKNhjuubj)}(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&]uh1jhjhKQhjuubj)}(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&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKThj ubj)}(hhh]h)}(hline is an open source outputh]hline is an open source output}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hKThj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj$hKThjuubj)}(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)}(hjHh]hGPIO_V2_LINE_FLAG_BIAS_PULL_UP}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKWhjBubj)}(hhh]h)}(hline has pull-up bias enabledh]hline has pull-up bias enabled}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hKWhj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hKWhjuubj)}(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)}(hjh]h GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN}(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.hhKZhj{ubj)}(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&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhKZhjuubj)}(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]hjuubj)}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK`hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hK`hjuubj)}(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}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA hKchjB ubah}(h]h ]h"]h$]h&]uh1jhj& ubeh}(h]h ]h"]h$]h&]uh1jhjA hKchjuubeh}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j gpio_v2_line_values (C struct)c.gpio_v2_line_valueshNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_valuesh]j)}(hstruct gpio_v2_line_valuesh](j$)}(hj'h]hstruct}(hj hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j#hj hhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKiubj6)}(h h]h }(hj hhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hj hhhj hKiubjG)}(hgpio_v2_line_valuesh]jM)}(hj h]hgpio_v2_line_values}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhj ubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhj hhhj hKiubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhj} hhhj hKiubah}(h]jx ah ](jpjqeh"]h$]h&]jujv)jwhuh1jhj hKihjz hhubjy)}(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&]uh1jxhjz hhhj hKiubeh}(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)}(hj4 h]hbits}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2 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}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK[hjJ ubah}(h]h ]h"]h$]h&]uh1jhj. ubeh}(h]h ]h"]h$]h&]uh1jhjI 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)}(hjn h]hmask}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjl ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK^hjh 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 }(hj hhhNhNubh)}(h<:c:type:`struct gpio_v2_line_request `h]h)}(hj h]hstruct gpio_v2_line_request}(hj hhhNhNubah}(h]h ](jyjc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j3)}j6]sbjgpio_v2_line_requestuh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhK]hj ubh.offsets}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hK]hj ubah}(h]h ]h"]h$]h&]uh1jhjh ubeh}(h]h ]h"]h$]h&]uh1jhj hK^hj+ 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_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 ]j0ah"]h$]h&]uh1j#hj hhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKeubj6)}(h h]h }(hj hhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hj hhhj hKeubjG)}(hgpio_v2_line_attr_idh]jM)}(hj h]hgpio_v2_line_attr_id}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhj ubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhj hhhj hKeubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhj hhhj hKeubah}(h]j ah ](jpjqeh"]h$]h&]jujv)jwhuh1jhj hKehj hhubjy)}(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)}(hj6 h]hstruct gpio_v2_line_attribute}(hj8 hhhNhNubah}(h]h ](jyjc-typeeh"]h$]h&]uh1hhj4 ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j3)}j6]j9)}j<j sbc.gpio_v2_line_attr_idasbjgpio_v2_line_attributeuh1hhj@hKhj0 ubhD.id values identifying which field of the attribute union is in use.}(hj0 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&]uh1jxhj hhhj hKeubeh}(h]h ](jenumeh"]h$]h&]jjjjn jjn 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)}(hjx h]h Constants}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKjhjr 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 hKmhj 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 hKphj 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 hKrhj ubeh}(h]h ]h"]h$]h&]uh1jhjr 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$)}(hj'h]hstruct}(hjc hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j#hj_ hhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKxubj6)}(h h]h }(hjq hhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hj_ hhhjp hKxubjG)}(hgpio_v2_line_attributeh]jM)}(hj] h]hgpio_v2_line_attribute}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhj ubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhj_ hhhjp hKxubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhj[ hhhjp hKxubah}(h]jV ah ](jpjqeh"]h$]h&]jujv)jwhuh1jhjp hKxhjX hhubjy)}(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&]uh1jxhjX hhhjp hKxubeh}(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)}(hj5 h]henum gpio_v2_line_attr_id}(hj7 hhhNhNubah}(h]h ](jyjc-typeeh"]h$]h&]uh1hhj3 ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j jgpio_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)}(hjj h]hpadding}(hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjh ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKvhjd 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 hKvhj ubah}(h]h ]h"]h$]h&]uh1jhjd ubeh}(h]h ]h"]h$]h&]uh1jhj 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.hhKhj ubj)}(hhh]h)}(h anonymoush]h anonymous}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj 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)}(hjh]henum gpio_v2_line_flag}(hjhhhNhNubah}(h]h ](jyjc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j jgpio_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}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh, }(hj hhhNhNubh)}(h``GPIO_V2_LINE_FLAG_OUTPUT``h]hGPIO_V2_LINE_FLAG_OUTPUT}(hjEhhhNhNubah}(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)}(hjYh]hstruct gpio_v2_line_config}(hj[hhhNhNubah}(h]h ](jyjc-typeeh"]h$]h&]uh1hhjWubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j jgpio_v2_line_configuh1hhj.hKwhj ubh for the associated line.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj.hKwhj 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)}(hjh]hvalues}(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)}(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 ](jyjc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j jgpio_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&]uh1jhjubeh}(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}(hj"hhhNhNubah}(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$)}(hj'h]hstruct}(hjlhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j#hjhhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj6)}(h h]h }(hjzhhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hjhhhhjyhKubjG)}(hgpio_v2_line_config_attributeh]jM)}(hjfh]hgpio_v2_line_config_attribute}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhjubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhjhhhhjyhKubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhjdhhhjyhKubah}(h]j_ah ](jpjqeh"]h$]h&]jujv)jwhuh1jhjyhKhjahhubjy)}(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&]uh1jxhjahhhjyhKubeh}(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}(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)}(hthe configurable attributeh]hthe configurable attribute}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hKhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hKhjubj)}(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)}(hjTh]hmask}(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.hhKhjNubj)}(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 }(hjmhhhNhNubh)}(h<:c:type:`struct gpio_v2_line_request `h]h)}(hjwh]hstruct gpio_v2_line_request}(hjyhhhNhNubah}(h]h ](jyjc-typeeh"]h$]h&]uh1hhjuubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j jgpio_v2_line_requestuh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjmubh.offsets}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j gpio_v2_line_config (C struct)c.gpio_v2_line_confighNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_configh]j)}(hstruct gpio_v2_line_configh](j$)}(hj'h]hstruct}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j#hjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj6)}(h h]h }(hjhhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hjhhhjhKubjG)}(hgpio_v2_line_configh]jM)}(hjh]hgpio_v2_line_config}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhjubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhjhhhjhKubah}(h]jah ](jpjqeh"]h$]h&]jujv)jwhuh1jhjhKhjhhubjy)}(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&]uh1jxhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjj+jj+jjjuh1jhhhjhjhNubj)}(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}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubh:}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj/ubj)}(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]; };}hjPsbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj/ubh)}(h **Members**h]j)}(hjah]hMembers}(hjchhhNhNubah}(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)}(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)}(hjh]hflags}(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.hhKhjzubj)}(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 ](jyjc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j jgpio_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&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhKhjwubj)}(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.hhKhj ubj)}(hhh]h)}(h%the number of attributes in **attrs**h](hthe number of attributes in }(hj,hhhNhNubj)}(h **attrs**h]hattrs}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1hhj(hKhj)ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj(hKhjwubj)}(h<``padding`` reserved for future use and must be zero filled h](j)}(h ``padding``h]h)}(hjZh]hpadding}(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)}(h/reserved for future use and must be zero filledh]h/reserved for future use and must be zero filled}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohKhjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohKhjwubj)}(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&]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 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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjwubeh}(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_request (C struct)c.gpio_v2_line_requesthNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_requesth]j)}(hstruct gpio_v2_line_requesth](j$)}(hj'h]hstruct}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j#hjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj6)}(h h]h }(hjhhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hjhhhjhKubjG)}(hgpio_v2_line_requesth]jM)}(hjh]hgpio_v2_line_request}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhj ubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhjhhhjhKubah}(h]jah ](jpjqeh"]h$]h&]jujv)jwhuh1jhjhKhjhhubjy)}(hhh]h)}(h*Information about a request for GPIO linesh]h*Information about a request for 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.hhKhj,hhubah}(h]h ]h"]h$]h&]uh1jxhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjGjjGjjjuh1jhhhjhjhNubj)}(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}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh:}(hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjKubj)}(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; };}hjlsbah}(h]h ]h"]h$]h&]hhuh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjKubh)}(h **Members**h]j)}(hj}h]hMembers}(hjhhhNhNubah}(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.hhKhjKubj)}(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.hhKhj ubj)}(hhh]h)}(h%requested configuration for the linesh]h%requested configuration for the lines}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hKhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hKhjubj)}(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)}(hjIh]h num_lines}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjCubj)}(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 }(hjbhhhNhNubh)}(h``GPIO_V2_LINES_MAX``h]hGPIO_V2_LINES_MAX}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbubh0 sized arrays, set to 1 to request a single line}(hjbhhhNhNubeh}(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&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hKhjubj)}(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.hhKhjubj)}(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&]uh1jhjubeh}(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 }(hj3hhhNhNubh)}(h``GPIO_V2_GET_LINE_IOCTL``h]hGPIO_V2_GET_LINE_IOCTL}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3ubhO operation, contains a valid anonymous file descriptor representing the request}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj/hKhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hKhjubeh}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j gpio_v2_line_info (C struct)c.gpio_v2_line_infohNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_infoh]j)}(hstruct gpio_v2_line_infoh](j$)}(hj'h]hstruct}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j#hjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj6)}(h h]h }(hjhhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hjhhhjhKubjG)}(hgpio_v2_line_infoh]jM)}(hjh]hgpio_v2_line_info}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhjubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhj}hhhjhKubah}(h]jxah ](jpjqeh"]h$]h&]jujv)jwhuh1jhjhKhjzhhubjy)}(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&]uh1jxhjzhhhjhKubeh}(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)}(hj4h]hname}(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.hhKhj.ubj)}(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’)}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhKhj+ubj)}(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)}(hjnh]hconsumer}(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.hhKhjhubj)}(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}(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&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhKhj+ubj)}(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&]uh1jhjhKhj+ubj)}(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&]uh1jhjhKhj+ubj)}(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)}(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.hhKhj#ubj)}(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 }(hjBhhhNhNubh)}(h4:c:type:`enum gpio_v2_line_flag `h]h)}(hjLh]henum gpio_v2_line_flag}(hjNhhhNhNubah}(h]h ](jyjc-typeeh"]h$]h&]uh1hhjJubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j jgpio_v2_line_flaguh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjBubh , such as }(hjBhhhNhNubh)}(h ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``h]hGPIO_V2_LINE_FLAG_ACTIVE_LOW}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubh, }(hjBhhhNhNubh)}(h``GPIO_V2_LINE_FLAG_OUTPUT``h]hGPIO_V2_LINE_FLAG_OUTPUT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubh etc, added together}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjihKhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhj+ubj)}(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&]uh1jhjhKhj+ubj)}(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&]uh1jhjhKhj+ubeh}(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 ]j0ah"]h$]h&]uh1j#hj9hhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj6)}(h h]h }(hjKhhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hj9hhhjJhKubjG)}(hgpio_v2_line_changed_typeh]jM)}(hj7h]hgpio_v2_line_changed_type}(hj]hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhjYubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhj9hhhjJhKubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhj5hhhjJhKubah}(h]j0ah ](jpjqeh"]h$]h&]jujv)jwhuh1jhjJhKhj2hhubjy)}(hhh]h)}(hN:c:type:`struct gpio_v2_line_changed `.event_type valuesh](h)}(h<:c:type:`struct gpio_v2_line_changed `h]h)}(hjh]hstruct gpio_v2_line_changed}(hjhhhNhNubah}(h]h ](jyjc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j3)}j6]j9)}j<j7sbc.gpio_v2_line_changed_typeasbjgpio_v2_line_changeduh1hhj@hKhjubh.event_type values}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhj|hhubah}(h]h ]h"]h$]h&]uh1jxhj2hhhjJhKubeh}(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)}(hjh]hGPIO_V2_LINE_CHANGED_RELEASED}(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)}(hline has been releasedh]hline has been released}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hKhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hKhjubj)}(h:``GPIO_V2_LINE_CHANGED_CONFIG`` line has been reconfiguredh](j)}(h``GPIO_V2_LINE_CHANGED_CONFIG``h]h)}(hjXh]hGPIO_V2_LINE_CHANGED_CONFIG}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjRubj)}(hhh]h)}(hline has been reconfiguredh]hline has been reconfigured}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhKhjubeh}(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$)}(hj'h]hstruct}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j#hjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKubj6)}(h h]h }(hjhhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hjhhhjhKubjG)}(hgpio_v2_line_info_changedh]jM)}(hjh]hgpio_v2_line_info_changed}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhjubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhjhhhjhKubah}(h]jah ](jpjqeh"]h$]h&]jujv)jwhuh1jhjhKhjhhubjy)}(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&]uh1jxhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjj jj jjjuh1jhhhjhjhNubj)}(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]; };}hj1sbah}(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)}(hjBh]hMembers}(hjDhhhNhNubah}(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)}(hjah]hinfo}(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.hhKhj[ubj)}(hhh]h)}(hupdated line informationh]hupdated line information}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhKhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhKhjXubj)}(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 ](jyjc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j jgpio_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&]uh1jhjhKhjXubj)}(h#``padding`` reserved for future useh](j)}(h ``padding``h]h)}(hj,h]hpadding}(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.hhKhj&ubj)}(hhh]h)}(hreserved for future useh]hreserved for future use}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhKhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhKhjXubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j gpio_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}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j#hjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMubj6)}(h h]h }(hjhhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hjhhhjhMubjG)}(hgpio_v2_line_event_idh]jM)}(hjh]hgpio_v2_line_event_id}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhjubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhj~hhhjhMubah}(h]jyah ](jpjqeh"]h$]h&]jujv)jwhuh1jhjhMhj{hhubjy)}(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 ](jyjc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j3)}j6]j9)}j<jsbc.gpio_v2_line_event_idasbjgpio_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&]uh1jxhj{hhhjhMubeh}(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 hj ubj)}(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)}(hj/h]hGPIO_V2_LINE_EVENT_RISING_EDGE}(hj1hhhNhNubah}(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)}(h event triggered by a rising edgeh]h event triggered by a rising edge}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhMhjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhMhj&ubj)}(hE``GPIO_V2_LINE_EVENT_FALLING_EDGE`` event triggered by a falling edgeh](j)}(h#``GPIO_V2_LINE_EVENT_FALLING_EDGE``h]h)}(hjhh]hGPIO_V2_LINE_EVENT_FALLING_EDGE}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjbubj)}(hhh]h)}(h!event triggered by a falling edgeh]h!event triggered by a falling edge}(hjhhhNhNubah}(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&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj}hMhj&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_event (C struct)c.gpio_v2_line_eventhNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpio_v2_line_eventh]j)}(hstruct gpio_v2_line_eventh](j$)}(hj'h]hstruct}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j#hjhhhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMubj6)}(h h]h }(hjhhhNhNubah}(h]h ]jBah"]h$]h&]uh1j5hjhhhjhMubjG)}(hgpio_v2_line_eventh]jM)}(hjh]hgpio_v2_line_event}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jLhjubah}(h]h ](j_j`eh"]h$]h&]hhuh1jFhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjjuh1jjkjlhjhhhjhMubah}(h]jah ](jpjqeh"]h$]h&]jujv)jwhuh1jhjhMhjhhubjy)}(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&]uh1jxhjhhhjhMubeh}(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}(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.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]; };}hjAsbah}(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)}(hjRh]hMembers}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(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)}(hjqh]h timestamp_ns}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjkubj)}(hhh]h)}(h9best estimate of time of event occurrence, in nanosecondsh]h9best estimate of time of event occurrence, in nanoseconds}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubj)}(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 ](jyjc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj0j jgpio_v2_line_event_iduh1hhjhMhjubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubj)}(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&]uh1jhjhMhjhubj)}(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&]uh1hhj9ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhj5ubj)}(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}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhMhjhubj)}(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)}(hjuh]h line_seqno}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev:97: ./include/uapi/linux/gpio.hhMhjoubj)}(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}(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&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubj)}(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&]uh1jhjhMhjhubeh}(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}(hj"hhhNhNubah}(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}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;ubh flag is set then the }(hj;hhhNhNubj)}(h**timestamp_ns**h]h timestamp_ns}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubh is read from }(hj;hhhNhNubh)}(h``CLOCK_REALTIME``h]hCLOCK_REALTIME}(hjghhhNhNubah}(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 }(hjhhhNhNubh)}(h%``GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE``h]h!GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh flag is set then the }(hjhhhNhNubj)}(h**timestamp_ns**h]h timestamp_ns}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhA is provided by the hardware timestamping engine (HTE) subsystem.}(hjhhhNhNubeh}(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&]hjj]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_sourcehnj _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}(jjjjC jjjuh}(jhjjjjjjjjjjjj}jjjjjjjx j} j j jV j[ j_jdjjjjjxj}j0j5jjjyj~jju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j KsRparse_messages]hsystem_message)}(hhh]h)}(h-Duplicate implicit target name: "operations".h]h1Duplicate implicit target name: “operations”.}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd ubah}(h]h ]h"]h$]h&]jalevelKtypeINFOsourcehnjlineKOuh1jb hj}hhhhhKOubatransform_messages](jc )}(hhh]h)}(hhh]h2Hyperlink target "gpio-v2-chip" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej} sourcehnjlineKuh1jb ubjc )}(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&]levelKtypej} sourcehnjlineKAuh1jb ube transformerN include_log] decorationNhhub.