unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OpenBSD-5.7)
Page:
Section:
Apropos / Subsearch:
optional field

RADIO(4)                 BSD Kernel Interfaces Manual                 RADIO(4)

NAME
     radio -- device-independent radio driver layer

SYNOPSIS
     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 <&lt;sys/types.h>&gt;
     #include <&lt;sys/ioctl.h>&gt;
     #include <&lt;sys/radioio.h>&gt;

DESCRIPTION
     The radio driver provides support for various FM radio cards.  It pro-
     vides 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 non-
             zero 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)
                     u_int32_t       tuner_mode;
             #define RADIO_TUNER_MODE_RADIO          (1<<0)
             #define RADIO_TUNER_MODE_TV             (1<<1)
                     u_int32_t       chan;
                     u_int32_t       chnlset;
             };

             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 tuner_mode field is the current tuning mode of the tuner.
             Valid modes are:

             RADIO_TUNER_MODE_RADIO
                     The tuner operates in FM radio mode.
             RADIO_TUNER_MODE_TV
                     The tuner operates in TV mode.

             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 sig-
                     nal.
             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.  Cur-
                     rently 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 sig-
                     nal.
             RADIO_INFO_SIGNAL
                     Informs whether the device receives a valid signal or
                     noise.

             The chan holds the TV channel the card is tuned to.

             The chnlset specifies the TV channel set currently being used.
             The tuner uses the current channel set to derive the tuning fre-
             quency from the channel number.  Western Europe is the default
             channel set.  The following is a list of valid channel sets:

             1       U.S.A. Broadcast
             2       U.S.A. Cable IRC
             3       U.S.A. Cable HRC
             4       Western Europe
             5       Japan Broadcast
             6       Japan Cable
             7       Former U.S.S.R. and C.I.S. Countries
             8       Australia
             9       France

     Either freq or chan can be used to tune to FM radio stations or TV chan-
     nels, respectively.  Some devices may not support both functionalities.

CHIPSETS
     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-stan-
     dards in which the local oscillator frequency is above the radio fre-
     quency (e.g. European and American standards).  The TEA5759 is the ver-
     sion in which the oscillator frequency is below the radio frequency (e.g.
     Japanese standards).  To conform with the Japanese standards, it is nec-
     essary 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.

FILES
     /dev/radio

SEE ALSO
     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)

HISTORY
     The radio device driver appeared in OpenBSD 3.0.

AUTHORS
     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>.

BSD                             March 30, 2017                             BSD