Root/
1 | Driver for USB radios for the Silicon Labs Si470x FM Radio Receivers |
2 | |
3 | Copyright (c) 2009 Tobias Lorenz <tobias.lorenz@gmx.net> |
4 | |
5 | |
6 | Information from Silicon Labs |
7 | ============================= |
8 | Silicon Laboratories is the manufacturer of the radio ICs, that nowadays are the |
9 | most often used radio receivers in cell phones. Usually they are connected with |
10 | I2C. But SiLabs also provides a reference design, which integrates this IC, |
11 | together with a small microcontroller C8051F321, to form a USB radio. |
12 | Part of this reference design is also a radio application in binary and source |
13 | code. The software also contains an automatic firmware upgrade to the most |
14 | current version. Information on these can be downloaded here: |
15 | http://www.silabs.com/usbradio |
16 | |
17 | |
18 | Supported ICs |
19 | ============= |
20 | The following ICs have a very similar register set, so that they are or will be |
21 | supported somewhen by the driver: |
22 | - Si4700: FM radio receiver |
23 | - Si4701: FM radio receiver, RDS Support |
24 | - Si4702: FM radio receiver |
25 | - Si4703: FM radio receiver, RDS Support |
26 | - Si4704: FM radio receiver, no external antenna required |
27 | - Si4705: FM radio receiver, no external antenna required, RDS support, Dig I/O |
28 | - Si4706: Enhanced FM RDS/TMC radio receiver, no external antenna required, RDS |
29 | Support |
30 | - Si4707: Dedicated weather band radio receiver with SAME decoder, RDS Support |
31 | - Si4708: Smallest FM receivers |
32 | - Si4709: Smallest FM receivers, RDS Support |
33 | More information on these can be downloaded here: |
34 | http://www.silabs.com/products/mcu/Pages/USBFMRadioRD.aspx |
35 | |
36 | |
37 | Supported USB devices |
38 | ===================== |
39 | Currently the following USB radios (vendor:product) with the Silicon Labs si470x |
40 | chips are known to work: |
41 | - 10c4:818a: Silicon Labs USB FM Radio Reference Design |
42 | - 06e1:a155: ADS/Tech FM Radio Receiver (formerly Instant FM Music) (RDX-155-EF) |
43 | - 1b80:d700: KWorld USB FM Radio SnapMusic Mobile 700 (FM700) |
44 | - 10c5:819a: Sanei Electric, Inc. FM USB Radio (sold as DealExtreme.com PCear) |
45 | |
46 | |
47 | Software |
48 | ======== |
49 | Testing is usually done with most application under Debian/testing: |
50 | - fmtools - Utility for managing FM tuner cards |
51 | - gnomeradio - FM-radio tuner for the GNOME desktop |
52 | - gradio - GTK FM radio tuner |
53 | - kradio - Comfortable Radio Application for KDE |
54 | - radio - ncurses-based radio application |
55 | - mplayer - The Ultimate Movie Player For Linux |
56 | |
57 | There is also a library libv4l, which can be used. It's going to have a function |
58 | for frequency seeking, either by using hardware functionality as in radio-si470x |
59 | or by implementing a function as we currently have in every of the mentioned |
60 | programs. Somewhen the radio programs should make use of libv4l. |
61 | |
62 | For processing RDS information, there is a project ongoing at: |
63 | http://rdsd.berlios.de/ |
64 | |
65 | There is currently no project for making TMC sentences human readable. |
66 | |
67 | |
68 | Audio Listing |
69 | ============= |
70 | USB Audio is provided by the ALSA snd_usb_audio module. It is recommended to |
71 | also select SND_USB_AUDIO, as this is required to get sound from the radio. For |
72 | listing you have to redirect the sound, for example using one of the following |
73 | commands. Please adjust the audio devices to your needs (/dev/dsp* and hw:x,x). |
74 | |
75 | If you just want to test audio (very poor quality): |
76 | cat /dev/dsp1 > /dev/dsp |
77 | |
78 | If you use OSS try: |
79 | sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp |
80 | |
81 | If you use arts try: |
82 | arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B - |
83 | |
84 | If you use mplayer try: |
85 | mplayer -radio adevice=hw=1.0:arate=96000 \ |
86 | -rawaudio rate=96000 \ |
87 | radio://<frequency>/capture |
88 | |
89 | Module Parameters |
90 | ================= |
91 | After loading the module, you still have access to some of them in the sysfs |
92 | mount under /sys/module/radio_si470x/parameters. The contents of read-only files |
93 | (0444) are not updated, even if space, band and de are changed using private |
94 | video controls. The others are runtime changeable. |
95 | |
96 | |
97 | Errors |
98 | ====== |
99 | Increase tune_timeout, if you often get -EIO errors. |
100 | |
101 | When timed out or band limit is reached, hw_freq_seek returns -EAGAIN. |
102 | |
103 | If you get any errors from snd_usb_audio, please report them to the ALSA people. |
104 | |
105 | |
106 | Open Issues |
107 | =========== |
108 | V4L minor device allocation and parameter setting is not perfect. A solution is |
109 | currently under discussion. |
110 | |
111 | There is an USB interface for downloading/uploading new firmware images. Support |
112 | for it can be implemented using the request_firmware interface. |
113 | |
114 | There is a RDS interrupt mode. The driver is already using the same interface |
115 | for polling RDS information, but is currently not using the interrupt mode. |
116 | |
117 | There is a LED interface, which can be used to override the LED control |
118 | programmed in the firmware. This can be made available using the LED support |
119 | functions in the kernel. |
120 | |
121 | |
122 | Other useful information and links |
123 | ================================== |
124 | http://www.silabs.com/usbradio |
125 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9