Commit 6286d2b1 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] doc-rst: add documentation for radiotrack

Convert it to ReST and add it to the media/v4l-drivers book.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent f0bb8dd9
...@@ -32,4 +32,5 @@ License". ...@@ -32,4 +32,5 @@ License".
omap4_camera omap4_camera
pvrusb2 pvrusb2
pxa_camera pxa_camera
radiotrack
zr364xx zr364xx
NOTES ON RADIOTRACK CARD CONTROL The Radiotrack radio driver
by Stephen M. Benoit (benoits@servicepro.com) Dec 14, 1996 ===========================
----------------------------------------------------------------------------
Document version 1.0 Author: Stephen M. Benoit <benoits@servicepro.com>
Date: Dec 14, 1996
ACKNOWLEDGMENTS ACKNOWLEDGMENTS
---------------- ----------------
This document was made based on 'C' code for Linux from Gideon le Grange This document was made based on 'C' code for Linux from Gideon le Grange
(legrang@active.co.za or legrang@cs.sun.ac.za) in 1994, and elaborations from (legrang@active.co.za or legrang@cs.sun.ac.za) in 1994, and elaborations from
Frans Brinkman (brinkman@esd.nl) in 1996. The results reported here are from Frans Brinkman (brinkman@esd.nl) in 1996. The results reported here are from
...@@ -18,6 +20,7 @@ want to use the RadioTrack card in an environment other than MS Windows. ...@@ -18,6 +20,7 @@ want to use the RadioTrack card in an environment other than MS Windows.
WHY THIS DOCUMENT? WHY THIS DOCUMENT?
------------------ ------------------
I have a RadioTrack card from back when I ran an MS-Windows platform. After I have a RadioTrack card from back when I ran an MS-Windows platform. After
converting to Linux, I found Gideon le Grange's command-line software for converting to Linux, I found Gideon le Grange's command-line software for
running the card, and found that it was good! Frans Brinkman made a running the card, and found that it was good! Frans Brinkman made a
...@@ -33,6 +36,7 @@ So, without further delay, here are the details. ...@@ -33,6 +36,7 @@ So, without further delay, here are the details.
PHYSICAL DESCRIPTION PHYSICAL DESCRIPTION
-------------------- --------------------
The RadioTrack card is an ISA 8-bit FM radio card. The radio frequency (RF) The RadioTrack card is an ISA 8-bit FM radio card. The radio frequency (RF)
input is simply an antenna lead, and the output is a power audio signal input is simply an antenna lead, and the output is a power audio signal
available through a miniature phone plug. Its RF frequencies of operation are available through a miniature phone plug. Its RF frequencies of operation are
...@@ -46,6 +50,7 @@ gets clipped beyond the limits mentioned above. ...@@ -46,6 +50,7 @@ gets clipped beyond the limits mentioned above.
CONTROLLING THE CARD WITH IOPORT CONTROLLING THE CARD WITH IOPORT
-------------------------------- --------------------------------
The RadioTrack (base) ioport is configurable for 0x30c or 0x20c. Only one The RadioTrack (base) ioport is configurable for 0x30c or 0x20c. Only one
ioport seems to be involved. The ioport decoding circuitry must be pretty ioport seems to be involved. The ioport decoding circuitry must be pretty
simple, as individual ioport bits are directly matched to specific functions simple, as individual ioport bits are directly matched to specific functions
...@@ -55,93 +60,107 @@ the ioports appears to be the "Stereo Detect" bit. ...@@ -55,93 +60,107 @@ the ioports appears to be the "Stereo Detect" bit.
The bits of the ioport are arranged as follows: The bits of the ioport are arranged as follows:
MSb LSb .. code-block:: none
+------+------+------+--------+--------+-------+---------+--------+
| VolA | VolB | ???? | Stereo | Radio | TuneA | TuneB | Tune |
| (+) | (-) | | Detect | Audio | (bit) | (latch) | Update |
| | | | Enable | Enable | | | Enable |
+------+------+------+--------+--------+-------+---------+--------+
MSb LSb
+------+------+------+--------+--------+-------+---------+--------+
| VolA | VolB | ???? | Stereo | Radio | TuneA | TuneB | Tune |
| (+) | (-) | | Detect | Audio | (bit) | (latch) | Update |
| | | | Enable | Enable | | | Enable |
+------+------+------+--------+--------+-------+---------+--------+
VolA . VolB [AB......]
-----------
0 0 : audio mute
0 1 : volume + (some delay required)
1 0 : volume - (some delay required)
1 1 : stay at present volume
Stereo Detect Enable [...S....] ==== ==== =================================
-------------------- VolA VolB Description
0 : No Detect ==== ==== =================================
1 : Detect 0 0 audio mute
0 1 volume + (some delay required)
1 0 volume - (some delay required)
1 1 stay at present volume
==== ==== =================================
==================== ===========
Stereo Detect Enable Description
==================== ===========
0 No Detect
1 Detect
==================== ===========
Results available by reading ioport >60 msec after last port write.
Results available by reading ioport >60 msec after last port write.
0xff ==> no stereo detected, 0xfd ==> stereo detected. 0xff ==> no stereo detected, 0xfd ==> stereo detected.
Radio to Audio (path) Enable [....R...] ============================= =============================
---------------------------- Radio to Audio (path) Enable Description
0 : Disable path (silence) ============================= =============================
1 : Enable path (audio produced) 0 Disable path (silence)
1 Enable path (audio produced)
============================= =============================
TuneA . TuneB [.....AB.] ===== ===== ==================
------------- TuneA TuneB Description
0 0 : "zero" bit phase 1 ===== ===== ==================
0 1 : "zero" bit phase 2 0 0 "zero" bit phase 1
0 1 "zero" bit phase 2
1 0 "one" bit phase 1
1 1 "one" bit phase 2
===== ===== ==================
1 0 : "one" bit phase 1
1 1 : "one" bit phase 2
24-bit code, where bits = (freq*40) + 10486188. 24-bit code, where bits = (freq*40) + 10486188.
The Most Significant 11 bits must be 1010 xxxx 0x0 to be valid. The Most Significant 11 bits must be 1010 xxxx 0x0 to be valid.
The bits are shifted in LSb first. The bits are shifted in LSb first.
Tune Update Enable [.......T] ================== ===========================
------------------ Tune Update Enable Description
0 : Tuner held constant ================== ===========================
1 : Tuner updating in progress 0 Tuner held constant
1 Tuner updating in progress
================== ===========================
PROGRAMMING EXAMPLES PROGRAMMING EXAMPLES
-------------------- --------------------
Default: BASE <-- 0xc8 (current volume, no stereo detect,
radio enable, tuner adjust disable) .. code-block:: none
Card Off: BASE <-- 0x00 (audio mute, no stereo detect, Default: BASE <-- 0xc8 (current volume, no stereo detect,
radio disable, tuner adjust disable) radio enable, tuner adjust disable)
Card On: BASE <-- 0x00 (see "Card Off", clears any unfinished business) Card Off: BASE <-- 0x00 (audio mute, no stereo detect,
BASE <-- 0xc8 (see "Default") radio disable, tuner adjust disable)
Volume Down: BASE <-- 0x48 (volume down, no stereo detect, Card On: BASE <-- 0x00 (see "Card Off", clears any unfinished business)
radio enable, tuner adjust disable) BASE <-- 0xc8 (see "Default")
* wait 10 msec *
BASE <-- 0xc8 (see "Default") Volume Down: BASE <-- 0x48 (volume down, no stereo detect,
radio enable, tuner adjust disable)
Volume Up: BASE <-- 0x88 (volume up, no stereo detect, wait 10 msec
radio enable, tuner adjust disable) BASE <-- 0xc8 (see "Default")
* wait 10 msec *
BASE <-- 0xc8 (see "Default") Volume Up: BASE <-- 0x88 (volume up, no stereo detect,
radio enable, tuner adjust disable)
Check Stereo: BASE <-- 0xd8 (current volume, stereo detect, wait 10 msec
radio enable, tuner adjust disable) BASE <-- 0xc8 (see "Default")
* wait 100 msec *
x <-- BASE (read ioport) Check Stereo: BASE <-- 0xd8 (current volume, stereo detect,
BASE <-- 0xc8 (see "Default") radio enable, tuner adjust disable)
wait 100 msec
x=0xff ==> "not stereo", x=0xfd ==> "stereo detected" x <-- BASE (read ioport)
BASE <-- 0xc8 (see "Default")
Set Frequency: code = (freq*40) + 10486188
foreach of the 24 bits in code, x=0xff ==> "not stereo", x=0xfd ==> "stereo detected"
(from Least to Most Significant):
to write a "zero" bit, Set Frequency: code = (freq*40) + 10486188
BASE <-- 0x01 (audio mute, no stereo detect, radio foreach of the 24 bits in code,
disable, "zero" bit phase 1, tuner adjust) (from Least to Most Significant):
BASE <-- 0x03 (audio mute, no stereo detect, radio to write a "zero" bit,
disable, "zero" bit phase 2, tuner adjust) BASE <-- 0x01 (audio mute, no stereo detect, radio
to write a "one" bit, disable, "zero" bit phase 1, tuner adjust)
BASE <-- 0x05 (audio mute, no stereo detect, radio BASE <-- 0x03 (audio mute, no stereo detect, radio
disable, "one" bit phase 1, tuner adjust) disable, "zero" bit phase 2, tuner adjust)
BASE <-- 0x07 (audio mute, no stereo detect, radio to write a "one" bit,
disable, "one" bit phase 2, tuner adjust) BASE <-- 0x05 (audio mute, no stereo detect, radio
disable, "one" bit phase 1, tuner adjust)
---------------------------------------------------------------------------- BASE <-- 0x07 (audio mute, no stereo detect, radio
disable, "one" bit phase 2, tuner adjust)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment