~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/driver-api/media/drivers/radiotrack.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/driver-api/media/drivers/radiotrack.rst (Architecture alpha) and /Documentation/driver-api/media/drivers/radiotrack.rst (Architecture sparc)


  1 .. SPDX-License-Identifier: GPL-2.0                 1 .. SPDX-License-Identifier: GPL-2.0
  2                                                     2 
  3 The Radiotrack radio driver                         3 The Radiotrack radio driver
  4 ===========================                         4 ===========================
  5                                                     5 
  6 Author: Stephen M. Benoit <benoits@servicepro.c      6 Author: Stephen M. Benoit <benoits@servicepro.com>
  7                                                     7 
  8 Date:  Dec 14, 1996                                 8 Date:  Dec 14, 1996
  9                                                     9 
 10 ACKNOWLEDGMENTS                                    10 ACKNOWLEDGMENTS
 11 ----------------                                   11 ----------------
 12                                                    12 
 13 This document was made based on 'C' code for L     13 This document was made based on 'C' code for Linux from Gideon le Grange
 14 (legrang@active.co.za or legrang@cs.sun.ac.za)     14 (legrang@active.co.za or legrang@cs.sun.ac.za) in 1994, and elaborations from
 15 Frans Brinkman (brinkman@esd.nl) in 1996.  The     15 Frans Brinkman (brinkman@esd.nl) in 1996.  The results reported here are from
 16 experiments that the author performed on his o     16 experiments that the author performed on his own setup, so your mileage may
 17 vary... I make no guarantees, claims or warran     17 vary... I make no guarantees, claims or warranties to the suitability or
 18 validity of this information.  No other docume     18 validity of this information.  No other documentation on the AIMS
 19 Lab (http://www.aimslab.com/) RadioTrack card      19 Lab (http://www.aimslab.com/) RadioTrack card was made available to the
 20 author.  This document is offered in the hopes     20 author.  This document is offered in the hopes that it might help users who
 21 want to use the RadioTrack card in an environm     21 want to use the RadioTrack card in an environment other than MS Windows.
 22                                                    22 
 23 WHY THIS DOCUMENT?                                 23 WHY THIS DOCUMENT?
 24 ------------------                                 24 ------------------
 25                                                    25 
 26 I have a RadioTrack card from back when I ran      26 I have a RadioTrack card from back when I ran an MS-Windows platform.  After
 27 converting to Linux, I found Gideon le Grange'     27 converting to Linux, I found Gideon le Grange's command-line software for
 28 running the card, and found that it was good!      28 running the card, and found that it was good!  Frans Brinkman made a
 29 comfortable X-windows interface, and added a s     29 comfortable X-windows interface, and added a scanning feature.  For hack
 30 value, I wanted to see if the tuner could be t     30 value, I wanted to see if the tuner could be tuned beyond the usual FM radio
 31 broadcast band, so I could pick up the audio c     31 broadcast band, so I could pick up the audio carriers from North American
 32 broadcast TV channels, situated just below and     32 broadcast TV channels, situated just below and above the 87.0-109.0 MHz range.
 33 I did not get much success, but I learned abou     33 I did not get much success, but I learned about programming ioports under
 34 Linux and gained some insights about the hardw     34 Linux and gained some insights about the hardware design used for the card.
 35                                                    35 
 36 So, without further delay, here are the detail     36 So, without further delay, here are the details.
 37                                                    37 
 38                                                    38 
 39 PHYSICAL DESCRIPTION                               39 PHYSICAL DESCRIPTION
 40 --------------------                               40 --------------------
 41                                                    41 
 42 The RadioTrack card is an ISA 8-bit FM radio c     42 The RadioTrack card is an ISA 8-bit FM radio card.  The radio frequency (RF)
 43 input is simply an antenna lead, and the outpu     43 input is simply an antenna lead, and the output is a power audio signal
 44 available through a miniature phone plug.  Its     44 available through a miniature phone plug.  Its RF frequencies of operation are
 45 more or less limited from 87.0 to 109.0 MHz (t     45 more or less limited from 87.0 to 109.0 MHz (the commercial FM broadcast
 46 band).  Although the registers can be programm     46 band).  Although the registers can be programmed to request frequencies beyond
 47 these limits, experiments did not give promisi     47 these limits, experiments did not give promising results.  The variable
 48 frequency oscillator (VFO) that demodulates th     48 frequency oscillator (VFO) that demodulates the intermediate frequency (IF)
 49 signal probably has a small range of useful fr     49 signal probably has a small range of useful frequencies, and wraps around or
 50 gets clipped beyond the limits mentioned above     50 gets clipped beyond the limits mentioned above.
 51                                                    51 
 52                                                    52 
 53 CONTROLLING THE CARD WITH IOPORT                   53 CONTROLLING THE CARD WITH IOPORT
 54 --------------------------------                   54 --------------------------------
 55                                                    55 
 56 The RadioTrack (base) ioport is configurable f     56 The RadioTrack (base) ioport is configurable for 0x30c or 0x20c.  Only one
 57 ioport seems to be involved.  The ioport decod     57 ioport seems to be involved.  The ioport decoding circuitry must be pretty
 58 simple, as individual ioport bits are directly     58 simple, as individual ioport bits are directly matched to specific functions
 59 (or blocks) of the radio card.  This way, many     59 (or blocks) of the radio card.  This way, many functions can be changed in
 60 parallel with one write to the ioport.  The on     60 parallel with one write to the ioport.  The only feedback available through
 61 the ioports appears to be the "Stereo Detect"      61 the ioports appears to be the "Stereo Detect" bit.
 62                                                    62 
 63 The bits of the ioport are arranged as follows     63 The bits of the ioport are arranged as follows:
 64                                                    64 
 65 .. code-block:: none                               65 .. code-block:: none
 66                                                    66 
 67         MSb                                        67         MSb                                                         LSb
 68         +------+------+------+--------+-------     68         +------+------+------+--------+--------+-------+---------+--------+
 69         | VolA | VolB | ???? | Stereo | Radio      69         | VolA | VolB | ???? | Stereo | Radio  | TuneA | TuneB   | Tune   |
 70         |  (+) |  (-) |      | Detect | Audio      70         |  (+) |  (-) |      | Detect | Audio  | (bit) | (latch) | Update |
 71         |      |      |      | Enable | Enable     71         |      |      |      | Enable | Enable |       |         | Enable |
 72         +------+------+------+--------+-------     72         +------+------+------+--------+--------+-------+---------+--------+
 73                                                    73 
 74                                                    74 
 75 ====  ====  =================================      75 ====  ====  =================================
 76 VolA  VolB  Description                            76 VolA  VolB  Description
 77 ====  ====  =================================      77 ====  ====  =================================
 78 0        0  audio mute                             78 0        0  audio mute
 79 0        1  volume +    (some delay required)      79 0        1  volume +    (some delay required)
 80 1        0  volume -    (some delay required)      80 1        0  volume -    (some delay required)
 81 1        1  stay at present volume                 81 1        1  stay at present volume
 82 ====  ====  =================================      82 ====  ====  =================================
 83                                                    83 
 84 ====================    ===========                84 ====================    ===========
 85 Stereo Detect Enable    Description                85 Stereo Detect Enable    Description
 86 ====================    ===========                86 ====================    ===========
 87 0                       No Detect                  87 0                       No Detect
 88 1                       Detect                     88 1                       Detect
 89 ====================    ===========                89 ====================    ===========
 90                                                    90 
 91 Results available by reading ioport >60 msec a     91 Results available by reading ioport >60 msec after last port write.
 92                                                    92 
 93   0xff ==> no stereo detected,  0xfd ==> stere     93   0xff ==> no stereo detected,  0xfd ==> stereo detected.
 94                                                    94 
 95 =============================   ==============     95 =============================   =============================
 96 Radio to Audio (path) Enable    Description        96 Radio to Audio (path) Enable    Description
 97 =============================   ==============     97 =============================   =============================
 98 0                               Disable path (     98 0                               Disable path (silence)
 99 1                               Enable path  (     99 1                               Enable path  (audio produced)
100 =============================   ==============    100 =============================   =============================
101                                                   101 
102 =====  =====  ==================                  102 =====  =====  ==================
103 TuneA  TuneB  Description                         103 TuneA  TuneB  Description
104 =====  =====  ==================                  104 =====  =====  ==================
105 0       0     "zero" bit phase 1                  105 0       0     "zero" bit phase 1
106 0       1     "zero" bit phase 2                  106 0       1     "zero" bit phase 2
107 1       0     "one" bit phase 1                   107 1       0     "one" bit phase 1
108 1       1     "one" bit phase 2                   108 1       1     "one" bit phase 2
109 =====  =====  ==================                  109 =====  =====  ==================
110                                                   110 
111                                                   111 
112 24-bit code, where bits = (freq*40) + 10486188    112 24-bit code, where bits = (freq*40) + 10486188.
113 The Most Significant 11 bits must be 1010 xxxx    113 The Most Significant 11 bits must be 1010 xxxx 0x0 to be valid.
114 The bits are shifted in LSb first.                114 The bits are shifted in LSb first.
115                                                   115 
116 ==================      ======================    116 ==================      ===========================
117 Tune Update Enable      Description               117 Tune Update Enable      Description
118 ==================      ======================    118 ==================      ===========================
119 0                       Tuner held constant       119 0                       Tuner held constant
120 1                       Tuner updating in prog    120 1                       Tuner updating in progress
121 ==================      ======================    121 ==================      ===========================
122                                                   122 
123                                                   123 
124 PROGRAMMING EXAMPLES                              124 PROGRAMMING EXAMPLES
125 --------------------                              125 --------------------
126                                                   126 
127 .. code-block:: none                              127 .. code-block:: none
128                                                   128 
129         Default:        BASE <-- 0xc8  (curren    129         Default:        BASE <-- 0xc8  (current volume, no stereo detect,
130                                         radio     130                                         radio enable, tuner adjust disable)
131                                                   131 
132         Card Off:       BASE <-- 0x00  (audio     132         Card Off:       BASE <-- 0x00  (audio mute, no stereo detect,
133                                         radio     133                                         radio disable, tuner adjust disable)
134                                                   134 
135         Card On:        BASE <-- 0x00  (see "C    135         Card On:        BASE <-- 0x00  (see "Card Off", clears any unfinished business)
136                         BASE <-- 0xc8  (see "D    136                         BASE <-- 0xc8  (see "Default")
137                                                   137 
138         Volume Down:    BASE <-- 0x48  (volume    138         Volume Down:    BASE <-- 0x48  (volume down, no stereo detect,
139                                         radio     139                                         radio enable, tuner adjust disable)
140                         wait 10 msec              140                         wait 10 msec
141                         BASE <-- 0xc8  (see "D    141                         BASE <-- 0xc8  (see "Default")
142                                                   142 
143         Volume Up:      BASE <-- 0x88  (volume    143         Volume Up:      BASE <-- 0x88  (volume up, no stereo detect,
144                                         radio     144                                         radio enable, tuner adjust disable)
145                         wait 10 msec              145                         wait 10 msec
146                         BASE <-- 0xc8  (see "D    146                         BASE <-- 0xc8  (see "Default")
147                                                   147 
148         Check Stereo:   BASE <-- 0xd8  (curren    148         Check Stereo:   BASE <-- 0xd8  (current volume, stereo detect,
149                                         radio     149                                         radio enable, tuner adjust disable)
150                         wait 100 msec             150                         wait 100 msec
151                         x <-- BASE     (read i    151                         x <-- BASE     (read ioport)
152                         BASE <-- 0xc8  (see "D    152                         BASE <-- 0xc8  (see "Default")
153                                                   153 
154                         x=0xff ==> "not stereo    154                         x=0xff ==> "not stereo", x=0xfd ==> "stereo detected"
155                                                   155 
156         Set Frequency:  code = (freq*40) + 104    156         Set Frequency:  code = (freq*40) + 10486188
157                         foreach of the 24 bits    157                         foreach of the 24 bits in code,
158                         (from Least to Most Si    158                         (from Least to Most Significant):
159                         to write a "zero" bit,    159                         to write a "zero" bit,
160                         BASE <-- 0x01  (audio     160                         BASE <-- 0x01  (audio mute, no stereo detect, radio
161                                         disabl    161                                         disable, "zero" bit phase 1, tuner adjust)
162                         BASE <-- 0x03  (audio     162                         BASE <-- 0x03  (audio mute, no stereo detect, radio
163                                         disabl    163                                         disable, "zero" bit phase 2, tuner adjust)
164                         to write a "one" bit,     164                         to write a "one" bit,
165                         BASE <-- 0x05  (audio     165                         BASE <-- 0x05  (audio mute, no stereo detect, radio
166                                         disabl    166                                         disable, "one" bit phase 1, tuner adjust)
167                         BASE <-- 0x07  (audio     167                         BASE <-- 0x07  (audio mute, no stereo detect, radio
168                                         disabl    168                                         disable, "one" bit phase 2, tuner adjust)
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php