xref: /linux/Documentation/userspace-api/gpio/gpio-v2-line-set-config-ioctl.rst (revision f4fee216df7d28b87d1c9cc60bcebfecb51c1a05)
1.. SPDX-License-Identifier: GPL-2.0
2
3.. _GPIO_V2_LINE_SET_CONFIG_IOCTL:
4
5*****************************
6GPIO_V2_LINE_SET_CONFIG_IOCTL
7*****************************
8
9Name
10====
11
12GPIO_V2_LINE_SET_CONFIG_IOCTL - Update the configuration of previously requested lines.
13
14Synopsis
15========
16
17.. c:macro:: GPIO_V2_LINE_SET_CONFIG_IOCTL
18
19``int ioctl(int req_fd, GPIO_V2_LINE_SET_CONFIG_IOCTL, struct gpio_v2_line_config *config)``
20
21Arguments
22=========
23
24``req_fd``
25    The file descriptor of the GPIO character device, as returned in the
26    :c:type:`request.fd<gpio_v2_line_request>` by gpio-v2-get-line-ioctl.rst.
27
28``config``
29    The new :c:type:`configuration<gpio_v2_line_config>` to apply to the
30    requested lines.
31
32Description
33===========
34
35Update the configuration of previously requested lines, without releasing the
36line or introducing potential glitches.
37
38The new configuration must specify the configuration of all requested lines.
39
40The same :ref:`gpio-v2-get-line-config-rules` and
41:ref:`gpio-v2-get-line-config-support` that apply when requesting the lines
42also apply when updating the line configuration.
43
44The motivating use case for this command is changing direction of
45bi-directional lines between input and output, but it may also be used to
46dynamically control edge detection, or more generally move lines seamlessly
47from one configuration state to another.
48
49To only change the value of output lines, use
50gpio-v2-line-set-values-ioctl.rst.
51
52Return Value
53============
54
55On success 0.
56
57On error -1 and the ``errno`` variable is set appropriately.
58Common error codes are described in error-codes.rst.
59