162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci.. _Remote_controllers_Protocols:
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci*****************************************
662306a36Sopenharmony_ciRemote Controller Protocols and Scancodes
762306a36Sopenharmony_ci*****************************************
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciIR is encoded as a series of pulses and spaces, using a protocol. These
1062306a36Sopenharmony_ciprotocols can encode e.g. an address (which device should respond) and a
1162306a36Sopenharmony_cicommand: what it should do. The values for these are not always consistent
1262306a36Sopenharmony_ciacross different devices for a given protocol.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciTherefore out the output of the IR decoder is a scancode; a single u32
1562306a36Sopenharmony_civalue. Using keymap tables this can be mapped to linux key codes.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciOther things can be encoded too. Some IR protocols encode a toggle bit; this
1862306a36Sopenharmony_ciis to distinguish whether the same button is being held down, or has been
1962306a36Sopenharmony_cireleased and pressed again. If has been released and pressed again, the
2062306a36Sopenharmony_citoggle bit will invert from one IR message to the next.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciSome remotes have a pointer-type device which can used to control the
2362306a36Sopenharmony_cimouse; some air conditioning systems can have their target temperature
2462306a36Sopenharmony_citarget set in IR.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciThe following are the protocols the kernel knows about and also lists
2762306a36Sopenharmony_cihow scancodes are encoded for each protocol.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_circ-5 (RC_PROTO_RC5)
3062306a36Sopenharmony_ci-------------------
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciThis IR protocol uses manchester encoding to encode 14 bits. There is a
3362306a36Sopenharmony_cidetailed description here https://www.sbprojects.net/knowledge/ir/rc5.php.
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciThe scancode encoding is *not* consistent with the lirc daemon (lircd) rc5
3662306a36Sopenharmony_ciprotocol, or the manchester BPF decoder.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci.. flat-table:: rc5 bits scancode mapping
3962306a36Sopenharmony_ci   :widths:       1 1 2
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci   * - rc-5 bit
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci     - scancode bit
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci     - description
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci   * - 1
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci     - none
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci     - Start bit, always set
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci   * - 1
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci     - 6 (inverted)
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci     - 2nd start bit in rc5,  re-used as 6th command bit
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci   * - 1
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci     - none
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci     - Toggle bit
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci   * - 5
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci     - 8 to 13
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci     - Address
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci   * - 6
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci     - 0 to 5
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci     - Command
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ciThere is a variant of rc5 called either rc5x or extended rc5
7862306a36Sopenharmony_ciwhere there the second stop bit is the 6th command bit, but inverted.
7962306a36Sopenharmony_ciThis is done so it the scancodes and encoding is compatible with existing
8062306a36Sopenharmony_cischemes. This bit is stored in bit 6 of the scancode, inverted. This is
8162306a36Sopenharmony_cidone to keep it compatible with plain rc-5 where there are two start bits.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_circ-5-sz (RC_PROTO_RC5_SZ)
8462306a36Sopenharmony_ci-------------------------
8562306a36Sopenharmony_ciThis is much like rc-5 but one bit longer. The scancode is encoded
8662306a36Sopenharmony_cidifferently.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci.. flat-table:: rc-5-sz bits scancode mapping
8962306a36Sopenharmony_ci   :widths:       1 1 2
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci   * - rc-5-sz bits
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci     - scancode bit
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci     - description
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci   * - 1
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci     - none
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci     - Start bit, always set
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci   * - 1
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci     - 13
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci     - Address bit
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci   * - 1
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci     - none
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci     - Toggle bit
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci   * - 6
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci     - 6 to 11
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci     - Address
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci   * - 6
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci     - 0 to 5
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci     - Command
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_circ-5x-20 (RC_PROTO_RC5X_20)
12862306a36Sopenharmony_ci---------------------------
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ciThis rc-5 extended to encoded 20 bits. The is a 3555 microseconds space
13162306a36Sopenharmony_ciafter the 8th bit.
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci.. flat-table:: rc-5x-20 bits scancode mapping
13462306a36Sopenharmony_ci   :widths:       1 1 2
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci   * - rc-5-sz bits
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci     - scancode bit
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci     - description
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci   * - 1
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci     - none
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci     - Start bit, always set
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci   * - 1
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci     - 14
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci     - Address bit
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci   * - 1
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci     - none
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci     - Toggle bit
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci   * - 5
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci     - 16 to 20
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci     - Address
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci   * - 6
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci     - 8 to 13
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci     - Address
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci   * - 6
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci     - 0 to 5
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci     - Command
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_cijvc (RC_PROTO_JVC)
18062306a36Sopenharmony_ci------------------
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ciThe jvc protocol is much like nec, without the inverted values. It is
18362306a36Sopenharmony_cidescribed here https://www.sbprojects.net/knowledge/ir/jvc.php.
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ciThe scancode is a 16 bits value, where the address is the lower 8 bits
18662306a36Sopenharmony_ciand the command the higher 8 bits; this is reversed from IR order.
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_cisony-12 (RC_PROTO_SONY12)
18962306a36Sopenharmony_ci-------------------------
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ciThe sony protocol is a pulse-width encoding. There are three variants,
19262306a36Sopenharmony_ciwhich just differ in number of bits and scancode encoding.
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci.. flat-table:: sony-12 bits scancode mapping
19562306a36Sopenharmony_ci   :widths:       1 1 2
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ci   * - sony-12 bits
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ci     - scancode bit
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ci     - description
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ci   * - 5
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci     - 16 to 20
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ci     - device
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci   * - 7
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci     - 0 to 6
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci     - function
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_cisony-15 (RC_PROTO_SONY15)
21662306a36Sopenharmony_ci-------------------------
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ciThe sony protocol is a pulse-width encoding. There are three variants,
21962306a36Sopenharmony_ciwhich just differ in number of bits and scancode encoding.
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci.. flat-table:: sony-12 bits scancode mapping
22262306a36Sopenharmony_ci   :widths:       1 1 2
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ci   * - sony-12 bits
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_ci     - scancode bit
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_ci     - description
22962306a36Sopenharmony_ci
23062306a36Sopenharmony_ci   * - 8
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_ci     - 16 to 23
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ci     - device
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci   * - 7
23762306a36Sopenharmony_ci
23862306a36Sopenharmony_ci     - 0 to 6
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ci     - function
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_cisony-20 (RC_PROTO_SONY20)
24362306a36Sopenharmony_ci-------------------------
24462306a36Sopenharmony_ci
24562306a36Sopenharmony_ciThe sony protocol is a pulse-width encoding. There are three variants,
24662306a36Sopenharmony_ciwhich just differ in number of bits and scancode encoding.
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_ci.. flat-table:: sony-20 bits scancode mapping
24962306a36Sopenharmony_ci   :widths:       1 1 2
25062306a36Sopenharmony_ci
25162306a36Sopenharmony_ci   * - sony-20 bits
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ci     - scancode bit
25462306a36Sopenharmony_ci
25562306a36Sopenharmony_ci     - description
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_ci   * - 5
25862306a36Sopenharmony_ci
25962306a36Sopenharmony_ci     - 16 to 20
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci     - device
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ci   * - 7
26462306a36Sopenharmony_ci
26562306a36Sopenharmony_ci     - 0 to 7
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_ci     - device
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_ci   * - 8
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_ci     - 8 to 15
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci     - extended bits
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_cinec (RC_PROTO_NEC)
27662306a36Sopenharmony_ci------------------
27762306a36Sopenharmony_ci
27862306a36Sopenharmony_ciThe nec protocol encodes an 8 bit address and an 8 bit command. It is
27962306a36Sopenharmony_cidescribed here https://www.sbprojects.net/knowledge/ir/nec.php. Note
28062306a36Sopenharmony_cithat the protocol sends least significant bit first.
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_ciAs a check, the nec protocol sends the address and command twice; the
28362306a36Sopenharmony_cisecond time it is inverted. This is done for verification.
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ciA plain nec IR message has 16 bits; the high 8 bits are the address
28662306a36Sopenharmony_ciand the low 8 bits are the command.
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_cinec-x (RC_PROTO_NECX)
28962306a36Sopenharmony_ci---------------------
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ciExtended nec has a 16 bit address and a 8 bit command. This is encoded
29262306a36Sopenharmony_cias a 24 bit value as you would expect, with the lower 8 bits the command
29362306a36Sopenharmony_ciand the upper 16 bits the address.
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_cinec-32 (RC_PROTO_NEC32)
29662306a36Sopenharmony_ci-----------------------
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_cinec-32 does not send an inverted address or an inverted command; the
29962306a36Sopenharmony_cientire message, all 32 bits, are used.
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_ciFor this to be decoded correctly, the second 8 bits must not be the
30262306a36Sopenharmony_ciinverted value of the first, and also the last 8 bits must not be the
30362306a36Sopenharmony_ciinverted value of the third 8 bit value.
30462306a36Sopenharmony_ci
30562306a36Sopenharmony_ciThe scancode has a somewhat unusual encoding.
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_ci.. flat-table:: nec-32 bits scancode mapping
30862306a36Sopenharmony_ci
30962306a36Sopenharmony_ci   * - nec-32 bits
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ci     - scancode bit
31262306a36Sopenharmony_ci
31362306a36Sopenharmony_ci   * - First 8 bits
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ci     - 16 to 23
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ci   * - Second 8 bits
31862306a36Sopenharmony_ci
31962306a36Sopenharmony_ci     - 24 to 31
32062306a36Sopenharmony_ci
32162306a36Sopenharmony_ci   * - Third 8 bits
32262306a36Sopenharmony_ci
32362306a36Sopenharmony_ci     - 0 to 7
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_ci   * - Fourth 8 bits
32662306a36Sopenharmony_ci
32762306a36Sopenharmony_ci     - 8 to 15
32862306a36Sopenharmony_ci
32962306a36Sopenharmony_cisanyo (RC_PROTO_SANYO)
33062306a36Sopenharmony_ci----------------------
33162306a36Sopenharmony_ci
33262306a36Sopenharmony_ciThe sanyo protocol is like the nec protocol, but with 13 bits address
33362306a36Sopenharmony_cirather than 8 bits. Both the address and the command are followed by
33462306a36Sopenharmony_citheir inverted versions, but these are not present in the scancodes.
33562306a36Sopenharmony_ci
33662306a36Sopenharmony_ciBis 8 to 20 of the scancode is the 13 bits address, and the lower 8
33762306a36Sopenharmony_cibits are the command.
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_cimcir2-kbd (RC_PROTO_MCIR2_KBD)
34062306a36Sopenharmony_ci------------------------------
34162306a36Sopenharmony_ci
34262306a36Sopenharmony_ciThis protocol is generated by the Microsoft MCE keyboard for keyboard
34362306a36Sopenharmony_cievents. Refer to the ir-mce_kbd-decoder.c to see how it is encoded.
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_cimcir2-mse (RC_PROTO_MCIR2_MSE)
34662306a36Sopenharmony_ci------------------------------
34762306a36Sopenharmony_ci
34862306a36Sopenharmony_ciThis protocol is generated by the Microsoft MCE keyboard for pointer
34962306a36Sopenharmony_cievents. Refer to the ir-mce_kbd-decoder.c to see how it is encoded.
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_circ-6-0 (RC_PROTO_RC6_0)
35262306a36Sopenharmony_ci-----------------------
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_ciThis is the rc-6 in mode 0. rc-6 is described here
35562306a36Sopenharmony_cihttps://www.sbprojects.net/knowledge/ir/rc6.php.
35662306a36Sopenharmony_ciThe scancode is the exact 16 bits as in the protocol. There is also a
35762306a36Sopenharmony_citoggle bit.
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_circ-6-6a-20 (RC_PROTO_RC6_6A_20)
36062306a36Sopenharmony_ci-------------------------------
36162306a36Sopenharmony_ci
36262306a36Sopenharmony_ciThis is the rc-6 in mode 6a, 20 bits. rc-6 is described here
36362306a36Sopenharmony_cihttps://www.sbprojects.net/knowledge/ir/rc6.php.
36462306a36Sopenharmony_ciThe scancode is the exact 20 bits
36562306a36Sopenharmony_cias in the protocol. There is also a toggle bit.
36662306a36Sopenharmony_ci
36762306a36Sopenharmony_circ-6-6a-24 (RC_PROTO_RC6_6A_24)
36862306a36Sopenharmony_ci-------------------------------
36962306a36Sopenharmony_ci
37062306a36Sopenharmony_ciThis is the rc-6 in mode 6a, 24 bits. rc-6 is described here
37162306a36Sopenharmony_cihttps://www.sbprojects.net/knowledge/ir/rc6.php.
37262306a36Sopenharmony_ciThe scancode is the exact 24 bits
37362306a36Sopenharmony_cias in the protocol. There is also a toggle bit.
37462306a36Sopenharmony_ci
37562306a36Sopenharmony_circ-6-6a-32 (RC_PROTO_RC6_6A_32)
37662306a36Sopenharmony_ci-------------------------------
37762306a36Sopenharmony_ci
37862306a36Sopenharmony_ciThis is the rc-6 in mode 6a, 32 bits. rc-6 is described here
37962306a36Sopenharmony_cihttps://www.sbprojects.net/knowledge/ir/rc6.php.
38062306a36Sopenharmony_ciThe upper 16 bits are the vendor,
38162306a36Sopenharmony_ciand the lower 16 bits are the vendor-specific bits. This protocol is
38262306a36Sopenharmony_cifor the non-Microsoft MCE variant (vendor != 0x800f).
38362306a36Sopenharmony_ci
38462306a36Sopenharmony_ci
38562306a36Sopenharmony_circ-6-mce (RC_PROTO_RC6_MCE)
38662306a36Sopenharmony_ci---------------------------
38762306a36Sopenharmony_ci
38862306a36Sopenharmony_ciThis is the rc-6 in mode 6a, 32 bits. The upper 16 bits are the vendor,
38962306a36Sopenharmony_ciand the lower 16 bits are the vendor-specific bits. This protocol is
39062306a36Sopenharmony_cifor the Microsoft MCE variant (vendor = 0x800f). The toggle bit in the
39162306a36Sopenharmony_ciprotocol itself is ignored, and the 16th bit should be takes as the toggle
39262306a36Sopenharmony_cibit.
39362306a36Sopenharmony_ci
39462306a36Sopenharmony_cisharp (RC_PROTO_SHARP)
39562306a36Sopenharmony_ci----------------------
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ciThis is a protocol used by Sharp VCRs, is described here
39862306a36Sopenharmony_cihttps://www.sbprojects.net/knowledge/ir/sharp.php. There is a very long
39962306a36Sopenharmony_ci(40ms) space between the normal and inverted values, and some IR receivers
40062306a36Sopenharmony_cicannot decode this.
40162306a36Sopenharmony_ci
40262306a36Sopenharmony_ciThere is a 5 bit address and a 8 bit command. In the scancode the address is
40362306a36Sopenharmony_ciin bits 8 to 12, and the command in bits 0 to 7.
40462306a36Sopenharmony_ci
40562306a36Sopenharmony_cixmp (RC_PROTO_XMP)
40662306a36Sopenharmony_ci------------------
40762306a36Sopenharmony_ci
40862306a36Sopenharmony_ciThis protocol has several versions and only version 1 is supported. Refer
40962306a36Sopenharmony_cito the decoder (ir-xmp-decoder.c) to see how it is encoded.
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ci
41262306a36Sopenharmony_cicec (RC_PROTO_CEC)
41362306a36Sopenharmony_ci------------------
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ciThis is not an IR protocol, this is a protocol over CEC. The CEC
41662306a36Sopenharmony_ciinfrastructure uses rc-core for handling CEC commands, so that they
41762306a36Sopenharmony_cican easily be remapped.
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_ciimon (RC_PROTO_IMON)
42062306a36Sopenharmony_ci--------------------
42162306a36Sopenharmony_ci
42262306a36Sopenharmony_ciThis protocol is used by Antec Veris/SoundGraph iMON remotes.
42362306a36Sopenharmony_ci
42462306a36Sopenharmony_ciThe protocol
42562306a36Sopenharmony_cidescribes both button presses and pointer movements. The protocol encodes
42662306a36Sopenharmony_ci31 bits, and the scancode is simply the 31 bits with the top bit always 0.
42762306a36Sopenharmony_ci
42862306a36Sopenharmony_circ-mm-12 (RC_PROTO_RCMM12)
42962306a36Sopenharmony_ci--------------------------
43062306a36Sopenharmony_ci
43162306a36Sopenharmony_ciThe rc-mm protocol is described here
43262306a36Sopenharmony_cihttps://www.sbprojects.net/knowledge/ir/rcmm.php. The scancode is simply
43362306a36Sopenharmony_cithe 12 bits.
43462306a36Sopenharmony_ci
43562306a36Sopenharmony_circ-mm-24 (RC_PROTO_RCMM24)
43662306a36Sopenharmony_ci--------------------------
43762306a36Sopenharmony_ci
43862306a36Sopenharmony_ciThe rc-mm protocol is described here
43962306a36Sopenharmony_cihttps://www.sbprojects.net/knowledge/ir/rcmm.php. The scancode is simply
44062306a36Sopenharmony_cithe 24 bits.
44162306a36Sopenharmony_ci
44262306a36Sopenharmony_circ-mm-32 (RC_PROTO_RCMM32)
44362306a36Sopenharmony_ci--------------------------
44462306a36Sopenharmony_ci
44562306a36Sopenharmony_ciThe rc-mm protocol is described here
44662306a36Sopenharmony_cihttps://www.sbprojects.net/knowledge/ir/rcmm.php. The scancode is simply
44762306a36Sopenharmony_cithe 32 bits.
44862306a36Sopenharmony_ci
44962306a36Sopenharmony_cixbox-dvd (RC_PROTO_XBOX_DVD)
45062306a36Sopenharmony_ci----------------------------
45162306a36Sopenharmony_ci
45262306a36Sopenharmony_ciThis protocol is used by XBox DVD Remote, which was made for the original
45362306a36Sopenharmony_ciXBox. There is no in-kernel decoder or encoder for this protocol. The usb
45462306a36Sopenharmony_cidevice decodes the protocol. There is a BPF decoder available in v4l-utils.
455