Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 118709
b: refs/heads/master
c: 6aadf82
h: refs/heads/master
i:
  118707: 383977b
v: v3
  • Loading branch information
Tobias Lorenz authored and Mauro Carvalho Chehab committed Nov 11, 2008
1 parent 679edd5 commit c823e50
Show file tree
Hide file tree
Showing 4 changed files with 133 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f3a3e881b81ae33b786759c7042de974c1e0bbf7
refs/heads/master: 6aadf82eb830cf2622f8803fd7f0414299e246d3
118 changes: 118 additions & 0 deletions trunk/Documentation/video4linux/si470x.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
Driver for USB radios for the Silicon Labs Si470x FM Radio Receivers

Copyright (c) 2008 Tobias Lorenz <tobias.lorenz@gmx.net>


Information from Silicon Labs
=============================
Silicon Laboratories is the manufacturer of the radio ICs, that nowadays are the
most often used radio receivers in cell phones. Usually they are connected with
I2C. But SiLabs also provides a reference design, which integrates this IC,
together with a small microcontroller C8051F321, to form a USB radio.
Part of this reference design is also a radio application in binary and source
code. The software also contains an automatic firmware upgrade to the most
current version. Information on these can be downloaded here:
http://www.silabs.com/usbradio


Supported ICs
=============
The following ICs have a very similar register set, so that they are or will be
supported somewhen by the driver:
- Si4700: FM radio receiver
- Si4701: FM radio receiver, RDS Support
- Si4702: FM radio receiver
- Si4703: FM radio receiver, RDS Support
- Si4704: FM radio receiver, no external antenna required
- Si4705: FM radio receiver, no external antenna required, RDS support, Dig I/O
- Si4706: Enhanced FM RDS/TMC radio receiver, no external antenna required, RDS
Support
- Si4707: Dedicated weather band radio receiver with SAME decoder, RDS Support
- Si4708: Smallest FM receivers
- Si4709: Smallest FM receivers, RDS Support
More information on these can be downloaded here:
http://www.silabs.com/products/mcu/Pages/USBFMRadioRD.aspx


Supported USB devices
=====================
Currently the following USB radios (vendor:product) with the Silicon Labs si470x
chips are known to work:
- 10c4:818a: Silicon Labs USB FM Radio Reference Design
- 06e1:a155: ADS/Tech FM Radio Receiver (formerly Instant FM Music) (RDX-155-EF)
- 1b80:d700: KWorld USB FM Radio SnapMusic Mobile 700 (FM700)


Software
========
Testing is usually done with most application under Debian/testing:
- fmtools - Utility for managing FM tuner cards
- gnomeradio - FM-radio tuner for the GNOME desktop
- gradio - GTK FM radio tuner
- kradio - Comfortable Radio Application for KDE
- radio - ncurses-based radio application

There is also a library libv4l, which can be used. It's going to have a function
for frequency seeking, either by using hardware functionality as in radio-si470x
or by implementing a function as we currently have in every of the mentioned
programs. Somewhen the radio programs should make use of libv4l.

For processing RDS information, there is a project ongoing at:
http://rdsd.berlios.de/

There is currently no project for making TMC sentences human readable.


Audio Listing
=============
USB Audio is provided by the ALSA snd_usb_audio module. It is recommended to
also select SND_USB_AUDIO, as this is required to get sound from the radio. For
listing you have to redirect the sound, for example using one of the following
commands.

If you just want to test audio (very poor quality):
cat /dev/dsp1 > /dev/dsp

If you use OSS try:
sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp

If you use arts try:
arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -


Module Parameters
=================
After loading the module, you still have access to some of them in the sysfs
mount under /sys/module/radio_si470x/parameters. The contents of read-only files
(0444) are not updated, even if space, band and de are changed using private
video controls. The others are runtime changeable.


Errors
======
Increase tune_timeout, if you often get -EIO errors.

When timed out or band limit is reached, hw_freq_seek returns -EAGAIN.

If you get any errors from snd_usb_audio, please report them to the ALSA people.


Open Issues
===========
V4L minor device allocation and parameter setting is not perfect. A solution is
currently under discussion.

There is an USB interface for downloading/uploading new firmware images. Support
for it can be implemented using the request_firmware interface.

There is a RDS interrupt mode. The driver is already using the same interface
for polling RDS information, but is currently not using the interrupt mode.

There is a LED interface, which can be used to override the LED control
programmed in the firmware. This can be made available using the LED support
functions in the kernel.


Other useful information and links
==================================
http://www.silabs.com/usbradio
14 changes: 14 additions & 0 deletions trunk/drivers/media/radio/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,20 @@ config USB_SI470X
tristate "Silicon Labs Si470x FM Radio Receiver support"
depends on USB && VIDEO_V4L2
---help---
This is a driver for USB devices with the Silicon Labs SI470x
chip. Currently these devices are known to work:
- 10c4:818a: Silicon Labs USB FM Radio Reference Design
- 06e1:a155: ADS/Tech FM Radio Receiver (formerly Instant FM Music)
- 1b80:d700: KWorld USB FM Radio SnapMusic Mobile 700 (FM700)

Sound is provided by the ALSA USB Audio/MIDI driver. Therefore
if you don't want to use the device solely for RDS receiving,
it is recommended to also select SND_USB_AUDIO.

Please have a look at the documentation, especially on how
to redirect the audio stream from the radio to your sound device:
Documentation/video4linux/si470x.txt

Say Y here if you want to connect this type of radio to your
computer's USB port.

Expand Down
13 changes: 0 additions & 13 deletions trunk/drivers/media/radio/radio-si470x.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,6 @@
*/


/*
* User Notes:
* - USB Audio is provided by the alsa snd_usb_audio module.
* For listing you have to redirect the sound, for example using:
* arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -
* - regarding module parameters in /sys/module/radio_si470x/parameters:
* the contents of read-only files (0444) are not updated, even if
* space, band and de are changed using private video controls
* - increase tune_timeout, if you often get -EIO errors
* - hw_freq_seek returns -EAGAIN, when timed out or band limit is reached
*/


/*
* History:
* 2008-01-12 Tobias Lorenz <tobias.lorenz@gmx.net>
Expand Down

0 comments on commit c823e50

Please sign in to comment.