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