treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / Documentation / media / v4l-drivers / si470x.rst
blobd53bf5f952003e6db7bf9702b7ef1bb98369c486
1 .. SPDX-License-Identifier: GPL-2.0
3 .. include:: <isonum.txt>
5 The Silicon Labs Si470x FM Radio Receivers driver
6 =================================================
8 Copyright |copy| 2009 Tobias Lorenz <tobias.lorenz@gmx.net>
11 Information from Silicon Labs
12 -----------------------------
14 Silicon Laboratories is the manufacturer of the radio ICs, that nowadays are the
15 most often used radio receivers in cell phones. Usually they are connected with
16 I2C. But SiLabs also provides a reference design, which integrates this IC,
17 together with a small microcontroller C8051F321, to form a USB radio.
18 Part of this reference design is also a radio application in binary and source
19 code. The software also contains an automatic firmware upgrade to the most
20 current version. Information on these can be downloaded here:
21 http://www.silabs.com/usbradio
24 Supported ICs
25 -------------
27 The following ICs have a very similar register set, so that they are or will be
28 supported somewhen by the driver:
30 - Si4700: FM radio receiver
31 - Si4701: FM radio receiver, RDS Support
32 - Si4702: FM radio receiver
33 - Si4703: FM radio receiver, RDS Support
34 - Si4704: FM radio receiver, no external antenna required
35 - Si4705: FM radio receiver, no external antenna required, RDS support, Dig I/O
36 - Si4706: Enhanced FM RDS/TMC radio receiver, no external antenna required, RDS
37           Support
38 - Si4707: Dedicated weather band radio receiver with SAME decoder, RDS Support
39 - Si4708: Smallest FM receivers
40 - Si4709: Smallest FM receivers, RDS Support
42 More information on these can be downloaded here:
43 http://www.silabs.com/products/mcu/Pages/USBFMRadioRD.aspx
46 Supported USB devices
47 ---------------------
49 Currently the following USB radios (vendor:product) with the Silicon Labs si470x
50 chips are known to work:
52 - 10c4:818a: Silicon Labs USB FM Radio Reference Design
53 - 06e1:a155: ADS/Tech FM Radio Receiver (formerly Instant FM Music) (RDX-155-EF)
54 - 1b80:d700: KWorld USB FM Radio SnapMusic Mobile 700 (FM700)
55 - 10c5:819a: Sanei Electric, Inc. FM USB Radio (sold as DealExtreme.com PCear)
58 Software
59 --------
61 Testing is usually done with most application under Debian/testing:
63 - fmtools - Utility for managing FM tuner cards
64 - gnomeradio - FM-radio tuner for the GNOME desktop
65 - gradio - GTK FM radio tuner
66 - kradio - Comfortable Radio Application for KDE
67 - radio - ncurses-based radio application
68 - mplayer - The Ultimate Movie Player For Linux
69 - v4l2-ctl - Collection of command line video4linux utilities
71 For example, you can use:
73 .. code-block:: none
75         v4l2-ctl -d /dev/radio0 --set-ctrl=volume=10,mute=0 --set-freq=95.21 --all
77 There is also a library libv4l, which can be used. It's going to have a function
78 for frequency seeking, either by using hardware functionality as in radio-si470x
79 or by implementing a function as we currently have in every of the mentioned
80 programs. Somewhen the radio programs should make use of libv4l.
82 For processing RDS information, there is a project ongoing at:
83 http://rdsd.berlios.de/
85 There is currently no project for making TMC sentences human readable.
88 Audio Listing
89 -------------
91 USB Audio is provided by the ALSA snd_usb_audio module. It is recommended to
92 also select SND_USB_AUDIO, as this is required to get sound from the radio. For
93 listing you have to redirect the sound, for example using one of the following
94 commands. Please adjust the audio devices to your needs (/dev/dsp* and hw:x,x).
96 If you just want to test audio (very poor quality):
98 .. code-block:: none
100         cat /dev/dsp1 > /dev/dsp
102 If you use sox + OSS try:
104 .. code-block:: none
106         sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp
108 or using sox + alsa:
110 .. code-block:: none
112         sox --endian little -c 2 -S -r 96000 -t alsa hw:1 -t alsa -r 96000 hw:0
114 If you use arts try:
116 .. code-block:: none
118         arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -
120 If you use mplayer try:
122 .. code-block:: none
124         mplayer -radio adevice=hw=1.0:arate=96000 \
125                 -rawaudio rate=96000 \
126                 radio://<frequency>/capture
128 Module Parameters
129 -----------------
131 After loading the module, you still have access to some of them in the sysfs
132 mount under /sys/module/radio_si470x/parameters. The contents of read-only files
133 (0444) are not updated, even if space, band and de are changed using private
134 video controls. The others are runtime changeable.
137 Errors
138 ------
140 Increase tune_timeout, if you often get -EIO errors.
142 When timed out or band limit is reached, hw_freq_seek returns -EAGAIN.
144 If you get any errors from snd_usb_audio, please report them to the ALSA people.
147 Open Issues
148 -----------
150 V4L minor device allocation and parameter setting is not perfect. A solution is
151 currently under discussion.
153 There is an USB interface for downloading/uploading new firmware images. Support
154 for it can be implemented using the request_firmware interface.
156 There is a RDS interrupt mode. The driver is already using the same interface
157 for polling RDS information, but is currently not using the interrupt mode.
159 There is a LED interface, which can be used to override the LED control
160 programmed in the firmware. This can be made available using the LED support
161 functions in the kernel.
164 Other useful information and links
165 ----------------------------------
167 http://www.silabs.com/usbradio