xref: /linux/Documentation/userspace-api/gpio/gpio-v2-get-lineinfo-watch-ioctl.rst (revision 6e7fd890f1d6ac83805409e9c346240de2705584)
1.. SPDX-License-Identifier: GPL-2.0
2
3.. _GPIO_V2_GET_LINEINFO_WATCH_IOCTL:
4
5********************************
6GPIO_V2_GET_LINEINFO_WATCH_IOCTL
7********************************
8
9Name
10====
11
12GPIO_V2_GET_LINEINFO_WATCH_IOCTL - Enable watching a line for changes to its
13request state and configuration information.
14
15Synopsis
16========
17
18.. c:macro:: GPIO_V2_GET_LINEINFO_WATCH_IOCTL
19
20``int ioctl(int chip_fd, GPIO_V2_GET_LINEINFO_WATCH_IOCTL, struct gpio_v2_line_info *info)``
21
22Arguments
23=========
24
25``chip_fd``
26    The file descriptor of the GPIO character device returned by `open()`.
27
28``info``
29    The :c:type:`line_info<gpio_v2_line_info>` struct to be populated, with
30    the ``offset`` set to indicate the line to watch
31
32Description
33===========
34
35Enable watching a line for changes to its request state and configuration
36information. Changes to line info include a line being requested, released
37or reconfigured.
38
39.. note::
40    Watching line info is not generally required, and would typically only be
41    used by a system monitoring component.
42
43    The line info does NOT include the line value.
44    The line must be requested using gpio-v2-get-line-ioctl.rst to access
45    its value, and the line request can monitor a line for events using
46    gpio-v2-line-event-read.rst.
47
48By default all lines are unwatched when the GPIO chip is opened.
49
50Multiple lines may be watched simultaneously by adding a watch for each.
51
52Once a watch is set, any changes to line info will generate events which can be
53read from the ``chip_fd`` as described in
54gpio-v2-lineinfo-changed-read.rst.
55
56Adding a watch to a line that is already watched is an error (**EBUSY**).
57
58Watches are specific to the ``chip_fd`` and are independent of watches
59on the same GPIO chip opened with a separate call to `open()`.
60
61Return Value
62============
63
64On success 0 and ``info`` is populated with the current line info.
65
66On error -1 and the ``errno`` variable is set appropriately.
67Common error codes are described in error-codes.rst.
68