Commit | Line | Data |
---|---|---|
6aadf82e TL |
1 | Driver for USB radios for the Silicon Labs Si470x FM Radio Receivers |
2 | ||
3 | Copyright (c) 2008 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) | |
5e6de7d9 | 44 | - 10c5:819a: DealExtreme USB Radio |
6aadf82e TL |
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 | ||
56 | There is also a library libv4l, which can be used. It's going to have a function | |
57 | for frequency seeking, either by using hardware functionality as in radio-si470x | |
58 | or by implementing a function as we currently have in every of the mentioned | |
59 | programs. Somewhen the radio programs should make use of libv4l. | |
60 | ||
61 | For processing RDS information, there is a project ongoing at: | |
62 | http://rdsd.berlios.de/ | |
63 | ||
64 | There is currently no project for making TMC sentences human readable. | |
65 | ||
66 | ||
67 | Audio Listing | |
68 | ============= | |
69 | USB Audio is provided by the ALSA snd_usb_audio module. It is recommended to | |
70 | also select SND_USB_AUDIO, as this is required to get sound from the radio. For | |
71 | listing you have to redirect the sound, for example using one of the following | |
72 | commands. | |
73 | ||
74 | If you just want to test audio (very poor quality): | |
75 | cat /dev/dsp1 > /dev/dsp | |
76 | ||
77 | If you use OSS try: | |
78 | sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp | |
79 | ||
80 | If you use arts try: | |
81 | arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B - | |
82 | ||
83 | ||
84 | Module Parameters | |
85 | ================= | |
86 | After loading the module, you still have access to some of them in the sysfs | |
87 | mount under /sys/module/radio_si470x/parameters. The contents of read-only files | |
88 | (0444) are not updated, even if space, band and de are changed using private | |
89 | video controls. The others are runtime changeable. | |
90 | ||
91 | ||
92 | Errors | |
93 | ====== | |
94 | Increase tune_timeout, if you often get -EIO errors. | |
95 | ||
96 | When timed out or band limit is reached, hw_freq_seek returns -EAGAIN. | |
97 | ||
98 | If you get any errors from snd_usb_audio, please report them to the ALSA people. | |
99 | ||
100 | ||
101 | Open Issues | |
102 | =========== | |
103 | V4L minor device allocation and parameter setting is not perfect. A solution is | |
104 | currently under discussion. | |
105 | ||
106 | There is an USB interface for downloading/uploading new firmware images. Support | |
107 | for it can be implemented using the request_firmware interface. | |
108 | ||
109 | There is a RDS interrupt mode. The driver is already using the same interface | |
110 | for polling RDS information, but is currently not using the interrupt mode. | |
111 | ||
112 | There is a LED interface, which can be used to override the LED control | |
113 | programmed in the firmware. This can be made available using the LED support | |
114 | functions in the kernel. | |
115 | ||
116 | ||
117 | Other useful information and links | |
118 | ================================== | |
119 | http://www.silabs.com/usbradio |