xref: /OK3568_Linux_fs/kernel/Documentation/userspace-api/media/rc/rc-protos.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun.. _Remote_controllers_Protocols:
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun*****************************************
6*4882a593SmuzhiyunRemote Controller Protocols and Scancodes
7*4882a593Smuzhiyun*****************************************
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunIR is encoded as a series of pulses and spaces, using a protocol. These
10*4882a593Smuzhiyunprotocols can encode e.g. an address (which device should respond) and a
11*4882a593Smuzhiyuncommand: what it should do. The values for these are not always consistent
12*4882a593Smuzhiyunacross different devices for a given protocol.
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunTherefore out the output of the IR decoder is a scancode; a single u32
15*4882a593Smuzhiyunvalue. Using keymap tables this can be mapped to linux key codes.
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunOther things can be encoded too. Some IR protocols encode a toggle bit; this
18*4882a593Smuzhiyunis to distinguish whether the same button is being held down, or has been
19*4882a593Smuzhiyunreleased and pressed again. If has been released and pressed again, the
20*4882a593Smuzhiyuntoggle bit will invert from one IR message to the next.
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunSome remotes have a pointer-type device which can used to control the
23*4882a593Smuzhiyunmouse; some air conditioning systems can have their target temperature
24*4882a593Smuzhiyuntarget set in IR.
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunThe following are the protocols the kernel knows about and also lists
27*4882a593Smuzhiyunhow scancodes are encoded for each protocol.
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunrc-5 (RC_PROTO_RC5)
30*4882a593Smuzhiyun-------------------
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunThis IR protocol uses manchester encoding to encode 14 bits. There is a
33*4882a593Smuzhiyundetailed description here https://www.sbprojects.net/knowledge/ir/rc5.php.
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunThe scancode encoding is *not* consistent with the lirc daemon (lircd) rc5
36*4882a593Smuzhiyunprotocol, or the manchester BPF decoder.
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun.. flat-table:: rc5 bits scancode mapping
39*4882a593Smuzhiyun   :widths:       1 1 2
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun   * - rc-5 bit
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun     - scancode bit
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun     - description
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun   * - 1
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun     - none
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun     - Start bit, always set
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun   * - 1
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun     - 6 (inverted)
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun     - 2nd start bit in rc5,  re-used as 6th command bit
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun   * - 1
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun     - none
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun     - Toggle bit
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun   * - 5
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun     - 8 to 13
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun     - Address
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun   * - 6
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun     - 0 to 5
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun     - Command
76*4882a593Smuzhiyun
77*4882a593SmuzhiyunThere is a variant of rc5 called either rc5x or extended rc5
78*4882a593Smuzhiyunwhere there the second stop bit is the 6th commmand bit, but inverted.
79*4882a593SmuzhiyunThis is done so it the scancodes and encoding is compatible with existing
80*4882a593Smuzhiyunschemes. This bit is stored in bit 6 of the scancode, inverted. This is
81*4882a593Smuzhiyundone to keep it compatible with plain rc-5 where there are two start bits.
82*4882a593Smuzhiyun
83*4882a593Smuzhiyunrc-5-sz (RC_PROTO_RC5_SZ)
84*4882a593Smuzhiyun-------------------------
85*4882a593SmuzhiyunThis is much like rc-5 but one bit longer. The scancode is encoded
86*4882a593Smuzhiyundifferently.
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun.. flat-table:: rc-5-sz bits scancode mapping
89*4882a593Smuzhiyun   :widths:       1 1 2
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun   * - rc-5-sz bits
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun     - scancode bit
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun     - description
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun   * - 1
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun     - none
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun     - Start bit, always set
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun   * - 1
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun     - 13
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun     - Address bit
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun   * - 1
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun     - none
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun     - Toggle bit
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun   * - 6
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun     - 6 to 11
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun     - Address
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun   * - 6
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun     - 0 to 5
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun     - Command
126*4882a593Smuzhiyun
127*4882a593Smuzhiyunrc-5x-20 (RC_PROTO_RC5X_20)
128*4882a593Smuzhiyun---------------------------
129*4882a593Smuzhiyun
130*4882a593SmuzhiyunThis rc-5 extended to encoded 20 bits. The is a 3555 microseconds space
131*4882a593Smuzhiyunafter the 8th bit.
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun.. flat-table:: rc-5x-20 bits scancode mapping
134*4882a593Smuzhiyun   :widths:       1 1 2
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun   * - rc-5-sz bits
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun     - scancode bit
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun     - description
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun   * - 1
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun     - none
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun     - Start bit, always set
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun   * - 1
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun     - 14
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun     - Address bit
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun   * - 1
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun     - none
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun     - Toggle bit
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun   * - 5
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun     - 16 to 20
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun     - Address
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun   * - 6
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun     - 8 to 13
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun     - Address
171*4882a593Smuzhiyun
172*4882a593Smuzhiyun   * - 6
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun     - 0 to 5
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun     - Command
177*4882a593Smuzhiyun
178*4882a593Smuzhiyun
179*4882a593Smuzhiyunjvc (RC_PROTO_JVC)
180*4882a593Smuzhiyun------------------
181*4882a593Smuzhiyun
182*4882a593SmuzhiyunThe jvc protocol is much like nec, without the inverted values. It is
183*4882a593Smuzhiyundescribed here https://www.sbprojects.net/knowledge/ir/jvc.php.
184*4882a593Smuzhiyun
185*4882a593SmuzhiyunThe scancode is a 16 bits value, where the address is the lower 8 bits
186*4882a593Smuzhiyunand the command the higher 8 bits; this is reversed from IR order.
187*4882a593Smuzhiyun
188*4882a593Smuzhiyunsony-12 (RC_PROTO_SONY12)
189*4882a593Smuzhiyun-------------------------
190*4882a593Smuzhiyun
191*4882a593SmuzhiyunThe sony protocol is a pulse-width encoding. There are three variants,
192*4882a593Smuzhiyunwhich just differ in number of bits and scancode encoding.
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun.. flat-table:: sony-12 bits scancode mapping
195*4882a593Smuzhiyun   :widths:       1 1 2
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun   * - sony-12 bits
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun     - scancode bit
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun     - description
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun   * - 5
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun     - 16 to 20
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun     - device
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun   * - 7
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun     - 0 to 6
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun     - function
214*4882a593Smuzhiyun
215*4882a593Smuzhiyunsony-15 (RC_PROTO_SONY15)
216*4882a593Smuzhiyun-------------------------
217*4882a593Smuzhiyun
218*4882a593SmuzhiyunThe sony protocol is a pulse-width encoding. There are three variants,
219*4882a593Smuzhiyunwhich just differ in number of bits and scancode encoding.
220*4882a593Smuzhiyun
221*4882a593Smuzhiyun.. flat-table:: sony-12 bits scancode mapping
222*4882a593Smuzhiyun   :widths:       1 1 2
223*4882a593Smuzhiyun
224*4882a593Smuzhiyun   * - sony-12 bits
225*4882a593Smuzhiyun
226*4882a593Smuzhiyun     - scancode bit
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun     - description
229*4882a593Smuzhiyun
230*4882a593Smuzhiyun   * - 8
231*4882a593Smuzhiyun
232*4882a593Smuzhiyun     - 16 to 23
233*4882a593Smuzhiyun
234*4882a593Smuzhiyun     - device
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun   * - 7
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun     - 0 to 6
239*4882a593Smuzhiyun
240*4882a593Smuzhiyun     - function
241*4882a593Smuzhiyun
242*4882a593Smuzhiyunsony-20 (RC_PROTO_SONY20)
243*4882a593Smuzhiyun-------------------------
244*4882a593Smuzhiyun
245*4882a593SmuzhiyunThe sony protocol is a pulse-width encoding. There are three variants,
246*4882a593Smuzhiyunwhich just differ in number of bits and scancode encoding.
247*4882a593Smuzhiyun
248*4882a593Smuzhiyun.. flat-table:: sony-20 bits scancode mapping
249*4882a593Smuzhiyun   :widths:       1 1 2
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun   * - sony-20 bits
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun     - scancode bit
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun     - description
256*4882a593Smuzhiyun
257*4882a593Smuzhiyun   * - 5
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun     - 16 to 20
260*4882a593Smuzhiyun
261*4882a593Smuzhiyun     - device
262*4882a593Smuzhiyun
263*4882a593Smuzhiyun   * - 7
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun     - 0 to 7
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun     - device
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun   * - 8
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun     - 8 to 15
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun     - extended bits
274*4882a593Smuzhiyun
275*4882a593Smuzhiyunnec (RC_PROTO_NEC)
276*4882a593Smuzhiyun------------------
277*4882a593Smuzhiyun
278*4882a593SmuzhiyunThe nec protocol encodes an 8 bit address and an 8 bit command. It is
279*4882a593Smuzhiyundescribed here https://www.sbprojects.net/knowledge/ir/nec.php. Note
280*4882a593Smuzhiyunthat the protocol sends least significant bit first.
281*4882a593Smuzhiyun
282*4882a593SmuzhiyunAs a check, the nec protocol sends the address and command twice; the
283*4882a593Smuzhiyunsecond time it is inverted. This is done for verification.
284*4882a593Smuzhiyun
285*4882a593SmuzhiyunA plain nec IR message has 16 bits; the high 8 bits are the address
286*4882a593Smuzhiyunand the low 8 bits are the command.
287*4882a593Smuzhiyun
288*4882a593Smuzhiyunnec-x (RC_PROTO_NECX)
289*4882a593Smuzhiyun---------------------
290*4882a593Smuzhiyun
291*4882a593SmuzhiyunExtended nec has a 16 bit address and a 8 bit command. This is encoded
292*4882a593Smuzhiyunas a 24 bit value as you would expect, with the lower 8 bits the command
293*4882a593Smuzhiyunand the upper 16 bits the address.
294*4882a593Smuzhiyun
295*4882a593Smuzhiyunnec-32 (RC_PROTO_NEC32)
296*4882a593Smuzhiyun-----------------------
297*4882a593Smuzhiyun
298*4882a593Smuzhiyunnec-32 does not send an inverted address or an inverted command; the
299*4882a593Smuzhiyunentire message, all 32 bits, are used.
300*4882a593Smuzhiyun
301*4882a593SmuzhiyunFor this to be decoded correctly, the second 8 bits must not be the
302*4882a593Smuzhiyuninverted value of the first, and also the last 8 bits must not be the
303*4882a593Smuzhiyuninverted value of the third 8 bit value.
304*4882a593Smuzhiyun
305*4882a593SmuzhiyunThe scancode has a somewhat unusual encoding.
306*4882a593Smuzhiyun
307*4882a593Smuzhiyun.. flat-table:: nec-32 bits scancode mapping
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun   * - nec-32 bits
310*4882a593Smuzhiyun
311*4882a593Smuzhiyun     - scancode bit
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun   * - First 8 bits
314*4882a593Smuzhiyun
315*4882a593Smuzhiyun     - 16 to 23
316*4882a593Smuzhiyun
317*4882a593Smuzhiyun   * - Second 8 bits
318*4882a593Smuzhiyun
319*4882a593Smuzhiyun     - 24 to 31
320*4882a593Smuzhiyun
321*4882a593Smuzhiyun   * - Third 8 bits
322*4882a593Smuzhiyun
323*4882a593Smuzhiyun     - 0 to 7
324*4882a593Smuzhiyun
325*4882a593Smuzhiyun   * - Fourth 8 bits
326*4882a593Smuzhiyun
327*4882a593Smuzhiyun     - 8 to 15
328*4882a593Smuzhiyun
329*4882a593Smuzhiyunsanyo (RC_PROTO_SANYO)
330*4882a593Smuzhiyun----------------------
331*4882a593Smuzhiyun
332*4882a593SmuzhiyunThe sanyo protocol is like the nec protocol, but with 13 bits address
333*4882a593Smuzhiyunrather than 8 bits. Both the address and the command are followed by
334*4882a593Smuzhiyuntheir inverted versions, but these are not present in the scancodes.
335*4882a593Smuzhiyun
336*4882a593SmuzhiyunBis 8 to 20 of the scancode is the 13 bits address, and the lower 8
337*4882a593Smuzhiyunbits are the command.
338*4882a593Smuzhiyun
339*4882a593Smuzhiyunmcir2-kbd (RC_PROTO_MCIR2_KBD)
340*4882a593Smuzhiyun------------------------------
341*4882a593Smuzhiyun
342*4882a593SmuzhiyunThis protocol is generated by the Microsoft MCE keyboard for keyboard
343*4882a593Smuzhiyunevents. Refer to the ir-mce_kbd-decoder.c to see how it is encoded.
344*4882a593Smuzhiyun
345*4882a593Smuzhiyunmcir2-mse (RC_PROTO_MCIR2_MSE)
346*4882a593Smuzhiyun------------------------------
347*4882a593Smuzhiyun
348*4882a593SmuzhiyunThis protocol is generated by the Microsoft MCE keyboard for pointer
349*4882a593Smuzhiyunevents. Refer to the ir-mce_kbd-decoder.c to see how it is encoded.
350*4882a593Smuzhiyun
351*4882a593Smuzhiyunrc-6-0 (RC_PROTO_RC6_0)
352*4882a593Smuzhiyun-----------------------
353*4882a593Smuzhiyun
354*4882a593SmuzhiyunThis is the rc-6 in mode 0. rc-6 is described here
355*4882a593Smuzhiyunhttps://www.sbprojects.net/knowledge/ir/rc6.php.
356*4882a593SmuzhiyunThe scancode is the exact 16 bits as in the protocol. There is also a
357*4882a593Smuzhiyuntoggle bit.
358*4882a593Smuzhiyun
359*4882a593Smuzhiyunrc-6-6a-20 (RC_PROTO_RC6_6A_20)
360*4882a593Smuzhiyun-------------------------------
361*4882a593Smuzhiyun
362*4882a593SmuzhiyunThis is the rc-6 in mode 6a, 20 bits. rc-6 is described here
363*4882a593Smuzhiyunhttps://www.sbprojects.net/knowledge/ir/rc6.php.
364*4882a593SmuzhiyunThe scancode is the exact 20 bits
365*4882a593Smuzhiyunas in the protocol. There is also a toggle bit.
366*4882a593Smuzhiyun
367*4882a593Smuzhiyunrc-6-6a-24 (RC_PROTO_RC6_6A_24)
368*4882a593Smuzhiyun-------------------------------
369*4882a593Smuzhiyun
370*4882a593SmuzhiyunThis is the rc-6 in mode 6a, 24 bits. rc-6 is described here
371*4882a593Smuzhiyunhttps://www.sbprojects.net/knowledge/ir/rc6.php.
372*4882a593SmuzhiyunThe scancode is the exact 24 bits
373*4882a593Smuzhiyunas in the protocol. There is also a toggle bit.
374*4882a593Smuzhiyun
375*4882a593Smuzhiyunrc-6-6a-32 (RC_PROTO_RC6_6A_32)
376*4882a593Smuzhiyun-------------------------------
377*4882a593Smuzhiyun
378*4882a593SmuzhiyunThis is the rc-6 in mode 6a, 32 bits. rc-6 is described here
379*4882a593Smuzhiyunhttps://www.sbprojects.net/knowledge/ir/rc6.php.
380*4882a593SmuzhiyunThe upper 16 bits are the vendor,
381*4882a593Smuzhiyunand the lower 16 bits are the vendor-specific bits. This protocol is
382*4882a593Smuzhiyunfor the non-Microsoft MCE variant (vendor != 0x800f).
383*4882a593Smuzhiyun
384*4882a593Smuzhiyun
385*4882a593Smuzhiyunrc-6-mce (RC_PROTO_RC6_MCE)
386*4882a593Smuzhiyun---------------------------
387*4882a593Smuzhiyun
388*4882a593SmuzhiyunThis is the rc-6 in mode 6a, 32 bits. The upper 16 bits are the vendor,
389*4882a593Smuzhiyunand the lower 16 bits are the vendor-specific bits. This protocol is
390*4882a593Smuzhiyunfor the Microsoft MCE variant (vendor = 0x800f). The toggle bit in the
391*4882a593Smuzhiyunprotocol itself is ignored, and the 16th bit should be takes as the toggle
392*4882a593Smuzhiyunbit.
393*4882a593Smuzhiyun
394*4882a593Smuzhiyunsharp (RC_PROTO_SHARP)
395*4882a593Smuzhiyun----------------------
396*4882a593Smuzhiyun
397*4882a593SmuzhiyunThis is a protocol used by Sharp VCRs, is described here
398*4882a593Smuzhiyunhttps://www.sbprojects.net/knowledge/ir/sharp.php. There is a very long
399*4882a593Smuzhiyun(40ms) space between the normal and inverted values, and some IR receivers
400*4882a593Smuzhiyuncannot decode this.
401*4882a593Smuzhiyun
402*4882a593SmuzhiyunThere is a 5 bit address and a 8 bit command. In the scancode the address is
403*4882a593Smuzhiyunin bits 8 to 12, and the command in bits 0 to 7.
404*4882a593Smuzhiyun
405*4882a593Smuzhiyunxmp (RC_PROTO_XMP)
406*4882a593Smuzhiyun------------------
407*4882a593Smuzhiyun
408*4882a593SmuzhiyunThis protocol has several versions and only version 1 is supported. Refer
409*4882a593Smuzhiyunto the decoder (ir-xmp-decoder.c) to see how it is encoded.
410*4882a593Smuzhiyun
411*4882a593Smuzhiyun
412*4882a593Smuzhiyuncec (RC_PROTO_CEC)
413*4882a593Smuzhiyun------------------
414*4882a593Smuzhiyun
415*4882a593SmuzhiyunThis is not an IR protocol, this is a protocol over CEC. The CEC
416*4882a593Smuzhiyuninfrastructure uses rc-core for handling CEC commands, so that they
417*4882a593Smuzhiyuncan easily be remapped.
418*4882a593Smuzhiyun
419*4882a593Smuzhiyunimon (RC_PROTO_IMON)
420*4882a593Smuzhiyun--------------------
421*4882a593Smuzhiyun
422*4882a593SmuzhiyunThis protocol is used by Antec Veris/SoundGraph iMON remotes.
423*4882a593Smuzhiyun
424*4882a593SmuzhiyunThe protocol
425*4882a593Smuzhiyundescribes both button presses and pointer movements. The protocol encodes
426*4882a593Smuzhiyun31 bits, and the scancode is simply the 31 bits with the top bit always 0.
427*4882a593Smuzhiyun
428*4882a593Smuzhiyunrc-mm-12 (RC_PROTO_RCMM12)
429*4882a593Smuzhiyun--------------------------
430*4882a593Smuzhiyun
431*4882a593SmuzhiyunThe rc-mm protocol is described here
432*4882a593Smuzhiyunhttps://www.sbprojects.net/knowledge/ir/rcmm.php. The scancode is simply
433*4882a593Smuzhiyunthe 12 bits.
434*4882a593Smuzhiyun
435*4882a593Smuzhiyunrc-mm-24 (RC_PROTO_RCMM24)
436*4882a593Smuzhiyun--------------------------
437*4882a593Smuzhiyun
438*4882a593SmuzhiyunThe rc-mm protocol is described here
439*4882a593Smuzhiyunhttps://www.sbprojects.net/knowledge/ir/rcmm.php. The scancode is simply
440*4882a593Smuzhiyunthe 24 bits.
441*4882a593Smuzhiyun
442*4882a593Smuzhiyunrc-mm-32 (RC_PROTO_RCMM32)
443*4882a593Smuzhiyun--------------------------
444*4882a593Smuzhiyun
445*4882a593SmuzhiyunThe rc-mm protocol is described here
446*4882a593Smuzhiyunhttps://www.sbprojects.net/knowledge/ir/rcmm.php. The scancode is simply
447*4882a593Smuzhiyunthe 32 bits.
448*4882a593Smuzhiyun
449*4882a593Smuzhiyunxbox-dvd (RC_PROTO_XBOX_DVD)
450*4882a593Smuzhiyun----------------------------
451*4882a593Smuzhiyun
452*4882a593SmuzhiyunThis protocol is used by XBox DVD Remote, which was made for the original
453*4882a593SmuzhiyunXBox. There is no in-kernel decoder or encoder for this protocol. The usb
454*4882a593Smuzhiyundevice decodes the protocol. There is a BPF decoder available in v4l-utils.
455