Lines Matching +full:a +full:- +full:bit
1 .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
9 IR is encoded as a series of pulses and spaces, using a protocol. These
10 protocols can encode e.g. an address (which device should respond) and a
12 across different devices for a given protocol.
14 Therefore out the output of the IR decoder is a scancode; a single u32
17 Other things can be encoded too. Some IR protocols encode a toggle bit; this
20 toggle bit will invert from one IR message to the next.
22 Some remotes have a pointer-type device which can used to control the
29 rc-5 (RC_PROTO_RC5)
30 -------------------
32 This IR protocol uses manchester encoding to encode 14 bits. There is a
38 .. flat-table:: rc5 bits scancode mapping
41 * - rc-5 bit
43 - scancode bit
45 - description
47 * - 1
49 - none
51 - Start bit, always set
53 * - 1
55 - 6 (inverted)
57 - 2nd start bit in rc5, re-used as 6th command bit
59 * - 1
61 - none
63 - Toggle bit
65 * - 5
67 - 8 to 13
69 - Address
71 * - 6
73 - 0 to 5
75 - Command
77 There is a variant of rc5 called either rc5x or extended rc5
78 where there the second stop bit is the 6th command bit, but inverted.
80 schemes. This bit is stored in bit 6 of the scancode, inverted. This is
81 done to keep it compatible with plain rc-5 where there are two start bits.
83 rc-5-sz (RC_PROTO_RC5_SZ)
84 -------------------------
85 This is much like rc-5 but one bit longer. The scancode is encoded
88 .. flat-table:: rc-5-sz bits scancode mapping
91 * - rc-5-sz bits
93 - scancode bit
95 - description
97 * - 1
99 - none
101 - Start bit, always set
103 * - 1
105 - 13
107 - Address bit
109 * - 1
111 - none
113 - Toggle bit
115 * - 6
117 - 6 to 11
119 - Address
121 * - 6
123 - 0 to 5
125 - Command
127 rc-5x-20 (RC_PROTO_RC5X_20)
128 ---------------------------
130 This rc-5 extended to encoded 20 bits. The is a 3555 microseconds space
131 after the 8th bit.
133 .. flat-table:: rc-5x-20 bits scancode mapping
136 * - rc-5-sz bits
138 - scancode bit
140 - description
142 * - 1
144 - none
146 - Start bit, always set
148 * - 1
150 - 14
152 - Address bit
154 * - 1
156 - none
158 - Toggle bit
160 * - 5
162 - 16 to 20
164 - Address
166 * - 6
168 - 8 to 13
170 - Address
172 * - 6
174 - 0 to 5
176 - Command
180 ------------------
185 The scancode is a 16 bits value, where the address is the lower 8 bits
188 sony-12 (RC_PROTO_SONY12)
189 -------------------------
191 The sony protocol is a pulse-width encoding. There are three variants,
194 .. flat-table:: sony-12 bits scancode mapping
197 * - sony-12 bits
199 - scancode bit
201 - description
203 * - 5
205 - 16 to 20
207 - device
209 * - 7
211 - 0 to 6
213 - function
215 sony-15 (RC_PROTO_SONY15)
216 -------------------------
218 The sony protocol is a pulse-width encoding. There are three variants,
221 .. flat-table:: sony-12 bits scancode mapping
224 * - sony-12 bits
226 - scancode bit
228 - description
230 * - 8
232 - 16 to 23
234 - device
236 * - 7
238 - 0 to 6
240 - function
242 sony-20 (RC_PROTO_SONY20)
243 -------------------------
245 The sony protocol is a pulse-width encoding. There are three variants,
248 .. flat-table:: sony-20 bits scancode mapping
251 * - sony-20 bits
253 - scancode bit
255 - description
257 * - 5
259 - 16 to 20
261 - device
263 * - 7
265 - 0 to 7
267 - device
269 * - 8
271 - 8 to 15
273 - extended bits
276 ------------------
278 The nec protocol encodes an 8 bit address and an 8 bit command. It is
280 that the protocol sends least significant bit first.
282 As a check, the nec protocol sends the address and command twice; the
285 A plain nec IR message has 16 bits; the high 8 bits are the address
288 nec-x (RC_PROTO_NECX)
289 ---------------------
291 Extended nec has a 16 bit address and a 8 bit command. This is encoded
292 as a 24 bit value as you would expect, with the lower 8 bits the command
295 nec-32 (RC_PROTO_NEC32)
296 -----------------------
298 nec-32 does not send an inverted address or an inverted command; the
303 inverted value of the third 8 bit value.
305 The scancode has a somewhat unusual encoding.
307 .. flat-table:: nec-32 bits scancode mapping
309 * - nec-32 bits
311 - scancode bit
313 * - First 8 bits
315 - 16 to 23
317 * - Second 8 bits
319 - 24 to 31
321 * - Third 8 bits
323 - 0 to 7
325 * - Fourth 8 bits
327 - 8 to 15
330 ----------------------
339 mcir2-kbd (RC_PROTO_MCIR2_KBD)
340 ------------------------------
343 events. Refer to the ir-mce_kbd-decoder.c to see how it is encoded.
345 mcir2-mse (RC_PROTO_MCIR2_MSE)
346 ------------------------------
349 events. Refer to the ir-mce_kbd-decoder.c to see how it is encoded.
351 rc-6-0 (RC_PROTO_RC6_0)
352 -----------------------
354 This is the rc-6 in mode 0. rc-6 is described here
356 The scancode is the exact 16 bits as in the protocol. There is also a
357 toggle bit.
359 rc-6-6a-20 (RC_PROTO_RC6_6A_20)
360 -------------------------------
362 This is the rc-6 in mode 6a, 20 bits. rc-6 is described here
365 as in the protocol. There is also a toggle bit.
367 rc-6-6a-24 (RC_PROTO_RC6_6A_24)
368 -------------------------------
370 This is the rc-6 in mode 6a, 24 bits. rc-6 is described here
373 as in the protocol. There is also a toggle bit.
375 rc-6-6a-32 (RC_PROTO_RC6_6A_32)
376 -------------------------------
378 This is the rc-6 in mode 6a, 32 bits. rc-6 is described here
381 and the lower 16 bits are the vendor-specific bits. This protocol is
382 for the non-Microsoft MCE variant (vendor != 0x800f).
385 rc-6-mce (RC_PROTO_RC6_MCE)
386 ---------------------------
388 This is the rc-6 in mode 6a, 32 bits. The upper 16 bits are the vendor,
389 and the lower 16 bits are the vendor-specific bits. This protocol is
390 for the Microsoft MCE variant (vendor = 0x800f). The toggle bit in the
391 protocol itself is ignored, and the 16th bit should be takes as the toggle
392 bit.
395 ----------------------
397 This is a protocol used by Sharp VCRs, is described here
398 https://www.sbprojects.net/knowledge/ir/sharp.php. There is a very long
402 There is a 5 bit address and a 8 bit command. In the scancode the address is
406 ------------------
409 to the decoder (ir-xmp-decoder.c) to see how it is encoded.
413 ------------------
415 This is not an IR protocol, this is a protocol over CEC. The CEC
416 infrastructure uses rc-core for handling CEC commands, so that they
420 --------------------
426 31 bits, and the scancode is simply the 31 bits with the top bit always 0.
428 rc-mm-12 (RC_PROTO_RCMM12)
429 --------------------------
431 The rc-mm protocol is described here
435 rc-mm-24 (RC_PROTO_RCMM24)
436 --------------------------
438 The rc-mm protocol is described here
442 rc-mm-32 (RC_PROTO_RCMM32)
443 --------------------------
445 The rc-mm protocol is described here
449 xbox-dvd (RC_PROTO_XBOX_DVD)
450 ----------------------------
453 XBox. There is no in-kernel decoder or encoder for this protocol. The usb
454 device decodes the protocol. There is a BPF decoder available in v4l-utils.