radio - device-independent radio driver layer
radio* at az?
radio* at bktr?
radio* at fms?
radio* at gtp?
radio* at rt?
radio* at rtii?
radio* at sfr?
radio* at sf2r?
radio* at udsbr?
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/radioio.h>
The radio driver provides support for various FM radio
cards. It provides
an uniform programming interface layer above different
underlying
radio hardware drivers.
For radio tuner controlling there is a single device file
available:
/dev/radio.
The following ioctl(2) commands are supported:
RIOCSSRCH (int)
This command assumes that a signal search is required and gives
direction of search to the driver - 0 to search down
and any nonzero
value to search up.
RIOCGINFO (struct radio_info)
RIOCSINFO (struct radio_info)
Get or set the current hardware device information
into the
struct radio_info structure.
struct radio_info {
int mute;
int volume;
int stereo;
int rfreq; /* reference frequency */
int lock; /* locking field strength */
u_int32_t freq; /* in kHz */
u_int32_t caps; /* card capabilities
*/
#define RADIO_CAPS_DETECT_STEREO (1<<0)
#define RADIO_CAPS_DETECT_SIGNAL (1<<1)
#define RADIO_CAPS_SET_MONO (1<<2)
#define RADIO_CAPS_HW_SEARCH (1<<3)
#define RADIO_CAPS_HW_AFC (1<<4)
#define RADIO_CAPS_REFERENCE_FREQ (1<<5)
#define RADIO_CAPS_LOCK_SENSITIVITY (1<<6)
#define RADIO_CARD_TYPE (0xFF<<16)
u_int32_t info;
#define RADIO_INFO_STEREO (1<<0)
#define RADIO_INFO_SIGNAL (1<<1)
};
The mute field is a boolean.
The volume field holds the card volume information
and can be at
most 255.
The stereo field is a boolean.
The rfreq holds information about the card reference
frequency
(not all cards support this feature).
The lock field holds information about the card
locking field
strength during an automatic search for cards that
support this
feature.
The freq field is the frequency in kHz the card is
tuned to.
The caps field is read-only and describes the card
capabilities.
The capabilities can have the following values:
RADIO_CAPS_DETECT_STEREO
The device can determine if it is tuned to a
stereo signal.
RADIO_CAPS_DETECT_SIGNAL
The device can determine if it is tuned or
not.
RADIO_CAPS_SET_MONO
The device is capable of forcibly setting
its output to
mono.
RADIO_CAPS_HW_SEARCH
The device can do hardware search.
RADIO_CAPS_HW_AFC
The device has an internal hardware automatic frequency
control.
RADIO_CAPS_REFERENCE_FREQ
The device allows changing the reference
frequency of a
received signal.
RADIO_CAPS_LOCK_SENSITIVITY
The device allows changing the station lock
sensitivity
used during search operation.
RADIO_CARD_TYPE
Some cards have several different incarnations. This allows
the variant of the card to be determined. Currently
not used.
The info field is read-only and describes the current state of
the card - tuned/not tuned, stereo signal/mono signal.
RADIO_INFO_STEREO
Informs whether the device receives a stereo
or mono signal.
RADIO_INFO_SIGNAL
Informs whether the device receives a valid
signal or
noise.
LM700x is a frequency synthesizer IC. The LM700x is programmed through a
24-bit write-only shift register. The first 14 bits are
frequency data.
The next 2 bits are LSI test bits, and should always be zero. The next 4
bits are band data and time base data. They can be programmed to force a
given reference frequency, or they can be set to zero and
the next 3 bits
can be used to set the reference frequency. The final bit
selects the
divider selection, which is 1 for FM and 0 for AM. The
LM700x chips are
used in az(4) and rt(4) cards.
The TEA5757; TEA5759 is a 44-pin integrated AM/FM stereo radio circuit.
The radio part is based on the TEA5712. The TEA5757 is used
in FM-standards
in which the local oscillator frequency is above the
radio frequency
(e.g. European and American standards). The TEA5759 is
the version in
which the oscillator frequency is below the radio frequency
(e.g.
Japanese standards). To conform with the Japanese standards, it is necessary
to set the flags' least significant bit to 1. The
TEA5757;
TEA5759 has a 25-bit read-write shift register. The TEA5757
chips are
used in gtp(4), rtii(4), sf2r(4) and fms(4) cards.
The TC9216P, TC9217P and TC9217F are high speed PLL-LSI with
built-in 2
modulus prescaler. Each function is controlled through 3
serial bus
lines (DATA, CLOCK and PERIOD) by the data setting to a pair
of 24-bit
registers, total of 48 bits. Address 8 bits and data 24
bits, total of
32 bits, are transferred in serial at the same time. The
TC921x chips
are used in sfr(4) cards.
/dev/radio
radioctl(1), ioctl(2), az(4), bktr(4), fms(4), gtp(4), intro(4), rt(4),
rtii(4), sf2r(4), sfr(4), udsbr(4), radio(9)
The radio device driver appeared in OpenBSD 3.0.
The radio driver was written by Vladimir Popov <jumbo@narod.ru> and
Maxim Tsyplakov <tm@oganer.net>. The man page was written
by
Vladimir Popov <jumbo@narod.ru>.
OpenBSD 3.6 October 20, 2001
[ Back ] |