xref: /linux/Documentation/userspace-api/gpio/gpio-v2-line-set-config-ioctl.rst (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
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 a configuration for 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, with the additional
43restriction that a direction flag must be set to enable reconfiguration.
44If no direction flag is set in the configuration for a given line then the
45configuration for that line is left unchanged.
46
47The motivating use case for this command is changing direction of
48bi-directional lines between input and output, but it may also be used to
49dynamically control edge detection, or more generally move lines seamlessly
50from one configuration state to another.
51
52To only change the value of output lines, use
53gpio-v2-line-set-values-ioctl.rst.
54
55Return Value
56============
57
58On success 0.
59
60On error -1 and the ``errno`` variable is set appropriately.
61Common error codes are described in error-codes.rst.
62