168 lines · plain
1.. SPDX-License-Identifier: GPL-2.02 3.. include:: <isonum.txt>4 5The Silicon Labs Si470x FM Radio Receivers driver6=================================================7 8Copyright |copy| 2009 Tobias Lorenz <tobias.lorenz@gmx.net>9 10 11Information from Silicon Labs12-----------------------------13 14Silicon Laboratories is the manufacturer of the radio ICs, that nowadays are the15most often used radio receivers in cell phones. Usually they are connected with16I2C. But SiLabs also provides a reference design, which integrates this IC,17together with a small microcontroller C8051F321, to form a USB radio.18Part of this reference design is also a radio application in binary and source19code. The software also contains an automatic firmware upgrade to the most20current version. Information on these can be downloaded here:21http://www.silabs.com/usbradio22 23 24Supported ICs25-------------26 27The following ICs have a very similar register set, so that they are or will be28supported somewhen by the driver:29 30- Si4700: FM radio receiver31- Si4701: FM radio receiver, RDS Support32- Si4702: FM radio receiver33- Si4703: FM radio receiver, RDS Support34- Si4704: FM radio receiver, no external antenna required35- Si4705: FM radio receiver, no external antenna required, RDS support, Dig I/O36- Si4706: Enhanced FM RDS/TMC radio receiver, no external antenna required, RDS37 Support38- Si4707: Dedicated weather band radio receiver with SAME decoder, RDS Support39- Si4708: Smallest FM receivers40- Si4709: Smallest FM receivers, RDS Support41 42More information on these can be downloaded here:43http://www.silabs.com/products/mcu/Pages/USBFMRadioRD.aspx44 45 46Supported USB devices47---------------------48 49Currently the following USB radios (vendor:product) with the Silicon Labs si470x50chips are known to work:51 52- 10c4:818a: Silicon Labs USB FM Radio Reference Design53- 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)56 57 58Software59--------60 61Testing is usually done with most application under Debian/testing:62 63- fmtools - Utility for managing FM tuner cards64- gnomeradio - FM-radio tuner for the GNOME desktop65- gradio - GTK FM radio tuner66- kradio - Comfortable Radio Application for KDE67- radio - ncurses-based radio application68- mplayer - The Ultimate Movie Player For Linux69- v4l2-ctl - Collection of command line video4linux utilities70 71For example, you can use:72 73.. code-block:: none74 75 v4l2-ctl -d /dev/radio0 --set-ctrl=volume=10,mute=0 --set-freq=95.21 --all76 77There is also a library libv4l, which can be used. It's going to have a function78for frequency seeking, either by using hardware functionality as in radio-si470x79or by implementing a function as we currently have in every of the mentioned80programs. Somewhen the radio programs should make use of libv4l.81 82For processing RDS information, there is a project ongoing at:83http://rdsd.berlios.de/84 85There is currently no project for making TMC sentences human readable.86 87 88Audio Listing89-------------90 91USB Audio is provided by the ALSA snd_usb_audio module. It is recommended to92also select SND_USB_AUDIO, as this is required to get sound from the radio. For93listing you have to redirect the sound, for example using one of the following94commands. Please adjust the audio devices to your needs (/dev/dsp* and hw:x,x).95 96If you just want to test audio (very poor quality):97 98.. code-block:: none99 100 cat /dev/dsp1 > /dev/dsp101 102If you use sox + OSS try:103 104.. code-block:: none105 106 sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp107 108or using sox + alsa:109 110.. code-block:: none111 112 sox --endian little -c 2 -S -r 96000 -t alsa hw:1 -t alsa -r 96000 hw:0113 114If you use arts try:115 116.. code-block:: none117 118 arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -119 120If you use mplayer try:121 122.. code-block:: none123 124 mplayer -radio adevice=hw=1.0:arate=96000 \125 -rawaudio rate=96000 \126 radio://<frequency>/capture127 128Module Parameters129-----------------130 131After loading the module, you still have access to some of them in the sysfs132mount under /sys/module/radio_si470x/parameters. The contents of read-only files133(0444) are not updated, even if space, band and de are changed using private134video controls. The others are runtime changeable.135 136 137Errors138------139 140Increase tune_timeout, if you often get -EIO errors.141 142When timed out or band limit is reached, hw_freq_seek returns -EAGAIN.143 144If you get any errors from snd_usb_audio, please report them to the ALSA people.145 146 147Open Issues148-----------149 150V4L minor device allocation and parameter setting is not perfect. A solution is151currently under discussion.152 153There is an USB interface for downloading/uploading new firmware images. Support154for it can be implemented using the request_firmware interface.155 156There is a RDS interrupt mode. The driver is already using the same interface157for polling RDS information, but is currently not using the interrupt mode.158 159There is a LED interface, which can be used to override the LED control160programmed in the firmware. This can be made available using the LED support161functions in the kernel.162 163 164Other useful information and links165----------------------------------166 167http://www.silabs.com/usbradio168