.. SPDX-License-Identifier: GPL-2.0

.. _GPIO_V2_LINE_SET_CONFIG_IOCTL:

*****************************
GPIO_V2_LINE_SET_CONFIG_IOCTL
*****************************

Name
====

GPIO_V2_LINE_SET_CONFIG_IOCTL - Update the configuration of previously requested lines.

Synopsis
========

.. c:macro:: GPIO_V2_LINE_SET_CONFIG_IOCTL

``int ioctl(int req_fd, GPIO_V2_LINE_SET_CONFIG_IOCTL, struct gpio_v2_line_config *config)``

Arguments
=========

``req_fd``
    The file descriptor of the GPIO character device, as returned in the
    :c:type:`request.fd<gpio_v2_line_request>` by gpio-v2-get-line-ioctl.rst.

``config``
    The new :c:type:`configuration<gpio_v2_line_config>` to apply to the
    requested lines.

Description
===========

Update the configuration of previously requested lines, without releasing the
line or introducing potential glitches.

The new configuration must specify the configuration of all requested lines.

The same :ref:`gpio-v2-get-line-config-rules` and
:ref:`gpio-v2-get-line-config-support` that apply when requesting the lines
also apply when updating the line configuration.

The motivating use case for this command is changing direction of
bi-directional lines between input and output, but it may also be used to
dynamically control edge detection, or more generally move lines seamlessly
from one configuration state to another.

To only change the value of output lines, use
gpio-v2-line-set-values-ioctl.rst.

Return Value
============

On success 0.

On error -1 and the ``errno`` variable is set appropriately.
Common error codes are described in error-codes.rst.
