€•wŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ=/translations/zh_CN/userspace-api/gpio/gpio-v2-get-line-ioctl”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ=/translations/zh_TW/userspace-api/gpio/gpio-v2-get-line-ioctl”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ=/translations/it_IT/userspace-api/gpio/gpio-v2-get-line-ioctl”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ=/translations/ja_JP/userspace-api/gpio/gpio-v2-get-line-ioctl”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ=/translations/ko_KR/userspace-api/gpio/gpio-v2-get-line-ioctl”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ=/translations/pt_BR/userspace-api/gpio/gpio-v2-get-line-ioctl”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ=/translations/sp_SP/userspace-api/gpio/gpio-v2-get-line-ioctl”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒW/var/lib/git/docbuild/linux/Documentation/userspace-api/gpio/gpio-v2-get-line-ioctl.rst”h´KubhŒtarget”“”)”}”(hŒ.. _GPIO_V2_GET_LINE_IOCTL:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œgpio-v2-get-line-ioctl”uh1hÈh´Khhh²hh³hÇubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒGPIO_V2_GET_LINE_IOCTL”h]”hŒGPIO_V2_GET_LINE_IOCTL”…””}”(hhÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhØh²hh³hÇh´Kubh×)”}”(hhh]”(hÜ)”}”(hŒName”h]”hŒName”…””}”(hhîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhëh²hh³hÇh´K ubhŒ paragraph”“”)”}”(hŒAGPIO_V2_GET_LINE_IOCTL - Request a line or lines from the kernel.”h]”hŒAGPIO_V2_GET_LINE_IOCTL - Request a line or lines from the kernel.”…””}”(hhþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K hhëh²hubeh}”(h]”Œname”ah ]”h"]”Œname”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K ubh×)”}”(hhh]”(hÜ)”}”(hŒSynopsis”h]”hŒSynopsis”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjh²hh³hÇh´KubhŒindex”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ GPIO_V2_GET_LINE_IOCTL (C macro)”Œc.GPIO_V2_GET_LINE_IOCTL”hNt”auh1j%hjh²hh³Nh´NubhŒdesc”“”)”}”(hhh]”(hŒdesc_signature”“”)”}”(hŒGPIO_V2_GET_LINE_IOCTL”h]”hŒdesc_signature_line”“”)”}”(hŒGPIO_V2_GET_LINE_IOCTL”h]”hŒ desc_name”“”)”}”(hŒGPIO_V2_GET_LINE_IOCTL”h]”hŒ desc_sig_name”“”)”}”(hj?h]”hŒGPIO_V2_GET_LINE_IOCTL”…””}”(hjOh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jMhjIubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jGhjCh²hh³hÇh´Kubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1jAŒsphinx_line_type”Œ declarator”hj=h²hh³hÇh´Kubah}”(h]”j4ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1j;h³hÇh´Khj8h²hubhŒ desc_content”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jyhj8h²hh³hÇh´Kubeh}”(h]”h ]”(Œc”Œmacro”eh"]”h$]”h&]”Œdomain”j‡Œobjtype”jˆŒdesctype”jˆŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j6h²hhjh³Nh´Nubhý)”}”(hŒX``int ioctl(int chip_fd, GPIO_V2_GET_LINE_IOCTL, struct gpio_v2_line_request *request)``”h]”hŒliteral”“”)”}”(hj”h]”hŒTint ioctl(int chip_fd, GPIO_V2_GET_LINE_IOCTL, struct gpio_v2_line_request *request)”…””}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khjh²hubeh}”(h]”Œsynopsis”ah ]”h"]”Œsynopsis”ah$]”h&]”uh1hÖhhØh²hh³hÇh´Kubh×)”}”(hhh]”(hÜ)”}”(hŒ Arguments”h]”hŒ Arguments”…””}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj³h²hh³hÇh´KubhŒdefinition_list”“”)”}”(hhh]”(hŒdefinition_list_item”“”)”}”(hŒS``chip_fd`` The file descriptor of the GPIO character device returned by `open()`. ”h]”(hŒterm”“”)”}”(hŒ ``chip_fd``”h]”j—)”}”(hjÓh]”hŒchip_fd”…””}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jÏh³hÇh´KhjËubhŒ definition”“”)”}”(hhh]”hý)”}”(hŒFThe file descriptor of the GPIO character device returned by `open()`.”h]”(hŒ=The file descriptor of the GPIO character device returned by ”…””}”(hjíh²hh³Nh´NubhŒtitle_reference”“”)”}”(hŒ`open()`”h]”hŒopen()”…””}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jõhjíubhŒ.”…””}”(hjíh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jèhjËubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÉh³hÇh´KhjÆubjÊ)”}”(hŒv``request`` The :c:type:`line_request` specifying the lines to request and their configuration. ”h]”(jÐ)”}”(hŒ ``request``”h]”j—)”}”(hj!h]”hŒrequest”…””}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÏh³hÇh´Khjubjé)”}”(hhh]”hý)”}”(hŒiThe :c:type:`line_request` specifying the lines to request and their configuration.”h]”(hŒThe ”…””}”(hj9h²hh³Nh´Nubh)”}”(hŒ,:c:type:`line_request`”h]”j—)”}”(hjCh]”hŒ line_request”…””}”(hjEh²hh³Nh´Nubah}”(h]”h ]”(Œxref”j‡Œc-type”eh"]”h$]”h&]”uh1j–hjAubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ)userspace-api/gpio/gpio-v2-get-line-ioctl”Œ refdomain”j‡Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)”}”Œdata”]”sbŒ reftarget”Œgpio_v2_line_request”uh1hh³hÇh´Khj9ubhŒ9 specifying the lines to request and their configuration.”…””}”(hj9h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÉh³hÇh´KhjÆh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄhj³h²hh³hÇh´Nubeh}”(h]”Œ arguments”ah ]”h"]”Œ arguments”ah$]”h&]”uh1hÖhhØh²hh³hÇh´Kubh×)”}”(hhh]”(hÜ)”}”(hŒ Description”h]”hŒ Description”…””}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjh²hh³hÇh´K ubhý)”}”(hŒÿOn success, the requesting process is granted exclusive access to the line value, write access to the line configuration, and may receive events when edges are detected on the line, all of which are described in more detail in :ref:`gpio-v2-line-request`.”h]”(hŒãOn success, the requesting process is granted exclusive access to the line value, write access to the line configuration, and may receive events when edges are detected on the line, all of which are described in more detail in ”…””}”(hj h²hh³Nh´Nubh)”}”(hŒ:ref:`gpio-v2-line-request`”h]”hŒinline”“”)”}”(hjªh]”hŒgpio-v2-line-request”…””}”(hj®h²hh³Nh´Nubah}”(h]”h ]”(jOŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¬hj¨ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j[Œ refdomain”j¸Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆjiŒgpio-v2-line-request”uh1hh³hÇh´K"hj ubhŒ.”…””}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K"hjh²hubhý)”}”(hŒòA number of lines may be requested in the one line request, and request operations are performed on the requested lines by the kernel as atomically as possible. e.g. gpio-v2-line-get-values-ioctl.rst will read all the requested lines at once.”h]”hŒòA number of lines may be requested in the one line request, and request operations are performed on the requested lines by the kernel as atomically as possible. e.g. gpio-v2-line-get-values-ioctl.rst will read all the requested lines at once.”…””}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K'hjh²hubhý)”}”(hX The state of a line, including the value of output lines, is guaranteed to remain as requested until the returned file descriptor is closed. Once the file descriptor is closed, the state of the line becomes uncontrolled from the userspace perspective, and may revert to its default state.”h]”hX The state of a line, including the value of output lines, is guaranteed to remain as requested until the returned file descriptor is closed. Once the file descriptor is closed, the state of the line becomes uncontrolled from the userspace perspective, and may revert to its default state.”…””}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K,hjh²hubhý)”}”(hŒ9Requesting a line already in use is an error (**EBUSY**).”h]”(hŒ.Requesting a line already in use is an error (”…””}”(hjðh²hh³Nh´NubhŒstrong”“”)”}”(hŒ **EBUSY**”h]”hŒEBUSY”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjðubhŒ).”…””}”(hjðh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K1hjh²hubhý)”}”(hŒ@Closing the ``chip_fd`` has no effect on existing line requests.”h]”(hŒ Closing the ”…””}”(hjh²hh³Nh´Nubj—)”}”(hŒ ``chip_fd``”h]”hŒchip_fd”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjubhŒ) has no effect on existing line requests.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K3hjh²hubhÉ)”}”(hŒ".. _gpio-v2-get-line-config-rules:”h]”h}”(h]”h ]”h"]”h$]”h&]”hÔŒgpio-v2-get-line-config-rules”uh1hÈh´K5hjh²hh³hÇubh×)”}”(hhh]”(hÜ)”}”(hŒConfiguration Rules”h]”hŒConfiguration Rules”…””}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj=h²hh³hÇh´K8ubhý)”}”(hŒFFor any given requested line, the following configuration rules apply:”h]”hŒFFor any given requested line, the following configuration rules apply:”…””}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K:hj=h²hubhý)”}”(hX:The direction flags, ``GPIO_V2_LINE_FLAG_INPUT`` and ``GPIO_V2_LINE_FLAG_OUTPUT``, cannot be combined. If neither are set then the only other flag that may be set is ``GPIO_V2_LINE_FLAG_ACTIVE_LOW`` and the line is requested "as-is" to allow reading of the line value without altering the electrical configuration.”h]”(hŒThe direction flags, ”…””}”(hj\h²hh³Nh´Nubj—)”}”(hŒ``GPIO_V2_LINE_FLAG_INPUT``”h]”hŒGPIO_V2_LINE_FLAG_INPUT”…””}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj\ubhŒ and ”…””}”(hj\h²hh³Nh´Nubj—)”}”(hŒ``GPIO_V2_LINE_FLAG_OUTPUT``”h]”hŒGPIO_V2_LINE_FLAG_OUTPUT”…””}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj\ubhŒU, cannot be combined. If neither are set then the only other flag that may be set is ”…””}”(hj\h²hh³Nh´Nubj—)”}”(hŒ ``GPIO_V2_LINE_FLAG_ACTIVE_LOW``”h]”hŒGPIO_V2_LINE_FLAG_ACTIVE_LOW”…””}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj\ubhŒx and the line is requested “as-is†to allow reading of the line value without altering the electrical configuration.”…””}”(hj\h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj6ubhŒ?, may be set. If none are set then the event clock defaults to ”…””}”(hj6h²hh³Nh´Nubj—)”}”(hŒ``CLOCK_MONOTONIC``”h]”hŒCLOCK_MONOTONIC”…””}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj6ubhŒ. The ”…””}”(hj6h²hh³Nh´Nubj—)”}”(hŒ%``GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE``”h]”hŒ!GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE”…””}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj6ubhŒ5 flag requires supporting hardware and a kernel with ”…””}”(hj6h²hh³Nh´Nubj—)”}”(hŒ``CONFIG_HTE``”h]”hŒ CONFIG_HTE”…””}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj6ubhŒK set. Requesting HTE from a device that doesn’t support it is an error (”…””}”(hj6h²hh³Nh´Nubjù)”}”(hŒ**EOPNOTSUPP**”h]”hŒ EOPNOTSUPP”…””}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhj6ubhŒ).”…””}”(hj6h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´KPhj=h²hubhý)”}”(hX The :c:type:`debounce_period_us` attribute may only be applied to lines with ``GPIO_V2_LINE_FLAG_INPUT`` set. When set, debounce applies to both the values returned by gpio-v2-line-get-values-ioctl.rst and the edges returned by gpio-v2-line-event-read.rst. If not supported directly by hardware, debouncing is emulated in software by the kernel. Requesting debounce on a line that supports neither debounce in hardware nor interrupts, as required for software emulation, is an error (**ENXIO**).”h]”(hŒThe ”…””}”(hjžh²hh³Nh´Nubh)”}”(hŒ4:c:type:`debounce_period_us`”h]”j—)”}”(hj¨h]”hŒdebounce_period_us”…””}”(hjªh²hh³Nh´Nubah}”(h]”h ]”(jOj‡Œc-type”eh"]”h$]”h&]”uh1j–hj¦ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j[Œ refdomain”j‡Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jajejiŒgpio_v2_line_attribute”uh1hh³hÇh´KVhjžubhŒ- attribute may only be applied to lines with ”…””}”(hjžh²hh³Nh´Nubj—)”}”(hŒ``GPIO_V2_LINE_FLAG_INPUT``”h]”hŒGPIO_V2_LINE_FLAG_INPUT”…””}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjžubhX~ set. When set, debounce applies to both the values returned by gpio-v2-line-get-values-ioctl.rst and the edges returned by gpio-v2-line-event-read.rst. If not supported directly by hardware, debouncing is emulated in software by the kernel. Requesting debounce on a line that supports neither debounce in hardware nor interrupts, as required for software emulation, is an error (”…””}”(hjžh²hh³Nh´Nubjù)”}”(hŒ **ENXIO**”h]”hŒENXIO”…””}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjžubhŒ).”…””}”(hjžh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´KVhj=h²hubhý)”}”(hŒ=Requesting an invalid configuration is an error (**EINVAL**).”h]”(hŒ1Requesting an invalid configuration is an error (”…””}”(hjóh²hh³Nh´Nubjù)”}”(hŒ **EINVAL**”h]”hŒEINVAL”…””}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjóubhŒ).”…””}”(hjóh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K_hj=h²hubhÉ)”}”(hŒ$.. _gpio-v2-get-line-config-support:”h]”h}”(h]”h ]”h"]”h$]”h&]”hÔŒgpio-v2-get-line-config-support”uh1hÈh´Kahj=h²hh³hÇubeh}”(h]”(Œconfiguration-rules”j<eh ]”h"]”(Œconfiguration rules”Œgpio-v2-get-line-config-rules”eh$]”h&]”uh1hÖhjh²hh³hÇh´K8Œexpect_referenced_by_name”}”j$j2sŒexpect_referenced_by_id”}”j<j2subh×)”}”(hhh]”(hÜ)”}”(hŒConfiguration Support”h]”hŒConfiguration Support”…””}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj+h²hh³hÇh´Kdubhý)”}”(hŒŽWhere the requested configuration is not directly supported by the underlying hardware and driver, the kernel applies one of these approaches:”h]”hŒŽWhere the requested configuration is not directly supported by the underlying hardware and driver, the kernel applies one of these approaches:”…””}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kfhj+h²hubhŒ block_quote”“”)”}”(hŒZ- reject the request - emulate the feature in software - treat the feature as best effort ”h]”hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒreject the request”h]”hý)”}”(hjYh]”hŒreject the request”…””}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´KihjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjRubjV)”}”(hŒemulate the feature in software”h]”hý)”}”(hjph]”hŒemulate the feature in software”…””}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kjhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjRubjV)”}”(hŒ!treat the feature as best effort ”h]”hý)”}”(hŒ treat the feature as best effort”h]”hŒ treat the feature as best effort”…””}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kkhj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjRubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jPh³hÇh´KihjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jJh³hÇh´Kihj+h²hubhý)”}”(hŒÞThe approach applied depends on whether the feature can reasonably be emulated in software, and the impact on the hardware and userspace if the feature is not supported. The approach applied for each feature is as follows:”h]”hŒÞThe approach applied depends on whether the feature can reasonably be emulated in software, and the impact on the hardware and userspace if the feature is not supported. The approach applied for each feature is as follows:”…””}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kmhj+h²hubhŒtable”“”)”}”(hhh]”hŒtgroup”“”)”}”(hhh]”(hŒcolspec”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jÃhjÀubjÄ)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1jÃhjÀubhŒthead”“”)”}”(hhh]”hŒrow”“”)”}”(hhh]”(hŒentry”“”)”}”(hhh]”hý)”}”(hŒFeature”h]”hŒFeature”…””}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kshjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjàubjä)”}”(hhh]”hý)”}”(hŒApproach”h]”hŒApproach”…””}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kshjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjàubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞhjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjÀubhŒtbody”“”)”}”(hhh]”(jß)”}”(hhh]”(jä)”}”(hhh]”hý)”}”(hŒBias”h]”hŒBias”…””}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kuhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhj$ubjä)”}”(hhh]”hý)”}”(hŒ best effort”h]”hŒ best effort”…””}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kuhj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞhj!ubjß)”}”(hhh]”(jä)”}”(hhh]”hý)”}”(hŒDebounce”h]”hŒDebounce”…””}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kvhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhj[ubjä)”}”(hhh]”hý)”}”(hŒemulate”h]”hŒemulate”…””}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kvhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞhj!ubjß)”}”(hhh]”(jä)”}”(hhh]”hý)”}”(hŒ Direction”h]”hŒ Direction”…””}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kwhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhj’ubjä)”}”(hhh]”hý)”}”(hŒreject”h]”hŒreject”…””}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kwhj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhj’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞhj!ubjß)”}”(hhh]”(jä)”}”(hhh]”hý)”}”(hŒDrive”h]”hŒDrive”…””}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´KxhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjÉubjä)”}”(hhh]”hý)”}”(hŒemulate”h]”hŒemulate”…””}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kxhjãubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞhj!ubjß)”}”(hhh]”(jä)”}”(hhh]”hý)”}”(hŒEdge Detection”h]”hŒEdge Detection”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kyhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjubjä)”}”(hhh]”hý)”}”(hŒreject”h]”hŒreject”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kyhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞhj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÀubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j¾hj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹hj+h²hh³hÇh´Nubhý)”}”(hŒàBias is treated as best effort to allow userspace to apply the same configuration for platforms that support internal bias as those that require external bias. Worst case the line floats rather than being biased as expected.”h]”hŒàBias is treated as best effort to allow userspace to apply the same configuration for platforms that support internal bias as those that require external bias. Worst case the line floats rather than being biased as expected.”…””}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K|hj+h²hubhý)”}”(hŒúDebounce is emulated by applying a filter to hardware interrupts on the line. An edge event is generated after an edge is detected and the line remains stable for the debounce period. The event timestamp corresponds to the end of the debounce period.”h]”hŒúDebounce is emulated by applying a filter to hardware interrupts on the line. An edge event is generated after an edge is detected and the line remains stable for the debounce period. The event timestamp corresponds to the end of the debounce period.”…””}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khj+h²hubhý)”}”(hŒ`Drive is emulated by switching the line to an input when the line should not be actively driven.”h]”hŒ`Drive is emulated by switching the line to an input when the line should not be actively driven.”…””}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K†hj+h²hubhý)”}”(hŒEdge detection requires interrupt support, and is rejected if that is not supported. Emulation by polling can still be performed from userspace.”h]”hŒEdge detection requires interrupt support, and is rejected if that is not supported. Emulation by polling can still be performed from userspace.”…””}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K‰hj+h²hubhý)”}”(hŒöIn all cases, the configuration reported by gpio-v2-get-lineinfo-ioctl.rst is the requested configuration, not the resulting hardware configuration. Userspace cannot determine if a feature is supported in hardware, is emulated, or is best effort.”h]”hŒöIn all cases, the configuration reported by gpio-v2-get-lineinfo-ioctl.rst is the requested configuration, not the resulting hardware configuration. Userspace cannot determine if a feature is supported in hardware, is emulated, or is best effort.”…””}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´KŒhj+h²hubeh}”(h]”(Œconfiguration-support”jeh ]”h"]”(Œconfiguration support”Œgpio-v2-get-line-config-support”eh$]”h&]”uh1hÖhjh²hh³hÇh´Kdj'}”j–jsj)}”jjsubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K ubh×)”}”(hhh]”(hÜ)”}”(hŒ Return Value”h]”hŒ Return Value”…””}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj£h²hh³hÇh´K’ubhý)”}”(hŒmOn success 0 and the :c:type:`request.fd` contains the file descriptor for the request.”h]”(hŒOn success 0 and the ”…””}”(hj´h²hh³Nh´Nubh)”}”(hŒ*:c:type:`request.fd`”h]”j—)”}”(hj¾h]”hŒ request.fd”…””}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”(jOj‡Œc-type”eh"]”h$]”h&]”uh1j–hj¼ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j[Œ refdomain”j‡Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jajejiŒgpio_v2_line_request”uh1hh³hÇh´K”hj´ubhŒ. contains the file descriptor for the request.”…””}”(hj´h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K”hj£h²hubhý)”}”(hŒqOn error -1 and the ``errno`` variable is set appropriately. Common error codes are described in error-codes.rst.”h]”(hŒOn error -1 and the ”…””}”(hjåh²hh³Nh´Nubj—)”}”(hŒ ``errno``”h]”hŒerrno”…””}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjåubhŒT variable is set appropriately. Common error codes are described in error-codes.rst.”…””}”(hjåh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K—hj£h²hubeh}”(h]”Œ return-value”ah ]”h"]”Œ return value”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K’ubeh}”(h]”(hÕŒid1”eh ]”h"]”Œgpio_v2_get_line_ioctl”ah$]”Œgpio_v2_get_line_ioctl”ah&]”uh1hÖhhh²hh³hÇh´KŒ referenced”Kj'}”jhÊsj)}”hÕhÊsubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÛNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”jãŒfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j;Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”(hÕ]”hÊaj<]”j2aj]”jauŒnameids”}”(jhÕjjj°j­jŒj‰j jj$j<j#j j–jj•j’j juŒ nametypes”}”(jˆj‰j°‰jŒ‰j ‰j$ˆj#‰j–ˆj•‰j ‰uh}”(hÕhØjhØjhëj­jj4j=j‰j³jjj<j=j j=jj+j’j+jj£uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”jIKs…”R”Œparse_messages”]”hŒsystem_message”“”)”}”(hhh]”hý)”}”(hŒ9Duplicate implicit target name: "gpio_v2_get_line_ioctl".”h]”hŒ=Duplicate implicit target name: “gpio_v2_get_line_ioctlâ€.”…””}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hühj¢ubah}”(h]”h ]”h"]”h$]”h&]”jaŒlevel”KŒtype”ŒINFO”Œsource”hÇŒline”Kuh1j hhØh²hh³hÇh´KubaŒtransform_messages”]”(j¡)”}”(hhh]”hý)”}”(hhh]”hŒ