Subject: Re: IrDA (was: Nokia GSM phones and pkgsrc? kernel?)
To: Johan Danielsson <>
From: Roger Brooks <>
List: current-users
Date: 04/04/2000 00:14:33
On 29 Mar 2000, Johan Danielsson wrote:

>I guess (but I haven't looked at the code) that most of the kernel
>code consists of drivers for various irda hardware. You should be able
>to get it working without much of this, since most (or all) irda
>devices work like normal serial UARTs. For FIR (4Mbp/s) mode you need
>to use DMA and that does require a separate driver.
>Anyway this part should be easy, the bulk of any implementation should
>be Ir{LAP,LMP,COMM,etc}. Curious question: is the PHY part implemented
>in hardware, or do you need that too?

For FIR, I think the PHY is done in hardware.  For SIR it depends on what
kind of transceiver you have.  The problem is that as you switch baud rates,
the width of the IR pulse is supposed to change.  For a transceiver connected
directly to a multi-I/O chip with SIR support (e.g. Winbond 83X77), such as
in a laptop, or connected to the 5-pin header on a motherboard, it appears
that when you change the UART baud rate, the pulse width changes automatically
(which is possible, because the pulse timing circuit is in the Winbond chip).

For an external SIR dongle (which connects to an RS232 port), you have to
explicitly set the dongle to the right pulse width.  The Linux code includes
several dongle drivers with weird and wonderful ways to communicate with
the dongle.  Some simply send data bytes with a modem line de-asserted.
One uses three combinations of DTR and RTS to set three pulse withs (and
at the same time power the dongle!).  Others use sequences of pulses
on DTR and RTS.


Roger Brooks (Systems Programmer),          |  Email:
Computing Services Dept,                    |  Tel:   +44 151 794 4441
The University of Liverpool,                |  Fax:   +44 151 794 4442
PO Box 147, Liverpool L69 3BX, UK           |