I'm having a strange problem using LIRC with simple 3-pin IR decoder modules (Vishay TSOP13xx, Sharp GP1Uxxxxx) on certain SBCs, even though the boards are nominally all the same. Both of them use the same Super I/O (Winbond W83977AF). Both vendors implement IR on a5x1-pin 2mm header that's "almost" the same as the "standard" for PC motherboards:
Board vendor A has "CIR_IN" on pin 2. Board vendor B shows pin 2 as NC, and although it's hard to trace (6-layer board), I verified that wherever that pin goes, it doesn't go to an input on the super I/O. Both vendors have pin 1=5V, 3=IR_RxD, 4=GND, 5=IR_TxD.
If I connect my decoder to pin 2 on board A, everything works OK. However, if I connect the decoder to pin 3 on board B, it doesn't work properly, and Board B is the one I really want to use. Board B's CMOS setup has the options IrDA, CIR and ASK as the modes for the IR port; I've tried all three modes with basically the same results.
I may be missing something very obvious; for example I may be selecting the wrong LIRC driver (I'm using lirc_sir). If anyone can offer an insight, it would be greatly appreciated. Is there something special about the IrDA transceivers (vs. a standard CIR rxvr) that would be the culprit?
Below is the result of training LIRC on my remote on board A (working). I get the same results when I train the remote on my ThinkPad. However, on board B the training process APPEARS to work but gives totally different results. Sometimes it thinks it's seeing an RC-6 remote. Sometimes it just says raw mode. Even when training is successful, LIRC will never recognize button presses.
begin remote name /etc/lircd.conf bits 16 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 39 13508 one 39 2222 zero 39 1085 ptrail 39 repeat 39 11259 pre_data_bits 16 pre_data 0x41C8 gap 108332 toggle_bit 0 begin codes p 0x00000000000000FF w 0x000000000000807F u 0x00000000000040BF l 0x000000000000C03F d 0x00000000000020DF r 0x000000000000A05F n 0x000000000000609F end codes end remote