1.. Permission is granted to copy, distribute and/or modify this
2.. document under the terms of the GNU Free Documentation License,
3.. Version 1.1 or any later version published by the Free Software
4.. Foundation, with no Invariant Sections, no Front-Cover Texts
5.. and no Back-Cover Texts. A copy of the license is included at
6.. Documentation/userspace-api/media/fdl-appendix.rst.
7..
8.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
9
10.. _remote_controllers_sysfs_nodes:
11
12*******************************
13Remote Controller's sysfs nodes
14*******************************
15
16As defined at ``Documentation/ABI/testing/sysfs-class-rc``, those are
17the sysfs nodes that control the Remote Controllers:
18
19
20.. _sys_class_rc:
21
22/sys/class/rc/
23==============
24
25The ``/sys/class/rc/`` class sub-directory belongs to the Remote
26Controller core and provides a sysfs interface for configuring infrared
27remote controller receivers.
28
29
30.. _sys_class_rc_rcN:
31
32/sys/class/rc/rcN/
33==================
34
35A ``/sys/class/rc/rcN`` directory is created for each remote control
36receiver device where N is the number of the receiver.
37
38
39.. _sys_class_rc_rcN_protocols:
40
41/sys/class/rc/rcN/protocols
42===========================
43
44Reading this file returns a list of available protocols, something like::
45
46	rc5 [rc6] nec jvc [sony]
47
48Enabled protocols are shown in [] brackets.
49
50Writing "+proto" will add a protocol to the list of enabled protocols.
51
52Writing "-proto" will remove a protocol from the list of enabled
53protocols.
54
55Writing "proto" will enable only "proto".
56
57Writing "none" will disable all protocols.
58
59Write fails with ``EINVAL`` if an invalid protocol combination or unknown
60protocol name is used.
61
62
63.. _sys_class_rc_rcN_filter:
64
65/sys/class/rc/rcN/filter
66========================
67
68Sets the scancode filter expected value.
69
70Use in combination with ``/sys/class/rc/rcN/filter_mask`` to set the
71expected value of the bits set in the filter mask. If the hardware
72supports it then scancodes which do not match the filter will be
73ignored. Otherwise the write will fail with an error.
74
75This value may be reset to 0 if the current protocol is altered.
76
77
78.. _sys_class_rc_rcN_filter_mask:
79
80/sys/class/rc/rcN/filter_mask
81=============================
82
83Sets the scancode filter mask of bits to compare. Use in combination
84with ``/sys/class/rc/rcN/filter`` to set the bits of the scancode which
85should be compared against the expected value. A value of 0 disables the
86filter to allow all valid scancodes to be processed.
87
88If the hardware supports it then scancodes which do not match the filter
89will be ignored. Otherwise the write will fail with an error.
90
91This value may be reset to 0 if the current protocol is altered.
92
93
94.. _sys_class_rc_rcN_wakeup_protocols:
95
96/sys/class/rc/rcN/wakeup_protocols
97==================================
98
99Reading this file returns a list of available protocols to use for the
100wakeup filter, something like::
101
102	rc-5 nec nec-x rc-6-0 rc-6-6a-24 [rc-6-6a-32] rc-6-mce
103
104Note that protocol variants are listed, so ``nec``, ``sony``, ``rc-5``, ``rc-6``
105have their different bit length encodings listed if available.
106
107Note that all protocol variants are listed.
108
109The enabled wakeup protocol is shown in [] brackets.
110
111Only one protocol can be selected at a time.
112
113Writing "proto" will use "proto" for wakeup events.
114
115Writing "none" will disable wakeup.
116
117Write fails with ``EINVAL`` if an invalid protocol combination or unknown
118protocol name is used, or if wakeup is not supported by the hardware.
119
120
121.. _sys_class_rc_rcN_wakeup_filter:
122
123/sys/class/rc/rcN/wakeup_filter
124===============================
125
126Sets the scancode wakeup filter expected value. Use in combination with
127``/sys/class/rc/rcN/wakeup_filter_mask`` to set the expected value of
128the bits set in the wakeup filter mask to trigger a system wake event.
129
130If the hardware supports it and wakeup_filter_mask is not 0 then
131scancodes which match the filter will wake the system from e.g. suspend
132to RAM or power off. Otherwise the write will fail with an error.
133
134This value may be reset to 0 if the wakeup protocol is altered.
135
136
137.. _sys_class_rc_rcN_wakeup_filter_mask:
138
139/sys/class/rc/rcN/wakeup_filter_mask
140====================================
141
142Sets the scancode wakeup filter mask of bits to compare. Use in
143combination with ``/sys/class/rc/rcN/wakeup_filter`` to set the bits of
144the scancode which should be compared against the expected value to
145trigger a system wake event.
146
147If the hardware supports it and wakeup_filter_mask is not 0 then
148scancodes which match the filter will wake the system from e.g. suspend
149to RAM or power off. Otherwise the write will fail with an error.
150
151This value may be reset to 0 if the wakeup protocol is altered.
152