sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget1/translations/zh_CN/userspace-api/gpio/chardev_v1modnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/zh_TW/userspace-api/gpio/chardev_v1modnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/it_IT/userspace-api/gpio/chardev_v1modnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ja_JP/userspace-api/gpio/chardev_v1modnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ko_KR/userspace-api/gpio/chardev_v1modnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/pt_BR/userspace-api/gpio/chardev_v1modnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/sp_SP/userspace-api/gpio/chardev_v1modnameN 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:spacepreserveuh1hhhhhhK/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1.rsthKubhsection)}(hhh](htitle)}(h(GPIO Character Device Userspace API (v1)h]h(GPIO Character Device Userspace API (v1)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhwarning)}(hXThis API is obsoleted by chardev.rst (v2). New developments should use the v2 API, and existing developments are encouraged to migrate as soon as possible, as this API will be removed in the future. The v2 API is a functional superset of the v1 API so any v1 call can be directly translated to a v2 equivalent. This interface will continue to be maintained for the migration period, but new features will only be added to the new API.h](h paragraph)}(h*This API is obsoleted by chardev.rst (v2).h]h*This API is obsoleted by chardev.rst (v2).}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubh)}(hX New developments should use the v2 API, and existing developments are encouraged to migrate as soon as possible, as this API will be removed in the future. The v2 API is a functional superset of the v1 API so any v1 call can be directly translated to a v2 equivalent.h]hX New developments should use the v2 API, and existing developments are encouraged to migrate as soon as possible, as this API will be removed in the future. The v2 API is a functional superset of the v1 API so any v1 call can be directly translated to a v2 equivalent.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubh)}(h{This interface will continue to be maintained for the migration period, but new features will only be added to the new API.h]h{This interface will continue to be maintained for the migration period, but new features will only be added to the new API.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hFirst added in 4.8.h]hFirst added in 4.8.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hThe API is based around three major objects, the :ref:`gpio-v1-chip`, the :ref:`gpio-v1-line-handle`, and the :ref:`gpio-v1-line-event`.h](h1The API is based around three major objects, the }(hj#hhhNhNubh)}(h:ref:`gpio-v1-chip`h]hinline)}(hj-h]h gpio-v1-chip}(hj1hhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1j/hj+ubah}(h]h ]h"]h$]h&]refdocuserspace-api/gpio/chardev_v1 refdomainj<reftyperef refexplicitrefwarn reftarget gpio-v1-chipuh1hhhhKhj#ubh, the }(hj#hhhNhNubh)}(h:ref:`gpio-v1-line-handle`h]j0)}(hjVh]hgpio-v1-line-handle}(hjXhhhNhNubah}(h]h ](j;stdstd-refeh"]h$]h&]uh1j/hjTubah}(h]h ]h"]h$]h&]refdocjH refdomainjbreftyperef refexplicitrefwarnjNgpio-v1-line-handleuh1hhhhKhj#ubh , and the }(hj#hhhNhNubh)}(h:ref:`gpio-v1-line-event`h]j0)}(hjzh]hgpio-v1-line-event}(hj|hhhNhNubah}(h]h ](j;stdstd-refeh"]h$]h&]uh1j/hjxubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftyperef refexplicitrefwarnjNgpio-v1-line-eventuh1hhhhKhj#ubh.}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hWhere "line event" is used in this document it refers to the request that can monitor a line for edge events, not the edge events themselves.h]hWhere “line event” is used in this document it refers to the request that can monitor a line for edge events, not the edge events themselves.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhtarget)}(h.. _gpio-v1-chip:h]h}(h]h ]h"]h$]h&]refid gpio-v1-chipuh1jhKhhhhhhubh)}(hhh](h)}(hChiph]hChip}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(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 }(hjhhhNhNubhliteral)}(h``/dev/gpiochipX``h]h/dev/gpiochipX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(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]j)}(hjh]h chip.lines}(hjhhhNhNubah}(h]h ](j;cc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjN gpiochip_infouh1hhhhK"hjubh). Lines on the chip are identified by an }(hjhhhNhNubj)}(h ``offset``h]hoffset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh in the range from 0 to }(hjhhhNhNubj)}(h``chip.lines - 1``h]hchip.lines - 1}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, i.e. }(hjhhhNhNubhtitle_reference)}(h`[0,chip.lines)`h]h[0,chip.lines)}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK"hjhhubh)}(hXLines are requested from the chip using either gpio-get-linehandle-ioctl.rst and the resulting line handle is used to access the GPIO chip's lines, or gpio-get-lineevent-ioctl.rst and the resulting line event is used to monitor a GPIO line for edge events.h]hXLines are requested from the chip using either gpio-get-linehandle-ioctl.rst and the resulting line handle is used to access the GPIO chip’s lines, or gpio-get-lineevent-ioctl.rst and the resulting line event is used to monitor a GPIO line for edge events.}(hj[hhhNhNubah}(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 }(hjihhhNhNubjB)}(h`open()`h]hopen()}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjiubh+ on the GPIO device file is referred to as }(hjihhhNhNubj)}(h ``chip_fd``h]hchip_fd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubh.}(hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK+hjhhubh)}(hhh](h)}(h Operationsh]h Operations}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK/ubh)}(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&]uh1hhhhK1hjhhubhcompound)}(hhh]htoctree)}(hhh]h}(h]h ]h"]h$]h&]hjHentries](Get Line Handle,userspace-api/gpio/gpio-get-linehandle-ioctlGet Line Event+userspace-api/gpio/gpio-get-lineevent-ioctl Get Chip Info*userspace-api/gpio/gpio-get-chipinfo-ioctl Get Line Info*userspace-api/gpio/gpio-get-lineinfo-ioctlWatch Line Info0userspace-api/gpio/gpio-get-lineinfo-watch-ioctlUnwatch Line Info2userspace-api/gpio/gpio-get-lineinfo-unwatch-ioctlRead Line Info Changed Events-userspace-api/gpio/gpio-lineinfo-changed-reade includefiles](jjjjjjjemaxdepthJcaptionNglobhidden includehiddennumberedK titlesonly rawentries](jjjjjjjeuh1jhhhK3hjubah}(h]h ]toctree-wrapperah"]h$]h&]uh1jhjhhhhhNubj)}(h.. _gpio-v1-line-handle:h]h}(h]h ]h"]h$]h&]jgpio-v1-line-handleuh1jhK>hjhhhhubeh}(h] operationsah ]h"]h$] operationsah&]uh1hhjhhhhhK/ referencedKubeh}(h](chipjeh ]h"](chip gpio-v1-chipeh$]h&]uh1hhhhhhhhKexpect_referenced_by_name}j jsexpect_referenced_by_id}jjsubh)}(hhh](h)}(h Line Handleh]h Line Handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKAubh)}(hX Line handles are created by gpio-get-linehandle-ioctl.rst and provide access to a set of requested lines. The line handle is exposed to userspace via the anonymous file descriptor returned in :c:type:`request.fd` by gpio-get-linehandle-ioctl.rst.h](hLine handles are created by gpio-get-linehandle-ioctl.rst and provide access to a set of requested lines. The line handle is exposed to userspace via the anonymous file descriptor returned in }(hj%hhhNhNubh)}(h(:c:type:`request.fd`h]j)}(hj/h]h request.fd}(hj1hhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjNgpiohandle_requestuh1hhhhKChj%ubh" by gpio-get-linehandle-ioctl.rst.}(hj%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKChjhhubh)}(h[Within this documentation, the line handle file descriptor is referred to as ``handle_fd``.h](hMWithin this documentation, the line handle file descriptor is referred to as }(hjVhhhNhNubj)}(h ``handle_fd``h]h handle_fd}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubh.}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKHhjhhubh)}(hhh](h)}(h Operationsh]h Operations}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhhhhhKLubh)}(h=The following operations may be performed on the line handle:h]h=The following operations may be performed on the line handle:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjvhhubj)}(hhh]j)}(hhh]h}(h]h ]h"]h$]h&]hjHj](Get Line Values4userspace-api/gpio/gpio-handle-get-line-values-ioctlSet Line Values4userspace-api/gpio/gpio-handle-set-line-values-ioctlReconfigure Lines/userspace-api/gpio/gpio-handle-set-config-ioctlej](jjjejJjNjjjjKjj](jjjeuh1jhhhKPhjubah}(h]h ]jah"]h$]h&]uh1jhjvhhhhhNubj)}(h.. _gpio-v1-line-event:h]h}(h]h ]h"]h$]h&]jgpio-v1-line-eventuh1jhKWhjvhhhhubeh}(h]id1ah ]h"]h$]jah&]uh1hhjhhhhhKLjKubeh}(h]( line-handlejeh ]h"]( line handlegpio-v1-line-handleeh$]h&]uh1hhhhhhhhKAj}jjsj}jjsubh)}(hhh](h)}(h Line Eventh]h Line Event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKZubh)}(hLine events are created by gpio-get-lineevent-ioctl.rst and provide access to a requested line. The line event is exposed to userspace via the anonymous file descriptor returned in :c:type:`request.fd` by gpio-get-lineevent-ioctl.rst.h](hLine events are created by gpio-get-lineevent-ioctl.rst and provide access to a requested line. The line event is exposed to userspace via the anonymous file descriptor returned in }(hjhhhNhNubh)}(h':c:type:`request.fd`h]j)}(hjh]h request.fd}(hjhhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjNgpioevent_requestuh1hhhhK\hjubh! by gpio-get-lineevent-ioctl.rst.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK\hjhhubh)}(hYWithin this documentation, the line event file descriptor is referred to as ``event_fd``.h](hLWithin this documentation, the line event file descriptor is referred to as }(hjhhhNhNubj)}(h ``event_fd``h]hevent_fd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKahjhhubh)}(hhh](h)}(h Operationsh]h Operations}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hhhhhKeubh)}(h` is common to ABI v1 and v2.h](hThe }(hjhhhNhNubh)}(h-:c:type:`struct gpiochip_info`h]j)}(hjh]hstruct gpiochip_info}(hjhhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjN gpiochip_infouh1hhhhKthjubh is common to ABI v1 and v2.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKthjhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlegpioline_info (C struct)c.gpioline_infohNtauh1jhjhhhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhNubhdesc)}(hhh](hdesc_signature)}(h gpioline_infoh]hdesc_signature_line)}(hstruct gpioline_infoh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(h gpioline_infoh]h desc_sig_name)}(hjh]h gpioline_info}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(h%Information about a certain GPIO lineh]h%Information about a certain GPIO line}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMDhjIhhubah}(h]h ]h"]h$]h&]uh1jGhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]domainjobjtypejddesctypejdnoindex noindexentrynocontentsentryuh1jhhhjhjhNubh container)}(hX**Definition**:: struct gpioline_info { __u32 line_offset; __u32 flags; char name[GPIO_MAX_NAME_SIZE]; char consumer[GPIO_MAX_NAME_SIZE]; }; **Members** ``line_offset`` the local offset on this GPIO device, fill this in when requesting the line information from the kernel ``flags`` various flags for this line ``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 uph](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjtubh:}(hjthhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMHhjpubh literal_block)}(hstruct gpioline_info { __u32 line_offset; __u32 flags; char name[GPIO_MAX_NAME_SIZE]; char consumer[GPIO_MAX_NAME_SIZE]; };h]hstruct gpioline_info { __u32 line_offset; __u32 flags; char name[GPIO_MAX_NAME_SIZE]; char consumer[GPIO_MAX_NAME_SIZE]; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMJhjpubh)}(h **Members**h]jy)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMQhjpubhdefinition_list)}(hhh](hdefinition_list_item)}(hx``line_offset`` the local offset on this GPIO device, fill this in when requesting the line information from the kernel h](hterm)}(h``line_offset``h]j)}(hjh]h line_offset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMGhjubh definition)}(hhh]h)}(hgthe local offset on this GPIO device, fill this in when requesting the line information from the kernelh]hgthe local offset on this GPIO device, fill this in when requesting the line information from the kernel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMFhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMGhjubj)}(h&``flags`` various flags for this line h](j)}(h ``flags``h]j)}(hjh]hflags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMHhjubj)}(hhh]h)}(hvarious flags for this lineh]hvarious flags for this line}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMHhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMHhjubj)}(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]j)}(hj@h]hname}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMKhj: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’)}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMIhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhMKhjubj)}(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 uph](j)}(h ``consumer``h]j)}(hjzh]hconsumer}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMMhjtubj)}(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&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMLhjubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjhMMhjubeh}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jnhjhhhjhNubh)}(h**Note**h]jy)}(hjh]hNote}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMQhjhhubh)}(hThis struct is part of ABI v1 and is deprecated. Use ABI v2 and :c:type:`struct gpio_v2_line_info ` instead.h](h@This struct is part of ABI v1 and is deprecated. Use ABI v2 and }(hjhhhNhNubh)}(h6:c:type:`struct gpio_v2_line_info `h]j)}(hjh]hstruct gpio_v2_line_info}(hjhhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]sbjNgpio_v2_line_infouh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMOhjubh instead.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMOhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j gpioline_info_changed (C struct)c.gpioline_info_changedhNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpioline_info_changedh]j)}(hstruct gpioline_info_changedh](j)}(hjh]hstruct}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"hhhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMUubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"hhhj3hMUubj)}(hgpioline_info_changedh]j)}(hj h]hgpioline_info_changed}(hjFhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjBubah}(h]h ](j.j/eh"]h$]h&]hhuh1jhj"hhhj3hMUubeh}(h]h ]h"]h$]h&]hhj9uh1jj:j;hjhhhj3hMUubah}(h]jah ](j?j@eh"]h$]h&]jDjE)jFhuh1jhj3hMUhjhhubjH)}(hhh]h)}(h3Information about a change in status of a GPIO lineh]h3Information about a change in status of a GPIO line}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMdhjehhubah}(h]h ]h"]h$]h&]uh1jGhjhhhj3hMUubeh}(h]h ](jstructeh"]h$]h&]jhjjijjjjjkjljmuh1jhhhjhjhNubjo)}(hX**Definition**:: struct gpioline_info_changed { struct gpioline_info info; __u64 timestamp; __u32 event_type; __u32 padding[5]; }; **Members** ``info`` updated line information ``timestamp`` estimate of time of status change occurrence, in nanoseconds ``event_type`` one of ``GPIOLINE_CHANGED_REQUESTED``, ``GPIOLINE_CHANGED_RELEASED`` and ``GPIOLINE_CHANGED_CONFIG`` ``padding`` reserved for future useh](h)}(h**Definition**::h](jy)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhhjubj)}(hstruct gpioline_info_changed { struct gpioline_info info; __u64 timestamp; __u32 event_type; __u32 padding[5]; };h]hstruct gpioline_info_changed { struct gpioline_info info; __u64 timestamp; __u32 event_type; __u32 padding[5]; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMjhjubh)}(h **Members**h]jy)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMqhjubj)}(hhh](j)}(h"``info`` updated line information h](j)}(h``info``h]j)}(hjh]hinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMghjubj)}(hhh]h)}(hupdated line informationh]hupdated line information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMghjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMghjubj)}(hK``timestamp`` estimate of time of status change occurrence, in nanoseconds h](j)}(h ``timestamp``h]j)}(hjh]h timestamp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhhjubj)}(hhh]h)}(h` embedded here has 32-bit alignment on its own, but it works fine with 64-bit alignment too. With its 72 byte size, we can guarantee there are no implicit holes between it and subsequent members. The 20-byte padding at the end makes sure we don't add any implicit padding at the end of the structure on 64-bit architectures.h](hThe }(hj hhhNhNubh)}(h.:c:type:`struct gpioline_info `h]j)}(hj h]hstruct gpioline_info}(hj hhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjjjN gpioline_infouh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMkhj ubhXF embedded here has 32-bit alignment on its own, but it works fine with 64-bit alignment too. With its 72 byte size, we can guarantee there are no implicit holes between it and subsequent members. The 20-byte padding at the end makes sure we don’t add any implicit padding at the end of the structure on 64-bit architectures.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj3 hMkhjhhubh)}(h**Note**h]jy)}(hj@ h]hNote}(hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1jxhj> ubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMqhjhhubh)}(hThis struct is part of ABI v1 and is deprecated. Use ABI v2 and :c:type:`struct gpio_v2_line_info_changed ` instead.h](h@This struct is part of ABI v1 and is deprecated. Use ABI v2 and }(hjV hhhNhNubh)}(hF:c:type:`struct gpio_v2_line_info_changed `h]j)}(hj` h]h struct gpio_v2_line_info_changed}(hjb hhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhj^ ubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjjjNgpio_v2_line_info_changeduh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMrhjV ubh instead.}(hjV hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj} hMrhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpiohandle_request (C struct)c.gpiohandle_requesthNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpiohandle_requesth]j)}(hstruct gpiohandle_requesth](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMxubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hMxubj)}(hgpiohandle_requesth]j)}(hj h]hgpiohandle_request}(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubah}(h]h ](j.j/eh"]h$]h&]hhuh1jhj hhhj hMxubeh}(h]h ]h"]h$]h&]hhj9uh1jj:j;hj hhhj hMxubah}(h]j ah ](j?j@eh"]h$]h&]jDjE)jFhuh1jhj hMxhj hhubjH)}(hhh]h)}(h'Information about a GPIO handle requesth]h'Information about a GPIO handle request}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj hhubah}(h]h ]h"]h$]h&]uh1jGhj hhhj hMxubeh}(h]h ](jstructeh"]h$]h&]jhjjij jjj jkjljmuh1jhhhjhjhNubjo)}(hX**Definition**:: struct gpiohandle_request { __u32 lineoffsets[GPIOHANDLES_MAX]; __u32 flags; __u8 default_values[GPIOHANDLES_MAX]; char consumer_label[GPIO_MAX_NAME_SIZE]; __u32 lines; int fd; }; **Members** ``lineoffsets`` an array of desired lines, specified by offset index for the associated GPIO device ``flags`` desired flags for the desired GPIO lines, such as ``GPIOHANDLE_REQUEST_OUTPUT``, ``GPIOHANDLE_REQUEST_ACTIVE_LOW`` etc, added together. Note that even if multiple lines are requested, the same flags must be applicable to all of them, if you want lines with individual flags set, request them one by one. It is possible to select a batch of input or output lines, but they must all have the same characteristics, i.e. all inputs or all outputs, all active low etc ``default_values`` if the ``GPIOHANDLE_REQUEST_OUTPUT`` is set for a requested line, this specifies the default output value, should be 0 (inactive) or 1 (active). Anything other than 0 or 1 will be interpreted as active. ``consumer_label`` a desired consumer label for the selected GPIO line(s) such as "my-bitbanged-relay" ``lines`` number of lines requested in this request, i.e. the number of valid fields in the above arrays, set to 1 to request a single line ``fd`` after a successful ``GPIO_GET_LINEHANDLE_IOCTL`` operation, contains a valid anonymous file descriptor representing the requesth](h)}(h**Definition**::h](jy)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jxhj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hstruct gpiohandle_request { __u32 lineoffsets[GPIOHANDLES_MAX]; __u32 flags; __u8 default_values[GPIOHANDLES_MAX]; char consumer_label[GPIO_MAX_NAME_SIZE]; __u32 lines; int fd; };h]hstruct gpiohandle_request { __u32 lineoffsets[GPIOHANDLES_MAX]; __u32 flags; __u8 default_values[GPIOHANDLES_MAX]; char consumer_label[GPIO_MAX_NAME_SIZE]; __u32 lines; int fd; };}hj sbah}(h]h ]h"]h$]h&]hhuh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubh)}(h **Members**h]jy)}(hj1 h]hMembers}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1jxhj/ ubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hhh](j)}(hd``lineoffsets`` an array of desired lines, specified by offset index for the associated GPIO device h](j)}(h``lineoffsets``h]j)}(hjP h]h lineoffsets}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjJ ubj)}(hhh]h)}(hSan array of desired lines, specified by offset index for the associated GPIO deviceh]hSan array of desired lines, specified by offset index for the associated GPIO device}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjf ubah}(h]h ]h"]h$]h&]uh1jhjJ ubeh}(h]h ]h"]h$]h&]uh1jhje hMhjG ubj)}(hX``flags`` desired flags for the desired GPIO lines, such as ``GPIOHANDLE_REQUEST_OUTPUT``, ``GPIOHANDLE_REQUEST_ACTIVE_LOW`` etc, added together. Note that even if multiple lines are requested, the same flags must be applicable to all of them, if you want lines with individual flags set, request them one by one. It is possible to select a batch of input or output lines, but they must all have the same characteristics, i.e. all inputs or all outputs, all active low etc h](j)}(h ``flags``h]j)}(hj h]hflags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hhh]h)}(hXdesired flags for the desired GPIO lines, such as ``GPIOHANDLE_REQUEST_OUTPUT``, ``GPIOHANDLE_REQUEST_ACTIVE_LOW`` etc, added together. Note that even if multiple lines are requested, the same flags must be applicable to all of them, if you want lines with individual flags set, request them one by one. It is possible to select a batch of input or output lines, but they must all have the same characteristics, i.e. all inputs or all outputs, all active low etch](h2desired flags for the desired GPIO lines, such as }(hj hhhNhNubj)}(h``GPIOHANDLE_REQUEST_OUTPUT``h]hGPIOHANDLE_REQUEST_OUTPUT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh, }(hj hhhNhNubj)}(h!``GPIOHANDLE_REQUEST_ACTIVE_LOW``h]hGPIOHANDLE_REQUEST_ACTIVE_LOW}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhX\ etc, added together. Note that even if multiple lines are requested, the same flags must be applicable to all of them, if you want lines with individual flags set, request them one by one. It is possible to select a batch of input or output lines, but they must all have the same characteristics, i.e. all inputs or all outputs, all active low etc}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjG ubj)}(h``default_values`` if the ``GPIOHANDLE_REQUEST_OUTPUT`` is set for a requested line, this specifies the default output value, should be 0 (inactive) or 1 (active). Anything other than 0 or 1 will be interpreted as active. h](j)}(h``default_values``h]j)}(hj h]hdefault_values}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hhh]h)}(hif the ``GPIOHANDLE_REQUEST_OUTPUT`` is set for a requested line, this specifies the default output value, should be 0 (inactive) or 1 (active). Anything other than 0 or 1 will be interpreted as active.h](hif the }(hj hhhNhNubj)}(h``GPIOHANDLE_REQUEST_OUTPUT``h]hGPIOHANDLE_REQUEST_OUTPUT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh is set for a requested line, this specifies the default output value, should be 0 (inactive) or 1 (active). Anything other than 0 or 1 will be interpreted as active.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjG ubj)}(hg``consumer_label`` a desired consumer label for the selected GPIO line(s) such as "my-bitbanged-relay" h](j)}(h``consumer_label``h]j)}(hj4 h]hconsumer_label}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2 ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj. ubj)}(hhh]h)}(hSa desired consumer label for the selected GPIO line(s) such as "my-bitbanged-relay"h]hWa desired consumer label for the selected GPIO line(s) such as “my-bitbanged-relay”}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjJ ubah}(h]h ]h"]h$]h&]uh1jhj. ubeh}(h]h ]h"]h$]h&]uh1jhjI hMhjG ubj)}(h``lines`` number of lines requested in this request, i.e. the number of valid fields in the above arrays, set to 1 to request a single line h](j)}(h ``lines``h]j)}(hjn h]hlines}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjh ubj)}(hhh]h)}(hnumber of lines requested in this request, i.e. the number of valid fields in the above arrays, set to 1 to request a single lineh]hnumber of lines requested in this request, i.e. the number of valid fields in the above arrays, set to 1 to request a single line}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubah}(h]h ]h"]h$]h&]uh1jhjh ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjG ubj)}(h``fd`` after a successful ``GPIO_GET_LINEHANDLE_IOCTL`` operation, contains a valid anonymous file descriptor representing the requesth](j)}(h``fd``h]j)}(hj h]hfd}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hhh]h)}(hafter a successful ``GPIO_GET_LINEHANDLE_IOCTL`` operation, contains a valid anonymous file descriptor representing the requesth](hafter a successful }(hj hhhNhNubj)}(h``GPIO_GET_LINEHANDLE_IOCTL``h]hGPIO_GET_LINEHANDLE_IOCTL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhO operation, contains a valid anonymous file descriptor representing the request}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjG ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jnhjhhhjhNubh)}(h**Note**h]jy)}(hj h]hNote}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jxhj ubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjhhubh)}(hThis struct is part of ABI v1 and is deprecated. Use ABI v2 and :c:type:`struct gpio_v2_line_request ` instead.h](h@This struct is part of ABI v1 and is deprecated. Use ABI v2 and }(hj hhhNhNubh)}(h<:c:type:`struct gpio_v2_line_request `h]j)}(hj h]hstruct gpio_v2_line_request}(hj hhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjjjNgpio_v2_line_requestuh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubh instead.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj9 hMhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpiohandle_config (C struct)c.gpiohandle_confighNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpiohandle_configh]j)}(hstruct gpiohandle_configh](j)}(hjh]hstruct}(hj] hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY hhhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMubj)}(h h]h }(hjk hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY hhhjj hMubj)}(hgpiohandle_configh]j)}(hjW h]hgpiohandle_config}(hj} hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjy ubah}(h]h ](j.j/eh"]h$]h&]hhuh1jhjY hhhjj hMubeh}(h]h ]h"]h$]h&]hhj9uh1jj:j;hjU hhhjj hMubah}(h]jP ah ](j?j@eh"]h$]h&]jDjE)jFhuh1jhjj hMhjR hhubjH)}(hhh]h)}(h'Configuration for a GPIO handle requesth]h'Configuration for a GPIO handle request}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj hhubah}(h]h ]h"]h$]h&]uh1jGhjR hhhjj hMubeh}(h]h ](jstructeh"]h$]h&]jhjjij jjj jkjljmuh1jhhhjhjhNubjo)}(hXL**Definition**:: struct gpiohandle_config { __u32 flags; __u8 default_values[GPIOHANDLES_MAX]; __u32 padding[4]; }; **Members** ``flags`` updated flags for the requested GPIO lines, such as ``GPIOHANDLE_REQUEST_OUTPUT``, ``GPIOHANDLE_REQUEST_ACTIVE_LOW`` etc, added together ``default_values`` if the ``GPIOHANDLE_REQUEST_OUTPUT`` is set in flags, this specifies the default output value, should be 0 (inactive) or 1 (active). Anything other than 0 or 1 will be interpreted as active. ``padding`` reserved for future use and should be zero filledh](h)}(h**Definition**::h](jy)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jxhj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hnstruct gpiohandle_config { __u32 flags; __u8 default_values[GPIOHANDLES_MAX]; __u32 padding[4]; };h]hnstruct gpiohandle_config { __u32 flags; __u8 default_values[GPIOHANDLES_MAX]; __u32 padding[4]; };}hj sbah}(h]h ]h"]h$]h&]hhuh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubh)}(h **Members**h]jy)}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jxhj ubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hhh](j)}(h``flags`` updated flags for the requested GPIO lines, such as ``GPIOHANDLE_REQUEST_OUTPUT``, ``GPIOHANDLE_REQUEST_ACTIVE_LOW`` etc, added together h](j)}(h ``flags``h]j)}(hj h]hflags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hhh]h)}(hupdated flags for the requested GPIO lines, such as ``GPIOHANDLE_REQUEST_OUTPUT``, ``GPIOHANDLE_REQUEST_ACTIVE_LOW`` etc, added togetherh](h4updated flags for the requested GPIO lines, such as }(hj% hhhNhNubj)}(h``GPIOHANDLE_REQUEST_OUTPUT``h]hGPIOHANDLE_REQUEST_OUTPUT}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj% ubh, }(hj% hhhNhNubj)}(h!``GPIOHANDLE_REQUEST_ACTIVE_LOW``h]hGPIOHANDLE_REQUEST_ACTIVE_LOW}(hj? hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj% ubh etc, added together}(hj% hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj" ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj! hMhj ubj)}(h``default_values`` if the ``GPIOHANDLE_REQUEST_OUTPUT`` is set in flags, this specifies the default output value, should be 0 (inactive) or 1 (active). Anything other than 0 or 1 will be interpreted as active. h](j)}(h``default_values``h]j)}(hjj h]hdefault_values}(hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjd ubj)}(hhh]h)}(hif the ``GPIOHANDLE_REQUEST_OUTPUT`` is set in flags, this specifies the default output value, should be 0 (inactive) or 1 (active). Anything other than 0 or 1 will be interpreted as active.h](hif the }(hj hhhNhNubj)}(h``GPIOHANDLE_REQUEST_OUTPUT``h]hGPIOHANDLE_REQUEST_OUTPUT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh is set in flags, this specifies the default output value, should be 0 (inactive) or 1 (active). Anything other than 0 or 1 will be interpreted as active.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubah}(h]h ]h"]h$]h&]uh1jhjd ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubj)}(h=``padding`` reserved for future use and should be zero filledh](j)}(h ``padding``h]j)}(hj h]hpadding}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hhh]h)}(h1reserved for future use and should be zero filledh]h1reserved for future use and should be zero filled}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jnhjhhhjhNubh)}(h**Note**h]jy)}(hj h]hNote}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jxhj ubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjhhubh)}(hThis struct is part of ABI v1 and is deprecated. Use ABI v2 and :c:type:`struct gpio_v2_line_config ` instead.h](h@This struct is part of ABI v1 and is deprecated. Use ABI v2 and }(hjhhhNhNubh)}(h::c:type:`struct gpio_v2_line_config `h]j)}(hjh]hstruct gpio_v2_line_config}(hjhhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjjjNgpio_v2_line_configuh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubh instead.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj6hMhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpiohandle_data (C struct)c.gpiohandle_datahNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpiohandle_datah]j)}(hstruct gpiohandle_datah](j)}(hjh]hstruct}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjghMubj)}(hgpiohandle_datah]j)}(hjTh]hgpiohandle_data}(hjzhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjvubah}(h]h ](j.j/eh"]h$]h&]hhuh1jhjVhhhjghMubeh}(h]h ]h"]h$]h&]hhj9uh1jj:j;hjRhhhjghMubah}(h]jMah ](j?j@eh"]h$]h&]jDjE)jFhuh1jhjghMhjOhhubjH)}(hhh]h)}(h&Information of values on a GPIO handleh]h&Information of values on a GPIO handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jGhjOhhhjghMubeh}(h]h ](jstructeh"]h$]h&]jhjjijjjjjkjljmuh1jhhhjhjhNubjo)}(hX**Definition**:: struct gpiohandle_data { __u8 values[GPIOHANDLES_MAX]; }; **Members** ``values`` when getting the state of lines this contains the current state of a line, when setting the state of lines these should contain the desired target state. States are 0 (inactive) or 1 (active). When setting, anything other than 0 or 1 will be interpreted as active.h](h)}(h**Definition**::h](jy)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubj)}(h=struct gpiohandle_data { __u8 values[GPIOHANDLES_MAX]; };h]h=struct gpiohandle_data { __u8 values[GPIOHANDLES_MAX]; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubh)}(h **Members**h]jy)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubj)}(hhh]j)}(hX``values`` when getting the state of lines this contains the current state of a line, when setting the state of lines these should contain the desired target state. States are 0 (inactive) or 1 (active). When setting, anything other than 0 or 1 will be interpreted as active.h](j)}(h ``values``h]j)}(hj h]hvalues}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubj)}(hhh]h)}(hX when getting the state of lines this contains the current state of a line, when setting the state of lines these should contain the desired target state. States are 0 (inactive) or 1 (active). When setting, anything other than 0 or 1 will be interpreted as active.h]hX when getting the state of lines this contains the current state of a line, when setting the state of lines these should contain the desired target state. States are 0 (inactive) or 1 (active). When setting, anything other than 0 or 1 will be interpreted as active.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jnhjhhhjhNubh)}(h**Note**h]jy)}(hjLh]hNote}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjJubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjhhubh)}(hThis struct is part of ABI v1 and is deprecated. Use ABI v2 and :c:type:`struct gpio_v2_line_values ` instead.h](h@This struct is part of ABI v1 and is deprecated. Use ABI v2 and }(hjbhhhNhNubh)}(h::c:type:`struct gpio_v2_line_values `h]j)}(hjlh]hstruct gpio_v2_line_values}(hjnhhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjjjNgpio_v2_line_valuesuh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjbubh instead.}(hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpioevent_request (C struct)c.gpioevent_requesthNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpioevent_requesth]j)}(hstruct gpioevent_requesth](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hgpioevent_requesth]j)}(hjh]hgpioevent_request}(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubah}(h]h ](j.j/eh"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj9uh1jj:j;hjhhhjhMubah}(h]jah ](j?j@eh"]h$]h&]jDjE)jFhuh1jhjhMhjhhubjH)}(hhh]h)}(h&Information about a GPIO event requesth]h&Information about a GPIO event request}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jGhjhhhjhMubeh}(h]h ](jstructeh"]h$]h&]jhjjijjjjjkjljmuh1jhhhjhjhNubjo)}(hXX**Definition**:: struct gpioevent_request { __u32 lineoffset; __u32 handleflags; __u32 eventflags; char consumer_label[GPIO_MAX_NAME_SIZE]; int fd; }; **Members** ``lineoffset`` the desired line to subscribe to events from, specified by offset index for the associated GPIO device ``handleflags`` desired handle flags for the desired GPIO line, such as ``GPIOHANDLE_REQUEST_ACTIVE_LOW`` or ``GPIOHANDLE_REQUEST_OPEN_DRAIN`` ``eventflags`` desired flags for the desired GPIO event line, such as ``GPIOEVENT_REQUEST_RISING_EDGE`` or ``GPIOEVENT_REQUEST_FALLING_EDGE`` ``consumer_label`` a desired consumer label for the selected GPIO line(s) such as "my-listener" ``fd`` after a successful ``GPIO_GET_LINEEVENT_IOCTL`` operation, contains a valid anonymous file descriptor representing the requesth](h)}(h**Definition**::h](jy)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hstruct gpioevent_request { __u32 lineoffset; __u32 handleflags; __u32 eventflags; char consumer_label[GPIO_MAX_NAME_SIZE]; int fd; };h]hstruct gpioevent_request { __u32 lineoffset; __u32 handleflags; __u32 eventflags; char consumer_label[GPIO_MAX_NAME_SIZE]; int fd; };}hj,sbah}(h]h ]h"]h$]h&]hhuh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubh)}(h **Members**h]jy)}(hj=h]hMembers}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jxhj;ubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj ubj)}(hhh](j)}(hv``lineoffset`` the desired line to subscribe to events from, specified by offset index for the associated GPIO device h](j)}(h``lineoffset``h]j)}(hj\h]h lineoffset}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1?jhjZubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjVubj)}(hhh]h)}(hfthe desired line to subscribe to events from, specified by offset index for the associated GPIO deviceh]hfthe desired line to subscribe to events from, specified by offset index for the associated GPIO device}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjSubj)}(h``handleflags`` desired handle flags for the desired GPIO line, such as ``GPIOHANDLE_REQUEST_ACTIVE_LOW`` or ``GPIOHANDLE_REQUEST_OPEN_DRAIN`` h](j)}(h``handleflags``h]j)}(hjh]h handleflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubj)}(hhh]h)}(h~desired handle flags for the desired GPIO line, such as ``GPIOHANDLE_REQUEST_ACTIVE_LOW`` or ``GPIOHANDLE_REQUEST_OPEN_DRAIN``h](h8desired handle flags for the desired GPIO line, such as }(hjhhhNhNubj)}(h!``GPIOHANDLE_REQUEST_ACTIVE_LOW``h]hGPIOHANDLE_REQUEST_ACTIVE_LOW}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or }(hjhhhNhNubj)}(h!``GPIOHANDLE_REQUEST_OPEN_DRAIN``h]hGPIOHANDLE_REQUEST_OPEN_DRAIN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjSubj)}(h``eventflags`` desired flags for the desired GPIO event line, such as ``GPIOEVENT_REQUEST_RISING_EDGE`` or ``GPIOEVENT_REQUEST_FALLING_EDGE`` h](j)}(h``eventflags``h]j)}(hjh]h eventflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubj)}(hhh]h)}(h~desired flags for the desired GPIO event line, such as ``GPIOEVENT_REQUEST_RISING_EDGE`` or ``GPIOEVENT_REQUEST_FALLING_EDGE``h](h7desired flags for the desired GPIO event line, such as }(hj hhhNhNubj)}(h!``GPIOEVENT_REQUEST_RISING_EDGE``h]hGPIOEVENT_REQUEST_RISING_EDGE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh or }(hj hhhNhNubj)}(h"``GPIOEVENT_REQUEST_FALLING_EDGE``h]hGPIOEVENT_REQUEST_FALLING_EDGE}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjSubj)}(h```consumer_label`` a desired consumer label for the selected GPIO line(s) such as "my-listener" h](j)}(h``consumer_label``h]j)}(hjJh]hconsumer_label}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjDubj)}(hhh]h)}(hLa desired consumer label for the selected GPIO line(s) such as "my-listener"h]hPa desired consumer label for the selected GPIO line(s) such as “my-listener”}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hMhjSubj)}(h``fd`` after a successful ``GPIO_GET_LINEEVENT_IOCTL`` operation, contains a valid anonymous file descriptor representing the requesth](j)}(h``fd``h]j)}(hjh]hfd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhj~ubj)}(hhh]h)}(h~after a successful ``GPIO_GET_LINEEVENT_IOCTL`` operation, contains a valid anonymous file descriptor representing the requesth](hafter a successful }(hjhhhNhNubj)}(h``GPIO_GET_LINEEVENT_IOCTL``h]hGPIO_GET_LINEEVENT_IOCTL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhO operation, contains a valid anonymous file descriptor representing the request}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjSubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jnhjhhhjhNubh)}(h**Note**h]jy)}(hjh]hNote}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjhhubh)}(hThis struct is part of ABI v1 and is deprecated. Use ABI v2 and :c:type:`struct gpio_v2_line_request ` instead.h](h@This struct is part of ABI v1 and is deprecated. Use ABI v2 and }(hjhhhNhNubh)}(h<:c:type:`struct gpio_v2_line_request `h]j)}(hjh]hstruct gpio_v2_line_request}(hjhhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjjjNgpio_v2_line_requestuh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubh instead.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgpioevent_data (C struct)c.gpioevent_datahNtauh1jhjhhhjhNubj)}(hhh](j)}(hgpioevent_datah]j)}(hstruct gpioevent_datah](j)}(hjh]hstruct}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhjFhMubj)}(hgpioevent_datah]j)}(hj3h]hgpioevent_data}(hjYhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjUubah}(h]h ](j.j/eh"]h$]h&]hhuh1jhj5hhhjFhMubeh}(h]h ]h"]h$]h&]hhj9uh1jj:j;hj1hhhjFhMubah}(h]j,ah ](j?j@eh"]h$]h&]jDjE)jFhuh1jhjFhMhj.hhubjH)}(hhh]h)}(h*The actual event being pushed to userspaceh]h*The actual event being pushed to userspace}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjxhhubah}(h]h ]h"]h$]h&]uh1jGhj.hhhjFhMubeh}(h]h ](jstructeh"]h$]h&]jhjjijjjjjkjljmuh1jhhhjhjhNubjo)}(hX**Definition**:: struct gpioevent_data { __u64 timestamp; __u32 id; }; **Members** ``timestamp`` best estimate of time of event occurrence, in nanoseconds ``id`` event identifier, one of ``GPIOEVENT_EVENT_RISING_EDGE`` or ``GPIOEVENT_EVENT_FALLING_EDGE``h](h)}(h**Definition**::h](jy)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubj)}(h=struct gpioevent_data { __u64 timestamp; __u32 id; };h]h=struct gpioevent_data { __u64 timestamp; __u32 id; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubh)}(h **Members**h]jy)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubj)}(hhh](j)}(hH``timestamp`` best estimate of time of event occurrence, in nanoseconds h](j)}(h ``timestamp``h]j)}(hjh]h timestamp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubj)}(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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hc``id`` event identifier, one of ``GPIOEVENT_EVENT_RISING_EDGE`` or ``GPIOEVENT_EVENT_FALLING_EDGE``h](j)}(h``id``h]j)}(hj!h]hid}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubj)}(hhh]h)}(h\event identifier, one of ``GPIOEVENT_EVENT_RISING_EDGE`` or ``GPIOEVENT_EVENT_FALLING_EDGE``h](hevent identifier, one of }(hj:hhhNhNubj)}(h``GPIOEVENT_EVENT_RISING_EDGE``h]hGPIOEVENT_EVENT_RISING_EDGE}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubh or }(hj:hhhNhNubj)}(h ``GPIOEVENT_EVENT_FALLING_EDGE``h]hGPIOEVENT_EVENT_FALLING_EDGE}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1hhj6hMhj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jnhjhhhjhNubh)}(h**Note**h]jy)}(hjh]hNote}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jxhjubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjhhubh)}(hThis struct is part of ABI v1 and is deprecated. Use ABI v2 and :c:type:`struct gpio_v2_line_event ` instead.h](h@This struct is part of ABI v1 and is deprecated. Use ABI v2 and }(hjhhhNhNubh)}(h8:c:type:`struct gpio_v2_line_event `h]j)}(hjh]hstruct gpio_v2_line_event}(hjhhhNhNubah}(h]h ](j;jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjH refdomainjreftypetype refexplicitrefwarnjjjNgpio_v2_line_eventuh1hhh/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/chardev_v1:118: ./include/uapi/linux/gpio.hhMhjubh instead.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubj)}(hhh]j)}(hhh]h}(h]h ]h"]h$]h&]hjHj]Nuserspace-api/gpio/error-codesaj]jajJjNjjjjKjj]uh1jhhhKhjubah}(h]h ]jah"]h$]h&]uh1jhjhhhhhNubeh}(h]typesah ]h"]typesah$]h&]uh1hhhhhhhhKpubeh}(h]&gpio-character-device-userspace-api-v1ah ]h"](gpio character device userspace api (v1)ah$]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]jaj]jaunameids}(jjj jj j  operationsNjjjjjzjjyjvjju nametypes}(jj j j\jjjzjyjuh}(jhjjj jjjjjjjjjvjjjvjjnj2jjjjjjj j jP jU jMjRjjj,j1u 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”.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}ubah}(h]h ]h"]h$]h&]jalevelKtypeINFOsourcehnjlineKLuh1j{hjvhhhhhKLubj|)}(hhh]h)}(h-Duplicate implicit target name: "operations".h]h1Duplicate implicit target name: “operations”.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]jnalevelKtypejsourcehnjlineKeuh1j{hj2hhhhhKeubetransform_messages](j|)}(hhh]h)}(hhh]h2Hyperlink target "gpio-v1-chip" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1j{ubj|)}(hhh]h)}(hhh]h9Hyperlink target "gpio-v1-line-handle" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineK>uh1j{ubj|)}(hhh]h)}(hhh]h8Hyperlink target "gpio-v1-line-event" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKWuh1j{ube transformerN include_log] decorationNhhub.